igniteui-angular 16.1.28 → 16.1.30

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.
@@ -55,6 +55,7 @@ export class IgxSliderThumbComponent {
55
55
  this._dir = _dir;
56
56
  this.thumbValueChange = new EventEmitter();
57
57
  this.thumbChange = new EventEmitter();
58
+ this.thumbBlur = new EventEmitter();
58
59
  this.hoverChange = new EventEmitter();
59
60
  this.tabindex = 0;
60
61
  this.zIndex = 0;
@@ -97,6 +98,7 @@ export class IgxSliderThumbComponent {
97
98
  this.isActive = false;
98
99
  this.zIndex = 0;
99
100
  this.focused = false;
101
+ this.thumbBlur.emit();
100
102
  }
101
103
  onFocusListener() {
102
104
  this.isActive = true;
@@ -159,7 +161,7 @@ export class IgxSliderThumbComponent {
159
161
  }
160
162
  }
161
163
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxSliderThumbComponent, deps: [{ token: i0.ElementRef }, { token: i1.IgxDirectionality }], target: i0.ɵɵFactoryTarget.Component }); }
162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxSliderThumbComponent, isStandalone: true, selector: "igx-thumb", inputs: { value: "value", continuous: "continuous", thumbLabelVisibilityDuration: "thumbLabelVisibilityDuration", disabled: "disabled", onPan: "onPan", stepDistance: "stepDistance", step: "step", templateRef: "templateRef", context: "context", type: "type", deactiveState: "deactiveState" }, outputs: { thumbValueChange: "thumbValueChange", thumbChange: "thumbChange", hoverChange: "hoverChange" }, host: { listeners: { "pointerenter": "onPointerEnter()", "pointerleave": "onPointerLeave()", "keyup": "onKeyUp($event)", "keydown": "onKeyDown($event)", "blur": "onBlur()", "focus": "onFocusListener()" }, properties: { "attr.tabindex": "this.tabindex", "attr.z-index": "this.zIndex", "class.igx-slider-thumb-to--focused": "this.focused", "class.igx-slider-thumb-from": "this.thumbFromClass", "class.igx-slider-thumb-to": "this.thumbToClass", "class.igx-slider-thumb-from--active": "this.thumbFromActiveClass", "class.igx-slider-thumb-to--active": "this.thumbToActiveClass", "class.igx-slider-thumb-from--disabled": "this.thumbFromDisabledClass", "class.igx-slider-thumb-to--disabled": "this.thumbToDisabledClass", "class.igx-slider-thumb-from--pressed": "this.thumbFromPressedClass", "class.igx-slider-thumb-to--pressed": "this.thumbToPressedClass" } }, ngImport: i0, template: "<div [ngClass]=\"getDotClass\"></div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
164
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxSliderThumbComponent, isStandalone: true, selector: "igx-thumb", inputs: { value: "value", continuous: "continuous", thumbLabelVisibilityDuration: "thumbLabelVisibilityDuration", disabled: "disabled", onPan: "onPan", stepDistance: "stepDistance", step: "step", templateRef: "templateRef", context: "context", type: "type", deactiveState: "deactiveState" }, outputs: { thumbValueChange: "thumbValueChange", thumbChange: "thumbChange", thumbBlur: "thumbBlur", hoverChange: "hoverChange" }, host: { listeners: { "pointerenter": "onPointerEnter()", "pointerleave": "onPointerLeave()", "keyup": "onKeyUp($event)", "keydown": "onKeyDown($event)", "blur": "onBlur()", "focus": "onFocusListener()" }, properties: { "attr.tabindex": "this.tabindex", "attr.z-index": "this.zIndex", "class.igx-slider-thumb-to--focused": "this.focused", "class.igx-slider-thumb-from": "this.thumbFromClass", "class.igx-slider-thumb-to": "this.thumbToClass", "class.igx-slider-thumb-from--active": "this.thumbFromActiveClass", "class.igx-slider-thumb-to--active": "this.thumbToActiveClass", "class.igx-slider-thumb-from--disabled": "this.thumbFromDisabledClass", "class.igx-slider-thumb-to--disabled": "this.thumbToDisabledClass", "class.igx-slider-thumb-from--pressed": "this.thumbFromPressedClass", "class.igx-slider-thumb-to--pressed": "this.thumbToPressedClass" } }, ngImport: i0, template: "<div [ngClass]=\"getDotClass\"></div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
163
165
  }
164
166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxSliderThumbComponent, decorators: [{
165
167
  type: Component,
@@ -190,6 +192,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
190
192
  type: Output
191
193
  }], thumbChange: [{
192
194
  type: Output
195
+ }], thumbBlur: [{
196
+ type: Output
193
197
  }], hoverChange: [{
194
198
  type: Output
195
199
  }], tabindex: [{
@@ -244,4 +248,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
244
248
  type: HostListener,
245
249
  args: ['focus']
246
250
  }] } });
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWItc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zbGlkZXIvdGh1bWIvdGh1bWItc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zbGlkZXIvdGh1bWIvdGh1bWItc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFlBQVksRUFFWixXQUFXLEVBQ1gsTUFBTSxFQUNOLFlBQVksRUFJZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFMUM7O0dBRUc7QUFPSCxNQUFNLE9BQU8sdUJBQXVCO0lBb0RoQyxJQUNXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQ1csWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFDVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFDVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFDVyxzQkFBc0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFDVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFDVyxxQkFBcUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQy9FLENBQUM7SUFFRCxJQUNXLG1CQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDN0UsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPO1lBQ0gsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsSUFBSTtZQUM3RCwwQkFBMEIsRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxFQUFFO1NBQzVELENBQUM7SUFDTixDQUFDO0lBSUQsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBTUQsSUFBWSxjQUFjO1FBQ3RCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNuRSxNQUFNLFdBQVcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2RSxPQUFPLGVBQWUsQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUFvQixXQUF1QixFQUFVLElBQXVCO1FBQXhELGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFwRnJFLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHOUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBR3RDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUcxQyxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBR2IsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUdYLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFpRGhCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFVaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBUXFDLENBQUM7SUFHMUUsY0FBYztRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBR00sY0FBYztRQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBR00sT0FBTyxDQUFDLEtBQW9CO1FBQy9CLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBR00sU0FBUyxDQUFDLEtBQW9CO1FBQ2pDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLE9BQU87U0FDVjtRQUVELElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZFLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDNUIsU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0M7YUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3BDLFNBQVMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMxQzthQUFNO1lBQ0gsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFHTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUdNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNYLElBQUksQ0FBQyxLQUFLO2FBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FDaEMsQ0FBQztJQUNWLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVc7UUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNJLG1CQUFtQjtRQUN0QixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksbUJBQW1CO1FBQ3RCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBYztRQUNuQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLFdBQVcsS0FBSyxDQUFDLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzQztJQUNMLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxNQUFjO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0YsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUVqRCxxRUFBcUU7UUFDckUsK0JBQStCO1FBQy9CLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxjQUFjLEdBQUcsa0JBQWtCLEVBQUU7WUFDckMsT0FBTyxDQUFDLENBQUM7U0FDWjtRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxhQUFhLENBQUMsTUFBTSxFQUFFLFFBQVE7UUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JELENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxPQUFnQjtRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztRQUUxQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUMxQjthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7U0FDNUI7SUFFTCxDQUFDOzhHQTlPUSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwweUNDM0JwQyx5Q0FDQSw0Q0R3QmMsT0FBTzs7MkZBRVIsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNJLFdBQVcsY0FFVCxJQUFJLFdBQ1AsQ0FBQyxPQUFPLENBQUM7aUlBSVgsS0FBSztzQkFEWCxLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUMsNEJBQTRCO3NCQURsQyxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixNQUFNO2dCQUlBLFdBQVc7c0JBRGpCLE1BQU07Z0JBSUEsV0FBVztzQkFEakIsTUFBTTtnQkFJQSxRQUFRO3NCQURkLFdBQVc7dUJBQUMsZUFBZTtnQkFJckIsTUFBTTtzQkFEWixXQUFXO3VCQUFDLGNBQWM7Z0JBSXBCLE9BQU87c0JBRGIsV0FBVzt1QkFBQyxvQ0FBb0M7Z0JBSXRDLGNBQWM7c0JBRHhCLFdBQVc7dUJBQUMsNkJBQTZCO2dCQU0vQixZQUFZO3NCQUR0QixXQUFXO3VCQUFDLDJCQUEyQjtnQkFNN0Isb0JBQW9CO3NCQUQ5QixXQUFXO3VCQUFDLHFDQUFxQztnQkFNdkMsa0JBQWtCO3NCQUQ1QixXQUFXO3VCQUFDLG1DQUFtQztnQkFNckMsc0JBQXNCO3NCQURoQyxXQUFXO3VCQUFDLHVDQUF1QztnQkFNekMsb0JBQW9CO3NCQUQ5QixXQUFXO3VCQUFDLHFDQUFxQztnQkFNdkMscUJBQXFCO3NCQUQvQixXQUFXO3VCQUFDLHNDQUFzQztnQkFNeEMsbUJBQW1CO3NCQUQ3QixXQUFXO3VCQUFDLG9DQUFvQztnQkFtQzFDLGNBQWM7c0JBRHBCLFlBQVk7dUJBQUMsY0FBYztnQkFPckIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxjQUFjO2dCQU1yQixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU8xQixTQUFTO3NCQURmLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXFCNUIsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU07Z0JBUWIsZUFBZTtzQkFEckIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2xpZGVySGFuZGxlIH0gZnJvbSAnLi4vc2xpZGVyLmNvbW1vbic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJZ3hEaXJlY3Rpb25hbGl0eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpcmVjdGlvbi9kaXJlY3Rpb25hbGl0eSc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LXRodW1iJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3RodW1iLXNsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzc11cbn0pXG5leHBvcnQgY2xhc3MgSWd4U2xpZGVyVGh1bWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWU6IGFueTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRpbnVvdXM6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0aHVtYkxhYmVsVmlzaWJpbGl0eUR1cmF0aW9uO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvblBhbjogU3ViamVjdDxudW1iZXI+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3RlcERpc3RhbmNlOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdGVwOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRleHQ6IGFueTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHR5cGU6IFNsaWRlckhhbmRsZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRlYWN0aXZlU3RhdGU6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdGh1bWJWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHRodW1iQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgaG92ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIHB1YmxpYyB0YWJpbmRleCA9IDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuei1pbmRleCcpXG4gICAgcHVibGljIHpJbmRleCA9IDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItdG8tLWZvY3VzZWQnKVxuICAgIHB1YmxpYyBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItZnJvbScpXG4gICAgcHVibGljIGdldCB0aHVtYkZyb21DbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU2xpZGVySGFuZGxlLkZST007XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtc2xpZGVyLXRodW1iLXRvJylcbiAgICBwdWJsaWMgZ2V0IHRodW1iVG9DbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU2xpZGVySGFuZGxlLlRPO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi1mcm9tLS1hY3RpdmUnKVxuICAgIHB1YmxpYyBnZXQgdGh1bWJGcm9tQWN0aXZlQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5GUk9NICYmIHRoaXMuX2lzQWN0aXZlO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi10by0tYWN0aXZlJylcbiAgICBwdWJsaWMgZ2V0IHRodW1iVG9BY3RpdmVDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU2xpZGVySGFuZGxlLlRPICYmIHRoaXMuX2lzQWN0aXZlO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi1mcm9tLS1kaXNhYmxlZCcpXG4gICAgcHVibGljIGdldCB0aHVtYkZyb21EaXNhYmxlZENsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBTbGlkZXJIYW5kbGUuRlJPTSAmJiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi10by0tZGlzYWJsZWQnKVxuICAgIHB1YmxpYyBnZXQgdGh1bWJUb0Rpc2FibGVkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5UTyAmJiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi1mcm9tLS1wcmVzc2VkJylcbiAgICBwdWJsaWMgZ2V0IHRodW1iRnJvbVByZXNzZWRDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU2xpZGVySGFuZGxlLkZST00gJiYgdGhpcy5pc0FjdGl2ZSAmJiB0aGlzLl9pc1ByZXNzZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtc2xpZGVyLXRodW1iLXRvLS1wcmVzc2VkJylcbiAgICBwdWJsaWMgZ2V0IHRodW1iVG9QcmVzc2VkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5UTyAmJiB0aGlzLmlzQWN0aXZlICYmIHRoaXMuX2lzUHJlc3NlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGdldERvdENsYXNzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ2lneC1zbGlkZXItdGh1bWItZnJvbV9fZG90JzogdGhpcy50eXBlID09PSBTbGlkZXJIYW5kbGUuRlJPTSxcbiAgICAgICAgICAgICdpZ3gtc2xpZGVyLXRodW1iLXRvX19kb3QnOiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5UT1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGVzdHJveSgpOiBTdWJqZWN0PGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rlc3Ryb3kkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2lzQWN0aXZlID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNQcmVzc2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgcHJpdmF0ZSBnZXQgdGh1bWJQb3NpdGlvblgoKSB7XG4gICAgICAgIGNvbnN0IHRodW1iQm91bmRlcmllcyA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdGh1bWJDZW50ZXIgPSAodGh1bWJCb3VuZGVyaWVzLnJpZ2h0IC0gdGh1bWJCb3VuZGVyaWVzLmxlZnQpIC8gMjtcbiAgICAgICAgcmV0dXJuIHRodW1iQm91bmRlcmllcy5sZWZ0ICsgdGh1bWJDZW50ZXI7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBfZGlyOiBJZ3hEaXJlY3Rpb25hbGl0eSkgeyB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZW50ZXInKVxuICAgIHB1YmxpYyBvblBvaW50ZXJFbnRlcigpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaG92ZXJDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVybGVhdmUnKVxuICAgIHB1YmxpYyBvblBvaW50ZXJMZWF2ZSgpIHtcbiAgICAgICAgdGhpcy5ob3ZlckNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGluY3JlbWVudCA9IDA7XG4gICAgICAgIGNvbnN0IHN0ZXBXaXRoRGlyID0gKHJ0bDogYm9vbGVhbikgPT4gcnRsID8gdGhpcy5zdGVwICogLTEgOiB0aGlzLnN0ZXA7XG4gICAgICAgIGlmIChldmVudC5rZXkuZW5kc1dpdGgoJ0xlZnQnKSkge1xuICAgICAgICAgICAgaW5jcmVtZW50ID0gc3RlcFdpdGhEaXIoIXRoaXMuX2Rpci5ydGwpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleS5lbmRzV2l0aCgnUmlnaHQnKSkge1xuICAgICAgICAgICAgaW5jcmVtZW50ID0gc3RlcFdpdGhEaXIodGhpcy5fZGlyLnJ0bCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRodW1iQ2hhbmdlLmVtaXQoKTtcbiAgICAgICAgdGhpcy50aHVtYlZhbHVlQ2hhbmdlLmVtaXQoaW5jcmVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgICBwdWJsaWMgb25CbHVyKCkge1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuekluZGV4ID0gMDtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHB1YmxpYyBvbkZvY3VzTGlzdGVuZXIoKSB7XG4gICAgICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLnpJbmRleCA9IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5vblBhblxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUobW91c2VYID0+XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUaHVtYlZhbHVlKG1vdXNlWClcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRodW1iIGxhYmVsIGFuZCByaXBwbGUuXG4gICAgICovXG4gICAgcHVibGljIHNob3dUaHVtYkluZGljYXRvcnMoKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlVGh1bWJJbmRpY2F0b3JzKHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGh1bWIgbGFiZWwgYW5kIHJpcHBsZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGlkZVRodW1iSW5kaWNhdG9ycygpIHtcbiAgICAgICAgdGhpcy50b2dnbGVUaHVtYkluZGljYXRvcnMoZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVGh1bWJWYWx1ZShtb3VzZVg6IG51bWJlcikge1xuICAgICAgICBjb25zdCB1cGRhdGVWYWx1ZSA9IHRoaXMuY2FsY3VsYXRlVHJhY2tVcGRhdGUobW91c2VYKTtcbiAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmUgJiYgdXBkYXRlVmFsdWUgIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMudGh1bWJWYWx1ZUNoYW5nZS5lbWl0KHVwZGF0ZVZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlVHJhY2tVcGRhdGUobW91c2VYOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBzY2FsZVggPSB0aGlzLl9kaXIucnRsID8gdGhpcy50aHVtYlBvc2l0aW9uWCAtIG1vdXNlWCA6IG1vdXNlWCAtIHRoaXMudGh1bWJQb3NpdGlvblg7XG4gICAgICAgIGNvbnN0IHN0ZXBEaXN0YW5jZUNlbnRlciA9IHRoaXMuc3RlcERpc3RhbmNlIC8gMjtcblxuICAgICAgICAvLyBJZiB0aGUgdGh1bWIgc2NhbGUgcmFuZ2UgKHNsaWRlciB1cGRhdGUpIGlzIGxlc3MgdGjDoG4gYSBoYWxmIHN0ZXAsXG4gICAgICAgIC8vIHRoZSBwb3NpdGlvbiBzdGF5cyB0aGUgc2FtZS5cbiAgICAgICAgY29uc3Qgc2NhbGVYUG9zaXRpdmUgPSBNYXRoLmFicyhzY2FsZVgpO1xuICAgICAgICBpZiAoc2NhbGVYUG9zaXRpdmUgPCBzdGVwRGlzdGFuY2VDZW50ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcFRvUHJvY2VlZChzY2FsZVgsIHRoaXMuc3RlcERpc3RhbmNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0ZXBUb1Byb2NlZWQoc2NhbGVYLCBzdGVwRGlzdCkge1xuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChzY2FsZVggLyBzdGVwRGlzdCkgKiB0aGlzLnN0ZXA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGVUaHVtYkluZGljYXRvcnModmlzaWJsZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc1ByZXNzZWQgPSB2aXNpYmxlO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRpbnVvdXMgfHwgdGhpcy5kZWFjdGl2ZVN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faXNBY3RpdmUgPSB2aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImdldERvdENsYXNzXCI+PC9kaXY+XG4iXX0=
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWItc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zbGlkZXIvdGh1bWIvdGh1bWItc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zbGlkZXIvdGh1bWIvdGh1bWItc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFlBQVksRUFFWixXQUFXLEVBQ1gsTUFBTSxFQUNOLFlBQVksRUFJZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFMUM7O0dBRUc7QUFPSCxNQUFNLE9BQU8sdUJBQXVCO0lBdURoQyxJQUNXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQ1csWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFDVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFDVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxFQUFF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b0M7Z0JBSXRDLGNBQWM7c0JBRHhCLFdBQVc7dUJBQUMsNkJBQTZCO2dCQU0vQixZQUFZO3NCQUR0QixXQUFXO3VCQUFDLDJCQUEyQjtnQkFNN0Isb0JBQW9CO3NCQUQ5QixXQUFXO3VCQUFDLHFDQUFxQztnQkFNdkMsa0JBQWtCO3NCQUQ1QixXQUFXO3VCQUFDLG1DQUFtQztnQkFNckMsc0JBQXNCO3NCQURoQyxXQUFXO3VCQUFDLHVDQUF1QztnQkFNekMsb0JBQW9CO3NCQUQ5QixXQUFXO3VCQUFDLHFDQUFxQztnQkFNdkMscUJBQXFCO3NCQUQvQixXQUFXO3VCQUFDLHNDQUFzQztnQkFNeEMsbUJBQW1CO3NCQUQ3QixXQUFXO3VCQUFDLG9DQUFvQztnQkFtQzFDLGNBQWM7c0JBRHBCLFlBQVk7dUJBQUMsY0FBYztnQkFPckIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxjQUFjO2dCQU1yQixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU8xQixTQUFTO3NCQURmLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXFCNUIsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU07Z0JBU2IsZUFBZTtzQkFEckIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2xpZGVySGFuZGxlIH0gZnJvbSAnLi4vc2xpZGVyLmNvbW1vbic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJZ3hEaXJlY3Rpb25hbGl0eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpcmVjdGlvbi9kaXJlY3Rpb25hbGl0eSc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LXRodW1iJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3RodW1iLXNsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzc11cbn0pXG5leHBvcnQgY2xhc3MgSWd4U2xpZGVyVGh1bWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWU6IGFueTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRpbnVvdXM6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0aHVtYkxhYmVsVmlzaWJpbGl0eUR1cmF0aW9uO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvblBhbjogU3ViamVjdDxudW1iZXI+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3RlcERpc3RhbmNlOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdGVwOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbnRleHQ6IGFueTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHR5cGU6IFNsaWRlckhhbmRsZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRlYWN0aXZlU3RhdGU6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdGh1bWJWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHRodW1iQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdGh1bWJCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGhvdmVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgICBwdWJsaWMgdGFiaW5kZXggPSAwO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnotaW5kZXgnKVxuICAgIHB1YmxpYyB6SW5kZXggPSAwO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtc2xpZGVyLXRodW1iLXRvLS1mb2N1c2VkJylcbiAgICBwdWJsaWMgZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtc2xpZGVyLXRodW1iLWZyb20nKVxuICAgIHB1YmxpYyBnZXQgdGh1bWJGcm9tQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5GUk9NO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi10bycpXG4gICAgcHVibGljIGdldCB0aHVtYlRvQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5UTztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItZnJvbS0tYWN0aXZlJylcbiAgICBwdWJsaWMgZ2V0IHRodW1iRnJvbUFjdGl2ZUNsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBTbGlkZXJIYW5kbGUuRlJPTSAmJiB0aGlzLl9pc0FjdGl2ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItdG8tLWFjdGl2ZScpXG4gICAgcHVibGljIGdldCB0aHVtYlRvQWN0aXZlQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5UTyAmJiB0aGlzLl9pc0FjdGl2ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItZnJvbS0tZGlzYWJsZWQnKVxuICAgIHB1YmxpYyBnZXQgdGh1bWJGcm9tRGlzYWJsZWRDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU2xpZGVySGFuZGxlLkZST00gJiYgdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItdG8tLWRpc2FibGVkJylcbiAgICBwdWJsaWMgZ2V0IHRodW1iVG9EaXNhYmxlZENsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBTbGlkZXJIYW5kbGUuVE8gJiYgdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItZnJvbS0tcHJlc3NlZCcpXG4gICAgcHVibGljIGdldCB0aHVtYkZyb21QcmVzc2VkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5GUk9NICYmIHRoaXMuaXNBY3RpdmUgJiYgdGhpcy5faXNQcmVzc2VkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi10by0tcHJlc3NlZCcpXG4gICAgcHVibGljIGdldCB0aHVtYlRvUHJlc3NlZENsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBTbGlkZXJIYW5kbGUuVE8gJiYgdGhpcy5pc0FjdGl2ZSAmJiB0aGlzLl9pc1ByZXNzZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBnZXREb3RDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdpZ3gtc2xpZGVyLXRodW1iLWZyb21fX2RvdCc6IHRoaXMudHlwZSA9PT0gU2xpZGVySGFuZGxlLkZST00sXG4gICAgICAgICAgICAnaWd4LXNsaWRlci10aHVtYi10b19fZG90JzogdGhpcy50eXBlID09PSBTbGlkZXJIYW5kbGUuVE9cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBY3RpdmUgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRlc3Ryb3koKTogU3ViamVjdDxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZXN0cm95JDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9pc0FjdGl2ZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzUHJlc3NlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgZ2V0IHRodW1iUG9zaXRpb25YKCkge1xuICAgICAgICBjb25zdCB0aHVtYkJvdW5kZXJpZXMgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHRodW1iQ2VudGVyID0gKHRodW1iQm91bmRlcmllcy5yaWdodCAtIHRodW1iQm91bmRlcmllcy5sZWZ0KSAvIDI7XG4gICAgICAgIHJldHVybiB0aHVtYkJvdW5kZXJpZXMubGVmdCArIHRodW1iQ2VudGVyO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgX2RpcjogSWd4RGlyZWN0aW9uYWxpdHkpIHsgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmVudGVyJylcbiAgICBwdWJsaWMgb25Qb2ludGVyRW50ZXIoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhvdmVyQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmxlYXZlJylcbiAgICBwdWJsaWMgb25Qb2ludGVyTGVhdmUoKSB7XG4gICAgICAgIHRoaXMuaG92ZXJDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpbmNyZW1lbnQgPSAwO1xuICAgICAgICBjb25zdCBzdGVwV2l0aERpciA9IChydGw6IGJvb2xlYW4pID0+IHJ0bCA/IHRoaXMuc3RlcCAqIC0xIDogdGhpcy5zdGVwO1xuICAgICAgICBpZiAoZXZlbnQua2V5LmVuZHNXaXRoKCdMZWZ0JykpIHtcbiAgICAgICAgICAgIGluY3JlbWVudCA9IHN0ZXBXaXRoRGlyKCF0aGlzLl9kaXIucnRsKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkuZW5kc1dpdGgoJ1JpZ2h0JykpIHtcbiAgICAgICAgICAgIGluY3JlbWVudCA9IHN0ZXBXaXRoRGlyKHRoaXMuX2Rpci5ydGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50aHVtYkNoYW5nZS5lbWl0KCk7XG4gICAgICAgIHRoaXMudGh1bWJWYWx1ZUNoYW5nZS5lbWl0KGluY3JlbWVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gICAgcHVibGljIG9uQmx1cigpIHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnpJbmRleCA9IDA7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRodW1iQmx1ci5lbWl0KCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHB1YmxpYyBvbkZvY3VzTGlzdGVuZXIoKSB7XG4gICAgICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLnpJbmRleCA9IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5vblBhblxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUobW91c2VYID0+XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUaHVtYlZhbHVlKG1vdXNlWClcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRodW1iIGxhYmVsIGFuZCByaXBwbGUuXG4gICAgICovXG4gICAgcHVibGljIHNob3dUaHVtYkluZGljYXRvcnMoKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlVGh1bWJJbmRpY2F0b3JzKHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGh1bWIgbGFiZWwgYW5kIHJpcHBsZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGlkZVRodW1iSW5kaWNhdG9ycygpIHtcbiAgICAgICAgdGhpcy50b2dnbGVUaHVtYkluZGljYXRvcnMoZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVGh1bWJWYWx1ZShtb3VzZVg6IG51bWJlcikge1xuICAgICAgICBjb25zdCB1cGRhdGVWYWx1ZSA9IHRoaXMuY2FsY3VsYXRlVHJhY2tVcGRhdGUobW91c2VYKTtcbiAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmUgJiYgdXBkYXRlVmFsdWUgIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMudGh1bWJWYWx1ZUNoYW5nZS5lbWl0KHVwZGF0ZVZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlVHJhY2tVcGRhdGUobW91c2VYOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBzY2FsZVggPSB0aGlzLl9kaXIucnRsID8gdGhpcy50aHVtYlBvc2l0aW9uWCAtIG1vdXNlWCA6IG1vdXNlWCAtIHRoaXMudGh1bWJQb3NpdGlvblg7XG4gICAgICAgIGNvbnN0IHN0ZXBEaXN0YW5jZUNlbnRlciA9IHRoaXMuc3RlcERpc3RhbmNlIC8gMjtcblxuICAgICAgICAvLyBJZiB0aGUgdGh1bWIgc2NhbGUgcmFuZ2UgKHNsaWRlciB1cGRhdGUpIGlzIGxlc3MgdGjDoG4gYSBoYWxmIHN0ZXAsXG4gICAgICAgIC8vIHRoZSBwb3NpdGlvbiBzdGF5cyB0aGUgc2FtZS5cbiAgICAgICAgY29uc3Qgc2NhbGVYUG9zaXRpdmUgPSBNYXRoLmFicyhzY2FsZVgpO1xuICAgICAgICBpZiAoc2NhbGVYUG9zaXRpdmUgPCBzdGVwRGlzdGFuY2VDZW50ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcFRvUHJvY2VlZChzY2FsZVgsIHRoaXMuc3RlcERpc3RhbmNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0ZXBUb1Byb2NlZWQoc2NhbGVYLCBzdGVwRGlzdCkge1xuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChzY2FsZVggLyBzdGVwRGlzdCkgKiB0aGlzLnN0ZXA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGVUaHVtYkluZGljYXRvcnModmlzaWJsZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc1ByZXNzZWQgPSB2aXNpYmxlO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRpbnVvdXMgfHwgdGhpcy5kZWFjdGl2ZVN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faXNBY3RpdmUgPSB2aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImdldERvdENsYXNzXCI+PC9kaXY+XG4iXX0=
@@ -15261,6 +15261,17 @@ class IgxForOfDirective {
15261
15261
  this.chunkLoad.emit(this.state);
15262
15262
  }
15263
15263
  }
15264
+ /**
15265
+ * @hidden
15266
+ * @internal
15267
+ */
15268
+ updateScroll() {
15269
+ if (this.igxForScrollOrientation === "horizontal") {
15270
+ const scrollAmount = this.scrollComponent.nativeElement["scrollLeft"];
15271
+ this.scrollComponent.scrollAmount = scrollAmount;
15272
+ this._updateScrollOffset();
15273
+ }
15274
+ }
15264
15275
  updateSizes() {
15265
15276
  if (!this.scrollComponent.nativeElement.isConnected)
15266
15277
  return;
@@ -19562,7 +19573,7 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
19562
19573
  * @hidden
19563
19574
  */
19564
19575
  set target(target) {
19565
- if (target !== null && target !== '') {
19576
+ if (target instanceof IgxTooltipDirective) {
19566
19577
  this._target = target;
19567
19578
  }
19568
19579
  }
@@ -25408,10 +25419,13 @@ class IgxCellCrudState {
25408
25419
  // this is needed when we are not using ngModel to update the editValue
25409
25420
  // so that the change event of the inlineEditorTemplate is hit before
25410
25421
  // trying to update any cell
25411
- const cellNode = this.grid.gridAPI.get_cell_by_index(this.cell.id.rowIndex, this.cell.column.field).nativeElement;
25412
- const document = cellNode.getRootNode();
25413
- const activeElement = document.activeElement;
25414
- activeElement.blur();
25422
+ const cellNode = this.grid.gridAPI.get_cell_by_index(this.cell.id.rowIndex, this.cell.column.field)?.nativeElement;
25423
+ let activeElement;
25424
+ if (cellNode) {
25425
+ const document = cellNode.getRootNode();
25426
+ activeElement = document.activeElement;
25427
+ activeElement.blur();
25428
+ }
25415
25429
  const formControl = this.grid.validation.getFormControl(this.cell.id.rowID, this.cell.column.field);
25416
25430
  if (this.grid.validationTrigger === 'blur' && this.cell.pendingValue !== undefined) {
25417
25431
  // in case trigger is blur, update value if there's a pending one and mark as touched.
@@ -25435,7 +25449,7 @@ class IgxCellCrudState {
25435
25449
  const args = this.cellEdit(event);
25436
25450
  if (args.cancel) {
25437
25451
  // the focus is needed when we cancel the cellEdit so that the activeElement stays on the editor template
25438
- activeElement.focus();
25452
+ activeElement?.focus();
25439
25453
  return args;
25440
25454
  }
25441
25455
  this.grid.gridAPI.update_cell(this.cell);
@@ -27106,20 +27120,17 @@ class IgxGridSelectionService {
27106
27120
  return keys.some(k => this.isPivotRowSelected(k));
27107
27121
  });
27108
27122
  }
27109
- if (this.rowSelection.size && this.grid.totalItemCount || this.grid.pagingMode === GridPagingMode.Remote) {
27110
- if (!this.grid.primaryKey) {
27111
- return Array.from(this.rowSelection);
27112
- }
27113
- const selection = [];
27114
- this.rowSelection.forEach(rID => {
27115
- const rData = this.grid.gridAPI.get_all_data(true).find(row => this.getRecordKey(row) === rID);
27116
- const partialRowData = {};
27117
- partialRowData[this.grid.primaryKey] = rID;
27118
- selection.push(rData ? rData : partialRowData);
27119
- });
27120
- return selection;
27121
- }
27122
- return this.rowSelection.size ? this.grid.gridAPI.get_all_data(true).filter(row => this.rowSelection.has(this.getRecordKey(row))) : [];
27123
+ if (!this.grid.primaryKey) {
27124
+ return Array.from(this.rowSelection);
27125
+ }
27126
+ const selection = [];
27127
+ this.rowSelection.forEach(rID => {
27128
+ const rData = this.grid.gridAPI.get_all_data(true).find(row => this.getRecordKey(row) === rID);
27129
+ const partialRowData = {};
27130
+ partialRowData[this.grid.primaryKey] = rID;
27131
+ selection.push(rData ? rData : partialRowData);
27132
+ });
27133
+ return selection;
27123
27134
  }
27124
27135
  /** Returns array of the selected row id's. */
27125
27136
  getSelectedRows() {
@@ -39332,7 +39343,6 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
39332
39343
  if (event !== undefined) {
39333
39344
  this.filterValue = this.searchValue = typeof event === 'string' ? event : event.target.value;
39334
39345
  }
39335
- this._onChangeCallback(this.searchValue);
39336
39346
  if (this.collapsed && this.comboInput.focused) {
39337
39347
  this.open();
39338
39348
  }
@@ -39366,10 +39376,12 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
39366
39376
  if (filtered === null || filtered === undefined) {
39367
39377
  return;
39368
39378
  }
39369
- this.select(this.dropdown.focusedItem.itemID);
39370
- event.preventDefault();
39371
- event.stopPropagation();
39372
- this.close();
39379
+ if (!this.dropdown.collapsed) {
39380
+ this.select(this.dropdown.focusedItem.itemID);
39381
+ event.preventDefault();
39382
+ event.stopPropagation();
39383
+ this.close();
39384
+ }
39373
39385
  // manually trigger text selection as it will not be triggered during editing
39374
39386
  this.textSelection.trigger();
39375
39387
  return;
@@ -64812,6 +64824,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64812
64824
  // the vert. scrollbar showing/hiding
64813
64825
  this.notifyChanges(true);
64814
64826
  this.cdr.detectChanges();
64827
+ Promise.resolve().then(() => this.headerContainer.updateScroll());
64815
64828
  });
64816
64829
  this.verticalScrollContainer.contentSizeChange.pipe(filter(() => !this._init), throttleTime(30), destructor).subscribe(() => {
64817
64830
  this.notifyChanges(true);
@@ -67227,12 +67240,8 @@ class IgxGridBaseDirective extends DisplayDensityBase {
67227
67240
  // in case state is no longer valid - update it.
67228
67241
  const rowForOf = row.virtDirRow;
67229
67242
  const gridScrLeft = rowForOf.getScroll().scrollLeft;
67230
- const left = -parseInt(rowForOf.dc.instance._viewContainer.element.nativeElement.style.left, 10);
67231
- const actualScrollLeft = left + rowForOf.getColumnScrollLeft(rowForOf.state.startIndex);
67232
- if (gridScrLeft !== actualScrollLeft) {
67233
- rowForOf.onHScroll(gridScrLeft);
67234
- rowForOf.cdr.detectChanges();
67235
- }
67243
+ rowForOf.onHScroll(gridScrLeft);
67244
+ rowForOf.cdr.detectChanges();
67236
67245
  }
67237
67246
  changeRowEditingOverlayStateOnScroll(row) {
67238
67247
  if (!this.rowEditable || !this.rowEditingOverlay || this.rowEditingOverlay.collapsed) {
@@ -67723,7 +67732,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
67723
67732
  let res = !parentElement ||
67724
67733
  parentElement.clientHeight === 0 ||
67725
67734
  parentElement.clientHeight === renderedHeight;
67726
- if ((!this.platform.isChromium && !this.platform.isFirefox) || this._autoSize) {
67735
+ if (parentElement && (res || this._autoSize)) {
67727
67736
  // If grid causes the parent container to extend (for example when container is flex)
67728
67737
  // we should always auto-size since the actual size of the container will continuously change as the grid renders elements.
67729
67738
  this._autoSize = false;
@@ -84500,6 +84509,7 @@ class IgxSliderThumbComponent {
84500
84509
  this._dir = _dir;
84501
84510
  this.thumbValueChange = new EventEmitter();
84502
84511
  this.thumbChange = new EventEmitter();
84512
+ this.thumbBlur = new EventEmitter();
84503
84513
  this.hoverChange = new EventEmitter();
84504
84514
  this.tabindex = 0;
84505
84515
  this.zIndex = 0;
@@ -84542,6 +84552,7 @@ class IgxSliderThumbComponent {
84542
84552
  this.isActive = false;
84543
84553
  this.zIndex = 0;
84544
84554
  this.focused = false;
84555
+ this.thumbBlur.emit();
84545
84556
  }
84546
84557
  onFocusListener() {
84547
84558
  this.isActive = true;
@@ -84604,7 +84615,7 @@ class IgxSliderThumbComponent {
84604
84615
  }
84605
84616
  }
84606
84617
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxSliderThumbComponent, deps: [{ token: i0.ElementRef }, { token: IgxDirectionality }], target: i0.ɵɵFactoryTarget.Component }); }
84607
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxSliderThumbComponent, isStandalone: true, selector: "igx-thumb", inputs: { value: "value", continuous: "continuous", thumbLabelVisibilityDuration: "thumbLabelVisibilityDuration", disabled: "disabled", onPan: "onPan", stepDistance: "stepDistance", step: "step", templateRef: "templateRef", context: "context", type: "type", deactiveState: "deactiveState" }, outputs: { thumbValueChange: "thumbValueChange", thumbChange: "thumbChange", hoverChange: "hoverChange" }, host: { listeners: { "pointerenter": "onPointerEnter()", "pointerleave": "onPointerLeave()", "keyup": "onKeyUp($event)", "keydown": "onKeyDown($event)", "blur": "onBlur()", "focus": "onFocusListener()" }, properties: { "attr.tabindex": "this.tabindex", "attr.z-index": "this.zIndex", "class.igx-slider-thumb-to--focused": "this.focused", "class.igx-slider-thumb-from": "this.thumbFromClass", "class.igx-slider-thumb-to": "this.thumbToClass", "class.igx-slider-thumb-from--active": "this.thumbFromActiveClass", "class.igx-slider-thumb-to--active": "this.thumbToActiveClass", "class.igx-slider-thumb-from--disabled": "this.thumbFromDisabledClass", "class.igx-slider-thumb-to--disabled": "this.thumbToDisabledClass", "class.igx-slider-thumb-from--pressed": "this.thumbFromPressedClass", "class.igx-slider-thumb-to--pressed": "this.thumbToPressedClass" } }, ngImport: i0, template: "<div [ngClass]=\"getDotClass\"></div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
84618
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxSliderThumbComponent, isStandalone: true, selector: "igx-thumb", inputs: { value: "value", continuous: "continuous", thumbLabelVisibilityDuration: "thumbLabelVisibilityDuration", disabled: "disabled", onPan: "onPan", stepDistance: "stepDistance", step: "step", templateRef: "templateRef", context: "context", type: "type", deactiveState: "deactiveState" }, outputs: { thumbValueChange: "thumbValueChange", thumbChange: "thumbChange", thumbBlur: "thumbBlur", hoverChange: "hoverChange" }, host: { listeners: { "pointerenter": "onPointerEnter()", "pointerleave": "onPointerLeave()", "keyup": "onKeyUp($event)", "keydown": "onKeyDown($event)", "blur": "onBlur()", "focus": "onFocusListener()" }, properties: { "attr.tabindex": "this.tabindex", "attr.z-index": "this.zIndex", "class.igx-slider-thumb-to--focused": "this.focused", "class.igx-slider-thumb-from": "this.thumbFromClass", "class.igx-slider-thumb-to": "this.thumbToClass", "class.igx-slider-thumb-from--active": "this.thumbFromActiveClass", "class.igx-slider-thumb-to--active": "this.thumbToActiveClass", "class.igx-slider-thumb-from--disabled": "this.thumbFromDisabledClass", "class.igx-slider-thumb-to--disabled": "this.thumbToDisabledClass", "class.igx-slider-thumb-from--pressed": "this.thumbFromPressedClass", "class.igx-slider-thumb-to--pressed": "this.thumbToPressedClass" } }, ngImport: i0, template: "<div [ngClass]=\"getDotClass\"></div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
84608
84619
  }
84609
84620
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxSliderThumbComponent, decorators: [{
84610
84621
  type: Component,
@@ -84635,6 +84646,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
84635
84646
  type: Output
84636
84647
  }], thumbChange: [{
84637
84648
  type: Output
84649
+ }], thumbBlur: [{
84650
+ type: Output
84638
84651
  }], hoverChange: [{
84639
84652
  type: Output
84640
84653
  }], tabindex: [{
@@ -85669,12 +85682,12 @@ class IgxSliderComponent {
85669
85682
  this.positionHandlersAndUpdateTrack();
85670
85683
  this.setTickInterval();
85671
85684
  this.changeThumbFocusableState(this.disabled);
85672
- this.subscribeTo(this.thumbFrom, this.thumbChanged.bind(this));
85673
- this.subscribeTo(this.thumbTo, this.thumbChanged.bind(this));
85685
+ this.subscribeToEvents(this.thumbFrom);
85686
+ this.subscribeToEvents(this.thumbTo);
85674
85687
  this.thumbs.changes.pipe(takeUntil(this._destroyer$)).subscribe(change => {
85675
85688
  const thumbFrom = change.find((thumb) => thumb.type === SliderHandle.FROM);
85676
85689
  this.positionHandler(thumbFrom, null, this.lowerValue);
85677
- this.subscribeTo(thumbFrom, this.thumbChanged.bind(this));
85690
+ this.subscribeToEvents(thumbFrom);
85678
85691
  this.changeThumbFocusableState(this.disabled);
85679
85692
  });
85680
85693
  this.labelRefs.changes.pipe(takeUntil(this._destroyer$)).subscribe(() => {
@@ -85736,7 +85749,6 @@ class IgxSliderComponent {
85736
85749
  // Finally do positionHandlersAndUpdateTrack the DOM
85737
85750
  // based on data values
85738
85751
  this.positionHandlersAndUpdateTrack();
85739
- this._onTouchedCallback();
85740
85752
  }
85741
85753
  /**
85742
85754
  * @hidden
@@ -85991,13 +86003,16 @@ class IgxSliderComponent {
85991
86003
  this.renderer.setStyle(this.trackRef.nativeElement, 'transform', `scaleX(${toPosition})`);
85992
86004
  }
85993
86005
  }
85994
- subscribeTo(thumb, callback) {
86006
+ subscribeToEvents(thumb) {
85995
86007
  if (!thumb) {
85996
86008
  return;
85997
86009
  }
85998
86010
  thumb.thumbValueChange
85999
86011
  .pipe(takeUntil(this.unsubscriber(thumb)))
86000
- .subscribe(value => callback(value, thumb.type));
86012
+ .subscribe(value => this.thumbChanged(value, thumb.type));
86013
+ thumb.thumbBlur
86014
+ .pipe(takeUntil(this.unsubscriber(thumb)))
86015
+ .subscribe(() => this._onTouchedCallback());
86001
86016
  }
86002
86017
  unsubscriber(thumb) {
86003
86018
  return merge(this._destroyer$, thumb.destroy);
@@ -86013,7 +86028,7 @@ class IgxSliderComponent {
86013
86028
  this.valueChange.emit({ oldValue, value: this.value });
86014
86029
  }
86015
86030
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxSliderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: IgxDirectionality }], target: i0.ɵɵFactoryTarget.Component }); }
86016
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxSliderComponent, isStandalone: true, selector: "igx-slider", inputs: { id: "id", thumbLabelVisibilityDuration: "thumbLabelVisibilityDuration", type: "type", labels: "labels", step: "step", disabled: "disabled", continuous: "continuous", minValue: "minValue", maxValue: "maxValue", lowerBound: "lowerBound", upperBound: "upperBound", value: "value", primaryTicks: "primaryTicks", secondaryTicks: "secondaryTicks", showTicks: "showTicks", primaryTickLabels: "primaryTickLabels", secondaryTickLabels: "secondaryTickLabels", ticksOrientation: "ticksOrientation", tickLabelsOrientation: "tickLabelsOrientation", lowerValue: "lowerValue", upperValue: "upperValue" }, outputs: { valueChange: "valueChange", lowerValueChange: "lowerValueChange", upperValueChange: "upperValueChange", dragFinished: "dragFinished" }, host: { listeners: { "pointerdown": "onPointerDown($event)", "pointerup": "onPointerUp($event)", "focus": "onFocus()", "pan": "onPanListener($event)" }, properties: { "attr.role": "this.role", "class.igx-slider": "this.slierClass", "attr.id": "this.id", "attr.aria-valuemin": "this.valuemin", "attr.aria-valuemax": "this.valuemax", "attr.aria-readonly": "this.readonly", "class.igx-slider--disabled": "this.disabledClass" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxSliderComponent, multi: true }], queries: [{ propertyName: "thumbFromTemplateRef", first: true, predicate: IgxThumbFromTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "thumbToTemplateRef", first: true, predicate: IgxThumbToTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "tickLabelTemplateRef", first: true, predicate: IgxTickLabelTemplateDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "trackRef", first: true, predicate: ["track"], descendants: true, static: true }, { propertyName: "ticks", first: true, predicate: ["ticks"], descendants: true, static: true }, { propertyName: "thumbs", predicate: IgxSliderThumbComponent, descendants: true }, { propertyName: "labelRefs", predicate: IgxThumbLabelComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<igx-ticks\n *ngIf=\"showTicks && showTopTicks\"\n ticksOrientation=\"top\"\n [primaryTicks]=\"primaryTicks\"\n [secondaryTicks]=\"secondaryTicks\"\n [primaryTickLabels]=\"primaryTickLabels\"\n [secondaryTickLabels]=\"secondaryTickLabels\"\n [tickLabelsOrientation]=\"tickLabelsOrientation\"\n [labelsViewEnabled]=\"labelsViewEnabled\"\n [labels]=\"labels | spreadTickLabels:secondaryTicks\"\n [tickLabelTemplateRef]=\"tickLabelTemplateRef\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\">\n</igx-ticks>\n<div class=\"igx-slider__track\">\n <div class=\"igx-slider__track-inactive\"></div>\n <div #track class=\"igx-slider__track-fill\"></div>\n <div class=\"igx-slider__track-steps\">\n <svg width=\"100%\" height=\"100%\">\n <line #ticks x1=\"0\" y1=\"2\" x2=\"100%\" y2=\"2\"></line>\n </svg>\n </div>\n</div>\n<div class=\"igx-slider__thumbs\">\n <igx-thumb-label\n *ngIf=\"isRange\"\n type=\"from\"\n [value]=\"lowerLabel\"\n [templateRef]=\"thumbFromTemplateRef\"\n [continuous]=\"continuous\"\n [context]=\"context\"\n [deactiveState]=\"deactivateThumbLabel\"\n [thumb]=\"thumbFrom\"></igx-thumb-label>\n\n <igx-thumb\n *ngIf=\"isRange\"\n #thumbFrom\n type=\"from\"\n [value]=\"lowerLabel\"\n [disabled]=\"disabled\"\n [continuous]=\"continuous\"\n [onPan]=\"onPan\"\n [stepDistance]=\"stepDistance\"\n [step]=\"step\"\n [templateRef]=\"thumbFromTemplateRef\"\n [context]=\"context\"\n (thumbChange)=\"onThumbChange()\"\n (hoverChange)=\"onHoverChange($event)\"\n [deactiveState]=\"deactivateThumbLabel\"\n [thumbLabelVisibilityDuration]=\"thumbLabelVisibilityDuration\"></igx-thumb>\n\n <igx-thumb-label\n [value]=\"upperLabel\"\n type=\"to\"\n [templateRef]=\"thumbToTemplateRef\"\n [continuous]=\"continuous\"\n [context]=\"context\"\n [deactiveState]=\"deactivateThumbLabel\"\n [thumb]=\"thumbTo\"></igx-thumb-label>\n\n <igx-thumb\n #thumbTo\n type=\"to\"\n [value]=\"upperLabel\"\n [disabled]=\"disabled\"\n [continuous]=\"continuous\"\n [onPan]=\"onPan\"\n [stepDistance]=\"stepDistance\"\n [step]=\"step\"\n [templateRef]=\"thumbToTemplateRef\"\n [context]=\"context\"\n (thumbChange)=\"onThumbChange()\"\n (hoverChange)=\"onHoverChange($event)\"\n [deactiveState]=\"deactivateThumbLabel\"\n [thumbLabelVisibilityDuration]=\"thumbLabelVisibilityDuration\"></igx-thumb>\n</div>\n<igx-ticks\n *ngIf=\"showTicks && showBottomTicks\"\n ticksOrientation=\"bottom\"\n [primaryTicks]=\"primaryTicks\"\n [secondaryTicks]=\"secondaryTicks\"\n [primaryTickLabels]=\"primaryTickLabels\"\n [secondaryTickLabels]=\"secondaryTickLabels\"\n [tickLabelsOrientation]=\"tickLabelsOrientation\"\n [labelsViewEnabled]=\"labelsViewEnabled\"\n [labels]=\"labels | spreadTickLabels:secondaryTicks\"\n [tickLabelTemplateRef]=\"tickLabelTemplateRef\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\">\n</igx-ticks>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxTicksComponent, selector: "igx-ticks", inputs: ["primaryTicks", "secondaryTicks", "primaryTickLabels", "secondaryTickLabels", "ticksOrientation", "tickLabelsOrientation", "maxValue", "minValue", "labelsViewEnabled", "labels", "tickLabelTemplateRef"] }, { kind: "component", type: IgxThumbLabelComponent, selector: "igx-thumb-label", inputs: ["value", "templateRef", "context", "type", "continuous", "deactiveState", "thumb"] }, { kind: "component", type: IgxSliderThumbComponent, selector: "igx-thumb", inputs: ["value", "continuous", "thumbLabelVisibilityDuration", "disabled", "onPan", "stepDistance", "step", "templateRef", "context", "type", "deactiveState"], outputs: ["thumbValueChange", "thumbChange", "hoverChange"] }, { kind: "pipe", type: IgxTickLabelsPipe, name: "spreadTickLabels" }] }); }
86031
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxSliderComponent, isStandalone: true, selector: "igx-slider", inputs: { id: "id", thumbLabelVisibilityDuration: "thumbLabelVisibilityDuration", type: "type", labels: "labels", step: "step", disabled: "disabled", continuous: "continuous", minValue: "minValue", maxValue: "maxValue", lowerBound: "lowerBound", upperBound: "upperBound", value: "value", primaryTicks: "primaryTicks", secondaryTicks: "secondaryTicks", showTicks: "showTicks", primaryTickLabels: "primaryTickLabels", secondaryTickLabels: "secondaryTickLabels", ticksOrientation: "ticksOrientation", tickLabelsOrientation: "tickLabelsOrientation", lowerValue: "lowerValue", upperValue: "upperValue" }, outputs: { valueChange: "valueChange", lowerValueChange: "lowerValueChange", upperValueChange: "upperValueChange", dragFinished: "dragFinished" }, host: { listeners: { "pointerdown": "onPointerDown($event)", "pointerup": "onPointerUp($event)", "focus": "onFocus()", "pan": "onPanListener($event)" }, properties: { "attr.role": "this.role", "class.igx-slider": "this.slierClass", "attr.id": "this.id", "attr.aria-valuemin": "this.valuemin", "attr.aria-valuemax": "this.valuemax", "attr.aria-readonly": "this.readonly", "class.igx-slider--disabled": "this.disabledClass" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxSliderComponent, multi: true }], queries: [{ propertyName: "thumbFromTemplateRef", first: true, predicate: IgxThumbFromTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "thumbToTemplateRef", first: true, predicate: IgxThumbToTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "tickLabelTemplateRef", first: true, predicate: IgxTickLabelTemplateDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "trackRef", first: true, predicate: ["track"], descendants: true, static: true }, { propertyName: "ticks", first: true, predicate: ["ticks"], descendants: true, static: true }, { propertyName: "thumbs", predicate: IgxSliderThumbComponent, descendants: true }, { propertyName: "labelRefs", predicate: IgxThumbLabelComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<igx-ticks\n *ngIf=\"showTicks && showTopTicks\"\n ticksOrientation=\"top\"\n [primaryTicks]=\"primaryTicks\"\n [secondaryTicks]=\"secondaryTicks\"\n [primaryTickLabels]=\"primaryTickLabels\"\n [secondaryTickLabels]=\"secondaryTickLabels\"\n [tickLabelsOrientation]=\"tickLabelsOrientation\"\n [labelsViewEnabled]=\"labelsViewEnabled\"\n [labels]=\"labels | spreadTickLabels:secondaryTicks\"\n [tickLabelTemplateRef]=\"tickLabelTemplateRef\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\">\n</igx-ticks>\n<div class=\"igx-slider__track\">\n <div class=\"igx-slider__track-inactive\"></div>\n <div #track class=\"igx-slider__track-fill\"></div>\n <div class=\"igx-slider__track-steps\">\n <svg width=\"100%\" height=\"100%\">\n <line #ticks x1=\"0\" y1=\"2\" x2=\"100%\" y2=\"2\"></line>\n </svg>\n </div>\n</div>\n<div class=\"igx-slider__thumbs\">\n <igx-thumb-label\n *ngIf=\"isRange\"\n type=\"from\"\n [value]=\"lowerLabel\"\n [templateRef]=\"thumbFromTemplateRef\"\n [continuous]=\"continuous\"\n [context]=\"context\"\n [deactiveState]=\"deactivateThumbLabel\"\n [thumb]=\"thumbFrom\"></igx-thumb-label>\n\n <igx-thumb\n *ngIf=\"isRange\"\n #thumbFrom\n type=\"from\"\n [value]=\"lowerLabel\"\n [disabled]=\"disabled\"\n [continuous]=\"continuous\"\n [onPan]=\"onPan\"\n [stepDistance]=\"stepDistance\"\n [step]=\"step\"\n [templateRef]=\"thumbFromTemplateRef\"\n [context]=\"context\"\n (thumbChange)=\"onThumbChange()\"\n (hoverChange)=\"onHoverChange($event)\"\n [deactiveState]=\"deactivateThumbLabel\"\n [thumbLabelVisibilityDuration]=\"thumbLabelVisibilityDuration\"></igx-thumb>\n\n <igx-thumb-label\n [value]=\"upperLabel\"\n type=\"to\"\n [templateRef]=\"thumbToTemplateRef\"\n [continuous]=\"continuous\"\n [context]=\"context\"\n [deactiveState]=\"deactivateThumbLabel\"\n [thumb]=\"thumbTo\"></igx-thumb-label>\n\n <igx-thumb\n #thumbTo\n type=\"to\"\n [value]=\"upperLabel\"\n [disabled]=\"disabled\"\n [continuous]=\"continuous\"\n [onPan]=\"onPan\"\n [stepDistance]=\"stepDistance\"\n [step]=\"step\"\n [templateRef]=\"thumbToTemplateRef\"\n [context]=\"context\"\n (thumbChange)=\"onThumbChange()\"\n (hoverChange)=\"onHoverChange($event)\"\n [deactiveState]=\"deactivateThumbLabel\"\n [thumbLabelVisibilityDuration]=\"thumbLabelVisibilityDuration\"></igx-thumb>\n</div>\n<igx-ticks\n *ngIf=\"showTicks && showBottomTicks\"\n ticksOrientation=\"bottom\"\n [primaryTicks]=\"primaryTicks\"\n [secondaryTicks]=\"secondaryTicks\"\n [primaryTickLabels]=\"primaryTickLabels\"\n [secondaryTickLabels]=\"secondaryTickLabels\"\n [tickLabelsOrientation]=\"tickLabelsOrientation\"\n [labelsViewEnabled]=\"labelsViewEnabled\"\n [labels]=\"labels | spreadTickLabels:secondaryTicks\"\n [tickLabelTemplateRef]=\"tickLabelTemplateRef\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\">\n</igx-ticks>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxTicksComponent, selector: "igx-ticks", inputs: ["primaryTicks", "secondaryTicks", "primaryTickLabels", "secondaryTickLabels", "ticksOrientation", "tickLabelsOrientation", "maxValue", "minValue", "labelsViewEnabled", "labels", "tickLabelTemplateRef"] }, { kind: "component", type: IgxThumbLabelComponent, selector: "igx-thumb-label", inputs: ["value", "templateRef", "context", "type", "continuous", "deactiveState", "thumb"] }, { kind: "component", type: IgxSliderThumbComponent, selector: "igx-thumb", inputs: ["value", "continuous", "thumbLabelVisibilityDuration", "disabled", "onPan", "stepDistance", "step", "templateRef", "context", "type", "deactiveState"], outputs: ["thumbValueChange", "thumbChange", "thumbBlur", "hoverChange"] }, { kind: "pipe", type: IgxTickLabelsPipe, name: "spreadTickLabels" }] }); }
86017
86032
  }
86018
86033
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxSliderComponent, decorators: [{
86019
86034
  type: Component,