@ni/nimble-angular 17.1.16 → 17.1.18

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,6 @@
1
- import { ElementRef, Renderer2 } from '@angular/core';
1
+ import { AfterViewChecked, ElementRef, Renderer2 } from '@angular/core';
2
2
  import { ControlValueAccessor } from '@angular/forms';
3
+ import type { ListOption } from '../../public-api';
3
4
  import * as i0 from "@angular/core";
4
5
  /**
5
6
  * @description
@@ -15,7 +16,7 @@ export declare type OptionNotFound = typeof OPTION_NOT_FOUND;
15
16
  * unique. When this isn't the case the behavior is undefined. Additionally, it is expected
16
17
  * that when using 'ngModel' that each list-option bind a value via 'ngValue', and not 'value'.
17
18
  */
18
- export declare class NimbleComboboxControlValueAccessorDirective implements ControlValueAccessor {
19
+ export declare class NimbleComboboxControlValueAccessorDirective implements ControlValueAccessor, AfterViewChecked {
19
20
  private readonly _renderer;
20
21
  private readonly _elementRef;
21
22
  /**
@@ -26,6 +27,7 @@ export declare class NimbleComboboxControlValueAccessorDirective implements Cont
26
27
  set compareWith(fn: (o1: unknown, o2: unknown) => boolean);
27
28
  private readonly _optionMap;
28
29
  private _modelValue;
30
+ private _optionUpdateQueue;
29
31
  private _compareWith;
30
32
  /**
31
33
  * The registered callback function called when a change or input event occurs on the input
@@ -39,6 +41,7 @@ export declare class NimbleComboboxControlValueAccessorDirective implements Cont
39
41
  */
40
42
  private onTouched;
41
43
  constructor(_renderer: Renderer2, _elementRef: ElementRef);
44
+ ngAfterViewChecked(): void;
42
45
  /**
43
46
  * Updates the underlying nimble-combobox value with the expected display string.
44
47
  * @param value The ngValue set on the nimble-combobox
@@ -70,6 +73,7 @@ export declare class NimbleComboboxControlValueAccessorDirective implements Cont
70
73
  * @internal
71
74
  */
72
75
  removeOption(displayValue: string): void;
76
+ queueOptionUpdate(listOption: ListOption, modelValue: unknown): void;
73
77
  private updateDisplayValue;
74
78
  private getValueStringFromValue;
75
79
  /**
@@ -1,4 +1,4 @@
1
- import { ElementRef, Renderer2, AfterViewInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
1
+ import { ElementRef, Renderer2, AfterViewInit, OnDestroy } from '@angular/core';
2
2
  import type { ListOption } from '@ni/nimble-components/dist/esm/list-option';
3
3
  import { BooleanValueOrAttribute } from '@ni/nimble-angular/internal-utilities';
4
4
  import { NimbleComboboxControlValueAccessorDirective } from '../combobox/nimble-combobox-control-value-accessor.directive';
@@ -9,7 +9,6 @@ import * as i0 from "@angular/core";
9
9
  export declare class NimbleComboboxListOptionDirective implements AfterViewInit, OnDestroy {
10
10
  private readonly elementRef;
11
11
  private readonly renderer;
12
- private readonly changeDetector;
13
12
  private readonly combobox?;
14
13
  get disabled(): boolean;
15
14
  set disabled(value: BooleanValueOrAttribute);
@@ -20,10 +19,10 @@ export declare class NimbleComboboxListOptionDirective implements AfterViewInit,
20
19
  set ngValue(value: unknown);
21
20
  private _modelValue;
22
21
  private _currentTextContent;
23
- constructor(elementRef: ElementRef<ListOption>, renderer: Renderer2, changeDetector: ChangeDetectorRef, combobox?: NimbleComboboxControlValueAccessorDirective | undefined);
22
+ constructor(elementRef: ElementRef<ListOption>, renderer: Renderer2, combobox?: NimbleComboboxControlValueAccessorDirective | undefined);
24
23
  ngAfterViewInit(): void;
25
24
  ngOnDestroy(): void;
26
25
  private updateComboboxValue;
27
- static ɵfac: i0.ɵɵFactoryDeclaration<NimbleComboboxListOptionDirective, [null, null, null, { optional: true; host: true; }]>;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<NimbleComboboxListOptionDirective, [null, null, { optional: true; host: true; }]>;
28
27
  static ɵdir: i0.ɵɵDirectiveDeclaration<NimbleComboboxListOptionDirective, "nimble-list-option", never, { "disabled": "disabled"; "ngValue": "ngValue"; }, {}, never, never, false>;
29
28
  }
@@ -19,6 +19,7 @@ export class NimbleComboboxControlValueAccessorDirective {
19
19
  this._renderer = _renderer;
20
20
  this._elementRef = _elementRef;
21
21
  this._optionMap = new Map();
22
+ this._optionUpdateQueue = [];
22
23
  this._compareWith = Object.is;
23
24
  }
24
25
  /**
@@ -32,6 +33,12 @@ export class NimbleComboboxControlValueAccessorDirective {
32
33
  }
33
34
  this._compareWith = fn;
34
35
  }
36
+ ngAfterViewChecked() {
37
+ for (const updateValue of this._optionUpdateQueue) {
38
+ this.addOption(updateValue.listOption.text, updateValue.modelValue);
39
+ }
40
+ this._optionUpdateQueue = [];
41
+ }
35
42
  /**
36
43
  * Updates the underlying nimble-combobox value with the expected display string.
37
44
  * @param value The ngValue set on the nimble-combobox
@@ -81,6 +88,10 @@ export class NimbleComboboxControlValueAccessorDirective {
81
88
  removeOption(displayValue) {
82
89
  this._optionMap.delete(displayValue);
83
90
  }
91
+ queueOptionUpdate(listOption, modelValue) {
92
+ this.removeOption(listOption.text);
93
+ this._optionUpdateQueue.push({ listOption, modelValue });
94
+ }
84
95
  updateDisplayValue() {
85
96
  const valueAsString = this.getValueStringFromValue(this._modelValue);
86
97
  this.setProperty('value', valueAsString ?? '');
@@ -130,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
130
141
  type: HostListener,
131
142
  args: ['blur']
132
143
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLWNvbWJvYm94LWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmkvbmltYmxlLWFuZ3VsYXIvc3JjL2RpcmVjdGl2ZXMvY29tYm9ib3gvbmltYmxlLWNvbWJvYm94LWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUV6RTs7OztFQUlFO0FBQ0YsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQWtCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUduRTs7Ozs7O0dBTUc7QUFVSCxNQUFNLE9BQU8sMkNBQTJDO0lBb0NwRCxZQUFvQyxTQUFvQixFQUFtQixXQUF1QjtRQUE5RCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQW1CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBdEJqRixlQUFVLEdBQXlCLElBQUksR0FBRyxFQUFtQixDQUFDO1FBSXZFLGlCQUFZLEdBQTBDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFrQjZCLENBQUM7SUFuQ3RHOzs7O09BSUc7SUFDSCxJQUNXLFdBQVcsQ0FBQyxFQUF5QztRQUM1RCxJQUFJLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRTtZQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN6RjtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUEwQkQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLEtBQWM7UUFDNUIsSUFBSSxD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c0JBRGhCLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuKiBAZGVzY3JpcHRpb25cbiogVGhpcyBzeW1ib2wgaW5zdGFuY2Ugd2lsbCBiZSByZXR1cm5lZCB3aGVuIHRoZSB2YWx1ZSBpbnB1dCBvZiB0aGUgQ29tYm9ib3ggaXMgc2V0XG4qIHRvIGEgdmFsdWUgbm90IGZvdW5kIGluIHRoZSBzZXQgb2Ygb3B0aW9ucy5cbiovXG5leHBvcnQgY29uc3QgT1BUSU9OX05PVF9GT1VORDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnbm90IGZvdW5kJyk7XG5leHBvcnQgdHlwZSBPcHRpb25Ob3RGb3VuZCA9IHR5cGVvZiBPUFRJT05fTk9UX0ZPVU5EO1xuXG4vKipcbiAqIENvbnRyb2wgVmFsdWUgQWNjZXNzb3IgaW1wbGVtZW50YXRpb24gdG8gdGFyZ2V0IGNvbWJvYm94IGlucHV0cy5cbiAqIEBkZXNjcmlwdGlvblxuICogVGhlIGV4cGVjdGF0aW9uIHdoZW4gYmluZGluZyB2YWx1ZSB2aWEgJ25nTW9kZWwnLCBpcyB0aGF0IHRoZSBjb250ZW50IGluIGVhY2ggbGlzdC1vcHRpb24gYmVcbiAqIHVuaXF1ZS4gV2hlbiB0aGlzIGlzbid0IHRoZSBjYXNlIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuIEFkZGl0aW9uYWxseSwgaXQgaXMgZXhwZWN0ZWRcbiAqIHRoYXQgd2hlbiB1c2luZyAnbmdNb2RlbCcgdGhhdCBlYWNoIGxpc3Qtb3B0aW9uIGJpbmQgYSB2YWx1ZSB2aWEgJ25nVmFsdWUnLCBhbmQgbm90ICd2YWx1ZScuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOlxuICAgICAgJ25pbWJsZS1jb21ib2JveFtmb3JtQ29udHJvbE5hbWVdLG5pbWJsZS1jb21ib2JveFtmb3JtQ29udHJvbF0sbmltYmxlLWNvbWJvYm94W25nTW9kZWxdJyxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOaW1ibGVDb21ib2JveENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlKSxcbiAgICAgICAgbXVsdGk6IHRydWVcbiAgICB9XVxufSlcbmV4cG9ydCBjbGFzcyBOaW1ibGVDb21ib2JveENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRyYWNrcyB0aGUgb3B0aW9uIGNvbXBhcmlzb24gYWxnb3JpdGhtIGZvciB0cmFja2luZyBpZGVudGl0aWVzIHdoZW5cbiAgICAgKiBjaGVja2luZyBmb3IgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgY29tcGFyZVdpdGgoZm46IChvMTogdW5rbm93biwgbzI6IHVua25vd24pID0+IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb21wYXJlV2l0aCBtdXN0IGJlIGEgZnVuY3Rpb24sIGJ1dCByZWNlaXZlZCAke0pTT04uc3RyaW5naWZ5KGZuKX1gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jb21wYXJlV2l0aCA9IGZuO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX29wdGlvbk1hcDogTWFwPHN0cmluZywgdW5rbm93bj4gPSBuZXcgTWFwPHN0cmluZywgdW5rbm93bj4oKTtcblxuICAgIHByaXZhdGUgX21vZGVsVmFsdWU6IHVua25vd247XG5cbiAgICBwcml2YXRlIF9jb21wYXJlV2l0aDogKG8xOiB1bmtub3duLCBvMjogdW5rbm93bikgPT4gYm9vbGVhbiA9IE9iamVjdC5pcztcblxuICAgIC8qKlxuICAgICAqIFRoZSByZWdpc3RlcmVkIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIGEgY2hhbmdlIG9yIGlucHV0IGV2ZW50IG9jY3VycyBvbiB0aGUgaW5wdXRcbiAgICAgKiBlbGVtZW50LlxuICAgICAqIEBub2RvY1xuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQudGFyZ2V0LmNvbnRyb2wudmFsdWVdJ10pXG4gICAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQudGFyZ2V0LnZhbHVlXSddKVxuICAgIHByaXZhdGUgb25DaGFuZ2U6IChfOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgICogVGhlIHJlZ2lzdGVyZWQgY2FsbGJhY2sgZnVuY3Rpb24gY2FsbGVkIHdoZW4gYSBibHVyIGV2ZW50IG9jY3VycyBvbiB0aGUgaW5wdXQgZWxlbWVudC5cbiAgICAgICogQG5vZG9jXG4gICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICAgIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX3JlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSB1bmRlcmx5aW5nIG5pbWJsZS1jb21ib2JveCB2YWx1ZSB3aXRoIHRoZSBleHBlY3RlZCBkaXNwbGF5IHN0cmluZy5cbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5nVmFsdWUgc2V0IG9uIHRoZSBuaW1ibGUtY29tYm9ib3hcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgICAgICB0aGlzLl9tb2RlbFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2wgdmFsdWUgY2hhbmdlcy5cbiAgICAgKiBAbm9kb2NcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSAodmFsdWVTdHJpbmc6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgY29uc3QgbW9kZWxWYWx1ZSA9IHRoaXMuX29wdGlvbk1hcC5oYXModmFsdWVTdHJpbmcpID8gdGhpcy5fb3B0aW9uTWFwLmdldCh2YWx1ZVN0cmluZykgOiBPUFRJT05fTk9UX0ZPVU5EO1xuICAgICAgICAgICAgdGhpcy5fbW9kZWxWYWx1ZSA9IG1vZGVsVmFsdWU7XG4gICAgICAgICAgICBmbihtb2RlbFZhbHVlKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgYSBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgY29udHJvbCBpcyB0b3VjaGVkLlxuICAgICAqIEBub2RvY1xuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIEZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGJ5IHRoZSBmb3JtcyBBUEkgd2hlbiB0aGUgY29udHJvbCBzdGF0dXMgY2hhbmdlcyB0b1xuICAgICAqIG9yIGZyb20gJ0RJU0FCTEVEJy4gRGVwZW5kaW5nIG9uIHRoZSBzdGF0dXMsIGl0IGVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlXG4gICAgICogY29tYm9ib3guXG4gICAgICogQHBhcmFtIGlzRGlzYWJsZWQgVGhlIGRpc2FibGVkIHN0YXR1cyB0byBzZXQgb24gdGhlIGNvbWJvYm94XG4gICAgICovXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFByb3BlcnR5KCdkaXNhYmxlZCcsIGlzRGlzYWJsZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRPcHRpb24oZGlzcGxheVZhbHVlOiBzdHJpbmcsIG1vZGVsVmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb3B0aW9uTWFwLnNldChkaXNwbGF5VmFsdWUsIG1vZGVsVmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVPcHRpb24oZGlzcGxheVZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb3B0aW9uTWFwLmRlbGV0ZShkaXNwbGF5VmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRGlzcGxheVZhbHVlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZUFzU3RyaW5nID0gdGhpcy5nZXRWYWx1ZVN0cmluZ0Zyb21WYWx1ZSh0aGlzLl9tb2RlbFZhbHVlKTtcbiAgICAgICAgdGhpcy5zZXRQcm9wZXJ0eSgndmFsdWUnLCB2YWx1ZUFzU3RyaW5nID8/ICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhbHVlU3RyaW5nRnJvbVZhbHVlKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgZm9yIChjb25zdCBbb3B0aW9uS2V5LCBvcHRpb25WYWx1ZV0gb2YgdGhpcy5fb3B0aW9uTWFwLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2NvbXBhcmVXaXRoKG9wdGlvblZhbHVlLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uS2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGVscGVyIG1ldGhvZCB0aGF0IHNldHMgYSBwcm9wZXJ0eSBvbiBhIHRhcmdldCBlbGVtZW50IHVzaW5nIHRoZSBjdXJyZW50IFJlbmRlcmVyXG4gICAgICogaW1wbGVtZW50YXRpb24uXG4gICAgICogQG5vZG9jXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRQcm9wZXJ0eShrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBrZXksIHZhbHVlKTtcbiAgICB9XG59XG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLWNvbWJvYm94LWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmkvbmltYmxlLWFuZ3VsYXIvc3JjL2RpcmVjdGl2ZXMvY29tYm9ib3gvbmltYmxlLWNvbWJvYm94LWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFjLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHekU7Ozs7RUFJRTtBQUNGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFrQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7QUFHbkU7Ozs7OztHQU1HO0FBVUgsTUFBTSxPQUFPLDJDQUEyQztJQXNDcEQsWUFDcUIsU0FBb0IsRUFDcEIsV0FBdUI7UUFEdkIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTFCM0IsZUFBVSxHQUF5QixJQUFJLEdBQUcsRUFBbUIsQ0FBQztRQUl2RSx1QkFBa0IsR0FBc0QsRUFBRSxDQUFDO1FBRTNFLGlCQUFZLEdBQTBDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFxQnJFLENBQUM7SUF4Q0o7Ozs7T0FJRztJQUNILElBQ1csV0FBVyxDQUFDLEVBQXlDO1FBQzVELElBQUksT0FBTyxFQUFFLEtBQUssVUFBVSxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3pGO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQStCTSxrQkFBa0I7UUFD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LFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQ0FBMkMsQ0FBQztZQUMxRSxLQUFLLEVBQUUsSUFBSTtTQUNkLENBQUM7MkZBRU8sMkNBQTJDO2tCQVR2RCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFDTix3RkFBd0Y7b0JBQzFGLFNBQVMsRUFBRSxDQUFDOzRCQUNSLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRDQUE0QyxDQUFDOzRCQUMxRSxLQUFLLEVBQUUsSUFBSTt5QkFDZCxDQUFDO2lCQUNMO3lIQVFjLFdBQVc7c0JBRHJCLEtBQUs7Z0JBdUJFLFFBQVE7c0JBRmYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQzs7c0JBQ3RELFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsc0JBQXNCLENBQUM7Z0JBUXhDLFNBQVM7c0JBRGhCLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSB7IExpc3RPcHRpb24gfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcblxuLyoqXG4qIEBkZXNjcmlwdGlvblxuKiBUaGlzIHN5bWJvbCBpbnN0YW5jZSB3aWxsIGJlIHJldHVybmVkIHdoZW4gdGhlIHZhbHVlIGlucHV0IG9mIHRoZSBDb21ib2JveCBpcyBzZXRcbiogdG8gYSB2YWx1ZSBub3QgZm91bmQgaW4gdGhlIHNldCBvZiBvcHRpb25zLlxuKi9cbmV4cG9ydCBjb25zdCBPUFRJT05fTk9UX0ZPVU5EOiB1bmlxdWUgc3ltYm9sID0gU3ltYm9sKCdub3QgZm91bmQnKTtcbmV4cG9ydCB0eXBlIE9wdGlvbk5vdEZvdW5kID0gdHlwZW9mIE9QVElPTl9OT1RfRk9VTkQ7XG5cbi8qKlxuICogQ29udHJvbCBWYWx1ZSBBY2Nlc3NvciBpbXBsZW1lbnRhdGlvbiB0byB0YXJnZXQgY29tYm9ib3ggaW5wdXRzLlxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgZXhwZWN0YXRpb24gd2hlbiBiaW5kaW5nIHZhbHVlIHZpYSAnbmdNb2RlbCcsIGlzIHRoYXQgdGhlIGNvbnRlbnQgaW4gZWFjaCBsaXN0LW9wdGlvbiBiZVxuICogdW5pcXVlLiBXaGVuIHRoaXMgaXNuJ3QgdGhlIGNhc2UgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4gQWRkaXRpb25hbGx5LCBpdCBpcyBleHBlY3RlZFxuICogdGhhdCB3aGVuIHVzaW5nICduZ01vZGVsJyB0aGF0IGVhY2ggbGlzdC1vcHRpb24gYmluZCBhIHZhbHVlIHZpYSAnbmdWYWx1ZScsIGFuZCBub3QgJ3ZhbHVlJy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6XG4gICAgICAnbmltYmxlLWNvbWJvYm94W2Zvcm1Db250cm9sTmFtZV0sbmltYmxlLWNvbWJvYm94W2Zvcm1Db250cm9sXSxuaW1ibGUtY29tYm9ib3hbbmdNb2RlbF0nLFxuICAgIHByb3ZpZGVyczogW3tcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5pbWJsZUNvbWJvYm94Q29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUpLFxuICAgICAgICBtdWx0aTogdHJ1ZVxuICAgIH1dXG59KVxuZXhwb3J0IGNsYXNzIE5pbWJsZUNvbWJvYm94Q29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVHJhY2tzIHRoZSBvcHRpb24gY29tcGFyaXNvbiBhbGdvcml0aG0gZm9yIHRyYWNraW5nIGlkZW50aXRpZXMgd2hlblxuICAgICAqIGNoZWNraW5nIGZvciBjaGFuZ2VzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBjb21wYXJlV2l0aChmbjogKG8xOiB1bmtub3duLCBvMjogdW5rbm93bikgPT4gYm9vbGVhbikge1xuICAgICAgICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbXBhcmVXaXRoIG11c3QgYmUgYSBmdW5jdGlvbiwgYnV0IHJlY2VpdmVkICR7SlNPTi5zdHJpbmdpZnkoZm4pfWApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvbXBhcmVXaXRoID0gZm47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9uTWFwOiBNYXA8c3RyaW5nLCB1bmtub3duPiA9IG5ldyBNYXA8c3RyaW5nLCB1bmtub3duPigpO1xuXG4gICAgcHJpdmF0ZSBfbW9kZWxWYWx1ZTogdW5rbm93bjtcblxuICAgIHByaXZhdGUgX29wdGlvblVwZGF0ZVF1ZXVlOiB7IGxpc3RPcHRpb246IExpc3RPcHRpb24sIG1vZGVsVmFsdWU6IHVua25vd24gfVtdID0gW107XG5cbiAgICBwcml2YXRlIF9jb21wYXJlV2l0aDogKG8xOiB1bmtub3duLCBvMjogdW5rbm93bikgPT4gYm9vbGVhbiA9IE9iamVjdC5pcztcblxuICAgIC8qKlxuICAgICAqIFRoZSByZWdpc3RlcmVkIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIGEgY2hhbmdlIG9yIGlucHV0IGV2ZW50IG9jY3VycyBvbiB0aGUgaW5wdXRcbiAgICAgKiBlbGVtZW50LlxuICAgICAqIEBub2RvY1xuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQudGFyZ2V0LmNvbnRyb2wudmFsdWVdJ10pXG4gICAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQudGFyZ2V0LnZhbHVlXSddKVxuICAgIHByaXZhdGUgb25DaGFuZ2U6IChfOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgICogVGhlIHJlZ2lzdGVyZWQgY2FsbGJhY2sgZnVuY3Rpb24gY2FsbGVkIHdoZW4gYSBibHVyIGV2ZW50IG9jY3VycyBvbiB0aGUgaW5wdXQgZWxlbWVudC5cbiAgICAgICogQG5vZG9jXG4gICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICAgIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICAgKSB7fVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCB1cGRhdGVWYWx1ZSBvZiB0aGlzLl9vcHRpb25VcGRhdGVRdWV1ZSkge1xuICAgICAgICAgICAgdGhpcy5hZGRPcHRpb24odXBkYXRlVmFsdWUubGlzdE9wdGlvbi50ZXh0LCB1cGRhdGVWYWx1ZS5tb2RlbFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9vcHRpb25VcGRhdGVRdWV1ZSA9IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIHVuZGVybHlpbmcgbmltYmxlLWNvbWJvYm94IHZhbHVlIHdpdGggdGhlIGV4cGVjdGVkIGRpc3BsYXkgc3RyaW5nLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmdWYWx1ZSBzZXQgb24gdGhlIG5pbWJsZS1jb21ib2JveFxuICAgICAqL1xuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX21vZGVsVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgYSBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgY29udHJvbCB2YWx1ZSBjaGFuZ2VzLlxuICAgICAqIEBub2RvY1xuICAgICAqL1xuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHVua25vd24pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9ICh2YWx1ZVN0cmluZzogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBjb25zdCBtb2RlbFZhbHVlID0gdGhpcy5fb3B0aW9uTWFwLmhhcyh2YWx1ZVN0cmluZykgPyB0aGlzLl9vcHRpb25NYXAuZ2V0KHZhbHVlU3RyaW5nKSA6IE9QVElPTl9OT1RfRk9VTkQ7XG4gICAgICAgICAgICB0aGlzLl9tb2RlbFZhbHVlID0gbW9kZWxWYWx1ZTtcbiAgICAgICAgICAgIGZuKG1vZGVsVmFsdWUpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIGlzIHRvdWNoZWQuXG4gICAgICogQG5vZG9jXG4gICAgICovXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogRnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgYnkgdGhlIGZvcm1zIEFQSSB3aGVuIHRoZSBjb250cm9sIHN0YXR1cyBjaGFuZ2VzIHRvXG4gICAgICogb3IgZnJvbSAnRElTQUJMRUQnLiBEZXBlbmRpbmcgb24gdGhlIHN0YXR1cywgaXQgZW5hYmxlcyBvciBkaXNhYmxlcyB0aGVcbiAgICAgKiBjb21ib2JveC5cbiAgICAgKiBAcGFyYW0gaXNEaXNhYmxlZCBUaGUgZGlzYWJsZWQgc3RhdHVzIHRvIHNldCBvbiB0aGUgY29tYm9ib3hcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0UHJvcGVydHkoJ2Rpc2FibGVkJywgaXNEaXNhYmxlZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGFkZE9wdGlvbihkaXNwbGF5VmFsdWU6IHN0cmluZywgbW9kZWxWYWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgICAgICB0aGlzLl9vcHRpb25NYXAuc2V0KGRpc3BsYXlWYWx1ZSwgbW9kZWxWYWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZU9wdGlvbihkaXNwbGF5VmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vcHRpb25NYXAuZGVsZXRlKGRpc3BsYXlWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHF1ZXVlT3B0aW9uVXBkYXRlKGxpc3RPcHRpb246IExpc3RPcHRpb24sIG1vZGVsVmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVPcHRpb24obGlzdE9wdGlvbi50ZXh0KTtcbiAgICAgICAgdGhpcy5fb3B0aW9uVXBkYXRlUXVldWUucHVzaCh7IGxpc3RPcHRpb24sIG1vZGVsVmFsdWUgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlQXNTdHJpbmcgPSB0aGlzLmdldFZhbHVlU3RyaW5nRnJvbVZhbHVlKHRoaXMuX21vZGVsVmFsdWUpO1xuICAgICAgICB0aGlzLnNldFByb3BlcnR5KCd2YWx1ZScsIHZhbHVlQXNTdHJpbmcgPz8gJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VmFsdWVTdHJpbmdGcm9tVmFsdWUodmFsdWU6IHVua25vd24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBmb3IgKGNvbnN0IFtvcHRpb25LZXksIG9wdGlvblZhbHVlXSBvZiB0aGlzLl9vcHRpb25NYXAuZW50cmllcygpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY29tcGFyZVdpdGgob3B0aW9uVmFsdWUsIHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25LZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIZWxwZXIgbWV0aG9kIHRoYXQgc2V0cyBhIHByb3BlcnR5IG9uIGEgdGFyZ2V0IGVsZW1lbnQgdXNpbmcgdGhlIGN1cnJlbnQgUmVuZGVyZXJcbiAgICAgKiBpbXBsZW1lbnRhdGlvbi5cbiAgICAgKiBAbm9kb2NcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFByb3BlcnR5KGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGtleSwgdmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -7,10 +7,9 @@ import * as i1 from "../combobox/nimble-combobox-control-value-accessor.directiv
7
7
  * Directive to provide Angular integration for the list option when used with a combobox.
8
8
  */
9
9
  export class NimbleComboboxListOptionDirective {
10
- constructor(elementRef, renderer, changeDetector, combobox) {
10
+ constructor(elementRef, renderer, combobox) {
11
11
  this.elementRef = elementRef;
12
12
  this.renderer = renderer;
13
- this.changeDetector = changeDetector;
14
13
  this.combobox = combobox;
15
14
  this._modelValue = undefined;
16
15
  }
@@ -42,20 +41,17 @@ export class NimbleComboboxListOptionDirective {
42
41
  }
43
42
  }
44
43
  updateComboboxValue(value) {
45
- this.combobox.removeOption(this._currentTextContent);
46
- this.changeDetector.detectChanges();
47
- this._currentTextContent = this.elementRef.nativeElement.text;
48
- this.combobox.addOption(this._currentTextContent, value);
44
+ this.combobox.queueOptionUpdate(this.elementRef.nativeElement, value);
49
45
  }
50
46
  }
51
- NimbleComboboxListOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleComboboxListOptionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: NimbleComboboxControlValueAccessorDirective, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
47
+ NimbleComboboxListOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleComboboxListOptionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: NimbleComboboxControlValueAccessorDirective, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
52
48
  NimbleComboboxListOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NimbleComboboxListOptionDirective, selector: "nimble-list-option", inputs: { disabled: "disabled", ngValue: "ngValue" }, ngImport: i0 });
53
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleComboboxListOptionDirective, decorators: [{
54
50
  type: Directive,
55
51
  args: [{
56
52
  selector: 'nimble-list-option'
57
53
  }]
58
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.NimbleComboboxControlValueAccessorDirective, decorators: [{
54
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.NimbleComboboxControlValueAccessorDirective, decorators: [{
59
55
  type: Inject,
60
56
  args: [NimbleComboboxControlValueAccessorDirective]
61
57
  }, {
@@ -67,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
67
63
  }], ngValue: [{
68
64
  type: Input
69
65
  }] } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLWNvbWJvYm94LWxpc3Qtb3B0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pL25pbWJsZS1hbmd1bGFyL3NyYy9kaXJlY3RpdmVzL2xpc3Qtb3B0aW9uL25pbWJsZS1jb21ib2JveC1saXN0LW9wdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQTBELE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBMkIsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7O0FBRTNIOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlDQUFpQztJQXdCMUMsWUFDcUIsVUFBa0MsRUFDbEMsUUFBbUIsRUFDbkIsY0FBaUMsRUFDd0MsUUFBc0Q7UUFIL0gsZUFBVSxHQUFWLFVBQVUsQ0FBd0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDd0MsYUFBUSxHQUFSLFFBQVEsQ0FBOEM7UUFQNUksZ0JBQVcsR0FBWSxTQUFTLENBQUM7SUFRckMsQ0FBQztJQTVCTCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBb0IsUUFBUSxDQUFDLEtBQThCO1FBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNXLE9BQU8sQ0FBQyxLQUFjO1FBQzdCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztJQUNMLENBQUM7SUFZTSxlQUFlO1FBQ2xCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN2RTtJQUNMLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDeEQ7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBYztRQUN0QyxJQUFJLENBQUMsUUFBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7OzhIQWpEUSxpQ0FBaUMsc0dBNEI5QiwyQ0FBMkM7a0hBNUI5QyxpQ0FBaUM7MkZBQWpDLGlDQUFpQztrQkFIN0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2lCQUNqQzs7MEJBNkJRLE1BQU07MkJBQUMsMkNBQTJDOzswQkFBRyxRQUFROzswQkFBSSxJQUFJOzRDQXZCdEQsUUFBUTtzQkFBM0IsS0FBSztnQkFTSyxPQUFPO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0LCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IExpc3RPcHRpb24gfSBmcm9tICdAbmkvbmltYmxlLWNvbXBvbmVudHMvZGlzdC9lc20vbGlzdC1vcHRpb24nO1xuaW1wb3J0IHsgQm9vbGVhblZhbHVlT3JBdHRyaWJ1dGUsIHRvQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQG5pL25pbWJsZS1hbmd1bGFyL2ludGVybmFsLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBOaW1ibGVDb21ib2JveENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnLi4vY29tYm9ib3gvbmltYmxlLWNvbWJvYm94LWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdG8gcHJvdmlkZSBBbmd1bGFyIGludGVncmF0aW9uIGZvciB0aGUgbGlzdCBvcHRpb24gd2hlbiB1c2VkIHdpdGggYSBjb21ib2JveC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICduaW1ibGUtbGlzdC1vcHRpb24nXG59KVxuZXhwb3J0IGNsYXNzIE5pbWJsZUNvbWJvYm94TGlzdE9wdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc2FibGVkO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IEJvb2xlYW5WYWx1ZU9yQXR0cmlidXRlKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsIHRvQm9vbGVhblByb3BlcnR5KHZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uXG4gICAgICogVHJhY2tzIHRoZSB2YWx1ZSBib3VuZCB0byB0aGUgb3B0aW9uIGVsZW1lbnQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IG5nVmFsdWUodmFsdWU6IHVua25vd24pIHtcbiAgICAgICAgaWYgKHRoaXMuY29tYm9ib3gpIHtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29tYm9ib3hWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9tb2RlbFZhbHVlOiB1bmtub3duID0gdW5kZWZpbmVkO1xuICAgIHByaXZhdGUgX2N1cnJlbnRUZXh0Q29udGVudDogc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8TGlzdE9wdGlvbj4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoTmltYmxlQ29tYm9ib3hDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSkgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIHJlYWRvbmx5IGNvbWJvYm94PzogTmltYmxlQ29tYm9ib3hDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZVxuICAgICkgeyB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb21ib2JveCkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudFRleHRDb250ZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dDtcbiAgICAgICAgICAgIHRoaXMuY29tYm9ib3guYWRkT3B0aW9uKHRoaXMuX2N1cnJlbnRUZXh0Q29udGVudCwgdGhpcy5fbW9kZWxWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbWJvYm94KSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJvYm94LnJlbW92ZU9wdGlvbih0aGlzLl9jdXJyZW50VGV4dENvbnRlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDb21ib2JveFZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tYm9ib3ghLnJlbW92ZU9wdGlvbih0aGlzLl9jdXJyZW50VGV4dENvbnRlbnQpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fY3VycmVudFRleHRDb250ZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dDtcbiAgICAgICAgdGhpcy5jb21ib2JveCEuYWRkT3B0aW9uKHRoaXMuX2N1cnJlbnRUZXh0Q29udGVudCwgdmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLWNvbWJvYm94LWxpc3Qtb3B0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pL25pbWJsZS1hbmd1bGFyL3NyYy9kaXJlY3RpdmVzL2xpc3Qtb3B0aW9uL25pbWJsZS1jb21ib2JveC1saXN0LW9wdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBRTFILE9BQU8sRUFBMkIsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7O0FBRTNIOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlDQUFpQztJQXdCMUMsWUFDcUIsVUFBa0MsRUFDbEMsUUFBbUIsRUFDc0QsUUFBc0Q7UUFGL0gsZUFBVSxHQUFWLFVBQVUsQ0FBd0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNzRCxhQUFRLEdBQVIsUUFBUSxDQUE4QztRQU41SSxnQkFBVyxHQUFZLFNBQVMsQ0FBQztJQU9yQyxDQUFDO0lBM0JMLElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFvQixRQUFRLENBQUMsS0FBOEI7UUFDdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ1csT0FBTyxDQUFDLEtBQWM7UUFDN0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQVdNLGVBQWU7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN4RDtJQUNMLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUFjO1FBQ3RDLElBQUksQ0FBQyxRQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0UsQ0FBQzs7OEhBN0NRLGlDQUFpQyxxRUEyQjlCLDJDQUEyQztrSEEzQjlDLGlDQUFpQzsyRkFBakMsaUNBQWlDO2tCQUg3QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7aUJBQ2pDOzswQkE0QlEsTUFBTTsyQkFBQywyQ0FBMkM7OzBCQUFHLFFBQVE7OzBCQUFJLElBQUk7NENBdEJ0RCxRQUFRO3NCQUEzQixLQUFLO2dCQVNLLE9BQU87c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3QsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBMaXN0T3B0aW9uIH0gZnJvbSAnQG5pL25pbWJsZS1jb21wb25lbnRzL2Rpc3QvZXNtL2xpc3Qtb3B0aW9uJztcbmltcG9ydCB7IEJvb2xlYW5WYWx1ZU9yQXR0cmlidXRlLCB0b0Jvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0BuaS9uaW1ibGUtYW5ndWxhci9pbnRlcm5hbC11dGlsaXRpZXMnO1xuaW1wb3J0IHsgTmltYmxlQ29tYm9ib3hDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJy4uL2NvbWJvYm94L25pbWJsZS1jb21ib2JveC1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHByb3ZpZGUgQW5ndWxhciBpbnRlZ3JhdGlvbiBmb3IgdGhlIGxpc3Qgb3B0aW9uIHdoZW4gdXNlZCB3aXRoIGEgY29tYm9ib3guXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnbmltYmxlLWxpc3Qtb3B0aW9uJ1xufSlcbmV4cG9ydCBjbGFzcyBOaW1ibGVDb21ib2JveExpc3RPcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuVmFsdWVPckF0dHJpYnV0ZSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCB0b0Jvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFRyYWNrcyB0aGUgdmFsdWUgYm91bmQgdG8gdGhlIG9wdGlvbiBlbGVtZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBuZ1ZhbHVlKHZhbHVlOiB1bmtub3duKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbWJvYm94KSB7XG4gICAgICAgICAgICB0aGlzLl9tb2RlbFZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbWJvYm94VmFsdWUodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbW9kZWxWYWx1ZTogdW5rbm93biA9IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIF9jdXJyZW50VGV4dENvbnRlbnQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPExpc3RPcHRpb24+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBJbmplY3QoTmltYmxlQ29tYm9ib3hDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSkgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIHJlYWRvbmx5IGNvbWJvYm94PzogTmltYmxlQ29tYm9ib3hDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZVxuICAgICkgeyB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb21ib2JveCkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudFRleHRDb250ZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dDtcbiAgICAgICAgICAgIHRoaXMuY29tYm9ib3guYWRkT3B0aW9uKHRoaXMuX2N1cnJlbnRUZXh0Q29udGVudCwgdGhpcy5fbW9kZWxWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbWJvYm94KSB7XG4gICAgICAgICAgICB0aGlzLmNvbWJvYm94LnJlbW92ZU9wdGlvbih0aGlzLl9jdXJyZW50VGV4dENvbnRlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDb21ib2JveFZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tYm9ib3ghLnF1ZXVlT3B0aW9uVXBkYXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB2YWx1ZSk7XG4gICAgfVxufVxuIl19
@@ -1242,6 +1242,7 @@ class NimbleComboboxControlValueAccessorDirective {
1242
1242
  this._renderer = _renderer;
1243
1243
  this._elementRef = _elementRef;
1244
1244
  this._optionMap = new Map();
1245
+ this._optionUpdateQueue = [];
1245
1246
  this._compareWith = Object.is;
1246
1247
  }
1247
1248
  /**
@@ -1255,6 +1256,12 @@ class NimbleComboboxControlValueAccessorDirective {
1255
1256
  }
1256
1257
  this._compareWith = fn;
1257
1258
  }
1259
+ ngAfterViewChecked() {
1260
+ for (const updateValue of this._optionUpdateQueue) {
1261
+ this.addOption(updateValue.listOption.text, updateValue.modelValue);
1262
+ }
1263
+ this._optionUpdateQueue = [];
1264
+ }
1258
1265
  /**
1259
1266
  * Updates the underlying nimble-combobox value with the expected display string.
1260
1267
  * @param value The ngValue set on the nimble-combobox
@@ -1304,6 +1311,10 @@ class NimbleComboboxControlValueAccessorDirective {
1304
1311
  removeOption(displayValue) {
1305
1312
  this._optionMap.delete(displayValue);
1306
1313
  }
1314
+ queueOptionUpdate(listOption, modelValue) {
1315
+ this.removeOption(listOption.text);
1316
+ this._optionUpdateQueue.push({ listOption, modelValue });
1317
+ }
1307
1318
  updateDisplayValue() {
1308
1319
  const valueAsString = this.getValueStringFromValue(this._modelValue);
1309
1320
  this.setProperty('value', valueAsString !== null && valueAsString !== void 0 ? valueAsString : '');
@@ -6497,10 +6508,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6497
6508
  * Directive to provide Angular integration for the list option when used with a combobox.
6498
6509
  */
6499
6510
  class NimbleComboboxListOptionDirective {
6500
- constructor(elementRef, renderer, changeDetector, combobox) {
6511
+ constructor(elementRef, renderer, combobox) {
6501
6512
  this.elementRef = elementRef;
6502
6513
  this.renderer = renderer;
6503
- this.changeDetector = changeDetector;
6504
6514
  this.combobox = combobox;
6505
6515
  this._modelValue = undefined;
6506
6516
  }
@@ -6532,13 +6542,10 @@ class NimbleComboboxListOptionDirective {
6532
6542
  }
6533
6543
  }
6534
6544
  updateComboboxValue(value) {
6535
- this.combobox.removeOption(this._currentTextContent);
6536
- this.changeDetector.detectChanges();
6537
- this._currentTextContent = this.elementRef.nativeElement.text;
6538
- this.combobox.addOption(this._currentTextContent, value);
6545
+ this.combobox.queueOptionUpdate(this.elementRef.nativeElement, value);
6539
6546
  }
6540
6547
  }
6541
- NimbleComboboxListOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleComboboxListOptionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: NimbleComboboxControlValueAccessorDirective, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
6548
+ NimbleComboboxListOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleComboboxListOptionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: NimbleComboboxControlValueAccessorDirective, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
6542
6549
  NimbleComboboxListOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NimbleComboboxListOptionDirective, selector: "nimble-list-option", inputs: { disabled: "disabled", ngValue: "ngValue" }, ngImport: i0 });
6543
6550
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NimbleComboboxListOptionDirective, decorators: [{
6544
6551
  type: Directive,
@@ -6546,7 +6553,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
6546
6553
  selector: 'nimble-list-option'
6547
6554
  }]
6548
6555
  }], ctorParameters: function () {
6549
- return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: NimbleComboboxControlValueAccessorDirective, decorators: [{
6556
+ return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: NimbleComboboxControlValueAccessorDirective, decorators: [{
6550
6557
  type: Inject,
6551
6558
  args: [NimbleComboboxControlValueAccessorDirective]
6552
6559
  }, {