@acpaas-ui/ngx-forms 6.1.8 → 6.1.9

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.
Files changed (23) hide show
  1. package/esm2020/lib/auto-complete/auto-complete.module.mjs +13 -14
  2. package/esm2020/lib/auto-complete/components/auto-complete/auto-complete.component.mjs +64 -146
  3. package/esm2020/lib/datepicker/components/datepicker/datepicker.component.mjs +67 -146
  4. package/esm2020/lib/datepicker/datepicker.module.mjs +23 -24
  5. package/esm2020/lib/range-slider/components/range-slider/range-slider.component.mjs +64 -116
  6. package/esm2020/lib/range-slider/range-slider.module.mjs +12 -13
  7. package/esm2020/lib/search-filter/components/search-filter/search-filter.component.mjs +51 -168
  8. package/esm2020/lib/search-filter/search-filter.module.mjs +12 -13
  9. package/esm2020/lib/shared/services/search.service.mjs +6 -6
  10. package/esm2020/lib/timepicker/components/timepicker/timepicker.component.mjs +37 -150
  11. package/esm2020/lib/timepicker/timepicker.module.mjs +13 -14
  12. package/esm2020/lib/upload/components/upload/upload.component.mjs +27 -55
  13. package/esm2020/lib/upload/components/upload-input/upload-input.component.mjs +19 -36
  14. package/esm2020/lib/upload/components/upload-queue/upload-queue.component.mjs +15 -51
  15. package/esm2020/lib/upload/components/upload-zone/upload-zone.component.mjs +43 -152
  16. package/esm2020/lib/upload/components/validation-list/validation-list.component.mjs +11 -42
  17. package/esm2020/lib/upload/services/validation-messages.service.mjs +9 -9
  18. package/esm2020/lib/upload/upload.module.mjs +20 -21
  19. package/fesm2015/acpaas-ui-ngx-forms.mjs +134 -990
  20. package/fesm2015/acpaas-ui-ngx-forms.mjs.map +1 -1
  21. package/fesm2020/acpaas-ui-ngx-forms.mjs +489 -1159
  22. package/fesm2020/acpaas-ui-ngx-forms.mjs.map +1 -1
  23. package/package.json +3 -6
@@ -2,19 +2,6 @@ import { Component, forwardRef, HostBinding, HostListener, Input } from '@angula
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
- function RangeSliderComponent_div_6_Template(rf, ctx) { if (rf & 1) {
6
- i0.ɵɵelement(0, "div", 11);
7
- } }
8
- function RangeSliderComponent_span_9_Template(rf, ctx) { if (rf & 1) {
9
- const _r5 = i0.ɵɵgetCurrentView();
10
- i0.ɵɵelementStart(0, "span", 12);
11
- i0.ɵɵlistener("blur", function RangeSliderComponent_span_9_Template_span_blur_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.toggleFocus(false, null, $event)); })("dragexit", function RangeSliderComponent_span_9_Template_span_dragexit_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.onMouseUp($event)); })("focus", function RangeSliderComponent_span_9_Template_span_focus_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.toggleFocus(true, "end", $event)); })("mousedown", function RangeSliderComponent_span_9_Template_span_mousedown_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.onMouseDown("end")); })("touchstart", function RangeSliderComponent_span_9_Template_span_touchstart_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.onMouseDown("end")); });
12
- i0.ɵɵelementEnd();
13
- } if (rf & 2) {
14
- const ctx_r1 = i0.ɵɵnextContext();
15
- i0.ɵɵstyleProp("left", ctx_r1.endPercentage + "%");
16
- i0.ɵɵattribute("aria-label", ctx_r1.ariaLabelMax);
17
- } }
18
5
  export class RangeSliderComponent {
19
6
  constructor(elRef) {
20
7
  this.elRef = elRef;
@@ -244,106 +231,67 @@ export class RangeSliderComponent {
244
231
  return newPercentage;
245
232
  }
246
233
  }
247
- /** @nocollapse */ RangeSliderComponent.ɵfac = function RangeSliderComponent_Factory(t) { return new (t || RangeSliderComponent)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
248
- /** @nocollapse */ RangeSliderComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: RangeSliderComponent, selectors: [["aui-range-slider"]], hostVars: 4, hostBindings: function RangeSliderComponent_HostBindings(rf, ctx) { if (rf & 1) {
249
- i0.ɵɵlistener("keydown", function RangeSliderComponent_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); }, false, i0.ɵɵresolveDocument)("touchend", function RangeSliderComponent_touchend_HostBindingHandler($event) { return ctx.onMouseUp($event); })("mouseup", function RangeSliderComponent_mouseup_HostBindingHandler($event) { return ctx.onMouseUp($event); })("touchstart", function RangeSliderComponent_touchstart_HostBindingHandler($event) { return ctx.mouseDown($event); })("mousedown", function RangeSliderComponent_mousedown_HostBindingHandler($event) { return ctx.mouseDown($event); })("touchmove", function RangeSliderComponent_touchmove_HostBindingHandler($event) { return ctx.onMouseMove($event); })("mousemove", function RangeSliderComponent_mousemove_HostBindingHandler($event) { return ctx.onMouseMove($event); });
250
- } if (rf & 2) {
251
- i0.ɵɵclassProp("m-range-slider", ctx.coreBranding)("is-disabled", ctx.disabledClass);
252
- } }, inputs: { min: "min", max: "max", minimalDistance: "minimalDistance", step: "step", label: "label", labelBefore: "labelBefore", labelAfter: "labelAfter", ariaLabelMin: "ariaLabelMin", ariaLabelMax: "ariaLabelMax" }, features: [i0.ɵɵProvidersFeature([
253
- {
254
- provide: NG_VALUE_ACCESSOR,
255
- useExisting: forwardRef((() => RangeSliderComponent)),
256
- multi: true,
257
- },
258
- ])], decls: 15, vars: 16, consts: [[1, "a-range-slider"], [1, "a-range-slider__labels"], [1, "a-range-slider__label"], [1, "a-range-slider__inner"], [1, "a-range-slider__tickmarks"], ["class", "a-range-slider__tickmark", 4, "ngFor", "ngForOf"], [1, "a-range-slider__bar"], ["tabindex", "0", 1, "a-range-slider__handle", 3, "blur", "dragexit", "focus", "mousedown", "touchstart"], ["class", "a-range-slider__handle", "name", "a-range-slider__handle__end", "tabindex", "0", 3, "left", "blur", "dragexit", "focus", "mousedown", "touchstart", 4, "ngIf"], [1, "a-range-slider__descriptions"], [1, "a-range-slider__description", "small"], [1, "a-range-slider__tickmark"], ["name", "a-range-slider__handle__end", "tabindex", "0", 1, "a-range-slider__handle", 3, "blur", "dragexit", "focus", "mousedown", "touchstart"]], template: function RangeSliderComponent_Template(rf, ctx) { if (rf & 1) {
259
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
260
- i0.ɵɵtext(3);
261
- i0.ɵɵelementEnd()();
262
- i0.ɵɵelementStart(4, "div", 3)(5, "div", 4);
263
- i0.ɵɵtemplate(6, RangeSliderComponent_div_6_Template, 1, 0, "div", 5);
264
- i0.ɵɵelementEnd();
265
- i0.ɵɵelement(7, "div", 6);
266
- i0.ɵɵelementStart(8, "span", 7);
267
- i0.ɵɵlistener("blur", function RangeSliderComponent_Template_span_blur_8_listener($event) { return ctx.toggleFocus(false, null, $event); })("dragexit", function RangeSliderComponent_Template_span_dragexit_8_listener($event) { return ctx.onMouseUp($event); })("focus", function RangeSliderComponent_Template_span_focus_8_listener($event) { return ctx.toggleFocus(true, "start", $event); })("mousedown", function RangeSliderComponent_Template_span_mousedown_8_listener() { return ctx.onMouseDown("start"); })("touchstart", function RangeSliderComponent_Template_span_touchstart_8_listener() { return ctx.onMouseDown("start"); });
268
- i0.ɵɵelementEnd();
269
- i0.ɵɵtemplate(9, RangeSliderComponent_span_9_Template, 1, 3, "span", 8);
270
- i0.ɵɵelementEnd();
271
- i0.ɵɵelementStart(10, "div", 9)(11, "div", 10);
272
- i0.ɵɵtext(12);
273
- i0.ɵɵelementEnd();
274
- i0.ɵɵelementStart(13, "div", 10);
275
- i0.ɵɵtext(14);
276
- i0.ɵɵelementEnd()()();
277
- } if (rf & 2) {
278
- i0.ɵɵadvance(3);
279
- i0.ɵɵtextInterpolate(ctx.label);
280
- i0.ɵɵadvance(3);
281
- i0.ɵɵproperty("ngForOf", ctx.steps);
282
- i0.ɵɵadvance(1);
283
- i0.ɵɵstyleProp("left", ctx.endPercentage ? ctx.startPercentage + "%" : false)("width", ctx.endPercentage ? ctx.endPercentage - ctx.startPercentage + "%" : ctx.startPercentage + "%");
284
- i0.ɵɵadvance(1);
285
- i0.ɵɵstyleProp("left", ctx.startPercentage + "%");
286
- i0.ɵɵattribute("aria-label", ctx.ariaLabelMin);
287
- i0.ɵɵadvance(1);
288
- i0.ɵɵproperty("ngIf", ctx.end);
289
- i0.ɵɵadvance(3);
290
- i0.ɵɵtextInterpolate3("", ctx.labelBefore, "", ctx.min, "", ctx.labelAfter, "");
291
- i0.ɵɵadvance(2);
292
- i0.ɵɵtextInterpolate3("", ctx.labelBefore, "", ctx.max, "", ctx.labelAfter, "");
293
- } }, dependencies: [i1.NgForOf, i1.NgIf], styles: ["[_nghost-%COMP%]{display:block;position:relative}.is-disabled[_nghost-%COMP%]{cursor:not-allowed}.is-disabled[_nghost-%COMP%] .m-range-slider__handle[_ngcontent-%COMP%]:hover{cursor:not-allowed}"] });
294
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RangeSliderComponent, [{
295
- type: Component,
296
- args: [{ selector: 'aui-range-slider', providers: [
297
- {
298
- provide: NG_VALUE_ACCESSOR,
299
- useExisting: forwardRef((() => RangeSliderComponent)),
300
- multi: true,
301
- },
302
- ], template: "<div class=\"a-range-slider\">\n <div class=\"a-range-slider__labels\">\n <div class=\"a-range-slider__label\">{{ label }}</div>\n </div>\n <div class=\"a-range-slider__inner\">\n <div class=\"a-range-slider__tickmarks\">\n <div *ngFor=\"let step of steps; let i = index\" class=\"a-range-slider__tickmark\"></div>\n </div>\n <div\n [style.left]=\"endPercentage ? startPercentage + '%' : false\"\n [style.width]=\"endPercentage ? endPercentage - startPercentage + '%' : startPercentage + '%'\"\n class=\"a-range-slider__bar\"\n ></div>\n <span\n (blur)=\"toggleFocus(false, null, $event)\"\n (dragexit)=\"onMouseUp($event)\"\n (focus)=\"toggleFocus(true, 'start', $event)\"\n (mousedown)=\"onMouseDown('start')\"\n (touchstart)=\"onMouseDown('start')\"\n [style.left]=\"startPercentage + '%'\"\n class=\"a-range-slider__handle\"\n [attr.aria-label]=\"ariaLabelMin\"\n tabindex=\"0\"\n >\n </span>\n\n <span\n (blur)=\"toggleFocus(false, null, $event)\"\n (dragexit)=\"onMouseUp($event)\"\n (focus)=\"toggleFocus(true, 'end', $event)\"\n (mousedown)=\"onMouseDown('end')\"\n (touchstart)=\"onMouseDown('end')\"\n *ngIf=\"end\"\n [style.left]=\"endPercentage + '%'\"\n class=\"a-range-slider__handle\"\n name=\"a-range-slider__handle__end\"\n [attr.aria-label]=\"ariaLabelMax\"\n tabindex=\"0\"\n >\n </span>\n </div>\n <div class=\"a-range-slider__descriptions\">\n <div class=\"a-range-slider__description small\">{{ labelBefore }}{{ min }}{{ labelAfter }}</div>\n <div class=\"a-range-slider__description small\">{{ labelBefore }}{{ max }}{{ labelAfter }}</div>\n </div>\n</div>\n", styles: [":host{display:block;position:relative}:host.is-disabled{cursor:not-allowed}:host.is-disabled .m-range-slider__handle:hover{cursor:not-allowed}\n"] }]
303
- }], function () { return [{ type: i0.ElementRef }]; }, { coreBranding: [{
304
- type: HostBinding,
305
- args: ['class.m-range-slider']
306
- }], min: [{
307
- type: Input
308
- }], max: [{
309
- type: Input
310
- }], minimalDistance: [{
311
- type: Input
312
- }], step: [{
313
- type: Input
314
- }], label: [{
315
- type: Input
316
- }], labelBefore: [{
317
- type: Input
318
- }], labelAfter: [{
319
- type: Input
320
- }], ariaLabelMin: [{
321
- type: Input
322
- }], ariaLabelMax: [{
323
- type: Input
324
- }], disabledClass: [{
325
- type: HostBinding,
326
- args: ['class.is-disabled']
327
- }], onKeyDown: [{
328
- type: HostListener,
329
- args: ['document:keydown', ['$event']]
330
- }], onMouseUp: [{
331
- type: HostListener,
332
- args: ['touchend', ['$event']]
333
- }, {
334
- type: HostListener,
335
- args: ['mouseup', ['$event']]
336
- }], mouseDown: [{
337
- type: HostListener,
338
- args: ['touchstart', ['$event']]
339
- }, {
340
- type: HostListener,
341
- args: ['mousedown', ['$event']]
342
- }], onMouseMove: [{
343
- type: HostListener,
344
- args: ['touchmove', ['$event']]
345
- }, {
346
- type: HostListener,
347
- args: ['mousemove', ['$event']]
348
- }] }); })();
349
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvcmFuZ2Utc2xpZGVyL2NvbXBvbmVudHMvcmFuZ2Utc2xpZGVyL3JhbmdlLXNsaWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3JhbmdlLXNsaWRlci9jb21wb25lbnRzL3JhbmdlLXNsaWRlci9yYW5nZS1zbGlkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0lDS25FLDBCQUFzRjs7OztJQW9CeEYsZ0NBWUM7SUFYQyxvS0FBUSxlQUFBLG1CQUFZLEtBQUssRUFBRSxJQUFJLFNBQVMsQ0FBQSxJQUFDLCtKQUM3QixlQUFBLHdCQUFpQixDQUFBLElBRFkseUpBRWhDLGVBQUEsbUJBQVksSUFBSSxFQUFFLEtBQUssU0FBUyxDQUFBLElBRkEsMkpBRzVCLGVBQUEsbUJBQVksS0FBSyxDQUFDLENBQUEsSUFIVSw2SkFJM0IsZUFBQSxtQkFBWSxLQUFLLENBQUMsQ0FBQSxJQUpTO0lBWTNDLGlCQUFPOzs7SUFOTCxrREFBa0M7SUFHbEMsaURBQWdDOztBRG5CdEMsTUFBTSxPQUFPLG9CQUFvQjtJQXFCL0IsWUFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQXBCQSxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUN6QyxRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsUUFBRyxHQUFHLEdBQUcsQ0FBQztRQUNWLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFDVCxVQUFLLEdBQUcs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LEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGOzZEQUdvQyxZQUFZO2tCQUFoRCxXQUFXO21CQUFDLHNCQUFzQjtZQUNuQixHQUFHO2tCQUFsQixLQUFLO1lBQ1UsR0FBRztrQkFBbEIsS0FBSztZQUNVLGVBQWU7a0JBQTlCLEtBQUs7WUFDVSxJQUFJO2tCQUFuQixLQUFLO1lBQ1UsS0FBSztrQkFBcEIsS0FBSztZQUNVLFdBQVc7a0JBQTFCLEtBQUs7WUFDVSxVQUFVO2tCQUF6QixLQUFLO1lBQ1UsWUFBWTtrQkFBM0IsS0FBSztZQUNVLFlBQVk7a0JBQTNCLEtBQUs7WUFhZ0MsYUFBYTtrQkFBbEQsV0FBVzttQkFBQyxtQkFBbUI7WUFtRXpCLFNBQVM7a0JBRGYsWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQXVFckMsU0FBUztrQkFGZixZQUFZO21CQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7a0JBQ25DLFlBQVk7bUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO1lBZ0JuQyxTQUFTO2tCQUZSLFlBQVk7bUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDOztrQkFDckMsWUFBWTttQkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFPOUIsV0FBVztrQkFGakIsWUFBWTttQkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7O2tCQUNwQyxZQUFZO21CQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBSYW5nZVNsaWRlclJhbmdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvcmFuZ2Utc2xpZGVyLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLXJhbmdlLXNsaWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS1zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yYW5nZS1zbGlkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYW5nZVNsaWRlckNvbXBvbmVudCksIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlU2xpZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MubS1yYW5nZS1zbGlkZXInKSBjb3JlQnJhbmRpbmcgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgbWluID0gMDtcbiAgQElucHV0KCkgcHVibGljIG1heCA9IDEwMDtcbiAgQElucHV0KCkgcHVibGljIG1pbmltYWxEaXN0YW5jZSA9IDE7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdGVwID0gMDtcbiAgQElucHV0KCkgcHVibGljIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbEJlZm9yZSA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWxBZnRlciA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgYXJpYUxhYmVsTWluID0gJ01pbmltdW0nO1xuICBASW5wdXQoKSBwdWJsaWMgYXJpYUxhYmVsTWF4ID0gJ01heGltdW0nO1xuICBwdWJsaWMgc3RhcnQgPSAwO1xuICBwdWJsaWMgZW5kOiBudW1iZXIgfCBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzdGVwcyA9IFtdO1xuICBwdWJsaWMgc3RhcnRQZXJjZW50YWdlO1xuICBwdWJsaWMgZW5kUGVyY2VudGFnZTtcbiAgcHVibGljIGFjdGl2ZSA9IG51bGw7XG4gIHB1YmxpYyBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIHB1YmxpYyBoYXNGb2N1cyA9IGZhbHNlO1xuICBwdWJsaWMgY2xpY2sgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtZGlzYWJsZWQnKSBnZXQgZGlzYWJsZWRDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIHByb3BhZ2F0ZUNoYW5nZSA9ICh2YWx1ZTogbnVtYmVyIHwgUmFuZ2VTbGlkZXJSYW5nZSkgPT4ge307XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnN0ZXAgPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB0aGlzLm1heDsgaSArPSBOdW1iZXIodGhpcy5zdGVwKSkge1xuICAgICAgICB0aGlzLnN0ZXBzLnB1c2goaSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zdGFydFBlcmNlbnRhZ2UgPSB0aGlzLnN0YXJ0VG9QZXJjZW50YWdlKCk7XG5cbiAgICBpZiAodGhpcy5lbmQpIHtcbiAgICAgIHRoaXMuZW5kUGVyY2VudGFnZSA9IHRoaXMuZW5kVG9QZXJjZW50YWdlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5zdGFydCkge1xuICAgICAgdGhpcy5zdGFydCA9IHZhbHVlLnN0YXJ0O1xuICAgIH0gZWxzZSBpZiAoIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSAhPT0gJycpIHtcbiAgICAgIHRoaXMuc3RhcnQgPSBOdW1iZXIodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXJ0KE51bWJlcih0aGlzLm1pbikpO1xuICAgIH1cblxuICAgIHRoaXMuc3RhcnRQZXJjZW50YWdlID0gdGhpcy5zdGFydFRvUGVyY2VudGFnZSgpO1xuXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLmVuZCkge1xuICAgICAgdGhpcy5lbmQgPSB2YWx1ZS5lbmQ7XG4gICAgICB0aGlzLmVuZFBlcmNlbnRhZ2UgPSB0aGlzLmVuZFRvUGVyY2VudGFnZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZCgpIHt9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm4pIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgb25Nb3VzZURvd24oaGFuZGxlKSB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuICAgIHRoaXMuYWN0aXZlID0gaGFuZGxlO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUZvY3VzKGhhc0ZvY3VzLCBlbGVtZW50LCAkZXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5oYXNGb2N1cyA9IGhhc0ZvY3VzO1xuICAgIHRoaXMuYWN0aXZlID0gZWxlbWVudDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25LZXlEb3duKCRldmVudCkge1xuICAgIGlmICghdGhpcy5oYXNGb2N1cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGtleSA9ICRldmVudC5rZXlDb2RlO1xuICAgIGNvbnN0IGtleUNvZGVzID0ge1xuICAgICAgZW5kOiAzNSxcbiAgICAgIGhvbWU6IDM2LFxuICAgICAgbGVmdDogMzcsXG4gICAgICB1cDogMzgsXG4gICAgICByaWdodDogMzksXG4gICAgICBkb3duOiA0MCxcbiAgICB9O1xuXG4gICAgaWYgKFxuICAgICAgT2JqZWN0LmtleXMoa2V5Q29kZXMpXG4gICAgICAgIC5tYXAoKGUpID0+IGtleUNvZGVzW2VdKVxuICAgICAgICAuaW5kZXhPZihrZXkpID09PSAtMVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgaW5jcmVtZW50ID0gdGhpcy5taW5pbWFsRGlzdGFuY2U7XG5cbiAgICBpZiAodGhpcy5zdGVwID4gMCkge1xuICAgICAgaW5jcmVtZW50ID0gTnVtYmVyKHRoaXMuc3RlcCk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvY2Vzc1ZhbHVlID0gKGRpcikgPT4ge1xuICAgICAgbGV0IG5ld1ZhbHVlID0gdGhpcy5hY3RpdmUgPT09ICdzdGFydCcgPyB0aGlzLnN0YXJ0IDogTnVtYmVyKHRoaXMuZW5kKTtcbiAgICAgIGlmIChkaXIgPT09ICd1cCcpIHtcbiAgICAgICAgbmV3VmFsdWUgKz0gaW5jcmVtZW50O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3VmFsdWUgLT0gaW5jcmVtZW50O1xuICAgICAgfVxuICAgICAgbGV0IG5ld1BlcmNlbnRhZ2UgPSAoKG5ld1ZhbHVlIC0gdGhpcy5taW4pIC8gKHRoaXMubWF4IC0gdGhpcy5taW4pKSAqIDEwMDtcblxuICAgICAgaWYgKG5ld1BlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgICAgbmV3UGVyY2VudGFnZSA9IDEwMDtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdQZXJjZW50YWdlIDwgMCkge1xuICAgICAgICBuZXdQZXJjZW50YWdlID0gMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdQZXJjZW50YWdlO1xuICAgIH07XG5cbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgY2FzZSBrZXlDb2Rlcy5yaWdodDpcbiAgICAgIGNhc2Uga2V5Q29kZXMudXA6XG4gICAgICAgIHRoaXMudXBkYXRlSGFuZGxlKHByb2Nlc3NWYWx1ZSgndXAnKSk7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Uga2V5Q29kZXMubGVmdDpcbiAgICAgIGNhc2Uga2V5Q29kZXMuZG93bjpcbiAgICAgICAgdGhpcy51cGRhdGVIYW5kbGUocHJvY2Vzc1ZhbHVlKCdkb3duJykpO1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGtleUNvZGVzLmVuZDpcbiAgICAgICAgdGhpcy51cGRhdGVIYW5kbGUoMTAwKTtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBrZXlDb2Rlcy5ob21lOlxuICAgICAgICB0aGlzLnVwZGF0ZUhhbmRsZSgwKTtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoZW5kJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignbW91c2V1cCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbk1vdXNlVXAoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09ICdzdGFydCcpIHtcbiAgICAgIHRoaXMuc2V0U3RhcnQodGhpcy5yb3VuZCh0aGlzLnN0YXJ0LCB0aGlzLnN0ZXAsIDApKTtcbiAgICAgIHRoaXMuc3RhcnRQZXJjZW50YWdlID0gdGhpcy5zdGFydFRvUGVyY2VudGFnZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gJ2VuZCcpIHtcbiAgICAgIHRoaXMuc2V0RW5kKHRoaXMucm91bmQodGhpcy5lbmQsIHRoaXMuc3RlcCwgMCkpO1xuICAgICAgdGhpcy5lbmRQZXJjZW50YWdlID0gdGhpcy5lbmRUb1BlcmNlbnRhZ2UoKTtcbiAgICB9XG4gICAgdGhpcy5jbGljayA9IGZhbHNlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIG1vdXNlRG93bihldmVudCkge1xuICAgIHRoaXMuY2xpY2sgPSB0cnVlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2htb3ZlJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vtb3ZlJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkge1xuICAgIGlmICghdGhpcy5hY3RpdmUgfHwgIXRoaXMuY2xpY2spIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBEbyBub3Qgc2VsZWN0IHRleHQgd2hpbGUgc2xpZGluZ1xuXG4gICAgY29uc3QgeCA9XG4gICAgICAoZXZlbnQgYXMgTW91c2VFdmVudCkueCAhPT0gdW5kZWZpbmVkID8gKGV2ZW50IGFzIE1vdXNlRXZlbnQpLnggOiAoZXZlbnQgYXMgVG91Y2hFdmVudCkudGFyZ2V0VG91Y2hlc1swXS5wYWdlWDtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IG5ld1BlcmNlbnRhZ2UgPSB0aGlzLmNhbGNQZXJjZW50YWdlKHgsIHJlY3Qud2lkdGgsIHJlY3QubGVmdCk7XG4gICAgdGhpcy51cGRhdGVIYW5kbGUobmV3UGVyY2VudGFnZSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlSGFuZGxlKG5ld1BlcmNlbnRhZ2UpIHtcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09ICdzdGFydCcpIHtcbiAgICAgIHRoaXMuc3RhcnRQZXJjZW50YWdlID0gbmV3UGVyY2VudGFnZTtcbiAgICAgIHRoaXMuc2V0U3RhcnQodGhpcy5wZXJjZW50YWdlVG9TdGFydCgpKTtcblxuICAgICAgaWYgKHRoaXMubWluaW1hbERpc3RhbmNlTm90UmVzcGVjdGVkKCkpIHtcbiAgICAgICAgdGhpcy5zZXRTdGFydChOdW1iZXIodGhpcy5lbmQpIC0gTnVtYmVyKHRoaXMubWluaW1hbERpc3RhbmNlKSk7XG4gICAgICAgIHRoaXMuc3RhcnRQZXJjZW50YWdlID0gdGhpcy5zdGFydFRvUGVyY2VudGFnZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gJ2VuZCcgJiYgdGhpcy5lbmRQZXJjZW50YWdlKSB7XG4gICAgICB0aGlzLmVuZFBlcmNlbnRhZ2UgPSBuZXdQZXJjZW50YWdlO1xuICAgICAgdGhpcy5zZXRFbmQodGhpcy5wZXJjZW50YWdlVG9FbmQoKSk7XG5cbiAgICAgIGlmICh0aGlzLm1pbmltYWxEaXN0YW5jZU5vdFJlc3BlY3RlZCgpKSB7XG4gICAgICAgIHRoaXMuc2V0RW5kKE51bWJlcih0aGlzLnN0YXJ0KSArIE51bWJlcih0aGlzLm1pbmltYWxEaXN0YW5jZSkpO1xuICAgICAgICB0aGlzLmVuZFBlcmNlbnRhZ2UgPSB0aGlzLmVuZFRvUGVyY2VudGFnZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0gSEVMUEVSUyAtLS0tLS0tLS0tIC8vXG4gIHB1YmxpYyBzZXRTdGFydCh2YWx1ZSkge1xuICAgIHRoaXMuc3RhcnQgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmVuZCkge1xuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2Uoe1xuICAgICAgICBzdGFydDogdGhpcy5zdGFydCxcbiAgICAgICAgZW5kOiB0aGlzLmVuZCxcbiAgICAgIH0gYXMgUmFuZ2VTbGlkZXJSYW5nZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc3RhcnQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRFbmQodmFsdWUpIHtcbiAgICB0aGlzLmVuZCA9IHZhbHVlO1xuXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2Uoe1xuICAgICAgc3RhcnQ6IHRoaXMuc3RhcnQsXG4gICAgICBlbmQ6IHRoaXMuZW5kLFxuICAgIH0gYXMgUmFuZ2VTbGlkZXJSYW5nZSk7XG4gIH1cblxuICBwdWJsaWMgcm91bmQobiwgaW5jcmVtZW50LCBvZmZzZXQpIHtcbiAgICBpZiAoaW5jcmVtZW50ID4gMCkge1xuICAgICAgcmV0dXJuIE1hdGgucm91bmQoKG4gLSBvZmZzZXQpIC8gaW5jcmVtZW50KSAqIGluY3JlbWVudCArIG9mZnNldDtcbiAgICB9XG5cbiAgICByZXR1cm4gbjtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydFRvUGVyY2VudGFnZSgpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCgoKHRoaXMuc3RhcnQgLSB0aGlzLm1pbikgLyAodGhpcy5tYXggLSB0aGlzLm1pbikpICogMTAwKTtcbiAgfVxuXG4gIHB1YmxpYyBwZXJjZW50YWdlVG9TdGFydCgpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCgodGhpcy5zdGFydFBlcmNlbnRhZ2UgLyAxMDApICogKHRoaXMubWF4IC0gdGhpcy5taW4pICsgTnVtYmVyKHRoaXMubWluKSk7XG4gIH1cblxuICBwdWJsaWMgZW5kVG9QZXJjZW50YWdlKCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKCgoTnVtYmVyKHRoaXMuZW5kKSAtIHRoaXMubWluKSAvICh0aGlzLm1heCAtIHRoaXMubWluKSkgKiAxMDApO1xuICB9XG5cbiAgcHVibGljIHBlcmNlbnRhZ2VUb0VuZCgpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCgodGhpcy5lbmRQZXJjZW50YWdlIC8gMTAwKSAqICh0aGlzLm1heCAtIHRoaXMubWluKSArIE51bWJlcih0aGlzLm1pbikpO1xuICB9XG5cbiAgcHVibGljIG1pbmltYWxEaXN0YW5jZU5vdFJlc3BlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5taW5pbWFsRGlzdGFuY2UgPj0gMCAmJiB0aGlzLmVuZCAmJiB0aGlzLnN0YXJ0ID4gTnVtYmVyKHRoaXMuZW5kKSAtIHRoaXMubWluaW1hbERpc3RhbmNlO1xuICB9XG5cbiAgcHVibGljIGNhbGNQZXJjZW50YWdlKG1vdXNlWCwgd2lkdGgsIG9mZnNldExlZnQpIHtcbiAgICBjb25zdCBtb3VzZVBvcyA9IG1vdXNlWCAtIG9mZnNldExlZnQ7XG5cbiAgICBsZXQgbmV3UGVyY2VudGFnZSA9IE1hdGgucm91bmQoKG1vdXNlUG9zIC8gd2lkdGgpICogMTAwKTtcblxuICAgIGlmIChuZXdQZXJjZW50YWdlID4gMTAwKSB7XG4gICAgICBuZXdQZXJjZW50YWdlID0gMTAwO1xuICAgIH1cblxuICAgIGlmIChuZXdQZXJjZW50YWdlIDwgMCkge1xuICAgICAgbmV3UGVyY2VudGFnZSA9IDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld1BlcmNlbnRhZ2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhLXJhbmdlLXNsaWRlclwiPlxuICA8ZGl2IGNsYXNzPVwiYS1yYW5nZS1zbGlkZXJfX2xhYmVsc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJhLXJhbmdlLXNsaWRlcl9fbGFiZWxcIj57eyBsYWJlbCB9fTwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImEtcmFuZ2Utc2xpZGVyX19pbm5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJhLXJhbmdlLXNsaWRlcl9fdGlja21hcmtzXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdGVwIG9mIHN0ZXBzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJhLXJhbmdlLXNsaWRlcl9fdGlja21hcmtcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBbc3R5bGUubGVmdF09XCJlbmRQZXJjZW50YWdlID8gc3RhcnRQZXJjZW50YWdlICsgJyUnIDogZmFsc2VcIlxuICAgICAgW3N0eWxlLndpZHRoXT1cImVuZFBlcmNlbnRhZ2UgPyBlbmRQZXJjZW50YWdlIC0gc3RhcnRQZXJjZW50YWdlICsgJyUnIDogc3RhcnRQZXJjZW50YWdlICsgJyUnXCJcbiAgICAgIGNsYXNzPVwiYS1yYW5nZS1zbGlkZXJfX2JhclwiXG4gICAgPjwvZGl2PlxuICAgIDxzcGFuXG4gICAgICAoYmx1cik9XCJ0b2dnbGVGb2N1cyhmYWxzZSwgbnVsbCwgJGV2ZW50KVwiXG4gICAgICAoZHJhZ2V4aXQpPVwib25Nb3VzZVVwKCRldmVudClcIlxuICAgICAgKGZvY3VzKT1cInRvZ2dsZUZvY3VzKHRydWUsICdzdGFydCcsICRldmVudClcIlxuICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bignc3RhcnQnKVwiXG4gICAgICAodG91Y2hzdGFydCk9XCJvbk1vdXNlRG93bignc3RhcnQnKVwiXG4gICAgICBbc3R5bGUubGVmdF09XCJzdGFydFBlcmNlbnRhZ2UgKyAnJSdcIlxuICAgICAgY2xhc3M9XCJhLXJhbmdlLXNsaWRlcl9faGFuZGxlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsTWluXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgPlxuICAgIDwvc3Bhbj5cblxuICAgIDxzcGFuXG4gICAgICAoYmx1cik9XCJ0b2dnbGVGb2N1cyhmYWxzZSwgbnVsbCwgJGV2ZW50KVwiXG4gICAgICAoZHJhZ2V4aXQpPVwib25Nb3VzZVVwKCRldmVudClcIlxuICAgICAgKGZvY3VzKT1cInRvZ2dsZUZvY3VzKHRydWUsICdlbmQnLCAkZXZlbnQpXCJcbiAgICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJ2VuZCcpXCJcbiAgICAgICh0b3VjaHN0YXJ0KT1cIm9uTW91c2VEb3duKCdlbmQnKVwiXG4gICAgICAqbmdJZj1cImVuZFwiXG4gICAgICBbc3R5bGUubGVmdF09XCJlbmRQZXJjZW50YWdlICsgJyUnXCJcbiAgICAgIGNsYXNzPVwiYS1yYW5nZS1zbGlkZXJfX2hhbmRsZVwiXG4gICAgICBuYW1lPVwiYS1yYW5nZS1zbGlkZXJfX2hhbmRsZV9fZW5kXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsTWF4XCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgPlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhLXJhbmdlLXNsaWRlcl9fZGVzY3JpcHRpb25zXCI+XG4gICAgPGRpdiBjbGFzcz1cImEtcmFuZ2Utc2xpZGVyX19kZXNjcmlwdGlvbiBzbWFsbFwiPnt7IGxhYmVsQmVmb3JlIH19e3sgbWluIH19e3sgbGFiZWxBZnRlciB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhLXJhbmdlLXNsaWRlcl9fZGVzY3JpcHRpb24gc21hbGxcIj57eyBsYWJlbEJlZm9yZSB9fXt7IG1heCB9fXt7IGxhYmVsQWZ0ZXIgfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
234
+ /** @nocollapse */ RangeSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RangeSliderComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
235
+ /** @nocollapse */ RangeSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: RangeSliderComponent, selector: "aui-range-slider", inputs: { min: "min", max: "max", minimalDistance: "minimalDistance", step: "step", label: "label", labelBefore: "labelBefore", labelAfter: "labelAfter", ariaLabelMin: "ariaLabelMin", ariaLabelMax: "ariaLabelMax" }, host: { listeners: { "document:keydown": "onKeyDown($event)", "touchend": "onMouseUp($event)", "mouseup": "onMouseUp($event)", "touchstart": "mouseDown($event)", "mousedown": "mouseDown($event)", "touchmove": "onMouseMove($event)", "mousemove": "onMouseMove($event)" }, properties: { "class.m-range-slider": "this.coreBranding", "class.is-disabled": "this.disabledClass" } }, providers: [
236
+ {
237
+ provide: NG_VALUE_ACCESSOR,
238
+ useExisting: forwardRef((() => RangeSliderComponent)),
239
+ multi: true,
240
+ },
241
+ ], ngImport: i0, template: "<div class=\"a-range-slider\">\n <div class=\"a-range-slider__labels\">\n <div class=\"a-range-slider__label\">{{ label }}</div>\n </div>\n <div class=\"a-range-slider__inner\">\n <div class=\"a-range-slider__tickmarks\">\n <div *ngFor=\"let step of steps; let i = index\" class=\"a-range-slider__tickmark\"></div>\n </div>\n <div\n [style.left]=\"endPercentage ? startPercentage + '%' : false\"\n [style.width]=\"endPercentage ? endPercentage - startPercentage + '%' : startPercentage + '%'\"\n class=\"a-range-slider__bar\"\n ></div>\n <span\n (blur)=\"toggleFocus(false, null, $event)\"\n (dragexit)=\"onMouseUp($event)\"\n (focus)=\"toggleFocus(true, 'start', $event)\"\n (mousedown)=\"onMouseDown('start')\"\n (touchstart)=\"onMouseDown('start')\"\n [style.left]=\"startPercentage + '%'\"\n class=\"a-range-slider__handle\"\n [attr.aria-label]=\"ariaLabelMin\"\n tabindex=\"0\"\n >\n </span>\n\n <span\n (blur)=\"toggleFocus(false, null, $event)\"\n (dragexit)=\"onMouseUp($event)\"\n (focus)=\"toggleFocus(true, 'end', $event)\"\n (mousedown)=\"onMouseDown('end')\"\n (touchstart)=\"onMouseDown('end')\"\n *ngIf=\"end\"\n [style.left]=\"endPercentage + '%'\"\n class=\"a-range-slider__handle\"\n name=\"a-range-slider__handle__end\"\n [attr.aria-label]=\"ariaLabelMax\"\n tabindex=\"0\"\n >\n </span>\n </div>\n <div class=\"a-range-slider__descriptions\">\n <div class=\"a-range-slider__description small\">{{ labelBefore }}{{ min }}{{ labelAfter }}</div>\n <div class=\"a-range-slider__description small\">{{ labelBefore }}{{ max }}{{ labelAfter }}</div>\n </div>\n</div>\n", styles: [":host{display:block;position:relative}:host.is-disabled{cursor:not-allowed}:host.is-disabled .m-range-slider__handle:hover{cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RangeSliderComponent, decorators: [{
243
+ type: Component,
244
+ args: [{ selector: 'aui-range-slider', providers: [
245
+ {
246
+ provide: NG_VALUE_ACCESSOR,
247
+ useExisting: forwardRef((() => RangeSliderComponent)),
248
+ multi: true,
249
+ },
250
+ ], template: "<div class=\"a-range-slider\">\n <div class=\"a-range-slider__labels\">\n <div class=\"a-range-slider__label\">{{ label }}</div>\n </div>\n <div class=\"a-range-slider__inner\">\n <div class=\"a-range-slider__tickmarks\">\n <div *ngFor=\"let step of steps; let i = index\" class=\"a-range-slider__tickmark\"></div>\n </div>\n <div\n [style.left]=\"endPercentage ? startPercentage + '%' : false\"\n [style.width]=\"endPercentage ? endPercentage - startPercentage + '%' : startPercentage + '%'\"\n class=\"a-range-slider__bar\"\n ></div>\n <span\n (blur)=\"toggleFocus(false, null, $event)\"\n (dragexit)=\"onMouseUp($event)\"\n (focus)=\"toggleFocus(true, 'start', $event)\"\n (mousedown)=\"onMouseDown('start')\"\n (touchstart)=\"onMouseDown('start')\"\n [style.left]=\"startPercentage + '%'\"\n class=\"a-range-slider__handle\"\n [attr.aria-label]=\"ariaLabelMin\"\n tabindex=\"0\"\n >\n </span>\n\n <span\n (blur)=\"toggleFocus(false, null, $event)\"\n (dragexit)=\"onMouseUp($event)\"\n (focus)=\"toggleFocus(true, 'end', $event)\"\n (mousedown)=\"onMouseDown('end')\"\n (touchstart)=\"onMouseDown('end')\"\n *ngIf=\"end\"\n [style.left]=\"endPercentage + '%'\"\n class=\"a-range-slider__handle\"\n name=\"a-range-slider__handle__end\"\n [attr.aria-label]=\"ariaLabelMax\"\n tabindex=\"0\"\n >\n </span>\n </div>\n <div class=\"a-range-slider__descriptions\">\n <div class=\"a-range-slider__description small\">{{ labelBefore }}{{ min }}{{ labelAfter }}</div>\n <div class=\"a-range-slider__description small\">{{ labelBefore }}{{ max }}{{ labelAfter }}</div>\n </div>\n</div>\n", styles: [":host{display:block;position:relative}:host.is-disabled{cursor:not-allowed}:host.is-disabled .m-range-slider__handle:hover{cursor:not-allowed}\n"] }]
251
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { coreBranding: [{
252
+ type: HostBinding,
253
+ args: ['class.m-range-slider']
254
+ }], min: [{
255
+ type: Input
256
+ }], max: [{
257
+ type: Input
258
+ }], minimalDistance: [{
259
+ type: Input
260
+ }], step: [{
261
+ type: Input
262
+ }], label: [{
263
+ type: Input
264
+ }], labelBefore: [{
265
+ type: Input
266
+ }], labelAfter: [{
267
+ type: Input
268
+ }], ariaLabelMin: [{
269
+ type: Input
270
+ }], ariaLabelMax: [{
271
+ type: Input
272
+ }], disabledClass: [{
273
+ type: HostBinding,
274
+ args: ['class.is-disabled']
275
+ }], onKeyDown: [{
276
+ type: HostListener,
277
+ args: ['document:keydown', ['$event']]
278
+ }], onMouseUp: [{
279
+ type: HostListener,
280
+ args: ['touchend', ['$event']]
281
+ }, {
282
+ type: HostListener,
283
+ args: ['mouseup', ['$event']]
284
+ }], mouseDown: [{
285
+ type: HostListener,
286
+ args: ['touchstart', ['$event']]
287
+ }, {
288
+ type: HostListener,
289
+ args: ['mousedown', ['$event']]
290
+ }], onMouseMove: [{
291
+ type: HostListener,
292
+ args: ['touchmove', ['$event']]
293
+ }, {
294
+ type: HostListener,
295
+ args: ['mousemove', ['$event']]
296
+ }] } });
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvcmFuZ2Utc2xpZGVyL2NvbXBvbmVudHMvcmFuZ2Utc2xpZGVyL3JhbmdlLXNsaWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3JhbmdlLXNsaWRlci9jb21wb25lbnRzL3JhbmdlLXNsaWRlci9yYW5nZS1zbGlkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFnQnpFLE1BQU0sT0FBTyxvQkFBb0I7SUFxQi9CLFlBQW9CLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFwQkEsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDekMsUUFBRyxHQUFHLENBQUMsQ0FBQztRQUNSLFFBQUcsR0FBRyxHQUFHLENBQUM7UUFDVixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsaUJBQVksR0FBRyxTQUFTLENBQUM7UUFDekIsaUJBQVksR0FBRyxTQUFTLENBQUM7UUFDbEMsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFFBQUcsR0FBcUIsS0FBSyxDQUFDO1FBQzlCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFHWCxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pC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QVk7c0JBQWhELFdBQVc7dUJBQUMsc0JBQXNCO2dCQUNuQixHQUFHO3NCQUFsQixLQUFLO2dCQUNVLEdBQUc7c0JBQWxCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFhZ0MsYUFBYTtzQkFBbEQsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBbUV6QixTQUFTO3NCQURmLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBdUVyQyxTQUFTO3NCQUZmLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDbkMsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZ0JuQyxTQUFTO3NCQUZSLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDckMsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTzlCLFdBQVc7c0JBRmpCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDcEMsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgUmFuZ2VTbGlkZXJSYW5nZSB9IGZyb20gJy4uLy4uL3R5cGVzL3JhbmdlLXNsaWRlci50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1yYW5nZS1zbGlkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmFuZ2Utc2xpZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmFuZ2VTbGlkZXJDb21wb25lbnQpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSYW5nZVNsaWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm0tcmFuZ2Utc2xpZGVyJykgY29yZUJyYW5kaW5nID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIG1pbiA9IDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBtYXggPSAxMDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5pbWFsRGlzdGFuY2UgPSAxO1xuICBASW5wdXQoKSBwdWJsaWMgc3RlcCA9IDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWxCZWZvcmUgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGxhYmVsQWZ0ZXIgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGFyaWFMYWJlbE1pbiA9ICdNaW5pbXVtJztcbiAgQElucHV0KCkgcHVibGljIGFyaWFMYWJlbE1heCA9ICdNYXhpbXVtJztcbiAgcHVibGljIHN0YXJ0ID0gMDtcbiAgcHVibGljIGVuZDogbnVtYmVyIHwgYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc3RlcHMgPSBbXTtcbiAgcHVibGljIHN0YXJ0UGVyY2VudGFnZTtcbiAgcHVibGljIGVuZFBlcmNlbnRhZ2U7XG4gIHB1YmxpYyBhY3RpdmUgPSBudWxsO1xuICBwdWJsaWMgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgaGFzRm9jdXMgPSBmYWxzZTtcbiAgcHVibGljIGNsaWNrID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZikge31cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLWRpc2FibGVkJykgZ2V0IGRpc2FibGVkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBwcm9wYWdhdGVDaGFuZ2UgPSAodmFsdWU6IG51bWJlciB8IFJhbmdlU2xpZGVyUmFuZ2UpID0+IHt9O1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5zdGVwID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gdGhpcy5tYXg7IGkgKz0gTnVtYmVyKHRoaXMuc3RlcCkpIHtcbiAgICAgICAgdGhpcy5zdGVwcy5wdXNoKGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc3RhcnRQZXJjZW50YWdlID0gdGhpcy5zdGFydFRvUGVyY2VudGFnZSgpO1xuXG4gICAgaWYgKHRoaXMuZW5kKSB7XG4gICAgICB0aGlzLmVuZFBlcmNlbnRhZ2UgPSB0aGlzLmVuZFRvUGVyY2VudGFnZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUuc3RhcnQpIHtcbiAgICAgIHRoaXMuc3RhcnQgPSB2YWx1ZS5zdGFydDtcbiAgICB9IGVsc2UgaWYgKCFpc05hTih2YWx1ZSkgJiYgdmFsdWUgIT09ICcnKSB7XG4gICAgICB0aGlzLnN0YXJ0ID0gTnVtYmVyKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRTdGFydChOdW1iZXIodGhpcy5taW4pKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXJ0UGVyY2VudGFnZSA9IHRoaXMuc3RhcnRUb1BlcmNlbnRhZ2UoKTtcblxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5lbmQpIHtcbiAgICAgIHRoaXMuZW5kID0gdmFsdWUuZW5kO1xuICAgICAgdGhpcy5lbmRQZXJjZW50YWdlID0gdGhpcy5lbmRUb1BlcmNlbnRhZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoKSB7fVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuKSB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIG9uTW91c2VEb3duKGhhbmRsZSkge1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcbiAgICB0aGlzLmFjdGl2ZSA9IGhhbmRsZTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVGb2N1cyhoYXNGb2N1cywgZWxlbWVudCwgJGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaGFzRm9jdXMgPSBoYXNGb2N1cztcbiAgICB0aGlzLmFjdGl2ZSA9IGVsZW1lbnQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uS2V5RG93bigkZXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaGFzRm9jdXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSAkZXZlbnQua2V5Q29kZTtcbiAgICBjb25zdCBrZXlDb2RlcyA9IHtcbiAgICAgIGVuZDogMzUsXG4gICAgICBob21lOiAzNixcbiAgICAgIGxlZnQ6IDM3LFxuICAgICAgdXA6IDM4LFxuICAgICAgcmlnaHQ6IDM5LFxuICAgICAgZG93bjogNDAsXG4gICAgfTtcblxuICAgIGlmIChcbiAgICAgIE9iamVjdC5rZXlzKGtleUNvZGVzKVxuICAgICAgICAubWFwKChlKSA9PiBrZXlDb2Rlc1tlXSlcbiAgICAgICAgLmluZGV4T2Yoa2V5KSA9PT0gLTFcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGluY3JlbWVudCA9IHRoaXMubWluaW1hbERpc3RhbmNlO1xuXG4gICAgaWYgKHRoaXMuc3RlcCA+IDApIHtcbiAgICAgIGluY3JlbWVudCA9IE51bWJlcih0aGlzLnN0ZXApO1xuICAgIH1cblxuICAgIGNvbnN0IHByb2Nlc3NWYWx1ZSA9IChkaXIpID0+IHtcbiAgICAgIGxldCBuZXdWYWx1ZSA9IHRoaXMuYWN0aXZlID09PSAnc3RhcnQnID8gdGhpcy5zdGFydCA6IE51bWJlcih0aGlzLmVuZCk7XG4gICAgICBpZiAoZGlyID09PSAndXAnKSB7XG4gICAgICAgIG5ld1ZhbHVlICs9IGluY3JlbWVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1ZhbHVlIC09IGluY3JlbWVudDtcbiAgICAgIH1cbiAgICAgIGxldCBuZXdQZXJjZW50YWdlID0gKChuZXdWYWx1ZSAtIHRoaXMubWluKSAvICh0aGlzLm1heCAtIHRoaXMubWluKSkgKiAxMDA7XG5cbiAgICAgIGlmIChuZXdQZXJjZW50YWdlID4gMTAwKSB7XG4gICAgICAgIG5ld1BlcmNlbnRhZ2UgPSAxMDA7XG4gICAgICB9XG4gICAgICBpZiAobmV3UGVyY2VudGFnZSA8IDApIHtcbiAgICAgICAgbmV3UGVyY2VudGFnZSA9IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3UGVyY2VudGFnZTtcbiAgICB9O1xuXG4gICAgc3dpdGNoIChrZXkpIHtcbiAgICAgIGNhc2Uga2V5Q29kZXMucmlnaHQ6XG4gICAgICBjYXNlIGtleUNvZGVzLnVwOlxuICAgICAgICB0aGlzLnVwZGF0ZUhhbmRsZShwcm9jZXNzVmFsdWUoJ3VwJykpO1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIGtleUNvZGVzLmxlZnQ6XG4gICAgICBjYXNlIGtleUNvZGVzLmRvd246XG4gICAgICAgIHRoaXMudXBkYXRlSGFuZGxlKHByb2Nlc3NWYWx1ZSgnZG93bicpKTtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBrZXlDb2Rlcy5lbmQ6XG4gICAgICAgIHRoaXMudXBkYXRlSGFuZGxlKDEwMCk7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Uga2V5Q29kZXMuaG9tZTpcbiAgICAgICAgdGhpcy51cGRhdGVIYW5kbGUoMCk7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNldXAnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Nb3VzZVVwKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSAnc3RhcnQnKSB7XG4gICAgICB0aGlzLnNldFN0YXJ0KHRoaXMucm91bmQodGhpcy5zdGFydCwgdGhpcy5zdGVwLCAwKSk7XG4gICAgICB0aGlzLnN0YXJ0UGVyY2VudGFnZSA9IHRoaXMuc3RhcnRUb1BlcmNlbnRhZ2UoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hY3RpdmUgPT09ICdlbmQnKSB7XG4gICAgICB0aGlzLnNldEVuZCh0aGlzLnJvdW5kKHRoaXMuZW5kLCB0aGlzLnN0ZXAsIDApKTtcbiAgICAgIHRoaXMuZW5kUGVyY2VudGFnZSA9IHRoaXMuZW5kVG9QZXJjZW50YWdlKCk7XG4gICAgfVxuICAgIHRoaXMuY2xpY2sgPSBmYWxzZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICBtb3VzZURvd24oZXZlbnQpIHtcbiAgICB0aGlzLmNsaWNrID0gdHJ1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNobW92ZScsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlIHx8ICF0aGlzLmNsaWNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gRG8gbm90IHNlbGVjdCB0ZXh0IHdoaWxlIHNsaWRpbmdcblxuICAgIGNvbnN0IHggPVxuICAgICAgKGV2ZW50IGFzIE1vdXNlRXZlbnQpLnggIT09IHVuZGVmaW5lZCA/IChldmVudCBhcyBNb3VzZUV2ZW50KS54IDogKGV2ZW50IGFzIFRvdWNoRXZlbnQpLnRhcmdldFRvdWNoZXNbMF0ucGFnZVg7XG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBuZXdQZXJjZW50YWdlID0gdGhpcy5jYWxjUGVyY2VudGFnZSh4LCByZWN0LndpZHRoLCByZWN0LmxlZnQpO1xuICAgIHRoaXMudXBkYXRlSGFuZGxlKG5ld1BlcmNlbnRhZ2UpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUhhbmRsZShuZXdQZXJjZW50YWdlKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSAnc3RhcnQnKSB7XG4gICAgICB0aGlzLnN0YXJ0UGVyY2VudGFnZSA9IG5ld1BlcmNlbnRhZ2U7XG4gICAgICB0aGlzLnNldFN0YXJ0KHRoaXMucGVyY2VudGFnZVRvU3RhcnQoKSk7XG5cbiAgICAgIGlmICh0aGlzLm1pbmltYWxEaXN0YW5jZU5vdFJlc3BlY3RlZCgpKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhcnQoTnVtYmVyKHRoaXMuZW5kKSAtIE51bWJlcih0aGlzLm1pbmltYWxEaXN0YW5jZSkpO1xuICAgICAgICB0aGlzLnN0YXJ0UGVyY2VudGFnZSA9IHRoaXMuc3RhcnRUb1BlcmNlbnRhZ2UoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5hY3RpdmUgPT09ICdlbmQnICYmIHRoaXMuZW5kUGVyY2VudGFnZSkge1xuICAgICAgdGhpcy5lbmRQZXJjZW50YWdlID0gbmV3UGVyY2VudGFnZTtcbiAgICAgIHRoaXMuc2V0RW5kKHRoaXMucGVyY2VudGFnZVRvRW5kKCkpO1xuXG4gICAgICBpZiAodGhpcy5taW5pbWFsRGlzdGFuY2VOb3RSZXNwZWN0ZWQoKSkge1xuICAgICAgICB0aGlzLnNldEVuZChOdW1iZXIodGhpcy5zdGFydCkgKyBOdW1iZXIodGhpcy5taW5pbWFsRGlzdGFuY2UpKTtcbiAgICAgICAgdGhpcy5lbmRQZXJjZW50YWdlID0gdGhpcy5lbmRUb1BlcmNlbnRhZ2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tIEhFTFBFUlMgLS0tLS0tLS0tLSAvL1xuICBwdWJsaWMgc2V0U3RhcnQodmFsdWUpIHtcbiAgICB0aGlzLnN0YXJ0ID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5lbmQpIHtcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHtcbiAgICAgICAgc3RhcnQ6IHRoaXMuc3RhcnQsXG4gICAgICAgIGVuZDogdGhpcy5lbmQsXG4gICAgICB9IGFzIFJhbmdlU2xpZGVyUmFuZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnN0YXJ0KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RW5kKHZhbHVlKSB7XG4gICAgdGhpcy5lbmQgPSB2YWx1ZTtcblxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHtcbiAgICAgIHN0YXJ0OiB0aGlzLnN0YXJ0LFxuICAgICAgZW5kOiB0aGlzLmVuZCxcbiAgICB9IGFzIFJhbmdlU2xpZGVyUmFuZ2UpO1xuICB9XG5cbiAgcHVibGljIHJvdW5kKG4sIGluY3JlbWVudCwgb2Zmc2V0KSB7XG4gICAgaWYgKGluY3JlbWVudCA+IDApIHtcbiAgICAgIHJldHVybiBNYXRoLnJvdW5kKChuIC0gb2Zmc2V0KSAvIGluY3JlbWVudCkgKiBpbmNyZW1lbnQgKyBvZmZzZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG47XG4gIH1cblxuICBwdWJsaWMgc3RhcnRUb1BlcmNlbnRhZ2UoKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoKCh0aGlzLnN0YXJ0IC0gdGhpcy5taW4pIC8gKHRoaXMubWF4IC0gdGhpcy5taW4pKSAqIDEwMCk7XG4gIH1cblxuICBwdWJsaWMgcGVyY2VudGFnZVRvU3RhcnQoKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoKHRoaXMuc3RhcnRQZXJjZW50YWdlIC8gMTAwKSAqICh0aGlzLm1heCAtIHRoaXMubWluKSArIE51bWJlcih0aGlzLm1pbikpO1xuICB9XG5cbiAgcHVibGljIGVuZFRvUGVyY2VudGFnZSgpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCgoKE51bWJlcih0aGlzLmVuZCkgLSB0aGlzLm1pbikgLyAodGhpcy5tYXggLSB0aGlzLm1pbikpICogMTAwKTtcbiAgfVxuXG4gIHB1YmxpYyBwZXJjZW50YWdlVG9FbmQoKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoKHRoaXMuZW5kUGVyY2VudGFnZSAvIDEwMCkgKiAodGhpcy5tYXggLSB0aGlzLm1pbikgKyBOdW1iZXIodGhpcy5taW4pKTtcbiAgfVxuXG4gIHB1YmxpYyBtaW5pbWFsRGlzdGFuY2VOb3RSZXNwZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWluaW1hbERpc3RhbmNlID49IDAgJiYgdGhpcy5lbmQgJiYgdGhpcy5zdGFydCA+IE51bWJlcih0aGlzLmVuZCkgLSB0aGlzLm1pbmltYWxEaXN0YW5jZTtcbiAgfVxuXG4gIHB1YmxpYyBjYWxjUGVyY2VudGFnZShtb3VzZVgsIHdpZHRoLCBvZmZzZXRMZWZ0KSB7XG4gICAgY29uc3QgbW91c2VQb3MgPSBtb3VzZVggLSBvZmZzZXRMZWZ0O1xuXG4gICAgbGV0IG5ld1BlcmNlbnRhZ2UgPSBNYXRoLnJvdW5kKChtb3VzZVBvcyAvIHdpZHRoKSAqIDEwMCk7XG5cbiAgICBpZiAobmV3UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgbmV3UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9XG5cbiAgICBpZiAobmV3UGVyY2VudGFnZSA8IDApIHtcbiAgICAgIG5ld1BlcmNlbnRhZ2UgPSAwO1xuICAgIH1cblxuICAgIHJldHVybiBuZXdQZXJjZW50YWdlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYS1yYW5nZS1zbGlkZXJcIj5cbiAgPGRpdiBjbGFzcz1cImEtcmFuZ2Utc2xpZGVyX19sYWJlbHNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYS1yYW5nZS1zbGlkZXJfX2xhYmVsXCI+e3sgbGFiZWwgfX08L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhLXJhbmdlLXNsaWRlcl9faW5uZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYS1yYW5nZS1zbGlkZXJfX3RpY2ttYXJrc1wiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiYS1yYW5nZS1zbGlkZXJfX3RpY2ttYXJrXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgW3N0eWxlLmxlZnRdPVwiZW5kUGVyY2VudGFnZSA/IHN0YXJ0UGVyY2VudGFnZSArICclJyA6IGZhbHNlXCJcbiAgICAgIFtzdHlsZS53aWR0aF09XCJlbmRQZXJjZW50YWdlID8gZW5kUGVyY2VudGFnZSAtIHN0YXJ0UGVyY2VudGFnZSArICclJyA6IHN0YXJ0UGVyY2VudGFnZSArICclJ1wiXG4gICAgICBjbGFzcz1cImEtcmFuZ2Utc2xpZGVyX19iYXJcIlxuICAgID48L2Rpdj5cbiAgICA8c3BhblxuICAgICAgKGJsdXIpPVwidG9nZ2xlRm9jdXMoZmFsc2UsIG51bGwsICRldmVudClcIlxuICAgICAgKGRyYWdleGl0KT1cIm9uTW91c2VVcCgkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJ0b2dnbGVGb2N1cyh0cnVlLCAnc3RhcnQnLCAkZXZlbnQpXCJcbiAgICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJ3N0YXJ0JylcIlxuICAgICAgKHRvdWNoc3RhcnQpPVwib25Nb3VzZURvd24oJ3N0YXJ0JylcIlxuICAgICAgW3N0eWxlLmxlZnRdPVwic3RhcnRQZXJjZW50YWdlICsgJyUnXCJcbiAgICAgIGNsYXNzPVwiYS1yYW5nZS1zbGlkZXJfX2hhbmRsZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbE1pblwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgID5cbiAgICA8L3NwYW4+XG5cbiAgICA8c3BhblxuICAgICAgKGJsdXIpPVwidG9nZ2xlRm9jdXMoZmFsc2UsIG51bGwsICRldmVudClcIlxuICAgICAgKGRyYWdleGl0KT1cIm9uTW91c2VVcCgkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJ0b2dnbGVGb2N1cyh0cnVlLCAnZW5kJywgJGV2ZW50KVwiXG4gICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCdlbmQnKVwiXG4gICAgICAodG91Y2hzdGFydCk9XCJvbk1vdXNlRG93bignZW5kJylcIlxuICAgICAgKm5nSWY9XCJlbmRcIlxuICAgICAgW3N0eWxlLmxlZnRdPVwiZW5kUGVyY2VudGFnZSArICclJ1wiXG4gICAgICBjbGFzcz1cImEtcmFuZ2Utc2xpZGVyX19oYW5kbGVcIlxuICAgICAgbmFtZT1cImEtcmFuZ2Utc2xpZGVyX19oYW5kbGVfX2VuZFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbE1heFwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgID5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYS1yYW5nZS1zbGlkZXJfX2Rlc2NyaXB0aW9uc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJhLXJhbmdlLXNsaWRlcl9fZGVzY3JpcHRpb24gc21hbGxcIj57eyBsYWJlbEJlZm9yZSB9fXt7IG1pbiB9fXt7IGxhYmVsQWZ0ZXIgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYS1yYW5nZS1zbGlkZXJfX2Rlc2NyaXB0aW9uIHNtYWxsXCI+e3sgbGFiZWxCZWZvcmUgfX17eyBtYXggfX17eyBsYWJlbEFmdGVyIH19PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -5,16 +5,15 @@ import { RangeSliderComponent } from './components/range-slider/range-slider.com
5
5
  import * as i0 from "@angular/core";
6
6
  export class RangeSliderModule {
7
7
  }
8
- /** @nocollapse */ RangeSliderModule.ɵfac = function RangeSliderModule_Factory(t) { return new (t || RangeSliderModule)(); };
9
- /** @nocollapse */ RangeSliderModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: RangeSliderModule });
10
- /** @nocollapse */ RangeSliderModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [CommonModule, FormsModule] });
11
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RangeSliderModule, [{
12
- type: NgModule,
13
- args: [{
14
- imports: [CommonModule, FormsModule],
15
- declarations: [RangeSliderComponent],
16
- exports: [RangeSliderComponent],
17
- }]
18
- }], null, null); })();
19
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(RangeSliderModule, { declarations: [RangeSliderComponent], imports: [CommonModule, FormsModule], exports: [RangeSliderComponent] }); })();
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcmFuZ2Utc2xpZGVyL3JhbmdlLXNsaWRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOztBQU94RixNQUFNLE9BQU8saUJBQWlCOztxR0FBakIsaUJBQWlCO2tHQUFqQixpQkFBaUI7c0dBSmxCLFlBQVksRUFBRSxXQUFXO3VGQUl4QixpQkFBaUI7Y0FMN0IsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7Z0JBQ3BDLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNwQyxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzthQUNoQzs7d0ZBQ1ksaUJBQWlCLG1CQUhiLG9CQUFvQixhQUR6QixZQUFZLEVBQUUsV0FBVyxhQUV6QixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmFuZ2VTbGlkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmFuZ2Utc2xpZGVyL3JhbmdlLXNsaWRlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1JhbmdlU2xpZGVyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1JhbmdlU2xpZGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUmFuZ2VTbGlkZXJNb2R1bGUge31cbiJdfQ==
8
+ /** @nocollapse */ RangeSliderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RangeSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ /** @nocollapse */ RangeSliderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: RangeSliderModule, declarations: [RangeSliderComponent], imports: [CommonModule, FormsModule], exports: [RangeSliderComponent] });
10
+ /** @nocollapse */ RangeSliderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RangeSliderModule, imports: [CommonModule, FormsModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RangeSliderModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule, FormsModule],
15
+ declarations: [RangeSliderComponent],
16
+ exports: [RangeSliderComponent],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2Utc2xpZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcmFuZ2Utc2xpZGVyL3JhbmdlLXNsaWRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOztBQU94RixNQUFNLE9BQU8saUJBQWlCOztpSUFBakIsaUJBQWlCO2tJQUFqQixpQkFBaUIsaUJBSGIsb0JBQW9CLGFBRHpCLFlBQVksRUFBRSxXQUFXLGFBRXpCLG9CQUFvQjtrSUFFbkIsaUJBQWlCLFlBSmxCLFlBQVksRUFBRSxXQUFXOzJGQUl4QixpQkFBaUI7a0JBTDdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSYW5nZVNsaWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yYW5nZS1zbGlkZXIvcmFuZ2Utc2xpZGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbUmFuZ2VTbGlkZXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbUmFuZ2VTbGlkZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBSYW5nZVNsaWRlck1vZHVsZSB7fVxuIl19