@angular/cdk 7.0.0-rc.1 → 7.0.2

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 (205) hide show
  1. package/_a11y.scss +32 -0
  2. package/_overlay.scss +141 -0
  3. package/_text-field.scss +63 -0
  4. package/a11y/typings/aria-describer/aria-describer.d.ts +2 -2
  5. package/a11y/typings/focus-monitor/focus-monitor.d.ts +2 -2
  6. package/a11y/typings/index.metadata.json +1 -1
  7. package/a11y/typings/key-manager/list-key-manager.d.ts +1 -1
  8. package/a11y/typings/live-announcer/live-announcer.d.ts +2 -2
  9. package/bundles/cdk-a11y.umd.js +26 -21
  10. package/bundles/cdk-a11y.umd.js.map +1 -1
  11. package/bundles/cdk-a11y.umd.min.js +1 -1
  12. package/bundles/cdk-a11y.umd.min.js.map +1 -1
  13. package/bundles/cdk-drag-drop.umd.js +126 -81
  14. package/bundles/cdk-drag-drop.umd.js.map +1 -1
  15. package/bundles/cdk-drag-drop.umd.min.js +1 -1
  16. package/bundles/cdk-drag-drop.umd.min.js.map +1 -1
  17. package/bundles/cdk-overlay.umd.js +22 -22
  18. package/bundles/cdk-overlay.umd.js.map +1 -1
  19. package/bundles/cdk-overlay.umd.min.js.map +1 -1
  20. package/bundles/cdk-platform.umd.js +13 -2
  21. package/bundles/cdk-platform.umd.js.map +1 -1
  22. package/bundles/cdk-platform.umd.min.js +1 -1
  23. package/bundles/cdk-platform.umd.min.js.map +1 -1
  24. package/bundles/cdk-scrolling.umd.js +10 -6
  25. package/bundles/cdk-scrolling.umd.js.map +1 -1
  26. package/bundles/cdk-scrolling.umd.min.js +1 -1
  27. package/bundles/cdk-scrolling.umd.min.js.map +1 -1
  28. package/bundles/cdk-stepper.umd.js +1 -1
  29. package/bundles/cdk-stepper.umd.js.map +1 -1
  30. package/bundles/cdk-stepper.umd.min.js.map +1 -1
  31. package/bundles/cdk-table.umd.js +5 -1
  32. package/bundles/cdk-table.umd.js.map +1 -1
  33. package/bundles/cdk-table.umd.min.js +1 -1
  34. package/bundles/cdk-table.umd.min.js.map +1 -1
  35. package/bundles/cdk-text-field.umd.js +10 -3
  36. package/bundles/cdk-text-field.umd.js.map +1 -1
  37. package/bundles/cdk-text-field.umd.min.js +1 -1
  38. package/bundles/cdk-text-field.umd.min.js.map +1 -1
  39. package/bundles/cdk.umd.js +1 -1
  40. package/bundles/cdk.umd.js.map +1 -1
  41. package/bundles/cdk.umd.min.js +1 -1
  42. package/bundles/cdk.umd.min.js.map +1 -1
  43. package/drag-drop/typings/drag-events.d.ts +5 -5
  44. package/drag-drop/typings/drag-handle.d.ts +3 -1
  45. package/drag-drop/typings/drag-parent.d.ts +15 -0
  46. package/drag-drop/typings/drag-utils.d.ts +10 -0
  47. package/drag-drop/typings/drag.d.ts +6 -11
  48. package/drag-drop/typings/{drop-container.d.ts → drop-list-container.d.ts} +5 -5
  49. package/{typings/drag-drop/drop.d.ts → drag-drop/typings/drop-list.d.ts} +7 -7
  50. package/drag-drop/typings/index.d.ts +1 -0
  51. package/drag-drop/typings/index.metadata.json +1 -1
  52. package/drag-drop/typings/public-api.d.ts +2 -2
  53. package/esm2015/a11y.js +25 -20
  54. package/esm2015/a11y.js.map +1 -1
  55. package/esm2015/cdk.js +1 -1
  56. package/esm2015/cdk.js.map +1 -1
  57. package/esm2015/drag-drop.js +108 -57
  58. package/esm2015/drag-drop.js.map +1 -1
  59. package/esm2015/overlay.js +12 -12
  60. package/esm2015/overlay.js.map +1 -1
  61. package/esm2015/platform.js +13 -3
  62. package/esm2015/platform.js.map +1 -1
  63. package/esm2015/scrolling.js +10 -6
  64. package/esm2015/scrolling.js.map +1 -1
  65. package/esm2015/stepper.js +1 -1
  66. package/esm2015/stepper.js.map +1 -1
  67. package/esm2015/table.js +5 -1
  68. package/esm2015/table.js.map +1 -1
  69. package/esm2015/text-field.js +11 -4
  70. package/esm2015/text-field.js.map +1 -1
  71. package/esm5/a11y.es5.js +27 -22
  72. package/esm5/a11y.es5.js.map +1 -1
  73. package/esm5/cdk.es5.js +1 -1
  74. package/esm5/cdk.es5.js.map +1 -1
  75. package/esm5/drag-drop.es5.js +124 -81
  76. package/esm5/drag-drop.es5.js.map +1 -1
  77. package/esm5/overlay.es5.js +22 -22
  78. package/esm5/overlay.es5.js.map +1 -1
  79. package/esm5/platform.es5.js +13 -3
  80. package/esm5/platform.es5.js.map +1 -1
  81. package/esm5/scrolling.es5.js +10 -6
  82. package/esm5/scrolling.es5.js.map +1 -1
  83. package/esm5/stepper.es5.js +1 -1
  84. package/esm5/stepper.es5.js.map +1 -1
  85. package/esm5/table.es5.js +5 -1
  86. package/esm5/table.es5.js.map +1 -1
  87. package/esm5/text-field.es5.js +11 -4
  88. package/esm5/text-field.es5.js.map +1 -1
  89. package/overlay/typings/keyboard/overlay-keyboard-dispatcher.d.ts +2 -2
  90. package/overlay/typings/overlay-container.d.ts +2 -2
  91. package/overlay/typings/overlay-directives.d.ts +1 -1
  92. package/overlay/typings/overlay-module.d.ts +1 -1
  93. package/overlay/typings/position/connected-position-strategy.d.ts +1 -1
  94. package/overlay/typings/position/global-position-strategy.d.ts +2 -2
  95. package/overlay/typings/position/overlay-position-builder.d.ts +1 -1
  96. package/package.json +6 -6
  97. package/platform/typings/features/passive-listeners.d.ts +7 -0
  98. package/platform/typings/index.metadata.json +1 -1
  99. package/platform/typings/platform.d.ts +1 -1
  100. package/schematics/index.d.ts +0 -1
  101. package/schematics/index.js +0 -1
  102. package/schematics/index.js.map +1 -1
  103. package/schematics/ng-add/index.d.ts +4 -0
  104. package/schematics/ng-add/index.js +7 -3
  105. package/schematics/ng-add/index.js.map +1 -1
  106. package/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +4 -4
  107. package/schematics/ng-generate/drag-drop/schema.json +2 -1
  108. package/schematics/ng-update/index.js +8 -2
  109. package/schematics/ng-update/index.js.map +1 -1
  110. package/schematics/utils/build-component.d.ts +7 -0
  111. package/schematics/utils/build-component.js +4 -5
  112. package/schematics/utils/build-component.js.map +1 -1
  113. package/schematics/utils/html-head-element.d.ts +13 -0
  114. package/schematics/utils/html-head-element.js +54 -0
  115. package/schematics/utils/html-head-element.js.map +1 -0
  116. package/schematics/utils/index.d.ts +1 -0
  117. package/schematics/utils/index.js +1 -0
  118. package/schematics/utils/index.js.map +1 -1
  119. package/scrolling/typings/index.metadata.json +1 -1
  120. package/scrolling/typings/scroll-dispatcher.d.ts +2 -2
  121. package/scrolling/typings/viewport-ruler.d.ts +2 -2
  122. package/table/typings/index.metadata.json +1 -1
  123. package/text-field/typings/autosize.d.ts +7 -1
  124. package/text-field/typings/index.metadata.json +1 -1
  125. package/typings/a11y/aria-describer/aria-describer.d.ts +2 -2
  126. package/typings/a11y/focus-monitor/focus-monitor.d.ts +2 -2
  127. package/typings/a11y/index.metadata.json +1 -1
  128. package/typings/a11y/key-manager/list-key-manager.d.ts +1 -1
  129. package/typings/a11y/live-announcer/live-announcer.d.ts +2 -2
  130. package/typings/drag-drop/drag-events.d.ts +5 -5
  131. package/typings/drag-drop/drag-handle.d.ts +3 -1
  132. package/typings/drag-drop/drag-parent.d.ts +15 -0
  133. package/typings/drag-drop/drag-utils.d.ts +10 -0
  134. package/typings/drag-drop/drag.d.ts +6 -11
  135. package/typings/drag-drop/{drop-container.d.ts → drop-list-container.d.ts} +5 -5
  136. package/{drag-drop/typings/drop.d.ts → typings/drag-drop/drop-list.d.ts} +7 -7
  137. package/typings/drag-drop/index.d.ts +1 -0
  138. package/typings/drag-drop/index.metadata.json +1 -1
  139. package/typings/drag-drop/public-api.d.ts +2 -2
  140. package/typings/esm5/a11y/aria-describer/aria-describer.d.ts +2 -2
  141. package/typings/esm5/a11y/focus-monitor/focus-monitor.d.ts +2 -2
  142. package/typings/esm5/a11y/index.metadata.json +1 -1
  143. package/typings/esm5/a11y/key-manager/list-key-manager.d.ts +1 -1
  144. package/typings/esm5/a11y/live-announcer/live-announcer.d.ts +2 -2
  145. package/typings/esm5/drag-drop/drag-events.d.ts +5 -5
  146. package/typings/esm5/drag-drop/drag-handle.d.ts +3 -1
  147. package/typings/esm5/drag-drop/drag-parent.d.ts +15 -0
  148. package/typings/esm5/drag-drop/drag-utils.d.ts +10 -0
  149. package/typings/esm5/drag-drop/drag.d.ts +6 -11
  150. package/typings/esm5/drag-drop/{drop-container.d.ts → drop-list-container.d.ts} +5 -5
  151. package/typings/esm5/drag-drop/{drop.d.ts → drop-list.d.ts} +7 -7
  152. package/typings/esm5/drag-drop/index.d.ts +1 -0
  153. package/typings/esm5/drag-drop/index.metadata.json +1 -1
  154. package/typings/esm5/drag-drop/public-api.d.ts +2 -2
  155. package/typings/esm5/index.metadata.json +1 -1
  156. package/typings/esm5/overlay/keyboard/overlay-keyboard-dispatcher.d.ts +2 -2
  157. package/typings/esm5/overlay/overlay-container.d.ts +2 -2
  158. package/typings/esm5/overlay/overlay-directives.d.ts +1 -1
  159. package/typings/esm5/overlay/overlay-module.d.ts +1 -1
  160. package/typings/esm5/overlay/position/connected-position-strategy.d.ts +1 -1
  161. package/typings/esm5/overlay/position/global-position-strategy.d.ts +2 -2
  162. package/typings/esm5/overlay/position/overlay-position-builder.d.ts +1 -1
  163. package/typings/esm5/platform/features/passive-listeners.d.ts +7 -0
  164. package/typings/esm5/platform/index.metadata.json +1 -1
  165. package/typings/esm5/platform/platform.d.ts +1 -1
  166. package/typings/esm5/scrolling/index.metadata.json +1 -1
  167. package/typings/esm5/scrolling/scroll-dispatcher.d.ts +2 -2
  168. package/typings/esm5/scrolling/viewport-ruler.d.ts +2 -2
  169. package/typings/esm5/table/index.metadata.json +1 -1
  170. package/typings/esm5/text-field/autosize.d.ts +7 -1
  171. package/typings/esm5/text-field/index.metadata.json +1 -1
  172. package/typings/index.metadata.json +1 -1
  173. package/typings/overlay/keyboard/overlay-keyboard-dispatcher.d.ts +2 -2
  174. package/typings/overlay/overlay-container.d.ts +2 -2
  175. package/typings/overlay/overlay-directives.d.ts +1 -1
  176. package/typings/overlay/overlay-module.d.ts +1 -1
  177. package/typings/overlay/position/connected-position-strategy.d.ts +1 -1
  178. package/typings/overlay/position/global-position-strategy.d.ts +2 -2
  179. package/typings/overlay/position/overlay-position-builder.d.ts +1 -1
  180. package/typings/platform/features/passive-listeners.d.ts +7 -0
  181. package/typings/platform/index.metadata.json +1 -1
  182. package/typings/platform/platform.d.ts +1 -1
  183. package/typings/schematics/index.d.ts +0 -1
  184. package/typings/schematics/ng-add/index.d.ts +4 -0
  185. package/typings/schematics/utils/build-component.d.ts +7 -0
  186. package/typings/schematics/utils/html-head-element.d.ts +13 -0
  187. package/typings/schematics/utils/index.d.ts +1 -0
  188. package/typings/scrolling/index.metadata.json +1 -1
  189. package/typings/scrolling/scroll-dispatcher.d.ts +2 -2
  190. package/typings/scrolling/viewport-ruler.d.ts +2 -2
  191. package/typings/table/index.metadata.json +1 -1
  192. package/typings/text-field/autosize.d.ts +7 -1
  193. package/typings/text-field/index.metadata.json +1 -1
  194. package/schematics/testing/index.d.ts +0 -9
  195. package/schematics/testing/index.js +0 -15
  196. package/schematics/testing/index.js.map +0 -1
  197. package/schematics/testing/post-scheduled-tasks.d.ts +0 -18
  198. package/schematics/testing/post-scheduled-tasks.js +0 -35
  199. package/schematics/testing/post-scheduled-tasks.js.map +0 -1
  200. package/schematics/testing/test-app.d.ts +0 -10
  201. package/schematics/testing/test-app.js +0 -20
  202. package/schematics/testing/test-app.js.map +0 -1
  203. package/typings/schematics/testing/index.d.ts +0 -9
  204. package/typings/schematics/testing/post-scheduled-tasks.d.ts +0 -18
  205. package/typings/schematics/testing/test-app.d.ts +0 -10
@@ -20,7 +20,7 @@ var hasV8BreakIterator = (typeof Intl !== 'undefined' && (/** @type {?} */ (Intl
20
20
  */
21
21
  var Platform = /** @class */ (function () {
22
22
  /**
23
- * @breaking-change v7.0.0 remove optional decorator
23
+ * @breaking-change 8.0.0 remove optional decorator
24
24
  */
25
25
  function Platform(_platformId) {
26
26
  this._platformId = _platformId;
@@ -87,7 +87,7 @@ var PlatformModule = /** @class */ (function () {
87
87
  function PlatformModule() {
88
88
  }
89
89
  PlatformModule.decorators = [
90
- { type: NgModule },
90
+ { type: NgModule, args: [{},] },
91
91
  ];
92
92
  return PlatformModule;
93
93
  }());
@@ -179,6 +179,16 @@ function supportsPassiveEventListeners() {
179
179
  }
180
180
  return supportsPassiveEvents;
181
181
  }
182
+ /**
183
+ * Normalizes an `AddEventListener` object to something that can be passed
184
+ * to `addEventListener` on any browser, no matter whether it supports the
185
+ * `options` parameter.
186
+ * @param {?} options Object to be normalized.
187
+ * @return {?}
188
+ */
189
+ function normalizePassiveListenerOptions(options) {
190
+ return supportsPassiveEventListeners() ? options : !!options.capture;
191
+ }
182
192
 
183
193
  /**
184
194
  * @fileoverview added by tsickle
@@ -275,5 +285,5 @@ function getRtlScrollAxisType() {
275
285
  * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
276
286
  */
277
287
 
278
- export { Platform, PlatformModule, getSupportedInputTypes, supportsPassiveEventListeners, supportsScrollBehavior, getRtlScrollAxisType, RtlScrollAxisType };
288
+ export { Platform, PlatformModule, getSupportedInputTypes, supportsPassiveEventListeners, normalizePassiveListenerOptions, supportsScrollBehavior, getRtlScrollAxisType, RtlScrollAxisType };
279
289
  //# sourceMappingURL=platform.es5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.es5.js","sources":["../../../src/cdk/platform/features/scrolling.ts","../../../src/cdk/platform/features/passive-listeners.ts","../../../src/cdk/platform/features/input-types.ts","../../../src/cdk/platform/platform-module.ts","../../../src/cdk/platform/platform.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\n/** The possible ways the browser may handle the horizontal scroll axis in RTL languages. */\nexport enum RtlScrollAxisType {\n /**\n * scrollLeft is 0 when scrolled all the way left and (scrollWidth - clientWidth) when scrolled\n * all the way right.\n */\n NORMAL,\n /**\n * scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n * all the way right.\n */\n NEGATED,\n /**\n * scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n * all the way right.\n */\n INVERTED\n}\n\n/** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\nlet rtlScrollAxisType: RtlScrollAxisType;\n\n/** Check whether the browser supports scroll behaviors. */\nexport function supportsScrollBehavior(): boolean {\n return !!(typeof document == 'object' && 'scrollBehavior' in document.documentElement!.style);\n}\n\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nexport function getRtlScrollAxisType(): RtlScrollAxisType {\n // We can't check unless we're on the browser. Just assume 'normal' if we're not.\n if (typeof document !== 'object' || !document) {\n return RtlScrollAxisType.NORMAL;\n }\n\n if (!rtlScrollAxisType) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n const scrollContainer = document.createElement('div');\n const containerStyle = scrollContainer.style;\n scrollContainer.dir = 'rtl';\n containerStyle.height = '1px';\n containerStyle.width = '1px';\n containerStyle.overflow = 'auto';\n containerStyle.visibility = 'hidden';\n containerStyle.pointerEvents = 'none';\n containerStyle.position = 'absolute';\n\n const content = document.createElement('div');\n const contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n\n rtlScrollAxisType = RtlScrollAxisType.NORMAL;\n\n // The viewport starts scrolled all the way to the right in RTL mode. If we are in a NORMAL\n // browser this would mean that the scrollLeft should be 1. If it's zero instead we know we're\n // dealing with one of the other two types of browsers.\n if (scrollContainer.scrollLeft === 0) {\n // In a NEGATED browser the scrollLeft is always somewhere in [-maxScrollAmount, 0]. For an\n // INVERTED browser it is always somewhere in [0, maxScrollAmount]. We can determine which by\n // setting to the scrollLeft to 1. This is past the max for a NEGATED browser, so it will\n // return 0 when we read it again.\n scrollContainer.scrollLeft = 1;\n rtlScrollAxisType =\n scrollContainer.scrollLeft === 0 ? RtlScrollAxisType.NEGATED : RtlScrollAxisType.INVERTED;\n }\n\n scrollContainer.parentNode!.removeChild(scrollContainer);\n }\n return rtlScrollAxisType;\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/** Cached result of whether the user's browser supports passive event listeners. */\nlet supportsPassiveEvents: boolean;\n\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nexport function supportsPassiveEventListeners(): boolean {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener('test', null!, Object.defineProperty({}, 'passive', {\n get: () => supportsPassiveEvents = true\n }));\n } finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n\n return supportsPassiveEvents;\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/** Cached result Set of input types support by the current browser. */\nlet supportedInputTypes: Set<string>;\n\n/** Types of `<input>` that *might* be supported. */\nconst candidateInputTypes = [\n // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n // first changing it to something else:\n // The specified value \"\" does not conform to the required format.\n // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n 'color',\n 'button',\n 'checkbox',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week',\n];\n\n/** @returns The input types supported by this browser. */\nexport function getSupportedInputTypes(): Set<string> {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\n }\n\n // We can't check if an input type is not supported until we're on the browser, so say that\n // everything is supported when not on the browser. We don't use `Platform` here since it's\n // just a helper function and can't inject it.\n if (typeof document !== 'object' || !document) {\n supportedInputTypes = new Set(candidateInputTypes);\n return supportedInputTypes;\n }\n\n let featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(candidateInputTypes.filter(value => {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }));\n\n return supportedInputTypes;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\n\n\n@NgModule()\nexport class PlatformModule {}\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 {Inject, Injectable, Optional, PLATFORM_ID} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\n\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nconst hasV8BreakIterator = (typeof Intl !== 'undefined' && (Intl as any).v8BreakIterator);\n\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\n@Injectable({providedIn: 'root'})\nexport class Platform {\n /**\n * Whether the Angular application is being rendered in the browser.\n * We want to use the Angular platform check because if the Document is shimmed\n * without the navigator, the following checks will fail. This is preferred because\n * sometimes the Document may be shimmed without the user's knowledge or intention\n */\n isBrowser: boolean = this._platformId ?\n isPlatformBrowser(this._platformId) : typeof document === 'object' && !!document;\n\n /** Whether the current browser is Microsoft Edge. */\n EDGE: boolean = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n\n /** Whether the current rendering engine is Microsoft Trident. */\n TRIDENT: boolean = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n\n /** Whether the current rendering engine is Blink. */\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n BLINK: boolean = this.isBrowser && (!!((window as any).chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT);\n\n /** Whether the current rendering engine is WebKit. */\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n WEBKIT: boolean = this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n\n /** Whether the current platform is Apple iOS. */\n IOS: boolean = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) &&\n !('MSStream' in window);\n\n /** Whether the current browser is Firefox. */\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n FIREFOX: boolean = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n ANDROID: boolean = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n\n /** Whether the current browser is Safari. */\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n SAFARI: boolean = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n\n /**\n * @breaking-change v7.0.0 remove optional decorator\n */\n constructor(@Optional() @Inject(PLATFORM_ID) private _platformId?: Object) {\n }\n}\n\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.es5.js","sources":["../../../src/cdk/platform/features/scrolling.ts","../../../src/cdk/platform/features/passive-listeners.ts","../../../src/cdk/platform/features/input-types.ts","../../../src/cdk/platform/platform-module.ts","../../../src/cdk/platform/platform.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\n/** The possible ways the browser may handle the horizontal scroll axis in RTL languages. */\nexport enum RtlScrollAxisType {\n /**\n * scrollLeft is 0 when scrolled all the way left and (scrollWidth - clientWidth) when scrolled\n * all the way right.\n */\n NORMAL,\n /**\n * scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n * all the way right.\n */\n NEGATED,\n /**\n * scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n * all the way right.\n */\n INVERTED\n}\n\n/** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\nlet rtlScrollAxisType: RtlScrollAxisType;\n\n/** Check whether the browser supports scroll behaviors. */\nexport function supportsScrollBehavior(): boolean {\n return !!(typeof document == 'object' && 'scrollBehavior' in document.documentElement!.style);\n}\n\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nexport function getRtlScrollAxisType(): RtlScrollAxisType {\n // We can't check unless we're on the browser. Just assume 'normal' if we're not.\n if (typeof document !== 'object' || !document) {\n return RtlScrollAxisType.NORMAL;\n }\n\n if (!rtlScrollAxisType) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n const scrollContainer = document.createElement('div');\n const containerStyle = scrollContainer.style;\n scrollContainer.dir = 'rtl';\n containerStyle.height = '1px';\n containerStyle.width = '1px';\n containerStyle.overflow = 'auto';\n containerStyle.visibility = 'hidden';\n containerStyle.pointerEvents = 'none';\n containerStyle.position = 'absolute';\n\n const content = document.createElement('div');\n const contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n\n rtlScrollAxisType = RtlScrollAxisType.NORMAL;\n\n // The viewport starts scrolled all the way to the right in RTL mode. If we are in a NORMAL\n // browser this would mean that the scrollLeft should be 1. If it's zero instead we know we're\n // dealing with one of the other two types of browsers.\n if (scrollContainer.scrollLeft === 0) {\n // In a NEGATED browser the scrollLeft is always somewhere in [-maxScrollAmount, 0]. For an\n // INVERTED browser it is always somewhere in [0, maxScrollAmount]. We can determine which by\n // setting to the scrollLeft to 1. This is past the max for a NEGATED browser, so it will\n // return 0 when we read it again.\n scrollContainer.scrollLeft = 1;\n rtlScrollAxisType =\n scrollContainer.scrollLeft === 0 ? RtlScrollAxisType.NEGATED : RtlScrollAxisType.INVERTED;\n }\n\n scrollContainer.parentNode!.removeChild(scrollContainer);\n }\n return rtlScrollAxisType;\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/** Cached result of whether the user's browser supports passive event listeners. */\nlet supportsPassiveEvents: boolean;\n\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nexport function supportsPassiveEventListeners(): boolean {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener('test', null!, Object.defineProperty({}, 'passive', {\n get: () => supportsPassiveEvents = true\n }));\n } finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n\n return supportsPassiveEvents;\n}\n\n/**\n * Normalizes an `AddEventListener` object to something that can be passed\n * to `addEventListener` on any browser, no matter whether it supports the\n * `options` parameter.\n * @param options Object to be normalized.\n */\nexport function normalizePassiveListenerOptions(options: AddEventListenerOptions):\n AddEventListenerOptions | boolean {\n return supportsPassiveEventListeners() ? options : !!options.capture;\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/** Cached result Set of input types support by the current browser. */\nlet supportedInputTypes: Set<string>;\n\n/** Types of `<input>` that *might* be supported. */\nconst candidateInputTypes = [\n // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n // first changing it to something else:\n // The specified value \"\" does not conform to the required format.\n // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n 'color',\n 'button',\n 'checkbox',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week',\n];\n\n/** @returns The input types supported by this browser. */\nexport function getSupportedInputTypes(): Set<string> {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\n }\n\n // We can't check if an input type is not supported until we're on the browser, so say that\n // everything is supported when not on the browser. We don't use `Platform` here since it's\n // just a helper function and can't inject it.\n if (typeof document !== 'object' || !document) {\n supportedInputTypes = new Set(candidateInputTypes);\n return supportedInputTypes;\n }\n\n let featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(candidateInputTypes.filter(value => {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }));\n\n return supportedInputTypes;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\n\n\n@NgModule({})\nexport class PlatformModule {}\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 {Inject, Injectable, Optional, PLATFORM_ID} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\n\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nconst hasV8BreakIterator = (typeof Intl !== 'undefined' && (Intl as any).v8BreakIterator);\n\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\n@Injectable({providedIn: 'root'})\nexport class Platform {\n /**\n * Whether the Angular application is being rendered in the browser.\n * We want to use the Angular platform check because if the Document is shimmed\n * without the navigator, the following checks will fail. This is preferred because\n * sometimes the Document may be shimmed without the user's knowledge or intention\n */\n isBrowser: boolean = this._platformId ?\n isPlatformBrowser(this._platformId) : typeof document === 'object' && !!document;\n\n /** Whether the current browser is Microsoft Edge. */\n EDGE: boolean = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n\n /** Whether the current rendering engine is Microsoft Trident. */\n TRIDENT: boolean = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n\n /** Whether the current rendering engine is Blink. */\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n BLINK: boolean = this.isBrowser && (!!((window as any).chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT);\n\n /** Whether the current rendering engine is WebKit. */\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n WEBKIT: boolean = this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n\n /** Whether the current platform is Apple iOS. */\n IOS: boolean = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) &&\n !('MSStream' in window);\n\n /** Whether the current browser is Firefox. */\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n FIREFOX: boolean = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n ANDROID: boolean = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n\n /** Whether the current browser is Safari. */\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n SAFARI: boolean = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n\n /**\n * @breaking-change 8.0.0 remove optional decorator\n */\n constructor(@Optional() @Inject(PLATFORM_ID) private _platformId?: Object) {\n }\n}\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AIcA,IAAM,kBAAkB,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,mBAAC,IAAW,GAAE,eAAe,CAAC,CAAC;;;;;;;;;IA0DxF,SAAF,QAAA,CAAuD,WAAoB,EAA3E;QAAuD,IAAvD,CAAA,WAAkE,GAAX,WAAW,CAAS;;;;;;;QA5CzE,IAAF,CAAA,SAAA,GAAuB,IAAI,CAAC,WAAW;YACjC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC;;;;QAGrF,IAAF,CAAA,IAAA,GAAkB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;;;;QAGtE,IAAF,CAAA,OAAA,GAAqB,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;;;;QAIjF,IAAF,CAAA,KAAA,GAAmB,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,mBAAC,MAAa,GAAE,MAAM,IAAI,kBAAkB,CAAC;YAChF,OAAO,GAAG,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;;;QAK/D,IAAF,CAAA,MAAA,GAAoB,IAAI,CAAC,SAAS;YAC5B,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;;;QAG3F,IAAF,CAAA,GAAA,GAAiB,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACzE,EAAE,UAAU,IAAI,MAAM,CAAC,CAAC;;;;QAO5B,IAAF,CAAA,OAAA,GAAqB,IAAI,CAAC,SAAS,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;;;;QAItF,IAAF,CAAA,OAAA,GAAqB,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;;;QAM3F,IAAF,CAAA,MAAA,GAAoB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;KAMtF;;QArDH,EAAA,IAAA,EAAC,UAAU,EAAX,IAAA,EAAA,CAAY,EAAC,UAAU,EAAE,MAAM,EAAC,EAAhC,EAAA;;;;QAoDA,EAAA,IAAA,EAAqE,MAAM,EAA3E,UAAA,EAAA,CAAA,EAAA,IAAA,EAAe,QAAQ,EAAvB,EAAA,EAAA,IAAA,EAA2B,MAAM,EAAjC,IAAA,EAAA,CAAkC,WAAW,EAA7C,EAAA,CAAA,EAAA;;;IAxEA,OAAA,QAAA,CAAA;;;;;;;;;;;QDWA,EAAA,IAAA,EAAC,QAAQ,EAAT,IAAA,EAAA,CAAU,EAAE,EAAZ,EAAA;;IAXA,OAAA,cAAA,CAAA;;;;;;;;;;;ADSA,IAAI,mBAAmB,CAAc;;;;AAGrC,IAAM,mBAAmB,GAAG;IAK1B,OAAO;IACP,QAAQ;IACR,UAAU;IACV,MAAM;IACN,gBAAgB;IAChB,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;CACP,CAAC;;;;AAGF,AAAA,SAAgB,sBAAsB,GAAtC;;IAEE,IAAI,mBAAmB,EAAE;QACvB,OAAO,mBAAmB,CAAC;KAC5B;;;;IAKD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE;QAC7C,mBAAmB,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACnD,OAAO,mBAAmB,CAAC;KAC5B;;IAED,IAAI,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvD,mBAAmB,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAA,KAAK,EAAhE;QACI,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,gBAAgB,CAAC,IAAI,KAAK,KAAK,CAAC;KACxC,CAAC,CAAC,CAAC;IAEJ,OAAO,mBAAmB,CAAC;CAC5B;;;;;;;;;;ADtDD,IAAI,qBAAqB,CAAU;;;;;;AAMnC,AAAA,SAAgB,6BAA6B,GAA7C;IACE,IAAI,qBAAqB,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QAClE,IAAI;YACF,MAAM,CAAC,gBAAgB,CAAC,MAAM,qBAAE,IAAI,IAAG,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE;gBAC1E,GAAG,EAAE,YAAb,EAAmB,OAAA,qBAAqB,GAAG,IAAI,CAA/C,EAA+C;aACxC,CAAC,CAAC,CAAC;SACL;gBAAS;YACR,qBAAqB,GAAG,qBAAqB,IAAI,KAAK,CAAC;SACxD;KACF;IAED,OAAO,qBAAqB,CAAC;CAC9B;;;;;;;;AAQD,AAAA,SAAgB,+BAA+B,CAAC,OAAgC,EAAhF;IAEE,OAAO,6BAA6B,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;CACtE;;;;;;;;;;;;;IDxBC,MAAF,EAAA,CAAQ;;;;;IAKN,OAAF,EAAA,CAAS;;;;;IAKP,QAAF,EAAA,CAAU;;AAVV,iBAAA,CAAA,iBAAA,CAAE,MAAM,CAAR,GAAA,QAAA,CAAA;AAKA,iBAAA,CAAA,iBAAA,CAAE,OAAO,CAAT,GAAA,SAAA,CAAA;AAKA,iBAAA,CAAA,iBAAA,CAAE,QAAQ,CAAV,GAAA,UAAA,CAAA;;;;AAIA,IAAI,iBAAiB,CAAoB;;;;;AAGzC,AAAA,SAAgB,sBAAsB,GAAtC;IACE,OAAO,CAAC,EAAE,OAAO,QAAQ,IAAI,QAAQ,IAAK,gBAAgB,qBAA5D,EAAgE,QAAQ,CAAC,eAAe,GAAE,KAAK,CAAC,CAAC;CAChG;;;;;;AAMD,AAAA,SAAgB,oBAAoB,GAApC;;IAEE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE;QAC7C,OAAO,iBAAiB,CAAC,MAAM,CAAC;KACjC;IAED,IAAI,CAAC,iBAAiB,EAAE;;QAEtB,IAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;QACtD,IAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC;QAC7C,eAAe,CAAC,GAAG,GAAG,KAAK,CAAC;QAC5B,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;QAC9B,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;QAC7B,cAAc,CAAC,QAAQ,GAAG,MAAM,CAAC;QACjC,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAC;QACrC,cAAc,CAAC,aAAa,GAAG,MAAM,CAAC;QACtC,cAAc,CAAC,QAAQ,GAAG,UAAU,CAAC;;QAErC,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;QAC9C,IAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QACnC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QAC3B,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;QAE5B,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAE3C,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC;;;;QAK7C,IAAI,eAAe,CAAC,UAAU,KAAK,CAAC,EAAE;;;;;YAKpC,eAAe,CAAC,UAAU,GAAG,CAAC,CAAC;YAC/B,iBAAiB;gBACb,eAAe,CAAC,UAAU,KAAK,CAAC,GAAG,iBAAiB,CAAC,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC;SAC/F;QAEL,EAAI,eAAe,CAAC,UAAU,GAAE,WAAW,CAAC,eAAe,CAA3D,CAAA;KACG;IACD,OAAO,iBAAiB,CAAC;CAC1B;;;;;;;;;;;;;;"}
@@ -616,7 +616,7 @@ var ScrollDispatcher = /** @class */ (function () {
616
616
  return ScrollDispatcher;
617
617
  }());
618
618
  /**
619
- * \@docs-private \@deprecated \@breaking-change 7.0.0
619
+ * \@docs-private \@deprecated \@breaking-change 8.0.0
620
620
  * @param {?} parentDispatcher
621
621
  * @param {?} ngZone
622
622
  * @param {?} platform
@@ -626,7 +626,7 @@ function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher, ngZone, platform)
626
626
  return parentDispatcher || new ScrollDispatcher(ngZone, platform);
627
627
  }
628
628
  /** *
629
- * \@docs-private \@deprecated \@breaking-change 7.0.0
629
+ * \@docs-private \@deprecated \@breaking-change 8.0.0
630
630
  @type {?} */
631
631
  var SCROLL_DISPATCHER_PROVIDER = {
632
632
  // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.
@@ -964,6 +964,9 @@ var CdkVirtualScrollViewport = /** @class */ (function (_super) {
964
964
  * A list of functions to run after the next change detection cycle.
965
965
  */
966
966
  _this._runAfterChangeDetection = [];
967
+ if (!_scrollStrategy) {
968
+ throw Error('Error: cdk-virtual-scroll-viewport requires the "itemSize" property to be set.');
969
+ }
967
970
  return _this;
968
971
  }
969
972
  /**
@@ -1036,6 +1039,7 @@ var CdkVirtualScrollViewport = /** @class */ (function (_super) {
1036
1039
  _this._dataLength = newLength;
1037
1040
  _this._scrollStrategy.onDataLengthChanged();
1038
1041
  }
1042
+ _this._doChangeDetection();
1039
1043
  });
1040
1044
  });
1041
1045
  };
@@ -1399,7 +1403,7 @@ var CdkVirtualScrollViewport = /** @class */ (function (_super) {
1399
1403
  CdkVirtualScrollViewport.decorators = [
1400
1404
  { type: Component, args: [{selector: 'cdk-virtual-scroll-viewport',
1401
1405
  template: "<div #contentWrapper class=\"cdk-virtual-scroll-content-wrapper\"><ng-content></ng-content></div><div class=\"cdk-virtual-scroll-spacer\" [style.transform]=\"_totalContentSizeTransform\"></div>",
1402
- styles: ["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:0}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:0}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}"],
1406
+ styles: ["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:0}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:0}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}"],
1403
1407
  host: {
1404
1408
  'class': 'cdk-virtual-scroll-viewport',
1405
1409
  '[class.cdk-virtual-scroll-orientation-horizontal]': 'orientation === "horizontal"',
@@ -1414,7 +1418,7 @@ var CdkVirtualScrollViewport = /** @class */ (function (_super) {
1414
1418
  { type: ElementRef },
1415
1419
  { type: ChangeDetectorRef },
1416
1420
  { type: NgZone },
1417
- { type: undefined, decorators: [{ type: Inject, args: [VIRTUAL_SCROLL_STRATEGY,] }] },
1421
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [VIRTUAL_SCROLL_STRATEGY,] }] },
1418
1422
  { type: Directionality, decorators: [{ type: Optional }] },
1419
1423
  { type: ScrollDispatcher }
1420
1424
  ]; };
@@ -2040,7 +2044,7 @@ var ViewportRuler = /** @class */ (function () {
2040
2044
  return ViewportRuler;
2041
2045
  }());
2042
2046
  /**
2043
- * \@docs-private \@deprecated \@breaking-change 7.0.0
2047
+ * \@docs-private \@deprecated \@breaking-change 8.0.0
2044
2048
  * @param {?} parentRuler
2045
2049
  * @param {?} platform
2046
2050
  * @param {?} ngZone
@@ -2050,7 +2054,7 @@ function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, platform, ngZone) {
2050
2054
  return parentRuler || new ViewportRuler(platform, ngZone);
2051
2055
  }
2052
2056
  /** *
2053
- * \@docs-private \@deprecated \@breaking-change 7.0.0
2057
+ * \@docs-private \@deprecated \@breaking-change 8.0.0
2054
2058
  @type {?} */
2055
2059
  var VIEWPORT_RULER_PROVIDER = {
2056
2060
  // If there is already a ViewportRuler available, use that. Otherwise, provide a new one.