@odx/angular 12.17.1 → 12.17.3

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @odx/angular
2
2
 
3
+ ## 12.17.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 31a53d6: icon components for spinbox
8
+
9
+ ## 12.17.2
10
+
11
+ ### Patch Changes
12
+
13
+ - 94a5166: fixed getter getSortStatus for table header
14
+
3
15
  ## 12.17.1
4
16
 
5
17
  ### Patch Changes
@@ -2,6 +2,7 @@ import { __decorate, __metadata } from "tslib";
2
2
  import { ChangeDetectionStrategy, Component, ElementRef, Input, numberAttribute, ViewChild, ViewEncapsulation } from '@angular/core';
3
3
  import { detectControllerChanges, DisabledController, ReadonlyController } from '@odx/angular';
4
4
  import { ControlDirective, CustomFormControl } from '@odx/angular/cdk/custom-form-control';
5
+ import { IconComponent } from '@odx/angular/components/icon';
5
6
  import { CSSComponent } from '@odx/angular/internal';
6
7
  import { fromEvents } from '@odx/angular/rxjs';
7
8
  import { injectElement, untilDestroyed } from '@odx/angular/utils';
@@ -77,7 +78,7 @@ let SpinboxComponent = class SpinboxComponent extends CustomFormControl {
77
78
  }), switchMap(({ type }) => (['mouseup', 'keyup'].includes(type) ? NEVER : timer(500, 100).pipe(startWith(undefined)))), this.takeUntilDestroyed());
78
79
  }
79
80
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpinboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: SpinboxComponent, isStandalone: true, selector: "odx-spinbox", inputs: { max: ["max", "max", numberAttribute], min: ["min", "min", numberAttribute], step: ["step", "step", numberAttribute] }, providers: [DisabledController.connect(), ReadonlyController.connect()], viewQueries: [{ propertyName: "decrementButton", first: true, predicate: ["decrementButton"], descendants: true }, { propertyName: "incrementButton", first: true, predicate: ["incrementButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n [disabled]=\"isDisabled || isReadonly\"\n type=\"button\"\n class=\"odx-spinbox__action odx-icon\"\n data-icon-set=\"core\"\n data-icon-name=\"minus\"\n #decrementButton\n></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button\n [disabled]=\"isDisabled || isReadonly\"\n type=\"button\"\n data-icon-set=\"core\"\n data-icon-name=\"plus\"\n class=\"odx-spinbox__action odx-icon\"\n #incrementButton\n></button>\n", dependencies: [{ kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: SpinboxComponent, isStandalone: true, selector: "odx-spinbox", inputs: { max: ["max", "max", numberAttribute], min: ["min", "min", numberAttribute], step: ["step", "step", numberAttribute] }, providers: [DisabledController.connect(), ReadonlyController.connect()], viewQueries: [{ propertyName: "decrementButton", first: true, predicate: ["decrementButton"], descendants: true }, { propertyName: "incrementButton", first: true, predicate: ["incrementButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #decrementButton><odx-icon name=\"minus\" /></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #incrementButton><odx-icon name=\"plus\" /></button>\n", dependencies: [{ kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
81
82
  };
82
83
  SpinboxComponent = __decorate([
83
84
  CSSComponent('spinbox'),
@@ -86,7 +87,7 @@ SpinboxComponent = __decorate([
86
87
  export { SpinboxComponent };
87
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpinboxComponent, decorators: [{
88
89
  type: Component,
89
- args: [{ standalone: true, selector: 'odx-spinbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ControlDirective], providers: [DisabledController.connect(), ReadonlyController.connect()], template: "<button\n [disabled]=\"isDisabled || isReadonly\"\n type=\"button\"\n class=\"odx-spinbox__action odx-icon\"\n data-icon-set=\"core\"\n data-icon-name=\"minus\"\n #decrementButton\n></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button\n [disabled]=\"isDisabled || isReadonly\"\n type=\"button\"\n data-icon-set=\"core\"\n data-icon-name=\"plus\"\n class=\"odx-spinbox__action odx-icon\"\n #incrementButton\n></button>\n" }]
90
+ args: [{ standalone: true, selector: 'odx-spinbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ControlDirective, IconComponent], providers: [DisabledController.connect(), ReadonlyController.connect()], template: "<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #decrementButton><odx-icon name=\"minus\" /></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #incrementButton><odx-icon name=\"plus\" /></button>\n" }]
90
91
  }], ctorParameters: () => [], propDecorators: { decrementButton: [{
91
92
  type: ViewChild,
92
93
  args: ['decrementButton']
@@ -103,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
103
104
  type: Input,
104
105
  args: [{ transform: numberAttribute }]
105
106
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpbmJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zcGluYm94L3NyYy9saWIvc3BpbmJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zcGluYm94L3NyYy9saWIvc3BpbmJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BKLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWMsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUVuRjs7Ozs7O0dBTUc7QUFXSSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFpQixTQUFRLGlCQUF5QjtJQUc3RCxJQUFZLFlBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxhQUFpQyxDQUFDO0lBQ2pFLENBQUM7SUFxQ0Q7UUFDRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENB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LENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbkgsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQzFCLENBQUM7SUFDSixDQUFDOytHQXJGVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQiw2RUFxQlAsZUFBZSx1QkFTZixlQUFlLDBCQVNmLGVBQWUsZ0JBekN4QixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLDBRQ3ZCekUsNnJCQThCQSw0Q0RSWSxnQkFBZ0I7O0FBR2YsZ0JBQWdCO0lBVjVCLFlBQVksQ0FBQyxTQUFTLENBQUM7O0dBVVgsZ0JBQWdCLENBc0Y1Qjs7NEZBdEZZLGdCQUFnQjtrQkFUNUIsU0FBUztpQ0FDSSxJQUFJLFlBQ04sYUFBYSxtQkFFTix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsZ0JBQWdCLENBQUMsYUFDaEIsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQzt3REFVN0QsZUFBZTtzQkFEeEIsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBSWxCLGVBQWU7c0JBRHhCLFNBQVM7dUJBQUMsaUJBQWlCO2dCQVlyQixHQUFHO3NCQURULEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQVU5QixHQUFHO3NCQURULEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQVU5QixJQUFJO3NCQURWLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIG51bWJlckF0dHJpYnV0ZSwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXMsIERpc2FibGVkQ29udHJvbGxlciwgUmVhZG9ubHlDb250cm9sbGVyIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IENvbnRyb2xEaXJlY3RpdmUsIEN1c3RvbUZvcm1Db250cm9sIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9jdXN0b20tZm9ybS1jb250cm9sJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBmcm9tRXZlbnRzIH0gZnJvbSAnQG9keC9hbmd1bGFyL3J4anMnO1xuaW1wb3J0IHsgaW5qZWN0RWxlbWVudCwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZmlsdGVyLCBORVZFUiwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCwgdGltZXIgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBTcGluYm94Q29tcG9uZW50IGlzIGEgY3VzdG9tIGZvcm0gY29udHJvbCBmb3IgbnVtZXJpYyBpbnB1dCB3aGljaCBhbGxvd3MgdXNlcnMgdG8gaW5jcmVtZW50IGFuZCBkZWNyZW1lbnRcbiAqIHRoZSB2YWx1ZSB1c2luZyBjb3JyZXNwb25kaW5nIGJ1dHRvbnMuIEl0IHN1cHBvcnRzIGtleWJvYXJkIG5hdmlnYXRpb24gYW5kIGF1dG9tYXRpYyBib3VuZGFyeSBjaGVja3MgZm9yIHRoZSB2YWx1ZXMuXG4gKiAgRXh0ZW5kcyBDdXN0b21Gb3JtQ29udHJvbCB0byBwcm92aWRlIGFkZGl0aW9uYWwgYmVoYXZpb3IuXG4gKlxuICogQHNlZSB7Q3VzdG9tRm9ybUNvbnRyb2x9XG4gKi9cbkBDU1NDb21wb25lbnQoJ3NwaW5ib3gnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LXNwaW5ib3gnLFxuICB0ZW1wbGF0ZVVybDogJ3NwaW5ib3guY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0NvbnRyb2xEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtEaXNhYmxlZENvbnRyb2xsZXIuY29ubmVjdCgpLCBSZWFkb25seUNvbnRyb2xsZXIuY29ubmVjdCgpXSxcbn0pXG5leHBvcnQgY2xhc3MgU3BpbmJveENvbXBvbmVudCBleHRlbmRzIEN1c3RvbUZvcm1Db250cm9sPG51bWJlcj4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHByaXZhdGUgZ2V0IGlucHV0RWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2RlY3JlbWVudEJ1dHRvbicpXG4gIHByb3RlY3RlZCBkZWNyZW1lbnRCdXR0b24hOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdpbmNyZW1lbnRCdXR0b24nKVxuICBwcm90ZWN0ZWQgaW5jcmVtZW50QnV0dG9uITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFsbG93YWJsZSB2YWx1ZSBmb3IgdGhlIHNwaW5ib3guXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IEluZmluaXR5XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbWF4ID0gSW5maW5pdHk7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGFsbG93YWJsZSB2YWx1ZSBmb3IgdGhlIHNwaW5ib3guXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IC1JbmZpbml0eVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG1pbiA9IC1JbmZpbml0eTtcblxuICAvKipcbiAgICogVGhlIHZhbHVlIGluY3JlbWVudCBvciBkZWNyZW1lbnQgc3RlcCBmb3IgdGhlIHNwaW5ib3guXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzdGVwID0gMTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigwKTtcbiAgICBkZXRlY3RDb250cm9sbGVyQ2hhbmdlcyh0aGlzKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWdpc3RlclByZXNzSG9sZCh0aGlzLmRlY3JlbWVudEJ1dHRvbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50Py5zdGVwRG93bigpO1xuICAgICAgdGhpcy5vbklucHV0Q2hhbmdlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5yZWdpc3RlclByZXNzSG9sZCh0aGlzLmluY3JlbWVudEJ1dHRvbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50Py5zdGVwVXAoKTtcbiAgICAgIHRoaXMub25JbnB1dENoYW5nZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1heFN0ZXBzKHsgY29kZSB9OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGNvZGUgPT09ICdFbmQnICYmIHRoaXMubWluICE9PSAtSW5maW5pdHkpIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5taW4pO1xuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gJ0hvbWUnICYmIHRoaXMubWF4ICE9PSBJbmZpbml0eSkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLm1heCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNoZWNrVmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBudW1iZXJBdHRyaWJ1dGUodGhpcy5pbnB1dEVsZW1lbnQudmFsdWUpO1xuICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUgPCB0aGlzLm1pbiA/IHRoaXMubWluIDogdmFsdWUgPiB0aGlzLm1heCA/IHRoaXMubWF4IDogdmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSW5wdXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShudW1iZXJBdHRyaWJ1dGUodGhpcy5pbnB1dEVsZW1lbnQudmFsdWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJQcmVzc0hvbGQodGFyZ2V0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiBmcm9tRXZlbnRzKHRhcmdldC5uYXRpdmVFbGVtZW50LCAna2V5ZG93bicsICdtb3VzZWRvd24nLCAnbW91c2V1cCcsICdrZXl1cCcpLnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudD8udHlwZSAhPT0gJ2tleWRvd24nIHx8IFsnU3BhY2UnLCAnRW50ZXInXS5pbmNsdWRlcygoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkuY29kZSkpLFxuICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCh7IHR5cGUgfSkgPT4gKFsnbW91c2V1cCcsICdrZXl1cCddLmluY2x1ZGVzKHR5cGUpID8gTkVWRVIgOiB0aW1lcig1MDAsIDEwMCkucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSkpKSxcbiAgICAgIHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgKTtcbiAgfVxufVxuIiwiPGJ1dHRvblxuICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCB8fCBpc1JlYWRvbmx5XCJcbiAgdHlwZT1cImJ1dHRvblwiXG4gIGNsYXNzPVwib2R4LXNwaW5ib3hfX2FjdGlvbiBvZHgtaWNvblwiXG4gIGRhdGEtaWNvbi1zZXQ9XCJjb3JlXCJcbiAgZGF0YS1pY29uLW5hbWU9XCJtaW51c1wiXG4gICNkZWNyZW1lbnRCdXR0b25cbj48L2J1dHRvbj5cbjxpbnB1dFxuICBvZHhDb250cm9sXG4gIGNsYXNzPVwib2R4LXNwaW5ib3hfX2lucHV0XCJcbiAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICBbcmVhZG9ubHldPVwiaXNSZWFkb25seVwiXG4gIHR5cGU9XCJudW1iZXJcIlxuICBbdmFsdWVdPVwidmFsdWVcIlxuICBbbWluXT1cIm1pblwiXG4gIFttYXhdPVwibWF4XCJcbiAgW3N0ZXBdPVwic3RlcFwiXG4gIChrZXlkb3duKT1cIm1heFN0ZXBzKCRldmVudClcIlxuICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoKVwiXG4gIChibHVyKT1cImNoZWNrVmFsdWUoKVwiXG4vPlxuPGJ1dHRvblxuICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCB8fCBpc1JlYWRvbmx5XCJcbiAgdHlwZT1cImJ1dHRvblwiXG4gIGRhdGEtaWNvbi1zZXQ9XCJjb3JlXCJcbiAgZGF0YS1pY29uLW5hbWU9XCJwbHVzXCJcbiAgY2xhc3M9XCJvZHgtc3BpbmJveF9fYWN0aW9uIG9keC1pY29uXCJcbiAgI2luY3JlbWVudEJ1dHRvblxuPjwvYnV0dG9uPlxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpbmJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zcGluYm94L3NyYy9saWIvc3BpbmJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zcGluYm94L3NyYy9saWIvc3BpbmJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BKLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFjLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFbkY7Ozs7OztHQU1HO0FBV0ksSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBaUIsU0FBUSxpQkFBeUI7SUFHN0QsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsYUFBaUMsQ0FBQztJ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QUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ25ILElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUMxQixDQUFDO0lBQ0osQ0FBQzsrR0FyRlUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsNkVBcUJQLGVBQWUsdUJBU2YsZUFBZSwwQkFTZixlQUFlLGdCQXpDeEIsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQywwUUN4QnpFLHlsQkFnQkEsNENET1ksZ0JBQWdCLG1GQUFFLGFBQWE7O0FBRzlCLGdCQUFnQjtJQVY1QixZQUFZLENBQUMsU0FBUyxDQUFDOztHQVVYLGdCQUFnQixDQXNGNUI7OzRGQXRGWSxnQkFBZ0I7a0JBVDVCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGFBQWEsbUJBRU4sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxhQUMvQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO3dEQVU3RCxlQUFlO3NCQUR4QixTQUFTO3VCQUFDLGlCQUFpQjtnQkFJbEIsZUFBZTtzQkFEeEIsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBWXJCLEdBQUc7c0JBRFQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBVTlCLEdBQUc7c0JBRFQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBVTlCLElBQUk7c0JBRFYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgbnVtYmVyQXR0cmlidXRlLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZXRlY3RDb250cm9sbGVyQ2hhbmdlcywgRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ29udHJvbERpcmVjdGl2ZSwgQ3VzdG9tRm9ybUNvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGZyb21FdmVudHMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvcnhqcyc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBmaWx0ZXIsIE5FVkVSLCBPYnNlcnZhYmxlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFNwaW5ib3hDb21wb25lbnQgaXMgYSBjdXN0b20gZm9ybSBjb250cm9sIGZvciBudW1lcmljIGlucHV0IHdoaWNoIGFsbG93cyB1c2VycyB0byBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudFxuICogdGhlIHZhbHVlIHVzaW5nIGNvcnJlc3BvbmRpbmcgYnV0dG9ucy4gSXQgc3VwcG9ydHMga2V5Ym9hcmQgbmF2aWdhdGlvbiBhbmQgYXV0b21hdGljIGJvdW5kYXJ5IGNoZWNrcyBmb3IgdGhlIHZhbHVlcy5cbiAqICBFeHRlbmRzIEN1c3RvbUZvcm1Db250cm9sIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBiZWhhdmlvci5cbiAqXG4gKiBAc2VlIHtDdXN0b21Gb3JtQ29udHJvbH1cbiAqL1xuQENTU0NvbXBvbmVudCgnc3BpbmJveCcpXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdvZHgtc3BpbmJveCcsXG4gIHRlbXBsYXRlVXJsOiAnc3BpbmJveC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQ29udHJvbERpcmVjdGl2ZSwgSWNvbkNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW0Rpc2FibGVkQ29udHJvbGxlci5jb25uZWN0KCksIFJlYWRvbmx5Q29udHJvbGxlci5jb25uZWN0KCldLFxufSlcbmV4cG9ydCBjbGFzcyBTcGluYm94Q29tcG9uZW50IGV4dGVuZHMgQ3VzdG9tRm9ybUNvbnRyb2w8bnVtYmVyPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG5cbiAgcHJpdmF0ZSBnZXQgaW5wdXRFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnZGVjcmVtZW50QnV0dG9uJylcbiAgcHJvdGVjdGVkIGRlY3JlbWVudEJ1dHRvbiE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2luY3JlbWVudEJ1dHRvbicpXG4gIHByb3RlY3RlZCBpbmNyZW1lbnRCdXR0b24hOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gYWxsb3dhYmxlIHZhbHVlIGZvciB0aGUgc3BpbmJveC5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQGRlZmF1bHQgSW5maW5pdHlcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBtYXggPSBJbmZpbml0eTtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gYWxsb3dhYmxlIHZhbHVlIGZvciB0aGUgc3BpbmJveC5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQGRlZmF1bHQgLUluZmluaXR5XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbWluID0gLUluZmluaXR5O1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgaW5jcmVtZW50IG9yIGRlY3JlbWVudCBzdGVwIGZvciB0aGUgc3BpbmJveC5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIHN0ZXAgPSAxO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKDApO1xuICAgIGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzKHRoaXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyUHJlc3NIb2xkKHRoaXMuZGVjcmVtZW50QnV0dG9uKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQ/LnN0ZXBEb3duKCk7XG4gICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoKTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJlc3NIb2xkKHRoaXMuaW5jcmVtZW50QnV0dG9uKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQ/LnN0ZXBVcCgpO1xuICAgICAgdGhpcy5vbklucHV0Q2hhbmdlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWF4U3RlcHMoeyBjb2RlIH06IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoY29kZSA9PT0gJ0VuZCcgJiYgdGhpcy5taW4gIT09IC1JbmZpbml0eSkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLm1pbik7XG4gICAgfSBlbHNlIGlmIChjb2RlID09PSAnSG9tZScgJiYgdGhpcy5tYXggIT09IEluZmluaXR5KSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMubWF4KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tWYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IG51bWJlckF0dHJpYnV0ZSh0aGlzLmlucHV0RWxlbWVudC52YWx1ZSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSA8IHRoaXMubWluID8gdGhpcy5taW4gOiB2YWx1ZSA+IHRoaXMubWF4ID8gdGhpcy5tYXggOiB2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25JbnB1dENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bWJlckF0dHJpYnV0ZSh0aGlzLmlucHV0RWxlbWVudC52YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlclByZXNzSG9sZCh0YXJnZXQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIGZyb21FdmVudHModGFyZ2V0Lm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duJywgJ21vdXNlZG93bicsICdtb3VzZXVwJywgJ2tleXVwJykucGlwZShcbiAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50Py50eXBlICE9PSAna2V5ZG93bicgfHwgWydTcGFjZScsICdFbnRlciddLmluY2x1ZGVzKChldmVudCBhcyBLZXlib2FyZEV2ZW50KS5jb2RlKSksXG4gICAgICB0YXAoKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKHsgdHlwZSB9KSA9PiAoWydtb3VzZXVwJywgJ2tleXVwJ10uaW5jbHVkZXModHlwZSkgPyBORVZFUiA6IHRpbWVyKDUwMCwgMTAwKS5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQpKSkpLFxuICAgICAgdGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICApO1xuICB9XG59XG4iLCI8YnV0dG9uIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IGlzUmVhZG9ubHlcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJvZHgtc3BpbmJveF9fYWN0aW9uXCIgI2RlY3JlbWVudEJ1dHRvbj48b2R4LWljb24gbmFtZT1cIm1pbnVzXCIgLz48L2J1dHRvbj5cbjxpbnB1dFxuICBvZHhDb250cm9sXG4gIGNsYXNzPVwib2R4LXNwaW5ib3hfX2lucHV0XCJcbiAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICBbcmVhZG9ubHldPVwiaXNSZWFkb25seVwiXG4gIHR5cGU9XCJudW1iZXJcIlxuICBbdmFsdWVdPVwidmFsdWVcIlxuICBbbWluXT1cIm1pblwiXG4gIFttYXhdPVwibWF4XCJcbiAgW3N0ZXBdPVwic3RlcFwiXG4gIChrZXlkb3duKT1cIm1heFN0ZXBzKCRldmVudClcIlxuICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoKVwiXG4gIChibHVyKT1cImNoZWNrVmFsdWUoKVwiXG4vPlxuPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCB8fCBpc1JlYWRvbmx5XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwib2R4LXNwaW5ib3hfX2FjdGlvblwiICNpbmNyZW1lbnRCdXR0b24+PG9keC1pY29uIG5hbWU9XCJwbHVzXCIgLz48L2J1dHRvbj5cbiJdfQ==
@@ -32,7 +32,7 @@ export class HeaderTitleComponent {
32
32
  * @returns {SortStatus}
33
33
  */
34
34
  get getSortStatus() {
35
- return { column: this.item?.name, sortVariant: undefined };
35
+ return { column: this.item?.name, sortVariant: this.sortStatus?.sortVariant || undefined };
36
36
  }
37
37
  /**
38
38
  * Returns the icon name for the current sorting status (ascending, descending).
@@ -66,7 +66,7 @@ export class HeaderTitleComponent {
66
66
  * Resets the sort status to unsorted.
67
67
  */
68
68
  clearSortStatus() {
69
- this.sortStatus = this.getSortStatus;
69
+ this.sortStatus = { ...this.getSortStatus, sortVariant: undefined };
70
70
  this.check();
71
71
  }
72
72
  /**
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
124
124
  type: HostBinding,
125
125
  args: ['style.width']
126
126
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXRpdGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RhYmxlL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXItdGl0bGUvaGVhZGVyLXRpdGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RhYmxlL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXItdGl0bGUvaGVhZGVyLXRpdGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdJLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUUzQzs7OztHQUlHO0FBVUgsTUFBTSxPQUFPLG9CQUFvQjtJQVRqQztRQVVtQixVQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyx1QkFBa0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUMvQyxlQUFVLEdBQWUsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQVVwRDs7OztXQUlHO1FBQ0ksY0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztLQWtHckU7SUFoR0M7Ozs7T0FJRztJQUNILElBQVcsYUFBYTtRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQVcsUUFBUTtRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxLQUFLLGFBQWEsQ0FBQyxHQUFHO1lBQUUsT0FBTyxXQUFXLENBQUM7UUFDMUUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsS0FBSyxhQUFhLENBQUMsSUFBSTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ3pFLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVU7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRO1lBQUUsT0FBTztRQUNqQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxLQUFLLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzNFLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxLQUFLLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1RSxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNyQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLE9BQU87UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQW1CLEVBQUUsRUFBRSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLFNBQVM7YUFDWCxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ2IsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUNqQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFDekIsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQ3BGO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFNBQVMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFtQixFQUFFLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzVHLE9BQU8sU0FBUyxHQUFHLENBQUMsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUNjLFdBQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUM7SUFDbkMsQ0FBQzsrR0FwSFUsb0JBQW9CO21HQUFwQixvQkFBb0IscUtDeEJqQywrZ0JBZUEsMkNET1ksWUFBWSwrQkFBRSxpQkFBaUIscUhBQUUsbUJBQW1CLG9sQkFBRSxhQUFhOzs0RkFFbEUsb0JBQW9CO2tCQVRoQyxTQUFTOytCQUVFLG9CQUFvQixjQUVsQixJQUFJLGlCQUNELGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxDQUFDOzhCQWN2RSxJQUFJO3NCQURWLEtBQUs7Z0JBdUdRLFdBQVc7c0JBRHhCLFdBQVc7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2NoZWNrYm94JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24sIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU29ydFN0YXR1cywgVGFibGVCb2R5Q2VsbCwgVGFibGVIZWFkZXJDZWxsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFRBQkxFIH0gZnJvbSAnLi4vLi4vdGFibGUuY29uZmlnJztcblxuLyoqXG4gKiBIZWFkZXJUaXRsZUNvbXBvbmVudCBwcm92aWRlcyB0aGUgZnVuY3Rpb25hbGl0eSBmb3IgYSB0YWJsZSBoZWFkZXIgY2VsbCwgaW5jbHVkaW5nIHNvcnRpbmcgYW5kIGNoZWNrYm94XG4gKiBvcGVyYXRpb25zIGlmIGFwcGxpY2FibGUuIEl0IGhhbmRsZXMgY2hhbmdlcyBpbiBzb3J0IHN0YXRlIGFuZCBlbWl0cyByZWxldmFudCBldmVudHMgdG8gdGhlIHRhYmxlIGNvbXBvbmVudFxuICogdG8gbWFuYWdlIHNvcnRpbmcgYW5kIHNlbGVjdGlvbiBzdGF0ZSBhY3Jvc3MgdGhlIHRhYmxlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd0aFtvZHhIZWFkZXJUaXRsZV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLXRpdGxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENoZWNrYm94Q29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBJY29uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyVGl0bGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRhYmxlID0gaW5qZWN0KFRBQkxFKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gIHByaXZhdGUgc29ydFN0YXR1czogU29ydFN0YXR1cyA9IHRoaXMuZ2V0U29ydFN0YXR1cztcblxuICAvKipcbiAgICogVGhlIGhlYWRlciBjZWxsIGl0ZW0gY29udGFpbmluZyBtZXRhZGF0YSBsaWtlIGNvbHVtbiBuYW1lLCBzb3J0YWJpbGl0eSwgYW5kIHdoZXRoZXIgaXQgc2hvdWxkIGluY2x1ZGUgYSBjaGVja2JveC5cbiAgICpcbiAgICogQHR5cGUge1RhYmxlSGVhZGVyQ2VsbH1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpdGVtITogVGFibGVIZWFkZXJDZWxsO1xuXG4gIC8qKlxuICAgKiBGb3JtR3JvdXAgdG8gbWFuYWdlIHRoZSBjaGVja2JveCBzdGF0ZSB3aXRoaW4gdGhlIGhlYWRlci5cbiAgICpcbiAgICogQHR5cGUge0Zvcm1Hcm91cH1cbiAgICovXG4gIHB1YmxpYyBjaGVja0Zvcm0gPSBuZXcgRm9ybUdyb3VwKHsgY2hlY2s6IG5ldyBGb3JtQ29udHJvbChmYWxzZSkgfSk7XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIGFuZCByZXR1cm5zIHRoZSBjdXJyZW50IHNvcnQgc3RhdHVzIG9mIHRoZSBjb2x1bW4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgaGVhZGVyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7U29ydFN0YXR1c31cbiAgICovXG4gIHB1YmxpYyBnZXQgZ2V0U29ydFN0YXR1cygpOiBTb3J0U3RhdHVzIHtcbiAgICByZXR1cm4geyBjb2x1bW46IHRoaXMuaXRlbT8ubmFtZSwgc29ydFZhcmlhbnQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGljb24gbmFtZSBmb3IgdGhlIGN1cnJlbnQgc29ydGluZyBzdGF0dXMgKGFzY2VuZGluZywgZGVzY2VuZGluZykuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBwdWJsaWMgZ2V0IHNvcnRJY29uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc29ydFN0YXR1cy5zb3J0VmFyaWFudCA9PT0gU29ydERpcmVjdGlvbi5BU0MpIHJldHVybiAnc29ydC1kb3duJztcbiAgICBpZiAodGhpcy5zb3J0U3RhdHVzLnNvcnRWYXJpYW50ID09PSBTb3J0RGlyZWN0aW9uLkRFU0MpIHJldHVybiAnc29ydC11cCc7XG4gICAgcmV0dXJuICdzb3J0YWJsZSc7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgc29ydGluZyBzdGF0dXMgb2YgdGhlIGNvbHVtbiBhbmQgaW5mb3JtcyB0aGUgdGFibGUgY29tcG9uZW50IG9mIHRoZSBjaGFuZ2UuXG4gICAqL1xuICBwdWJsaWMgc29ydENvbHVtbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbT8uc29ydGFibGUpIHJldHVybjtcbiAgICBpZiAodGhpcy5zb3J0U3RhdHVzLnNvcnRWYXJpYW50ID09PSBTb3J0RGlyZWN0aW9uLkRFU0MgfHwgIXRoaXMuc29ydFN0YXR1cy5zb3J0VmFyaWFudCkge1xuICAgICAgdGhpcy50YWJsZS5jbGVhclNvcnQoKTtcbiAgICAgIHRoaXMuc29ydFN0YXR1cyA9IHsgLi4udGhpcy5zb3J0U3RhdHVzLCBzb3J0VmFyaWFudDogU29ydERpcmVjdGlvbi5BU0MgfTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29ydFN0YXR1cy5zb3J0VmFyaWFudCA9PT0gU29ydERpcmVjdGlvbi5BU0MpIHtcbiAgICAgIHRoaXMudGFibGUuY2xlYXJTb3J0KCk7XG4gICAgICB0aGlzLnNvcnRTdGF0dXMgPSB7IC4uLnRoaXMuc29ydFN0YXR1cywgc29ydFZhcmlhbnQ6IFNvcnREaXJlY3Rpb24uREVTQyB9O1xuICAgIH1cblxuICAgIHRoaXMudGFibGUuc29ydGVkLmVtaXQodGhpcy5zb3J0U3RhdHVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIHNvcnQgc3RhdHVzIHRvIHVuc29ydGVkLlxuICAgKi9cbiAgcHVibGljIGNsZWFyU29ydFN0YXR1cygpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRTdGF0dXMgPSB0aGlzLmdldFNvcnRTdGF0dXM7XG4gICAgdGhpcy5jaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBpdGVtcyBpbiB0aGUgY29sdW1uLCB1c2VkIHRvIGRldGVybWluZSBjaGVja2JveCBzdGF0ZS5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn1cbiAgICovXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZS5kYXRhKCkuZmlsdGVyKChkOiBUYWJsZUJvZHlDZWxsKSA9PiBkW3RoaXMuaXRlbS5uYW1lXSkubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGNvbXBvbmVudCB2aWV3LCB1c3VhbGx5IGFmdGVyIGEgc3RhdGUgY2hhbmdlLlxuICAgKi9cbiAgcHVibGljIGNoZWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY2hlY2tib3ggc2hvdWxkIGJlIG1hcmtlZCBhcyBjaGVja2VkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb2x1bW4gPSB0aGlzLml0ZW0uY2hlY2sgJiYgdGhpcy5pdGVtLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMudGFibGUuZGF0YSgpLmV2ZXJ5KChpdGVtOiBUYWJsZUJvZHlDZWxsKSA9PiBjb2x1bW4gJiYgaXRlbVtjb2x1bW5dKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrQm94TGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tCb3hMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbS5jaGVjaykgcmV0dXJuO1xuICAgIHRoaXMuY2hlY2tGb3JtXG4gICAgICAuZ2V0KCdjaGVjaycpXG4gICAgICA/LnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICB0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICB0YXAoKGNoZWNrKSA9PiB0aGlzLnRhYmxlLmNoZWNrZWQuZW1pdCh7IGNvbHVtbjogdGhpcy5pdGVtLm5hbWUsIGNoZWNrOiAhIWNoZWNrIH0pKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb2x1bW4gPSB0aGlzLml0ZW0uY2hlY2sgJiYgdGhpcy5pdGVtLm5hbWU7XG4gICAgY29uc3QgeyBsZW5ndGggfSA9IHRoaXMudGFibGUuZGF0YSgpO1xuICAgIGNvbnN0IHVuY2hlY2tlZCA9IGxlbmd0aCAtIHRoaXMudGFibGUuZGF0YSgpLmZpbHRlcigoaXRlbTogVGFibGVCb2R5Q2VsbCkgPT4gY29sdW1uICYmIGl0ZW1bY29sdW1uXSkubGVuZ3RoO1xuICAgIHJldHVybiB1bmNoZWNrZWQgPiAwICYmIHVuY2hlY2tlZCA8IGxlbmd0aDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKVxuICBwcm90ZWN0ZWQgZ2V0IGNvbHVtbldpZHRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbS53aWR0aCA/PyAnYXV0byc7XG4gIH1cbn1cbiIsIkBpZiAoaXRlbS5jaGVjaykge1xuICA8ZGl2IGNsYXNzPVwib2R4LXRhYmxlX19jaGVja1wiPlxuICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJjaGVja0Zvcm1cIj5cbiAgICAgIDxvZHgtY2hlY2tib3ggW2NoZWNrZWRdPVwiY2hlY2tlZFwiIFtpbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJjaGVja1wiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufSBAZWxzZSB7XG4gIDxkaXYgY2xhc3M9XCJvZHgtdGFibGVfX2hlYWRlci1jZWxsLXRpdGxlXCIgKGNsaWNrKT1cInNvcnRDb2x1bW4oKVwiIFtjbGFzcy5zb3J0YWJsZV09XCJpdGVtLnNvcnRhYmxlXCI+XG4gICAge3sgaXRlbS50aXRsZSB9fVxuICAgIEBpZiAoaXRlbS5zb3J0YWJsZSkge1xuICAgICAgPG9keC1pY29uIGljb25TZXQ9XCJjb3JlXCIgW25hbWVdPVwic29ydEljb25cIiBzaXplPVwic21hbGxcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1mb3JtLWZpZWxkXCIgLz5cbn1cbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXRpdGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RhYmxlL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXItdGl0bGUvaGVhZGVyLXRpdGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RhYmxlL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXItdGl0bGUvaGVhZGVyLXRpdGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdJLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUUzQzs7OztHQUlHO0FBVUgsTUFBTSxPQUFPLG9CQUFvQjtJQVRqQztRQVVtQixVQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FB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WSxZQUFZLCtCQUFFLGlCQUFpQixxSEFBRSxtQkFBbUIsb2xCQUFFLGFBQWE7OzRGQUVsRSxvQkFBb0I7a0JBVGhDLFNBQVM7K0JBRUUsb0JBQW9CLGNBRWxCLElBQUksaUJBQ0QsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUM7OEJBY3ZFLElBQUk7c0JBRFYsS0FBSztnQkF1R1EsV0FBVztzQkFEeEIsV0FBVzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvY2hlY2tib3gnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTb3J0U3RhdHVzLCBUYWJsZUJvZHlDZWxsLCBUYWJsZUhlYWRlckNlbGwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVEFCTEUgfSBmcm9tICcuLi8uLi90YWJsZS5jb25maWcnO1xuXG4vKipcbiAqIEhlYWRlclRpdGxlQ29tcG9uZW50IHByb3ZpZGVzIHRoZSBmdW5jdGlvbmFsaXR5IGZvciBhIHRhYmxlIGhlYWRlciBjZWxsLCBpbmNsdWRpbmcgc29ydGluZyBhbmQgY2hlY2tib3hcbiAqIG9wZXJhdGlvbnMgaWYgYXBwbGljYWJsZS4gSXQgaGFuZGxlcyBjaGFuZ2VzIGluIHNvcnQgc3RhdGUgYW5kIGVtaXRzIHJlbGV2YW50IGV2ZW50cyB0byB0aGUgdGFibGUgY29tcG9uZW50XG4gKiB0byBtYW5hZ2Ugc29ydGluZyBhbmQgc2VsZWN0aW9uIHN0YXRlIGFjcm9zcyB0aGUgdGFibGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ3RoW29keEhlYWRlclRpdGxlXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXItdGl0bGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2hlY2tib3hDb21wb25lbnQsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEljb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJUaXRsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFibGUgPSBpbmplY3QoVEFCTEUpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcbiAgcHJpdmF0ZSBzb3J0U3RhdHVzOiBTb3J0U3RhdHVzID0gdGhpcy5nZXRTb3J0U3RhdHVzO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGVyIGNlbGwgaXRlbSBjb250YWluaW5nIG1ldGFkYXRhIGxpa2UgY29sdW1uIG5hbWUsIHNvcnRhYmlsaXR5LCBhbmQgd2hldGhlciBpdCBzaG91bGQgaW5jbHVkZSBhIGNoZWNrYm94LlxuICAgKlxuICAgKiBAdHlwZSB7VGFibGVIZWFkZXJDZWxsfVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGl0ZW0hOiBUYWJsZUhlYWRlckNlbGw7XG5cbiAgLyoqXG4gICAqIEZvcm1Hcm91cCB0byBtYW5hZ2UgdGhlIGNoZWNrYm94IHN0YXRlIHdpdGhpbiB0aGUgaGVhZGVyLlxuICAgKlxuICAgKiBAdHlwZSB7Rm9ybUdyb3VwfVxuICAgKi9cbiAgcHVibGljIGNoZWNrRm9ybSA9IG5ldyBGb3JtR3JvdXAoeyBjaGVjazogbmV3IEZvcm1Db250cm9sKGZhbHNlKSB9KTtcblxuICAvKipcbiAgICogQ29tcHV0ZXMgYW5kIHJldHVybnMgdGhlIGN1cnJlbnQgc29ydCBzdGF0dXMgb2YgdGhlIGNvbHVtbiBhc3NvY2lhdGVkIHdpdGggdGhpcyBoZWFkZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIHtTb3J0U3RhdHVzfVxuICAgKi9cbiAgcHVibGljIGdldCBnZXRTb3J0U3RhdHVzKCk6IFNvcnRTdGF0dXMge1xuICAgIHJldHVybiB7IGNvbHVtbjogdGhpcy5pdGVtPy5uYW1lLCBzb3J0VmFyaWFudDogdGhpcy5zb3J0U3RhdHVzPy5zb3J0VmFyaWFudCB8fCB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBpY29uIG5hbWUgZm9yIHRoZSBjdXJyZW50IHNvcnRpbmcgc3RhdHVzIChhc2NlbmRpbmcsIGRlc2NlbmRpbmcpLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgcHVibGljIGdldCBzb3J0SWNvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNvcnRTdGF0dXMuc29ydFZhcmlhbnQgPT09IFNvcnREaXJlY3Rpb24uQVNDKSByZXR1cm4gJ3NvcnQtZG93bic7XG4gICAgaWYgKHRoaXMuc29ydFN0YXR1cy5zb3J0VmFyaWFudCA9PT0gU29ydERpcmVjdGlvbi5ERVNDKSByZXR1cm4gJ3NvcnQtdXAnO1xuICAgIHJldHVybiAnc29ydGFibGUnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHNvcnRpbmcgc3RhdHVzIG9mIHRoZSBjb2x1bW4gYW5kIGluZm9ybXMgdGhlIHRhYmxlIGNvbXBvbmVudCBvZiB0aGUgY2hhbmdlLlxuICAgKi9cbiAgcHVibGljIHNvcnRDb2x1bW4oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLml0ZW0/LnNvcnRhYmxlKSByZXR1cm47XG4gICAgaWYgKHRoaXMuc29ydFN0YXR1cy5zb3J0VmFyaWFudCA9PT0gU29ydERpcmVjdGlvbi5ERVNDIHx8ICF0aGlzLnNvcnRTdGF0dXMuc29ydFZhcmlhbnQpIHtcbiAgICAgIHRoaXMudGFibGUuY2xlYXJTb3J0KCk7XG4gICAgICB0aGlzLnNvcnRTdGF0dXMgPSB7IC4uLnRoaXMuc29ydFN0YXR1cywgc29ydFZhcmlhbnQ6IFNvcnREaXJlY3Rpb24uQVNDIH07XG4gICAgfSBlbHNlIGlmICh0aGlzLnNvcnRTdGF0dXMuc29ydFZhcmlhbnQgPT09IFNvcnREaXJlY3Rpb24uQVNDKSB7XG4gICAgICB0aGlzLnRhYmxlLmNsZWFyU29ydCgpO1xuICAgICAgdGhpcy5zb3J0U3RhdHVzID0geyAuLi50aGlzLnNvcnRTdGF0dXMsIHNvcnRWYXJpYW50OiBTb3J0RGlyZWN0aW9uLkRFU0MgfTtcbiAgICB9XG5cbiAgICB0aGlzLnRhYmxlLnNvcnRlZC5lbWl0KHRoaXMuc29ydFN0YXR1cyk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBzb3J0IHN0YXR1cyB0byB1bnNvcnRlZC5cbiAgICovXG4gIHB1YmxpYyBjbGVhclNvcnRTdGF0dXMoKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0U3RhdHVzID0geyAuLi50aGlzLmdldFNvcnRTdGF0dXMsIHNvcnRWYXJpYW50OiB1bmRlZmluZWQgfTtcbiAgICB0aGlzLmNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHNlbGVjdGVkIGl0ZW1zIGluIHRoZSBjb2x1bW4sIHVzZWQgdG8gZGV0ZXJtaW5lIGNoZWNrYm94IHN0YXRlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfVxuICAgKi9cbiAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRhYmxlLmRhdGEoKS5maWx0ZXIoKGQ6IFRhYmxlQm9keUNlbGwpID0+IGRbdGhpcy5pdGVtLm5hbWVdKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgY29tcG9uZW50IHZpZXcsIHVzdWFsbHkgYWZ0ZXIgYSBzdGF0ZSBjaGFuZ2UuXG4gICAqL1xuICBwdWJsaWMgY2hlY2soKTogdm9pZCB7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjaGVja2JveCBzaG91bGQgYmUgbWFya2VkIGFzIGNoZWNrZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgcHVibGljIGdldCBjaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuaXRlbS5jaGVjayAmJiB0aGlzLml0ZW0ubmFtZTtcbiAgICByZXR1cm4gdGhpcy50YWJsZS5kYXRhKCkuZXZlcnkoKGl0ZW06IFRhYmxlQm9keUNlbGwpID0+IGNvbHVtbiAmJiBpdGVtW2NvbHVtbl0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tCb3hMaXN0ZW5lcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0JveExpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pdGVtLmNoZWNrKSByZXR1cm47XG4gICAgdGhpcy5jaGVja0Zvcm1cbiAgICAgIC5nZXQoJ2NoZWNrJylcbiAgICAgID8udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIHRhcCgoY2hlY2spID0+IHRoaXMudGFibGUuY2hlY2tlZC5lbWl0KHsgY29sdW1uOiB0aGlzLml0ZW0ubmFtZSwgY2hlY2s6ICEhY2hlY2sgfSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuaXRlbS5jaGVjayAmJiB0aGlzLml0ZW0ubmFtZTtcbiAgICBjb25zdCB7IGxlbmd0aCB9ID0gdGhpcy50YWJsZS5kYXRhKCk7XG4gICAgY29uc3QgdW5jaGVja2VkID0gbGVuZ3RoIC0gdGhpcy50YWJsZS5kYXRhKCkuZmlsdGVyKChpdGVtOiBUYWJsZUJvZHlDZWxsKSA9PiBjb2x1bW4gJiYgaXRlbVtjb2x1bW5dKS5sZW5ndGg7XG4gICAgcmV0dXJuIHVuY2hlY2tlZCA+IDAgJiYgdW5jaGVja2VkIDwgbGVuZ3RoO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aCcpXG4gIHByb3RlY3RlZCBnZXQgY29sdW1uV2lkdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtLndpZHRoID8/ICdhdXRvJztcbiAgfVxufVxuIiwiQGlmIChpdGVtLmNoZWNrKSB7XG4gIDxkaXYgY2xhc3M9XCJvZHgtdGFibGVfX2NoZWNrXCI+XG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cImNoZWNrRm9ybVwiPlxuICAgICAgPG9keC1jaGVja2JveCBbY2hlY2tlZF09XCJjaGVja2VkXCIgW2luZGV0ZXJtaW5hdGVdPVwiaW5kZXRlcm1pbmF0ZVwiIGZvcm1Db250cm9sTmFtZT1cImNoZWNrXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59IEBlbHNlIHtcbiAgPGRpdiBjbGFzcz1cIm9keC10YWJsZV9faGVhZGVyLWNlbGwtdGl0bGVcIiAoY2xpY2spPVwic29ydENvbHVtbigpXCIgW2NsYXNzLnNvcnRhYmxlXT1cIml0ZW0uc29ydGFibGVcIj5cbiAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgQGlmIChpdGVtLnNvcnRhYmxlKSB7XG4gICAgICA8b2R4LWljb24gaWNvblNldD1cImNvcmVcIiBbbmFtZV09XCJzb3J0SWNvblwiIHNpemU9XCJzbWFsbFwiIC8+XG4gICAgfVxuICA8L2Rpdj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwib2R4LWZvcm0tZmllbGRcIiAvPlxufVxuIl19
@@ -3,6 +3,7 @@ import * as i0 from '@angular/core';
3
3
  import { numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Input } from '@angular/core';
4
4
  import { detectControllerChanges, DisabledController, ReadonlyController } from '@odx/angular';
5
5
  import { CustomFormControl, ControlDirective } from '@odx/angular/cdk/custom-form-control';
6
+ import { IconComponent } from '@odx/angular/components/icon';
6
7
  import { CSSComponent } from '@odx/angular/internal';
7
8
  import { fromEvents } from '@odx/angular/rxjs';
8
9
  import { untilDestroyed, injectElement } from '@odx/angular/utils';
@@ -78,7 +79,7 @@ let SpinboxComponent = class SpinboxComponent extends CustomFormControl {
78
79
  }), switchMap(({ type }) => (['mouseup', 'keyup'].includes(type) ? NEVER : timer(500, 100).pipe(startWith(undefined)))), this.takeUntilDestroyed());
79
80
  }
80
81
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpinboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: SpinboxComponent, isStandalone: true, selector: "odx-spinbox", inputs: { max: ["max", "max", numberAttribute], min: ["min", "min", numberAttribute], step: ["step", "step", numberAttribute] }, providers: [DisabledController.connect(), ReadonlyController.connect()], viewQueries: [{ propertyName: "decrementButton", first: true, predicate: ["decrementButton"], descendants: true }, { propertyName: "incrementButton", first: true, predicate: ["incrementButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n [disabled]=\"isDisabled || isReadonly\"\n type=\"button\"\n class=\"odx-spinbox__action odx-icon\"\n data-icon-set=\"core\"\n data-icon-name=\"minus\"\n #decrementButton\n></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button\n [disabled]=\"isDisabled || isReadonly\"\n type=\"button\"\n data-icon-set=\"core\"\n data-icon-name=\"plus\"\n class=\"odx-spinbox__action odx-icon\"\n #incrementButton\n></button>\n", dependencies: [{ kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: SpinboxComponent, isStandalone: true, selector: "odx-spinbox", inputs: { max: ["max", "max", numberAttribute], min: ["min", "min", numberAttribute], step: ["step", "step", numberAttribute] }, providers: [DisabledController.connect(), ReadonlyController.connect()], viewQueries: [{ propertyName: "decrementButton", first: true, predicate: ["decrementButton"], descendants: true }, { propertyName: "incrementButton", first: true, predicate: ["incrementButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #decrementButton><odx-icon name=\"minus\" /></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #incrementButton><odx-icon name=\"plus\" /></button>\n", dependencies: [{ kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
82
83
  };
83
84
  SpinboxComponent = __decorate([
84
85
  CSSComponent('spinbox'),
@@ -86,7 +87,7 @@ SpinboxComponent = __decorate([
86
87
  ], SpinboxComponent);
87
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpinboxComponent, decorators: [{
88
89
  type: Component,
89
- args: [{ standalone: true, selector: 'odx-spinbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ControlDirective], providers: [DisabledController.connect(), ReadonlyController.connect()], template: "<button\n [disabled]=\"isDisabled || isReadonly\"\n type=\"button\"\n class=\"odx-spinbox__action odx-icon\"\n data-icon-set=\"core\"\n data-icon-name=\"minus\"\n #decrementButton\n></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button\n [disabled]=\"isDisabled || isReadonly\"\n type=\"button\"\n data-icon-set=\"core\"\n data-icon-name=\"plus\"\n class=\"odx-spinbox__action odx-icon\"\n #incrementButton\n></button>\n" }]
90
+ args: [{ standalone: true, selector: 'odx-spinbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ControlDirective, IconComponent], providers: [DisabledController.connect(), ReadonlyController.connect()], template: "<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #decrementButton><odx-icon name=\"minus\" /></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #incrementButton><odx-icon name=\"plus\" /></button>\n" }]
90
91
  }], ctorParameters: () => [], propDecorators: { decrementButton: [{
91
92
  type: ViewChild,
92
93
  args: ['decrementButton']
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-spinbox.mjs","sources":["../../../../libs/angular/components/spinbox/src/lib/spinbox.component.ts","../../../../libs/angular/components/spinbox/src/lib/spinbox.component.html","../../../../libs/angular/components/spinbox/src/odx-angular-components-spinbox.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, numberAttribute, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { detectControllerChanges, DisabledController, ReadonlyController } from '@odx/angular';\nimport { ControlDirective, CustomFormControl } from '@odx/angular/cdk/custom-form-control';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { fromEvents } from '@odx/angular/rxjs';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { filter, NEVER, Observable, startWith, switchMap, tap, timer } from 'rxjs';\n\n/**\n * SpinboxComponent is a custom form control for numeric input which allows users to increment and decrement\n * the value using corresponding buttons. It supports keyboard navigation and automatic boundary checks for the values.\n * Extends CustomFormControl to provide additional behavior.\n *\n * @see {CustomFormControl}\n */\n@CSSComponent('spinbox')\n@Component({\n standalone: true,\n selector: 'odx-spinbox',\n templateUrl: 'spinbox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ControlDirective],\n providers: [DisabledController.connect(), ReadonlyController.connect()],\n})\nexport class SpinboxComponent extends CustomFormControl<number> implements AfterViewInit {\n private readonly takeUntilDestroyed = untilDestroyed();\n\n private get inputElement(): HTMLInputElement {\n return this.control?.element.nativeElement as HTMLInputElement;\n }\n\n @ViewChild('decrementButton')\n protected decrementButton!: ElementRef<HTMLButtonElement>;\n\n @ViewChild('incrementButton')\n protected incrementButton!: ElementRef<HTMLButtonElement>;\n\n public readonly element = injectElement();\n\n /**\n * The maximum allowable value for the spinbox.\n *\n * @type {number}\n * @default Infinity\n */\n @Input({ transform: numberAttribute })\n public max = Infinity;\n\n /**\n * The minimum allowable value for the spinbox.\n *\n * @type {number}\n * @default -Infinity\n */\n @Input({ transform: numberAttribute })\n public min = -Infinity;\n\n /**\n * The value increment or decrement step for the spinbox.\n *\n * @type {number}\n * @default 1\n */\n @Input({ transform: numberAttribute })\n public step = 1;\n\n constructor() {\n super(0);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n this.registerPressHold(this.decrementButton).subscribe(() => {\n this.inputElement?.stepDown();\n this.onInputChange();\n });\n this.registerPressHold(this.incrementButton).subscribe(() => {\n this.inputElement?.stepUp();\n this.onInputChange();\n });\n }\n\n protected maxSteps({ code }: KeyboardEvent) {\n if (code === 'End' && this.min !== -Infinity) {\n this.updateValue(this.min);\n } else if (code === 'Home' && this.max !== Infinity) {\n this.updateValue(this.max);\n }\n }\n\n protected checkValue(): void {\n const value = numberAttribute(this.inputElement.value);\n this.updateValue(value < this.min ? this.min : value > this.max ? this.max : value);\n }\n\n protected onInputChange(): void {\n this.updateValue(numberAttribute(this.inputElement.value));\n }\n\n private registerPressHold(target: ElementRef<HTMLElement>): Observable<unknown> {\n return fromEvents(target.nativeElement, 'keydown', 'mousedown', 'mouseup', 'keyup').pipe(\n filter((event) => event?.type !== 'keydown' || ['Space', 'Enter'].includes((event as KeyboardEvent).code)),\n tap((event) => {\n event.preventDefault();\n event.stopPropagation();\n }),\n switchMap(({ type }) => (['mouseup', 'keyup'].includes(type) ? NEVER : timer(500, 100).pipe(startWith(undefined)))),\n this.takeUntilDestroyed(),\n );\n }\n}\n","<button\n [disabled]=\"isDisabled || isReadonly\"\n type=\"button\"\n class=\"odx-spinbox__action odx-icon\"\n data-icon-set=\"core\"\n data-icon-name=\"minus\"\n #decrementButton\n></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button\n [disabled]=\"isDisabled || isReadonly\"\n type=\"button\"\n data-icon-set=\"core\"\n data-icon-name=\"plus\"\n class=\"odx-spinbox__action odx-icon\"\n #incrementButton\n></button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAQA;;;;;;AAMG;AAWI,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,iBAAyB,CAAA;AAG7D,IAAA,IAAY,YAAY,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,aAAiC,CAAC;KAChE;AAqCD,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,CAAC,CAAC,CAAC;QA1CM,IAAkB,CAAA,kBAAA,GAAG,cAAc,EAAE,CAAC;QAYvC,IAAO,CAAA,OAAA,GAAG,aAAa,EAAE,CAAC;AAE1C;;;;;AAKG;QAEI,IAAG,CAAA,GAAA,GAAG,QAAQ,CAAC;AAEtB;;;;;AAKG;QAEI,IAAG,CAAA,GAAA,GAAG,CAAC,QAAQ,CAAC;AAEvB;;;;;AAKG;QAEI,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC;AAId,QAAA,uBAAuB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;KAC3C;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,MAAK;AAC1D,YAAA,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,MAAK;AAC1D,YAAA,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;IAES,QAAQ,CAAC,EAAE,IAAI,EAAiB,EAAA;QACxC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE;AAC5C,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC5B;aAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE;AACnD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC5B;KACF;IAES,UAAU,GAAA;QAClB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;KACrF;IAES,aAAa,GAAA;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;KAC5D;AAEO,IAAA,iBAAiB,CAAC,MAA+B,EAAA;QACvD,OAAO,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CACtF,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAE,KAAuB,CAAC,IAAI,CAAC,CAAC,EAC1G,GAAG,CAAC,CAAC,KAAK,KAAI;YACZ,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB,CAAC,EACF,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACnH,IAAI,CAAC,kBAAkB,EAAE,CAC1B,CAAC;KACH;+GArFU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,CAAA,KAAA,EAAA,KAAA,EAqBP,eAAe,CASf,EAAA,GAAA,EAAA,CAAA,KAAA,EAAA,KAAA,EAAA,eAAe,0BASf,eAAe,CAAA,EAAA,EAAA,SAAA,EAzCxB,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,OAAO,EAAE,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBzE,6rBA8BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDRY,gBAAgB,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;AAGf,gBAAgB,GAAA,UAAA,CAAA;IAV5B,YAAY,CAAC,SAAS,CAAC;;AAUX,CAAA,EAAA,gBAAgB,CAsF5B,CAAA;4FAtFY,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAT5B,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,aAAa,EAAA,eAAA,EAEN,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA,CAAC,gBAAgB,CAAC,EAAA,SAAA,EAChB,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,OAAO,EAAE,CAAC,EAAA,QAAA,EAAA,6rBAAA,EAAA,CAAA;wDAU7D,eAAe,EAAA,CAAA;sBADxB,SAAS;uBAAC,iBAAiB,CAAA;gBAIlB,eAAe,EAAA,CAAA;sBADxB,SAAS;uBAAC,iBAAiB,CAAA;gBAYrB,GAAG,EAAA,CAAA;sBADT,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBAU9B,GAAG,EAAA,CAAA;sBADT,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBAU9B,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;;;AEhEvC;;AAEG;;;;"}
1
+ {"version":3,"file":"odx-angular-components-spinbox.mjs","sources":["../../../../libs/angular/components/spinbox/src/lib/spinbox.component.ts","../../../../libs/angular/components/spinbox/src/lib/spinbox.component.html","../../../../libs/angular/components/spinbox/src/odx-angular-components-spinbox.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, numberAttribute, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { detectControllerChanges, DisabledController, ReadonlyController } from '@odx/angular';\nimport { ControlDirective, CustomFormControl } from '@odx/angular/cdk/custom-form-control';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { fromEvents } from '@odx/angular/rxjs';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { filter, NEVER, Observable, startWith, switchMap, tap, timer } from 'rxjs';\n\n/**\n * SpinboxComponent is a custom form control for numeric input which allows users to increment and decrement\n * the value using corresponding buttons. It supports keyboard navigation and automatic boundary checks for the values.\n * Extends CustomFormControl to provide additional behavior.\n *\n * @see {CustomFormControl}\n */\n@CSSComponent('spinbox')\n@Component({\n standalone: true,\n selector: 'odx-spinbox',\n templateUrl: 'spinbox.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ControlDirective, IconComponent],\n providers: [DisabledController.connect(), ReadonlyController.connect()],\n})\nexport class SpinboxComponent extends CustomFormControl<number> implements AfterViewInit {\n private readonly takeUntilDestroyed = untilDestroyed();\n\n private get inputElement(): HTMLInputElement {\n return this.control?.element.nativeElement as HTMLInputElement;\n }\n\n @ViewChild('decrementButton')\n protected decrementButton!: ElementRef<HTMLButtonElement>;\n\n @ViewChild('incrementButton')\n protected incrementButton!: ElementRef<HTMLButtonElement>;\n\n public readonly element = injectElement();\n\n /**\n * The maximum allowable value for the spinbox.\n *\n * @type {number}\n * @default Infinity\n */\n @Input({ transform: numberAttribute })\n public max = Infinity;\n\n /**\n * The minimum allowable value for the spinbox.\n *\n * @type {number}\n * @default -Infinity\n */\n @Input({ transform: numberAttribute })\n public min = -Infinity;\n\n /**\n * The value increment or decrement step for the spinbox.\n *\n * @type {number}\n * @default 1\n */\n @Input({ transform: numberAttribute })\n public step = 1;\n\n constructor() {\n super(0);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n this.registerPressHold(this.decrementButton).subscribe(() => {\n this.inputElement?.stepDown();\n this.onInputChange();\n });\n this.registerPressHold(this.incrementButton).subscribe(() => {\n this.inputElement?.stepUp();\n this.onInputChange();\n });\n }\n\n protected maxSteps({ code }: KeyboardEvent) {\n if (code === 'End' && this.min !== -Infinity) {\n this.updateValue(this.min);\n } else if (code === 'Home' && this.max !== Infinity) {\n this.updateValue(this.max);\n }\n }\n\n protected checkValue(): void {\n const value = numberAttribute(this.inputElement.value);\n this.updateValue(value < this.min ? this.min : value > this.max ? this.max : value);\n }\n\n protected onInputChange(): void {\n this.updateValue(numberAttribute(this.inputElement.value));\n }\n\n private registerPressHold(target: ElementRef<HTMLElement>): Observable<unknown> {\n return fromEvents(target.nativeElement, 'keydown', 'mousedown', 'mouseup', 'keyup').pipe(\n filter((event) => event?.type !== 'keydown' || ['Space', 'Enter'].includes((event as KeyboardEvent).code)),\n tap((event) => {\n event.preventDefault();\n event.stopPropagation();\n }),\n switchMap(({ type }) => (['mouseup', 'keyup'].includes(type) ? NEVER : timer(500, 100).pipe(startWith(undefined)))),\n this.takeUntilDestroyed(),\n );\n }\n}\n","<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #decrementButton><odx-icon name=\"minus\" /></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action\" #incrementButton><odx-icon name=\"plus\" /></button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -84,7 +84,7 @@ class HeaderTitleComponent {
84
84
  * @returns {SortStatus}
85
85
  */
86
86
  get getSortStatus() {
87
- return { column: this.item?.name, sortVariant: undefined };
87
+ return { column: this.item?.name, sortVariant: this.sortStatus?.sortVariant || undefined };
88
88
  }
89
89
  /**
90
90
  * Returns the icon name for the current sorting status (ascending, descending).
@@ -118,7 +118,7 @@ class HeaderTitleComponent {
118
118
  * Resets the sort status to unsorted.
119
119
  */
120
120
  clearSortStatus() {
121
- this.sortStatus = this.getSortStatus;
121
+ this.sortStatus = { ...this.getSortStatus, sortVariant: undefined };
122
122
  this.check();
123
123
  }
124
124
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-table.mjs","sources":["../../../../libs/angular/components/table/src/lib/table.config.ts","../../../../libs/angular/components/table/src/lib/components/check-cell/check-cell.component.ts","../../../../libs/angular/components/table/src/lib/components/check-cell/check-cell.component.html","../../../../libs/angular/components/table/src/lib/components/header-title/header-title.component.ts","../../../../libs/angular/components/table/src/lib/components/header-title/header-title.component.html","../../../../libs/angular/components/table/src/lib/directives/table-cell.directive.ts","../../../../libs/angular/components/table/src/lib/directives/table-row.directive.ts","../../../../libs/angular/components/table/src/lib/models/sort-variant.ts","../../../../libs/angular/components/table/src/lib/models/table-variant.ts","../../../../libs/angular/components/table/src/lib/table.component.ts","../../../../libs/angular/components/table/src/lib/table.component.html","../../../../libs/angular/components/table/src/lib/table.module.ts","../../../../libs/angular/components/table/src/odx-angular-components-table.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { TableBodyCell } from './models';\nimport { TableComponent } from './table.component';\n\nexport const TABLE = new InjectionToken<TableComponent<TableBodyCell>>('odx-table');\n","import { booleanAttribute, Component, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CheckboxComponent } from '@odx/angular/components/checkbox';\nimport { injectElement } from '@odx/angular/utils';\nimport { TABLE } from '../../table.config';\n\n/**\n * CheckCellComponent provides a checkbox input within a table cell, allowing rows to be selected.\n * It is designed to be used in conjunction with a table component that manages state and header interactions,\n * particularly for functionalities like bulk actions.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'td[odx-table-cell][checked]',\n standalone: true,\n templateUrl: './check-cell.component.html',\n imports: [CheckboxComponent, FormsModule],\n})\nexport class CheckCellComponent {\n private readonly table = inject(TABLE);\n public readonly element = injectElement();\n\n /**\n * Indicates whether the checkbox within the table cell is checked.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public checked = false;\n\n /**\n * Event emitter that triggers when the checked state changes. It emits the new state of the checkbox.\n *\n * @emits {boolean}\n */\n @Output() public checkedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * Updates the checked state of the checkbox and notifies the parent table component, typically to update\n * the state of a header checkbox or other related components.\n * @param {boolean} e - The new checked state.\n */\n public update(e: boolean): void {\n this.checkedChange.emit(e);\n this.table.headers.forEach((header) => header.check && header.check());\n }\n}\n","<odx-checkbox [(ngModel)]=\"checked\" (ngModelChange)=\"update($event)\" />\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { CheckboxComponent } from '@odx/angular/components/checkbox';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { SortDirection, untilDestroyed } from '@odx/angular/utils';\nimport { tap } from 'rxjs';\nimport { SortStatus, TableBodyCell, TableHeaderCell } from '../../models';\nimport { TABLE } from '../../table.config';\n\n/**\n * HeaderTitleComponent provides the functionality for a table header cell, including sorting and checkbox\n * operations if applicable. It handles changes in sort state and emits relevant events to the table component\n * to manage sorting and selection state across the table.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'th[odxHeaderTitle]',\n templateUrl: './header-title.component.html',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, CheckboxComponent, ReactiveFormsModule, IconComponent],\n})\nexport class HeaderTitleComponent implements OnInit {\n private readonly table = inject(TABLE);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly takeUntilDestroyed = untilDestroyed();\n private sortStatus: SortStatus = this.getSortStatus;\n\n /**\n * The header cell item containing metadata like column name, sortability, and whether it should include a checkbox.\n *\n * @type {TableHeaderCell}\n */\n @Input()\n public item!: TableHeaderCell;\n\n /**\n * FormGroup to manage the checkbox state within the header.\n *\n * @type {FormGroup}\n */\n public checkForm = new FormGroup({ check: new FormControl(false) });\n\n /**\n * Computes and returns the current sort status of the column associated with this header.\n *\n * @returns {SortStatus}\n */\n public get getSortStatus(): SortStatus {\n return { column: this.item?.name, sortVariant: undefined };\n }\n\n /**\n * Returns the icon name for the current sorting status (ascending, descending).\n *\n * @returns {string}\n */\n public get sortIcon(): string {\n if (this.sortStatus.sortVariant === SortDirection.ASC) return 'sort-down';\n if (this.sortStatus.sortVariant === SortDirection.DESC) return 'sort-up';\n return 'sortable';\n }\n\n /**\n * Toggles the sorting status of the column and informs the table component of the change.\n */\n public sortColumn(): void {\n if (!this.item?.sortable) return;\n if (this.sortStatus.sortVariant === SortDirection.DESC || !this.sortStatus.sortVariant) {\n this.table.clearSort();\n this.sortStatus = { ...this.sortStatus, sortVariant: SortDirection.ASC };\n } else if (this.sortStatus.sortVariant === SortDirection.ASC) {\n this.table.clearSort();\n this.sortStatus = { ...this.sortStatus, sortVariant: SortDirection.DESC };\n }\n\n this.table.sorted.emit(this.sortStatus);\n }\n\n /**\n * Resets the sort status to unsorted.\n */\n public clearSortStatus(): void {\n this.sortStatus = this.getSortStatus;\n this.check();\n }\n\n /**\n * Returns the number of selected items in the column, used to determine checkbox state.\n *\n * @returns {number}\n */\n public get selected(): number {\n return this.table.data().filter((d: TableBodyCell) => d[this.item.name]).length;\n }\n\n /**\n * Updates the component view, usually after a state change.\n */\n public check(): void {\n this.cdr.markForCheck();\n }\n\n /**\n * Determines whether the checkbox should be marked as checked.\n *\n * @returns {boolean}\n */\n public get checked(): boolean {\n const column = this.item.check && this.item.name;\n return this.table.data().every((item: TableBodyCell) => column && item[column]);\n }\n\n public ngOnInit(): void {\n this.checkBoxListener();\n }\n\n private checkBoxListener(): void {\n if (!this.item.check) return;\n this.checkForm\n .get('check')\n ?.valueChanges.pipe(\n this.takeUntilDestroyed(),\n tap((check) => this.table.checked.emit({ column: this.item.name, check: !!check })),\n )\n .subscribe();\n }\n\n public get indeterminate(): boolean {\n const column = this.item.check && this.item.name;\n const { length } = this.table.data();\n const unchecked = length - this.table.data().filter((item: TableBodyCell) => column && item[column]).length;\n return unchecked > 0 && unchecked < length;\n }\n\n @HostBinding('style.width')\n protected get columnWidth(): string {\n return this.item.width ?? 'auto';\n }\n}\n","@if (item.check) {\n <div class=\"odx-table__check\">\n <div [formGroup]=\"checkForm\">\n <odx-checkbox [checked]=\"checked\" [indeterminate]=\"indeterminate\" formControlName=\"check\" />\n </div>\n </div>\n} @else {\n <div class=\"odx-table__header-cell-title\" (click)=\"sortColumn()\" [class.sortable]=\"item.sortable\">\n {{ item.title }}\n @if (item.sortable) {\n <odx-icon iconSet=\"core\" [name]=\"sortIcon\" size=\"small\" />\n }\n </div>\n <ng-content select=\"odx-form-field\" />\n}\n","import { Directive } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * TableCellDirective enhances an HTML td element by providing a role attribute with a value of \"cell\".\n * This directive is used to define a cell within a table.\n */\n@CSSComponent('table__cell')\n@Directive({\n selector: 'td[odx-table-cell]',\n standalone: true,\n host: {\n '[attr.role]': '\"cell\"',\n },\n})\nexport class TableCellDirective {\n public readonly element = injectElement();\n}\n","import { Directive } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * TableRowDirective enhances an HTML tr element by providing a role attribute with a value of \"row\".\n * This directive is used to define a row within a table.\n */\n@CSSComponent('table__row')\n@Directive({\n selector: 'tr[odx-table-row]',\n standalone: true,\n host: {\n '[attr.role]': '\"row\"',\n '[attr.tabindex]': '0',\n },\n})\nexport class TableRowDirective {\n public readonly element = injectElement();\n}\n","import { SortDirection } from '@odx/angular/utils';\n\n/**\n * @deprecated Use `SortDirection` from `@odx/angular/utils` instead.\n * Consider using `SortDirection | undefined` or `SortDirection | null` to represent an unsorted state.\n * Defines the possible sort states for a table column.\n */\nexport type TableSortVariant = 'unsorted' | SortDirection;\n\n/**\n * @deprecated Use `SortDirection` from `@odx/angular/utils` instead.\n * Consider using `SortDirection | undefined` or `SortDirection | null` to represent an unsorted state.\n * Constant object representing the available sort states for a table column.\n * @property {string} UNSORTED - The column is not sorted.\n * @property {string} ASC - The column is sorted in ascending order (equivalent to `SortDirection.ASC`).\n * @property {string} DESC - The column is sorted in descending order (equivalent to `SortDirection.DESC`).\n * @readonly\n */\nexport const TableSortVariant = {\n UNSORTED: 'unsorted',\n // ASC and DESC values are now inherited from SortDirection\n ...SortDirection,\n} as const;\n","export type TableVariant = typeof TableVariant[keyof typeof TableVariant];\n\nexport const TableVariant = {\n DEFAULT: 'default',\n STRIPED: 'striped',\n} as const;\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, input, Input, OnInit, Output, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { FormFieldModule } from '@odx/angular/components/form-field';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { debounceTime, tap } from 'rxjs';\nimport { HeaderTitleComponent } from './components/header-title/header-title.component';\nimport { TableCellDirective, TableRowDirective } from './directives';\nimport { SortStatus, TableHeaderCell, TableVariant } from './models';\nimport { TABLE } from './table.config';\n\n/**\n * TableComponent is a dynamic table structure built for displaying complex data sets with sorting, filtering,\n * and checkable functionality. It provides configuration options through various inputs that allow the\n * customization of table behavior and presentation.\n *\n * This component is highly modular, integrating with other components such as `HeaderTitleComponent` for header\n * management, and using Angular forms for dynamic data filtering.\n *\n * @template T - The type of data that the table displays.\n */\n@CSSComponent('table')\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'table[odxTable]',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.role]': '\"table\"',\n },\n templateUrl: './table.component.html',\n imports: [CommonModule, ReactiveFormsModule, FormFieldModule, HeaderTitleComponent, TableRowDirective, TableCellDirective],\n providers: [{ provide: TABLE, useExisting: TableComponent }],\n})\nexport class TableComponent<T> implements OnInit {\n private readonly takeUntilDestroyed = untilDestroyed();\n public readonly element = injectElement();\n\n /**\n * Specifies the table variant for CSS styling.\n *\n * @type {TableVariant | null}\n */\n @CSSModifier()\n @Input()\n public variant?: TableVariant | null;\n\n /**\n * Data array of type T that the table displays.\n *\n * @type {Signal<T[]>}\n */\n public data = input.required<T[]>();\n\n /**\n * Message to display when no data is available.\n *\n * @type {Signal<string>}\n */\n public noDataMessage = input<string>('No data available');\n\n /**\n * Configuration for table headers that controls behavior such as sorting, filtering, checkbox display, and width.\n * Should be in the same order as the columns in the template.\n *\n * @type {Signal<TableHeaderCell[]>}\n */\n public headerData = input.required<TableHeaderCell[]>();\n\n /**\n * FormGroup to handle the dynamic filtering controls, each tied to a header cell that has filtering enabled.\n */\n public form: FormGroup = new FormGroup({});\n\n /**\n * Event emitter for when a column's sorting status changes.\n *\n * @emits {SortStatus}\n */\n @Output()\n public readonly sorted: EventEmitter<SortStatus> = new EventEmitter();\n\n /**\n * Event emitter for when the table's filtering conditions change.\n *\n * @emits {{ [key: string]: string }}\n */\n @Output()\n public readonly filtered: EventEmitter<{ [key: string]: string }> = new EventEmitter();\n\n /**\n * Event emitter for when a checkbox column's checked state changes.\n *\n * @emits {{ column: string; check: boolean }}\n */\n @Output()\n public readonly checked: EventEmitter<{ column: string; check: boolean }> = new EventEmitter();\n\n /**\n * A QueryList of HeaderTitleComponent instances, each corresponding to a header cell in the table.\n *\n * @type {QueryList<HeaderTitleComponent>}\n */\n @ViewChildren(HeaderTitleComponent)\n public headers!: QueryList<HeaderTitleComponent>;\n\n public ngOnInit(): void {\n this.headerData().forEach((item) => item.filter && this.form.addControl(item.name, new FormControl('')));\n this.formListener();\n }\n\n /**\n * Clears the sorting status of all headers.\n */\n public clearSort(): void {\n this.headers.forEach((header) => header.clearSortStatus());\n }\n\n private formListener(): void {\n if (Object.keys(this.form.controls).length === 0) return;\n this.form.valueChanges\n .pipe(\n debounceTime(600),\n this.takeUntilDestroyed(),\n tap(() => {\n this.filtered.emit(this.form.value);\n this.headers?.filter((header) => !!header.item.check).forEach((header) => header.check());\n }),\n )\n .subscribe();\n }\n}\n","<thead class=\"odx-table__head\" role=\"rowgroup\" [formGroup]=\"form\">\n <tr class=\"odx-table__header-row\" role=\"row\">\n @for (item of headerData(); track $index) {\n <th class=\"odx-table__header-cell\" role=\"columnheader\" odxHeaderTitle [item]=\"item\">\n @if (item.filter) {\n <odx-form-field>\n <input placeholder=\"Filter\" [formControlName]=\"item.name\" type=\"text\" odxFormFieldControl />\n </odx-form-field>\n }\n </th>\n }\n </tr>\n</thead>\n<tbody class=\"odx-table__body\" role=\"rowgroup\">\n @if (data() && !!data().length) {\n <ng-content select=\"tr\" />\n } @else {\n <tr odx-table-row class=\"odx-table__no-data-row\">\n <td odx-table-cell [attr.colspan]=\"headerData().length\">{{ noDataMessage() }}</td>\n </tr>\n }\n</tbody>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CheckCellComponent } from './components/check-cell/check-cell.component';\nimport { TableCellDirective } from './directives/table-cell.directive';\nimport { TableRowDirective } from './directives/table-row.directive';\nimport { TableComponent } from './table.component';\n\nconst modules = [TableComponent, TableRowDirective, TableCellDirective, CheckCellComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class TableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-components-table.mjs","sources":["../../../../libs/angular/components/table/src/lib/table.config.ts","../../../../libs/angular/components/table/src/lib/components/check-cell/check-cell.component.ts","../../../../libs/angular/components/table/src/lib/components/check-cell/check-cell.component.html","../../../../libs/angular/components/table/src/lib/components/header-title/header-title.component.ts","../../../../libs/angular/components/table/src/lib/components/header-title/header-title.component.html","../../../../libs/angular/components/table/src/lib/directives/table-cell.directive.ts","../../../../libs/angular/components/table/src/lib/directives/table-row.directive.ts","../../../../libs/angular/components/table/src/lib/models/sort-variant.ts","../../../../libs/angular/components/table/src/lib/models/table-variant.ts","../../../../libs/angular/components/table/src/lib/table.component.ts","../../../../libs/angular/components/table/src/lib/table.component.html","../../../../libs/angular/components/table/src/lib/table.module.ts","../../../../libs/angular/components/table/src/odx-angular-components-table.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { TableBodyCell } from './models';\nimport { TableComponent } from './table.component';\n\nexport const TABLE = new InjectionToken<TableComponent<TableBodyCell>>('odx-table');\n","import { booleanAttribute, Component, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CheckboxComponent } from '@odx/angular/components/checkbox';\nimport { injectElement } from '@odx/angular/utils';\nimport { TABLE } from '../../table.config';\n\n/**\n * CheckCellComponent provides a checkbox input within a table cell, allowing rows to be selected.\n * It is designed to be used in conjunction with a table component that manages state and header interactions,\n * particularly for functionalities like bulk actions.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'td[odx-table-cell][checked]',\n standalone: true,\n templateUrl: './check-cell.component.html',\n imports: [CheckboxComponent, FormsModule],\n})\nexport class CheckCellComponent {\n private readonly table = inject(TABLE);\n public readonly element = injectElement();\n\n /**\n * Indicates whether the checkbox within the table cell is checked.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public checked = false;\n\n /**\n * Event emitter that triggers when the checked state changes. It emits the new state of the checkbox.\n *\n * @emits {boolean}\n */\n @Output() public checkedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * Updates the checked state of the checkbox and notifies the parent table component, typically to update\n * the state of a header checkbox or other related components.\n * @param {boolean} e - The new checked state.\n */\n public update(e: boolean): void {\n this.checkedChange.emit(e);\n this.table.headers.forEach((header) => header.check && header.check());\n }\n}\n","<odx-checkbox [(ngModel)]=\"checked\" (ngModelChange)=\"update($event)\" />\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { CheckboxComponent } from '@odx/angular/components/checkbox';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { SortDirection, untilDestroyed } from '@odx/angular/utils';\nimport { tap } from 'rxjs';\nimport { SortStatus, TableBodyCell, TableHeaderCell } from '../../models';\nimport { TABLE } from '../../table.config';\n\n/**\n * HeaderTitleComponent provides the functionality for a table header cell, including sorting and checkbox\n * operations if applicable. It handles changes in sort state and emits relevant events to the table component\n * to manage sorting and selection state across the table.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'th[odxHeaderTitle]',\n templateUrl: './header-title.component.html',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, CheckboxComponent, ReactiveFormsModule, IconComponent],\n})\nexport class HeaderTitleComponent implements OnInit {\n private readonly table = inject(TABLE);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly takeUntilDestroyed = untilDestroyed();\n private sortStatus: SortStatus = this.getSortStatus;\n\n /**\n * The header cell item containing metadata like column name, sortability, and whether it should include a checkbox.\n *\n * @type {TableHeaderCell}\n */\n @Input()\n public item!: TableHeaderCell;\n\n /**\n * FormGroup to manage the checkbox state within the header.\n *\n * @type {FormGroup}\n */\n public checkForm = new FormGroup({ check: new FormControl(false) });\n\n /**\n * Computes and returns the current sort status of the column associated with this header.\n *\n * @returns {SortStatus}\n */\n public get getSortStatus(): SortStatus {\n return { column: this.item?.name, sortVariant: this.sortStatus?.sortVariant || undefined };\n }\n\n /**\n * Returns the icon name for the current sorting status (ascending, descending).\n *\n * @returns {string}\n */\n public get sortIcon(): string {\n if (this.sortStatus.sortVariant === SortDirection.ASC) return 'sort-down';\n if (this.sortStatus.sortVariant === SortDirection.DESC) return 'sort-up';\n return 'sortable';\n }\n\n /**\n * Toggles the sorting status of the column and informs the table component of the change.\n */\n public sortColumn(): void {\n if (!this.item?.sortable) return;\n if (this.sortStatus.sortVariant === SortDirection.DESC || !this.sortStatus.sortVariant) {\n this.table.clearSort();\n this.sortStatus = { ...this.sortStatus, sortVariant: SortDirection.ASC };\n } else if (this.sortStatus.sortVariant === SortDirection.ASC) {\n this.table.clearSort();\n this.sortStatus = { ...this.sortStatus, sortVariant: SortDirection.DESC };\n }\n\n this.table.sorted.emit(this.sortStatus);\n }\n\n /**\n * Resets the sort status to unsorted.\n */\n public clearSortStatus(): void {\n this.sortStatus = { ...this.getSortStatus, sortVariant: undefined };\n this.check();\n }\n\n /**\n * Returns the number of selected items in the column, used to determine checkbox state.\n *\n * @returns {number}\n */\n public get selected(): number {\n return this.table.data().filter((d: TableBodyCell) => d[this.item.name]).length;\n }\n\n /**\n * Updates the component view, usually after a state change.\n */\n public check(): void {\n this.cdr.markForCheck();\n }\n\n /**\n * Determines whether the checkbox should be marked as checked.\n *\n * @returns {boolean}\n */\n public get checked(): boolean {\n const column = this.item.check && this.item.name;\n return this.table.data().every((item: TableBodyCell) => column && item[column]);\n }\n\n public ngOnInit(): void {\n this.checkBoxListener();\n }\n\n private checkBoxListener(): void {\n if (!this.item.check) return;\n this.checkForm\n .get('check')\n ?.valueChanges.pipe(\n this.takeUntilDestroyed(),\n tap((check) => this.table.checked.emit({ column: this.item.name, check: !!check })),\n )\n .subscribe();\n }\n\n public get indeterminate(): boolean {\n const column = this.item.check && this.item.name;\n const { length } = this.table.data();\n const unchecked = length - this.table.data().filter((item: TableBodyCell) => column && item[column]).length;\n return unchecked > 0 && unchecked < length;\n }\n\n @HostBinding('style.width')\n protected get columnWidth(): string {\n return this.item.width ?? 'auto';\n }\n}\n","@if (item.check) {\n <div class=\"odx-table__check\">\n <div [formGroup]=\"checkForm\">\n <odx-checkbox [checked]=\"checked\" [indeterminate]=\"indeterminate\" formControlName=\"check\" />\n </div>\n </div>\n} @else {\n <div class=\"odx-table__header-cell-title\" (click)=\"sortColumn()\" [class.sortable]=\"item.sortable\">\n {{ item.title }}\n @if (item.sortable) {\n <odx-icon iconSet=\"core\" [name]=\"sortIcon\" size=\"small\" />\n }\n </div>\n <ng-content select=\"odx-form-field\" />\n}\n","import { Directive } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * TableCellDirective enhances an HTML td element by providing a role attribute with a value of \"cell\".\n * This directive is used to define a cell within a table.\n */\n@CSSComponent('table__cell')\n@Directive({\n selector: 'td[odx-table-cell]',\n standalone: true,\n host: {\n '[attr.role]': '\"cell\"',\n },\n})\nexport class TableCellDirective {\n public readonly element = injectElement();\n}\n","import { Directive } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * TableRowDirective enhances an HTML tr element by providing a role attribute with a value of \"row\".\n * This directive is used to define a row within a table.\n */\n@CSSComponent('table__row')\n@Directive({\n selector: 'tr[odx-table-row]',\n standalone: true,\n host: {\n '[attr.role]': '\"row\"',\n '[attr.tabindex]': '0',\n },\n})\nexport class TableRowDirective {\n public readonly element = injectElement();\n}\n","import { SortDirection } from '@odx/angular/utils';\n\n/**\n * @deprecated Use `SortDirection` from `@odx/angular/utils` instead.\n * Consider using `SortDirection | undefined` or `SortDirection | null` to represent an unsorted state.\n * Defines the possible sort states for a table column.\n */\nexport type TableSortVariant = 'unsorted' | SortDirection;\n\n/**\n * @deprecated Use `SortDirection` from `@odx/angular/utils` instead.\n * Consider using `SortDirection | undefined` or `SortDirection | null` to represent an unsorted state.\n * Constant object representing the available sort states for a table column.\n * @property {string} UNSORTED - The column is not sorted.\n * @property {string} ASC - The column is sorted in ascending order (equivalent to `SortDirection.ASC`).\n * @property {string} DESC - The column is sorted in descending order (equivalent to `SortDirection.DESC`).\n * @readonly\n */\nexport const TableSortVariant = {\n UNSORTED: 'unsorted',\n // ASC and DESC values are now inherited from SortDirection\n ...SortDirection,\n} as const;\n","export type TableVariant = typeof TableVariant[keyof typeof TableVariant];\n\nexport const TableVariant = {\n DEFAULT: 'default',\n STRIPED: 'striped',\n} as const;\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, input, Input, OnInit, Output, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { FormFieldModule } from '@odx/angular/components/form-field';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { debounceTime, tap } from 'rxjs';\nimport { HeaderTitleComponent } from './components/header-title/header-title.component';\nimport { TableCellDirective, TableRowDirective } from './directives';\nimport { SortStatus, TableHeaderCell, TableVariant } from './models';\nimport { TABLE } from './table.config';\n\n/**\n * TableComponent is a dynamic table structure built for displaying complex data sets with sorting, filtering,\n * and checkable functionality. It provides configuration options through various inputs that allow the\n * customization of table behavior and presentation.\n *\n * This component is highly modular, integrating with other components such as `HeaderTitleComponent` for header\n * management, and using Angular forms for dynamic data filtering.\n *\n * @template T - The type of data that the table displays.\n */\n@CSSComponent('table')\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'table[odxTable]',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.role]': '\"table\"',\n },\n templateUrl: './table.component.html',\n imports: [CommonModule, ReactiveFormsModule, FormFieldModule, HeaderTitleComponent, TableRowDirective, TableCellDirective],\n providers: [{ provide: TABLE, useExisting: TableComponent }],\n})\nexport class TableComponent<T> implements OnInit {\n private readonly takeUntilDestroyed = untilDestroyed();\n public readonly element = injectElement();\n\n /**\n * Specifies the table variant for CSS styling.\n *\n * @type {TableVariant | null}\n */\n @CSSModifier()\n @Input()\n public variant?: TableVariant | null;\n\n /**\n * Data array of type T that the table displays.\n *\n * @type {Signal<T[]>}\n */\n public data = input.required<T[]>();\n\n /**\n * Message to display when no data is available.\n *\n * @type {Signal<string>}\n */\n public noDataMessage = input<string>('No data available');\n\n /**\n * Configuration for table headers that controls behavior such as sorting, filtering, checkbox display, and width.\n * Should be in the same order as the columns in the template.\n *\n * @type {Signal<TableHeaderCell[]>}\n */\n public headerData = input.required<TableHeaderCell[]>();\n\n /**\n * FormGroup to handle the dynamic filtering controls, each tied to a header cell that has filtering enabled.\n */\n public form: FormGroup = new FormGroup({});\n\n /**\n * Event emitter for when a column's sorting status changes.\n *\n * @emits {SortStatus}\n */\n @Output()\n public readonly sorted: EventEmitter<SortStatus> = new EventEmitter();\n\n /**\n * Event emitter for when the table's filtering conditions change.\n *\n * @emits {{ [key: string]: string }}\n */\n @Output()\n public readonly filtered: EventEmitter<{ [key: string]: string }> = new EventEmitter();\n\n /**\n * Event emitter for when a checkbox column's checked state changes.\n *\n * @emits {{ column: string; check: boolean }}\n */\n @Output()\n public readonly checked: EventEmitter<{ column: string; check: boolean }> = new EventEmitter();\n\n /**\n * A QueryList of HeaderTitleComponent instances, each corresponding to a header cell in the table.\n *\n * @type {QueryList<HeaderTitleComponent>}\n */\n @ViewChildren(HeaderTitleComponent)\n public headers!: QueryList<HeaderTitleComponent>;\n\n public ngOnInit(): void {\n this.headerData().forEach((item) => item.filter && this.form.addControl(item.name, new FormControl('')));\n this.formListener();\n }\n\n /**\n * Clears the sorting status of all headers.\n */\n public clearSort(): void {\n this.headers.forEach((header) => header.clearSortStatus());\n }\n\n private formListener(): void {\n if (Object.keys(this.form.controls).length === 0) return;\n this.form.valueChanges\n .pipe(\n debounceTime(600),\n this.takeUntilDestroyed(),\n tap(() => {\n this.filtered.emit(this.form.value);\n this.headers?.filter((header) => !!header.item.check).forEach((header) => header.check());\n }),\n )\n .subscribe();\n }\n}\n","<thead class=\"odx-table__head\" role=\"rowgroup\" [formGroup]=\"form\">\n <tr class=\"odx-table__header-row\" role=\"row\">\n @for (item of headerData(); track $index) {\n <th class=\"odx-table__header-cell\" role=\"columnheader\" odxHeaderTitle [item]=\"item\">\n @if (item.filter) {\n <odx-form-field>\n <input placeholder=\"Filter\" [formControlName]=\"item.name\" type=\"text\" odxFormFieldControl />\n </odx-form-field>\n }\n </th>\n }\n </tr>\n</thead>\n<tbody class=\"odx-table__body\" role=\"rowgroup\">\n @if (data() && !!data().length) {\n <ng-content select=\"tr\" />\n } @else {\n <tr odx-table-row class=\"odx-table__no-data-row\">\n <td odx-table-cell [attr.colspan]=\"headerData().length\">{{ noDataMessage() }}</td>\n </tr>\n }\n</tbody>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CheckCellComponent } from './components/check-cell/check-cell.component';\nimport { TableCellDirective } from './directives/table-cell.directive';\nimport { TableRowDirective } from './directives/table-row.directive';\nimport { TableComponent } from './table.component';\n\nconst modules = [TableComponent, TableRowDirective, TableCellDirective, CheckCellComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class TableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odx/angular",
3
- "version": "12.17.1",
3
+ "version": "12.17.3",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "peerDependencies": {
@@ -424,18 +424,18 @@
424
424
  "esm": "./esm2022/components/select/odx-angular-components-select.mjs",
425
425
  "default": "./fesm2022/odx-angular-components-select.mjs"
426
426
  },
427
- "./components/slider": {
428
- "types": "./components/slider/index.d.ts",
429
- "esm2022": "./esm2022/components/slider/odx-angular-components-slider.mjs",
430
- "esm": "./esm2022/components/slider/odx-angular-components-slider.mjs",
431
- "default": "./fesm2022/odx-angular-components-slider.mjs"
432
- },
433
427
  "./components/spinbox": {
434
428
  "types": "./components/spinbox/index.d.ts",
435
429
  "esm2022": "./esm2022/components/spinbox/odx-angular-components-spinbox.mjs",
436
430
  "esm": "./esm2022/components/spinbox/odx-angular-components-spinbox.mjs",
437
431
  "default": "./fesm2022/odx-angular-components-spinbox.mjs"
438
432
  },
433
+ "./components/slider": {
434
+ "types": "./components/slider/index.d.ts",
435
+ "esm2022": "./esm2022/components/slider/odx-angular-components-slider.mjs",
436
+ "esm": "./esm2022/components/slider/odx-angular-components-slider.mjs",
437
+ "default": "./fesm2022/odx-angular-components-slider.mjs"
438
+ },
439
439
  "./components/switch": {
440
440
  "types": "./components/switch/index.d.ts",
441
441
  "esm2022": "./esm2022/components/switch/odx-angular-components-switch.mjs",