@scion/components 17.0.0 → 18.0.1

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 (39) hide show
  1. package/_scrollbar.scss +7 -0
  2. package/dimension/dimension.directive.d.ts +18 -25
  3. package/dimension/package.json +3 -0
  4. package/esm2022/dimension/dimension.directive.mjs +33 -53
  5. package/esm2022/dimension/dimension.module.mjs +4 -4
  6. package/esm2022/sashbox/element-ref.directive.mjs +3 -3
  7. package/esm2022/sashbox/sash-initializer.directive.mjs +3 -3
  8. package/esm2022/sashbox/sash.directive.mjs +4 -4
  9. package/esm2022/sashbox/sashbox.component.mjs +40 -44
  10. package/esm2022/sashbox/sashbox.module.mjs +4 -4
  11. package/esm2022/splitter/splitter.component.mjs +5 -5
  12. package/esm2022/splitter/splitter.module.mjs +4 -4
  13. package/esm2022/throbber/ellipsis-throbber/ellipsis-throbber.component.mjs +4 -4
  14. package/esm2022/throbber/ripple-throbber/ripple-throbber.component.mjs +4 -4
  15. package/esm2022/throbber/roller-throbber/roller-throbber.component.mjs +4 -4
  16. package/esm2022/throbber/spinner-throbber/spinner-throbber.component.mjs +4 -4
  17. package/esm2022/throbber/throbber.component.mjs +5 -9
  18. package/esm2022/throbber/throbber.module.mjs +4 -4
  19. package/esm2022/viewport/native-scrollbar-track-size-provider.service.mjs +4 -4
  20. package/esm2022/viewport/scrollable.directive.mjs +4 -4
  21. package/esm2022/viewport/scrollbar/scrollbar.component.mjs +8 -8
  22. package/esm2022/viewport/viewport.component.mjs +6 -7
  23. package/esm2022/viewport/viewport.module.mjs +4 -4
  24. package/fesm2022/scion-components-dimension.mjs +36 -56
  25. package/fesm2022/scion-components-dimension.mjs.map +1 -1
  26. package/fesm2022/scion-components-sashbox.mjs +52 -56
  27. package/fesm2022/scion-components-sashbox.mjs.map +1 -1
  28. package/fesm2022/scion-components-splitter.mjs +8 -8
  29. package/fesm2022/scion-components-splitter.mjs.map +1 -1
  30. package/fesm2022/scion-components-throbber.mjs +24 -28
  31. package/fesm2022/scion-components-throbber.mjs.map +1 -1
  32. package/fesm2022/scion-components-viewport.mjs +22 -23
  33. package/fesm2022/scion-components-viewport.mjs.map +1 -1
  34. package/package.json +5 -6
  35. package/sashbox/package.json +3 -0
  36. package/sashbox/sashbox.component.d.ts +4 -3
  37. package/splitter/package.json +3 -0
  38. package/throbber/package.json +3 -0
  39. package/viewport/package.json +3 -0
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The package.json standard allows specifying conditional exports, not only for JavaScript files, but also for SASS files.
3
+ * They are supported by the Angular compiler, but not yet by all IDEs. Therefore, we additionally provide this entry point.
4
+ * See https://nodejs.org/api/packages.html#conditional-exports for more information about conditional SASS exports.
5
+ *
6
+ */
7
+ @forward './viewport/scrollbar';
@@ -1,43 +1,36 @@
1
- import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';
2
- import { Dimension } from '@scion/toolkit/observable';
3
1
  import * as i0 from "@angular/core";
4
2
  /**
5
- * Allows observing changes to host element's size.
3
+ * Observes changes to the size of the host element.
6
4
  *
7
- * See {@link fromDimension$} Observable for more information.
5
+ * Upon subscription, emits the current size, and then continuously when the size changes. The Observable never completes.
8
6
  *
9
7
  * ---
10
8
  * Usage:
11
9
  *
10
+ * ```html
12
11
  * <div sciDimension (sciDimensionChange)="onDimensionChange($event)"></div>
12
+ * ```
13
13
  */
14
- export declare class SciDimensionDirective implements OnInit, OnDestroy {
15
- private _ngZone;
16
- private readonly _host;
17
- private _destroy$;
14
+ export declare class SciDimensionDirective {
18
15
  /**
19
- * Upon subscription, it emits the host element's dimension, and then continuously emits when the dimension of the host element changes.
16
+ * Controls if to emit outside the Angular zone. Defaults to `false`.
20
17
  */
21
- dimensionChange: EventEmitter<Dimension>;
18
+ emitOutsideAngular: import("@angular/core").InputSignal<boolean>;
22
19
  /**
23
- * Controls if to emit a dimension change inside or outside of the Angular zone.
24
- * If emitted outside of the Angular zone no change detection cycle is triggered.
25
- *
26
- * By default, if not specified, emits inside the Angular zone.
20
+ * Upon subscription, emits the current size, and then continuously when the size changes. The Observable never completes.
27
21
  */
28
- emitOutsideAngular: boolean;
29
- constructor(host: ElementRef<HTMLElement>, _ngZone: NgZone);
30
- ngOnInit(): void;
31
- private installDimensionListener;
32
- /**
33
- * Returns the current dimension of its host element.
34
- */
35
- get dimension(): SciDimension;
36
- ngOnDestroy(): void;
22
+ dimensionChange: import("@angular/core").OutputEmitterRef<SciDimension>;
23
+ constructor();
37
24
  static ɵfac: i0.ɵɵFactoryDeclaration<SciDimensionDirective, never>;
38
- static ɵdir: i0.ɵɵDirectiveDeclaration<SciDimensionDirective, "[sciDimension]", ["sciDimension"], { "emitOutsideAngular": { "alias": "emitOutsideAngular"; "required": false; }; }, { "dimensionChange": "sciDimensionChange"; }, never, never, true, never>;
25
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SciDimensionDirective, "[sciDimension]", never, { "emitOutsideAngular": { "alias": "emitOutsideAngular"; "required": false; "isSignal": true; }; }, { "dimensionChange": "sciDimensionChange"; }, never, never, true, never>;
39
26
  }
40
27
  /**
41
28
  * Represents the dimension of an element.
42
29
  */
43
- export type SciDimension = Dimension;
30
+ export interface SciDimension {
31
+ offsetWidth: number;
32
+ offsetHeight: number;
33
+ clientWidth: number;
34
+ clientHeight: number;
35
+ element: HTMLElement;
36
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/scion-components-dimension.mjs"
3
+ }
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2018-2019 Swiss Federal Railways
2
+ * Copyright (c) 2018-2024 Swiss Federal Railways
3
3
  *
4
4
  * This program and the accompanying materials are made
5
5
  * available under the terms of the Eclipse Public License 2.0
@@ -7,78 +7,58 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  */
10
- import { Directive, EventEmitter, Input, Output } from '@angular/core';
11
- import { Subject } from 'rxjs';
12
- import { takeUntil } from 'rxjs/operators';
13
- import { captureElementDimension, fromDimension$ } from '@scion/toolkit/observable';
10
+ import { Directive, ElementRef, inject, input, NgZone, output } from '@angular/core';
11
+ import { fromResize$ } from '@scion/toolkit/observable';
12
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
13
+ import { observeInside, subscribeInside } from '@scion/toolkit/operators';
14
+ import { animationFrameScheduler, observeOn, subscribeOn } from 'rxjs';
14
15
  import * as i0 from "@angular/core";
15
16
  /**
16
- * Allows observing changes to host element's size.
17
+ * Observes changes to the size of the host element.
17
18
  *
18
- * See {@link fromDimension$} Observable for more information.
19
+ * Upon subscription, emits the current size, and then continuously when the size changes. The Observable never completes.
19
20
  *
20
21
  * ---
21
22
  * Usage:
22
23
  *
24
+ * ```html
23
25
  * <div sciDimension (sciDimensionChange)="onDimensionChange($event)"></div>
26
+ * ```
24
27
  */
25
28
  export class SciDimensionDirective {
26
- constructor(host, _ngZone) {
27
- this._ngZone = _ngZone;
28
- this._destroy$ = new Subject();
29
+ constructor() {
29
30
  /**
30
- * Upon subscription, it emits the host element's dimension, and then continuously emits when the dimension of the host element changes.
31
+ * Controls if to emit outside the Angular zone. Defaults to `false`.
31
32
  */
32
- this.dimensionChange = new EventEmitter();
33
+ this.emitOutsideAngular = input(false);
33
34
  /**
34
- * Controls if to emit a dimension change inside or outside of the Angular zone.
35
- * If emitted outside of the Angular zone no change detection cycle is triggered.
36
- *
37
- * By default, if not specified, emits inside the Angular zone.
35
+ * Upon subscription, emits the current size, and then continuously when the size changes. The Observable never completes.
38
36
  */
39
- this.emitOutsideAngular = false;
40
- this._host = host.nativeElement;
41
- }
42
- ngOnInit() {
43
- this.installDimensionListener();
44
- }
45
- installDimensionListener() {
46
- this._ngZone.runOutsideAngular(() => {
47
- fromDimension$(this._host)
48
- .pipe(takeUntil(this._destroy$))
49
- .subscribe((dimension) => {
50
- if (this.emitOutsideAngular) {
51
- this.dimensionChange.emit(dimension);
52
- }
53
- else {
54
- this._ngZone.run(() => this.dimensionChange.emit(dimension));
55
- }
37
+ this.dimensionChange = output({ alias: 'sciDimensionChange' });
38
+ const host = inject((ElementRef)).nativeElement;
39
+ const zone = inject(NgZone);
40
+ fromResize$(host)
41
+ .pipe(subscribeInside(continueFn => zone.runOutsideAngular(continueFn)), observeInside(continueFn => this.emitOutsideAngular() ? continueFn() : zone.run(continueFn)), subscribeOn(animationFrameScheduler), // to not block resize callback (ResizeObserver loop completed with undelivered notifications)
42
+ observeOn(animationFrameScheduler), // to not block resize callback (ResizeObserver loop completed with undelivered notifications)
43
+ takeUntilDestroyed())
44
+ .subscribe(() => {
45
+ this.dimensionChange.emit({
46
+ clientWidth: host.clientWidth,
47
+ offsetWidth: host.offsetWidth,
48
+ clientHeight: host.clientHeight,
49
+ offsetHeight: host.offsetHeight,
50
+ element: host,
56
51
  });
57
52
  });
58
53
  }
59
- /**
60
- * Returns the current dimension of its host element.
61
- */
62
- get dimension() {
63
- return captureElementDimension(this._host);
64
- }
65
- ngOnDestroy() {
66
- this._destroy$.next();
67
- }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciDimensionDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
69
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: SciDimensionDirective, isStandalone: true, selector: "[sciDimension]", inputs: { emitOutsideAngular: "emitOutsideAngular" }, outputs: { dimensionChange: "sciDimensionChange" }, exportAs: ["sciDimension"], ngImport: i0 }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
55
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.1", type: SciDimensionDirective, isStandalone: true, selector: "[sciDimension]", inputs: { emitOutsideAngular: { classPropertyName: "emitOutsideAngular", publicName: "emitOutsideAngular", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dimensionChange: "sciDimensionChange" }, ngImport: i0 }); }
70
56
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciDimensionDirective, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionDirective, decorators: [{
72
58
  type: Directive,
73
59
  args: [{
74
60
  selector: '[sciDimension]',
75
- exportAs: 'sciDimension',
76
61
  standalone: true,
77
62
  }]
78
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dimensionChange: [{
79
- type: Output,
80
- args: ['sciDimensionChange']
81
- }], emitOutsideAngular: [{
82
- type: Input
83
- }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvZGltZW5zaW9uL3NyYy9kaW1lbnNpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUE2QixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLHVCQUF1QixFQUFhLGNBQWMsRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQUU3Rjs7Ozs7Ozs7O0dBU0c7QUFNSCxNQUFNLE9BQU8scUJBQXFCO0lBb0JoQyxZQUFZLElBQTZCLEVBQVUsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFqQjFELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXhDOztXQUVHO1FBRUksb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUUxRDs7Ozs7V0FLRztRQUVJLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUdoQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDbEMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2xDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2lCQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDL0IsU0FBUyxDQUFDLENBQUMsU0FBdUIsRUFBRSxFQUFFO2dCQUNyQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtvQkFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3RDO3FCQUNJO29CQUNILElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7aUJBQzlEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsU0FBUztRQUNsQixPQUFPLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7OEdBcERVLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7b0dBVVEsZUFBZTtzQkFEckIsTUFBTTt1QkFBQyxvQkFBb0I7Z0JBVXJCLGtCQUFrQjtzQkFEeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2NhcHR1cmVFbGVtZW50RGltZW5zaW9uLCBEaW1lbnNpb24sIGZyb21EaW1lbnNpb24kfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vYnNlcnZhYmxlJztcblxuLyoqXG4gKiBBbGxvd3Mgb2JzZXJ2aW5nIGNoYW5nZXMgdG8gaG9zdCBlbGVtZW50J3Mgc2l6ZS5cbiAqXG4gKiBTZWUge0BsaW5rIGZyb21EaW1lbnNpb24kfSBPYnNlcnZhYmxlIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIC0tLVxuICogVXNhZ2U6XG4gKlxuICogPGRpdiBzY2lEaW1lbnNpb24gKHNjaURpbWVuc2lvbkNoYW5nZSk9XCJvbkRpbWVuc2lvbkNoYW5nZSgkZXZlbnQpXCI+PC9kaXY+XG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzY2lEaW1lbnNpb25dJyxcbiAgZXhwb3J0QXM6ICdzY2lEaW1lbnNpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTY2lEaW1lbnNpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaG9zdDogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogVXBvbiBzdWJzY3JpcHRpb24sIGl0IGVtaXRzIHRoZSBob3N0IGVsZW1lbnQncyBkaW1lbnNpb24sIGFuZCB0aGVuIGNvbnRpbnVvdXNseSBlbWl0cyB3aGVuIHRoZSBkaW1lbnNpb24gb2YgdGhlIGhvc3QgZWxlbWVudCBjaGFuZ2VzLlxuICAgKi9cbiAgQE91dHB1dCgnc2NpRGltZW5zaW9uQ2hhbmdlJykgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LXJlbmFtZVxuICBwdWJsaWMgZGltZW5zaW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTY2lEaW1lbnNpb24+KCk7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIGlmIHRvIGVtaXQgYSBkaW1lbnNpb24gY2hhbmdlIGluc2lkZSBvciBvdXRzaWRlIG9mIHRoZSBBbmd1bGFyIHpvbmUuXG4gICAqIElmIGVtaXR0ZWQgb3V0c2lkZSBvZiB0aGUgQW5ndWxhciB6b25lIG5vIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUgaXMgdHJpZ2dlcmVkLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBpZiBub3Qgc3BlY2lmaWVkLCBlbWl0cyBpbnNpZGUgdGhlIEFuZ3VsYXIgem9uZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbWl0T3V0c2lkZUFuZ3VsYXIgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLl9ob3N0ID0gaG9zdC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5zdGFsbERpbWVuc2lvbkxpc3RlbmVyKCk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxEaW1lbnNpb25MaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbURpbWVuc2lvbiQodGhpcy5faG9zdClcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZGltZW5zaW9uOiBTY2lEaW1lbnNpb24pID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5lbWl0T3V0c2lkZUFuZ3VsYXIpIHtcbiAgICAgICAgICAgIHRoaXMuZGltZW5zaW9uQ2hhbmdlLmVtaXQoZGltZW5zaW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHRoaXMuZGltZW5zaW9uQ2hhbmdlLmVtaXQoZGltZW5zaW9uKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGRpbWVuc2lvbiBvZiBpdHMgaG9zdCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGdldCBkaW1lbnNpb24oKTogU2NpRGltZW5zaW9uIHtcbiAgICByZXR1cm4gY2FwdHVyZUVsZW1lbnREaW1lbnNpb24odGhpcy5faG9zdCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgZGltZW5zaW9uIG9mIGFuIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFNjaURpbWVuc2lvbiA9IERpbWVuc2lvbjtcbiJdfQ==
63
+ }], ctorParameters: () => [] });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvZGltZW5zaW9uL3NyYy9kaW1lbnNpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsYUFBYSxFQUFFLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUVyRTs7Ozs7Ozs7Ozs7R0FXRztBQUtILE1BQU0sT0FBTyxxQkFBcUI7SUFZaEM7UUFWQTs7V0FFRztRQUNJLHVCQUFrQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6Qzs7V0FFRztRQUNJLG9CQUFlLEdBQUcsTUFBTSxDQUFlLEVBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFDLENBQUMsQ0FBQztRQUczRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDM0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVCLFdBQVcsQ0FBQyxJQUFJLENBQUM7YUFDZCxJQUFJLENBQ0gsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQ2pFLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUM1RixXQUFXLENBQUMsdUJBQXVCLENBQUMsRUFBRSw4RkFBOEY7UUFDcEksU0FBUyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsOEZBQThGO1FBQ2xJLGtCQUFrQixFQUFFLENBQ3JCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUN4QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQWpDVSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgTmdab25lLCBvdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmcm9tUmVzaXplJH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb2JzZXJ2YWJsZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtvYnNlcnZlSW5zaWRlLCBzdWJzY3JpYmVJbnNpZGV9IGZyb20gJ0BzY2lvbi90b29sa2l0L29wZXJhdG9ycyc7XG5pbXBvcnQge2FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLCBvYnNlcnZlT24sIHN1YnNjcmliZU9ufSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBPYnNlcnZlcyBjaGFuZ2VzIHRvIHRoZSBzaXplIG9mIHRoZSBob3N0IGVsZW1lbnQuXG4gKlxuICogVXBvbiBzdWJzY3JpcHRpb24sIGVtaXRzIHRoZSBjdXJyZW50IHNpemUsIGFuZCB0aGVuIGNvbnRpbnVvdXNseSB3aGVuIHRoZSBzaXplIGNoYW5nZXMuIFRoZSBPYnNlcnZhYmxlIG5ldmVyIGNvbXBsZXRlcy5cbiAqXG4gKiAtLS1cbiAqIFVzYWdlOlxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgc2NpRGltZW5zaW9uIChzY2lEaW1lbnNpb25DaGFuZ2UpPVwib25EaW1lbnNpb25DaGFuZ2UoJGV2ZW50KVwiPjwvZGl2PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzY2lEaW1lbnNpb25dJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpRGltZW5zaW9uRGlyZWN0aXZlIHtcblxuICAvKipcbiAgICogQ29udHJvbHMgaWYgdG8gZW1pdCBvdXRzaWRlIHRoZSBBbmd1bGFyIHpvbmUuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBwdWJsaWMgZW1pdE91dHNpZGVBbmd1bGFyID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBVcG9uIHN1YnNjcmlwdGlvbiwgZW1pdHMgdGhlIGN1cnJlbnQgc2l6ZSwgYW5kIHRoZW4gY29udGludW91c2x5IHdoZW4gdGhlIHNpemUgY2hhbmdlcy4gVGhlIE9ic2VydmFibGUgbmV2ZXIgY29tcGxldGVzLlxuICAgKi9cbiAgcHVibGljIGRpbWVuc2lvbkNoYW5nZSA9IG91dHB1dDxTY2lEaW1lbnNpb24+KHthbGlhczogJ3NjaURpbWVuc2lvbkNoYW5nZSd9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBob3N0ID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KS5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHpvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIGZyb21SZXNpemUkKGhvc3QpXG4gICAgICAucGlwZShcbiAgICAgICAgc3Vic2NyaWJlSW5zaWRlKGNvbnRpbnVlRm4gPT4gem9uZS5ydW5PdXRzaWRlQW5ndWxhcihjb250aW51ZUZuKSksXG4gICAgICAgIG9ic2VydmVJbnNpZGUoY29udGludWVGbiA9PiB0aGlzLmVtaXRPdXRzaWRlQW5ndWxhcigpID8gY29udGludWVGbigpIDogem9uZS5ydW4oY29udGludWVGbikpLFxuICAgICAgICBzdWJzY3JpYmVPbihhbmltYXRpb25GcmFtZVNjaGVkdWxlciksIC8vIHRvIG5vdCBibG9jayByZXNpemUgY2FsbGJhY2sgKFJlc2l6ZU9ic2VydmVyIGxvb3AgY29tcGxldGVkIHdpdGggdW5kZWxpdmVyZWQgbm90aWZpY2F0aW9ucylcbiAgICAgICAgb2JzZXJ2ZU9uKGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKSwgLy8gdG8gbm90IGJsb2NrIHJlc2l6ZSBjYWxsYmFjayAoUmVzaXplT2JzZXJ2ZXIgbG9vcCBjb21wbGV0ZWQgd2l0aCB1bmRlbGl2ZXJlZCBub3RpZmljYXRpb25zKVxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmRpbWVuc2lvbkNoYW5nZS5lbWl0KHtcbiAgICAgICAgICBjbGllbnRXaWR0aDogaG9zdC5jbGllbnRXaWR0aCxcbiAgICAgICAgICBvZmZzZXRXaWR0aDogaG9zdC5vZmZzZXRXaWR0aCxcbiAgICAgICAgICBjbGllbnRIZWlnaHQ6IGhvc3QuY2xpZW50SGVpZ2h0LFxuICAgICAgICAgIG9mZnNldEhlaWdodDogaG9zdC5vZmZzZXRIZWlnaHQsXG4gICAgICAgICAgZWxlbWVudDogaG9zdCxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGRpbWVuc2lvbiBvZiBhbiBlbGVtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjaURpbWVuc2lvbiB7XG4gIG9mZnNldFdpZHRoOiBudW1iZXI7XG4gIG9mZnNldEhlaWdodDogbnVtYmVyO1xuICBjbGllbnRXaWR0aDogbnVtYmVyO1xuICBjbGllbnRIZWlnaHQ6IG51bWJlcjtcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG59XG4iXX0=
@@ -16,11 +16,11 @@ import * as i0 from "@angular/core";
16
16
  * @see fromDimension$
17
17
  */
18
18
  export class SciDimensionModule {
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciDimensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: SciDimensionModule, imports: [SciDimensionDirective], exports: [SciDimensionDirective] }); }
21
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciDimensionModule }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionModule, imports: [SciDimensionDirective], exports: [SciDimensionDirective] }); }
21
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionModule }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciDimensionModule, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciDimensionModule, decorators: [{
24
24
  type: NgModule,
25
25
  args: [{
26
26
  imports: [
@@ -17,10 +17,10 @@ export class SciElementRefDirective {
17
17
  this.host = host;
18
18
  this.nativeElement = host.nativeElement;
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciElementRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: SciElementRefDirective, isStandalone: true, selector: "[sciElementRef]", exportAs: ["sciElementRef"], ngImport: i0 }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciElementRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: SciElementRefDirective, isStandalone: true, selector: "[sciElementRef]", exportAs: ["sciElementRef"], ngImport: i0 }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciElementRefDirective, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciElementRefDirective, decorators: [{
24
24
  type: Directive,
25
25
  args: [{
26
26
  selector: '[sciElementRef]',
@@ -19,10 +19,10 @@ export class SciSashInitializerDirective {
19
19
  ngOnChanges(changes) {
20
20
  this.sash.element = this._host.nativeElement;
21
21
  }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSashInitializerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
23
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: SciSashInitializerDirective, isStandalone: true, selector: "div[sciSashInitializer].sash", inputs: { sash: ["sciSashInitializer", "sash"] }, usesOnChanges: true, ngImport: i0 }); }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashInitializerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
23
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: SciSashInitializerDirective, isStandalone: true, selector: "div[sciSashInitializer].sash", inputs: { sash: ["sciSashInitializer", "sash"] }, usesOnChanges: true, ngImport: i0 }); }
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSashInitializerDirective, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashInitializerDirective, decorators: [{
26
26
  type: Directive,
27
27
  args: [{
28
28
  selector: 'div[sciSashInitializer].sash',
@@ -127,10 +127,10 @@ export class SciSashDirective {
127
127
  }
128
128
  return flexGrow / flexGrowSum;
129
129
  }
130
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSashDirective, deps: [{ token: i0.TemplateRef }, { token: i1.SciSashBoxAccessor }], target: i0.ɵɵFactoryTarget.Directive }); }
131
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: SciSashDirective, isStandalone: true, selector: "ng-template[sciSash]", inputs: { size: "size", minSize: "minSize" }, exportAs: ["sciSash"], usesOnChanges: true, ngImport: i0 }); }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashDirective, deps: [{ token: i0.TemplateRef }, { token: i1.SciSashBoxAccessor }], target: i0.ɵɵFactoryTarget.Directive }); }
131
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: SciSashDirective, isStandalone: true, selector: "ng-template[sciSash]", inputs: { size: "size", minSize: "minSize" }, exportAs: ["sciSash"], usesOnChanges: true, ngImport: i0 }); }
132
132
  }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSashDirective, decorators: [{
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashDirective, decorators: [{
134
134
  type: Directive,
135
135
  args: [{
136
136
  selector: 'ng-template[sciSash]',
@@ -142,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
142
142
  }], minSize: [{
143
143
  type: Input
144
144
  }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FzaC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3Nhc2hib3gvc3JjL3Nhc2guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQWdELE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQUU5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBTUgsTUFBTSxPQUFPLGdCQUFnQjtJQUszQjs7Ozs7O09BTUc7SUFDSCxJQUNXLElBQUksQ0FBQyxJQUF3QztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBZ0JEOztPQUVHO0lBQ0gsSUFBVyxRQUFRLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQW1CRCxZQUE0QixZQUErQixFQUFVLGdCQUFvQztRQUE3RSxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBaEVqRyxVQUFLLEdBQW9CLEdBQUcsQ0FBQztRQUM3QixlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFnRWxELElBQUksQ0FB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U3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NjaVNhc2hCb3hBY2Nlc3Nvcn0gZnJvbSAnLi9zYXNoYm94LWFjY2Vzc29yJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogVXNlIHRoaXMgZGlyZWN0aXZlIHRvIG1vZGVsIGEgc2FzaCBmb3Ige0BsaW5rIFNjaVNhc2hib3hDb21wb25lbnR9LlxuICogVGhlIGhvc3QgZWxlbWVudCBvZiB0aGlzIG1vZGVsbGluZyBkaXJlY3RpdmUgbXVzdCBiZSBhIDxuZy10ZW1wbGF0ZT4gd2hpY2ggaXMgdXNlZCBhcyBzYXNoIHRlbXBsYXRlLlxuICpcbiAqXG4gKiAjIyMgVXNhZ2U6XG4gKlxuICogPHNjaS1zYXNoYm94IGRpcmVjdGlvbj1cInJvd1wiPlxuICogICA8IS0tIGZpeGVkIHNpemUgc2FzaCAtLT5cbiAqICAgPG5nLXRlbXBsYXRlIHNjaVNhc2ggc2l6ZT1cIjIwMHB4XCI+XG4gKiAgICAgLi4uXG4gKiAgIDwvbmctdGVtcGxhdGU+XG4gKlxuICogICA8IS0tIHNhc2ggd2hpY2ggdGFrZXMgdGhlIHJlbWFpbmluZyBzcGFjZSAtLT5cbiAqICAgPG5nLXRlbXBsYXRlIHNjaVNhc2g+XG4gKiAgICAgLi4uXG4gKiAgIDwvbmctdGVtcGxhdGU+XG4gKiA8L3NjaS1zYXNoYm94PlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtzY2lTYXNoXScsXG4gIGV4cG9ydEFzOiAnc2NpU2FzaCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNjaVNhc2hEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgcHJpdmF0ZSBfc2l6ZTogc3RyaW5nIHwgbnVtYmVyID0gJzEnO1xuICBwcml2YXRlIF9mbGV4R3JvdyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgc2FzaCBzaXplLCBlaXRoZXIgYXMgZml4ZWQgc2l6ZSB3aXRoIGFuIGV4cGxpY2l0IHVuaXQsXG4gICAqIG9yIGFzIGEgdW5pdGxlc3MgcHJvcG9ydGlvbiB0byBkaXN0aWJ1dGUgcmVtYWluaW5nIHNwYWNlLiBBIHByb3BvcnRpb25hbFxuICAgKiBzYXNoIGhhcyB0aGUgYWJpbGl0eSB0byBncm93IG9yIHNocmluayBpZiBuZWNlc3NhcnksIGFuZCBtdXN0IGJlID49IDEuXG4gICAqXG4gICAqIElmIG5vdCBzZXQsIHJlbWFpbmluZyBzcGFjZSBpcyBkaXN0cmlidXRlZCBlcXVhbGx5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzaXplKHNpemU6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9zaXplID0gc2l6ZSA/PyAnMSc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNpemUoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1pbmltYWwgc2FzaCBzaXplIGluIHBpeGVsIG9yIHBlcmNlbnQuXG4gICAqIFRoZSBtaW4tc2l6ZSBwcmV2ZW50cyB0aGUgdXNlciBmcm9tIHNocmlua2luZyB0aGUgc2FzaCBiZWxvdyB0aGlzIG1pbmltYWwgc2l6ZS5cbiAgICpcbiAgICogSWYgdGhlIHVuaXQgaXMgb21pdHRlZCwgdGhlIHZhbHVlIGlzIGludGVycHJldGVkIGFzIGEgcGl4ZWwgdmFsdWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWluU2l6ZT86IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZWxlbWVudCE6IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzZXQgZmxleEdyb3coZmxleEdyb3c6IG51bWJlcikge1xuICAgIHRoaXMuX2ZsZXhHcm93JC5uZXh0KGZsZXhHcm93KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBnZXQgZmxleEdyb3coKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZmxleEdyb3ckLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGZsZXhTaHJpbmshOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGZsZXhCYXNpcyE6IHN0cmluZztcblxuICAvKipcbiAgICogTm9ybWFsaXplZCBmbGV4LWdyb3cgcHJvcG9ydGlvbiBvZiB0aGlzIHNhc2gsIHdoaWNoIGlzIGEgdmFsdWUgPj0gMS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZmxleEdyb3dOb3JtYWxpemVkJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBzYXNoVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHZvaWQ+LCBwcml2YXRlIF9zYXNoQm94QWNjZXNzb3I6IFNjaVNhc2hCb3hBY2Nlc3Nvcikge1xuICAgIHRoaXMuZmxleEdyb3dOb3JtYWxpemVkJCA9IHRoaXMuX3Nhc2hCb3hBY2Nlc3Nvci5zYXNoZXMkXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHNhc2hlcyA9PiBtZXJnZSguLi5zYXNoZXMubWFwKHNhc2ggPT4gc2FzaC5fZmxleEdyb3ckKSkpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5ub3JtYWxpemVGbGV4R3Jvdyh0aGlzLmZsZXhHcm93KSksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RmxleEl0ZW1Qcm9wZXJ0aWVzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuc2V0RmxleEl0ZW1Qcm9wZXJ0aWVzKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBpZiB0aGlzIHNhc2ggaGFzIGEgZml4ZWQgc2l6ZSwgbWVhbmluZyB0aGF0IGl0IGhhcyBub3QgdGhlIGFiaWxpdHkgdG8gZ3JvdyBvciBzaHJpbmsgaWYgbmVjZXNzYXJ5LlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBnZXQgaXNGaXhlZFNpemUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE51bWJlci5pc05hTigrdGhpcy5zaXplKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBlZmZlY3RpdmUgc2FzaCBzaXplIGFzIHJlbmRlcmVkIGluIHRoZSBET00uXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGdldCBjb21wdXRlZFNpemUoKTogbnVtYmVyIHtcbiAgICAvLyBOb3RlOiBVc2UgYGJvdW5kaW5nQ2xpZW50UmVjdGAgdG8gZ2V0IHRoZSBmcmFjdGlvbmFsIHNpemUuXG4gICAgLy8gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50L2NsaWVudFdpZHRoXG4gICAgcmV0dXJuIHRoaXMuX3Nhc2hCb3hBY2Nlc3Nvci5kaXJlY3Rpb24gPT09ICdyb3cnID8gdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIDogdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlcyBhbmQgc2V0cyB0aGUgZmxleCBpdGVtIHByb3BlcnRpZXMgYmFzZWQgb24gdGhlIG1vZGVsbGVkIHNpemUuXG4gICAqL1xuICBwcml2YXRlIHNldEZsZXhJdGVtUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0ZpeGVkU2l6ZSkge1xuICAgICAgLy8gZml4ZWQtc2l6ZWQgc2FzaFxuICAgICAgdGhpcy5mbGV4R3JvdyA9IDA7XG4gICAgICB0aGlzLmZsZXhTaHJpbmsgPSAwO1xuICAgICAgdGhpcy5mbGV4QmFzaXMgPSBgJHt0aGlzLnNpemV9YDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAvLyByZW1haW5pbmcgc3BhY2UgaXMgZGlzdHJpYnV0ZWQgYWNjb3JkaW5nIHRvIGdpdmVuIHByb3BvcnRpb25cbiAgICAgIGNvbnN0IHByb3BvcnRpb24gPSArdGhpcy5zaXplO1xuICAgICAgaWYgKHByb3BvcnRpb24gPCAxKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBbSWxsZWdhbFNhc2hTaXplRXJyb3JdIFRoZSBwcm9wb3J0aW9uIGZvciBmbGV4aWJsZSBzaXplZCBzYXNoZXMgbXVzdCBiZSA+PTEgW3NpemU9JHt0aGlzLnNpemV9XWApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZsZXhHcm93ID0gcHJvcG9ydGlvbjtcbiAgICAgIHRoaXMuZmxleFNocmluayA9IDE7XG4gICAgICB0aGlzLmZsZXhCYXNpcyA9ICcwJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZXMgdGhlIG5vcm1hbGl6ZWQgZmxleC1ncm93IHByb3BvcnRpb24gb2YgdGhlIGdpdmVuIHNhc2gsIHdoaWNoIGlzIGEgdmFsdWUgPj0gMS5cbiAgICpcbiAgICogSWYgdGhlIHN1bSBvZiBhbGwgZmxleC1ncm93IHByb3BvcnRpb25zIHdvdWxkIGJlIGxlc3MgdGhhbiAxLCB0aGVuLCB0aGUgc2FzaGVzIHdvdWxkIG5vdCBmaWxsIHRoZSBlbnRpcmUgc2FzaC1ib3ggc3BhY2UuXG4gICAqIFdpdGhvdXQgbm9ybWFsaXphdGlvbiBpbiBwbGFjZSwgZS5nLiwgdGhpcyBjb3VsZCBoYXBwZW4gd2hlbiByZW1vdmluZyBhIHNhc2guXG4gICAqL1xuICBwcml2YXRlIG5vcm1hbGl6ZUZsZXhHcm93KGZsZXhHcm93OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChmbGV4R3JvdyA9PT0gMCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3Qgc2FzaGVzID0gdGhpcy5fc2FzaEJveEFjY2Vzc29yLnNhc2hlcztcbiAgICBjb25zdCBmbGV4R3Jvd1N1bSA9IHNhc2hlcy5yZWR1Y2UoKHN1bSwgc2FzaCkgPT4gc3VtICsgc2FzaC5mbGV4R3JvdywgMCk7XG4gICAgaWYgKGZsZXhHcm93U3VtID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIGZsZXhHcm93IC8gZmxleEdyb3dTdW07XG4gIH1cbn1cbiJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FzaC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3Nhc2hib3gvc3JjL3Nhc2guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQWdELE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQUU5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBTUgsTUFBTSxPQUFPLGdCQUFnQjtJQUszQjs7Ozs7O09BTUc7SUFDSCxJQUNXLElBQUksQ0FBQyxJQUF3QztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBZ0JEOztPQUVHO0lBQ0gsSUFBVyxRQUFRLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQW1CRCxZQUE0QixZQUErQixFQUFVLGdCQUFvQztRQUE3RSxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBaEVqRyxVQUFLLEdBQW9CLEdBQUcsQ0FBQztRQUM3QixlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFnRWxELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTzthQUNyRCxJQUFJLENBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQ2xFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ2pELENBQUM7SUFDTixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLDZEQUE2RDtRQUM3RCwyRUFBMkU7UUFDM0UsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU0sQ0FBQztJQUM5SSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsbUJBQW1CO1lBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEMsQ0FBQzthQUNJLENBQUM7WUFDSiwrREFBK0Q7WUFDL0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzlCLElBQUksVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNuQixNQUFNLEtBQUssQ0FBQyxxRkFBcUYsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFDakgsQ0FBQztZQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1lBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxpQkFBaUIsQ0FBQyxRQUFnQjtRQUN4QyxJQUFJLFFBQVEsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1FBQzVDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLFdBQVcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxPQUFPLFFBQVEsR0FBRyxXQUFXLENBQUM7SUFDaEMsQ0FBQzs4R0E5SVUsZ0JBQWdCO2tHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBTDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtpSEFjWSxJQUFJO3NCQURkLEtBQUs7Z0JBZ0JDLE9BQU87c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2NpU2FzaEJveEFjY2Vzc29yfSBmcm9tICcuL3Nhc2hib3gtYWNjZXNzb3InO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBVc2UgdGhpcyBkaXJlY3RpdmUgdG8gbW9kZWwgYSBzYXNoIGZvciB7QGxpbmsgU2NpU2FzaGJveENvbXBvbmVudH0uXG4gKiBUaGUgaG9zdCBlbGVtZW50IG9mIHRoaXMgbW9kZWxsaW5nIGRpcmVjdGl2ZSBtdXN0IGJlIGEgPG5nLXRlbXBsYXRlPiB3aGljaCBpcyB1c2VkIGFzIHNhc2ggdGVtcGxhdGUuXG4gKlxuICpcbiAqICMjIyBVc2FnZTpcbiAqXG4gKiA8c2NpLXNhc2hib3ggZGlyZWN0aW9uPVwicm93XCI+XG4gKiAgIDwhLS0gZml4ZWQgc2l6ZSBzYXNoIC0tPlxuICogICA8bmctdGVtcGxhdGUgc2NpU2FzaCBzaXplPVwiMjAwcHhcIj5cbiAqICAgICAuLi5cbiAqICAgPC9uZy10ZW1wbGF0ZT5cbiAqXG4gKiAgIDwhLS0gc2FzaCB3aGljaCB0YWtlcyB0aGUgcmVtYWluaW5nIHNwYWNlIC0tPlxuICogICA8bmctdGVtcGxhdGUgc2NpU2FzaD5cbiAqICAgICAuLi5cbiAqICAgPC9uZy10ZW1wbGF0ZT5cbiAqIDwvc2NpLXNhc2hib3g+XG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3NjaVNhc2hdJyxcbiAgZXhwb3J0QXM6ICdzY2lTYXNoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpU2FzaERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBwcml2YXRlIF9zaXplOiBzdHJpbmcgfCBudW1iZXIgPSAnMSc7XG4gIHByaXZhdGUgX2ZsZXhHcm93JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBzYXNoIHNpemUsIGVpdGhlciBhcyBmaXhlZCBzaXplIHdpdGggYW4gZXhwbGljaXQgdW5pdCxcbiAgICogb3IgYXMgYSB1bml0bGVzcyBwcm9wb3J0aW9uIHRvIGRpc3RpYnV0ZSByZW1haW5pbmcgc3BhY2UuIEEgcHJvcG9ydGlvbmFsXG4gICAqIHNhc2ggaGFzIHRoZSBhYmlsaXR5IHRvIGdyb3cgb3Igc2hyaW5rIGlmIG5lY2Vzc2FyeSwgYW5kIG11c3QgYmUgPj0gMS5cbiAgICpcbiAgICogSWYgbm90IHNldCwgcmVtYWluaW5nIHNwYWNlIGlzIGRpc3RyaWJ1dGVkIGVxdWFsbHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNpemUoc2l6ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3NpemUgPSBzaXplID8/ICcxJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW1hbCBzYXNoIHNpemUgaW4gcGl4ZWwgb3IgcGVyY2VudC5cbiAgICogVGhlIG1pbi1zaXplIHByZXZlbnRzIHRoZSB1c2VyIGZyb20gc2hyaW5raW5nIHRoZSBzYXNoIGJlbG93IHRoaXMgbWluaW1hbCBzaXplLlxuICAgKlxuICAgKiBJZiB0aGUgdW5pdCBpcyBvbWl0dGVkLCB0aGUgdmFsdWUgaXMgaW50ZXJwcmV0ZWQgYXMgYSBwaXhlbCB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW5TaXplPzogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBlbGVtZW50ITogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNldCBmbGV4R3JvdyhmbGV4R3JvdzogbnVtYmVyKSB7XG4gICAgdGhpcy5fZmxleEdyb3ckLm5leHQoZmxleEdyb3cpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGdldCBmbGV4R3JvdygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9mbGV4R3JvdyQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZmxleFNocmluayE6IG51bWJlcjtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZmxleEJhc2lzITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOb3JtYWxpemVkIGZsZXgtZ3JvdyBwcm9wb3J0aW9uIG9mIHRoaXMgc2FzaCwgd2hpY2ggaXMgYSB2YWx1ZSA+PSAxLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBmbGV4R3Jvd05vcm1hbGl6ZWQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHNhc2hUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD4sIHByaXZhdGUgX3Nhc2hCb3hBY2Nlc3NvcjogU2NpU2FzaEJveEFjY2Vzc29yKSB7XG4gICAgdGhpcy5mbGV4R3Jvd05vcm1hbGl6ZWQkID0gdGhpcy5fc2FzaEJveEFjY2Vzc29yLnNhc2hlcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoc2FzaGVzID0+IG1lcmdlKC4uLnNhc2hlcy5tYXAoc2FzaCA9PiBzYXNoLl9mbGV4R3JvdyQpKSksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLm5vcm1hbGl6ZUZsZXhHcm93KHRoaXMuZmxleEdyb3cpKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRGbGV4SXRlbVByb3BlcnRpZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5zZXRGbGV4SXRlbVByb3BlcnRpZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGlmIHRoaXMgc2FzaCBoYXMgYSBmaXhlZCBzaXplLCBtZWFuaW5nIHRoYXQgaXQgaGFzIG5vdCB0aGUgYWJpbGl0eSB0byBncm93IG9yIHNocmluayBpZiBuZWNlc3NhcnkuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGdldCBpc0ZpeGVkU2l6ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gTnVtYmVyLmlzTmFOKCt0aGlzLnNpemUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVmZmVjdGl2ZSBzYXNoIHNpemUgYXMgcmVuZGVyZWQgaW4gdGhlIERPTS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbXB1dGVkU2l6ZSgpOiBudW1iZXIge1xuICAgIC8vIE5vdGU6IFVzZSBgYm91bmRpbmdDbGllbnRSZWN0YCB0byBnZXQgdGhlIGZyYWN0aW9uYWwgc2l6ZS5cbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQvY2xpZW50V2lkdGhcbiAgICByZXR1cm4gdGhpcy5fc2FzaEJveEFjY2Vzc29yLmRpcmVjdGlvbiA9PT0gJ3JvdycgPyB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggOiB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIGFuZCBzZXRzIHRoZSBmbGV4IGl0ZW0gcHJvcGVydGllcyBiYXNlZCBvbiB0aGUgbW9kZWxsZWQgc2l6ZS5cbiAgICovXG4gIHByaXZhdGUgc2V0RmxleEl0ZW1Qcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRml4ZWRTaXplKSB7XG4gICAgICAvLyBmaXhlZC1zaXplZCBzYXNoXG4gICAgICB0aGlzLmZsZXhHcm93ID0gMDtcbiAgICAgIHRoaXMuZmxleFNocmluayA9IDA7XG4gICAgICB0aGlzLmZsZXhCYXNpcyA9IGAke3RoaXMuc2l6ZX1gO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIC8vIHJlbWFpbmluZyBzcGFjZSBpcyBkaXN0cmlidXRlZCBhY2NvcmRpbmcgdG8gZ2l2ZW4gcHJvcG9ydGlvblxuICAgICAgY29uc3QgcHJvcG9ydGlvbiA9ICt0aGlzLnNpemU7XG4gICAgICBpZiAocHJvcG9ydGlvbiA8IDEpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFtJbGxlZ2FsU2FzaFNpemVFcnJvcl0gVGhlIHByb3BvcnRpb24gZm9yIGZsZXhpYmxlIHNpemVkIHNhc2hlcyBtdXN0IGJlID49MSBbc2l6ZT0ke3RoaXMuc2l6ZX1dYCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZmxleEdyb3cgPSBwcm9wb3J0aW9uO1xuICAgICAgdGhpcy5mbGV4U2hyaW5rID0gMTtcbiAgICAgIHRoaXMuZmxleEJhc2lzID0gJzAnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlcyB0aGUgbm9ybWFsaXplZCBmbGV4LWdyb3cgcHJvcG9ydGlvbiBvZiB0aGUgZ2l2ZW4gc2FzaCwgd2hpY2ggaXMgYSB2YWx1ZSA+PSAxLlxuICAgKlxuICAgKiBJZiB0aGUgc3VtIG9mIGFsbCBmbGV4LWdyb3cgcHJvcG9ydGlvbnMgd291bGQgYmUgbGVzcyB0aGFuIDEsIHRoZW4sIHRoZSBzYXNoZXMgd291bGQgbm90IGZpbGwgdGhlIGVudGlyZSBzYXNoLWJveCBzcGFjZS5cbiAgICogV2l0aG91dCBub3JtYWxpemF0aW9uIGluIHBsYWNlLCBlLmcuLCB0aGlzIGNvdWxkIGhhcHBlbiB3aGVuIHJlbW92aW5nIGEgc2FzaC5cbiAgICovXG4gIHByaXZhdGUgbm9ybWFsaXplRmxleEdyb3coZmxleEdyb3c6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGZsZXhHcm93ID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCBzYXNoZXMgPSB0aGlzLl9zYXNoQm94QWNjZXNzb3Iuc2FzaGVzO1xuICAgIGNvbnN0IGZsZXhHcm93U3VtID0gc2FzaGVzLnJlZHVjZSgoc3VtLCBzYXNoKSA9PiBzdW0gKyBzYXNoLmZsZXhHcm93LCAwKTtcbiAgICBpZiAoZmxleEdyb3dTdW0gPT09IDApIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gZmxleEdyb3cgLyBmbGV4R3Jvd1N1bTtcbiAgfVxufVxuIl19