UNPKG

@angular/material

Version:
1 lines 48 kB
{"version":3,"file":"stepper.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/stepper/step-label.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/stepper/stepper-intl.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/stepper/step-header.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/stepper/step-header.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/stepper/stepper-icon.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/stepper/step-content.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/stepper/stepper.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/stepper/step.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/stepper/stepper.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/stepper/stepper-button.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/stepper/stepper-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive} from '@angular/core';\nimport {CdkStepLabel} from '@angular/cdk/stepper';\n\n@Directive({\n selector: '[matStepLabel]',\n})\nexport class MatStepLabel extends CdkStepLabel {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Service} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/** Stepper data that is required for internationalization. */\n@Service()\nexport class MatStepperIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n\n /** Label that is rendered below optional steps. */\n optionalLabel: string = 'Optional';\n\n /** Label that is used to indicate step as completed to screen readers. */\n completedLabel: string = 'Completed';\n\n /** Label that is used to indicate step as editable to screen readers. */\n editableLabel: string = 'Editable';\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n ViewEncapsulation,\n TemplateRef,\n AfterViewInit,\n inject,\n} from '@angular/core';\nimport {Subscription} from 'rxjs';\nimport {MatStepLabel} from './step-label';\nimport {MatStepperIntl} from './stepper-intl';\nimport {MatStepperIconContext} from './stepper-icon';\nimport {CdkStepHeader, StepState} from '@angular/cdk/stepper';\nimport {_StructuralStylesLoader, MatRipple, ThemePalette} from '../core';\nimport {MatIcon} from '../icon';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {_CdkPrivateStyleLoader, _VisuallyHiddenLoader} from '@angular/cdk/private';\n\n@Component({\n selector: 'mat-step-header',\n templateUrl: 'step-header.html',\n styleUrl: 'step-header.css',\n host: {\n 'class': 'mat-step-header',\n '[class.mat-step-header-empty-label]': '_hasEmptyLabel()',\n '[class]': '\"mat-\" + (color || \"primary\")',\n 'role': '', // ignore cdk role in favor of setting appropriately in html\n },\n encapsulation: ViewEncapsulation.None,\n imports: [MatRipple, NgTemplateOutlet, MatIcon],\n})\nexport class MatStepHeader extends CdkStepHeader implements AfterViewInit, OnDestroy {\n _intl = inject(MatStepperIntl);\n private _focusMonitor = inject(FocusMonitor);\n\n private _intlSubscription: Subscription;\n\n /** State of the given step. */\n @Input() state!: StepState;\n\n /** Label of the given step. */\n @Input() label!: MatStepLabel | string;\n\n /** Error message to display when there's an error. */\n @Input() errorMessage!: string;\n\n /** Overrides for the header icons, passed in via the stepper. */\n @Input() iconOverrides!: {[key: string]: TemplateRef<MatStepperIconContext>};\n\n /** Index of the given step. */\n @Input() index!: number;\n\n /** Whether the given step is selected. */\n @Input() selected: boolean = false;\n\n /** Whether the given step label is active. */\n @Input() active: boolean = false;\n\n /** Whether the given step is optional. */\n @Input() optional: boolean = false;\n\n /** Whether the ripple should be disabled. */\n @Input() disableRipple: boolean = false;\n\n /**\n * Theme color of the step header. This API is supported in M2 themes only, it\n * has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n @Input() color!: ThemePalette;\n\n constructor() {\n super();\n\n const styleLoader = inject(_CdkPrivateStyleLoader);\n styleLoader.load(_StructuralStylesLoader);\n styleLoader.load(_VisuallyHiddenLoader);\n const changeDetectorRef = inject(ChangeDetectorRef);\n this._intlSubscription = this._intl.changes.subscribe(() => changeDetectorRef.markForCheck());\n }\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n }\n\n ngOnDestroy() {\n this._intlSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Focuses the step header. */\n override focus(origin?: FocusOrigin, options?: FocusOptions) {\n if (origin) {\n this._focusMonitor.focusVia(this._elementRef, origin, options);\n } else {\n this._elementRef.nativeElement.focus(options);\n }\n }\n\n /** Returns string label of given step if it is a text label. */\n _stringLabel(): string | null {\n return this.label instanceof MatStepLabel ? null : this.label;\n }\n\n /** Returns MatStepLabel if the label of given step is a template label. */\n _templateLabel(): MatStepLabel | null {\n return this.label instanceof MatStepLabel ? this.label : null;\n }\n\n /** Returns the host HTML element. */\n _getHostElement() {\n return this._elementRef.nativeElement;\n }\n\n _getDefaultTextForState(state: StepState): string {\n if (state == 'number') {\n return `${this.index + 1}`;\n }\n if (state == 'edit') {\n return 'create';\n }\n if (state == 'error') {\n return 'warning';\n }\n return state;\n }\n\n protected _hasEmptyLabel() {\n return (\n !this._stringLabel() &&\n !this._templateLabel() &&\n !this._hasOptionalLabel() &&\n !this._hasErrorLabel()\n );\n }\n\n protected _hasOptionalLabel() {\n return this.optional && this.state !== 'error';\n }\n\n protected _hasErrorLabel() {\n return this.state === 'error';\n }\n}\n","<div class=\"mat-step-header-ripple mat-focus-indicator\" matRipple\n [matRippleTrigger]=\"_getHostElement()\"\n [matRippleDisabled]=\"disableRipple\"></div>\n\n<div class=\"mat-step-icon-state-{{state}} mat-step-icon\" [class.mat-step-icon-selected]=\"selected\">\n <div class=\"mat-step-icon-content\">\n @if (iconOverrides && iconOverrides[state]) {\n <ng-container\n [ngTemplateOutlet]=\"iconOverrides[state]\"\n [ngTemplateOutletContext]=\"{index, active, optional}\"></ng-container>\n } @else {\n @switch (state) {\n @case ('number') {\n <span aria-hidden=\"true\">{{_getDefaultTextForState(state)}}</span>\n }\n\n @default {\n @if (state === 'done') {\n <span class=\"cdk-visually-hidden\">{{_intl.completedLabel}}</span>\n } @else if (state === 'edit') {\n <span class=\"cdk-visually-hidden\">{{_intl.editableLabel}}</span>\n }\n\n <mat-icon aria-hidden=\"true\">{{_getDefaultTextForState(state)}}</mat-icon>\n }\n }\n }\n </div>\n</div>\n<div class=\"mat-step-label\"\n [class.mat-step-label-active]=\"active\"\n [class.mat-step-label-selected]=\"selected\"\n [class.mat-step-label-error]=\"state == 'error'\">\n @if (_templateLabel(); as templateLabel) {\n <!-- If there is a label template, use it. -->\n <div class=\"mat-step-text-label\">\n <ng-container [ngTemplateOutlet]=\"templateLabel.template\"></ng-container>\n </div>\n } @else if (_stringLabel()) {\n <!-- If there is no label template, fall back to the text label. -->\n <div class=\"mat-step-text-label\">{{label}}</div>\n }\n\n @if (_hasOptionalLabel()) {\n <div class=\"mat-step-optional\">{{_intl.optionalLabel}}</div>\n }\n\n @if (_hasErrorLabel()) {\n <div class=\"mat-step-sub-label-error\">{{errorMessage}}</div>\n }\n</div>\n\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, Input, TemplateRef, inject} from '@angular/core';\nimport {StepState} from '@angular/cdk/stepper';\n\n/** Template context available to an attached `matStepperIcon`. */\nexport interface MatStepperIconContext {\n /** Index of the step. */\n index: number;\n /** Whether the step is currently active. */\n active: boolean;\n /** Whether the step is optional. */\n optional: boolean;\n}\n\n/**\n * Template to be used to override the icons inside the step header.\n */\n@Directive({\n selector: 'ng-template[matStepperIcon]',\n})\nexport class MatStepperIcon {\n templateRef = inject<TemplateRef<MatStepperIconContext>>(TemplateRef);\n\n /** Name of the icon to be overridden. */\n @Input('matStepperIcon') name!: StepState;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, TemplateRef, inject} from '@angular/core';\n\n/**\n * Content for a `mat-step` that will be rendered lazily.\n */\n@Directive({\n selector: 'ng-template[matStepContent]',\n})\nexport class MatStepContent<C = unknown> {\n _template = inject<TemplateRef<C>>(TemplateRef);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CdkStep, CdkStepper} from '@angular/cdk/stepper';\nimport {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n input,\n NgZone,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n signal,\n TemplateRef,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {AbstractControl, FormGroupDirective, NgForm} from '@angular/forms';\nimport {_animationsDisabled, ErrorStateMatcher, ThemePalette} from '../core';\nimport {Platform} from '@angular/cdk/platform';\nimport {CdkPortalOutlet, TemplatePortal} from '@angular/cdk/portal';\nimport {Subscription} from 'rxjs';\nimport {takeUntil, map, startWith, switchMap} from 'rxjs/operators';\n\nimport {MatStepHeader} from './step-header';\nimport {MatStepLabel} from './step-label';\nimport {MatStepperIcon, MatStepperIconContext} from './stepper-icon';\nimport {MatStepContent} from './step-content';\nimport type {Field} from '@angular/forms/signals';\n\n@Component({\n selector: 'mat-step',\n templateUrl: 'step.html',\n providers: [\n {provide: ErrorStateMatcher, useExisting: MatStep},\n {provide: CdkStep, useExisting: MatStep},\n ],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matStep',\n imports: [CdkPortalOutlet],\n host: {\n 'hidden': '', // Hide the steps so they don't affect the layout.\n },\n})\nexport class MatStep extends CdkStep implements ErrorStateMatcher, AfterContentInit, OnDestroy {\n private _errorStateMatcher = inject(ErrorStateMatcher, {skipSelf: true});\n private _viewContainerRef = inject(ViewContainerRef);\n private _isSelected = Subscription.EMPTY;\n\n /** Content for step label given by `<ng-template matStepLabel>`. */\n // We need an initializer here to avoid a TS error.\n @ContentChild(MatStepLabel) override stepLabel: MatStepLabel = undefined!;\n\n /**\n * Theme color for the particular step. This API is supported in M2 themes\n * only, it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n @Input() color: ThemePalette;\n\n /** Content that will be rendered lazily. */\n @ContentChild(MatStepContent, {static: false}) _lazyContent!: MatStepContent;\n\n /** Currently-attached portal containing the lazy content. */\n _portal!: TemplatePortal;\n\n ngAfterContentInit() {\n this._isSelected = this._stepper.steps.changes\n .pipe(\n switchMap(() => {\n return this._stepper.selectionChange.pipe(\n map(event => event.selectedStep === this),\n startWith(this._stepper.selected === this),\n );\n }),\n )\n .subscribe(isSelected => {\n if (isSelected && this._lazyContent && !this._portal) {\n this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef!);\n }\n });\n }\n\n ngOnDestroy() {\n this._isSelected.unsubscribe();\n }\n\n /** Custom error state matcher that additionally checks for validity of interacted form. */\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n const originalErrorState = this._errorStateMatcher.isErrorState(control, form);\n\n // Custom error state checks for the validity of form that is not submitted or touched\n // since user can trigger a form change by calling for another step without directly\n // interacting with the current form.\n const customErrorState = !!(control && control.invalid && this.interacted);\n\n return originalErrorState || customErrorState;\n }\n\n isSignalErrorState(field: Field<unknown> | null): boolean {\n const originalErrorState = this._errorStateMatcher.isSignalErrorState?.(field) ?? false;\n const customErrorState = !!(field && field().invalid() && this.interacted);\n return originalErrorState || customErrorState;\n }\n}\n\n@Component({\n selector: 'mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]',\n exportAs: 'matStepper, matVerticalStepper, matHorizontalStepper',\n templateUrl: 'stepper.html',\n styleUrl: 'stepper.css',\n host: {\n '[class.mat-stepper-horizontal]': 'orientation === \"horizontal\"',\n '[class.mat-stepper-vertical]': 'orientation === \"vertical\"',\n '[class.mat-stepper-label-position-end]':\n 'orientation === \"horizontal\" && labelPosition == \"end\"',\n '[class.mat-stepper-label-position-bottom]':\n 'orientation === \"horizontal\" && labelPosition == \"bottom\"',\n '[class.mat-stepper-header-position-bottom]': 'headerPosition === \"bottom\"',\n '[class.mat-stepper-animating]': '_isAnimating()',\n '[style.--mat-stepper-animation-duration]': '_getAnimationDuration()',\n },\n providers: [{provide: CdkStepper, useExisting: MatStepper}],\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, MatStepHeader],\n})\nexport class MatStepper extends CdkStepper implements AfterViewInit, AfterContentInit, OnDestroy {\n private _ngZone = inject(NgZone);\n private _renderer = inject(Renderer2);\n private _animationsDisabled = _animationsDisabled();\n private _cleanupTransition: (() => void) | undefined;\n protected _isAnimating = signal(false);\n\n /** The list of step headers of the steps in the stepper. */\n @ViewChildren(MatStepHeader) override _stepHeader: QueryList<MatStepHeader> = undefined!;\n\n /** Elements hosting the step animations. */\n @ViewChildren('animatedContainer') _animatedContainers!: QueryList<ElementRef>;\n\n /** Full list of steps inside the stepper, including inside nested steppers. */\n @ContentChildren(MatStep, {descendants: true}) override _steps: QueryList<MatStep> = undefined!;\n\n /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n override readonly steps: QueryList<MatStep> = new QueryList<MatStep>();\n\n /** Custom icon overrides passed in by the consumer. */\n @ContentChildren(MatStepperIcon, {descendants: true}) _icons!: QueryList<MatStepperIcon>;\n\n /** Event emitted when the current step is done transitioning in. */\n @Output() readonly animationDone: EventEmitter<void> = new EventEmitter<void>();\n\n /** Whether ripples should be disabled for the step headers. */\n @Input() disableRipple: boolean = false;\n\n /**\n * Theme color for all of the steps in stepper. This API is supported in M2\n * themes only, it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/stepper/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n @Input() color: ThemePalette;\n\n /**\n * Whether the label should display in bottom or end position.\n * Only applies in the `horizontal` orientation.\n */\n @Input()\n labelPosition: 'bottom' | 'end' = 'end';\n\n /**\n * Position of the stepper's header.\n * Only applies in the `horizontal` orientation.\n */\n @Input()\n headerPosition: 'top' | 'bottom' = 'top';\n\n /**\n * ARIA label for the stepper.\n */\n @Input('aria-label')\n ariaLabel: string | null = null;\n\n /** The content prefix to use in the stepper header. */\n readonly headerPrefix = input<TemplateRef<unknown> | null>(null);\n\n /** Consumer-specified template-refs to be used to override the header icons. */\n _iconOverrides: Record<string, TemplateRef<MatStepperIconContext>> = {};\n\n /** Duration for the animation. Will be normalized to milliseconds if no units are set. */\n @Input()\n get animationDuration(): string {\n return this._animationDuration;\n }\n set animationDuration(value: string) {\n if (/^[0-9]+(?:\\.[0-9]+)?$/.test(value)) {\n this._animationDuration = value + 'ms';\n } else if (/^[0-9]+(?:\\.[0-9]+)?(?:ms|s)$/.test(value)) {\n this._animationDuration = value;\n } else {\n this._animationDuration = '';\n }\n }\n private _animationDuration = '';\n\n /** Whether the stepper is rendering on the server. */\n protected _isServer: boolean = !inject(Platform).isBrowser;\n\n constructor() {\n super();\n\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const nodeName = elementRef.nativeElement.nodeName.toLowerCase();\n this.orientation = nodeName === 'mat-vertical-stepper' ? 'vertical' : 'horizontal';\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n this._icons.forEach(({name, templateRef}) => (this._iconOverrides[name] = templateRef));\n\n // Mark the component for change detection whenever the content children query changes\n this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => this._stateChanged());\n\n // Transition events won't fire if animations are disabled so we simulate them.\n this.selectedIndexChange.pipe(takeUntil(this._destroyed)).subscribe(() => {\n const duration = this._getAnimationDuration();\n if (duration === '0ms' || duration === '0s') {\n this._onAnimationDone();\n } else {\n this._isAnimating.set(true);\n }\n });\n\n this._ngZone.runOutsideAngular(() => {\n if (!this._animationsDisabled) {\n setTimeout(() => {\n // Delay enabling the animations so we don't animate the initial state.\n this._elementRef.nativeElement.classList.add('mat-stepper-animations-enabled');\n\n // Bind this outside the zone since it fires for all transitions inside the stepper.\n this._cleanupTransition = this._renderer.listen(\n this._elementRef.nativeElement,\n 'transitionend',\n this._handleTransitionend,\n );\n }, 200);\n }\n });\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n\n // Prior to #30314 the stepper had animation `done` events bound to each animated container.\n // The animations module was firing them on initialization and for each subsequent animation.\n // Since the events were bound in the template, it had the unintended side-effect of triggering\n // change detection as well. It appears that this side-effect ended up being load-bearing,\n // because it was ensuring that the content elements (e.g. `matStepLabel`) that are defined\n // in sub-components actually get picked up in a timely fashion. This subscription simulates\n // the same change detection by using `queueMicrotask` similarly to the animations module.\n if (typeof queueMicrotask === 'function') {\n let hasEmittedInitial = false;\n this._animatedContainers.changes\n .pipe(startWith(null), takeUntil(this._destroyed))\n .subscribe(() =>\n queueMicrotask(() => {\n // Simulate the initial `animationDone` event\n // that gets emitted by the animations module.\n if (!hasEmittedInitial) {\n hasEmittedInitial = true;\n this.animationDone.emit();\n }\n\n this._stateChanged();\n }),\n );\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._cleanupTransition?.();\n }\n\n _getAnimationDuration() {\n if (this._animationsDisabled) {\n return '0ms';\n }\n\n if (this.animationDuration) {\n return this.animationDuration;\n }\n\n return this.orientation === 'horizontal' ? '500ms' : '225ms';\n }\n\n private _handleTransitionend = (event: TransitionEvent) => {\n const target = event.target as HTMLElement | null;\n\n if (!target) {\n return;\n }\n\n // Because we bind a single `transitionend` handler on the host node and because transition\n // events bubble, we have to filter down to only the active step so don't emit events too\n // often. We check the orientation and `property` name first to reduce the amount of times\n // we need to check the DOM.\n const isHorizontalActiveElement =\n this.orientation === 'horizontal' &&\n event.propertyName === 'transform' &&\n target.classList.contains('mat-horizontal-stepper-content-current');\n const isVerticalActiveElement =\n this.orientation === 'vertical' &&\n event.propertyName === 'grid-template-rows' &&\n target.classList.contains('mat-vertical-content-container-active');\n\n // Finally we need to ensure that the animated element is a direct descendant,\n // rather than one coming from a nested stepper.\n const shouldEmit =\n (isHorizontalActiveElement || isVerticalActiveElement) &&\n this._animatedContainers.find(ref => ref.nativeElement === target);\n\n if (shouldEmit) {\n this._onAnimationDone();\n }\n };\n\n private _onAnimationDone() {\n this._isAnimating.set(false);\n this.animationDone.emit();\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n</ng-template>\n","<!--\n We need to project the content somewhere to avoid hydration errors. Some observations:\n 1. This is only necessary on the server.\n 2. We get a hydration error if there aren't any nodes after the `ng-content`.\n 3. We get a hydration error if `ng-content` is wrapped in another element.\n-->\n@if (_isServer) {\n <ng-content/>\n}\n\n@switch (orientation) {\n @case ('horizontal') {\n <div class=\"mat-horizontal-stepper-wrapper\">\n @if (headerPrefix()) {\n <div class=\"mat-horizontal-stepper-header-wrapper\">\n <ng-container [ngTemplateOutlet]=\"headerPrefix()\"/>\n <ng-container [ngTemplateOutlet]=\"horizontalStepsTemplate\"\n [ngTemplateOutletContext]=\"{steps}\"/>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"horizontalStepsTemplate\"\n [ngTemplateOutletContext]=\"{steps}\"/>\n }\n\n <div class=\"mat-horizontal-content-container\">\n @for (step of steps; track step) {\n <div\n #animatedContainer\n class=\"mat-horizontal-stepper-content\"\n role=\"tabpanel\"\n [id]=\"_getStepContentId($index)\"\n [attr.aria-labelledby]=\"_getStepLabelId($index)\"\n [class]=\"'mat-horizontal-stepper-content-' + _getAnimationDirection($index)\"\n [attr.inert]=\"selectedIndex === $index ? null : ''\">\n <ng-container [ngTemplateOutlet]=\"step.content\"/>\n </div>\n }\n </div>\n </div>\n }\n\n @case ('vertical') {\n <div class=\"mat-vertical-stepper-wrapper\">\n @if (headerPrefix()) {\n <ng-container [ngTemplateOutlet]=\"headerPrefix()\"/>\n }\n\n @for (step of steps; track step) {\n <div class=\"mat-step\">\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step}\"/>\n <div\n #animatedContainer\n class=\"mat-vertical-content-container\"\n [class.mat-stepper-vertical-line]=\"!$last\"\n [class.mat-vertical-content-container-active]=\"selectedIndex === $index\"\n [attr.inert]=\"selectedIndex === $index ? null : ''\"\n [attr.aria-label]=\"ariaLabel\">\n <div\n class=\"mat-vertical-stepper-content\"\n role=\"region\"\n [id]=\"_getStepContentId($index)\"\n [attr.aria-labelledby]=\"_getStepLabelId($index)\">\n <div class=\"mat-vertical-content\">\n <ng-container [ngTemplateOutlet]=\"step.content\"/>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n }\n}\n\n<!-- Common step templating -->\n<ng-template let-step=\"step\" #stepTemplate>\n <mat-step-header\n [class.mat-horizontal-stepper-header]=\"orientation === 'horizontal'\"\n [class.mat-vertical-stepper-header]=\"orientation === 'vertical'\"\n (click)=\"step.select()\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === step.index() ? 0 : -1\"\n [id]=\"_getStepLabelId(step.index())\"\n [attr.role]=\"orientation === 'horizontal' ? 'tab' : 'button'\"\n [attr.aria-posinset]=\"orientation === 'horizontal' ? step.index() + 1 : null\"\n [attr.aria-setsize]=\"orientation === 'horizontal' ? steps.length : null\"\n [attr.aria-selected]=\"orientation === 'horizontal' ? step.isSelected() : null\"\n [attr.aria-current]=\"orientation === 'vertical' && step.isSelected() ? 'step' : null\"\n [attr.aria-disabled]=\"orientation === 'vertical' && step.isSelected() ? 'true' : null\"\n [attr.aria-expanded]=\"orientation === 'vertical' ? step.isSelected() : null\"\n [attr.aria-controls]=\"_getStepContentId(step.index())\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"step.isNavigable() ? null : true\"\n [index]=\"step.index()\"\n [state]=\"step.indicatorType()\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"step.isSelected()\"\n [active]=\"step.isNavigable()\"\n [optional]=\"step.optional\"\n [errorMessage]=\"step.errorMessage\"\n [iconOverrides]=\"_iconOverrides\"\n [disableRipple]=\"disableRipple || !step.isNavigable()\"\n [color]=\"step.color || color\"/>\n</ng-template>\n\n<ng-template #horizontalStepsTemplate let-steps=\"steps\">\n <div\n aria-orientation=\"horizontal\"\n class=\"mat-horizontal-stepper-header-container\"\n role=\"tablist\"\n [attr.aria-label]=\"ariaLabel\">\n @for (step of steps; track step) {\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step}\"/>\n @if (!$last) {\n <div class=\"mat-stepper-horizontal-line\"></div>\n }\n }\n </div>\n</ng-template>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CdkStepperNext, CdkStepperPrevious} from '@angular/cdk/stepper';\nimport {Directive} from '@angular/core';\n\n/** Button that moves to the next step in a stepper workflow. */\n@Directive({\n selector: 'button[matStepperNext]',\n host: {\n 'class': 'mat-stepper-next',\n '[type]': 'type',\n },\n})\nexport class MatStepperNext extends CdkStepperNext {}\n\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n selector: 'button[matStepperPrevious]',\n host: {\n 'class': 'mat-stepper-previous',\n '[type]': 'type',\n },\n})\nexport class MatStepperPrevious extends CdkStepperPrevious {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {CdkStepperModule} from '@angular/cdk/stepper';\nimport {NgModule} from '@angular/core';\nimport {ErrorStateMatcher, MatRippleModule} from '../core';\nimport {MatIconModule} from '../icon';\nimport {MatStepHeader} from './step-header';\nimport {MatStepLabel} from './step-label';\nimport {MatStep, MatStepper} from './stepper';\nimport {MatStepperNext, MatStepperPrevious} from './stepper-button';\nimport {MatStepperIcon} from './stepper-icon';\nimport {MatStepContent} from './step-content';\n\n@NgModule({\n imports: [\n PortalModule,\n CdkStepperModule,\n MatIconModule,\n MatRippleModule,\n MatStep,\n MatStepLabel,\n MatStepper,\n MatStepperNext,\n MatStepperPrevious,\n MatStepHeader,\n MatStepperIcon,\n MatStepContent,\n ],\n exports: [\n BidiModule,\n MatStep,\n MatStepLabel,\n MatStepper,\n MatStepperNext,\n MatStepperPrevious,\n MatStepHeader,\n MatStepperIcon,\n MatStepContent,\n ],\n providers: [ErrorStateMatcher],\n})\nexport class MatStepperModule {}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAcM,MAAO,YAAa,SAAQ,YAAY,CAAA;;;;;UAAjC,YAAY;AAAA,IAAA,IAAA,EAAA,IAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;UAAZ,YAAY;AAAA,IAAA,YAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,gBAAA;AAAA,IAAA,eAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAAZ,YAAY;AAAA,EAAA,UAAA,EAAA,CAAA;UAHxB,SAAS;AAAC,IAAA,IAAA,EAAA,CAAA;AACT,MAAA,QAAQ,EAAE;KACX;;;;MCAY,cAAc,CAAA;AAKhB,EAAA,OAAO,GAAkB,IAAI,OAAO,EAAQ;AAGrD,EAAA,aAAa,GAAW,UAAU;AAGlC,EAAA,cAAc,GAAW,WAAW;AAGpC,EAAA,aAAa,GAAW,UAAU;;;;;UAdvB,cAAc;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;;UAAd;AAAc,GAAA,CAAA;;;;;;QAAd,cAAc;AAAA,EAAA,UAAA,EAAA,CAAA;UAD1B;;;;AC8BK,MAAO,aAAc,SAAQ,aAAa,CAAA;AAC9C,EAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AACtB,EAAA,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;EAEpC,iBAAiB;EAGhB,KAAK;EAGL,KAAK;EAGL,YAAY;EAGZ,aAAa;EAGb,KAAK;AAGL,EAAA,QAAQ,GAAY,KAAK;AAGzB,EAAA,MAAM,GAAY,KAAK;AAGvB,EAAA,QAAQ,GAAY,KAAK;AAGzB,EAAA,aAAa,GAAY,KAAK;EAS9B,KAAK;AAEd,EAAA,WAAA,GAAA;AACE,IAAA,KAAK,EAAE;AAEP,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAClD,IAAA,WAAW,CAAC,IAAI,CAAC,uBAAuB,CAAC;AACzC,IAAA,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACvC,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACnD,IAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,iBAAiB,CAAC,YAAY,EAAE,CAAC;AAC/F,EAAA;AAEA,EAAA,eAAe,GAAA;IACb,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;AACpD,EAAA;AAEA,EAAA,WAAW,GAAA;AACT,IAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;IACpC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;AACrD,EAAA;AAGS,EAAA,KAAK,CAAC,MAAoB,EAAE,OAAsB,EAAA;AACzD,IAAA,IAAI,MAAM,EAAE;AACV,MAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC;AAChE,IAAA,CAAA,MAAO;MACL,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAC/C,IAAA;AACF,EAAA;AAGA,EAAA,YAAY,GAAA;IACV,OAAO,IAAI,CAAC,KAAK,YAAY,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK;AAC/D,EAAA;AAGA,EAAA,cAAc,GAAA;IACZ,OAAO,IAAI,CAAC,KAAK,YAAY,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;AAC/D,EAAA;AAGA,EAAA,eAAe,GAAA;AACb,IAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa;AACvC,EAAA;EAEA,uBAAuB,CAAC,KAAgB,EAAA;IACtC,IAAI,KAAK,IAAI,QAAQ,EAAE;AACrB,MAAA,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA,CAAE;AAC5B,IAAA;IACA,IAAI,KAAK,IAAI,MAAM,EAAE;AACnB,MAAA,OAAO,QAAQ;AACjB,IAAA;IACA,IAAI,KAAK,IAAI,OAAO,EAAE;AACpB,MAAA,OAAO,SAAS;AAClB,IAAA;AACA,IAAA,OAAO,KAAK;AACd,EAAA;AAEU,EAAA,cAAc,GAAA;IACtB,OACE,CAAC,IAAI,CAAC,YAAY,EAAE,IACpB,CAAC,IAAI,CAAC,cAAc,EAAE,IACtB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IACzB,CAAC,IAAI,CAAC,cAAc,EAAE;AAE1B,EAAA;AAEU,EAAA,iBAAiB,GAAA;IACzB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;AAChD,EAAA;AAEU,EAAA,cAAc,GAAA;AACtB,IAAA,OAAO,IAAI,CAAC,KAAK,KAAK,OAAO;AAC/B,EAAA;;;;;UAjHW,aAAa;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;AAAb,EAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA;AAAA,IAAA,UAAA,EAAA,QAAA;AAAA,IAAA,OAAA,EAAA,QAAA;AAAA,IAAA,IAAA,EAAA,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;cC1C1B,22DAoDA;IAAA,MAAA,EAAA,CAAA,6wKAAA,CAAA;AAAA,IAAA,YAAA,EAAA,CAAA;AAAA,MAAA,IAAA,EAAA,WAAA;AAAA,MAAA,IAAA,EDZY,SAAS;AAAA,MAAA,QAAA,EAAA,2BAAA;AAAA,MAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,CAAA;MAAA,QAAA,EAAA,CAAA,WAAA;AAAA,KAAA,EAAA;AAAA,MAAA,IAAA,EAAA,WAAA;AAAA,MAAA,IAAA,EAAE,gBAAgB;;;;;YAAE,OAAO;AAAA,MAAA,QAAA,EAAA,UAAA;MAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA;MAAA,QAAA,EAAA,CAAA,SAAA;AAAA,KAAA,CAAA;AAAA,IAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA;AAAA,GAAA,CAAA;;;;;;QAEnC,aAAa;AAAA,EAAA,UAAA,EAAA,CAAA;UAbzB,SAAS;AACE,IAAA,IAAA,EAAA,CAAA;AAAA,MAAA,QAAA,EAAA,iBAAiB;AAAA,MAAA,IAAA,EAGrB;AACJ,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,qCAAqC,EAAE,kBAAkB;AACzD,QAAA,SAAS,EAAE,+BAA+B;AAC1C,QAAA,MAAM,EAAE;OACT;MAAA,aAAA,EACc,iBAAiB,CAAC,IAAI;AAAA,MAAA,OAAA,EAC5B,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,CAAC;AAAA,MAAA,QAAA,EAAA,22DAAA;MAAA,MAAA,EAAA,CAAA,6wKAAA;KAAA;;;;;YAS9C;;;YAGA;;;YAGA;;;YAGA;;;YAGA;;;YAGA;;;YAGA;;;YAGA;;;YAGA;;;YASA;;;;;MEvDU,cAAc,CAAA;AACzB,EAAA,WAAW,GAAG,MAAM,CAAqC,WAAW,CAAC;EAG5C,IAAI;;;;;UAJlB,cAAc;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;UAAd,cAAc;AAAA,IAAA,YAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,6BAAA;AAAA,IAAA,MAAA,EAAA;AAAA,MAAA,IAAA,EAAA,CAAA,gBAAA,EAAA,MAAA;KAAA;AAAA,IAAA,QAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAAd,cAAc;AAAA,EAAA,UAAA,EAAA,CAAA;UAH1B,SAAS;AAAC,IAAA,IAAA,EAAA,CAAA;AACT,MAAA,QAAQ,EAAE;KACX;;;;YAKE,KAAK;aAAC,gBAAgB;;;;;MCfZ,cAAc,CAAA;AACzB,EAAA,SAAS,GAAG,MAAM,CAAiB,WAAW,CAAC;;;;;UADpC,cAAc;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;UAAd,cAAc;AAAA,IAAA,YAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,6BAAA;AAAA,IAAA,QAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAAd,cAAc;AAAA,EAAA,UAAA,EAAA,CAAA;UAH1B,SAAS;AAAC,IAAA,IAAA,EAAA,CAAA;AACT,MAAA,QAAQ,EAAE;KACX;;;;AC4CK,MAAO,OAAQ,SAAQ,OAAO,CAAA;AAC1B,EAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,EAAE;AAAC,IAAA,QAAQ,EAAE;AAAI,GAAC,CAAC;AAChE,EAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;EAC5C,WAAW,GAAG,YAAY,CAAC,KAAK;AAIH,EAAA,SAAS,GAAiB,SAAU;EAShE,KAAK;EAGiC,YAAY;EAG3D,OAAO;AAEP,EAAA,kBAAkB,GAAA;AAChB,IAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAA,CACpC,IAAI,CACH,SAAS,CAAC,MAAK;AACb,MAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CACvC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,EACzC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,CAC3C;AACH,IAAA,CAAC,CAAC,CAAA,CAEH,SAAS,CAAC,UAAU,IAAG;MACtB,IAAI,UAAU,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACpD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAkB,CAAC;AACzF,MAAA;AACF,IAAA,CAAC,CAAC;AACN,EAAA;AAEA,EAAA,WAAW,GAAA;AACT,IAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AAChC,EAAA;AAGA,EAAA,YAAY,CAAC,OAA+B,EAAE,IAAwC,EAAA;IACpF,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;AAK9E,IAAA,MAAM,gBAAgB,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC;IAE1E,OAAO,kBAAkB,IAAI,gBAAgB;AAC/C,EAAA;EAEA,kBAAkB,CAAC,KAA4B,EAAA;IAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,KAAK;AACvF,IAAA,MAAM,gBAAgB,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC;IAC1E,OAAO,kBAAkB,IAAI,gBAAgB;AAC/C,EAAA;;;;;UA7DW,OAAO;AAAA,IAAA,IAAA,EAAA,IAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;AAAP,EAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA;AAAA,IAAA,UAAA,EAAA,QAAA;AAAA,IAAA,OAAA,EAAA,QAAA;AAAA,IAAA,IAAA,EAAA,OAAO;AAAA,IAAA,YAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,UAAA;AAAA,IAAA,MAAA,EAAA;AAAA,MAAA,KAAA,EAAA;KAAA;AAAA,IAAA,IAAA,EAAA;AAAA,MAAA,UAAA,EAAA;AAAA,QAAA,QAAA,EAAA;AAAA;KAAA;AAAA,IAAA,SAAA,EAXP,CACT;AAAC,MAAA,OAAO,EAAE,iBAAiB;AAAE,MAAA,WAAW,EAAE;AAAO,KAAC,EAClD;AAAC,MAAA,OAAO,EAAE,OAAO;AAAE,MAAA,WAAW,EAAE;AAAO,KAAC,CACzC;AAAA,IAAA,OAAA,EAAA,CAAA;AAAA,MAAA,YAAA,EAAA,WAAA;AAAA,MAAA,KAAA,EAAA,IAAA;AAAA,MAAA,SAAA,EAea,YAAY;AAAA,MAAA,WAAA,EAAA;AAAA,KAAA,EAAA;AAAA,MAAA,YAAA,EAAA,cAAA;AAAA,MAAA,KAAA,EAAA,IAAA;AAAA,MAAA,SAAA,EAYZ,cAAc;AAAA,MAAA,WAAA,EAAA;AAAA,KAAA,CAAA;IAAA,QAAA,EAAA,CAAA,SAAA,CAAA;AAAA,IAAA,eAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,EAAA;AAAA,IAAA,QAAA,EC9E9B,2HAIA;;;YDkDY,eAAe;AAAA,MAAA,QAAA,EAAA,mBAAA;MAAA,MAAA,EAAA,CAAA,iBAAA,CAAA;MAAA,OAAA,EAAA,CAAA,UAAA,CAAA;MAAA,QAAA,EAAA,CAAA,iBAAA;AAAA,KAAA,CAAA;AAAA,IAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA;AAAA,GAAA,CAAA;;;;;;QAKd,OAAO;AAAA,EAAA,UAAA,EAAA,CAAA;UAdnB,SAAS;AACE,IAAA,IAAA,EAAA,CAAA;AAAA,MAAA,QAAA,EAAA,UAAU;AAAA,MAAA,SAAA,EAET,CACT;AAAC,QAAA,OAAO,EAAE,iBAAiB;AAAE,QAAA,WAAW;AAAS,OAAC,EAClD;AAAC,QAAA,OAAO,EAAE,OAAO;AAAE,QAAA,WAAW;AAAS,OAAC,CACzC;MAAA,aAAA,EACc,iBAAiB,CAAC,IAAI;AAAA,MAAA,QAAA,EAC3B,SAAS;MAAA,OAAA,EACV,CAAC,eAAe,CAAC;AAAA,MAAA,IAAA,EACpB;AACJ,QAAA,QAAQ,EAAE;OACX;AAAA,MAAA,QAAA,EAAA;KAAA;;;;YASA,YAAY;aAAC,YAAY;;;YASzB;;;YAGA,YAAY;MAAC,IAAA,EAAA,CAAA,cAAc,EAAE;AAAC,QAAA,MAAM,EAAE;OAAM;;;;AAiEzC,MAAO,UAAW,SAAQ,UAAU,CAAA;AAChC,EAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AACxB,EAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;EAC7B,mBAAmB,GAAG,mBAAmB,EAAE;EAC3C,kBAAkB;EAChB,YAAY,GAAG,MAAM,CAAC,KAAK;;WAAC;AAGA,EAAA,WAAW,GAA6B,SAAU;EAGrD,mBAAmB;AAGE,EAAA,MAAM,GAAuB,SAAU;AAG7E,EAAA,KAAK,GAAuB,IAAI,SAAS,EAAW;EAGhB,MAAM;AAGzC,EAAA,aAAa,GAAuB,IAAI,YAAY,EAAQ;AAGtE,EAAA,aAAa,GAAY,KAAK;EAS9B,KAAK;AAOd,EAAA,aAAa,GAAqB,KAAK;AAOvC,EAAA,cAAc,GAAqB,KAAK;AAMxC,EAAA,SAAS,GAAkB,IAAI;EAGtB,YAAY,GAAG,KAAK,CAA8B,IAAI;;WAAC;EAGhE,cAAc,GAAuD,EAAE;AAGvE,EAAA,IACI,iBAAiB,GAAA;IACnB,OAAO,IAAI,CAAC,kBAAkB;AAChC,EAAA;EACA,IAAI,iBAAiB,CAAC,KAAa,EAAA;AACjC,IAAA,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvC,MAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,GAAG,IAAI;IACxC,CAAA,MAAO,IAAI,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;MACtD,IAAI,CAAC,kBAAkB,GAAG,KAAK;AACjC,IAAA,CAAA,MAAO;MACL,IAAI,CAAC,kBAAkB,GAAG,EAAE;AAC9B,IAAA;AACF,EAAA;AACQ,EAAA,kBAAkB,GAAG,EAAE;AAGrB,EAAA,SAAS,GAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS;AAE1D,EAAA,WAAA,GAAA;AACE,IAAA,KAAK,EAAE;AAEP,IAAA,MAAM,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;IAC9D,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE;IAChE,IAAI,CAAC,WAAW,GAAG,QAAQ,KAAK,sBAAsB,GAAG,UAAU,GAAG,YAAY;AACpF,EAAA;AAES,EAAA,kBAAkB,GAAA;IACzB,KAAK,CAAC,kBAAkB,EAAE;AAC1B,IAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;MAAC,IAAI;AAAE,MAAA;KAAY,KAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,WAAY,CAAC;IAGvF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AAGzF,IAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACvE,MAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE;AAC7C,MAAA,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,IAAI,EAAE;QAC3C,IAAI,CAAC,gBAAgB,EAAE;AACzB,MAAA,CAAA,MAAO;AACL,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAA;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;AAClC,MAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC7B,QAAA,UAAU,CAAC,MAAK;UAEd,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,gCAAgC,CAAC;UAG9E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC7C,IAAI,CAAC,WAAW,CAAC,aAAa,EAC9B,eAAe,EACf,IAAI,CAAC,oBAAoB,CAC1B;QACH,CAAC,EAAE,GAAG,CAAC;AACT,MAAA;AACF,IAAA,CAAC,CAAC;AACJ,EAAA;AAES,EAAA,eAAe,GAAA;IACtB,KAAK,CAAC,eAAe,EAAE;AASvB,IAAA,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;MACxC,IAAI,iBAAiB,GAAG,KAAK;MAC7B,IAAI,CAAC,mBAAmB,CAAC,OAAA,CACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,CAChD,SAAS,CAAC,MACT,cAAc,CAAC,MAAK;QAGlB,IAAI,CAAC,iBAAiB,EAAE;AACtB,UAAA,iBAAiB,GAAG,IAAI;AACxB,UAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AAC3B,QAAA;QAEA,IAAI,CAAC,aAAa,EAAE;AACtB,MAAA,CAAC,CAAC,CACH;AACL,IAAA;AACF,EAAA;AAES,EAAA,WAAW,GAAA;IAClB,KAAK,CAAC,WAAW,EAAE;IACnB,IAAI,CAAC,kBAAkB,IAAI;AAC7B,EAAA;AAEA,EAAA,qBAAqB,GAAA;IACnB,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,MAAA,OAAO,KAAK;AACd,IAAA;IAEA,IAAI,IAAI,CAAC,iBAAiB,EAAE;MAC1B,OAAO,IAAI,CAAC,iBAAiB;AAC/B,IAAA;IAEA,OAAO,IAAI,CAAC,WAAW,KAAK,YAAY,GAAG,OAAO,GAAG,OAAO;AAC9D,EAAA;EAEQ,oBAAoB,GAAI,KAAsB,IAAI;AACxD,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA4B;IAEjD,IAAI,CAAC,MAAM,EAAE;AACX,MAAA;AACF,IAAA;IAMA,MAAM,yBAAyB,GAC7B,IAAI,CAAC,WAAW,KAAK,YAAY,IACjC,KAAK,CAAC,YAAY,KAAK,WAAW,IAClC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACrE,MAAM,uBAAuB,GAC3B,IAAI,CAAC,WAAW,KAAK,UAAU,IAC/B,KAAK,CAAC,YAAY,KAAK,oBAAoB,IAC3C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAIpE,MAAM,UAAU,GACd,CAAC,yBAAyB,IAAI,uBAAuB,KACrD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC;AAEpE,IAAA,IAAI,UAAU,EAAE;MACd,IAAI,CAAC,gBAAgB,EAAE;AACzB,IAAA;EACF,CAAC;AAEO,EAAA,gBAAgB,GAAA;AACtB,IAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5B,IAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AAC3B,EAAA;;;;;UA5MW,UAAU;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;UAAV,UAAU;AAAA,IAAA,YAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,yEAAA;AAAA,IAAA,MAAA,EAAA;AAAA,MAAA,aAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,eAAA;AAAA,QAAA,UAAA,EAAA,eAAA;AAAA,QAAA,QAAA,EAAA,KAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;OAAA;AAAA,MAAA,KAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,OAAA;AAAA,QAAA,UAAA,EAAA,OAAA;AAAA,QAAA,QAAA,EAAA,KAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;OAAA;AAAA,MAAA,aAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,eAAA;AAAA,QAAA,UAAA,EAAA,eAAA;AAAA,QAAA,QAAA,EAAA,KAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;OAAA;AAAA,MAAA,cAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,gBAAA;AAAA,QAAA,UAAA,EAAA,gBAAA;AAAA,QAAA,QAAA,EAAA,KAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;OAAA;AAAA,MAAA,SAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,WAAA;AAAA,QAAA,UAAA,EAAA,YAAA;AAAA,QAAA,QAAA,EAAA,KAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;OAAA;AAAA,MAAA,YAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,cAAA;AAAA,QAAA,UAAA,EAAA,cAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;OAAA;AAAA,MAAA,iBAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,mBAAA;AAAA,QAAA,UAAA,EAAA,mBAAA;AAAA,QAAA,QAAA,EAAA,KAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;AAAA;KAAA;AAAA,IAAA,OAAA,EAAA;AAAA,MAAA,aAAA,EAAA;KAAA;AAAA,IAAA,IAAA,EAAA;AAAA,MAAA,UAAA,EAAA;AAAA,QAAA,8BAAA,EAAA,gCAAA;AAAA,QAAA,4BAAA,EAAA,8BAAA;AAAA,QAAA,sCAAA,EAAA,4DAAA;AAAA,QAAA,yCAAA,EAAA,+DAAA;AAAA,QAAA,0CAAA,EAAA,+BAAA;AAAA,QAAA,6BAAA,EAAA,gBAAA;AAAA,QAAA,wCAAA,EAAA;AAAA;KAAA;AAAA,IAAA,SAAA,EAJV,CAAC;AAAC,MAAA,OAAO,EAAE,UAAU;AAAE,MAAA,WAAW,EAAE;AAAU,KAAC,CAAC;AAAA,IAAA,OAAA,EAAA,CAAA;AAAA,MAAA,YAAA,EAAA,QAAA;AAAA,MAAA,SAAA,EAkB1C,OAAO;AAAA,MAAA,WAAA,EAAA;AAAA,KAAA,EAAA;AAAA,MAAA,YAAA,EAAA,QAAA;AAAA,MAAA,SAAA,EAMP,cAAc;AAAA,MAAA,WAAA,EAAA;AAAA,KAAA,CAAA;AAAA,IAAA,WAAA,EAAA,CAAA;AAAA,MAAA,YAAA,EAAA,aAAA;AAAA,MAAA,SAAA,EAZjB,aAAa;;;;;;;;;;cEvJ7B,o0JA2HA;IAAA,MAAA,EAAA,CAAA,o5NAAA,CAAA;AAAA,IAAA,YAAA,EAAA,CAAA;AAAA,MAAA,IAAA,EAAA,WAAA;AAAA,MAAA,IAAA,EFkBY,gBAAgB;AAAA,MAAA,QAAA,EAAA,oBAAA;AAAA,MAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA;AAAA,KAAA,EAAA;AAAA,MAAA,IAAA,EAAA,WAAA;AAAA,MAAA,IAAA,EAAE,aAAa;AAAA,MAAA,QAAA,EAAA,iBAAA;MAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,cAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,OAAA;AAAA,KAAA,CAAA;AAAA,IAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA;AAAA,GAAA,CAAA;;;;;;QAE9B,UAAU;AAAA,EAAA,UAAA,EAAA,CAAA;UApBtB,SAAS;;gBACE,yEAAyE;AAAA,MAAA,QAAA,EACzE,sDAAsD;AAAA,MAAA,IAAA,EAG1D;AACJ,QAAA,gCAAgC,EAAE,8BAA8B;AAChE,QAAA,8BAA8B,EAAE,4BAA4B;AAC5D,QAAA,wCAAwC,EACtC,wDAAwD;AAC1D,QAAA,2CAA2C,EACzC,2DAA2D;AAC7D,QAAA,4CAA4C,EAAE,6BAA6B;AAC3E,QAAA,+BAA+B,EAAE,gBAAgB;AACjD,QAAA,0CAA0C,EAAE;OAC7C;AAAA,MAAA,SAAA,EACU,CAAC;AAAC,QAAA,OAAO,EAAE,UAAU;AAAE,QAAA,WAAW,EAAA;AAAY,OAAC,CAAC;MAAA,aAAA,EAC5C,iBAAiB,CAAC,IAAI;AAAA,MAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,aAAa,CAAC;AAAA,MAAA,QAAA,EAAA,o0JAAA;MAAA,MAAA,EAAA,CAAA,o5NAAA;KAAA;;;;;YAUzC,YAAY;aAAC,aAAa;;;YAG1B,YAAY;aAAC,mBAAmB;;;YAGhC,eAAe;MAAC,IAAA,EAAA,CAAA,OAAO,EAAE;AAAC,QAAA,WAAW,EAAE;OAAK;;;YAM5C,eAAe;MAAC,IAAA,EAAA,CAAA,cAAc,EAAE;AAAC,QAAA,WAAW,EAAE;OAAK;;;YAGnD;;;YAGA;;;YASA;;;YAMA;;;YAOA;;;YAMA,KAAK;aAAC,YAAY;;;;;;;;;;;YAUlB;;;;;AG5LG,MAAO,cAAe,SAAQ,cAAc,CAAA;;;;;UAArC,cAAc;AAAA,IAAA,IAAA,EAAA,IAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;UAAd,cAAc;AAAA,IAAA,YAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,wBAAA;AAAA,IAAA,IAAA,EAAA;AAAA,MAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;OAAA;AAAA,MAAA,cAAA,EAAA;KAAA;AAAA,IAAA,eAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAAd,cAAc;AAAA,EAAA,UAAA,EAAA,CAAA;UAP1B,SAAS;AAAC,IAAA,IAAA,EAAA,CAAA;AACT,MAAA,QAAQ,EAAE,wBAAwB;AAClC,MAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,QAAQ,EAAE;AACX;KACF;;;AAWK,MAAO,kBAAmB,SAAQ,kBAAkB,CAAA;;;;;UAA7C,kBAAkB;AAAA,IAAA,IAAA,EAAA,IAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;UAAlB,kBAAkB;AAAA,IAAA,YAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,4BAAA;AAAA,IAAA,IAAA,EAAA;AAAA,MAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;OAAA;AAAA,MAAA,cAAA,EAAA;KAAA;AAAA,IAAA,eAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAAlB,kBAAkB;AAAA,EAAA,UAAA,EAAA,CAAA;UAP9B,SAAS;AAAC,IAAA,IAAA,EAAA,CAAA;AACT,MAAA,QAAQ,EAAE,4BAA4B;AACtC,MAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,QAAQ,EAAE;AACX;KACF;;;;MCqBY,gBAAgB,CAAA;;;;;UAAhB,gBAAgB;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;AAAhB,EAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,IAAA,UAAA,EAAA,QAAA;AAAA,IAAA,OAAA,EAAA,QAAA;AAAA,IAAA,QAAA,EAAA,EAAA;AAAA,IAAA,IAAA,EAAA,gBAAgB;cA1BzB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,OAAO,EACP,YAAY,EACZ,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc;cAGd,UAAU,EACV,OAAO,EACP,YAAY,EACZ,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc;AAAA,GAAA,CAAA;AAIL,EAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,IAAA,UAAA,EAAA,QAAA;AAAA,IAAA,OAAA,EAAA,QAAA;AAAA,IAAA,QAAA,EAAA,EAAA;AAAA,IAAA,IAAA,EAAA,gBAAgB;IAAA,SAAA,EAFhB,CAAC,iBAAiB,CAAC;cAxB5B,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EAGf,UAAU,EAGV,aAAa,EAKb,UAAU;AAAA,GAAA,CAAA;;;;;;QAYD,gBAAgB;AAAA,EAAA,UAAA,EAAA,CAAA;UA5B5B,QAAQ;AAAC,IAAA,IAAA,EAAA,CAAA;MACR,OAAO,EAAE,CACP,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,OAAO,EACP,YAAY,EACZ,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACf;AACD,MAAA,OAAO,EAAE,CACP,UAAU,EACV,OAAO,EACP,YAAY,EACZ,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACf;MACD,SAAS,EAAE,CAAC,iBAAiB;KAC9B;;;;;;"}