@angular/cdk 8.2.2 → 8.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/a11y/typings/index.metadata.json +1 -1
  2. package/bundles/cdk-a11y.umd.js +4 -1
  3. package/bundles/cdk-a11y.umd.js.map +1 -1
  4. package/bundles/cdk-a11y.umd.min.js +1 -1
  5. package/bundles/cdk-a11y.umd.min.js.map +1 -1
  6. package/bundles/cdk-drag-drop.umd.js +2 -1
  7. package/bundles/cdk-drag-drop.umd.js.map +1 -1
  8. package/bundles/cdk-drag-drop.umd.min.js +2 -2
  9. package/bundles/cdk-drag-drop.umd.min.js.map +1 -1
  10. package/bundles/cdk-overlay.umd.js +4 -1
  11. package/bundles/cdk-overlay.umd.js.map +1 -1
  12. package/bundles/cdk-overlay.umd.min.js +1 -1
  13. package/bundles/cdk-overlay.umd.min.js.map +1 -1
  14. package/bundles/cdk-stepper.umd.js +46 -40
  15. package/bundles/cdk-stepper.umd.js.map +1 -1
  16. package/bundles/cdk-stepper.umd.min.js +1 -1
  17. package/bundles/cdk-stepper.umd.min.js.map +1 -1
  18. package/bundles/cdk-testing.umd.js +2 -1
  19. package/bundles/cdk-testing.umd.js.map +1 -1
  20. package/bundles/cdk-testing.umd.min.js.map +1 -1
  21. package/bundles/cdk.umd.js +1 -1
  22. package/bundles/cdk.umd.js.map +1 -1
  23. package/bundles/cdk.umd.min.js +1 -1
  24. package/bundles/cdk.umd.min.js.map +1 -1
  25. package/esm2015/a11y.js +4 -1
  26. package/esm2015/a11y.js.map +1 -1
  27. package/esm2015/cdk.js +1 -1
  28. package/esm2015/cdk.js.map +1 -1
  29. package/esm2015/drag-drop.js +2 -1
  30. package/esm2015/drag-drop.js.map +1 -1
  31. package/esm2015/overlay.js +4 -1
  32. package/esm2015/overlay.js.map +1 -1
  33. package/esm2015/stepper.js +51 -45
  34. package/esm2015/stepper.js.map +1 -1
  35. package/esm2015/testing.js +2 -1
  36. package/esm2015/testing.js.map +1 -1
  37. package/esm5/a11y.es5.js +4 -1
  38. package/esm5/a11y.es5.js.map +1 -1
  39. package/esm5/cdk.es5.js +1 -1
  40. package/esm5/cdk.es5.js.map +1 -1
  41. package/esm5/drag-drop.es5.js +2 -1
  42. package/esm5/drag-drop.es5.js.map +1 -1
  43. package/esm5/overlay.es5.js +4 -1
  44. package/esm5/overlay.es5.js.map +1 -1
  45. package/esm5/stepper.es5.js +49 -43
  46. package/esm5/stepper.es5.js.map +1 -1
  47. package/esm5/testing.es5.js +2 -1
  48. package/esm5/testing.es5.js.map +1 -1
  49. package/package.json +3 -3
  50. package/schematics/ng-update/test-cases/misc/global-stylesheets-test.css +1 -0
  51. package/schematics/tsconfig.tsbuildinfo +2894 -2894
  52. package/schematics/update-tool/index.js +9 -5
  53. package/schematics/update-tool/index.js.map +1 -1
  54. package/stepper/typings/index.metadata.json +1 -1
  55. package/stepper/typings/stepper.d.ts +3 -3
  56. package/typings/a11y/index.metadata.json +1 -1
  57. package/typings/esm5/a11y/index.metadata.json +1 -1
  58. package/typings/esm5/index.metadata.json +1 -1
  59. package/typings/esm5/stepper/index.metadata.json +1 -1
  60. package/typings/esm5/stepper/stepper.d.ts +3 -3
  61. package/typings/index.metadata.json +1 -1
  62. package/typings/stepper/index.metadata.json +1 -1
  63. package/typings/stepper/stepper.d.ts +3 -3
@@ -11,26 +11,6 @@
11
11
  (factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.stepper = {}),global.ng.core,global.ng.cdk.a11y,global.ng.cdk.bidi,global.ng.cdk.coercion,global.ng.cdk.keycodes,global.ng.common,global.rxjs,global.rxjs.operators));
12
12
  }(this, (function (exports,core,a11y,bidi,coercion,keycodes,common,rxjs,operators) { 'use strict';
13
13
 
14
- /**
15
- * @fileoverview added by tsickle
16
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
17
- */
18
- var CdkStepLabel = /** @class */ (function () {
19
- function CdkStepLabel(/** @docs-private */ template) {
20
- this.template = template;
21
- }
22
- CdkStepLabel.decorators = [
23
- { type: core.Directive, args: [{
24
- selector: '[cdkStepLabel]',
25
- },] },
26
- ];
27
- /** @nocollapse */
28
- CdkStepLabel.ctorParameters = function () { return [
29
- { type: core.TemplateRef }
30
- ]; };
31
- return CdkStepLabel;
32
- }());
33
-
34
14
  /**
35
15
  * @fileoverview added by tsickle
36
16
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -66,6 +46,26 @@ var CdkStepHeader = /** @class */ (function () {
66
46
  return CdkStepHeader;
67
47
  }());
68
48
 
49
+ /**
50
+ * @fileoverview added by tsickle
51
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
52
+ */
53
+ var CdkStepLabel = /** @class */ (function () {
54
+ function CdkStepLabel(/** @docs-private */ template) {
55
+ this.template = template;
56
+ }
57
+ CdkStepLabel.decorators = [
58
+ { type: core.Directive, args: [{
59
+ selector: '[cdkStepLabel]',
60
+ },] },
61
+ ];
62
+ /** @nocollapse */
63
+ CdkStepLabel.ctorParameters = function () { return [
64
+ { type: core.TemplateRef }
65
+ ]; };
66
+ return CdkStepLabel;
67
+ }());
68
+
69
69
  /**
70
70
  * @fileoverview added by tsickle
71
71
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -118,7 +118,7 @@ var CdkStep = /** @class */ (function () {
118
118
  this.interacted = false;
119
119
  this._editable = true;
120
120
  this._optional = false;
121
- this._customCompleted = null;
121
+ this._completedOverride = null;
122
122
  this._customError = null;
123
123
  this._stepperOptions = stepperOptions ? stepperOptions : {};
124
124
  this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;
@@ -130,7 +130,9 @@ var CdkStep = /** @class */ (function () {
130
130
  * Whether the user can return to this step once it has been marked as completed.
131
131
  * @return {?}
132
132
  */
133
- function () { return this._editable; },
133
+ function () {
134
+ return this._editable;
135
+ },
134
136
  set: /**
135
137
  * @param {?} value
136
138
  * @return {?}
@@ -147,7 +149,9 @@ var CdkStep = /** @class */ (function () {
147
149
  * Whether the completion of step is optional.
148
150
  * @return {?}
149
151
  */
150
- function () { return this._optional; },
152
+ function () {
153
+ return this._optional;
154
+ },
151
155
  set: /**
152
156
  * @param {?} value
153
157
  * @return {?}
@@ -165,14 +169,14 @@ var CdkStep = /** @class */ (function () {
165
169
  * @return {?}
166
170
  */
167
171
  function () {
168
- return this._customCompleted == null ? this._getDefaultCompleted() : this._customCompleted;
172
+ return this._completedOverride == null ? this._getDefaultCompleted() : this._completedOverride;
169
173
  },
170
174
  set: /**
171
175
  * @param {?} value
172
176
  * @return {?}
173
177
  */
174
178
  function (value) {
175
- this._customCompleted = coercion.coerceBooleanProperty(value);
179
+ this._completedOverride = coercion.coerceBooleanProperty(value);
176
180
  },
177
181
  enumerable: true,
178
182
  configurable: true
@@ -241,8 +245,8 @@ var CdkStep = /** @class */ (function () {
241
245
  */
242
246
  function () {
243
247
  this.interacted = false;
244
- if (this._customCompleted != null) {
245
- this._customCompleted = false;
248
+ if (this._completedOverride != null) {
249
+ this._completedOverride = false;
246
250
  }
247
251
  if (this._customError != null) {
248
252
  this._customError = false;
@@ -331,12 +335,16 @@ var CdkStepper = /** @class */ (function () {
331
335
  * Whether the validity of previous steps should be checked or not.
332
336
  * @return {?}
333
337
  */
334
- function () { return this._linear; },
338
+ function () {
339
+ return this._linear;
340
+ },
335
341
  set: /**
336
342
  * @param {?} value
337
343
  * @return {?}
338
344
  */
339
- function (value) { this._linear = coercion.coerceBooleanProperty(value); },
345
+ function (value) {
346
+ this._linear = coercion.coerceBooleanProperty(value);
347
+ },
340
348
  enumerable: true,
341
349
  configurable: true
342
350
  });
@@ -346,7 +354,9 @@ var CdkStepper = /** @class */ (function () {
346
354
  * The index of the selected step.
347
355
  * @return {?}
348
356
  */
349
- function () { return this._selectedIndex; },
357
+ function () {
358
+ return this._selectedIndex;
359
+ },
350
360
  set: /**
351
361
  * @param {?} index
352
362
  * @return {?}
@@ -359,8 +369,7 @@ var CdkStepper = /** @class */ (function () {
359
369
  if (newIndex < 0 || newIndex > this.steps.length - 1) {
360
370
  throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');
361
371
  }
362
- if (this._selectedIndex != newIndex &&
363
- !this._anyControlsInvalidOrPending(newIndex) &&
372
+ if (this._selectedIndex != newIndex && !this._anyControlsInvalidOrPending(newIndex) &&
364
373
  (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {
365
374
  this._updateSelectedItemIndex(index);
366
375
  }
@@ -406,7 +415,7 @@ var CdkStepper = /** @class */ (function () {
406
415
  this._keyManager = new a11y.FocusKeyManager(this._stepHeader)
407
416
  .withWrap()
408
417
  .withVerticalOrientation(this._orientation === 'vertical');
409
- (this._dir ? (/** @type {?} */ (this._dir.change)) : rxjs.of())
418
+ (this._dir ? ((/** @type {?} */ (this._dir.change))) : rxjs.of())
410
419
  .pipe(operators.startWith(this._layoutDirection()), operators.takeUntil(this._destroyed))
411
420
  .subscribe((/**
412
421
  * @param {?} direction
@@ -556,9 +565,8 @@ var CdkStepper = /** @class */ (function () {
556
565
  var step = this.steps.toArray()[index];
557
566
  /** @type {?} */
558
567
  var isCurrentStep = this._isCurrentStep(index);
559
- return step._displayDefaultIndicatorType
560
- ? this._getDefaultIndicatorLogic(step, isCurrentStep)
561
- : this._getGuidelineLogic(step, isCurrentStep, state);
568
+ return step._displayDefaultIndicatorType ? this._getDefaultIndicatorLogic(step, isCurrentStep) :
569
+ this._getGuidelineLogic(step, isCurrentStep, state);
562
570
  };
563
571
  /**
564
572
  * @private
@@ -723,10 +731,8 @@ var CdkStepper = /** @class */ (function () {
723
731
  /** @type {?} */
724
732
  var control = step.stepControl;
725
733
  /** @type {?} */
726
- var isIncomplete = control ?
727
- (control.invalid || control.pending || !step.interacted) :
728
- !step.completed;
729
- return isIncomplete && !step.optional;
734
+ var isIncomplete = control ? (control.invalid || control.pending || !step.interacted) : !step.completed;
735
+ return isIncomplete && !step.optional && !step._completedOverride;
730
736
  }));
731
737
  }
732
738
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"cdk-stepper.umd.js","sources":["../../src/cdk/stepper/stepper-module.ts","../../src/cdk/stepper/stepper-button.ts","../../src/cdk/stepper/stepper.ts","../../src/cdk/stepper/step-header.ts","../../src/cdk/stepper/step-label.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.io/license\n */\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 {CdkStepHeader} from './step-header';\nimport {BidiModule} from '@angular/cdk/bidi';\n\n@NgModule({\n imports: [BidiModule, CommonModule],\n exports: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ],\n declarations: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ]\n})\nexport class CdkStepperModule {}\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.io/license\n */\n\nimport {Directive, HostListener, Input} 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 }\n})\nexport class CdkStepperNext {\n /** Type of the next button. Defaults to \"submit\" if not specified. */\n @Input() type: string = 'submit';\n\n constructor(public _stepper: CdkStepper) {}\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n @HostListener('click')\n _handleClick() {\n this._stepper.next();\n }\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 }\n})\nexport class CdkStepperPrevious {\n /** Type of the previous button. Defaults to \"button\" if not specified. */\n @Input() type: string = 'button';\n\n constructor(public _stepper: CdkStepper) {}\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n @HostListener('click')\n _handleClick() {\n this._stepper.previous();\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.io/license\n */\n\nimport {FocusableOption, FocusKeyManager} from '@angular/cdk/a11y';\nimport {Direction, Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty, coerceNumberProperty} from '@angular/cdk/coercion';\nimport {END, ENTER, HOME, SPACE, hasModifierKey} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n EventEmitter,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n InjectionToken,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {CdkStepLabel} from './step-label';\nimport {Observable, Subject, of as obaservableOf} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\nimport {CdkStepHeader} from './step-header';\n\n/** Used to generate unique ID for each stepper component. */\nlet nextId = 0;\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 =\n new InjectionToken<StepperOptions>('STEPPER_GLOBAL_OPTIONS');\n\n/**\n * InjectionToken that can be used to specify the global stepper options.\n * @deprecated Use `STEPPER_GLOBAL_OPTIONS` instead.\n * @breaking-change 8.0.0.\n */\nexport const MAT_STEPPER_GLOBAL_OPTIONS = 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 moduleId: module.id,\n selector: 'cdk-step',\n exportAs: 'cdkStep',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CdkStep implements OnChanges {\n private _stepperOptions: StepperOptions;\n _showError: boolean;\n _displayDefaultIndicatorType: boolean;\n\n /** Template for step label if it exists. */\n @ContentChild(CdkStepLabel, {static: false}) stepLabel: CdkStepLabel;\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: FormControlLike;\n\n /** Whether user has seen the expanded step content or not. */\n interacted = false;\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() state: StepState;\n\n /** Whether the user can return to this step once it has been marked as completed. */\n @Input()\n get editable(): boolean { return this._editable; }\n set editable(value: boolean) {\n this._editable = coerceBooleanProperty(value);\n }\n private _editable = true;\n\n /** Whether the completion of step is optional. */\n @Input()\n get optional(): boolean { return this._optional; }\n set optional(value: boolean) {\n this._optional = coerceBooleanProperty(value);\n }\n private _optional = false;\n\n /** Whether step is marked as completed. */\n @Input()\n get completed(): boolean {\n return this._customCompleted == null ? this._getDefaultCompleted() : this._customCompleted;\n }\n set completed(value: boolean) {\n this._customCompleted = coerceBooleanProperty(value);\n }\n private _customCompleted: boolean | null = null;\n\n private _getDefaultCompleted() {\n return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n }\n\n /** Whether step has an error. */\n @Input()\n get hasError(): boolean {\n return this._customError == null ? this._getDefaultError() : this._customError;\n }\n set hasError(value: boolean) {\n this._customError = coerceBooleanProperty(value);\n }\n private _customError: boolean | null = null;\n\n private _getDefaultError() {\n return this.stepControl && this.stepControl.invalid && this.interacted;\n }\n\n /** @breaking-change 8.0.0 remove the `?` after `stepperOptions` */\n constructor(\n @Inject(forwardRef(() => CdkStepper)) private _stepper: CdkStepper,\n @Optional() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions?: StepperOptions) {\n this._stepperOptions = stepperOptions ? stepperOptions : {};\n this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;\n this._showError = !!this._stepperOptions.showError;\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 = false;\n\n if (this._customCompleted != null) {\n this._customCompleted = false;\n }\n\n if (this._customError != null) {\n this._customError = false;\n }\n\n if (this.stepControl) {\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\n@Directive({\n selector: '[cdkStepper]',\n exportAs: 'cdkStepper',\n})\nexport class CdkStepper implements AfterViewInit, OnDestroy {\n /** Emits when the component is destroyed. */\n protected _destroyed = new Subject<void>();\n\n /** Used for managing keyboard focus. */\n private _keyManager: FocusKeyManager<FocusableOption>;\n\n /**\n * @breaking-change 8.0.0 Remove `| undefined` once the `_document`\n * constructor param is required.\n */\n private _document: Document | undefined;\n\n /**\n * The list of step components that the stepper is holding.\n * @deprecated use `steps` instead\n * @breaking-change 9.0.0 remove this property\n */\n @ContentChildren(CdkStep) _steps: QueryList<CdkStep>;\n\n /** The list of step components that the stepper is holding. */\n get steps(): QueryList<CdkStep> {\n return this._steps;\n }\n\n /**\n * The list of step headers of the steps in the stepper.\n * @deprecated Type to be changed to `QueryList<CdkStepHeader>`.\n * @breaking-change 8.0.0\n */\n @ContentChildren(CdkStepHeader) _stepHeader: QueryList<FocusableOption>;\n\n /** Whether the validity of previous steps should be checked or not. */\n @Input()\n get linear(): boolean { return this._linear; }\n set linear(value: boolean) { this._linear = coerceBooleanProperty(value); }\n private _linear = false;\n\n /** The index of the selected step. */\n @Input()\n get selectedIndex() { return this._selectedIndex; }\n set selectedIndex(index: number) {\n const newIndex = coerceNumberProperty(index);\n\n if (this.steps) {\n // Ensure that the index can't be out of bounds.\n if (newIndex < 0 || newIndex > this.steps.length - 1) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n\n if (this._selectedIndex != newIndex &&\n !this._anyControlsInvalidOrPending(newIndex) &&\n (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {\n this._updateSelectedItemIndex(index);\n }\n } else {\n this._selectedIndex = newIndex;\n }\n }\n private _selectedIndex = 0;\n\n /** The step that is selected. */\n @Input()\n get selected(): CdkStep {\n // @breaking-change 8.0.0 Change return type to `CdkStep | undefined`.\n return this.steps ? this.steps.toArray()[this.selectedIndex] : undefined!;\n }\n set selected(step: CdkStep) {\n this.selectedIndex = this.steps ? this.steps.toArray().indexOf(step) : -1;\n }\n\n /** Event emitted when the selected step has changed. */\n @Output() selectionChange: EventEmitter<StepperSelectionEvent>\n = new EventEmitter<StepperSelectionEvent>();\n\n /** Used to track unique ID for each stepper component. */\n _groupId: number;\n\n protected _orientation: StepperOrientation = 'horizontal';\n\n constructor(\n @Optional() private _dir: Directionality,\n private _changeDetectorRef: ChangeDetectorRef,\n // @breaking-change 8.0.0 `_elementRef` and `_document` parameters to become required.\n private _elementRef?: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) _document?: any) {\n this._groupId = nextId++;\n this._document = _document;\n }\n\n ngAfterViewInit() {\n // Note that while the step headers are content children by default, any components that\n // extend this one might have them as view chidren. 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._stepHeader)\n .withWrap()\n .withVerticalOrientation(this._orientation === 'vertical');\n\n (this._dir ? this._dir.change as Observable<Direction> : obaservableOf<Direction>())\n .pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed))\n .subscribe(direction => this._keyManager.withHorizontalOrientation(direction));\n\n this._keyManager.updateActiveItemIndex(this._selectedIndex);\n\n this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (!this.selected) {\n this._selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n });\n }\n\n ngOnDestroy() {\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 `cdk-step-label-${this._groupId}-${i}`;\n }\n\n /** Returns unique id for each step content element. */\n _getStepContentId(i: number): string {\n return `cdk-step-content-${this._groupId}-${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 type of icon to be displayed. */\n _getIndicatorType(index: number, state: StepState = STEP_STATE.NUMBER): StepState {\n const step = this.steps.toArray()[index];\n const isCurrentStep = this._isCurrentStep(index);\n\n return step._displayDefaultIndicatorType\n ? this._getDefaultIndicatorLogic(step, isCurrentStep)\n : this._getGuidelineLogic(step, isCurrentStep, state);\n }\n\n private _getDefaultIndicatorLogic(step: CdkStep, isCurrentStep: boolean): StepState {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (!step.completed || isCurrentStep) {\n return STEP_STATE.NUMBER;\n } else {\n return step.editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n }\n }\n\n private _getGuidelineLogic(\n step: CdkStep,\n isCurrentStep: boolean,\n state: StepState = STEP_STATE.NUMBER): StepState {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (step.completed && !isCurrentStep) {\n return STEP_STATE.DONE;\n } else if (step.completed && isCurrentStep) {\n return state;\n } else if (step.editable && isCurrentStep) {\n return STEP_STATE.EDIT;\n } else {\n return state;\n }\n }\n\n private _isCurrentStep(index: number) {\n return this._selectedIndex === index;\n }\n\n /** Returns the index of the currently-focused step header. */\n _getFocusIndex() {\n return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex;\n }\n\n private _updateSelectedItemIndex(newIndex: number): void {\n const 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\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 this._containsFocus() ? this._keyManager.setActiveItem(newIndex) :\n this._keyManager.updateActiveItemIndex(newIndex);\n\n this._selectedIndex = 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 (manager.activeItemIndex != null && !hasModifier &&\n (keyCode === SPACE || keyCode === ENTER)) {\n this.selectedIndex = manager.activeItemIndex;\n event.preventDefault();\n } else if (keyCode === HOME) {\n manager.setFirstItemActive();\n event.preventDefault();\n } else if (keyCode === END) {\n manager.setLastItemActive();\n event.preventDefault();\n } else {\n manager.onKeydown(event);\n }\n }\n\n private _anyControlsInvalidOrPending(index: number): boolean {\n const steps = this.steps.toArray();\n\n steps[this._selectedIndex].interacted = true;\n\n if (this._linear && index >= 0) {\n return steps.slice(0, index).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;\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 if (!this._document || !this._elementRef) {\n return false;\n }\n\n const stepperElement = this._elementRef.nativeElement;\n const focusedElement = this._document.activeElement;\n return stepperElement === focusedElement || stepperElement.contains(focusedElement);\n }\n}\n\n\n/**\n * Simplified representation of a FormControl from @angular/forms.\n * Used to avoid having to bring in @angular/forms for a single optional interface.\n * @docs-private\n */\ninterface FormControlLike {\n asyncValidator: () => any | null;\n dirty: boolean;\n disabled: boolean;\n enabled: boolean;\n errors: {[key: string]: any} | null;\n invalid: boolean;\n parent: any;\n pending: boolean;\n pristine: boolean;\n root: FormControlLike;\n status: string;\n statusChanges: Observable<any>;\n touched: boolean;\n untouched: boolean;\n updateOn: any;\n valid: boolean;\n validator: () => any | null;\n value: any;\n valueChanges: Observable<any>;\n clearAsyncValidators(): void;\n clearValidators(): void;\n disable(opts?: any): void;\n enable(opts?: any): void;\n get(path: (string | number)[] | string): FormControlLike | null;\n getError(errorCode: string, path?: (string | number)[] | string): any;\n hasError(errorCode: string, path?: (string | number)[] | string): boolean;\n markAllAsTouched(): void;\n markAsDirty(opts?: any): void;\n markAsPending(opts?: any): void;\n markAsPristine(opts?: any): void;\n markAsTouched(opts?: any): void;\n markAsUntouched(opts?: any): void;\n patchValue(value: any, options?: Object): void;\n reset(value?: any, options?: Object): void;\n setAsyncValidators(newValidator: () => any | (() => any)[] | null): void;\n setErrors(errors: {[key: string]: any} | null, opts?: any): void;\n setParent(parent: any): void;\n setValidators(newValidator: () => any | (() => any)[] | null): void;\n setValue(value: any, options?: Object): void;\n updateValueAndValidity(opts?: any): void;\n patchValue(value: any, options?: any): void;\n registerOnChange(fn: Function): void;\n registerOnDisabledChange(fn: (isDisabled: boolean) => void): void;\n reset(formState?: any, options?: any): void;\n setValue(value: any, options?: any): void;\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.io/license\n */\n\nimport {Directive, ElementRef} from '@angular/core';\nimport {FocusableOption} from '@angular/cdk/a11y';\n\n\n@Directive({\n selector: '[cdkStepHeader]',\n host: {\n 'role': 'tab',\n },\n})\nexport class CdkStepHeader implements FocusableOption {\n constructor(protected _elementRef: ElementRef<HTMLElement>) {}\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.io/license\n */\n\nimport {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[cdkStepLabel]',\n})\nexport class CdkStepLabel {\n constructor(/** @docs-private */ public template: TemplateRef<any>) { }\n}\n"],"names":["BidiModule","CommonModule","NgModule","HostListener","Input","Directive","Output","Inject","DOCUMENT","ElementRef","END","HOME","SPACE","ENTER","hasModifierKey","takeUntil","startWith","obaservableOf","FocusKeyManager","coerceNumberProperty","ChangeDetectionStrategy","ViewEncapsulation","Component","coerceBooleanProperty","InjectionToken","TemplateRef"],"mappings":"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"}
1
+ {"version":3,"file":"cdk-stepper.umd.js","sources":["../../src/cdk/stepper/stepper-module.ts","../../src/cdk/stepper/stepper-button.ts","../../src/cdk/stepper/stepper.ts","../../src/cdk/stepper/step-label.ts","../../src/cdk/stepper/step-header.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.io/license\n */\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 {CdkStepHeader} from './step-header';\nimport {BidiModule} from '@angular/cdk/bidi';\n\n@NgModule({\n imports: [BidiModule, CommonModule],\n exports: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ],\n declarations: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ]\n})\nexport class CdkStepperModule {}\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.io/license\n */\n\nimport {Directive, HostListener, Input} 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 }\n})\nexport class CdkStepperNext {\n /** Type of the next button. Defaults to \"submit\" if not specified. */\n @Input() type: string = 'submit';\n\n constructor(public _stepper: CdkStepper) {}\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n @HostListener('click')\n _handleClick() {\n this._stepper.next();\n }\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 }\n})\nexport class CdkStepperPrevious {\n /** Type of the previous button. Defaults to \"button\" if not specified. */\n @Input() type: string = 'button';\n\n constructor(public _stepper: CdkStepper) {}\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n @HostListener('click')\n _handleClick() {\n this._stepper.previous();\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.io/license\n */\n\nimport {FocusableOption, FocusKeyManager} from '@angular/cdk/a11y';\nimport {Direction, Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty, coerceNumberProperty} from '@angular/cdk/coercion';\nimport {END, ENTER, hasModifierKey, HOME, SPACE} from '@angular/cdk/keycodes';\nimport {DOCUMENT} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Observable, of as obaservableOf, Subject} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\n\nimport {CdkStepHeader} from './step-header';\nimport {CdkStepLabel} from './step-label';\n\n/** Used to generate unique ID for each stepper component. */\nlet nextId = 0;\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/**\n * InjectionToken that can be used to specify the global stepper options.\n * @deprecated Use `STEPPER_GLOBAL_OPTIONS` instead.\n * @breaking-change 8.0.0.\n */\nexport const MAT_STEPPER_GLOBAL_OPTIONS = 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 moduleId: module.id,\n selector: 'cdk-step',\n exportAs: 'cdkStep',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CdkStep implements OnChanges {\n private _stepperOptions: StepperOptions;\n _showError: boolean;\n _displayDefaultIndicatorType: boolean;\n\n /** Template for step label if it exists. */\n @ContentChild(CdkStepLabel, {static: false}) stepLabel: CdkStepLabel;\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: FormControlLike;\n\n /** Whether user has seen the expanded step content or not. */\n interacted = false;\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() state: StepState;\n\n /** Whether the user can return to this step once it has been marked as completed. */\n @Input()\n get editable(): boolean {\n return this._editable;\n }\n set editable(value: boolean) {\n this._editable = coerceBooleanProperty(value);\n }\n private _editable = true;\n\n /** Whether the completion of step is optional. */\n @Input()\n get optional(): boolean {\n return this._optional;\n }\n set optional(value: boolean) {\n this._optional = coerceBooleanProperty(value);\n }\n private _optional = false;\n\n /** Whether step is marked as completed. */\n @Input()\n get completed(): boolean {\n return this._completedOverride == null ? this._getDefaultCompleted() : this._completedOverride;\n }\n set completed(value: boolean) {\n this._completedOverride = coerceBooleanProperty(value);\n }\n _completedOverride: boolean|null = null;\n\n private _getDefaultCompleted() {\n return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n }\n\n /** Whether step has an error. */\n @Input()\n get hasError(): boolean {\n return this._customError == null ? this._getDefaultError() : this._customError;\n }\n set hasError(value: boolean) {\n this._customError = coerceBooleanProperty(value);\n }\n private _customError: boolean|null = null;\n\n private _getDefaultError() {\n return this.stepControl && this.stepControl.invalid && this.interacted;\n }\n\n /** @breaking-change 8.0.0 remove the `?` after `stepperOptions` */\n constructor(\n @Inject(forwardRef(() => CdkStepper)) private _stepper: CdkStepper,\n @Optional() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions?: StepperOptions) {\n this._stepperOptions = stepperOptions ? stepperOptions : {};\n this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;\n this._showError = !!this._stepperOptions.showError;\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 = false;\n\n if (this._completedOverride != null) {\n this._completedOverride = false;\n }\n\n if (this._customError != null) {\n this._customError = false;\n }\n\n if (this.stepControl) {\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\n@Directive({\n selector: '[cdkStepper]',\n exportAs: 'cdkStepper',\n})\nexport class CdkStepper implements AfterViewInit, OnDestroy {\n /** Emits when the component is destroyed. */\n protected _destroyed = new Subject<void>();\n\n /** Used for managing keyboard focus. */\n private _keyManager: FocusKeyManager<FocusableOption>;\n\n /**\n * @breaking-change 8.0.0 Remove `| undefined` once the `_document`\n * constructor param is required.\n */\n private _document: Document|undefined;\n\n /**\n * The list of step components that the stepper is holding.\n * @deprecated use `steps` instead\n * @breaking-change 9.0.0 remove this property\n */\n @ContentChildren(CdkStep) _steps: QueryList<CdkStep>;\n\n /** The list of step components that the stepper is holding. */\n get steps(): QueryList<CdkStep> {\n return this._steps;\n }\n\n /**\n * The list of step headers of the steps in the stepper.\n * @deprecated Type to be changed to `QueryList<CdkStepHeader>`.\n * @breaking-change 8.0.0\n */\n @ContentChildren(CdkStepHeader) _stepHeader: QueryList<FocusableOption>;\n\n /** Whether the validity of previous steps should be checked or not. */\n @Input()\n get linear(): boolean {\n return this._linear;\n }\n set linear(value: boolean) {\n this._linear = coerceBooleanProperty(value);\n }\n private _linear = false;\n\n /** The index of the selected step. */\n @Input()\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(index: number) {\n const newIndex = coerceNumberProperty(index);\n\n if (this.steps) {\n // Ensure that the index can't be out of bounds.\n if (newIndex < 0 || newIndex > this.steps.length - 1) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n\n if (this._selectedIndex != newIndex && !this._anyControlsInvalidOrPending(newIndex) &&\n (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {\n this._updateSelectedItemIndex(index);\n }\n } else {\n this._selectedIndex = newIndex;\n }\n }\n private _selectedIndex = 0;\n\n /** The step that is selected. */\n @Input()\n get selected(): CdkStep {\n // @breaking-change 8.0.0 Change return type to `CdkStep | undefined`.\n return this.steps ? this.steps.toArray()[this.selectedIndex] : undefined!;\n }\n set selected(step: CdkStep) {\n this.selectedIndex = this.steps ? this.steps.toArray().indexOf(step) : -1;\n }\n\n /** Event emitted when the selected step has changed. */\n @Output()\n selectionChange: EventEmitter<StepperSelectionEvent> = new EventEmitter<StepperSelectionEvent>();\n\n /** Used to track unique ID for each stepper component. */\n _groupId: number;\n\n protected _orientation: StepperOrientation = 'horizontal';\n\n constructor(\n @Optional() private _dir: Directionality, private _changeDetectorRef: ChangeDetectorRef,\n // @breaking-change 8.0.0 `_elementRef` and `_document` parameters to become required.\n private _elementRef?: ElementRef<HTMLElement>, @Inject(DOCUMENT) _document?: any) {\n this._groupId = nextId++;\n this._document = _document;\n }\n\n ngAfterViewInit() {\n // Note that while the step headers are content children by default, any components that\n // extend this one might have them as view chidren. 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._stepHeader)\n .withWrap()\n .withVerticalOrientation(this._orientation === 'vertical');\n\n (this._dir ? (this._dir.change as Observable<Direction>) : obaservableOf<Direction>())\n .pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed))\n .subscribe(direction => this._keyManager.withHorizontalOrientation(direction));\n\n this._keyManager.updateActiveItemIndex(this._selectedIndex);\n\n this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (!this.selected) {\n this._selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n });\n }\n\n ngOnDestroy() {\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 `cdk-step-label-${this._groupId}-${i}`;\n }\n\n /** Returns unique id for each step content element. */\n _getStepContentId(i: number): string {\n return `cdk-step-content-${this._groupId}-${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 type of icon to be displayed. */\n _getIndicatorType(index: number, state: StepState = STEP_STATE.NUMBER): StepState {\n const step = this.steps.toArray()[index];\n const isCurrentStep = this._isCurrentStep(index);\n\n return step._displayDefaultIndicatorType ? this._getDefaultIndicatorLogic(step, isCurrentStep) :\n this._getGuidelineLogic(step, isCurrentStep, state);\n }\n\n private _getDefaultIndicatorLogic(step: CdkStep, isCurrentStep: boolean): StepState {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (!step.completed || isCurrentStep) {\n return STEP_STATE.NUMBER;\n } else {\n return step.editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n }\n }\n\n private _getGuidelineLogic(\n step: CdkStep, isCurrentStep: boolean, state: StepState = STEP_STATE.NUMBER): StepState {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (step.completed && !isCurrentStep) {\n return STEP_STATE.DONE;\n } else if (step.completed && isCurrentStep) {\n return state;\n } else if (step.editable && isCurrentStep) {\n return STEP_STATE.EDIT;\n } else {\n return state;\n }\n }\n\n private _isCurrentStep(index: number) {\n return this._selectedIndex === index;\n }\n\n /** Returns the index of the currently-focused step header. */\n _getFocusIndex() {\n return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex;\n }\n\n private _updateSelectedItemIndex(newIndex: number): void {\n const 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\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 this._containsFocus() ? this._keyManager.setActiveItem(newIndex) :\n this._keyManager.updateActiveItemIndex(newIndex);\n\n this._selectedIndex = 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 (manager.activeItemIndex != null && !hasModifier &&\n (keyCode === SPACE || keyCode === ENTER)) {\n this.selectedIndex = manager.activeItemIndex;\n event.preventDefault();\n } else if (keyCode === HOME) {\n manager.setFirstItemActive();\n event.preventDefault();\n } else if (keyCode === END) {\n manager.setLastItemActive();\n event.preventDefault();\n } else {\n manager.onKeydown(event);\n }\n }\n\n private _anyControlsInvalidOrPending(index: number): boolean {\n const steps = this.steps.toArray();\n\n steps[this._selectedIndex].interacted = true;\n\n if (this._linear && index >= 0) {\n return steps.slice(0, index).some(step => {\n const control = step.stepControl;\n const isIncomplete =\n control ? (control.invalid || control.pending || !step.interacted) : !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 if (!this._document || !this._elementRef) {\n return false;\n }\n\n const stepperElement = this._elementRef.nativeElement;\n const focusedElement = this._document.activeElement;\n return stepperElement === focusedElement || stepperElement.contains(focusedElement);\n }\n}\n\n\n/**\n * Simplified representation of a FormControl from @angular/forms.\n * Used to avoid having to bring in @angular/forms for a single optional interface.\n * @docs-private\n */\ninterface FormControlLike {\n asyncValidator: () => any | null;\n dirty: boolean;\n disabled: boolean;\n enabled: boolean;\n errors: {[key: string]: any} | null;\n invalid: boolean;\n parent: any;\n pending: boolean;\n pristine: boolean;\n root: FormControlLike;\n status: string;\n statusChanges: Observable<any>;\n touched: boolean;\n untouched: boolean;\n updateOn: any;\n valid: boolean;\n validator: () => any | null;\n value: any;\n valueChanges: Observable<any>;\n clearAsyncValidators(): void;\n clearValidators(): void;\n disable(opts?: any): void;\n enable(opts?: any): void;\n get(path: (string | number)[] | string): FormControlLike | null;\n getError(errorCode: string, path?: (string | number)[] | string): any;\n hasError(errorCode: string, path?: (string | number)[] | string): boolean;\n markAllAsTouched(): void;\n markAsDirty(opts?: any): void;\n markAsPending(opts?: any): void;\n markAsPristine(opts?: any): void;\n markAsTouched(opts?: any): void;\n markAsUntouched(opts?: any): void;\n patchValue(value: any, options?: Object): void;\n reset(value?: any, options?: Object): void;\n setAsyncValidators(newValidator: () => any | (() => any)[] | null): void;\n setErrors(errors: {[key: string]: any} | null, opts?: any): void;\n setParent(parent: any): void;\n setValidators(newValidator: () => any | (() => any)[] | null): void;\n setValue(value: any, options?: Object): void;\n updateValueAndValidity(opts?: any): void;\n patchValue(value: any, options?: any): void;\n registerOnChange(fn: Function): void;\n registerOnDisabledChange(fn: (isDisabled: boolean) => void): void;\n reset(formState?: any, options?: any): void;\n setValue(value: any, options?: any): void;\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.io/license\n */\n\nimport {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[cdkStepLabel]',\n})\nexport class CdkStepLabel {\n constructor(/** @docs-private */ public template: TemplateRef<any>) { }\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.io/license\n */\n\nimport {Directive, ElementRef} from '@angular/core';\nimport {FocusableOption} from '@angular/cdk/a11y';\n\n\n@Directive({\n selector: '[cdkStepHeader]',\n host: {\n 'role': 'tab',\n },\n})\nexport class CdkStepHeader implements FocusableOption {\n constructor(protected _elementRef: ElementRef<HTMLElement>) {}\n\n /** Focuses the step header. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n"],"names":["BidiModule","CommonModule","NgModule","HostListener","Input","Directive","Output","Inject","DOCUMENT","ElementRef","END","HOME","SPACE","ENTER","hasModifierKey","takeUntil","startWith","obaservableOf","FocusKeyManager","coerceNumberProperty","ChangeDetectionStrategy","ViewEncapsulation","Component","coerceBooleanProperty","InjectionToken","TemplateRef"],"mappings":"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"}
@@ -5,5 +5,5 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/cdk/a11y"),require("@angular/cdk/bidi"),require("@angular/cdk/coercion"),require("@angular/cdk/keycodes"),require("@angular/common"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@angular/cdk/stepper",["exports","@angular/core","@angular/cdk/a11y","@angular/cdk/bidi","@angular/cdk/coercion","@angular/cdk/keycodes","@angular/common","rxjs","rxjs/operators"],t):t((e.ng=e.ng||{},e.ng.cdk=e.ng.cdk||{},e.ng.cdk.stepper={}),e.ng.core,e.ng.cdk.a11y,e.ng.cdk.bidi,e.ng.cdk.coercion,e.ng.cdk.keycodes,e.ng.common,e.rxjs,e.rxjs.operators)}(this,function(e,t,r,n,o,i,s,p,c){"use strict";var a=function(){function e(e){this.template=e}return e.decorators=[{type:t.Directive,args:[{selector:"[cdkStepLabel]"}]}],e.ctorParameters=function(){return[{type:t.TemplateRef}]},e}(),u=function(){function e(e){this._elementRef=e}return e.prototype.focus=function(){this._elementRef.nativeElement.focus()},e.decorators=[{type:t.Directive,args:[{selector:"[cdkStepHeader]",host:{role:"tab"}}]}],e.ctorParameters=function(){return[{type:t.ElementRef}]},e}(),d=0,l=function(){function e(){}return e}(),h={NUMBER:"number",EDIT:"edit",DONE:"done",ERROR:"error"},y=new t.InjectionToken("STEPPER_GLOBAL_OPTIONS"),_=y,f=function(){function e(e,t){this._stepper=e,this.interacted=!1,this._editable=!0,this._optional=!1,this._customCompleted=null,this._customError=null,this._stepperOptions=t||{},this._displayDefaultIndicatorType=!1!==this._stepperOptions.displayDefaultIndicatorType,this._showError=!!this._stepperOptions.showError}return Object.defineProperty(e.prototype,"editable",{get:function(){return this._editable},set:function(e){this._editable=o.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"optional",{get:function(){return this._optional},set:function(e){this._optional=o.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"completed",{get:function(){return null==this._customCompleted?this._getDefaultCompleted():this._customCompleted},set:function(e){this._customCompleted=o.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),e.prototype._getDefaultCompleted=function(){return this.stepControl?this.stepControl.valid&&this.interacted:this.interacted},Object.defineProperty(e.prototype,"hasError",{get:function(){return null==this._customError?this._getDefaultError():this._customError},set:function(e){this._customError=o.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),e.prototype._getDefaultError=function(){return this.stepControl&&this.stepControl.invalid&&this.interacted},e.prototype.select=function(){this._stepper.selected=this},e.prototype.reset=function(){this.interacted=!1,null!=this._customCompleted&&(this._customCompleted=!1),null!=this._customError&&(this._customError=!1),this.stepControl&&this.stepControl.reset()},e.prototype.ngOnChanges=function(){this._stepper._stateChanged()},e.decorators=[{type:t.Component,args:[{selector:"cdk-step",exportAs:"cdkStep",template:"<ng-template><ng-content></ng-content></ng-template>",encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:g,decorators:[{type:t.Inject,args:[t.forwardRef(function(){return g})]}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[y]}]}]},e.propDecorators={stepLabel:[{type:t.ContentChild,args:[a,{static:!1}]}],content:[{type:t.ViewChild,args:[t.TemplateRef,{static:!0}]}],stepControl:[{type:t.Input}],label:[{type:t.Input}],errorMessage:[{type:t.Input}],ariaLabel:[{type:t.Input,args:["aria-label"]}],ariaLabelledby:[{type:t.Input,args:["aria-labelledby"]}],state:[{type:t.Input}],editable:[{type:t.Input}],optional:[{type:t.Input}],completed:[{type:t.Input}],hasError:[{type:t.Input}]},e}(),g=function(){function e(e,r,n,o){this._dir=e,this._changeDetectorRef=r,this._elementRef=n,this._destroyed=new p.Subject,this._linear=!1,this._selectedIndex=0,this.selectionChange=new t.EventEmitter,this._orientation="horizontal",this._groupId=d++,this._document=o}return Object.defineProperty(e.prototype,"steps",{get:function(){return this._steps},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"linear",{get:function(){return this._linear},set:function(e){this._linear=o.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedIndex",{get:function(){return this._selectedIndex},set:function(e){var t=o.coerceNumberProperty(e);if(this.steps){if(t<0||t>this.steps.length-1)throw Error("cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.");this._selectedIndex!=t&&!this._anyControlsInvalidOrPending(t)&&(t>=this._selectedIndex||this.steps.toArray()[t].editable)&&this._updateSelectedItemIndex(e)}else this._selectedIndex=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selected",{get:function(){return this.steps?this.steps.toArray()[this.selectedIndex]:void 0},set:function(e){this.selectedIndex=this.steps?this.steps.toArray().indexOf(e):-1},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;this._keyManager=new r.FocusKeyManager(this._stepHeader).withWrap().withVerticalOrientation("vertical"===this._orientation),(this._dir?this._dir.change:p.of()).pipe(c.startWith(this._layoutDirection()),c.takeUntil(this._destroyed)).subscribe(function(t){return e._keyManager.withHorizontalOrientation(t)}),this._keyManager.updateActiveItemIndex(this._selectedIndex),this.steps.changes.pipe(c.takeUntil(this._destroyed)).subscribe(function(){e.selected||(e._selectedIndex=Math.max(e._selectedIndex-1,0))})},e.prototype.ngOnDestroy=function(){this._destroyed.next(),this._destroyed.complete()},e.prototype.next=function(){this.selectedIndex=Math.min(this._selectedIndex+1,this.steps.length-1)},e.prototype.previous=function(){this.selectedIndex=Math.max(this._selectedIndex-1,0)},e.prototype.reset=function(){this._updateSelectedItemIndex(0),this.steps.forEach(function(e){return e.reset()}),this._stateChanged()},e.prototype._getStepLabelId=function(e){return"cdk-step-label-"+this._groupId+"-"+e},e.prototype._getStepContentId=function(e){return"cdk-step-content-"+this._groupId+"-"+e},e.prototype._stateChanged=function(){this._changeDetectorRef.markForCheck()},e.prototype._getAnimationDirection=function(e){var t=e-this._selectedIndex;return t<0?"rtl"===this._layoutDirection()?"next":"previous":t>0?"rtl"===this._layoutDirection()?"previous":"next":"current"},e.prototype._getIndicatorType=function(e,t){void 0===t&&(t=h.NUMBER);var r=this.steps.toArray()[e],n=this._isCurrentStep(e);return r._displayDefaultIndicatorType?this._getDefaultIndicatorLogic(r,n):this._getGuidelineLogic(r,n,t)},e.prototype._getDefaultIndicatorLogic=function(e,t){return e._showError&&e.hasError&&!t?h.ERROR:!e.completed||t?h.NUMBER:e.editable?h.EDIT:h.DONE},e.prototype._getGuidelineLogic=function(e,t,r){return void 0===r&&(r=h.NUMBER),e._showError&&e.hasError&&!t?h.ERROR:e.completed&&!t?h.DONE:e.completed&&t?r:e.editable&&t?h.EDIT:r},e.prototype._isCurrentStep=function(e){return this._selectedIndex===e},e.prototype._getFocusIndex=function(){return this._keyManager?this._keyManager.activeItemIndex:this._selectedIndex},e.prototype._updateSelectedItemIndex=function(e){var t=this.steps.toArray();this.selectionChange.emit({selectedIndex:e,previouslySelectedIndex:this._selectedIndex,selectedStep:t[e],previouslySelectedStep:t[this._selectedIndex]}),this._containsFocus()?this._keyManager.setActiveItem(e):this._keyManager.updateActiveItemIndex(e),this._selectedIndex=e,this._stateChanged()},e.prototype._onKeydown=function(e){var t=i.hasModifierKey(e),r=e.keyCode,n=this._keyManager;null==n.activeItemIndex||t||r!==i.SPACE&&r!==i.ENTER?r===i.HOME?(n.setFirstItemActive(),e.preventDefault()):r===i.END?(n.setLastItemActive(),e.preventDefault()):n.onKeydown(e):(this.selectedIndex=n.activeItemIndex,e.preventDefault())},e.prototype._anyControlsInvalidOrPending=function(e){var t=this.steps.toArray();return t[this._selectedIndex].interacted=!0,!!(this._linear&&e>=0)&&t.slice(0,e).some(function(e){var t=e.stepControl;return(t?t.invalid||t.pending||!e.interacted:!e.completed)&&!e.optional})},e.prototype._layoutDirection=function(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"},e.prototype._containsFocus=function(){if(!this._document||!this._elementRef)return!1;var e=this._elementRef.nativeElement,t=this._document.activeElement;return e===t||e.contains(t)},e.decorators=[{type:t.Directive,args:[{selector:"[cdkStepper]",exportAs:"cdkStepper"}]}],e.ctorParameters=function(){return[{type:n.Directionality,decorators:[{type:t.Optional}]},{type:t.ChangeDetectorRef},{type:t.ElementRef},{type:void 0,decorators:[{type:t.Inject,args:[s.DOCUMENT]}]}]},e.propDecorators={_steps:[{type:t.ContentChildren,args:[f]}],_stepHeader:[{type:t.ContentChildren,args:[u]}],linear:[{type:t.Input}],selectedIndex:[{type:t.Input}],selected:[{type:t.Input}],selectionChange:[{type:t.Output}]},e}(),m=function(){function e(e){this._stepper=e,this.type="submit"}return e.prototype._handleClick=function(){this._stepper.next()},e.decorators=[{type:t.Directive,args:[{selector:"button[cdkStepperNext]",host:{"[type]":"type"}}]}],e.ctorParameters=function(){return[{type:g}]},e.propDecorators={type:[{type:t.Input}],_handleClick:[{type:t.HostListener,args:["click"]}]},e}(),I=function(){function e(e){this._stepper=e,this.type="button"}return e.prototype._handleClick=function(){this._stepper.previous()},e.decorators=[{type:t.Directive,args:[{selector:"button[cdkStepperPrevious]",host:{"[type]":"type"}}]}],e.ctorParameters=function(){return[{type:g}]},e.propDecorators={type:[{type:t.Input}],_handleClick:[{type:t.HostListener,args:["click"]}]},e}(),b=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[n.BidiModule,s.CommonModule],exports:[f,g,u,a,m,I],declarations:[f,g,u,a,m,I]}]}],e}();e.StepperSelectionEvent=l,e.STEP_STATE=h,e.STEPPER_GLOBAL_OPTIONS=y,e.MAT_STEPPER_GLOBAL_OPTIONS=_,e.CdkStep=f,e.CdkStepper=g,e.CdkStepLabel=a,e.CdkStepperNext=m,e.CdkStepperPrevious=I,e.CdkStepperModule=b,e.CdkStepHeader=u,Object.defineProperty(e,"__esModule",{value:!0})});
8
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/cdk/a11y"),require("@angular/cdk/bidi"),require("@angular/cdk/coercion"),require("@angular/cdk/keycodes"),require("@angular/common"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@angular/cdk/stepper",["exports","@angular/core","@angular/cdk/a11y","@angular/cdk/bidi","@angular/cdk/coercion","@angular/cdk/keycodes","@angular/common","rxjs","rxjs/operators"],t):t((e.ng=e.ng||{},e.ng.cdk=e.ng.cdk||{},e.ng.cdk.stepper={}),e.ng.core,e.ng.cdk.a11y,e.ng.cdk.bidi,e.ng.cdk.coercion,e.ng.cdk.keycodes,e.ng.common,e.rxjs,e.rxjs.operators)}(this,function(e,t,r,n,o,i,s,p,c){"use strict";var a=function(){function e(e){this._elementRef=e}return e.prototype.focus=function(){this._elementRef.nativeElement.focus()},e.decorators=[{type:t.Directive,args:[{selector:"[cdkStepHeader]",host:{role:"tab"}}]}],e.ctorParameters=function(){return[{type:t.ElementRef}]},e}(),d=function(){function e(e){this.template=e}return e.decorators=[{type:t.Directive,args:[{selector:"[cdkStepLabel]"}]}],e.ctorParameters=function(){return[{type:t.TemplateRef}]},e}(),u=0,l=function(){function e(){}return e}(),h={NUMBER:"number",EDIT:"edit",DONE:"done",ERROR:"error"},y=new t.InjectionToken("STEPPER_GLOBAL_OPTIONS"),_=y,f=function(){function e(e,t){this._stepper=e,this.interacted=!1,this._editable=!0,this._optional=!1,this._completedOverride=null,this._customError=null,this._stepperOptions=t||{},this._displayDefaultIndicatorType=!1!==this._stepperOptions.displayDefaultIndicatorType,this._showError=!!this._stepperOptions.showError}return Object.defineProperty(e.prototype,"editable",{get:function(){return this._editable},set:function(e){this._editable=o.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"optional",{get:function(){return this._optional},set:function(e){this._optional=o.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"completed",{get:function(){return null==this._completedOverride?this._getDefaultCompleted():this._completedOverride},set:function(e){this._completedOverride=o.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),e.prototype._getDefaultCompleted=function(){return this.stepControl?this.stepControl.valid&&this.interacted:this.interacted},Object.defineProperty(e.prototype,"hasError",{get:function(){return null==this._customError?this._getDefaultError():this._customError},set:function(e){this._customError=o.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),e.prototype._getDefaultError=function(){return this.stepControl&&this.stepControl.invalid&&this.interacted},e.prototype.select=function(){this._stepper.selected=this},e.prototype.reset=function(){this.interacted=!1,null!=this._completedOverride&&(this._completedOverride=!1),null!=this._customError&&(this._customError=!1),this.stepControl&&this.stepControl.reset()},e.prototype.ngOnChanges=function(){this._stepper._stateChanged()},e.decorators=[{type:t.Component,args:[{selector:"cdk-step",exportAs:"cdkStep",template:"<ng-template><ng-content></ng-content></ng-template>",encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:g,decorators:[{type:t.Inject,args:[t.forwardRef(function(){return g})]}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[y]}]}]},e.propDecorators={stepLabel:[{type:t.ContentChild,args:[d,{static:!1}]}],content:[{type:t.ViewChild,args:[t.TemplateRef,{static:!0}]}],stepControl:[{type:t.Input}],label:[{type:t.Input}],errorMessage:[{type:t.Input}],ariaLabel:[{type:t.Input,args:["aria-label"]}],ariaLabelledby:[{type:t.Input,args:["aria-labelledby"]}],state:[{type:t.Input}],editable:[{type:t.Input}],optional:[{type:t.Input}],completed:[{type:t.Input}],hasError:[{type:t.Input}]},e}(),g=function(){function e(e,r,n,o){this._dir=e,this._changeDetectorRef=r,this._elementRef=n,this._destroyed=new p.Subject,this._linear=!1,this._selectedIndex=0,this.selectionChange=new t.EventEmitter,this._orientation="horizontal",this._groupId=u++,this._document=o}return Object.defineProperty(e.prototype,"steps",{get:function(){return this._steps},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"linear",{get:function(){return this._linear},set:function(e){this._linear=o.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectedIndex",{get:function(){return this._selectedIndex},set:function(e){var t=o.coerceNumberProperty(e);if(this.steps){if(t<0||t>this.steps.length-1)throw Error("cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.");this._selectedIndex!=t&&!this._anyControlsInvalidOrPending(t)&&(t>=this._selectedIndex||this.steps.toArray()[t].editable)&&this._updateSelectedItemIndex(e)}else this._selectedIndex=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selected",{get:function(){return this.steps?this.steps.toArray()[this.selectedIndex]:void 0},set:function(e){this.selectedIndex=this.steps?this.steps.toArray().indexOf(e):-1},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;this._keyManager=new r.FocusKeyManager(this._stepHeader).withWrap().withVerticalOrientation("vertical"===this._orientation),(this._dir?this._dir.change:p.of()).pipe(c.startWith(this._layoutDirection()),c.takeUntil(this._destroyed)).subscribe(function(t){return e._keyManager.withHorizontalOrientation(t)}),this._keyManager.updateActiveItemIndex(this._selectedIndex),this.steps.changes.pipe(c.takeUntil(this._destroyed)).subscribe(function(){e.selected||(e._selectedIndex=Math.max(e._selectedIndex-1,0))})},e.prototype.ngOnDestroy=function(){this._destroyed.next(),this._destroyed.complete()},e.prototype.next=function(){this.selectedIndex=Math.min(this._selectedIndex+1,this.steps.length-1)},e.prototype.previous=function(){this.selectedIndex=Math.max(this._selectedIndex-1,0)},e.prototype.reset=function(){this._updateSelectedItemIndex(0),this.steps.forEach(function(e){return e.reset()}),this._stateChanged()},e.prototype._getStepLabelId=function(e){return"cdk-step-label-"+this._groupId+"-"+e},e.prototype._getStepContentId=function(e){return"cdk-step-content-"+this._groupId+"-"+e},e.prototype._stateChanged=function(){this._changeDetectorRef.markForCheck()},e.prototype._getAnimationDirection=function(e){var t=e-this._selectedIndex;return t<0?"rtl"===this._layoutDirection()?"next":"previous":t>0?"rtl"===this._layoutDirection()?"previous":"next":"current"},e.prototype._getIndicatorType=function(e,t){void 0===t&&(t=h.NUMBER);var r=this.steps.toArray()[e],n=this._isCurrentStep(e);return r._displayDefaultIndicatorType?this._getDefaultIndicatorLogic(r,n):this._getGuidelineLogic(r,n,t)},e.prototype._getDefaultIndicatorLogic=function(e,t){return e._showError&&e.hasError&&!t?h.ERROR:!e.completed||t?h.NUMBER:e.editable?h.EDIT:h.DONE},e.prototype._getGuidelineLogic=function(e,t,r){return void 0===r&&(r=h.NUMBER),e._showError&&e.hasError&&!t?h.ERROR:e.completed&&!t?h.DONE:e.completed&&t?r:e.editable&&t?h.EDIT:r},e.prototype._isCurrentStep=function(e){return this._selectedIndex===e},e.prototype._getFocusIndex=function(){return this._keyManager?this._keyManager.activeItemIndex:this._selectedIndex},e.prototype._updateSelectedItemIndex=function(e){var t=this.steps.toArray();this.selectionChange.emit({selectedIndex:e,previouslySelectedIndex:this._selectedIndex,selectedStep:t[e],previouslySelectedStep:t[this._selectedIndex]}),this._containsFocus()?this._keyManager.setActiveItem(e):this._keyManager.updateActiveItemIndex(e),this._selectedIndex=e,this._stateChanged()},e.prototype._onKeydown=function(e){var t=i.hasModifierKey(e),r=e.keyCode,n=this._keyManager;null==n.activeItemIndex||t||r!==i.SPACE&&r!==i.ENTER?r===i.HOME?(n.setFirstItemActive(),e.preventDefault()):r===i.END?(n.setLastItemActive(),e.preventDefault()):n.onKeydown(e):(this.selectedIndex=n.activeItemIndex,e.preventDefault())},e.prototype._anyControlsInvalidOrPending=function(e){var t=this.steps.toArray();return t[this._selectedIndex].interacted=!0,!!(this._linear&&e>=0)&&t.slice(0,e).some(function(e){var t=e.stepControl;return(t?t.invalid||t.pending||!e.interacted:!e.completed)&&!e.optional&&!e._completedOverride})},e.prototype._layoutDirection=function(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"},e.prototype._containsFocus=function(){if(!this._document||!this._elementRef)return!1;var e=this._elementRef.nativeElement,t=this._document.activeElement;return e===t||e.contains(t)},e.decorators=[{type:t.Directive,args:[{selector:"[cdkStepper]",exportAs:"cdkStepper"}]}],e.ctorParameters=function(){return[{type:n.Directionality,decorators:[{type:t.Optional}]},{type:t.ChangeDetectorRef},{type:t.ElementRef},{type:void 0,decorators:[{type:t.Inject,args:[s.DOCUMENT]}]}]},e.propDecorators={_steps:[{type:t.ContentChildren,args:[f]}],_stepHeader:[{type:t.ContentChildren,args:[a]}],linear:[{type:t.Input}],selectedIndex:[{type:t.Input}],selected:[{type:t.Input}],selectionChange:[{type:t.Output}]},e}(),m=function(){function e(e){this._stepper=e,this.type="submit"}return e.prototype._handleClick=function(){this._stepper.next()},e.decorators=[{type:t.Directive,args:[{selector:"button[cdkStepperNext]",host:{"[type]":"type"}}]}],e.ctorParameters=function(){return[{type:g}]},e.propDecorators={type:[{type:t.Input}],_handleClick:[{type:t.HostListener,args:["click"]}]},e}(),I=function(){function e(e){this._stepper=e,this.type="button"}return e.prototype._handleClick=function(){this._stepper.previous()},e.decorators=[{type:t.Directive,args:[{selector:"button[cdkStepperPrevious]",host:{"[type]":"type"}}]}],e.ctorParameters=function(){return[{type:g}]},e.propDecorators={type:[{type:t.Input}],_handleClick:[{type:t.HostListener,args:["click"]}]},e}(),b=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[n.BidiModule,s.CommonModule],exports:[f,g,a,d,m,I],declarations:[f,g,a,d,m,I]}]}],e}();e.StepperSelectionEvent=l,e.STEP_STATE=h,e.STEPPER_GLOBAL_OPTIONS=y,e.MAT_STEPPER_GLOBAL_OPTIONS=_,e.CdkStep=f,e.CdkStepper=g,e.CdkStepLabel=d,e.CdkStepperNext=m,e.CdkStepperPrevious=I,e.CdkStepperModule=b,e.CdkStepHeader=a,Object.defineProperty(e,"__esModule",{value:!0})});
9
9
  //# sourceMappingURL=cdk-stepper.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cdk-stepper.umd.min.js","sources":["../../src/cdk/stepper/step-label.ts","../../src/cdk/stepper/step-header.ts","../../src/cdk/stepper/stepper.ts","../../src/cdk/stepper/stepper-button.ts","../../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.io/license\n */\n\nimport {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[cdkStepLabel]',\n})\nexport class CdkStepLabel {\n constructor(/** @docs-private */ public template: TemplateRef<any>) { }\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.io/license\n */\n\nimport {Directive, ElementRef} from '@angular/core';\nimport {FocusableOption} from '@angular/cdk/a11y';\n\n\n@Directive({\n selector: '[cdkStepHeader]',\n host: {\n 'role': 'tab',\n },\n})\nexport class CdkStepHeader implements FocusableOption {\n constructor(protected _elementRef: ElementRef<HTMLElement>) {}\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.io/license\n */\n\nimport {FocusableOption, FocusKeyManager} from '@angular/cdk/a11y';\nimport {Direction, Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty, coerceNumberProperty} from '@angular/cdk/coercion';\nimport {END, ENTER, HOME, SPACE, hasModifierKey} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n EventEmitter,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n InjectionToken,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {CdkStepLabel} from './step-label';\nimport {Observable, Subject, of as obaservableOf} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\nimport {CdkStepHeader} from './step-header';\n\n/** Used to generate unique ID for each stepper component. */\nlet nextId = 0;\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 =\n new InjectionToken<StepperOptions>('STEPPER_GLOBAL_OPTIONS');\n\n/**\n * InjectionToken that can be used to specify the global stepper options.\n * @deprecated Use `STEPPER_GLOBAL_OPTIONS` instead.\n * @breaking-change 8.0.0.\n */\nexport const MAT_STEPPER_GLOBAL_OPTIONS = 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 moduleId: module.id,\n selector: 'cdk-step',\n exportAs: 'cdkStep',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CdkStep implements OnChanges {\n private _stepperOptions: StepperOptions;\n _showError: boolean;\n _displayDefaultIndicatorType: boolean;\n\n /** Template for step label if it exists. */\n @ContentChild(CdkStepLabel, {static: false}) stepLabel: CdkStepLabel;\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: FormControlLike;\n\n /** Whether user has seen the expanded step content or not. */\n interacted = false;\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() state: StepState;\n\n /** Whether the user can return to this step once it has been marked as completed. */\n @Input()\n get editable(): boolean { return this._editable; }\n set editable(value: boolean) {\n this._editable = coerceBooleanProperty(value);\n }\n private _editable = true;\n\n /** Whether the completion of step is optional. */\n @Input()\n get optional(): boolean { return this._optional; }\n set optional(value: boolean) {\n this._optional = coerceBooleanProperty(value);\n }\n private _optional = false;\n\n /** Whether step is marked as completed. */\n @Input()\n get completed(): boolean {\n return this._customCompleted == null ? this._getDefaultCompleted() : this._customCompleted;\n }\n set completed(value: boolean) {\n this._customCompleted = coerceBooleanProperty(value);\n }\n private _customCompleted: boolean | null = null;\n\n private _getDefaultCompleted() {\n return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n }\n\n /** Whether step has an error. */\n @Input()\n get hasError(): boolean {\n return this._customError == null ? this._getDefaultError() : this._customError;\n }\n set hasError(value: boolean) {\n this._customError = coerceBooleanProperty(value);\n }\n private _customError: boolean | null = null;\n\n private _getDefaultError() {\n return this.stepControl && this.stepControl.invalid && this.interacted;\n }\n\n /** @breaking-change 8.0.0 remove the `?` after `stepperOptions` */\n constructor(\n @Inject(forwardRef(() => CdkStepper)) private _stepper: CdkStepper,\n @Optional() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions?: StepperOptions) {\n this._stepperOptions = stepperOptions ? stepperOptions : {};\n this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;\n this._showError = !!this._stepperOptions.showError;\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 = false;\n\n if (this._customCompleted != null) {\n this._customCompleted = false;\n }\n\n if (this._customError != null) {\n this._customError = false;\n }\n\n if (this.stepControl) {\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\n@Directive({\n selector: '[cdkStepper]',\n exportAs: 'cdkStepper',\n})\nexport class CdkStepper implements AfterViewInit, OnDestroy {\n /** Emits when the component is destroyed. */\n protected _destroyed = new Subject<void>();\n\n /** Used for managing keyboard focus. */\n private _keyManager: FocusKeyManager<FocusableOption>;\n\n /**\n * @breaking-change 8.0.0 Remove `| undefined` once the `_document`\n * constructor param is required.\n */\n private _document: Document | undefined;\n\n /**\n * The list of step components that the stepper is holding.\n * @deprecated use `steps` instead\n * @breaking-change 9.0.0 remove this property\n */\n @ContentChildren(CdkStep) _steps: QueryList<CdkStep>;\n\n /** The list of step components that the stepper is holding. */\n get steps(): QueryList<CdkStep> {\n return this._steps;\n }\n\n /**\n * The list of step headers of the steps in the stepper.\n * @deprecated Type to be changed to `QueryList<CdkStepHeader>`.\n * @breaking-change 8.0.0\n */\n @ContentChildren(CdkStepHeader) _stepHeader: QueryList<FocusableOption>;\n\n /** Whether the validity of previous steps should be checked or not. */\n @Input()\n get linear(): boolean { return this._linear; }\n set linear(value: boolean) { this._linear = coerceBooleanProperty(value); }\n private _linear = false;\n\n /** The index of the selected step. */\n @Input()\n get selectedIndex() { return this._selectedIndex; }\n set selectedIndex(index: number) {\n const newIndex = coerceNumberProperty(index);\n\n if (this.steps) {\n // Ensure that the index can't be out of bounds.\n if (newIndex < 0 || newIndex > this.steps.length - 1) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n\n if (this._selectedIndex != newIndex &&\n !this._anyControlsInvalidOrPending(newIndex) &&\n (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {\n this._updateSelectedItemIndex(index);\n }\n } else {\n this._selectedIndex = newIndex;\n }\n }\n private _selectedIndex = 0;\n\n /** The step that is selected. */\n @Input()\n get selected(): CdkStep {\n // @breaking-change 8.0.0 Change return type to `CdkStep | undefined`.\n return this.steps ? this.steps.toArray()[this.selectedIndex] : undefined!;\n }\n set selected(step: CdkStep) {\n this.selectedIndex = this.steps ? this.steps.toArray().indexOf(step) : -1;\n }\n\n /** Event emitted when the selected step has changed. */\n @Output() selectionChange: EventEmitter<StepperSelectionEvent>\n = new EventEmitter<StepperSelectionEvent>();\n\n /** Used to track unique ID for each stepper component. */\n _groupId: number;\n\n protected _orientation: StepperOrientation = 'horizontal';\n\n constructor(\n @Optional() private _dir: Directionality,\n private _changeDetectorRef: ChangeDetectorRef,\n // @breaking-change 8.0.0 `_elementRef` and `_document` parameters to become required.\n private _elementRef?: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) _document?: any) {\n this._groupId = nextId++;\n this._document = _document;\n }\n\n ngAfterViewInit() {\n // Note that while the step headers are content children by default, any components that\n // extend this one might have them as view chidren. 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._stepHeader)\n .withWrap()\n .withVerticalOrientation(this._orientation === 'vertical');\n\n (this._dir ? this._dir.change as Observable<Direction> : obaservableOf<Direction>())\n .pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed))\n .subscribe(direction => this._keyManager.withHorizontalOrientation(direction));\n\n this._keyManager.updateActiveItemIndex(this._selectedIndex);\n\n this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (!this.selected) {\n this._selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n });\n }\n\n ngOnDestroy() {\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 `cdk-step-label-${this._groupId}-${i}`;\n }\n\n /** Returns unique id for each step content element. */\n _getStepContentId(i: number): string {\n return `cdk-step-content-${this._groupId}-${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 type of icon to be displayed. */\n _getIndicatorType(index: number, state: StepState = STEP_STATE.NUMBER): StepState {\n const step = this.steps.toArray()[index];\n const isCurrentStep = this._isCurrentStep(index);\n\n return step._displayDefaultIndicatorType\n ? this._getDefaultIndicatorLogic(step, isCurrentStep)\n : this._getGuidelineLogic(step, isCurrentStep, state);\n }\n\n private _getDefaultIndicatorLogic(step: CdkStep, isCurrentStep: boolean): StepState {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (!step.completed || isCurrentStep) {\n return STEP_STATE.NUMBER;\n } else {\n return step.editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n }\n }\n\n private _getGuidelineLogic(\n step: CdkStep,\n isCurrentStep: boolean,\n state: StepState = STEP_STATE.NUMBER): StepState {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (step.completed && !isCurrentStep) {\n return STEP_STATE.DONE;\n } else if (step.completed && isCurrentStep) {\n return state;\n } else if (step.editable && isCurrentStep) {\n return STEP_STATE.EDIT;\n } else {\n return state;\n }\n }\n\n private _isCurrentStep(index: number) {\n return this._selectedIndex === index;\n }\n\n /** Returns the index of the currently-focused step header. */\n _getFocusIndex() {\n return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex;\n }\n\n private _updateSelectedItemIndex(newIndex: number): void {\n const 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\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 this._containsFocus() ? this._keyManager.setActiveItem(newIndex) :\n this._keyManager.updateActiveItemIndex(newIndex);\n\n this._selectedIndex = 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 (manager.activeItemIndex != null && !hasModifier &&\n (keyCode === SPACE || keyCode === ENTER)) {\n this.selectedIndex = manager.activeItemIndex;\n event.preventDefault();\n } else if (keyCode === HOME) {\n manager.setFirstItemActive();\n event.preventDefault();\n } else if (keyCode === END) {\n manager.setLastItemActive();\n event.preventDefault();\n } else {\n manager.onKeydown(event);\n }\n }\n\n private _anyControlsInvalidOrPending(index: number): boolean {\n const steps = this.steps.toArray();\n\n steps[this._selectedIndex].interacted = true;\n\n if (this._linear && index >= 0) {\n return steps.slice(0, index).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;\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 if (!this._document || !this._elementRef) {\n return false;\n }\n\n const stepperElement = this._elementRef.nativeElement;\n const focusedElement = this._document.activeElement;\n return stepperElement === focusedElement || stepperElement.contains(focusedElement);\n }\n}\n\n\n/**\n * Simplified representation of a FormControl from @angular/forms.\n * Used to avoid having to bring in @angular/forms for a single optional interface.\n * @docs-private\n */\ninterface FormControlLike {\n asyncValidator: () => any | null;\n dirty: boolean;\n disabled: boolean;\n enabled: boolean;\n errors: {[key: string]: any} | null;\n invalid: boolean;\n parent: any;\n pending: boolean;\n pristine: boolean;\n root: FormControlLike;\n status: string;\n statusChanges: Observable<any>;\n touched: boolean;\n untouched: boolean;\n updateOn: any;\n valid: boolean;\n validator: () => any | null;\n value: any;\n valueChanges: Observable<any>;\n clearAsyncValidators(): void;\n clearValidators(): void;\n disable(opts?: any): void;\n enable(opts?: any): void;\n get(path: (string | number)[] | string): FormControlLike | null;\n getError(errorCode: string, path?: (string | number)[] | string): any;\n hasError(errorCode: string, path?: (string | number)[] | string): boolean;\n markAllAsTouched(): void;\n markAsDirty(opts?: any): void;\n markAsPending(opts?: any): void;\n markAsPristine(opts?: any): void;\n markAsTouched(opts?: any): void;\n markAsUntouched(opts?: any): void;\n patchValue(value: any, options?: Object): void;\n reset(value?: any, options?: Object): void;\n setAsyncValidators(newValidator: () => any | (() => any)[] | null): void;\n setErrors(errors: {[key: string]: any} | null, opts?: any): void;\n setParent(parent: any): void;\n setValidators(newValidator: () => any | (() => any)[] | null): void;\n setValue(value: any, options?: Object): void;\n updateValueAndValidity(opts?: any): void;\n patchValue(value: any, options?: any): void;\n registerOnChange(fn: Function): void;\n registerOnDisabledChange(fn: (isDisabled: boolean) => void): void;\n reset(formState?: any, options?: any): void;\n setValue(value: any, options?: any): void;\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.io/license\n */\n\nimport {Directive, HostListener, Input} 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 }\n})\nexport class CdkStepperNext {\n /** Type of the next button. Defaults to \"submit\" if not specified. */\n @Input() type: string = 'submit';\n\n constructor(public _stepper: CdkStepper) {}\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n @HostListener('click')\n _handleClick() {\n this._stepper.next();\n }\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 }\n})\nexport class CdkStepperPrevious {\n /** Type of the previous button. Defaults to \"button\" if not specified. */\n @Input() type: string = 'button';\n\n constructor(public _stepper: CdkStepper) {}\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n @HostListener('click')\n _handleClick() {\n this._stepper.previous();\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.io/license\n */\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 {CdkStepHeader} from './step-header';\nimport {BidiModule} from '@angular/cdk/bidi';\n\n@NgModule({\n imports: [BidiModule, CommonModule],\n exports: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ],\n declarations: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ]\n})\nexport class CdkStepperModule {}\n"],"names":["CdkStepLabel","template","this","type","Directive","args","selector","TemplateRef","CdkStepHeader","_elementRef","prototype","focus","nativeElement","host","role","ElementRef","nextId","StepperSelectionEvent","STEP_STATE","NUMBER","EDIT","DONE","ERROR","STEPPER_GLOBAL_OPTIONS","InjectionToken","MAT_STEPPER_GLOBAL_OPTIONS","CdkStep","_stepper","stepperOptions","interacted","_editable","_optional","_customCompleted","_customError","_stepperOptions","_displayDefaultIndicatorType","displayDefaultIndicatorType","_showError","showError","Object","defineProperty","value","coerceBooleanProperty","_getDefaultCompleted","stepControl","valid","_getDefaultError","invalid","select","selected","reset","ngOnChanges","_stateChanged","Component","exportAs","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","propDecorators","Input","label","errorMessage","ariaLabel","ariaLabelledby","state","editable","optional","completed","hasError","CdkStepper","_dir","_changeDetectorRef","_selectedIndex","_groupId","_document","get","enumerable","configurable","newIndex","coerceNumberProperty","index","steps","length","Error","_anyControlsInvalidOrPending","toArray","_updateSelectedItemIndex","selectedIndex","set","_keyManager","FocusKeyManager","_stepHeader","withWrap","withVerticalOrientation","_orientation","obaservableOf","pipe","startWith","_layoutDirection","takeUntil","_destroyed","subscribe","changes","_this","Math","max","complete","forEach","position","step","isCurrentStep","_isCurrentStep","_getDefaultIndicatorLogic","_getGuidelineLogic","stepsArray","previouslySelectedIndex","selectedStep","previouslySelectedStep","_containsFocus","setActiveItem","updateActiveItemIndex","hasModifier","hasModifierKey","event","keyCode","manager","SPACE","ENTER","HOME","setFirstItemActive","preventDefault","END","setLastItemActive","onKeydown","activeItemIndex","_linear","slice","some","control","stepperElement","focusedElement","activeElement","decorators","undefined","Inject","DOCUMENT","linear","selectionChange","Output","CdkStepperNext","_handleClick","next","[type]","HostListener","CdkStepperPrevious","previous","CdkStepperModule","NgModule","imports","BidiModule","CommonModule","exports","declarations"],"mappings":";;;;;;;uuBAUA,IAAAA,GAAA,WAIE,QAAFA,GAA0CC,GAAAC,KAA1CD,SAA0CA,EAC1C,sBALAE,KAACC,EAAAA,UAADC,OACEC,SAAU,yDAHZH,KAAmBI,EAAAA,eAOnBP,KCHAQ,EAAA,WAOE,QAAFA,GAAwBC,GAAAP,KAAxBO,YAAwBA,EAMxB,MAHED,GAAFE,UAAAC,MAAE,WACET,KAAKO,YAAYG,cAAcD,wBAXnCR,KAACC,EAAAA,UAADC,OACEC,SAAU,kBACVO,MACEC,KAAQ,+CAPZX,KAAmBY,EAAAA,cAiBnBP,KCiBIQ,EAAS,eAYb,QAAAC,MAYA,MAAAA,MAMaC,GACXC,OAAQ,SACRC,KAAM,OACNC,KAAM,OACNC,MAAO,SAIIC,EACX,GAAIC,GAAAA,eAA+B,0BAOxBC,EAA6BF,EAkB1CG,EAAA,WAwFE,QAAFA,GACkDC,EACFC,GADE1B,KAAlDyB,SAAkDA,EAlEhDzB,KAAF2B,YAAe,EA0BL3B,KAAV4B,WAAsB,EAQZ5B,KAAV6B,WAAsB,EAUZ7B,KAAV8B,iBAA6C,KAcnC9B,KAAV+B,aAAyC,KAUrC/B,KAAKgC,gBAAkBN,MACvB1B,KAAKiC,8BAAoF,IAArDjC,KAAKgC,gBAAgBE,4BACzDlC,KAAKmC,aAAenC,KAAKgC,gBAAgBI,UAnB7C,MA9BEC,QAAFC,eACMd,EADNhB,UAAA,gBAAE,WAC0B,MAAOR,MAAK4B,eACtC,SAAaW,GACXvC,KAAK4B,UAAYY,EAAAA,sBAAsBD,oCAKzCF,OAAFC,eACMd,EADNhB,UAAA,gBAAE,WAC0B,MAAOR,MAAK6B,eACtC,SAAaU,GACXvC,KAAK6B,UAAYW,EAAAA,sBAAsBD,oCAKzCF,OAAFC,eACMd,EADNhB,UAAA,iBAAE,WAEE,MAAgC,OAAzBR,KAAK8B,iBAA2B9B,KAAKyC,uBAAyBzC,KAAK8B,sBAE5E,SAAcS,GACZvC,KAAK8B,iBAAmBU,EAAAA,sBAAsBD,oCAIxCf,EAAVhB,UAAAiC,qBAAE,WACE,MAAOzC,MAAK0C,YAAc1C,KAAK0C,YAAYC,OAAS3C,KAAK2B,WAAa3B,KAAK2B,YAI7EU,OAAFC,eACMd,EADNhB,UAAA,gBAAE,WAEE,MAA4B,OAArBR,KAAK+B,aAAuB/B,KAAK4C,mBAAqB5C,KAAK+B,kBAEpE,SAAaQ,GACXvC,KAAK+B,aAAeS,EAAAA,sBAAsBD,oCAIpCf,EAAVhB,UAAAoC,iBAAE,WACE,MAAO5C,MAAK0C,aAAe1C,KAAK0C,YAAYG,SAAW7C,KAAK2B,YAa9DH,EAAFhB,UAAAsC,OAAE,WACE9C,KAAKyB,SAASsB,SAAW/C,MAI3BwB,EAAFhB,UAAAwC,MAAE,WACEhD,KAAK2B,YAAa,EAEW,MAAzB3B,KAAK8B,mBACP9B,KAAK8B,kBAAmB,GAGD,MAArB9B,KAAK+B,eACP/B,KAAK+B,cAAe,GAGlB/B,KAAK0C,aACP1C,KAAK0C,YAAYM,SAIrBxB,EAAFhB,UAAAyC,YAAE,WAGEjD,KAAKyB,SAASyB,gCAzHlBjD,KAACkD,EAAAA,UAADhD,OAAAC,SAAA,WACEgD,SAAU,UACVrD,SAAU,uDACVsD,cAAFC,EAAAA,kBAAAC,KACEC,gBAAFC,EAAAA,wBAAAC,sMAsFAlC,EAAAmC,qIA5EAjB,cAAAzC,KAAA2D,EAAAA,QAGAC,QAAA5D,KAAA2D,EAAAA,QAGAE,eAAA7D,KAAA2D,EAAAA,QAMAG,YAAA9D,KAAA2D,EAAAA,MAAAzD,MAAA,gBAGA6D,iBAAA/D,KAAA2D,EAAAA,MAAAzD,MAAA,qBAGA8D,QAAAhE,KAAA2D,EAAAA,QAMAM,WAAAjE,KAAA2D,EAAAA,QAGAO,WAAAlE,KAAA2D,EAAAA,QAGAQ,YAAAnE,KAAA2D,EAAAA,QAQAS,WAAApE,KAAG2D,EAAAA,SAsBHpC,KAeI8C,EAAJ,+BAoCAtE,KAAAuE,KAAAA,EAoFAvE,KAAAwE,mBAAAA,EACwBxE,KAAxBO,YAAAA,gDA/EYP,KAAZyE,eAA6B,yEAsEjBzE,KAAZ0E,SAAA5D,IAMYd,KAAZ2E,UAAwBA,EANxB,MAeAtC,QAAAC,eAAAgC,EAAA9D,UAAA,SAlEAoE,mCACAC,YAAA,EACEC,cAAF,gDAUAF,2GAEEE,cAAF,uDAIAF,2DAEA,GAAAG,GAAAC,EAAAA,qBAAAC,kBAGQ,GAAIF,EAAZ,GAAAA,EAAA/E,KAAAkF,MAAAC,OAAA,EACA,KAAAC,OAAA,oEAEQpF,MAARyE,gBAAAM,IACA/E,KAAAqF,6BAAAN,KAEAA,GAAA/E,KAAAyE,gBAAAzE,KAAAkF,MAAAI,UAAAP,GAAAb,WACUlE,KAAKuF,yBAAfN,OAIAjF,MAAAyE,eAAAM,GAEAF,YAAA,EACEC,cAAF,kDAIAF,eAAA,MAAA5E,MAAAkF,MAAAlF,KAAAkF,MAAAI,UAAAtF,KAAAwF,mBAAA,IAGAC,kFAGAZ,YAAA,EACEC,cAAF,qDAuBI9E,MAAJ0F,YAAA,GAAAC,GAAAA,gBAAA3F,KAAA4F,aACAC,WACSC,wBAAT,aAAA9F,KAAA+F,eACA/F,KAAAuE,KAAAvE,KAAAuE,KAAA,OAAAyB,EAAAA,MACOC,KAAPC,EAAAA,UAAAlG,KAAAmG,oBAAgDC,EAAAA,UAAhDpG,KAA+DqG,aAEtDC,UAAT,4HAEiBtG,KAAjBkF,MAAAqB,QAA0BN,KAA1BG,EAAAA,UAAApG,KAAAqG,aAAAC,UAAA,wBAIAE,EAAA/B,eAAAgC,KAAAC,IAAAF,EAAA/B,eAAA,EAAA,iEAOAzE,KAAAqG,WAAAM,oQAgBA3G,KAAAkF,MAAA0B,QAAA,+VAsBA,GAAAC,GAAA5B,EAAAjF,KAAAyE,0BACA,QAAAzE,KAAAmG,mBAAA,OAAA,WAEAU,EAAA,EACA,QAAA7G,KAAAmG,mBAAA,WAAA,OACA,+EAMmC,IAAnCW,GAAA9G,KAAAkF,MAAmCI,UAAmBL,GAC5C8B,EAAV/G,KAAAgH,eAAA/B,yCACAjF,KAAAiH,0BAAAH,EAAAC,GAEA/G,KAAekH,mBAAfJ,EAAAC,EAAA9C,4FAKAjD,EAAAI,OAEA0F,EAAA1C,WAA8B2C,EAC9B/F,EAAAC,OAEA6F,EAAA5C,SAAAlD,EAAAE,KAAAF,EAAAG,qDAKA,gCAAA2F,EAAA3E,YAAA2E,EAAAzC,WAAA0C,EAGA/F,EAAII,MAEJ0F,EAAA1C,YAA8B2C,EAC9B/F,EAAAG,KACA2F,EAAA1C,WAA6B2C,EAC7B9C,EACA6C,EAAA5C,UAAA6C,EACA/F,EAAAE,KAEA+C,+OAcA,GAAAkD,GAAAnH,KAAAkF,MAAAI,qCACUE,cAAVT,EACQqC,wBAARpH,KAAAyE,eACM4C,aAANF,EAAApC,GACMuC,uBAANH,EAAAnH,KAAAyE,kBAOIzE,KAAJuH,iBAAAvH,KAAA0F,YAAA8B,cAAAzC,GACA/E,KAAA0F,YAAA+B,sBAAA1C,GACI/E,KAAKyE,eAAiBM,EAC1B/E,KAAAkD,oDAMA,GAAAwE,GAAAC,EAAAA,eAAAC,GACUC,EAAVD,EAAAC,QACUC,EAAU9H,KAAK0F,wCACzBmC,IAAAE,EAAAA,OAAAF,IAAAG,EAAAA,MAKWH,IAAXI,EAAAA,MACAH,EAAAI,qBAAAN,EAAAO,kBAEWN,IAAXO,EAAAA,KACAN,EAAAO,oBAAAT,EAAAO,kBAGAL,EAAAQ,UAAAV,IAVQ5H,KAARwF,cAAAsC,EAAAS,gBACQX,EAARO,wEAcA,GAAAjD,GAAAlF,KAAAkF,MAAAI,SACA,gDAAUtF,KAAKwI,SAAfvD,GAAA,IAEeC,EAAfuD,MAAA,EAA8BxD,GAA9ByD,KAAyC,YAGzC,GAAAC,GAAA7B,EAAApE,WAGA,QAF6BiG,uCAC7B7B,EAAA1C,aACgC0C,EAAhC3C,uLAcA,OAAA,CAGA,IAAAyE,GAAA5I,KAAAO,YAAAG,cAEUmI,EAAiB7I,KAAK2E,UAAhCmE,2CAEAxE,EAAWyE,aACX9I,KAAAC,EAAAA,UAAAC,+BAxRAiD,SAAA,uIA9NAnD,KAAmBY,EAAAA,aAMnBZ,SAAE+I,GAAFD,aAAA9I,KAAAgJ,EAAAA,OAAA9I,MAAA+I,EAAAA,eAiTA5E,EAAAX,2GAnEAwF,SAAAlJ,KAAG2D,EAAAA,QAYH4B,gBAAAvF,KAAA2D,EAAAA,QAGAb,WAAA9C,KAAA2D,EAAAA,QAMAwF,kBAAAnJ,KAAAoJ,EAAAA,UAiCA/E,KCtSAgF,EAAA,WAUE,QAAFA,GAAqB7H,GAAAzB,KAArByB,SAAqBA,EAFVzB,KAAXC,KAA0B,SAa1B,MAHEqJ,GAAF9I,UAAA+I,aADE,WAEEvJ,KAAKyB,SAAS+H,uBAnBlBvJ,KAACC,EAAAA,UAADC,OACEC,SAAU,yBACVO,MACE8I,SAAU,gDANdxJ,KAAQqE,uBAWRrE,OAAAA,KAAG2D,EAAAA,QASH2F,eAAAtJ,KAAGyJ,EAAAA,aAAHvJ,MAAgB,YAIhBmJ,KAGAK,EAAA,WAUE,QAAFA,GAAqBlI,GAAAzB,KAArByB,SAAqBA,EAFVzB,KAAXC,KAA0B,SAa1B,MAHE0J,GAAFnJ,UAAA+I,aADE,WAEEvJ,KAAKyB,SAASmI,2BAnBlB3J,KAACC,EAAAA,UAADC,OACEC,SAAU,6BACVO,MACE8I,SAAU,gDA9BdxJ,KAAQqE,uBAmCRrE,OAAAA,KAAG2D,EAAAA,QASH2F,eAAAtJ,KAAGyJ,EAAAA,aAAHvJ,MAAgB,YAIhBwJ,KC1CAE,EAAA,WAAA,QAAAA,MAmB+B,sBAnB/B5J,KAAC6J,EAAAA,SAAD3J,OACE4J,SAAUC,EAAAA,WAAYC,EAAAA,cACtBC,SACE1I,EACA8C,EACAhE,EACAR,EACAwJ,EACAK,GAEFQ,cACE3I,EACA8C,EACAhE,EACAR,EACAwJ,EACAK,OAGJE"}
1
+ {"version":3,"file":"cdk-stepper.umd.min.js","sources":["../../src/cdk/stepper/step-header.ts","../../src/cdk/stepper/step-label.ts","../../src/cdk/stepper/stepper.ts","../../src/cdk/stepper/stepper-button.ts","../../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.io/license\n */\n\nimport {Directive, ElementRef} from '@angular/core';\nimport {FocusableOption} from '@angular/cdk/a11y';\n\n\n@Directive({\n selector: '[cdkStepHeader]',\n host: {\n 'role': 'tab',\n },\n})\nexport class CdkStepHeader implements FocusableOption {\n constructor(protected _elementRef: ElementRef<HTMLElement>) {}\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.io/license\n */\n\nimport {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[cdkStepLabel]',\n})\nexport class CdkStepLabel {\n constructor(/** @docs-private */ public template: TemplateRef<any>) { }\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.io/license\n */\n\nimport {FocusableOption, FocusKeyManager} from '@angular/cdk/a11y';\nimport {Direction, Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty, coerceNumberProperty} from '@angular/cdk/coercion';\nimport {END, ENTER, hasModifierKey, HOME, SPACE} from '@angular/cdk/keycodes';\nimport {DOCUMENT} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Observable, of as obaservableOf, Subject} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\n\nimport {CdkStepHeader} from './step-header';\nimport {CdkStepLabel} from './step-label';\n\n/** Used to generate unique ID for each stepper component. */\nlet nextId = 0;\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/**\n * InjectionToken that can be used to specify the global stepper options.\n * @deprecated Use `STEPPER_GLOBAL_OPTIONS` instead.\n * @breaking-change 8.0.0.\n */\nexport const MAT_STEPPER_GLOBAL_OPTIONS = 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 moduleId: module.id,\n selector: 'cdk-step',\n exportAs: 'cdkStep',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CdkStep implements OnChanges {\n private _stepperOptions: StepperOptions;\n _showError: boolean;\n _displayDefaultIndicatorType: boolean;\n\n /** Template for step label if it exists. */\n @ContentChild(CdkStepLabel, {static: false}) stepLabel: CdkStepLabel;\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: FormControlLike;\n\n /** Whether user has seen the expanded step content or not. */\n interacted = false;\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() state: StepState;\n\n /** Whether the user can return to this step once it has been marked as completed. */\n @Input()\n get editable(): boolean {\n return this._editable;\n }\n set editable(value: boolean) {\n this._editable = coerceBooleanProperty(value);\n }\n private _editable = true;\n\n /** Whether the completion of step is optional. */\n @Input()\n get optional(): boolean {\n return this._optional;\n }\n set optional(value: boolean) {\n this._optional = coerceBooleanProperty(value);\n }\n private _optional = false;\n\n /** Whether step is marked as completed. */\n @Input()\n get completed(): boolean {\n return this._completedOverride == null ? this._getDefaultCompleted() : this._completedOverride;\n }\n set completed(value: boolean) {\n this._completedOverride = coerceBooleanProperty(value);\n }\n _completedOverride: boolean|null = null;\n\n private _getDefaultCompleted() {\n return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n }\n\n /** Whether step has an error. */\n @Input()\n get hasError(): boolean {\n return this._customError == null ? this._getDefaultError() : this._customError;\n }\n set hasError(value: boolean) {\n this._customError = coerceBooleanProperty(value);\n }\n private _customError: boolean|null = null;\n\n private _getDefaultError() {\n return this.stepControl && this.stepControl.invalid && this.interacted;\n }\n\n /** @breaking-change 8.0.0 remove the `?` after `stepperOptions` */\n constructor(\n @Inject(forwardRef(() => CdkStepper)) private _stepper: CdkStepper,\n @Optional() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions?: StepperOptions) {\n this._stepperOptions = stepperOptions ? stepperOptions : {};\n this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;\n this._showError = !!this._stepperOptions.showError;\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 = false;\n\n if (this._completedOverride != null) {\n this._completedOverride = false;\n }\n\n if (this._customError != null) {\n this._customError = false;\n }\n\n if (this.stepControl) {\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\n@Directive({\n selector: '[cdkStepper]',\n exportAs: 'cdkStepper',\n})\nexport class CdkStepper implements AfterViewInit, OnDestroy {\n /** Emits when the component is destroyed. */\n protected _destroyed = new Subject<void>();\n\n /** Used for managing keyboard focus. */\n private _keyManager: FocusKeyManager<FocusableOption>;\n\n /**\n * @breaking-change 8.0.0 Remove `| undefined` once the `_document`\n * constructor param is required.\n */\n private _document: Document|undefined;\n\n /**\n * The list of step components that the stepper is holding.\n * @deprecated use `steps` instead\n * @breaking-change 9.0.0 remove this property\n */\n @ContentChildren(CdkStep) _steps: QueryList<CdkStep>;\n\n /** The list of step components that the stepper is holding. */\n get steps(): QueryList<CdkStep> {\n return this._steps;\n }\n\n /**\n * The list of step headers of the steps in the stepper.\n * @deprecated Type to be changed to `QueryList<CdkStepHeader>`.\n * @breaking-change 8.0.0\n */\n @ContentChildren(CdkStepHeader) _stepHeader: QueryList<FocusableOption>;\n\n /** Whether the validity of previous steps should be checked or not. */\n @Input()\n get linear(): boolean {\n return this._linear;\n }\n set linear(value: boolean) {\n this._linear = coerceBooleanProperty(value);\n }\n private _linear = false;\n\n /** The index of the selected step. */\n @Input()\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(index: number) {\n const newIndex = coerceNumberProperty(index);\n\n if (this.steps) {\n // Ensure that the index can't be out of bounds.\n if (newIndex < 0 || newIndex > this.steps.length - 1) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n\n if (this._selectedIndex != newIndex && !this._anyControlsInvalidOrPending(newIndex) &&\n (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {\n this._updateSelectedItemIndex(index);\n }\n } else {\n this._selectedIndex = newIndex;\n }\n }\n private _selectedIndex = 0;\n\n /** The step that is selected. */\n @Input()\n get selected(): CdkStep {\n // @breaking-change 8.0.0 Change return type to `CdkStep | undefined`.\n return this.steps ? this.steps.toArray()[this.selectedIndex] : undefined!;\n }\n set selected(step: CdkStep) {\n this.selectedIndex = this.steps ? this.steps.toArray().indexOf(step) : -1;\n }\n\n /** Event emitted when the selected step has changed. */\n @Output()\n selectionChange: EventEmitter<StepperSelectionEvent> = new EventEmitter<StepperSelectionEvent>();\n\n /** Used to track unique ID for each stepper component. */\n _groupId: number;\n\n protected _orientation: StepperOrientation = 'horizontal';\n\n constructor(\n @Optional() private _dir: Directionality, private _changeDetectorRef: ChangeDetectorRef,\n // @breaking-change 8.0.0 `_elementRef` and `_document` parameters to become required.\n private _elementRef?: ElementRef<HTMLElement>, @Inject(DOCUMENT) _document?: any) {\n this._groupId = nextId++;\n this._document = _document;\n }\n\n ngAfterViewInit() {\n // Note that while the step headers are content children by default, any components that\n // extend this one might have them as view chidren. 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._stepHeader)\n .withWrap()\n .withVerticalOrientation(this._orientation === 'vertical');\n\n (this._dir ? (this._dir.change as Observable<Direction>) : obaservableOf<Direction>())\n .pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed))\n .subscribe(direction => this._keyManager.withHorizontalOrientation(direction));\n\n this._keyManager.updateActiveItemIndex(this._selectedIndex);\n\n this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (!this.selected) {\n this._selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n });\n }\n\n ngOnDestroy() {\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 `cdk-step-label-${this._groupId}-${i}`;\n }\n\n /** Returns unique id for each step content element. */\n _getStepContentId(i: number): string {\n return `cdk-step-content-${this._groupId}-${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 type of icon to be displayed. */\n _getIndicatorType(index: number, state: StepState = STEP_STATE.NUMBER): StepState {\n const step = this.steps.toArray()[index];\n const isCurrentStep = this._isCurrentStep(index);\n\n return step._displayDefaultIndicatorType ? this._getDefaultIndicatorLogic(step, isCurrentStep) :\n this._getGuidelineLogic(step, isCurrentStep, state);\n }\n\n private _getDefaultIndicatorLogic(step: CdkStep, isCurrentStep: boolean): StepState {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (!step.completed || isCurrentStep) {\n return STEP_STATE.NUMBER;\n } else {\n return step.editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n }\n }\n\n private _getGuidelineLogic(\n step: CdkStep, isCurrentStep: boolean, state: StepState = STEP_STATE.NUMBER): StepState {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (step.completed && !isCurrentStep) {\n return STEP_STATE.DONE;\n } else if (step.completed && isCurrentStep) {\n return state;\n } else if (step.editable && isCurrentStep) {\n return STEP_STATE.EDIT;\n } else {\n return state;\n }\n }\n\n private _isCurrentStep(index: number) {\n return this._selectedIndex === index;\n }\n\n /** Returns the index of the currently-focused step header. */\n _getFocusIndex() {\n return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex;\n }\n\n private _updateSelectedItemIndex(newIndex: number): void {\n const 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\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 this._containsFocus() ? this._keyManager.setActiveItem(newIndex) :\n this._keyManager.updateActiveItemIndex(newIndex);\n\n this._selectedIndex = 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 (manager.activeItemIndex != null && !hasModifier &&\n (keyCode === SPACE || keyCode === ENTER)) {\n this.selectedIndex = manager.activeItemIndex;\n event.preventDefault();\n } else if (keyCode === HOME) {\n manager.setFirstItemActive();\n event.preventDefault();\n } else if (keyCode === END) {\n manager.setLastItemActive();\n event.preventDefault();\n } else {\n manager.onKeydown(event);\n }\n }\n\n private _anyControlsInvalidOrPending(index: number): boolean {\n const steps = this.steps.toArray();\n\n steps[this._selectedIndex].interacted = true;\n\n if (this._linear && index >= 0) {\n return steps.slice(0, index).some(step => {\n const control = step.stepControl;\n const isIncomplete =\n control ? (control.invalid || control.pending || !step.interacted) : !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 if (!this._document || !this._elementRef) {\n return false;\n }\n\n const stepperElement = this._elementRef.nativeElement;\n const focusedElement = this._document.activeElement;\n return stepperElement === focusedElement || stepperElement.contains(focusedElement);\n }\n}\n\n\n/**\n * Simplified representation of a FormControl from @angular/forms.\n * Used to avoid having to bring in @angular/forms for a single optional interface.\n * @docs-private\n */\ninterface FormControlLike {\n asyncValidator: () => any | null;\n dirty: boolean;\n disabled: boolean;\n enabled: boolean;\n errors: {[key: string]: any} | null;\n invalid: boolean;\n parent: any;\n pending: boolean;\n pristine: boolean;\n root: FormControlLike;\n status: string;\n statusChanges: Observable<any>;\n touched: boolean;\n untouched: boolean;\n updateOn: any;\n valid: boolean;\n validator: () => any | null;\n value: any;\n valueChanges: Observable<any>;\n clearAsyncValidators(): void;\n clearValidators(): void;\n disable(opts?: any): void;\n enable(opts?: any): void;\n get(path: (string | number)[] | string): FormControlLike | null;\n getError(errorCode: string, path?: (string | number)[] | string): any;\n hasError(errorCode: string, path?: (string | number)[] | string): boolean;\n markAllAsTouched(): void;\n markAsDirty(opts?: any): void;\n markAsPending(opts?: any): void;\n markAsPristine(opts?: any): void;\n markAsTouched(opts?: any): void;\n markAsUntouched(opts?: any): void;\n patchValue(value: any, options?: Object): void;\n reset(value?: any, options?: Object): void;\n setAsyncValidators(newValidator: () => any | (() => any)[] | null): void;\n setErrors(errors: {[key: string]: any} | null, opts?: any): void;\n setParent(parent: any): void;\n setValidators(newValidator: () => any | (() => any)[] | null): void;\n setValue(value: any, options?: Object): void;\n updateValueAndValidity(opts?: any): void;\n patchValue(value: any, options?: any): void;\n registerOnChange(fn: Function): void;\n registerOnDisabledChange(fn: (isDisabled: boolean) => void): void;\n reset(formState?: any, options?: any): void;\n setValue(value: any, options?: any): void;\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.io/license\n */\n\nimport {Directive, HostListener, Input} 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 }\n})\nexport class CdkStepperNext {\n /** Type of the next button. Defaults to \"submit\" if not specified. */\n @Input() type: string = 'submit';\n\n constructor(public _stepper: CdkStepper) {}\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n @HostListener('click')\n _handleClick() {\n this._stepper.next();\n }\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 }\n})\nexport class CdkStepperPrevious {\n /** Type of the previous button. Defaults to \"button\" if not specified. */\n @Input() type: string = 'button';\n\n constructor(public _stepper: CdkStepper) {}\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n @HostListener('click')\n _handleClick() {\n this._stepper.previous();\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.io/license\n */\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 {CdkStepHeader} from './step-header';\nimport {BidiModule} from '@angular/cdk/bidi';\n\n@NgModule({\n imports: [BidiModule, CommonModule],\n exports: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ],\n declarations: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ]\n})\nexport class CdkStepperModule {}\n"],"names":["CdkStepHeader","_elementRef","this","prototype","focus","nativeElement","type","Directive","args","selector","host","role","ElementRef","CdkStepLabel","template","TemplateRef","nextId","StepperSelectionEvent","STEP_STATE","NUMBER","EDIT","DONE","ERROR","STEPPER_GLOBAL_OPTIONS","InjectionToken","MAT_STEPPER_GLOBAL_OPTIONS","CdkStep","_stepper","stepperOptions","interacted","_editable","_optional","_completedOverride","_customError","_stepperOptions","_displayDefaultIndicatorType","displayDefaultIndicatorType","_showError","showError","Object","defineProperty","value","coerceBooleanProperty","_getDefaultCompleted","stepControl","valid","_getDefaultError","invalid","select","selected","reset","ngOnChanges","_stateChanged","Component","exportAs","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","propDecorators","Input","label","errorMessage","ariaLabel","ariaLabelledby","state","editable","optional","completed","hasError","CdkStepper","_dir","_changeDetectorRef","_selectedIndex","_groupId","_document","get","enumerable","configurable","set","newIndex","coerceNumberProperty","index","steps","length","Error","_anyControlsInvalidOrPending","toArray","_updateSelectedItemIndex","selectedIndex","_keyManager","FocusKeyManager","_stepHeader","withWrap","withVerticalOrientation","_orientation","obaservableOf","pipe","startWith","_layoutDirection","takeUntil","_destroyed","subscribe","changes","_this","Math","max","complete","forEach","position","step","isCurrentStep","_isCurrentStep","_getGuidelineLogic","stepsArray","previouslySelectedIndex","selectedStep","previouslySelectedStep","_containsFocus","setActiveItem","updateActiveItemIndex","hasModifier","hasModifierKey","event","keyCode","manager","SPACE","ENTER","HOME","setFirstItemActive","preventDefault","END","setLastItemActive","onKeydown","activeItemIndex","_linear","slice","some","control","pending","stepperElement","focusedElement","activeElement","decorators","undefined","Inject","DOCUMENT","linear","selectionChange","Output","CdkStepperNext","_handleClick","next","[type]","HostListener","CdkStepperPrevious","previous","CdkStepperModule","NgModule","imports","BidiModule","CommonModule","exports","declarations"],"mappings":"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"}
@@ -69,7 +69,8 @@ function createTouchEvent(type, pageX, pageY) {
69
69
  var event = document.createEvent('UIEvent');
70
70
  /** @type {?} */
71
71
  var touchDetails = { pageX: pageX, pageY: pageY };
72
- event.initUIEvent(type, true, true, window, 0);
72
+ // TS3.6 removes the initUIEvent method and suggests porting to "new UIEvent()".
73
+ ((/** @type {?} */ (event))).initUIEvent(type, true, true, window, 0);
73
74
  // Most of the browsers don't have a "initTouchEvent" method that can be used to define
74
75
  // the touch details.
75
76
  Object.defineProperties(event, {