@angular/cdk 8.1.3 → 8.1.4

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 (52) hide show
  1. package/bundles/cdk-overlay.umd.js +3 -0
  2. package/bundles/cdk-overlay.umd.js.map +1 -1
  3. package/bundles/cdk-overlay.umd.min.js +1 -1
  4. package/bundles/cdk-overlay.umd.min.js.map +1 -1
  5. package/bundles/cdk-portal.umd.js +84 -9
  6. package/bundles/cdk-portal.umd.js.map +1 -1
  7. package/bundles/cdk-portal.umd.min.js +1 -1
  8. package/bundles/cdk-portal.umd.min.js.map +1 -1
  9. package/bundles/cdk-stepper.umd.js +6 -6
  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/esm2015/cdk.js +1 -1
  17. package/esm2015/cdk.js.map +1 -1
  18. package/esm2015/overlay.js +3 -0
  19. package/esm2015/overlay.js.map +1 -1
  20. package/esm2015/portal.js +52 -6
  21. package/esm2015/portal.js.map +1 -1
  22. package/esm2015/stepper.js +2 -2
  23. package/esm2015/stepper.js.map +1 -1
  24. package/esm5/cdk.es5.js +1 -1
  25. package/esm5/cdk.es5.js.map +1 -1
  26. package/esm5/overlay.es5.js +3 -0
  27. package/esm5/overlay.es5.js.map +1 -1
  28. package/esm5/portal.es5.js +81 -6
  29. package/esm5/portal.es5.js.map +1 -1
  30. package/esm5/stepper.es5.js +6 -6
  31. package/esm5/stepper.es5.js.map +1 -1
  32. package/package.json +3 -3
  33. package/portal/typings/dom-portal-outlet.d.ts +6 -0
  34. package/portal/typings/index.metadata.json +1 -1
  35. package/portal/typings/portal-directives.d.ts +12 -0
  36. package/portal/typings/portal.d.ts +11 -0
  37. package/portal/typings/public-api.d.ts +0 -3
  38. package/schematics/tsconfig.tsbuildinfo +2896 -2896
  39. package/schematics/utils/version-agnostic-typescript.js +12 -4
  40. package/schematics/utils/version-agnostic-typescript.js.map +1 -1
  41. package/typings/esm5/index.metadata.json +1 -1
  42. package/typings/esm5/portal/dom-portal-outlet.d.ts +6 -0
  43. package/typings/esm5/portal/index.metadata.json +1 -1
  44. package/typings/esm5/portal/portal-directives.d.ts +12 -0
  45. package/typings/esm5/portal/portal.d.ts +11 -0
  46. package/typings/esm5/portal/public-api.d.ts +0 -3
  47. package/typings/index.metadata.json +1 -1
  48. package/typings/portal/dom-portal-outlet.d.ts +6 -0
  49. package/typings/portal/index.metadata.json +1 -1
  50. package/typings/portal/portal-directives.d.ts +12 -0
  51. package/typings/portal/portal.d.ts +11 -0
  52. package/typings/portal/public-api.d.ts +0 -3
package/esm2015/portal.js CHANGED
@@ -266,6 +266,13 @@ class BasePortalOutlet {
266
266
  }
267
267
  }
268
268
  }
269
+ /**
270
+ * @deprecated Use `BasePortalOutlet` instead.
271
+ * \@breaking-change 9.0.0
272
+ * @abstract
273
+ */
274
+ class BasePortalHost extends BasePortalOutlet {
275
+ }
269
276
 
270
277
  /**
271
278
  * @fileoverview added by tsickle
@@ -383,6 +390,12 @@ class DomPortalOutlet extends BasePortalOutlet {
383
390
  return (/** @type {?} */ (((/** @type {?} */ (componentRef.hostView))).rootNodes[0]));
384
391
  }
385
392
  }
393
+ /**
394
+ * @deprecated Use `DomPortalOutlet` instead.
395
+ * \@breaking-change 9.0.0
396
+ */
397
+ class DomPortalHost extends DomPortalOutlet {
398
+ }
386
399
 
387
400
  /**
388
401
  * @fileoverview added by tsickle
@@ -403,7 +416,7 @@ class CdkPortal extends TemplatePortal {
403
416
  }
404
417
  CdkPortal.decorators = [
405
418
  { type: Directive, args: [{
406
- selector: '[cdk-portal], [cdkPortal], [portal]',
419
+ selector: '[cdkPortal]',
407
420
  exportAs: 'cdkPortal',
408
421
  },] },
409
422
  ];
@@ -412,6 +425,22 @@ CdkPortal.ctorParameters = () => [
412
425
  { type: TemplateRef },
413
426
  { type: ViewContainerRef }
414
427
  ];
428
+ /**
429
+ * @deprecated Use `CdkPortal` instead.
430
+ * \@breaking-change 9.0.0
431
+ */
432
+ class TemplatePortalDirective extends CdkPortal {
433
+ }
434
+ TemplatePortalDirective.decorators = [
435
+ { type: Directive, args: [{
436
+ selector: '[cdk-portal], [portal]',
437
+ exportAs: 'cdkPortal',
438
+ providers: [{
439
+ provide: CdkPortal,
440
+ useExisting: TemplatePortalDirective
441
+ }]
442
+ },] },
443
+ ];
415
444
  /**
416
445
  * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be
417
446
  * directly attached to it, enabling declarative use.
@@ -537,8 +566,8 @@ class CdkPortalOutlet extends BasePortalOutlet {
537
566
  }
538
567
  CdkPortalOutlet.decorators = [
539
568
  { type: Directive, args: [{
540
- selector: '[cdkPortalOutlet], [cdkPortalHost], [portalHost]',
541
- exportAs: 'cdkPortalOutlet, cdkPortalHost',
569
+ selector: '[cdkPortalOutlet]',
570
+ exportAs: 'cdkPortalOutlet',
542
571
  inputs: ['portal: cdkPortalOutlet']
543
572
  },] },
544
573
  ];
@@ -550,12 +579,29 @@ CdkPortalOutlet.ctorParameters = () => [
550
579
  CdkPortalOutlet.propDecorators = {
551
580
  attached: [{ type: Output }]
552
581
  };
582
+ /**
583
+ * @deprecated Use `CdkPortalOutlet` instead.
584
+ * \@breaking-change 9.0.0
585
+ */
586
+ class PortalHostDirective extends CdkPortalOutlet {
587
+ }
588
+ PortalHostDirective.decorators = [
589
+ { type: Directive, args: [{
590
+ selector: '[cdkPortalHost], [portalHost]',
591
+ exportAs: 'cdkPortalHost',
592
+ inputs: ['portal: cdkPortalHost'],
593
+ providers: [{
594
+ provide: CdkPortalOutlet,
595
+ useExisting: PortalHostDirective
596
+ }]
597
+ },] },
598
+ ];
553
599
  class PortalModule {
554
600
  }
555
601
  PortalModule.decorators = [
556
602
  { type: NgModule, args: [{
557
- exports: [CdkPortal, CdkPortalOutlet],
558
- declarations: [CdkPortal, CdkPortalOutlet],
603
+ exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],
604
+ declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],
559
605
  },] },
560
606
  ];
561
607
 
@@ -603,5 +649,5 @@ class PortalInjector {
603
649
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
604
650
  */
605
651
 
606
- export { DomPortalOutlet as DomPortalHost, CdkPortalOutlet as PortalHostDirective, CdkPortal as TemplatePortalDirective, BasePortalOutlet as BasePortalHost, Portal, ComponentPortal, TemplatePortal, BasePortalOutlet, DomPortalOutlet, CdkPortal, CdkPortalOutlet, PortalModule, PortalInjector };
652
+ export { Portal, ComponentPortal, TemplatePortal, BasePortalOutlet, BasePortalHost, DomPortalOutlet, DomPortalHost, CdkPortal, TemplatePortalDirective, CdkPortalOutlet, PortalHostDirective, PortalModule, PortalInjector };
607
653
  //# sourceMappingURL=portal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"portal.js","sources":["../../../src/cdk/portal/portal-injector.ts","../../../src/cdk/portal/portal-directives.ts","../../../src/cdk/portal/dom-portal-outlet.ts","../../../src/cdk/portal/portal.ts","../../../src/cdk/portal/portal-errors.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 {Injector} from '@angular/core';\n\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n */\nexport class PortalInjector implements Injector {\n constructor(\n private _parentInjector: Injector,\n private _customTokens: WeakMap<any, any>) { }\n\n get(token: any, notFoundValue?: any): any {\n const value = this._customTokens.get(token);\n\n if (typeof value !== 'undefined') {\n return value;\n }\n\n return this._parentInjector.get<any>(token, notFoundValue);\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 {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n EmbeddedViewRef,\n EventEmitter,\n NgModule,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport {BasePortalOutlet, ComponentPortal, Portal, TemplatePortal} from './portal';\n\n\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\n@Directive({\n selector: '[cdk-portal], [cdkPortal], [portal]',\n exportAs: 'cdkPortal',\n})\nexport class CdkPortal extends TemplatePortal {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * Possible attached references to the CdkPortalOutlet.\n */\nexport type CdkPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;\n\n\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\n@Directive({\n selector: '[cdkPortalOutlet], [cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalOutlet, cdkPortalHost',\n inputs: ['portal: cdkPortalOutlet']\n})\nexport class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy {\n /** Whether the portal component is initialized. */\n private _isInitialized = false;\n\n /** Reference to the currently-attached component/view ref. */\n private _attachedRef: CdkPortalOutletAttachedRef;\n\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _viewContainerRef: ViewContainerRef) {\n super();\n }\n\n /** Portal associated with the Portal outlet. */\n get portal(): Portal<any> | null {\n return this._attachedPortal;\n }\n\n set portal(portal: Portal<any> | null) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n\n if (this.hasAttached()) {\n super.detach();\n }\n\n if (portal) {\n super.attach(portal);\n }\n\n this._attachedPortal = portal;\n }\n\n /** Emits when a portal is attached to the outlet. */\n @Output() attached: EventEmitter<CdkPortalOutletAttachedRef> =\n new EventEmitter<CdkPortalOutletAttachedRef>();\n\n /** Component or view reference that is attached to the portal. */\n get attachedRef(): CdkPortalOutletAttachedRef {\n return this._attachedRef;\n }\n\n ngOnInit() {\n this._isInitialized = true;\n }\n\n ngOnDestroy() {\n super.dispose();\n this._attachedPortal = null;\n this._attachedRef = null;\n }\n\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this);\n\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ?\n portal.viewContainerRef :\n this._viewContainerRef;\n\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n const ref = viewContainerRef.createComponent(\n componentFactory, viewContainerRef.length,\n portal.injector || viewContainerRef.injector);\n\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n\n return ref;\n }\n\n /**\n * Attach the given TemplatePortal to this PortlHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n super.setDisposeFn(() => this._viewContainerRef.clear());\n\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n\n return viewRef;\n }\n}\n\n\n@NgModule({\n exports: [CdkPortal, CdkPortalOutlet],\n declarations: [CdkPortal, CdkPortalOutlet],\n})\nexport class PortalModule {}\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 {\n ComponentFactoryResolver,\n ComponentRef,\n EmbeddedViewRef,\n ApplicationRef,\n Injector,\n} from '@angular/core';\nimport {BasePortalOutlet, ComponentPortal, TemplatePortal} from './portal';\n\n\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nexport class DomPortalOutlet extends BasePortalOutlet {\n constructor(\n /** Element into which the content is projected. */\n public outletElement: Element,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _appRef: ApplicationRef,\n private _defaultInjector: Injector) {\n super();\n }\n\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n let componentRef: ComponentRef<T>;\n\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n componentRef = portal.viewContainerRef.createComponent(\n componentFactory,\n portal.viewContainerRef.length,\n portal.injector || portal.viewContainerRef.injector);\n\n this.setDisposeFn(() => componentRef.destroy());\n } else {\n componentRef = componentFactory.create(portal.injector || this._defaultInjector);\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n this.outletElement.appendChild(this._getComponentRootNode(componentRef));\n\n return componentRef;\n }\n\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n viewRef.detectChanges();\n\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n\n this.setDisposeFn((() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n }));\n\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n\n /**\n * Clears out a portal from the DOM.\n */\n dispose(): void {\n super.dispose();\n if (this.outletElement.parentNode != null) {\n this.outletElement.parentNode.removeChild(this.outletElement);\n }\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\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 {\n TemplateRef,\n ViewContainerRef,\n ElementRef,\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport {\n throwNullPortalOutletError,\n throwPortalAlreadyAttachedError,\n throwNoPortalAttachedError,\n throwNullPortalError,\n throwPortalOutletAlreadyDisposedError,\n throwUnknownPortalTypeError\n} from './portal-errors';\n\n/** Interface that can be used to generically type a class. */\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nexport abstract class Portal<T> {\n private _attachedHost: PortalOutlet | null;\n\n /** Attach this portal to a host. */\n attach(host: PortalOutlet): T {\n if (host == null) {\n throwNullPortalOutletError();\n }\n\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n this._attachedHost = host;\n return <T> host.attach(this);\n }\n\n /** Detach this portal from its host */\n detach(): void {\n let host = this._attachedHost;\n\n if (host == null) {\n throwNoPortalAttachedError();\n } else {\n this._attachedHost = null;\n host.detach();\n }\n }\n\n /** Whether this portal is attached to a host. */\n get isAttached(): boolean {\n return this._attachedHost != null;\n }\n\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host: PortalOutlet | null) {\n this._attachedHost = host;\n }\n}\n\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal<T> extends Portal<ComponentRef<T>> {\n /** The type of the component that will be instantiated for attachment. */\n component: ComponentType<T>;\n\n /**\n * [Optional] Where the attached component should live in Angular's *logical* component tree.\n * This is different from where the component *renders*, which is determined by the PortalOutlet.\n * The origin is necessary when the host is outside of the Angular application context.\n */\n viewContainerRef?: ViewContainerRef | null;\n\n /** [Optional] Injector used for the instantiation of the component. */\n injector?: Injector | null;\n\n /**\n * Alternate `ComponentFactoryResolver` to use when resolving the associated component.\n * Defaults to using the resolver from the outlet that the portal is attached to.\n */\n componentFactoryResolver?: ComponentFactoryResolver | null;\n\n constructor(\n component: ComponentType<T>,\n viewContainerRef?: ViewContainerRef | null,\n injector?: Injector | null,\n componentFactoryResolver?: ComponentFactoryResolver | null) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.componentFactoryResolver = componentFactoryResolver;\n }\n}\n\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nexport class TemplatePortal<C = any> extends Portal<EmbeddedViewRef<C>> {\n /** The embedded template that will be used to instantiate an embedded View in the host. */\n templateRef: TemplateRef<C>;\n\n /** Reference to the ViewContainer into which the template will be stamped out. */\n viewContainerRef: ViewContainerRef;\n\n /** Contextual data to be passed in to the embedded view. */\n context: C | undefined;\n\n constructor(template: TemplateRef<C>, viewContainerRef: ViewContainerRef, context?: C) {\n super();\n this.templateRef = template;\n this.viewContainerRef = viewContainerRef;\n this.context = context;\n }\n\n get origin(): ElementRef {\n return this.templateRef.elementRef;\n }\n\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n attach(host: PortalOutlet, context: C | undefined = this.context): EmbeddedViewRef<C> {\n this.context = context;\n return super.attach(host);\n }\n\n detach(): void {\n this.context = undefined;\n return super.detach();\n }\n}\n\n\n/** A `PortalOutlet` is an space that can contain a single `Portal`. */\nexport interface PortalOutlet {\n /** Attaches a portal to this outlet. */\n attach(portal: Portal<any>): any;\n\n /** Detaches the currently attached portal from this outlet. */\n detach(): any;\n\n /** Performs cleanup before the outlet is destroyed. */\n dispose(): void;\n\n /** Whether there is currently a portal attached to this outlet. */\n hasAttached(): boolean;\n}\n\n\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nexport abstract class BasePortalOutlet implements PortalOutlet {\n /** The portal currently attached to the host. */\n protected _attachedPortal: Portal<any> | null;\n\n /** A function that will permanently dispose this host. */\n private _disposeFn: (() => void) | null;\n\n /** Whether this host has already been permanently disposed. */\n private _isDisposed: boolean = false;\n\n /** Whether this host has an attached portal. */\n hasAttached(): boolean {\n return !!this._attachedPortal;\n }\n\n attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;\n attach(portal: any): any;\n\n /** Attaches a portal. */\n attach(portal: Portal<any>): any {\n if (!portal) {\n throwNullPortalError();\n }\n\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n } else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n }\n\n throwUnknownPortalTypeError();\n }\n\n abstract attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n\n abstract attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n\n /** Detaches a previously attached portal. */\n detach(): void {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n\n this._invokeDisposeFn();\n }\n\n /** Permanently dispose of this portal host. */\n dispose(): void {\n if (this.hasAttached()) {\n this.detach();\n }\n\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n\n /** @docs-private */\n setDisposeFn(fn: () => void) {\n this._disposeFn = fn;\n }\n\n private _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\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\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nexport function throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nexport function throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nexport function throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nexport function throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nexport function throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nexport function throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portal.js","sources":["../../../src/cdk/portal/portal-injector.ts","../../../src/cdk/portal/portal-directives.ts","../../../src/cdk/portal/dom-portal-outlet.ts","../../../src/cdk/portal/portal.ts","../../../src/cdk/portal/portal-errors.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 {Injector} from '@angular/core';\n\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n */\nexport class PortalInjector implements Injector {\n constructor(\n private _parentInjector: Injector,\n private _customTokens: WeakMap<any, any>) { }\n\n get(token: any, notFoundValue?: any): any {\n const value = this._customTokens.get(token);\n\n if (typeof value !== 'undefined') {\n return value;\n }\n\n return this._parentInjector.get<any>(token, notFoundValue);\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 {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n EmbeddedViewRef,\n EventEmitter,\n NgModule,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport {BasePortalOutlet, ComponentPortal, Portal, TemplatePortal} from './portal';\n\n\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\n@Directive({\n selector: '[cdkPortal]',\n exportAs: 'cdkPortal',\n})\nexport class CdkPortal extends TemplatePortal {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * @deprecated Use `CdkPortal` instead.\n * @breaking-change 9.0.0\n */\n@Directive({\n selector: '[cdk-portal], [portal]',\n exportAs: 'cdkPortal',\n providers: [{\n provide: CdkPortal,\n useExisting: TemplatePortalDirective\n }]\n})\nexport class TemplatePortalDirective extends CdkPortal {}\n\n/**\n * Possible attached references to the CdkPortalOutlet.\n */\nexport type CdkPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;\n\n\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\n@Directive({\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n inputs: ['portal: cdkPortalOutlet']\n})\nexport class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy {\n /** Whether the portal component is initialized. */\n private _isInitialized = false;\n\n /** Reference to the currently-attached component/view ref. */\n private _attachedRef: CdkPortalOutletAttachedRef;\n\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _viewContainerRef: ViewContainerRef) {\n super();\n }\n\n /** Portal associated with the Portal outlet. */\n get portal(): Portal<any> | null {\n return this._attachedPortal;\n }\n\n set portal(portal: Portal<any> | null) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n\n if (this.hasAttached()) {\n super.detach();\n }\n\n if (portal) {\n super.attach(portal);\n }\n\n this._attachedPortal = portal;\n }\n\n /** Emits when a portal is attached to the outlet. */\n @Output() attached: EventEmitter<CdkPortalOutletAttachedRef> =\n new EventEmitter<CdkPortalOutletAttachedRef>();\n\n /** Component or view reference that is attached to the portal. */\n get attachedRef(): CdkPortalOutletAttachedRef {\n return this._attachedRef;\n }\n\n ngOnInit() {\n this._isInitialized = true;\n }\n\n ngOnDestroy() {\n super.dispose();\n this._attachedPortal = null;\n this._attachedRef = null;\n }\n\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this);\n\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ?\n portal.viewContainerRef :\n this._viewContainerRef;\n\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n const ref = viewContainerRef.createComponent(\n componentFactory, viewContainerRef.length,\n portal.injector || viewContainerRef.injector);\n\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n\n return ref;\n }\n\n /**\n * Attach the given TemplatePortal to this PortlHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n super.setDisposeFn(() => this._viewContainerRef.clear());\n\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n\n return viewRef;\n }\n}\n\n/**\n * @deprecated Use `CdkPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\n@Directive({\n selector: '[cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalHost',\n inputs: ['portal: cdkPortalHost'],\n providers: [{\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective\n }]\n})\nexport class PortalHostDirective extends CdkPortalOutlet {}\n\n\n@NgModule({\n exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n})\nexport class PortalModule {}\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 {\n ComponentFactoryResolver,\n ComponentRef,\n EmbeddedViewRef,\n ApplicationRef,\n Injector,\n} from '@angular/core';\nimport {BasePortalOutlet, ComponentPortal, TemplatePortal} from './portal';\n\n\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nexport class DomPortalOutlet extends BasePortalOutlet {\n constructor(\n /** Element into which the content is projected. */\n public outletElement: Element,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _appRef: ApplicationRef,\n private _defaultInjector: Injector) {\n super();\n }\n\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n let componentRef: ComponentRef<T>;\n\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n componentRef = portal.viewContainerRef.createComponent(\n componentFactory,\n portal.viewContainerRef.length,\n portal.injector || portal.viewContainerRef.injector);\n\n this.setDisposeFn(() => componentRef.destroy());\n } else {\n componentRef = componentFactory.create(portal.injector || this._defaultInjector);\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n this.outletElement.appendChild(this._getComponentRootNode(componentRef));\n\n return componentRef;\n }\n\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n viewRef.detectChanges();\n\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n\n this.setDisposeFn((() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n }));\n\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n\n /**\n * Clears out a portal from the DOM.\n */\n dispose(): void {\n super.dispose();\n if (this.outletElement.parentNode != null) {\n this.outletElement.parentNode.removeChild(this.outletElement);\n }\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n}\n\n/**\n * @deprecated Use `DomPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport class DomPortalHost extends DomPortalOutlet {}\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 {\n TemplateRef,\n ViewContainerRef,\n ElementRef,\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n ComponentFactoryResolver,\n} from '@angular/core';\nimport {\n throwNullPortalOutletError,\n throwPortalAlreadyAttachedError,\n throwNoPortalAttachedError,\n throwNullPortalError,\n throwPortalOutletAlreadyDisposedError,\n throwUnknownPortalTypeError\n} from './portal-errors';\n\n/** Interface that can be used to generically type a class. */\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nexport abstract class Portal<T> {\n private _attachedHost: PortalOutlet | null;\n\n /** Attach this portal to a host. */\n attach(host: PortalOutlet): T {\n if (host == null) {\n throwNullPortalOutletError();\n }\n\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n this._attachedHost = host;\n return <T> host.attach(this);\n }\n\n /** Detach this portal from its host */\n detach(): void {\n let host = this._attachedHost;\n\n if (host == null) {\n throwNoPortalAttachedError();\n } else {\n this._attachedHost = null;\n host.detach();\n }\n }\n\n /** Whether this portal is attached to a host. */\n get isAttached(): boolean {\n return this._attachedHost != null;\n }\n\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host: PortalOutlet | null) {\n this._attachedHost = host;\n }\n}\n\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal<T> extends Portal<ComponentRef<T>> {\n /** The type of the component that will be instantiated for attachment. */\n component: ComponentType<T>;\n\n /**\n * [Optional] Where the attached component should live in Angular's *logical* component tree.\n * This is different from where the component *renders*, which is determined by the PortalOutlet.\n * The origin is necessary when the host is outside of the Angular application context.\n */\n viewContainerRef?: ViewContainerRef | null;\n\n /** [Optional] Injector used for the instantiation of the component. */\n injector?: Injector | null;\n\n /**\n * Alternate `ComponentFactoryResolver` to use when resolving the associated component.\n * Defaults to using the resolver from the outlet that the portal is attached to.\n */\n componentFactoryResolver?: ComponentFactoryResolver | null;\n\n constructor(\n component: ComponentType<T>,\n viewContainerRef?: ViewContainerRef | null,\n injector?: Injector | null,\n componentFactoryResolver?: ComponentFactoryResolver | null) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.componentFactoryResolver = componentFactoryResolver;\n }\n}\n\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nexport class TemplatePortal<C = any> extends Portal<EmbeddedViewRef<C>> {\n /** The embedded template that will be used to instantiate an embedded View in the host. */\n templateRef: TemplateRef<C>;\n\n /** Reference to the ViewContainer into which the template will be stamped out. */\n viewContainerRef: ViewContainerRef;\n\n /** Contextual data to be passed in to the embedded view. */\n context: C | undefined;\n\n constructor(template: TemplateRef<C>, viewContainerRef: ViewContainerRef, context?: C) {\n super();\n this.templateRef = template;\n this.viewContainerRef = viewContainerRef;\n this.context = context;\n }\n\n get origin(): ElementRef {\n return this.templateRef.elementRef;\n }\n\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n attach(host: PortalOutlet, context: C | undefined = this.context): EmbeddedViewRef<C> {\n this.context = context;\n return super.attach(host);\n }\n\n detach(): void {\n this.context = undefined;\n return super.detach();\n }\n}\n\n\n/** A `PortalOutlet` is an space that can contain a single `Portal`. */\nexport interface PortalOutlet {\n /** Attaches a portal to this outlet. */\n attach(portal: Portal<any>): any;\n\n /** Detaches the currently attached portal from this outlet. */\n detach(): any;\n\n /** Performs cleanup before the outlet is destroyed. */\n dispose(): void;\n\n /** Whether there is currently a portal attached to this outlet. */\n hasAttached(): boolean;\n}\n\n/**\n * @deprecated Use `PortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport type PortalHost = PortalOutlet;\n\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nexport abstract class BasePortalOutlet implements PortalOutlet {\n /** The portal currently attached to the host. */\n protected _attachedPortal: Portal<any> | null;\n\n /** A function that will permanently dispose this host. */\n private _disposeFn: (() => void) | null;\n\n /** Whether this host has already been permanently disposed. */\n private _isDisposed: boolean = false;\n\n /** Whether this host has an attached portal. */\n hasAttached(): boolean {\n return !!this._attachedPortal;\n }\n\n attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;\n attach(portal: any): any;\n\n /** Attaches a portal. */\n attach(portal: Portal<any>): any {\n if (!portal) {\n throwNullPortalError();\n }\n\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n } else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n }\n\n throwUnknownPortalTypeError();\n }\n\n abstract attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n\n abstract attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n\n /** Detaches a previously attached portal. */\n detach(): void {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n\n this._invokeDisposeFn();\n }\n\n /** Permanently dispose of this portal host. */\n dispose(): void {\n if (this.hasAttached()) {\n this.detach();\n }\n\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n\n /** @docs-private */\n setDisposeFn(fn: () => void) {\n this._disposeFn = fn;\n }\n\n private _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n\n/**\n * @deprecated Use `BasePortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport abstract class BasePortalHost extends BasePortalOutlet {}\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\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nexport function throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nexport function throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nexport function throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nexport function throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nexport function throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nexport function throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n"],"names":[],"mappings":"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"}
@@ -649,7 +649,7 @@ class CdkStepperNext {
649
649
  }
650
650
  // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.
651
651
  // In Ivy the `host` bindings will be merged when this class is extended, whereas in
652
- // ViewEngine they're overwritte.
652
+ // ViewEngine they're overwritten.
653
653
  // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.
654
654
  // tslint:disable-next-line:no-host-decorator-in-concrete
655
655
  /**
@@ -691,7 +691,7 @@ class CdkStepperPrevious {
691
691
  }
692
692
  // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.
693
693
  // In Ivy the `host` bindings will be merged when this class is extended, whereas in
694
- // ViewEngine they're overwritte.
694
+ // ViewEngine they're overwritten.
695
695
  // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.
696
696
  // tslint:disable-next-line:no-host-decorator-in-concrete
697
697
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"stepper.js","sources":["../../../src/cdk/stepper/stepper-module.ts","../../../src/cdk/stepper/stepper-button.ts","../../../src/cdk/stepper/stepper.ts","../../../src/cdk/stepper/step-header.ts","../../../src/cdk/stepper/step-label.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {CdkStepper, CdkStep} from './stepper';\nimport {CommonModule} from '@angular/common';\nimport {CdkStepLabel} from './step-label';\nimport {CdkStepperNext, CdkStepperPrevious} from './stepper-button';\nimport {CdkStepHeader} from './step-header';\nimport {BidiModule} from '@angular/cdk/bidi';\n\n@NgModule({\n imports: [BidiModule, CommonModule],\n exports: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ],\n declarations: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ]\n})\nexport class CdkStepperModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, HostListener, Input} from '@angular/core';\n\nimport {CdkStepper} from './stepper';\n\n/** Button that moves to the next step in a stepper workflow. */\n@Directive({\n selector: 'button[cdkStepperNext]',\n host: {\n '[type]': 'type',\n }\n})\nexport class CdkStepperNext {\n /** Type of the next button. Defaults to \"submit\" if not specified. */\n @Input() type: string = 'submit';\n\n constructor(public _stepper: CdkStepper) {}\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritte.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n @HostListener('click')\n _handleClick() {\n this._stepper.next();\n }\n}\n\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n selector: 'button[cdkStepperPrevious]',\n host: {\n '[type]': 'type',\n }\n})\nexport class CdkStepperPrevious {\n /** Type of the previous button. Defaults to \"button\" if not specified. */\n @Input() type: string = 'button';\n\n constructor(public _stepper: CdkStepper) {}\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritte.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n @HostListener('click')\n _handleClick() {\n this._stepper.previous();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {FocusableOption, FocusKeyManager} from '@angular/cdk/a11y';\nimport {Direction, Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty, coerceNumberProperty} from '@angular/cdk/coercion';\nimport {END, ENTER, HOME, SPACE, hasModifierKey} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n EventEmitter,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n InjectionToken,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {CdkStepLabel} from './step-label';\nimport {Observable, Subject, of as obaservableOf} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\nimport {CdkStepHeader} from './step-header';\n\n/** Used to generate unique ID for each stepper component. */\nlet nextId = 0;\n\n/**\n * Position state of the content of each step in stepper that is used for transitioning\n * the content into correct position upon step selection change.\n */\nexport type StepContentPositionState = 'previous' | 'current' | 'next';\n\n/** Possible orientation of a stepper. */\nexport type StepperOrientation = 'horizontal' | 'vertical';\n\n/** Change event emitted on selection changes. */\nexport class StepperSelectionEvent {\n /** Index of the step now selected. */\n selectedIndex: number;\n\n /** Index of the step previously selected. */\n previouslySelectedIndex: number;\n\n /** The step instance now selected. */\n selectedStep: CdkStep;\n\n /** The step instance previously selected. */\n previouslySelectedStep: CdkStep;\n}\n\n/** The state of each step. */\nexport type StepState = 'number' | 'edit' | 'done' | 'error' | string;\n\n/** Enum to represent the different states of the steps. */\nexport const STEP_STATE = {\n NUMBER: 'number',\n EDIT: 'edit',\n DONE: 'done',\n ERROR: 'error'\n};\n\n/** InjectionToken that can be used to specify the global stepper options. */\nexport const STEPPER_GLOBAL_OPTIONS =\n new InjectionToken<StepperOptions>('STEPPER_GLOBAL_OPTIONS');\n\n/**\n * InjectionToken that can be used to specify the global stepper options.\n * @deprecated Use `STEPPER_GLOBAL_OPTIONS` instead.\n * @breaking-change 8.0.0.\n */\nexport const MAT_STEPPER_GLOBAL_OPTIONS = STEPPER_GLOBAL_OPTIONS;\n\n/** Configurable options for stepper. */\nexport interface StepperOptions {\n /**\n * Whether the stepper should display an error state or not.\n * Default behavior is assumed to be false.\n */\n showError?: boolean;\n\n /**\n * Whether the stepper should display the default indicator type\n * or not.\n * Default behavior is assumed to be true.\n */\n displayDefaultIndicatorType?: boolean;\n}\n\n@Component({\n moduleId: module.id,\n selector: 'cdk-step',\n exportAs: 'cdkStep',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CdkStep implements OnChanges {\n private _stepperOptions: StepperOptions;\n _showError: boolean;\n _displayDefaultIndicatorType: boolean;\n\n /** Template for step label if it exists. */\n @ContentChild(CdkStepLabel, {static: false}) stepLabel: CdkStepLabel;\n\n /** Template for step content. */\n @ViewChild(TemplateRef, {static: true}) content: TemplateRef<any>;\n\n /** The top level abstract control of the step. */\n @Input() stepControl: FormControlLike;\n\n /** Whether user has seen the expanded step content or not. */\n interacted = false;\n\n /** Plain text label of the step. */\n @Input() label: string;\n\n /** Error message to display when there's an error. */\n @Input() errorMessage: string;\n\n /** Aria label for the tab. */\n @Input('aria-label') ariaLabel: string;\n\n /**\n * Reference to the element that the tab is labelled by.\n * Will be cleared if `aria-label` is set at the same time.\n */\n @Input('aria-labelledby') ariaLabelledby: string;\n\n /** State of the step. */\n @Input() state: StepState;\n\n /** Whether the user can return to this step once it has been marked as completed. */\n @Input()\n get editable(): boolean { return this._editable; }\n set editable(value: boolean) {\n this._editable = coerceBooleanProperty(value);\n }\n private _editable = true;\n\n /** Whether the completion of step is optional. */\n @Input()\n get optional(): boolean { return this._optional; }\n set optional(value: boolean) {\n this._optional = coerceBooleanProperty(value);\n }\n private _optional = false;\n\n /** Whether step is marked as completed. */\n @Input()\n get completed(): boolean {\n return this._customCompleted == null ? this._getDefaultCompleted() : this._customCompleted;\n }\n set completed(value: boolean) {\n this._customCompleted = coerceBooleanProperty(value);\n }\n private _customCompleted: boolean | null = null;\n\n private _getDefaultCompleted() {\n return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n }\n\n /** Whether step has an error. */\n @Input()\n get hasError(): boolean {\n return this._customError == null ? this._getDefaultError() : this._customError;\n }\n set hasError(value: boolean) {\n this._customError = coerceBooleanProperty(value);\n }\n private _customError: boolean | null = null;\n\n private _getDefaultError() {\n return this.stepControl && this.stepControl.invalid && this.interacted;\n }\n\n /** @breaking-change 8.0.0 remove the `?` after `stepperOptions` */\n constructor(\n @Inject(forwardRef(() => CdkStepper)) private _stepper: CdkStepper,\n @Optional() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions?: StepperOptions) {\n this._stepperOptions = stepperOptions ? stepperOptions : {};\n this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;\n this._showError = !!this._stepperOptions.showError;\n }\n\n /** Selects this step component. */\n select(): void {\n this._stepper.selected = this;\n }\n\n /** Resets the step to its initial state. Note that this includes resetting form data. */\n reset(): void {\n this.interacted = false;\n\n if (this._customCompleted != null) {\n this._customCompleted = false;\n }\n\n if (this._customError != null) {\n this._customError = false;\n }\n\n if (this.stepControl) {\n this.stepControl.reset();\n }\n }\n\n ngOnChanges() {\n // Since basically all inputs of the MatStep get proxied through the view down to the\n // underlying MatStepHeader, we have to make sure that change detection runs correctly.\n this._stepper._stateChanged();\n }\n}\n\n@Directive({\n selector: '[cdkStepper]',\n exportAs: 'cdkStepper',\n})\nexport class CdkStepper implements AfterViewInit, OnDestroy {\n /** Emits when the component is destroyed. */\n protected _destroyed = new Subject<void>();\n\n /** Used for managing keyboard focus. */\n private _keyManager: FocusKeyManager<FocusableOption>;\n\n /**\n * @breaking-change 8.0.0 Remove `| undefined` once the `_document`\n * constructor param is required.\n */\n private _document: Document | undefined;\n\n /**\n * The list of step components that the stepper is holding.\n * @deprecated use `steps` instead\n * @breaking-change 9.0.0 remove this property\n */\n @ContentChildren(CdkStep) _steps: QueryList<CdkStep>;\n\n /** The list of step components that the stepper is holding. */\n get steps(): QueryList<CdkStep> {\n return this._steps;\n }\n\n /**\n * The list of step headers of the steps in the stepper.\n * @deprecated Type to be changed to `QueryList<CdkStepHeader>`.\n * @breaking-change 8.0.0\n */\n @ContentChildren(CdkStepHeader) _stepHeader: QueryList<FocusableOption>;\n\n /** Whether the validity of previous steps should be checked or not. */\n @Input()\n get linear(): boolean { return this._linear; }\n set linear(value: boolean) { this._linear = coerceBooleanProperty(value); }\n private _linear = false;\n\n /** The index of the selected step. */\n @Input()\n get selectedIndex() { return this._selectedIndex; }\n set selectedIndex(index: number) {\n const newIndex = coerceNumberProperty(index);\n\n if (this.steps) {\n // Ensure that the index can't be out of bounds.\n if (newIndex < 0 || newIndex > this.steps.length - 1) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n\n if (this._selectedIndex != newIndex &&\n !this._anyControlsInvalidOrPending(newIndex) &&\n (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {\n this._updateSelectedItemIndex(index);\n }\n } else {\n this._selectedIndex = newIndex;\n }\n }\n private _selectedIndex = 0;\n\n /** The step that is selected. */\n @Input()\n get selected(): CdkStep {\n // @breaking-change 8.0.0 Change return type to `CdkStep | undefined`.\n return this.steps ? this.steps.toArray()[this.selectedIndex] : undefined!;\n }\n set selected(step: CdkStep) {\n this.selectedIndex = this.steps ? this.steps.toArray().indexOf(step) : -1;\n }\n\n /** Event emitted when the selected step has changed. */\n @Output() selectionChange: EventEmitter<StepperSelectionEvent>\n = new EventEmitter<StepperSelectionEvent>();\n\n /** Used to track unique ID for each stepper component. */\n _groupId: number;\n\n protected _orientation: StepperOrientation = 'horizontal';\n\n constructor(\n @Optional() private _dir: Directionality,\n private _changeDetectorRef: ChangeDetectorRef,\n // @breaking-change 8.0.0 `_elementRef` and `_document` parameters to become required.\n private _elementRef?: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) _document?: any) {\n this._groupId = nextId++;\n this._document = _document;\n }\n\n ngAfterViewInit() {\n // Note that while the step headers are content children by default, any components that\n // extend this one might have them as view chidren. We initialize the keyboard handling in\n // AfterViewInit so we're guaranteed for both view and content children to be defined.\n this._keyManager = new FocusKeyManager<FocusableOption>(this._stepHeader)\n .withWrap()\n .withVerticalOrientation(this._orientation === 'vertical');\n\n (this._dir ? this._dir.change as Observable<Direction> : obaservableOf<Direction>())\n .pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed))\n .subscribe(direction => this._keyManager.withHorizontalOrientation(direction));\n\n this._keyManager.updateActiveItemIndex(this._selectedIndex);\n\n this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (!this.selected) {\n this._selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n });\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n /** Selects and focuses the next step in list. */\n next(): void {\n this.selectedIndex = Math.min(this._selectedIndex + 1, this.steps.length - 1);\n }\n\n /** Selects and focuses the previous step in list. */\n previous(): void {\n this.selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n\n /** Resets the stepper to its initial state. Note that this includes clearing form data. */\n reset(): void {\n this._updateSelectedItemIndex(0);\n this.steps.forEach(step => step.reset());\n this._stateChanged();\n }\n\n /** Returns a unique id for each step label element. */\n _getStepLabelId(i: number): string {\n return `cdk-step-label-${this._groupId}-${i}`;\n }\n\n /** Returns unique id for each step content element. */\n _getStepContentId(i: number): string {\n return `cdk-step-content-${this._groupId}-${i}`;\n }\n\n /** Marks the component to be change detected. */\n _stateChanged() {\n this._changeDetectorRef.markForCheck();\n }\n\n /** Returns position state of the step with the given index. */\n _getAnimationDirection(index: number): StepContentPositionState {\n const position = index - this._selectedIndex;\n if (position < 0) {\n return this._layoutDirection() === 'rtl' ? 'next' : 'previous';\n } else if (position > 0) {\n return this._layoutDirection() === 'rtl' ? 'previous' : 'next';\n }\n return 'current';\n }\n\n /** Returns the type of icon to be displayed. */\n _getIndicatorType(index: number, state: StepState = STEP_STATE.NUMBER): StepState {\n const step = this.steps.toArray()[index];\n const isCurrentStep = this._isCurrentStep(index);\n\n return step._displayDefaultIndicatorType\n ? this._getDefaultIndicatorLogic(step, isCurrentStep)\n : this._getGuidelineLogic(step, isCurrentStep, state);\n }\n\n private _getDefaultIndicatorLogic(step: CdkStep, isCurrentStep: boolean): StepState {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (!step.completed || isCurrentStep) {\n return STEP_STATE.NUMBER;\n } else {\n return step.editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n }\n }\n\n private _getGuidelineLogic(\n step: CdkStep,\n isCurrentStep: boolean,\n state: StepState = STEP_STATE.NUMBER): StepState {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (step.completed && !isCurrentStep) {\n return STEP_STATE.DONE;\n } else if (step.completed && isCurrentStep) {\n return state;\n } else if (step.editable && isCurrentStep) {\n return STEP_STATE.EDIT;\n } else {\n return state;\n }\n }\n\n private _isCurrentStep(index: number) {\n return this._selectedIndex === index;\n }\n\n /** Returns the index of the currently-focused step header. */\n _getFocusIndex() {\n return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex;\n }\n\n private _updateSelectedItemIndex(newIndex: number): void {\n const stepsArray = this.steps.toArray();\n this.selectionChange.emit({\n selectedIndex: newIndex,\n previouslySelectedIndex: this._selectedIndex,\n selectedStep: stepsArray[newIndex],\n previouslySelectedStep: stepsArray[this._selectedIndex],\n });\n\n // If focus is inside the stepper, move it to the next header, otherwise it may become\n // lost when the active step content is hidden. We can't be more granular with the check\n // (e.g. checking whether focus is inside the active step), because we don't have a\n // reference to the elements that are rendering out the content.\n this._containsFocus() ? this._keyManager.setActiveItem(newIndex) :\n this._keyManager.updateActiveItemIndex(newIndex);\n\n this._selectedIndex = newIndex;\n this._stateChanged();\n }\n\n _onKeydown(event: KeyboardEvent) {\n const hasModifier = hasModifierKey(event);\n const keyCode = event.keyCode;\n const manager = this._keyManager;\n\n if (manager.activeItemIndex != null && !hasModifier &&\n (keyCode === SPACE || keyCode === ENTER)) {\n this.selectedIndex = manager.activeItemIndex;\n event.preventDefault();\n } else if (keyCode === HOME) {\n manager.setFirstItemActive();\n event.preventDefault();\n } else if (keyCode === END) {\n manager.setLastItemActive();\n event.preventDefault();\n } else {\n manager.onKeydown(event);\n }\n }\n\n private _anyControlsInvalidOrPending(index: number): boolean {\n const steps = this.steps.toArray();\n\n steps[this._selectedIndex].interacted = true;\n\n if (this._linear && index >= 0) {\n return steps.slice(0, index).some(step => {\n const control = step.stepControl;\n const isIncomplete = control ?\n (control.invalid || control.pending || !step.interacted) :\n !step.completed;\n return isIncomplete && !step.optional;\n });\n }\n\n return false;\n }\n\n private _layoutDirection(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n\n /** Checks whether the stepper contains the focused element. */\n private _containsFocus(): boolean {\n if (!this._document || !this._elementRef) {\n return false;\n }\n\n const stepperElement = this._elementRef.nativeElement;\n const focusedElement = this._document.activeElement;\n return stepperElement === focusedElement || stepperElement.contains(focusedElement);\n }\n}\n\n\n/**\n * Simplified representation of a FormControl from @angular/forms.\n * Used to avoid having to bring in @angular/forms for a single optional interface.\n * @docs-private\n */\ninterface FormControlLike {\n asyncValidator: () => any | null;\n dirty: boolean;\n disabled: boolean;\n enabled: boolean;\n errors: {[key: string]: any} | null;\n invalid: boolean;\n parent: any;\n pending: boolean;\n pristine: boolean;\n root: FormControlLike;\n status: string;\n statusChanges: Observable<any>;\n touched: boolean;\n untouched: boolean;\n updateOn: any;\n valid: boolean;\n validator: () => any | null;\n value: any;\n valueChanges: Observable<any>;\n clearAsyncValidators(): void;\n clearValidators(): void;\n disable(opts?: any): void;\n enable(opts?: any): void;\n get(path: (string | number)[] | string): FormControlLike | null;\n getError(errorCode: string, path?: (string | number)[] | string): any;\n hasError(errorCode: string, path?: (string | number)[] | string): boolean;\n markAllAsTouched(): void;\n markAsDirty(opts?: any): void;\n markAsPending(opts?: any): void;\n markAsPristine(opts?: any): void;\n markAsTouched(opts?: any): void;\n markAsUntouched(opts?: any): void;\n patchValue(value: any, options?: Object): void;\n reset(value?: any, options?: Object): void;\n setAsyncValidators(newValidator: () => any | (() => any)[] | null): void;\n setErrors(errors: {[key: string]: any} | null, opts?: any): void;\n setParent(parent: any): void;\n setValidators(newValidator: () => any | (() => any)[] | null): void;\n setValue(value: any, options?: Object): void;\n updateValueAndValidity(opts?: any): void;\n patchValue(value: any, options?: any): void;\n registerOnChange(fn: Function): void;\n registerOnDisabledChange(fn: (isDisabled: boolean) => void): void;\n reset(formState?: any, options?: any): void;\n setValue(value: any, options?: any): void;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef} from '@angular/core';\nimport {FocusableOption} from '@angular/cdk/a11y';\n\n\n@Directive({\n selector: '[cdkStepHeader]',\n host: {\n 'role': 'tab',\n },\n})\nexport class CdkStepHeader implements FocusableOption {\n constructor(protected _elementRef: ElementRef<HTMLElement>) {}\n\n /** Focuses the step header. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[cdkStepLabel]',\n})\nexport class CdkStepLabel {\n constructor(/** @docs-private */ public template: TemplateRef<any>) { }\n}\n"],"names":["obaservableOf"],"mappings":"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"}
1
+ {"version":3,"file":"stepper.js","sources":["../../../src/cdk/stepper/stepper-module.ts","../../../src/cdk/stepper/stepper-button.ts","../../../src/cdk/stepper/stepper.ts","../../../src/cdk/stepper/step-header.ts","../../../src/cdk/stepper/step-label.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {CdkStepper, CdkStep} from './stepper';\nimport {CommonModule} from '@angular/common';\nimport {CdkStepLabel} from './step-label';\nimport {CdkStepperNext, CdkStepperPrevious} from './stepper-button';\nimport {CdkStepHeader} from './step-header';\nimport {BidiModule} from '@angular/cdk/bidi';\n\n@NgModule({\n imports: [BidiModule, CommonModule],\n exports: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ],\n declarations: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ]\n})\nexport class CdkStepperModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, HostListener, Input} from '@angular/core';\n\nimport {CdkStepper} from './stepper';\n\n/** Button that moves to the next step in a stepper workflow. */\n@Directive({\n selector: 'button[cdkStepperNext]',\n host: {\n '[type]': 'type',\n }\n})\nexport class CdkStepperNext {\n /** Type of the next button. Defaults to \"submit\" if not specified. */\n @Input() type: string = 'submit';\n\n constructor(public _stepper: CdkStepper) {}\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n @HostListener('click')\n _handleClick() {\n this._stepper.next();\n }\n}\n\n/** Button that moves to the previous step in a stepper workflow. */\n@Directive({\n selector: 'button[cdkStepperPrevious]',\n host: {\n '[type]': 'type',\n }\n})\nexport class CdkStepperPrevious {\n /** Type of the previous button. Defaults to \"button\" if not specified. */\n @Input() type: string = 'button';\n\n constructor(public _stepper: CdkStepper) {}\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n @HostListener('click')\n _handleClick() {\n this._stepper.previous();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {FocusableOption, FocusKeyManager} from '@angular/cdk/a11y';\nimport {Direction, Directionality} from '@angular/cdk/bidi';\nimport {coerceBooleanProperty, coerceNumberProperty} from '@angular/cdk/coercion';\nimport {END, ENTER, HOME, SPACE, hasModifierKey} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n EventEmitter,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n InjectionToken,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {CdkStepLabel} from './step-label';\nimport {Observable, Subject, of as obaservableOf} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\nimport {CdkStepHeader} from './step-header';\n\n/** Used to generate unique ID for each stepper component. */\nlet nextId = 0;\n\n/**\n * Position state of the content of each step in stepper that is used for transitioning\n * the content into correct position upon step selection change.\n */\nexport type StepContentPositionState = 'previous' | 'current' | 'next';\n\n/** Possible orientation of a stepper. */\nexport type StepperOrientation = 'horizontal' | 'vertical';\n\n/** Change event emitted on selection changes. */\nexport class StepperSelectionEvent {\n /** Index of the step now selected. */\n selectedIndex: number;\n\n /** Index of the step previously selected. */\n previouslySelectedIndex: number;\n\n /** The step instance now selected. */\n selectedStep: CdkStep;\n\n /** The step instance previously selected. */\n previouslySelectedStep: CdkStep;\n}\n\n/** The state of each step. */\nexport type StepState = 'number' | 'edit' | 'done' | 'error' | string;\n\n/** Enum to represent the different states of the steps. */\nexport const STEP_STATE = {\n NUMBER: 'number',\n EDIT: 'edit',\n DONE: 'done',\n ERROR: 'error'\n};\n\n/** InjectionToken that can be used to specify the global stepper options. */\nexport const STEPPER_GLOBAL_OPTIONS =\n new InjectionToken<StepperOptions>('STEPPER_GLOBAL_OPTIONS');\n\n/**\n * InjectionToken that can be used to specify the global stepper options.\n * @deprecated Use `STEPPER_GLOBAL_OPTIONS` instead.\n * @breaking-change 8.0.0.\n */\nexport const MAT_STEPPER_GLOBAL_OPTIONS = STEPPER_GLOBAL_OPTIONS;\n\n/** Configurable options for stepper. */\nexport interface StepperOptions {\n /**\n * Whether the stepper should display an error state or not.\n * Default behavior is assumed to be false.\n */\n showError?: boolean;\n\n /**\n * Whether the stepper should display the default indicator type\n * or not.\n * Default behavior is assumed to be true.\n */\n displayDefaultIndicatorType?: boolean;\n}\n\n@Component({\n moduleId: module.id,\n selector: 'cdk-step',\n exportAs: 'cdkStep',\n template: '<ng-template><ng-content></ng-content></ng-template>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CdkStep implements OnChanges {\n private _stepperOptions: StepperOptions;\n _showError: boolean;\n _displayDefaultIndicatorType: boolean;\n\n /** Template for step label if it exists. */\n @ContentChild(CdkStepLabel, {static: false}) stepLabel: CdkStepLabel;\n\n /** Template for step content. */\n @ViewChild(TemplateRef, {static: true}) content: TemplateRef<any>;\n\n /** The top level abstract control of the step. */\n @Input() stepControl: FormControlLike;\n\n /** Whether user has seen the expanded step content or not. */\n interacted = false;\n\n /** Plain text label of the step. */\n @Input() label: string;\n\n /** Error message to display when there's an error. */\n @Input() errorMessage: string;\n\n /** Aria label for the tab. */\n @Input('aria-label') ariaLabel: string;\n\n /**\n * Reference to the element that the tab is labelled by.\n * Will be cleared if `aria-label` is set at the same time.\n */\n @Input('aria-labelledby') ariaLabelledby: string;\n\n /** State of the step. */\n @Input() state: StepState;\n\n /** Whether the user can return to this step once it has been marked as completed. */\n @Input()\n get editable(): boolean { return this._editable; }\n set editable(value: boolean) {\n this._editable = coerceBooleanProperty(value);\n }\n private _editable = true;\n\n /** Whether the completion of step is optional. */\n @Input()\n get optional(): boolean { return this._optional; }\n set optional(value: boolean) {\n this._optional = coerceBooleanProperty(value);\n }\n private _optional = false;\n\n /** Whether step is marked as completed. */\n @Input()\n get completed(): boolean {\n return this._customCompleted == null ? this._getDefaultCompleted() : this._customCompleted;\n }\n set completed(value: boolean) {\n this._customCompleted = coerceBooleanProperty(value);\n }\n private _customCompleted: boolean | null = null;\n\n private _getDefaultCompleted() {\n return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n }\n\n /** Whether step has an error. */\n @Input()\n get hasError(): boolean {\n return this._customError == null ? this._getDefaultError() : this._customError;\n }\n set hasError(value: boolean) {\n this._customError = coerceBooleanProperty(value);\n }\n private _customError: boolean | null = null;\n\n private _getDefaultError() {\n return this.stepControl && this.stepControl.invalid && this.interacted;\n }\n\n /** @breaking-change 8.0.0 remove the `?` after `stepperOptions` */\n constructor(\n @Inject(forwardRef(() => CdkStepper)) private _stepper: CdkStepper,\n @Optional() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions?: StepperOptions) {\n this._stepperOptions = stepperOptions ? stepperOptions : {};\n this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;\n this._showError = !!this._stepperOptions.showError;\n }\n\n /** Selects this step component. */\n select(): void {\n this._stepper.selected = this;\n }\n\n /** Resets the step to its initial state. Note that this includes resetting form data. */\n reset(): void {\n this.interacted = false;\n\n if (this._customCompleted != null) {\n this._customCompleted = false;\n }\n\n if (this._customError != null) {\n this._customError = false;\n }\n\n if (this.stepControl) {\n this.stepControl.reset();\n }\n }\n\n ngOnChanges() {\n // Since basically all inputs of the MatStep get proxied through the view down to the\n // underlying MatStepHeader, we have to make sure that change detection runs correctly.\n this._stepper._stateChanged();\n }\n}\n\n@Directive({\n selector: '[cdkStepper]',\n exportAs: 'cdkStepper',\n})\nexport class CdkStepper implements AfterViewInit, OnDestroy {\n /** Emits when the component is destroyed. */\n protected _destroyed = new Subject<void>();\n\n /** Used for managing keyboard focus. */\n private _keyManager: FocusKeyManager<FocusableOption>;\n\n /**\n * @breaking-change 8.0.0 Remove `| undefined` once the `_document`\n * constructor param is required.\n */\n private _document: Document | undefined;\n\n /**\n * The list of step components that the stepper is holding.\n * @deprecated use `steps` instead\n * @breaking-change 9.0.0 remove this property\n */\n @ContentChildren(CdkStep) _steps: QueryList<CdkStep>;\n\n /** The list of step components that the stepper is holding. */\n get steps(): QueryList<CdkStep> {\n return this._steps;\n }\n\n /**\n * The list of step headers of the steps in the stepper.\n * @deprecated Type to be changed to `QueryList<CdkStepHeader>`.\n * @breaking-change 8.0.0\n */\n @ContentChildren(CdkStepHeader) _stepHeader: QueryList<FocusableOption>;\n\n /** Whether the validity of previous steps should be checked or not. */\n @Input()\n get linear(): boolean { return this._linear; }\n set linear(value: boolean) { this._linear = coerceBooleanProperty(value); }\n private _linear = false;\n\n /** The index of the selected step. */\n @Input()\n get selectedIndex() { return this._selectedIndex; }\n set selectedIndex(index: number) {\n const newIndex = coerceNumberProperty(index);\n\n if (this.steps) {\n // Ensure that the index can't be out of bounds.\n if (newIndex < 0 || newIndex > this.steps.length - 1) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n\n if (this._selectedIndex != newIndex &&\n !this._anyControlsInvalidOrPending(newIndex) &&\n (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {\n this._updateSelectedItemIndex(index);\n }\n } else {\n this._selectedIndex = newIndex;\n }\n }\n private _selectedIndex = 0;\n\n /** The step that is selected. */\n @Input()\n get selected(): CdkStep {\n // @breaking-change 8.0.0 Change return type to `CdkStep | undefined`.\n return this.steps ? this.steps.toArray()[this.selectedIndex] : undefined!;\n }\n set selected(step: CdkStep) {\n this.selectedIndex = this.steps ? this.steps.toArray().indexOf(step) : -1;\n }\n\n /** Event emitted when the selected step has changed. */\n @Output() selectionChange: EventEmitter<StepperSelectionEvent>\n = new EventEmitter<StepperSelectionEvent>();\n\n /** Used to track unique ID for each stepper component. */\n _groupId: number;\n\n protected _orientation: StepperOrientation = 'horizontal';\n\n constructor(\n @Optional() private _dir: Directionality,\n private _changeDetectorRef: ChangeDetectorRef,\n // @breaking-change 8.0.0 `_elementRef` and `_document` parameters to become required.\n private _elementRef?: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) _document?: any) {\n this._groupId = nextId++;\n this._document = _document;\n }\n\n ngAfterViewInit() {\n // Note that while the step headers are content children by default, any components that\n // extend this one might have them as view chidren. We initialize the keyboard handling in\n // AfterViewInit so we're guaranteed for both view and content children to be defined.\n this._keyManager = new FocusKeyManager<FocusableOption>(this._stepHeader)\n .withWrap()\n .withVerticalOrientation(this._orientation === 'vertical');\n\n (this._dir ? this._dir.change as Observable<Direction> : obaservableOf<Direction>())\n .pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed))\n .subscribe(direction => this._keyManager.withHorizontalOrientation(direction));\n\n this._keyManager.updateActiveItemIndex(this._selectedIndex);\n\n this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (!this.selected) {\n this._selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n });\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n /** Selects and focuses the next step in list. */\n next(): void {\n this.selectedIndex = Math.min(this._selectedIndex + 1, this.steps.length - 1);\n }\n\n /** Selects and focuses the previous step in list. */\n previous(): void {\n this.selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n\n /** Resets the stepper to its initial state. Note that this includes clearing form data. */\n reset(): void {\n this._updateSelectedItemIndex(0);\n this.steps.forEach(step => step.reset());\n this._stateChanged();\n }\n\n /** Returns a unique id for each step label element. */\n _getStepLabelId(i: number): string {\n return `cdk-step-label-${this._groupId}-${i}`;\n }\n\n /** Returns unique id for each step content element. */\n _getStepContentId(i: number): string {\n return `cdk-step-content-${this._groupId}-${i}`;\n }\n\n /** Marks the component to be change detected. */\n _stateChanged() {\n this._changeDetectorRef.markForCheck();\n }\n\n /** Returns position state of the step with the given index. */\n _getAnimationDirection(index: number): StepContentPositionState {\n const position = index - this._selectedIndex;\n if (position < 0) {\n return this._layoutDirection() === 'rtl' ? 'next' : 'previous';\n } else if (position > 0) {\n return this._layoutDirection() === 'rtl' ? 'previous' : 'next';\n }\n return 'current';\n }\n\n /** Returns the type of icon to be displayed. */\n _getIndicatorType(index: number, state: StepState = STEP_STATE.NUMBER): StepState {\n const step = this.steps.toArray()[index];\n const isCurrentStep = this._isCurrentStep(index);\n\n return step._displayDefaultIndicatorType\n ? this._getDefaultIndicatorLogic(step, isCurrentStep)\n : this._getGuidelineLogic(step, isCurrentStep, state);\n }\n\n private _getDefaultIndicatorLogic(step: CdkStep, isCurrentStep: boolean): StepState {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (!step.completed || isCurrentStep) {\n return STEP_STATE.NUMBER;\n } else {\n return step.editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n }\n }\n\n private _getGuidelineLogic(\n step: CdkStep,\n isCurrentStep: boolean,\n state: StepState = STEP_STATE.NUMBER): StepState {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (step.completed && !isCurrentStep) {\n return STEP_STATE.DONE;\n } else if (step.completed && isCurrentStep) {\n return state;\n } else if (step.editable && isCurrentStep) {\n return STEP_STATE.EDIT;\n } else {\n return state;\n }\n }\n\n private _isCurrentStep(index: number) {\n return this._selectedIndex === index;\n }\n\n /** Returns the index of the currently-focused step header. */\n _getFocusIndex() {\n return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex;\n }\n\n private _updateSelectedItemIndex(newIndex: number): void {\n const stepsArray = this.steps.toArray();\n this.selectionChange.emit({\n selectedIndex: newIndex,\n previouslySelectedIndex: this._selectedIndex,\n selectedStep: stepsArray[newIndex],\n previouslySelectedStep: stepsArray[this._selectedIndex],\n });\n\n // If focus is inside the stepper, move it to the next header, otherwise it may become\n // lost when the active step content is hidden. We can't be more granular with the check\n // (e.g. checking whether focus is inside the active step), because we don't have a\n // reference to the elements that are rendering out the content.\n this._containsFocus() ? this._keyManager.setActiveItem(newIndex) :\n this._keyManager.updateActiveItemIndex(newIndex);\n\n this._selectedIndex = newIndex;\n this._stateChanged();\n }\n\n _onKeydown(event: KeyboardEvent) {\n const hasModifier = hasModifierKey(event);\n const keyCode = event.keyCode;\n const manager = this._keyManager;\n\n if (manager.activeItemIndex != null && !hasModifier &&\n (keyCode === SPACE || keyCode === ENTER)) {\n this.selectedIndex = manager.activeItemIndex;\n event.preventDefault();\n } else if (keyCode === HOME) {\n manager.setFirstItemActive();\n event.preventDefault();\n } else if (keyCode === END) {\n manager.setLastItemActive();\n event.preventDefault();\n } else {\n manager.onKeydown(event);\n }\n }\n\n private _anyControlsInvalidOrPending(index: number): boolean {\n const steps = this.steps.toArray();\n\n steps[this._selectedIndex].interacted = true;\n\n if (this._linear && index >= 0) {\n return steps.slice(0, index).some(step => {\n const control = step.stepControl;\n const isIncomplete = control ?\n (control.invalid || control.pending || !step.interacted) :\n !step.completed;\n return isIncomplete && !step.optional;\n });\n }\n\n return false;\n }\n\n private _layoutDirection(): Direction {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n\n /** Checks whether the stepper contains the focused element. */\n private _containsFocus(): boolean {\n if (!this._document || !this._elementRef) {\n return false;\n }\n\n const stepperElement = this._elementRef.nativeElement;\n const focusedElement = this._document.activeElement;\n return stepperElement === focusedElement || stepperElement.contains(focusedElement);\n }\n}\n\n\n/**\n * Simplified representation of a FormControl from @angular/forms.\n * Used to avoid having to bring in @angular/forms for a single optional interface.\n * @docs-private\n */\ninterface FormControlLike {\n asyncValidator: () => any | null;\n dirty: boolean;\n disabled: boolean;\n enabled: boolean;\n errors: {[key: string]: any} | null;\n invalid: boolean;\n parent: any;\n pending: boolean;\n pristine: boolean;\n root: FormControlLike;\n status: string;\n statusChanges: Observable<any>;\n touched: boolean;\n untouched: boolean;\n updateOn: any;\n valid: boolean;\n validator: () => any | null;\n value: any;\n valueChanges: Observable<any>;\n clearAsyncValidators(): void;\n clearValidators(): void;\n disable(opts?: any): void;\n enable(opts?: any): void;\n get(path: (string | number)[] | string): FormControlLike | null;\n getError(errorCode: string, path?: (string | number)[] | string): any;\n hasError(errorCode: string, path?: (string | number)[] | string): boolean;\n markAllAsTouched(): void;\n markAsDirty(opts?: any): void;\n markAsPending(opts?: any): void;\n markAsPristine(opts?: any): void;\n markAsTouched(opts?: any): void;\n markAsUntouched(opts?: any): void;\n patchValue(value: any, options?: Object): void;\n reset(value?: any, options?: Object): void;\n setAsyncValidators(newValidator: () => any | (() => any)[] | null): void;\n setErrors(errors: {[key: string]: any} | null, opts?: any): void;\n setParent(parent: any): void;\n setValidators(newValidator: () => any | (() => any)[] | null): void;\n setValue(value: any, options?: Object): void;\n updateValueAndValidity(opts?: any): void;\n patchValue(value: any, options?: any): void;\n registerOnChange(fn: Function): void;\n registerOnDisabledChange(fn: (isDisabled: boolean) => void): void;\n reset(formState?: any, options?: any): void;\n setValue(value: any, options?: any): void;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef} from '@angular/core';\nimport {FocusableOption} from '@angular/cdk/a11y';\n\n\n@Directive({\n selector: '[cdkStepHeader]',\n host: {\n 'role': 'tab',\n },\n})\nexport class CdkStepHeader implements FocusableOption {\n constructor(protected _elementRef: ElementRef<HTMLElement>) {}\n\n /** Focuses the step header. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, TemplateRef} from '@angular/core';\n\n@Directive({\n selector: '[cdkStepLabel]',\n})\nexport class CdkStepLabel {\n constructor(/** @docs-private */ public template: TemplateRef<any>) { }\n}\n"],"names":["obaservableOf"],"mappings":"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"}
package/esm5/cdk.es5.js CHANGED
@@ -15,7 +15,7 @@ import { Version } from '@angular/core';
15
15
  * Current version of the Angular Component Development Kit.
16
16
  * @type {?}
17
17
  */
18
- var VERSION = new Version('8.1.3');
18
+ var VERSION = new Version('8.1.4');
19
19
 
20
20
  /**
21
21
  * @fileoverview added by tsickle
@@ -1 +1 @@
1
- {"version":3,"file":"cdk.es5.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('8.1.3');\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAWA,AAAA,IAAa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"cdk.es5.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('8.1.4');\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAWA,AAAA,IAAa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC;;;;;;;;;;;;;;"}
@@ -1455,6 +1455,9 @@ OverlayRef = /** @class */ (function () {
1455
1455
  * @return {?}
1456
1456
  */
1457
1457
  function () {
1458
+ if (!this._pane) {
1459
+ return;
1460
+ }
1458
1461
  /** @type {?} */
1459
1462
  var style = this._pane.style;
1460
1463
  style.width = coerceCssPixelValue(this._config.width);