{"version":3,"file":"stepper.js","sources":["../../packages/cdk/stepper/step-label.js","../../packages/cdk/stepper/stepper.js","../../packages/cdk/stepper/stepper-button.js","../../packages/cdk/stepper/stepper-module.js","../../packages/cdk/stepper/index.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. 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.io/license\n */\nimport { Directive, TemplateRef } from '@angular/core';\nexport class CdkStepLabel {\n /**\n * @param {?} template\n */\n constructor(template) {\n this.template = template;\n }\n}\nCdkStepLabel.decorators = [\n { type: Directive, args: [{\n selector: '[cdkStepLabel]',\n },] },\n];\n/**\n * @nocollapse\n */\nCdkStepLabel.ctorParameters = () => [\n { type: TemplateRef, },\n];\nfunction CdkStepLabel_tsickle_Closure_declarations() {\n /** @type {?} */\n CdkStepLabel.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n CdkStepLabel.ctorParameters;\n /** @type {?} */\n CdkStepLabel.prototype.template;\n}\n//# sourceMappingURL=step-label.js.map","/**\n * @license\n * Copyright Google Inc. 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.io/license\n */\nimport { ContentChildren, EventEmitter, Input, Output, Directive, Component, ContentChild, ViewChild, TemplateRef, ViewEncapsulation, Optional, Inject, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, } from '@angular/core';\nimport { LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { CdkStepLabel } from './step-label';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directionality } from '@angular/cdk/bidi';\n/**\n * Used to generate unique ID for each stepper component.\n */\nlet nextId = 0;\n/**\n * Change event emitted on selection changes.\n */\nexport class StepperSelectionEvent {\n}\nfunction StepperSelectionEvent_tsickle_Closure_declarations() {\n /**\n * Index of the step now selected.\n * @type {?}\n */\n StepperSelectionEvent.prototype.selectedIndex;\n /**\n * Index of the step previously selected.\n * @type {?}\n */\n StepperSelectionEvent.prototype.previouslySelectedIndex;\n /**\n * The step instance now selected.\n * @type {?}\n */\n StepperSelectionEvent.prototype.selectedStep;\n /**\n * The step instance previously selected.\n * @type {?}\n */\n StepperSelectionEvent.prototype.previouslySelectedStep;\n}\nexport class CdkStep {\n /**\n * @param {?} _stepper\n */\n constructor(_stepper) {\n this._stepper = _stepper;\n /**\n * Whether user has seen the expanded step content or not.\n */\n this.interacted = false;\n this._editable = true;\n this._optional = false;\n this._customCompleted = null;\n }\n /**\n * @return {?}\n */\n get editable() { return this._editable; }\n /**\n * @param {?} value\n * @return {?}\n */\n set editable(value) {\n this._editable = coerceBooleanProperty(value);\n }\n /**\n * Whether the completion of step is optional or not.\n * @return {?}\n */\n get optional() { return this._optional; }\n /**\n * @param {?} value\n * @return {?}\n */\n set optional(value) {\n this._optional = coerceBooleanProperty(value);\n }\n /**\n * Return whether step is completed or not.\n * @return {?}\n */\n get completed() {\n return this._customCompleted == null ? this._defaultCompleted : this._customCompleted;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n set completed(value) {\n this._customCompleted = coerceBooleanProperty(value);\n }\n /**\n * @return {?}\n */\n get _defaultCompleted() {\n return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n }\n /**\n * Selects this step component.\n * @return {?}\n */\n select() {\n this._stepper.selected = this;\n }\n /**\n * @return {?}\n */\n ngOnChanges() {\n // Since basically all inputs of the MdStep get proxied through the view down to the\n // underlying MdStepHeader, we have to make sure that change detection runs correctly.\n this._stepper._stateChanged();\n }\n}\nCdkStep.decorators = [\n { type: Component, args: [{selector: 'cdk-step',\n exportAs: 'cdkStep',\n template: \"\",\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n];\n/**\n * @nocollapse\n */\nCdkStep.ctorParameters = () => [\n { type: CdkStepper, decorators: [{ type: Inject, args: [forwardRef(() => CdkStepper),] },] },\n];\nCdkStep.propDecorators = {\n 'stepLabel': [{ type: ContentChild, args: [CdkStepLabel,] },],\n 'content': [{ type: ViewChild, args: [TemplateRef,] },],\n 'stepControl': [{ type: Input },],\n 'label': [{ type: Input },],\n 'editable': [{ type: Input },],\n 'optional': [{ type: Input },],\n 'completed': [{ type: Input },],\n};\nfunction CdkStep_tsickle_Closure_declarations() {\n /** @type {?} */\n CdkStep.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n CdkStep.ctorParameters;\n /** @type {?} */\n CdkStep.propDecorators;\n /**\n * Template for step label if it exists.\n * @type {?}\n */\n CdkStep.prototype.stepLabel;\n /**\n * Template for step content.\n * @type {?}\n */\n CdkStep.prototype.content;\n /**\n * The top level abstract control of the step.\n * @type {?}\n */\n CdkStep.prototype.stepControl;\n /**\n * Whether user has seen the expanded step content or not.\n * @type {?}\n */\n CdkStep.prototype.interacted;\n /**\n * Label of the step.\n * @type {?}\n */\n CdkStep.prototype.label;\n /** @type {?} */\n CdkStep.prototype._editable;\n /** @type {?} */\n CdkStep.prototype._optional;\n /** @type {?} */\n CdkStep.prototype._customCompleted;\n /** @type {?} */\n CdkStep.prototype._stepper;\n}\nexport class CdkStepper {\n /**\n * @param {?} _dir\n * @param {?} _changeDetectorRef\n */\n constructor(_dir, _changeDetectorRef) {\n this._dir = _dir;\n this._changeDetectorRef = _changeDetectorRef;\n this._linear = false;\n this._selectedIndex = 0;\n /**\n * Event emitted when the selected step has changed.\n */\n this.selectionChange = new EventEmitter();\n /**\n * The index of the step that the focus can be set.\n */\n this._focusIndex = 0;\n this._groupId = nextId++;\n }\n /**\n * Whether the validity of previous steps should be checked or not.\n * @return {?}\n */\n get linear() { return this._linear; }\n /**\n * @param {?} value\n * @return {?}\n */\n set linear(value) { this._linear = coerceBooleanProperty(value); }\n /**\n * The index of the selected step.\n * @return {?}\n */\n get selectedIndex() { return this._selectedIndex; }\n /**\n * @param {?} index\n * @return {?}\n */\n set selectedIndex(index) {\n if (this._anyControlsInvalid(index)\n || index < this._selectedIndex && !this._steps.toArray()[index].editable) {\n // remove focus from clicked step header if the step is not able to be selected\n this._stepHeader.toArray()[index].nativeElement.blur();\n }\n else if (this._selectedIndex != index) {\n this._emitStepperSelectionEvent(index);\n this._focusIndex = this._selectedIndex;\n }\n }\n /**\n * The step that is selected.\n * @return {?}\n */\n get selected() { return this._steps.toArray()[this.selectedIndex]; }\n /**\n * @param {?} step\n * @return {?}\n */\n set selected(step) {\n this.selectedIndex = this._steps.toArray().indexOf(step);\n }\n /**\n * Selects and focuses the next step in list.\n * @return {?}\n */\n next() {\n this.selectedIndex = Math.min(this._selectedIndex + 1, this._steps.length - 1);\n }\n /**\n * Selects and focuses the previous step in list.\n * @return {?}\n */\n previous() {\n this.selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n /**\n * Returns a unique id for each step label element.\n * @param {?} i\n * @return {?}\n */\n _getStepLabelId(i) {\n return `mat-step-label-${this._groupId}-${i}`;\n }\n /**\n * Returns unique id for each step content element.\n * @param {?} i\n * @return {?}\n */\n _getStepContentId(i) {\n return `mat-step-content-${this._groupId}-${i}`;\n }\n /**\n * Marks the component to be change detected.\n * @return {?}\n */\n _stateChanged() {\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Returns position state of the step with the given index.\n * @param {?} index\n * @return {?}\n */\n _getAnimationDirection(index) {\n const /** @type {?} */ position = index - this._selectedIndex;\n if (position < 0) {\n return this._layoutDirection() === 'rtl' ? 'next' : 'previous';\n }\n else if (position > 0) {\n return this._layoutDirection() === 'rtl' ? 'previous' : 'next';\n }\n return 'current';\n }\n /**\n * Returns the type of icon to be displayed.\n * @param {?} index\n * @return {?}\n */\n _getIndicatorType(index) {\n const /** @type {?} */ step = this._steps.toArray()[index];\n if (!step.completed || this._selectedIndex == index) {\n return 'number';\n }\n else {\n return step.editable ? 'edit' : 'done';\n }\n }\n /**\n * @param {?} newIndex\n * @return {?}\n */\n _emitStepperSelectionEvent(newIndex) {\n const /** @type {?} */ stepsArray = this._steps.toArray();\n this.selectionChange.emit({\n selectedIndex: newIndex,\n previouslySelectedIndex: this._selectedIndex,\n selectedStep: stepsArray[newIndex],\n previouslySelectedStep: stepsArray[this._selectedIndex],\n });\n this._selectedIndex = newIndex;\n this._stateChanged();\n }\n /**\n * @param {?} event\n * @return {?}\n */\n _onKeydown(event) {\n switch (event.keyCode) {\n case RIGHT_ARROW:\n if (this._layoutDirection() === 'rtl') {\n this._focusPreviousStep();\n }\n else {\n this._focusNextStep();\n }\n break;\n case LEFT_ARROW:\n if (this._layoutDirection() === 'rtl') {\n this._focusNextStep();\n }\n else {\n this._focusPreviousStep();\n }\n break;\n case SPACE:\n case ENTER:\n this.selectedIndex = this._focusIndex;\n break;\n default:\n // Return to avoid calling preventDefault on keys that are not explicitly handled.\n return;\n }\n event.preventDefault();\n }\n /**\n * @return {?}\n */\n _focusNextStep() {\n this._focusStep((this._focusIndex + 1) % this._steps.length);\n }\n /**\n * @return {?}\n */\n _focusPreviousStep() {\n this._focusStep((this._focusIndex + this._steps.length - 1) % this._steps.length);\n }\n /**\n * @param {?} index\n * @return {?}\n */\n _focusStep(index) {\n this._focusIndex = index;\n this._stepHeader.toArray()[this._focusIndex].nativeElement.focus();\n }\n /**\n * @param {?} index\n * @return {?}\n */\n _anyControlsInvalid(index) {\n this._steps.toArray()[this._selectedIndex].interacted = true;\n if (this._linear && index >= 0) {\n return this._steps.toArray().slice(0, index).some(step => step.stepControl.invalid);\n }\n return false;\n }\n /**\n * @return {?}\n */\n _layoutDirection() {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n}\nCdkStepper.decorators = [\n { type: Directive, args: [{\n selector: '[cdkStepper]',\n exportAs: 'cdkStepper',\n },] },\n];\n/**\n * @nocollapse\n */\nCdkStepper.ctorParameters = () => [\n { type: Directionality, decorators: [{ type: Optional },] },\n { type: ChangeDetectorRef, },\n];\nCdkStepper.propDecorators = {\n '_steps': [{ type: ContentChildren, args: [CdkStep,] },],\n 'linear': [{ type: Input },],\n 'selectedIndex': [{ type: Input },],\n 'selected': [{ type: Input },],\n 'selectionChange': [{ type: Output },],\n};\nfunction CdkStepper_tsickle_Closure_declarations() {\n /** @type {?} */\n CdkStepper.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n CdkStepper.ctorParameters;\n /** @type {?} */\n CdkStepper.propDecorators;\n /**\n * The list of step components that the stepper is holding.\n * @type {?}\n */\n CdkStepper.prototype._steps;\n /**\n * The list of step headers of the steps in the stepper.\n * @type {?}\n */\n CdkStepper.prototype._stepHeader;\n /** @type {?} */\n CdkStepper.prototype._linear;\n /** @type {?} */\n CdkStepper.prototype._selectedIndex;\n /**\n * Event emitted when the selected step has changed.\n * @type {?}\n */\n CdkStepper.prototype.selectionChange;\n /**\n * The index of the step that the focus can be set.\n * @type {?}\n */\n CdkStepper.prototype._focusIndex;\n /**\n * Used to track unique ID for each stepper component.\n * @type {?}\n */\n CdkStepper.prototype._groupId;\n /** @type {?} */\n CdkStepper.prototype._dir;\n /** @type {?} */\n CdkStepper.prototype._changeDetectorRef;\n}\n//# sourceMappingURL=stepper.js.map","/**\n * @license\n * Copyright Google Inc. 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.io/license\n */\nimport { Directive } from '@angular/core';\nimport { CdkStepper } from './stepper';\n/**\n * Button that moves to the next step in a stepper workflow.\n */\nexport class CdkStepperNext {\n /**\n * @param {?} _stepper\n */\n constructor(_stepper) {\n this._stepper = _stepper;\n }\n}\nCdkStepperNext.decorators = [\n { type: Directive, args: [{\n selector: 'button[cdkStepperNext]',\n host: { '(click)': '_stepper.next()' }\n },] },\n];\n/**\n * @nocollapse\n */\nCdkStepperNext.ctorParameters = () => [\n { type: CdkStepper, },\n];\nfunction CdkStepperNext_tsickle_Closure_declarations() {\n /** @type {?} */\n CdkStepperNext.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n CdkStepperNext.ctorParameters;\n /** @type {?} */\n CdkStepperNext.prototype._stepper;\n}\n/**\n * Button that moves to the previous step in a stepper workflow.\n */\nexport class CdkStepperPrevious {\n /**\n * @param {?} _stepper\n */\n constructor(_stepper) {\n this._stepper = _stepper;\n }\n}\nCdkStepperPrevious.decorators = [\n { type: Directive, args: [{\n selector: 'button[cdkStepperPrevious]',\n host: { '(click)': '_stepper.previous()' }\n },] },\n];\n/**\n * @nocollapse\n */\nCdkStepperPrevious.ctorParameters = () => [\n { type: CdkStepper, },\n];\nfunction CdkStepperPrevious_tsickle_Closure_declarations() {\n /** @type {?} */\n CdkStepperPrevious.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n CdkStepperPrevious.ctorParameters;\n /** @type {?} */\n CdkStepperPrevious.prototype._stepper;\n}\n//# sourceMappingURL=stepper-button.js.map","/**\n * @license\n * Copyright Google Inc. 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.io/license\n */\nimport { NgModule } from '@angular/core';\nimport { CdkStepper, CdkStep } from './stepper';\nimport { CommonModule } from '@angular/common';\nimport { CdkStepLabel } from './step-label';\nimport { CdkStepperNext, CdkStepperPrevious } from './stepper-button';\nimport { BidiModule } from '@angular/cdk/bidi';\nexport class CdkStepperModule {\n}\nCdkStepperModule.decorators = [\n { type: NgModule, args: [{\n imports: [BidiModule, CommonModule],\n exports: [CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious],\n declarations: [CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious]\n },] },\n];\n/**\n * @nocollapse\n */\nCdkStepperModule.ctorParameters = () => [];\nfunction CdkStepperModule_tsickle_Closure_declarations() {\n /** @type {?} */\n CdkStepperModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n CdkStepperModule.ctorParameters;\n}\n//# sourceMappingURL=stepper-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { StepperSelectionEvent, CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious, CdkStepperModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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"}