@angular/cdk
Version:
Angular Material Component Development Kit
1 lines • 47 kB
Source Map (JSON)
{"version":3,"file":"stepper.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/stepper/step-header.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/stepper/step-label.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/stepper/stepper.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/stepper/stepper-button.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk/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, ElementRef, inject} from '@angular/core';\nimport {FocusableOption} from '../a11y';\n\n@Directive({\n selector: '[cdkStepHeader]',\n host: {\n 'role': 'tab',\n },\n})\nexport class CdkStepHeader implements FocusableOption {\n _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n constructor(...args: unknown[]);\n constructor() {}\n\n /** Focuses the step header. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\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@Directive({\n selector: '[cdkStepLabel]',\n})\nexport class CdkStepLabel {\n template = inject<TemplateRef<any>>(TemplateRef);\n\n constructor(...args: unknown[]);\n constructor() {}\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 {_IdGenerator, FocusableOption, FocusKeyManager} from '../a11y';\nimport {Direction, Directionality} from '../bidi';\nimport {ENTER, hasModifierKey, SPACE} from '../keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n AfterContentInit,\n booleanAttribute,\n numberAttribute,\n inject,\n signal,\n computed,\n} from '@angular/core';\nimport {\n ControlContainer,\n type AbstractControl,\n type NgForm,\n type FormGroupDirective,\n} from '@angular/forms';\nimport {_getFocusedElementPierceShadowDom} from '../platform';\nimport {Observable, of as observableOf, Subject} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\n\nimport {CdkStepHeader} from './step-header';\nimport {CdkStepLabel} from './step-label';\n\n/**\n * Position state of the content of each step in stepper that is used for transitioning\n * the content into correct position upon step selection change.\n */\nexport type StepContentPositionState = 'previous' | 'current' | 'next';\n\n/** Possible orientation of a stepper. */\nexport type StepperOrientation = 'horizontal' | 'vertical';\n\n/** Change event emitted on selection changes. */\nexport class StepperSelectionEvent {\n /** Index of the step now selected. */\n selectedIndex: number;\n\n /** Index of the step previously selected. */\n previouslySelectedIndex: number;\n\n /** The step instance now selected. */\n selectedStep: CdkStep;\n\n /** The step instance previously selected. */\n previouslySelectedStep: CdkStep;\n}\n\n/** The state of each step. */\nexport type StepState = 'number' | 'edit' | 'done' | 'error' | string;\n\n/** Enum to represent the different states of the steps. */\nexport const STEP_STATE = {\n NUMBER: 'number',\n EDIT: 'edit',\n DONE: 'done',\n ERROR: 'error',\n};\n\n/** InjectionToken that can be used to specify the global stepper options. */\nexport const STEPPER_GLOBAL_OPTIONS = new InjectionToken<StepperOptions>('STEPPER_GLOBAL_OPTIONS');\n\n/** Configurable options for stepper. */\nexport interface StepperOptions {\n /**\n * Whether the stepper should display an error state or not.\n * Default behavior is assumed to be false.\n */\n showError?: boolean;\n\n /**\n * Whether the stepper should display the default indicator type\n * or not.\n * Default behavior is assumed to be true.\n */\n displayDefaultIndicatorType?: boolean;\n}\n\n@Component({\n selector: 'cdk-step',\n exportAs: 'cdkStep',\n template: '<ng-template><ng-content/></ng-template>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CdkStep implements OnChanges {\n private _stepperOptions: StepperOptions;\n _stepper = inject(CdkStepper);\n _displayDefaultIndicatorType: boolean;\n\n /** Template for step label if it exists. */\n @ContentChild(CdkStepLabel) stepLabel: CdkStepLabel;\n\n /** Forms that have been projected into the step. */\n @ContentChildren(\n // Note: we look for `ControlContainer` here, because both `NgForm` and `FormGroupDirective`\n // provides themselves as such, but we don't want to have a concrete reference to both of\n // the directives. The type is marked as `Partial` in case we run into a class that provides\n // itself as `ControlContainer` but doesn't have the same interface as the directives.\n ControlContainer,\n {\n descendants: true,\n },\n )\n protected _childForms: QueryList<Partial<NgForm | FormGroupDirective>> | undefined;\n\n /** Template for step content. */\n @ViewChild(TemplateRef, {static: true}) content: TemplateRef<any>;\n\n /** The top level abstract control of the step. */\n @Input() stepControl: AbstractControl;\n\n /** Whether user has attempted to move away from the step. */\n get interacted(): boolean {\n return this._interacted();\n }\n set interacted(value: boolean) {\n this._interacted.set(value);\n }\n private _interacted = signal(false);\n\n /** Emits when the user has attempted to move away from the step. */\n @Output('interacted')\n readonly interactedStream: EventEmitter<CdkStep> = new EventEmitter<CdkStep>();\n\n /** Plain text label of the step. */\n @Input() label: string;\n\n /** Error message to display when there's an error. */\n @Input() errorMessage: string;\n\n /** Aria label for the tab. */\n @Input('aria-label') ariaLabel: string;\n\n /**\n * Reference to the element that the tab is labelled by.\n * Will be cleared if `aria-label` is set at the same time.\n */\n @Input('aria-labelledby') ariaLabelledby: string;\n\n /** State of the step. */\n @Input()\n get state(): StepState {\n return this._state()!;\n }\n set state(value: StepState) {\n this._state.set(value);\n }\n private _state = signal<StepState | undefined>(undefined);\n\n /** Whether the user can return to this step once it has been marked as completed. */\n @Input({transform: booleanAttribute})\n get editable(): boolean {\n return this._editable()!;\n }\n set editable(value: boolean) {\n this._editable.set(value);\n }\n private _editable = signal(true);\n\n /** Whether the completion of step is optional. */\n @Input({transform: booleanAttribute}) optional: boolean = false;\n\n /** Whether step is marked as completed. */\n @Input({transform: booleanAttribute})\n get completed(): boolean {\n const override = this._completedOverride();\n const interacted = this._interacted();\n\n if (override != null) {\n return override;\n }\n\n return interacted && (!this.stepControl || this.stepControl.valid);\n }\n set completed(value: boolean) {\n this._completedOverride.set(value);\n }\n _completedOverride = signal<boolean | null>(null);\n\n /** Current index of the step within the stepper. */\n readonly index = signal(-1);\n\n /** Whether the step is selected. */\n readonly isSelected = computed<boolean>(() => this._stepper.selectedIndex === this.index());\n\n /** Type of indicator that should be shown for the step. */\n readonly indicatorType = computed<StepState>(() => {\n const selected = this.isSelected();\n const completed = this.completed;\n const defaultState = this._state() ?? STEP_STATE.NUMBER;\n const editable = this._editable();\n\n if (this._showError() && this.hasError && !selected) {\n return STEP_STATE.ERROR;\n }\n\n if (this._displayDefaultIndicatorType) {\n if (!completed || selected) {\n return STEP_STATE.NUMBER;\n }\n return editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n } else {\n if (completed && !selected) {\n return STEP_STATE.DONE;\n } else if (completed && selected) {\n return defaultState;\n }\n return editable && selected ? STEP_STATE.EDIT : defaultState;\n }\n });\n\n /** Whether the user can navigate to the step. */\n readonly isNavigable = computed<boolean>(() => {\n const isSelected = this.isSelected();\n const isCompleted = this.completed;\n return isCompleted || isSelected || !this._stepper.linear;\n });\n\n /** Whether step has an error. */\n @Input({transform: booleanAttribute})\n get hasError(): boolean {\n const customError = this._customError();\n return customError == null ? this._getDefaultError() : customError;\n }\n set hasError(value: boolean) {\n this._customError.set(value);\n }\n private _customError = signal<boolean | null>(null);\n\n private _getDefaultError() {\n return this.interacted && !!this.stepControl?.invalid;\n }\n\n constructor(...args: unknown[]);\n\n constructor() {\n const stepperOptions = inject<StepperOptions>(STEPPER_GLOBAL_OPTIONS, {optional: true});\n this._stepperOptions = stepperOptions ? stepperOptions : {};\n this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;\n }\n\n /** Selects this step component. */\n select(): void {\n this._stepper.selected = this;\n }\n\n /** Resets the step to its initial state. Note that this includes resetting form data. */\n reset(): void {\n this._interacted.set(false);\n\n if (this._completedOverride() != null) {\n this._completedOverride.set(false);\n }\n\n if (this._customError() != null) {\n this._customError.set(false);\n }\n\n if (this.stepControl) {\n // Reset the forms since the default error state matchers will show errors on submit and we\n // want the form to be back to its initial state (see #29781). Submitted state is on the\n // individual directives, rather than the control, so we need to reset them ourselves.\n this._childForms?.forEach(form => form.resetForm?.());\n this.stepControl.reset();\n }\n }\n\n ngOnChanges() {\n // Since basically all inputs of the MatStep get proxied through the view down to the\n // underlying MatStepHeader, we have to make sure that change detection runs correctly.\n this._stepper._stateChanged();\n }\n\n _markAsInteracted() {\n if (!this._interacted()) {\n this._interacted.set(true);\n this.interactedStream.emit(this);\n }\n }\n\n /** Determines whether the error state can be shown. */\n _showError(): boolean {\n // We want to show the error state either if the user opted into/out of it using the\n // global options, or if they've explicitly set it through the `hasError` input.\n return this._stepperOptions.showError ?? this._customError() != null;\n }\n}\n\n@Directive({\n selector: '[cdkStepper]',\n exportAs: 'cdkStepper',\n})\nexport class CdkStepper implements AfterContentInit, AfterViewInit, OnDestroy {\n private _dir = inject(Directionality, {optional: true});\n private _changeDetectorRef = inject(ChangeDetectorRef);\n protected _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Emits when the component is destroyed. */\n protected readonly _destroyed = new Subject<void>();\n\n /** Used for managing keyboard focus. */\n private _keyManager: FocusKeyManager<FocusableOption> | undefined;\n\n /** Full list of steps inside the stepper, including inside nested steppers. */\n @ContentChildren(CdkStep, {descendants: true}) _steps: QueryList<CdkStep>;\n\n /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n readonly steps: QueryList<CdkStep> = new QueryList<CdkStep>();\n\n /** The list of step headers of the steps in the stepper. */\n @ContentChildren(CdkStepHeader, {descendants: true}) _stepHeader: QueryList<CdkStepHeader>;\n\n /** List of step headers sorted based on their DOM order. */\n private _sortedHeaders = new QueryList<CdkStepHeader>();\n\n /** Whether the validity of previous steps should be checked or not. */\n @Input({transform: booleanAttribute}) linear: boolean = false;\n\n /** The index of the selected step. */\n @Input({transform: numberAttribute})\n get selectedIndex(): number {\n return this._selectedIndex();\n }\n set selectedIndex(index: number) {\n if (this._steps) {\n // Ensure that the index can't be out of bounds.\n if (!this._isValidIndex(index) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n\n if (this.selectedIndex !== index) {\n this.selected?._markAsInteracted();\n\n if (\n !this._anyControlsInvalidOrPending(index) &&\n (index >= this.selectedIndex || this.steps.toArray()[index].editable)\n ) {\n this._updateSelectedItemIndex(index);\n }\n }\n } else {\n this._selectedIndex.set(index);\n }\n }\n private _selectedIndex = signal(0);\n\n /** The step that is selected. */\n @Input()\n get selected(): CdkStep | undefined {\n return this.steps ? this.steps.toArray()[this.selectedIndex] : undefined;\n }\n set selected(step: CdkStep | undefined) {\n this.selectedIndex = step && this.steps ? this.steps.toArray().indexOf(step) : -1;\n }\n\n /** Event emitted when the selected step has changed. */\n @Output() readonly selectionChange = new EventEmitter<StepperSelectionEvent>();\n\n /** Output to support two-way binding on `[(selectedIndex)]` */\n @Output() readonly selectedIndexChange: EventEmitter<number> = new EventEmitter<number>();\n\n /** Used to track unique ID for each stepper component. */\n private _groupId = inject(_IdGenerator).getId('cdk-stepper-');\n\n /** Orientation of the stepper. */\n @Input()\n get orientation(): StepperOrientation {\n return this._orientation;\n }\n set orientation(value: StepperOrientation) {\n // This is a protected method so that `MatStepper` can hook into it.\n this._orientation = value;\n\n if (this._keyManager) {\n this._keyManager.withVerticalOrientation(value === 'vertical');\n }\n }\n private _orientation: StepperOrientation = 'horizontal';\n\n constructor(...args: unknown[]);\n constructor() {}\n\n ngAfterContentInit() {\n this._steps.changes\n .pipe(startWith(this._steps), takeUntil(this._destroyed))\n .subscribe((steps: QueryList<CdkStep>) => {\n this.steps.reset(steps.filter(step => step._stepper === this));\n this.steps.forEach((step, index) => step.index.set(index));\n this.steps.notifyOnChanges();\n });\n }\n\n ngAfterViewInit() {\n // If the step headers are defined outside of the `ngFor` that renders the steps, like in the\n // Material stepper, they won't appear in the `QueryList` in the same order as they're\n // rendered in the DOM which will lead to incorrect keyboard navigation. We need to sort\n // them manually to ensure that they're correct. Alternatively, we can change the Material\n // template to inline the headers in the `ngFor`, but that'll result in a lot of\n // code duplication. See #23539.\n this._stepHeader.changes\n .pipe(startWith(this._stepHeader), takeUntil(this._destroyed))\n .subscribe((headers: QueryList<CdkStepHeader>) => {\n this._sortedHeaders.reset(\n headers.toArray().sort((a, b) => {\n const documentPosition = a._elementRef.nativeElement.compareDocumentPosition(\n b._elementRef.nativeElement,\n );\n\n // `compareDocumentPosition` returns a bitmask so we have to use a bitwise operator.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // tslint:disable-next-line:no-bitwise\n return documentPosition & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n }),\n );\n this._sortedHeaders.notifyOnChanges();\n });\n\n // Note that while the step headers are content children by default, any components that\n // extend this one might have them as view children. We initialize the keyboard handling in\n // AfterViewInit so we're guaranteed for both view and content children to be defined.\n this._keyManager = new FocusKeyManager<FocusableOption>(this._sortedHeaders)\n .withWrap()\n .withHomeAndEnd()\n .withVerticalOrientation(this._orientation === 'vertical');\n\n // The selected index may have changed between when the component was created and when the\n // key manager was initialized. Use `updateActiveItem` so it's correct, but it doesn't steal\n // away focus from the user.\n this._keyManager.updateActiveItem(this.selectedIndex);\n\n (this._dir ? (this._dir.change as Observable<Direction>) : observableOf<Direction>())\n .pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed))\n .subscribe(direction => this._keyManager?.withHorizontalOrientation(direction));\n\n this._keyManager.updateActiveItem(this.selectedIndex);\n\n // No need to `takeUntil` here, because we're the ones destroying `steps`.\n this.steps.changes.subscribe(() => {\n if (!this.selected) {\n this._selectedIndex.set(Math.max(this.selectedIndex - 1, 0));\n }\n });\n\n // The logic which asserts that the selected index is within bounds doesn't run before the\n // steps are initialized, because we don't how many steps there are yet so we may have an\n // invalid index on init. If that's the case, auto-correct to the default so we don't throw.\n if (!this._isValidIndex(this.selectedIndex)) {\n this._selectedIndex.set(0);\n }\n\n // For linear step and selected index is greater than zero,\n // set all the previous steps to interacted so that we can navigate to previous steps.\n if (this.linear && this.selectedIndex > 0) {\n const visitedSteps = this.steps.toArray().slice(0, this._selectedIndex());\n\n for (const step of visitedSteps) {\n step._markAsInteracted();\n }\n }\n }\n\n ngOnDestroy() {\n this._keyManager?.destroy();\n this.steps.destroy();\n this._sortedHeaders.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n /** Selects and focuses the next step in list. */\n next(): void {\n this.selectedIndex = Math.min(this._selectedIndex() + 1, this.steps.length - 1);\n }\n\n /** Selects and focuses the previous step in list. */\n previous(): void {\n this.selectedIndex = Math.max(this._selectedIndex() - 1, 0);\n }\n\n /** Resets the stepper to its initial state. Note that this includes clearing form data. */\n reset(): void {\n this._updateSelectedItemIndex(0);\n this.steps.forEach(step => step.reset());\n this._stateChanged();\n }\n\n /** Returns a unique id for each step label element. */\n _getStepLabelId(i: number): string {\n return `${this._groupId}-label-${i}`;\n }\n\n /** Returns unique id for each step content element. */\n _getStepContentId(i: number): string {\n return `${this._groupId}-content-${i}`;\n }\n\n /** Marks the component to be change detected. */\n _stateChanged() {\n this._changeDetectorRef.markForCheck();\n }\n\n /** Returns position state of the step with the given index. */\n _getAnimationDirection(index: number): StepContentPositionState {\n const position = index - this._selectedIndex();\n if (position < 0) {\n return this._layoutDirection() === 'rtl' ? 'next' : 'previous';\n } else if (position > 0) {\n return this._layoutDirection() === 'rtl' ? 'previous' : 'next';\n }\n return 'current';\n }\n\n /** Returns the index of the currently-focused step header. */\n _getFocusIndex(): number | null {\n return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex();\n }\n\n private _updateSelectedItemIndex(newIndex: number): void {\n const stepsArray = this.steps.toArray();\n const selectedIndex = this._selectedIndex();\n\n this.selectionChange.emit({\n selectedIndex: newIndex,\n previouslySelectedIndex: selectedIndex,\n selectedStep: stepsArray[newIndex],\n previouslySelectedStep: stepsArray[selectedIndex],\n });\n\n // If focus is inside the stepper, move it to the next header, otherwise it may become\n // lost when the active step content is hidden. We can't be more granular with the check\n // (e.g. checking whether focus is inside the active step), because we don't have a\n // reference to the elements that are rendering out the content.\n if (this._keyManager) {\n this._containsFocus()\n ? this._keyManager.setActiveItem(newIndex)\n : this._keyManager.updateActiveItem(newIndex);\n }\n\n this._selectedIndex.set(newIndex);\n this.selectedIndexChange.emit(newIndex);\n this._stateChanged();\n }\n\n _onKeydown(event: KeyboardEvent) {\n const hasModifier = hasModifierKey(event);\n const keyCode = event.keyCode;\n const manager = this._keyManager;\n\n if (\n manager?.activeItemIndex != null &&\n !hasModifier &&\n (keyCode === SPACE || keyCode === ENTER)\n ) {\n this.selectedIndex = manager.activeItemIndex;\n event.preventDefault();\n } else {\n manager?.setFocusOrigin('keyboard').onKeydown(event);\n }\n }\n\n private _anyControlsInvalidOrPending(index: number): boolean {\n if (this.linear && index >= 0) {\n return this.steps\n .toArray()\n .slice(0, index)\n .some(step => {\n const control = step.stepControl;\n const isIncomplete = control\n ? control.invalid || control.pending || !step.interacted\n : !step.completed;\n return isIncomplete && !step.optional && !step._completedOverride();\n });\n }\n\n return false;\n }\n\n private _layoutDirection(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n\n /** Checks whether the stepper contains the focused element. */\n private _containsFocus(): boolean {\n const stepperElement = this._elementRef.nativeElement;\n const focusedElement = _getFocusedElementPierceShadowDom();\n return stepperElement === focusedElement || stepperElement.contains(focusedElement);\n }\n\n /** Checks whether the passed-in index is a valid step index. */\n private _isValidIndex(index: number): boolean {\n return index > -1 && (!this.steps || index < this.steps.length);\n }\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, inject} from '@angular/core';\n\nimport {CdkStepper} from './stepper';\n\n/** Button that moves to the next step in a stepper workflow. */\n@Directive({\n selector: 'button[cdkStepperNext]',\n host: {\n '[type]': 'type',\n '(click)': '_stepper.next()',\n },\n})\nexport class CdkStepperNext {\n _stepper = inject(CdkStepper);\n\n /** Type of the next button. Defaults to \"submit\" if not specified. */\n @Input() type: string = 'submit';\n\n constructor(...args: unknown[]);\n constructor() {}\n}\n\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n selector: 'button[cdkStepperPrevious]',\n host: {\n '[type]': 'type',\n '(click)': '_stepper.previous()',\n },\n})\nexport class CdkStepperPrevious {\n _stepper = inject(CdkStepper);\n\n /** Type of the previous button. Defaults to \"button\" if not specified. */\n @Input() type: string = 'button';\n\n constructor(...args: unknown[]);\n constructor() {}\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 {NgModule} from '@angular/core';\nimport {CdkStepper, CdkStep} from './stepper';\nimport {CdkStepLabel} from './step-label';\nimport {CdkStepperNext, CdkStepperPrevious} from './stepper-button';\nimport {CdkStepHeader} from './step-header';\nimport {BidiModule} from '../bidi';\n\n@NgModule({\n imports: [\n BidiModule,\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ],\n exports: [CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious],\n})\nexport class CdkStepperModule {}\n"],"names":["CdkStepHeader","_elementRef","inject","ElementRef","constructor","focus","nativeElement","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","host","attributes","ngImport","decorators","args","CdkStepLabel","template","TemplateRef","StepperSelectionEvent","selectedIndex","previouslySelectedIndex","selectedStep","previouslySelectedStep","STEP_STATE","NUMBER","EDIT","DONE","ERROR","STEPPER_GLOBAL_OPTIONS","InjectionToken","CdkStep","_stepperOptions","_stepper","CdkStepper","_displayDefaultIndicatorType","stepLabel","_childForms","content","stepControl","interacted","_interacted","value","set","signal","interactedStream","EventEmitter","label","errorMessage","ariaLabel","ariaLabelledby","state","_state","undefined","editable","_editable","optional","completed","override","_completedOverride","valid","index","isSelected","computed","indicatorType","selected","defaultState","_showError","hasError","isNavigable","isCompleted","linear","customError","_customError","_getDefaultError","invalid","stepperOptions","displayDefaultIndicatorType","select","reset","forEach","form","resetForm","ngOnChanges","_stateChanged","_markAsInteracted","emit","showError","Component","inputs","booleanAttribute","outputs","queries","propertyName","first","predicate","descendants","ControlContainer","viewQueries","static","exportAs","usesOnChanges","isInline","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","ContentChild","ContentChildren","ViewChild","Input","Output","transform","_dir","Directionality","_changeDetectorRef","ChangeDetectorRef","_destroyed","Subject","_keyManager","_steps","steps","QueryList","_stepHeader","_sortedHeaders","_selectedIndex","_isValidIndex","ngDevMode","Error","_anyControlsInvalidOrPending","toArray","_updateSelectedItemIndex","step","indexOf","selectionChange","selectedIndexChange","_groupId","_IdGenerator","getId","orientation","_orientation","withVerticalOrientation","ngAfterContentInit","changes","pipe","startWith","takeUntil","subscribe","filter","notifyOnChanges","ngAfterViewInit","headers","sort","a","b","documentPosition","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","FocusKeyManager","withWrap","withHomeAndEnd","updateActiveItem","change","observableOf","_layoutDirection","direction","withHorizontalOrientation","Math","max","visitedSteps","slice","ngOnDestroy","destroy","next","complete","min","length","previous","_getStepLabelId","i","_getStepContentId","markForCheck","_getAnimationDirection","position","_getFocusIndex","activeItemIndex","newIndex","stepsArray","_containsFocus","setActiveItem","_onKeydown","event","hasModifier","hasModifierKey","keyCode","manager","SPACE","ENTER","preventDefault","setFocusOrigin","onKeydown","some","control","isIncomplete","pending","stepperElement","focusedElement","_getFocusedElementPierceShadowDom","contains","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","numberAttribute","CdkStepperNext","listeners","properties","CdkStepperPrevious","CdkStepperModule","NgModule","ɵmod","ɵɵngDeclareNgModule","BidiModule","exports","ɵinj","ɵɵngDeclareInjector","imports"],"mappings":";;;;;;;;;;;;;;;MAiBaA,aAAa,CAAA;AACxBC,EAAAA,WAAW,GAAGC,MAAM,CAA0BC,UAAU,CAAC;EAGzDC,WAAAA,GAAA;AAGAC,EAAAA,KAAKA,GAAA;AACH,IAAA,IAAI,CAACJ,WAAW,CAACK,aAAa,CAACD,KAAK,EAAE;AACxC;;;;;UATWL,aAAa;AAAAO,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAbX,aAAa;AAAAY,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,iBAAA;AAAAC,IAAAA,IAAA,EAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;AAAA;KAAA;AAAAC,IAAAA,QAAA,EAAAP;AAAA,GAAA,CAAA;;;;;;QAAbT,aAAa;AAAAiB,EAAAA,UAAA,EAAA,CAAA;UANzBN,SAAS;AAACO,IAAAA,IAAA,EAAA,CAAA;AACTL,MAAAA,QAAQ,EAAE,iBAAiB;AAC3BC,MAAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE;AACT;KACF;;;;;MCHYK,YAAY,CAAA;AACvBC,EAAAA,QAAQ,GAAGlB,MAAM,CAAmBmB,WAAW,CAAC;EAGhDjB,WAAAA,GAAA;;;;;UAJWe,YAAY;AAAAZ,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAZQ,YAAY;AAAAP,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,gBAAA;AAAAG,IAAAA,QAAA,EAAAP;AAAA,GAAA,CAAA;;;;;;QAAZU,YAAY;AAAAF,EAAAA,UAAA,EAAA,CAAA;UAHxBN,SAAS;AAACO,IAAAA,IAAA,EAAA,CAAA;AACTL,MAAAA,QAAQ,EAAE;KACX;;;;;MCgDYS,qBAAqB,CAAA;EAEhCC,aAAa;EAGbC,uBAAuB;EAGvBC,YAAY;EAGZC,sBAAsB;AACvB;AAMM,MAAMC,UAAU,GAAG;AACxBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,KAAK,EAAE;;MAIIC,sBAAsB,GAAG,IAAIC,cAAc,CAAiB,wBAAwB;MAyBpFC,OAAO,CAAA;EACVC,eAAe;AACvBC,EAAAA,QAAQ,GAAGlC,MAAM,CAACmC,UAAU,CAAC;EAC7BC,4BAA4B;EAGAC,SAAS;EAa3BC,WAAW;EAGmBC,OAAO;EAGtCC,WAAW;EAGpB,IAAIC,UAAUA,GAAA;AACZ,IAAA,OAAO,IAAI,CAACC,WAAW,EAAE;AAC3B;EACA,IAAID,UAAUA,CAACE,KAAc,EAAA;AAC3B,IAAA,IAAI,CAACD,WAAW,CAACE,GAAG,CAACD,KAAK,CAAC;AAC7B;EACQD,WAAW,GAAGG,MAAM,CAAC,KAAK;;WAAC;AAI1BC,EAAAA,gBAAgB,GAA0B,IAAIC,YAAY,EAAW;EAGrEC,KAAK;EAGLC,YAAY;EAGAC,SAAS;EAMJC,cAAc;EAGxC,IACIC,KAAKA,GAAA;AACP,IAAA,OAAO,IAAI,CAACC,MAAM,EAAG;AACvB;EACA,IAAID,KAAKA,CAACT,KAAgB,EAAA;AACxB,IAAA,IAAI,CAACU,MAAM,CAACT,GAAG,CAACD,KAAK,CAAC;AACxB;EACQU,MAAM,GAAGR,MAAM,CAAwBS,SAAS;;WAAC;EAGzD,IACIC,QAAQA,GAAA;AACV,IAAA,OAAO,IAAI,CAACC,SAAS,EAAG;AAC1B;EACA,IAAID,QAAQA,CAACZ,KAAc,EAAA;AACzB,IAAA,IAAI,CAACa,SAAS,CAACZ,GAAG,CAACD,KAAK,CAAC;AAC3B;EACQa,SAAS,GAAGX,MAAM,CAAC,IAAI;;WAAC;AAGMY,EAAAA,QAAQ,GAAY,KAAK;EAG/D,IACIC,SAASA,GAAA;AACX,IAAA,MAAMC,QAAQ,GAAG,IAAI,CAACC,kBAAkB,EAAE;AAC1C,IAAA,MAAMnB,UAAU,GAAG,IAAI,CAACC,WAAW,EAAE;IAErC,IAAIiB,QAAQ,IAAI,IAAI,EAAE;AACpB,MAAA,OAAOA,QAAQ;AACjB;AAEA,IAAA,OAAOlB,UAAU,KAAK,CAAC,IAAI,CAACD,WAAW,IAAI,IAAI,CAACA,WAAW,CAACqB,KAAK,CAAC;AACpE;EACA,IAAIH,SAASA,CAACf,KAAc,EAAA;AAC1B,IAAA,IAAI,CAACiB,kBAAkB,CAAChB,GAAG,CAACD,KAAK,CAAC;AACpC;EACAiB,kBAAkB,GAAGf,MAAM,CAAiB,IAAI;;WAAC;EAGxCiB,KAAK,GAAGjB,MAAM,CAAC,CAAC,CAAC;;WAAC;AAGlBkB,EAAAA,UAAU,GAAGC,QAAQ,CAAU,MAAM,IAAI,CAAC9B,QAAQ,CAACb,aAAa,KAAK,IAAI,CAACyC,KAAK,EAAE;;WAAC;EAGlFG,aAAa,GAAGD,QAAQ,CAAY,MAAK;AAChD,IAAA,MAAME,QAAQ,GAAG,IAAI,CAACH,UAAU,EAAE;AAClC,IAAA,MAAML,SAAS,GAAG,IAAI,CAACA,SAAS;IAChC,MAAMS,YAAY,GAAG,IAAI,CAACd,MAAM,EAAE,IAAI5B,UAAU,CAACC,MAAM;AACvD,IAAA,MAAM6B,QAAQ,GAAG,IAAI,CAACC,SAAS,EAAE;AAEjC,IAAA,IAAI,IAAI,CAACY,UAAU,EAAE,IAAI,IAAI,CAACC,QAAQ,IAAI,CAACH,QAAQ,EAAE;MACnD,OAAOzC,UAAU,CAACI,KAAK;AACzB;IAEA,IAAI,IAAI,CAACO,4BAA4B,EAAE;AACrC,MAAA,IAAI,CAACsB,SAAS,IAAIQ,QAAQ,EAAE;QAC1B,OAAOzC,UAAU,CAACC,MAAM;AAC1B;MACA,OAAO6B,QAAQ,GAAG9B,UAAU,CAACE,IAAI,GAAGF,UAAU,CAACG,IAAI;AACrD,KAAA,MAAO;AACL,MAAA,IAAI8B,SAAS,IAAI,CAACQ,QAAQ,EAAE;QAC1B,OAAOzC,UAAU,CAACG,IAAI;AACxB,OAAA,MAAO,IAAI8B,SAAS,IAAIQ,QAAQ,EAAE;AAChC,QAAA,OAAOC,YAAY;AACrB;MACA,OAAOZ,QAAQ,IAAIW,QAAQ,GAAGzC,UAAU,CAACE,IAAI,GAAGwC,YAAY;AAC9D;AACF,GAAC;;WAAC;EAGOG,WAAW,GAAGN,QAAQ,CAAU,MAAK;AAC5C,IAAA,MAAMD,UAAU,GAAG,IAAI,CAACA,UAAU,EAAE;AACpC,IAAA,MAAMQ,WAAW,GAAG,IAAI,CAACb,SAAS;IAClC,OAAOa,WAAW,IAAIR,UAAU,IAAI,CAAC,IAAI,CAAC7B,QAAQ,CAACsC,MAAM;AAC3D,GAAC;;WAAC;EAGF,IACIH,QAAQA,GAAA;AACV,IAAA,MAAMI,WAAW,GAAG,IAAI,CAACC,YAAY,EAAE;IACvC,OAAOD,WAAW,IAAI,IAAI,GAAG,IAAI,CAACE,gBAAgB,EAAE,GAAGF,WAAW;AACpE;EACA,IAAIJ,QAAQA,CAAC1B,KAAc,EAAA;AACzB,IAAA,IAAI,CAAC+B,YAAY,CAAC9B,GAAG,CAACD,KAAK,CAAC;AAC9B;EACQ+B,YAAY,GAAG7B,MAAM,CAAiB,IAAI;;WAAC;AAE3C8B,EAAAA,gBAAgBA,GAAA;IACtB,OAAO,IAAI,CAAClC,UAAU,IAAI,CAAC,CAAC,IAAI,CAACD,WAAW,EAAEoC,OAAO;AACvD;AAIA1E,EAAAA,WAAAA,GAAA;AACE,IAAA,MAAM2E,cAAc,GAAG7E,MAAM,CAAiB8B,sBAAsB,EAAE;AAAC2B,MAAAA,QAAQ,EAAE;AAAK,KAAA,CAAC;IACvF,IAAI,CAACxB,eAAe,GAAG4C,cAAc,GAAGA,cAAc,GAAG,EAAE;IAC3D,IAAI,CAACzC,4BAA4B,GAAG,IAAI,CAACH,eAAe,CAAC6C,2BAA2B,KAAK,KAAK;AAChG;AAGAC,EAAAA,MAAMA,GAAA;AACJ,IAAA,IAAI,CAAC7C,QAAQ,CAACgC,QAAQ,GAAG,IAAI;AAC/B;AAGAc,EAAAA,KAAKA,GAAA;AACH,IAAA,IAAI,CAACtC,WAAW,CAACE,GAAG,CAAC,KAAK,CAAC;AAE3B,IAAA,IAAI,IAAI,CAACgB,kBAAkB,EAAE,IAAI,IAAI,EAAE;AACrC,MAAA,IAAI,CAACA,kBAAkB,CAAChB,GAAG,CAAC,KAAK,CAAC;AACpC;AAEA,IAAA,IAAI,IAAI,CAAC8B,YAAY,EAAE,IAAI,IAAI,EAAE;AAC/B,MAAA,IAAI,CAACA,YAAY,CAAC9B,GAAG,CAAC,KAAK,CAAC;AAC9B;IAEA,IAAI,IAAI,CAACJ,WAAW,EAAE;AAIpB,MAAA,IAAI,CAACF,WAAW,EAAE2C,OAAO,CAACC,IAAI,IAAIA,IAAI,CAACC,SAAS,IAAI,CAAC;AACrD,MAAA,IAAI,CAAC3C,WAAW,CAACwC,KAAK,EAAE;AAC1B;AACF;AAEAI,EAAAA,WAAWA,GAAA;AAGT,IAAA,IAAI,CAAClD,QAAQ,CAACmD,aAAa,EAAE;AAC/B;AAEAC,EAAAA,iBAAiBA,GAAA;AACf,IAAA,IAAI,CAAC,IAAI,CAAC5C,WAAW,EAAE,EAAE;AACvB,MAAA,IAAI,CAACA,WAAW,CAACE,GAAG,CAAC,IAAI,CAAC;AAC1B,MAAA,IAAI,CAACE,gBAAgB,CAACyC,IAAI,CAAC,IAAI,CAAC;AAClC;AACF;AAGAnB,EAAAA,UAAUA,GAAA;AAGR,IAAA,OAAO,IAAI,CAACnC,eAAe,CAACuD,SAAS,IAAI,IAAI,CAACd,YAAY,EAAE,IAAI,IAAI;AACtE;;;;;UAzMW1C,OAAO;AAAA3B,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAiF;AAAA,GAAA,CAAA;;;;UAAPzD,OAAO;AAAAtB,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,UAAA;AAAA+E,IAAAA,MAAA,EAAA;AAAAlD,MAAAA,WAAA,EAAA,aAAA;AAAAQ,MAAAA,KAAA,EAAA,OAAA;AAAAC,MAAAA,YAAA,EAAA,cAAA;AAAAC,MAAAA,SAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA;AAAAC,MAAAA,cAAA,EAAA,CAAA,iBAAA,EAAA,gBAAA,CAAA;AAAAC,MAAAA,KAAA,EAAA,OAAA;AAAAG,MAAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAkECoC,gBAAgB,CAUhB;AAAAlC,MAAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAAkC,gBAAgB;4CAGhBA,gBAAgB,CAAA;AAAAtB,MAAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAwDhBsB,gBAAgB;KAAA;AAAAC,IAAAA,OAAA,EAAA;AAAA9C,MAAAA,gBAAA,EAAA;KAAA;AAAA+C,IAAAA,OAAA,EAAA,CAAA;AAAAC,MAAAA,YAAA,EAAA,WAAA;AAAAC,MAAAA,KAAA,EAAA,IAAA;AAAAC,MAAAA,SAAA,EAjIrB/E,YAAY;AAAAgF,MAAAA,WAAA,EAAA;AAAA,KAAA,EAAA;AAAAH,MAAAA,YAAA,EAAA,aAAA;AAAAE,MAAAA,SAAA,EAQxBE,gBAAgB;AAAAD,MAAAA,WAAA,EAAA;AAAA,KAAA,CAAA;AAAAE,IAAAA,WAAA,EAAA,CAAA;AAAAL,MAAAA,YAAA,EAAA,SAAA;AAAAC,MAAAA,KAAA,EAAA,IAAA;AAAAC,MAAAA,SAAA,EAQP7E,WAAW;AAAA8E,MAAAA,WAAA,EAAA,IAAA;AAAAG,MAAAA,MAAA,EAAA;AAAA,KAAA,CAAA;IAAAC,QAAA,EAAA,CAAA,SAAA,CAAA;AAAAC,IAAAA,aAAA,EAAA,IAAA;AAAAxF,IAAAA,QAAA,EAAAP,EAAA;AAAAW,IAAAA,QAAA,EA1BZ,0CAA0C;AAAAqF,IAAAA,QAAA,EAAA,IAAA;AAAAC,IAAAA,eAAA,EAAAjG,EAAA,CAAAkG,uBAAA,CAAAC,MAAA;AAAAC,IAAAA,aAAA,EAAApG,EAAA,CAAAqG,iBAAA,CAAAC;AAAA,GAAA,CAAA;;;;;;QAIzC7E,OAAO;AAAAjB,EAAAA,UAAA,EAAA,CAAA;UAPnB0E,SAAS;AAACzE,IAAAA,IAAA,EAAA,CAAA;AACTL,MAAAA,QAAQ,EAAE,UAAU;AACpB0F,MAAAA,QAAQ,EAAE,SAAS;AACnBnF,MAAAA,QAAQ,EAAE,0CAA0C;MACpDyF,aAAa,EAAEC,iBAAiB,CAACC,IAAI;MACrCL,eAAe,EAAEC,uBAAuB,CAACC;KAC1C;;;;;YAOEI,YAAY;aAAC7F,YAAY;;;YAGzB8F,eAAe;aAKdb,gBAAgB,EAChB;AACED,QAAAA,WAAW,EAAE;OACd;;;YAKFe,SAAS;MAAChG,IAAA,EAAA,CAAAG,WAAW,EAAE;AAACiF,QAAAA,MAAM,EAAE;OAAK;;;YAGrCa;;;YAYAC,MAAM;aAAC,YAAY;;;YAInBD;;;YAGAA;;;YAGAA,KAAK;aAAC,YAAY;;;YAMlBA,KAAK;aAAC,iBAAiB;;;YAGvBA;;;YAUAA,KAAK;aAAC;AAACE,QAAAA,SAAS,EAAExB;OAAiB;;;YAUnCsB,KAAK;aAAC;AAACE,QAAAA,SAAS,EAAExB;OAAiB;;;YAGnCsB,KAAK;aAAC;AAACE,QAAAA,SAAS,EAAExB;OAAiB;;;YAwDnCsB,KAAK;aAAC;AAACE,QAAAA,SAAS,EAAExB;OAAiB;;;;MAyEzBxD,UAAU,CAAA;AACbiF,EAAAA,IAAI,GAAGpH,MAAM,CAACqH,cAAc,EAAE;AAAC5D,IAAAA,QAAQ,EAAE;AAAK,GAAA,CAAC;AAC/C6D,EAAAA,kBAAkB,GAAGtH,MAAM,CAACuH,iBAAiB,CAAC;AAC5CxH,EAAAA,WAAW,GAAGC,MAAM,CAA0BC,UAAU,CAAC;AAGhDuH,EAAAA,UAAU,GAAG,IAAIC,OAAO,EAAQ;EAG3CC,WAAW;EAG4BC,MAAM;AAG5CC,EAAAA,KAAK,GAAuB,IAAIC,SAAS,EAAW;EAGRC,WAAW;AAGxDC,EAAAA,cAAc,GAAG,IAAIF,SAAS,EAAiB;AAGjBrD,EAAAA,MAAM,GAAY,KAAK;EAG7D,IACInD,aAAaA,GAAA;AACf,IAAA,OAAO,IAAI,CAAC2G,cAAc,EAAE;AAC9B;EACA,IAAI3G,aAAaA,CAACyC,KAAa,EAAA;IAC7B,IAAI,IAAI,CAAC6D,MAAM,EAAE;AAEf,MAAA,IAAI,CAAC,IAAI,CAACM,aAAa,CAACnE,KAAK,CAAC,KAAK,OAAOoE,SAAS,KAAK,WAAW,IAAIA,SAAS,CAAC,EAAE;QACjF,MAAMC,KAAK,CAAC,mEAAmE,CAAC;AAClF;AAEA,MAAA,IAAI,IAAI,CAAC9G,aAAa,KAAKyC,KAAK,EAAE;AAChC,QAAA,IAAI,CAACI,QAAQ,EAAEoB,iBAAiB,EAAE;QAElC,IACE,CAAC,IAAI,CAAC8C,4BAA4B,CAACtE,KAAK,CAAC,KACxCA,KAAK,IAAI,IAAI,CAACzC,aAAa,IAAI,IAAI,CAACuG,KAAK,CAACS,OAAO,EAAE,CAACvE,KAAK,CAAC,CAACP,QAAQ,CAAC,EACrE;AACA,UAAA,IAAI,CAAC+E,wBAAwB,CAACxE,KAAK,CAAC;AACtC;AACF;AACF,KAAA,MAAO;AACL,MAAA,IAAI,CAACkE,cAAc,CAACpF,GAAG,CAACkB,KAAK,CAAC;AAChC;AACF;EACQkE,cAAc,GAAGnF,MAAM,CAAC,CAAC;;WAAC;EAGlC,IACIqB,QAAQA,GAAA;AACV,IAAA,OAAO,IAAI,CAAC0D,KAAK,GAAG,IAAI,CAACA,KAAK,CAACS,OAAO,EAAE,CAAC,IAAI,CAAChH,aAAa,CAAC,GAAGiC,SAAS;AAC1E;EACA,IAAIY,QAAQA,CAACqE,IAAyB,EAAA;IACpC,IAAI,CAAClH,aAAa,GAAGkH,IAAI,IAAI,IAAI,CAACX,KAAK,GAAG,IAAI,CAACA,KAAK,CAACS,OAAO,EAAE,CAACG,OAAO,CAACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACnF;AAGmBE,EAAAA,eAAe,GAAG,IAAI1F,YAAY,EAAyB;AAG3D2F,EAAAA,mBAAmB,GAAyB,IAAI3F,YAAY,EAAU;EAGjF4F,QAAQ,GAAG3I,MAAM,CAAC4I,YAAY,CAAC,CAACC,KAAK,CAAC,cAAc,CAAC;EAG7D,IACIC,WAAWA,GAAA;IACb,OAAO,IAAI,CAACC,YAAY;AAC1B;EACA,IAAID,WAAWA,CAACnG,KAAyB,EAAA;IAEvC,IAAI,CAACoG,YAAY,GAAGpG,KAAK;IAEzB,IAAI,IAAI,CAAC+E,WAAW,EAAE;MACpB,IAAI,CAACA,WAAW,CAACsB,uBAAuB,CAACrG,KAAK,KAAK,UAAU,CAAC;AAChE;AACF;AACQoG,EAAAA,YAAY,GAAuB,YAAY;EAGvD7I,WAAAA,GAAA;AAEA+I,EAAAA,kBAAkBA,GAAA;IAChB,IAAI,CAACtB,MAAM,CAACuB,OAAO,CAChBC,IAAI,CAACC,SAAS,CAAC,IAAI,CAACzB,MAAM,CAAC,EAAE0B,SAAS,CAAC,IAAI,CAAC7B,UAAU,CAAC,CAAA,CACvD8B,SAAS,CAAE1B,KAAyB,IAAI;AACvC,MAAA,IAAI,CAACA,KAAK,CAAC5C,KAAK,CAAC4C,KAAK,CAAC2B,MAAM,CAAChB,IAAI,IAAIA,IAAI,CAACrG,QAAQ,KAAK,IAAI,CAAC,CAAC;AAC9D,MAAA,IAAI,CAAC0F,KAAK,CAAC3C,OAAO,CAAC,CAACsD,IAAI,EAAEzE,KAAK,KAAKyE,IAAI,CAACzE,KAAK,CAAClB,GAAG,CAACkB,KAAK,CAAC,CAAC;AAC1D,MAAA,IAAI,CAAC8D,KAAK,CAAC4B,eAAe,EAAE;AAC9B,KAAC,CAAC;AACN;AAEAC,EAAAA,eAAeA,GAAA;IAOb,IAAI,CAAC3B,WAAW,CAACoB,OAAO,CACrBC,IAAI,CAACC,SAAS,CAAC,IAAI,CAACtB,WAAW,CAAC,EAAEuB,SAAS,CAAC,IAAI,CAAC7B,UAAU,CAAC,CAAA,CAC5D8B,SAAS,CAAEI,OAAiC,IAAI;AAC/C,MAAA,IAAI,CAAC3B,cAAc,CAAC/C,KAAK,CACvB0E,OAAO,CAACrB,OAAO,EAAE,CAACsB,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAI;AAC9B,QAAA,MAAMC,gBAAgB,GAAGF,CAAC,CAAC7J,WAAW,CAACK,aAAa,CAAC2J,uBAAuB,CAC1EF,CAAC,CAAC9J,WAAW,CAACK,aAAa,CAC5B;QAKD,OAAO0J,gBAAgB,GAAGE,IAAI,CAACC,2BAA2B,GAAG,CAAC,CAAC,GAAG,CAAC;AACrE,OAAC,CAAC,CACH;AACD,MAAA,IAAI,CAAClC,cAAc,CAACyB,eAAe,EAAE;AACvC,KAAC,CAAC;IAKJ,IAAI,CAAC9B,WAAW,GAAG,IAAIwC,eAAe,CAAkB,IAAI,CAACnC,cAAc,CAAA,CACxEoC,QAAQ,EAAE,CACVC,cAAc,EAAE,CAChBpB,uBAAuB,CAAC,IAAI,CAACD,YAAY,KAAK,UAAU,CAAC;IAK5D,IAAI,CAACrB,WAAW,CAAC2C,gBAAgB,CAAC,IAAI,CAAChJ,aAAa,CAAC;IAErD,CAAC,IAAI,CAAC+F,IAAI,GAAI,IAAI,CAACA,IAAI,CAACkD,MAAgC,GAAGC,EAAY,EAAa,EACjFpB,IAAI,CAACC,SAAS,CAAC,IAAI,CAACoB,gBAAgB,EAAE,CAAC,EAAEnB,SAAS,CAAC,IAAI,CAAC7B,UAAU,CAAC,CAAA,CACnE8B,SAAS,CAACmB,SAAS,IAAI,IAAI,CAAC/C,WAAW,EAAEgD,yBAAyB,CAACD,SAAS,CAAC,CAAC;IAEjF,IAAI,CAAC/C,WAAW,CAAC2C,gBAAgB,CAAC,IAAI,CAAChJ,aAAa,CAAC;AAGrD,IAAA,IAAI,CAACuG,KAAK,CAACsB,OAAO,CAACI,SAAS,CAAC,MAAK;AAChC,MAAA,IAAI,CAAC,IAAI,CAACpF,QAAQ,EAAE;AAClB,QAAA,IAAI,CAAC8D,cAAc,CAACpF,GAAG,CAAC+H,IAAI,CAACC,GAAG,CAAC,IAAI,CAACvJ,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9D;AACF,KAAC,CAAC;IAKF,IAAI,CAAC,IAAI,CAAC4G,aAAa,CAAC,IAAI,CAAC5G,aAAa,CAAC,EAAE;AAC3C,MAAA,IAAI,CAAC2G,cAAc,CAACpF,GAAG,CAAC,CAAC,CAAC;AAC5B;IAIA,IAAI,IAAI,CAAC4B,MAAM,IAAI,IAAI,CAACnD,aAAa,GAAG,CAAC,EAAE;AACzC,MAAA,MAAMwJ,YAAY,GAAG,IAAI,CAACjD,KAAK,CAACS,OAAO,EAAE,CAACyC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC9C,cAAc,EAAE,CAAC;AAEzE,MAAA,KAAK,MAAMO,IAAI,IAAIsC,YAAY,EAAE;QAC/BtC,IAAI,CAACjD,iBAAiB,EAAE;AAC1B;AACF;AACF;AAEAyF,EAAAA,WAAWA,GAAA;AACT,IAAA,IAAI,CAACrD,WAAW,EAAEsD,OAAO,EAAE;AAC3B,IAAA,IAAI,CAACpD,KAAK,CAACoD,OAAO,EAAE;AACpB,IAAA,IAAI,CAACjD,cAAc,CAACiD,OAAO,EAAE;AAC7B,IAAA,IAAI,CAACxD,UAAU,CAACyD,IAAI,EAAE;AACtB,IAAA,IAAI,CAACzD,UAAU,CAAC0D,QAAQ,EAAE;AAC5B;AAGAD,EAAAA,IAAIA,GAAA;IACF,IAAI,CAAC5J,aAAa,GAAGsJ,IAAI,CAACQ,GAAG,CAAC,IAAI,CAACnD,cAAc,EAAE,GAAG,CAAC,EAAE,IAAI,CAACJ,KAAK,CAACwD,MAAM,GAAG,CAAC,CAAC;AACjF;AAGAC,EAAAA,QAAQA,GAAA;AACN,IAAA,IAAI,CAAChK,aAAa,GAAGsJ,IAAI,CAACC,GAAG,CAAC,IAAI,CAAC5C,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7D;AAGAhD,EAAAA,KAAKA,GAAA;AACH,IAAA,IAAI,CAACsD,wBAAwB,CAAC,CAAC,CAAC;AAChC,IAAA,IAAI,CAACV,KAAK,CAAC3C,OAAO,CAACsD,IAAI,IAAIA,IAAI,CAACvD,KAAK,EAAE,CAAC;IACxC,IAAI,CAACK,aAAa,EAAE;AACtB;EAGAiG,eAAeA,CAACC,CAAS,EAAA;AACvB,IAAA,OAAO,GAAG,IAAI,CAAC5C,QAAQ,CAAA,OAAA,EAAU4C,CAAC,CAAE,CAAA;AACtC;EAGAC,iBAAiBA,CAACD,CAAS,EAAA;AACzB,IAAA,OAAO,GAAG,IAAI,CAAC5C,QAAQ,CAAA,SAAA,EAAY4C,CAAC,CAAE,CAAA;AACxC;AAGAlG,EAAAA,aAAaA,GAAA;AACX,IAAA,IAAI,CAACiC,kBAAkB,CAACmE,YAAY,EAAE;AACxC;EAGAC,sBAAsBA,CAAC5H,KAAa,EAAA;IAClC,MAAM6H,QAAQ,GAAG7H,KAAK,GAAG,IAAI,CAACkE,cAAc,EAAE;IAC9C,IAAI2D,QAAQ,GAAG,CAAC,EAAE;MAChB,OAAO,IAAI,CAACnB,gBAAgB,EAAE,KAAK,KAAK,GAAG,MAAM,GAAG,UAAU;AAChE,KAAA,MAAO,IAAImB,QAAQ,GAAG,CAAC,EAAE;MACvB,OAAO,IAAI,CAACnB,gBAAgB,EAAE,KAAK,KAAK,GAAG,UAAU,GAAG,MAAM;AAChE;AACA,IAAA,OAAO,SAAS;AAClB;AAGAoB,EAAAA,cAAcA,GAAA;AACZ,IAAA,OAAO,IAAI,CAAClE,WAAW,GAAG,IAAI,CAACA,WAAW,CAACmE,eAAe,GAAG,IAAI,CAAC7D,cAAc,EAAE;AACpF;EAEQM,wBAAwBA,CAACwD,QAAgB,EAAA;IAC/C,MAAMC,UAAU,GAAG,IAAI,CAACnE,KAAK,CAACS,OAAO,EAAE;AACvC,IAAA,MAAMhH,aAAa,GAAG,IAAI,CAAC2G,cAAc,EAAE;AAE3C,IAAA,IAAI,CAACS,eAAe,CAAClD,IAAI,CAAC;AACxBlE,MAAAA,aAAa,EAAEyK,QAAQ;AACvBxK,MAAAA,uBAAuB,EAAED,aAAa;AACtCE,MAAAA,YAAY,EAAEwK,UAAU,CAACD,QAAQ,CAAC;MAClCtK,sBAAsB,EAAEuK,UAAU,CAAC1K,aAAa;AACjD,KAAA,CAAC;IAMF,IAAI,IAAI,CAACqG,WAAW,EAAE;MACpB,IAAI,CAACsE,cAAc,EAAE,GACjB,IAAI,CAACtE,WAAW,CAACuE,aAAa,CAACH,QAAQ,CAAA,GACvC,IAAI,CAACpE,WAAW,CAAC2C,gBAAgB,CAACyB,QAAQ,CAAC;AACjD;AAEA,IAAA,IAAI,CAAC9D,cAAc,CAACpF,GAAG,CAACkJ,QAAQ,CAAC;AACjC,IAAA,IAAI,CAACpD,mBAAmB,CAACnD,IAAI,CAACuG,QAAQ,CAAC;IACvC,IAAI,CAACzG,aAAa,EAAE;AACtB;EAEA6G,UAAUA,CAACC,KAAoB,EAAA;AAC7B,IAAA,MAAMC,WAAW,GAAGC,cAAc,CAACF,KAAK,CAAC;AACzC,IAAA,MAAMG,OAAO,GAAGH,KAAK,CAACG,OAAO;AAC7B,IAAA,MAAMC,OAAO,GAAG,IAAI,CAAC7E,WAAW;AAEhC,IAAA,IACE6E,OAAO,EAAEV,eAAe,IAAI,IAAI,IAChC,CAACO,WAAW,KACXE,OAAO,KAAKE,KAAK,IAAIF,OAAO,KAAKG,KAAK,CAAC,EACxC;AACA,MAAA,IAAI,CAACpL,aAAa,GAAGkL,OAAO,CAACV,eAAe;MAC5CM,KAAK,CAACO,cAAc,EAAE;AACxB,KAAA,MAAO;MACLH,OAAO,EAAEI,cAAc,CAAC,UAAU,CAAC,CAACC,SAAS,CAACT,KAAK,CAAC;AACtD;AACF;EAEQ/D,4BAA4BA,CAACtE,KAAa,EAAA;AAChD,IAAA,IAAI,IAAI,CAACU,MAAM,IAAIV,KAAK,IAAI,CAAC,EAAE;AAC7B,MAAA,OAAO,IAAI,CAAC8D,KAAK,CACdS,OAAO,EAAE,CACTyC,KAAK,CAAC,CAAC,EAAEhH,KAAK,CAAA,CACd+I,IAAI,CAACtE,IAAI,IAAG;AACX,QAAA,MAAMuE,OAAO,GAAGvE,IAAI,CAAC/F,WAAW;QAChC,MAAMuK,YAAY,GAAGD,OAAO,GACxBA,OAAO,CAAClI,OAAO,IAAIkI,OAAO,CAACE,OAAO,IAAI,CAACzE,IAAI,CAAC9F,UAAU,GACtD,CAAC8F,IAAI,CAAC7E,SAAS;AACnB,QAAA,OAAOqJ,YAAY,IAAI,CAACxE,IAAI,CAAC9E,QAAQ,IAAI,CAAC8E,IAAI,CAAC3E,kBAAkB,EAAE;AACrE,OAAC,CAAC;AACN;AAEA,IAAA,OAAO,KAAK;AACd;AAEQ4G,EAAAA,gBAAgBA,GAAA;AACtB,IAAA,OAAO,IAAI,CAACpD,IAAI,IAAI,IAAI,CAACA,IAAI,CAACzE,KAAK,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK;AAC/D;AAGQqJ,EAAAA,cAAcA,GAAA;AACpB,IAAA,MAAMiB,cAAc,GAAG,IAAI,CAAClN,WAAW,CAACK,aAAa;AACrD,IAAA,MAAM8M,cAAc,GAAGC,iCAAiC,EAAE;IAC1D,OAAOF,cAAc,KAAKC,cAAc,IAAID,cAAc,CAACG,QAAQ,CAACF,cAAc,CAAC;AACrF;EAGQjF,aAAaA,CAACnE,KAAa,EAAA;AACjC,IAAA,OAAOA,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC8D,KAAK,IAAI9D,KAAK,GAAG,IAAI,CAAC8D,KAAK,CAACwD,MAAM,CAAC;AACjE;;;;;UA3SWjJ,UAAU;AAAA9B,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAV,EAAA,OAAA4M,IAAA,GAAA9M,EAAA,CAAA+M,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,IAAA,EAAAtL,UAAU;;;;mCAwBFwD,gBAAgB,CAAA;AAAAtE,MAAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAGhBqM,eAAe,CAfjB;AAAAxJ,MAAAA,QAAA,EAAA,UAAA;AAAA4E,MAAAA,WAAA,EAAA;KAAA;AAAAlD,IAAAA,OAAA,EAAA;AAAA6C,MAAAA,eAAA,EAAA,iBAAA;AAAAC,MAAAA,mBAAA,EAAA;KAAA;AAAA7C,IAAAA,OAAA,EAAA,CAAA;AAAAC,MAAAA,YAAA,EAAA,QAAA;AAAAE,MAAAA,SAAA,EAAAhE,OAAO;;;;iBAMPlC,aAAa;AAAAmG,MAAAA,WAAA,EAAA;AAAA,KAAA,CAAA;IAAAI,QAAA,EAAA,CAAA,YAAA,CAAA;AAAAvF,IAAAA,QAAA,EAAAP;AAAA,GAAA,CAAA;;;;;;QAlBnB4B,UAAU;AAAApB,EAAAA,UAAA,EAAA,CAAA;UAJtBN,SAAS;AAACO,IAAAA,IAAA,EAAA,CAAA;AACTL,MAAAA,QAAQ,EAAE,cAAc;AACxB0F,MAAAA,QAAQ,EAAE;KACX;;;;;YAaEU,eAAe;MAAC/F,IAAA,EAAA,CAAAgB,OAAO,EAAE;AAACiE,QAAAA,WAAW,EAAE;OAAK;;;YAM5Cc,eAAe;MAAC/F,IAAA,EAAA,CAAAlB,aAAa,EAAE;AAACmG,QAAAA,WAAW,EAAE;OAAK;;;YAMlDgB,KAAK;aAAC;AAACE,QAAAA,SAAS,EAAExB;OAAiB;;;YAGnCsB,KAAK;aAAC;AAACE,QAAAA,SAAS,EAAEuG;OAAgB;;;YA4BlCzG;;;YASAC;;;YAGAA;;;YAMAD;;;;;MCpXU0G,cAAc,CAAA;AACzBzL,EAAAA,QAAQ,GAAGlC,MAAM,CAACmC,UAAU,CAAC;AAGpBsL,EAAAA,IAAI,GAAW,QAAQ;EAGhCvN,WAAAA,GAAA;;;;;UAPWyN,cAAc;AAAAtN,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAdkN,cAAc;AAAAjN,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,wBAAA;AAAA+E,IAAAA,MAAA,EAAA;AAAA+H,MAAAA,IAAA,EAAA;KAAA;AAAA7M,IAAAA,IAAA,EAAA;AAAAgN,MAAAA,SAAA,EAAA;AAAA,QAAA,OAAA,EAAA;OAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;AAAA;KAAA;AAAA/M,IAAAA,QAAA,EAAAP;AAAA,GAAA,CAAA;;;;;;QAAdoN,cAAc;AAAA5M,EAAAA,UAAA,EAAA,CAAA;UAP1BN,SAAS;AAACO,IAAAA,IAAA,EAAA,CAAA;AACTL,MAAAA,QAAQ,EAAE,wBAAwB;AAClCC,MAAAA,IAAI,EAAE;AACJ,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,SAAS,EAAE;AACZ;KACF;;;;;YAKEqG;;;;MAcU6G,kBAAkB,CAAA;AAC7B5L,EAAAA,QAAQ,GAAGlC,MAAM,CAACmC,UAAU,CAAC;AAGpBsL,EAAAA,IAAI,GAAW,QAAQ;EAGhCvN,WAAAA,GAAA;;;;;UAPW4N,kBAAkB;AAAAzN,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAlBqN,kBAAkB;AAAApN,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,4BAAA;AAAA+E,IAAAA,MAAA,EAAA;AAAA+H,MAAAA,IAAA,EAAA;KAAA;AAAA7M,IAAAA,IAAA,EAAA;AAAAgN,MAAAA,SAAA,EAAA;AAAA,QAAA,OAAA,EAAA;OAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;AAAA;KAAA;AAAA/M,IAAAA,QAAA,EAAAP;AAAA,GAAA,CAAA;;;;;;QAAlBuN,kBAAkB;AAAA/M,EAAAA,UAAA,EAAA,CAAA;UAP9BN,SAAS;AAACO,IAAAA,IAAA,EAAA,CAAA;AACTL,MAAAA,QAAQ,EAAE,4BAA4B;AACtCC,MAAAA,IAAI,EAAE;AACJ,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,SAAS,EAAE;AACZ;KACF;;;;;YAKEqG;;;;;MCfU8G,gBAAgB,CAAA;;;;;UAAhBA,gBAAgB;AAAA1N,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAwN;AAAA,GAAA,CAAA;AAAhB,EAAA,OAAAC,IAAA,GAAA1N,EAAA,CAAA2N,mBAAA,CAAA;AAAAX,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAA1M,IAAAA,QAAA,EAAAP,EAAA;AAAAkN,IAAAA,IAAA,EAAAM,gBAAgB;cAVzBI,UAAU,EACVnM,OAAO,EACPG,UAAU,EACVrC,aAAa,EACbmB,YAAY,EACZ0M,cAAc,EACdG,kBAAkB,CAAA;AAAAM,IAAAA,OAAA,EAAA,CAEVpM,OAAO,EAAEG,UAAU,EAAErC,aAAa,EAAEmB,YAAY,EAAE0M,cAAc,EAAEG,kBAAkB;AAAA,GAAA,CAAA;AAEnF,EAAA,OAAAO,IAAA,GAAA9N,EAAA,CAAA+N,mBAAA,CAAA;AAAAf,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAA1M,IAAAA,QAAA,EAAAP,EAAA;AAAAkN,IAAAA,IAAA,EAAAM,gBAAgB;cAVzBI,UAAU;AAAA,GAAA,CAAA;;;;;;QAUDJ,gBAAgB;AAAAhN,EAAAA,UAAA,EAAA,CAAA;UAZ5BiN,QAAQ;AAAChN,IAAAA,IAAA,EAAA,CAAA;AACRuN,MAAAA,OAAO,EAAE,CACPJ,UAAU,EACVnM,OAAO,EACPG,UAAU,EACVrC,aAAa,EACbmB,YAAY,EACZ0M,cAAc,EACdG,kBAAkB,CACnB;AACDM,MAAAA,OAAO,EAAE,CAACpM,OAAO,EAAEG,UAAU,EAAErC,aAAa,EAAEmB,YAAY,EAAE0M,cAAc,EAAEG,kBAAkB;KAC/F;;;;;;"}