@alauda/ui 6.5.10-beta.59 → 6.5.10-beta.60

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,5 +1,5 @@
1
1
  import { ContentChild, ContentChildren, Directive, EventEmitter, Input, Output, ViewChild, ViewChildren, } from '@angular/core';
2
- import { BehaviorSubject, combineLatest, map, of, startWith, Subject, switchMap, takeUntil, } from 'rxjs';
2
+ import { BehaviorSubject, combineLatest, map, of, startWith, Subject, switchMap, takeUntil, tap, } from 'rxjs';
3
3
  import { CommonFormControl } from '../form';
4
4
  import { ComponentSize } from '../types';
5
5
  import { coerceAttrBoolean, coerceString, isTemplateRef, publishRef, scrollIntoView, } from '../utils';
@@ -116,7 +116,13 @@ export class BaseSelect extends CommonFormControl {
116
116
  ]).pipe(map(([values, filterString]) => values.some(value => this.trackFn(value) === filterString)), publishRef());
117
117
  this.hasVisibleOption$ = this.contentOptions.changes.pipe(startWith(this.contentOptions), switchMap((options) => options.length > 0
118
118
  ? combineLatest(options.map(option => option.visible$))
119
- : of([])), map(visible => visible.some(Boolean)), publishRef());
119
+ : of([])), map(visible => visible.some(Boolean)), tap(show => {
120
+ if (show) {
121
+ requestAnimationFrame(() => {
122
+ this.tooltipRef.updatePosition();
123
+ });
124
+ }
125
+ }), publishRef());
120
126
  }
121
127
  ngOnDestroy() {
122
128
  this.optionContent?.detach();
@@ -133,6 +139,7 @@ export class BaseSelect extends CommonFormControl {
133
139
  const exec = () => {
134
140
  this.containerWidth = this.selectRef.nativeElement.offsetWidth + 'px';
135
141
  requestAnimationFrame(() => {
142
+ this.tooltipRef.updatePosition();
136
143
  this.autoFocusFirstOption();
137
144
  });
138
145
  this.show.emit();
@@ -330,4 +337,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
330
337
  type: ContentChildren,
331
338
  args: [OptionComponent, { descendants: true }]
332
339
  }] } });
333
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZWxlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VsZWN0L2Jhc2Utc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxZQUFZLEVBQ1osZUFBZSxFQUNmLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osYUFBYSxFQUNiLFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxVQUFVLENBQUM7QUFFbEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUk1RCxNQUFNLE9BQWdCLFVBQ3BCLFNBQVEsaUJBQW9CO0lBRzVCLElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsR0FBRztRQUNWLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxHQUFHLEVBQUU7WUFDOUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUdELFVBQVUsR0FB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Z0JBSU4sV0FBVztzQkFEVixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFO2dCQStCdkMsT0FBTztzQkFETixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsTUFBTTtnQkFJUCxJQUFJO3NCQURILE1BQU07Z0JBSVAsSUFBSTtzQkFESCxNQUFNO2dCQUlHLFNBQVM7c0JBRGxCLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJOUIsVUFBVTtzQkFEbkIsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUkvQixhQUFhO3NCQUR0QixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSW5DLGVBQWU7c0JBRHhCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUlyQyxhQUFhO3NCQUR0QixZQUFZO3VCQUFDLHNCQUFzQjtnQkFJcEMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGVBQWU7Z0JBSTdCLGNBQWM7c0JBRGIsZUFBZTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIFN1YmplY3QsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ29tbW9uRm9ybUNvbnRyb2wgfSBmcm9tICcuLi9mb3JtJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi90b29sdGlwJztcbmltcG9ydCB7IENvbXBvbmVudFNpemUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1xuICBjb2VyY2VBdHRyQm9vbGVhbixcbiAgY29lcmNlU3RyaW5nLFxuICBpc1RlbXBsYXRlUmVmLFxuICBwdWJsaXNoUmVmLFxuICBzY3JvbGxJbnRvVmlldyxcbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBPcHRpb25Db250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9oZWxwZXItZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL29wdGlvbi9vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE9wdGlvbkZpbHRlckZuLCBTZWxlY3RGaWx0ZXJPcHRpb24sIFRyYWNrRm4gfSBmcm9tICcuL3NlbGVjdC50eXBlcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTZWxlY3Q8VCwgViA9IFQ+XG4gIGV4dGVuZHMgQ29tbW9uRm9ybUNvbnRyb2w8Vj5cbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgZ2V0IHNpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gIH1cblxuICBzZXQgc2l6ZSh2YWwpIHtcbiAgICBpZiAoIXZhbCB8fCB0aGlzLl9zaXplID09PSB2YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc2l6ZSA9IHZhbDtcbiAgICB0aGlzLnNpemUkJC5uZXh0KHZhbCk7XG4gIH1cblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUF0dHJCb29sZWFuIH0pXG4gIGZpbHRlcmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQXR0ckJvb2xlYW4gfSlcbiAgY2xlYXJhYmxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlckZuOiBPcHRpb25GaWx0ZXJGbjxUPiA9IHRoaXMuX2ZpbHRlckZuLmJpbmQodGhpcyk7XG5cbiAgQElucHV0KClcbiAgdHJhY2tGbjogVHJhY2tGbjxUPiA9IHRoaXMuX3RyYWNrRm47XG5cbiAgQElucHV0KClcbiAgbGFiZWxGbj86ICh2YWx1ZTogVCkgPT4gc3RyaW5nO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQXR0ckJvb2xlYW4gfSlcbiAgYWxsb3dDcmVhdGU6IGJvb2xlYW47XG5cbiAgZ2V0IGFsbE9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLih0aGlzLmN1c3RvbU9wdGlvbnMgPyB0aGlzLmN1c3RvbU9wdGlvbnMudG9BcnJheSgpIDogW10pLFxuICAgICAgLi4uKHRoaXMuY29udGVudE9wdGlvbnMgPyB0aGlzLmNvbnRlbnRPcHRpb25zLnRvQXJyYXkoKSA6IFtdKSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0IG9wZW5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy50b29sdGlwUmVmLmlzQ3JlYXRlZDtcbiAgfVxuXG4gIGdldCBpbnB1dFJlYWRvbmx5KCkge1xuICAgIHJldHVybiAhKHRoaXMuZmlsdGVyYWJsZSAmJiB0aGlzLm9wZW5lZCk7XG4gIH1cblxuICBnZXQgZmlsdGVyU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJTdHJpbmc7XG4gIH1cblxuICBzZXQgZmlsdGVyU3RyaW5nKHZhbCkge1xuICAgIGlmICh2YWwgIT09IHRoaXMuX2ZpbHRlclN0cmluZykge1xuICAgICAgdGhpcy5fZmlsdGVyU3RyaW5nID0gdmFsO1xuICAgICAgdGhpcy5maWx0ZXJTdHJpbmckJC5uZXh0KHZhbCk7XG4gICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHZhbCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQElucHV0KClcbiAgZGVmYXVsdEZpcnN0T3B0aW9uID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBsYXp5ID0gdHJ1ZTtcblxuICBAT3V0cHV0KClcbiAgZmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHNob3cgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VsZWN0UmVmJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIHNlbGVjdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcFJlZicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCB0b29sdGlwUmVmOiBUb29sdGlwRGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGQoJ29wdGlvbkxpc3RSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHJvdGVjdGVkIG9wdGlvbkxpc3RSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0dGluZ09wdGlvbicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwcm90ZWN0ZWQgaW5wdXR0aW5nT3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD47XG5cbiAgQENvbnRlbnRDaGlsZChPcHRpb25Db250ZW50RGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgb3B0aW9uQ29udGVudD86IE9wdGlvbkNvbnRlbnREaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZHJlbihPcHRpb25Db21wb25lbnQpXG4gIGN1c3RvbU9wdGlvbnM6IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oT3B0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIGNvbnRlbnRPcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFQ+PjtcblxuICBpc1RlbXBsYXRlUmVmID0gaXNUZW1wbGF0ZVJlZjtcbiAgaXNNdWx0aSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBVdGlsaXR5IGZpZWxkIHRvIG1ha2Ugc3VyZSB0aGUgdXNlcnMgYWx3YXlzIHNlZSB0aGUgdmFsdWUgYXMgdHlwZSBhcnJheVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgdmFsdWVzJDogT2JzZXJ2YWJsZTxUW10+O1xuXG4gIGFsbE9wdGlvbnMkOiBPYnNlcnZhYmxlPEFycmF5PE9wdGlvbkNvbXBvbmVudDxUPj4+O1xuXG4gIHByb3RlY3RlZCBmb2N1c2VkT3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD47XG5cbiAgcHJpdmF0ZSBfc2l6ZTogQ29tcG9uZW50U2l6ZSA9IENvbXBvbmVudFNpemUuTWVkaXVtO1xuICBwcml2YXRlIF9maWx0ZXJTdHJpbmcgPSAnJztcblxuICBwcm90ZWN0ZWQgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJvdGVjdGVkIHNpemUkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29tcG9uZW50U2l6ZT4odGhpcy5zaXplKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJTdHJpbmckJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihcbiAgICB0aGlzLmZpbHRlclN0cmluZyxcbiAgKTtcblxuICBzaXplJCA9IHRoaXMuc2l6ZSQkLmFzT2JzZXJ2YWJsZSgpO1xuICBmaWx0ZXJTdHJpbmckID0gdGhpcy5maWx0ZXJTdHJpbmckJC5hc09ic2VydmFibGUoKTtcbiAgaGFzVmlzaWJsZU9wdGlvbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGhhc01hdGNoZWRPcHRpb24kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBjdXN0b21DcmVhdGVkT3B0aW9ucyQ6IE9ic2VydmFibGU8QXJyYXk8U2VsZWN0RmlsdGVyT3B0aW9uPFQ+Pj47XG4gIGNvbnRhaW5lcldpZHRoOiBzdHJpbmc7XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuY3VzdG9tQ3JlYXRlZE9wdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnZhbHVlcyQsXG4gICAgICAoXG4gICAgICAgIHRoaXMuY29udGVudE9wdGlvbnMuY2hhbmdlcyBhcyBPYnNlcnZhYmxlPFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+PlxuICAgICAgKS5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGhpcy5jb250ZW50T3B0aW9ucyksXG4gICAgICAgIHN3aXRjaE1hcCgob3B0aW9uczogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUPj4pID0+XG4gICAgICAgICAgb3B0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IGNvbWJpbmVMYXRlc3Qob3B0aW9ucy5tYXAob3B0aW9uID0+IG9wdGlvbi52YWx1ZSQpKVxuICAgICAgICAgICAgOiBvZihbXSBhcyBUW10pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdmFsdWVzLCBvcHRpb25WYWx1ZXNdKSA9PlxuICAgICAgICB2YWx1ZXMucmVkdWNlPEFycmF5PFNlbGVjdEZpbHRlck9wdGlvbjxUPj4+KChhY2MsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5jbHVkZWQgPSBvcHRpb25WYWx1ZXNcbiAgICAgICAgICAgIC5tYXAodmFsdWUgPT4gdGhpcy50cmFja0ZuKHZhbHVlKSlcbiAgICAgICAgICAgIC5pbmNsdWRlcyh0aGlzLnRyYWNrRm4odmFsdWUpKTtcbiAgICAgICAgICBpZiAoIWluY2x1ZGVkKSB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbCA9XG4gICAgICAgICAgICAgIHRoaXMubGFiZWxGbj8uKHZhbHVlKSB8fCBjb2VyY2VTdHJpbmcodGhpcy50cmFja0ZuKHZhbHVlKSk7XG4gICAgICAgICAgICBpZiAobGFiZWwpIHtcbiAgICAgICAgICAgICAgYWNjLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwgW10pLFxuICAgICAgKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuYWxsT3B0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY3VzdG9tT3B0aW9ucy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuY3VzdG9tT3B0aW9ucykpLFxuICAgICAgdGhpcy5jb250ZW50T3B0aW9ucy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuY29udGVudE9wdGlvbnMpKSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW2N1c3RvbU9wdGlvbnMsIGNvbnRlbnRPcHRpb25zXTogW1xuICAgICAgICAgIFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+LFxuICAgICAgICAgIFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+LFxuICAgICAgICBdKSA9PiBbLi4uY3VzdG9tT3B0aW9ucy50b0FycmF5KCksIC4uLmNvbnRlbnRPcHRpb25zLnRvQXJyYXkoKV0sXG4gICAgICApLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG5cbiAgICAvLyBzdXBwb3J0IGR5bmFtaWMgb3B0aW9ucyBsb2FkaW5nIG9uIGZpbHRlcmluZ1xuICAgIHRoaXMuYWxsT3B0aW9ucyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMub3BlbmVkKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5hdXRvRm9jdXNGaXJzdE9wdGlvbigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuaGFzTWF0Y2hlZE9wdGlvbiQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuYWxsT3B0aW9ucyQucGlwZShcbiAgICAgICAgbWFwKGN1c3RvbU9wdGlvbnMgPT5cbiAgICAgICAgICBjdXN0b21PcHRpb25zLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uICE9PSB0aGlzLmlucHV0dGluZ09wdGlvbiksXG4gICAgICAgICksXG4gICAgICAgIHN3aXRjaE1hcChvcHRpb25zID0+XG4gICAgICAgICAgb3B0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IGNvbWJpbmVMYXRlc3Qob3B0aW9ucy5tYXAob3B0aW9uID0+IG9wdGlvbi52YWx1ZSQpKVxuICAgICAgICAgICAgOiBvZihbXSBhcyBUW10pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdmFsdWVzLCBmaWx0ZXJTdHJpbmddKSA9PlxuICAgICAgICB2YWx1ZXMuc29tZSh2YWx1ZSA9PiB0aGlzLnRyYWNrRm4odmFsdWUpID09PSBmaWx0ZXJTdHJpbmcpLFxuICAgICAgKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuXG4gICAgdGhpcy5oYXNWaXNpYmxlT3B0aW9uJCA9IChcbiAgICAgIHRoaXMuY29udGVudE9wdGlvbnMuY2hhbmdlcyBhcyBPYnNlcnZhYmxlPFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+PlxuICAgICkucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmNvbnRlbnRPcHRpb25zKSxcbiAgICAgIHN3aXRjaE1hcCgob3B0aW9uczogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUPj4pID0+XG4gICAgICAgIG9wdGlvbnMubGVuZ3RoID4gMFxuICAgICAgICAgID8gY29tYmluZUxhdGVzdChvcHRpb25zLm1hcChvcHRpb24gPT4gb3B0aW9uLnZpc2libGUkKSlcbiAgICAgICAgICA6IG9mKFtdIGFzIGJvb2xlYW5bXSksXG4gICAgICApLFxuICAgICAgbWFwKHZpc2libGUgPT4gdmlzaWJsZS5zb21lKEJvb2xlYW4pKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vcHRpb25Db250ZW50Py5kZXRhY2goKTtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG9wZW5PcHRpb24oKSB7XG4gICAgdGhpcy50b29sdGlwUmVmLnNob3coKTtcbiAgfVxuXG4gIGNsb3NlT3B0aW9uKCkge1xuICAgIHRoaXMudG9vbHRpcFJlZi5oaWRlKCk7XG4gIH1cblxuICBvblNob3dPcHRpb25zKCkge1xuICAgIGNvbnN0IGV4ZWMgPSAoKSA9PiB7XG4gICAgICB0aGlzLmNvbnRhaW5lcldpZHRoID0gdGhpcy5zZWxlY3RSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArICdweCc7XG5cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYXV0b0ZvY3VzRmlyc3RPcHRpb24oKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNob3cuZW1pdCgpO1xuICAgIH07XG5cbiAgICBpZiAodGhpcy5vcHRpb25Db250ZW50KSB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbkNvbnRlbnQuYXR0YWNoKCk7XG4gICAgICAgIGV4ZWMoKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGVjKCk7XG4gICAgfVxuICB9XG5cbiAgb25IaWRlT3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5sYXp5KSB7XG4gICAgICB0aGlzLm9wdGlvbkNvbnRlbnQ/LmRldGFjaCgpO1xuICAgIH1cbiAgICB0aGlzLnJlc2V0Rm9jdXNlZE9wdGlvbigpO1xuICAgIHRoaXMuZmlsdGVyU3RyaW5nID0gJyc7XG4gICAgdGhpcy5oaWRlLmVtaXQoKTtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5maWx0ZXJTdHJpbmcgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuYXV0b0ZvY3VzRmlyc3RPcHRpb24oKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6IHtcbiAgICAgICAgdGhpcy5mb2N1c09wdGlvbkRpcignZG93bicpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd1VwJzoge1xuICAgICAgICB0aGlzLmZvY3VzT3B0aW9uRGlyKCd1cCcpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFbnRlcic6IHtcbiAgICAgICAgdGhpcy5zZWxlY3RGb2N1c2VkT3B0aW9uKCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0VzY2FwZSc6IHtcbiAgICAgICAgdGhpcy5lc2NTZWxlY3QoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uT3B0aW9uQ2xpY2sob3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD4pIHtcbiAgICB0aGlzLnJlc2V0Rm9jdXNlZE9wdGlvbihvcHRpb24pO1xuICAgIHRoaXMuc2VsZWN0T3B0aW9uKG9wdGlvbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXV0b0ZvY3VzRmlyc3RPcHRpb24oKSB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdEZpcnN0T3B0aW9uICYmIHRoaXMuYWxsb3dDcmVhdGUgJiYgdGhpcy5maWx0ZXJTdHJpbmcpIHtcbiAgICAgIGNvbnN0IG1hdGNoZWRPcHRpb24gPSB0aGlzLmNvbnRlbnRPcHRpb25zLmZpbmQoXG4gICAgICAgIG9wdGlvbiA9PiB0aGlzLnRyYWNrRm4ob3B0aW9uLnZhbHVlKSA9PT0gdGhpcy5maWx0ZXJTdHJpbmcsXG4gICAgICApO1xuICAgICAgdGhpcy5yZXNldEZvY3VzZWRPcHRpb24obWF0Y2hlZE9wdGlvbiB8fCB0aGlzLmN1c3RvbU9wdGlvbnMuZmlyc3QpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5hbGxPcHRpb25zLmZpbmQoXG4gICAgICBvcHRpb24gPT4gb3B0aW9uLnNlbGVjdGVkICYmIG9wdGlvbi52aXNpYmxlLFxuICAgICk7XG4gICAgaWYgKHRoaXMuZGVmYXVsdEZpcnN0T3B0aW9uKSB7XG4gICAgICB0aGlzLnJlc2V0Rm9jdXNlZE9wdGlvbihcbiAgICAgICAgc2VsZWN0ZWRPcHRpb24gfHxcbiAgICAgICAgICB0aGlzLmFsbE9wdGlvbnMuZmluZChvcHRpb24gPT4gb3B0aW9uLnZpc2libGUgJiYgIW9wdGlvbi5kaXNhYmxlZCksXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRPcHRpb24pIHtcbiAgICAgIHRoaXMuc2Nyb2xsVG9PcHRpb24oc2VsZWN0ZWRPcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBmb2N1c09wdGlvbkRpcihkaXI6ICdkb3duJyB8ICd1cCcpIHtcbiAgICBpZiAoIXRoaXMub3BlbmVkKSB7XG4gICAgICB0aGlzLm9wZW5PcHRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmlzaWJsZU9wdGlvbnMgPSB0aGlzLmFsbE9wdGlvbnMuZmlsdGVyKFxuICAgICAgb3B0aW9uID0+IG9wdGlvbi52aXNpYmxlICYmICFvcHRpb24uZGlzYWJsZWQsXG4gICAgKTtcbiAgICBpZiAodmlzaWJsZU9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0ZXAgPSBkaXIgPT09ICdkb3duJyA/IDEgOiAtMTtcbiAgICBsZXQgaSA9IHZpc2libGVPcHRpb25zLmluZGV4T2YodGhpcy5mb2N1c2VkT3B0aW9uKTtcbiAgICBpID0gaSArIHN0ZXA7XG4gICAgaWYgKGkgPj0gdmlzaWJsZU9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICBpID0gMDtcbiAgICB9IGVsc2UgaWYgKGkgPCAwKSB7XG4gICAgICBpID0gdmlzaWJsZU9wdGlvbnMubGVuZ3RoIC0gMTtcbiAgICB9XG4gICAgdGhpcy5yZXNldEZvY3VzZWRPcHRpb24odmlzaWJsZU9wdGlvbnNbaV0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0Rm9jdXNlZE9wdGlvbihmb2N1c2VkT3B0aW9uPzogT3B0aW9uQ29tcG9uZW50PFQ+KSB7XG4gICAgaWYgKHRoaXMuZm9jdXNlZE9wdGlvbiA9PT0gZm9jdXNlZE9wdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvY3VzZWRPcHRpb24pIHtcbiAgICAgIHRoaXMuZm9jdXNlZE9wdGlvbi5ibHVyKCk7XG4gICAgfVxuXG4gICAgdGhpcy5mb2N1c2VkT3B0aW9uID0gZm9jdXNlZE9wdGlvbjtcblxuICAgIGlmICh0aGlzLmZvY3VzZWRPcHRpb24pIHtcbiAgICAgIHRoaXMuZm9jdXNlZE9wdGlvbi5mb2N1cygpO1xuICAgICAgdGhpcy5zY3JvbGxUb09wdGlvbih0aGlzLmZvY3VzZWRPcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzY3JvbGxUb09wdGlvbihvcHRpb246IE9wdGlvbkNvbXBvbmVudDxUPikge1xuICAgIGlmICh0aGlzLm9wdGlvbkxpc3RSZWYpIHtcbiAgICAgIHNjcm9sbEludG9WaWV3KFxuICAgICAgICB0aGlzLm9wdGlvbkxpc3RSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgb3B0aW9uLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RGb2N1c2VkT3B0aW9uKCkge1xuICAgIGlmICghdGhpcy5vcGVuZWQpIHtcbiAgICAgIHRoaXMub3Blbk9wdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb2N1c2VkT3B0aW9uICYmICF0aGlzLmZvY3VzZWRPcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKHRoaXMuZm9jdXNlZE9wdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGVzY1NlbGVjdCgpIHtcbiAgICB0aGlzLmNsb3NlT3B0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIF90cmFja0ZuPFQ+KHZhbHVlOiBUKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyRm4oXG4gICAgZmlsdGVyU3RyaW5nOiBzdHJpbmcsXG4gICAgeyBsYWJlbCwgdmFsdWUgfTogU2VsZWN0RmlsdGVyT3B0aW9uPFQ+LFxuICApIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHR5cGVvZiBsYWJlbCA9PT0gJ3N0cmluZycgJiYgbGFiZWwpIHx8XG4gICAgICB0aGlzLmxhYmVsRm4/Lih2YWx1ZSkgfHxcbiAgICAgIGNvZXJjZVN0cmluZyh0aGlzLnRyYWNrRm4odmFsdWUpKVxuICAgIClcbiAgICAgID8udG9Mb3dlckNhc2UoKVxuICAgICAgLmluY2x1ZGVzKGZpbHRlclN0cmluZz8udG9Mb3dlckNhc2UoKSA/PyAnJyk7XG4gIH1cblxuICBhYnN0cmFjdCBzZWxlY3RPcHRpb24ob3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD4pOiB2b2lkO1xuXG4gIGFic3RyYWN0IGNsZWFyVmFsdWUoZXZlbnQ6IEV2ZW50KTogdm9pZDtcbn1cbiJdfQ==
340
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZWxlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VsZWN0L2Jhc2Utc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxZQUFZLEVBQ1osZUFBZSxFQUNmLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLEVBQ1YsY0FBYyxHQUNmLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFJNUQsTUFBTSxPQUFnQixVQUNwQixTQUFRLGlCQUFvQjtJQUc1QixJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLEdBQUc7UUFDVixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssR0FBRyxFQUFFO1lBQzlCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFH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VTtrQkFEL0IsU0FBUzs4QkFNSixJQUFJO3NCQURQLEtBQUs7Z0JBY04sVUFBVTtzQkFEVCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFO2dCQUl2QyxTQUFTO3NCQURSLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7Z0JBSXZDLFFBQVE7c0JBRFAsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRTtnQkErQnZDLE9BQU87c0JBRE4sS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixZQUFZO3NCQURYLE1BQU07Z0JBSVAsSUFBSTtzQkFESCxNQUFNO2dCQUlQLElBQUk7c0JBREgsTUFBTTtnQkFJRyxTQUFTO3NCQURsQixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlCLFVBQVU7c0JBRG5CLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJL0IsYUFBYTtzQkFEdEIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUluQyxlQUFlO3NCQUR4QixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJckMsYUFBYTtzQkFEdEIsWUFBWTt1QkFBQyxzQkFBc0I7Z0JBSXBDLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxlQUFlO2dCQUk3QixjQUFjO3NCQURiLGVBQWU7dUJBQUMsZUFBZSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc3RhcnRXaXRoLFxuICBTdWJqZWN0LFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ29tbW9uRm9ybUNvbnRyb2wgfSBmcm9tICcuLi9mb3JtJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi90b29sdGlwJztcbmltcG9ydCB7IENvbXBvbmVudFNpemUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1xuICBjb2VyY2VBdHRyQm9vbGVhbixcbiAgY29lcmNlU3RyaW5nLFxuICBpc1RlbXBsYXRlUmVmLFxuICBwdWJsaXNoUmVmLFxuICBzY3JvbGxJbnRvVmlldyxcbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBPcHRpb25Db250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9oZWxwZXItZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL29wdGlvbi9vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE9wdGlvbkZpbHRlckZuLCBTZWxlY3RGaWx0ZXJPcHRpb24sIFRyYWNrRm4gfSBmcm9tICcuL3NlbGVjdC50eXBlcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTZWxlY3Q8VCwgViA9IFQ+XG4gIGV4dGVuZHMgQ29tbW9uRm9ybUNvbnRyb2w8Vj5cbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgZ2V0IHNpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gIH1cblxuICBzZXQgc2l6ZSh2YWwpIHtcbiAgICBpZiAoIXZhbCB8fCB0aGlzLl9zaXplID09PSB2YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc2l6ZSA9IHZhbDtcbiAgICB0aGlzLnNpemUkJC5uZXh0KHZhbCk7XG4gIH1cblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUF0dHJCb29sZWFuIH0pXG4gIGZpbHRlcmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQXR0ckJvb2xlYW4gfSlcbiAgY2xlYXJhYmxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlckZuOiBPcHRpb25GaWx0ZXJGbjxUPiA9IHRoaXMuX2ZpbHRlckZuLmJpbmQodGhpcyk7XG5cbiAgQElucHV0KClcbiAgdHJhY2tGbjogVHJhY2tGbjxUPiA9IHRoaXMuX3RyYWNrRm47XG5cbiAgQElucHV0KClcbiAgbGFiZWxGbj86ICh2YWx1ZTogVCkgPT4gc3RyaW5nO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQXR0ckJvb2xlYW4gfSlcbiAgYWxsb3dDcmVhdGU6IGJvb2xlYW47XG5cbiAgZ2V0IGFsbE9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLih0aGlzLmN1c3RvbU9wdGlvbnMgPyB0aGlzLmN1c3RvbU9wdGlvbnMudG9BcnJheSgpIDogW10pLFxuICAgICAgLi4uKHRoaXMuY29udGVudE9wdGlvbnMgPyB0aGlzLmNvbnRlbnRPcHRpb25zLnRvQXJyYXkoKSA6IFtdKSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0IG9wZW5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy50b29sdGlwUmVmLmlzQ3JlYXRlZDtcbiAgfVxuXG4gIGdldCBpbnB1dFJlYWRvbmx5KCkge1xuICAgIHJldHVybiAhKHRoaXMuZmlsdGVyYWJsZSAmJiB0aGlzLm9wZW5lZCk7XG4gIH1cblxuICBnZXQgZmlsdGVyU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJTdHJpbmc7XG4gIH1cblxuICBzZXQgZmlsdGVyU3RyaW5nKHZhbCkge1xuICAgIGlmICh2YWwgIT09IHRoaXMuX2ZpbHRlclN0cmluZykge1xuICAgICAgdGhpcy5fZmlsdGVyU3RyaW5nID0gdmFsO1xuICAgICAgdGhpcy5maWx0ZXJTdHJpbmckJC5uZXh0KHZhbCk7XG4gICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHZhbCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQElucHV0KClcbiAgZGVmYXVsdEZpcnN0T3B0aW9uID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBsYXp5ID0gdHJ1ZTtcblxuICBAT3V0cHV0KClcbiAgZmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHNob3cgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VsZWN0UmVmJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIHNlbGVjdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcFJlZicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCB0b29sdGlwUmVmOiBUb29sdGlwRGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGQoJ29wdGlvbkxpc3RSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHJvdGVjdGVkIG9wdGlvbkxpc3RSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0dGluZ09wdGlvbicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwcm90ZWN0ZWQgaW5wdXR0aW5nT3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD47XG5cbiAgQENvbnRlbnRDaGlsZChPcHRpb25Db250ZW50RGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgb3B0aW9uQ29udGVudD86IE9wdGlvbkNvbnRlbnREaXJlY3RpdmU7XG5cbiAgQFZpZXdDaGlsZHJlbihPcHRpb25Db21wb25lbnQpXG4gIGN1c3RvbU9wdGlvbnM6IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oT3B0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIGNvbnRlbnRPcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFQ+PjtcblxuICBpc1RlbXBsYXRlUmVmID0gaXNUZW1wbGF0ZVJlZjtcbiAgaXNNdWx0aSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBVdGlsaXR5IGZpZWxkIHRvIG1ha2Ugc3VyZSB0aGUgdXNlcnMgYWx3YXlzIHNlZSB0aGUgdmFsdWUgYXMgdHlwZSBhcnJheVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgdmFsdWVzJDogT2JzZXJ2YWJsZTxUW10+O1xuXG4gIGFsbE9wdGlvbnMkOiBPYnNlcnZhYmxlPEFycmF5PE9wdGlvbkNvbXBvbmVudDxUPj4+O1xuXG4gIHByb3RlY3RlZCBmb2N1c2VkT3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD47XG5cbiAgcHJpdmF0ZSBfc2l6ZTogQ29tcG9uZW50U2l6ZSA9IENvbXBvbmVudFNpemUuTWVkaXVtO1xuICBwcml2YXRlIF9maWx0ZXJTdHJpbmcgPSAnJztcblxuICBwcm90ZWN0ZWQgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJvdGVjdGVkIHNpemUkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29tcG9uZW50U2l6ZT4odGhpcy5zaXplKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJTdHJpbmckJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihcbiAgICB0aGlzLmZpbHRlclN0cmluZyxcbiAgKTtcblxuICBzaXplJCA9IHRoaXMuc2l6ZSQkLmFzT2JzZXJ2YWJsZSgpO1xuICBmaWx0ZXJTdHJpbmckID0gdGhpcy5maWx0ZXJTdHJpbmckJC5hc09ic2VydmFibGUoKTtcbiAgaGFzVmlzaWJsZU9wdGlvbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGhhc01hdGNoZWRPcHRpb24kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBjdXN0b21DcmVhdGVkT3B0aW9ucyQ6IE9ic2VydmFibGU8QXJyYXk8U2VsZWN0RmlsdGVyT3B0aW9uPFQ+Pj47XG4gIGNvbnRhaW5lcldpZHRoOiBzdHJpbmc7XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuY3VzdG9tQ3JlYXRlZE9wdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnZhbHVlcyQsXG4gICAgICAoXG4gICAgICAgIHRoaXMuY29udGVudE9wdGlvbnMuY2hhbmdlcyBhcyBPYnNlcnZhYmxlPFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+PlxuICAgICAgKS5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGhpcy5jb250ZW50T3B0aW9ucyksXG4gICAgICAgIHN3aXRjaE1hcCgob3B0aW9uczogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUPj4pID0+XG4gICAgICAgICAgb3B0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IGNvbWJpbmVMYXRlc3Qob3B0aW9ucy5tYXAob3B0aW9uID0+IG9wdGlvbi52YWx1ZSQpKVxuICAgICAgICAgICAgOiBvZihbXSBhcyBUW10pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdmFsdWVzLCBvcHRpb25WYWx1ZXNdKSA9PlxuICAgICAgICB2YWx1ZXMucmVkdWNlPEFycmF5PFNlbGVjdEZpbHRlck9wdGlvbjxUPj4+KChhY2MsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5jbHVkZWQgPSBvcHRpb25WYWx1ZXNcbiAgICAgICAgICAgIC5tYXAodmFsdWUgPT4gdGhpcy50cmFja0ZuKHZhbHVlKSlcbiAgICAgICAgICAgIC5pbmNsdWRlcyh0aGlzLnRyYWNrRm4odmFsdWUpKTtcbiAgICAgICAgICBpZiAoIWluY2x1ZGVkKSB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbCA9XG4gICAgICAgICAgICAgIHRoaXMubGFiZWxGbj8uKHZhbHVlKSB8fCBjb2VyY2VTdHJpbmcodGhpcy50cmFja0ZuKHZhbHVlKSk7XG4gICAgICAgICAgICBpZiAobGFiZWwpIHtcbiAgICAgICAgICAgICAgYWNjLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwgW10pLFxuICAgICAgKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuYWxsT3B0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY3VzdG9tT3B0aW9ucy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuY3VzdG9tT3B0aW9ucykpLFxuICAgICAgdGhpcy5jb250ZW50T3B0aW9ucy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuY29udGVudE9wdGlvbnMpKSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW2N1c3RvbU9wdGlvbnMsIGNvbnRlbnRPcHRpb25zXTogW1xuICAgICAgICAgIFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+LFxuICAgICAgICAgIFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+LFxuICAgICAgICBdKSA9PiBbLi4uY3VzdG9tT3B0aW9ucy50b0FycmF5KCksIC4uLmNvbnRlbnRPcHRpb25zLnRvQXJyYXkoKV0sXG4gICAgICApLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG5cbiAgICAvLyBzdXBwb3J0IGR5bmFtaWMgb3B0aW9ucyBsb2FkaW5nIG9uIGZpbHRlcmluZ1xuICAgIHRoaXMuYWxsT3B0aW9ucyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMub3BlbmVkKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5hdXRvRm9jdXNGaXJzdE9wdGlvbigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuaGFzTWF0Y2hlZE9wdGlvbiQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuYWxsT3B0aW9ucyQucGlwZShcbiAgICAgICAgbWFwKGN1c3RvbU9wdGlvbnMgPT5cbiAgICAgICAgICBjdXN0b21PcHRpb25zLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uICE9PSB0aGlzLmlucHV0dGluZ09wdGlvbiksXG4gICAgICAgICksXG4gICAgICAgIHN3aXRjaE1hcChvcHRpb25zID0+XG4gICAgICAgICAgb3B0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IGNvbWJpbmVMYXRlc3Qob3B0aW9ucy5tYXAob3B0aW9uID0+IG9wdGlvbi52YWx1ZSQpKVxuICAgICAgICAgICAgOiBvZihbXSBhcyBUW10pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIHRoaXMuZmlsdGVyU3RyaW5nJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdmFsdWVzLCBmaWx0ZXJTdHJpbmddKSA9PlxuICAgICAgICB2YWx1ZXMuc29tZSh2YWx1ZSA9PiB0aGlzLnRyYWNrRm4odmFsdWUpID09PSBmaWx0ZXJTdHJpbmcpLFxuICAgICAgKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuXG4gICAgdGhpcy5oYXNWaXNpYmxlT3B0aW9uJCA9IChcbiAgICAgIHRoaXMuY29udGVudE9wdGlvbnMuY2hhbmdlcyBhcyBPYnNlcnZhYmxlPFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+PlxuICAgICkucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmNvbnRlbnRPcHRpb25zKSxcbiAgICAgIHN3aXRjaE1hcCgob3B0aW9uczogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUPj4pID0+XG4gICAgICAgIG9wdGlvbnMubGVuZ3RoID4gMFxuICAgICAgICAgID8gY29tYmluZUxhdGVzdChvcHRpb25zLm1hcChvcHRpb24gPT4gb3B0aW9uLnZpc2libGUkKSlcbiAgICAgICAgICA6IG9mKFtdIGFzIGJvb2xlYW5bXSksXG4gICAgICApLFxuICAgICAgbWFwKHZpc2libGUgPT4gdmlzaWJsZS5zb21lKEJvb2xlYW4pKSxcbiAgICAgIHRhcChzaG93ID0+IHtcbiAgICAgICAgaWYgKHNob3cpIHtcbiAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50b29sdGlwUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgcHVibGlzaFJlZigpLFxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9wdGlvbkNvbnRlbnQ/LmRldGFjaCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgb3Blbk9wdGlvbigpIHtcbiAgICB0aGlzLnRvb2x0aXBSZWYuc2hvdygpO1xuICB9XG5cbiAgY2xvc2VPcHRpb24oKSB7XG4gICAgdGhpcy50b29sdGlwUmVmLmhpZGUoKTtcbiAgfVxuXG4gIG9uU2hvd09wdGlvbnMoKSB7XG4gICAgY29uc3QgZXhlYyA9ICgpID0+IHtcbiAgICAgIHRoaXMuY29udGFpbmVyV2lkdGggPSB0aGlzLnNlbGVjdFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgJ3B4JztcblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy50b29sdGlwUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMuYXV0b0ZvY3VzRmlyc3RPcHRpb24oKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNob3cuZW1pdCgpO1xuICAgIH07XG5cbiAgICBpZiAodGhpcy5vcHRpb25Db250ZW50KSB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbkNvbnRlbnQuYXR0YWNoKCk7XG4gICAgICAgIGV4ZWMoKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGVjKCk7XG4gICAgfVxuICB9XG5cbiAgb25IaWRlT3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5sYXp5KSB7XG4gICAgICB0aGlzLm9wdGlvbkNvbnRlbnQ/LmRldGFjaCgpO1xuICAgIH1cbiAgICB0aGlzLnJlc2V0Rm9jdXNlZE9wdGlvbigpO1xuICAgIHRoaXMuZmlsdGVyU3RyaW5nID0gJyc7XG4gICAgdGhpcy5oaWRlLmVtaXQoKTtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5maWx0ZXJTdHJpbmcgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuYXV0b0ZvY3VzRmlyc3RPcHRpb24oKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6IHtcbiAgICAgICAgdGhpcy5mb2N1c09wdGlvbkRpcignZG93bicpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd1VwJzoge1xuICAgICAgICB0aGlzLmZvY3VzT3B0aW9uRGlyKCd1cCcpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFbnRlcic6IHtcbiAgICAgICAgdGhpcy5zZWxlY3RGb2N1c2VkT3B0aW9uKCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0VzY2FwZSc6IHtcbiAgICAgICAgdGhpcy5lc2NTZWxlY3QoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uT3B0aW9uQ2xpY2sob3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD4pIHtcbiAgICB0aGlzLnJlc2V0Rm9jdXNlZE9wdGlvbihvcHRpb24pO1xuICAgIHRoaXMuc2VsZWN0T3B0aW9uKG9wdGlvbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXV0b0ZvY3VzRmlyc3RPcHRpb24oKSB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdEZpcnN0T3B0aW9uICYmIHRoaXMuYWxsb3dDcmVhdGUgJiYgdGhpcy5maWx0ZXJTdHJpbmcpIHtcbiAgICAgIGNvbnN0IG1hdGNoZWRPcHRpb24gPSB0aGlzLmNvbnRlbnRPcHRpb25zLmZpbmQoXG4gICAgICAgIG9wdGlvbiA9PiB0aGlzLnRyYWNrRm4ob3B0aW9uLnZhbHVlKSA9PT0gdGhpcy5maWx0ZXJTdHJpbmcsXG4gICAgICApO1xuICAgICAgdGhpcy5yZXNldEZvY3VzZWRPcHRpb24obWF0Y2hlZE9wdGlvbiB8fCB0aGlzLmN1c3RvbU9wdGlvbnMuZmlyc3QpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5hbGxPcHRpb25zLmZpbmQoXG4gICAgICBvcHRpb24gPT4gb3B0aW9uLnNlbGVjdGVkICYmIG9wdGlvbi52aXNpYmxlLFxuICAgICk7XG4gICAgaWYgKHRoaXMuZGVmYXVsdEZpcnN0T3B0aW9uKSB7XG4gICAgICB0aGlzLnJlc2V0Rm9jdXNlZE9wdGlvbihcbiAgICAgICAgc2VsZWN0ZWRPcHRpb24gfHxcbiAgICAgICAgICB0aGlzLmFsbE9wdGlvbnMuZmluZChvcHRpb24gPT4gb3B0aW9uLnZpc2libGUgJiYgIW9wdGlvbi5kaXNhYmxlZCksXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRPcHRpb24pIHtcbiAgICAgIHRoaXMuc2Nyb2xsVG9PcHRpb24oc2VsZWN0ZWRPcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBmb2N1c09wdGlvbkRpcihkaXI6ICdkb3duJyB8ICd1cCcpIHtcbiAgICBpZiAoIXRoaXMub3BlbmVkKSB7XG4gICAgICB0aGlzLm9wZW5PcHRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmlzaWJsZU9wdGlvbnMgPSB0aGlzLmFsbE9wdGlvbnMuZmlsdGVyKFxuICAgICAgb3B0aW9uID0+IG9wdGlvbi52aXNpYmxlICYmICFvcHRpb24uZGlzYWJsZWQsXG4gICAgKTtcbiAgICBpZiAodmlzaWJsZU9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0ZXAgPSBkaXIgPT09ICdkb3duJyA/IDEgOiAtMTtcbiAgICBsZXQgaSA9IHZpc2libGVPcHRpb25zLmluZGV4T2YodGhpcy5mb2N1c2VkT3B0aW9uKTtcbiAgICBpID0gaSArIHN0ZXA7XG4gICAgaWYgKGkgPj0gdmlzaWJsZU9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICBpID0gMDtcbiAgICB9IGVsc2UgaWYgKGkgPCAwKSB7XG4gICAgICBpID0gdmlzaWJsZU9wdGlvbnMubGVuZ3RoIC0gMTtcbiAgICB9XG4gICAgdGhpcy5yZXNldEZvY3VzZWRPcHRpb24odmlzaWJsZU9wdGlvbnNbaV0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0Rm9jdXNlZE9wdGlvbihmb2N1c2VkT3B0aW9uPzogT3B0aW9uQ29tcG9uZW50PFQ+KSB7XG4gICAgaWYgKHRoaXMuZm9jdXNlZE9wdGlvbiA9PT0gZm9jdXNlZE9wdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvY3VzZWRPcHRpb24pIHtcbiAgICAgIHRoaXMuZm9jdXNlZE9wdGlvbi5ibHVyKCk7XG4gICAgfVxuXG4gICAgdGhpcy5mb2N1c2VkT3B0aW9uID0gZm9jdXNlZE9wdGlvbjtcblxuICAgIGlmICh0aGlzLmZvY3VzZWRPcHRpb24pIHtcbiAgICAgIHRoaXMuZm9jdXNlZE9wdGlvbi5mb2N1cygpO1xuICAgICAgdGhpcy5zY3JvbGxUb09wdGlvbih0aGlzLmZvY3VzZWRPcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzY3JvbGxUb09wdGlvbihvcHRpb246IE9wdGlvbkNvbXBvbmVudDxUPikge1xuICAgIGlmICh0aGlzLm9wdGlvbkxpc3RSZWYpIHtcbiAgICAgIHNjcm9sbEludG9WaWV3KFxuICAgICAgICB0aGlzLm9wdGlvbkxpc3RSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgb3B0aW9uLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RGb2N1c2VkT3B0aW9uKCkge1xuICAgIGlmICghdGhpcy5vcGVuZWQpIHtcbiAgICAgIHRoaXMub3Blbk9wdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb2N1c2VkT3B0aW9uICYmICF0aGlzLmZvY3VzZWRPcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKHRoaXMuZm9jdXNlZE9wdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGVzY1NlbGVjdCgpIHtcbiAgICB0aGlzLmNsb3NlT3B0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIF90cmFja0ZuPFQ+KHZhbHVlOiBUKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyRm4oXG4gICAgZmlsdGVyU3RyaW5nOiBzdHJpbmcsXG4gICAgeyBsYWJlbCwgdmFsdWUgfTogU2VsZWN0RmlsdGVyT3B0aW9uPFQ+LFxuICApIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHR5cGVvZiBsYWJlbCA9PT0gJ3N0cmluZycgJiYgbGFiZWwpIHx8XG4gICAgICB0aGlzLmxhYmVsRm4/Lih2YWx1ZSkgfHxcbiAgICAgIGNvZXJjZVN0cmluZyh0aGlzLnRyYWNrRm4odmFsdWUpKVxuICAgIClcbiAgICAgID8udG9Mb3dlckNhc2UoKVxuICAgICAgLmluY2x1ZGVzKGZpbHRlclN0cmluZz8udG9Mb3dlckNhc2UoKSA/PyAnJyk7XG4gIH1cblxuICBhYnN0cmFjdCBzZWxlY3RPcHRpb24ob3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VD4pOiB2b2lkO1xuXG4gIGFic3RyYWN0IGNsZWFyVmFsdWUoZXZlbnQ6IEV2ZW50KTogdm9pZDtcbn1cbiJdfQ==
@@ -7989,7 +7989,13 @@ class BaseSelect extends CommonFormControl {
7989
7989
  ]).pipe(map(([values, filterString]) => values.some(value => this.trackFn(value) === filterString)), publishRef());
7990
7990
  this.hasVisibleOption$ = this.contentOptions.changes.pipe(startWith(this.contentOptions), switchMap((options) => options.length > 0
7991
7991
  ? combineLatest(options.map(option => option.visible$))
7992
- : of([])), map(visible => visible.some(Boolean)), publishRef());
7992
+ : of([])), map(visible => visible.some(Boolean)), tap(show => {
7993
+ if (show) {
7994
+ requestAnimationFrame(() => {
7995
+ this.tooltipRef.updatePosition();
7996
+ });
7997
+ }
7998
+ }), publishRef());
7993
7999
  }
7994
8000
  ngOnDestroy() {
7995
8001
  this.optionContent?.detach();
@@ -8006,6 +8012,7 @@ class BaseSelect extends CommonFormControl {
8006
8012
  const exec = () => {
8007
8013
  this.containerWidth = this.selectRef.nativeElement.offsetWidth + 'px';
8008
8014
  requestAnimationFrame(() => {
8015
+ this.tooltipRef.updatePosition();
8009
8016
  this.autoFocusFirstOption();
8010
8017
  });
8011
8018
  this.show.emit();