@angular/cdk 7.2.2 → 7.3.0

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 (73) hide show
  1. package/bundles/cdk-drag-drop.umd.js +2798 -2597
  2. package/bundles/cdk-drag-drop.umd.js.map +1 -1
  3. package/bundles/cdk-drag-drop.umd.min.js +2 -2
  4. package/bundles/cdk-drag-drop.umd.min.js.map +1 -1
  5. package/bundles/cdk-overlay.umd.js +86 -15
  6. package/bundles/cdk-overlay.umd.js.map +1 -1
  7. package/bundles/cdk-overlay.umd.min.js +2 -2
  8. package/bundles/cdk-overlay.umd.min.js.map +1 -1
  9. package/bundles/cdk-stepper.umd.js +2 -2
  10. package/bundles/cdk-stepper.umd.js.map +1 -1
  11. package/bundles/cdk-stepper.umd.min.js.map +1 -1
  12. package/bundles/cdk.umd.js +1 -1
  13. package/bundles/cdk.umd.js.map +1 -1
  14. package/bundles/cdk.umd.min.js +1 -1
  15. package/bundles/cdk.umd.min.js.map +1 -1
  16. package/drag-drop/typings/directives/drag.d.ts +8 -4
  17. package/drag-drop/typings/directives/drop-list.d.ts +17 -3
  18. package/drag-drop/typings/drag-drop.d.ts +33 -0
  19. package/drag-drop/typings/drag-ref.d.ts +20 -13
  20. package/drag-drop/typings/drop-list-ref.d.ts +8 -4
  21. package/drag-drop/typings/index.d.ts +2 -2
  22. package/drag-drop/typings/index.metadata.json +1 -1
  23. package/drag-drop/typings/public-api.d.ts +4 -1
  24. package/esm2015/cdk.js +1 -1
  25. package/esm2015/cdk.js.map +1 -1
  26. package/esm2015/drag-drop.js +2213 -2058
  27. package/esm2015/drag-drop.js.map +1 -1
  28. package/esm2015/overlay.js +58 -11
  29. package/esm2015/overlay.js.map +1 -1
  30. package/esm2015/stepper.js +1 -1
  31. package/esm2015/stepper.js.map +1 -1
  32. package/esm5/cdk.es5.js +1 -1
  33. package/esm5/cdk.es5.js.map +1 -1
  34. package/esm5/drag-drop.es5.js +2792 -2594
  35. package/esm5/drag-drop.es5.js.map +1 -1
  36. package/esm5/overlay.es5.js +88 -17
  37. package/esm5/overlay.es5.js.map +1 -1
  38. package/esm5/stepper.es5.js +2 -2
  39. package/esm5/stepper.es5.js.map +1 -1
  40. package/overlay/typings/index.metadata.json +1 -1
  41. package/overlay/typings/overlay-ref.d.ts +4 -0
  42. package/overlay/typings/position/flexible-connected-position-strategy.d.ts +17 -4
  43. package/overlay/typings/position/overlay-position-builder.d.ts +3 -3
  44. package/package.json +4 -4
  45. package/stepper/typings/stepper.d.ts +1 -1
  46. package/typings/drag-drop/directives/drag.d.ts +8 -4
  47. package/typings/drag-drop/directives/drop-list.d.ts +17 -3
  48. package/typings/drag-drop/drag-drop.d.ts +33 -0
  49. package/typings/drag-drop/drag-ref.d.ts +20 -13
  50. package/typings/drag-drop/drop-list-ref.d.ts +8 -4
  51. package/typings/drag-drop/index.d.ts +2 -2
  52. package/typings/drag-drop/index.metadata.json +1 -1
  53. package/typings/drag-drop/public-api.d.ts +4 -1
  54. package/typings/esm5/drag-drop/directives/drag.d.ts +8 -4
  55. package/typings/esm5/drag-drop/directives/drop-list.d.ts +17 -3
  56. package/typings/esm5/drag-drop/drag-drop.d.ts +33 -0
  57. package/typings/esm5/drag-drop/drag-ref.d.ts +20 -13
  58. package/typings/esm5/drag-drop/drop-list-ref.d.ts +8 -4
  59. package/typings/esm5/drag-drop/index.d.ts +2 -2
  60. package/typings/esm5/drag-drop/index.metadata.json +1 -1
  61. package/typings/esm5/drag-drop/public-api.d.ts +4 -1
  62. package/typings/esm5/index.metadata.json +1 -1
  63. package/typings/esm5/overlay/index.metadata.json +1 -1
  64. package/typings/esm5/overlay/overlay-ref.d.ts +4 -0
  65. package/typings/esm5/overlay/position/flexible-connected-position-strategy.d.ts +17 -4
  66. package/typings/esm5/overlay/position/overlay-position-builder.d.ts +3 -3
  67. package/typings/esm5/stepper/stepper.d.ts +1 -1
  68. package/typings/index.metadata.json +1 -1
  69. package/typings/overlay/index.metadata.json +1 -1
  70. package/typings/overlay/overlay-ref.d.ts +4 -0
  71. package/typings/overlay/position/flexible-connected-position-strategy.d.ts +17 -4
  72. package/typings/overlay/position/overlay-position-builder.d.ts +3 -3
  73. package/typings/stepper/stepper.d.ts +1 -1
@@ -125,9 +125,9 @@ var CdkStep = /** @class */ (function () {
125
125
  this._showError = !!this._stepperOptions.showError;
126
126
  }
127
127
  Object.defineProperty(CdkStep.prototype, "editable", {
128
- /** Whether the user can return to this step once it has been marked as complted. */
128
+ /** Whether the user can return to this step once it has been marked as completed. */
129
129
  get: /**
130
- * Whether the user can return to this step once it has been marked as complted.
130
+ * Whether the user can return to this step once it has been marked as completed.
131
131
  * @return {?}
132
132
  */
133
133
  function () { return this._editable; },
@@ -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, Input} from '@angular/core';\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 '(click)': '_stepper.next()',\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\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n selector: 'button[cdkStepperPrevious]',\n host: {\n '(click)': '_stepper.previous()',\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","/**\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} 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 {AbstractControl} from '@angular/forms';\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) stepLabel: CdkStepLabel;\n\n /** Template for step content. */\n @ViewChild(TemplateRef) content: TemplateRef<any>;\n\n /** The top level abstract control of the step. */\n @Input() stepControl: AbstractControl;\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 complted. */\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 if (this.steps) {\n // Ensure that the index can't be out of bounds.\n if (index < 0 || index > this.steps.length - 1) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n\n if (this._selectedIndex != index &&\n !this._anyControlsInvalidOrPending(index) &&\n (index >= this._selectedIndex || this.steps.toArray()[index].editable)) {\n this._updateSelectedItemIndex(index);\n }\n } else {\n this._selectedIndex = index;\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 * @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","Input","Directive","Output","Inject","DOCUMENT","ElementRef","END","HOME","SPACE","ENTER","hasModifierKey","takeUntil","startWith","obaservableOf","FocusKeyManager","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-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, Input} from '@angular/core';\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 '(click)': '_stepper.next()',\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\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n selector: 'button[cdkStepperPrevious]',\n host: {\n '(click)': '_stepper.previous()',\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","/**\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} 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 {AbstractControl} from '@angular/forms';\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) stepLabel: CdkStepLabel;\n\n /** Template for step content. */\n @ViewChild(TemplateRef) content: TemplateRef<any>;\n\n /** The top level abstract control of the step. */\n @Input() stepControl: AbstractControl;\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 if (this.steps) {\n // Ensure that the index can't be out of bounds.\n if (index < 0 || index > this.steps.length - 1) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n\n if (this._selectedIndex != index &&\n !this._anyControlsInvalidOrPending(index) &&\n (index >= this._selectedIndex || this.steps.toArray()[index].editable)) {\n this._updateSelectedItemIndex(index);\n }\n } else {\n this._selectedIndex = index;\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 * @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","Input","Directive","Output","Inject","DOCUMENT","ElementRef","END","HOME","SPACE","ENTER","hasModifierKey","takeUntil","startWith","obaservableOf","FocusKeyManager","ChangeDetectionStrategy","ViewEncapsulation","Component","coerceBooleanProperty","InjectionToken","TemplateRef"],"mappings":"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"}
@@ -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} 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 {AbstractControl} from '@angular/forms';\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) stepLabel: CdkStepLabel;\n\n /** Template for step content. */\n @ViewChild(TemplateRef) content: TemplateRef<any>;\n\n /** The top level abstract control of the step. */\n @Input() stepControl: AbstractControl;\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 complted. */\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 if (this.steps) {\n // Ensure that the index can't be out of bounds.\n if (index < 0 || index > this.steps.length - 1) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n\n if (this._selectedIndex != index &&\n !this._anyControlsInvalidOrPending(index) &&\n (index >= this._selectedIndex || this.steps.toArray()[index].editable)) {\n this._updateSelectedItemIndex(index);\n }\n } else {\n this._selectedIndex = index;\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 * @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, Input} from '@angular/core';\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 '(click)': '_stepper.next()',\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\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n selector: 'button[cdkStepperPrevious]',\n host: {\n '(click)': '_stepper.previous()',\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","/**\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","index","steps","length","Error","_anyControlsInvalidOrPending","toArray","_updateSelectedItemIndex","selectedIndex","set","_keyManager","FocusKeyManager","_stepHeader","withWrap","withVerticalOrientation","_orientation","obaservableOf","pipe","startWith","_layoutDirection","takeUntil","_destroyed","subscribe","direction","_this","withHorizontalOrientation","updateActiveItemIndex","changes","Math","max","complete","forEach","step","position","isCurrentStep","_isCurrentStep","_getDefaultIndicatorLogic","_getGuidelineLogic","stepsArray","newIndex","previouslySelectedIndex","selectedStep","previouslySelectedStep","_containsFocus","setActiveItem","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","(click)","[type]","CdkStepperPrevious","CdkStepperModule","NgModule","imports","BidiModule","CommonModule","exports","declarations"],"mappings":"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"}
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} 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 {AbstractControl} from '@angular/forms';\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) stepLabel: CdkStepLabel;\n\n /** Template for step content. */\n @ViewChild(TemplateRef) content: TemplateRef<any>;\n\n /** The top level abstract control of the step. */\n @Input() stepControl: AbstractControl;\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 if (this.steps) {\n // Ensure that the index can't be out of bounds.\n if (index < 0 || index > this.steps.length - 1) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n\n if (this._selectedIndex != index &&\n !this._anyControlsInvalidOrPending(index) &&\n (index >= this._selectedIndex || this.steps.toArray()[index].editable)) {\n this._updateSelectedItemIndex(index);\n }\n } else {\n this._selectedIndex = index;\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 * @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, Input} from '@angular/core';\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 '(click)': '_stepper.next()',\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\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n selector: 'button[cdkStepperPrevious]',\n host: {\n '(click)': '_stepper.previous()',\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","/**\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","index","steps","length","Error","_anyControlsInvalidOrPending","toArray","_updateSelectedItemIndex","selectedIndex","set","_keyManager","FocusKeyManager","_stepHeader","withWrap","withVerticalOrientation","_orientation","obaservableOf","pipe","startWith","_layoutDirection","takeUntil","_destroyed","subscribe","direction","_this","withHorizontalOrientation","updateActiveItemIndex","changes","Math","max","complete","forEach","step","position","isCurrentStep","_isCurrentStep","_getDefaultIndicatorLogic","_getGuidelineLogic","stepsArray","newIndex","previouslySelectedIndex","selectedStep","previouslySelectedStep","_containsFocus","setActiveItem","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","(click)","[type]","CdkStepperPrevious","CdkStepperModule","NgModule","imports","BidiModule","CommonModule","exports","declarations"],"mappings":"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"}
@@ -19,7 +19,7 @@
19
19
  * Current version of the Angular Component Development Kit.
20
20
  * @type {?}
21
21
  */
22
- var VERSION = new core.Version('7.2.2');
22
+ var VERSION = new core.Version('7.3.0');
23
23
 
24
24
  exports.VERSION = VERSION;
25
25
 
@@ -1 +1 @@
1
- {"version":3,"file":"cdk.umd.js","sources":["../../src/cdk/version.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 {Version} from '@angular/core';\n\n/** Current version of the Angular Component Development Kit. */\nexport const VERSION = new Version('7.2.2');\n"],"names":["Version"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAWA,AAAA,IAAa,OAAO,GAAG,IAAIA,YAAO,CAAC,mBAAmB,CAAC;;;;;;;;;;;;"}
1
+ {"version":3,"file":"cdk.umd.js","sources":["../../src/cdk/version.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 {Version} from '@angular/core';\n\n/** Current version of the Angular Component Development Kit. */\nexport const VERSION = new Version('7.3.0');\n"],"names":["Version"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAWA,AAAA,IAAa,OAAO,GAAG,IAAIA,YAAO,CAAC,mBAAmB,CAAC;;;;;;;;;;;;"}
@@ -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,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core")):"function"==typeof define&&define.amd?define("@angular/cdk",["exports","@angular/core"],n):n((e.ng=e.ng||{},e.ng.cdk={}),e.ng.core)}(this,function(e,n){"use strict";var o=new n.Version("7.2.2");e.VERSION=o,Object.defineProperty(e,"__esModule",{value:!0})});
8
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core")):"function"==typeof define&&define.amd?define("@angular/cdk",["exports","@angular/core"],n):n((e.ng=e.ng||{},e.ng.cdk={}),e.ng.core)}(this,function(e,n){"use strict";var o=new n.Version("7.3.0");e.VERSION=o,Object.defineProperty(e,"__esModule",{value:!0})});
9
9
  //# sourceMappingURL=cdk.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cdk.umd.min.js","sources":["../../src/cdk/version.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 {Version} from '@angular/core';\n\n/** Current version of the Angular Component Development Kit. */\nexport const VERSION = new Version('7.2.2');\n"],"names":["VERSION","Version"],"mappings":";;;;;;;4QAWA,IAAaA,GAAU,GAAIC,GAAAA,QAAQ"}
1
+ {"version":3,"file":"cdk.umd.min.js","sources":["../../src/cdk/version.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 {Version} from '@angular/core';\n\n/** Current version of the Angular Component Development Kit. */\nexport const VERSION = new Version('7.3.0');\n"],"names":["VERSION","Version"],"mappings":";;;;;;;4QAWA,IAAaA,GAAU,GAAIC,GAAAA,QAAQ"}
@@ -17,6 +17,7 @@ import { CdkDragPreview } from './drag-preview';
17
17
  import { DragRef, DragRefConfig } from '../drag-ref';
18
18
  import { DropListRef } from '../drop-list-ref';
19
19
  import { CdkDropListInternal as CdkDropList } from './drop-list';
20
+ import { DragDrop } from '../drag-drop';
20
21
  /** Injection token that can be used to configure the behavior of `CdkDrag`. */
21
22
  export declare const CDK_DRAG_CONFIG: InjectionToken<DragRefConfig>;
22
23
  /** @docs-private */
@@ -30,9 +31,6 @@ export declare class CdkDrag<T = any> implements AfterViewInit, OnChanges, OnDes
30
31
  private _document;
31
32
  private _ngZone;
32
33
  private _viewContainerRef;
33
- private _viewportRuler;
34
- private _dragDropRegistry;
35
- private _config;
36
34
  private _dir;
37
35
  private _destroyed;
38
36
  /** Reference to the underlying drag instance. */
@@ -83,7 +81,13 @@ export declare class CdkDrag<T = any> implements AfterViewInit, OnChanges, OnDes
83
81
  /** Element that the draggable is attached to. */
84
82
  element: ElementRef<HTMLElement>,
85
83
  /** Droppable container that the draggable is a part of. */
86
- dropContainer: CdkDropList, _document: any, _ngZone: NgZone, _viewContainerRef: ViewContainerRef, _viewportRuler: ViewportRuler, _dragDropRegistry: DragDropRegistry<DragRef, DropListRef>, _config: DragRefConfig, _dir: Directionality);
84
+ dropContainer: CdkDropList, _document: any, _ngZone: NgZone, _viewContainerRef: ViewContainerRef, viewportRuler: ViewportRuler, dragDropRegistry: DragDropRegistry<DragRef, DropListRef>, config: DragRefConfig, _dir: Directionality,
85
+ /**
86
+ * @deprecated `viewportRuler` and `dragDropRegistry` parameters
87
+ * to be removed. Also `dragDrop` parameter to be made required.
88
+ * @breaking-change 8.0.0.
89
+ */
90
+ dragDrop?: DragDrop);
87
91
  /**
88
92
  * Returns the element that is being used as a placeholder
89
93
  * while the current element is being dragged.
@@ -5,7 +5,7 @@
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
- import { ElementRef, EventEmitter, OnDestroy, QueryList, ChangeDetectorRef } from '@angular/core';
8
+ import { ElementRef, EventEmitter, OnDestroy, QueryList, ChangeDetectorRef, AfterContentInit } from '@angular/core';
9
9
  import { Directionality } from '@angular/cdk/bidi';
10
10
  import { CdkDrag } from './drag';
11
11
  import { DragDropRegistry } from '../drag-drop-registry';
@@ -14,6 +14,7 @@ import { CdkDropListContainer } from '../drop-list-container';
14
14
  import { CdkDropListGroup } from './drop-list-group';
15
15
  import { DropListRef } from '../drop-list-ref';
16
16
  import { DragRef } from '../drag-ref';
17
+ import { DragDrop } from '../drag-drop';
17
18
  /**
18
19
  * Internal compile-time-only representation of a `CdkDropList`.
19
20
  * Used to avoid circular import issues between the `CdkDropList` and the `CdkDrag`.
@@ -22,10 +23,14 @@ import { DragRef } from '../drag-ref';
22
23
  export interface CdkDropListInternal extends CdkDropList {
23
24
  }
24
25
  /** Container that wraps a set of draggable items. */
25
- export declare class CdkDropList<T = any> implements CdkDropListContainer, OnDestroy {
26
+ export declare class CdkDropList<T = any> implements CdkDropListContainer, AfterContentInit, OnDestroy {
27
+ /** Element that the drop list is attached to. */
26
28
  element: ElementRef<HTMLElement>;
27
29
  private _changeDetectorRef;
30
+ private _dir?;
28
31
  private _group?;
32
+ /** Emits when the list has been destroyed. */
33
+ private _destroyed;
29
34
  /** Keeps track of the drop lists that are currently on the page. */
30
35
  private static _dropLists;
31
36
  /** Reference to the underlying drop list instance. */
@@ -70,7 +75,16 @@ export declare class CdkDropList<T = any> implements CdkDropListContainer, OnDes
70
75
  exited: EventEmitter<CdkDragExit<T>>;
71
76
  /** Emits as the user is swapping items while actively dragging. */
72
77
  sorted: EventEmitter<CdkDragSortEvent<T>>;
73
- constructor(element: ElementRef<HTMLElement>, dragDropRegistry: DragDropRegistry<DragRef, DropListRef>, _changeDetectorRef: ChangeDetectorRef, dir?: Directionality, _group?: CdkDropListGroup<CdkDropList<any>> | undefined, _document?: any);
78
+ constructor(
79
+ /** Element that the drop list is attached to. */
80
+ element: ElementRef<HTMLElement>, dragDropRegistry: DragDropRegistry<DragRef, DropListRef>, _changeDetectorRef: ChangeDetectorRef, _dir?: Directionality | undefined, _group?: CdkDropListGroup<CdkDropList<any>> | undefined, _document?: any,
81
+ /**
82
+ * @deprecated `dragDropRegistry` and `_document` parameters to be removed.
83
+ * Also `dragDrop` parameter to be made required.
84
+ * @breaking-change 8.0.0.
85
+ */
86
+ dragDrop?: DragDrop);
87
+ ngAfterContentInit(): void;
74
88
  ngOnDestroy(): void;
75
89
  /** Starts dragging an item. */
76
90
  start(): void;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { NgZone, ElementRef } from '@angular/core';
9
+ import { ViewportRuler } from '@angular/cdk/scrolling';
10
+ import { DragRef, DragRefConfig } from './drag-ref';
11
+ import { DropListRef } from './drop-list-ref';
12
+ import { DragDropRegistry } from './drag-drop-registry';
13
+ /**
14
+ * Service that allows for drag-and-drop functionality to be attached to DOM elements.
15
+ */
16
+ export declare class DragDrop {
17
+ private _document;
18
+ private _ngZone;
19
+ private _viewportRuler;
20
+ private _dragDropRegistry;
21
+ constructor(_document: any, _ngZone: NgZone, _viewportRuler: ViewportRuler, _dragDropRegistry: DragDropRegistry<DragRef, DropListRef>);
22
+ /**
23
+ * Turns an element into a draggable item.
24
+ * @param element Element to which to attach the dragging functionality.
25
+ * @param config Object used to configure the dragging behavior.
26
+ */
27
+ createDrag<T = any>(element: ElementRef<HTMLElement> | HTMLElement, config?: DragRefConfig): DragRef<T>;
28
+ /**
29
+ * Turns an element into a drop list.
30
+ * @param element Element to which to attach the drop list functionality.
31
+ */
32
+ createDropList<T = any>(element: ElementRef<HTMLElement> | HTMLElement): DropListRef<T>;
33
+ }
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { ElementRef, NgZone, ViewContainerRef, TemplateRef } from '@angular/core';
9
9
  import { ViewportRuler } from '@angular/cdk/scrolling';
10
- import { Directionality } from '@angular/cdk/bidi';
10
+ import { Direction } from '@angular/cdk/bidi';
11
11
  import { Subject, Observable } from 'rxjs';
12
12
  import { DropListRefInternal as DropListRef } from './drop-list-ref';
13
13
  import { DragDropRegistry } from './drag-drop-registry';
@@ -31,20 +31,22 @@ export interface DragRefConfig {
31
31
  */
32
32
  export interface DragRefInternal extends DragRef {
33
33
  }
34
+ /** Template that can be used to create a drag helper element (e.g. a preview or a placeholder). */
35
+ interface DragHelperTemplate<T = any> {
36
+ template: TemplateRef<T> | null;
37
+ viewContainer: ViewContainerRef;
38
+ context: T;
39
+ }
34
40
  /**
35
41
  * Reference to a draggable item. Used to manipulate or dispose of the item.
36
42
  * @docs-private
37
43
  */
38
44
  export declare class DragRef<T = any> {
45
+ private _config;
39
46
  private _document;
40
47
  private _ngZone;
41
- private _viewContainerRef;
42
48
  private _viewportRuler;
43
49
  private _dragDropRegistry;
44
- private _config;
45
- /** Droppable container that the draggable is a part of. */
46
- dropContainer?: DropListRef | undefined;
47
- private _dir?;
48
50
  /** Element displayed next to the user's pointer while the element is dragged. */
49
51
  private _preview;
50
52
  /** Reference to the view of the preview element. */
@@ -131,6 +133,10 @@ export declare class DragRef<T = any> {
131
133
  private _handles;
132
134
  /** Registered handles that are currently disabled. */
133
135
  private _disabledHandles;
136
+ /** Droppable container that the draggable is a part of. */
137
+ private _dropContainer?;
138
+ /** Layout direction of the item. */
139
+ private _direction;
134
140
  /** Axis along which dragging is locked. */
135
141
  lockAxis: 'x' | 'y';
136
142
  /** Whether starting to drag this element is disabled. */
@@ -187,9 +193,7 @@ export declare class DragRef<T = any> {
187
193
  }>;
188
194
  /** Arbitrary data that can be attached to the drag item. */
189
195
  data: T;
190
- constructor(element: ElementRef<HTMLElement> | HTMLElement, _document: Document, _ngZone: NgZone, _viewContainerRef: ViewContainerRef, _viewportRuler: ViewportRuler, _dragDropRegistry: DragDropRegistry<DragRef, DropListRef>, _config: DragRefConfig,
191
- /** Droppable container that the draggable is a part of. */
192
- dropContainer?: DropListRef | undefined, _dir?: Directionality | undefined);
196
+ constructor(element: ElementRef<HTMLElement> | HTMLElement, _config: DragRefConfig, _document: Document, _ngZone: NgZone, _viewportRuler: ViewportRuler, _dragDropRegistry: DragDropRegistry<DragRef, DropListRef>);
193
197
  /**
194
198
  * Returns the element that is being used as a placeholder
195
199
  * while the current element is being dragged.
@@ -202,15 +206,13 @@ export declare class DragRef<T = any> {
202
206
  /**
203
207
  * Registers the template that should be used for the drag preview.
204
208
  * @param template Template that from which to stamp out the preview.
205
- * @param context Variables to add to the template's context.
206
209
  */
207
- withPreviewTemplate(template: TemplateRef<any> | null, context?: any): this;
210
+ withPreviewTemplate(template: DragHelperTemplate | null): this;
208
211
  /**
209
212
  * Registers the template that should be used for the drag placeholder.
210
213
  * @param template Template that from which to stamp out the placeholder.
211
- * @param context Variables to add to the template's context.
212
214
  */
213
- withPlaceholderTemplate(template: TemplateRef<any> | null, context?: any): this;
215
+ withPlaceholderTemplate(template: DragHelperTemplate | null): this;
214
216
  /**
215
217
  * Sets an alternate drag root element. The root element is the element that will be moved as
216
218
  * the user is dragging. Passing an alternate root element is useful when trying to enable
@@ -237,6 +239,10 @@ export declare class DragRef<T = any> {
237
239
  * @param handle Handle element to be enabled.
238
240
  */
239
241
  enableHandle(handle: HTMLElement): void;
242
+ /** Sets the layout direction of the draggable item. */
243
+ withDirection(direction: Direction): this;
244
+ /** Sets the container that the item is part of. */
245
+ _withDropContainer(container: DropListRef): void;
240
246
  /** Unsubscribes from the global subscriptions. */
241
247
  private _removeSubscriptions;
242
248
  /** Destroys the preview element and its ViewRef. */
@@ -294,3 +300,4 @@ export declare class DragRef<T = any> {
294
300
  /** Removes the manually-added event listeners from the root element. */
295
301
  private _removeRootElementListeners;
296
302
  }
303
+ export {};
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { ElementRef } from '@angular/core';
9
9
  import { DragDropRegistry } from './drag-drop-registry';
10
- import { Directionality } from '@angular/cdk/bidi';
10
+ import { Direction } from '@angular/cdk/bidi';
11
11
  import { Subject } from 'rxjs';
12
12
  import { DragRefInternal as DragRef } from './drag-ref';
13
13
  /**
@@ -22,10 +22,10 @@ export interface DropListRefInternal extends DropListRef {
22
22
  * @docs-private
23
23
  */
24
24
  export declare class DropListRef<T = any> {
25
- element: ElementRef<HTMLElement>;
26
25
  private _dragDropRegistry;
27
- private _dir?;
28
26
  private _document;
27
+ /** Element that the drop list is attached to. */
28
+ readonly element: HTMLElement;
29
29
  /**
30
30
  * Unique ID for the drop list.
31
31
  * @deprecated No longer being used. To be removed.
@@ -101,7 +101,9 @@ export declare class DropListRef<T = any> {
101
101
  private _orientation;
102
102
  /** Connected siblings that currently have a dragged item. */
103
103
  private _activeSiblings;
104
- constructor(element: ElementRef<HTMLElement>, _dragDropRegistry: DragDropRegistry<DragRef, DropListRef>, _document: any, _dir?: Directionality | undefined);
104
+ /** Layout direction of the drop list. */
105
+ private _direction;
106
+ constructor(element: ElementRef<HTMLElement> | HTMLElement, _dragDropRegistry: DragDropRegistry<DragRef, DropListRef>, _document: any);
105
107
  /** Removes the drop list functionality from the DOM element. */
106
108
  dispose(): void;
107
109
  /** Whether an item from this list is currently being dragged. */
@@ -134,6 +136,8 @@ export declare class DropListRef<T = any> {
134
136
  * @param items Items that are a part of this list.
135
137
  */
136
138
  withItems(items: DragRef[]): this;
139
+ /** Sets the layout direction of the drop list. */
140
+ withDirection(direction: Direction): this;
137
141
  /**
138
142
  * Sets the containers that are connected to this one. When two or more containers are
139
143
  * connected, the user will be allowed to transfer items between them.
@@ -2,5 +2,5 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
- export { CDK_DRAG_PARENT as ɵa } from './drag-parent';
6
- export { DragRefConfig as ɵb } from './drag-ref';
5
+ export { CdkDropListInternal as ɵa } from './directives/drop-list';
6
+ export { CDK_DRAG_PARENT as ɵb } from './drag-parent';