{"version":3,"file":"bravura-ui-stepper.mjs","sources":["../../../projects/ui/stepper/step-label-top.directive.ts","../../../projects/ui/stepper/stepper.component.ts","../../../projects/ui/stepper/stepper.component.html","../../../projects/ui/stepper/stepper.module.ts","../../../projects/ui/stepper/bravura-ui-stepper.ts"],"sourcesContent":["import { AfterContentInit, ContentChild, Directive, inject, Optional, TemplateRef } from '@angular/core';\r\nimport { MatStep } from '@angular/material/stepper';\r\n\r\n@Directive({\r\n\tselector: '[buiStepLabelTop]'\r\n})\r\nexport class StepLabelTopDirective {\r\n\tconstructor(@Optional() public templateRef: TemplateRef<any>) {}\r\n}\r\n\r\n@Directive({\r\n\tselector: 'mat-step'\r\n})\r\nexport class StepDirective implements AfterContentInit {\r\n\t@ContentChild(StepLabelTopDirective)\r\n\t@Optional()\r\n\tstepLabelTopDirective: StepLabelTopDirective;\r\n\r\n\tstep = inject(MatStep);\r\n\r\n\tconstructor() {}\r\n\r\n\tngAfterContentInit(): void {\r\n\t\t(this.step as any).stepLabelTopTemplate = this.stepLabelTopDirective?.templateRef;\r\n\t}\r\n}\r\n","import { CdkStepper, StepContentPositionState, STEPPER_GLOBAL_OPTIONS, StepperOptions } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport {\r\n\tAfterContentInit,\r\n\tafterNextRender,\r\n\tChangeDetectionStrategy,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tContentChildren,\r\n\tDestroyRef,\r\n\tDOCUMENT,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tinject,\r\n\tInject,\r\n\tInput,\r\n\tOptional,\r\n\tOutput,\r\n\tQueryList,\r\n\tSelf,\r\n\tSkipSelf,\r\n\tTemplateRef,\r\n\tViewChild,\r\n\tViewChildren,\r\n\tViewEncapsulation\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { MatStep, MatStepHeader, MatStepper, MatStepperIcon, MatStepperIconContext } from '@angular/material/stepper';\r\nimport { BehaviorModule } from '@bravura/ui/behavior';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\r\n\r\n/** @ignore */\r\nconst BREAKPOINT = 768;\r\n\r\n/**\r\n * [Angular Material's stepper](https://material.angular.io/components/stepper/overview) provides a wizard-like workflow by dividing\r\n * content into logical steps.\r\n *\r\n * This stepper extends Angular's to customise the presentation of its headers to achieve a better user experience in both mobile and\r\n * desktop browsers.\r\n *\r\n */\r\n\r\n@Component({\r\n\tselector: 'bui-stepper, [buiStepper]',\r\n\texportAs: 'buiStepper, matStepper, matVerticalStepper, matHorizontalStepper',\r\n\ttemplateUrl: './stepper.component.html',\r\n\tstyleUrls: ['./stepper.component.scss'],\r\n\tinputs: ['selectedIndex'],\r\n\thost: {\r\n\t\tclass: 'bui-stepper bui-host',\r\n\t\t'[class.bui-stepper-animations]': '_animationsReady',\r\n\t\t'[attr.aria-orientation]': 'orientation',\r\n\t\trole: 'tablist'\r\n\t},\r\n\tproviders: [\r\n\t\t{ provide: MatStepper, useExisting: StepperComponent },\r\n\t\t{ provide: CdkStepper, useExisting: StepperComponent },\r\n\t\t{ provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false } }\r\n\t],\r\n\tencapsulation: ViewEncapsulation.None,\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\timports: [MatStepHeader, BehaviorModule, CommonModule]\r\n})\r\nexport class StepperComponent extends CdkStepper implements AfterContentInit {\r\n\t/** @ignore The list of step headers of the steps in the stepper. */\r\n\t@ViewChildren(MatStepHeader) override _stepHeader!: QueryList<MatStepHeader>;\r\n\r\n\t/** @ignore Full list of steps inside the stepper, including inside nested steppers. */\r\n\t@ContentChildren(MatStep, { descendants: true }) override _steps!: QueryList<MatStep>;\r\n\r\n\t/** @ignore Steps that belong to the current stepper, excluding ones from nested steppers. */\r\n\toverride readonly steps: QueryList<MatStep> = new QueryList<MatStep>();\r\n\r\n\t/** @ignore Custom icon overrides passed in by the consumer. */\r\n\t@ContentChildren(MatStepperIcon, { descendants: true }) _icons!: QueryList<MatStepperIcon>;\r\n\r\n\t/** @ignore Event emitted when the current step is done transitioning in. */\r\n\t@Output() readonly animationDone: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n\t/** Whether ripples should be disabled for the step headers. */\r\n\t@Input() disableRipple?: boolean;\r\n\r\n\t/** Theme color for all of the steps in stepper. */\r\n\t@Input() color: ThemePalette;\r\n\r\n\t/**\r\n\t * A function that constructs the text in the progress cycle for the 'narrow' view.\r\n\t *\r\n\t * Default value: `'{selected step} of {total number of steps}'`\r\n\t */\r\n\t@Input() indicatorFormatter: (index: number, total: number) => string;\r\n\r\n\t/** The text that precedes the name of the next step label, used in the 'narrow' view.   */\r\n\t@Input() nextStepLabelPrefix = 'Next: ';\r\n\r\n\t/** @ignore Consumer-specified template-refs to be used to override the header icons. */\r\n\t_iconOverrides: Record<string, TemplateRef<MatStepperIconContext>> = {};\r\n\r\n\t/** @ignore Whether the stepper is in a narrow container */\r\n\t_narrow = false;\r\n\r\n\t/** @ignore Current state of the sidenav animation. */\r\n\t_leftDrawerState: 'open-instant' | 'open' | 'void' = 'open-instant';\r\n\r\n\t/** @ignore Current state of the sidenav animation. */\r\n\t_topDrawerState: 'open-instant' | 'open' | 'void' = 'void';\r\n\r\n\t/** @ignore Event emitted when the width of the stepper has changed. */\r\n\t_widthChanges = new Subject<number>();\r\n\r\n\t/** @ignore */ readonly _progressCircleSize = 80;\r\n\t/** @ignore */ readonly _progressCircleWidth = 5;\r\n\t/** @ignore */ _stepTransitioning = false;\r\n\t/** @ignore */ _animationsReady = false;\r\n\r\n\t/** @ignore */\r\n\tprivate destroyRef = inject(DestroyRef);\r\n\r\n\t@ViewChild('editIconTemplate', { static: true })\r\n\tprivate _editIconTemplate!: TemplateRef<any>;\r\n\r\n\tconstructor(\r\n\t\tprivate changeDetectorRef: ChangeDetectorRef,\r\n\t\tprivate _buiElRef: ElementRef<HTMLElement>,\r\n\t\t@Inject(DOCUMENT) _document: any,\r\n\t\t@Self() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions: StepperOptions,\r\n\t\t@Optional() @SkipSelf() @Inject(STEPPER_GLOBAL_OPTIONS) defaultStepperOptions?: StepperOptions\r\n\t) {\r\n\t\tsuper();\r\n\t\tthis.orientation = 'vertical';\r\n\t\tthis.indicatorFormatter = (index, total) => `${index} of ${total}`;\r\n\t\tObject.keys(defaultStepperOptions || {})\r\n\t\t\t.filter(k => k !== 'displayDefaultIndicatorType')\r\n\t\t\t.forEach(((k: keyof StepperOptions) => (stepperOptions[k] = defaultStepperOptions![k])) as any);\r\n\r\n\t\tlet reqAnimFrameId: number;\r\n\t\tafterNextRender(() => {\r\n\t\t\treqAnimFrameId = requestAnimationFrame(() => {\r\n\t\t\t\tthis._animationsReady = true;\r\n\t\t\t\tthis.changeDetectorRef.markForCheck();\r\n\t\t\t});\r\n\r\n\t\t\tif (typeof queueMicrotask === 'function') {\r\n\t\t\t\tqueueMicrotask(() => {\r\n\t\t\t\t\tthis.animationDone.emit();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.destroyRef.onDestroy(() => {\r\n\t\t\tcancelAnimationFrame(reqAnimFrameId);\r\n\t\t});\r\n\r\n\t\tthis._widthChanges\r\n\t\t\t.pipe(debounceTime(200), distinctUntilChanged(), takeUntilDestroyed())\r\n\t\t\t.subscribe(w => this._widthChanged(w));\r\n\t}\r\n\r\n\toverride ngAfterContentInit() {\r\n\t\tsuper.ngAfterContentInit();\r\n\t\tthis._icons.forEach(({ name, templateRef }) => (this._iconOverrides[name] = templateRef));\r\n\r\n\t\t// Mark the component for change detection whenever the content children query changes\r\n\t\tthis.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\r\n\t\t\tthis._stateChanged();\r\n\t\t});\r\n\r\n\t\tthis._iconOverrides.edit = this._iconOverrides.edit || this._editIconTemplate;\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_stepIsNavigable(index: number, step: MatStep): boolean {\r\n\t\treturn step.completed || this.selectedIndex === index || !this.linear;\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_widthChanged(w: number) {\r\n\t\tif (w === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst narrow = Math.abs(w - BREAKPOINT) < 20 ? this._narrow : w < BREAKPOINT;\r\n\t\tconst stepperNarrowCls = 'bui-stepper-narrow';\r\n\t\tconst classList = this._buiElRef.nativeElement.classList;\r\n\r\n\t\tif (narrow) {\r\n\t\t\tthis._leftDrawerState = 'void';\r\n\t\t\tthis._topDrawerState = 'open';\r\n\t\t\tclassList.add(stepperNarrowCls);\r\n\t\t} else {\r\n\t\t\tthis._topDrawerState = 'void';\r\n\t\t\tthis._leftDrawerState = 'open';\r\n\t\t\tclassList.remove(stepperNarrowCls);\r\n\t\t}\r\n\r\n\t\tif (this._narrow !== narrow) {\r\n\t\t\tthis._narrow = narrow;\r\n\t\t\tthis._stateChanged();\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_onStepTransitionEnd(event: TransitionEvent, direction: StepContentPositionState) {\r\n\t\tif (event.target !== event.currentTarget || event.propertyName !== 'transform') {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (direction === 'current') {\r\n\t\t\tthis.animationDone.emit();\r\n\t\t\tthis._stepTransitioning = false;\r\n\t\t\tthis.changeDetectorRef.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_startStepTransition() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._stepTransitioning = true;\r\n\t\t\tthis.changeDetectorRef.markForCheck();\r\n\t\t});\r\n\t}\r\n\r\n\ttoCustomStep(step: any) {\r\n\t\treturn <any>step;\r\n\t}\r\n}\r\n","<div class=\"bui-stepper-wrapper\" [style.display]=\"_leftDrawerState.startsWith('open') ? 'flex' : 'block'\" #sizeMonitor>\r\n\t<div class=\"bui-stepper-left-header-container bui-stepper-drawer-{{ _leftDrawerState }}\">\r\n\t\t<div class=\"bui-step-progress-label\">Step {{ selectedIndex + 1 }} of {{ steps.length }}</div>\r\n\t\t@for (step of steps; track step; let i = $index; let isLast = $last) {\r\n\t\t\t<div class=\"bui-stepper-header-wrapper\" [class.bui-stepper-vertical-line]=\"!isLast\">\r\n\t\t\t\t<mat-step-header\r\n\t\t\t\t\tclass=\"bui-stepper-header\"\r\n\t\t\t\t\t(click)=\"step.select()\"\r\n\t\t\t\t\t(keydown)=\"_onKeydown($event)\"\r\n\t\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\r\n\t\t\t\t\t[id]=\"_getStepLabelId(i)\"\r\n\t\t\t\t\t[attr.aria-posinset]=\"i + 1\"\r\n\t\t\t\t\t[attr.aria-setsize]=\"steps.length\"\r\n\t\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\r\n\t\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\r\n\t\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\r\n\t\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\r\n\t\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\r\n\t\t\t\t\t[index]=\"i\"\r\n\t\t\t\t\t[state]=\"step.indicatorType()\"\r\n\t\t\t\t\t[label]=\"step.stepLabel || step.label\"\r\n\t\t\t\t\t[selected]=\"selectedIndex === i\"\r\n\t\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\r\n\t\t\t\t\t[optional]=\"step.optional\"\r\n\t\t\t\t\t[errorMessage]=\"step.errorMessage\"\r\n\t\t\t\t\t[iconOverrides]=\"_iconOverrides\"\r\n\t\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\r\n\t\t\t\t\t[color]=\"step.color || color\"\r\n\t\t\t\t></mat-step-header>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<div\r\n\t\tclass=\"bui-stepper-content-container\"\r\n\t\t[buiSizingBy]=\"sizeMonitor\"\r\n\t\t(buiResized)=\"_widthChanges.next($event.width)\"\r\n\t>\r\n\t\t<div\r\n\t\t\tclass=\"bui-stepper-top-header-container bui-stepper-drawer-{{ _topDrawerState }}\"\r\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\r\n\t\t>\r\n\t\t\t<div class=\"bui-stepper-top-header-progress\">\r\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\r\n\t\t\t\t\tStep {{ indicatorFormatter(selectedIndex + 1, steps.length) }}\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"bui-stepper-progress-indicator\">\r\n\t\t\t\t@for (s of steps; track s; let i = $index) {\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t(click)=\"selectedIndex = i\"\r\n\t\t\t\t\t\tclass=\"bui-stepper-progress-indicator-section\"\r\n\t\t\t\t\t\t[class.bui-step-section-interacted]=\"i <= selectedIndex\"\r\n\t\t\t\t\t></div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t\t@if (selectedIndex < steps.length - 1) {\r\n\t\t\t\t<div class=\"bui-stepper-top-header-title-next\">\r\n\t\t\t\t\t{{ nextStepLabelPrefix }}\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\r\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\r\n\t\t\t\t\t></ng-template>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\r\n\t\t\t@if (selected) {\r\n\t\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\">\r\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"toCustomStep(selected).stepLabelTopTemplate\"></ng-container>\r\n\t\t\t\t\t<div class=\"bui-stepper-top-header-title\">\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\r\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\r\n\t\t\t\t\t\t></ng-template>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t\t<div class=\"bui-stepper-content-wrapper\" [class.bui-stepper-content-wrapper-transitioning]=\"_stepTransitioning\">\r\n\t\t\t@for (step of steps; track step; let i = $index) {\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"bui-stepper-content bui-stepper-content-{{ _getAnimationDirection(i) }}\"\r\n\t\t\t\t\trole=\"tabpanel\"\r\n\t\t\t\t\t(transitionstart)=\"_startStepTransition()\"\r\n\t\t\t\t\t(transitionend)=\"_onStepTransitionEnd($event, _getAnimationDirection(i))\"\r\n\t\t\t\t\t[id]=\"_getStepContentId(i)\"\r\n\t\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\r\n\t\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\r\n\t\t\t\t>\r\n\t\t\t\t\t@if (!_narrow) {\r\n\t\t\t\t\t\t<div class=\"bui-stepper-content-header-label\">\r\n\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"toCustomStep(step).stepLabelTopTemplate\"></ng-container>\r\n\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\r\n\t\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: step }\"\r\n\t\t\t\t\t\t\t\t></ng-template>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<ng-template #labelTemplate let-step>\r\n\t@if (step.stepLabel) {\r\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\r\n\t} @else {\r\n\t\t{{ step.label }}\r\n\t}\r\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\r\n</ng-template>\r\n\r\n<ng-template #editIconTemplate let-index=\"index\">\r\n\t<span>{{ index + 1 }}</span>\r\n</ng-template>\r\n","import { PortalModule } from '@angular/cdk/portal';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { BehaviorModule } from '@bravura/ui/behavior';\r\nimport { StepDirective, StepLabelTopDirective } from './step-label-top.directive';\r\nimport { StepperComponent } from './stepper.component';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tStepperComponent,\r\n\t\tStepDirective,\r\n\t\tStepLabelTopDirective,\r\n\t\tCommonModule,\r\n\t\tPortalModule,\r\n\t\tCdkStepperModule,\r\n\t\tMatStepperModule,\r\n\t\tMatButtonModule,\r\n\t\tMatIconModule,\r\n\t\tMatRippleModule,\r\n\t\tMatProgressSpinnerModule,\r\n\t\tBehaviorModule\r\n\t],\r\n\texports: [StepperComponent, MatStepperModule, StepLabelTopDirective, StepDirective]\r\n})\r\nexport class StepperModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}