@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
@@ -7,13 +7,13 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  */
10
- import { Component, ContentChildren, EventEmitter, HostBinding, inject, Input, NgZone, Output } from '@angular/core';
10
+ import { Component, ContentChildren, ElementRef, EventEmitter, HostBinding, inject, Input, NgZone, Output } from '@angular/core';
11
11
  import { startWith, takeUntil } from 'rxjs/operators';
12
12
  import { BehaviorSubject, Subject } from 'rxjs';
13
13
  import { SciSplitterComponent } from '@scion/components/splitter';
14
14
  import { SciSashDirective } from './sash.directive';
15
15
  import { SciSashBoxAccessor } from './sashbox-accessor';
16
- import { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
16
+ import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
17
17
  import { SciSashInitializerDirective } from './sash-initializer.directive';
18
18
  import { SciElementRefDirective } from './element-ref.directive';
19
19
  import * as i0 from "@angular/core";
@@ -71,18 +71,10 @@ import * as i0 from "@angular/core";
71
71
  * ```
72
72
  */
73
73
  export class SciSashboxComponent {
74
- /** @internal */
75
- set setSashes(queryList) {
76
- queryList.changes
77
- .pipe(startWith(queryList), takeUntil(this._destroy$))
78
- .subscribe((sashes) => {
79
- this.sashes$.next(sashes.toArray());
80
- });
81
- }
82
- constructor(_host, _zone) {
83
- this._host = _host;
84
- this._zone = _zone;
74
+ constructor() {
85
75
  this._destroy$ = new Subject();
76
+ this._host = inject((ElementRef)).nativeElement;
77
+ this._zone = inject(NgZone);
86
78
  this.sashes$ = new BehaviorSubject([]);
87
79
  this.sashing = false;
88
80
  /**
@@ -98,20 +90,34 @@ export class SciSashboxComponent {
98
90
  */
99
91
  this.sashEnd = new EventEmitter();
100
92
  }
93
+ /** @internal */
94
+ set setSashes(queryList) {
95
+ queryList.changes
96
+ .pipe(startWith(queryList), takeUntil(this._destroy$))
97
+ .subscribe((sashes) => {
98
+ this.sashes$.next(sashes.toArray());
99
+ });
100
+ }
101
101
  onSashStart() {
102
102
  this.sashing = true;
103
+ // Avoid overflow when sashing.
104
+ const hostBounds = this._host.getBoundingClientRect();
105
+ this.maxHeight = hostBounds.height;
106
+ this.maxWidth = hostBounds.width;
103
107
  this.sashStart.emit();
104
108
  // set the effective sash size as the flex-basis for non-fixed sashes (as sashing operates on pixel deltas)
105
109
  this.sashes.forEach(sash => {
106
110
  if (!sash.isFixedSize) {
107
111
  sash.flexGrow = 0;
108
- sash.flexShrink = 0;
112
+ sash.flexShrink = 1;
109
113
  sash.flexBasis = `${sash.computedSize}px`;
110
114
  }
111
115
  });
112
116
  }
113
117
  onSashEnd() {
114
118
  this.sashing = false;
119
+ this.maxHeight = undefined;
120
+ this.maxWidth = undefined;
115
121
  // unset the flex-basis for non-fixed sashes and set the flex-grow accordingly
116
122
  const pixelToFlexGrowFactor = computePixelToFlexGrowFactor(this.sashes);
117
123
  const absoluteSashSizes = this.sashes.map(sash => sash.computedSize);
@@ -149,28 +155,14 @@ export class SciSashboxComponent {
149
155
  const sash2 = this.sashes[sashIndex + 1];
150
156
  const sashSize1 = sash1.computedSize;
151
157
  const sashSize2 = sash2.computedSize;
152
- const maxSashSize = sashSize1 + sashSize2;
153
- const computedNewSashSize1 = Math.round(sashSize1 + distance);
154
- const computedNewSashSize2 = Math.round(sashSize2 - distance);
155
- if (sash1.minSize !== undefined && distance < 0 && computedNewSashSize1 < this.toPixel(sash1.minSize)) {
156
- return;
157
- }
158
- if (sash2.minSize !== undefined && distance > 0 && computedNewSashSize2 < this.toPixel(sash2.minSize)) {
159
- return;
160
- }
161
- const validNewSashSize1 = between(computedNewSashSize1, { min: 0, max: maxSashSize });
162
- const validNewSashSize2 = between(computedNewSashSize2, { min: 0, max: maxSashSize });
163
- // continue only if both sashes adjacent to the splitter change their size (as the event would change other sashes otherwise)
164
- if (validNewSashSize1 !== computedNewSashSize1) {
165
- return;
166
- }
167
- if (validNewSashSize2 !== computedNewSashSize2) {
168
- return;
169
- }
158
+ const sashMinSize1 = sash1.minSize ? this.toPixel(sash1.minSize) : 0;
159
+ const sashMinSize2 = sash2.minSize ? this.toPixel(sash2.minSize) : 0;
160
+ const newSashSize1 = between(Math.round(sashSize1 + distance), { min: sashMinSize1, max: sashSize1 + sashSize2 - sashMinSize2 });
161
+ const newSashSize2 = between(Math.round(sashSize2 - distance), { min: sashMinSize2, max: sashSize1 + sashSize2 - sashMinSize1 });
170
162
  // set the new computed sash sizes
171
163
  this._zone.run(() => {
172
- sash1.flexBasis = `${computedNewSashSize1}px`;
173
- sash2.flexBasis = `${computedNewSashSize2}px`;
164
+ sash1.flexBasis = `${newSashSize1}px`;
165
+ sash2.flexBasis = `${newSashSize2}px`;
174
166
  });
175
167
  }
176
168
  onSashReset(sashIndex) {
@@ -212,23 +204,21 @@ export class SciSashboxComponent {
212
204
  return value;
213
205
  }
214
206
  if (value.endsWith('%')) {
215
- const hostBounds = this._host.nativeElement.getBoundingClientRect();
207
+ const hostBounds = this._host.getBoundingClientRect();
216
208
  const hostSize = (this.isRowDirection ? hostBounds.width : hostBounds.height);
217
209
  return parseInt(value, 10) * hostSize / 100;
218
210
  }
219
211
  return parseInt(value, 10);
220
212
  }
221
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSashboxComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
222
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: SciSashboxComponent, isStandalone: true, selector: "sci-sashbox", inputs: { direction: "direction" }, outputs: { sashStart: "sashStart", sashEnd: "sashEnd" }, host: { properties: { "class.sashing": "this.sashing", "class.column": "this.isColumnDirection", "class.row": "this.isRowDirection" } }, providers: [{
213
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
214
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: SciSashboxComponent, isStandalone: true, selector: "sci-sashbox", inputs: { direction: "direction" }, outputs: { sashStart: "sashStart", sashEnd: "sashEnd" }, host: { properties: { "class.sashing": "this.sashing", "style.--\u0275sci-sashbox-max-height": "this.maxHeight", "style.--\u0275sci-sashbox-max-width": "this.maxWidth", "class.column": "this.isColumnDirection", "class.row": "this.isRowDirection" } }, providers: [{
223
215
  provide: SciSashBoxAccessor,
224
216
  useFactory: provideSashBoxAccessor,
225
- }], queries: [{ propertyName: "setSashes", predicate: SciSashDirective }], ngImport: i0, template: "<ng-container *ngFor=\"let sash of sashes$ | async; index as i; first as first; last as last;\">\n <div class=\"sash\"\n [class.first]=\"first\"\n [class.last]=\"last\"\n [sciSashInitializer]=\"sash\"\n [style.flex-grow]=\"sash.flexGrowNormalized$ | async\"\n [style.flex-shrink]=\"sash.flexShrink\"\n [style.flex-basis]=\"sash.flexBasis\">\n <ng-container *ngTemplateOutlet=\"sash.sashTemplate\"></ng-container>\n </div>\n\n <sci-splitter *ngIf=\"!last\"\n sciElementRef #sciElementRef=\"sciElementRef\"\n [orientation]=\"isRowDirection ? 'vertical' : 'horizontal'\"\n (start)=\"onSashStart()\"\n (move)=\"onSash(sciElementRef.nativeElement, i, $event)\"\n (end)=\"onSashEnd()\"\n (reset)=\"onSashReset(i)\">\n </sci-splitter>\n</ng-container>\n", styles: ["@charset \"UTF-8\";:host{--\\275sci-sashbox-gap: var(--sci-sashbox-gap, 10px);--\\275sci-sashbox-splitter-background-color: var(--sci-sashbox-splitter-background-color, var(--sci-sashbox-splitter-bgcolor, #d2d2d2));--\\275sci-sashbox-splitter-background-color-hover: var(--sci-sashbox-splitter-background-color-hover, var(--sci-sashbox-splitter-bgcolor_hover, var(--\\275sci-sashbox-splitter-background-color)));--\\275sci-sashbox-splitter-size: var(--sci-sashbox-splitter-size, 1px);--\\275sci-sashbox-splitter-size-hover: var(--sci-sashbox-splitter-size-hover, var(--sci-sashbox-splitter-size_hover, 8px));--\\275sci-sashbox-splitter-touch-target-size: var(--sci-sashbox-splitter-touch-target-size, 15px);--\\275sci-sashbox-splitter-cross-axis-size: var(--sci-sashbox-splitter-cross-axis-size, 100%);--\\275sci-sashbox-splitter-border-radius: var(--sci-sashbox-splitter-border-radius, 0);--\\275sci-sashbox-splitter-opacity-active: var(--sci-sashbox-splitter-opacity-active, var(--sci-sashbox-splitter-opacity_active, 1));--\\275sci-sashbox-splitter-opacity-hover: var(--sci-sashbox-splitter-opacity-hover, var(--sci-sashbox-splitter-opacity_hover, .3));display:flex;align-items:stretch;box-sizing:border-box;overflow:hidden;z-index:0}:host *{box-sizing:border-box}:host.column{flex-direction:column}:host.row{flex-direction:row}:host>div.sash{overflow:hidden;display:grid;grid-auto-rows:100%;grid-auto-columns:100%}:host.row>div.sash{margin:0 var(--\\275sci-sashbox-gap)}:host.row>div.sash.first{margin-left:0}:host.row>div.sash.last{margin-right:0}:host.column>div.sash{margin:var(--\\275sci-sashbox-gap) 0}:host.column>div.sash.first{margin-top:0}:host.column>div.sash.last{margin-bottom:0}:host.sashing>div.sash{pointer-events:none}:host>sci-splitter{--sci-splitter-background-color: var(--\\275sci-sashbox-splitter-background-color);--sci-splitter-background-color-hover: var(--\\275sci-sashbox-splitter-background-color-hover);--sci-splitter-size: var(--\\275sci-sashbox-splitter-size);--sci-splitter-size-hover: var(--\\275sci-sashbox-splitter-size-hover);--sci-splitter-touch-target-size: var(--\\275sci-sashbox-splitter-touch-target-size);--sci-splitter-cross-axis-size: var(--\\275sci-sashbox-splitter-cross-axis-size);--sci-splitter-border-radius: var(--\\275sci-sashbox-splitter-border-radius);--sci-splitter-opacity-active: var(--\\275sci-sashbox-splitter-opacity-active);--sci-splitter-opacity-hover: var(--\\275sci-sashbox-splitter-opacity-hover);flex:none;z-index:1}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SciSashInitializerDirective, selector: "div[sciSashInitializer].sash", inputs: ["sciSashInitializer"] }, { kind: "component", type: SciSplitterComponent, selector: "sci-splitter", inputs: ["orientation"], outputs: ["start", "move", "end", "reset"] }, { kind: "directive", type: SciElementRefDirective, selector: "[sciElementRef]", exportAs: ["sciElementRef"] }] }); }
217
+ }], queries: [{ propertyName: "setSashes", predicate: SciSashDirective }], ngImport: i0, template: "@for (sash of sashes$ | async; track sash; let i = $index; let first = $first; let last = $last) {\n <div class=\"sash\"\n [class.first]=\"first\"\n [class.last]=\"last\"\n [sciSashInitializer]=\"sash\"\n [style.flex-grow]=\"sash.flexGrowNormalized$ | async\"\n [style.flex-shrink]=\"sash.flexShrink\"\n [style.flex-basis]=\"sash.flexBasis\">\n <ng-container *ngTemplateOutlet=\"sash.sashTemplate\"/>\n </div>\n @if (!last) {\n <sci-splitter sciElementRef #sciElementRef=\"sciElementRef\"\n [orientation]=\"isRowDirection ? 'vertical' : 'horizontal'\"\n (start)=\"onSashStart()\"\n (move)=\"onSash(sciElementRef.nativeElement, i, $event)\"\n (end)=\"onSashEnd()\"\n (reset)=\"onSashReset(i)\"/>\n }\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;align-items:stretch;box-sizing:border-box;overflow:hidden;z-index:0}:host *{box-sizing:border-box}:host.column{flex-direction:column}:host.row{flex-direction:row}:host>div.sash{overflow:hidden;display:grid;grid-auto-rows:100%;grid-auto-columns:100%}:host.row>div.sash{margin:0 var(--sci-sashbox-gap)}:host.row>div.sash.first{margin-left:0}:host.row>div.sash.last{margin-right:0}:host.column>div.sash{margin:var(--sci-sashbox-gap) 0}:host.column>div.sash.first{margin-top:0}:host.column>div.sash.last{margin-bottom:0}:host.sashing{max-height:calc(var(--\\275sci-sashbox-max-height) * 1px);max-width:calc(var(--\\275sci-sashbox-max-width) * 1px)}:host.sashing>div.sash{pointer-events:none}:host>sci-splitter{--sci-splitter-background-color: var(--sci-sashbox-splitter-background-color);--sci-splitter-background-color-hover: var(--sci-sashbox-splitter-background-color-hover);--sci-splitter-size: var(--sci-sashbox-splitter-size);--sci-splitter-size-hover: var(--sci-sashbox-splitter-size-hover);--sci-splitter-touch-target-size: var(--sci-sashbox-splitter-touch-target-size);--sci-splitter-cross-axis-size: var(--sci-sashbox-splitter-cross-axis-size);--sci-splitter-border-radius: var(--sci-sashbox-splitter-border-radius);--sci-splitter-opacity-active: var(--sci-sashbox-splitter-opacity-active);--sci-splitter-opacity-hover: var(--sci-sashbox-splitter-opacity-hover);flex:none;z-index:1}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SciSashInitializerDirective, selector: "div[sciSashInitializer].sash", inputs: ["sciSashInitializer"] }, { kind: "component", type: SciSplitterComponent, selector: "sci-splitter", inputs: ["orientation"], outputs: ["start", "move", "end", "reset"] }, { kind: "directive", type: SciElementRefDirective, selector: "[sciElementRef]", exportAs: ["sciElementRef"] }] }); }
226
218
  }
227
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSashboxComponent, decorators: [{
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashboxComponent, decorators: [{
228
220
  type: Component,
229
221
  args: [{ selector: 'sci-sashbox', standalone: true, imports: [
230
- NgIf,
231
- NgFor,
232
222
  AsyncPipe,
233
223
  NgTemplateOutlet,
234
224
  SciSashInitializerDirective,
@@ -237,10 +227,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
237
227
  ], providers: [{
238
228
  provide: SciSashBoxAccessor,
239
229
  useFactory: provideSashBoxAccessor,
240
- }], template: "<ng-container *ngFor=\"let sash of sashes$ | async; index as i; first as first; last as last;\">\n <div class=\"sash\"\n [class.first]=\"first\"\n [class.last]=\"last\"\n [sciSashInitializer]=\"sash\"\n [style.flex-grow]=\"sash.flexGrowNormalized$ | async\"\n [style.flex-shrink]=\"sash.flexShrink\"\n [style.flex-basis]=\"sash.flexBasis\">\n <ng-container *ngTemplateOutlet=\"sash.sashTemplate\"></ng-container>\n </div>\n\n <sci-splitter *ngIf=\"!last\"\n sciElementRef #sciElementRef=\"sciElementRef\"\n [orientation]=\"isRowDirection ? 'vertical' : 'horizontal'\"\n (start)=\"onSashStart()\"\n (move)=\"onSash(sciElementRef.nativeElement, i, $event)\"\n (end)=\"onSashEnd()\"\n (reset)=\"onSashReset(i)\">\n </sci-splitter>\n</ng-container>\n", styles: ["@charset \"UTF-8\";:host{--\\275sci-sashbox-gap: var(--sci-sashbox-gap, 10px);--\\275sci-sashbox-splitter-background-color: var(--sci-sashbox-splitter-background-color, var(--sci-sashbox-splitter-bgcolor, #d2d2d2));--\\275sci-sashbox-splitter-background-color-hover: var(--sci-sashbox-splitter-background-color-hover, var(--sci-sashbox-splitter-bgcolor_hover, var(--\\275sci-sashbox-splitter-background-color)));--\\275sci-sashbox-splitter-size: var(--sci-sashbox-splitter-size, 1px);--\\275sci-sashbox-splitter-size-hover: var(--sci-sashbox-splitter-size-hover, var(--sci-sashbox-splitter-size_hover, 8px));--\\275sci-sashbox-splitter-touch-target-size: var(--sci-sashbox-splitter-touch-target-size, 15px);--\\275sci-sashbox-splitter-cross-axis-size: var(--sci-sashbox-splitter-cross-axis-size, 100%);--\\275sci-sashbox-splitter-border-radius: var(--sci-sashbox-splitter-border-radius, 0);--\\275sci-sashbox-splitter-opacity-active: var(--sci-sashbox-splitter-opacity-active, var(--sci-sashbox-splitter-opacity_active, 1));--\\275sci-sashbox-splitter-opacity-hover: var(--sci-sashbox-splitter-opacity-hover, var(--sci-sashbox-splitter-opacity_hover, .3));display:flex;align-items:stretch;box-sizing:border-box;overflow:hidden;z-index:0}:host *{box-sizing:border-box}:host.column{flex-direction:column}:host.row{flex-direction:row}:host>div.sash{overflow:hidden;display:grid;grid-auto-rows:100%;grid-auto-columns:100%}:host.row>div.sash{margin:0 var(--\\275sci-sashbox-gap)}:host.row>div.sash.first{margin-left:0}:host.row>div.sash.last{margin-right:0}:host.column>div.sash{margin:var(--\\275sci-sashbox-gap) 0}:host.column>div.sash.first{margin-top:0}:host.column>div.sash.last{margin-bottom:0}:host.sashing>div.sash{pointer-events:none}:host>sci-splitter{--sci-splitter-background-color: var(--\\275sci-sashbox-splitter-background-color);--sci-splitter-background-color-hover: var(--\\275sci-sashbox-splitter-background-color-hover);--sci-splitter-size: var(--\\275sci-sashbox-splitter-size);--sci-splitter-size-hover: var(--\\275sci-sashbox-splitter-size-hover);--sci-splitter-touch-target-size: var(--\\275sci-sashbox-splitter-touch-target-size);--sci-splitter-cross-axis-size: var(--\\275sci-sashbox-splitter-cross-axis-size);--sci-splitter-border-radius: var(--\\275sci-sashbox-splitter-border-radius);--sci-splitter-opacity-active: var(--\\275sci-sashbox-splitter-opacity-active);--sci-splitter-opacity-hover: var(--\\275sci-sashbox-splitter-opacity-hover);flex:none;z-index:1}\n"] }]
241
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { sashing: [{
230
+ }], template: "@for (sash of sashes$ | async; track sash; let i = $index; let first = $first; let last = $last) {\n <div class=\"sash\"\n [class.first]=\"first\"\n [class.last]=\"last\"\n [sciSashInitializer]=\"sash\"\n [style.flex-grow]=\"sash.flexGrowNormalized$ | async\"\n [style.flex-shrink]=\"sash.flexShrink\"\n [style.flex-basis]=\"sash.flexBasis\">\n <ng-container *ngTemplateOutlet=\"sash.sashTemplate\"/>\n </div>\n @if (!last) {\n <sci-splitter sciElementRef #sciElementRef=\"sciElementRef\"\n [orientation]=\"isRowDirection ? 'vertical' : 'horizontal'\"\n (start)=\"onSashStart()\"\n (move)=\"onSash(sciElementRef.nativeElement, i, $event)\"\n (end)=\"onSashEnd()\"\n (reset)=\"onSashReset(i)\"/>\n }\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;align-items:stretch;box-sizing:border-box;overflow:hidden;z-index:0}:host *{box-sizing:border-box}:host.column{flex-direction:column}:host.row{flex-direction:row}:host>div.sash{overflow:hidden;display:grid;grid-auto-rows:100%;grid-auto-columns:100%}:host.row>div.sash{margin:0 var(--sci-sashbox-gap)}:host.row>div.sash.first{margin-left:0}:host.row>div.sash.last{margin-right:0}:host.column>div.sash{margin:var(--sci-sashbox-gap) 0}:host.column>div.sash.first{margin-top:0}:host.column>div.sash.last{margin-bottom:0}:host.sashing{max-height:calc(var(--\\275sci-sashbox-max-height) * 1px);max-width:calc(var(--\\275sci-sashbox-max-width) * 1px)}:host.sashing>div.sash{pointer-events:none}:host>sci-splitter{--sci-splitter-background-color: var(--sci-sashbox-splitter-background-color);--sci-splitter-background-color-hover: var(--sci-sashbox-splitter-background-color-hover);--sci-splitter-size: var(--sci-sashbox-splitter-size);--sci-splitter-size-hover: var(--sci-sashbox-splitter-size-hover);--sci-splitter-touch-target-size: var(--sci-sashbox-splitter-touch-target-size);--sci-splitter-cross-axis-size: var(--sci-sashbox-splitter-cross-axis-size);--sci-splitter-border-radius: var(--sci-sashbox-splitter-border-radius);--sci-splitter-opacity-active: var(--sci-sashbox-splitter-opacity-active);--sci-splitter-opacity-hover: var(--sci-sashbox-splitter-opacity-hover);flex:none;z-index:1}\n"] }]
231
+ }], propDecorators: { sashing: [{
242
232
  type: HostBinding,
243
233
  args: ['class.sashing']
234
+ }], maxHeight: [{
235
+ type: HostBinding,
236
+ args: ['style.--ɵsci-sashbox-max-height']
237
+ }], maxWidth: [{
238
+ type: HostBinding,
239
+ args: ['style.--ɵsci-sashbox-max-width']
244
240
  }], direction: [{
245
241
  type: Input
246
242
  }], sashStart: [{
@@ -283,4 +279,4 @@ function provideSashBoxAccessor() {
283
279
  }
284
280
  };
285
281
  }
286
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FzaGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3Nhc2hib3gvc3JjL3Nhc2hib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy9zYXNoYm94L3NyYy9zYXNoYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckosT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZUFBZSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQW9CLE1BQU0sNEJBQTRCLENBQUM7QUFDbkYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDekUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7O0FBRS9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBb0JILE1BQU0sT0FBTyxtQkFBbUI7SUEyQjlCLGdCQUFnQjtJQUNoQixJQUNXLFNBQVMsQ0FB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QUFDO1FBRUQsSUFBVyxNQUFNO1lBQ2YsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNqQyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT3V0cHV0LCBRdWVyeUxpc3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzdGFydFdpdGgsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtTY2lTcGxpdHRlckNvbXBvbmVudCwgU3BsaXR0ZXJNb3ZlRXZlbnR9IGZyb20gJ0BzY2lvbi9jb21wb25lbnRzL3NwbGl0dGVyJztcbmltcG9ydCB7U2NpU2FzaERpcmVjdGl2ZX0gZnJvbSAnLi9zYXNoLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1NjaVNhc2hCb3hBY2Nlc3Nvcn0gZnJvbSAnLi9zYXNoYm94LWFjY2Vzc29yJztcbmltcG9ydCB7QXN5bmNQaXBlLCBOZ0ZvciwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7U2NpU2FzaEluaXRpYWxpemVyRGlyZWN0aXZlfSBmcm9tICcuL3Nhc2gtaW5pdGlhbGl6ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7U2NpRWxlbWVudFJlZkRpcmVjdGl2ZX0gZnJvbSAnLi9lbGVtZW50LXJlZi5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIFRoZSA8c2NpLXNhc2hib3g+IGlzIGxpa2UgYSBDU1MgZmxleGJveCBjb250YWluZXIgdGhhdCBsYXlzIG91dCBpdHMgY29udGVudCBjaGlsZHJlbiAoc2FzaGVzKSBpbiBhIHJvdyAod2hpY2ggaXMgYnkgZGVmYXVsdClcbiAqIG9yIGNvbHVtbiBhcnJhbmdlbWVudCAoYXMgc3BlY2lmaWVkIGJ5IHRoZSBkaXJlY3Rpb24gcHJvcGVydHkpLiBBIHNwbGl0dGVyIGlzIGFkZGVkIGJldHdlZW4gZWFjaCBjaGlsZCB0byBhbGxvdyB0aGUgdXNlciB0b1xuICogc2hyaW5rIG9yIHN0cmV0Y2ggdGhlIGluZGl2aWR1YWwgc2FzaGVzLlxuICpcbiAqIFNhc2hlcyBhcmUgbW9kZWxsZWQgYXMgY29udGVudCBjaGlsZHJlbiBpbnNpZGUgYSA8bmctdGVtcGxhdGU+IGRlY29yYXRlZCB3aXRoIHRoZSAnc2NpU2FzaCcgZGlyZWN0aXZlLlxuICogQSBzYXNoIGNhbiBoYXZlIGEgZml4ZWQgc2l6ZSB3aXRoIGFuIGV4cGxpY2l0IHVuaXQsIG9yIGEgdW5pdGxlc3MgcHJvcG9ydGlvbiB0byBkaXN0aWJ1dGUgcmVtYWluaW5nIHNwYWNlLlxuICogQSBwcm9wb3J0aW9uYWwgc2FzaCBoYXMgdGhlIGFiaWxpdHkgdG8gZ3JvdyBvciBzaHJpbmsgaWYgbmVjZXNzYXJ5LlxuICpcbiAqXG4gKiAjIyMgVXNhZ2VcbiAqXG4gKiBgYGBodG1sXG4gKiA8c2NpLXNhc2hib3ggZGlyZWN0aW9uPVwicm93XCI+XG4gKiAgIDxuZy10ZW1wbGF0ZSBzY2lTYXNoIHNpemU9XCIxXCI+XG4gKiAgICAgLi4uXG4gKiAgIDwvbmctdGVtcGxhdGU+XG4gKlxuICogICA8bmctdGVtcGxhdGUgc2NpU2FzaCBzaXplPVwiMlwiPlxuICogICAgIC4uLlxuICogICA8L25nLXRlbXBsYXRlPlxuICpcbiAqICAgPG5nLXRlbXBsYXRlIHNjaVNhc2ggc2l6ZT1cIjFcIj5cbiAqICAgICAuLi5cbiAqICAgPC9uZy10ZW1wbGF0ZT5cbiAqIDwvc2NpLXNhc2hib3g+XG4gKiBgYGBcbiAqXG4gKiAjIyMgU3R5bGluZ1xuICpcbiAqIFRvIGN1c3RvbWl6ZSB0aGUgZGVmYXVsdCBsb29rIG9mIFNDSU9OIGNvbXBvbmVudHMgb3Igc3VwcG9ydCBkaWZmZXJlbnQgdGhlbWVzLCBjb25maWd1cmUgdGhlIGBAc2Npb24vY29tcG9uZW50c2AgU0NTUyBtb2R1bGUgaW4gYHN0eWxlcy5zY3NzYC5cbiAqIFRvIHN0eWxlIGEgc3BlY2lmaWMgYHNjaS1zYXNoYm94YCBjb21wb25lbnQsIHRoZSBmb2xsb3dpbmcgQ1NTIHZhcmlhYmxlcyBjYW4gYmUgc2V0IGRpcmVjdGx5IG9uIHRoZSBjb21wb25lbnQuXG4gKlxuICogLSAtLXNjaS1zYXNoYm94LWdhcDogU2V0cyB0aGUgZ2FwcyAoZ3V0dGVycykgYmV0d2VlbiBzYXNoZXMuXG4gKiAtIC0tc2NpLXNhc2hib3gtc3BsaXR0ZXItYmFja2dyb3VuZC1jb2xvcjogU2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgc3BsaXR0ZXIuXG4gKiAtIC0tc2NpLXNhc2hib3gtc3BsaXR0ZXItYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogU2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgc3BsaXR0ZXIgd2hlbiBob3ZlcmluZyBpdC5cbiAqIC0gLS1zY2ktc2FzaGJveC1zcGxpdHRlci1zaXplOiBTZXRzIHRoZSBzaXplIG9mIHRoZSBzcGxpdHRlciBhbG9uZyB0aGUgbWFpbiBheGlzLlxuICogLSAtLXNjaS1zYXNoYm94LXNwbGl0dGVyLXNpemUtaG92ZXI6IFNldHMgdGhlIHNpemUgb2YgdGhlIHNwbGl0dGVyIGFsb25nIHRoZSBtYWluIGF4aXMgd2hlbiBob3ZlcmluZyBpdC5cbiAqIC0gLS1zY2ktc2FzaGJveC1zcGxpdHRlci10b3VjaC10YXJnZXQtc2l6ZTogU2V0cyB0aGUgdG91Y2ggdGFyZ2V0IHNpemUgdG8gbW92ZSB0aGUgc3BsaXR0ZXIgKGFjY2Vzc2liaWxpdHkpLlxuICogLSAtLXNjaS1zYXNoYm94LXNwbGl0dGVyLWNyb3NzLWF4aXMtc2l6ZTogU2V0cyB0aGUgc3BsaXR0ZXIgc2l6ZSBhbG9uZyB0aGUgY3Jvc3MgYXhpcy5cbiAqIC0gLS1zY2ktc2FzaGJveC1zcGxpdHRlci1ib3JkZXItcmFkaXVzOiBTZXRzIHRoZSBib3JkZXIgcmFkaXVzIG9mIHRoZSBzcGxpdHRlci5cbiAqIC0gLS1zY2ktc2FzaGJveC1zcGxpdHRlci1vcGFjaXR5LWFjdGl2ZTogU2V0cyB0aGUgb3BhY2l0eSBvZiB0aGUgc3BsaXR0ZXIgd2hpbGUgdGhlIHVzZXIgbW92ZXMgdGhlIHNwbGl0dGVyLlxuICogLSAtLXNjaS1zYXNoYm94LXNwbGl0dGVyLW9wYWNpdHktaG92ZXI6IFNldHMgdGhlIG9wYWNpdHkgb2YgdGhlIHNwbGl0dGVyIHdoZW4gaG92ZXJpbmcgaXQuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBgYGBzY3NzXG4gKiBzY2ktc2FzaGJveCB7XG4gKiAgIC0tc2NpLXNhc2hib3gtc3BsaXR0ZXItYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gKiAgIC0tc2NpLXNhc2hib3gtc3BsaXR0ZXItYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogYmxhY2s7XG4gKiB9XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2NpLXNhc2hib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2FzaGJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Nhc2hib3guY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgQXN5bmNQaXBlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgU2NpU2FzaEluaXRpYWxpemVyRGlyZWN0aXZlLFxuICAgIFNjaVNwbGl0dGVyQ29tcG9uZW50LFxuICAgIFNjaUVsZW1lbnRSZWZEaXJlY3RpdmUsXG4gIF0sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBTY2lTYXNoQm94QWNjZXNzb3IsXG4gICAgdXNlRmFjdG9yeTogcHJvdmlkZVNhc2hCb3hBY2Nlc3NvcixcbiAgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFNjaVNhc2hib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgc2FzaGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2NpU2FzaERpcmVjdGl2ZVtdPihbXSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zYXNoaW5nJylcbiAgcHVibGljIHNhc2hpbmcgPSBmYWxzZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGlmIHRvIGxheSBvdXQgc2FzaGVzIGluIGEgcm93ICh3aGljaCBpcyBieSBkZWZhdWx0KSBvciBjb2x1bW4gYXJyYW5nZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlyZWN0aW9uOiAnY29sdW1uJyB8ICdyb3cnID0gJ3Jvdyc7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gc3RhcnQgc2FzaGluZy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2FzaFN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgYWJzb2x1dGUgc2FzaCBzaXplcyAocHgpIHdoZW4gZmluaXNoZWQgc2FzaGluZy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2FzaEVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyW10+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAQ29udGVudENoaWxkcmVuKFNjaVNhc2hEaXJlY3RpdmUpXG4gIHB1YmxpYyBzZXQgc2V0U2FzaGVzKHF1ZXJ5TGlzdDogUXVlcnlMaXN0PFNjaVNhc2hEaXJlY3RpdmU+KSB7XG4gICAgcXVlcnlMaXN0LmNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgocXVlcnlMaXN0KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHNhc2hlczogUXVlcnlMaXN0PFNjaVNhc2hEaXJlY3RpdmU+KSA9PiB7XG4gICAgICAgIHRoaXMuc2FzaGVzJC5uZXh0KHNhc2hlcy50b0FycmF5KCkpO1xuICAgICAgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHJpdmF0ZSBfem9uZTogTmdab25lKSB7XG4gIH1cblxuICBwdWJsaWMgb25TYXNoU3RhcnQoKTogdm9pZCB7XG4gICAgdGhpcy5zYXNoaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNhc2hTdGFydC5lbWl0KCk7XG5cbiAgICAvLyBzZXQgdGhlIGVmZmVjdGl2ZSBzYXNoIHNpemUgYXMgdGhlIGZsZXgtYmFzaXMgZm9yIG5vbi1maXhlZCBzYXNoZXMgKGFzIHNhc2hpbmcgb3BlcmF0ZXMgb24gcGl4ZWwgZGVsdGFzKVxuICAgIHRoaXMuc2FzaGVzLmZvckVhY2goc2FzaCA9PiB7XG4gICAgICBpZiAoIXNhc2guaXNGaXhlZFNpemUpIHtcbiAgICAgICAgc2FzaC5mbGV4R3JvdyA9IDA7XG4gICAgICAgIHNhc2guZmxleFNocmluayA9IDA7XG4gICAgICAgIHNhc2guZmxleEJhc2lzID0gYCR7c2FzaC5jb21wdXRlZFNpemV9cHhgO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU2FzaEVuZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNhc2hpbmcgPSBmYWxzZTtcblxuICAgIC8vIHVuc2V0IHRoZSBmbGV4LWJhc2lzIGZvciBub24tZml4ZWQgc2FzaGVzIGFuZCBzZXQgdGhlIGZsZXgtZ3JvdyBhY2NvcmRpbmdseVxuICAgIGNvbnN0IHBpeGVsVG9GbGV4R3Jvd0ZhY3RvciA9IGNvbXB1dGVQaXhlbFRvRmxleEdyb3dGYWN0b3IodGhpcy5zYXNoZXMpO1xuICAgIGNvbnN0IGFic29sdXRlU2FzaFNpemVzID0gdGhpcy5zYXNoZXMubWFwKHNhc2ggPT4gc2FzaC5jb21wdXRlZFNpemUpO1xuXG4gICAgdGhpcy5zYXNoZXMuZm9yRWFjaCgoc2FzaCwgaSkgPT4ge1xuICAgICAgaWYgKCFzYXNoLmlzRml4ZWRTaXplKSB7XG4gICAgICAgIHNhc2guZmxleEdyb3cgPSBwaXhlbFRvRmxleEdyb3dGYWN0b3IgKiBhYnNvbHV0ZVNhc2hTaXplc1tpXTtcbiAgICAgICAgc2FzaC5mbGV4U2hyaW5rID0gMTtcbiAgICAgICAgc2FzaC5mbGV4QmFzaXMgPSAnMCc7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zYXNoRW5kLmVtaXQoYWJzb2x1dGVTYXNoU2l6ZXMpO1xuICB9XG5cbiAgcHVibGljIG9uU2FzaChzcGxpdHRlcjogSFRNTEVsZW1lbnQsIHNhc2hJbmRleDogbnVtYmVyLCBtb3ZlRXZlbnQ6IFNwbGl0dGVyTW92ZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBtb3ZlRXZlbnQuZGlzdGFuY2U7XG4gICAgaWYgKGRpc3RhbmNlID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgTmdab25lLmFzc2VydE5vdEluQW5ndWxhclpvbmUoKTtcblxuICAgIC8vIGNvbXB1dGUgdGhlIHNwbGl0dGVyIHBvc2l0aW9uXG4gICAgY29uc3Qgc3BsaXR0ZXJSZWN0ID0gc3BsaXR0ZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgc3BsaXR0ZXJTdGFydCA9ICh0aGlzLmlzUm93RGlyZWN0aW9uID8gc3BsaXR0ZXJSZWN0LmxlZnQgOiBzcGxpdHRlclJlY3QudG9wKTtcbiAgICBjb25zdCBzcGxpdHRlckVuZCA9ICh0aGlzLmlzUm93RGlyZWN0aW9uID8gc3BsaXR0ZXJSZWN0LmxlZnQgKyBzcGxpdHRlclJlY3Qud2lkdGggOiBzcGxpdHRlclJlY3QudG9wICsgc3BsaXR0ZXJSZWN0LmhlaWdodCk7XG5cbiAgICAvLyBpZ25vcmUgdGhlIGV2ZW50IGlmIG91dHNpZGUgb2YgdGhlIHNwbGl0dGVyJ3MgYWN0aW9uIHNjb3BlXG4gICAgY29uc3QgZXZlbnRQb3MgPSBtb3ZlRXZlbnQucG9zaXRpb24uY2xpZW50UG9zO1xuICAgIC8vIGkuZS4gdGhlIHNhc2ggc2hvdWxkIG5vdCBncm93IGlmIG1vdmVkIHRoZSBtb3VzZSBwb2ludGVyIGJleW9uZCB0aGUgbGVmdCBib3VuZHMgb2YgdGhlIHNhc2gsIGFuZCBpZiBub3cgbW92aW5nIHRoZSBtb3VzZSBwb2ludGVyIGJhY2sgdG93YXJkIHRoZSBjdXJyZW50IHNhc2guXG4gICAgaWYgKGRpc3RhbmNlID4gMCAmJiBldmVudFBvcyA8IHNwbGl0dGVyU3RhcnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBpLmUuIHRoZSBzYXNoIHNob3VsZCBub3Qgc2hyaW5rIGlmIG1vdmVkIHRoZSBtb3VzZSBwb2ludGVyIGJleW9uZCB0aGUgcmlnaHQgYm91bmRzIG9mIHRoZSBzYXNoLCBhbmQgaWYgbm93IG1vdmluZyB0aGUgbW91c2UgcG9pbnRlciBiYWNrIHRvd2FyZCB0aGUgY3VycmVudCBzYXNoLlxuICAgIGlmIChkaXN0YW5jZSA8IDAgJiYgZXZlbnRQb3MgPiBzcGxpdHRlckVuZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGNvbXB1dGUgdGhlIG5ldyBzYXNoIHNpemVzXG4gICAgY29uc3Qgc2FzaDEgPSB0aGlzLnNhc2hlc1tzYXNoSW5kZXhdO1xuICAgIGNvbnN0IHNhc2gyID0gdGhpcy5zYXNoZXNbc2FzaEluZGV4ICsgMV07XG5cbiAgICBjb25zdCBzYXNoU2l6ZTEgPSBzYXNoMS5jb21wdXRlZFNpemU7XG4gICAgY29uc3Qgc2FzaFNpemUyID0gc2FzaDIuY29tcHV0ZWRTaXplO1xuICAgIGNvbnN0IG1heFNhc2hTaXplID0gc2FzaFNpemUxICsgc2FzaFNpemUyO1xuICAgIGNvbnN0IGNvbXB1dGVkTmV3U2FzaFNpemUxID0gTWF0aC5yb3VuZChzYXNoU2l6ZTEgKyBkaXN0YW5jZSk7XG4gICAgY29uc3QgY29tcHV0ZWROZXdTYXNoU2l6ZTIgPSBNYXRoLnJvdW5kKHNhc2hTaXplMiAtIGRpc3RhbmNlKTtcblxuICAgIGlmIChzYXNoMS5taW5TaXplICE9PSB1bmRlZmluZWQgJiYgZGlzdGFuY2UgPCAwICYmIGNvbXB1dGVkTmV3U2FzaFNpemUxIDwgdGhpcy50b1BpeGVsKHNhc2gxLm1pblNpemUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChzYXNoMi5taW5TaXplICE9PSB1bmRlZmluZWQgJiYgZGlzdGFuY2UgPiAwICYmIGNvbXB1dGVkTmV3U2FzaFNpemUyIDwgdGhpcy50b1BpeGVsKHNhc2gyLm1pblNpemUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWROZXdTYXNoU2l6ZTEgPSBiZXR3ZWVuKGNvbXB1dGVkTmV3U2FzaFNpemUxLCB7bWluOiAwLCBtYXg6IG1heFNhc2hTaXplfSk7XG4gICAgY29uc3QgdmFsaWROZXdTYXNoU2l6ZTIgPSBiZXR3ZWVuKGNvbXB1dGVkTmV3U2FzaFNpemUyLCB7bWluOiAwLCBtYXg6IG1heFNhc2hTaXplfSk7XG5cbiAgICAvLyBjb250aW51ZSBvbmx5IGlmIGJvdGggc2FzaGVzIGFkamFjZW50IHRvIHRoZSBzcGxpdHRlciBjaGFuZ2UgdGhlaXIgc2l6ZSAoYXMgdGhlIGV2ZW50IHdvdWxkIGNoYW5nZSBvdGhlciBzYXNoZXMgb3RoZXJ3aXNlKVxuICAgIGlmICh2YWxpZE5ld1Nhc2hTaXplMSAhPT0gY29tcHV0ZWROZXdTYXNoU2l6ZTEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHZhbGlkTmV3U2FzaFNpemUyICE9PSBjb21wdXRlZE5ld1Nhc2hTaXplMikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHNldCB0aGUgbmV3IGNvbXB1dGVkIHNhc2ggc2l6ZXNcbiAgICB0aGlzLl96b25lLnJ1bigoKSA9PiB7XG4gICAgICBzYXNoMS5mbGV4QmFzaXMgPSBgJHtjb21wdXRlZE5ld1Nhc2hTaXplMX1weGA7XG4gICAgICBzYXNoMi5mbGV4QmFzaXMgPSBgJHtjb21wdXRlZE5ld1Nhc2hTaXplMn1weGA7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25TYXNoUmVzZXQoc2FzaEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBzYXNoMSA9IHRoaXMuc2FzaGVzW3Nhc2hJbmRleF07XG4gICAgY29uc3Qgc2FzaDIgPSB0aGlzLnNhc2hlc1tzYXNoSW5kZXggKyAxXTtcbiAgICBjb25zdCBlcXVhbFNhc2hTaXplID0gKHNhc2gxLmNvbXB1dGVkU2l6ZSArIHNhc2gyLmNvbXB1dGVkU2l6ZSkgLyAyO1xuICAgIGNvbnN0IHBpeGVsVG9GbGV4R3Jvd0ZhY3RvciA9IGNvbXB1dGVQaXhlbFRvRmxleEdyb3dGYWN0b3IodGhpcy5zYXNoZXMpO1xuICAgIGNvbnN0IGFic29sdXRlU2FzaFNpemVzQWZ0ZXJSZXNldCA9IHRoaXMuc2FzaGVzLm1hcCgoc2FzaCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpbmRleCA9PT0gc2FzaEluZGV4IHx8IGluZGV4ID09PSBzYXNoSW5kZXggKyAxKSB7XG4gICAgICAgIHJldHVybiBlcXVhbFNhc2hTaXplO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNhc2guY29tcHV0ZWRTaXplO1xuICAgIH0pO1xuXG4gICAgW3Nhc2gxLCBzYXNoMl0uZm9yRWFjaChzYXNoID0+IHtcbiAgICAgIGlmIChzYXNoLmlzRml4ZWRTaXplKSB7XG4gICAgICAgIHNhc2guZmxleEJhc2lzID0gYCR7ZXF1YWxTYXNoU2l6ZX1weGA7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgc2FzaC5mbGV4R3JvdyA9IHBpeGVsVG9GbGV4R3Jvd0ZhY3RvciAqIGVxdWFsU2FzaFNpemU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnNhc2hTdGFydC5lbWl0KCk7XG4gICAgdGhpcy5zYXNoRW5kLmVtaXQoYWJzb2x1dGVTYXNoU2l6ZXNBZnRlclJlc2V0KTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY29sdW1uJylcbiAgcHVibGljIGdldCBpc0NvbHVtbkRpcmVjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24gPT09ICdjb2x1bW4nO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb3cnKVxuICBwdWJsaWMgZ2V0IGlzUm93RGlyZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbiA9PT0gJ3Jvdyc7XG4gIH1cblxuICBwcml2YXRlIGdldCBzYXNoZXMoKTogU2NpU2FzaERpcmVjdGl2ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5zYXNoZXMkLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9QaXhlbCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAodmFsdWUuZW5kc1dpdGgoJyUnKSkge1xuICAgICAgY29uc3QgaG9zdEJvdW5kcyA9IHRoaXMuX2hvc3QubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGhvc3RTaXplID0gKHRoaXMuaXNSb3dEaXJlY3Rpb24gPyBob3N0Qm91bmRzLndpZHRoIDogaG9zdEJvdW5kcy5oZWlnaHQpO1xuICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCkgKiBob3N0U2l6ZSAvIDEwMDtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYmV0d2Vlbih2YWx1ZTogbnVtYmVyLCBtaW5tYXg6IHttaW46IG51bWJlcjsgbWF4OiBudW1iZXJ9KTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGgubWluKG1pbm1heC5tYXgsIE1hdGgubWF4KG1pbm1heC5taW4sIHZhbHVlKSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZmFjdG9yIHRvIGNvbXB1dGUgdGhlIGZsZXgtZ3JvdyBwcm9wb3J0aW9uIGZyb20gdGhlIHBpeGVsIHNpemUgb2YgYSBzYXNoLlxuICovXG5mdW5jdGlvbiBjb21wdXRlUGl4ZWxUb0ZsZXhHcm93RmFjdG9yKHNhc2hlczogU2NpU2FzaERpcmVjdGl2ZVtdKTogbnVtYmVyIHtcbiAgY29uc3QgZmxleGlibGVTYXNoZXMgPSBzYXNoZXMuZmlsdGVyKHNhc2ggPT4gIXNhc2guaXNGaXhlZFNpemUpO1xuXG4gIGNvbnN0IHByb3BvcnRpb25TdW0gPSBmbGV4aWJsZVNhc2hlcy5yZWR1Y2UoKHN1bSwgc2FzaCkgPT4gc3VtICsgTnVtYmVyKHNhc2guc2l6ZSksIDApO1xuICBjb25zdCBwaXhlbFN1bSA9IGZsZXhpYmxlU2FzaGVzLnJlZHVjZSgoc3VtLCBzYXNoKSA9PiBzdW0gKyBzYXNoLmNvbXB1dGVkU2l6ZSwgMCk7XG5cbiAgcmV0dXJuIHByb3BvcnRpb25TdW0gLyBwaXhlbFN1bTtcbn1cblxuZnVuY3Rpb24gcHJvdmlkZVNhc2hCb3hBY2Nlc3NvcigpOiBTY2lTYXNoQm94QWNjZXNzb3Ige1xuICBjb25zdCBjb21wb25lbnQgPSBpbmplY3QoU2NpU2FzaGJveENvbXBvbmVudCk7XG5cbiAgcmV0dXJuIG5ldyBjbGFzcyBpbXBsZW1lbnRzIFNjaVNhc2hCb3hBY2Nlc3NvciB7XG5cbiAgICBwdWJsaWMgZ2V0IGRpcmVjdGlvbigpOiAnY29sdW1uJyB8ICdyb3cnIHtcbiAgICAgIHJldHVybiBjb21wb25lbnQuZGlyZWN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2FzaGVzJCgpOiBPYnNlcnZhYmxlPFNjaVNhc2hEaXJlY3RpdmVbXT4ge1xuICAgICAgcmV0dXJuIGNvbXBvbmVudC5zYXNoZXMkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2FzaGVzKCk6IFNjaVNhc2hEaXJlY3RpdmVbXSB7XG4gICAgICByZXR1cm4gY29tcG9uZW50LnNhc2hlcyQudmFsdWU7XG4gICAgfVxuICB9O1xufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2FzaCBvZiBzYXNoZXMkIHwgYXN5bmM7IGluZGV4IGFzIGk7IGZpcnN0IGFzIGZpcnN0OyBsYXN0IGFzIGxhc3Q7XCI+XG4gIDxkaXYgY2xhc3M9XCJzYXNoXCJcbiAgICAgICBbY2xhc3MuZmlyc3RdPVwiZmlyc3RcIlxuICAgICAgIFtjbGFzcy5sYXN0XT1cImxhc3RcIlxuICAgICAgIFtzY2lTYXNoSW5pdGlhbGl6ZXJdPVwic2FzaFwiXG4gICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJzYXNoLmZsZXhHcm93Tm9ybWFsaXplZCQgfCBhc3luY1wiXG4gICAgICAgW3N0eWxlLmZsZXgtc2hyaW5rXT1cInNhc2guZmxleFNocmlua1wiXG4gICAgICAgW3N0eWxlLmZsZXgtYmFzaXNdPVwic2FzaC5mbGV4QmFzaXNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2FzaC5zYXNoVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPHNjaS1zcGxpdHRlciAqbmdJZj1cIiFsYXN0XCJcbiAgICAgICAgICAgICAgICBzY2lFbGVtZW50UmVmICNzY2lFbGVtZW50UmVmPVwic2NpRWxlbWVudFJlZlwiXG4gICAgICAgICAgICAgICAgW29yaWVudGF0aW9uXT1cImlzUm93RGlyZWN0aW9uID8gJ3ZlcnRpY2FsJyA6ICdob3Jpem9udGFsJ1wiXG4gICAgICAgICAgICAgICAgKHN0YXJ0KT1cIm9uU2FzaFN0YXJ0KClcIlxuICAgICAgICAgICAgICAgIChtb3ZlKT1cIm9uU2FzaChzY2lFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGksICRldmVudClcIlxuICAgICAgICAgICAgICAgIChlbmQpPVwib25TYXNoRW5kKClcIlxuICAgICAgICAgICAgICAgIChyZXNldCk9XCJvblNhc2hSZXNldChpKVwiPlxuICA8L3NjaS1zcGxpdHRlcj5cbjwvbmctY29udGFpbmVyPlxuIl19
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FzaGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3Nhc2hib3gvc3JjL3Nhc2hib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy9zYXNoYm94L3NyYy9zYXNoYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JKLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGVBQWUsRUFBYyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFDLG9CQUFvQixFQUFvQixNQUFNLDRCQUE0QixDQUFDO0FBQ25GLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFL0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvREc7QUFrQkgsTUFBTSxPQUFPLG1CQUFtQjtJQWpCaEM7UUFtQlUsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7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QUFtQixDQUFDLENBQUM7SUFFOUMsT0FBTyxJQUFJO1FBRVQsSUFBVyxTQUFTO1lBQ2xCLE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUM3QixDQUFDO1FBRUQsSUFBVyxPQUFPO1lBQ2hCLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBVyxNQUFNO1lBQ2YsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNqQyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT3V0cHV0LCBRdWVyeUxpc3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzdGFydFdpdGgsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtTY2lTcGxpdHRlckNvbXBvbmVudCwgU3BsaXR0ZXJNb3ZlRXZlbnR9IGZyb20gJ0BzY2lvbi9jb21wb25lbnRzL3NwbGl0dGVyJztcbmltcG9ydCB7U2NpU2FzaERpcmVjdGl2ZX0gZnJvbSAnLi9zYXNoLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1NjaVNhc2hCb3hBY2Nlc3Nvcn0gZnJvbSAnLi9zYXNoYm94LWFjY2Vzc29yJztcbmltcG9ydCB7QXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtTY2lTYXNoSW5pdGlhbGl6ZXJEaXJlY3RpdmV9IGZyb20gJy4vc2FzaC1pbml0aWFsaXplci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtTY2lFbGVtZW50UmVmRGlyZWN0aXZlfSBmcm9tICcuL2VsZW1lbnQtcmVmLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogVGhlIDxzY2ktc2FzaGJveD4gaXMgbGlrZSBhIENTUyBmbGV4Ym94IGNvbnRhaW5lciB0aGF0IGxheXMgb3V0IGl0cyBjb250ZW50IGNoaWxkcmVuIChzYXNoZXMpIGluIGEgcm93ICh3aGljaCBpcyBieSBkZWZhdWx0KVxuICogb3IgY29sdW1uIGFycmFuZ2VtZW50IChhcyBzcGVjaWZpZWQgYnkgdGhlIGRpcmVjdGlvbiBwcm9wZXJ0eSkuIEEgc3BsaXR0ZXIgaXMgYWRkZWQgYmV0d2VlbiBlYWNoIGNoaWxkIHRvIGFsbG93IHRoZSB1c2VyIHRvXG4gKiBzaHJpbmsgb3Igc3RyZXRjaCB0aGUgaW5kaXZpZHVhbCBzYXNoZXMuXG4gKlxuICogU2FzaGVzIGFyZSBtb2RlbGxlZCBhcyBjb250ZW50IGNoaWxkcmVuIGluc2lkZSBhIDxuZy10ZW1wbGF0ZT4gZGVjb3JhdGVkIHdpdGggdGhlICdzY2lTYXNoJyBkaXJlY3RpdmUuXG4gKiBBIHNhc2ggY2FuIGhhdmUgYSBmaXhlZCBzaXplIHdpdGggYW4gZXhwbGljaXQgdW5pdCwgb3IgYSB1bml0bGVzcyBwcm9wb3J0aW9uIHRvIGRpc3RpYnV0ZSByZW1haW5pbmcgc3BhY2UuXG4gKiBBIHByb3BvcnRpb25hbCBzYXNoIGhhcyB0aGUgYWJpbGl0eSB0byBncm93IG9yIHNocmluayBpZiBuZWNlc3NhcnkuXG4gKlxuICpcbiAqICMjIyBVc2FnZVxuICpcbiAqIGBgYGh0bWxcbiAqIDxzY2ktc2FzaGJveCBkaXJlY3Rpb249XCJyb3dcIj5cbiAqICAgPG5nLXRlbXBsYXRlIHNjaVNhc2ggc2l6ZT1cIjFcIj5cbiAqICAgICAuLi5cbiAqICAgPC9uZy10ZW1wbGF0ZT5cbiAqXG4gKiAgIDxuZy10ZW1wbGF0ZSBzY2lTYXNoIHNpemU9XCIyXCI+XG4gKiAgICAgLi4uXG4gKiAgIDwvbmctdGVtcGxhdGU+XG4gKlxuICogICA8bmctdGVtcGxhdGUgc2NpU2FzaCBzaXplPVwiMVwiPlxuICogICAgIC4uLlxuICogICA8L25nLXRlbXBsYXRlPlxuICogPC9zY2ktc2FzaGJveD5cbiAqIGBgYFxuICpcbiAqICMjIyBTdHlsaW5nXG4gKlxuICogVG8gY3VzdG9taXplIHRoZSBkZWZhdWx0IGxvb2sgb2YgU0NJT04gY29tcG9uZW50cyBvciBzdXBwb3J0IGRpZmZlcmVudCB0aGVtZXMsIGNvbmZpZ3VyZSB0aGUgYEBzY2lvbi9jb21wb25lbnRzYCBTQ1NTIG1vZHVsZSBpbiBgc3R5bGVzLnNjc3NgLlxuICogVG8gc3R5bGUgYSBzcGVjaWZpYyBgc2NpLXNhc2hib3hgIGNvbXBvbmVudCwgdGhlIGZvbGxvd2luZyBDU1MgdmFyaWFibGVzIGNhbiBiZSBzZXQgZGlyZWN0bHkgb24gdGhlIGNvbXBvbmVudC5cbiAqXG4gKiAtIC0tc2NpLXNhc2hib3gtZ2FwOiBTZXRzIHRoZSBnYXBzIChndXR0ZXJzKSBiZXR3ZWVuIHNhc2hlcy5cbiAqIC0gLS1zY2ktc2FzaGJveC1zcGxpdHRlci1iYWNrZ3JvdW5kLWNvbG9yOiBTZXRzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBzcGxpdHRlci5cbiAqIC0gLS1zY2ktc2FzaGJveC1zcGxpdHRlci1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiBTZXRzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBzcGxpdHRlciB3aGVuIGhvdmVyaW5nIGl0LlxuICogLSAtLXNjaS1zYXNoYm94LXNwbGl0dGVyLXNpemU6IFNldHMgdGhlIHNpemUgb2YgdGhlIHNwbGl0dGVyIGFsb25nIHRoZSBtYWluIGF4aXMuXG4gKiAtIC0tc2NpLXNhc2hib3gtc3BsaXR0ZXItc2l6ZS1ob3ZlcjogU2V0cyB0aGUgc2l6ZSBvZiB0aGUgc3BsaXR0ZXIgYWxvbmcgdGhlIG1haW4gYXhpcyB3aGVuIGhvdmVyaW5nIGl0LlxuICogLSAtLXNjaS1zYXNoYm94LXNwbGl0dGVyLXRvdWNoLXRhcmdldC1zaXplOiBTZXRzIHRoZSB0b3VjaCB0YXJnZXQgc2l6ZSB0byBtb3ZlIHRoZSBzcGxpdHRlciAoYWNjZXNzaWJpbGl0eSkuXG4gKiAtIC0tc2NpLXNhc2hib3gtc3BsaXR0ZXItY3Jvc3MtYXhpcy1zaXplOiBTZXRzIHRoZSBzcGxpdHRlciBzaXplIGFsb25nIHRoZSBjcm9zcyBheGlzLlxuICogLSAtLXNjaS1zYXNoYm94LXNwbGl0dGVyLWJvcmRlci1yYWRpdXM6IFNldHMgdGhlIGJvcmRlciByYWRpdXMgb2YgdGhlIHNwbGl0dGVyLlxuICogLSAtLXNjaS1zYXNoYm94LXNwbGl0dGVyLW9wYWNpdHktYWN0aXZlOiBTZXRzIHRoZSBvcGFjaXR5IG9mIHRoZSBzcGxpdHRlciB3aGlsZSB0aGUgdXNlciBtb3ZlcyB0aGUgc3BsaXR0ZXIuXG4gKiAtIC0tc2NpLXNhc2hib3gtc3BsaXR0ZXItb3BhY2l0eS1ob3ZlcjogU2V0cyB0aGUgb3BhY2l0eSBvZiB0aGUgc3BsaXR0ZXIgd2hlbiBob3ZlcmluZyBpdC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYHNjc3NcbiAqIHNjaS1zYXNoYm94IHtcbiAqICAgLS1zY2ktc2FzaGJveC1zcGxpdHRlci1iYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAqICAgLS1zY2ktc2FzaGJveC1zcGxpdHRlci1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiBibGFjaztcbiAqIH1cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzY2ktc2FzaGJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXNoYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2FzaGJveC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgU2NpU2FzaEluaXRpYWxpemVyRGlyZWN0aXZlLFxuICAgIFNjaVNwbGl0dGVyQ29tcG9uZW50LFxuICAgIFNjaUVsZW1lbnRSZWZEaXJlY3RpdmUsXG4gIF0sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBTY2lTYXNoQm94QWNjZXNzb3IsXG4gICAgdXNlRmFjdG9yeTogcHJvdmlkZVNhc2hCb3hBY2Nlc3NvcixcbiAgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFNjaVNhc2hib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfaG9zdCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50PikubmF0aXZlRWxlbWVudDtcbiAgcHJpdmF0ZSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIHB1YmxpYyBzYXNoZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTY2lTYXNoRGlyZWN0aXZlW10+KFtdKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNhc2hpbmcnKVxuICBwdWJsaWMgc2FzaGluZyA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS3JtXNjaS1zYXNoYm94LW1heC1oZWlnaHQnKVxuICBwdWJsaWMgbWF4SGVpZ2h0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLcm1c2NpLXNhc2hib3gtbWF4LXdpZHRoJylcbiAgcHVibGljIG1heFdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBpZiB0byBsYXkgb3V0IHNhc2hlcyBpbiBhIHJvdyAod2hpY2ggaXMgYnkgZGVmYXVsdCkgb3IgY29sdW1uIGFycmFuZ2VtZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRpcmVjdGlvbjogJ2NvbHVtbicgfCAncm93JyA9ICdyb3cnO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHN0YXJ0IHNhc2hpbmcuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNhc2hTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIGFic29sdXRlIHNhc2ggc2l6ZXMgKHB4KSB3aGVuIGZpbmlzaGVkIHNhc2hpbmcuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNhc2hFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcltdPigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihTY2lTYXNoRGlyZWN0aXZlKVxuICBwdWJsaWMgc2V0IHNldFNhc2hlcyhxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxTY2lTYXNoRGlyZWN0aXZlPikge1xuICAgIHF1ZXJ5TGlzdC5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHF1ZXJ5TGlzdCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChzYXNoZXM6IFF1ZXJ5TGlzdDxTY2lTYXNoRGlyZWN0aXZlPikgPT4ge1xuICAgICAgICB0aGlzLnNhc2hlcyQubmV4dChzYXNoZXMudG9BcnJheSgpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU2FzaFN0YXJ0KCk6IHZvaWQge1xuICAgIHRoaXMuc2FzaGluZyA9IHRydWU7XG5cbiAgICAvLyBBdm9pZCBvdmVyZmxvdyB3aGVuIHNhc2hpbmcuXG4gICAgY29uc3QgaG9zdEJvdW5kcyA9IHRoaXMuX2hvc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5tYXhIZWlnaHQgPSBob3N0Qm91bmRzLmhlaWdodDtcbiAgICB0aGlzLm1heFdpZHRoID0gaG9zdEJvdW5kcy53aWR0aDtcbiAgICB0aGlzLnNhc2hTdGFydC5lbWl0KCk7XG5cbiAgICAvLyBzZXQgdGhlIGVmZmVjdGl2ZSBzYXNoIHNpemUgYXMgdGhlIGZsZXgtYmFzaXMgZm9yIG5vbi1maXhlZCBzYXNoZXMgKGFzIHNhc2hpbmcgb3BlcmF0ZXMgb24gcGl4ZWwgZGVsdGFzKVxuICAgIHRoaXMuc2FzaGVzLmZvckVhY2goc2FzaCA9PiB7XG4gICAgICBpZiAoIXNhc2guaXNGaXhlZFNpemUpIHtcbiAgICAgICAgc2FzaC5mbGV4R3JvdyA9IDA7XG4gICAgICAgIHNhc2guZmxleFNocmluayA9IDE7XG4gICAgICAgIHNhc2guZmxleEJhc2lzID0gYCR7c2FzaC5jb21wdXRlZFNpemV9cHhgO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU2FzaEVuZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNhc2hpbmcgPSBmYWxzZTtcbiAgICB0aGlzLm1heEhlaWdodCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLm1heFdpZHRoID0gdW5kZWZpbmVkO1xuXG4gICAgLy8gdW5zZXQgdGhlIGZsZXgtYmFzaXMgZm9yIG5vbi1maXhlZCBzYXNoZXMgYW5kIHNldCB0aGUgZmxleC1ncm93IGFjY29yZGluZ2x5XG4gICAgY29uc3QgcGl4ZWxUb0ZsZXhHcm93RmFjdG9yID0gY29tcHV0ZVBpeGVsVG9GbGV4R3Jvd0ZhY3Rvcih0aGlzLnNhc2hlcyk7XG4gICAgY29uc3QgYWJzb2x1dGVTYXNoU2l6ZXMgPSB0aGlzLnNhc2hlcy5tYXAoc2FzaCA9PiBzYXNoLmNvbXB1dGVkU2l6ZSk7XG5cbiAgICB0aGlzLnNhc2hlcy5mb3JFYWNoKChzYXNoLCBpKSA9PiB7XG4gICAgICBpZiAoIXNhc2guaXNGaXhlZFNpemUpIHtcbiAgICAgICAgc2FzaC5mbGV4R3JvdyA9IHBpeGVsVG9GbGV4R3Jvd0ZhY3RvciAqIGFic29sdXRlU2FzaFNpemVzW2ldO1xuICAgICAgICBzYXNoLmZsZXhTaHJpbmsgPSAxO1xuICAgICAgICBzYXNoLmZsZXhCYXNpcyA9ICcwJztcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNhc2hFbmQuZW1pdChhYnNvbHV0ZVNhc2hTaXplcyk7XG4gIH1cblxuICBwdWJsaWMgb25TYXNoKHNwbGl0dGVyOiBIVE1MRWxlbWVudCwgc2FzaEluZGV4OiBudW1iZXIsIG1vdmVFdmVudDogU3BsaXR0ZXJNb3ZlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBkaXN0YW5jZSA9IG1vdmVFdmVudC5kaXN0YW5jZTtcbiAgICBpZiAoZGlzdGFuY2UgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBOZ1pvbmUuYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpO1xuXG4gICAgLy8gY29tcHV0ZSB0aGUgc3BsaXR0ZXIgcG9zaXRpb25cbiAgICBjb25zdCBzcGxpdHRlclJlY3QgPSBzcGxpdHRlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzcGxpdHRlclN0YXJ0ID0gKHRoaXMuaXNSb3dEaXJlY3Rpb24gPyBzcGxpdHRlclJlY3QubGVmdCA6IHNwbGl0dGVyUmVjdC50b3ApO1xuICAgIGNvbnN0IHNwbGl0dGVyRW5kID0gKHRoaXMuaXNSb3dEaXJlY3Rpb24gPyBzcGxpdHRlclJlY3QubGVmdCArIHNwbGl0dGVyUmVjdC53aWR0aCA6IHNwbGl0dGVyUmVjdC50b3AgKyBzcGxpdHRlclJlY3QuaGVpZ2h0KTtcblxuICAgIC8vIGlnbm9yZSB0aGUgZXZlbnQgaWYgb3V0c2lkZSBvZiB0aGUgc3BsaXR0ZXIncyBhY3Rpb24gc2NvcGVcbiAgICBjb25zdCBldmVudFBvcyA9IG1vdmVFdmVudC5wb3NpdGlvbi5jbGllbnRQb3M7XG4gICAgLy8gaS5lLiB0aGUgc2FzaCBzaG91bGQgbm90IGdyb3cgaWYgbW92ZWQgdGhlIG1vdXNlIHBvaW50ZXIgYmV5b25kIHRoZSBsZWZ0IGJvdW5kcyBvZiB0aGUgc2FzaCwgYW5kIGlmIG5vdyBtb3ZpbmcgdGhlIG1vdXNlIHBvaW50ZXIgYmFjayB0b3dhcmQgdGhlIGN1cnJlbnQgc2FzaC5cbiAgICBpZiAoZGlzdGFuY2UgPiAwICYmIGV2ZW50UG9zIDwgc3BsaXR0ZXJTdGFydCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGkuZS4gdGhlIHNhc2ggc2hvdWxkIG5vdCBzaHJpbmsgaWYgbW92ZWQgdGhlIG1vdXNlIHBvaW50ZXIgYmV5b25kIHRoZSByaWdodCBib3VuZHMgb2YgdGhlIHNhc2gsIGFuZCBpZiBub3cgbW92aW5nIHRoZSBtb3VzZSBwb2ludGVyIGJhY2sgdG93YXJkIHRoZSBjdXJyZW50IHNhc2guXG4gICAgaWYgKGRpc3RhbmNlIDwgMCAmJiBldmVudFBvcyA+IHNwbGl0dGVyRW5kKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gY29tcHV0ZSB0aGUgbmV3IHNhc2ggc2l6ZXNcbiAgICBjb25zdCBzYXNoMSA9IHRoaXMuc2FzaGVzW3Nhc2hJbmRleF07XG4gICAgY29uc3Qgc2FzaDIgPSB0aGlzLnNhc2hlc1tzYXNoSW5kZXggKyAxXTtcblxuICAgIGNvbnN0IHNhc2hTaXplMSA9IHNhc2gxLmNvbXB1dGVkU2l6ZTtcbiAgICBjb25zdCBzYXNoU2l6ZTIgPSBzYXNoMi5jb21wdXRlZFNpemU7XG5cbiAgICBjb25zdCBzYXNoTWluU2l6ZTEgPSBzYXNoMS5taW5TaXplID8gdGhpcy50b1BpeGVsKHNhc2gxLm1pblNpemUpIDogMDtcbiAgICBjb25zdCBzYXNoTWluU2l6ZTIgPSBzYXNoMi5taW5TaXplID8gdGhpcy50b1BpeGVsKHNhc2gyLm1pblNpemUpIDogMDtcblxuICAgIGNvbnN0IG5ld1Nhc2hTaXplMSA9IGJldHdlZW4oTWF0aC5yb3VuZChzYXNoU2l6ZTEgKyBkaXN0YW5jZSksIHttaW46IHNhc2hNaW5TaXplMSwgbWF4OiBzYXNoU2l6ZTEgKyBzYXNoU2l6ZTIgLSBzYXNoTWluU2l6ZTJ9KTtcbiAgICBjb25zdCBuZXdTYXNoU2l6ZTIgPSBiZXR3ZWVuKE1hdGgucm91bmQoc2FzaFNpemUyIC0gZGlzdGFuY2UpLCB7bWluOiBzYXNoTWluU2l6ZTIsIG1heDogc2FzaFNpemUxICsgc2FzaFNpemUyIC0gc2FzaE1pblNpemUxfSk7XG5cbiAgICAvLyBzZXQgdGhlIG5ldyBjb21wdXRlZCBzYXNoIHNpemVzXG4gICAgdGhpcy5fem9uZS5ydW4oKCkgPT4ge1xuICAgICAgc2FzaDEuZmxleEJhc2lzID0gYCR7bmV3U2FzaFNpemUxfXB4YDtcbiAgICAgIHNhc2gyLmZsZXhCYXNpcyA9IGAke25ld1Nhc2hTaXplMn1weGA7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25TYXNoUmVzZXQoc2FzaEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBzYXNoMSA9IHRoaXMuc2FzaGVzW3Nhc2hJbmRleF07XG4gICAgY29uc3Qgc2FzaDIgPSB0aGlzLnNhc2hlc1tzYXNoSW5kZXggKyAxXTtcbiAgICBjb25zdCBlcXVhbFNhc2hTaXplID0gKHNhc2gxLmNvbXB1dGVkU2l6ZSArIHNhc2gyLmNvbXB1dGVkU2l6ZSkgLyAyO1xuICAgIGNvbnN0IHBpeGVsVG9GbGV4R3Jvd0ZhY3RvciA9IGNvbXB1dGVQaXhlbFRvRmxleEdyb3dGYWN0b3IodGhpcy5zYXNoZXMpO1xuICAgIGNvbnN0IGFic29sdXRlU2FzaFNpemVzQWZ0ZXJSZXNldCA9IHRoaXMuc2FzaGVzLm1hcCgoc2FzaCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpbmRleCA9PT0gc2FzaEluZGV4IHx8IGluZGV4ID09PSBzYXNoSW5kZXggKyAxKSB7XG4gICAgICAgIHJldHVybiBlcXVhbFNhc2hTaXplO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNhc2guY29tcHV0ZWRTaXplO1xuICAgIH0pO1xuXG4gICAgW3Nhc2gxLCBzYXNoMl0uZm9yRWFjaChzYXNoID0+IHtcbiAgICAgIGlmIChzYXNoLmlzRml4ZWRTaXplKSB7XG4gICAgICAgIHNhc2guZmxleEJhc2lzID0gYCR7ZXF1YWxTYXNoU2l6ZX1weGA7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgc2FzaC5mbGV4R3JvdyA9IHBpeGVsVG9GbGV4R3Jvd0ZhY3RvciAqIGVxdWFsU2FzaFNpemU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnNhc2hTdGFydC5lbWl0KCk7XG4gICAgdGhpcy5zYXNoRW5kLmVtaXQoYWJzb2x1dGVTYXNoU2l6ZXNBZnRlclJlc2V0KTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY29sdW1uJylcbiAgcHVibGljIGdldCBpc0NvbHVtbkRpcmVjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24gPT09ICdjb2x1bW4nO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb3cnKVxuICBwdWJsaWMgZ2V0IGlzUm93RGlyZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbiA9PT0gJ3Jvdyc7XG4gIH1cblxuICBwcml2YXRlIGdldCBzYXNoZXMoKTogU2NpU2FzaERpcmVjdGl2ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5zYXNoZXMkLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9QaXhlbCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAodmFsdWUuZW5kc1dpdGgoJyUnKSkge1xuICAgICAgY29uc3QgaG9zdEJvdW5kcyA9IHRoaXMuX2hvc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBob3N0U2l6ZSA9ICh0aGlzLmlzUm93RGlyZWN0aW9uID8gaG9zdEJvdW5kcy53aWR0aCA6IGhvc3RCb3VuZHMuaGVpZ2h0KTtcbiAgICAgIHJldHVybiBwYXJzZUludCh2YWx1ZSwgMTApICogaG9zdFNpemUgLyAxMDA7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZUludCh2YWx1ZSwgMTApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJldHdlZW4odmFsdWU6IG51bWJlciwgbWlubWF4OiB7bWluOiBudW1iZXI7IG1heDogbnVtYmVyfSk6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLm1pbihtaW5tYXgubWF4LCBNYXRoLm1heChtaW5tYXgubWluLCB2YWx1ZSkpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGZhY3RvciB0byBjb21wdXRlIHRoZSBmbGV4LWdyb3cgcHJvcG9ydGlvbiBmcm9tIHRoZSBwaXhlbCBzaXplIG9mIGEgc2FzaC5cbiAqL1xuZnVuY3Rpb24gY29tcHV0ZVBpeGVsVG9GbGV4R3Jvd0ZhY3RvcihzYXNoZXM6IFNjaVNhc2hEaXJlY3RpdmVbXSk6IG51bWJlciB7XG4gIGNvbnN0IGZsZXhpYmxlU2FzaGVzID0gc2FzaGVzLmZpbHRlcihzYXNoID0+ICFzYXNoLmlzRml4ZWRTaXplKTtcblxuICBjb25zdCBwcm9wb3J0aW9uU3VtID0gZmxleGlibGVTYXNoZXMucmVkdWNlKChzdW0sIHNhc2gpID0+IHN1bSArIE51bWJlcihzYXNoLnNpemUpLCAwKTtcbiAgY29uc3QgcGl4ZWxTdW0gPSBmbGV4aWJsZVNhc2hlcy5yZWR1Y2UoKHN1bSwgc2FzaCkgPT4gc3VtICsgc2FzaC5jb21wdXRlZFNpemUsIDApO1xuXG4gIHJldHVybiBwcm9wb3J0aW9uU3VtIC8gcGl4ZWxTdW07XG59XG5cbmZ1bmN0aW9uIHByb3ZpZGVTYXNoQm94QWNjZXNzb3IoKTogU2NpU2FzaEJveEFjY2Vzc29yIHtcbiAgY29uc3QgY29tcG9uZW50ID0gaW5qZWN0KFNjaVNhc2hib3hDb21wb25lbnQpO1xuXG4gIHJldHVybiBuZXcgY2xhc3MgaW1wbGVtZW50cyBTY2lTYXNoQm94QWNjZXNzb3Ige1xuXG4gICAgcHVibGljIGdldCBkaXJlY3Rpb24oKTogJ2NvbHVtbicgfCAncm93JyB7XG4gICAgICByZXR1cm4gY29tcG9uZW50LmRpcmVjdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNhc2hlcyQoKTogT2JzZXJ2YWJsZTxTY2lTYXNoRGlyZWN0aXZlW10+IHtcbiAgICAgIHJldHVybiBjb21wb25lbnQuc2FzaGVzJDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNhc2hlcygpOiBTY2lTYXNoRGlyZWN0aXZlW10ge1xuICAgICAgcmV0dXJuIGNvbXBvbmVudC5zYXNoZXMkLnZhbHVlO1xuICAgIH1cbiAgfTtcbn1cbiIsIkBmb3IgKHNhc2ggb2Ygc2FzaGVzJCB8IGFzeW5jOyB0cmFjayBzYXNoOyBsZXQgaSA9ICRpbmRleDsgbGV0IGZpcnN0ID0gJGZpcnN0OyBsZXQgbGFzdCA9ICRsYXN0KSB7XG4gIDxkaXYgY2xhc3M9XCJzYXNoXCJcbiAgICAgICBbY2xhc3MuZmlyc3RdPVwiZmlyc3RcIlxuICAgICAgIFtjbGFzcy5sYXN0XT1cImxhc3RcIlxuICAgICAgIFtzY2lTYXNoSW5pdGlhbGl6ZXJdPVwic2FzaFwiXG4gICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJzYXNoLmZsZXhHcm93Tm9ybWFsaXplZCQgfCBhc3luY1wiXG4gICAgICAgW3N0eWxlLmZsZXgtc2hyaW5rXT1cInNhc2guZmxleFNocmlua1wiXG4gICAgICAgW3N0eWxlLmZsZXgtYmFzaXNdPVwic2FzaC5mbGV4QmFzaXNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2FzaC5zYXNoVGVtcGxhdGVcIi8+XG4gIDwvZGl2PlxuICBAaWYgKCFsYXN0KSB7XG4gICAgPHNjaS1zcGxpdHRlciBzY2lFbGVtZW50UmVmICNzY2lFbGVtZW50UmVmPVwic2NpRWxlbWVudFJlZlwiXG4gICAgICAgICAgICAgICAgICBbb3JpZW50YXRpb25dPVwiaXNSb3dEaXJlY3Rpb24gPyAndmVydGljYWwnIDogJ2hvcml6b250YWwnXCJcbiAgICAgICAgICAgICAgICAgIChzdGFydCk9XCJvblNhc2hTdGFydCgpXCJcbiAgICAgICAgICAgICAgICAgIChtb3ZlKT1cIm9uU2FzaChzY2lFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgKGVuZCk9XCJvblNhc2hFbmQoKVwiXG4gICAgICAgICAgICAgICAgICAocmVzZXQpPVwib25TYXNoUmVzZXQoaSlcIi8+XG4gIH1cbn1cbiJdfQ==
@@ -33,13 +33,13 @@ import * as i0 from "@angular/core";
33
33
  * ```
34
34
  */
35
35
  export class SciSashboxModule {
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSashboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
37
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: SciSashboxModule, imports: [SciSashboxComponent,
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
37
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: SciSashboxModule, imports: [SciSashboxComponent,
38
38
  SciSashDirective], exports: [SciSashboxComponent,
39
39
  SciSashDirective] }); }
40
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSashboxModule, imports: [SciSashboxComponent] }); }
40
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashboxModule, imports: [SciSashboxComponent] }); }
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSashboxModule, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSashboxModule, decorators: [{
43
43
  type: NgModule,
44
44
  args: [{
45
45
  imports: [
@@ -188,12 +188,12 @@ export class SciSplitterComponent {
188
188
  ngOnDestroy() {
189
189
  this._destroy$.next();
190
190
  }
191
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSplitterComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
192
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: SciSplitterComponent, isStandalone: true, selector: "sci-splitter", inputs: { orientation: "orientation" }, outputs: { start: "start", move: "move", end: "end", reset: "reset" }, host: { properties: { "class.moving": "this.moving", "class.vertical": "this.isVertical", "class.horizontal": "this.isHorizontal", "style.cursor": "this.splitterCursor" } }, viewQueries: [{ propertyName: "touchTargetElementRef", first: true, predicate: ["touch_target"], descendants: true, static: true }], ngImport: i0, template: "<div #touch_target class=\"touch-target\">\n <div class=\"handle\"></div>\n</div>\n", styles: ["@charset \"UTF-8\";:host{--\\275sci-splitter-background-color: var(--sci-splitter-background-color, var(--sci-splitter-bgcolor, #d2d2d2));--\\275sci-splitter-background-color-hover: var(--sci-splitter-background-color-hover, var(--sci-splitter-bgcolor_hover, var(--\\275sci-splitter-background-color)));--\\275sci-splitter-size: var(--sci-splitter-size, 1px);--\\275sci-splitter-size-hover: var(--sci-splitter-size-hover, var(--sci-splitter-size_hover, 8px));--\\275sci-splitter-touch-target-size: var(--sci-splitter-touch-target-size, 15px);--\\275sci-splitter-cross-axis-size: var(--sci-splitter-cross-axis-size, 100%);--\\275sci-splitter-border-radius: var(--sci-splitter-border-radius, 0);--\\275sci-splitter-opacity-active: var(--sci-splitter-opacity-active, var(--sci-splitter-opacity_active, 1));--\\275sci-splitter-opacity-hover: var(--sci-splitter-opacity-hover, var(--sci-splitter-opacity_hover, .3));display:grid;position:relative;background-color:var(--\\275sci-splitter-background-color);border-radius:var(--\\275sci-splitter-border-radius);place-items:center;align-self:center}:host>div.touch-target{position:absolute;display:grid;place-items:center;pointer-events:auto}:host>div.touch-target>div.handle{position:absolute;background-color:var(--\\275sci-splitter-background-color);border-radius:var(--\\275sci-splitter-border-radius);opacity:var(--\\275sci-splitter-opacity-hover);transition-property:width,height;transition-timing-function:ease-in;transition-duration:75ms}:host.vertical{width:var(--\\275sci-splitter-size);height:var(--\\275sci-splitter-cross-axis-size)}:host.vertical>div.touch-target{width:var(--\\275sci-splitter-touch-target-size);height:100%}:host.vertical>div.touch-target>div.handle{width:var(--\\275sci-splitter-size);height:100%}:host.horizontal{height:var(--\\275sci-splitter-size);width:var(--\\275sci-splitter-cross-axis-size)}:host.horizontal>div.touch-target{width:100%;height:var(--\\275sci-splitter-touch-target-size)}:host.horizontal>div.touch-target>div.handle{width:100%;height:var(--\\275sci-splitter-size)}:host>div.touch-target:active>div.handle{opacity:var(--\\275sci-splitter-opacity-active)}:host.vertical.moving>div.touch-target>div.handle,:host.vertical>div.touch-target:hover>div.handle{background-color:var(--\\275sci-splitter-background-color-hover);width:var(--\\275sci-splitter-size-hover)}:host.horizontal.moving>div.touch-target>div.handle,:host.horizontal>div.touch-target:hover>div.handle{background-color:var(--\\275sci-splitter-background-color-hover);height:var(--\\275sci-splitter-size-hover)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
191
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSplitterComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: SciSplitterComponent, isStandalone: true, selector: "sci-splitter", inputs: { orientation: "orientation" }, outputs: { start: "start", move: "move", end: "end", reset: "reset" }, host: { properties: { "class.moving": "this.moving", "class.vertical": "this.isVertical", "class.horizontal": "this.isHorizontal", "style.cursor": "this.splitterCursor" } }, viewQueries: [{ propertyName: "touchTargetElementRef", first: true, predicate: ["touch_target"], descendants: true, static: true }], ngImport: i0, template: "<div #touch_target class=\"touch-target\">\n <div class=\"handle\"></div>\n</div>\n", styles: [":host{display:grid;position:relative;background-color:var(--sci-splitter-background-color);border-radius:var(--sci-splitter-border-radius);place-items:center;align-self:center}:host>div.touch-target{position:absolute;display:grid;place-items:center;pointer-events:auto}:host>div.touch-target>div.handle{position:absolute;background-color:var(--sci-splitter-background-color);border-radius:var(--sci-splitter-border-radius);opacity:var(--sci-splitter-opacity-hover);transition-property:width,height;transition-timing-function:ease-in;transition-duration:75ms}:host.vertical{width:var(--sci-splitter-size);height:var(--sci-splitter-cross-axis-size)}:host.vertical>div.touch-target{width:var(--sci-splitter-touch-target-size);height:100%}:host.vertical>div.touch-target>div.handle{width:var(--sci-splitter-size);height:100%}:host.horizontal{height:var(--sci-splitter-size);width:var(--sci-splitter-cross-axis-size)}:host.horizontal>div.touch-target{width:100%;height:var(--sci-splitter-touch-target-size)}:host.horizontal>div.touch-target>div.handle{width:100%;height:var(--sci-splitter-size)}:host>div.touch-target:active>div.handle{opacity:var(--sci-splitter-opacity-active)}:host.vertical.moving>div.touch-target>div.handle,:host.vertical>div.touch-target:hover>div.handle{background-color:var(--sci-splitter-background-color-hover);width:var(--sci-splitter-size-hover)}:host.horizontal.moving>div.touch-target>div.handle,:host.horizontal>div.touch-target:hover>div.handle{background-color:var(--sci-splitter-background-color-hover);height:var(--sci-splitter-size-hover)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
193
193
  }
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSplitterComponent, decorators: [{
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSplitterComponent, decorators: [{
195
195
  type: Component,
196
- args: [{ selector: 'sci-splitter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div #touch_target class=\"touch-target\">\n <div class=\"handle\"></div>\n</div>\n", styles: ["@charset \"UTF-8\";:host{--\\275sci-splitter-background-color: var(--sci-splitter-background-color, var(--sci-splitter-bgcolor, #d2d2d2));--\\275sci-splitter-background-color-hover: var(--sci-splitter-background-color-hover, var(--sci-splitter-bgcolor_hover, var(--\\275sci-splitter-background-color)));--\\275sci-splitter-size: var(--sci-splitter-size, 1px);--\\275sci-splitter-size-hover: var(--sci-splitter-size-hover, var(--sci-splitter-size_hover, 8px));--\\275sci-splitter-touch-target-size: var(--sci-splitter-touch-target-size, 15px);--\\275sci-splitter-cross-axis-size: var(--sci-splitter-cross-axis-size, 100%);--\\275sci-splitter-border-radius: var(--sci-splitter-border-radius, 0);--\\275sci-splitter-opacity-active: var(--sci-splitter-opacity-active, var(--sci-splitter-opacity_active, 1));--\\275sci-splitter-opacity-hover: var(--sci-splitter-opacity-hover, var(--sci-splitter-opacity_hover, .3));display:grid;position:relative;background-color:var(--\\275sci-splitter-background-color);border-radius:var(--\\275sci-splitter-border-radius);place-items:center;align-self:center}:host>div.touch-target{position:absolute;display:grid;place-items:center;pointer-events:auto}:host>div.touch-target>div.handle{position:absolute;background-color:var(--\\275sci-splitter-background-color);border-radius:var(--\\275sci-splitter-border-radius);opacity:var(--\\275sci-splitter-opacity-hover);transition-property:width,height;transition-timing-function:ease-in;transition-duration:75ms}:host.vertical{width:var(--\\275sci-splitter-size);height:var(--\\275sci-splitter-cross-axis-size)}:host.vertical>div.touch-target{width:var(--\\275sci-splitter-touch-target-size);height:100%}:host.vertical>div.touch-target>div.handle{width:var(--\\275sci-splitter-size);height:100%}:host.horizontal{height:var(--\\275sci-splitter-size);width:var(--\\275sci-splitter-cross-axis-size)}:host.horizontal>div.touch-target{width:100%;height:var(--\\275sci-splitter-touch-target-size)}:host.horizontal>div.touch-target>div.handle{width:100%;height:var(--\\275sci-splitter-size)}:host>div.touch-target:active>div.handle{opacity:var(--\\275sci-splitter-opacity-active)}:host.vertical.moving>div.touch-target>div.handle,:host.vertical>div.touch-target:hover>div.handle{background-color:var(--\\275sci-splitter-background-color-hover);width:var(--\\275sci-splitter-size-hover)}:host.horizontal.moving>div.touch-target>div.handle,:host.horizontal>div.touch-target:hover>div.handle{background-color:var(--\\275sci-splitter-background-color-hover);height:var(--\\275sci-splitter-size-hover)}\n"] }]
196
+ args: [{ selector: 'sci-splitter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div #touch_target class=\"touch-target\">\n <div class=\"handle\"></div>\n</div>\n", styles: [":host{display:grid;position:relative;background-color:var(--sci-splitter-background-color);border-radius:var(--sci-splitter-border-radius);place-items:center;align-self:center}:host>div.touch-target{position:absolute;display:grid;place-items:center;pointer-events:auto}:host>div.touch-target>div.handle{position:absolute;background-color:var(--sci-splitter-background-color);border-radius:var(--sci-splitter-border-radius);opacity:var(--sci-splitter-opacity-hover);transition-property:width,height;transition-timing-function:ease-in;transition-duration:75ms}:host.vertical{width:var(--sci-splitter-size);height:var(--sci-splitter-cross-axis-size)}:host.vertical>div.touch-target{width:var(--sci-splitter-touch-target-size);height:100%}:host.vertical>div.touch-target>div.handle{width:var(--sci-splitter-size);height:100%}:host.horizontal{height:var(--sci-splitter-size);width:var(--sci-splitter-cross-axis-size)}:host.horizontal>div.touch-target{width:100%;height:var(--sci-splitter-touch-target-size)}:host.horizontal>div.touch-target>div.handle{width:100%;height:var(--sci-splitter-size)}:host>div.touch-target:active>div.handle{opacity:var(--sci-splitter-opacity-active)}:host.vertical.moving>div.touch-target>div.handle,:host.vertical>div.touch-target:hover>div.handle{background-color:var(--sci-splitter-background-color-hover);width:var(--sci-splitter-size-hover)}:host.horizontal.moving>div.touch-target>div.handle,:host.horizontal>div.touch-target:hover>div.handle{background-color:var(--sci-splitter-background-color-hover);height:var(--sci-splitter-size-hover)}\n"] }]
197
197
  }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: Document, decorators: [{
198
198
  type: Inject,
199
199
  args: [DOCUMENT]
@@ -223,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
223
223
  type: ViewChild,
224
224
  args: ['touch_target', { static: true }]
225
225
  }] } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy9zcGxpdHRlci9zcmMvc3BsaXR0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy9zcGxpdHRlci9zcmMvc3BsaXR0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hMLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBRWhEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NHO0FBUUgsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixJQUNXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQ1csWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssWUFBWSxDQUFDO0lBQzNDLENBQUM7SUFrQ0QsbUJBQW1CO0lBQ25CLElBQ1csY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO0lB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Vzt1QkFBQyxjQUFjO2dCQU9wQixxQkFBcUI7c0JBRDNCLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHt0YXBGaXJzdH0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcbmltcG9ydCB7Zmlyc3QsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzcGxpdHRlciwgYSB2aXN1YWwgZWxlbWVudCB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBjb250cm9sIHRoZSBzaXplIG9mIGVsZW1lbnRzIG5leHQgdG8gaXQuXG4gKlxuICogVGhlIHNwbGl0dGVyIGhhcyBhIGhhbmRsZSB0aGF0IHRoZSB1c2VyIGNhbiBtb3ZlIGRlcGVuZGluZyBvbiB0aGUgb3JpZW50YXRpb24gb2YgdGhlIHNwbGl0dGVyLlxuICpcbiAqIE5vdGUgdGhhdCB0aGlzIGNvbnRyb2wgbmVpdGhlciBkb2VzIGNoYW5nZSB0aGUgc2l6ZSBvZiBhZGphY2VudCBlbGVtZW50cyBub3IgZG9lcyBpdCAocmUtKXBvc2l0aW9uIGl0c2VsZiwgYnV0IGVtaXRzIHRoZSBkaXN0YW5jZSBieVxuICogd2hpY2ggdGhlIHVzZXIgaGFzIHRoZW9yZXRpY2FsbHkgbW92ZWQgdGhlIHNwbGl0dGVyLiBZb3UgbXVzdCBzdWJzY3JpYmUgdG8gdGhlc2UgZXZlbnRzIGFuZCBjaGFuZ2UgeW91ciBsYXlvdXQgYWNjb3JkaW5nbHkuXG4gKlxuICogSW4gdGhlIHRvb2xraXQsIHtAbGluayBTY2lTYXNoYm94Q29tcG9uZW50fSB1c2VzIHRoaXMgc3BsaXR0ZXIgdG8gZGl2aWRlIGEgbGF5b3V0IGludG8gc2V2ZXJhbCByZXNpemFibGUgc2VjdGlvbnMuXG4gKiBBbm90aGVyIHVzZSBjYXNlIHdvdWxkIGJlIGEgcmVzaXphYmxlIHNpZGViYXIgcGFuZWwuXG4gKlxuICogIyMjIFVzYWdlXG4gKlxuICogYGBgaHRtbFxuICogPHNjaS1zcGxpdHRlciAobW92ZSk9XCJvblNwbGl0dGVyTW92ZSgkZXZlbnQuZGlzdGFuY2UpXCI+PC9zY2ktc3BsaXR0ZXI+XG4gKiBgYGBcbiAqXG4gKiAjIyMgU3R5bGluZ1xuICpcbiAqIFRvIGN1c3RvbWl6ZSB0aGUgZGVmYXVsdCBsb29rIG9mIFNDSU9OIGNvbXBvbmVudHMgb3Igc3VwcG9ydCBkaWZmZXJlbnQgdGhlbWVzLCBjb25maWd1cmUgdGhlIGBAc2Npb24vY29tcG9uZW50c2AgU0NTUyBtb2R1bGUgaW4gYHN0eWxlcy5zY3NzYC5cbiAqIFRvIHN0eWxlIGEgc3BlY2lmaWMgYHNjaS1zcGxpdHRlcmAgY29tcG9uZW50LCB0aGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgY2FuIGJlIHNldCBkaXJlY3RseSBvbiB0aGUgY29tcG9uZW50LlxuICpcbiAqIC0gLS1zY2ktc3BsaXR0ZXItYmFja2dyb3VuZC1jb2xvcjogU2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgc3BsaXR0ZXIuXG4gKiAtIC0tc2NpLXNwbGl0dGVyLWJhY2tncm91bmQtY29sb3ItaG92ZXI6IFNldHMgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHNwbGl0dGVyIHdoZW4gaG92ZXJpbmcgaXQuXG4gKiAtIC0tc2NpLXNwbGl0dGVyLXNpemU6IFNldHMgdGhlIHNpemUgb2YgdGhlIHNwbGl0dGVyIGFsb25nIHRoZSBtYWluIGF4aXMuXG4gKiAtIC0tc2NpLXNwbGl0dGVyLXNpemUtaG92ZXI6IFNldHMgdGhlIHNpemUgb2YgdGhlIHNwbGl0dGVyIGFsb25nIHRoZSBtYWluIGF4aXMgd2hlbiBob3ZlcmluZyBpdC5cbiAqIC0gLS1zY2ktc3BsaXR0ZXItdG91Y2gtdGFyZ2V0LXNpemU6IFNldHMgdGhlIHRvdWNoIHRhcmdldCBzaXplIHRvIG1vdmUgdGhlIHNwbGl0dGVyIChhY2Nlc3NpYmlsaXR5KS5cbiAqIC0gLS1zY2ktc3BsaXR0ZXItY3Jvc3MtYXhpcy1zaXplOiBTZXRzIHRoZSBzcGxpdHRlciBzaXplIGFsb25nIHRoZSBjcm9zcyBheGlzLlxuICogLSAtLXNjaS1zcGxpdHRlci1ib3JkZXItcmFkaXVzOiBTZXRzIHRoZSBib3JkZXIgcmFkaXVzIG9mIHRoZSBzcGxpdHRlci5cbiAqIC0gLS1zY2ktc3BsaXR0ZXItb3BhY2l0eS1hY3RpdmU6IFNldHMgdGhlIG9wYWNpdHkgb2YgdGhlIHNwbGl0dGVyIHdoaWxlIHRoZSB1c2VyIG1vdmVzIHRoZSBzcGxpdHRlci5cbiAqIC0gLS1zY2ktc3BsaXR0ZXItb3BhY2l0eS1ob3ZlcjogU2V0cyB0aGUgb3BhY2l0eSBvZiB0aGUgc3BsaXR0ZXIgd2hlbiBob3ZlcmluZyBpdC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYHNjc3NcbiAqIHNjaS1zcGxpdHRlciB7XG4gKiAgIC0tc2NpLXNwbGl0dGVyLWJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICogICAtLXNjaS1zcGxpdHRlci1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiBibGFjaztcbiAqIH1cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzY2ktc3BsaXR0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc3BsaXR0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zcGxpdHRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpU3BsaXR0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qIEBkb2NzLXByaXZhdGUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tb3ZpbmcnKVxuICBwdWJsaWMgbW92aW5nID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy52ZXJ0aWNhbCcpXG4gIHB1YmxpYyBnZXQgaXNWZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNIb3Jpem9udGFsO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ob3Jpem9udGFsJylcbiAgcHVibGljIGdldCBpc0hvcml6b250YWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIHRvIHJlbmRlciBhIHZlcnRpY2FsIG9yIGhvcml6b250YWwgc3BsaXR0ZXIuXG4gICAqIEJ5IGRlZmF1bHQsIGlmIG5vdCBzcGVjaWZpZWQsIHJlbmRlcnMgYSB2ZXJ0aWNhbCBzcGxpdHRlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcmllbnRhdGlvbjogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICd2ZXJ0aWNhbCc7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gc3RhcnRpbmcgdG8gbW92ZSB0aGUgc3BsaXR0ZXIuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBkaXN0YW5jZSBpbiBwaXhlbHMgd2hlbiB0aGUgc3BsaXR0ZXIgaXMgbW92ZWQuXG4gICAqIFRoZSBldmVudCBpcyBlbWl0dGVkIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgem9uZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8U3BsaXR0ZXJNb3ZlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gZW5kaW5nIHRvIG1vdmUgdGhlIHNwbGl0dGVyLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBlbmQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiB0byByZXNldCB0aGUgc3BsaXR0ZXIgcG9zaXRpb24uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlc2V0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG5cbiAgLyogQGRvY3MtcHJpdmF0ZSAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmN1cnNvcicpXG4gIHB1YmxpYyBnZXQgc3BsaXR0ZXJDdXJzb3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZlcnRpY2FsID8gJ2V3LXJlc2l6ZScgOiAnbnMtcmVzaXplJztcbiAgfVxuXG4gIC8qIEBkb2NzLXByaXZhdGUgKi9cbiAgQFZpZXdDaGlsZCgndG91Y2hfdGFyZ2V0Jywge3N0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyB0b3VjaFRhcmdldEVsZW1lbnRSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IERvY3VtZW50KSB7XG4gIH1cblxuICAvKiBAZG9jcy1wcml2YXRlICovXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQodGhpcy50b3VjaFRhcmdldEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2RibGNsaWNrJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMub25SZXNldCgpKTtcblxuICAgIGZyb21FdmVudDxUb3VjaEV2ZW50Pih0aGlzLnRvdWNoVGFyZ2V0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG91Y2hzdGFydCcpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHRoaXMub25Ub3VjaFN0YXJ0KGV2ZW50KSk7XG5cbiAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy50b3VjaFRhcmdldEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHRoaXMub25Nb3VzZURvd24oZXZlbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgb25SZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0LmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Ub3VjaFN0YXJ0KHN0YXJ0RXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmluc3RhbGxNb3ZlTGlzdGVuZXIoe1xuICAgICAgICBzdGFydEV2ZW50OiBzdGFydEV2ZW50LFxuICAgICAgICBtb3ZlRXZlbnROYW1lczogWyd0b3VjaG1vdmUnXSxcbiAgICAgICAgZW5kRXZlbnROYW1lczogWyd0b3VjaGVuZCcsICd0b3VjaGNhbmNlbCddLFxuICAgICAgICBldmVudFBvc2l0aW9uRm46ICh0b3VjaEV2ZW50OiBUb3VjaEV2ZW50KTogRXZlbnRQb3NpdGlvbiA9PiB7XG4gICAgICAgICAgY29uc3QgdG91Y2g6IFRvdWNoID0gdG91Y2hFdmVudC50b3VjaGVzWzBdO1xuICAgICAgICAgIGlmICh0aGlzLmlzVmVydGljYWwpIHtcbiAgICAgICAgICAgIHJldHVybiB7c2NyZWVuUG9zOiB0b3VjaC5zY3JlZW5YLCBjbGllbnRQb3M6IHRvdWNoLmNsaWVudFgsIHBhZ2VQb3M6IHRvdWNoLnBhZ2VYfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge3NjcmVlblBvczogdG91Y2guc2NyZWVuWSwgY2xpZW50UG9zOiB0b3VjaC5jbGllbnRZLCBwYWdlUG9zOiB0b3VjaC5wYWdlWX07XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlRG93bihzdGFydEV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHN0YXJ0RXZlbnQuYnV0dG9uICE9PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pbnN0YWxsTW92ZUxpc3RlbmVyKHtcbiAgICAgICAgc3RhcnRFdmVudDogc3RhcnRFdmVudCxcbiAgICAgICAgbW92ZUV2ZW50TmFtZXM6IFsnbW91c2Vtb3ZlJywgJ3NjaS1tb3VzZW1vdmUnXSxcbiAgICAgICAgZW5kRXZlbnROYW1lczogWydtb3VzZXVwJywgJ3NjaS1tb3VzZXVwJ10sXG4gICAgICAgIGV2ZW50UG9zaXRpb25GbjogKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpOiBFdmVudFBvc2l0aW9uID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5pc1ZlcnRpY2FsKSB7XG4gICAgICAgICAgICByZXR1cm4ge3NjcmVlblBvczogbW91c2VFdmVudC5zY3JlZW5YLCBjbGllbnRQb3M6IG1vdXNlRXZlbnQuY2xpZW50WCwgcGFnZVBvczogbW91c2VFdmVudC5wYWdlWH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtzY3JlZW5Qb3M6IG1vdXNlRXZlbnQuc2NyZWVuWSwgY2xpZW50UG9zOiBtb3VzZUV2ZW50LmNsaWVudFksIHBhZ2VQb3M6IG1vdXNlRXZlbnQucGFnZVl9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zdGFsbE1vdmVMaXN0ZW5lcjxFVkVOVCBleHRlbmRzIEV2ZW50Pihjb25maWc6IHtzdGFydEV2ZW50OiBFVkVOVDsgbW92ZUV2ZW50TmFtZXM6IHN0cmluZ1tdOyBlbmRFdmVudE5hbWVzOiBzdHJpbmdbXTsgZXZlbnRQb3NpdGlvbkZuOiAoZXZlbnQ6IEVWRU5UKSA9PiBFdmVudFBvc2l0aW9ufSk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXJ0RXZlbnQgPSBjb25maWcuc3RhcnRFdmVudDtcblxuICAgIHN0YXJ0RXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgLy8gaW5zdGFsbCBsaXN0ZW5lcnMgb24gZG9jdW1lbnQgbGV2ZWwgdG8gYWxsb3cgZmFzdCBkcmFnZ2luZyB0aGUgc3BsaXR0ZXIuXG4gICAgICBjb25zdCBtb3ZlRXZlbnQkID0gbWVyZ2UoLi4uY29uZmlnLm1vdmVFdmVudE5hbWVzLm1hcChldmVudE5hbWUgPT4gZnJvbUV2ZW50PEVWRU5UPih0aGlzLl9kb2N1bWVudCwgZXZlbnROYW1lKSkpO1xuICAgICAgY29uc3QgZW5kRXZlbnQkID0gbWVyZ2UoLi4uY29uZmlnLmVuZEV2ZW50TmFtZXMubWFwKGV2ZW50TmFtZSA9PiBmcm9tRXZlbnQ8RVZFTlQ+KHRoaXMuX2RvY3VtZW50LCBldmVudE5hbWUpKSk7XG4gICAgICBsZXQgbGFzdENsaWVudFBvcyA9IGNvbmZpZy5ldmVudFBvc2l0aW9uRm4oc3RhcnRFdmVudCkuY2xpZW50UG9zO1xuXG4gICAgICAvLyBBcHBseSBjdXJzb3Igb24gZG9jdW1lbnQgbGV2ZWwgdG8gcHJldmVudCBmbGlja2VyaW5nIHdoaWxlIG1vdmluZyB0aGUgc3BsaXR0ZXJcbiAgICAgIGNvbnN0IG9sZERvY3VtZW50Q3Vyc29yID0gdGhpcy5fZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I7XG4gICAgICB0aGlzLl9kb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9IHRoaXMuc3BsaXR0ZXJDdXJzb3I7XG5cbiAgICAgIC8vIExpc3RlbiBmb3IgJ21vdmUnIGV2ZW50cyB1bnRpbCBzdG9wIG1vdmluZyB0aGUgc3BsaXR0ZXJcbiAgICAgIG1vdmVFdmVudCRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwRmlyc3QoKCkgPT4gdGhpcy5fem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb3ZpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zdGFydC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgdGFrZVVudGlsKG1lcmdlKGVuZEV2ZW50JCwgdGhpcy5fZGVzdHJveSQpKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChtb3ZlRXZlbnQ6IEVWRU5UKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXZlbnRQb3MgPSBjb25maWcuZXZlbnRQb3NpdGlvbkZuKG1vdmVFdmVudCk7XG4gICAgICAgICAgY29uc3QgbmV3Q2xpZW50UG9zID0gZXZlbnRQb3MuY2xpZW50UG9zO1xuICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gbmV3Q2xpZW50UG9zIC0gbGFzdENsaWVudFBvcztcbiAgICAgICAgICBsYXN0Q2xpZW50UG9zID0gbmV3Q2xpZW50UG9zO1xuXG4gICAgICAgICAgTmdab25lLmFzc2VydE5vdEluQW5ndWxhclpvbmUoKTtcbiAgICAgICAgICB0aGlzLm1vdmUuZW1pdCh7ZGlzdGFuY2UsIHBvc2l0aW9uOiBldmVudFBvc30pO1xuICAgICAgICB9KTtcblxuICAgICAgLy8gTGlzdGVuIGZvciAnZW5kJyBldmVudHM7IGNhbGwgJ3N0b3AgcHJvcGFnYXRpb24nIHRvIG5vdCBjbG9zZSBvdmVybGF5c1xuICAgICAgZW5kRXZlbnQkXG4gICAgICAgIC5waXBlKGZpcnN0KCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGVuZEV2ZW50OiBFVkVOVCkgPT4ge1xuICAgICAgICAgIGVuZEV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRoaXMuX2RvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gb2xkRG9jdW1lbnRDdXJzb3I7XG4gICAgICAgICAgdGhpcy5tb3ZpbmcgJiYgdGhpcy5fem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmQubmV4dCgpO1xuICAgICAgICAgICAgdGhpcy5tb3ZpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qIEBkb2NzLXByaXZhdGUgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50UG9zaXRpb24ge1xuICBjbGllbnRQb3M6IG51bWJlcjtcbiAgcGFnZVBvczogbnVtYmVyO1xuICBzY3JlZW5Qb3M6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBFdmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiBtb3ZpbmcgdGhlIHNwbGl0dGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwbGl0dGVyTW92ZUV2ZW50IHtcbiAgLyoqXG4gICAqIFRoZSBkaXN0YW5jZSBpbiBwaXhlbHMgYnkgd2hpY2ggdGhlIHVzZXIgaGFzIG1vdmVkIHRoZSBzcGxpdHRlciBzaW5jZSB0aGUgbGFzdCBlbWlzc2lvbi5cbiAgICovXG4gIGRpc3RhbmNlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgcG9zaXRpb24gd2hlcmUgdGhlIG1vdXNlIG9yIHRvdWNoIGV2ZW50IGhhcyBvY2N1cnJlZC5cbiAgICovXG4gIHBvc2l0aW9uOiBFdmVudFBvc2l0aW9uO1xufVxuIiwiPGRpdiAjdG91Y2hfdGFyZ2V0IGNsYXNzPVwidG91Y2gtdGFyZ2V0XCI+XG4gIDxkaXYgY2xhc3M9XCJoYW5kbGVcIj48L2Rpdj5cbjwvZGl2PlxuIl19
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy9zcGxpdHRlci9zcmMvc3BsaXR0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy9zcGxpdHRlci9zcmMvc3BsaXR0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hMLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBRWhEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NHO0FBUUgsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixJQUNXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQ1csWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssWUFBWSxDQUFDO0lBQzNDLENBQUM7SUFrQ0QsbUJBQW1CO0lBQ25CLElBQ1csY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO0lB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VCxNQUFNO2dCQU9BLEtBQUs7c0JBRFgsTUFBTTtnQkFLSSxjQUFjO3NCQUR4QixXQUFXO3VCQUFDLGNBQWM7Z0JBT3BCLHFCQUFxQjtzQkFEM0IsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIG1lcmdlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge3RhcEZpcnN0fSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHtmaXJzdCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNwbGl0dGVyLCBhIHZpc3VhbCBlbGVtZW50IHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGNvbnRyb2wgdGhlIHNpemUgb2YgZWxlbWVudHMgbmV4dCB0byBpdC5cbiAqXG4gKiBUaGUgc3BsaXR0ZXIgaGFzIGEgaGFuZGxlIHRoYXQgdGhlIHVzZXIgY2FuIG1vdmUgZGVwZW5kaW5nIG9uIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgc3BsaXR0ZXIuXG4gKlxuICogTm90ZSB0aGF0IHRoaXMgY29udHJvbCBuZWl0aGVyIGRvZXMgY2hhbmdlIHRoZSBzaXplIG9mIGFkamFjZW50IGVsZW1lbnRzIG5vciBkb2VzIGl0IChyZS0pcG9zaXRpb24gaXRzZWxmLCBidXQgZW1pdHMgdGhlIGRpc3RhbmNlIGJ5XG4gKiB3aGljaCB0aGUgdXNlciBoYXMgdGhlb3JldGljYWxseSBtb3ZlZCB0aGUgc3BsaXR0ZXIuIFlvdSBtdXN0IHN1YnNjcmliZSB0byB0aGVzZSBldmVudHMgYW5kIGNoYW5nZSB5b3VyIGxheW91dCBhY2NvcmRpbmdseS5cbiAqXG4gKiBJbiB0aGUgdG9vbGtpdCwge0BsaW5rIFNjaVNhc2hib3hDb21wb25lbnR9IHVzZXMgdGhpcyBzcGxpdHRlciB0byBkaXZpZGUgYSBsYXlvdXQgaW50byBzZXZlcmFsIHJlc2l6YWJsZSBzZWN0aW9ucy5cbiAqIEFub3RoZXIgdXNlIGNhc2Ugd291bGQgYmUgYSByZXNpemFibGUgc2lkZWJhciBwYW5lbC5cbiAqXG4gKiAjIyMgVXNhZ2VcbiAqXG4gKiBgYGBodG1sXG4gKiA8c2NpLXNwbGl0dGVyIChtb3ZlKT1cIm9uU3BsaXR0ZXJNb3ZlKCRldmVudC5kaXN0YW5jZSlcIj48L3NjaS1zcGxpdHRlcj5cbiAqIGBgYFxuICpcbiAqICMjIyBTdHlsaW5nXG4gKlxuICogVG8gY3VzdG9taXplIHRoZSBkZWZhdWx0IGxvb2sgb2YgU0NJT04gY29tcG9uZW50cyBvciBzdXBwb3J0IGRpZmZlcmVudCB0aGVtZXMsIGNvbmZpZ3VyZSB0aGUgYEBzY2lvbi9jb21wb25lbnRzYCBTQ1NTIG1vZHVsZSBpbiBgc3R5bGVzLnNjc3NgLlxuICogVG8gc3R5bGUgYSBzcGVjaWZpYyBgc2NpLXNwbGl0dGVyYCBjb21wb25lbnQsIHRoZSBmb2xsb3dpbmcgQ1NTIHZhcmlhYmxlcyBjYW4gYmUgc2V0IGRpcmVjdGx5IG9uIHRoZSBjb21wb25lbnQuXG4gKlxuICogLSAtLXNjaS1zcGxpdHRlci1iYWNrZ3JvdW5kLWNvbG9yOiBTZXRzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBzcGxpdHRlci5cbiAqIC0gLS1zY2ktc3BsaXR0ZXItYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogU2V0cyB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgc3BsaXR0ZXIgd2hlbiBob3ZlcmluZyBpdC5cbiAqIC0gLS1zY2ktc3BsaXR0ZXItc2l6ZTogU2V0cyB0aGUgc2l6ZSBvZiB0aGUgc3BsaXR0ZXIgYWxvbmcgdGhlIG1haW4gYXhpcy5cbiAqIC0gLS1zY2ktc3BsaXR0ZXItc2l6ZS1ob3ZlcjogU2V0cyB0aGUgc2l6ZSBvZiB0aGUgc3BsaXR0ZXIgYWxvbmcgdGhlIG1haW4gYXhpcyB3aGVuIGhvdmVyaW5nIGl0LlxuICogLSAtLXNjaS1zcGxpdHRlci10b3VjaC10YXJnZXQtc2l6ZTogU2V0cyB0aGUgdG91Y2ggdGFyZ2V0IHNpemUgdG8gbW92ZSB0aGUgc3BsaXR0ZXIgKGFjY2Vzc2liaWxpdHkpLlxuICogLSAtLXNjaS1zcGxpdHRlci1jcm9zcy1heGlzLXNpemU6IFNldHMgdGhlIHNwbGl0dGVyIHNpemUgYWxvbmcgdGhlIGNyb3NzIGF4aXMuXG4gKiAtIC0tc2NpLXNwbGl0dGVyLWJvcmRlci1yYWRpdXM6IFNldHMgdGhlIGJvcmRlciByYWRpdXMgb2YgdGhlIHNwbGl0dGVyLlxuICogLSAtLXNjaS1zcGxpdHRlci1vcGFjaXR5LWFjdGl2ZTogU2V0cyB0aGUgb3BhY2l0eSBvZiB0aGUgc3BsaXR0ZXIgd2hpbGUgdGhlIHVzZXIgbW92ZXMgdGhlIHNwbGl0dGVyLlxuICogLSAtLXNjaS1zcGxpdHRlci1vcGFjaXR5LWhvdmVyOiBTZXRzIHRoZSBvcGFjaXR5IG9mIHRoZSBzcGxpdHRlciB3aGVuIGhvdmVyaW5nIGl0LlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBgc2Nzc1xuICogc2NpLXNwbGl0dGVyIHtcbiAqICAgLS1zY2ktc3BsaXR0ZXItYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gKiAgIC0tc2NpLXNwbGl0dGVyLWJhY2tncm91bmQtY29sb3ItaG92ZXI6IGJsYWNrO1xuICogfVxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NjaS1zcGxpdHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGxpdHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwbGl0dGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTY2lTcGxpdHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyogQGRvY3MtcHJpdmF0ZSAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1vdmluZycpXG4gIHB1YmxpYyBtb3ZpbmcgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZlcnRpY2FsJylcbiAgcHVibGljIGdldCBpc1ZlcnRpY2FsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pc0hvcml6b250YWw7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhvcml6b250YWwnKVxuICBwdWJsaWMgZ2V0IGlzSG9yaXpvbnRhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdG8gcmVuZGVyIGEgdmVydGljYWwgb3IgaG9yaXpvbnRhbCBzcGxpdHRlci5cbiAgICogQnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZCwgcmVuZGVycyBhIHZlcnRpY2FsIHNwbGl0dGVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG9yaWVudGF0aW9uOiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ3ZlcnRpY2FsJztcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiBzdGFydGluZyB0byBtb3ZlIHRoZSBzcGxpdHRlci5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcblxuICAvKipcbiAgICogRW1pdHMgdGhlIGRpc3RhbmNlIGluIHBpeGVscyB3aGVuIHRoZSBzcGxpdHRlciBpcyBtb3ZlZC5cbiAgICogVGhlIGV2ZW50IGlzIGVtaXR0ZWQgb3V0c2lkZSBvZiB0aGUgQW5ndWxhciB6b25lLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxTcGxpdHRlck1vdmVFdmVudD4oKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiBlbmRpbmcgdG8gbW92ZSB0aGUgc3BsaXR0ZXIuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRvIHJlc2V0IHRoZSBzcGxpdHRlciBwb3NpdGlvbi5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVzZXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcblxuICAvKiBAZG9jcy1wcml2YXRlICovXG4gIEBIb3N0QmluZGluZygnc3R5bGUuY3Vyc29yJylcbiAgcHVibGljIGdldCBzcGxpdHRlckN1cnNvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzVmVydGljYWwgPyAnZXctcmVzaXplJyA6ICducy1yZXNpemUnO1xuICB9XG5cbiAgLyogQGRvY3MtcHJpdmF0ZSAqL1xuICBAVmlld0NoaWxkKCd0b3VjaF90YXJnZXQnLCB7c3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHRvdWNoVGFyZ2V0RWxlbWVudFJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgfVxuXG4gIC8qIEBkb2NzLXByaXZhdGUgKi9cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGZyb21FdmVudCh0aGlzLnRvdWNoVGFyZ2V0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGJsY2xpY2snKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblJlc2V0KCkpO1xuXG4gICAgZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KHRoaXMudG91Y2hUYXJnZXRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0b3VjaHN0YXJ0JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogVG91Y2hFdmVudCkgPT4gdGhpcy5vblRvdWNoU3RhcnQoZXZlbnQpKTtcblxuICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLnRvdWNoVGFyZ2V0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4gdGhpcy5vbk1vdXNlRG93bihldmVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXQuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblRvdWNoU3RhcnQoc3RhcnRFdmVudDogVG91Y2hFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaW5zdGFsbE1vdmVMaXN0ZW5lcih7XG4gICAgICAgIHN0YXJ0RXZlbnQ6IHN0YXJ0RXZlbnQsXG4gICAgICAgIG1vdmVFdmVudE5hbWVzOiBbJ3RvdWNobW92ZSddLFxuICAgICAgICBlbmRFdmVudE5hbWVzOiBbJ3RvdWNoZW5kJywgJ3RvdWNoY2FuY2VsJ10sXG4gICAgICAgIGV2ZW50UG9zaXRpb25GbjogKHRvdWNoRXZlbnQ6IFRvdWNoRXZlbnQpOiBFdmVudFBvc2l0aW9uID0+IHtcbiAgICAgICAgICBjb25zdCB0b3VjaDogVG91Y2ggPSB0b3VjaEV2ZW50LnRvdWNoZXNbMF07XG4gICAgICAgICAgaWYgKHRoaXMuaXNWZXJ0aWNhbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtzY3JlZW5Qb3M6IHRvdWNoLnNjcmVlblgsIGNsaWVudFBvczogdG91Y2guY2xpZW50WCwgcGFnZVBvczogdG91Y2gucGFnZVh9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7c2NyZWVuUG9zOiB0b3VjaC5zY3JlZW5ZLCBjbGllbnRQb3M6IHRvdWNoLmNsaWVudFksIHBhZ2VQb3M6IHRvdWNoLnBhZ2VZfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9uTW91c2VEb3duKHN0YXJ0RXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoc3RhcnRFdmVudC5idXR0b24gIT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluc3RhbGxNb3ZlTGlzdGVuZXIoe1xuICAgICAgICBzdGFydEV2ZW50OiBzdGFydEV2ZW50LFxuICAgICAgICBtb3ZlRXZlbnROYW1lczogWydtb3VzZW1vdmUnLCAnc2NpLW1vdXNlbW92ZSddLFxuICAgICAgICBlbmRFdmVudE5hbWVzOiBbJ21vdXNldXAnLCAnc2NpLW1vdXNldXAnXSxcbiAgICAgICAgZXZlbnRQb3NpdGlvbkZuOiAobW91c2VFdmVudDogTW91c2VFdmVudCk6IEV2ZW50UG9zaXRpb24gPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmlzVmVydGljYWwpIHtcbiAgICAgICAgICAgIHJldHVybiB7c2NyZWVuUG9zOiBtb3VzZUV2ZW50LnNjcmVlblgsIGNsaWVudFBvczogbW91c2VFdmVudC5jbGllbnRYLCBwYWdlUG9zOiBtb3VzZUV2ZW50LnBhZ2VYfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge3NjcmVlblBvczogbW91c2VFdmVudC5zY3JlZW5ZLCBjbGllbnRQb3M6IG1vdXNlRXZlbnQuY2xpZW50WSwgcGFnZVBvczogbW91c2VFdmVudC5wYWdlWX07XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnN0YWxsTW92ZUxpc3RlbmVyPEVWRU5UIGV4dGVuZHMgRXZlbnQ+KGNvbmZpZzoge3N0YXJ0RXZlbnQ6IEVWRU5UOyBtb3ZlRXZlbnROYW1lczogc3RyaW5nW107IGVuZEV2ZW50TmFtZXM6IHN0cmluZ1tdOyBldmVudFBvc2l0aW9uRm46IChldmVudDogRVZFTlQpID0+IEV2ZW50UG9zaXRpb259KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhcnRFdmVudCA9IGNvbmZpZy5zdGFydEV2ZW50O1xuXG4gICAgc3RhcnRFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAvLyBpbnN0YWxsIGxpc3RlbmVycyBvbiBkb2N1bWVudCBsZXZlbCB0byBhbGxvdyBmYXN0IGRyYWdnaW5nIHRoZSBzcGxpdHRlci5cbiAgICAgIGNvbnN0IG1vdmVFdmVudCQgPSBtZXJnZSguLi5jb25maWcubW92ZUV2ZW50TmFtZXMubWFwKGV2ZW50TmFtZSA9PiBmcm9tRXZlbnQ8RVZFTlQ+KHRoaXMuX2RvY3VtZW50LCBldmVudE5hbWUpKSk7XG4gICAgICBjb25zdCBlbmRFdmVudCQgPSBtZXJnZSguLi5jb25maWcuZW5kRXZlbnROYW1lcy5tYXAoZXZlbnROYW1lID0+IGZyb21FdmVudDxFVkVOVD4odGhpcy5fZG9jdW1lbnQsIGV2ZW50TmFtZSkpKTtcbiAgICAgIGxldCBsYXN0Q2xpZW50UG9zID0gY29uZmlnLmV2ZW50UG9zaXRpb25GbihzdGFydEV2ZW50KS5jbGllbnRQb3M7XG5cbiAgICAgIC8vIEFwcGx5IGN1cnNvciBvbiBkb2N1bWVudCBsZXZlbCB0byBwcmV2ZW50IGZsaWNrZXJpbmcgd2hpbGUgbW92aW5nIHRoZSBzcGxpdHRlclxuICAgICAgY29uc3Qgb2xkRG9jdW1lbnRDdXJzb3IgPSB0aGlzLl9kb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcjtcbiAgICAgIHRoaXMuX2RvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gdGhpcy5zcGxpdHRlckN1cnNvcjtcblxuICAgICAgLy8gTGlzdGVuIGZvciAnbW92ZScgZXZlbnRzIHVudGlsIHN0b3AgbW92aW5nIHRoZSBzcGxpdHRlclxuICAgICAgbW92ZUV2ZW50JFxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YXBGaXJzdCgoKSA9PiB0aGlzLl96b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1vdmluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0Lm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0pKSxcbiAgICAgICAgICB0YWtlVW50aWwobWVyZ2UoZW5kRXZlbnQkLCB0aGlzLl9kZXN0cm95JCkpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKG1vdmVFdmVudDogRVZFTlQpID0+IHtcbiAgICAgICAgICBjb25zdCBldmVudFBvcyA9IGNvbmZpZy5ldmVudFBvc2l0aW9uRm4obW92ZUV2ZW50KTtcbiAgICAgICAgICBjb25zdCBuZXdDbGllbnRQb3MgPSBldmVudFBvcy5jbGllbnRQb3M7XG4gICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBuZXdDbGllbnRQb3MgLSBsYXN0Q2xpZW50UG9zO1xuICAgICAgICAgIGxhc3RDbGllbnRQb3MgPSBuZXdDbGllbnRQb3M7XG5cbiAgICAgICAgICBOZ1pvbmUuYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpO1xuICAgICAgICAgIHRoaXMubW92ZS5lbWl0KHtkaXN0YW5jZSwgcG9zaXRpb246IGV2ZW50UG9zfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAvLyBMaXN0ZW4gZm9yICdlbmQnIGV2ZW50czsgY2FsbCAnc3RvcCBwcm9wYWdhdGlvbicgdG8gbm90IGNsb3NlIG92ZXJsYXlzXG4gICAgICBlbmRFdmVudCRcbiAgICAgICAgLnBpcGUoZmlyc3QoKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZW5kRXZlbnQ6IEVWRU5UKSA9PiB7XG4gICAgICAgICAgZW5kRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgdGhpcy5fZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSBvbGREb2N1bWVudEN1cnNvcjtcbiAgICAgICAgICB0aGlzLm1vdmluZyAmJiB0aGlzLl96b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVuZC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLm1vdmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyogQGRvY3MtcHJpdmF0ZSAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRQb3NpdGlvbiB7XG4gIGNsaWVudFBvczogbnVtYmVyO1xuICBwYWdlUG9zOiBudW1iZXI7XG4gIHNjcmVlblBvczogbnVtYmVyO1xufVxuXG4vKipcbiAqIEV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIG1vdmluZyB0aGUgc3BsaXR0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BsaXR0ZXJNb3ZlRXZlbnQge1xuICAvKipcbiAgICogVGhlIGRpc3RhbmNlIGluIHBpeGVscyBieSB3aGljaCB0aGUgdXNlciBoYXMgbW92ZWQgdGhlIHNwbGl0dGVyIHNpbmNlIHRoZSBsYXN0IGVtaXNzaW9uLlxuICAgKi9cbiAgZGlzdGFuY2U6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgbW91c2Ugb3IgdG91Y2ggZXZlbnQgaGFzIG9jY3VycmVkLlxuICAgKi9cbiAgcG9zaXRpb246IEV2ZW50UG9zaXRpb247XG59XG4iLCI8ZGl2ICN0b3VjaF90YXJnZXQgY2xhc3M9XCJ0b3VjaC10YXJnZXRcIj5cbiAgPGRpdiBjbGFzcz1cImhhbmRsZVwiPjwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -20,11 +20,11 @@ import * as i0 from "@angular/core";
20
20
  * ```
21
21
  */
22
22
  export class SciSplitterModule {
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSplitterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: SciSplitterModule, imports: [SciSplitterComponent], exports: [SciSplitterComponent] }); }
25
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSplitterModule }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSplitterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: SciSplitterModule, imports: [SciSplitterComponent], exports: [SciSplitterComponent] }); }
25
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSplitterModule }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciSplitterModule, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciSplitterModule, decorators: [{
28
28
  type: NgModule,
29
29
  args: [{
30
30
  imports: [
@@ -15,11 +15,11 @@ import * as i0 from "@angular/core";
15
15
  * Throbber type: `ellipsis`
16
16
  */
17
17
  export class SciEllipsisThrobberComponent {
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciEllipsisThrobberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: SciEllipsisThrobberComponent, isStandalone: true, selector: "sci-ellipsis-throbber", ngImport: i0, template: "<div class=\"point\"></div>\n<div class=\"point\"></div>\n<div class=\"point\"></div>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;justify-content:space-between;font-size:var(--\\275sci-throbber-size);width:1em;box-sizing:border-box}:host>div.point{flex:none;border-radius:50%;width:.3em;height:.3em;animation:sci-ellipsis-throbber var(--\\275sci-throbber-duration) ease-in-out infinite;background-color:var(--\\275sci-throbber-color)}:host>div.point:nth-child(1){animation-delay:calc(var(--\\275sci-throbber-duration) / -6)}:host>div.point:nth-child(2){animation-delay:calc(var(--\\275sci-throbber-duration) / -12)}@keyframes sci-ellipsis-throbber{0%{transform:scale(0)}40%{transform:scale(1)}80%,to{transform:scale(0)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciEllipsisThrobberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: SciEllipsisThrobberComponent, isStandalone: true, selector: "sci-ellipsis-throbber", ngImport: i0, template: "<div class=\"point\"></div>\n<div class=\"point\"></div>\n<div class=\"point\"></div>\n", styles: [":host{display:inline-flex;justify-content:space-between;font-size:var(--sci-throbber-size);width:1em;box-sizing:border-box}:host>div.point{flex:none;border-radius:50%;width:.3em;height:.3em;animation:sci-ellipsis-throbber var(--sci-throbber-duration) ease-in-out infinite;background-color:var(--sci-throbber-color)}:host>div.point:nth-child(1){animation-delay:calc(var(--sci-throbber-duration) / -6)}:host>div.point:nth-child(2){animation-delay:calc(var(--sci-throbber-duration) / -12)}@keyframes sci-ellipsis-throbber{0%{transform:scale(0)}40%{transform:scale(1)}80%,to{transform:scale(0)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciEllipsisThrobberComponent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciEllipsisThrobberComponent, decorators: [{
22
22
  type: Component,
23
- args: [{ selector: 'sci-ellipsis-throbber', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"point\"></div>\n<div class=\"point\"></div>\n<div class=\"point\"></div>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;justify-content:space-between;font-size:var(--\\275sci-throbber-size);width:1em;box-sizing:border-box}:host>div.point{flex:none;border-radius:50%;width:.3em;height:.3em;animation:sci-ellipsis-throbber var(--\\275sci-throbber-duration) ease-in-out infinite;background-color:var(--\\275sci-throbber-color)}:host>div.point:nth-child(1){animation-delay:calc(var(--\\275sci-throbber-duration) / -6)}:host>div.point:nth-child(2){animation-delay:calc(var(--\\275sci-throbber-duration) / -12)}@keyframes sci-ellipsis-throbber{0%{transform:scale(0)}40%{transform:scale(1)}80%,to{transform:scale(0)}}\n"] }]
23
+ args: [{ selector: 'sci-ellipsis-throbber', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"point\"></div>\n<div class=\"point\"></div>\n<div class=\"point\"></div>\n", styles: [":host{display:inline-flex;justify-content:space-between;font-size:var(--sci-throbber-size);width:1em;box-sizing:border-box}:host>div.point{flex:none;border-radius:50%;width:.3em;height:.3em;animation:sci-ellipsis-throbber var(--sci-throbber-duration) ease-in-out infinite;background-color:var(--sci-throbber-color)}:host>div.point:nth-child(1){animation-delay:calc(var(--sci-throbber-duration) / -6)}:host>div.point:nth-child(2){animation-delay:calc(var(--sci-throbber-duration) / -12)}@keyframes sci-ellipsis-throbber{0%{transform:scale(0)}40%{transform:scale(1)}80%,to{transform:scale(0)}}\n"] }]
24
24
  }] });
25
25
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMtdGhyb2JiZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy90aHJvYmJlci9zcmMvZWxsaXBzaXMtdGhyb2JiZXIvZWxsaXBzaXMtdGhyb2JiZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy90aHJvYmJlci9zcmMvZWxsaXBzaXMtdGhyb2JiZXIvZWxsaXBzaXMtdGhyb2JiZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUVqRTs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLDRCQUE0Qjs4R0FBNUIsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsaUZDeEJ6Qyx5RkFHQTs7MkZEcUJhLDRCQUE0QjtrQkFQeEMsU0FBUzsrQkFDRSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHRocm9iYmVyIGFzIGFuIGVsbGlwc2lzIGNvbnNpc3Rpbmcgb2YgdGhyZWUgaG9yaXpvbnRhbGx5IGFycmFuZ2VkIHBvaW50cyB0aGF0IGFwcGVhciBvbmUgYWZ0ZXIgdGhlIG90aGVyLlxuICpcbiAqIFRocm9iYmVyIHR5cGU6IGBlbGxpcHNpc2BcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2NpLWVsbGlwc2lzLXRocm9iYmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsbGlwc2lzLXRocm9iYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxsaXBzaXMtdGhyb2JiZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNjaUVsbGlwc2lzVGhyb2JiZXJDb21wb25lbnQge1xufVxuIiwiPGRpdiBjbGFzcz1cInBvaW50XCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwicG9pbnRcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJwb2ludFwiPjwvZGl2PlxuIl19
@@ -15,11 +15,11 @@ import * as i0 from "@angular/core";
15
15
  * Throbber type: `ripple`
16
16
  */
17
17
  export class SciRippleThrobberComponent {
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciRippleThrobberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: SciRippleThrobberComponent, isStandalone: true, selector: "sci-ripple-throbber", ngImport: i0, template: "<div class=\"circle\"></div>\n<div class=\"circle\"></div>\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;position:relative;font-size:var(--\\275sci-throbber-size);width:1em;height:1em;box-sizing:border-box}:host>div.circle{position:absolute;width:1em;height:1em;border-radius:50%;border:0 solid var(--\\275sci-throbber-color);animation:sci-ripple-throbber var(--\\275sci-throbber-duration) cubic-bezier(0,.2,.8,1) infinite}:host>div.circle:nth-child(1){animation-delay:calc(var(--\\275sci-throbber-duration) / -2)}@keyframes sci-ripple-throbber{0%{transform:scale(0);opacity:0;border-width:0}25%{opacity:1;border-width:.1em}50%{opacity:.75}to{transform:scale(1);opacity:0;border-width:.05em}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciRippleThrobberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: SciRippleThrobberComponent, isStandalone: true, selector: "sci-ripple-throbber", ngImport: i0, template: "<div class=\"circle\"></div>\n<div class=\"circle\"></div>\n", styles: [":host{display:inline-block;position:relative;font-size:var(--sci-throbber-size);width:1em;height:1em;box-sizing:border-box}:host>div.circle{position:absolute;width:1em;height:1em;border-radius:50%;border:0 solid var(--sci-throbber-color);animation:sci-ripple-throbber var(--sci-throbber-duration) cubic-bezier(0,.2,.8,1) infinite}:host>div.circle:nth-child(1){animation-delay:calc(var(--sci-throbber-duration) / -2)}@keyframes sci-ripple-throbber{0%{transform:scale(0);opacity:0;border-width:0}25%{opacity:1;border-width:.1em}50%{opacity:.75}to{transform:scale(1);opacity:0;border-width:.05em}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SciRippleThrobberComponent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SciRippleThrobberComponent, decorators: [{
22
22
  type: Component,
23
- args: [{ selector: 'sci-ripple-throbber', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"circle\"></div>\n<div class=\"circle\"></div>\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;position:relative;font-size:var(--\\275sci-throbber-size);width:1em;height:1em;box-sizing:border-box}:host>div.circle{position:absolute;width:1em;height:1em;border-radius:50%;border:0 solid var(--\\275sci-throbber-color);animation:sci-ripple-throbber var(--\\275sci-throbber-duration) cubic-bezier(0,.2,.8,1) infinite}:host>div.circle:nth-child(1){animation-delay:calc(var(--\\275sci-throbber-duration) / -2)}@keyframes sci-ripple-throbber{0%{transform:scale(0);opacity:0;border-width:0}25%{opacity:1;border-width:.1em}50%{opacity:.75}to{transform:scale(1);opacity:0;border-width:.05em}}\n"] }]
23
+ args: [{ selector: 'sci-ripple-throbber', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"circle\"></div>\n<div class=\"circle\"></div>\n", styles: [":host{display:inline-block;position:relative;font-size:var(--sci-throbber-size);width:1em;height:1em;box-sizing:border-box}:host>div.circle{position:absolute;width:1em;height:1em;border-radius:50%;border:0 solid var(--sci-throbber-color);animation:sci-ripple-throbber var(--sci-throbber-duration) cubic-bezier(0,.2,.8,1) infinite}:host>div.circle:nth-child(1){animation-delay:calc(var(--sci-throbber-duration) / -2)}@keyframes sci-ripple-throbber{0%{transform:scale(0);opacity:0;border-width:0}25%{opacity:1;border-width:.1em}50%{opacity:.75}to{transform:scale(1);opacity:0;border-width:.05em}}\n"] }]
24
24
  }] });
25
25
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLXRocm9iYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvdGhyb2JiZXIvc3JjL3JpcHBsZS10aHJvYmJlci9yaXBwbGUtdGhyb2JiZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy90aHJvYmJlci9zcmMvcmlwcGxlLXRocm9iYmVyL3JpcHBsZS10aHJvYmJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBRWpFOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8sMEJBQTBCOzhHQUExQiwwQkFBMEI7a0dBQTFCLDBCQUEwQiwrRUN4QnZDLDhEQUVBOzsyRkRzQmEsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0aHJvYmJlciB3aXRoIGEgcmlwcGxlZCwgY2VudHJpYyB3YXZlIGVmZmVjdCwgc2ltaWxhciB0byB0aHJvd2luZyBhIHN0b25lIGludG8gd2F0ZXIuXG4gKlxuICogVGhyb2JiZXIgdHlwZTogYHJpcHBsZWBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2NpLXJpcHBsZS10aHJvYmJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yaXBwbGUtdGhyb2JiZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yaXBwbGUtdGhyb2JiZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNjaVJpcHBsZVRocm9iYmVyQ29tcG9uZW50IHtcbn1cbiIsIjxkaXYgY2xhc3M9XCJjaXJjbGVcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjaXJjbGVcIj48L2Rpdj5cbiJdfQ==