@angular/cdk 7.1.1 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/LICENSE +1 -1
  2. package/_a11y.scss +1 -1
  3. package/a11y/typings/focus-monitor/focus-monitor.d.ts +0 -1
  4. package/a11y/typings/focus-trap/focus-trap.d.ts +2 -0
  5. package/a11y/typings/index.metadata.json +1 -1
  6. package/bundles/cdk-a11y.umd.js +30 -24
  7. package/bundles/cdk-a11y.umd.js.map +1 -1
  8. package/bundles/cdk-a11y.umd.min.js +1 -1
  9. package/bundles/cdk-a11y.umd.min.js.map +1 -1
  10. package/bundles/cdk-coercion.umd.js +20 -4
  11. package/bundles/cdk-coercion.umd.js.map +1 -1
  12. package/bundles/cdk-coercion.umd.min.js +1 -1
  13. package/bundles/cdk-coercion.umd.min.js.map +1 -1
  14. package/bundles/cdk-drag-drop.umd.js +3246 -1894
  15. package/bundles/cdk-drag-drop.umd.js.map +1 -1
  16. package/bundles/cdk-drag-drop.umd.min.js +2 -1
  17. package/bundles/cdk-drag-drop.umd.min.js.map +1 -1
  18. package/bundles/cdk-observers.umd.js +2 -2
  19. package/bundles/cdk-observers.umd.js.map +1 -1
  20. package/bundles/cdk-observers.umd.min.js +1 -1
  21. package/bundles/cdk-observers.umd.min.js.map +1 -1
  22. package/bundles/cdk-overlay.umd.js +107 -45
  23. package/bundles/cdk-overlay.umd.js.map +1 -1
  24. package/bundles/cdk-overlay.umd.min.js +2 -2
  25. package/bundles/cdk-overlay.umd.min.js.map +1 -1
  26. package/bundles/cdk-portal.umd.js +3 -3
  27. package/bundles/cdk-portal.umd.js.map +1 -1
  28. package/bundles/cdk-portal.umd.min.js.map +1 -1
  29. package/bundles/cdk-scrolling.umd.js +9 -6
  30. package/bundles/cdk-scrolling.umd.js.map +1 -1
  31. package/bundles/cdk-scrolling.umd.min.js +1 -1
  32. package/bundles/cdk-scrolling.umd.min.js.map +1 -1
  33. package/bundles/cdk-stepper.umd.js +36 -16
  34. package/bundles/cdk-stepper.umd.js.map +1 -1
  35. package/bundles/cdk-stepper.umd.min.js +1 -1
  36. package/bundles/cdk-stepper.umd.min.js.map +1 -1
  37. package/bundles/cdk-table.umd.js +8 -4
  38. package/bundles/cdk-table.umd.js.map +1 -1
  39. package/bundles/cdk-table.umd.min.js +1 -1
  40. package/bundles/cdk-table.umd.min.js.map +1 -1
  41. package/bundles/cdk-text-field.umd.js +47 -22
  42. package/bundles/cdk-text-field.umd.js.map +1 -1
  43. package/bundles/cdk-text-field.umd.min.js +1 -1
  44. package/bundles/cdk-text-field.umd.min.js.map +1 -1
  45. package/bundles/cdk-tree.umd.js +1 -1
  46. package/bundles/cdk-tree.umd.js.map +1 -1
  47. package/bundles/cdk-tree.umd.min.js +1 -1
  48. package/bundles/cdk-tree.umd.min.js.map +1 -1
  49. package/bundles/cdk.umd.js +1 -1
  50. package/bundles/cdk.umd.js.map +1 -1
  51. package/bundles/cdk.umd.min.js +1 -1
  52. package/bundles/cdk.umd.min.js.map +1 -1
  53. package/coercion/typings/element.d.ts +13 -0
  54. package/coercion/typings/index.metadata.json +1 -1
  55. package/coercion/typings/public-api.d.ts +1 -0
  56. package/drag-drop/typings/{drag-handle.d.ts → directives/drag-handle.d.ts} +6 -2
  57. package/drag-drop/typings/{drag-placeholder.d.ts → directives/drag-placeholder.d.ts} +0 -0
  58. package/drag-drop/typings/{drag-preview.d.ts → directives/drag-preview.d.ts} +0 -0
  59. package/drag-drop/typings/directives/drag.d.ts +114 -0
  60. package/{typings/esm5/drag-drop → drag-drop/typings/directives}/drop-list-group.d.ts +3 -0
  61. package/drag-drop/typings/{drop-list.d.ts → directives/drop-list.d.ts} +44 -70
  62. package/drag-drop/typings/drag-drop-registry.d.ts +8 -3
  63. package/drag-drop/typings/drag-drop.d.ts +33 -0
  64. package/drag-drop/typings/drag-events.d.ts +14 -7
  65. package/{typings/esm5/drag-drop/drag.d.ts → drag-drop/typings/drag-ref.d.ts} +162 -86
  66. package/drag-drop/typings/drop-list-container.d.ts +19 -3
  67. package/drag-drop/typings/drop-list-ref.d.ts +238 -0
  68. package/drag-drop/typings/index.d.ts +2 -1
  69. package/drag-drop/typings/index.metadata.json +1 -1
  70. package/drag-drop/typings/public-api.d.ts +16 -6
  71. package/esm2015/a11y.js +30 -20
  72. package/esm2015/a11y.js.map +1 -1
  73. package/esm2015/cdk.js +1 -1
  74. package/esm2015/cdk.js.map +1 -1
  75. package/esm2015/coercion.js +18 -1
  76. package/esm2015/coercion.js.map +1 -1
  77. package/esm2015/drag-drop.js +2281 -1289
  78. package/esm2015/drag-drop.js.map +1 -1
  79. package/esm2015/observers.js +3 -3
  80. package/esm2015/observers.js.map +1 -1
  81. package/esm2015/overlay.js +75 -31
  82. package/esm2015/overlay.js.map +1 -1
  83. package/esm2015/portal.js +1 -1
  84. package/esm2015/portal.js.map +1 -1
  85. package/esm2015/scrolling.js +9 -6
  86. package/esm2015/scrolling.js.map +1 -1
  87. package/esm2015/stepper.js +30 -16
  88. package/esm2015/stepper.js.map +1 -1
  89. package/esm2015/table.js +8 -4
  90. package/esm2015/table.js.map +1 -1
  91. package/esm2015/text-field.js +31 -19
  92. package/esm2015/text-field.js.map +1 -1
  93. package/esm2015/tree.js +2 -2
  94. package/esm2015/tree.js.map +1 -1
  95. package/esm5/a11y.es5.js +31 -25
  96. package/esm5/a11y.es5.js.map +1 -1
  97. package/esm5/cdk.es5.js +1 -1
  98. package/esm5/cdk.es5.js.map +1 -1
  99. package/esm5/coercion.es5.js +18 -1
  100. package/esm5/coercion.es5.js.map +1 -1
  101. package/esm5/drag-drop.es5.js +3247 -1899
  102. package/esm5/drag-drop.es5.js.map +1 -1
  103. package/esm5/observers.es5.js +3 -3
  104. package/esm5/observers.es5.js.map +1 -1
  105. package/esm5/overlay.es5.js +107 -45
  106. package/esm5/overlay.es5.js.map +1 -1
  107. package/esm5/portal.es5.js +3 -3
  108. package/esm5/portal.es5.js.map +1 -1
  109. package/esm5/scrolling.es5.js +9 -6
  110. package/esm5/scrolling.es5.js.map +1 -1
  111. package/esm5/stepper.es5.js +36 -17
  112. package/esm5/stepper.es5.js.map +1 -1
  113. package/esm5/table.es5.js +8 -4
  114. package/esm5/table.es5.js.map +1 -1
  115. package/esm5/text-field.es5.js +44 -19
  116. package/esm5/text-field.es5.js.map +1 -1
  117. package/esm5/tree.es5.js +2 -2
  118. package/esm5/tree.es5.js.map +1 -1
  119. package/overlay/typings/index.metadata.json +1 -1
  120. package/overlay/typings/overlay-directives.d.ts +0 -2
  121. package/overlay/typings/overlay-ref.d.ts +5 -1
  122. package/overlay/typings/position/flexible-connected-position-strategy.d.ts +17 -4
  123. package/overlay/typings/position/overlay-position-builder.d.ts +3 -3
  124. package/package.json +4 -4
  125. package/portal/typings/portal.d.ts +1 -1
  126. package/schematics/migration.json +5 -0
  127. package/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +2 -2
  128. package/schematics/ng-update/index.d.ts +2 -0
  129. package/schematics/ng-update/index.js +5 -0
  130. package/schematics/ng-update/index.js.map +1 -1
  131. package/schematics/ng-update/target-version.d.ts +7 -1
  132. package/schematics/ng-update/target-version.js +10 -0
  133. package/schematics/ng-update/target-version.js.map +1 -1
  134. package/schematics/ng-update/upgrade-data.js +2 -1
  135. package/schematics/ng-update/upgrade-data.js.map +1 -1
  136. package/schematics/ng-update/upgrade-rules/index.js +3 -2
  137. package/schematics/ng-update/upgrade-rules/index.js.map +1 -1
  138. package/schematics/utils/ast/ng-module-imports.d.ts +1 -1
  139. package/schematics/utils/ast/ng-module-imports.js +25 -13
  140. package/schematics/utils/ast/ng-module-imports.js.map +1 -1
  141. package/schematics/utils/get-project.js +2 -1
  142. package/schematics/utils/get-project.js.map +1 -1
  143. package/schematics/utils/parse5-element.js +3 -2
  144. package/schematics/utils/parse5-element.js.map +1 -1
  145. package/schematics/utils/project-targets.js +2 -1
  146. package/schematics/utils/project-targets.js.map +1 -1
  147. package/schematics/utils/version-agnostic-typescript.js +3 -2
  148. package/schematics/utils/version-agnostic-typescript.js.map +1 -1
  149. package/stepper/typings/index.metadata.json +1 -1
  150. package/stepper/typings/stepper.d.ts +14 -2
  151. package/text-field/typings/autosize.d.ts +6 -0
  152. package/text-field/typings/index.metadata.json +1 -1
  153. package/tree/typings/control/base-tree-control.d.ts +1 -1
  154. package/tree/typings/control/nested-tree-control.d.ts +2 -2
  155. package/tree/typings/control/tree-control.d.ts +1 -1
  156. package/typings/a11y/focus-monitor/focus-monitor.d.ts +0 -1
  157. package/typings/a11y/focus-trap/focus-trap.d.ts +2 -0
  158. package/typings/a11y/index.metadata.json +1 -1
  159. package/typings/coercion/element.d.ts +13 -0
  160. package/typings/coercion/index.metadata.json +1 -1
  161. package/typings/coercion/public-api.d.ts +1 -0
  162. package/typings/drag-drop/{drag-handle.d.ts → directives/drag-handle.d.ts} +6 -2
  163. package/typings/drag-drop/{drag-placeholder.d.ts → directives/drag-placeholder.d.ts} +0 -0
  164. package/typings/drag-drop/{drag-preview.d.ts → directives/drag-preview.d.ts} +0 -0
  165. package/typings/drag-drop/directives/drag.d.ts +114 -0
  166. package/typings/drag-drop/{drop-list-group.d.ts → directives/drop-list-group.d.ts} +3 -0
  167. package/typings/{esm5/drag-drop → drag-drop/directives}/drop-list.d.ts +44 -70
  168. package/typings/drag-drop/drag-drop-registry.d.ts +8 -3
  169. package/typings/drag-drop/drag-drop.d.ts +33 -0
  170. package/typings/drag-drop/drag-events.d.ts +14 -7
  171. package/typings/drag-drop/{drag.d.ts → drag-ref.d.ts} +162 -86
  172. package/typings/drag-drop/drop-list-container.d.ts +19 -3
  173. package/typings/drag-drop/drop-list-ref.d.ts +238 -0
  174. package/typings/drag-drop/index.d.ts +2 -1
  175. package/typings/drag-drop/index.metadata.json +1 -1
  176. package/typings/drag-drop/public-api.d.ts +16 -6
  177. package/typings/esm5/a11y/focus-monitor/focus-monitor.d.ts +0 -1
  178. package/typings/esm5/a11y/focus-trap/focus-trap.d.ts +2 -0
  179. package/typings/esm5/a11y/index.metadata.json +1 -1
  180. package/typings/esm5/coercion/element.d.ts +13 -0
  181. package/typings/esm5/coercion/index.metadata.json +1 -1
  182. package/typings/esm5/coercion/public-api.d.ts +1 -0
  183. package/typings/esm5/drag-drop/{drag-handle.d.ts → directives/drag-handle.d.ts} +6 -2
  184. package/typings/esm5/drag-drop/{drag-placeholder.d.ts → directives/drag-placeholder.d.ts} +0 -0
  185. package/typings/esm5/drag-drop/{drag-preview.d.ts → directives/drag-preview.d.ts} +0 -0
  186. package/typings/esm5/drag-drop/directives/drag.d.ts +114 -0
  187. package/{drag-drop/typings → typings/esm5/drag-drop/directives}/drop-list-group.d.ts +3 -0
  188. package/typings/{drag-drop → esm5/drag-drop/directives}/drop-list.d.ts +44 -70
  189. package/typings/esm5/drag-drop/drag-drop-registry.d.ts +8 -3
  190. package/typings/esm5/drag-drop/drag-drop.d.ts +33 -0
  191. package/typings/esm5/drag-drop/drag-events.d.ts +14 -7
  192. package/{drag-drop/typings/drag.d.ts → typings/esm5/drag-drop/drag-ref.d.ts} +162 -86
  193. package/typings/esm5/drag-drop/drop-list-container.d.ts +19 -3
  194. package/typings/esm5/drag-drop/drop-list-ref.d.ts +238 -0
  195. package/typings/esm5/drag-drop/index.d.ts +2 -1
  196. package/typings/esm5/drag-drop/index.metadata.json +1 -1
  197. package/typings/esm5/drag-drop/public-api.d.ts +16 -6
  198. package/typings/esm5/index.metadata.json +1 -1
  199. package/typings/esm5/overlay/index.metadata.json +1 -1
  200. package/typings/esm5/overlay/overlay-directives.d.ts +0 -2
  201. package/typings/esm5/overlay/overlay-ref.d.ts +5 -1
  202. package/typings/esm5/overlay/position/flexible-connected-position-strategy.d.ts +17 -4
  203. package/typings/esm5/overlay/position/overlay-position-builder.d.ts +3 -3
  204. package/typings/esm5/portal/portal.d.ts +1 -1
  205. package/typings/esm5/stepper/index.metadata.json +1 -1
  206. package/typings/esm5/stepper/stepper.d.ts +14 -2
  207. package/typings/esm5/text-field/autosize.d.ts +6 -0
  208. package/typings/esm5/text-field/index.metadata.json +1 -1
  209. package/typings/esm5/tree/control/base-tree-control.d.ts +1 -1
  210. package/typings/esm5/tree/control/nested-tree-control.d.ts +2 -2
  211. package/typings/esm5/tree/control/tree-control.d.ts +1 -1
  212. package/typings/index.metadata.json +1 -1
  213. package/typings/overlay/index.metadata.json +1 -1
  214. package/typings/overlay/overlay-directives.d.ts +0 -2
  215. package/typings/overlay/overlay-ref.d.ts +5 -1
  216. package/typings/overlay/position/flexible-connected-position-strategy.d.ts +17 -4
  217. package/typings/overlay/position/overlay-position-builder.d.ts +3 -3
  218. package/typings/portal/portal.d.ts +1 -1
  219. package/typings/schematics/ng-update/index.d.ts +2 -0
  220. package/typings/schematics/ng-update/target-version.d.ts +7 -1
  221. package/typings/schematics/utils/ast/ng-module-imports.d.ts +1 -1
  222. package/typings/stepper/index.metadata.json +1 -1
  223. package/typings/stepper/stepper.d.ts +14 -2
  224. package/typings/text-field/autosize.d.ts +6 -0
  225. package/typings/text-field/index.metadata.json +1 -1
  226. package/typings/tree/control/base-tree-control.d.ts +1 -1
  227. package/typings/tree/control/nested-tree-control.d.ts +2 -2
  228. package/typings/tree/control/tree-control.d.ts +1 -1
@@ -204,12 +204,12 @@ TemplatePortal = /** @class */ (function (_super) {
204
204
  configurable: true
205
205
  });
206
206
  /**
207
- * Attach the the portal to the provided `PortalOutlet`.
207
+ * Attach the portal to the provided `PortalOutlet`.
208
208
  * When a context is provided it will override the `context` property of the `TemplatePortal`
209
209
  * instance.
210
210
  */
211
211
  /**
212
- * Attach the the portal to the provided `PortalOutlet`.
212
+ * Attach the portal to the provided `PortalOutlet`.
213
213
  * When a context is provided it will override the `context` property of the `TemplatePortal`
214
214
  * instance.
215
215
  * @param {?} host
@@ -217,7 +217,7 @@ TemplatePortal = /** @class */ (function (_super) {
217
217
  * @return {?}
218
218
  */
219
219
  TemplatePortal.prototype.attach = /**
220
- * Attach the the portal to the provided `PortalOutlet`.
220
+ * Attach the portal to the provided `PortalOutlet`.
221
221
  * When a context is provided it will override the `context` property of the `TemplatePortal`
222
222
  * instance.
223
223
  * @param {?} host
@@ -1 +1 @@
1
- {"version":3,"file":"portal.es5.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<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 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): 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":["tslib_1.__extends"],"mappings":"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"}
1
+ {"version":3,"file":"portal.es5.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<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): 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":["tslib_1.__extends"],"mappings":"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"}
@@ -475,7 +475,7 @@ var ScrollDispatcher = /** @class */ (function () {
475
475
  if (!this._platform.isBrowser) {
476
476
  return of();
477
477
  }
478
- return Observable.create(function (observer) {
478
+ return new Observable(function (observer) {
479
479
  if (!_this._globalSubscription) {
480
480
  _this._addGlobalListener();
481
481
  }
@@ -668,7 +668,7 @@ var CdkScrollable = /** @class */ (function () {
668
668
  this.ngZone = ngZone;
669
669
  this.dir = dir;
670
670
  this._destroyed = new Subject();
671
- this._elementScrolled = Observable.create(function (observer) {
671
+ this._elementScrolled = new Observable(function (observer) {
672
672
  return _this.ngZone.runOutsideAngular(function () {
673
673
  return fromEvent(_this.elementRef.nativeElement, 'scroll').pipe(takeUntil(_this._destroyed))
674
674
  .subscribe(observer);
@@ -755,12 +755,14 @@ var CdkScrollable = /** @class */ (function () {
755
755
  options.right = options.right == null ? (isRtl ? options.start : options.end) : options.right;
756
756
  // Rewrite the bottom offset as a top offset.
757
757
  if (options.bottom != null) {
758
- options.top = el.scrollHeight - el.clientHeight - options.bottom;
758
+ ((/** @type {?} */ (options))).top =
759
+ el.scrollHeight - el.clientHeight - options.bottom;
759
760
  }
760
761
  // Rewrite the right offset as a left offset.
761
762
  if (isRtl && getRtlScrollAxisType() != RtlScrollAxisType.NORMAL) {
762
763
  if (options.left != null) {
763
- options.right = el.scrollWidth - el.clientWidth - options.left;
764
+ ((/** @type {?} */ (options))).right =
765
+ el.scrollWidth - el.clientWidth - options.left;
764
766
  }
765
767
  if (getRtlScrollAxisType() == RtlScrollAxisType.INVERTED) {
766
768
  options.left = options.right;
@@ -771,7 +773,8 @@ var CdkScrollable = /** @class */ (function () {
771
773
  }
772
774
  else {
773
775
  if (options.right != null) {
774
- options.left = el.scrollWidth - el.clientWidth - options.right;
776
+ ((/** @type {?} */ (options))).left =
777
+ el.scrollWidth - el.clientWidth - options.right;
775
778
  }
776
779
  }
777
780
  this._applyScrollToOptions(options);
@@ -940,7 +943,7 @@ var CdkVirtualScrollViewport = /** @class */ (function (_super) {
940
943
  /**
941
944
  * Emits when the index of the first element visible in the viewport changes.
942
945
  */
943
- _this.scrolledIndexChange = Observable.create(function (observer) {
946
+ _this.scrolledIndexChange = new Observable(function (observer) {
944
947
  return _this._scrollStrategy.scrolledIndexChange.subscribe(function (index) {
945
948
  return Promise.resolve().then(function () { return _this.ngZone.run(function () { return observer.next(index); }); });
946
949
  });