igniteui-angular 21.0.0-alpha.0 → 21.0.0-alpha.2

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 (137) hide show
  1. package/fesm2022/igniteui-angular-accordion.mjs +24 -2
  2. package/fesm2022/igniteui-angular-accordion.mjs.map +1 -1
  3. package/fesm2022/igniteui-angular-action-strip.mjs +23 -2
  4. package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
  5. package/fesm2022/igniteui-angular-avatar.mjs +19 -2
  6. package/fesm2022/igniteui-angular-avatar.mjs.map +1 -1
  7. package/fesm2022/igniteui-angular-badge.mjs +19 -2
  8. package/fesm2022/igniteui-angular-badge.mjs.map +1 -1
  9. package/fesm2022/igniteui-angular-banner.mjs +19 -2
  10. package/fesm2022/igniteui-angular-banner.mjs.map +1 -1
  11. package/fesm2022/igniteui-angular-bottom-nav.mjs +23 -2
  12. package/fesm2022/igniteui-angular-bottom-nav.mjs.map +1 -1
  13. package/fesm2022/igniteui-angular-calendar.mjs +23 -2
  14. package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
  15. package/fesm2022/igniteui-angular-card.mjs +23 -2
  16. package/fesm2022/igniteui-angular-card.mjs.map +1 -1
  17. package/fesm2022/igniteui-angular-carousel.mjs +25 -4
  18. package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
  19. package/fesm2022/igniteui-angular-checkbox.mjs +19 -2
  20. package/fesm2022/igniteui-angular-checkbox.mjs.map +1 -1
  21. package/fesm2022/igniteui-angular-chips.mjs +24 -2
  22. package/fesm2022/igniteui-angular-chips.mjs.map +1 -1
  23. package/fesm2022/igniteui-angular-combo.mjs +24 -2
  24. package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
  25. package/fesm2022/igniteui-angular-core.mjs +27 -1
  26. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  27. package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
  28. package/fesm2022/igniteui-angular-dialog.mjs +23 -2
  29. package/fesm2022/igniteui-angular-dialog.mjs.map +1 -1
  30. package/fesm2022/igniteui-angular-directives.mjs +4 -30
  31. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  32. package/fesm2022/igniteui-angular-drop-down.mjs +40 -2
  33. package/fesm2022/igniteui-angular-drop-down.mjs.map +1 -1
  34. package/fesm2022/igniteui-angular-expansion-panel.mjs +23 -2
  35. package/fesm2022/igniteui-angular-expansion-panel.mjs.map +1 -1
  36. package/fesm2022/igniteui-angular-grids-core.mjs +29 -11
  37. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  38. package/fesm2022/igniteui-angular-grids-grid.mjs +4 -4
  39. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  40. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +4 -4
  41. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
  42. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +2 -2
  43. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  44. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +4 -4
  45. package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
  46. package/fesm2022/igniteui-angular-list.mjs +23 -2
  47. package/fesm2022/igniteui-angular-list.mjs.map +1 -1
  48. package/fesm2022/igniteui-angular-navigation-drawer.mjs +22 -2
  49. package/fesm2022/igniteui-angular-navigation-drawer.mjs.map +1 -1
  50. package/fesm2022/igniteui-angular-paginator.mjs +23 -2
  51. package/fesm2022/igniteui-angular-paginator.mjs.map +1 -1
  52. package/fesm2022/igniteui-angular-progressbar.mjs +23 -2
  53. package/fesm2022/igniteui-angular-progressbar.mjs.map +1 -1
  54. package/fesm2022/igniteui-angular-query-builder.mjs +2 -2
  55. package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
  56. package/fesm2022/igniteui-angular-radio.mjs +2 -2
  57. package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
  58. package/fesm2022/igniteui-angular-simple-combo.mjs +24 -2
  59. package/fesm2022/igniteui-angular-simple-combo.mjs.map +1 -1
  60. package/fesm2022/igniteui-angular-slider.mjs +27 -6
  61. package/fesm2022/igniteui-angular-slider.mjs.map +1 -1
  62. package/fesm2022/igniteui-angular-stepper.mjs +25 -4
  63. package/fesm2022/igniteui-angular-stepper.mjs.map +1 -1
  64. package/fesm2022/igniteui-angular-tabs.mjs +6 -6
  65. package/fesm2022/igniteui-angular-tabs.mjs.map +1 -1
  66. package/fesm2022/igniteui-angular-time-picker.mjs +29 -7
  67. package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
  68. package/fesm2022/igniteui-angular-toast.mjs +23 -2
  69. package/fesm2022/igniteui-angular-toast.mjs.map +1 -1
  70. package/fesm2022/igniteui-angular-tree.mjs +23 -2
  71. package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
  72. package/migrations/update-21_0_0/changes/classes.json +4 -0
  73. package/migrations/update-21_0_0/changes/theme-changes.json +53 -0
  74. package/migrations/update-21_0_0/index.js +181 -20
  75. package/migrations/update-21_0_0/schema.json +1 -1
  76. package/package.json +12 -12
  77. package/styles/igniteui-angular-dark.css +1 -1
  78. package/styles/igniteui-angular.css +1 -1
  79. package/styles/igniteui-bootstrap-dark.css +1 -1
  80. package/styles/igniteui-bootstrap-light.css +1 -1
  81. package/styles/igniteui-dark-green.css +1 -1
  82. package/styles/igniteui-fluent-dark-excel.css +1 -1
  83. package/styles/igniteui-fluent-dark-word.css +1 -1
  84. package/styles/igniteui-fluent-dark.css +1 -1
  85. package/styles/igniteui-fluent-light-excel.css +1 -1
  86. package/styles/igniteui-fluent-light-word.css +1 -1
  87. package/styles/igniteui-fluent-light.css +1 -1
  88. package/styles/igniteui-indigo-dark.css +1 -1
  89. package/styles/igniteui-indigo-light.css +1 -1
  90. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  91. package/styles/maps/igniteui-angular.css.map +1 -1
  92. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  93. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  94. package/styles/maps/igniteui-dark-green.css.map +1 -1
  95. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  96. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  97. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  98. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  99. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  100. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  101. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  102. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  103. package/types/igniteui-angular-accordion.d.ts +12 -1
  104. package/types/igniteui-angular-action-strip.d.ts +11 -1
  105. package/types/igniteui-angular-avatar.d.ts +11 -1
  106. package/types/igniteui-angular-badge.d.ts +11 -1
  107. package/types/igniteui-angular-banner.d.ts +11 -1
  108. package/types/igniteui-angular-bottom-nav.d.ts +11 -1
  109. package/types/igniteui-angular-calendar.d.ts +11 -1
  110. package/types/igniteui-angular-card.d.ts +11 -1
  111. package/types/igniteui-angular-carousel.d.ts +13 -3
  112. package/types/igniteui-angular-checkbox.d.ts +11 -1
  113. package/types/igniteui-angular-chips.d.ts +12 -1
  114. package/types/igniteui-angular-combo.d.ts +12 -1
  115. package/types/igniteui-angular-core.d.ts +14 -7
  116. package/types/igniteui-angular-date-picker.d.ts +2 -2
  117. package/types/igniteui-angular-dialog.d.ts +11 -1
  118. package/types/igniteui-angular-directives.d.ts +3 -18
  119. package/types/igniteui-angular-drop-down.d.ts +23 -3
  120. package/types/igniteui-angular-expansion-panel.d.ts +11 -1
  121. package/types/igniteui-angular-grids-core.d.ts +17 -8
  122. package/types/igniteui-angular-grids-grid.d.ts +4 -4
  123. package/types/igniteui-angular-grids-hierarchical-grid.d.ts +2 -2
  124. package/types/igniteui-angular-grids-tree-grid.d.ts +2 -2
  125. package/types/igniteui-angular-list.d.ts +11 -1
  126. package/types/igniteui-angular-navigation-drawer.d.ts +10 -1
  127. package/types/igniteui-angular-paginator.d.ts +11 -1
  128. package/types/igniteui-angular-progressbar.d.ts +11 -1
  129. package/types/igniteui-angular-query-builder.d.ts +1 -2
  130. package/types/igniteui-angular-radio.d.ts +3 -4
  131. package/types/igniteui-angular-simple-combo.d.ts +13 -1
  132. package/types/igniteui-angular-slider.d.ts +14 -4
  133. package/types/igniteui-angular-stepper.d.ts +13 -3
  134. package/types/igniteui-angular-tabs.d.ts +5 -5
  135. package/types/igniteui-angular-time-picker.d.ts +13 -1
  136. package/types/igniteui-angular-toast.d.ts +11 -1
  137. package/types/igniteui-angular-tree.d.ts +11 -1
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable, Directive, HostBinding, Input, Inject, EventEmitter, booleanAttribute, HostListener, forwardRef, ContentChild, ViewChild, Output, Component, TemplateRef, ContentChildren } from '@angular/core';
2
+ import { InjectionToken, Injectable, Directive, HostBinding, Input, Inject, EventEmitter, booleanAttribute, HostListener, forwardRef, ContentChild, ViewChild, Output, Component, TemplateRef, ContentChildren, NgModule } from '@angular/core';
3
3
  import { takeUntil } from 'rxjs/operators';
4
4
  import { CarouselAnimationType, CarouselAnimationDirection, IgxCarouselComponentBase } from 'igniteui-angular/carousel';
5
5
  import { NgClass, NgTemplateOutlet } from '@angular/common';
@@ -851,7 +851,7 @@ class IgxStepComponent extends ToggleAnimationPlayer {
851
851
  this.stepperService.activeStep.closeAnimationPlayer?.finish();
852
852
  }
853
853
  }
854
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxStepComponent, deps: [{ token: IGX_STEPPER_COMPONENT }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.PlatformUtil }, { token: IgxStepperService }, { token: IgxAngularAnimationService }, { token: i0.ElementRef }, { token: i1IgxDirectionality }], target: i0.ɵɵFactoryTarget.Component }); }
854
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxStepComponent, deps: [{ token: IGX_STEPPER_COMPONENT }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.PlatformUtil }, { token: IgxStepperService }, { token: IgxAngularAnimationService }, { token: i0.ElementRef }, { token: i1.IgxDirectionality }], target: i0.ɵɵFactoryTarget.Component }); }
855
855
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: IgxStepComponent, isStandalone: true, selector: "igx-step", inputs: { id: "id", disabled: ["disabled", "disabled", booleanAttribute], completed: ["completed", "completed", booleanAttribute], isValid: ["isValid", "isValid", booleanAttribute], optional: ["optional", "optional", booleanAttribute], active: ["active", "active", booleanAttribute], tabIndex: "tabIndex" }, outputs: { activeChange: "activeChange" }, host: { listeners: { "focus": "onFocus()", "blur": "onBlur()", "keydown": "handleKeydown($event)" }, properties: { "attr.id": "this.id", "class.igx-stepper__step--completed": "this.completed", "attr.aria-selected": "this.active", "attr.tabindex": "this.tabIndex", "attr.role": "this.role", "attr.aria-controls": "this.contentId", "class.igx-stepper__step": "this.cssClass", "class.igx-stepper__step--disabled": "this.generalDisabled", "class": "this.titlePositionTop" } }, providers: [
856
856
  { provide: IGX_STEP_COMPONENT, useExisting: IgxStepComponent }
857
857
  ], queries: [{ propertyName: "indicator", first: true, predicate: i0.forwardRef(() => IgxStepIndicatorDirective), descendants: true }, { propertyName: "content", first: true, predicate: i0.forwardRef(() => IgxStepContentDirective), descendants: true }], viewQueries: [{ propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "customIndicatorTemplate", first: true, predicate: ["customIndicator"], descendants: true, static: true }, { propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #defaultTitle>\n @if (isTitleVisible) {\n <ng-content select=\"[igxStepTitle]\"></ng-content>\n }\n @if (isTitleVisible) {\n <ng-content select=\"[igxStepSubtitle]\"></ng-content>\n }\n</ng-template>\n\n<ng-template #contentTemplate>\n <div [ngClass]=\"contentClasses\" #contentContainer>\n @if (active || collapsing) {\n <ng-content select=\"[igxStepContent]\"></ng-content>\n }\n </div>\n</ng-template>\n\n<ng-template #defaultIndicator>\n <span>{{ index + 1 }}</span>\n</ng-template>\n\n<ng-template #customIndicator>\n <ng-content select=\"[igxStepIndicator]\"></ng-content>\n</ng-template>\n\n<div class=\"igx-stepper__step-header\" igxRipple [ngClass]=\"stepHeaderClasses\" (keydown)=\"handleKeydown($event)\"\n (click)=\"onPointerDown($event)\">\n\n @if (isIndicatorVisible) {\n <div class=\"igx-stepper__step-indicator\">\n <ng-container *ngTemplateOutlet=\"indicatorTemplate ? indicatorTemplate : defaultIndicator\"></ng-container>\n </div>\n }\n\n <div class=\"igx-stepper__step-title-wrapper\">\n <ng-container *ngTemplateOutlet=\"defaultTitle\"></ng-container>\n </div>\n</div>\n\n@if (!isHorizontal) {\n <div class=\"igx-stepper__step-content-wrapper\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
@@ -867,7 +867,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
867
867
  }] }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i1.PlatformUtil }, { type: IgxStepperService }, { type: undefined, decorators: [{
868
868
  type: Inject,
869
869
  args: [IgxAngularAnimationService]
870
- }] }, { type: i0.ElementRef }, { type: i1IgxDirectionality }], propDecorators: { id: [{
870
+ }] }, { type: i0.ElementRef }, { type: i1.IgxDirectionality }], propDecorators: { id: [{
871
871
  type: HostBinding,
872
872
  args: ['attr.id']
873
873
  }, {
@@ -1439,9 +1439,30 @@ const IGX_STEPPER_DIRECTIVES = [
1439
1439
  IgxStepInvalidIndicatorDirective
1440
1440
  ];
1441
1441
 
1442
+ /**
1443
+ * @hidden
1444
+ * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
1445
+ */
1446
+ class IgxStepperModule {
1447
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1448
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: IgxStepperModule, imports: [IgxStepComponent, IgxStepperComponent, IgxStepTitleDirective, IgxStepSubtitleDirective, IgxStepIndicatorDirective, IgxStepContentDirective, IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepInvalidIndicatorDirective], exports: [IgxStepComponent, IgxStepperComponent, IgxStepTitleDirective, IgxStepSubtitleDirective, IgxStepIndicatorDirective, IgxStepContentDirective, IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepInvalidIndicatorDirective] }); }
1449
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxStepperModule }); }
1450
+ }
1451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxStepperModule, decorators: [{
1452
+ type: NgModule,
1453
+ args: [{
1454
+ imports: [
1455
+ ...IGX_STEPPER_DIRECTIVES
1456
+ ],
1457
+ exports: [
1458
+ ...IGX_STEPPER_DIRECTIVES
1459
+ ]
1460
+ }]
1461
+ }] });
1462
+
1442
1463
  /**
1443
1464
  * Generated bundle index. Do not edit.
1444
1465
  */
1445
1466
 
1446
- export { HorizontalAnimationType, IGX_STEPPER_DIRECTIVES, IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepComponent, IgxStepContentDirective, IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective, IgxStepSubtitleDirective, IgxStepTitleDirective, IgxStepType, IgxStepperComponent, IgxStepperOrientation, IgxStepperTitlePosition, VerticalAnimationType };
1467
+ export { HorizontalAnimationType, IGX_STEPPER_DIRECTIVES, IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepComponent, IgxStepContentDirective, IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective, IgxStepSubtitleDirective, IgxStepTitleDirective, IgxStepType, IgxStepperComponent, IgxStepperModule, IgxStepperOrientation, IgxStepperTitlePosition, VerticalAnimationType };
1447
1468
  //# sourceMappingURL=igniteui-angular-stepper.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"igniteui-angular-stepper.mjs","sources":["../../../projects/igniteui-angular/stepper/src/stepper/stepper.common.ts","../../../projects/igniteui-angular/stepper/src/stepper/stepper.service.ts","../../../projects/igniteui-angular/stepper/src/stepper/stepper.directive.ts","../../../projects/igniteui-angular/stepper/src/stepper/step/step.component.ts","../../../projects/igniteui-angular/stepper/src/stepper/step/step.component.html","../../../projects/igniteui-angular/stepper/src/stepper/stepper.component.ts","../../../projects/igniteui-angular/stepper/src/stepper/stepper.component.html","../../../projects/igniteui-angular/stepper/src/stepper/public_api.ts","../../../projects/igniteui-angular/stepper/src/igniteui-angular-stepper.ts"],"sourcesContent":["import { ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, TemplateRef } from '@angular/core';\nimport { IBaseCancelableBrowserEventArgs, IBaseEventArgs } from 'igniteui-angular/core';\nimport { IgxStepperComponent } from './stepper.component';\nimport { IgxStepComponent } from './step/step.component';\nimport {\n IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepContentDirective,\n IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective\n} from './stepper.directive';\nimport { ToggleAnimationPlayer, ToggleAnimationSettings } from 'igniteui-angular/expansion-panel';\nimport { CarouselAnimationType, IgxCarouselComponentBase, CarouselAnimationDirection } from 'igniteui-angular/carousel';\n\n// Component interfaces\nexport interface IgxStepper extends IgxCarouselComponentBase {\n steps: IgxStepComponent[];\n /** @hidden @internal */\n nativeElement: HTMLElement;\n /** @hidden @internal */\n invalidIndicatorTemplate: TemplateRef<IgxStepInvalidIndicatorDirective>;\n /** @hidden @internal */\n completedIndicatorTemplate: TemplateRef<IgxStepCompletedIndicatorDirective>;\n /** @hidden @internal */\n activeIndicatorTemplate: TemplateRef<IgxStepActiveIndicatorDirective>;\n verticalAnimationType: VerticalAnimationType;\n horizontalAnimationType: HorizontalAnimationType;\n animationDuration: number;\n linear: boolean;\n orientation: IgxStepperOrientation;\n stepType: IgxStepType;\n contentTop: boolean;\n titlePosition: IgxStepperTitlePosition;\n /** @hidden @internal */\n verticalAnimationSettings: ToggleAnimationSettings;\n /** @hidden @internal */\n _defaultTitlePosition: IgxStepperTitlePosition;\n activeStepChanging: EventEmitter<IStepChangingEventArgs>;\n activeStepChanged: EventEmitter<IStepChangedEventArgs>;\n navigateTo(index: number): void;\n next(): void;\n prev(): void;\n reset(): void;\n /** @hidden @internal */\n playHorizontalAnimations(): void;\n}\n\n// Item interfaces\nexport interface IgxStep extends ToggleAnimationPlayer {\n id: string;\n /** @hidden @internal */\n contentTemplate: TemplateRef<any>;\n /** @hidden @internal */\n customIndicatorTemplate: TemplateRef<any>;\n /** @hidden @internal */\n contentContainer: ElementRef;\n /** @hidden @internal */\n indicator: IgxStepIndicatorDirective;\n /** @hidden @internal */\n content: IgxStepContentDirective;\n /** @hidden @internal */\n indicatorTemplate: TemplateRef<any>;\n index: number;\n disabled: boolean;\n completed: boolean;\n isValid: boolean;\n optional: boolean;\n active: boolean;\n tabIndex: number;\n /** @hidden @internal */\n contentId: string;\n /** @hidden @internal */\n generalDisabled: boolean;\n /** @hidden @internal */\n titlePositionTop: string;\n /** @hidden @internal */\n direction: CarouselAnimationDirection;\n /** @hidden @internal */\n isAccessible: boolean;\n /** @hidden @internal */\n isHorizontal: boolean;\n /** @hidden @internal */\n isTitleVisible: boolean;\n /** @hidden @internal */\n isIndicatorVisible: boolean;\n /** @hidden @internal */\n titlePosition: string;\n /** @hidden @internal */\n linearDisabled: boolean;\n /** @hidden @internal */\n collapsing: boolean;\n /** @hidden @internal */\n animationSettings: ToggleAnimationSettings;\n /** @hidden @internal */\n contentClasses: any;\n /** @hidden @internal */\n stepHeaderClasses: any;\n /** @hidden @internal */\n nativeElement: HTMLElement;\n /** @hidden @internal */\n previous: boolean;\n cdr: ChangeDetectorRef;\n activeChange: EventEmitter<boolean>;\n}\n\n// Events\nexport interface IStepChangingEventArgs extends IBaseEventArgs, IBaseCancelableBrowserEventArgs {\n newIndex: number;\n oldIndex: number;\n owner: IgxStepper;\n}\n\nexport interface IStepChangedEventArgs extends IBaseEventArgs {\n // Provides the index of the current active step within the stepper steps\n index: number;\n owner: IgxStepper;\n}\n\n// Enums\nexport const IgxStepperOrientation = {\n Horizontal: 'horizontal',\n Vertical: 'vertical'\n} as const;\nexport type IgxStepperOrientation = (typeof IgxStepperOrientation)[keyof typeof IgxStepperOrientation];\n\nexport const IgxStepType = {\n Indicator: 'indicator',\n Title: 'title',\n Full: 'full'\n} as const;\nexport type IgxStepType = (typeof IgxStepType)[keyof typeof IgxStepType];\n\nexport const IgxStepperTitlePosition = {\n Bottom: 'bottom',\n Top: 'top',\n End: 'end',\n Start: 'start'\n} as const;\nexport type IgxStepperTitlePosition = (typeof IgxStepperTitlePosition)[keyof typeof IgxStepperTitlePosition];\n\nexport const VerticalAnimationType = {\n Grow: 'grow',\n Fade: 'fade',\n None: 'none'\n} as const;\nexport type VerticalAnimationType = (typeof VerticalAnimationType)[keyof typeof VerticalAnimationType];\n\nexport const HorizontalAnimationType = {\n ...CarouselAnimationType\n} as const;\nexport type HorizontalAnimationType = (typeof HorizontalAnimationType)[keyof typeof HorizontalAnimationType];\n\n// Token\nexport const IGX_STEPPER_COMPONENT = /*@__PURE__*/new InjectionToken<IgxStepperComponent>('IgxStepperToken');\nexport const IGX_STEP_COMPONENT = /*@__PURE__*/new InjectionToken<IgxStepComponent>('IgxStepToken');\n","import { Injectable } from '@angular/core';\nimport { IgxStepper, IgxStepperOrientation, IStepChangingEventArgs } from './stepper.common';\nimport { IgxStepComponent } from './step/step.component';\n\n/** @hidden @internal */\n@Injectable()\nexport class IgxStepperService {\n public activeStep: IgxStepComponent;\n public previousActiveStep: IgxStepComponent;\n public focusedStep: IgxStepComponent;\n\n public collapsingSteps: Set<IgxStepComponent> = new Set<IgxStepComponent>();\n public linearDisabledSteps: Set<IgxStepComponent> = new Set<IgxStepComponent>();\n public visitedSteps: Set<IgxStepComponent> = new Set<IgxStepComponent>();\n public stepper: IgxStepper;\n\n /**\n * Activates the step, fires the steps change event and plays animations.\n */\n public expand(step: IgxStepComponent): void {\n if (this.activeStep === step) {\n return;\n }\n\n const cancel = this.emitActivatingEvent(step);\n if (cancel) {\n return;\n }\n\n this.collapsingSteps.delete(step);\n\n this.previousActiveStep = this.activeStep;\n this.activeStep = step;\n this.activeStep.activeChange.emit(true);\n\n this.collapsingSteps.add(this.previousActiveStep);\n this.visitedSteps.add(this.activeStep);\n\n if (this.stepper.orientation === IgxStepperOrientation.Vertical) {\n this.previousActiveStep.playCloseAnimation(\n this.previousActiveStep.contentContainer\n );\n this.activeStep.cdr.detectChanges();\n\n this.activeStep.playOpenAnimation(\n this.activeStep.contentContainer\n );\n } else {\n this.activeStep.cdr.detectChanges();\n this.stepper.playHorizontalAnimations();\n }\n }\n\n /**\n * Activates the step and fires the steps change event without playing animations.\n */\n public expandThroughApi(step: IgxStepComponent): void {\n if (this.activeStep === step) {\n return;\n }\n\n this.collapsingSteps.clear();\n\n this.previousActiveStep = this.activeStep;\n this.activeStep = step;\n\n if (this.previousActiveStep) {\n this.previousActiveStep.tabIndex = -1;\n }\n this.activeStep.tabIndex = 0;\n this.visitedSteps.add(this.activeStep);\n\n this.activeStep.cdr.markForCheck();\n this.previousActiveStep?.cdr.markForCheck();\n\n this.activeStep.activeChange.emit(true);\n this.previousActiveStep?.activeChange.emit(false);\n }\n\n /**\n * Collapses the currently active step and fires the change event.\n */\n public collapse(step: IgxStepComponent): void {\n if (this.activeStep === step) {\n return;\n }\n step.activeChange.emit(false);\n this.collapsingSteps.delete(step);\n }\n\n /**\n * Determines the steps that should be marked as visited based on the active step.\n */\n public calculateVisitedSteps(): void {\n this.stepper.steps.forEach(step => {\n if (step.index <= this.activeStep.index) {\n this.visitedSteps.add(step);\n } else {\n this.visitedSteps.delete(step);\n }\n });\n }\n\n /**\n * Determines the steps that should be disabled in linear mode based on the validity of the active step.\n */\n public calculateLinearDisabledSteps(): void {\n if (!this.activeStep) {\n return;\n }\n\n if (this.activeStep.isValid) {\n const firstRequiredIndex = this.getNextRequiredStep();\n if (firstRequiredIndex !== -1) {\n this.updateLinearDisabledSteps(firstRequiredIndex);\n } else {\n this.linearDisabledSteps.clear();\n }\n } else {\n this.stepper.steps.forEach(s => {\n if (s.index > this.activeStep.index) {\n this.linearDisabledSteps.add(s);\n }\n });\n }\n }\n\n public emitActivatingEvent(step: IgxStepComponent): boolean {\n const args: IStepChangingEventArgs = {\n owner: this.stepper,\n newIndex: step.index,\n oldIndex: this.activeStep.index,\n cancel: false\n };\n\n this.stepper.activeStepChanging.emit(args);\n return args.cancel;\n }\n\n /**\n * Updates the linearDisabled steps from the current active step to the next required invalid step.\n *\n * @param toIndex the index of the last step that should be enabled.\n */\n private updateLinearDisabledSteps(toIndex: number): void {\n this.stepper.steps.forEach(s => {\n if (s.index > this.activeStep.index) {\n if (s.index <= toIndex) {\n this.linearDisabledSteps.delete(s);\n } else {\n this.linearDisabledSteps.add(s);\n }\n }\n });\n }\n\n private getNextRequiredStep(): number {\n if (!this.activeStep) {\n return;\n }\n return this.stepper.steps.findIndex(s => s.index > this.activeStep.index && !s.optional && !s.disabled && !s.isValid);\n }\n}\n","import { Directive, ElementRef, HostBinding, Inject, Input } from '@angular/core';\nimport { IgxStep, IGX_STEP_COMPONENT } from './stepper.common';\nimport { IgxStepperService } from './stepper.service';\n\n/**\n * Allows a custom element to be added as an active step indicator.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <ng-template igxStepActiveIndicator>\n * <igx-icon>edit</igx-icon>\n * </ng-template>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepActiveIndicator]',\n standalone: true\n})\nexport class IgxStepActiveIndicatorDirective { }\n\n/**\n * Allows a custom element to be added as a complete step indicator.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <ng-template igxStepCompletedIndicator>\n * <igx-icon>check</igx-icon>\n * </ng-template>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepCompletedIndicator]',\n standalone: true\n})\nexport class IgxStepCompletedIndicatorDirective { }\n\n/**\n * Allows a custom element to be added as an invalid step indicator.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <ng-template igxStepInvalidIndicator>\n * <igx-icon>error</igx-icon>\n * </ng-template>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepInvalidIndicator]',\n standalone: true\n})\nexport class IgxStepInvalidIndicatorDirective { }\n\n/**\n * Allows a custom element to be added as a step indicator.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <igx-step>\n * <igx-icon igxStepIndicator>home</igx-icon>\n * </igx-step>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepIndicator]',\n standalone: true\n})\nexport class IgxStepIndicatorDirective { }\n\n/**\n * Allows a custom element to be added as a step title.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <igx-step>\n * <p igxStepTitle>Home</p>\n * </igx-step>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepTitle]',\n standalone: true\n})\nexport class IgxStepTitleDirective {\n @HostBinding('class.igx-stepper__step-title')\n public defaultClass = true;\n}\n\n/**\n * Allows a custom element to be added as a step subtitle.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <igx-step>\n * <p igxStepSubtitle>Home Subtitle</p>\n * </igx-step>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepSubtitle]',\n standalone: true\n})\nexport class IgxStepSubtitleDirective {\n @HostBinding('class.igx-stepper__step-subtitle')\n public defaultClass = true;\n}\n\n/**\n * Allows a custom element to be added as a step content.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <igx-step>\n * <div igxStepContent>...</div>\n * </igx-step>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepContent]',\n standalone: true\n})\nexport class IgxStepContentDirective {\n private get target(): IgxStep {\n return this.step;\n }\n\n @HostBinding('class.igx-stepper__step-content')\n public defaultClass = true;\n\n @HostBinding('attr.role')\n public role = 'tabpanel';\n\n @HostBinding('attr.aria-labelledby')\n public get stepId(): string {\n return this.target.id;\n }\n\n @HostBinding('attr.id')\n @Input()\n public id = this.target.id.replace('step', 'content');\n\n @HostBinding('attr.tabindex')\n @Input()\n public get tabIndex(): number {\n if (this._tabIndex !== null) {\n return this._tabIndex;\n }\n\n return this.stepperService.activeStep === this.target ? 0 : -1;\n }\n\n public set tabIndex(val: number) {\n this._tabIndex = val;\n }\n\n private _tabIndex = null;\n\n constructor(\n @Inject(IGX_STEP_COMPONENT) private step: IgxStep,\n private stepperService: IgxStepperService,\n public elementRef: ElementRef<HTMLElement>\n ) { }\n}\n","import {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { IgxStep, IgxStepper, IgxStepperOrientation, IgxStepType, IGX_STEPPER_COMPONENT, IGX_STEP_COMPONENT, HorizontalAnimationType } from '../stepper.common';\nimport { IgxStepContentDirective, IgxStepIndicatorDirective } from '../stepper.directive';\nimport { IgxStepperService } from '../stepper.service';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { IgxRippleDirective } from 'igniteui-angular/directives';\nimport { ToggleAnimationPlayer, ToggleAnimationSettings } from 'igniteui-angular/expansion-panel';\nimport { CarouselAnimationDirection, IgxSlideComponentBase } from 'igniteui-angular/carousel';\nimport { AnimationService, IgxAngularAnimationService, ɵIgxDirectionality, PlatformUtil } from 'igniteui-angular/core';\n\nlet NEXT_ID = 0;\n\n/**\n * The IgxStepComponent is used within the `igx-stepper` element and it holds the content of each step.\n * It also supports custom indicators, title and subtitle.\n *\n * @igxModule IgxStepperModule\n *\n * @igxKeywords step\n *\n * @example\n * ```html\n * <igx-stepper>\n * ...\n * <igx-step [active]=\"true\" [completed]=\"true\">\n * ...\n * </igx-step>\n * ...\n * </igx-stepper>\n * ```\n */\n@Component({\n selector: 'igx-step',\n templateUrl: 'step.component.html',\n providers: [\n { provide: IGX_STEP_COMPONENT, useExisting: IgxStepComponent }\n ],\n imports: [NgClass, IgxRippleDirective, NgTemplateOutlet]\n})\nexport class IgxStepComponent extends ToggleAnimationPlayer implements IgxStep, AfterViewInit, OnDestroy, IgxSlideComponentBase {\n\n /**\n * Get/Set the `id` of the step component.\n * Default value is `\"igx-step-0\"`;\n * ```html\n * <igx-step id=\"my-first-step\"></igx-step>\n * ```\n * ```typescript\n * const stepId = this.step.id;\n * ```\n */\n @HostBinding('attr.id')\n @Input()\n public id = `igx-step-${NEXT_ID++}`;\n\n /**\n * Get/Set whether the step is interactable.\n *\n * ```html\n * <igx-stepper>\n * ...\n * <igx-step [disabled]=\"true\"></igx-step>\n * ...\n * </igx-stepper>\n * ```\n *\n * ```typescript\n * this.stepper.steps[1].disabled = true;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n this._disabled = value;\n if (this.stepper.linear) {\n this.stepperService.calculateLinearDisabledSteps();\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Get/Set whether the step is completed.\n *\n * @remarks\n * When set to `true` the following separator is styled `solid`.\n *\n * ```html\n * <igx-stepper>\n * ...\n * <igx-step [completed]=\"true\"></igx-step>\n * ...\n * </igx-stepper>\n * ```\n *\n * ```typescript\n * this.stepper.steps[1].completed = true;\n * ```\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.igx-stepper__step--completed')\n public completed = false;\n\n /**\n * Get/Set whether the step is valid.\n *```html\n * <igx-step [isValid]=\"form.form.valid\">\n * ...\n * <div igxStepContent>\n * <form #form=\"ngForm\">\n * ...\n * </form>\n * </div>\n * </igx-step>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public get isValid(): boolean {\n return this._valid;\n }\n\n public set isValid(value: boolean) {\n this._valid = value;\n if (this.stepper.linear && this.index !== undefined) {\n this.stepperService.calculateLinearDisabledSteps();\n }\n }\n\n /**\n * Get/Set whether the step is optional.\n *\n * @remarks\n * Optional steps validity does not affect the default behavior when the stepper is in linear mode i.e.\n * if optional step is invalid the user could still move to the next step.\n *\n * ```html\n * <igx-step [optional]=\"true\"></igx-step>\n * ```\n * ```typescript\n * this.stepper.steps[1].optional = true;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public optional = false;\n\n /**\n * Get/Set the active state of the step\n *\n * ```html\n * <igx-step [active]=\"true\"></igx-step>\n * ```\n *\n * ```typescript\n * this.stepper.steps[1].active = true;\n * ```\n *\n * @param value: boolean\n */\n @HostBinding('attr.aria-selected')\n @Input({ transform: booleanAttribute })\n public set active(value: boolean) {\n if (value) {\n this.stepperService.expandThroughApi(this);\n } else {\n this.stepperService.collapse(this);\n }\n }\n\n public get active(): boolean {\n return this.stepperService.activeStep === this;\n }\n\n /** @hidden @internal */\n @HostBinding('attr.tabindex')\n @Input()\n public set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n public get tabIndex(): number {\n return this._tabIndex;\n }\n\n /** @hidden @internal **/\n @HostBinding('attr.role')\n public role = 'tab';\n\n /** @hidden @internal */\n @HostBinding('attr.aria-controls')\n public get contentId(): string {\n return this.content?.id;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-stepper__step')\n public cssClass = true;\n\n /** @hidden @internal */\n @HostBinding('class.igx-stepper__step--disabled')\n public get generalDisabled(): boolean {\n return this.disabled || this.linearDisabled;\n }\n\n /** @hidden @internal */\n @HostBinding('class')\n public get titlePositionTop(): string {\n if (this.stepper.stepType !== IgxStepType.Full) {\n return 'igx-stepper__step--simple';\n }\n\n return `igx-stepper__step--${this.titlePosition}`;\n }\n\n /**\n * Emitted when the step's `active` property changes. Can be used for two-way binding.\n *\n * ```html\n * <igx-step [(active)]=\"this.isActive\">\n * </igx-step>\n * ```\n *\n * ```typescript\n * const step: IgxStepComponent = this.stepper.step[0];\n * step.activeChange.subscribe((e: boolean) => console.log(\"Step active state change to \", e))\n * ```\n */\n @Output()\n public activeChange = new EventEmitter<boolean>();\n\n /** @hidden @internal */\n @ViewChild('contentTemplate', { static: true })\n public contentTemplate: TemplateRef<any>;\n\n /** @hidden @internal */\n @ViewChild('customIndicator', { static: true })\n public customIndicatorTemplate: TemplateRef<any>;\n\n /** @hidden @internal */\n @ViewChild('contentContainer')\n public contentContainer: ElementRef;\n\n /** @hidden @internal */\n @ContentChild(forwardRef(() => IgxStepIndicatorDirective))\n public indicator: IgxStepIndicatorDirective;\n\n /** @hidden @internal */\n @ContentChild(forwardRef(() => IgxStepContentDirective))\n public content: IgxStepContentDirective;\n\n /**\n * Get the step index inside of the stepper.\n *\n * ```typescript\n * const step = this.stepper.steps[1];\n * const stepIndex: number = step.index;\n * ```\n */\n public get index(): number {\n return this._index;\n }\n\n /** @hidden @internal */\n public get indicatorTemplate(): TemplateRef<any> {\n if (this.active && this.stepper.activeIndicatorTemplate) {\n return this.stepper.activeIndicatorTemplate;\n }\n\n if (!this.isValid && this.stepper.invalidIndicatorTemplate) {\n return this.stepper.invalidIndicatorTemplate;\n }\n\n if (this.completed && this.stepper.completedIndicatorTemplate) {\n return this.stepper.completedIndicatorTemplate;\n }\n\n if (this.indicator) {\n return this.customIndicatorTemplate;\n }\n\n return null;\n }\n\n /** @hidden @internal */\n public get direction(): CarouselAnimationDirection {\n return this.stepperService.previousActiveStep\n && this.stepperService.previousActiveStep.index > this.index\n ? CarouselAnimationDirection.PREV\n : CarouselAnimationDirection.NEXT;\n }\n\n /** @hidden @internal */\n public get isAccessible(): boolean {\n return !this.disabled && !this.linearDisabled;\n }\n\n /** @hidden @internal */\n public get isHorizontal(): boolean {\n return this.stepper.orientation === IgxStepperOrientation.Horizontal;\n }\n\n /** @hidden @internal */\n public get isTitleVisible(): boolean {\n return this.stepper.stepType !== IgxStepType.Indicator;\n }\n\n /** @hidden @internal */\n public get isIndicatorVisible(): boolean {\n return this.stepper.stepType !== IgxStepType.Title;\n }\n\n /** @hidden @internal */\n public get titlePosition(): string {\n return this.stepper.titlePosition ? this.stepper.titlePosition : this.stepper._defaultTitlePosition;\n }\n\n /** @hidden @internal */\n public get linearDisabled(): boolean {\n return this.stepperService.linearDisabledSteps.has(this);\n }\n\n /** @hidden @internal */\n public get collapsing(): boolean {\n return this.stepperService.collapsingSteps.has(this);\n }\n\n /** @hidden @internal */\n public override get animationSettings(): ToggleAnimationSettings {\n return this.stepper.verticalAnimationSettings;\n }\n\n /** @hidden @internal */\n public get contentClasses(): any {\n if (this.isHorizontal) {\n return { 'igx-stepper__body-content': true, 'igx-stepper__body-content--active': this.active };\n } else {\n return 'igx-stepper__step-content';\n }\n }\n\n /** @hidden @internal */\n public get stepHeaderClasses(): any {\n return {\n 'igx-stepper__step--optional': this.optional,\n 'igx-stepper__step-header--current': this.active,\n 'igx-stepper__step-header--invalid': !this.isValid\n && this.stepperService.visitedSteps.has(this) && !this.active && this.isAccessible\n };\n }\n\n /** @hidden @internal */\n public get nativeElement(): HTMLElement {\n return this.element.nativeElement;\n }\n /** @hidden @internal */\n public previous: boolean;\n /** @hidden @internal */\n public _index: number;\n private _tabIndex = -1;\n private _valid = true;\n private _focused = false;\n private _disabled = false;\n\n constructor(\n @Inject(IGX_STEPPER_COMPONENT) public stepper: IgxStepper,\n public cdr: ChangeDetectorRef,\n public renderer: Renderer2,\n protected platform: PlatformUtil,\n protected stepperService: IgxStepperService,\n @Inject(IgxAngularAnimationService) animationService: AnimationService,\n private element: ElementRef<HTMLElement>,\n private dir: ɵIgxDirectionality\n ) {\n super(animationService);\n }\n\n /** @hidden @internal */\n @HostListener('focus')\n public onFocus(): void {\n this._focused = true;\n this.stepperService.focusedStep = this;\n if (this.stepperService.focusedStep !== this.stepperService.activeStep) {\n this.stepperService.activeStep.tabIndex = -1;\n }\n }\n\n /** @hidden @internal */\n @HostListener('blur')\n public onBlur(): void {\n this._focused = false;\n this.stepperService.activeStep.tabIndex = 0;\n }\n\n /** @hidden @internal */\n @HostListener('keydown', ['$event'])\n public handleKeydown(event: KeyboardEvent): void {\n if (!this._focused) {\n return;\n }\n const key = event.key;\n if (this.stepper.orientation === IgxStepperOrientation.Horizontal) {\n if (key === this.platform.KEYMAP.ARROW_UP || key === this.platform.KEYMAP.ARROW_DOWN) {\n return;\n }\n }\n if (!(this.platform.isNavigationKey(key) || this.platform.isActivationKey(event))) {\n return;\n }\n event.preventDefault();\n this.handleNavigation(key);\n }\n\n /** @hidden @internal */\n public ngAfterViewInit(): void {\n this.openAnimationDone.pipe(takeUntil(this.destroy$)).subscribe(\n () => {\n if (this.stepperService.activeStep === this) {\n this.stepper.activeStepChanged.emit({ owner: this.stepper, index: this.index });\n }\n }\n );\n this.closeAnimationDone.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.stepperService.collapse(this);\n this.cdr.markForCheck();\n });\n }\n\n /** @hidden @internal */\n public onPointerDown(event: MouseEvent): void {\n event.stopPropagation();\n if (this.isHorizontal) {\n this.changeHorizontalActiveStep();\n } else {\n this.changeVerticalActiveStep();\n }\n }\n\n /** @hidden @internal */\n public handleNavigation(key: string): void {\n switch (key) {\n case this.platform.KEYMAP.HOME:\n this.stepper.steps.filter(s => s.isAccessible)[0]?.nativeElement.focus();\n break;\n case this.platform.KEYMAP.END:\n this.stepper.steps.filter(s => s.isAccessible).pop()?.nativeElement.focus();\n break;\n case this.platform.KEYMAP.ARROW_UP:\n this.previousStep?.nativeElement.focus();\n break;\n case this.platform.KEYMAP.ARROW_LEFT:\n if (this.dir.rtl && this.stepper.orientation === IgxStepperOrientation.Horizontal) {\n this.nextStep?.nativeElement.focus();\n } else {\n this.previousStep?.nativeElement.focus();\n }\n break;\n case this.platform.KEYMAP.ARROW_DOWN:\n this.nextStep?.nativeElement.focus();\n break;\n case this.platform.KEYMAP.ARROW_RIGHT:\n if (this.dir.rtl && this.stepper.orientation === IgxStepperOrientation.Horizontal) {\n this.previousStep?.nativeElement.focus();\n } else {\n this.nextStep?.nativeElement.focus();\n }\n break;\n case this.platform.KEYMAP.SPACE:\n case this.platform.KEYMAP.ENTER:\n if (this.isHorizontal) {\n this.changeHorizontalActiveStep();\n } else {\n this.changeVerticalActiveStep();\n }\n break;\n default:\n return;\n }\n }\n\n /** @hidden @internal */\n public changeHorizontalActiveStep(): void {\n if (this.stepper.animationType === HorizontalAnimationType.none && this.stepperService.activeStep !== this) {\n const argsCanceled = this.stepperService.emitActivatingEvent(this);\n if (argsCanceled) {\n return;\n }\n\n this.active = true;\n this.stepper.activeStepChanged.emit({ owner: this.stepper, index: this.index });\n return;\n }\n this.stepperService.expand(this);\n if (this.stepper.animationType === HorizontalAnimationType.fade) {\n if (this.stepperService.collapsingSteps.has(this.stepperService.previousActiveStep)) {\n this.stepperService.previousActiveStep.active = false;\n }\n }\n }\n\n private get nextStep(): IgxStepComponent | null {\n const focusedStep = this.stepperService.focusedStep;\n if (focusedStep) {\n if (focusedStep.index === this.stepper.steps.length - 1) {\n return this.stepper.steps.find(s => s.isAccessible);\n }\n\n const nextAccessible = this.stepper.steps.find((s, i) => i > focusedStep.index && s.isAccessible);\n return nextAccessible ? nextAccessible : this.stepper.steps.find(s => s.isAccessible);\n }\n\n return null;\n }\n\n private get previousStep(): IgxStepComponent | null {\n const focusedStep = this.stepperService.focusedStep;\n if (focusedStep) {\n if (focusedStep.index === 0) {\n return this.stepper.steps.filter(s => s.isAccessible).pop();\n }\n\n let prevStep;\n for (let i = focusedStep.index - 1; i >= 0; i--) {\n const step = this.stepper.steps[i];\n if (step.isAccessible) {\n prevStep = step;\n break;\n }\n }\n\n return prevStep ? prevStep : this.stepper.steps.filter(s => s.isAccessible).pop();\n\n }\n\n return null;\n }\n\n private changeVerticalActiveStep(): void {\n this.stepperService.expand(this);\n\n if (!this.animationSettings.closeAnimation) {\n this.stepperService.previousActiveStep?.openAnimationPlayer?.finish();\n }\n\n if (!this.animationSettings.openAnimation) {\n this.stepperService.activeStep.closeAnimationPlayer?.finish();\n }\n }\n}\n","<ng-template #defaultTitle>\n @if (isTitleVisible) {\n <ng-content select=\"[igxStepTitle]\"></ng-content>\n }\n @if (isTitleVisible) {\n <ng-content select=\"[igxStepSubtitle]\"></ng-content>\n }\n</ng-template>\n\n<ng-template #contentTemplate>\n <div [ngClass]=\"contentClasses\" #contentContainer>\n @if (active || collapsing) {\n <ng-content select=\"[igxStepContent]\"></ng-content>\n }\n </div>\n</ng-template>\n\n<ng-template #defaultIndicator>\n <span>{{ index + 1 }}</span>\n</ng-template>\n\n<ng-template #customIndicator>\n <ng-content select=\"[igxStepIndicator]\"></ng-content>\n</ng-template>\n\n<div class=\"igx-stepper__step-header\" igxRipple [ngClass]=\"stepHeaderClasses\" (keydown)=\"handleKeydown($event)\"\n (click)=\"onPointerDown($event)\">\n\n @if (isIndicatorVisible) {\n <div class=\"igx-stepper__step-indicator\">\n <ng-container *ngTemplateOutlet=\"indicatorTemplate ? indicatorTemplate : defaultIndicator\"></ng-container>\n </div>\n }\n\n <div class=\"igx-stepper__step-title-wrapper\">\n <ng-container *ngTemplateOutlet=\"defaultTitle\"></ng-container>\n </div>\n</div>\n\n@if (!isHorizontal) {\n <div class=\"igx-stepper__step-content-wrapper\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </div>\n}\n","import { AnimationReferenceMetadata, useAnimation } from '@angular/animations';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit, ChangeDetectorRef, Component, ContentChild, ContentChildren,\n ElementRef, EventEmitter, HostBinding, Inject, Input, OnChanges, OnDestroy,\n OnInit, Output, QueryList, SimpleChanges, TemplateRef, booleanAttribute\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { IgxCarouselComponentBase } from 'igniteui-angular/carousel';\nimport { IgxAngularAnimationService, AnimationService } from 'igniteui-angular/core';\nimport { IgxStepComponent } from './step/step.component';\nimport {\n IgxStepper, IgxStepperOrientation, IgxStepperTitlePosition, IgxStepType,\n IGX_STEPPER_COMPONENT, IStepChangedEventArgs, IStepChangingEventArgs, VerticalAnimationType,\n HorizontalAnimationType\n} from './stepper.common';\nimport {\n IgxStepActiveIndicatorDirective,\n IgxStepCompletedIndicatorDirective,\n IgxStepInvalidIndicatorDirective\n} from './stepper.directive';\nimport { IgxStepperService } from './stepper.service';\nimport { fadeIn, growVerIn, growVerOut } from 'igniteui-angular/animations';\nimport { ToggleAnimationSettings } from 'igniteui-angular/expansion-panel';\n\n\n// TODO: common interface between IgxCarouselComponentBase and ToggleAnimationPlayer?\n\n/**\n * IgxStepper provides a wizard-like workflow by dividing content into logical steps.\n *\n * @igxModule IgxStepperModule\n *\n * @igxKeywords stepper\n *\n * @igxGroup Layouts\n *\n * @remarks\n * The Ignite UI for Angular Stepper component allows the user to navigate between multiple steps.\n * It supports horizontal and vertical orientation as well as keyboard navigation and provides API methods to control the active step.\n * The component offers keyboard navigation and API to control the active step.\n *\n * @example\n * ```html\n * <igx-stepper>\n * <igx-step [active]=\"true\">\n * <igx-icon igxStepIndicator>home</igx-icon>\n * <p igxStepTitle>Home</p>\n * <div igxStepContent>\n * ...\n * </div>\n * </igx-step>\n * <igx-step [optional]=\"true\">\n * <div igxStepContent>\n * ...\n * </div>\n * </igx-step>\n * <igx-step>\n * <div igxStepContent>\n * ...\n * </div>\n * </igx-step>\n * </igx-stepper>\n * ```\n */\n@Component({\n selector: 'igx-stepper',\n templateUrl: 'stepper.component.html',\n providers: [\n IgxStepperService,\n { provide: IGX_STEPPER_COMPONENT, useExisting: IgxStepperComponent },\n ],\n imports: [NgTemplateOutlet]\n})\nexport class IgxStepperComponent extends IgxCarouselComponentBase implements IgxStepper, OnChanges, OnInit, AfterContentInit, OnDestroy {\n\n /**\n * Get/Set the animation type of the stepper when the orientation direction is vertical.\n *\n * @remarks\n * Default value is `grow`. Other possible values are `fade` and `none`.\n *\n * ```html\n * <igx-stepper verticalAnimationType=\"none\">\n * <igx-stepper>\n * ```\n */\n @Input()\n public get verticalAnimationType(): VerticalAnimationType {\n return this._verticalAnimationType;\n }\n\n public set verticalAnimationType(value: VerticalAnimationType) {\n // TODO: activeChange event is not emitted for the collapsing steps (loop through collapsing steps and emit)\n this.stepperService.collapsingSteps.clear();\n this._verticalAnimationType = value;\n\n switch (value) {\n case 'grow':\n this.verticalAnimationSettings = this.updateVerticalAnimationSettings(growVerIn, growVerOut);\n break;\n case 'fade':\n this.verticalAnimationSettings = this.updateVerticalAnimationSettings(fadeIn, null);\n break;\n case 'none':\n this.verticalAnimationSettings = this.updateVerticalAnimationSettings(null, null);\n break;\n }\n }\n\n /**\n * Get/Set the animation type of the stepper when the orientation direction is horizontal.\n *\n * @remarks\n * Default value is `grow`. Other possible values are `fade` and `none`.\n *\n * ```html\n * <igx-stepper animationType=\"none\">\n * <igx-stepper>\n * ```\n */\n @Input()\n public get horizontalAnimationType(): HorizontalAnimationType {\n return this.animationType;\n }\n\n public set horizontalAnimationType(value: HorizontalAnimationType) {\n // TODO: activeChange event is not emitted for the collapsing steps (loop through collapsing steps and emit)\n this.stepperService.collapsingSteps.clear();\n this.animationType = value;\n }\n\n /**\n * Get/Set the animation duration.\n * ```html\n * <igx-stepper [animationDuration]=\"500\">\n * <igx-stepper>\n * ```\n */\n @Input()\n public get animationDuration(): number {\n return this.defaultAnimationDuration;\n }\n\n public set animationDuration(value: number) {\n if (value && value > 0) {\n this.defaultAnimationDuration = value;\n return;\n }\n this.defaultAnimationDuration = this._defaultAnimationDuration;\n }\n\n /**\n * Get/Set whether the stepper is linear.\n *\n * @remarks\n * If the stepper is in linear mode and if the active step is valid only then the user is able to move forward.\n *\n * ```html\n * <igx-stepper [linear]=\"true\"></igx-stepper>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public get linear(): boolean {\n return this._linear;\n }\n\n public set linear(value: boolean) {\n this._linear = value;\n if (this._linear && this.steps.length > 0) {\n // when the stepper is in linear mode we should calculate which steps should be disabled\n // and which are visited i.e. their validity should be correctly displayed.\n this.stepperService.calculateVisitedSteps();\n this.stepperService.calculateLinearDisabledSteps();\n } else {\n this.stepperService.linearDisabledSteps.clear();\n }\n }\n\n /**\n * Get/Set the stepper orientation.\n *\n * ```typescript\n * this.stepper.orientation = IgxStepperOrientation.Vertical;\n * ```\n */\n @HostBinding('attr.aria-orientation')\n @Input()\n public get orientation(): IgxStepperOrientation {\n return this._orientation;\n }\n\n public set orientation(value: IgxStepperOrientation) {\n if (this._orientation === value) {\n return;\n }\n\n // TODO: activeChange event is not emitted for the collapsing steps\n this.stepperService.collapsingSteps.clear();\n this._orientation = value;\n this._defaultTitlePosition = this._orientation === IgxStepperOrientation.Horizontal ?\n IgxStepperTitlePosition.Bottom : IgxStepperTitlePosition.End;\n }\n\n /**\n * Get/Set the type of the steps.\n *\n * ```typescript\n * this.stepper.stepType = IgxStepType.Indicator;\n * ```\n */\n @Input()\n public stepType: IgxStepType = IgxStepType.Full;\n\n /**\n * Get/Set whether the content is displayed above the steps.\n *\n * @remarks\n * Default value is `false` and the content is below the steps.\n *\n * ```typescript\n * this.stepper.contentTop = true;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public contentTop = false;\n\n /**\n * Get/Set the position of the steps title.\n *\n * @remarks\n * The default value when the stepper is horizontally orientated is `bottom`.\n * In vertical layout the default title position is `end`.\n *\n * ```typescript\n * this.stepper.titlePosition = IgxStepperTitlePosition.Top;\n * ```\n */\n @Input()\n public titlePosition: IgxStepperTitlePosition = null;\n\n /** @hidden @internal **/\n @HostBinding('class.igx-stepper')\n public cssClass = 'igx-stepper';\n\n /** @hidden @internal **/\n @HostBinding('attr.role')\n public role = 'tablist';\n\n /** @hidden @internal **/\n @HostBinding('class.igx-stepper--horizontal')\n public get directionClass() {\n return this.orientation === IgxStepperOrientation.Horizontal;\n }\n\n /**\n * Emitted when the stepper's active step is changing.\n *\n *```html\n * <igx-stepper (activeStepChanging)=\"handleActiveStepChanging($event)\">\n * </igx-stepper>\n * ```\n *\n *```typescript\n * public handleActiveStepChanging(event: IStepChangingEventArgs) {\n * if (event.newIndex < event.oldIndex) {\n * event.cancel = true;\n * }\n * }\n *```\n */\n @Output()\n public activeStepChanging = new EventEmitter<IStepChangingEventArgs>();\n\n /**\n * Emitted when the active step is changed.\n *\n * @example\n * ```\n * <igx-stepper (activeStepChanged)=\"handleActiveStepChanged($event)\"></igx-stepper>\n * ```\n */\n @Output()\n public activeStepChanged = new EventEmitter<IStepChangedEventArgs>();\n\n /** @hidden @internal */\n @ContentChild(IgxStepInvalidIndicatorDirective, { read: TemplateRef })\n public invalidIndicatorTemplate: TemplateRef<IgxStepInvalidIndicatorDirective>;\n\n /** @hidden @internal */\n @ContentChild(IgxStepCompletedIndicatorDirective, { read: TemplateRef })\n public completedIndicatorTemplate: TemplateRef<IgxStepCompletedIndicatorDirective>;\n\n /** @hidden @internal */\n @ContentChild(IgxStepActiveIndicatorDirective, { read: TemplateRef })\n public activeIndicatorTemplate: TemplateRef<IgxStepActiveIndicatorDirective>;\n\n /** @hidden @internal */\n @ContentChildren(IgxStepComponent, { descendants: false })\n private _steps: QueryList<IgxStepComponent>;\n\n /**\n * Get all steps.\n *\n * ```typescript\n * const steps: IgxStepComponent[] = this.stepper.steps;\n * ```\n */\n public get steps(): IgxStepComponent[] {\n return this._steps?.toArray() || [];\n }\n\n /** @hidden @internal */\n public get nativeElement(): HTMLElement {\n return this.element.nativeElement;\n }\n\n /** @hidden @internal */\n public verticalAnimationSettings: ToggleAnimationSettings = {\n openAnimation: growVerIn,\n closeAnimation: growVerOut,\n };\n /** @hidden @internal */\n public _defaultTitlePosition: IgxStepperTitlePosition = IgxStepperTitlePosition.Bottom;\n private destroy$ = new Subject<void>();\n private _orientation: IgxStepperOrientation = IgxStepperOrientation.Horizontal;\n private _verticalAnimationType: VerticalAnimationType = VerticalAnimationType.Grow;\n private _linear = false;\n private readonly _defaultAnimationDuration = 350;\n\n constructor(\n cdr: ChangeDetectorRef,\n @Inject(IgxAngularAnimationService) animationService: AnimationService,\n private stepperService: IgxStepperService,\n private element: ElementRef<HTMLElement>) {\n super(animationService, cdr);\n this.stepperService.stepper = this;\n }\n\n /** @hidden @internal */\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['animationDuration']) {\n this.verticalAnimationType = this._verticalAnimationType;\n }\n }\n\n /** @hidden @internal */\n public ngOnInit(): void {\n this.enterAnimationDone.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.activeStepChanged.emit({ owner: this, index: this.stepperService.activeStep.index });\n });\n this.leaveAnimationDone.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (this.stepperService.collapsingSteps.size === 1) {\n this.stepperService.collapse(this.stepperService.previousActiveStep);\n } else {\n Array.from(this.stepperService.collapsingSteps).slice(0, this.stepperService.collapsingSteps.size - 1)\n .forEach(step => this.stepperService.collapse(step));\n }\n });\n\n\n }\n\n /** @hidden @internal */\n public ngAfterContentInit(): void {\n let activeStep;\n this.steps.forEach((step, index) => {\n this.updateStepAria(step, index);\n if (!activeStep && step.active) {\n activeStep = step;\n }\n });\n if (!activeStep) {\n this.activateFirstStep(true);\n }\n\n if (this.linear) {\n this.stepperService.calculateLinearDisabledSteps();\n }\n\n this.handleStepChanges();\n }\n\n /** @hidden @internal */\n public override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /**\n * Activates the step at a given index.\n *\n *```typescript\n * this.stepper.navigateTo(1);\n *```\n */\n public navigateTo(index: number): void {\n const step = this.steps[index];\n if (!step || this.stepperService.activeStep === step) {\n return;\n }\n this.activateStep(step);\n }\n\n /**\n * Activates the next enabled step.\n *\n *```typescript\n * this.stepper.next();\n *```\n */\n public next(): void {\n this.moveToNextStep();\n }\n\n /**\n * Activates the previous enabled step.\n *\n *```typescript\n * this.stepper.prev();\n *```\n */\n public prev(): void {\n this.moveToNextStep(false);\n }\n\n /**\n * Resets the stepper to its initial state i.e. activates the first step.\n *\n * @remarks\n * The steps' content will not be automatically reset.\n *```typescript\n * this.stepper.reset();\n *```\n */\n public reset(): void {\n this.stepperService.visitedSteps.clear();\n const activeStep = this.steps.find(s => !s.disabled);\n if (activeStep) {\n this.activateStep(activeStep);\n }\n }\n\n /** @hidden @internal */\n public playHorizontalAnimations(): void {\n this.previousItem = this.stepperService.previousActiveStep;\n this.currentItem = this.stepperService.activeStep;\n this.triggerAnimations();\n }\n\n protected getPreviousElement(): HTMLElement {\n return this.stepperService.previousActiveStep?.contentContainer.nativeElement;\n }\n\n protected getCurrentElement(): HTMLElement {\n return this.stepperService.activeStep.contentContainer.nativeElement;\n }\n\n private updateVerticalAnimationSettings(\n openAnimation: AnimationReferenceMetadata,\n closeAnimation: AnimationReferenceMetadata): ToggleAnimationSettings {\n const customCloseAnimation = useAnimation(closeAnimation, {\n params: {\n duration: this.animationDuration + 'ms'\n }\n });\n const customOpenAnimation = useAnimation(openAnimation, {\n params: {\n duration: this.animationDuration + 'ms'\n }\n });\n\n return {\n openAnimation: openAnimation ? customOpenAnimation : null,\n closeAnimation: closeAnimation ? customCloseAnimation : null\n };\n }\n\n private updateStepAria(step: IgxStepComponent, index: number): void {\n step._index = index;\n step.renderer.setAttribute(step.nativeElement, 'aria-setsize', (this.steps.length).toString());\n step.renderer.setAttribute(step.nativeElement, 'aria-posinset', (index + 1).toString());\n }\n\n private handleStepChanges(): void {\n this._steps.changes.pipe(takeUntil(this.destroy$)).subscribe(steps => {\n Promise.resolve().then(() => {\n steps.forEach((step, index) => {\n this.updateStepAria(step, index);\n });\n\n // when the active step is removed\n const hasActiveStep = this.steps.find(s => s === this.stepperService.activeStep);\n if (!hasActiveStep) {\n this.activateFirstStep();\n }\n // TO DO: mark step added before the active as visited?\n if (this.linear) {\n this.stepperService.calculateLinearDisabledSteps();\n }\n });\n });\n }\n\n private activateFirstStep(activateInitially = false) {\n const firstEnabledStep = this.steps.find(s => !s.disabled);\n if (firstEnabledStep) {\n firstEnabledStep.active = true;\n if (activateInitially) {\n firstEnabledStep.activeChange.emit(true);\n this.activeStepChanged.emit({ owner: this, index: firstEnabledStep.index });\n }\n }\n }\n\n private activateStep(step: IgxStepComponent) {\n if (this.orientation === IgxStepperOrientation.Horizontal) {\n step.changeHorizontalActiveStep();\n } else {\n this.stepperService.expand(step);\n }\n }\n\n private moveToNextStep(next = true) {\n let steps: IgxStepComponent[] = this.steps;\n let activeStepIndex = this.stepperService.activeStep.index;\n if (!next) {\n steps = this.steps.reverse();\n activeStepIndex = steps.findIndex(s => s === this.stepperService.activeStep);\n }\n\n const nextStep = steps.find((s, i) => i > activeStepIndex && s.isAccessible);\n if (nextStep) {\n this.activateStep(nextStep);\n }\n }\n}\n","@if (!contentTop || orientation !== 'horizontal') {\n <div class=\"igx-stepper__header\">\n <ng-template *ngTemplateOutlet=\"stepTemplate\"></ng-template>\n </div>\n}\n\n@if (orientation === 'horizontal') {\n <div class=\"igx-stepper__body\">\n @for (step of steps; track step) {\n <ng-container *ngTemplateOutlet=\"step.contentTemplate\"></ng-container>\n }\n </div>\n}\n\n@if (contentTop && orientation === 'horizontal') {\n <div class=\"igx-stepper__header\">\n <ng-template *ngTemplateOutlet=\"stepTemplate\"></ng-template>\n </div>\n}\n\n<ng-template #stepTemplate>\n <ng-content select=\"igx-step\"></ng-content>\n</ng-template>\n","import { IgxStepComponent } from './step/step.component';\nimport { IgxStepperComponent } from './stepper.component';\nimport { IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepContentDirective, IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective, IgxStepSubtitleDirective, IgxStepTitleDirective } from './stepper.directive';\n\nexport * from './stepper.component';\nexport * from './step/step.component';\nexport {\n HorizontalAnimationType,\n IStepChangingEventArgs,\n IStepChangedEventArgs,\n IgxStepperOrientation,\n IgxStepType,\n IgxStepperTitlePosition,\n VerticalAnimationType\n} from './stepper.common';\nexport * from './stepper.directive';\n\n/* NOTE: Stepper directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_STEPPER_DIRECTIVES = [\n IgxStepComponent,\n IgxStepperComponent,\n IgxStepTitleDirective,\n IgxStepSubtitleDirective,\n IgxStepIndicatorDirective,\n IgxStepContentDirective,\n IgxStepActiveIndicatorDirective,\n IgxStepCompletedIndicatorDirective,\n IgxStepInvalidIndicatorDirective\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxStepperService","i2.IgxStepperService"],"mappings":"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"}
1
+ {"version":3,"file":"igniteui-angular-stepper.mjs","sources":["../../../projects/igniteui-angular/stepper/src/stepper/stepper.common.ts","../../../projects/igniteui-angular/stepper/src/stepper/stepper.service.ts","../../../projects/igniteui-angular/stepper/src/stepper/stepper.directive.ts","../../../projects/igniteui-angular/stepper/src/stepper/step/step.component.ts","../../../projects/igniteui-angular/stepper/src/stepper/step/step.component.html","../../../projects/igniteui-angular/stepper/src/stepper/stepper.component.ts","../../../projects/igniteui-angular/stepper/src/stepper/stepper.component.html","../../../projects/igniteui-angular/stepper/src/stepper/public_api.ts","../../../projects/igniteui-angular/stepper/src/stepper/stepper.module.ts","../../../projects/igniteui-angular/stepper/src/igniteui-angular-stepper.ts"],"sourcesContent":["import { ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, TemplateRef } from '@angular/core';\nimport { IBaseCancelableBrowserEventArgs, IBaseEventArgs } from 'igniteui-angular/core';\nimport { IgxStepperComponent } from './stepper.component';\nimport { IgxStepComponent } from './step/step.component';\nimport {\n IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepContentDirective,\n IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective\n} from './stepper.directive';\nimport { ToggleAnimationPlayer, ToggleAnimationSettings } from 'igniteui-angular/expansion-panel';\nimport { CarouselAnimationType, IgxCarouselComponentBase, CarouselAnimationDirection } from 'igniteui-angular/carousel';\n\n// Component interfaces\nexport interface IgxStepper extends IgxCarouselComponentBase {\n steps: IgxStepComponent[];\n /** @hidden @internal */\n nativeElement: HTMLElement;\n /** @hidden @internal */\n invalidIndicatorTemplate: TemplateRef<IgxStepInvalidIndicatorDirective>;\n /** @hidden @internal */\n completedIndicatorTemplate: TemplateRef<IgxStepCompletedIndicatorDirective>;\n /** @hidden @internal */\n activeIndicatorTemplate: TemplateRef<IgxStepActiveIndicatorDirective>;\n verticalAnimationType: VerticalAnimationType;\n horizontalAnimationType: HorizontalAnimationType;\n animationDuration: number;\n linear: boolean;\n orientation: IgxStepperOrientation;\n stepType: IgxStepType;\n contentTop: boolean;\n titlePosition: IgxStepperTitlePosition;\n /** @hidden @internal */\n verticalAnimationSettings: ToggleAnimationSettings;\n /** @hidden @internal */\n _defaultTitlePosition: IgxStepperTitlePosition;\n activeStepChanging: EventEmitter<IStepChangingEventArgs>;\n activeStepChanged: EventEmitter<IStepChangedEventArgs>;\n navigateTo(index: number): void;\n next(): void;\n prev(): void;\n reset(): void;\n /** @hidden @internal */\n playHorizontalAnimations(): void;\n}\n\n// Item interfaces\nexport interface IgxStep extends ToggleAnimationPlayer {\n id: string;\n /** @hidden @internal */\n contentTemplate: TemplateRef<any>;\n /** @hidden @internal */\n customIndicatorTemplate: TemplateRef<any>;\n /** @hidden @internal */\n contentContainer: ElementRef;\n /** @hidden @internal */\n indicator: IgxStepIndicatorDirective;\n /** @hidden @internal */\n content: IgxStepContentDirective;\n /** @hidden @internal */\n indicatorTemplate: TemplateRef<any>;\n index: number;\n disabled: boolean;\n completed: boolean;\n isValid: boolean;\n optional: boolean;\n active: boolean;\n tabIndex: number;\n /** @hidden @internal */\n contentId: string;\n /** @hidden @internal */\n generalDisabled: boolean;\n /** @hidden @internal */\n titlePositionTop: string;\n /** @hidden @internal */\n direction: CarouselAnimationDirection;\n /** @hidden @internal */\n isAccessible: boolean;\n /** @hidden @internal */\n isHorizontal: boolean;\n /** @hidden @internal */\n isTitleVisible: boolean;\n /** @hidden @internal */\n isIndicatorVisible: boolean;\n /** @hidden @internal */\n titlePosition: string;\n /** @hidden @internal */\n linearDisabled: boolean;\n /** @hidden @internal */\n collapsing: boolean;\n /** @hidden @internal */\n animationSettings: ToggleAnimationSettings;\n /** @hidden @internal */\n contentClasses: any;\n /** @hidden @internal */\n stepHeaderClasses: any;\n /** @hidden @internal */\n nativeElement: HTMLElement;\n /** @hidden @internal */\n previous: boolean;\n cdr: ChangeDetectorRef;\n activeChange: EventEmitter<boolean>;\n}\n\n// Events\nexport interface IStepChangingEventArgs extends IBaseEventArgs, IBaseCancelableBrowserEventArgs {\n newIndex: number;\n oldIndex: number;\n owner: IgxStepper;\n}\n\nexport interface IStepChangedEventArgs extends IBaseEventArgs {\n // Provides the index of the current active step within the stepper steps\n index: number;\n owner: IgxStepper;\n}\n\n// Enums\nexport const IgxStepperOrientation = {\n Horizontal: 'horizontal',\n Vertical: 'vertical'\n} as const;\nexport type IgxStepperOrientation = (typeof IgxStepperOrientation)[keyof typeof IgxStepperOrientation];\n\nexport const IgxStepType = {\n Indicator: 'indicator',\n Title: 'title',\n Full: 'full'\n} as const;\nexport type IgxStepType = (typeof IgxStepType)[keyof typeof IgxStepType];\n\nexport const IgxStepperTitlePosition = {\n Bottom: 'bottom',\n Top: 'top',\n End: 'end',\n Start: 'start'\n} as const;\nexport type IgxStepperTitlePosition = (typeof IgxStepperTitlePosition)[keyof typeof IgxStepperTitlePosition];\n\nexport const VerticalAnimationType = {\n Grow: 'grow',\n Fade: 'fade',\n None: 'none'\n} as const;\nexport type VerticalAnimationType = (typeof VerticalAnimationType)[keyof typeof VerticalAnimationType];\n\nexport const HorizontalAnimationType = {\n ...CarouselAnimationType\n} as const;\nexport type HorizontalAnimationType = (typeof HorizontalAnimationType)[keyof typeof HorizontalAnimationType];\n\n// Token\nexport const IGX_STEPPER_COMPONENT = /*@__PURE__*/new InjectionToken<IgxStepperComponent>('IgxStepperToken');\nexport const IGX_STEP_COMPONENT = /*@__PURE__*/new InjectionToken<IgxStepComponent>('IgxStepToken');\n","import { Injectable } from '@angular/core';\nimport { IgxStepper, IgxStepperOrientation, IStepChangingEventArgs } from './stepper.common';\nimport { IgxStepComponent } from './step/step.component';\n\n/** @hidden @internal */\n@Injectable()\nexport class IgxStepperService {\n public activeStep: IgxStepComponent;\n public previousActiveStep: IgxStepComponent;\n public focusedStep: IgxStepComponent;\n\n public collapsingSteps: Set<IgxStepComponent> = new Set<IgxStepComponent>();\n public linearDisabledSteps: Set<IgxStepComponent> = new Set<IgxStepComponent>();\n public visitedSteps: Set<IgxStepComponent> = new Set<IgxStepComponent>();\n public stepper: IgxStepper;\n\n /**\n * Activates the step, fires the steps change event and plays animations.\n */\n public expand(step: IgxStepComponent): void {\n if (this.activeStep === step) {\n return;\n }\n\n const cancel = this.emitActivatingEvent(step);\n if (cancel) {\n return;\n }\n\n this.collapsingSteps.delete(step);\n\n this.previousActiveStep = this.activeStep;\n this.activeStep = step;\n this.activeStep.activeChange.emit(true);\n\n this.collapsingSteps.add(this.previousActiveStep);\n this.visitedSteps.add(this.activeStep);\n\n if (this.stepper.orientation === IgxStepperOrientation.Vertical) {\n this.previousActiveStep.playCloseAnimation(\n this.previousActiveStep.contentContainer\n );\n this.activeStep.cdr.detectChanges();\n\n this.activeStep.playOpenAnimation(\n this.activeStep.contentContainer\n );\n } else {\n this.activeStep.cdr.detectChanges();\n this.stepper.playHorizontalAnimations();\n }\n }\n\n /**\n * Activates the step and fires the steps change event without playing animations.\n */\n public expandThroughApi(step: IgxStepComponent): void {\n if (this.activeStep === step) {\n return;\n }\n\n this.collapsingSteps.clear();\n\n this.previousActiveStep = this.activeStep;\n this.activeStep = step;\n\n if (this.previousActiveStep) {\n this.previousActiveStep.tabIndex = -1;\n }\n this.activeStep.tabIndex = 0;\n this.visitedSteps.add(this.activeStep);\n\n this.activeStep.cdr.markForCheck();\n this.previousActiveStep?.cdr.markForCheck();\n\n this.activeStep.activeChange.emit(true);\n this.previousActiveStep?.activeChange.emit(false);\n }\n\n /**\n * Collapses the currently active step and fires the change event.\n */\n public collapse(step: IgxStepComponent): void {\n if (this.activeStep === step) {\n return;\n }\n step.activeChange.emit(false);\n this.collapsingSteps.delete(step);\n }\n\n /**\n * Determines the steps that should be marked as visited based on the active step.\n */\n public calculateVisitedSteps(): void {\n this.stepper.steps.forEach(step => {\n if (step.index <= this.activeStep.index) {\n this.visitedSteps.add(step);\n } else {\n this.visitedSteps.delete(step);\n }\n });\n }\n\n /**\n * Determines the steps that should be disabled in linear mode based on the validity of the active step.\n */\n public calculateLinearDisabledSteps(): void {\n if (!this.activeStep) {\n return;\n }\n\n if (this.activeStep.isValid) {\n const firstRequiredIndex = this.getNextRequiredStep();\n if (firstRequiredIndex !== -1) {\n this.updateLinearDisabledSteps(firstRequiredIndex);\n } else {\n this.linearDisabledSteps.clear();\n }\n } else {\n this.stepper.steps.forEach(s => {\n if (s.index > this.activeStep.index) {\n this.linearDisabledSteps.add(s);\n }\n });\n }\n }\n\n public emitActivatingEvent(step: IgxStepComponent): boolean {\n const args: IStepChangingEventArgs = {\n owner: this.stepper,\n newIndex: step.index,\n oldIndex: this.activeStep.index,\n cancel: false\n };\n\n this.stepper.activeStepChanging.emit(args);\n return args.cancel;\n }\n\n /**\n * Updates the linearDisabled steps from the current active step to the next required invalid step.\n *\n * @param toIndex the index of the last step that should be enabled.\n */\n private updateLinearDisabledSteps(toIndex: number): void {\n this.stepper.steps.forEach(s => {\n if (s.index > this.activeStep.index) {\n if (s.index <= toIndex) {\n this.linearDisabledSteps.delete(s);\n } else {\n this.linearDisabledSteps.add(s);\n }\n }\n });\n }\n\n private getNextRequiredStep(): number {\n if (!this.activeStep) {\n return;\n }\n return this.stepper.steps.findIndex(s => s.index > this.activeStep.index && !s.optional && !s.disabled && !s.isValid);\n }\n}\n","import { Directive, ElementRef, HostBinding, Inject, Input } from '@angular/core';\nimport { IgxStep, IGX_STEP_COMPONENT } from './stepper.common';\nimport { IgxStepperService } from './stepper.service';\n\n/**\n * Allows a custom element to be added as an active step indicator.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <ng-template igxStepActiveIndicator>\n * <igx-icon>edit</igx-icon>\n * </ng-template>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepActiveIndicator]',\n standalone: true\n})\nexport class IgxStepActiveIndicatorDirective { }\n\n/**\n * Allows a custom element to be added as a complete step indicator.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <ng-template igxStepCompletedIndicator>\n * <igx-icon>check</igx-icon>\n * </ng-template>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepCompletedIndicator]',\n standalone: true\n})\nexport class IgxStepCompletedIndicatorDirective { }\n\n/**\n * Allows a custom element to be added as an invalid step indicator.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <ng-template igxStepInvalidIndicator>\n * <igx-icon>error</igx-icon>\n * </ng-template>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepInvalidIndicator]',\n standalone: true\n})\nexport class IgxStepInvalidIndicatorDirective { }\n\n/**\n * Allows a custom element to be added as a step indicator.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <igx-step>\n * <igx-icon igxStepIndicator>home</igx-icon>\n * </igx-step>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepIndicator]',\n standalone: true\n})\nexport class IgxStepIndicatorDirective { }\n\n/**\n * Allows a custom element to be added as a step title.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <igx-step>\n * <p igxStepTitle>Home</p>\n * </igx-step>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepTitle]',\n standalone: true\n})\nexport class IgxStepTitleDirective {\n @HostBinding('class.igx-stepper__step-title')\n public defaultClass = true;\n}\n\n/**\n * Allows a custom element to be added as a step subtitle.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <igx-step>\n * <p igxStepSubtitle>Home Subtitle</p>\n * </igx-step>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepSubtitle]',\n standalone: true\n})\nexport class IgxStepSubtitleDirective {\n @HostBinding('class.igx-stepper__step-subtitle')\n public defaultClass = true;\n}\n\n/**\n * Allows a custom element to be added as a step content.\n *\n * @igxModule IgxStepperModule\n * @igxTheme igx-stepper-theme\n * @igxKeywords stepper \n * @igxGroup Layouts\n *\n * @example\n * <igx-stepper>\n * <igx-step>\n * <div igxStepContent>...</div>\n * </igx-step>\n * </igx-stepper>\n */\n@Directive({\n selector: '[igxStepContent]',\n standalone: true\n})\nexport class IgxStepContentDirective {\n private get target(): IgxStep {\n return this.step;\n }\n\n @HostBinding('class.igx-stepper__step-content')\n public defaultClass = true;\n\n @HostBinding('attr.role')\n public role = 'tabpanel';\n\n @HostBinding('attr.aria-labelledby')\n public get stepId(): string {\n return this.target.id;\n }\n\n @HostBinding('attr.id')\n @Input()\n public id = this.target.id.replace('step', 'content');\n\n @HostBinding('attr.tabindex')\n @Input()\n public get tabIndex(): number {\n if (this._tabIndex !== null) {\n return this._tabIndex;\n }\n\n return this.stepperService.activeStep === this.target ? 0 : -1;\n }\n\n public set tabIndex(val: number) {\n this._tabIndex = val;\n }\n\n private _tabIndex = null;\n\n constructor(\n @Inject(IGX_STEP_COMPONENT) private step: IgxStep,\n private stepperService: IgxStepperService,\n public elementRef: ElementRef<HTMLElement>\n ) { }\n}\n","import {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { IgxStep, IgxStepper, IgxStepperOrientation, IgxStepType, IGX_STEPPER_COMPONENT, IGX_STEP_COMPONENT, HorizontalAnimationType } from '../stepper.common';\nimport { IgxStepContentDirective, IgxStepIndicatorDirective } from '../stepper.directive';\nimport { IgxStepperService } from '../stepper.service';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { IgxRippleDirective } from 'igniteui-angular/directives';\nimport { ToggleAnimationPlayer, ToggleAnimationSettings } from 'igniteui-angular/expansion-panel';\nimport { CarouselAnimationDirection, IgxSlideComponentBase } from 'igniteui-angular/carousel';\nimport { AnimationService, IgxAngularAnimationService, IgxDirectionality, PlatformUtil } from 'igniteui-angular/core';\n\nlet NEXT_ID = 0;\n\n/**\n * The IgxStepComponent is used within the `igx-stepper` element and it holds the content of each step.\n * It also supports custom indicators, title and subtitle.\n *\n * @igxModule IgxStepperModule\n *\n * @igxKeywords step\n *\n * @example\n * ```html\n * <igx-stepper>\n * ...\n * <igx-step [active]=\"true\" [completed]=\"true\">\n * ...\n * </igx-step>\n * ...\n * </igx-stepper>\n * ```\n */\n@Component({\n selector: 'igx-step',\n templateUrl: 'step.component.html',\n providers: [\n { provide: IGX_STEP_COMPONENT, useExisting: IgxStepComponent }\n ],\n imports: [NgClass, IgxRippleDirective, NgTemplateOutlet]\n})\nexport class IgxStepComponent extends ToggleAnimationPlayer implements IgxStep, AfterViewInit, OnDestroy, IgxSlideComponentBase {\n\n /**\n * Get/Set the `id` of the step component.\n * Default value is `\"igx-step-0\"`;\n * ```html\n * <igx-step id=\"my-first-step\"></igx-step>\n * ```\n * ```typescript\n * const stepId = this.step.id;\n * ```\n */\n @HostBinding('attr.id')\n @Input()\n public id = `igx-step-${NEXT_ID++}`;\n\n /**\n * Get/Set whether the step is interactable.\n *\n * ```html\n * <igx-stepper>\n * ...\n * <igx-step [disabled]=\"true\"></igx-step>\n * ...\n * </igx-stepper>\n * ```\n *\n * ```typescript\n * this.stepper.steps[1].disabled = true;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n this._disabled = value;\n if (this.stepper.linear) {\n this.stepperService.calculateLinearDisabledSteps();\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Get/Set whether the step is completed.\n *\n * @remarks\n * When set to `true` the following separator is styled `solid`.\n *\n * ```html\n * <igx-stepper>\n * ...\n * <igx-step [completed]=\"true\"></igx-step>\n * ...\n * </igx-stepper>\n * ```\n *\n * ```typescript\n * this.stepper.steps[1].completed = true;\n * ```\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.igx-stepper__step--completed')\n public completed = false;\n\n /**\n * Get/Set whether the step is valid.\n *```html\n * <igx-step [isValid]=\"form.form.valid\">\n * ...\n * <div igxStepContent>\n * <form #form=\"ngForm\">\n * ...\n * </form>\n * </div>\n * </igx-step>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public get isValid(): boolean {\n return this._valid;\n }\n\n public set isValid(value: boolean) {\n this._valid = value;\n if (this.stepper.linear && this.index !== undefined) {\n this.stepperService.calculateLinearDisabledSteps();\n }\n }\n\n /**\n * Get/Set whether the step is optional.\n *\n * @remarks\n * Optional steps validity does not affect the default behavior when the stepper is in linear mode i.e.\n * if optional step is invalid the user could still move to the next step.\n *\n * ```html\n * <igx-step [optional]=\"true\"></igx-step>\n * ```\n * ```typescript\n * this.stepper.steps[1].optional = true;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public optional = false;\n\n /**\n * Get/Set the active state of the step\n *\n * ```html\n * <igx-step [active]=\"true\"></igx-step>\n * ```\n *\n * ```typescript\n * this.stepper.steps[1].active = true;\n * ```\n *\n * @param value: boolean\n */\n @HostBinding('attr.aria-selected')\n @Input({ transform: booleanAttribute })\n public set active(value: boolean) {\n if (value) {\n this.stepperService.expandThroughApi(this);\n } else {\n this.stepperService.collapse(this);\n }\n }\n\n public get active(): boolean {\n return this.stepperService.activeStep === this;\n }\n\n /** @hidden @internal */\n @HostBinding('attr.tabindex')\n @Input()\n public set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n public get tabIndex(): number {\n return this._tabIndex;\n }\n\n /** @hidden @internal **/\n @HostBinding('attr.role')\n public role = 'tab';\n\n /** @hidden @internal */\n @HostBinding('attr.aria-controls')\n public get contentId(): string {\n return this.content?.id;\n }\n\n /** @hidden @internal */\n @HostBinding('class.igx-stepper__step')\n public cssClass = true;\n\n /** @hidden @internal */\n @HostBinding('class.igx-stepper__step--disabled')\n public get generalDisabled(): boolean {\n return this.disabled || this.linearDisabled;\n }\n\n /** @hidden @internal */\n @HostBinding('class')\n public get titlePositionTop(): string {\n if (this.stepper.stepType !== IgxStepType.Full) {\n return 'igx-stepper__step--simple';\n }\n\n return `igx-stepper__step--${this.titlePosition}`;\n }\n\n /**\n * Emitted when the step's `active` property changes. Can be used for two-way binding.\n *\n * ```html\n * <igx-step [(active)]=\"this.isActive\">\n * </igx-step>\n * ```\n *\n * ```typescript\n * const step: IgxStepComponent = this.stepper.step[0];\n * step.activeChange.subscribe((e: boolean) => console.log(\"Step active state change to \", e))\n * ```\n */\n @Output()\n public activeChange = new EventEmitter<boolean>();\n\n /** @hidden @internal */\n @ViewChild('contentTemplate', { static: true })\n public contentTemplate: TemplateRef<any>;\n\n /** @hidden @internal */\n @ViewChild('customIndicator', { static: true })\n public customIndicatorTemplate: TemplateRef<any>;\n\n /** @hidden @internal */\n @ViewChild('contentContainer')\n public contentContainer: ElementRef;\n\n /** @hidden @internal */\n @ContentChild(forwardRef(() => IgxStepIndicatorDirective))\n public indicator: IgxStepIndicatorDirective;\n\n /** @hidden @internal */\n @ContentChild(forwardRef(() => IgxStepContentDirective))\n public content: IgxStepContentDirective;\n\n /**\n * Get the step index inside of the stepper.\n *\n * ```typescript\n * const step = this.stepper.steps[1];\n * const stepIndex: number = step.index;\n * ```\n */\n public get index(): number {\n return this._index;\n }\n\n /** @hidden @internal */\n public get indicatorTemplate(): TemplateRef<any> {\n if (this.active && this.stepper.activeIndicatorTemplate) {\n return this.stepper.activeIndicatorTemplate;\n }\n\n if (!this.isValid && this.stepper.invalidIndicatorTemplate) {\n return this.stepper.invalidIndicatorTemplate;\n }\n\n if (this.completed && this.stepper.completedIndicatorTemplate) {\n return this.stepper.completedIndicatorTemplate;\n }\n\n if (this.indicator) {\n return this.customIndicatorTemplate;\n }\n\n return null;\n }\n\n /** @hidden @internal */\n public get direction(): CarouselAnimationDirection {\n return this.stepperService.previousActiveStep\n && this.stepperService.previousActiveStep.index > this.index\n ? CarouselAnimationDirection.PREV\n : CarouselAnimationDirection.NEXT;\n }\n\n /** @hidden @internal */\n public get isAccessible(): boolean {\n return !this.disabled && !this.linearDisabled;\n }\n\n /** @hidden @internal */\n public get isHorizontal(): boolean {\n return this.stepper.orientation === IgxStepperOrientation.Horizontal;\n }\n\n /** @hidden @internal */\n public get isTitleVisible(): boolean {\n return this.stepper.stepType !== IgxStepType.Indicator;\n }\n\n /** @hidden @internal */\n public get isIndicatorVisible(): boolean {\n return this.stepper.stepType !== IgxStepType.Title;\n }\n\n /** @hidden @internal */\n public get titlePosition(): string {\n return this.stepper.titlePosition ? this.stepper.titlePosition : this.stepper._defaultTitlePosition;\n }\n\n /** @hidden @internal */\n public get linearDisabled(): boolean {\n return this.stepperService.linearDisabledSteps.has(this);\n }\n\n /** @hidden @internal */\n public get collapsing(): boolean {\n return this.stepperService.collapsingSteps.has(this);\n }\n\n /** @hidden @internal */\n public override get animationSettings(): ToggleAnimationSettings {\n return this.stepper.verticalAnimationSettings;\n }\n\n /** @hidden @internal */\n public get contentClasses(): any {\n if (this.isHorizontal) {\n return { 'igx-stepper__body-content': true, 'igx-stepper__body-content--active': this.active };\n } else {\n return 'igx-stepper__step-content';\n }\n }\n\n /** @hidden @internal */\n public get stepHeaderClasses(): any {\n return {\n 'igx-stepper__step--optional': this.optional,\n 'igx-stepper__step-header--current': this.active,\n 'igx-stepper__step-header--invalid': !this.isValid\n && this.stepperService.visitedSteps.has(this) && !this.active && this.isAccessible\n };\n }\n\n /** @hidden @internal */\n public get nativeElement(): HTMLElement {\n return this.element.nativeElement;\n }\n /** @hidden @internal */\n public previous: boolean;\n /** @hidden @internal */\n public _index: number;\n private _tabIndex = -1;\n private _valid = true;\n private _focused = false;\n private _disabled = false;\n\n constructor(\n @Inject(IGX_STEPPER_COMPONENT) public stepper: IgxStepper,\n public cdr: ChangeDetectorRef,\n public renderer: Renderer2,\n protected platform: PlatformUtil,\n protected stepperService: IgxStepperService,\n @Inject(IgxAngularAnimationService) animationService: AnimationService,\n private element: ElementRef<HTMLElement>,\n private dir: IgxDirectionality\n ) {\n super(animationService);\n }\n\n /** @hidden @internal */\n @HostListener('focus')\n public onFocus(): void {\n this._focused = true;\n this.stepperService.focusedStep = this;\n if (this.stepperService.focusedStep !== this.stepperService.activeStep) {\n this.stepperService.activeStep.tabIndex = -1;\n }\n }\n\n /** @hidden @internal */\n @HostListener('blur')\n public onBlur(): void {\n this._focused = false;\n this.stepperService.activeStep.tabIndex = 0;\n }\n\n /** @hidden @internal */\n @HostListener('keydown', ['$event'])\n public handleKeydown(event: KeyboardEvent): void {\n if (!this._focused) {\n return;\n }\n const key = event.key;\n if (this.stepper.orientation === IgxStepperOrientation.Horizontal) {\n if (key === this.platform.KEYMAP.ARROW_UP || key === this.platform.KEYMAP.ARROW_DOWN) {\n return;\n }\n }\n if (!(this.platform.isNavigationKey(key) || this.platform.isActivationKey(event))) {\n return;\n }\n event.preventDefault();\n this.handleNavigation(key);\n }\n\n /** @hidden @internal */\n public ngAfterViewInit(): void {\n this.openAnimationDone.pipe(takeUntil(this.destroy$)).subscribe(\n () => {\n if (this.stepperService.activeStep === this) {\n this.stepper.activeStepChanged.emit({ owner: this.stepper, index: this.index });\n }\n }\n );\n this.closeAnimationDone.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.stepperService.collapse(this);\n this.cdr.markForCheck();\n });\n }\n\n /** @hidden @internal */\n public onPointerDown(event: MouseEvent): void {\n event.stopPropagation();\n if (this.isHorizontal) {\n this.changeHorizontalActiveStep();\n } else {\n this.changeVerticalActiveStep();\n }\n }\n\n /** @hidden @internal */\n public handleNavigation(key: string): void {\n switch (key) {\n case this.platform.KEYMAP.HOME:\n this.stepper.steps.filter(s => s.isAccessible)[0]?.nativeElement.focus();\n break;\n case this.platform.KEYMAP.END:\n this.stepper.steps.filter(s => s.isAccessible).pop()?.nativeElement.focus();\n break;\n case this.platform.KEYMAP.ARROW_UP:\n this.previousStep?.nativeElement.focus();\n break;\n case this.platform.KEYMAP.ARROW_LEFT:\n if (this.dir.rtl && this.stepper.orientation === IgxStepperOrientation.Horizontal) {\n this.nextStep?.nativeElement.focus();\n } else {\n this.previousStep?.nativeElement.focus();\n }\n break;\n case this.platform.KEYMAP.ARROW_DOWN:\n this.nextStep?.nativeElement.focus();\n break;\n case this.platform.KEYMAP.ARROW_RIGHT:\n if (this.dir.rtl && this.stepper.orientation === IgxStepperOrientation.Horizontal) {\n this.previousStep?.nativeElement.focus();\n } else {\n this.nextStep?.nativeElement.focus();\n }\n break;\n case this.platform.KEYMAP.SPACE:\n case this.platform.KEYMAP.ENTER:\n if (this.isHorizontal) {\n this.changeHorizontalActiveStep();\n } else {\n this.changeVerticalActiveStep();\n }\n break;\n default:\n return;\n }\n }\n\n /** @hidden @internal */\n public changeHorizontalActiveStep(): void {\n if (this.stepper.animationType === HorizontalAnimationType.none && this.stepperService.activeStep !== this) {\n const argsCanceled = this.stepperService.emitActivatingEvent(this);\n if (argsCanceled) {\n return;\n }\n\n this.active = true;\n this.stepper.activeStepChanged.emit({ owner: this.stepper, index: this.index });\n return;\n }\n this.stepperService.expand(this);\n if (this.stepper.animationType === HorizontalAnimationType.fade) {\n if (this.stepperService.collapsingSteps.has(this.stepperService.previousActiveStep)) {\n this.stepperService.previousActiveStep.active = false;\n }\n }\n }\n\n private get nextStep(): IgxStepComponent | null {\n const focusedStep = this.stepperService.focusedStep;\n if (focusedStep) {\n if (focusedStep.index === this.stepper.steps.length - 1) {\n return this.stepper.steps.find(s => s.isAccessible);\n }\n\n const nextAccessible = this.stepper.steps.find((s, i) => i > focusedStep.index && s.isAccessible);\n return nextAccessible ? nextAccessible : this.stepper.steps.find(s => s.isAccessible);\n }\n\n return null;\n }\n\n private get previousStep(): IgxStepComponent | null {\n const focusedStep = this.stepperService.focusedStep;\n if (focusedStep) {\n if (focusedStep.index === 0) {\n return this.stepper.steps.filter(s => s.isAccessible).pop();\n }\n\n let prevStep;\n for (let i = focusedStep.index - 1; i >= 0; i--) {\n const step = this.stepper.steps[i];\n if (step.isAccessible) {\n prevStep = step;\n break;\n }\n }\n\n return prevStep ? prevStep : this.stepper.steps.filter(s => s.isAccessible).pop();\n\n }\n\n return null;\n }\n\n private changeVerticalActiveStep(): void {\n this.stepperService.expand(this);\n\n if (!this.animationSettings.closeAnimation) {\n this.stepperService.previousActiveStep?.openAnimationPlayer?.finish();\n }\n\n if (!this.animationSettings.openAnimation) {\n this.stepperService.activeStep.closeAnimationPlayer?.finish();\n }\n }\n}\n","<ng-template #defaultTitle>\n @if (isTitleVisible) {\n <ng-content select=\"[igxStepTitle]\"></ng-content>\n }\n @if (isTitleVisible) {\n <ng-content select=\"[igxStepSubtitle]\"></ng-content>\n }\n</ng-template>\n\n<ng-template #contentTemplate>\n <div [ngClass]=\"contentClasses\" #contentContainer>\n @if (active || collapsing) {\n <ng-content select=\"[igxStepContent]\"></ng-content>\n }\n </div>\n</ng-template>\n\n<ng-template #defaultIndicator>\n <span>{{ index + 1 }}</span>\n</ng-template>\n\n<ng-template #customIndicator>\n <ng-content select=\"[igxStepIndicator]\"></ng-content>\n</ng-template>\n\n<div class=\"igx-stepper__step-header\" igxRipple [ngClass]=\"stepHeaderClasses\" (keydown)=\"handleKeydown($event)\"\n (click)=\"onPointerDown($event)\">\n\n @if (isIndicatorVisible) {\n <div class=\"igx-stepper__step-indicator\">\n <ng-container *ngTemplateOutlet=\"indicatorTemplate ? indicatorTemplate : defaultIndicator\"></ng-container>\n </div>\n }\n\n <div class=\"igx-stepper__step-title-wrapper\">\n <ng-container *ngTemplateOutlet=\"defaultTitle\"></ng-container>\n </div>\n</div>\n\n@if (!isHorizontal) {\n <div class=\"igx-stepper__step-content-wrapper\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </div>\n}\n","import { AnimationReferenceMetadata, useAnimation } from '@angular/animations';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit, ChangeDetectorRef, Component, ContentChild, ContentChildren,\n ElementRef, EventEmitter, HostBinding, Inject, Input, OnChanges, OnDestroy,\n OnInit, Output, QueryList, SimpleChanges, TemplateRef, booleanAttribute\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { IgxCarouselComponentBase } from 'igniteui-angular/carousel';\nimport { IgxAngularAnimationService, AnimationService } from 'igniteui-angular/core';\nimport { IgxStepComponent } from './step/step.component';\nimport {\n IgxStepper, IgxStepperOrientation, IgxStepperTitlePosition, IgxStepType,\n IGX_STEPPER_COMPONENT, IStepChangedEventArgs, IStepChangingEventArgs, VerticalAnimationType,\n HorizontalAnimationType\n} from './stepper.common';\nimport {\n IgxStepActiveIndicatorDirective,\n IgxStepCompletedIndicatorDirective,\n IgxStepInvalidIndicatorDirective\n} from './stepper.directive';\nimport { IgxStepperService } from './stepper.service';\nimport { fadeIn, growVerIn, growVerOut } from 'igniteui-angular/animations';\nimport { ToggleAnimationSettings } from 'igniteui-angular/expansion-panel';\n\n\n// TODO: common interface between IgxCarouselComponentBase and ToggleAnimationPlayer?\n\n/**\n * IgxStepper provides a wizard-like workflow by dividing content into logical steps.\n *\n * @igxModule IgxStepperModule\n *\n * @igxKeywords stepper\n *\n * @igxGroup Layouts\n *\n * @remarks\n * The Ignite UI for Angular Stepper component allows the user to navigate between multiple steps.\n * It supports horizontal and vertical orientation as well as keyboard navigation and provides API methods to control the active step.\n * The component offers keyboard navigation and API to control the active step.\n *\n * @example\n * ```html\n * <igx-stepper>\n * <igx-step [active]=\"true\">\n * <igx-icon igxStepIndicator>home</igx-icon>\n * <p igxStepTitle>Home</p>\n * <div igxStepContent>\n * ...\n * </div>\n * </igx-step>\n * <igx-step [optional]=\"true\">\n * <div igxStepContent>\n * ...\n * </div>\n * </igx-step>\n * <igx-step>\n * <div igxStepContent>\n * ...\n * </div>\n * </igx-step>\n * </igx-stepper>\n * ```\n */\n@Component({\n selector: 'igx-stepper',\n templateUrl: 'stepper.component.html',\n providers: [\n IgxStepperService,\n { provide: IGX_STEPPER_COMPONENT, useExisting: IgxStepperComponent },\n ],\n imports: [NgTemplateOutlet]\n})\nexport class IgxStepperComponent extends IgxCarouselComponentBase implements IgxStepper, OnChanges, OnInit, AfterContentInit, OnDestroy {\n\n /**\n * Get/Set the animation type of the stepper when the orientation direction is vertical.\n *\n * @remarks\n * Default value is `grow`. Other possible values are `fade` and `none`.\n *\n * ```html\n * <igx-stepper verticalAnimationType=\"none\">\n * <igx-stepper>\n * ```\n */\n @Input()\n public get verticalAnimationType(): VerticalAnimationType {\n return this._verticalAnimationType;\n }\n\n public set verticalAnimationType(value: VerticalAnimationType) {\n // TODO: activeChange event is not emitted for the collapsing steps (loop through collapsing steps and emit)\n this.stepperService.collapsingSteps.clear();\n this._verticalAnimationType = value;\n\n switch (value) {\n case 'grow':\n this.verticalAnimationSettings = this.updateVerticalAnimationSettings(growVerIn, growVerOut);\n break;\n case 'fade':\n this.verticalAnimationSettings = this.updateVerticalAnimationSettings(fadeIn, null);\n break;\n case 'none':\n this.verticalAnimationSettings = this.updateVerticalAnimationSettings(null, null);\n break;\n }\n }\n\n /**\n * Get/Set the animation type of the stepper when the orientation direction is horizontal.\n *\n * @remarks\n * Default value is `grow`. Other possible values are `fade` and `none`.\n *\n * ```html\n * <igx-stepper animationType=\"none\">\n * <igx-stepper>\n * ```\n */\n @Input()\n public get horizontalAnimationType(): HorizontalAnimationType {\n return this.animationType;\n }\n\n public set horizontalAnimationType(value: HorizontalAnimationType) {\n // TODO: activeChange event is not emitted for the collapsing steps (loop through collapsing steps and emit)\n this.stepperService.collapsingSteps.clear();\n this.animationType = value;\n }\n\n /**\n * Get/Set the animation duration.\n * ```html\n * <igx-stepper [animationDuration]=\"500\">\n * <igx-stepper>\n * ```\n */\n @Input()\n public get animationDuration(): number {\n return this.defaultAnimationDuration;\n }\n\n public set animationDuration(value: number) {\n if (value && value > 0) {\n this.defaultAnimationDuration = value;\n return;\n }\n this.defaultAnimationDuration = this._defaultAnimationDuration;\n }\n\n /**\n * Get/Set whether the stepper is linear.\n *\n * @remarks\n * If the stepper is in linear mode and if the active step is valid only then the user is able to move forward.\n *\n * ```html\n * <igx-stepper [linear]=\"true\"></igx-stepper>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public get linear(): boolean {\n return this._linear;\n }\n\n public set linear(value: boolean) {\n this._linear = value;\n if (this._linear && this.steps.length > 0) {\n // when the stepper is in linear mode we should calculate which steps should be disabled\n // and which are visited i.e. their validity should be correctly displayed.\n this.stepperService.calculateVisitedSteps();\n this.stepperService.calculateLinearDisabledSteps();\n } else {\n this.stepperService.linearDisabledSteps.clear();\n }\n }\n\n /**\n * Get/Set the stepper orientation.\n *\n * ```typescript\n * this.stepper.orientation = IgxStepperOrientation.Vertical;\n * ```\n */\n @HostBinding('attr.aria-orientation')\n @Input()\n public get orientation(): IgxStepperOrientation {\n return this._orientation;\n }\n\n public set orientation(value: IgxStepperOrientation) {\n if (this._orientation === value) {\n return;\n }\n\n // TODO: activeChange event is not emitted for the collapsing steps\n this.stepperService.collapsingSteps.clear();\n this._orientation = value;\n this._defaultTitlePosition = this._orientation === IgxStepperOrientation.Horizontal ?\n IgxStepperTitlePosition.Bottom : IgxStepperTitlePosition.End;\n }\n\n /**\n * Get/Set the type of the steps.\n *\n * ```typescript\n * this.stepper.stepType = IgxStepType.Indicator;\n * ```\n */\n @Input()\n public stepType: IgxStepType = IgxStepType.Full;\n\n /**\n * Get/Set whether the content is displayed above the steps.\n *\n * @remarks\n * Default value is `false` and the content is below the steps.\n *\n * ```typescript\n * this.stepper.contentTop = true;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public contentTop = false;\n\n /**\n * Get/Set the position of the steps title.\n *\n * @remarks\n * The default value when the stepper is horizontally orientated is `bottom`.\n * In vertical layout the default title position is `end`.\n *\n * ```typescript\n * this.stepper.titlePosition = IgxStepperTitlePosition.Top;\n * ```\n */\n @Input()\n public titlePosition: IgxStepperTitlePosition = null;\n\n /** @hidden @internal **/\n @HostBinding('class.igx-stepper')\n public cssClass = 'igx-stepper';\n\n /** @hidden @internal **/\n @HostBinding('attr.role')\n public role = 'tablist';\n\n /** @hidden @internal **/\n @HostBinding('class.igx-stepper--horizontal')\n public get directionClass() {\n return this.orientation === IgxStepperOrientation.Horizontal;\n }\n\n /**\n * Emitted when the stepper's active step is changing.\n *\n *```html\n * <igx-stepper (activeStepChanging)=\"handleActiveStepChanging($event)\">\n * </igx-stepper>\n * ```\n *\n *```typescript\n * public handleActiveStepChanging(event: IStepChangingEventArgs) {\n * if (event.newIndex < event.oldIndex) {\n * event.cancel = true;\n * }\n * }\n *```\n */\n @Output()\n public activeStepChanging = new EventEmitter<IStepChangingEventArgs>();\n\n /**\n * Emitted when the active step is changed.\n *\n * @example\n * ```\n * <igx-stepper (activeStepChanged)=\"handleActiveStepChanged($event)\"></igx-stepper>\n * ```\n */\n @Output()\n public activeStepChanged = new EventEmitter<IStepChangedEventArgs>();\n\n /** @hidden @internal */\n @ContentChild(IgxStepInvalidIndicatorDirective, { read: TemplateRef })\n public invalidIndicatorTemplate: TemplateRef<IgxStepInvalidIndicatorDirective>;\n\n /** @hidden @internal */\n @ContentChild(IgxStepCompletedIndicatorDirective, { read: TemplateRef })\n public completedIndicatorTemplate: TemplateRef<IgxStepCompletedIndicatorDirective>;\n\n /** @hidden @internal */\n @ContentChild(IgxStepActiveIndicatorDirective, { read: TemplateRef })\n public activeIndicatorTemplate: TemplateRef<IgxStepActiveIndicatorDirective>;\n\n /** @hidden @internal */\n @ContentChildren(IgxStepComponent, { descendants: false })\n private _steps: QueryList<IgxStepComponent>;\n\n /**\n * Get all steps.\n *\n * ```typescript\n * const steps: IgxStepComponent[] = this.stepper.steps;\n * ```\n */\n public get steps(): IgxStepComponent[] {\n return this._steps?.toArray() || [];\n }\n\n /** @hidden @internal */\n public get nativeElement(): HTMLElement {\n return this.element.nativeElement;\n }\n\n /** @hidden @internal */\n public verticalAnimationSettings: ToggleAnimationSettings = {\n openAnimation: growVerIn,\n closeAnimation: growVerOut,\n };\n /** @hidden @internal */\n public _defaultTitlePosition: IgxStepperTitlePosition = IgxStepperTitlePosition.Bottom;\n private destroy$ = new Subject<void>();\n private _orientation: IgxStepperOrientation = IgxStepperOrientation.Horizontal;\n private _verticalAnimationType: VerticalAnimationType = VerticalAnimationType.Grow;\n private _linear = false;\n private readonly _defaultAnimationDuration = 350;\n\n constructor(\n cdr: ChangeDetectorRef,\n @Inject(IgxAngularAnimationService) animationService: AnimationService,\n private stepperService: IgxStepperService,\n private element: ElementRef<HTMLElement>) {\n super(animationService, cdr);\n this.stepperService.stepper = this;\n }\n\n /** @hidden @internal */\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['animationDuration']) {\n this.verticalAnimationType = this._verticalAnimationType;\n }\n }\n\n /** @hidden @internal */\n public ngOnInit(): void {\n this.enterAnimationDone.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.activeStepChanged.emit({ owner: this, index: this.stepperService.activeStep.index });\n });\n this.leaveAnimationDone.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (this.stepperService.collapsingSteps.size === 1) {\n this.stepperService.collapse(this.stepperService.previousActiveStep);\n } else {\n Array.from(this.stepperService.collapsingSteps).slice(0, this.stepperService.collapsingSteps.size - 1)\n .forEach(step => this.stepperService.collapse(step));\n }\n });\n\n\n }\n\n /** @hidden @internal */\n public ngAfterContentInit(): void {\n let activeStep;\n this.steps.forEach((step, index) => {\n this.updateStepAria(step, index);\n if (!activeStep && step.active) {\n activeStep = step;\n }\n });\n if (!activeStep) {\n this.activateFirstStep(true);\n }\n\n if (this.linear) {\n this.stepperService.calculateLinearDisabledSteps();\n }\n\n this.handleStepChanges();\n }\n\n /** @hidden @internal */\n public override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /**\n * Activates the step at a given index.\n *\n *```typescript\n * this.stepper.navigateTo(1);\n *```\n */\n public navigateTo(index: number): void {\n const step = this.steps[index];\n if (!step || this.stepperService.activeStep === step) {\n return;\n }\n this.activateStep(step);\n }\n\n /**\n * Activates the next enabled step.\n *\n *```typescript\n * this.stepper.next();\n *```\n */\n public next(): void {\n this.moveToNextStep();\n }\n\n /**\n * Activates the previous enabled step.\n *\n *```typescript\n * this.stepper.prev();\n *```\n */\n public prev(): void {\n this.moveToNextStep(false);\n }\n\n /**\n * Resets the stepper to its initial state i.e. activates the first step.\n *\n * @remarks\n * The steps' content will not be automatically reset.\n *```typescript\n * this.stepper.reset();\n *```\n */\n public reset(): void {\n this.stepperService.visitedSteps.clear();\n const activeStep = this.steps.find(s => !s.disabled);\n if (activeStep) {\n this.activateStep(activeStep);\n }\n }\n\n /** @hidden @internal */\n public playHorizontalAnimations(): void {\n this.previousItem = this.stepperService.previousActiveStep;\n this.currentItem = this.stepperService.activeStep;\n this.triggerAnimations();\n }\n\n protected getPreviousElement(): HTMLElement {\n return this.stepperService.previousActiveStep?.contentContainer.nativeElement;\n }\n\n protected getCurrentElement(): HTMLElement {\n return this.stepperService.activeStep.contentContainer.nativeElement;\n }\n\n private updateVerticalAnimationSettings(\n openAnimation: AnimationReferenceMetadata,\n closeAnimation: AnimationReferenceMetadata): ToggleAnimationSettings {\n const customCloseAnimation = useAnimation(closeAnimation, {\n params: {\n duration: this.animationDuration + 'ms'\n }\n });\n const customOpenAnimation = useAnimation(openAnimation, {\n params: {\n duration: this.animationDuration + 'ms'\n }\n });\n\n return {\n openAnimation: openAnimation ? customOpenAnimation : null,\n closeAnimation: closeAnimation ? customCloseAnimation : null\n };\n }\n\n private updateStepAria(step: IgxStepComponent, index: number): void {\n step._index = index;\n step.renderer.setAttribute(step.nativeElement, 'aria-setsize', (this.steps.length).toString());\n step.renderer.setAttribute(step.nativeElement, 'aria-posinset', (index + 1).toString());\n }\n\n private handleStepChanges(): void {\n this._steps.changes.pipe(takeUntil(this.destroy$)).subscribe(steps => {\n Promise.resolve().then(() => {\n steps.forEach((step, index) => {\n this.updateStepAria(step, index);\n });\n\n // when the active step is removed\n const hasActiveStep = this.steps.find(s => s === this.stepperService.activeStep);\n if (!hasActiveStep) {\n this.activateFirstStep();\n }\n // TO DO: mark step added before the active as visited?\n if (this.linear) {\n this.stepperService.calculateLinearDisabledSteps();\n }\n });\n });\n }\n\n private activateFirstStep(activateInitially = false) {\n const firstEnabledStep = this.steps.find(s => !s.disabled);\n if (firstEnabledStep) {\n firstEnabledStep.active = true;\n if (activateInitially) {\n firstEnabledStep.activeChange.emit(true);\n this.activeStepChanged.emit({ owner: this, index: firstEnabledStep.index });\n }\n }\n }\n\n private activateStep(step: IgxStepComponent) {\n if (this.orientation === IgxStepperOrientation.Horizontal) {\n step.changeHorizontalActiveStep();\n } else {\n this.stepperService.expand(step);\n }\n }\n\n private moveToNextStep(next = true) {\n let steps: IgxStepComponent[] = this.steps;\n let activeStepIndex = this.stepperService.activeStep.index;\n if (!next) {\n steps = this.steps.reverse();\n activeStepIndex = steps.findIndex(s => s === this.stepperService.activeStep);\n }\n\n const nextStep = steps.find((s, i) => i > activeStepIndex && s.isAccessible);\n if (nextStep) {\n this.activateStep(nextStep);\n }\n }\n}\n","@if (!contentTop || orientation !== 'horizontal') {\n <div class=\"igx-stepper__header\">\n <ng-template *ngTemplateOutlet=\"stepTemplate\"></ng-template>\n </div>\n}\n\n@if (orientation === 'horizontal') {\n <div class=\"igx-stepper__body\">\n @for (step of steps; track step) {\n <ng-container *ngTemplateOutlet=\"step.contentTemplate\"></ng-container>\n }\n </div>\n}\n\n@if (contentTop && orientation === 'horizontal') {\n <div class=\"igx-stepper__header\">\n <ng-template *ngTemplateOutlet=\"stepTemplate\"></ng-template>\n </div>\n}\n\n<ng-template #stepTemplate>\n <ng-content select=\"igx-step\"></ng-content>\n</ng-template>\n","import { IgxStepComponent } from './step/step.component';\nimport { IgxStepperComponent } from './stepper.component';\nimport { IgxStepActiveIndicatorDirective, IgxStepCompletedIndicatorDirective, IgxStepContentDirective, IgxStepIndicatorDirective, IgxStepInvalidIndicatorDirective, IgxStepSubtitleDirective, IgxStepTitleDirective } from './stepper.directive';\n\nexport * from './stepper.component';\nexport * from './step/step.component';\nexport {\n HorizontalAnimationType,\n IStepChangingEventArgs,\n IStepChangedEventArgs,\n IgxStepperOrientation,\n IgxStepType,\n IgxStepperTitlePosition,\n VerticalAnimationType\n} from './stepper.common';\nexport * from './stepper.directive';\n\n/* NOTE: Stepper directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_STEPPER_DIRECTIVES = [\n IgxStepComponent,\n IgxStepperComponent,\n IgxStepTitleDirective,\n IgxStepSubtitleDirective,\n IgxStepIndicatorDirective,\n IgxStepContentDirective,\n IgxStepActiveIndicatorDirective,\n IgxStepCompletedIndicatorDirective,\n IgxStepInvalidIndicatorDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_STEPPER_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_STEPPER_DIRECTIVES\n ],\n exports: [\n ...IGX_STEPPER_DIRECTIVES\n ]\n})\nexport class IgxStepperModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxStepperService","i2.IgxStepperService","i1.IgxStepComponent","i2.IgxStepperComponent","i3.IgxStepTitleDirective","i3.IgxStepSubtitleDirective","i3.IgxStepIndicatorDirective","i3.IgxStepContentDirective","i3.IgxStepActiveIndicatorDirective","i3.IgxStepCompletedIndicatorDirective","i3.IgxStepInvalidIndicatorDirective"],"mappings":"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"}
@@ -404,7 +404,7 @@ class IgxTabsDirective extends IgxCarouselComponentBase {
404
404
  this.currentItem = item;
405
405
  }
406
406
  }
407
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxTabsDirective, deps: [{ token: IgxAngularAnimationService }, { token: i0.ChangeDetectorRef }, { token: i1IgxDirectionality }], target: i0.ɵɵFactoryTarget.Directive }); }
407
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxTabsDirective, deps: [{ token: IgxAngularAnimationService }, { token: i0.ChangeDetectorRef }, { token: i1.IgxDirectionality }], target: i0.ɵɵFactoryTarget.Directive }); }
408
408
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.0.0", type: IgxTabsDirective, isStandalone: true, inputs: { selectedIndex: "selectedIndex", disableAnimation: ["disableAnimation", "disableAnimation", booleanAttribute] }, outputs: { selectedIndexChange: "selectedIndexChange", selectedIndexChanging: "selectedIndexChanging", selectedItemChange: "selectedItemChange" }, queries: [{ propertyName: "items", predicate: IgxTabItemDirective }, { propertyName: "panels", predicate: IgxTabContentBase, descendants: true }], usesInheritance: true, ngImport: i0 }); }
409
409
  }
410
410
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxTabsDirective, decorators: [{
@@ -412,7 +412,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
412
412
  }], ctorParameters: () => [{ type: undefined, decorators: [{
413
413
  type: Inject,
414
414
  args: [IgxAngularAnimationService]
415
- }] }, { type: i0.ChangeDetectorRef }, { type: i1IgxDirectionality }], propDecorators: { selectedIndex: [{
415
+ }] }, { type: i0.ChangeDetectorRef }, { type: i1.IgxDirectionality }], propDecorators: { selectedIndex: [{
416
416
  type: Input
417
417
  }], disableAnimation: [{
418
418
  type: Input,
@@ -685,7 +685,7 @@ class IgxTabsComponent extends IgxTabsDirective {
685
685
  getElementOffset(element) {
686
686
  return this.dir.rtl ? this.itemsWrapper.nativeElement.offsetWidth - element.offsetLeft - element.offsetWidth : element.offsetLeft;
687
687
  }
688
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxTabsComponent, deps: [{ token: IgxAngularAnimationService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1IgxDirectionality }, { token: i1.PlatformUtil }], target: i0.ɵɵFactoryTarget.Component }); }
688
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxTabsComponent, deps: [{ token: IgxAngularAnimationService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.IgxDirectionality }, { token: i1.PlatformUtil }], target: i0.ɵɵFactoryTarget.Component }); }
689
689
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: IgxTabsComponent, isStandalone: true, selector: "igx-tabs", inputs: { tabAlignment: "tabAlignment", activation: "activation" }, host: { properties: { "class.igx-tabs": "this.defaultClass" } }, providers: [{ provide: IgxTabsBase, useExisting: IgxTabsComponent }], viewQueries: [{ propertyName: "headerContainer", first: true, predicate: ["headerContainer"], descendants: true, static: true }, { propertyName: "viewPort", first: true, predicate: ["viewPort"], descendants: true, static: true }, { propertyName: "itemsWrapper", first: true, predicate: ["itemsWrapper"], descendants: true, static: true }, { propertyName: "itemsContainer", first: true, predicate: ["itemsContainer"], descendants: true, static: true }, { propertyName: "selectedIndicator", first: true, predicate: ["selectedIndicator"], descendants: true }, { propertyName: "scrollPrevButton", first: true, predicate: ["scrollPrevButton"], descendants: true }, { propertyName: "scrollNextButton", first: true, predicate: ["scrollNextButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #headerContainer class=\"igx-tabs__header\">\n <button #scrollPrevButton type=\"button\" igxIconButton=\"flat\" igxRipple tabindex=\"-1\" class=\"igx-tabs__header-button\" (click)=\"scrollPrev()\">\n <igx-icon family=\"default\" name=\"prev\"></igx-icon>\n </button>\n <div #viewPort class=\"igx-tabs__header-content\">\n <div #itemsWrapper class=\"igx-tabs__header-wrapper\" role=\"tablist\">\n <div #itemsContainer class=\"igx-tabs__header-scroll\" [ngClass]=\"resolveHeaderScrollClasses()\">\n @for (tab of items; track tab; let i = $index) {\n <ng-container *ngTemplateOutlet=\"tab.headerTemplate\"></ng-container>\n }\n </div>\n @if (items.length > 0) {\n <div #selectedIndicator class=\"igx-tabs__header-active-indicator\">\n </div>\n }\n </div>\n </div>\n <button #scrollNextButton type=\"button\" igxIconButton=\"flat\" igxRipple tabindex=\"-1\" class=\"igx-tabs__header-button\" (click)=\"scrollNext()\">\n <igx-icon family=\"default\" name=\"next\"></igx-icon>\n </button>\n</div>\n<div class=\"igx-tabs__panels\">\n @for (tab of items; track tab; let i = $index) {\n <ng-container *ngTemplateOutlet=\"tab.panelTemplate\"></ng-container>\n }\n</div>\n", dependencies: [{ kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgxIconButtonDirective, selector: "[igxIconButton]", inputs: ["igxIconButton"] }] }); }
690
690
  }
691
691
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxTabsComponent, decorators: [{
@@ -694,7 +694,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
694
694
  }], ctorParameters: () => [{ type: undefined, decorators: [{
695
695
  type: Inject,
696
696
  args: [IgxAngularAnimationService]
697
- }] }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1IgxDirectionality }, { type: i1.PlatformUtil }], propDecorators: { tabAlignment: [{
697
+ }] }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.IgxDirectionality }, { type: i1.PlatformUtil }], propDecorators: { tabAlignment: [{
698
698
  type: Input
699
699
  }], activation: [{
700
700
  type: Input
@@ -821,13 +821,13 @@ class IgxTabHeaderComponent extends IgxTabHeaderDirective {
821
821
  }
822
822
  return newIndex;
823
823
  }
824
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxTabHeaderComponent, deps: [{ token: IgxTabsComponent }, { token: IgxTabItemDirective }, { token: i0.ElementRef }, { token: i1.PlatformUtil }, { token: i0.NgZone }, { token: i1IgxDirectionality }], target: i0.ɵɵFactoryTarget.Component }); }
824
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxTabHeaderComponent, deps: [{ token: IgxTabsComponent }, { token: IgxTabItemDirective }, { token: i0.ElementRef }, { token: i1.PlatformUtil }, { token: i0.NgZone }, { token: i1.IgxDirectionality }], target: i0.ɵɵFactoryTarget.Component }); }
825
825
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: IgxTabHeaderComponent, isStandalone: true, selector: "igx-tab-header", host: { listeners: { "keydown": "keyDown($event)" }, properties: { "class.igx-tabs__header-item--selected": "this.provideCssClassSelected", "class.igx-tabs__header-item--disabled": "this.provideCssClassDisabled", "class.igx-tabs__header-item": "this.cssClass" } }, providers: [{ provide: IgxTabHeaderBase, useExisting: IgxTabHeaderComponent }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n\n<div class=\"igx-tabs__header-item-inner\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n" }); }
826
826
  }
827
827
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: IgxTabHeaderComponent, decorators: [{
828
828
  type: Component,
829
829
  args: [{ selector: 'igx-tab-header', providers: [{ provide: IgxTabHeaderBase, useExisting: IgxTabHeaderComponent }], standalone: true, template: "<ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n\n<div class=\"igx-tabs__header-item-inner\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n" }]
830
- }], ctorParameters: () => [{ type: IgxTabsComponent }, { type: IgxTabItemDirective }, { type: i0.ElementRef }, { type: i1.PlatformUtil }, { type: i0.NgZone }, { type: i1IgxDirectionality }], propDecorators: { provideCssClassSelected: [{
830
+ }], ctorParameters: () => [{ type: IgxTabsComponent }, { type: IgxTabItemDirective }, { type: i0.ElementRef }, { type: i1.PlatformUtil }, { type: i0.NgZone }, { type: i1.IgxDirectionality }], propDecorators: { provideCssClassSelected: [{
831
831
  type: HostBinding,
832
832
  args: ['class.igx-tabs__header-item--selected']
833
833
  }], provideCssClassDisabled: [{