@odx/angular 12.17.2 → 12.17.4

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.4
4
+
5
+ ### Patch Changes
6
+
7
+ - e912c98: New UI for all components focus state, new UI for Switch component, new variants for Toast component
8
+
9
+ ## 12.17.3
10
+
11
+ ### Patch Changes
12
+
13
+ - 31a53d6: icon components for spinbox
14
+
3
15
  ## 12.17.2
4
16
 
5
17
  ### Patch Changes
@@ -3,7 +3,6 @@ import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmit
3
3
  import { A11yModule, InteractiveDirective } from '@odx/angular/cdk/a11y';
4
4
  import { ActionGroupComponent } from '@odx/angular/components/action-group';
5
5
  import { ButtonComponent } from '@odx/angular/components/button';
6
- import { ChipListRowComponent } from '@odx/angular/components/chip';
7
6
  import { IconComponent } from '@odx/angular/components/icon';
8
7
  import { MenuComponent, MenuDirective, MenuModule } from '@odx/angular/components/menu';
9
8
  import { CSSComponent, CSSModifier } from '@odx/angular/internal';
@@ -79,7 +78,7 @@ CardComponent = __decorate([
79
78
  export { CardComponent };
80
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardComponent, decorators: [{
81
80
  type: Component,
82
- args: [{ selector: 'odx-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [A11yModule, ButtonComponent, IconComponent, MenuModule, ActionGroupComponent, ChipListRowComponent], hostDirectives: [InteractiveDirective], template: "@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\"><odx-icon [name]=\"menuIcon\" iconSet=\"core\" /></button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n" }]
81
+ args: [{ selector: 'odx-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [A11yModule, ButtonComponent, IconComponent, MenuModule, ActionGroupComponent], hostDirectives: [InteractiveDirective], template: "@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\"><odx-icon [name]=\"menuIcon\" iconSet=\"core\" /></button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n" }]
83
82
  }], ctorParameters: () => [], propDecorators: { menu: [{
84
83
  type: ContentChild,
85
84
  args: [MenuComponent]
@@ -99,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
99
98
  }], interact: [{
100
99
  type: Output
101
100
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkL3NyYy9saWIvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkL3NyYy9saWIvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBRXZDOzs7Ozs7R0FNRztBQVdJLElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7SUFnRHhCLElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztJQUN2RyxDQUFDO0lBRUQ7UUFuRGlCLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLHVCQUFrQixHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLFdBQU0sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRW5DLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBYzdCLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUNqQzs7Ozs7V0FLRztRQUlJLFlBQU8sR0FBZ0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUV6RTs7Ozs7V0FLRztRQUVJLGFBQVEsR0FBRyxNQUFNLENBQUM7UUFFekI7Ozs7V0FJRztRQUVJLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBTzFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBWTtRQUM3QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBd0IsQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEYsTUFBTSxtQkFBbUIsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXpGLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUN2RixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQzsrR0FuRVUsYUFBYTttR0FBYixhQUFhLCtMQU9WLGFBQWEsMEVBR2Isb0JBQW9CLHlFQU1wQixtQkFBbUIsMkJBQVUsVUFBVSx1RUFIMUMsYUFBYSwwR0MzQzFCLDJsQ0FxQ0EsMkNEVlksVUFBVSxzTUFBRSxlQUFlLHlHQUFFLGFBQWEsaUhBQUUsVUFBVSxvS0FBRSxvQkFBb0I7O0FBZ0MvRTtJQUZOLFdBQVcsRUFBRTs7OENBRTJEO0FBN0I5RCxhQUFhO0lBVnpCLFlBQVksQ0FBQyxNQUFNLENBQUM7O0dBVVIsYUFBYSxDQW9FekI7OzRGQXBFWSxhQUFhO2tCQVR6QixTQUFTOytCQUNFLFVBQVUsY0FFUixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxVQUFVLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsa0JBQzdGLENBQUMsb0JBQW9CLENBQUM7d0RBVW5CLElBQUk7c0JBRHRCLFlBQVk7dUJBQUMsYUFBYTtnQkFJUixPQUFPO3NCQUR6QixZQUFZO3VCQUFDLG9CQUFvQjtnQkFJZixRQUFRO3NCQUQxQixTQUFTO3VCQUFDLGFBQWE7Z0JBSUwsTUFBTTtzQkFEeEIsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBYWhELE9BQU87c0JBRGIsS0FBSztnQkFVQyxRQUFRO3NCQURkLEtBQUs7Z0JBU0MsUUFBUTtzQkFEZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSwgSW50ZXJhY3RpdmVEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQWN0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hY3Rpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IENoaXBMaXN0Um93Q29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvY2hpcCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50LCBNZW51RGlyZWN0aXZlLCBNZW51TW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbWVudSc7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQsIENTU01vZGlmaWVyIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGNvbnRhaW5zRWxlbWVudCwgaW5qZWN0RWxlbWVudCwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgaW5qZWN0Q2FyZENvbmZpZyB9IGZyb20gJy4vY2FyZC5jb25maWcnO1xuaW1wb3J0IHsgQ2FyZEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDYXJkVmFyaWFudCB9IGZyb20gJy4vbW9kZWxzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY2FyZCBjb21wb25lbnQuXG4gKiBJdCBjYW4gY29udGFpbiBhIGhlYWRlciwgYm9keSwgYW5kIGZvb3Rlci4gVGhlIGNhcmQgY29tcG9uZW50IGNhbiBhbHNvIGhhdmUgYSBtZW51IGFuZCBhY3Rpb24gYnV0dG9ucy5cbiAqIEhhcyBob3N0IGRpcmVjdGl2ZSBmb3IgaW50ZXJhY3Rpdml0eS5cbiAqXG4gKiBAc2VlIHtJbnRlcmFjdGl2ZURpcmVjdGl2ZX1cbiAqL1xuQENTU0NvbXBvbmVudCgnY2FyZCcpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtBMTF5TW9kdWxlLCBCdXR0b25Db21wb25lbnQsIEljb25Db21wb25lbnQsIE1lbnVNb2R1bGUsIEFjdGlvbkdyb3VwQ29tcG9uZW50LCBDaGlwTGlzdFJvd0NvbXBvbmVudF0sXG4gIGhvc3REaXJlY3RpdmVzOiBbSW50ZXJhY3RpdmVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBpbnRlcmFjdGl2ZURpcmVjdGl2ZSA9IGluamVjdChJbnRlcmFjdGl2ZURpcmVjdGl2ZSwgeyBob3N0OiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0Q2FyZENvbmZpZygpO1xuXG4gIHByb3RlY3RlZCBjYXJkVmFyaWFudCA9IENhcmRWYXJpYW50O1xuXG4gIEBDb250ZW50Q2hpbGQoTWVudUNvbXBvbmVudClcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1lbnU/OiBNZW51Q29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoQWN0aW9uR3JvdXBDb21wb25lbnQpXG4gIHByb3RlY3RlZCByZWFkb25seSBidXR0b25zPzogQWN0aW9uR3JvdXBDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChNZW51RGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWVudUhvc3Q/OiBNZW51RGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGQoQ2FyZEZvb3RlckNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHByb3RlY3RlZCByZWFkb25seSBmb290ZXI/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcbiAgLyoqXG4gICAqIFRoZSB2YXJpYW50IG9mIHRoZSBjYXJkLlxuICAgKlxuICAgKiBAdHlwZSB7Q2FyZFZhcmlhbnR9XG4gICAqIEBkZWZhdWx0IENhcmRWYXJpYW50LkRFRkFVTFRcbiAgICovXG5cbiAgQENTU01vZGlmaWVyKClcbiAgQElucHV0KClcbiAgcHVibGljIHZhcmlhbnQ6IENhcmRWYXJpYW50ID0gdGhpcy5jb25maWcudmFyaWFudCA/PyBDYXJkVmFyaWFudC5ERUZBVUxUO1xuXG4gIC8qKlxuICAgKiBNZW51IGljb24gbmFtZS5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJ21vcmUnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWVudUljb24gPSAnbW9yZSc7XG5cbiAgLyoqXG4gICAqIEludGVyYWN0aXZpdHkgZXZlbnQgZW1pdHRlci5cbiAgICpcbiAgICogQGVtaXRzIHtFdmVudH1cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaW50ZXJhY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gIHB1YmxpYyBnZXQgbGF1bmNoVGlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYW50ID09PSBDYXJkVmFyaWFudC5MQVVOQ0hfVElMRSB8fCB0aGlzLnZhcmlhbnQgPT09IENhcmRWYXJpYW50LkxBVU5DSF9USUxFX0NFTlRFUkVEO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbnRlcmFjdGl2ZURpcmVjdGl2ZS5pbnRlcmFjdC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIHRoaXMuc3RvcEV2ZW50cyhldmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0b3BFdmVudHMoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQgfCBudWxsO1xuICAgIGNvbnN0IGlzRm9vdGVyRXZlbnQgPSBjb250YWluc0VsZW1lbnQodGhpcy5mb290ZXI/Lm5hdGl2ZUVsZW1lbnQsIHRhcmdldCwgZmFsc2UpO1xuICAgIGNvbnN0IGlzTWVudUV2ZW50ID0gY29udGFpbnNFbGVtZW50KHRoaXMubWVudUhvc3Q/LmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGFyZ2V0KTtcbiAgICBjb25zdCBpc0hlYWRlckJ1dHRvbkV2ZW50ID0gY29udGFpbnNFbGVtZW50KHRoaXMuYnV0dG9ucz8uZWxlbWVudC5uYXRpdmVFbGVtZW50LCB0YXJnZXQpO1xuXG4gICAgaWYgKCFpc0Zvb3RlckV2ZW50ICYmICFpc01lbnVFdmVudCAmJiAhdGhpcy5tZW51SG9zdD8uaXNPcGVuKCkgJiYgIWlzSGVhZGVyQnV0dG9uRXZlbnQpIHtcbiAgICAgIHRoaXMuaW50ZXJhY3QuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKCFsYXVuY2hUaWxlKSB7XG4gIDxkaXYgY2xhc3M9XCJvZHgtY2FyZF9fY29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwib2R4LWNhcmQtaW1hZ2VcIiAvPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtY2FyZF9fdGl0bGUgb2R4LWhlYWRpbmctNVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhDYXJkQ29udGVudF0sIG9keC1jYXJkLWNvbnRlbnRcIiAvPlxuICA8L2Rpdj5cbn0gQGVsc2Uge1xuICA8ZGl2IGNsYXNzPVwib2R4LWNhcmRfX2NvbnRhaW5lclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1hdmF0YXJcIiAvPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtY2FyZF9fY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm9keC1jYXJkX190aXRsZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1sYXVuY2gtY2FyZC1zdWJ0aXRsZVwiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufVxuXG48bmctY29udGVudCBzZWxlY3Q9XCJvZHgtY2FyZC1mb290ZXJcIiAvPlxuXG5AaWYgKG1lbnUpIHtcbiAgPG9keC1hY3Rpb24tZ3JvdXAgY2xhc3M9XCJvZHgtY2FyZF9fbWVudVwiPlxuICAgIDxidXR0b24gb2R4QnV0dG9uIFtvZHhNZW51XT1cIm1lbnVUcGxcIiBvZHhNZW51UG9zaXRpb249XCJib3R0b20tZW5kXCI+PG9keC1pY29uIFtuYW1lXT1cIm1lbnVJY29uXCIgaWNvblNldD1cImNvcmVcIiAvPjwvYnV0dG9uPlxuXG4gICAgPG5nLXRlbXBsYXRlICNtZW51VHBsPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwib2R4LW1lbnVcIiAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvb2R4LWFjdGlvbi1ncm91cD5cbn0gQGVsc2UgaWYgKGJ1dHRvbnMpIHtcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwib2R4LWFjdGlvbi1ncm91cFwiIC8+XG59XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkL3NyYy9saWIvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYXJkL3NyYy9saWIvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBRXZDOzs7Ozs7R0FNRztBQVdJ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YWhELE9BQU87c0JBRGIsS0FBSztnQkFVQyxRQUFRO3NCQURkLEtBQUs7Z0JBU0MsUUFBUTtzQkFEZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSwgSW50ZXJhY3RpdmVEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQWN0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hY3Rpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQsIE1lbnVEaXJlY3RpdmUsIE1lbnVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IENTU0NvbXBvbmVudCwgQ1NTTW9kaWZpZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgY29udGFpbnNFbGVtZW50LCBpbmplY3RFbGVtZW50LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBpbmplY3RDYXJkQ29uZmlnIH0gZnJvbSAnLi9jYXJkLmNvbmZpZyc7XG5pbXBvcnQgeyBDYXJkRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IENhcmRWYXJpYW50IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjYXJkIGNvbXBvbmVudC5cbiAqIEl0IGNhbiBjb250YWluIGEgaGVhZGVyLCBib2R5LCBhbmQgZm9vdGVyLiBUaGUgY2FyZCBjb21wb25lbnQgY2FuIGFsc28gaGF2ZSBhIG1lbnUgYW5kIGFjdGlvbiBidXR0b25zLlxuICogSGFzIGhvc3QgZGlyZWN0aXZlIGZvciBpbnRlcmFjdGl2aXR5LlxuICpcbiAqIEBzZWUge0ludGVyYWN0aXZlRGlyZWN0aXZlfVxuICovXG5AQ1NTQ29tcG9uZW50KCdjYXJkJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0ExMXlNb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgTWVudU1vZHVsZSwgQWN0aW9uR3JvdXBDb21wb25lbnRdLFxuICBob3N0RGlyZWN0aXZlczogW0ludGVyYWN0aXZlRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW50ZXJhY3RpdmVEaXJlY3RpdmUgPSBpbmplY3QoSW50ZXJhY3RpdmVEaXJlY3RpdmUsIHsgaG9zdDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdENhcmRDb25maWcoKTtcblxuICBwcm90ZWN0ZWQgY2FyZFZhcmlhbnQgPSBDYXJkVmFyaWFudDtcblxuICBAQ29udGVudENoaWxkKE1lbnVDb21wb25lbnQpXG4gIHByb3RlY3RlZCByZWFkb25seSBtZW51PzogTWVudUNvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEFjdGlvbkdyb3VwQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYnV0dG9ucz86IEFjdGlvbkdyb3VwQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoTWVudURpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1lbnVIb3N0PzogTWVudURpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkKENhcmRGb290ZXJDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9vdGVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgcHVibGljIGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG4gIC8qKlxuICAgKiBUaGUgdmFyaWFudCBvZiB0aGUgY2FyZC5cbiAgICpcbiAgICogQHR5cGUge0NhcmRWYXJpYW50fVxuICAgKiBAZGVmYXVsdCBDYXJkVmFyaWFudC5ERUZBVUxUXG4gICAqL1xuXG4gIEBDU1NNb2RpZmllcigpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2YXJpYW50OiBDYXJkVmFyaWFudCA9IHRoaXMuY29uZmlnLnZhcmlhbnQgPz8gQ2FyZFZhcmlhbnQuREVGQVVMVDtcblxuICAvKipcbiAgICogTWVudSBpY29uIG5hbWUuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0ICdtb3JlJ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1lbnVJY29uID0gJ21vcmUnO1xuXG4gIC8qKlxuICAgKiBJbnRlcmFjdGl2aXR5IGV2ZW50IGVtaXR0ZXIuXG4gICAqXG4gICAqIEBlbWl0cyB7RXZlbnR9XG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGludGVyYWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBwdWJsaWMgZ2V0IGxhdW5jaFRpbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFudCA9PT0gQ2FyZFZhcmlhbnQuTEFVTkNIX1RJTEUgfHwgdGhpcy52YXJpYW50ID09PSBDYXJkVmFyaWFudC5MQVVOQ0hfVElMRV9DRU5URVJFRDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaW50ZXJhY3RpdmVEaXJlY3RpdmUuaW50ZXJhY3QucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLnN0b3BFdmVudHMoZXZlbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wRXZlbnRzKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBFbGVtZW50IHwgbnVsbDtcbiAgICBjb25zdCBpc0Zvb3RlckV2ZW50ID0gY29udGFpbnNFbGVtZW50KHRoaXMuZm9vdGVyPy5uYXRpdmVFbGVtZW50LCB0YXJnZXQsIGZhbHNlKTtcbiAgICBjb25zdCBpc01lbnVFdmVudCA9IGNvbnRhaW5zRWxlbWVudCh0aGlzLm1lbnVIb3N0Py5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRhcmdldCk7XG4gICAgY29uc3QgaXNIZWFkZXJCdXR0b25FdmVudCA9IGNvbnRhaW5zRWxlbWVudCh0aGlzLmJ1dHRvbnM/LmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGFyZ2V0KTtcblxuICAgIGlmICghaXNGb290ZXJFdmVudCAmJiAhaXNNZW51RXZlbnQgJiYgIXRoaXMubWVudUhvc3Q/LmlzT3BlbigpICYmICFpc0hlYWRlckJ1dHRvbkV2ZW50KSB7XG4gICAgICB0aGlzLmludGVyYWN0LmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmICghbGF1bmNoVGlsZSkge1xuICA8ZGl2IGNsYXNzPVwib2R4LWNhcmRfX2NvbnRhaW5lclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1jYXJkLWltYWdlXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwib2R4LWNhcmRfX3RpdGxlIG9keC1oZWFkaW5nLTVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbb2R4Q2FyZENvbnRlbnRdLCBvZHgtY2FyZC1jb250ZW50XCIgLz5cbiAgPC9kaXY+XG59IEBlbHNlIHtcbiAgPGRpdiBjbGFzcz1cIm9keC1jYXJkX19jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJvZHgtYXZhdGFyXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwib2R4LWNhcmRfX2NvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvZHgtY2FyZF9fdGl0bGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJvZHgtbGF1bmNoLWNhcmQtc3VidGl0bGVcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwib2R4LWNhcmQtZm9vdGVyXCIgLz5cblxuQGlmIChtZW51KSB7XG4gIDxvZHgtYWN0aW9uLWdyb3VwIGNsYXNzPVwib2R4LWNhcmRfX21lbnVcIj5cbiAgICA8YnV0dG9uIG9keEJ1dHRvbiBbb2R4TWVudV09XCJtZW51VHBsXCIgb2R4TWVudVBvc2l0aW9uPVwiYm90dG9tLWVuZFwiPjxvZHgtaWNvbiBbbmFtZV09XCJtZW51SWNvblwiIGljb25TZXQ9XCJjb3JlXCIgLz48L2J1dHRvbj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbWVudVRwbD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1tZW51XCIgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L29keC1hY3Rpb24tZ3JvdXA+XG59IEBlbHNlIGlmIChidXR0b25zKSB7XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1hY3Rpb24tZ3JvdXBcIiAvPlxufVxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxuZy1jb250ZW50IC8+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -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==
@@ -5,12 +5,12 @@ import * as i1 from '@odx/angular/cdk/a11y';
5
5
  import { InteractiveDirective, A11yModule } from '@odx/angular/cdk/a11y';
6
6
  import { ActionGroupComponent } from '@odx/angular/components/action-group';
7
7
  import { ButtonComponent } from '@odx/angular/components/button';
8
- import { ChipListRowComponent } from '@odx/angular/components/chip';
9
8
  import { IconComponent } from '@odx/angular/components/icon';
10
9
  import * as i3 from '@odx/angular/components/menu';
11
10
  import { MenuComponent, MenuDirective, MenuModule } from '@odx/angular/components/menu';
12
11
  import { CSSComponent, CSSModifier } from '@odx/angular/internal';
13
12
  import { createConfigTokens, injectElement, untilDestroyed, containsElement } from '@odx/angular/utils';
13
+ import { ChipListRowComponent } from '@odx/angular/components/chip';
14
14
  import * as i2 from '@angular/common';
15
15
  import { CoreModule } from '@odx/angular';
16
16
 
@@ -183,7 +183,7 @@ CardComponent = __decorate([
183
183
  ], CardComponent);
184
184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardComponent, decorators: [{
185
185
  type: Component,
186
- args: [{ selector: 'odx-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [A11yModule, ButtonComponent, IconComponent, MenuModule, ActionGroupComponent, ChipListRowComponent], hostDirectives: [InteractiveDirective], template: "@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\"><odx-icon [name]=\"menuIcon\" iconSet=\"core\" /></button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n" }]
186
+ args: [{ selector: 'odx-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [A11yModule, ButtonComponent, IconComponent, MenuModule, ActionGroupComponent], hostDirectives: [InteractiveDirective], template: "@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\"><odx-icon [name]=\"menuIcon\" iconSet=\"core\" /></button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n" }]
187
187
  }], ctorParameters: () => [], propDecorators: { menu: [{
188
188
  type: ContentChild,
189
189
  args: [MenuComponent]
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-card.mjs","sources":["../../../../libs/angular/components/card/src/lib/models/card-variant.ts","../../../../libs/angular/components/card/src/lib/card.config.ts","../../../../libs/angular/components/card/src/lib/components/card-footer/card-footer.component.ts","../../../../libs/angular/components/card/src/lib/components/card-footer/card-footer.component.html","../../../../libs/angular/components/card/src/lib/components/card-image/card-image.component.ts","../../../../libs/angular/components/card/src/lib/components/card-image/card-image.component.html","../../../../libs/angular/components/card/src/lib/components/launch-card-subtitle/launch-card-subtitle.component.ts","../../../../libs/angular/components/card/src/lib/components/launch-card-subtitle/launch-card-subtitle.component.html","../../../../libs/angular/components/card/src/lib/card.component.ts","../../../../libs/angular/components/card/src/lib/card.component.html","../../../../libs/angular/components/card/src/lib/directives/card-content.directive.ts","../../../../libs/angular/components/card/src/lib/card.module.ts","../../../../libs/angular/components/card/src/odx-angular-components-card.ts"],"sourcesContent":["export type CardVariant = (typeof CardVariant)[keyof typeof CardVariant];\n\nexport const CardVariant = {\n DEFAULT: 'default',\n LAUNCH_TILE: 'launch-tile',\n LAUNCH_TILE_CENTERED: 'launch-tile-centered',\n IMAGE_CARD: 'image-card',\n} as const;\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { CardVariant } from './models';\n\nexport interface CardConfig {\n variant?: CardVariant;\n maxImageHeight?: string;\n imageRatio?: string;\n}\n\n/**\n * Tools for customizing configuration for the card component\n *\n * @example\n * ```ts\n * @Component({\n * ...\n * providers: [provideCardConfig({imageRatio: '5/3', maxImageHeight: '200px'})]\n * })\n * export class MyCardComponent {}\n * ```\n * @example\n * ```ts\n * constructor(@Inject(CardConfig) private readonly cardConfig: CardConfig) {}\n * ```\n */\nexport const { CardConfig, CardDefaultConfig, injectCardConfig, provideCardConfig } = createConfigTokens('Card', '@odx/angular/components/card', {\n variant: CardVariant.DEFAULT as CardVariant,\n maxImageHeight: 'auto',\n imageRatio: 'auto',\n});\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Represents a card footer component.\n */\n@Component({\n selector: 'odx-card-footer',\n templateUrl: './card-footer.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.odx-card__footer]': 'true',\n },\n})\nexport class CardFooterComponent {}\n","<ng-content />\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { ChipListRowComponent } from '@odx/angular/components/chip';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { injectCardConfig } from '../../card.config';\n\n/**\n * Represents a card image component.\n */\n@CSSComponent('card-image')\n@Component({\n selector: 'odx-card-image',\n templateUrl: './card-image.component.html',\n standalone: true,\n imports: [ChipListRowComponent],\n})\nexport class CardImageComponent {\n private readonly config = injectCardConfig();\n public readonly element = injectElement();\n\n /**\n * The ratio of the card image.\n *\n * @type {string}\n * @default 'auto'\n */\n @Input()\n public imageRatio = this.config.imageRatio ?? 'auto';\n\n /**\n * The maximum height of the card image.\n *\n * @type {string}\n * @default 'auto'\n */\n @Input()\n public maxImageHeight = this.config.maxImageHeight ?? 'auto';\n\n @HostBinding(`style.--odx-card-image-max-height`)\n protected get getMaxImageHeight(): string {\n return this.maxImageHeight ?? this.config.maxImageHeight ?? 'auto';\n }\n\n @HostBinding(`style.--odx-card-image-aspect-ratio`)\n protected get getImageAspectRatio(): string {\n return this.imageRatio ?? this.config.imageRatio ?? 'auto';\n }\n}\n","<odx-chip-list-row>\n <ng-content ngProjectAs=\"odx-chip\" select=\"odx-chip\" />\n</odx-chip-list-row>\n\n<figure class=\"odx-card-image__img\">\n <ng-content select=\"img\" />\n</figure>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Represents a launch card subtitle component.\n */\n@Component({\n selector: 'odx-launch-card-subtitle',\n templateUrl: './launch-card-subtitle.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.odx-card__subtitle]': 'true',\n },\n})\nexport class LaunchCardSubtitleComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, inject, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { A11yModule, InteractiveDirective } from '@odx/angular/cdk/a11y';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { ChipListRowComponent } from '@odx/angular/components/chip';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { MenuComponent, MenuDirective, MenuModule } from '@odx/angular/components/menu';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { containsElement, injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { injectCardConfig } from './card.config';\nimport { CardFooterComponent } from './components';\nimport { CardVariant } from './models';\n\n/**\n * Represents a card component.\n * It can contain a header, body, and footer. The card component can also have a menu and action buttons.\n * Has host directive for interactivity.\n *\n * @see {InteractiveDirective}\n */\n@CSSComponent('card')\n@Component({\n selector: 'odx-card',\n templateUrl: './card.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [A11yModule, ButtonComponent, IconComponent, MenuModule, ActionGroupComponent, ChipListRowComponent],\n hostDirectives: [InteractiveDirective],\n})\nexport class CardComponent {\n private readonly interactiveDirective = inject(InteractiveDirective, { host: true });\n private readonly takeUntilDestroyed = untilDestroyed();\n private readonly config = injectCardConfig();\n\n protected cardVariant = CardVariant;\n\n @ContentChild(MenuComponent)\n protected readonly menu?: MenuComponent;\n\n @ContentChild(ActionGroupComponent)\n protected readonly buttons?: ActionGroupComponent;\n\n @ViewChild(MenuDirective)\n protected readonly menuHost?: MenuDirective;\n\n @ContentChild(CardFooterComponent, { read: ElementRef })\n protected readonly footer?: ElementRef<HTMLElement>;\n\n public element = injectElement();\n /**\n * The variant of the card.\n *\n * @type {CardVariant}\n * @default CardVariant.DEFAULT\n */\n\n @CSSModifier()\n @Input()\n public variant: CardVariant = this.config.variant ?? CardVariant.DEFAULT;\n\n /**\n * Menu icon name.\n *\n * @type {string}\n * @default 'more'\n */\n @Input()\n public menuIcon = 'more';\n\n /**\n * Interactivity event emitter.\n *\n * @emits {Event}\n */\n @Output()\n public interact = new EventEmitter<Event>();\n\n public get launchTile(): boolean {\n return this.variant === CardVariant.LAUNCH_TILE || this.variant === CardVariant.LAUNCH_TILE_CENTERED;\n }\n\n constructor() {\n this.interactiveDirective.interact.pipe(this.takeUntilDestroyed()).subscribe((event) => {\n this.stopEvents(event);\n });\n }\n\n private stopEvents(event: Event): void {\n const target = event.target as Element | null;\n const isFooterEvent = containsElement(this.footer?.nativeElement, target, false);\n const isMenuEvent = containsElement(this.menuHost?.element.nativeElement, target);\n const isHeaderButtonEvent = containsElement(this.buttons?.element.nativeElement, target);\n\n if (!isFooterEvent && !isMenuEvent && !this.menuHost?.isOpen() && !isHeaderButtonEvent) {\n this.interact.emit(event);\n }\n }\n}\n","@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\"><odx-icon [name]=\"menuIcon\" iconSet=\"core\" /></button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for displaying the content of a card.\n */\n@Directive({\n selector: '[odxCardContent], odx-card-content',\n standalone: true,\n host: {\n '[class.odx-card__content]': 'true',\n },\n})\nexport class CardContentDirective {}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CardComponent } from './card.component';\nimport { CardFooterComponent, CardImageComponent, LaunchCardSubtitleComponent } from './components';\nimport { CardContentDirective } from './directives';\n\nconst modules = [CardComponent, CardFooterComponent, CardImageComponent, LaunchCardSubtitleComponent, CardContentDirective];\n\n@NgModule({\n imports: [modules],\n exports: [CoreModule, ...modules],\n})\nexport class CardModule {}\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-card.mjs","sources":["../../../../libs/angular/components/card/src/lib/models/card-variant.ts","../../../../libs/angular/components/card/src/lib/card.config.ts","../../../../libs/angular/components/card/src/lib/components/card-footer/card-footer.component.ts","../../../../libs/angular/components/card/src/lib/components/card-footer/card-footer.component.html","../../../../libs/angular/components/card/src/lib/components/card-image/card-image.component.ts","../../../../libs/angular/components/card/src/lib/components/card-image/card-image.component.html","../../../../libs/angular/components/card/src/lib/components/launch-card-subtitle/launch-card-subtitle.component.ts","../../../../libs/angular/components/card/src/lib/components/launch-card-subtitle/launch-card-subtitle.component.html","../../../../libs/angular/components/card/src/lib/card.component.ts","../../../../libs/angular/components/card/src/lib/card.component.html","../../../../libs/angular/components/card/src/lib/directives/card-content.directive.ts","../../../../libs/angular/components/card/src/lib/card.module.ts","../../../../libs/angular/components/card/src/odx-angular-components-card.ts"],"sourcesContent":["export type CardVariant = (typeof CardVariant)[keyof typeof CardVariant];\n\nexport const CardVariant = {\n DEFAULT: 'default',\n LAUNCH_TILE: 'launch-tile',\n LAUNCH_TILE_CENTERED: 'launch-tile-centered',\n IMAGE_CARD: 'image-card',\n} as const;\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { CardVariant } from './models';\n\nexport interface CardConfig {\n variant?: CardVariant;\n maxImageHeight?: string;\n imageRatio?: string;\n}\n\n/**\n * Tools for customizing configuration for the card component\n *\n * @example\n * ```ts\n * @Component({\n * ...\n * providers: [provideCardConfig({imageRatio: '5/3', maxImageHeight: '200px'})]\n * })\n * export class MyCardComponent {}\n * ```\n * @example\n * ```ts\n * constructor(@Inject(CardConfig) private readonly cardConfig: CardConfig) {}\n * ```\n */\nexport const { CardConfig, CardDefaultConfig, injectCardConfig, provideCardConfig } = createConfigTokens('Card', '@odx/angular/components/card', {\n variant: CardVariant.DEFAULT as CardVariant,\n maxImageHeight: 'auto',\n imageRatio: 'auto',\n});\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Represents a card footer component.\n */\n@Component({\n selector: 'odx-card-footer',\n templateUrl: './card-footer.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.odx-card__footer]': 'true',\n },\n})\nexport class CardFooterComponent {}\n","<ng-content />\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { ChipListRowComponent } from '@odx/angular/components/chip';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { injectCardConfig } from '../../card.config';\n\n/**\n * Represents a card image component.\n */\n@CSSComponent('card-image')\n@Component({\n selector: 'odx-card-image',\n templateUrl: './card-image.component.html',\n standalone: true,\n imports: [ChipListRowComponent],\n})\nexport class CardImageComponent {\n private readonly config = injectCardConfig();\n public readonly element = injectElement();\n\n /**\n * The ratio of the card image.\n *\n * @type {string}\n * @default 'auto'\n */\n @Input()\n public imageRatio = this.config.imageRatio ?? 'auto';\n\n /**\n * The maximum height of the card image.\n *\n * @type {string}\n * @default 'auto'\n */\n @Input()\n public maxImageHeight = this.config.maxImageHeight ?? 'auto';\n\n @HostBinding(`style.--odx-card-image-max-height`)\n protected get getMaxImageHeight(): string {\n return this.maxImageHeight ?? this.config.maxImageHeight ?? 'auto';\n }\n\n @HostBinding(`style.--odx-card-image-aspect-ratio`)\n protected get getImageAspectRatio(): string {\n return this.imageRatio ?? this.config.imageRatio ?? 'auto';\n }\n}\n","<odx-chip-list-row>\n <ng-content ngProjectAs=\"odx-chip\" select=\"odx-chip\" />\n</odx-chip-list-row>\n\n<figure class=\"odx-card-image__img\">\n <ng-content select=\"img\" />\n</figure>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Represents a launch card subtitle component.\n */\n@Component({\n selector: 'odx-launch-card-subtitle',\n templateUrl: './launch-card-subtitle.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.odx-card__subtitle]': 'true',\n },\n})\nexport class LaunchCardSubtitleComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, inject, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { A11yModule, InteractiveDirective } from '@odx/angular/cdk/a11y';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { MenuComponent, MenuDirective, MenuModule } from '@odx/angular/components/menu';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { containsElement, injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { injectCardConfig } from './card.config';\nimport { CardFooterComponent } from './components';\nimport { CardVariant } from './models';\n\n/**\n * Represents a card component.\n * It can contain a header, body, and footer. The card component can also have a menu and action buttons.\n * Has host directive for interactivity.\n *\n * @see {InteractiveDirective}\n */\n@CSSComponent('card')\n@Component({\n selector: 'odx-card',\n templateUrl: './card.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [A11yModule, ButtonComponent, IconComponent, MenuModule, ActionGroupComponent],\n hostDirectives: [InteractiveDirective],\n})\nexport class CardComponent {\n private readonly interactiveDirective = inject(InteractiveDirective, { host: true });\n private readonly takeUntilDestroyed = untilDestroyed();\n private readonly config = injectCardConfig();\n\n protected cardVariant = CardVariant;\n\n @ContentChild(MenuComponent)\n protected readonly menu?: MenuComponent;\n\n @ContentChild(ActionGroupComponent)\n protected readonly buttons?: ActionGroupComponent;\n\n @ViewChild(MenuDirective)\n protected readonly menuHost?: MenuDirective;\n\n @ContentChild(CardFooterComponent, { read: ElementRef })\n protected readonly footer?: ElementRef<HTMLElement>;\n\n public element = injectElement();\n /**\n * The variant of the card.\n *\n * @type {CardVariant}\n * @default CardVariant.DEFAULT\n */\n\n @CSSModifier()\n @Input()\n public variant: CardVariant = this.config.variant ?? CardVariant.DEFAULT;\n\n /**\n * Menu icon name.\n *\n * @type {string}\n * @default 'more'\n */\n @Input()\n public menuIcon = 'more';\n\n /**\n * Interactivity event emitter.\n *\n * @emits {Event}\n */\n @Output()\n public interact = new EventEmitter<Event>();\n\n public get launchTile(): boolean {\n return this.variant === CardVariant.LAUNCH_TILE || this.variant === CardVariant.LAUNCH_TILE_CENTERED;\n }\n\n constructor() {\n this.interactiveDirective.interact.pipe(this.takeUntilDestroyed()).subscribe((event) => {\n this.stopEvents(event);\n });\n }\n\n private stopEvents(event: Event): void {\n const target = event.target as Element | null;\n const isFooterEvent = containsElement(this.footer?.nativeElement, target, false);\n const isMenuEvent = containsElement(this.menuHost?.element.nativeElement, target);\n const isHeaderButtonEvent = containsElement(this.buttons?.element.nativeElement, target);\n\n if (!isFooterEvent && !isMenuEvent && !this.menuHost?.isOpen() && !isHeaderButtonEvent) {\n this.interact.emit(event);\n }\n }\n}\n","@if (!launchTile) {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-card-image\" />\n <div class=\"odx-card__title odx-heading-5\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"[odxCardContent], odx-card-content\" />\n </div>\n} @else {\n <div class=\"odx-card__container\">\n <ng-content select=\"odx-avatar\" />\n <div class=\"odx-card__content\">\n <div class=\"odx-card__title\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content select=\"odx-launch-card-subtitle\" />\n </div>\n </div>\n}\n\n<ng-content select=\"odx-card-footer\" />\n\n@if (menu) {\n <odx-action-group class=\"odx-card__menu\">\n <button odxButton [odxMenu]=\"menuTpl\" odxMenuPosition=\"bottom-end\"><odx-icon [name]=\"menuIcon\" iconSet=\"core\" /></button>\n\n <ng-template #menuTpl>\n <ng-content select=\"odx-menu\" />\n </ng-template>\n </odx-action-group>\n} @else if (buttons) {\n <ng-content select=\"odx-action-group\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for displaying the content of a card.\n */\n@Directive({\n selector: '[odxCardContent], odx-card-content',\n standalone: true,\n host: {\n '[class.odx-card__content]': 'true',\n },\n})\nexport class CardContentDirective {}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CardComponent } from './card.component';\nimport { CardFooterComponent, CardImageComponent, LaunchCardSubtitleComponent } from './components';\nimport { CardContentDirective } from './directives';\n\nconst modules = [CardComponent, CardFooterComponent, CardImageComponent, LaunchCardSubtitleComponent, CardContentDirective];\n\n@NgModule({\n imports: [modules],\n exports: [CoreModule, ...modules],\n})\nexport class CardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -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":"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"}
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odx/angular",
3
- "version": "12.17.2",
3
+ "version": "12.17.4",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "peerDependencies": {
@@ -256,18 +256,18 @@
256
256
  "esm": "./esm2022/components/content-box/odx-angular-components-content-box.mjs",
257
257
  "default": "./fesm2022/odx-angular-components-content-box.mjs"
258
258
  },
259
- "./components/datepicker": {
260
- "types": "./components/datepicker/index.d.ts",
261
- "esm2022": "./esm2022/components/datepicker/odx-angular-components-datepicker.mjs",
262
- "esm": "./esm2022/components/datepicker/odx-angular-components-datepicker.mjs",
263
- "default": "./fesm2022/odx-angular-components-datepicker.mjs"
264
- },
265
259
  "./components/data-table": {
266
260
  "types": "./components/data-table/index.d.ts",
267
261
  "esm2022": "./esm2022/components/data-table/odx-angular-components-data-table.mjs",
268
262
  "esm": "./esm2022/components/data-table/odx-angular-components-data-table.mjs",
269
263
  "default": "./fesm2022/odx-angular-components-data-table.mjs"
270
264
  },
265
+ "./components/datepicker": {
266
+ "types": "./components/datepicker/index.d.ts",
267
+ "esm2022": "./esm2022/components/datepicker/odx-angular-components-datepicker.mjs",
268
+ "esm": "./esm2022/components/datepicker/odx-angular-components-datepicker.mjs",
269
+ "default": "./fesm2022/odx-angular-components-datepicker.mjs"
270
+ },
271
271
  "./components/daterangepicker": {
272
272
  "types": "./components/daterangepicker/index.d.ts",
273
273
  "esm2022": "./esm2022/components/daterangepicker/odx-angular-components-daterangepicker.mjs",
@@ -370,18 +370,18 @@
370
370
  "esm": "./esm2022/components/modal/odx-angular-components-modal.mjs",
371
371
  "default": "./fesm2022/odx-angular-components-modal.mjs"
372
372
  },
373
- "./components/navigation-back": {
374
- "types": "./components/navigation-back/index.d.ts",
375
- "esm2022": "./esm2022/components/navigation-back/odx-angular-components-navigation-back.mjs",
376
- "esm": "./esm2022/components/navigation-back/odx-angular-components-navigation-back.mjs",
377
- "default": "./fesm2022/odx-angular-components-navigation-back.mjs"
378
- },
379
373
  "./components/notification": {
380
374
  "types": "./components/notification/index.d.ts",
381
375
  "esm2022": "./esm2022/components/notification/odx-angular-components-notification.mjs",
382
376
  "esm": "./esm2022/components/notification/odx-angular-components-notification.mjs",
383
377
  "default": "./fesm2022/odx-angular-components-notification.mjs"
384
378
  },
379
+ "./components/navigation-back": {
380
+ "types": "./components/navigation-back/index.d.ts",
381
+ "esm2022": "./esm2022/components/navigation-back/odx-angular-components-navigation-back.mjs",
382
+ "esm": "./esm2022/components/navigation-back/odx-angular-components-navigation-back.mjs",
383
+ "default": "./fesm2022/odx-angular-components-navigation-back.mjs"
384
+ },
385
385
  "./components/paginator": {
386
386
  "types": "./components/paginator/index.d.ts",
387
387
  "esm2022": "./esm2022/components/paginator/odx-angular-components-paginator.mjs",
@@ -466,18 +466,18 @@
466
466
  "esm": "./esm2022/components/toast/odx-angular-components-toast.mjs",
467
467
  "default": "./fesm2022/odx-angular-components-toast.mjs"
468
468
  },
469
- "./components/tooltip": {
470
- "types": "./components/tooltip/index.d.ts",
471
- "esm2022": "./esm2022/components/tooltip/odx-angular-components-tooltip.mjs",
472
- "esm": "./esm2022/components/tooltip/odx-angular-components-tooltip.mjs",
473
- "default": "./fesm2022/odx-angular-components-tooltip.mjs"
474
- },
475
469
  "./components/toggle-button-group": {
476
470
  "types": "./components/toggle-button-group/index.d.ts",
477
471
  "esm2022": "./esm2022/components/toggle-button-group/odx-angular-components-toggle-button-group.mjs",
478
472
  "esm": "./esm2022/components/toggle-button-group/odx-angular-components-toggle-button-group.mjs",
479
473
  "default": "./fesm2022/odx-angular-components-toggle-button-group.mjs"
480
474
  },
475
+ "./components/tooltip": {
476
+ "types": "./components/tooltip/index.d.ts",
477
+ "esm2022": "./esm2022/components/tooltip/odx-angular-components-tooltip.mjs",
478
+ "esm": "./esm2022/components/tooltip/odx-angular-components-tooltip.mjs",
479
+ "default": "./fesm2022/odx-angular-components-tooltip.mjs"
480
+ },
481
481
  "./components/wizard": {
482
482
  "types": "./components/wizard/index.d.ts",
483
483
  "esm2022": "./esm2022/components/wizard/odx-angular-components-wizard.mjs",