@ethlete/cdk 2.7.0 → 2.7.1

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.
Files changed (77) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/esm2022/lib/components/accordion/components/accordion/accordion.component.mjs +10 -21
  3. package/esm2022/lib/components/accordion/components/accordion-group/accordion-group.component.mjs +6 -12
  4. package/esm2022/lib/components/button/directives/button/button.directive.mjs +4 -5
  5. package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +9 -20
  6. package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +6 -12
  7. package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +3 -4
  8. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +3 -4
  9. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +6 -7
  10. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +9 -20
  11. package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +3 -4
  12. package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +3 -4
  13. package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +8 -9
  14. package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +3 -4
  15. package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +3 -4
  16. package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +5 -6
  17. package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +3 -4
  18. package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +8 -10
  19. package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +7 -7
  20. package/esm2022/lib/components/picture/picture-data.directive.mjs +6 -12
  21. package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +11 -22
  22. package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +5 -3
  23. package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +6 -12
  24. package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +23 -48
  25. package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +17 -35
  26. package/esm2022/lib/components/table/components/table/table.component.mjs +4 -5
  27. package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +6 -6
  28. package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +7 -7
  29. package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +40 -69
  30. package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +8 -16
  31. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +9 -20
  32. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +14 -16
  33. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +6 -6
  34. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +4 -13
  35. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +10 -16
  36. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +23 -42
  37. package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +3 -4
  38. package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +24 -44
  39. package/fesm2022/ethlete-cdk.mjs +253 -433
  40. package/fesm2022/ethlete-cdk.mjs.map +1 -1
  41. package/lib/components/accordion/components/accordion/accordion.component.d.ts +4 -7
  42. package/lib/components/accordion/components/accordion-group/accordion-group.component.d.ts +2 -4
  43. package/lib/components/button/directives/button/button.directive.d.ts +2 -3
  44. package/lib/components/forms/components/input/components/textarea-input/textarea-input.component.d.ts +4 -7
  45. package/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.d.ts +2 -4
  46. package/lib/components/forms/components/radio/directives/radio/radio.directive.d.ts +1 -2
  47. package/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.d.ts +1 -2
  48. package/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.d.ts +4 -5
  49. package/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.d.ts +4 -7
  50. package/lib/components/forms/components/select/components/select/directives/select/select.directive.d.ts +1 -2
  51. package/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.d.ts +1 -2
  52. package/lib/components/forms/components/slider/components/slider/slider.component.d.ts +5 -6
  53. package/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.d.ts +1 -2
  54. package/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.d.ts +1 -2
  55. package/lib/components/masonry/components/masonry/masonry.component.d.ts +2 -3
  56. package/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.d.ts +1 -2
  57. package/lib/components/overlay/services/dynamic-overlay.service.d.ts +3 -6
  58. package/lib/components/pagination/components/pagination/pagination.component.d.ts +3 -3
  59. package/lib/components/picture/picture-data.directive.d.ts +2 -4
  60. package/lib/components/progress-spinner/progress-spinner.component.d.ts +6 -9
  61. package/lib/components/skeleton/components/skeleton/skeleton.component.d.ts +2 -4
  62. package/lib/components/sort/components/sort-header/sort-header.component.d.ts +17 -21
  63. package/lib/components/sort/partials/sort/sort.directive.d.ts +7 -11
  64. package/lib/components/table/components/table/table.component.d.ts +1 -2
  65. package/lib/components/table/partials/table-busy/table-busy.directive.d.ts +1 -2
  66. package/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.d.ts +1 -2
  67. package/lib/components/tabs/components/inline-tabs/inline-tabs.component.d.ts +14 -23
  68. package/lib/components/tabs/components/nav-tabs/nav-tabs.component.d.ts +2 -7
  69. package/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.d.ts +4 -7
  70. package/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.d.ts +5 -4
  71. package/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.d.ts +1 -2
  72. package/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.d.ts +2 -5
  73. package/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.d.ts +3 -6
  74. package/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.d.ts +13 -17
  75. package/lib/components/tabs/utils/active-tab-underline.util.d.ts +1 -2
  76. package/lib/components/tabs/utils/paginated-tab-header.directive.d.ts +11 -16
  77. package/package.json +3 -4
@@ -1,11 +1,10 @@
1
- import { coerceBooleanProperty, coerceNumberProperty, _isNumberValue } from '@angular/cdk/coercion';
2
1
  import * as i1 from '@angular/cdk/portal';
3
2
  import { CdkPortal, PortalModule, ComponentPortal, CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';
4
3
  import { AsyncPipe, NgIf, NgClass, NgTemplateOutlet, NgForOf, JsonPipe, NgFor, DOCUMENT } from '@angular/common';
5
4
  import * as i0 from '@angular/core';
6
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, InjectionToken, Input, ContentChild, ContentChildren, inject, ElementRef, Injector, HostBinding, isDevMode, Injectable, TemplateRef, ViewContainerRef, forwardRef, ViewChild, EventEmitter, Output, Optional, Inject, SkipSelf, HostListener, ChangeDetectorRef, Renderer2, booleanAttribute, numberAttribute, Attribute } from '@angular/core';
5
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, InjectionToken, booleanAttribute, Input, ContentChild, ContentChildren, inject, ElementRef, Injector, HostBinding, isDevMode, Injectable, TemplateRef, ViewContainerRef, forwardRef, ViewChild, numberAttribute, EventEmitter, Output, Optional, Inject, SkipSelf, HostListener, ChangeDetectorRef, Renderer2, Attribute, NgZone } from '@angular/core';
7
6
  import * as i1$1 from '@ethlete/core';
8
- import { LetDirective, createDestroy, ScrollObserverFirstElementDirective, ScrollObserverLastElementDirective, Memo, createReactiveBindings, IS_EMAIL, MUST_MATCH, IS_ARRAY_NOT_EMPTY, equal, ResizeObserverService, createFlipAnimation, ClickOutsideDirective, ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective, RuntimeError, AnimatedOverlayDirective, SelectionModel, ActiveSelectionModel, ObserveContentDirective, clamp, nextFrame, DELAYABLE_TOKEN, ObserveResizeDirective, SmartBlockScrollStrategy, RouterStateService, ClickObserverService, FocusVisibleService, scrollToElement, getElementVisibleStates, IS_ACTIVE_ELEMENT, IS_ELEMENT, CursorDragScrollDirective, ObserveScrollStateDirective, IsElementDirective, IsActiveElementDirective, ScrollObserverIgnoreTargetDirective, TypedQueryList } from '@ethlete/core';
7
+ import { LetDirective, createDestroy, ScrollObserverFirstElementDirective, ScrollObserverLastElementDirective, Memo, createReactiveBindings, IS_EMAIL, MUST_MATCH, IS_ARRAY_NOT_EMPTY, equal, ResizeObserverService, createFlipAnimation, ClickOutsideDirective, ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective, RuntimeError, AnimatedOverlayDirective, SelectionModel, ActiveSelectionModel, ObserveContentDirective, clamp, nextFrame, DELAYABLE_TOKEN, ObserveResizeDirective, SmartBlockScrollStrategy, RouterStateService, ClickObserverService, FocusVisibleService, ViewportService, scrollToElement, getElementVisibleStates, IS_ACTIVE_ELEMENT, IS_ELEMENT, CursorDragScrollDirective, ObserveScrollStateDirective, IsElementDirective, IsActiveElementDirective, ScrollObserverIgnoreTargetDirective, TypedQueryList } from '@ethlete/core';
9
8
  import { BehaviorSubject, startWith, map, switchMap, combineLatest, pairwise, tap, takeUntil, skip, of, Subject, debounceTime, filter, distinctUntilChanged, withLatestFrom, skipWhile, catchError, throwError, firstValueFrom, fromEvent, merge, take, timer, skipUntil, defer, Subscription, Observable } from 'rxjs';
10
9
  import { trigger, state, style, transition, animate } from '@angular/animations';
11
10
  import { __decorate, __metadata } from 'tslib';
@@ -21,14 +20,14 @@ import { CdkDialogContainer, Dialog, DialogConfig, DIALOG_SCROLL_STRATEGY_PROVID
21
20
  import * as i2 from '@angular/cdk/overlay';
22
21
  import { ViewportRuler } from '@angular/cdk/overlay';
23
22
  import { Meta, Title } from '@angular/platform-browser';
24
- import * as i3 from '@angular/router';
25
- import { Router, NavigationEnd } from '@angular/router';
23
+ import { Router, NavigationEnd, RouterLink, RouterLinkActive } from '@angular/router';
26
24
  import { _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy, _DisposeViewRepeaterStrategy, DataSource } from '@angular/cdk/collections';
27
25
  import * as i2$1 from '@angular/cdk/platform';
28
- import * as i1$5 from '@angular/cdk/scrolling';
29
- import { CdkScrollableModule } from '@angular/cdk/scrolling';
26
+ import * as i3 from '@angular/cdk/scrolling';
27
+ import { CdkScrollableModule, ViewportRuler as ViewportRuler$1 } from '@angular/cdk/scrolling';
30
28
  import * as i1$3 from '@angular/cdk/table';
31
29
  import { CdkCell, CdkCellDef, CdkColumnDef, CDK_TABLE, CdkFooterCell, CdkFooterCellDef, CdkHeaderCell, CdkHeaderCellDef, CdkTextColumn, TEXT_COLUMN_OPTIONS, CdkFooterRow, CdkTableModule, CDK_ROW_TEMPLATE, CdkFooterRowDef, CdkHeaderRow, CdkHeaderRowDef, CdkNoDataRow, CdkRow, CdkRowDef, CdkTable, _COALESCED_STYLE_SCHEDULER, STICKY_POSITIONING_LISTENER, _CoalescedStyleScheduler } from '@angular/cdk/table';
30
+ import { _isNumberValue } from '@angular/cdk/coercion';
32
31
  import { takeUntil as takeUntil$1, take as take$1 } from 'rxjs/operators';
33
32
 
34
33
  class ChevronIconComponent {
@@ -147,8 +146,8 @@ let accordionId = 0;
147
146
  class AccordionComponent {
148
147
  constructor() {
149
148
  this._id = `et-accordion-${accordionId++}`;
150
- this._isOpenByDefault = false;
151
- this._disabled = false;
149
+ this.isOpenByDefault = false;
150
+ this.disabled = false;
152
151
  this.label = '';
153
152
  this.bodyId = `${this._id}-body`;
154
153
  this.headerId = `${this._id}-header`;
@@ -156,18 +155,6 @@ class AccordionComponent {
156
155
  this._isLast = false;
157
156
  this._isOpen$ = new BehaviorSubject(false);
158
157
  }
159
- get isOpenByDefault() {
160
- return this._isOpenByDefault;
161
- }
162
- set isOpenByDefault(value) {
163
- this._isOpenByDefault = coerceBooleanProperty(value);
164
- }
165
- get disabled() {
166
- return this._disabled;
167
- }
168
- set disabled(value) {
169
- this._disabled = coerceBooleanProperty(value);
170
- }
171
158
  get isOpen$() {
172
159
  return this._isOpen$.asObservable();
173
160
  }
@@ -187,7 +174,7 @@ class AccordionComponent {
187
174
  this._isOpen$.next(false);
188
175
  }
189
176
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
190
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: AccordionComponent, isStandalone: true, selector: "et-accordion", inputs: { isOpenByDefault: "isOpenByDefault", disabled: "disabled", label: "label" }, host: { classAttribute: "et-accordion" }, providers: [{ provide: ACCORDION_COMPONENT, useExisting: AccordionComponent }], queries: [{ propertyName: "templateLabel", first: true, predicate: ACCORDION_LABEL_WRAPPER_DIRECTIVE, descendants: true }, { propertyName: "templateHint", first: true, predicate: ACCORDION_HINT_WRAPPER_DIRECTIVE, descendants: true }], ngImport: i0, template: "<div *etLet=\"_isOpen$ | async as isOpen\" class=\"et-accordion-container\">\n <h3 class=\"et-accordion-header-wrapper\">\n <button\n [disabled]=\"disabled\"\n [id]=\"headerId\"\n [attr.aria-controls]=\"bodyId\"\n [attr.aria-expanded]=\"isOpen\"\n [class.et-accordion-has-hint]=\"!!templateHint\"\n (click)=\"toggleAccordionOpen()\"\n class=\"et-accordion-header\"\n type=\"button\"\n >\n <div>\n <ng-template [ngIf]=\"templateLabel\" [ngIfElse]=\"textLabelTpl\">\n <ng-template [cdkPortalOutlet]=\"templateLabel\" />\n </ng-template>\n\n <ng-template #textLabelTpl\n ><span et-accordion-label>{{ label }} </span>\n </ng-template>\n </div>\n\n <ng-container *ngIf=\"templateHint\">\n <ng-template [cdkPortalOutlet]=\"templateHint\" />\n </ng-container>\n\n <et-chevron-icon />\n </button>\n </h3>\n <div\n [@animateOpenClose]=\"(_isOpen$ | async) ? 'open' : 'close'\"\n [attr.aria-labelledby]=\"headerId\"\n [id]=\"bodyId\"\n class=\"et-accordion-body\"\n role=\"region\"\n >\n <div class=\"et-accordion-body-container\">\n <ng-content />\n </div>\n </div>\n <hr class=\"et-accordion-separator\" />\n</div>\n", styles: [":where(.et-accordion){--chevron-size: 15px}.et-accordion .et-accordion-container{position:relative;z-index:1}.et-accordion .et-chevron-icon{display:block;transform:rotate(180deg);transition:transform .3s var(--ease-5);inline-size:var(--chevron-size);block-size:var(--chevron-size)}.et-accordion [aria-expanded=true] .et-chevron-icon{transform:rotate(0)}.et-accordion .et-accordion-header{display:grid;grid-template-columns:1fr auto;inline-size:100%;block-size:100%;text-align:left;background-color:transparent;border:none;align-items:center;padding:0;gap:15px}.et-accordion .et-accordion-header:not(:disabled){cursor:pointer}.et-accordion .et-accordion-header.et-accordion-has-hint{grid-template-columns:1fr auto auto}.et-accordion .et-accordion-header-wrapper{margin:0}.et-accordion .et-accordion-body{overflow:hidden}.et-accordion .et-accordion-separator{position:relative;z-index:-1}\n"], dependencies: [{ kind: "directive", type: LetDirective, selector: "[etLet]", inputs: ["etLet"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: AccordionLabelDirective, selector: "[et-accordion-label]" }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ChevronIconComponent, selector: "et-chevron-icon" }], animations: [accordionAnimations.animateOpenClose], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
177
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: AccordionComponent, isStandalone: true, selector: "et-accordion", inputs: { isOpenByDefault: ["isOpenByDefault", "isOpenByDefault", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], label: "label" }, host: { classAttribute: "et-accordion" }, providers: [{ provide: ACCORDION_COMPONENT, useExisting: AccordionComponent }], queries: [{ propertyName: "templateLabel", first: true, predicate: ACCORDION_LABEL_WRAPPER_DIRECTIVE, descendants: true }, { propertyName: "templateHint", first: true, predicate: ACCORDION_HINT_WRAPPER_DIRECTIVE, descendants: true }], ngImport: i0, template: "<div *etLet=\"_isOpen$ | async as isOpen\" class=\"et-accordion-container\">\n <h3 class=\"et-accordion-header-wrapper\">\n <button\n [disabled]=\"disabled\"\n [id]=\"headerId\"\n [attr.aria-controls]=\"bodyId\"\n [attr.aria-expanded]=\"isOpen\"\n [class.et-accordion-has-hint]=\"!!templateHint\"\n (click)=\"toggleAccordionOpen()\"\n class=\"et-accordion-header\"\n type=\"button\"\n >\n <div>\n <ng-template [ngIf]=\"templateLabel\" [ngIfElse]=\"textLabelTpl\">\n <ng-template [cdkPortalOutlet]=\"templateLabel\" />\n </ng-template>\n\n <ng-template #textLabelTpl\n ><span et-accordion-label>{{ label }} </span>\n </ng-template>\n </div>\n\n <ng-container *ngIf=\"templateHint\">\n <ng-template [cdkPortalOutlet]=\"templateHint\" />\n </ng-container>\n\n <et-chevron-icon />\n </button>\n </h3>\n <div\n [@animateOpenClose]=\"(_isOpen$ | async) ? 'open' : 'close'\"\n [attr.aria-labelledby]=\"headerId\"\n [id]=\"bodyId\"\n class=\"et-accordion-body\"\n role=\"region\"\n >\n <div class=\"et-accordion-body-container\">\n <ng-content />\n </div>\n </div>\n <hr class=\"et-accordion-separator\" />\n</div>\n", styles: [":where(.et-accordion){--chevron-size: 15px}.et-accordion .et-accordion-container{position:relative;z-index:1}.et-accordion .et-chevron-icon{display:block;transform:rotate(180deg);transition:transform .3s var(--ease-5);inline-size:var(--chevron-size);block-size:var(--chevron-size)}.et-accordion [aria-expanded=true] .et-chevron-icon{transform:rotate(0)}.et-accordion .et-accordion-header{display:grid;grid-template-columns:1fr auto;inline-size:100%;block-size:100%;text-align:left;background-color:transparent;border:none;align-items:center;padding:0;gap:15px}.et-accordion .et-accordion-header:not(:disabled){cursor:pointer}.et-accordion .et-accordion-header.et-accordion-has-hint{grid-template-columns:1fr auto auto}.et-accordion .et-accordion-header-wrapper{margin:0}.et-accordion .et-accordion-body{overflow:hidden}.et-accordion .et-accordion-separator{position:relative;z-index:-1}\n"], dependencies: [{ kind: "directive", type: LetDirective, selector: "[etLet]", inputs: ["etLet"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: AccordionLabelDirective, selector: "[et-accordion-label]" }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ChevronIconComponent, selector: "et-chevron-icon" }], animations: [accordionAnimations.animateOpenClose], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
191
178
  }
192
179
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: AccordionComponent, decorators: [{
193
180
  type: Component,
@@ -204,9 +191,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
204
191
  class: 'et-accordion',
205
192
  }, template: "<div *etLet=\"_isOpen$ | async as isOpen\" class=\"et-accordion-container\">\n <h3 class=\"et-accordion-header-wrapper\">\n <button\n [disabled]=\"disabled\"\n [id]=\"headerId\"\n [attr.aria-controls]=\"bodyId\"\n [attr.aria-expanded]=\"isOpen\"\n [class.et-accordion-has-hint]=\"!!templateHint\"\n (click)=\"toggleAccordionOpen()\"\n class=\"et-accordion-header\"\n type=\"button\"\n >\n <div>\n <ng-template [ngIf]=\"templateLabel\" [ngIfElse]=\"textLabelTpl\">\n <ng-template [cdkPortalOutlet]=\"templateLabel\" />\n </ng-template>\n\n <ng-template #textLabelTpl\n ><span et-accordion-label>{{ label }} </span>\n </ng-template>\n </div>\n\n <ng-container *ngIf=\"templateHint\">\n <ng-template [cdkPortalOutlet]=\"templateHint\" />\n </ng-container>\n\n <et-chevron-icon />\n </button>\n </h3>\n <div\n [@animateOpenClose]=\"(_isOpen$ | async) ? 'open' : 'close'\"\n [attr.aria-labelledby]=\"headerId\"\n [id]=\"bodyId\"\n class=\"et-accordion-body\"\n role=\"region\"\n >\n <div class=\"et-accordion-body-container\">\n <ng-content />\n </div>\n </div>\n <hr class=\"et-accordion-separator\" />\n</div>\n", styles: [":where(.et-accordion){--chevron-size: 15px}.et-accordion .et-accordion-container{position:relative;z-index:1}.et-accordion .et-chevron-icon{display:block;transform:rotate(180deg);transition:transform .3s var(--ease-5);inline-size:var(--chevron-size);block-size:var(--chevron-size)}.et-accordion [aria-expanded=true] .et-chevron-icon{transform:rotate(0)}.et-accordion .et-accordion-header{display:grid;grid-template-columns:1fr auto;inline-size:100%;block-size:100%;text-align:left;background-color:transparent;border:none;align-items:center;padding:0;gap:15px}.et-accordion .et-accordion-header:not(:disabled){cursor:pointer}.et-accordion .et-accordion-header.et-accordion-has-hint{grid-template-columns:1fr auto auto}.et-accordion .et-accordion-header-wrapper{margin:0}.et-accordion .et-accordion-body{overflow:hidden}.et-accordion .et-accordion-separator{position:relative;z-index:-1}\n"] }]
206
193
  }], propDecorators: { isOpenByDefault: [{
207
- type: Input
194
+ type: Input,
195
+ args: [{ transform: booleanAttribute }]
208
196
  }], disabled: [{
209
- type: Input
197
+ type: Input,
198
+ args: [{ transform: booleanAttribute }]
210
199
  }], label: [{
211
200
  type: Input
212
201
  }], templateLabel: [{
@@ -220,13 +209,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
220
209
  class AccordionGroupComponent {
221
210
  constructor() {
222
211
  this._destroy$ = createDestroy();
223
- this._autoCloseOthers = false;
224
- }
225
- get autoCloseOthers() {
226
- return this._autoCloseOthers;
227
- }
228
- set autoCloseOthers(value) {
229
- this._autoCloseOthers = coerceBooleanProperty(value);
212
+ this.autoCloseOthers = false;
230
213
  }
231
214
  ngAfterContentInit() {
232
215
  if (!this._accordions) {
@@ -256,7 +239,7 @@ class AccordionGroupComponent {
256
239
  .subscribe();
257
240
  }
258
241
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: AccordionGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
259
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: AccordionGroupComponent, isStandalone: true, selector: "et-accordion-group", inputs: { autoCloseOthers: "autoCloseOthers" }, host: { classAttribute: "et-accordion-group" }, queries: [{ propertyName: "_accordions", predicate: ACCORDION_COMPONENT }], ngImport: i0, template: "<ng-content select=\"et-accordion\" />\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
242
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: AccordionGroupComponent, isStandalone: true, selector: "et-accordion-group", inputs: { autoCloseOthers: ["autoCloseOthers", "autoCloseOthers", booleanAttribute] }, host: { classAttribute: "et-accordion-group" }, queries: [{ propertyName: "_accordions", predicate: ACCORDION_COMPONENT }], ngImport: i0, template: "<ng-content select=\"et-accordion\" />\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
260
243
  }
261
244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: AccordionGroupComponent, decorators: [{
262
245
  type: Component,
@@ -264,7 +247,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
264
247
  class: 'et-accordion-group',
265
248
  }, template: "<ng-content select=\"et-accordion\" />\n" }]
266
249
  }], propDecorators: { autoCloseOthers: [{
267
- type: Input
250
+ type: Input,
251
+ args: [{ transform: booleanAttribute }]
268
252
  }], _accordions: [{
269
253
  type: ContentChildren,
270
254
  args: [ACCORDION_COMPONENT]
@@ -1063,7 +1047,7 @@ class ButtonDirective {
1063
1047
  return this._disabled$.value;
1064
1048
  }
1065
1049
  set disabled(value) {
1066
- this._disabled$.next(coerceBooleanProperty(value));
1050
+ this._disabled$.next(booleanAttribute(value));
1067
1051
  }
1068
1052
  get disabled$() {
1069
1053
  return this._disabled$.asObservable();
@@ -1081,7 +1065,7 @@ class ButtonDirective {
1081
1065
  return this._pressed$.value;
1082
1066
  }
1083
1067
  set pressed(value) {
1084
- this._pressed$.next(coerceBooleanProperty(value));
1068
+ this._pressed$.next(booleanAttribute(value));
1085
1069
  }
1086
1070
  _removeDisabledBindings() {
1087
1071
  this._bindings.remove('disabled', 'aria-disabled');
@@ -1411,19 +1395,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
1411
1395
 
1412
1396
  class LabelSuffixDirective {
1413
1397
  constructor() {
1414
- this._showToScreenReader = false;
1415
- }
1416
- get showToScreenReader() {
1417
- return this._showToScreenReader;
1418
- }
1419
- set showToScreenReader(value) {
1420
- this._showToScreenReader = coerceBooleanProperty(value);
1398
+ this.showToScreenReader = false;
1421
1399
  }
1422
1400
  get _attrAriaHidden() {
1423
1401
  return this.showToScreenReader ? null : 'true';
1424
1402
  }
1425
1403
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: LabelSuffixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1426
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: LabelSuffixDirective, isStandalone: true, selector: "[etLabelSuffix]", inputs: { showToScreenReader: "showToScreenReader" }, host: { properties: { "attr.aria-hidden": "this._attrAriaHidden" } }, exportAs: ["etLabelSuffix"], ngImport: i0 }); }
1404
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: LabelSuffixDirective, isStandalone: true, selector: "[etLabelSuffix]", inputs: { showToScreenReader: ["showToScreenReader", "showToScreenReader", booleanAttribute] }, host: { properties: { "attr.aria-hidden": "this._attrAriaHidden" } }, exportAs: ["etLabelSuffix"], ngImport: i0 }); }
1427
1405
  }
1428
1406
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: LabelSuffixDirective, decorators: [{
1429
1407
  type: Directive,
@@ -1433,7 +1411,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
1433
1411
  exportAs: 'etLabelSuffix',
1434
1412
  }]
1435
1413
  }], propDecorators: { showToScreenReader: [{
1436
- type: Input
1414
+ type: Input,
1415
+ args: [{ transform: booleanAttribute }]
1437
1416
  }], _attrAriaHidden: [{
1438
1417
  type: HostBinding,
1439
1418
  args: ['attr.aria-hidden']
@@ -1450,7 +1429,7 @@ class DynamicFormFieldDirective {
1450
1429
  return this._explicitlyHideErrorMessage$.getValue();
1451
1430
  }
1452
1431
  set hideErrorMessage(value) {
1453
- this._explicitlyHideErrorMessage$.next(coerceBooleanProperty(value));
1432
+ this._explicitlyHideErrorMessage$.next(booleanAttribute(value));
1454
1433
  }
1455
1434
  get hideErrorMessage$() {
1456
1435
  return this._explicitlyHideErrorMessage$.asObservable();
@@ -1488,7 +1467,7 @@ class DynamicFormGroupDirective {
1488
1467
  return this._explicitlyHideErrorMessage$.getValue();
1489
1468
  }
1490
1469
  set hideErrorMessage(value) {
1491
- this._explicitlyHideErrorMessage$.next(coerceBooleanProperty(value));
1470
+ this._explicitlyHideErrorMessage$.next(booleanAttribute(value));
1492
1471
  }
1493
1472
  get hideErrorMessage$() {
1494
1473
  return this._explicitlyHideErrorMessage$.asObservable();
@@ -2884,23 +2863,11 @@ class TextareaInputComponent extends DecoratedInputBase {
2884
2863
  constructor() {
2885
2864
  super(...arguments);
2886
2865
  this.textareaInput = inject(TEXTAREA_INPUT_TOKEN);
2887
- this._cols = null;
2888
- this._rows = null;
2889
- }
2890
- get cols() {
2891
- return this._cols;
2892
- }
2893
- set cols(value) {
2894
- this._cols = coerceNumberProperty(value);
2895
- }
2896
- get rows() {
2897
- return this._rows;
2898
- }
2899
- set rows(value) {
2900
- this._rows = coerceNumberProperty(value);
2866
+ this.cols = null;
2867
+ this.rows = null;
2901
2868
  }
2902
2869
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TextareaInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2903
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: TextareaInputComponent, isStandalone: true, selector: "et-textarea-input", inputs: { cols: "cols", rows: "rows" }, host: { classAttribute: "et-textarea-input" }, usesInheritance: true, hostDirectives: [{ directive: TextareaInputDirective }, { directive: InputDirective, inputs: ["autocomplete", "autocomplete", "placeholder", "placeholder"] }], ngImport: i0, template: "<textarea\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [cols]=\"cols\"\n [rows]=\"rows\"\n (input)=\"textareaInput._onInputInteraction($event)\"\n (blur)=\"textareaInput._controlTouched()\"\n class=\"et-input-native-control et-textarea-input-native-control\"\n etNativeInputRef\n></textarea>\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NativeInputRefDirective, selector: "input[etNativeInputRef], textarea[etNativeInputRef], select[etNativeInputRef], button[etNativeInputRef]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2870
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: TextareaInputComponent, isStandalone: true, selector: "et-textarea-input", inputs: { cols: ["cols", "cols", numberAttribute], rows: ["rows", "rows", numberAttribute] }, host: { classAttribute: "et-textarea-input" }, usesInheritance: true, hostDirectives: [{ directive: TextareaInputDirective }, { directive: InputDirective, inputs: ["autocomplete", "autocomplete", "placeholder", "placeholder"] }], ngImport: i0, template: "<textarea\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [cols]=\"cols\"\n [rows]=\"rows\"\n (input)=\"textareaInput._onInputInteraction($event)\"\n (blur)=\"textareaInput._controlTouched()\"\n class=\"et-input-native-control et-textarea-input-native-control\"\n etNativeInputRef\n></textarea>\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NativeInputRefDirective, selector: "input[etNativeInputRef], textarea[etNativeInputRef], select[etNativeInputRef], button[etNativeInputRef]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2904
2871
  }
2905
2872
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TextareaInputComponent, decorators: [{
2906
2873
  type: Component,
@@ -2908,9 +2875,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
2908
2875
  class: 'et-textarea-input',
2909
2876
  }, imports: [AsyncPipe, NativeInputRefDirective], hostDirectives: [TextareaInputDirective, { directive: InputDirective, inputs: ['autocomplete', 'placeholder'] }], template: "<textarea\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [required]=\"input.required$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.autocomplete]=\"input.autocomplete || null\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [cols]=\"cols\"\n [rows]=\"rows\"\n (input)=\"textareaInput._onInputInteraction($event)\"\n (blur)=\"textareaInput._controlTouched()\"\n class=\"et-input-native-control et-textarea-input-native-control\"\n etNativeInputRef\n></textarea>\n" }]
2910
2877
  }], propDecorators: { cols: [{
2911
- type: Input
2878
+ type: Input,
2879
+ args: [{ transform: numberAttribute }]
2912
2880
  }], rows: [{
2913
- type: Input
2881
+ type: Input,
2882
+ args: [{ transform: numberAttribute }]
2914
2883
  }] } });
2915
2884
 
2916
2885
  class PasswordInputToggleComponent {
@@ -2990,7 +2959,7 @@ class RadioDirective {
2990
2959
  return this._disabled$.getValue();
2991
2960
  }
2992
2961
  set disabled(value) {
2993
- this._disabled$.next(coerceBooleanProperty(value));
2962
+ this._disabled$.next(booleanAttribute(value));
2994
2963
  }
2995
2964
  _onInputInteraction(event) {
2996
2965
  event.stopPropagation();
@@ -3195,7 +3164,7 @@ class SegmentedButtonDirective {
3195
3164
  return this._disabled$.getValue();
3196
3165
  }
3197
3166
  set disabled(value) {
3198
- this._disabled$.next(coerceBooleanProperty(value));
3167
+ this._disabled$.next(booleanAttribute(value));
3199
3168
  }
3200
3169
  get activeIndicatorElement$() {
3201
3170
  return this._activeIndicatorElement$.asObservable();
@@ -3637,7 +3606,7 @@ class ComboboxComponent extends DecoratedInputBase {
3637
3606
  return this._filterInternal$.value;
3638
3607
  }
3639
3608
  set filterInternal(value) {
3640
- const val = coerceBooleanProperty(value);
3609
+ const val = booleanAttribute(value);
3641
3610
  this._filterInternal$.next(val);
3642
3611
  if (!val) {
3643
3612
  this._selectionModel.setFilter('');
@@ -3650,7 +3619,7 @@ class ComboboxComponent extends DecoratedInputBase {
3650
3619
  return this._loading$.value;
3651
3620
  }
3652
3621
  set loading(value) {
3653
- this._loading$.next(coerceBooleanProperty(value));
3622
+ this._loading$.next(booleanAttribute(value));
3654
3623
  }
3655
3624
  get error() {
3656
3625
  return this._error$.value;
@@ -3665,7 +3634,7 @@ class ComboboxComponent extends DecoratedInputBase {
3665
3634
  this._placeholder$.next(value);
3666
3635
  }
3667
3636
  set multiple(value) {
3668
- this._selectionModel.setAllowMultiple(coerceBooleanProperty(value));
3637
+ this._selectionModel.setAllowMultiple(booleanAttribute(value));
3669
3638
  }
3670
3639
  set bindLabel(value) {
3671
3640
  this._selectionModel.setLabelBinding(value);
@@ -3677,7 +3646,7 @@ class ComboboxComponent extends DecoratedInputBase {
3677
3646
  return this._allowCustomValues$.value;
3678
3647
  }
3679
3648
  set allowCustomValues(value) {
3680
- this._allowCustomValues$.next(coerceBooleanProperty(value));
3649
+ this._allowCustomValues$.next(booleanAttribute(value));
3681
3650
  }
3682
3651
  //#endregion
3683
3652
  //#region Members
@@ -4081,8 +4050,8 @@ class NativeSelectOptionDirective {
4081
4050
  constructor() {
4082
4051
  this._textTemplate$ = new BehaviorSubject(null);
4083
4052
  this._value$ = new BehaviorSubject(null);
4084
- this._disabled = false;
4085
- this._hidden = false;
4053
+ this.disabled = false;
4054
+ this.hidden = false;
4086
4055
  }
4087
4056
  get textTemplate$() {
4088
4057
  return this._textTemplate$.asObservable();
@@ -4093,23 +4062,11 @@ class NativeSelectOptionDirective {
4093
4062
  set value(value) {
4094
4063
  this._value$.next(value);
4095
4064
  }
4096
- get disabled() {
4097
- return this._disabled;
4098
- }
4099
- set disabled(value) {
4100
- this._disabled = coerceBooleanProperty(value);
4101
- }
4102
- get hidden() {
4103
- return this._hidden;
4104
- }
4105
- set hidden(value) {
4106
- this._hidden = coerceBooleanProperty(value);
4107
- }
4108
4065
  _setTextTemplate(template) {
4109
4066
  this._textTemplate$.next(template);
4110
4067
  }
4111
4068
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NativeSelectOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4112
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: NativeSelectOptionDirective, isStandalone: true, inputs: { value: "value", disabled: "disabled", hidden: "hidden", key: "key" }, providers: [{ provide: NATIVE_SELECT_OPTION_TOKEN, useExisting: NativeSelectOptionDirective }], exportAs: ["etNativeSelectOption"], ngImport: i0 }); }
4069
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: NativeSelectOptionDirective, isStandalone: true, inputs: { value: "value", disabled: ["disabled", "disabled", booleanAttribute], hidden: ["hidden", "hidden", booleanAttribute], key: "key" }, providers: [{ provide: NATIVE_SELECT_OPTION_TOKEN, useExisting: NativeSelectOptionDirective }], exportAs: ["etNativeSelectOption"], ngImport: i0 }); }
4113
4070
  }
4114
4071
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NativeSelectOptionDirective, decorators: [{
4115
4072
  type: Directive,
@@ -4121,9 +4078,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
4121
4078
  }], propDecorators: { value: [{
4122
4079
  type: Input
4123
4080
  }], disabled: [{
4124
- type: Input
4081
+ type: Input,
4082
+ args: [{ transform: booleanAttribute }]
4125
4083
  }], hidden: [{
4126
- type: Input
4084
+ type: Input,
4085
+ args: [{ transform: booleanAttribute }]
4127
4086
  }], key: [{
4128
4087
  type: Input
4129
4088
  }] } });
@@ -4278,7 +4237,7 @@ class SelectOptionDirective {
4278
4237
  return this._disabled$.value;
4279
4238
  }
4280
4239
  set disabled(value) {
4281
- this._disabled$.next(coerceBooleanProperty(value));
4240
+ this._disabled$.next(booleanAttribute(value));
4282
4241
  }
4283
4242
  ngAfterContentInit() {
4284
4243
  this._updateViewValue();
@@ -4355,7 +4314,7 @@ class SelectDirective {
4355
4314
  return this._multiple$.value;
4356
4315
  }
4357
4316
  set multiple(value) {
4358
- this._multiple$.next(coerceBooleanProperty(value));
4317
+ this._multiple$.next(booleanAttribute(value));
4359
4318
  this._migrateSelectValue();
4360
4319
  }
4361
4320
  set _selectOptionsQueryList(value) {
@@ -5231,31 +5190,31 @@ class SliderComponent {
5231
5190
  return this._min$.value;
5232
5191
  }
5233
5192
  set min(value) {
5234
- this._min$.next(coerceNumberProperty(value));
5193
+ this._min$.next(numberAttribute(value, 0));
5235
5194
  }
5236
5195
  get max() {
5237
5196
  return this._max$.value;
5238
5197
  }
5239
5198
  set max(value) {
5240
- this._max$.next(coerceNumberProperty(value));
5199
+ this._max$.next(numberAttribute(value, 100));
5241
5200
  }
5242
5201
  get step() {
5243
5202
  return this._step$.value;
5244
5203
  }
5245
5204
  set step(value) {
5246
- this._step$.next(coerceNumberProperty(value));
5205
+ this._step$.next(numberAttribute(value, 1));
5247
5206
  }
5248
5207
  get vertical() {
5249
5208
  return this._vertical$.value;
5250
5209
  }
5251
5210
  set vertical(value) {
5252
- this._vertical$.next(coerceBooleanProperty(value));
5211
+ this._vertical$.next(booleanAttribute(value));
5253
5212
  }
5254
5213
  get inverted() {
5255
5214
  return this._inverted$.value;
5256
5215
  }
5257
5216
  set inverted(value) {
5258
- this._inverted$.next(coerceBooleanProperty(value));
5217
+ this._inverted$.next(booleanAttribute(value));
5259
5218
  }
5260
5219
  ngOnInit() {
5261
5220
  merge(this._mouseDown$, this._touchStart$)
@@ -5527,16 +5486,16 @@ class MasonryComponent {
5527
5486
  };
5528
5487
  }
5529
5488
  get columWidth() {
5530
- return this._columWidth$.getValue() || 1;
5489
+ return this._columWidth$.getValue() || 250;
5531
5490
  }
5532
5491
  set columWidth(value) {
5533
- this._columWidth$.next(coerceNumberProperty(value));
5492
+ this._columWidth$.next(numberAttribute(value, 250));
5534
5493
  }
5535
5494
  get gap() {
5536
5495
  return this._gap$.getValue() || 0;
5537
5496
  }
5538
5497
  set gap(value) {
5539
- this._gap$.next(coerceNumberProperty(value));
5498
+ this._gap$.next(numberAttribute(value, 16));
5540
5499
  }
5541
5500
  ngAfterContentInit() {
5542
5501
  if (!this._items) {
@@ -6790,7 +6749,7 @@ class ToggletipDirective {
6790
6749
  return this._showToggletip;
6791
6750
  }
6792
6751
  set showToggletip(value) {
6793
- this._showToggletip = coerceBooleanProperty(value);
6752
+ this._showToggletip = booleanAttribute(value);
6794
6753
  if (this._showToggletip && !this._animatedOverlay.isMounted) {
6795
6754
  nextFrame(() => {
6796
6755
  this._mountToggletip();
@@ -7188,10 +7147,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
7188
7147
  const TooltipImports = [TooltipDirective];
7189
7148
 
7190
7149
  class DynamicOverlayService {
7191
- constructor(_dialogService, _bottomSheetService, _viewportService) {
7192
- this._dialogService = _dialogService;
7193
- this._bottomSheetService = _bottomSheetService;
7194
- this._viewportService = _viewportService;
7150
+ constructor() {
7151
+ this._dialogService = inject(DialogService);
7152
+ this._bottomSheetService = inject(BottomSheetService);
7153
+ this._viewportService = inject(ViewportService);
7195
7154
  }
7196
7155
  open(componentOrTemplateRef, config) {
7197
7156
  const shouldOpenAsDialog = this._viewportService.isMatched({ min: config.isDialogFrom });
@@ -7200,7 +7159,7 @@ class DynamicOverlayService {
7200
7159
  }
7201
7160
  return this._bottomSheetService.open(componentOrTemplateRef, config.bottomSheetConfig);
7202
7161
  }
7203
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DynamicOverlayService, deps: [{ token: DialogService }, { token: BottomSheetService }, { token: i1$1.ViewportService }], target: i0.ɵɵFactoryTarget.Injectable }); }
7162
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DynamicOverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
7204
7163
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DynamicOverlayService, providedIn: 'root' }); }
7205
7164
  }
7206
7165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DynamicOverlayService, decorators: [{
@@ -7208,7 +7167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
7208
7167
  args: [{
7209
7168
  providedIn: 'root',
7210
7169
  }]
7211
- }], ctorParameters: function () { return [{ type: DialogService }, { type: BottomSheetService }, { type: i1$1.ViewportService }]; } });
7170
+ }] });
7212
7171
 
7213
7172
  class PaginationLinkDirective {
7214
7173
  constructor() {
@@ -7396,7 +7355,7 @@ class PaginationComponent {
7396
7355
  return this._totalPages;
7397
7356
  }
7398
7357
  set totalPages(value) {
7399
- this._totalPages = coerceNumberProperty(value);
7358
+ this._totalPages = numberAttribute(value, 0);
7400
7359
  this._updatePages();
7401
7360
  }
7402
7361
  set headTitleTemplate(v) {
@@ -7408,7 +7367,7 @@ class PaginationComponent {
7408
7367
  this._updateHead();
7409
7368
  }
7410
7369
  set headAddCanonicalTag(v) {
7411
- this._paginationHeadService.addCanonicalTag = coerceBooleanProperty(v);
7370
+ this._paginationHeadService.addCanonicalTag = v;
7412
7371
  this._updateHead();
7413
7372
  }
7414
7373
  ngOnInit() {
@@ -7447,7 +7406,7 @@ class PaginationComponent {
7447
7406
  }
7448
7407
  }
7449
7408
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7450
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: PaginationComponent, isStandalone: true, selector: "et-pagination", inputs: { pageControl: "pageControl", totalPages: "totalPages", headTitleTemplate: "headTitleTemplate", headFirstPageTitle: "headFirstPageTitle", headAddCanonicalTag: "headAddCanonicalTag", ariaLabel: "ariaLabel", pageChangeScrollAnchor: "pageChangeScrollAnchor" }, host: { classAttribute: "et-pagination" }, providers: [PaginationHeadService], ngImport: i0, template: "<nav *ngIf=\"pages$ | async as pages\" [attr.aria-label]=\"ariaLabel\" class=\"et-pagination-nav\">\n <ul class=\"et-pagination-list\">\n <li\n *ngFor=\"let page of pages; trackBy: trackByPage\"\n [class.et-pagination-hot-link]=\"page.type === 'hotLink'\"\n [class.et-pagination-page-link]=\"page.type === 'page'\"\n [class.et-pagination-item-disabled]=\"page.disabled\"\n class=\"et-pagination-list-item et-pagination-{{ page.explicitType }}\"\n >\n <a\n [attr.aria-current]=\"page.current ? 'page' : null\"\n [attr.aria-label]=\"page.ariaLabel\"\n [attr.aria-disabled]=\"page.disabled ? 'true' : null\"\n [etPaginationLink]=\"page\"\n [href]=\"page.disabled ? '#' : page.url\"\n (pageClick)=\"onPageClick($event)\"\n class=\"et-pagination-anchor\"\n >\n <ng-container *ngIf=\"page.type === 'page'\">\n {{ page.page }}\n </ng-container>\n </a>\n </li>\n </ul>\n</nav>\n", styles: [""], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PaginationLinkDirective, selector: "[etPaginationLink]", inputs: ["etPaginationLink"], outputs: ["pageClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7409
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: PaginationComponent, isStandalone: true, selector: "et-pagination", inputs: { pageControl: "pageControl", totalPages: "totalPages", headTitleTemplate: "headTitleTemplate", headFirstPageTitle: "headFirstPageTitle", headAddCanonicalTag: ["headAddCanonicalTag", "headAddCanonicalTag", booleanAttribute], ariaLabel: "ariaLabel", pageChangeScrollAnchor: "pageChangeScrollAnchor" }, host: { classAttribute: "et-pagination" }, providers: [PaginationHeadService], ngImport: i0, template: "<nav *ngIf=\"pages$ | async as pages\" [attr.aria-label]=\"ariaLabel\" class=\"et-pagination-nav\">\n <ul class=\"et-pagination-list\">\n <li\n *ngFor=\"let page of pages; trackBy: trackByPage\"\n [class.et-pagination-hot-link]=\"page.type === 'hotLink'\"\n [class.et-pagination-page-link]=\"page.type === 'page'\"\n [class.et-pagination-item-disabled]=\"page.disabled\"\n class=\"et-pagination-list-item et-pagination-{{ page.explicitType }}\"\n >\n <a\n [attr.aria-current]=\"page.current ? 'page' : null\"\n [attr.aria-label]=\"page.ariaLabel\"\n [attr.aria-disabled]=\"page.disabled ? 'true' : null\"\n [etPaginationLink]=\"page\"\n [href]=\"page.disabled ? '#' : page.url\"\n (pageClick)=\"onPageClick($event)\"\n class=\"et-pagination-anchor\"\n >\n <ng-container *ngIf=\"page.type === 'page'\">\n {{ page.page }}\n </ng-container>\n </a>\n </li>\n </ul>\n</nav>\n", styles: [""], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PaginationLinkDirective, selector: "[etPaginationLink]", inputs: ["etPaginationLink"], outputs: ["pageClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7451
7410
  }
7452
7411
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PaginationComponent, decorators: [{
7453
7412
  type: Component,
@@ -7463,7 +7422,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
7463
7422
  }], headFirstPageTitle: [{
7464
7423
  type: Input
7465
7424
  }], headAddCanonicalTag: [{
7466
- type: Input
7425
+ type: Input,
7426
+ args: [{ transform: booleanAttribute }]
7467
7427
  }], ariaLabel: [{
7468
7428
  type: Input
7469
7429
  }], pageChangeScrollAnchor: [{
@@ -7474,7 +7434,7 @@ const PaginationImports = [PaginationComponent];
7474
7434
 
7475
7435
  class PictureDataDirective {
7476
7436
  constructor() {
7477
- this._hasPriority = false;
7437
+ this.hasPriority = false;
7478
7438
  this.imgClass = null;
7479
7439
  this.figureClass = null;
7480
7440
  this.figcaptionClass = null;
@@ -7486,14 +7446,8 @@ class PictureDataDirective {
7486
7446
  this.height = null;
7487
7447
  this.sizes = null;
7488
7448
  }
7489
- get hasPriority() {
7490
- return this._hasPriority;
7491
- }
7492
- set hasPriority(value) {
7493
- this._hasPriority = coerceBooleanProperty(value);
7494
- }
7495
7449
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PictureDataDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7496
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: PictureDataDirective, isStandalone: true, inputs: { hasPriority: "hasPriority", imgClass: "imgClass", figureClass: "figureClass", figcaptionClass: "figcaptionClass", pictureClass: "pictureClass", defaultSrc: "defaultSrc", alt: "alt", figcaption: "figcaption", width: "width", height: "height", sizes: "sizes" }, ngImport: i0 }); }
7450
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: PictureDataDirective, isStandalone: true, inputs: { hasPriority: ["hasPriority", "hasPriority", booleanAttribute], imgClass: "imgClass", figureClass: "figureClass", figcaptionClass: "figcaptionClass", pictureClass: "pictureClass", defaultSrc: "defaultSrc", alt: "alt", figcaption: "figcaption", width: "width", height: "height", sizes: "sizes" }, ngImport: i0 }); }
7497
7451
  }
7498
7452
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PictureDataDirective, decorators: [{
7499
7453
  type: Directive,
@@ -7501,7 +7455,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
7501
7455
  standalone: true,
7502
7456
  }]
7503
7457
  }], propDecorators: { hasPriority: [{
7504
- type: Input
7458
+ type: Input,
7459
+ args: [{ transform: booleanAttribute }]
7505
7460
  }], imgClass: [{
7506
7461
  type: Input
7507
7462
  }], figureClass: [{
@@ -7569,37 +7524,25 @@ function PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY() {
7569
7524
  const BASE_SIZE = 100;
7570
7525
  const BASE_STROKE_WIDTH = 10;
7571
7526
  class ProgressSpinnerComponent {
7572
- get multiColor() {
7573
- return this._multiColor;
7574
- }
7575
- set multiColor(value) {
7576
- this._multiColor = coerceBooleanProperty(value);
7577
- }
7578
7527
  get value() {
7579
7528
  return this.mode === 'determinate' ? this._value : 0;
7580
7529
  }
7581
7530
  set value(v) {
7582
- this._value = clamp(coerceNumberProperty(v));
7583
- }
7584
- get diameter() {
7585
- return this._diameter;
7586
- }
7587
- set diameter(size) {
7588
- this._diameter = coerceNumberProperty(size);
7531
+ this._value = clamp(numberAttribute(v, 0));
7589
7532
  }
7590
7533
  get strokeWidth() {
7591
7534
  return this._strokeWidth ?? this.diameter / 10;
7592
7535
  }
7593
7536
  set strokeWidth(value) {
7594
- this._strokeWidth = coerceNumberProperty(value);
7537
+ this._strokeWidth = numberAttribute(value);
7595
7538
  }
7596
7539
  constructor() {
7597
7540
  this._elementRef = inject(ElementRef);
7598
7541
  this._defaults = inject(PROGRESS_SPINNER_DEFAULT_OPTIONS);
7599
- this._multiColor = false;
7542
+ this.multiColor = false;
7600
7543
  this.mode = this._elementRef.nativeElement.nodeName.toLowerCase() === 'et-spinner' ? 'indeterminate' : 'determinate';
7601
7544
  this._value = 0;
7602
- this._diameter = BASE_SIZE;
7545
+ this.diameter = BASE_SIZE;
7603
7546
  this._strokeWidth = null;
7604
7547
  if (this._defaults) {
7605
7548
  if (this._defaults.diameter) {
@@ -7630,7 +7573,7 @@ class ProgressSpinnerComponent {
7630
7573
  return (this.strokeWidth / this.diameter) * 100;
7631
7574
  }
7632
7575
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ProgressSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7633
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: ProgressSpinnerComponent, isStandalone: true, selector: "et-progress-spinner, et-spinner", inputs: { multiColor: "multiColor", mode: "mode", value: "value", diameter: "diameter", strokeWidth: "strokeWidth" }, host: { attributes: { "role": "progressbar", "tabindex": "-1" }, properties: { "class.et-circular-progress--indeterminate": "mode === \"indeterminate\"", "class.et-progress-spinner--multi-color": "multiColor", "style.width.px": "diameter", "style.height.px": "diameter", "attr.aria-valuemin": "0", "attr.aria-valuemax": "100", "attr.aria-valuenow": "mode === \"determinate\" ? value : null", "attr.mode": "mode" }, classAttribute: "et-progress-spinner" }, ngImport: i0, template: "<ng-template #circle>\n <svg\n [attr.viewBox]=\"_viewBox()\"\n class=\"et-circular-progress__indeterminate-circle-graphic\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n >\n <circle\n [attr.r]=\"_circleRadius()\"\n [style.stroke-dasharray.px]=\"_strokeCircumference()\"\n [style.stroke-dashoffset.px]=\"_strokeCircumference() / 2\"\n [style.stroke-width.%]=\"_circleStrokeWidth()\"\n cx=\"50%\"\n cy=\"50%\"\n />\n </svg>\n</ng-template>\n\n<ng-template #spinner>\n <div class=\"et-circular-progress__circle-clipper et-circular-progress__circle-left\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n <div class=\"et-circular-progress__gap-patch\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n <div class=\"et-circular-progress__circle-clipper et-circular-progress__circle-right\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n</ng-template>\n\n<div class=\"et-circular-progress__determinate-container\" aria-hidden=\"true\">\n <svg\n [attr.viewBox]=\"_viewBox()\"\n class=\"et-circular-progress__determinate-circle-graphic\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n >\n <circle\n [attr.r]=\"_circleRadius()\"\n [style.stroke-dasharray.px]=\"_strokeCircumference()\"\n [style.stroke-dashoffset.px]=\"_strokeDashOffset()\"\n [style.stroke-width.%]=\"_circleStrokeWidth()\"\n class=\"et-circular-progress__determinate-circle\"\n cx=\"50%\"\n cy=\"50%\"\n />\n </svg>\n</div>\n\n<div class=\"et-circular-progress__indeterminate-container\" aria-hidden=\"true\">\n <div [class.et-circular-progress__color-1]=\"multiColor\" class=\"et-circular-progress__spinner-layer\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-2\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-3\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-4\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n</div>\n", styles: [":where(.et-progress-spinner){--et-progress-spinner-edges: round;--et-progress-spinner-color: #1e88e5;--et-progress-spinner-color-1: var(--et-progress-spinner-color);--et-progress-spinner-color-2: #f44336;--et-progress-spinner-color-3: #ff9800;--et-progress-spinner-color-4: #4caf50}.et-progress-spinner{position:relative;direction:ltr;transition:opacity .25s 0ms cubic-bezier(.4,0,.6,1);display:block;overflow:hidden;line-height:0}.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-2,.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-3,.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-4{visibility:visible}.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-1 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-1)}.et-circular-progress__determinate-circle,.et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color);stroke-linecap:var(--et-progress-spinner-edges)}.et-circular-progress__color-2 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-2)}.et-circular-progress__color-3 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-3)}.et-circular-progress__color-4 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-4)}.et-circular-progress__color-2,.et-circular-progress__color-3,.et-circular-progress__color-4{visibility:hidden}.et-circular-progress__determinate-container,.et-circular-progress__indeterminate-circle-graphic,.et-circular-progress__indeterminate-container,.et-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.et-circular-progress__determinate-container{transform:rotate(-90deg)}.et-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.et-circular-progress__determinate-circle-graphic,.et-circular-progress__indeterminate-circle-graphic{fill:#0000}.et-circular-progress__determinate-circle{transition:stroke-dashoffset .5s 0ms cubic-bezier(0,0,.2,1)}.et-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.et-circular-progress__gap-patch .et-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.et-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.et-circular-progress__circle-clipper .et-circular-progress__indeterminate-circle-graphic{width:200%}.et-circular-progress__circle-right .et-circular-progress__indeterminate-circle-graphic{left:-100%}.et-circular-progress--indeterminate .et-circular-progress__determinate-container{opacity:0}.et-circular-progress--indeterminate .et-circular-progress__indeterminate-container{opacity:1}.et-circular-progress--indeterminate .et-circular-progress__indeterminate-container{animation:et-circular-progress-container-rotate 1.5682352941176s linear infinite}.et-circular-progress--indeterminate .et-circular-progress__spinner-layer{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-1{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-2{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-3{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-4{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__circle-left .et-circular-progress__indeterminate-circle-graphic{animation:et-circular-progress-left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__circle-right .et-circular-progress__indeterminate-circle-graphic{animation:et-circular-progress-right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@keyframes et-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes et-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(1080deg)}}@keyframes et-circular-progress-color-1-fade-in-out{0%{opacity:.99}25%{opacity:.99}26%{opacity:0}50%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes et-circular-progress-color-2-fade-in-out{0%{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes et-circular-progress-color-3-fade-in-out{0%{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes et-circular-progress-color-4-fade-in-out{0%{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes et-circular-progress-left-spin{0%{transform:rotate(260deg)}50%{transform:rotate(130deg)}to{transform:rotate(260deg)}}@keyframes et-circular-progress-right-spin{0%{transform:rotate(-260deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-260deg)}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7576
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: ProgressSpinnerComponent, isStandalone: true, selector: "et-progress-spinner, et-spinner", inputs: { multiColor: ["multiColor", "multiColor", booleanAttribute], mode: "mode", value: "value", diameter: ["diameter", "diameter", numberAttribute], strokeWidth: "strokeWidth" }, host: { attributes: { "role": "progressbar", "tabindex": "-1" }, properties: { "class.et-circular-progress--indeterminate": "mode === \"indeterminate\"", "class.et-progress-spinner--multi-color": "multiColor", "style.width.px": "diameter", "style.height.px": "diameter", "attr.aria-valuemin": "0", "attr.aria-valuemax": "100", "attr.aria-valuenow": "mode === \"determinate\" ? value : null", "attr.mode": "mode" }, classAttribute: "et-progress-spinner" }, ngImport: i0, template: "<ng-template #circle>\n <svg\n [attr.viewBox]=\"_viewBox()\"\n class=\"et-circular-progress__indeterminate-circle-graphic\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n >\n <circle\n [attr.r]=\"_circleRadius()\"\n [style.stroke-dasharray.px]=\"_strokeCircumference()\"\n [style.stroke-dashoffset.px]=\"_strokeCircumference() / 2\"\n [style.stroke-width.%]=\"_circleStrokeWidth()\"\n cx=\"50%\"\n cy=\"50%\"\n />\n </svg>\n</ng-template>\n\n<ng-template #spinner>\n <div class=\"et-circular-progress__circle-clipper et-circular-progress__circle-left\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n <div class=\"et-circular-progress__gap-patch\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n <div class=\"et-circular-progress__circle-clipper et-circular-progress__circle-right\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n</ng-template>\n\n<div class=\"et-circular-progress__determinate-container\" aria-hidden=\"true\">\n <svg\n [attr.viewBox]=\"_viewBox()\"\n class=\"et-circular-progress__determinate-circle-graphic\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n >\n <circle\n [attr.r]=\"_circleRadius()\"\n [style.stroke-dasharray.px]=\"_strokeCircumference()\"\n [style.stroke-dashoffset.px]=\"_strokeDashOffset()\"\n [style.stroke-width.%]=\"_circleStrokeWidth()\"\n class=\"et-circular-progress__determinate-circle\"\n cx=\"50%\"\n cy=\"50%\"\n />\n </svg>\n</div>\n\n<div class=\"et-circular-progress__indeterminate-container\" aria-hidden=\"true\">\n <div [class.et-circular-progress__color-1]=\"multiColor\" class=\"et-circular-progress__spinner-layer\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-2\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-3\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-4\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n</div>\n", styles: [":where(.et-progress-spinner){--et-progress-spinner-edges: round;--et-progress-spinner-color: #1e88e5;--et-progress-spinner-color-1: var(--et-progress-spinner-color);--et-progress-spinner-color-2: #f44336;--et-progress-spinner-color-3: #ff9800;--et-progress-spinner-color-4: #4caf50}.et-progress-spinner{position:relative;direction:ltr;transition:opacity .25s 0ms cubic-bezier(.4,0,.6,1);display:block;overflow:hidden;line-height:0}.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-2,.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-3,.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-4{visibility:visible}.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-1 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-1)}.et-circular-progress__determinate-circle,.et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color);stroke-linecap:var(--et-progress-spinner-edges)}.et-circular-progress__color-2 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-2)}.et-circular-progress__color-3 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-3)}.et-circular-progress__color-4 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-4)}.et-circular-progress__color-2,.et-circular-progress__color-3,.et-circular-progress__color-4{visibility:hidden}.et-circular-progress__determinate-container,.et-circular-progress__indeterminate-circle-graphic,.et-circular-progress__indeterminate-container,.et-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.et-circular-progress__determinate-container{transform:rotate(-90deg)}.et-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.et-circular-progress__determinate-circle-graphic,.et-circular-progress__indeterminate-circle-graphic{fill:#0000}.et-circular-progress__determinate-circle{transition:stroke-dashoffset .5s 0ms cubic-bezier(0,0,.2,1)}.et-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.et-circular-progress__gap-patch .et-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.et-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.et-circular-progress__circle-clipper .et-circular-progress__indeterminate-circle-graphic{width:200%}.et-circular-progress__circle-right .et-circular-progress__indeterminate-circle-graphic{left:-100%}.et-circular-progress--indeterminate .et-circular-progress__determinate-container{opacity:0}.et-circular-progress--indeterminate .et-circular-progress__indeterminate-container{opacity:1}.et-circular-progress--indeterminate .et-circular-progress__indeterminate-container{animation:et-circular-progress-container-rotate 1.5682352941176s linear infinite}.et-circular-progress--indeterminate .et-circular-progress__spinner-layer{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-1{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-2{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-3{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-4{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__circle-left .et-circular-progress__indeterminate-circle-graphic{animation:et-circular-progress-left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__circle-right .et-circular-progress__indeterminate-circle-graphic{animation:et-circular-progress-right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@keyframes et-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes et-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(1080deg)}}@keyframes et-circular-progress-color-1-fade-in-out{0%{opacity:.99}25%{opacity:.99}26%{opacity:0}50%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes et-circular-progress-color-2-fade-in-out{0%{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes et-circular-progress-color-3-fade-in-out{0%{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes et-circular-progress-color-4-fade-in-out{0%{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes et-circular-progress-left-spin{0%{transform:rotate(260deg)}50%{transform:rotate(130deg)}to{transform:rotate(260deg)}}@keyframes et-circular-progress-right-spin{0%{transform:rotate(-260deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-260deg)}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7634
7577
  }
7635
7578
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ProgressSpinnerComponent, decorators: [{
7636
7579
  type: Component,
@@ -7648,13 +7591,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
7648
7591
  '[attr.mode]': 'mode',
7649
7592
  }, imports: [NgTemplateOutlet, NgIf], hostDirectives: [], template: "<ng-template #circle>\n <svg\n [attr.viewBox]=\"_viewBox()\"\n class=\"et-circular-progress__indeterminate-circle-graphic\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n >\n <circle\n [attr.r]=\"_circleRadius()\"\n [style.stroke-dasharray.px]=\"_strokeCircumference()\"\n [style.stroke-dashoffset.px]=\"_strokeCircumference() / 2\"\n [style.stroke-width.%]=\"_circleStrokeWidth()\"\n cx=\"50%\"\n cy=\"50%\"\n />\n </svg>\n</ng-template>\n\n<ng-template #spinner>\n <div class=\"et-circular-progress__circle-clipper et-circular-progress__circle-left\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n <div class=\"et-circular-progress__gap-patch\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n <div class=\"et-circular-progress__circle-clipper et-circular-progress__circle-right\">\n <ng-container [ngTemplateOutlet]=\"circle\" />\n </div>\n</ng-template>\n\n<div class=\"et-circular-progress__determinate-container\" aria-hidden=\"true\">\n <svg\n [attr.viewBox]=\"_viewBox()\"\n class=\"et-circular-progress__determinate-circle-graphic\"\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n >\n <circle\n [attr.r]=\"_circleRadius()\"\n [style.stroke-dasharray.px]=\"_strokeCircumference()\"\n [style.stroke-dashoffset.px]=\"_strokeDashOffset()\"\n [style.stroke-width.%]=\"_circleStrokeWidth()\"\n class=\"et-circular-progress__determinate-circle\"\n cx=\"50%\"\n cy=\"50%\"\n />\n </svg>\n</div>\n\n<div class=\"et-circular-progress__indeterminate-container\" aria-hidden=\"true\">\n <div [class.et-circular-progress__color-1]=\"multiColor\" class=\"et-circular-progress__spinner-layer\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-2\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-3\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n\n <div class=\"et-circular-progress__spinner-layer et-circular-progress__color-4\">\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </div>\n</div>\n", styles: [":where(.et-progress-spinner){--et-progress-spinner-edges: round;--et-progress-spinner-color: #1e88e5;--et-progress-spinner-color-1: var(--et-progress-spinner-color);--et-progress-spinner-color-2: #f44336;--et-progress-spinner-color-3: #ff9800;--et-progress-spinner-color-4: #4caf50}.et-progress-spinner{position:relative;direction:ltr;transition:opacity .25s 0ms cubic-bezier(.4,0,.6,1);display:block;overflow:hidden;line-height:0}.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-2,.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-3,.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-4{visibility:visible}.et-progress-spinner.et-progress-spinner--multi-color .et-circular-progress__color-1 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-1)}.et-circular-progress__determinate-circle,.et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color);stroke-linecap:var(--et-progress-spinner-edges)}.et-circular-progress__color-2 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-2)}.et-circular-progress__color-3 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-3)}.et-circular-progress__color-4 .et-circular-progress__indeterminate-circle-graphic{stroke:var(--et-progress-spinner-color-4)}.et-circular-progress__color-2,.et-circular-progress__color-3,.et-circular-progress__color-4{visibility:hidden}.et-circular-progress__determinate-container,.et-circular-progress__indeterminate-circle-graphic,.et-circular-progress__indeterminate-container,.et-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.et-circular-progress__determinate-container{transform:rotate(-90deg)}.et-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.et-circular-progress__determinate-circle-graphic,.et-circular-progress__indeterminate-circle-graphic{fill:#0000}.et-circular-progress__determinate-circle{transition:stroke-dashoffset .5s 0ms cubic-bezier(0,0,.2,1)}.et-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.et-circular-progress__gap-patch .et-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.et-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.et-circular-progress__circle-clipper .et-circular-progress__indeterminate-circle-graphic{width:200%}.et-circular-progress__circle-right .et-circular-progress__indeterminate-circle-graphic{left:-100%}.et-circular-progress--indeterminate .et-circular-progress__determinate-container{opacity:0}.et-circular-progress--indeterminate .et-circular-progress__indeterminate-container{opacity:1}.et-circular-progress--indeterminate .et-circular-progress__indeterminate-container{animation:et-circular-progress-container-rotate 1.5682352941176s linear infinite}.et-circular-progress--indeterminate .et-circular-progress__spinner-layer{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-1{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-2{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-3{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__color-4{animation:et-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,et-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__circle-left .et-circular-progress__indeterminate-circle-graphic{animation:et-circular-progress-left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.et-circular-progress--indeterminate .et-circular-progress__circle-right .et-circular-progress__indeterminate-circle-graphic{animation:et-circular-progress-right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@keyframes et-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes et-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(1080deg)}}@keyframes et-circular-progress-color-1-fade-in-out{0%{opacity:.99}25%{opacity:.99}26%{opacity:0}50%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes et-circular-progress-color-2-fade-in-out{0%{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes et-circular-progress-color-3-fade-in-out{0%{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes et-circular-progress-color-4-fade-in-out{0%{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes et-circular-progress-left-spin{0%{transform:rotate(260deg)}50%{transform:rotate(130deg)}to{transform:rotate(260deg)}}@keyframes et-circular-progress-right-spin{0%{transform:rotate(-260deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-260deg)}}\n"] }]
7650
7593
  }], ctorParameters: function () { return []; }, propDecorators: { multiColor: [{
7651
- type: Input
7594
+ type: Input,
7595
+ args: [{ transform: booleanAttribute }]
7652
7596
  }], mode: [{
7653
7597
  type: Input
7654
7598
  }], value: [{
7655
7599
  type: Input
7656
7600
  }], diameter: [{
7657
- type: Input
7601
+ type: Input,
7602
+ args: [{ transform: numberAttribute }]
7658
7603
  }], strokeWidth: [{
7659
7604
  type: Input
7660
7605
  }] } });
@@ -7836,6 +7781,8 @@ class ScrollableComponent {
7836
7781
  ?.toArray()
7837
7782
  .map((e) => e?.elementRef.nativeElement)
7838
7783
  .filter((e) => !!e) ?? [];
7784
+ if (!elements.length)
7785
+ return;
7839
7786
  const states = getElementVisibleStates({
7840
7787
  elements,
7841
7788
  container: scrollElement,
@@ -7859,7 +7806,7 @@ class ScrollableComponent {
7859
7806
  };
7860
7807
  return state;
7861
7808
  }));
7862
- if (isSnapping || this._isCursorDragging$.value)
7809
+ if (isSnapping || this._isCursorDragging$.value || !this.snap)
7863
7810
  return;
7864
7811
  const isOnlyOnePartialIntersection = states.filter((s) => s[prop] < 100 && s[prop] > 0).length === 1;
7865
7812
  if (isOnlyOnePartialIntersection)
@@ -7892,7 +7839,7 @@ class ScrollableComponent {
7892
7839
  .subscribe();
7893
7840
  }
7894
7841
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ScrollableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7895
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: ScrollableComponent, isStandalone: true, selector: "et-scrollable", inputs: { itemSize: "itemSize", direction: "direction", scrollableRole: "scrollableRole", scrollableClass: "scrollableClass", renderMasks: ["renderMasks", "renderMasks", booleanAttribute], renderButtons: ["renderButtons", "renderButtons", booleanAttribute], renderScrollbars: ["renderScrollbars", "renderScrollbars", booleanAttribute], stickyButtons: ["stickyButtons", "stickyButtons", booleanAttribute], cursorDragScroll: ["cursorDragScroll", "cursorDragScroll", booleanAttribute], disableActiveElementScrolling: ["disableActiveElementScrolling", "disableActiveElementScrolling", booleanAttribute], scrollMode: "scrollMode", snap: ["snap", "snap", booleanAttribute], scrollMargin: ["scrollMargin", "scrollMargin", numberAttribute] }, outputs: { scrollStateChange: "scrollStateChange", intersectionChange: "intersectionChange" }, host: { properties: { "attr.item-size": "this.itemSize", "attr.direction": "this.direction", "attr.render-scrollbars": "this.renderScrollbars", "attr.sticky-buttons": "this.stickyButtons" }, classAttribute: "et-scrollable" }, queries: [{ propertyName: "activeElements", predicate: IS_ACTIVE_ELEMENT, descendants: true }, { propertyName: "elements", predicate: IS_ELEMENT, descendants: true }], viewQueries: [{ propertyName: "scrollable", first: true, predicate: ["scrollable"], descendants: true, static: true }], ngImport: i0, template: "<div\n #scrollable\n [attr.role]=\"scrollableRole ?? undefined\"\n [ngClass]=\"scrollableClass\"\n [etCursorDragScroll]=\"cursorDragScroll\"\n [allowedDirection]=\"direction\"\n (etObserveScrollState)=\"_scrollStateChanged($event)\"\n (cursorDragStart)=\"setIsCursorDragging(true)\"\n (cursorDragEnd)=\"setIsCursorDragging(false)\"\n class=\"et-scrollable-container\"\n>\n <ng-content />\n</div>\n\n<div *ngIf=\"renderMasks\" class=\"et-scrollable-masks\">\n <div class=\"et-scrollable-mask et-scrollable-mask--start\"></div>\n <div class=\"et-scrollable-mask et-scrollable-mask--end\"></div>\n</div>\n\n<div *ngIf=\"renderButtons\" class=\"et-scrollable-buttons\">\n <button\n (click)=\"scrollToStartDirection()\"\n class=\"et-scrollable-button et-scrollable-button--start\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n <button\n (click)=\"scrollToStartEnd()\"\n class=\"et-scrollable-button et-scrollable-button--end\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n</div>\n", styles: [".et-scrollable{--mask: #121212 0, transparent 100%;--mask-size: 25px;--_auto-size: min-content;--_flow: column;display:grid;position:relative}.et-scrollable[item-size=same]{--auto-size: 1fr}.et-scrollable[render-scrollbars=false] .et-scrollable-container{scrollbar-width:none}.et-scrollable[render-scrollbars=false] .et-scrollable-container::-webkit-scrollbar{display:none}.et-scrollable[direction=horizontal] .et-scrollable-container{grid-auto-columns:var(--_auto-size);overflow-x:auto;overflow-y:hidden}.et-scrollable[direction=horizontal] .et-scrollable-mask,.et-scrollable[direction=horizontal] .et-scrollable-button{inline-size:var(--mask-size);block-size:100%}.et-scrollable[direction=horizontal] .et-scrollable-mask--start,.et-scrollable[direction=horizontal] .et-scrollable-button--start{inset-block-start:0;inset-inline:0 0}.et-scrollable[direction=horizontal] .et-scrollable-mask--end,.et-scrollable[direction=horizontal] .et-scrollable-button--end{inset-block-start:0;inset-inline:calc(100% - 40px) 0}.et-scrollable[direction=horizontal] .et-scrollable-mask--start{background:linear-gradient(to right,var(--mask))}.et-scrollable[direction=horizontal] .et-scrollable-mask--end{background:linear-gradient(to left,var(--mask));inset-inline:calc(100% - var(--mask-size)) 100%}.et-scrollable[direction=horizontal] .et-scrollable-button--start{inset-block-start:calc(50% - 20px);transform:rotate(-90deg)}.et-scrollable[direction=horizontal] .et-scrollable-button--end{inset-block-start:calc(50% - 20px);transform:rotate(90deg)}.et-scrollable[direction=vertical]{--_flow: row}.et-scrollable[direction=vertical] .et-scrollable-container{grid-auto-rows:var(--_auto-size);overflow-x:hidden;overflow-y:auto}.et-scrollable[direction=vertical] .et-scrollable-mask,.et-scrollable[direction=vertical] .et-scrollable-button{block-size:var(--mask-size);inline-size:100%}.et-scrollable[direction=vertical] .et-scrollable-mask--start,.et-scrollable[direction=vertical] .et-scrollable-button--start{inset-block-start:0;inset-inline-start:0}.et-scrollable[direction=vertical] .et-scrollable-mask--end,.et-scrollable[direction=vertical] .et-scrollable-button--end{inset-block-end:0;inset-inline-start:0}.et-scrollable[direction=vertical] .et-scrollable-mask--start{background:linear-gradient(to bottom,var(--mask))}.et-scrollable[direction=vertical] .et-scrollable-mask--end{background:linear-gradient(to top,var(--mask))}.et-scrollable[at-start=false] .et-scrollable-masks .et-scrollable-mask--start,.et-scrollable[at-start=false] .et-scrollable-buttons .et-scrollable-button--start{opacity:1}.et-scrollable[at-start=false] .et-scrollable-buttons .et-scrollable-button--start{pointer-events:all}.et-scrollable[at-end=false] .et-scrollable-masks .et-scrollable-mask--end,.et-scrollable[at-end=false] .et-scrollable-buttons .et-scrollable-button--end{opacity:1}.et-scrollable[at-end=false] .et-scrollable-buttons .et-scrollable-button--end{pointer-events:all}.et-scrollable .et-scrollable-container{display:grid;grid-auto-flow:var(--_flow);overflow:auto;grid-row:1/1;grid-column:1/1}.et-scrollable .et-scrollable-masks,.et-scrollable .et-scrollable-buttons{grid-row:1/1;grid-column:1/1;pointer-events:none}.et-scrollable .et-scrollable-masks .et-scrollable-mask,.et-scrollable .et-scrollable-masks .et-scrollable-button,.et-scrollable .et-scrollable-buttons .et-scrollable-mask,.et-scrollable .et-scrollable-buttons .et-scrollable-button{position:absolute;opacity:0;transition:opacity .3s var(--ease-5)}.et-scrollable .et-scrollable-buttons .et-scrollable-button{background:transparent;border:none;padding:12px;inline-size:40px;block-size:40px;border-radius:4px;cursor:pointer}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-chevron-icon{pointer-events:none}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-scrollable-button--start{inset-inline:0 0}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-scrollable-button--end{inset-inline:calc(100% - 40px) 0}.et-scrollable[sticky-buttons=true] .et-scrollable-buttons{margin-block:10%}.et-scrollable[sticky-buttons=true] .et-scrollable-buttons .et-scrollable-button{position:sticky}\n"], dependencies: [{ kind: "directive", type: CursorDragScrollDirective, selector: "[etCursorDragScroll]", inputs: ["etCursorDragScroll", "allowedDirection"], outputs: ["cursorDragStart", "cursorDragMove", "cursorDragEnd"], exportAs: ["etCursorDragScroll"] }, { kind: "directive", type: ObserveScrollStateDirective, selector: "[etObserveScrollState]", inputs: ["observerRootMargin", "observerThreshold"], outputs: ["etObserveScrollState"], exportAs: ["etObserveScrollState"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ChevronIconComponent, selector: "et-chevron-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7842
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: ScrollableComponent, isStandalone: true, selector: "et-scrollable", inputs: { itemSize: "itemSize", direction: "direction", scrollableRole: "scrollableRole", scrollableClass: "scrollableClass", renderMasks: ["renderMasks", "renderMasks", booleanAttribute], renderButtons: ["renderButtons", "renderButtons", booleanAttribute], renderScrollbars: ["renderScrollbars", "renderScrollbars", booleanAttribute], stickyButtons: ["stickyButtons", "stickyButtons", booleanAttribute], cursorDragScroll: ["cursorDragScroll", "cursorDragScroll", booleanAttribute], disableActiveElementScrolling: ["disableActiveElementScrolling", "disableActiveElementScrolling", booleanAttribute], scrollMode: "scrollMode", snap: ["snap", "snap", booleanAttribute], scrollMargin: ["scrollMargin", "scrollMargin", numberAttribute] }, outputs: { scrollStateChange: "scrollStateChange", intersectionChange: "intersectionChange" }, host: { properties: { "attr.item-size": "this.itemSize", "attr.direction": "this.direction", "attr.render-scrollbars": "this.renderScrollbars", "attr.sticky-buttons": "this.stickyButtons" }, classAttribute: "et-scrollable" }, queries: [{ propertyName: "activeElements", predicate: IS_ACTIVE_ELEMENT, descendants: true }, { propertyName: "elements", predicate: IS_ELEMENT, descendants: true }], viewQueries: [{ propertyName: "scrollable", first: true, predicate: ["scrollable"], descendants: true, static: true }], ngImport: i0, template: "<div\n #scrollable\n [attr.role]=\"scrollableRole ?? undefined\"\n [ngClass]=\"scrollableClass\"\n [etCursorDragScroll]=\"cursorDragScroll\"\n [allowedDirection]=\"direction\"\n (etObserveScrollState)=\"_scrollStateChanged($event)\"\n (cursorDragStart)=\"setIsCursorDragging(true)\"\n (cursorDragEnd)=\"setIsCursorDragging(false)\"\n class=\"et-scrollable-container\"\n>\n <ng-content />\n</div>\n\n<div *ngIf=\"renderMasks\" class=\"et-scrollable-masks\">\n <div class=\"et-scrollable-mask et-scrollable-mask--start\"></div>\n <div class=\"et-scrollable-mask et-scrollable-mask--end\"></div>\n</div>\n\n<div *ngIf=\"renderButtons\" class=\"et-scrollable-buttons\">\n <button\n (click)=\"scrollToStartDirection()\"\n class=\"et-scrollable-button et-scrollable-button--start\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n <button\n (click)=\"scrollToStartEnd()\"\n class=\"et-scrollable-button et-scrollable-button--end\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n</div>\n", styles: [".et-scrollable{--mask: #121212 0, transparent 100%;--mask-size: 25px;--_auto-size: min-content;--_flow: column;display:grid;position:relative}.et-scrollable[item-size=same]{--auto-size: 1fr}.et-scrollable[render-scrollbars=false] .et-scrollable-container{scrollbar-width:none}.et-scrollable[render-scrollbars=false] .et-scrollable-container::-webkit-scrollbar{display:none}.et-scrollable[direction=horizontal] .et-scrollable-container{grid-auto-columns:var(--_auto-size);overflow-x:auto;overflow-y:hidden}.et-scrollable[direction=horizontal] .et-scrollable-mask,.et-scrollable[direction=horizontal] .et-scrollable-button{inline-size:var(--mask-size);block-size:100%}.et-scrollable[direction=horizontal] .et-scrollable-mask--start,.et-scrollable[direction=horizontal] .et-scrollable-button--start{inset-block-start:0;inset-inline:0 0}.et-scrollable[direction=horizontal] .et-scrollable-mask--end,.et-scrollable[direction=horizontal] .et-scrollable-button--end{inset-block-start:0;inset-inline:calc(100% - 40px) 0}.et-scrollable[direction=horizontal] .et-scrollable-mask--start{background:linear-gradient(to right,var(--mask))}.et-scrollable[direction=horizontal] .et-scrollable-mask--end{background:linear-gradient(to left,var(--mask));inset-inline:calc(100% - var(--mask-size)) 100%}.et-scrollable[direction=horizontal] .et-scrollable-button--start{inset-block-start:calc(50% - 20px);transform:rotate(-90deg)}.et-scrollable[direction=horizontal] .et-scrollable-button--end{inset-block-start:calc(50% - 20px);transform:rotate(90deg)}.et-scrollable[direction=vertical]{--_flow: row}.et-scrollable[direction=vertical] .et-scrollable-container{grid-auto-rows:var(--_auto-size);overflow-x:hidden;overflow-y:auto}.et-scrollable[direction=vertical] .et-scrollable-mask,.et-scrollable[direction=vertical] .et-scrollable-button{block-size:var(--mask-size);inline-size:100%}.et-scrollable[direction=vertical] .et-scrollable-mask--start,.et-scrollable[direction=vertical] .et-scrollable-button--start{inset-block-start:0;inset-inline-start:0}.et-scrollable[direction=vertical] .et-scrollable-mask--end,.et-scrollable[direction=vertical] .et-scrollable-button--end{inset-block-end:0;inset-inline-start:0}.et-scrollable[direction=vertical] .et-scrollable-mask--start{background:linear-gradient(to bottom,var(--mask))}.et-scrollable[direction=vertical] .et-scrollable-mask--end{background:linear-gradient(to top,var(--mask))}.et-scrollable[at-start=false] .et-scrollable-masks .et-scrollable-mask--start,.et-scrollable[at-start=false] .et-scrollable-buttons .et-scrollable-button--start{opacity:1}.et-scrollable[at-start=false] .et-scrollable-buttons .et-scrollable-button--start{pointer-events:all}.et-scrollable[at-end=false] .et-scrollable-masks .et-scrollable-mask--end,.et-scrollable[at-end=false] .et-scrollable-buttons .et-scrollable-button--end{opacity:1}.et-scrollable[at-end=false] .et-scrollable-buttons .et-scrollable-button--end{pointer-events:all}.et-scrollable .et-scrollable-container{display:grid;grid-auto-flow:var(--_flow);overflow:auto;grid-row:1/1;grid-column:1/1}.et-scrollable .et-scrollable-masks,.et-scrollable .et-scrollable-buttons{grid-row:1/1;grid-column:1/1;pointer-events:none}.et-scrollable .et-scrollable-masks .et-scrollable-mask,.et-scrollable .et-scrollable-masks .et-scrollable-button,.et-scrollable .et-scrollable-buttons .et-scrollable-mask,.et-scrollable .et-scrollable-buttons .et-scrollable-button{position:absolute;opacity:0;transition:opacity .3s var(--ease-5)}.et-scrollable .et-scrollable-buttons .et-scrollable-button{background:transparent;border:none;padding:12px;inline-size:40px;block-size:40px;border-radius:4px;cursor:pointer}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-chevron-icon{pointer-events:none}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-scrollable-button--start{inset-inline:0 0}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-scrollable-button--end{inset-inline:calc(100% - 40px) 0}.et-scrollable[sticky-buttons=true] .et-scrollable-buttons{margin-block:10%}.et-scrollable[sticky-buttons=true] .et-scrollable-buttons .et-scrollable-button{position:sticky}\n"], dependencies: [{ kind: "directive", type: CursorDragScrollDirective, selector: "[etCursorDragScroll]", inputs: ["etCursorDragScroll", "allowedDirection"], outputs: ["cursorDragStart", "cursorDragMove", "cursorDragEnd"], exportAs: ["etCursorDragScroll"] }, { kind: "directive", type: ObserveScrollStateDirective, selector: "[etObserveScrollState]", inputs: ["rootMargin", "observerThreshold"], outputs: ["etObserveScrollState"], exportAs: ["etObserveScrollState"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ChevronIconComponent, selector: "et-chevron-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7896
7843
  }
7897
7844
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ScrollableComponent, decorators: [{
7898
7845
  type: Component,
@@ -7972,16 +7919,10 @@ const ScrollableImports = [
7972
7919
  class SkeletonComponent {
7973
7920
  constructor() {
7974
7921
  this.loadingAllyText = 'Loading...';
7975
- this._animated = true;
7976
- }
7977
- get animated() {
7978
- return this._animated;
7979
- }
7980
- set animated(value) {
7981
- this._animated = coerceBooleanProperty(value);
7922
+ this.animated = true;
7982
7923
  }
7983
7924
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7984
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SkeletonComponent, isStandalone: true, selector: "et-skeleton", inputs: { loadingAllyText: "loadingAllyText", animated: "animated" }, host: { properties: { "class.et-skeleton--animated": "this.animated" }, classAttribute: "et-skeleton" }, ngImport: i0, template: ` <span class="cdk-visually-hidden"> {{ loadingAllyText }} </span> <ng-content />`, isInline: true, styles: [":where(.et-skeleton){--et-skeleton-gradient: linear-gradient( 90deg, rgba(190, 190, 190, 0) 15%, rgba(129, 129, 129, .5) 37%, rgba(190, 190, 190, 0) 63% );--et-skeleton-animation-duration: 3s;--et-skeleton-animation-timing-function: var(--ease-3)}.et-skeleton{display:block;cursor:progress}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7925
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SkeletonComponent, isStandalone: true, selector: "et-skeleton", inputs: { loadingAllyText: "loadingAllyText", animated: ["animated", "animated", booleanAttribute] }, host: { properties: { "class.et-skeleton--animated": "this.animated" }, classAttribute: "et-skeleton" }, ngImport: i0, template: ` <span class="cdk-visually-hidden"> {{ loadingAllyText }} </span> <ng-content />`, isInline: true, styles: [":where(.et-skeleton){--et-skeleton-gradient: linear-gradient( 90deg, rgba(190, 190, 190, 0) 15%, rgba(129, 129, 129, .5) 37%, rgba(190, 190, 190, 0) 63% );--et-skeleton-animation-duration: 3s;--et-skeleton-animation-timing-function: var(--ease-3)}.et-skeleton{display:block;cursor:progress}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7985
7926
  }
7986
7927
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SkeletonComponent, decorators: [{
7987
7928
  type: Component,
@@ -7991,7 +7932,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
7991
7932
  }], propDecorators: { loadingAllyText: [{
7992
7933
  type: Input
7993
7934
  }], animated: [{
7994
- type: Input
7935
+ type: Input,
7936
+ args: [{ transform: booleanAttribute }]
7995
7937
  }, {
7996
7938
  type: HostBinding,
7997
7939
  args: ['class.et-skeleton--animated']
@@ -8354,11 +8296,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
8354
8296
  }] }]; } });
8355
8297
 
8356
8298
  class TableBusyDirective {
8357
- constructor(templateRef) {
8358
- this.templateRef = templateRef;
8299
+ constructor() {
8300
+ this.templateRef = inject(TemplateRef);
8359
8301
  this._contentClassName = 'et-table-busy';
8360
8302
  }
8361
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TableBusyDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8303
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TableBusyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8362
8304
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: TableBusyDirective, isStandalone: true, selector: "ng-template[etTableBusy]", ngImport: i0 }); }
8363
8305
  }
8364
8306
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TableBusyDirective, decorators: [{
@@ -8367,27 +8309,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
8367
8309
  selector: 'ng-template[etTableBusy]',
8368
8310
  standalone: true,
8369
8311
  }]
8370
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
8312
+ }] });
8371
8313
 
8372
8314
  class TableBusyOutletDirective {
8373
- constructor(viewContainer, elementRef) {
8374
- this.viewContainer = viewContainer;
8375
- this.elementRef = elementRef;
8315
+ constructor() {
8316
+ this.viewContainer = inject(ViewContainerRef);
8317
+ this.elementRef = inject(ElementRef);
8376
8318
  }
8377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TableBusyOutletDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8319
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TableBusyOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8378
8320
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: TableBusyOutletDirective, isStandalone: true, selector: "[tableBusyOutlet]", ngImport: i0 }); }
8379
8321
  }
8380
8322
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TableBusyOutletDirective, decorators: [{
8381
8323
  type: Directive,
8382
8324
  args: [{ selector: '[tableBusyOutlet]', standalone: true }]
8383
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }]; } });
8325
+ }] });
8384
8326
 
8385
8327
  class TableComponent extends CdkTable {
8386
8328
  get busy() {
8387
8329
  return this._busy;
8388
8330
  }
8389
8331
  set busy(value) {
8390
- this._busy = coerceBooleanProperty(value);
8332
+ this._busy = booleanAttribute(value);
8391
8333
  this._updateTableBusy();
8392
8334
  }
8393
8335
  get _attrAriaBusy() {
@@ -8434,7 +8376,7 @@ class TableComponent extends CdkTable {
8434
8376
  this._isShowingTableBusy = shouldShow;
8435
8377
  this._cdr.markForCheck();
8436
8378
  }
8437
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TableComponent, deps: [{ token: i0.IterableDiffers }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: 'role', attribute: true }, { token: i1$4.Directionality, optional: true }, { token: DOCUMENT }, { token: i2$1.Platform }, { token: _VIEW_REPEATER_STRATEGY }, { token: _COALESCED_STYLE_SCHEDULER }, { token: i1$5.ViewportRuler }, { token: STICKY_POSITIONING_LISTENER, optional: true, skipSelf: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
8379
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TableComponent, deps: [{ token: i0.IterableDiffers }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: 'role', attribute: true }, { token: i1$4.Directionality, optional: true }, { token: DOCUMENT }, { token: i2$1.Platform }, { token: _VIEW_REPEATER_STRATEGY }, { token: _COALESCED_STYLE_SCHEDULER }, { token: i3.ViewportRuler }, { token: STICKY_POSITIONING_LISTENER, optional: true, skipSelf: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
8438
8380
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: TableComponent, isStandalone: true, selector: "et-table, table[et-table]", inputs: { busy: "busy" }, host: { properties: { "class.et-table-fixed-layout": "fixedLayout", "attr.aria-busy": "this._attrAriaBusy" }, classAttribute: "et-table et-data-table__table" }, providers: [
8439
8381
  { provide: CdkTable, useExisting: TableComponent },
8440
8382
  { provide: CDK_TABLE, useExisting: TableComponent },
@@ -8489,7 +8431,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
8489
8431
  }] }, { type: i1$3._CoalescedStyleScheduler, decorators: [{
8490
8432
  type: Inject,
8491
8433
  args: [_COALESCED_STYLE_SCHEDULER]
8492
- }] }, { type: i1$5.ViewportRuler }, { type: undefined, decorators: [{
8434
+ }] }, { type: i3.ViewportRuler }, { type: undefined, decorators: [{
8493
8435
  type: Optional
8494
8436
  }, {
8495
8437
  type: SkipSelf
@@ -8698,26 +8640,8 @@ class TableDataSource extends DataSource {
8698
8640
 
8699
8641
  const SORT_DEFAULT_OPTIONS = new InjectionToken('SortDefaultOptions');
8700
8642
  class SortDirective {
8701
- get disabled() {
8702
- return this._disabled;
8703
- }
8704
- set disabled(value) {
8705
- this._disabled = coerceBooleanProperty(value);
8706
- }
8707
- get direction() {
8708
- return this._direction;
8709
- }
8710
- set direction(direction) {
8711
- this._direction = direction;
8712
- }
8713
- get disableClear() {
8714
- return this._disableClear;
8715
- }
8716
- set disableClear(v) {
8717
- this._disableClear = coerceBooleanProperty(v);
8718
- }
8719
- constructor(_defaultOptions) {
8720
- this._defaultOptions = _defaultOptions;
8643
+ constructor() {
8644
+ this._defaultOptions = inject(SORT_DEFAULT_OPTIONS, { optional: true });
8721
8645
  this.sortables = new Map();
8722
8646
  this._stateChanges = new Subject();
8723
8647
  this._isInitialized = false;
@@ -8730,13 +8654,19 @@ class SortDirective {
8730
8654
  this._pendingSubscribers?.push(subscriber);
8731
8655
  }
8732
8656
  });
8733
- this._disabled = false;
8657
+ this.disabled = false;
8734
8658
  this.start = 'asc';
8735
8659
  this._direction = '';
8736
- this._disableClear = false;
8660
+ this.disableClear = false;
8737
8661
  // eslint-disable-next-line @angular-eslint/no-output-rename
8738
8662
  this.sortChange = new EventEmitter();
8739
8663
  }
8664
+ get direction() {
8665
+ return this._direction;
8666
+ }
8667
+ set direction(direction) {
8668
+ this._direction = direction;
8669
+ }
8740
8670
  register(sortable) {
8741
8671
  this.sortables.set(sortable.id, sortable);
8742
8672
  }
@@ -8795,8 +8725,8 @@ class SortDirective {
8795
8725
  subscriber.next();
8796
8726
  subscriber.complete();
8797
8727
  }
8798
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SortDirective, deps: [{ token: SORT_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
8799
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: SortDirective, isStandalone: true, selector: "[etSort]", inputs: { disabled: ["etSortDisabled", "disabled"], active: ["etSortActive", "active"], start: ["etSortStart", "start"], direction: ["etSortDirection", "direction"], disableClear: ["etSortDisableClear", "disableClear"], sortControl: "sortControl", sortByControl: "sortByControl", sortDirectionControl: "sortDirectionControl" }, outputs: { sortChange: "etSortChange" }, host: { classAttribute: "et-sort" }, exportAs: ["etSort"], usesOnChanges: true, ngImport: i0 }); }
8728
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SortDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8729
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: SortDirective, isStandalone: true, selector: "[etSort]", inputs: { disabled: ["etSortDisabled", "disabled", booleanAttribute], active: ["etSortActive", "active"], start: ["etSortStart", "start"], direction: ["etSortDirection", "direction"], disableClear: ["etSortDisableClear", "disableClear", booleanAttribute], sortControl: "sortControl", sortByControl: "sortByControl", sortDirectionControl: "sortDirectionControl" }, outputs: { sortChange: "etSortChange" }, host: { classAttribute: "et-sort" }, exportAs: ["etSort"], usesOnChanges: true, ngImport: i0 }); }
8800
8730
  }
8801
8731
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SortDirective, decorators: [{
8802
8732
  type: Directive,
@@ -8806,14 +8736,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
8806
8736
  host: { class: 'et-sort' },
8807
8737
  standalone: true,
8808
8738
  }]
8809
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
8810
- type: Optional
8811
- }, {
8812
- type: Inject,
8813
- args: [SORT_DEFAULT_OPTIONS]
8814
- }] }]; }, propDecorators: { disabled: [{
8739
+ }], propDecorators: { disabled: [{
8815
8740
  type: Input,
8816
- args: ['etSortDisabled']
8741
+ args: [{ alias: 'etSortDisabled', transform: booleanAttribute }]
8817
8742
  }], active: [{
8818
8743
  type: Input,
8819
8744
  args: ['etSortActive']
@@ -8825,7 +8750,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
8825
8750
  args: ['etSortDirection']
8826
8751
  }], disableClear: [{
8827
8752
  type: Input,
8828
- args: ['etSortDisableClear']
8753
+ args: [{ alias: 'etSortDisableClear', transform: booleanAttribute }]
8829
8754
  }], sortControl: [{
8830
8755
  type: Input
8831
8756
  }], sortByControl: [{
@@ -8869,24 +8794,12 @@ const SORT_HEADER_INTL_PROVIDER = {
8869
8794
  };
8870
8795
 
8871
8796
  class SortHeaderComponent {
8872
- get disabled() {
8873
- return this._disabled;
8874
- }
8875
- set disabled(value) {
8876
- this._disabled = coerceBooleanProperty(value);
8877
- }
8878
8797
  get sortActionDescription() {
8879
8798
  return this._sortActionDescription;
8880
8799
  }
8881
8800
  set sortActionDescription(value) {
8882
8801
  this._updateSortActionDescription(value);
8883
8802
  }
8884
- get disableClear() {
8885
- return this._disableClear;
8886
- }
8887
- set disableClear(v) {
8888
- this._disableClear = coerceBooleanProperty(v);
8889
- }
8890
8803
  get _isSorted() {
8891
8804
  if (!this._sort) {
8892
8805
  return false;
@@ -8912,23 +8825,24 @@ class SortHeaderComponent {
8912
8825
  }
8913
8826
  return this._sort?.direction == 'asc' ? 'ascending' : 'descending';
8914
8827
  }
8915
- constructor(_intl, _changeDetectorRef, _sort, _columnDef, _focusMonitor, _elementRef, _ariaDescriber, defaultOptions) {
8916
- this._intl = _intl;
8917
- this._changeDetectorRef = _changeDetectorRef;
8918
- this._sort = _sort;
8919
- this._columnDef = _columnDef;
8920
- this._focusMonitor = _focusMonitor;
8921
- this._elementRef = _elementRef;
8922
- this._ariaDescriber = _ariaDescriber;
8828
+ constructor() {
8829
+ this._intl = inject(SortHeaderIntl);
8830
+ this._changeDetectorRef = inject(ChangeDetectorRef);
8831
+ this._sort = inject(SortDirective, { optional: true });
8832
+ this._columnDef = inject(SORT_HEADER_COLUMN_DEF, { optional: true });
8833
+ this._focusMonitor = inject(FocusMonitor);
8834
+ this._elementRef = inject(ElementRef);
8835
+ this._ariaDescriber = inject(AriaDescriber);
8836
+ this._sortDefaultOptions = inject(SORT_DEFAULT_OPTIONS, { optional: true });
8923
8837
  this._showIndicatorHint = false;
8924
8838
  this._viewState = {};
8925
8839
  this._arrowDirection = '';
8926
- this._disabled = false;
8840
+ this.disabled = false;
8927
8841
  this.arrowPosition = 'after';
8928
8842
  this._sortActionDescription = 'Sort';
8929
- this._disableClear = false;
8930
- if (defaultOptions?.arrowPosition) {
8931
- this.arrowPosition = defaultOptions?.arrowPosition;
8843
+ this.disableClear = false;
8844
+ if (this._sortDefaultOptions?.arrowPosition) {
8845
+ this.arrowPosition = this._sortDefaultOptions?.arrowPosition;
8932
8846
  }
8933
8847
  this._handleStateChanges();
8934
8848
  }
@@ -9025,28 +8939,17 @@ class SortHeaderComponent {
9025
8939
  this._changeDetectorRef.markForCheck();
9026
8940
  });
9027
8941
  }
9028
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SortHeaderComponent, deps: [{ token: SortHeaderIntl }, { token: i0.ChangeDetectorRef }, { token: SortDirective, optional: true }, { token: SORT_HEADER_COLUMN_DEF, optional: true }, { token: i1$2.FocusMonitor }, { token: i0.ElementRef }, { token: i1$2.AriaDescriber }, { token: SORT_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
9029
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SortHeaderComponent, isStandalone: true, selector: "[et-sort-header]", inputs: { disabled: "disabled", id: ["et-sort-header", "id"], arrowPosition: "arrowPosition", start: "start", sortActionDescription: "sortActionDescription", disableClear: "disableClear" }, host: { listeners: { "mouseenter": "_handleMouseEnter()", "mouseleave": "_handleMouseLeave()", "click": "_handleClick()", "keydown": "_handleKeydown($event)" }, properties: { "class.et-sort-header-disabled": "this.disabled", "attr.aria-sort": "this._ariaSortAttr" }, classAttribute: "et-sort-header" }, exportAs: ["etSortHeader"], ngImport: i0, template: "<div\n [class.et-sort-header-sorted]=\"_isSorted\"\n [class.et-sort-header-position-before]=\"arrowPosition === 'before'\"\n [attr.tabindex]=\"_isDisabled ? null : 0\"\n [attr.role]=\"_isDisabled ? null : 'button'\"\n class=\"et-sort-header-container\"\n>\n <div class=\"et-sort-header-content\">\n <ng-content />\n </div>\n\n <div *ngIf=\"_renderArrow\" class=\"et-sort-header-arrow {{ _getArrowDirectionState }} {{ _getArrowViewState }}\">\n <et-chevron-icon />\n </div>\n</div>\n", styles: [":where(.et-sort-header){--et-sort-header-arrow-size: 10px;--et-sort-header-gap: 8px}.et-sort-header{cursor:pointer}.et-sort-header.et-sort-header-disabled{cursor:default}.et-sort-header-container{display:flex;align-items:center;letter-spacing:normal;outline:0;gap:var(--et-sort-header-gap)}.et-sort-header-content{text-align:center;display:flex;align-items:center}.et-sort-header-position-before{flex-direction:row-reverse}.et-sort-header:hover .et-sort-header-arrow,.et-sort-header.cdk-keyboard-focused .et-sort-header-arrow{opacity:.5}.et-sort-header .et-sort-header-arrow{transition:opacity .2s var(--ease-out-5)}.et-sort-header .et-sort-header-arrow .et-chevron-icon svg{transition:transform .2s var(--ease-out-5)}.et-sort-header .et-sort-header-arrow{inline-size:var(--et-sort-header-arrow-size);opacity:0}.et-sort-header .et-sort-header-arrow.active-desc,.et-sort-header .et-sort-header-arrow.active-asc{opacity:1}.et-sort-header .et-sort-header-arrow.desc .et-chevron-icon svg,.et-sort-header .et-sort-header-arrow.asc .et-chevron-icon svg,.et-sort-header .et-sort-header-arrow.active-desc .et-chevron-icon svg{transform:rotate(180deg)}.et-sort-header .et-sort-header-arrow.active-asc .et-chevron-icon svg{transform:rotate(0)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ChevronIconComponent, selector: "et-chevron-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8942
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SortHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8943
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SortHeaderComponent, isStandalone: true, selector: "[et-sort-header]", inputs: { disabled: ["disabled", "disabled", booleanAttribute], id: ["et-sort-header", "id"], arrowPosition: "arrowPosition", start: "start", sortActionDescription: "sortActionDescription", disableClear: ["disableClear", "disableClear", booleanAttribute] }, host: { listeners: { "mouseenter": "_handleMouseEnter()", "mouseleave": "_handleMouseLeave()", "click": "_handleClick()", "keydown": "_handleKeydown($event)" }, properties: { "class.et-sort-header-disabled": "this.disabled", "attr.aria-sort": "this._ariaSortAttr" }, classAttribute: "et-sort-header" }, exportAs: ["etSortHeader"], ngImport: i0, template: "<div\n [class.et-sort-header-sorted]=\"_isSorted\"\n [class.et-sort-header-position-before]=\"arrowPosition === 'before'\"\n [attr.tabindex]=\"_isDisabled ? null : 0\"\n [attr.role]=\"_isDisabled ? null : 'button'\"\n class=\"et-sort-header-container\"\n>\n <div class=\"et-sort-header-content\">\n <ng-content />\n </div>\n\n <div *ngIf=\"_renderArrow\" class=\"et-sort-header-arrow {{ _getArrowDirectionState }} {{ _getArrowViewState }}\">\n <et-chevron-icon />\n </div>\n</div>\n", styles: [":where(.et-sort-header){--et-sort-header-arrow-size: 10px;--et-sort-header-gap: 8px}.et-sort-header{cursor:pointer}.et-sort-header.et-sort-header-disabled{cursor:default}.et-sort-header-container{display:flex;align-items:center;letter-spacing:normal;outline:0;gap:var(--et-sort-header-gap)}.et-sort-header-content{text-align:center;display:flex;align-items:center}.et-sort-header-position-before{flex-direction:row-reverse}.et-sort-header:hover .et-sort-header-arrow,.et-sort-header.cdk-keyboard-focused .et-sort-header-arrow{opacity:.5}.et-sort-header .et-sort-header-arrow{transition:opacity .2s var(--ease-out-5)}.et-sort-header .et-sort-header-arrow .et-chevron-icon svg{transition:transform .2s var(--ease-out-5)}.et-sort-header .et-sort-header-arrow{inline-size:var(--et-sort-header-arrow-size);opacity:0}.et-sort-header .et-sort-header-arrow.active-desc,.et-sort-header .et-sort-header-arrow.active-asc{opacity:1}.et-sort-header .et-sort-header-arrow.desc .et-chevron-icon svg,.et-sort-header .et-sort-header-arrow.asc .et-chevron-icon svg,.et-sort-header .et-sort-header-arrow.active-desc .et-chevron-icon svg{transform:rotate(180deg)}.et-sort-header .et-sort-header-arrow.active-asc .et-chevron-icon svg{transform:rotate(0)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ChevronIconComponent, selector: "et-chevron-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9030
8944
  }
9031
8945
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SortHeaderComponent, decorators: [{
9032
8946
  type: Component,
9033
8947
  args: [{ selector: '[et-sort-header]', exportAs: 'etSortHeader', host: {
9034
8948
  class: 'et-sort-header',
9035
8949
  }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ChevronIconComponent], template: "<div\n [class.et-sort-header-sorted]=\"_isSorted\"\n [class.et-sort-header-position-before]=\"arrowPosition === 'before'\"\n [attr.tabindex]=\"_isDisabled ? null : 0\"\n [attr.role]=\"_isDisabled ? null : 'button'\"\n class=\"et-sort-header-container\"\n>\n <div class=\"et-sort-header-content\">\n <ng-content />\n </div>\n\n <div *ngIf=\"_renderArrow\" class=\"et-sort-header-arrow {{ _getArrowDirectionState }} {{ _getArrowViewState }}\">\n <et-chevron-icon />\n </div>\n</div>\n", styles: [":where(.et-sort-header){--et-sort-header-arrow-size: 10px;--et-sort-header-gap: 8px}.et-sort-header{cursor:pointer}.et-sort-header.et-sort-header-disabled{cursor:default}.et-sort-header-container{display:flex;align-items:center;letter-spacing:normal;outline:0;gap:var(--et-sort-header-gap)}.et-sort-header-content{text-align:center;display:flex;align-items:center}.et-sort-header-position-before{flex-direction:row-reverse}.et-sort-header:hover .et-sort-header-arrow,.et-sort-header.cdk-keyboard-focused .et-sort-header-arrow{opacity:.5}.et-sort-header .et-sort-header-arrow{transition:opacity .2s var(--ease-out-5)}.et-sort-header .et-sort-header-arrow .et-chevron-icon svg{transition:transform .2s var(--ease-out-5)}.et-sort-header .et-sort-header-arrow{inline-size:var(--et-sort-header-arrow-size);opacity:0}.et-sort-header .et-sort-header-arrow.active-desc,.et-sort-header .et-sort-header-arrow.active-asc{opacity:1}.et-sort-header .et-sort-header-arrow.desc .et-chevron-icon svg,.et-sort-header .et-sort-header-arrow.asc .et-chevron-icon svg,.et-sort-header .et-sort-header-arrow.active-desc .et-chevron-icon svg{transform:rotate(180deg)}.et-sort-header .et-sort-header-arrow.active-asc .et-chevron-icon svg{transform:rotate(0)}\n"] }]
9036
- }], ctorParameters: function () { return [{ type: SortHeaderIntl }, { type: i0.ChangeDetectorRef }, { type: SortDirective, decorators: [{
9037
- type: Optional
9038
- }] }, { type: undefined, decorators: [{
9039
- type: Inject,
9040
- args: [SORT_HEADER_COLUMN_DEF]
9041
- }, {
9042
- type: Optional
9043
- }] }, { type: i1$2.FocusMonitor }, { type: i0.ElementRef }, { type: i1$2.AriaDescriber }, { type: undefined, decorators: [{
9044
- type: Optional
9045
- }, {
9046
- type: Inject,
9047
- args: [SORT_DEFAULT_OPTIONS]
9048
- }] }]; }, propDecorators: { disabled: [{
9049
- type: Input
8950
+ }], ctorParameters: function () { return []; }, propDecorators: { disabled: [{
8951
+ type: Input,
8952
+ args: [{ transform: booleanAttribute }]
9050
8953
  }, {
9051
8954
  type: HostBinding,
9052
8955
  args: ['class.et-sort-header-disabled']
@@ -9060,7 +8963,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
9060
8963
  }], sortActionDescription: [{
9061
8964
  type: Input
9062
8965
  }], disableClear: [{
9063
- type: Input
8966
+ type: Input,
8967
+ args: [{ transform: booleanAttribute }]
9064
8968
  }], _ariaSortAttr: [{
9065
8969
  type: HostBinding,
9066
8970
  args: ['attr.aria-sort']
@@ -9134,9 +9038,10 @@ class InlineTabBodyComponent {
9134
9038
  this._positionIndex = position;
9135
9039
  this._computePositionAnimationState();
9136
9040
  }
9137
- constructor(_elementRef, _dir, changeDetectorRef) {
9138
- this._elementRef = _elementRef;
9139
- this._dir = _dir;
9041
+ constructor() {
9042
+ this._elementRef = inject(ElementRef);
9043
+ this._dir = inject(Directionality);
9044
+ this._cdr = inject(ChangeDetectorRef);
9140
9045
  this._centeringSub = Subscription.EMPTY;
9141
9046
  this._leavingSub = Subscription.EMPTY;
9142
9047
  this._dirChangeSubscription = Subscription.EMPTY;
@@ -9147,10 +9052,10 @@ class InlineTabBodyComponent {
9147
9052
  this._onCentered = new EventEmitter(true);
9148
9053
  this.animationDuration = '500ms';
9149
9054
  this.preserveContent = false;
9150
- if (_dir) {
9151
- this._dirChangeSubscription = _dir.change.subscribe((dir) => {
9055
+ if (this._dir) {
9056
+ this._dirChangeSubscription = this._dir.change.subscribe((dir) => {
9152
9057
  this._computePositionAnimationState(dir);
9153
- changeDetectorRef.markForCheck();
9058
+ this._cdr.markForCheck();
9154
9059
  });
9155
9060
  }
9156
9061
  this._translateTabComplete
@@ -9220,17 +9125,15 @@ class InlineTabBodyComponent {
9220
9125
  }
9221
9126
  return 'right-origin-center';
9222
9127
  }
9223
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabBodyComponent, deps: [{ token: i0.ElementRef }, { token: i1$4.Directionality, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
9224
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: InlineTabBodyComponent, isStandalone: true, selector: "et-inline-tab-body", inputs: { _content: ["content", "_content"], origin: "origin", animationDuration: "animationDuration", preserveContent: "preserveContent", position: "position" }, outputs: { _onCentering: "_onCentering", _beforeCentering: "_beforeCentering", _afterLeavingCenter: "_afterLeavingCenter", _onCentered: "_onCentered" }, host: { classAttribute: "et-inline-tab-body" }, viewQueries: [{ propertyName: "_portalHost", first: true, predicate: InlineTabBodyHostDirective, descendants: true, static: true }], ngImport: i0, template: "<div\n #content\n [@translateTab]=\"{\n value: _position,\n params: { animationDuration: '0ms' }\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable\n>\n <ng-template etInlineTabBodyHost />\n</div>\n", dependencies: [{ kind: "ngmodule", type: CdkScrollableModule }, { kind: "directive", type: i1$5.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: InlineTabBodyHostDirective, selector: "[etInlineTabBodyHost]" }], animations: [tabAnimations.translateTab], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
9128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: InlineTabBodyComponent, isStandalone: true, selector: "et-inline-tab-body", inputs: { _content: ["content", "_content"], origin: "origin", animationDuration: "animationDuration", preserveContent: "preserveContent", position: "position" }, outputs: { _onCentering: "_onCentering", _beforeCentering: "_beforeCentering", _afterLeavingCenter: "_afterLeavingCenter", _onCentered: "_onCentered" }, host: { classAttribute: "et-inline-tab-body" }, viewQueries: [{ propertyName: "_portalHost", first: true, predicate: InlineTabBodyHostDirective, descendants: true, static: true }], ngImport: i0, template: "<div\n #content\n [@translateTab]=\"{\n value: _position,\n params: { animationDuration: '0ms' }\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable\n>\n <ng-template etInlineTabBodyHost />\n</div>\n", dependencies: [{ kind: "ngmodule", type: CdkScrollableModule }, { kind: "directive", type: i3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: InlineTabBodyHostDirective, selector: "[etInlineTabBodyHost]" }], animations: [tabAnimations.translateTab], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
9225
9130
  }
9226
9131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabBodyComponent, decorators: [{
9227
9132
  type: Component,
9228
9133
  args: [{ selector: 'et-inline-tab-body', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, animations: [tabAnimations.translateTab], standalone: true, imports: [CdkScrollableModule, InlineTabBodyHostDirective], host: {
9229
9134
  class: 'et-inline-tab-body',
9230
9135
  }, template: "<div\n #content\n [@translateTab]=\"{\n value: _position,\n params: { animationDuration: '0ms' }\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable\n>\n <ng-template etInlineTabBodyHost />\n</div>\n" }]
9231
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$4.Directionality, decorators: [{
9232
- type: Optional
9233
- }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { _onCentering: [{
9136
+ }], ctorParameters: function () { return []; }, propDecorators: { _onCentering: [{
9234
9137
  type: Output
9235
9138
  }], _beforeCentering: [{
9236
9139
  type: Output
@@ -9256,10 +9159,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
9256
9159
 
9257
9160
  const TAB_CONTENT = new InjectionToken('TabContent');
9258
9161
  class InlineTabContentDirective {
9259
- constructor(template) {
9260
- this.template = template;
9162
+ constructor() {
9163
+ this.template = inject(TemplateRef);
9261
9164
  }
9262
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
9165
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9263
9166
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: InlineTabContentDirective, isStandalone: true, selector: "[etInlineTabContent]", host: { classAttribute: "et-inline-tab-content" }, providers: [{ provide: TAB_CONTENT, useExisting: InlineTabContentDirective }], ngImport: i0 }); }
9264
9167
  }
9265
9168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabContentDirective, decorators: [{
@@ -9272,7 +9175,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
9272
9175
  class: 'et-inline-tab-content',
9273
9176
  },
9274
9177
  }]
9275
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
9178
+ }] });
9276
9179
 
9277
9180
  const ACTIVE_CLASS = 'et-active-tab-underline--active';
9278
9181
  const NO_TRANSITION_CLASS = 'et-active-tab-underline--no-transition';
@@ -9305,7 +9208,7 @@ class ActiveTabUnderlineDirective {
9305
9208
  return this._fitToContent;
9306
9209
  }
9307
9210
  set fitUnderlineToContent(v) {
9308
- const newValue = coerceBooleanProperty(v);
9211
+ const newValue = booleanAttribute(v);
9309
9212
  if (this._fitToContent !== newValue) {
9310
9213
  this._fitToContent = newValue;
9311
9214
  if (this._underlineElement) {
@@ -9389,8 +9292,8 @@ class PaginatedTabHeaderDirective {
9389
9292
  get selectedIndex() {
9390
9293
  return this._selectedIndex;
9391
9294
  }
9392
- set selectedIndex(value) {
9393
- value = coerceNumberProperty(value);
9295
+ set selectedIndex(val) {
9296
+ const value = numberAttribute(val);
9394
9297
  if (this._selectedIndex != value) {
9395
9298
  this._selectedIndexChanged = true;
9396
9299
  this._selectedIndex = value;
@@ -9399,43 +9302,25 @@ class PaginatedTabHeaderDirective {
9399
9302
  }
9400
9303
  }
9401
9304
  }
9402
- get renderMasks() {
9403
- return this._renderMasks;
9404
- }
9405
- set renderMasks(value) {
9406
- this._renderMasks = coerceBooleanProperty(value);
9407
- }
9408
- get renderButtons() {
9409
- return this._renderButtons;
9410
- }
9411
- set renderButtons(value) {
9412
- this._renderButtons = coerceBooleanProperty(value);
9413
- }
9414
- get renderScrollbars() {
9415
- return this._renderScrollbars;
9416
- }
9417
- set renderScrollbars(value) {
9418
- this._renderScrollbars = coerceBooleanProperty(value);
9419
- }
9420
- constructor(_elementRef, _cdr, _viewportRuler, _dir, _ngZone) {
9421
- this._elementRef = _elementRef;
9422
- this._cdr = _cdr;
9423
- this._viewportRuler = _viewportRuler;
9424
- this._dir = _dir;
9425
- this._ngZone = _ngZone;
9305
+ constructor() {
9306
+ this._elementRef = inject(ElementRef);
9307
+ this._cdr = inject(ChangeDetectorRef);
9308
+ this._viewportRuler = inject(ViewportRuler$1);
9309
+ this._dir = inject(Directionality, { optional: true });
9310
+ this._ngZone = inject(NgZone);
9426
9311
  this._scrollDistance = 0;
9427
9312
  this._selectedIndexChanged = false;
9428
9313
  this._destroy$ = createDestroy();
9429
9314
  this._stopScrolling = new Subject();
9430
9315
  this._selectedIndex = 0;
9431
9316
  this.itemSize = 'auto';
9432
- this._renderMasks = true;
9433
- this._renderButtons = true;
9434
- this._renderScrollbars = false;
9317
+ this.renderMasks = true;
9318
+ this.renderButtons = true;
9319
+ this.renderScrollbars = false;
9435
9320
  this.selectFocusedIndex = new EventEmitter();
9436
9321
  this.indexFocused = new EventEmitter();
9437
- _ngZone.runOutsideAngular(() => {
9438
- fromEvent(_elementRef.nativeElement, 'mouseleave')
9322
+ this._ngZone.runOutsideAngular(() => {
9323
+ fromEvent(this._elementRef.nativeElement, 'mouseleave')
9439
9324
  .pipe(takeUntil$1(this._destroy$))
9440
9325
  .subscribe(() => {
9441
9326
  this._stopInterval();
@@ -9628,25 +9513,26 @@ class PaginatedTabHeaderDirective {
9628
9513
  this._scrollDistanceChanged = true;
9629
9514
  return { maxScrollDistance, distance: this._scrollDistance };
9630
9515
  }
9631
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PaginatedTabHeaderDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$5.ViewportRuler }, { token: i1$4.Directionality, optional: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
9632
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: PaginatedTabHeaderDirective, inputs: { selectedIndex: "selectedIndex", itemSize: "itemSize", scrollableClass: "scrollableClass", renderMasks: "renderMasks", renderButtons: "renderButtons", renderScrollbars: "renderScrollbars" }, outputs: { selectFocusedIndex: "selectFocusedIndex", indexFocused: "indexFocused" }, ngImport: i0 }); }
9516
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PaginatedTabHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9517
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: PaginatedTabHeaderDirective, inputs: { selectedIndex: "selectedIndex", itemSize: "itemSize", scrollableClass: "scrollableClass", renderMasks: ["renderMasks", "renderMasks", booleanAttribute], renderButtons: ["renderButtons", "renderButtons", booleanAttribute], renderScrollbars: ["renderScrollbars", "renderScrollbars", booleanAttribute] }, outputs: { selectFocusedIndex: "selectFocusedIndex", indexFocused: "indexFocused" }, ngImport: i0 }); }
9633
9518
  }
9634
9519
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PaginatedTabHeaderDirective, decorators: [{
9635
9520
  type: Directive
9636
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$5.ViewportRuler }, { type: i1$4.Directionality, decorators: [{
9637
- type: Optional
9638
- }] }, { type: i0.NgZone }]; }, propDecorators: { selectedIndex: [{
9521
+ }], ctorParameters: function () { return []; }, propDecorators: { selectedIndex: [{
9639
9522
  type: Input
9640
9523
  }], itemSize: [{
9641
9524
  type: Input
9642
9525
  }], scrollableClass: [{
9643
9526
  type: Input
9644
9527
  }], renderMasks: [{
9645
- type: Input
9528
+ type: Input,
9529
+ args: [{ transform: booleanAttribute }]
9646
9530
  }], renderButtons: [{
9647
- type: Input
9531
+ type: Input,
9532
+ args: [{ transform: booleanAttribute }]
9648
9533
  }], renderScrollbars: [{
9649
- type: Input
9534
+ type: Input,
9535
+ args: [{ transform: booleanAttribute }]
9650
9536
  }], selectFocusedIndex: [{
9651
9537
  type: Output
9652
9538
  }], indexFocused: [{
@@ -9654,19 +9540,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
9654
9540
  }] } });
9655
9541
 
9656
9542
  class InlineTabLabelWrapperDirective {
9657
- get disabled() {
9658
- return this._disabled;
9659
- }
9660
- set disabled(value) {
9661
- this._disabled = coerceBooleanProperty(value);
9543
+ constructor() {
9544
+ this.elementRef = inject(ElementRef);
9545
+ this.disabled = false;
9662
9546
  }
9663
9547
  get attrAriaDisabled() {
9664
9548
  return this.disabled ? 'true' : null;
9665
9549
  }
9666
- constructor(elementRef) {
9667
- this.elementRef = elementRef;
9668
- this._disabled = false;
9669
- }
9670
9550
  focus() {
9671
9551
  this.elementRef.nativeElement.focus();
9672
9552
  }
@@ -9676,8 +9556,8 @@ class InlineTabLabelWrapperDirective {
9676
9556
  getOffsetWidth() {
9677
9557
  return this.elementRef.nativeElement.offsetWidth;
9678
9558
  }
9679
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabLabelWrapperDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
9680
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: InlineTabLabelWrapperDirective, isStandalone: true, selector: "[etInlineTabLabelWrapper]", inputs: { disabled: "disabled" }, host: { properties: { "attr.aria-disabled": "this.attrAriaDisabled" }, classAttribute: "et-inline-tab-label-wrapper" }, hostDirectives: [{ directive: ActiveTabUnderlineDirective, inputs: ["fitUnderlineToContent", "fitUnderlineToContent"] }], ngImport: i0 }); }
9559
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabLabelWrapperDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9560
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: InlineTabLabelWrapperDirective, isStandalone: true, selector: "[etInlineTabLabelWrapper]", inputs: { disabled: ["disabled", "disabled", booleanAttribute] }, host: { properties: { "attr.aria-disabled": "this.attrAriaDisabled" }, classAttribute: "et-inline-tab-label-wrapper" }, hostDirectives: [{ directive: ActiveTabUnderlineDirective, inputs: ["fitUnderlineToContent", "fitUnderlineToContent"] }], ngImport: i0 }); }
9681
9561
  }
9682
9562
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabLabelWrapperDirective, decorators: [{
9683
9563
  type: Directive,
@@ -9689,17 +9569,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
9689
9569
  },
9690
9570
  hostDirectives: [{ directive: ActiveTabUnderlineDirective, inputs: ['fitUnderlineToContent'] }],
9691
9571
  }]
9692
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { disabled: [{
9693
- type: Input
9572
+ }], propDecorators: { disabled: [{
9573
+ type: Input,
9574
+ args: [{ transform: booleanAttribute }]
9694
9575
  }], attrAriaDisabled: [{
9695
9576
  type: HostBinding,
9696
9577
  args: ['attr.aria-disabled']
9697
9578
  }] } });
9698
9579
 
9699
9580
  class InlineTabHeaderComponent extends PaginatedTabHeaderDirective {
9700
- constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone) {
9701
- super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone);
9702
- }
9703
9581
  ngAfterContentInit() {
9704
9582
  this._activeTabUnderlineManager = new ActiveTabUnderlineBarManager(this._inkBars);
9705
9583
  super.ngAfterContentInit();
@@ -9707,7 +9585,7 @@ class InlineTabHeaderComponent extends PaginatedTabHeaderDirective {
9707
9585
  _itemSelected(event) {
9708
9586
  event.preventDefault();
9709
9587
  }
9710
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabHeaderComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$5.ViewportRuler }, { token: i1$4.Directionality, optional: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
9588
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9711
9589
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: InlineTabHeaderComponent, isStandalone: true, selector: "et-inline-tab-header", host: { classAttribute: "et-inline-tab-header" }, queries: [{ propertyName: "_items", predicate: InlineTabLabelWrapperDirective }, { propertyName: "_inkBars", predicate: i0.forwardRef(function () { return ActiveTabUnderlineDirective; }), descendants: true }], viewQueries: [{ propertyName: "_scrollable", first: true, predicate: ScrollableComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<et-scrollable\n [itemSize]=\"itemSize\"\n [renderButtons]=\"renderButtons\"\n [scrollableClass]=\"scrollableClass\"\n [renderMasks]=\"renderMasks\"\n [renderScrollbars]=\"renderScrollbars\"\n (keydown)=\"_handleKeydown($event)\"\n (contentChanged)=\"_onContentChanges()\"\n>\n <ng-content />\n</et-scrollable>\n", dependencies: [{ kind: "component", type: ScrollableComponent, selector: "et-scrollable", inputs: ["itemSize", "direction", "scrollableRole", "scrollableClass", "renderMasks", "renderButtons", "renderScrollbars", "stickyButtons", "cursorDragScroll", "disableActiveElementScrolling", "scrollMode", "snap", "scrollMargin"], outputs: ["scrollStateChange", "intersectionChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9712
9590
  }
9713
9591
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabHeaderComponent, decorators: [{
@@ -9715,9 +9593,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
9715
9593
  args: [{ selector: 'et-inline-tab-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ScrollableComponent, NgClass, ObserveContentDirective, ScrollObserverIgnoreTargetDirective], host: {
9716
9594
  class: 'et-inline-tab-header',
9717
9595
  }, template: "<et-scrollable\n [itemSize]=\"itemSize\"\n [renderButtons]=\"renderButtons\"\n [scrollableClass]=\"scrollableClass\"\n [renderMasks]=\"renderMasks\"\n [renderScrollbars]=\"renderScrollbars\"\n (keydown)=\"_handleKeydown($event)\"\n (contentChanged)=\"_onContentChanges()\"\n>\n <ng-content />\n</et-scrollable>\n" }]
9718
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$5.ViewportRuler }, { type: i1$4.Directionality, decorators: [{
9719
- type: Optional
9720
- }] }, { type: i0.NgZone }]; }, propDecorators: { _items: [{
9596
+ }], propDecorators: { _items: [{
9721
9597
  type: ContentChildren,
9722
9598
  args: [InlineTabLabelWrapperDirective, { descendants: false }]
9723
9599
  }], _scrollable: [{
@@ -9763,28 +9639,16 @@ class InlineTabComponent {
9763
9639
  set templateLabel(value) {
9764
9640
  this._setTemplateLabelInput(value);
9765
9641
  }
9766
- get fitUnderlineToContent() {
9767
- return this._fitToContent;
9768
- }
9769
- set fitUnderlineToContent(v) {
9770
- this._fitToContent = coerceBooleanProperty(v);
9771
- }
9772
- get disabled() {
9773
- return this._disabled;
9774
- }
9775
- set disabled(value) {
9776
- this._disabled = coerceBooleanProperty(value);
9777
- }
9778
9642
  get content() {
9779
9643
  return this._contentPortal;
9780
9644
  }
9781
9645
  constructor(_viewContainerRef, _closestTabGroup) {
9782
9646
  this._viewContainerRef = _viewContainerRef;
9783
9647
  this._closestTabGroup = _closestTabGroup;
9784
- this._fitToContent = false;
9648
+ this.fitUnderlineToContent = false;
9785
9649
  // eslint-disable-next-line @angular-eslint/no-input-rename
9786
9650
  this.textLabel = '';
9787
- this._disabled = false;
9651
+ this.disabled = false;
9788
9652
  this._contentPortal = null;
9789
9653
  this._stateChanges = new Subject();
9790
9654
  this.position = null;
@@ -9808,7 +9672,7 @@ class InlineTabComponent {
9808
9672
  }
9809
9673
  }
9810
9674
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabComponent, deps: [{ token: i0.ViewContainerRef }, { token: TAB_GROUP, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
9811
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: InlineTabComponent, isStandalone: true, selector: "et-inline-tab", inputs: { fitUnderlineToContent: "fitUnderlineToContent", textLabel: ["label", "textLabel"], ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], labelClass: "labelClass", bodyClass: "bodyClass", disabled: "disabled" }, host: { classAttribute: "et-inline-tab" }, providers: [{ provide: TAB, useExisting: InlineTabComponent }], queries: [{ propertyName: "templateLabel", first: true, predicate: TAB_LABEL, descendants: true }, { propertyName: "_explicitContent", first: true, predicate: TAB_CONTENT, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "_implicitContent", first: true, predicate: TemplateRef, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template><ng-content /></ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
9675
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: InlineTabComponent, isStandalone: true, selector: "et-inline-tab", inputs: { fitUnderlineToContent: ["fitUnderlineToContent", "fitUnderlineToContent", booleanAttribute], textLabel: ["label", "textLabel"], ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], labelClass: "labelClass", bodyClass: "bodyClass", disabled: ["disabled", "disabled", booleanAttribute] }, host: { classAttribute: "et-inline-tab" }, providers: [{ provide: TAB, useExisting: InlineTabComponent }], queries: [{ propertyName: "templateLabel", first: true, predicate: TAB_LABEL, descendants: true }, { propertyName: "_explicitContent", first: true, predicate: TAB_CONTENT, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "_implicitContent", first: true, predicate: TemplateRef, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template><ng-content /></ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
9812
9676
  }
9813
9677
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabComponent, decorators: [{
9814
9678
  type: Component,
@@ -9824,7 +9688,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
9824
9688
  type: ContentChild,
9825
9689
  args: [TAB_LABEL]
9826
9690
  }], fitUnderlineToContent: [{
9827
- type: Input
9691
+ type: Input,
9692
+ args: [{ transform: booleanAttribute }]
9828
9693
  }], _explicitContent: [{
9829
9694
  type: ContentChild,
9830
9695
  args: [TAB_CONTENT, { read: TemplateRef, static: true }]
@@ -9845,7 +9710,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
9845
9710
  }], bodyClass: [{
9846
9711
  type: Input
9847
9712
  }], disabled: [{
9848
- type: Input
9713
+ type: Input,
9714
+ args: [{ transform: booleanAttribute }]
9849
9715
  }] } });
9850
9716
 
9851
9717
  let nextUniqueId$1 = 0;
@@ -9884,14 +9750,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
9884
9750
  }] } });
9885
9751
 
9886
9752
  class NavTabsComponent extends PaginatedTabHeaderDirective {
9753
+ constructor() {
9754
+ super(...arguments);
9755
+ this._router = inject(Router);
9756
+ }
9887
9757
  get _attrRole() {
9888
9758
  return this._getRole();
9889
9759
  }
9890
- constructor(elementRef, dir, ngZone, _cdr, viewportRuler, _router) {
9891
- super(elementRef, _cdr, viewportRuler, dir, ngZone);
9892
- this._cdr = _cdr;
9893
- this._router = _router;
9894
- }
9895
9760
  ngOnInit() {
9896
9761
  this._router.events
9897
9762
  .pipe(filter((e) => e instanceof NavigationEnd), tap(() => this.updateActiveLink()), takeUntil(this._destroy$))
@@ -9932,7 +9797,7 @@ class NavTabsComponent extends PaginatedTabHeaderDirective {
9932
9797
  _getRole() {
9933
9798
  return this.tabOutlet ? 'tablist' : this._elementRef.nativeElement.getAttribute('role');
9934
9799
  }
9935
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NavTabsComponent, deps: [{ token: i0.ElementRef }, { token: i1$4.Directionality, optional: true }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1$5.ViewportRuler }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
9800
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NavTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9936
9801
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: NavTabsComponent, isStandalone: true, selector: "[et-nav-tabs]", inputs: { tabOutlet: "tabOutlet" }, host: { properties: { "attr.role": "this._attrRole" }, classAttribute: "et-nav-tabs" }, queries: [{ propertyName: "_items", predicate: i0.forwardRef(function () { return NavTabLinkComponent; }), descendants: true }, { propertyName: "_inkBars", predicate: i0.forwardRef(function () { return ActiveTabUnderlineDirective; }), descendants: true }], viewQueries: [{ propertyName: "_scrollable", first: true, predicate: ScrollableComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<et-scrollable\n [itemSize]=\"itemSize\"\n [renderButtons]=\"renderButtons\"\n [scrollableClass]=\"scrollableClass\"\n [renderMasks]=\"renderMasks\"\n [renderScrollbars]=\"renderScrollbars\"\n (keydown)=\"_handleKeydown($event)\"\n (contentChanged)=\"_onContentChanges()\"\n>\n <ng-content />\n</et-scrollable>\n", dependencies: [{ kind: "component", type: ScrollableComponent, selector: "et-scrollable", inputs: ["itemSize", "direction", "scrollableRole", "scrollableClass", "renderMasks", "renderButtons", "renderScrollbars", "stickyButtons", "cursorDragScroll", "disableActiveElementScrolling", "scrollMode", "snap", "scrollMargin"], outputs: ["scrollStateChange", "intersectionChange"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
9937
9802
  }
9938
9803
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NavTabsComponent, decorators: [{
@@ -9940,9 +9805,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
9940
9805
  args: [{ selector: '[et-nav-tabs]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, standalone: true, imports: [ScrollableComponent, NgClass, ScrollObserverIgnoreTargetDirective], host: {
9941
9806
  class: 'et-nav-tabs',
9942
9807
  }, template: "<et-scrollable\n [itemSize]=\"itemSize\"\n [renderButtons]=\"renderButtons\"\n [scrollableClass]=\"scrollableClass\"\n [renderMasks]=\"renderMasks\"\n [renderScrollbars]=\"renderScrollbars\"\n (keydown)=\"_handleKeydown($event)\"\n (contentChanged)=\"_onContentChanges()\"\n>\n <ng-content />\n</et-scrollable>\n" }]
9943
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$4.Directionality, decorators: [{
9944
- type: Optional
9945
- }] }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1$5.ViewportRuler }, { type: i3.Router }]; }, propDecorators: { tabOutlet: [{
9808
+ }], propDecorators: { tabOutlet: [{
9946
9809
  type: Input
9947
9810
  }], _items: [{
9948
9811
  type: ContentChildren,
@@ -9976,18 +9839,6 @@ class NavTabLinkComponent {
9976
9839
  const isActive = link.urlTree ? this._router.isActive(link.urlTree, options) : false;
9977
9840
  return isActive;
9978
9841
  }
9979
- get tabIndex() {
9980
- return this.disabled ? -1 : this._tabIndex;
9981
- }
9982
- set tabIndex(value) {
9983
- this._tabIndex = value != null ? coerceNumberProperty(value) : 0;
9984
- }
9985
- get disabled() {
9986
- return this._disabled;
9987
- }
9988
- set disabled(value) {
9989
- this._disabled = coerceBooleanProperty(value);
9990
- }
9991
9842
  get _attrAriaControls() {
9992
9843
  return this._getAriaControls();
9993
9844
  }
@@ -10006,18 +9857,19 @@ class NavTabLinkComponent {
10006
9857
  get _attrRole() {
10007
9858
  return this._getRole();
10008
9859
  }
10009
- constructor(_tabNavBar, elementRef, tabIndex, _focusMonitor, _router, _cdr, _ngZone, _link, _linkWithHref, _linkConfig) {
10010
- this._tabNavBar = _tabNavBar;
10011
- this.elementRef = elementRef;
10012
- this._focusMonitor = _focusMonitor;
10013
- this._router = _router;
10014
- this._cdr = _cdr;
10015
- this._ngZone = _ngZone;
10016
- this._link = _link;
10017
- this._linkWithHref = _linkWithHref;
10018
- this._linkConfig = _linkConfig;
10019
- this._tabIndex = 0;
10020
- this._disabled = false;
9860
+ constructor(tabIndex) {
9861
+ this._tabNavBar = inject(NavTabsComponent);
9862
+ this.elementRef = inject(ElementRef);
9863
+ this._focusMonitor = inject(FocusMonitor);
9864
+ this._router = inject(Router);
9865
+ this._cdr = inject(ChangeDetectorRef);
9866
+ this._ngZone = inject(NgZone);
9867
+ this._link = inject(RouterLink, { optional: true });
9868
+ this._linkWithHref = inject(RouterLink, { optional: true });
9869
+ this._linkConfig = inject(RouterLinkActive, { optional: true });
9870
+ // eslint-disable-next-line @angular-eslint/no-input-rename
9871
+ this.tabIndex = 0;
9872
+ this.disabled = false;
10021
9873
  this.id = `et-nav-tab-link-${nextUniqueId++}`;
10022
9874
  this._haltDisabledEvents = (event) => {
10023
9875
  if (this.disabled) {
@@ -10080,8 +9932,8 @@ class NavTabLinkComponent {
10080
9932
  _markForCheck() {
10081
9933
  this._cdr.markForCheck();
10082
9934
  }
10083
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NavTabLinkComponent, deps: [{ token: NavTabsComponent }, { token: i0.ElementRef }, { token: 'tabindex', attribute: true }, { token: i1$2.FocusMonitor }, { token: i3.Router }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i3.RouterLink, optional: true }, { token: i3.RouterLink, optional: true }, { token: i3.RouterLinkActive, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
10084
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: NavTabLinkComponent, isStandalone: true, selector: "[et-nav-tab-link]", inputs: { tabIndex: "tabIndex", disabled: "disabled", id: "id" }, host: { listeners: { "focus": "_handleFocus()", "keydown": "_handleKeydown($event)" }, properties: { "attr.id": "this.id", "attr.aria-controls": "this._attrAriaControls", "attr.aria-current": "this._attrAriaCurrent", "attr.aria-disabled": "this._attrAriaDisabled", "attr.aria-selected": "this._attrAriaSelected", "attr.tabIndex": "this._attrTabIndex", "attr.role": "this._attrRole" }, classAttribute: "et-nav-tab-link" }, hostDirectives: [{ directive: ActiveTabUnderlineDirective, inputs: ["fitUnderlineToContent", "fitUnderlineToContent"] }], ngImport: i0, template: `
9935
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NavTabLinkComponent, deps: [{ token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component }); }
9936
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: NavTabLinkComponent, isStandalone: true, selector: "[et-nav-tab-link]", inputs: { tabIndex: ["tabIndex", "tabIndex", (v) => numberAttribute(v, 0)], disabled: ["disabled", "disabled", booleanAttribute], id: "id" }, host: { listeners: { "focus": "_handleFocus()", "keydown": "_handleKeydown($event)" }, properties: { "attr.id": "this.id", "attr.aria-controls": "this._attrAriaControls", "attr.aria-current": "this._attrAriaCurrent", "attr.aria-disabled": "this._attrAriaDisabled", "attr.aria-selected": "this._attrAriaSelected", "attr.tabIndex": "this._attrTabIndex", "attr.role": "this._attrRole" }, classAttribute: "et-nav-tab-link" }, hostDirectives: [{ directive: ActiveTabUnderlineDirective, inputs: ["fitUnderlineToContent", "fitUnderlineToContent"] }], ngImport: i0, template: `
10085
9937
  <span class="et-tab-content">
10086
9938
  <ng-content />
10087
9939
  </span>
@@ -10102,19 +9954,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
10102
9954
  },
10103
9955
  hostDirectives: [{ directive: ActiveTabUnderlineDirective, inputs: ['fitUnderlineToContent'] }],
10104
9956
  }]
10105
- }], ctorParameters: function () { return [{ type: NavTabsComponent }, { type: i0.ElementRef }, { type: undefined, decorators: [{
9957
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
10106
9958
  type: Attribute,
10107
9959
  args: ['tabindex']
10108
- }] }, { type: i1$2.FocusMonitor }, { type: i3.Router }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i3.RouterLink, decorators: [{
10109
- type: Optional
10110
- }] }, { type: i3.RouterLink, decorators: [{
10111
- type: Optional
10112
- }] }, { type: i3.RouterLinkActive, decorators: [{
10113
- type: Optional
10114
9960
  }] }]; }, propDecorators: { tabIndex: [{
10115
- type: Input
9961
+ type: Input,
9962
+ args: [{ transform: (v) => numberAttribute(v, 0) }]
10116
9963
  }], disabled: [{
10117
- type: Input
9964
+ type: Input,
9965
+ args: [{ transform: booleanAttribute }]
10118
9966
  }], id: [{
10119
9967
  type: Input
10120
9968
  }, {
@@ -10153,57 +10001,21 @@ let nextId = 0;
10153
10001
  class InlineTabChangeEvent {
10154
10002
  }
10155
10003
  class InlineTabsComponent {
10156
- get selectedIndex() {
10157
- return this._selectedIndex;
10158
- }
10159
- set selectedIndex(value) {
10160
- this._indexToSelect = coerceNumberProperty(value, null);
10161
- }
10162
- get contentTabIndex() {
10163
- return this._contentTabIndex;
10164
- }
10165
- set contentTabIndex(value) {
10166
- this._contentTabIndex = coerceNumberProperty(value, null);
10167
- }
10168
- get preserveContent() {
10169
- return this._preserveContent;
10170
- }
10171
- set preserveContent(value) {
10172
- this._preserveContent = coerceBooleanProperty(value);
10173
- }
10174
- get renderMasks() {
10175
- return this._renderMasks;
10176
- }
10177
- set renderMasks(value) {
10178
- this._renderMasks = coerceBooleanProperty(value);
10179
- }
10180
- get renderButtons() {
10181
- return this._renderButtons;
10182
- }
10183
- set renderButtons(value) {
10184
- this._renderButtons = coerceBooleanProperty(value);
10185
- }
10186
- get renderScrollbars() {
10187
- return this._renderScrollbars;
10188
- }
10189
- set renderScrollbars(value) {
10190
- this._renderScrollbars = coerceBooleanProperty(value);
10191
- }
10192
- constructor(_cdr) {
10193
- this._cdr = _cdr;
10194
- this._selectedIndex = null;
10195
- this._contentTabIndex = null;
10196
- this._preserveContent = false;
10004
+ constructor() {
10005
+ this._cdr = inject(ChangeDetectorRef);
10006
+ this.selectedIndex = null;
10007
+ this.contentTabIndex = null;
10008
+ this.preserveContent = false;
10197
10009
  this.itemSize = 'auto';
10198
- this._renderMasks = true;
10199
- this._renderButtons = true;
10200
- this._renderScrollbars = false;
10010
+ this.renderMasks = true;
10011
+ this.renderButtons = true;
10012
+ this.renderScrollbars = false;
10201
10013
  this.selectedIndexChange = new EventEmitter();
10202
10014
  this.focusChange = new EventEmitter();
10203
10015
  this.selectedTabChange = new EventEmitter(true);
10016
+ this._tabBodyWrapper = null;
10204
10017
  this._tabs = new TypedQueryList();
10205
10018
  this._groupId = nextId++;
10206
- this._indexToSelect = 0;
10207
10019
  this._lastFocusedTabIndex = null;
10208
10020
  this._tabsSubscription = Subscription.EMPTY;
10209
10021
  this._tabLabelSubscription = Subscription.EMPTY;
@@ -10213,13 +10025,13 @@ class InlineTabsComponent {
10213
10025
  this._subscribeToAllTabChanges();
10214
10026
  this._subscribeToTabLabels();
10215
10027
  this._tabsSubscription = this._tabs.changes.subscribe(() => {
10216
- const indexToSelect = this._clampTabIndex(this._indexToSelect);
10217
- if (indexToSelect === this._selectedIndex) {
10028
+ const indexToSelect = this._clampTabIndex(this.selectedIndex);
10029
+ if (indexToSelect === this.selectedIndex) {
10218
10030
  const tabs = this._tabs.toArray();
10219
10031
  let selectedTab;
10220
10032
  for (let i = 0; i < tabs.length; i++) {
10221
10033
  if (tabs[i]?.isActive) {
10222
- this._indexToSelect = this._selectedIndex = i;
10034
+ this.selectedIndex = i;
10223
10035
  this._lastFocusedTabIndex = null;
10224
10036
  selectedTab = tabs[i];
10225
10037
  break;
@@ -10239,12 +10051,12 @@ class InlineTabsComponent {
10239
10051
  });
10240
10052
  }
10241
10053
  ngAfterContentChecked() {
10242
- const indexToSelect = (this._indexToSelect = this._clampTabIndex(this._indexToSelect));
10243
- if (this._selectedIndex != indexToSelect) {
10244
- const isFirstRun = this._selectedIndex == null;
10054
+ const indexToSelect = (this.selectedIndex = this._clampTabIndex(this.selectedIndex));
10055
+ if (this.selectedIndex != indexToSelect && this._tabBodyWrapper) {
10056
+ const isFirstRun = this.selectedIndex == null;
10245
10057
  if (!isFirstRun) {
10246
10058
  this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));
10247
- const wrapper = this._tabBodyWrapper.nativeElement;
10059
+ const wrapper = this._tabBodyWrapper?.nativeElement;
10248
10060
  wrapper.style.minHeight = wrapper.clientHeight + 'px';
10249
10061
  }
10250
10062
  Promise.resolve().then(() => {
@@ -10253,7 +10065,9 @@ class InlineTabsComponent {
10253
10065
  .forEach((tab, index) => (tab.isActive = index === indexToSelect));
10254
10066
  if (!isFirstRun) {
10255
10067
  this.selectedIndexChange.emit(indexToSelect);
10256
- this._tabBodyWrapper.nativeElement.style.minHeight = '';
10068
+ if (this._tabBodyWrapper) {
10069
+ this._tabBodyWrapper.nativeElement.style.minHeight = '';
10070
+ }
10257
10071
  }
10258
10072
  });
10259
10073
  }
@@ -10261,12 +10075,12 @@ class InlineTabsComponent {
10261
10075
  if (!tab)
10262
10076
  return;
10263
10077
  tab.position = index - indexToSelect;
10264
- if (this._selectedIndex != null && tab.position == 0 && !tab.origin) {
10265
- tab.origin = indexToSelect - this._selectedIndex;
10078
+ if (this.selectedIndex != null && tab.position == 0 && !tab.origin) {
10079
+ tab.origin = indexToSelect - this.selectedIndex;
10266
10080
  }
10267
10081
  });
10268
- if (this._selectedIndex !== indexToSelect) {
10269
- this._selectedIndex = indexToSelect;
10082
+ if (this.selectedIndex !== indexToSelect) {
10083
+ this.selectedIndex = indexToSelect;
10270
10084
  this._lastFocusedTabIndex = null;
10271
10085
  this._cdr.markForCheck();
10272
10086
  }
@@ -10349,8 +10163,8 @@ class InlineTabsComponent {
10349
10163
  }
10350
10164
  return event;
10351
10165
  }
10352
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
10353
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: InlineTabsComponent, isStandalone: true, selector: "et-inline-tabs", inputs: { selectedIndex: "selectedIndex", contentTabIndex: "contentTabIndex", preserveContent: "preserveContent", tabHeaderClasses: "tabHeaderClasses", itemSize: "itemSize", scrollableClass: "scrollableClass", renderMasks: "renderMasks", renderButtons: "renderButtons", renderScrollbars: "renderScrollbars" }, outputs: { selectedIndexChange: "selectedIndexChange", focusChange: "focusChange", selectedTabChange: "selectedTabChange" }, host: { classAttribute: "et-inline-tabs" }, providers: [
10166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: InlineTabsComponent, isStandalone: true, selector: "et-inline-tabs", inputs: { selectedIndex: ["selectedIndex", "selectedIndex", numberAttribute], contentTabIndex: ["contentTabIndex", "contentTabIndex", numberAttribute], preserveContent: ["preserveContent", "preserveContent", booleanAttribute], tabHeaderClasses: "tabHeaderClasses", itemSize: "itemSize", scrollableClass: "scrollableClass", renderMasks: ["renderMasks", "renderMasks", booleanAttribute], renderButtons: ["renderButtons", "renderButtons", booleanAttribute], renderScrollbars: ["renderScrollbars", "renderScrollbars", booleanAttribute] }, outputs: { selectedIndexChange: "selectedIndexChange", focusChange: "focusChange", selectedTabChange: "selectedTabChange" }, host: { classAttribute: "et-inline-tabs" }, providers: [
10354
10168
  {
10355
10169
  provide: TAB_GROUP,
10356
10170
  useExisting: InlineTabsComponent,
@@ -10376,12 +10190,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
10376
10190
  ], host: {
10377
10191
  class: 'et-inline-tabs',
10378
10192
  }, template: "<et-inline-tab-header\n #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [ngClass]=\"tabHeaderClasses\"\n [itemSize]=\"itemSize\"\n [renderButtons]=\"renderButtons\"\n [scrollableClass]=\"scrollableClass\"\n [renderMasks]=\"renderMasks\"\n [renderScrollbars]=\"renderScrollbars\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events -->\n <div\n *ngFor=\"let tab of _tabs; let i = index; trackBy: trackByTabFn\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"!tab.ariaLabel && tab.ariaLabelledby ? tab.ariaLabelledby : null\"\n [disabled]=\"tab.disabled\"\n [class.et-inline-tab-label--active]=\"selectedIndex === i\"\n [class.et-inline-tab-label--is-text]=\"!!tab.textLabel\"\n [fitUnderlineToContent]=\"tab.fitUnderlineToContent\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\"\n role=\"tab\"\n etInlineTabLabelWrapper\n cdkMonitorElementFocus\n >\n <span class=\"et-tab-content\">\n <ng-template [ngIf]=\"tab.templateLabel\" [ngIfElse]=\"tabTextLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\" />\n </ng-template>\n\n <ng-template #tabTextLabel>{{ tab.textLabel }}</ng-template>\n </span>\n </div>\n</et-inline-tab-header>\n\n<div #tabBodyWrapper>\n <et-inline-tab-body\n *ngFor=\"let tab of _tabs; let i = index; trackBy: trackByTabFn\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"contentTabIndex !== null && selectedIndex === i ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.cdk-visually-hidden]=\"selectedIndex !== i\"\n [ngClass]=\"tab.bodyClass\"\n [class.sr-only]=\"selectedIndex !== i\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [preserveContent]=\"preserveContent\"\n role=\"tabpanel\"\n animationDuration=\"0ms\"\n />\n</div>\n", styles: [".et-inline-tabs{display:block}.et-inline-tabs .et-inline-tab-label--is-text{white-space:nowrap}.et-inline-tabs .et-inline-tab-label-wrapper:not([aria-disabled=true]){cursor:pointer}.et-inline-tabs .et-scrollable-container{position:relative}\n"] }]
10379
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selectedIndex: [{
10380
- type: Input
10193
+ }], propDecorators: { selectedIndex: [{
10194
+ type: Input,
10195
+ args: [{ transform: numberAttribute }]
10381
10196
  }], contentTabIndex: [{
10382
- type: Input
10197
+ type: Input,
10198
+ args: [{ transform: numberAttribute }]
10383
10199
  }], preserveContent: [{
10384
- type: Input
10200
+ type: Input,
10201
+ args: [{ transform: booleanAttribute }]
10385
10202
  }], tabHeaderClasses: [{
10386
10203
  type: Input
10387
10204
  }], itemSize: [{
@@ -10389,11 +10206,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
10389
10206
  }], scrollableClass: [{
10390
10207
  type: Input
10391
10208
  }], renderMasks: [{
10392
- type: Input
10209
+ type: Input,
10210
+ args: [{ transform: booleanAttribute }]
10393
10211
  }], renderButtons: [{
10394
- type: Input
10212
+ type: Input,
10213
+ args: [{ transform: booleanAttribute }]
10395
10214
  }], renderScrollbars: [{
10396
- type: Input
10215
+ type: Input,
10216
+ args: [{ transform: booleanAttribute }]
10397
10217
  }], selectedIndexChange: [{
10398
10218
  type: Output
10399
10219
  }], focusChange: [{