{"version":3,"file":"ng-hub-ui-stepper.mjs","sources":["../../../projects/stepper/src/lib/next-button.directive.ts","../../../projects/stepper/src/lib/previous-button.directive.ts","../../../projects/stepper/src/lib/step/step.component.ts","../../../projects/stepper/src/lib/step/step.component.html","../../../projects/stepper/src/lib/stepper-nav.directive.ts","../../../projects/stepper/src/lib/submit-button.directive.ts","../../../projects/stepper/src/lib/stepper/stepper.component.ts","../../../projects/stepper/src/lib/stepper/stepper.component.html","../../../projects/stepper/src/lib/step-trigger.directive.ts","../../../projects/stepper/src/lib/stepper.module.ts","../../../projects/stepper/src/lib/services/stepper-theme-service.ts","../../../projects/stepper/src/public-api.ts","../../../projects/stepper/src/ng-hub-ui-stepper.ts"],"sourcesContent":["import {\n\tAfterContentInit,\n\tDirective,\n\teffect,\n\tHostBinding,\n\tHostListener,\n\tinject,\n\tInjector\n} from '@angular/core';\nimport { StepperComponent } from './stepper/stepper.component';\n\n@Directive({\n\tselector: 'button[nextButton], button[continueButton]',\n\tstandalone: true,\n\thost: {\n\t\tclass: 'stepper__button stepper__button--next'\n\t}\n})\nexport class NextButtonDirective implements AfterContentInit {\n\t#injector = inject(Injector);\n\t#stepper = inject(StepperComponent);\n\n\t@HostBinding('disabled') disabled = false;\n\n\t@HostListener('click') onClick() {\n\t\tthis.#stepper.goToNext();\n\t}\n\n\tngAfterContentInit(): void {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst nextIndex = this.#stepper.currentIndex + 1;\n\t\t\t\tconst nextStep = this.#stepper.steps.toArray()[nextIndex];\n\t\t\t\tthis.disabled = !nextStep || nextStep.disabled;\n\t\t\t},\n\t\t\t{ injector: this.#injector }\n\t\t);\n\t}\n}\n","import {\n\tAfterContentInit,\n\tDirective,\n\teffect,\n\tHostBinding,\n\tHostListener,\n\tinject,\n\tInjector\n} from '@angular/core';\nimport { StepperComponent } from './stepper/stepper.component';\n\n@Directive({\n\tselector: 'button[previousButton], button[backButton]',\n\tstandalone: true,\n\thost: {\n\t\tclass: 'stepper__button stepper__button--back'\n\t}\n})\nexport class PreviousButtonDirective implements AfterContentInit {\n\t#injector = inject(Injector);\n\t#stepper = inject(StepperComponent);\n\n\t@HostBinding('disabled') disabled = false;\n\n\t@HostListener('click') onClick() {\n\t\tthis.#stepper.goToPrevious();\n\t}\n\n\tngAfterContentInit(): void {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst nextIndex = this.#stepper.currentIndex - 1;\n\t\t\t\tconst nextStep = this.#stepper.steps.toArray()[nextIndex];\n\t\t\t\tthis.disabled = !nextStep || nextStep.disabled;\n\t\t\t},\n\t\t\t{ injector: this.#injector }\n\t\t);\n\t}\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tinject,\n\tInput,\n\tOnInit,\n\tsignal,\n\tTemplateRef,\n\tViewChild\n} from '@angular/core';\nimport { StepperComponent } from '../stepper/stepper.component';\n\nconst ANIMATION_DURATION = 256;\n\n@Component({\n\tselector: 'hub-step, hub-ui-step, ng80-step',\n\ttemplateUrl: './step.component.html',\n\tstyleUrls: ['./step.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n\t// animations: [\n\t// \ttrigger('slideInOut', [\n\t// \t\ttransition(':enter', [\n\t// \t\t\tstyle({ transform: 'translateX(-100%)', opacity: 0 }),\n\t// \t\t\tanimate(\n\t// \t\t\t\t`${ANIMATION_DURATION}ms ${ANIMATION_DURATION}ms`,\n\t// \t\t\t\tstyle({ transform: 'translateX(0%)', opacity: 1 })\n\t// \t\t\t)\n\t// \t\t]),\n\t// \t\ttransition(':leave', [\n\t// \t\t\tanimate(\n\t// \t\t\t\t`${ANIMATION_DURATION}ms ease-in`,\n\t// \t\t\t\tstyle({ transform: 'translateX(100%)' })\n\t// \t\t\t)\n\t// \t\t])\n\t// \t])\n\t// ]\n})\nexport class StepComponent implements OnInit {\n\tstepper = inject(StepperComponent);\n\n\t/** The index of this step in the stepper */\n\t@Input() index!: number;\n\n\t/** The title of this step */\n\t@Input() title?: string;\n\n\t/** Whether this step is disabled */\n\tdisabled$ = signal(false);\n\t@Input()\n\tset disabled(value: boolean) {\n\t\tthis.disabled$.set(value);\n\t}\n\tget disabled(): boolean {\n\t\treturn this.disabled$();\n\t}\n\n\t/** Template reference for the content of this step */\n\t@ViewChild('innerTemplate', { static: true })\n\tinnerTemplate!: TemplateRef<any>;\n\n\tget animationState() {\n\t\treturn this.stepper.animationsEnabled ? '*' : 'void';\n\t}\n\n\tngOnInit(): void {\n\t\t// this.validateInputs();\n\t}\n\n\t/**\n\t * Validates the inputs to ensure the component is properly configured\n\t */\n\tprivate validateInputs(): void {\n\t\tif (this.index === undefined) {\n\t\t\tconsole.warn('StepComponent: index is required');\n\t\t}\n\t\tif (!this.title) {\n\t\t\tconsole.warn(\n\t\t\t\t'StepComponent: title is recommended for accessibility'\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the step can be navigated to\n\t * @returns boolean indicating if the step is accessible\n\t */\n\tisAccessible(): boolean {\n\t\treturn !this.disabled;\n\t}\n}\n","<ng-template #innerTemplate>\n\t<div\n\t\tclass=\"step__content\"\n\t\t[attr.data-step-index]=\"index\"\n\t\t[attr.aria-label]=\"title\"\n\t>\n\t\t<ng-content></ng-content>\n\t</div>\n</ng-template>\n","import { TemplateRef, Directive } from '@angular/core';\n\n@Directive({\n\tselector: '[hubStepperNav], [stepperNav]'\n})\nexport class StepperNavDirective {\n\tconstructor(public template: TemplateRef<any>) {}\n}\n","import {\n\tAfterContentInit,\n\tDirective,\n\teffect,\n\tHostBinding,\n\tHostListener,\n\tinject,\n\tInjector\n} from '@angular/core';\nimport { StepperComponent } from './stepper/stepper.component';\n\n@Directive({\n\tselector: 'button[submitButton]',\n\tstandalone: true,\n\thost: {\n\t\tclass: 'stepper__button stepper__button--submit'\n\t}\n})\nexport class SubmitButtonDirective implements AfterContentInit {\n\t#injector = inject(Injector);\n\t#stepper = inject(StepperComponent);\n\n\t@HostBinding('disabled') disabled = false;\n\n\t@HostListener('click') onClick() {\n\t\tthis.#stepper.complete();\n\t}\n\n\tngAfterContentInit(): void {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tthis.disabled = this.#stepper.currentStep?.disabled$() ?? false;\n\t\t\t},\n\t\t\t{ injector: this.#injector }\n\t\t);\n\t}\n}\n","import {\n\tAfterContentInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChild,\n\tContentChildren,\n\tEventEmitter,\n\tinject,\n\tInput,\n\tOutput,\n\tQueryList,\n\tsignal,\n\tTemplateRef\n} from '@angular/core';\nimport { NextButtonDirective } from '../next-button.directive';\nimport { PreviousButtonDirective } from '../previous-button.directive';\nimport { StepComponent } from '../step/step.component';\nimport { StepperNavDirective } from '../stepper-nav.directive';\nimport { SubmitButtonDirective } from '../submit-button.directive';\n\n/**\n * StepperComponent is a multi-step interface component for Angular applications.\n * It manages navigation between steps, handles step content, and provides\n * customization options for navigation and controls.\n */\n@Component({\n\tselector: 'hub-stepper, hub-ui-stepper, ng80-stepper',\n\ttemplateUrl: './stepper.component.html',\n\tstyleUrls: ['./stepper.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'stepper'\n\t}\n})\nexport class StepperComponent implements AfterContentInit {\n\t#cdr = inject(ChangeDetectorRef);\n\n\t/** The index of the current active step */\n\tcurrentIndex$ = signal(0);\n\n\tget currentIndex(): number {\n\t\treturn this.currentIndex$();\n\t}\n\n\t/** Label for the back button */\n\t@Input() backLabel: string = 'Back';\n\n\t/** Label for the continue button */\n\t@Input() continueLabel: string = 'Continue';\n\n\t/** Label for the submit button */\n\t@Input() submitLabel: string = 'Submit';\n\n\t/** Event emitted when the stepper is completed */\n\t@Output() completed = new EventEmitter<void>();\n\n\t/** Event emitted when moving to the previous step */\n\t@Output() previousStep = new EventEmitter<number>();\n\n\t/** Event emitted when moving to the next step */\n\t@Output() nextStep = new EventEmitter<number>();\n\n\t/** QueryList of all StepComponent children */\n\t@ContentChildren(StepComponent) steps!: QueryList<StepComponent>;\n\n\t/** Custom template for stepper navigation */\n\t@ContentChild(StepperNavDirective, { read: TemplateRef })\n\tstepperNavTpt?: TemplateRef<any>;\n\n\t@ContentChild(PreviousButtonDirective)\n\tpreviousButton?: PreviousButtonDirective;\n\n\t@ContentChild(NextButtonDirective)\n\tnextButton?: NextButtonDirective;\n\n\t@ContentChild(SubmitButtonDirective)\n\tsubmitButton?: SubmitButtonDirective;\n\n\t@Input() animationsEnabled: boolean = true;\n\n\t/** Get the current active step */\n\tget currentStep(): StepComponent | null {\n\t\treturn this.steps?.toArray()[this.currentIndex] ?? null;\n\t}\n\n\tngAfterContentInit(): void {\n\t\tthis.initializeSteps();\n\t}\n\n\t/**\n\t * Initialize step indices and set up change detection\n\t */\n\tprivate initializeSteps(): void {\n\t\tthis.steps.forEach((step, index) => (step.index = index));\n\t\t// Consider using ngZone.runOutsideAngular for better performance\n\t\tthis.#cdr.detectChanges();\n\t}\n\n\t/**\n\t * Navigate to the previous step\n\t */\n\tgoToPrevious(): void {\n\t\tthis.goTo(this.currentIndex - 1);\n\t}\n\n\t/**\n\t * Navigate to the next step\n\t */\n\tgoToNext(): void {\n\t\tthis.goTo(this.currentIndex + 1);\n\t}\n\n\t/**\n\t * Navigate to a specific step by index\n\t * @param index The index of the step to navigate to\n\t */\n\tgoTo(index: number): void {\n\t\tif (this.isStepIndexInBounds(index)) {\n\t\t\tthis.currentIndex$.set(index);\n\t\t\tthis.#cdr.detectChanges();\n\t\t\tif (index > this.currentIndex) {\n\t\t\t\tthis.nextStep.emit(index);\n\t\t\t} else {\n\t\t\t\tthis.previousStep.emit(index);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.error(`Invalid step index: ${index}`);\n\t\t}\n\t}\n\n\t/**\n\t * Check if it's possible to navigate to a specific step\n\t * @param index The index of the step to check\n\t */\n\tcanNavigateTo(index: number): boolean {\n\t\treturn this.isStepIndexInBounds(index) && this.isValidStepIndex(index);\n\t}\n\n\t/**\n\t * Complete the stepper process\n\t */\n\tcomplete(): void {\n\t\tthis.completed.emit();\n\t}\n\n\t/**\n\t * Checks if a step at a given index is not disabled.\n\t *\n\t * @param {number} index - The `index` parameter is a number representing the index of a step in a collection of steps.\n\t *\n\t * @returns A boolean value. It checks if the step at the given index is not disabled, and returns `true` if it is a valid step\n\t * index, and `false` if it is not a valid step index or if the step at that index is disabled.\n\t */\n\tisValidStepIndex(index: number): boolean {\n\t\treturn !this.steps.toArray()[index]?.disabled$();\n\t}\n\n\t/**\n\t * Checks if a given index is within the bounds of the steps array.\n\t *\n\t * @param {number} index - The `index` parameter is a number representing the step index that you want to check if it is within\n\t * the bounds of the steps array.\n\t *\n\t * @returns A boolean value indicating whether the given index is within the bounds of the steps array.\n\t */\n\tisStepIndexInBounds(index: number): boolean {\n\t\treturn index >= 0 && index < this.steps.length;\n\t}\n}\n","<!--begin::Nav-->\n<nav class=\"stepper__nav\">\n\t<ng-container\n\t\t[ngTemplateOutlet]=\"stepperNavTpt || defaultNavTpt\"\n\t\t[ngTemplateOutletContext]=\"{ steps: steps, currentIndex }\"\n\t></ng-container>\n</nav>\n<!--end::Nav-->\n\n<!--begin::Content-->\n<div class=\"stepper__content\">\n\t<ng-container\n\t\t[ngTemplateOutlet]=\"currentStep?.innerTemplate\"\n\t></ng-container>\n</div>\n<!--end::Content-->\n\n<!--begin::Controls-->\n<div class=\"stepper__controls\">\n\t<ng-container *ngIf=\"currentIndex > 0\">\n\t\t<ng-content select=\"button[previousButton]\"></ng-content>\n\t\t<button\n\t\t\t*ngIf=\"!previousButton\"\n\t\t\t(click)=\"goToNext()\"\n\t\t\t[disabled]=\"canNavigateTo(currentIndex - 1)\"\n\t\t>\n\t\t\t{{ backLabel }}\n\t\t</button>\n\t</ng-container>\n\n\t<ng-container *ngIf=\"currentIndex < steps.length - 1\">\n\t\t<ng-content select=\"button[nextButton]\"></ng-content>\n\t\t<button\n\t\t\t*ngIf=\"!nextButton\"\n\t\t\t(click)=\"goToNext()\"\n\t\t\t[disabled]=\"canNavigateTo(currentIndex + 1)\"\n\t\t>\n\t\t\t{{ continueLabel }}\n\t\t</button>\n\t</ng-container>\n\n\t<ng-container *ngIf=\"currentIndex === steps.length - 1\">\n\t\t<ng-content select=\"button[submitButton]\"></ng-content>\n\t\t<button\n\t\t\t*ngIf=\"!submitButton\"\n\t\t\t(click)=\"complete()\"\n\t\t\t[disabled]=\"!isValidStepIndex(currentIndex)\"\n\t\t>\n\t\t\t{{ submitLabel }}\n\t\t</button>\n\t</ng-container>\n</div>\n<!--end::Controls-->\n\n<!-- begin:default-nav -->\n<ng-template #defaultNavTpt let-steps=\"steps\" let-currentIndex=\"currentIndex\">\n\t<ul class=\"stepper__nav-list\">\n\t\t<li *ngFor=\"let step of steps; let i = index\" class=\"stepper__nav-item\">\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"\n\t\t\t\t\tstep?.stepTriggerTpt || defaultNavTriggerTpt\n\t\t\t\t\"\n\t\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\t\ttitle: step.title,\n\t\t\t\t\tindex: i,\n\t\t\t\t\tisCurrent: currentIndex === i,\n\t\t\t\t\tisCompleted: i < currentIndex\n\t\t\t\t}\"\n\t\t\t></ng-container>\n\t\t</li>\n\t</ul>\n</ng-template>\n<!-- end:default-nav -->\n\n<!-- begin:default-nav-trigger -->\n<ng-template\n\t#defaultNavTriggerTpt\n\tlet-title=\"title\"\n\tlet-index=\"index\"\n\tlet-isCurrent=\"isCurrent\"\n\tlet-isCompleted=\"isCompleted\"\n>\n\t<button\n\t\tclass=\"stepper__nav-trigger\"\n\t\t[class.stepper__nav-trigger--current]=\"isCurrent\"\n\t\t[class.stepper__nav-trigger--completed]=\"isCompleted\"\n\t\t[disabled]=\"!canNavigateTo(index)\"\n\t\t(click)=\"goTo(index)\"\n\t>\n\t\t<span class=\"stepper__nav-indicator\">{{ index + 1 }}</span>\n\t\t<span class=\"stepper__nav-title\" *ngIf=\"title\">{{ title }}</span>\n\t</button>\n</ng-template>\n<!-- end:default-nav-trigger -->\n","import { TemplateRef, Directive } from '@angular/core';\n\n@Directive({\n\tselector: '[hubStepTrigger] [stepTrigger]'\n})\nexport class StepTriggerDirective {\n\tconstructor(public template: TemplateRef<any>) {}\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { StepTriggerDirective } from './step-trigger.directive';\nimport { StepComponent } from './step/step.component';\nimport { StepperNavDirective } from './stepper-nav.directive';\nimport { StepperComponent } from './stepper/stepper.component';\nimport { PreviousButtonDirective } from './previous-button.directive';\nimport { NextButtonDirective } from './next-button.directive';\nimport { SubmitButtonDirective } from './submit-button.directive';\n\n@NgModule({\n\tdeclarations: [\n\t\tStepperComponent,\n\t\tStepComponent,\n\t\tStepTriggerDirective,\n\t\tStepperNavDirective\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tPreviousButtonDirective,\n\t\tNextButtonDirective,\n\t\tSubmitButtonDirective\n\t],\n\texports: [\n\t\tStepperComponent,\n\t\tStepComponent,\n\t\tStepTriggerDirective,\n\t\tStepperNavDirective,\n\t\tPreviousButtonDirective,\n\t\tNextButtonDirective,\n\t\tSubmitButtonDirective\n\t]\n})\nexport class StepperModule {}\n","import { Injectable, Renderer2, RendererFactory2 } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class StepperThemeService {\n\tprivate renderer: Renderer2;\n\n\tconstructor(rendererFactory: RendererFactory2) {\n\t\tthis.renderer = rendererFactory.createRenderer(null, null);\n\t}\n\n\tsetTheme(theme: { [key: string]: string }) {\n\t\tObject.keys(theme).forEach((key) => {\n\t\t\tthis.renderer.setStyle(\n\t\t\t\tdocument.documentElement,\n\t\t\t\t`--stepper-${key}`,\n\t\t\t\ttheme[key]\n\t\t\t);\n\t\t});\n\t}\n}\n\n// Usage in a component:\n// constructor(private themeService: StepperThemeService) {}\n//\n// ngOnInit() {\n//   this.themeService.setTheme({\n//     'primary-color': '#ff4081',\n//     'background-color': '#f0f0f0'\n//   });\n// }\n","/*\n * Public API Surface of stepper\n */\nexport * from './lib/stepper/stepper.component';\nexport * from './lib/step/step.component';\nexport * from './lib/stepper.module';\nexport * from './lib/previous-button.directive';\nexport * from './lib/next-button.directive';\nexport * from './lib/submit-button.directive';\nexport * from './lib/step-trigger.directive';\nexport * from './lib/stepper-nav.directive';\nexport * from './lib/services/stepper-theme-service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}