@alauda/ui 6.5.7 → 6.5.8-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import { OverlayConfig } from '@angular/cdk/overlay';
2
2
  import { ComponentPortal } from '@angular/cdk/portal';
3
3
  import { Directive, EventEmitter, } from '@angular/core';
4
- import { ReplaySubject, merge, debounceTime } from 'rxjs';
4
+ import { ReplaySubject, merge, debounceTime, takeUntil, first, filter, Subject, delay, } from 'rxjs';
5
5
  import { sleep } from '../utils';
6
6
  import { TooltipComponent } from './tooltip.component';
7
7
  import { TooltipTrigger } from './tooltip.types';
@@ -19,8 +19,9 @@ export class BaseTooltip {
19
19
  this.cdr = cdr;
20
20
  this.ngZone = ngZone;
21
21
  this.hideOnClick = false;
22
- this.show = new EventEmitter();
23
- this.hide = new EventEmitter();
22
+ this.disableAnimation = true;
23
+ this.showed = new EventEmitter();
24
+ this.hided = new EventEmitter();
24
25
  this.componentClass = TooltipComponent;
25
26
  this.hostHovered = false;
26
27
  this.tooltipHovered = false;
@@ -31,6 +32,7 @@ export class BaseTooltip {
31
32
  this.inputClass$$ = new ReplaySubject(1);
32
33
  this.inputContext$$ = new ReplaySubject(1);
33
34
  this.tooltipChanged$ = merge(this.inputContent$$, this.inputType$$, this.inputPosition$$, this.inputClass$$, this.inputContext$$);
35
+ this.destroy$ = new Subject();
34
36
  this._position = 'top';
35
37
  this._trigger = TooltipTrigger.Hover;
36
38
  this._disabled = false;
@@ -67,7 +69,7 @@ export class BaseTooltip {
67
69
  }
68
70
  this._position = value;
69
71
  this.inputPosition$$.next(value);
70
- this.disposeTooltip();
72
+ this._disposeTooltip();
71
73
  }
72
74
  get position() {
73
75
  return this._position;
@@ -77,7 +79,7 @@ export class BaseTooltip {
77
79
  return;
78
80
  }
79
81
  this._trigger = value;
80
- this.disposeTooltip();
82
+ this._disposeTooltip();
81
83
  this.ngZone.run(this.updateListeners, this);
82
84
  }
83
85
  get trigger() {
@@ -86,7 +88,7 @@ export class BaseTooltip {
86
88
  set disabled(value) {
87
89
  this._disabled = value;
88
90
  if (value) {
89
- this.disposeTooltip();
91
+ this._disposeTooltip();
90
92
  }
91
93
  }
92
94
  get disabled() {
@@ -95,10 +97,58 @@ export class BaseTooltip {
95
97
  get isCreated() {
96
98
  return !!this.overlayRef;
97
99
  }
98
- createTooltip() {
100
+ _updateTransformOrigin() {
101
+ // @ts-ignore
102
+ const positionStrategy = this.overlayRef._positionStrategy;
103
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
104
+ const hasExactPosition = positionStrategy._hasExactPosition(); // 是不是应用了精确定位
105
+ if (!hasExactPosition) {
106
+ return;
107
+ }
108
+ // 如果是精确定位,也就是预设位置空间不足以承载弹出元素,被重新指定新的弹出位置
109
+ // @ts-ignore
110
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
111
+ const paneRect = positionStrategy._pane.getBoundingClientRect(); // 弹出pane元素Rect
112
+ const triggerElReact = this.elRef.nativeElement.getBoundingClientRect(); // 触发点Rect
113
+ // @ts-ignore
114
+ const position = positionStrategy._lastPosition; // 当前策略位置(调整后的最佳的)
115
+ let xOrigin;
116
+ const yOrigin = position.overlayY;
117
+ if (position.overlayX === 'center') {
118
+ xOrigin = 'center';
119
+ }
120
+ else {
121
+ xOrigin = position.overlayX === 'start' ? 'left' : 'right';
122
+ }
123
+ const origins = [xOrigin, yOrigin];
124
+ if (xOrigin === 'center' ||
125
+ (xOrigin === 'left' && paneRect.left !== triggerElReact.right) || // 位置没有被完全被颠倒的
126
+ (xOrigin === 'right' && paneRect.right !== triggerElReact.left) // 位置没有被完全被颠倒的
127
+ ) {
128
+ const originLeft = triggerElReact.left - paneRect.left + triggerElReact.width / 2;
129
+ origins[0] = Math.min(originLeft, paneRect.width) + 'px';
130
+ }
131
+ if (yOrigin === 'center' ||
132
+ (yOrigin === 'top' && paneRect.top !== triggerElReact.bottom) || // 位置没有被完全被颠倒的
133
+ (yOrigin === 'bottom' && paneRect.bottom !== triggerElReact.top) // 位置没有被完全被颠倒的
134
+ ) {
135
+ const originTop = triggerElReact.top - paneRect.top + triggerElReact.height / 2;
136
+ origins[1] = Math.min(originTop, paneRect.height) + 'px';
137
+ }
138
+ // @ts-ignore
139
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
140
+ const aniEls = positionStrategy._boundingBox.querySelectorAll(
141
+ // @ts-ignore
142
+ positionStrategy._transformOriginSelector);
143
+ [...aniEls].forEach(el => {
144
+ el.style.transformOrigin = origins.join(' ');
145
+ });
146
+ }
147
+ _createTooltip() {
99
148
  if (this.disabled || this.isCreated) {
100
149
  return;
101
150
  }
151
+ this._disposeTooltip();
102
152
  this.overlayRef = this.createOverlay();
103
153
  const portal = new ComponentPortal(this.componentClass, this.viewContainerRef);
104
154
  this.componentIns = this.overlayRef.attach(portal).instance;
@@ -108,9 +158,18 @@ export class BaseTooltip {
108
158
  inputContext$: this.inputContext$$.asObservable(),
109
159
  inputPosition$: this.inputPosition$$.asObservable(),
110
160
  inputType$: this.inputType$$.asObservable(),
161
+ disableAnimation: this.disableAnimation,
162
+ });
163
+ this.componentIns.hide$.pipe(takeUntil(this.destroy$)).subscribe(() => {
164
+ this._disposeTooltip();
111
165
  });
166
+ merge(this.componentIns.beforeHide$, this.componentIns.beforeShow$.pipe(delay(0)))
167
+ .pipe(takeUntil(this.destroy$))
168
+ .subscribe(this._updateTransformOrigin.bind(this));
112
169
  if (this.trigger === TooltipTrigger.Hover) {
113
- this.componentIns.hover$.subscribe(hovered => {
170
+ this.componentIns.hover$
171
+ .pipe(takeUntil(this.componentIns.destroy$))
172
+ .subscribe(hovered => {
114
173
  this.onTooltipHovered(hovered);
115
174
  });
116
175
  }
@@ -118,30 +177,41 @@ export class BaseTooltip {
118
177
  this.trigger === TooltipTrigger.Click) {
119
178
  this.unlistenBody = this.renderer.listen('body', 'click', this.onBodyClick.bind(this));
120
179
  }
121
- this.show.emit();
180
+ this.componentIns?.show();
122
181
  this.cdr.markForCheck();
182
+ this.showed.emit();
123
183
  }
124
- disposeTooltip() {
125
- if (this.overlayRef) {
126
- this.overlayRef.dispose();
127
- this.overlayRef = null;
128
- this.componentIns = null;
129
- this.tooltipHovered = false;
130
- if (this.unlistenBody) {
131
- this.unlistenBody();
132
- this.unlistenBody = null;
184
+ _disposeTooltip() {
185
+ this.componentIns?.animating$$
186
+ .pipe(filter(animating => !animating), first())
187
+ .subscribe(() => {
188
+ if (this.overlayRef) {
189
+ this.overlayRef.dispose();
190
+ this.overlayRef = null;
191
+ this.componentIns = null;
192
+ this.tooltipHovered = false;
193
+ if (this.unlistenBody) {
194
+ this.unlistenBody();
195
+ this.unlistenBody = null;
196
+ }
197
+ this.hided.emit();
133
198
  }
134
- this.hide.emit();
135
- }
199
+ });
136
200
  }
137
201
  toggleTooltip() {
138
202
  if (this.isCreated) {
139
- this.disposeTooltip();
203
+ this.hide();
140
204
  }
141
205
  else {
142
- this.createTooltip();
206
+ this.show();
143
207
  }
144
208
  }
209
+ show() {
210
+ this._createTooltip();
211
+ }
212
+ hide() {
213
+ this.componentIns?.hide();
214
+ }
145
215
  updatePosition() {
146
216
  if (this.overlayRef) {
147
217
  this.overlayRef.updatePosition();
@@ -153,7 +223,9 @@ export class BaseTooltip {
153
223
  }
154
224
  }
155
225
  ngOnDestroy() {
156
- this.disposeTooltip();
226
+ this.destroy$.next(null);
227
+ this.destroy$.complete();
228
+ this._disposeTooltip();
157
229
  this.clearListeners();
158
230
  }
159
231
  updateListeners() {
@@ -185,6 +257,7 @@ export class BaseTooltip {
185
257
  .position()
186
258
  .flexibleConnectedTo(this.elRef)
187
259
  .withGrowAfterOpen(true)
260
+ .withTransformOriginOn('.aui-tooltip')
188
261
  .withPositions([
189
262
  { ...originPosition.main, ...overlayPosition.main },
190
263
  { ...originPosition.fallback, ...overlayPosition.fallback },
@@ -201,7 +274,7 @@ export class BaseTooltip {
201
274
  if (!this.isCreated) {
202
275
  await sleep(DISPLAY_DELAY);
203
276
  if (this.hostHovered) {
204
- this.createTooltip();
277
+ this._createTooltip();
205
278
  }
206
279
  }
207
280
  }
@@ -209,7 +282,7 @@ export class BaseTooltip {
209
282
  this.hostHovered = false;
210
283
  await sleep(HIDDEN_DELAY);
211
284
  if (!this.tooltipHovered && !this.hostHovered) {
212
- this.disposeTooltip();
285
+ this.componentIns?.hide();
213
286
  }
214
287
  }
215
288
  async onTooltipHovered(hovered) {
@@ -217,7 +290,7 @@ export class BaseTooltip {
217
290
  if (!hovered) {
218
291
  await sleep(HIDDEN_DELAY);
219
292
  if (!this.tooltipHovered && !this.hostHovered) {
220
- this.disposeTooltip();
293
+ this.componentIns?.hide();
221
294
  }
222
295
  }
223
296
  }
@@ -228,14 +301,14 @@ export class BaseTooltip {
228
301
  if (!this.elRef.nativeElement.contains(event.target) &&
229
302
  (this.hideOnClick ||
230
303
  !this.componentIns.elRef.nativeElement.contains(event.target))) {
231
- this.disposeTooltip();
304
+ this.componentIns?.hide();
232
305
  }
233
306
  }
234
307
  onFocus() {
235
- this.createTooltip();
308
+ this._createTooltip();
236
309
  }
237
310
  onBlur() {
238
- this.disposeTooltip();
311
+ this.componentIns?.hide();
239
312
  }
240
313
  }
241
314
  BaseTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: BaseTooltip, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
@@ -243,4 +316,4 @@ BaseTooltip.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
243
316
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: BaseTooltip, decorators: [{
244
317
  type: Directive
245
318
  }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; } });
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10b29sdGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2x0aXAvYmFzZS10b29sdGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxHQU1iLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQWVoRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFHaEMsTUFBTSxPQUFPLFdBQVc7SUF5R3RCLFlBQ1ksT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLEtBQW1DLEVBQ25DLFFBQW1CLEVBQ25CLEdBQXNCLEVBQ3RCLE1BQWM7UUFMZCxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsVUFBSyxHQUFMLEtBQUssQ0FBOEI7UUFDbkMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBMUMxQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixTQUFJLEdBQUcs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QUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN2QjtTQUNGO0lBQ0gsQ0FBQztJQUVTLE9BQU87UUFDZixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVTLFdBQVcsQ0FBQyxLQUFZO1FBQ2hDLElBQ0UsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQWMsQ0FBQztZQUN4RCxDQUFDLElBQUksQ0FBQyxXQUFXO2dCQUNmLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBYyxDQUFDLENBQUMsRUFDeEU7WUFDQSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRVMsT0FBTztRQUNmLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRVMsTUFBTTtRQUNkLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDOzt3R0E5VFUsV0FBVzs0RkFBWCxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIG1lcmdlLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgc2xlZXAgfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBUcmlnZ2VyLCBUb29sdGlwVHlwZSB9IGZyb20gJy4vdG9vbHRpcC50eXBlcyc7XG5pbXBvcnQgeyBnZXRPcmlnaW5Qb3NpdGlvbiwgZ2V0T3ZlcmxheVBvc2l0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbHRpcEludGVyZmFjZSB7XG4gIGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gIGNvbnRleHQ6IGFueTtcbiAgY2xhc3M6IHN0cmluZztcbiAgdHlwZTogVG9vbHRpcFR5cGU7XG4gIHBvc2l0aW9uOiBzdHJpbmc7XG4gIHRyaWdnZXI6IFRvb2x0aXBUcmlnZ2VyO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgaGlkZU9uQ2xpY2s6IGJvb2xlYW47XG4gIHNob3c6IEV2ZW50RW1pdHRlcjx2b2lkPjtcbiAgaGlkZTogRXZlbnRFbWl0dGVyPHZvaWQ+O1xufVxuXG5leHBvcnQgY29uc3QgRElTUExBWV9ERUxBWSA9IDUwO1xuZXhwb3J0IGNvbnN0IEhJRERFTl9ERUxBWSA9IDE1MDtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZVRvb2x0aXA8VCA9IGFueT5cbiAgaW1wbGVtZW50cyBUb29sdGlwSW50ZXJmYWNlLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgc2V0IGNvbnRlbnQodmFsdWU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9jb250ZW50ID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dENvbnRlbnQkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBjb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICB9XG5cbiAgc2V0IGNvbnRleHQodmFsdWU6IFQpIHtcbiAgICB0aGlzLl9jb250ZXh0ID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dENvbnRleHQkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBjb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xuICB9XG5cbiAgc2V0IGNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlucHV0Q2xhc3MkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHNldCB0eXBlKHZhbHVlOiBUb29sdGlwVHlwZSkge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnB1dFR5cGUkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHNldCBwb3NpdGlvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy5fcG9zaXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcG9zaXRpb24gPSB2YWx1ZTtcbiAgICB0aGlzLmlucHV0UG9zaXRpb24kJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLmRpc3Bvc2VUb29sdGlwKCk7XG4gIH1cblxuICBnZXQgcG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICB9XG5cbiAgc2V0IHRyaWdnZXIodmFsdWUpIHtcbiAgICBpZiAoIXZhbHVlIHx8IHZhbHVlID09PSB0aGlzLl90cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcbiAgICB0aGlzLmRpc3Bvc2VUb29sdGlwKCk7XG4gICAgdGhpcy5uZ1pvbmUucnVuKHRoaXMudXBkYXRlTGlzdGVuZXJzLCB0aGlzKTtcbiAgfVxuXG4gIGdldCB0cmlnZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyO1xuICB9XG5cbiAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuZGlzcG9zZVRvb2x0aXAoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgaGlkZU9uQ2xpY2sgPSBmYWxzZTtcblxuICBzaG93ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBoaWRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuICBwcm90ZWN0ZWQgY29tcG9uZW50Q2xhc3M6IENvbXBvbmVudFR5cGU8YW55PiA9IFRvb2x0aXBDb21wb25lbnQ7XG4gIHByb3RlY3RlZCBjb21wb25lbnRJbnM6IFRvb2x0aXBDb21wb25lbnQ7XG4gIHByb3RlY3RlZCBob3N0SG92ZXJlZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgdG9vbHRpcEhvdmVyZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGxpc3RlbmVyczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcbiAgcHJvdGVjdGVkIHVubGlzdGVuQm9keTogKCkgPT4gdm9pZDtcblxuICBwcm90ZWN0ZWQgaW5wdXRDb250ZW50JCQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+PigxKTtcbiAgcHJvdGVjdGVkIGlucHV0VHlwZSQkID0gbmV3IFJlcGxheVN1YmplY3Q8VG9vbHRpcFR5cGU+KDEpO1xuICBwcm90ZWN0ZWQgaW5wdXRQb3NpdGlvbiQkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcbiAgcHJvdGVjdGVkIGlucHV0Q2xhc3MkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oMSk7XG4gIHByb3RlY3RlZCBpbnB1dENvbnRleHQkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG4gIHByb3RlY3RlZCB0b29sdGlwQ2hhbmdlZCQgPSBtZXJnZShcbiAgICB0aGlzLmlucHV0Q29udGVudCQkLFxuICAgIHRoaXMuaW5wdXRUeXBlJCQsXG4gICAgdGhpcy5pbnB1dFBvc2l0aW9uJCQsXG4gICAgdGhpcy5pbnB1dENsYXNzJCQsXG4gICAgdGhpcy5pbnB1dENvbnRleHQkJCxcbiAgKTtcblxuICBwcm90ZWN0ZWQgX3Bvc2l0aW9uID0gJ3RvcCc7XG4gIHByb3RlY3RlZCBfdHJpZ2dlciA9IFRvb2x0aXBUcmlnZ2VyLkhvdmVyO1xuICBwcm90ZWN0ZWQgX2Rpc2FibGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfY29udGV4dDogVDtcbiAgcHJvdGVjdGVkIF9jb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBnZXQgaXNDcmVhdGVkKCkge1xuICAgIHJldHVybiAhIXRoaXMub3ZlcmxheVJlZjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByb3RlY3RlZCBlbFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgbmdab25lOiBOZ1pvbmUsXG4gICkge1xuICAgIHRoaXMudG9vbHRpcENoYW5nZWQkLnBpcGUoZGVib3VuY2VUaW1lKDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlVG9vbHRpcCgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmlzQ3JlYXRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgdGhpcy5jb21wb25lbnRDbGFzcyxcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICApO1xuICAgIHRoaXMuY29tcG9uZW50SW5zID0gdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpLmluc3RhbmNlO1xuICAgIHRoaXMuY29tcG9uZW50SW5zLnNldHVwSW5wdXRzKHtcbiAgICAgIGlucHV0Q2xhc3MkOiB0aGlzLmlucHV0Q2xhc3MkJC5hc09ic2VydmFibGUoKSxcbiAgICAgIGlucHV0Q29udGVudCQ6IHRoaXMuaW5wdXRDb250ZW50JCQuYXNPYnNlcnZhYmxlKCksXG4gICAgICBpbnB1dENvbnRleHQkOiB0aGlzLmlucHV0Q29udGV4dCQkLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgaW5wdXRQb3NpdGlvbiQ6IHRoaXMuaW5wdXRQb3NpdGlvbiQkLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgaW5wdXRUeXBlJDogdGhpcy5pbnB1dFR5cGUkJC5hc09ic2VydmFibGUoKSxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IFRvb2x0aXBUcmlnZ2VyLkhvdmVyKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElucy5ob3ZlciQuc3Vic2NyaWJlKGhvdmVyZWQgPT4ge1xuICAgICAgICB0aGlzLm9uVG9vbHRpcEhvdmVyZWQoaG92ZXJlZCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy50cmlnZ2VyID09PSBUb29sdGlwVHJpZ2dlci5Ib3ZlciB8fFxuICAgICAgdGhpcy50cmlnZ2VyID09PSBUb29sdGlwVHJpZ2dlci5DbGlja1xuICAgICkge1xuICAgICAgdGhpcy51bmxpc3RlbkJvZHkgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgJ2JvZHknLFxuICAgICAgICAnY2xpY2snLFxuICAgICAgICB0aGlzLm9uQm9keUNsaWNrLmJpbmQodGhpcyksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdy5lbWl0KCk7XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGRpc3Bvc2VUb29sdGlwKCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgdGhpcy5jb21wb25lbnRJbnMgPSBudWxsO1xuICAgICAgdGhpcy50b29sdGlwSG92ZXJlZCA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMudW5saXN0ZW5Cb2R5KSB7XG4gICAgICAgIHRoaXMudW5saXN0ZW5Cb2R5KCk7XG4gICAgICAgIHRoaXMudW5saXN0ZW5Cb2R5ID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHRoaXMuaGlkZS5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlVG9vbHRpcCgpIHtcbiAgICBpZiAodGhpcy5pc0NyZWF0ZWQpIHtcbiAgICAgIHRoaXMuZGlzcG9zZVRvb2x0aXAoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcmVhdGVUb29sdGlwKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUG9zaXRpb24oKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IFRvb2x0aXBUcmlnZ2VyLkhvdmVyKSB7XG4gICAgICB0aGlzLnVwZGF0ZUxpc3RlbmVycygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGlzcG9zZVRvb2x0aXAoKTtcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlTGlzdGVuZXJzKCkge1xuICAgIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgICBzd2l0Y2ggKHRoaXMudHJpZ2dlcikge1xuICAgICAgY2FzZSBUb29sdGlwVHJpZ2dlci5DbGljazpcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdjbGljaycsXG4gICAgICAgICAgICB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKSBhcyAoKSA9PiB2b2lkLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUb29sdGlwVHJpZ2dlci5Ib3ZlcjpcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdtb3VzZWVudGVyJyxcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZUVudGVyLmJpbmQodGhpcykgYXMgKCkgPT4gdm9pZCxcbiAgICAgICAgICApLFxuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ21vdXNlbGVhdmUnLFxuICAgICAgICAgICAgdGhpcy5vbk1vdXNlTGVhdmUuYmluZCh0aGlzKSBhcyAoKSA9PiB2b2lkLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUb29sdGlwVHJpZ2dlci5Gb2N1czpcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdmb2N1cycsXG4gICAgICAgICAgICB0aGlzLm9uRm9jdXMuYmluZCh0aGlzKSxcbiAgICAgICAgICApLFxuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ2JsdXInLFxuICAgICAgICAgICAgdGhpcy5vbkJsdXIuYmluZCh0aGlzKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVG9vbHRpcFRyaWdnZXIuTWFudWFsOlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCh1bkxpc3RlbiA9PiB7XG4gICAgICB1bkxpc3RlbigpO1xuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuZXJzID0gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlT3ZlcmxheSgpOiBPdmVybGF5UmVmIHtcbiAgICBjb25zdCBvcmlnaW5Qb3NpdGlvbiA9IGdldE9yaWdpblBvc2l0aW9uKHRoaXMucG9zaXRpb24pO1xuICAgIGNvbnN0IG92ZXJsYXlQb3NpdGlvbiA9IGdldE92ZXJsYXlQb3NpdGlvbih0aGlzLnBvc2l0aW9uKTtcblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsUmVmKVxuICAgICAgLndpdGhHcm93QWZ0ZXJPcGVuKHRydWUpXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIHsgLi4ub3JpZ2luUG9zaXRpb24ubWFpbiwgLi4ub3ZlcmxheVBvc2l0aW9uLm1haW4gfSxcbiAgICAgICAgeyAuLi5vcmlnaW5Qb3NpdGlvbi5mYWxsYmFjaywgLi4ub3ZlcmxheVBvc2l0aW9uLmZhbGxiYWNrIH0sXG4gICAgICBdKTtcblxuICAgIGNvbnN0IHNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpO1xuXG4gICAgY29uc3QgY29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5LFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgb25Nb3VzZUVudGVyKCkge1xuICAgIHRoaXMuaG9zdEhvdmVyZWQgPSB0cnVlO1xuICAgIGlmICghdGhpcy5pc0NyZWF0ZWQpIHtcbiAgICAgIGF3YWl0IHNsZWVwKERJU1BMQVlfREVMQVkpO1xuICAgICAgaWYgKHRoaXMuaG9zdEhvdmVyZWQpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVUb29sdGlwKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmhvc3RIb3ZlcmVkID0gZmFsc2U7XG4gICAgYXdhaXQgc2xlZXAoSElEREVOX0RFTEFZKTtcbiAgICBpZiAoIXRoaXMudG9vbHRpcEhvdmVyZWQgJiYgIXRoaXMuaG9zdEhvdmVyZWQpIHtcbiAgICAgIHRoaXMuZGlzcG9zZVRvb2x0aXAoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgb25Ub29sdGlwSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgdGhpcy50b29sdGlwSG92ZXJlZCA9IGhvdmVyZWQ7XG4gICAgaWYgKCFob3ZlcmVkKSB7XG4gICAgICBhd2FpdCBzbGVlcChISURERU5fREVMQVkpO1xuICAgICAgaWYgKCF0aGlzLnRvb2x0aXBIb3ZlcmVkICYmICF0aGlzLmhvc3RIb3ZlcmVkKSB7XG4gICAgICAgIHRoaXMuZGlzcG9zZVRvb2x0aXAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25DbGljaygpIHtcbiAgICB0aGlzLnRvZ2dsZVRvb2x0aXAoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkJvZHlDbGljayhldmVudDogRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgKHRoaXMuaGlkZU9uQ2xpY2sgfHxcbiAgICAgICAgIXRoaXMuY29tcG9uZW50SW5zLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKVxuICAgICkge1xuICAgICAgdGhpcy5kaXNwb3NlVG9vbHRpcCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkZvY3VzKCkge1xuICAgIHRoaXMuY3JlYXRlVG9vbHRpcCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQmx1cigpIHtcbiAgICB0aGlzLmRpc3Bvc2VUb29sdGlwKCk7XG4gIH1cbn1cbiJdfQ==
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10b29sdGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2x0aXAvYmFzZS10b29sdGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxHQU1iLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsS0FBSyxFQUNMLFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsS0FBSyxHQUNOLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFlaEUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDO0FBR2hDLE1BQU0sT0FBTyxXQUFXO0lBNkd0QixZQUNZLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxLQUFtQyxFQUNuQyxRQUFtQixFQUNuQixHQUFzQixFQUN0QixNQUFjO1FBTGQsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFVBQUssR0FBTCxLQUFLLENBQThCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsV0FBTSxHQUFOLE1BQU0s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O1NBQzNCO0lBQ0gsQ0FBQztJQUVTLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUM3QyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzNCO1NBQ0Y7SUFDSCxDQUFDO0lBRVMsT0FBTztRQUNmLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRVMsV0FBVyxDQUFDLEtBQVk7UUFDaEMsSUFDRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBYyxDQUFDO1lBQ3hELENBQUMsSUFBSSxDQUFDLFdBQVc7Z0JBQ2YsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFjLENBQUMsQ0FBQyxFQUN4RTtZQUNBLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRVMsT0FBTztRQUNmLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVMsTUFBTTtRQUNkLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7d0dBeFpVLFdBQVc7NEZBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUR2QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBSZXBsYXlTdWJqZWN0LFxuICBtZXJnZSxcbiAgZGVib3VuY2VUaW1lLFxuICB0YWtlVW50aWwsXG4gIGZpcnN0LFxuICBmaWx0ZXIsXG4gIFN1YmplY3QsXG4gIGRlbGF5LFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgc2xlZXAgfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBUcmlnZ2VyLCBUb29sdGlwVHlwZSB9IGZyb20gJy4vdG9vbHRpcC50eXBlcyc7XG5pbXBvcnQgeyBnZXRPcmlnaW5Qb3NpdGlvbiwgZ2V0T3ZlcmxheVBvc2l0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbHRpcEludGVyZmFjZSB7XG4gIGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gIGNvbnRleHQ6IGFueTtcbiAgY2xhc3M6IHN0cmluZztcbiAgdHlwZTogVG9vbHRpcFR5cGU7XG4gIHBvc2l0aW9uOiBzdHJpbmc7XG4gIHRyaWdnZXI6IFRvb2x0aXBUcmlnZ2VyO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgaGlkZU9uQ2xpY2s6IGJvb2xlYW47XG4gIHNob3dlZDogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuICBoaWRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+O1xufVxuXG5leHBvcnQgY29uc3QgRElTUExBWV9ERUxBWSA9IDUwO1xuZXhwb3J0IGNvbnN0IEhJRERFTl9ERUxBWSA9IDE1MDtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZVRvb2x0aXA8VCA9IGFueT5cbiAgaW1wbGVtZW50cyBUb29sdGlwSW50ZXJmYWNlLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgc2V0IGNvbnRlbnQodmFsdWU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9jb250ZW50ID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dENvbnRlbnQkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBjb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICB9XG5cbiAgc2V0IGNvbnRleHQodmFsdWU6IFQpIHtcbiAgICB0aGlzLl9jb250ZXh0ID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dENvbnRleHQkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBjb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xuICB9XG5cbiAgc2V0IGNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlucHV0Q2xhc3MkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHNldCB0eXBlKHZhbHVlOiBUb29sdGlwVHlwZSkge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnB1dFR5cGUkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHNldCBwb3NpdGlvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy5fcG9zaXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcG9zaXRpb24gPSB2YWx1ZTtcbiAgICB0aGlzLmlucHV0UG9zaXRpb24kJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLl9kaXNwb3NlVG9vbHRpcCgpO1xuICB9XG5cbiAgZ2V0IHBvc2l0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcbiAgfVxuXG4gIHNldCB0cmlnZ2VyKHZhbHVlKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy5fdHJpZ2dlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl90cmlnZ2VyID0gdmFsdWU7XG4gICAgdGhpcy5fZGlzcG9zZVRvb2x0aXAoKTtcbiAgICB0aGlzLm5nWm9uZS5ydW4odGhpcy51cGRhdGVMaXN0ZW5lcnMsIHRoaXMpO1xuICB9XG5cbiAgZ2V0IHRyaWdnZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gIH1cblxuICBzZXQgZGlzYWJsZWQodmFsdWUpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fZGlzcG9zZVRvb2x0aXAoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgaGlkZU9uQ2xpY2sgPSBmYWxzZTtcbiAgZGlzYWJsZUFuaW1hdGlvbiA9IHRydWU7XG5cbiAgc2hvd2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBoaWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuICBwcm90ZWN0ZWQgY29tcG9uZW50Q2xhc3M6IENvbXBvbmVudFR5cGU8YW55PiA9IFRvb2x0aXBDb21wb25lbnQ7XG4gIHByb3RlY3RlZCBjb21wb25lbnRJbnM6IFRvb2x0aXBDb21wb25lbnQ7XG4gIHByb3RlY3RlZCBob3N0SG92ZXJlZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgdG9vbHRpcEhvdmVyZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGxpc3RlbmVyczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcbiAgcHJvdGVjdGVkIHVubGlzdGVuQm9keTogKCkgPT4gdm9pZDtcblxuICBwcm90ZWN0ZWQgaW5wdXRDb250ZW50JCQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+PigxKTtcbiAgcHJvdGVjdGVkIGlucHV0VHlwZSQkID0gbmV3IFJlcGxheVN1YmplY3Q8VG9vbHRpcFR5cGU+KDEpO1xuICBwcm90ZWN0ZWQgaW5wdXRQb3NpdGlvbiQkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcbiAgcHJvdGVjdGVkIGlucHV0Q2xhc3MkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oMSk7XG4gIHByb3RlY3RlZCBpbnB1dENvbnRleHQkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG5cbiAgcHJvdGVjdGVkIHRvb2x0aXBDaGFuZ2VkJCA9IG1lcmdlKFxuICAgIHRoaXMuaW5wdXRDb250ZW50JCQsXG4gICAgdGhpcy5pbnB1dFR5cGUkJCxcbiAgICB0aGlzLmlucHV0UG9zaXRpb24kJCxcbiAgICB0aGlzLmlucHV0Q2xhc3MkJCxcbiAgICB0aGlzLmlucHV0Q29udGV4dCQkLFxuICApO1xuXG4gIHByb3RlY3RlZCBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJvdGVjdGVkIF9wb3NpdGlvbiA9ICd0b3AnO1xuICBwcm90ZWN0ZWQgX3RyaWdnZXIgPSBUb29sdGlwVHJpZ2dlci5Ib3ZlcjtcbiAgcHJvdGVjdGVkIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX2NvbnRleHQ6IFQ7XG4gIHByb3RlY3RlZCBfY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgZ2V0IGlzQ3JlYXRlZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLm92ZXJsYXlSZWY7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcm90ZWN0ZWQgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIG5nWm9uZTogTmdab25lLFxuICApIHtcbiAgICB0aGlzLnRvb2x0aXBDaGFuZ2VkJC5waXBlKGRlYm91bmNlVGltZSgwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVRyYW5zZm9ybU9yaWdpbigpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVJlZi5fcG9zaXRpb25TdHJhdGVneTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgY29uc3QgaGFzRXhhY3RQb3NpdGlvbiA9IHBvc2l0aW9uU3RyYXRlZ3kuX2hhc0V4YWN0UG9zaXRpb24oKTsgLy8g5piv5LiN5piv5bqU55So5LqG57K+56Gu5a6a5L2NXG4gICAgaWYgKCFoYXNFeGFjdFBvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIOWmguaenOaYr+eyvuehruWumuS9je+8jOS5n+WwseaYr+mihOiuvuS9jee9ruepuumXtOS4jei2s+S7peaJv+i9veW8ueWHuuWFg+e0oO+8jOiiq+mHjeaWsOaMh+WumuaWsOeahOW8ueWHuuS9jee9rlxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgY29uc3QgcGFuZVJlY3QgPSBwb3NpdGlvblN0cmF0ZWd5Ll9wYW5lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyAvLyDlvLnlh7pwYW5l5YWD57SgUmVjdFxuICAgIGNvbnN0IHRyaWdnZXJFbFJlYWN0ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyAvLyDop6blj5HngrlSZWN0XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgcG9zaXRpb24gPSBwb3NpdGlvblN0cmF0ZWd5Ll9sYXN0UG9zaXRpb247IC8vIOW9k+WJjeetlueVpeS9jee9ru+8iOiwg+aVtOWQjueahOacgOS9s+eahO+8iVxuICAgIGxldCB4T3JpZ2luOiAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcic7XG4gICAgY29uc3QgeU9yaWdpbjogJ3RvcCcgfCAnYm90dG9tJyB8ICdjZW50ZXInID0gcG9zaXRpb24ub3ZlcmxheVk7XG4gICAgaWYgKHBvc2l0aW9uLm92ZXJsYXlYID09PSAnY2VudGVyJykge1xuICAgICAgeE9yaWdpbiA9ICdjZW50ZXInO1xuICAgIH0gZWxzZSB7XG4gICAgICB4T3JpZ2luID0gcG9zaXRpb24ub3ZlcmxheVggPT09ICdzdGFydCcgPyAnbGVmdCcgOiAncmlnaHQnO1xuICAgIH1cblxuICAgIGNvbnN0IG9yaWdpbnM6IHN0cmluZ1tdID0gW3hPcmlnaW4sIHlPcmlnaW5dO1xuICAgIGlmIChcbiAgICAgIHhPcmlnaW4gPT09ICdjZW50ZXInIHx8XG4gICAgICAoeE9yaWdpbiA9PT0gJ2xlZnQnICYmIHBhbmVSZWN0LmxlZnQgIT09IHRyaWdnZXJFbFJlYWN0LnJpZ2h0KSB8fCAvLyDkvY3nva7msqHmnInooqvlrozlhajooqvpoqDlgJLnmoRcbiAgICAgICh4T3JpZ2luID09PSAncmlnaHQnICYmIHBhbmVSZWN0LnJpZ2h0ICE9PSB0cmlnZ2VyRWxSZWFjdC5sZWZ0KSAvLyDkvY3nva7msqHmnInooqvlrozlhajooqvpoqDlgJLnmoRcbiAgICApIHtcbiAgICAgIGNvbnN0IG9yaWdpbkxlZnQgPVxuICAgICAgICB0cmlnZ2VyRWxSZWFjdC5sZWZ0IC0gcGFuZVJlY3QubGVmdCArIHRyaWdnZXJFbFJlYWN0LndpZHRoIC8gMjtcbiAgICAgIG9yaWdpbnNbMF0gPSBNYXRoLm1pbihvcmlnaW5MZWZ0LCBwYW5lUmVjdC53aWR0aCkgKyAncHgnO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB5T3JpZ2luID09PSAnY2VudGVyJyB8fFxuICAgICAgKHlPcmlnaW4gPT09ICd0b3AnICYmIHBhbmVSZWN0LnRvcCAhPT0gdHJpZ2dlckVsUmVhY3QuYm90dG9tKSB8fCAvLyDkvY3nva7msqHmnInooqvlrozlhajooqvpoqDlgJLnmoRcbiAgICAgICh5T3JpZ2luID09PSAnYm90dG9tJyAmJiBwYW5lUmVjdC5ib3R0b20gIT09IHRyaWdnZXJFbFJlYWN0LnRvcCkgLy8g5L2N572u5rKh5pyJ6KKr5a6M5YWo6KKr6aKg5YCS55qEXG4gICAgKSB7XG4gICAgICBjb25zdCBvcmlnaW5Ub3AgPVxuICAgICAgICB0cmlnZ2VyRWxSZWFjdC50b3AgLSBwYW5lUmVjdC50b3AgKyB0cmlnZ2VyRWxSZWFjdC5oZWlnaHQgLyAyO1xuICAgICAgb3JpZ2luc1sxXSA9IE1hdGgubWluKG9yaWdpblRvcCwgcGFuZVJlY3QuaGVpZ2h0KSArICdweCc7XG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgY29uc3QgYW5pRWxzID0gcG9zaXRpb25TdHJhdGVneS5fYm91bmRpbmdCb3ghLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5Ll90cmFuc2Zvcm1PcmlnaW5TZWxlY3RvcixcbiAgICApO1xuICAgIFsuLi5hbmlFbHNdLmZvckVhY2goZWwgPT4ge1xuICAgICAgZWwuc3R5bGUudHJhbnNmb3JtT3JpZ2luID0gb3JpZ2lucy5qb2luKCcgJyk7XG4gICAgfSk7XG4gIH1cblxuICBfY3JlYXRlVG9vbHRpcCgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmlzQ3JlYXRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9kaXNwb3NlVG9vbHRpcCgpO1xuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICB0aGlzLmNvbXBvbmVudENsYXNzLFxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICk7XG4gICAgdGhpcy5jb21wb25lbnRJbnMgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCkuaW5zdGFuY2U7XG4gICAgdGhpcy5jb21wb25lbnRJbnMuc2V0dXBJbnB1dHMoe1xuICAgICAgaW5wdXRDbGFzcyQ6IHRoaXMuaW5wdXRDbGFzcyQkLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgaW5wdXRDb250ZW50JDogdGhpcy5pbnB1dENvbnRlbnQkJC5hc09ic2VydmFibGUoKSxcbiAgICAgIGlucHV0Q29udGV4dCQ6IHRoaXMuaW5wdXRDb250ZXh0JCQuYXNPYnNlcnZhYmxlKCksXG4gICAgICBpbnB1dFBvc2l0aW9uJDogdGhpcy5pbnB1dFBvc2l0aW9uJCQuYXNPYnNlcnZhYmxlKCksXG4gICAgICBpbnB1dFR5cGUkOiB0aGlzLmlucHV0VHlwZSQkLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgZGlzYWJsZUFuaW1hdGlvbjogdGhpcy5kaXNhYmxlQW5pbWF0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMuY29tcG9uZW50SW5zLmhpZGUkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fZGlzcG9zZVRvb2x0aXAoKTtcbiAgICB9KTtcbiAgICBtZXJnZShcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zLmJlZm9yZUhpZGUkLFxuICAgICAgdGhpcy5jb21wb25lbnRJbnMuYmVmb3JlU2hvdyQucGlwZShkZWxheSgwKSksXG4gICAgKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLl91cGRhdGVUcmFuc2Zvcm1PcmlnaW4uYmluZCh0aGlzKSk7XG5cbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSBUb29sdGlwVHJpZ2dlci5Ib3Zlcikge1xuICAgICAgdGhpcy5jb21wb25lbnRJbnMuaG92ZXIkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudElucy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoaG92ZXJlZCA9PiB7XG4gICAgICAgICAgdGhpcy5vblRvb2x0aXBIb3ZlcmVkKGhvdmVyZWQpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy50cmlnZ2VyID09PSBUb29sdGlwVHJpZ2dlci5Ib3ZlciB8fFxuICAgICAgdGhpcy50cmlnZ2VyID09PSBUb29sdGlwVHJpZ2dlci5DbGlja1xuICAgICkge1xuICAgICAgdGhpcy51bmxpc3RlbkJvZHkgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgJ2JvZHknLFxuICAgICAgICAnY2xpY2snLFxuICAgICAgICB0aGlzLm9uQm9keUNsaWNrLmJpbmQodGhpcyksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY29tcG9uZW50SW5zPy5zaG93KCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICB0aGlzLnNob3dlZC5lbWl0KCk7XG4gIH1cblxuICBfZGlzcG9zZVRvb2x0aXAoKSB7XG4gICAgdGhpcy5jb21wb25lbnRJbnM/LmFuaW1hdGluZyQkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKGFuaW1hdGluZyA9PiAhYW5pbWF0aW5nKSxcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICAgIHRoaXMuY29tcG9uZW50SW5zID0gbnVsbDtcbiAgICAgICAgICB0aGlzLnRvb2x0aXBIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgICAgaWYgKHRoaXMudW5saXN0ZW5Cb2R5KSB7XG4gICAgICAgICAgICB0aGlzLnVubGlzdGVuQm9keSgpO1xuICAgICAgICAgICAgdGhpcy51bmxpc3RlbkJvZHkgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmhpZGVkLmVtaXQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICB0b2dnbGVUb29sdGlwKCkge1xuICAgIGlmICh0aGlzLmlzQ3JlYXRlZCkge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvdygpO1xuICAgIH1cbiAgfVxuXG4gIHNob3coKSB7XG4gICAgdGhpcy5fY3JlYXRlVG9vbHRpcCgpO1xuICB9XG5cbiAgaGlkZSgpIHtcbiAgICB0aGlzLmNvbXBvbmVudElucz8uaGlkZSgpO1xuICB9XG5cbiAgdXBkYXRlUG9zaXRpb24oKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IFRvb2x0aXBUcmlnZ2VyLkhvdmVyKSB7XG4gICAgICB0aGlzLnVwZGF0ZUxpc3RlbmVycygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dChudWxsKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZGlzcG9zZVRvb2x0aXAoKTtcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlTGlzdGVuZXJzKCkge1xuICAgIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgICBzd2l0Y2ggKHRoaXMudHJpZ2dlcikge1xuICAgICAgY2FzZSBUb29sdGlwVHJpZ2dlci5DbGljazpcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdjbGljaycsXG4gICAgICAgICAgICB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKSBhcyAoKSA9PiB2b2lkLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUb29sdGlwVHJpZ2dlci5Ib3ZlcjpcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdtb3VzZWVudGVyJyxcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZUVudGVyLmJpbmQodGhpcykgYXMgKCkgPT4gdm9pZCxcbiAgICAgICAgICApLFxuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ21vdXNlbGVhdmUnLFxuICAgICAgICAgICAgdGhpcy5vbk1vdXNlTGVhdmUuYmluZCh0aGlzKSBhcyAoKSA9PiB2b2lkLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUb29sdGlwVHJpZ2dlci5Gb2N1czpcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdmb2N1cycsXG4gICAgICAgICAgICB0aGlzLm9uRm9jdXMuYmluZCh0aGlzKSxcbiAgICAgICAgICApLFxuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ2JsdXInLFxuICAgICAgICAgICAgdGhpcy5vbkJsdXIuYmluZCh0aGlzKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVG9vbHRpcFRyaWdnZXIuTWFudWFsOlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCh1bkxpc3RlbiA9PiB7XG4gICAgICB1bkxpc3RlbigpO1xuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuZXJzID0gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlT3ZlcmxheSgpOiBPdmVybGF5UmVmIHtcbiAgICBjb25zdCBvcmlnaW5Qb3NpdGlvbiA9IGdldE9yaWdpblBvc2l0aW9uKHRoaXMucG9zaXRpb24pO1xuICAgIGNvbnN0IG92ZXJsYXlQb3NpdGlvbiA9IGdldE92ZXJsYXlQb3NpdGlvbih0aGlzLnBvc2l0aW9uKTtcblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsUmVmKVxuICAgICAgLndpdGhHcm93QWZ0ZXJPcGVuKHRydWUpXG4gICAgICAud2l0aFRyYW5zZm9ybU9yaWdpbk9uKCcuYXVpLXRvb2x0aXAnKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7IC4uLm9yaWdpblBvc2l0aW9uLm1haW4sIC4uLm92ZXJsYXlQb3NpdGlvbi5tYWluIH0sXG4gICAgICAgIHsgLi4ub3JpZ2luUG9zaXRpb24uZmFsbGJhY2ssIC4uLm92ZXJsYXlQb3NpdGlvbi5mYWxsYmFjayB9LFxuICAgICAgXSk7XG5cbiAgICBjb25zdCBzY3JvbGxTdHJhdGVneSA9IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneSxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTW91c2VFbnRlcigpIHtcbiAgICB0aGlzLmhvc3RIb3ZlcmVkID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMuaXNDcmVhdGVkKSB7XG4gICAgICBhd2FpdCBzbGVlcChESVNQTEFZX0RFTEFZKTtcbiAgICAgIGlmICh0aGlzLmhvc3RIb3ZlcmVkKSB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZVRvb2x0aXAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgb25Nb3VzZUxlYXZlKCkge1xuICAgIHRoaXMuaG9zdEhvdmVyZWQgPSBmYWxzZTtcbiAgICBhd2FpdCBzbGVlcChISURERU5fREVMQVkpO1xuICAgIGlmICghdGhpcy50b29sdGlwSG92ZXJlZCAmJiAhdGhpcy5ob3N0SG92ZXJlZCkge1xuICAgICAgdGhpcy5jb21wb25lbnRJbnM/LmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgb25Ub29sdGlwSG92ZXJlZChob3ZlcmVkOiBib29sZWFuKSB7XG4gICAgdGhpcy50b29sdGlwSG92ZXJlZCA9IGhvdmVyZWQ7XG4gICAgaWYgKCFob3ZlcmVkKSB7XG4gICAgICBhd2FpdCBzbGVlcChISURERU5fREVMQVkpO1xuICAgICAgaWYgKCF0aGlzLnRvb2x0aXBIb3ZlcmVkICYmICF0aGlzLmhvc3RIb3ZlcmVkKSB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50SW5zPy5oaWRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2xpY2soKSB7XG4gICAgdGhpcy50b2dnbGVUb29sdGlwKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Cb2R5Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICh0aGlzLmhpZGVPbkNsaWNrIHx8XG4gICAgICAgICF0aGlzLmNvbXBvbmVudElucy5lbFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSlcbiAgICApIHtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zPy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uRm9jdXMoKSB7XG4gICAgdGhpcy5fY3JlYXRlVG9vbHRpcCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQmx1cigpIHtcbiAgICB0aGlzLmNvbXBvbmVudElucz8uaGlkZSgpO1xuICB9XG59XG4iXX0=
@@ -6,10 +6,10 @@ export class TooltipActiveDirective {
6
6
  this.el = el;
7
7
  this.renderer = renderer;
8
8
  this.customClass = '';
9
- tooltipDirective.show.subscribe(() => {
9
+ tooltipDirective.showed.subscribe(() => {
10
10
  this.addClass();
11
11
  });
12
- tooltipDirective.hide.subscribe(() => {
12
+ tooltipDirective.hided.subscribe(() => {
13
13
  this.removeClass();
14
14
  });
15
15
  }
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
41
41
  type: Input,
42
42
  args: ['auiTooltipActive']
43
43
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1hY3RpdmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2x0aXAvdG9vbHRpcC1hY3RpdmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7QUFPeEUsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUNFLGdCQUE2QixFQUNaLEVBQWMsRUFDZCxRQUFtQjtRQURuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUx0QyxnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFPbEMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFFBQVE7UUFDZCxNQUFNLFFBQVEsR0FDWixPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssUUFBUTtZQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3ZCLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLFFBQVEsR0FDWixPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssUUFBUTtZQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3ZCLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzttSEFuQ1Usc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjttSkFHQyxXQUFXO3NCQURWLEtBQUs7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VUb29sdGlwIH0gZnJvbSAnLi9iYXNlLXRvb2x0aXAnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXVpVG9vbHRpcEFjdGl2ZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwQWN0aXZlRGlyZWN0aXZlIHtcbiAgQElucHV0KCdhdWlUb29sdGlwQWN0aXZlJylcbiAgY3VzdG9tQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdG9vbHRpcERpcmVjdGl2ZTogQmFzZVRvb2x0aXAsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICkge1xuICAgIHRvb2x0aXBEaXJlY3RpdmUuc2hvdy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5hZGRDbGFzcygpO1xuICAgIH0pO1xuICAgIHRvb2x0aXBEaXJlY3RpdmUuaGlkZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZW1vdmVDbGFzcygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDbGFzcygpIHtcbiAgICBjb25zdCBjbGFzc0FyciA9XG4gICAgICB0eXBlb2YgdGhpcy5jdXN0b21DbGFzcyA9PT0gJ3N0cmluZydcbiAgICAgICAgPyB0aGlzLmN1c3RvbUNsYXNzLnNwbGl0KCcgJylcbiAgICAgICAgOiB0aGlzLmN1c3RvbUNsYXNzO1xuICAgIGNsYXNzQXJyLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgbmFtZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUNsYXNzKCkge1xuICAgIGNvbnN0IGNsYXNzQXJyID1cbiAgICAgIHR5cGVvZiB0aGlzLmN1c3RvbUNsYXNzID09PSAnc3RyaW5nJ1xuICAgICAgICA/IHRoaXMuY3VzdG9tQ2xhc3Muc3BsaXQoJyAnKVxuICAgICAgICA6IHRoaXMuY3VzdG9tQ2xhc3M7XG4gICAgY2xhc3NBcnIuZm9yRWFjaChuYW1lID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCBuYW1lKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1hY3RpdmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2x0aXAvdG9vbHRpcC1hY3RpdmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7QUFPeEUsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUNFLGdCQUE2QixFQUNaLEVBQWMsRUFDZCxRQUFtQjtRQURuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUx0QyxnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFPbEMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDckMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFFBQVE7UUFDZCxNQUFNLFFBQVEsR0FDWixPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssUUFBUTtZQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3ZCLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLFFBQVEsR0FDWixPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssUUFBUTtZQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3ZCLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzttSEFuQ1Usc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjttSkFHQyxXQUFXO3NCQURWLEtBQUs7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VUb29sdGlwIH0gZnJvbSAnLi9iYXNlLXRvb2x0aXAnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXVpVG9vbHRpcEFjdGl2ZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwQWN0aXZlRGlyZWN0aXZlIHtcbiAgQElucHV0KCdhdWlUb29sdGlwQWN0aXZlJylcbiAgY3VzdG9tQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdG9vbHRpcERpcmVjdGl2ZTogQmFzZVRvb2x0aXAsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICkge1xuICAgIHRvb2x0aXBEaXJlY3RpdmUuc2hvd2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmFkZENsYXNzKCk7XG4gICAgfSk7XG4gICAgdG9vbHRpcERpcmVjdGl2ZS5oaWRlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZW1vdmVDbGFzcygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDbGFzcygpIHtcbiAgICBjb25zdCBjbGFzc0FyciA9XG4gICAgICB0eXBlb2YgdGhpcy5jdXN0b21DbGFzcyA9PT0gJ3N0cmluZydcbiAgICAgICAgPyB0aGlzLmN1c3RvbUNsYXNzLnNwbGl0KCcgJylcbiAgICAgICAgOiB0aGlzLmN1c3RvbUNsYXNzO1xuICAgIGNsYXNzQXJyLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgbmFtZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUNsYXNzKCkge1xuICAgIGNvbnN0IGNsYXNzQXJyID1cbiAgICAgIHR5cGVvZiB0aGlzLmN1c3RvbUNsYXNzID09PSAnc3RyaW5nJ1xuICAgICAgICA/IHRoaXMuY3VzdG9tQ2xhc3Muc3BsaXQoJyAnKVxuICAgICAgICA6IHRoaXMuY3VzdG9tQ2xhc3M7XG4gICAgY2xhc3NBcnIuZm9yRWFjaChuYW1lID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCBuYW1lKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -8,6 +8,7 @@ export class TooltipCopyDirective extends BaseTooltip {
8
8
  super(overlay, viewContainerRef, elRef, renderer, cdr, ngZone);
9
9
  this.toolTipIntl = toolTipIntl;
10
10
  this.className = true;
11
+ this.disableAnimation = false;
11
12
  }
12
13
  get auiTooltipCopy() {
13
14
  return this._copyText || this.elRef.nativeElement.textContent;
@@ -35,7 +36,7 @@ export class TooltipCopyDirective extends BaseTooltip {
35
36
  }
36
37
  ngOnInit() {
37
38
  this.content = this.auiTooltipCopyTip;
38
- this.hide.subscribe(() => {
39
+ this.hided.subscribe(() => {
39
40
  this.content = this.auiTooltipCopyTip;
40
41
  });
41
42
  }
@@ -52,7 +53,7 @@ export class TooltipCopyDirective extends BaseTooltip {
52
53
  }
53
54
  }
54
55
  TooltipCopyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TooltipCopyDirective, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i2.TooltipCopyIntl }], target: i0.ɵɵFactoryTarget.Directive });
55
- TooltipCopyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: TooltipCopyDirective, selector: "[auiTooltipCopy]", inputs: { position: ["auiTooltipPosition", "position"], disabled: ["auiTooltipDisabled", "disabled"], auiTooltipCopy: "auiTooltipCopy", auiTooltipCopyTip: "auiTooltipCopyTip", auiTooltipCopySuccessTip: "auiTooltipCopySuccessTip", auiTooltipCopyFailTip: "auiTooltipCopyFailTip" }, host: { listeners: { "click": "onSourceClick()" }, properties: { "class.aui-tooltip-copy": "this.className" } }, usesInheritance: true, ngImport: i0 });
56
+ TooltipCopyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: TooltipCopyDirective, selector: "[auiTooltipCopy]", inputs: { position: ["auiTooltipPosition", "position"], disabled: ["auiTooltipDisabled", "disabled"], disableAnimation: ["auiDisableAnimation", "disableAnimation"], auiTooltipCopy: "auiTooltipCopy", auiTooltipCopyTip: "auiTooltipCopyTip", auiTooltipCopySuccessTip: "auiTooltipCopySuccessTip", auiTooltipCopyFailTip: "auiTooltipCopyFailTip" }, host: { listeners: { "click": "onSourceClick()" }, properties: { "class.aui-tooltip-copy": "this.className" } }, usesInheritance: true, ngImport: i0 });
56
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TooltipCopyDirective, decorators: [{
57
58
  type: Directive,
58
59
  args: [{
@@ -62,6 +63,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
62
63
  }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i2.TooltipCopyIntl }]; }, propDecorators: { className: [{
63
64
  type: HostBinding,
64
65
  args: ['class.aui-tooltip-copy']
66
+ }], disableAnimation: [{
67
+ type: Input,
68
+ args: ['auiDisableAnimation']
65
69
  }], auiTooltipCopy: [{
66
70
  type: Input
67
71
  }], auiTooltipCopyTip: [{
@@ -74,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
74
78
  type: HostListener,
75
79
  args: ['click']
76
80
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1jb3B5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sdGlwL3Rvb2x0aXAtY29weS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVMLFNBQVMsRUFFVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssR0FLTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFPN0MsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFdBQVc7SUE2Q25ELFlBQ0UsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLEtBQWlCLEVBQ2pCLFFBQW1CLEVBQ25CLEdBQXNCLEVBQ3RCLE1BQWMsRUFDRyxXQUE0QjtRQUU3QyxLQUFLLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRjlDLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQWxEL0MsY0FBUyxHQUFHLElBQUksQ0FBQztJQXFEakIsQ0FBQztJQW5ERCxJQUNJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFDSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLGlCQUFpQixDQUFDLEtBQWE7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQ0ksd0JBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSx3QkFBd0IsQ0FBQyxLQUFhO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUNJLHFCQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsS0FBYTtRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBbUJELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsS0FBSyxDQUFDLGFBQWE7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSTtnQkFDRixNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7YUFDOUM7WUFBQyxNQUFNO2dCQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO2FBQzNDO1NBQ0Y7SUFDSCxDQUFDOztpSEExRVUsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixNQUFNLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSw2QkFBNkIsQ0FBQztpQkFDdkU7aVFBR0MsU0FBUztzQkFEUixXQUFXO3VCQUFDLHdCQUF3QjtnQkFJakMsY0FBYztzQkFEakIsS0FBSztnQkFVRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBVUYsd0JBQXdCO3NCQUQzQixLQUFLO2dCQVVGLHFCQUFxQjtzQkFEeEIsS0FBSztnQkFrQ0EsYUFBYTtzQkFEbEIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZVRvb2x0aXAgfSBmcm9tICcuL2Jhc2UtdG9vbHRpcCc7XG5pbXBvcnQgeyBUb29sdGlwQ29weUludGwgfSBmcm9tICcuL3Rvb2x0aXAtaW50bCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thdWlUb29sdGlwQ29weV0nLFxuICBpbnB1dHM6IFsncG9zaXRpb246YXVpVG9vbHRpcFBvc2l0aW9uJywgJ2Rpc2FibGVkOmF1aVRvb2x0aXBEaXNhYmxlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwQ29weURpcmVjdGl2ZSBleHRlbmRzIEJhc2VUb29sdGlwIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hdWktdG9vbHRpcC1jb3B5JylcbiAgY2xhc3NOYW1lID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBnZXQgYXVpVG9vbHRpcENvcHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvcHlUZXh0IHx8IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudDtcbiAgfVxuXG4gIHNldCBhdWlUb29sdGlwQ29weSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29weVRleHQgPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBhdWlUb29sdGlwQ29weVRpcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29weVRpcCB8fCB0aGlzLnRvb2xUaXBJbnRsLmNvcHlUaXA7XG4gIH1cblxuICBzZXQgYXVpVG9vbHRpcENvcHlUaXAodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2NvcHlUaXAgPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBhdWlUb29sdGlwQ29weVN1Y2Nlc3NUaXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvcHlTdWNjZXNzVGlwIHx8IHRoaXMudG9vbFRpcEludGwuY29weVN1Y2Nlc3NUaXA7XG4gIH1cblxuICBzZXQgYXVpVG9vbHRpcENvcHlTdWNjZXNzVGlwKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb3B5U3VjY2Vzc1RpcCA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGF1aVRvb2x0aXBDb3B5RmFpbFRpcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29weUZhaWxUaXAgfHwgdGhpcy50b29sVGlwSW50bC5jb3B5RmFpbFRpcDtcbiAgfVxuXG4gIHNldCBhdWlUb29sdGlwQ29weUZhaWxUaXAodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2NvcHlGYWlsVGlwID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9jb3B5VGV4dDogc3RyaW5nO1xuICBwcml2YXRlIF9jb3B5VGlwOiBzdHJpbmc7XG4gIHByaXZhdGUgX2NvcHlTdWNjZXNzVGlwOiBzdHJpbmc7XG4gIHByaXZhdGUgX2NvcHlGYWlsVGlwOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgb3ZlcmxheTogT3ZlcmxheSxcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2xUaXBJbnRsOiBUb29sdGlwQ29weUludGwsXG4gICkge1xuICAgIHN1cGVyKG92ZXJsYXksIHZpZXdDb250YWluZXJSZWYsIGVsUmVmLCByZW5kZXJlciwgY2RyLCBuZ1pvbmUpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5hdWlUb29sdGlwQ29weVRpcDtcbiAgICB0aGlzLmhpZGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuYXVpVG9vbHRpcENvcHlUaXA7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIGFzeW5jIG9uU291cmNlQ2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLmF1aVRvb2x0aXBDb3B5KTtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5hdWlUb29sdGlwQ29weVN1Y2Nlc3NUaXA7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5hdWlUb29sdGlwQ29weUZhaWxUaXA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1jb3B5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sdGlwL3Rvb2x0aXAtY29weS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVMLFNBQVMsRUFFVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssR0FLTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFPN0MsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFdBQVc7SUFnRG5ELFlBQ0UsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLEtBQWlCLEVBQ2pCLFFBQW1CLEVBQ25CLEdBQXNCLEVBQ3RCLE1BQWMsRUFDRyxXQUE0QjtRQUU3QyxLQUFLLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRjlDLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQXJEL0MsY0FBUyxHQUFHLElBQUksQ0FBQztRQUdSLHFCQUFnQixHQUFHLEtBQUssQ0FBQztJQXFEbEMsQ0FBQztJQW5ERCxJQUNJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFDSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLGlCQUFpQixDQUFDLEtBQWE7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQ0ksd0JBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSx3QkFBd0IsQ0FBQyxLQUFhO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUNJLHFCQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsS0FBYTtRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBbUJELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsS0FBSyxDQUFDLGFBQWE7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSTtnQkFDRixNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7YUFDOUM7WUFBQyxNQUFNO2dCQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO2FBQzNDO1NBQ0Y7SUFDSCxDQUFDOztpSEE3RVUsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixNQUFNLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSw2QkFBNkIsQ0FBQztpQkFDdkU7aVFBR0MsU0FBUztzQkFEUixXQUFXO3VCQUFDLHdCQUF3QjtnQkFJNUIsZ0JBQWdCO3NCQUR4QixLQUFLO3VCQUFDLHFCQUFxQjtnQkFJeEIsY0FBYztzQkFEakIsS0FBSztnQkFVRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBVUYsd0JBQXdCO3NCQUQzQixLQUFLO2dCQVVGLHFCQUFxQjtzQkFEeEIsS0FBSztnQkFrQ0EsYUFBYTtzQkFEbEIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZVRvb2x0aXAgfSBmcm9tICcuL2Jhc2UtdG9vbHRpcCc7XG5pbXBvcnQgeyBUb29sdGlwQ29weUludGwgfSBmcm9tICcuL3Rvb2x0aXAtaW50bCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thdWlUb29sdGlwQ29weV0nLFxuICBpbnB1dHM6IFsncG9zaXRpb246YXVpVG9vbHRpcFBvc2l0aW9uJywgJ2Rpc2FibGVkOmF1aVRvb2x0aXBEaXNhYmxlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwQ29weURpcmVjdGl2ZSBleHRlbmRzIEJhc2VUb29sdGlwIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hdWktdG9vbHRpcC1jb3B5JylcbiAgY2xhc3NOYW1lID0gdHJ1ZTtcblxuICBASW5wdXQoJ2F1aURpc2FibGVBbmltYXRpb24nKVxuICBvdmVycmlkZSBkaXNhYmxlQW5pbWF0aW9uID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IGF1aVRvb2x0aXBDb3B5KCkge1xuICAgIHJldHVybiB0aGlzLl9jb3B5VGV4dCB8fCB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gIH1cblxuICBzZXQgYXVpVG9vbHRpcENvcHkodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2NvcHlUZXh0ID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgYXVpVG9vbHRpcENvcHlUaXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvcHlUaXAgfHwgdGhpcy50b29sVGlwSW50bC5jb3B5VGlwO1xuICB9XG5cbiAgc2V0IGF1aVRvb2x0aXBDb3B5VGlwKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb3B5VGlwID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgYXVpVG9vbHRpcENvcHlTdWNjZXNzVGlwKCkge1xuICAgIHJldHVybiB0aGlzLl9jb3B5U3VjY2Vzc1RpcCB8fCB0aGlzLnRvb2xUaXBJbnRsLmNvcHlTdWNjZXNzVGlwO1xuICB9XG5cbiAgc2V0IGF1aVRvb2x0aXBDb3B5U3VjY2Vzc1RpcCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29weVN1Y2Nlc3NUaXAgPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBhdWlUb29sdGlwQ29weUZhaWxUaXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvcHlGYWlsVGlwIHx8IHRoaXMudG9vbFRpcEludGwuY29weUZhaWxUaXA7XG4gIH1cblxuICBzZXQgYXVpVG9vbHRpcENvcHlGYWlsVGlwKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb3B5RmFpbFRpcCA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29weVRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfY29weVRpcDogc3RyaW5nO1xuICBwcml2YXRlIF9jb3B5U3VjY2Vzc1RpcDogc3RyaW5nO1xuICBwcml2YXRlIF9jb3B5RmFpbFRpcDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b29sVGlwSW50bDogVG9vbHRpcENvcHlJbnRsLFxuICApIHtcbiAgICBzdXBlcihvdmVybGF5LCB2aWV3Q29udGFpbmVyUmVmLCBlbFJlZiwgcmVuZGVyZXIsIGNkciwgbmdab25lKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29udGVudCA9IHRoaXMuYXVpVG9vbHRpcENvcHlUaXA7XG4gICAgdGhpcy5oaWRlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5hdWlUb29sdGlwQ29weVRpcDtcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgYXN5bmMgb25Tb3VyY2VDbGljaygpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMuYXVpVG9vbHRpcENvcHkpO1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmF1aVRvb2x0aXBDb3B5U3VjY2Vzc1RpcDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmF1aVRvb2x0aXBDb3B5RmFpbFRpcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==