@angular/cdk 9.1.2 → 9.2.1

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 (199) hide show
  1. package/a11y/focus-monitor/focus-monitor.d.ts +42 -2
  2. package/a11y/index.metadata.json +1 -1
  3. package/bundles/cdk-a11y.umd.js +107 -75
  4. package/bundles/cdk-a11y.umd.js.map +1 -1
  5. package/bundles/cdk-a11y.umd.min.js +7 -7
  6. package/bundles/cdk-a11y.umd.min.js.map +1 -1
  7. package/bundles/cdk-clipboard.umd.js +1 -1
  8. package/bundles/cdk-clipboard.umd.js.map +1 -1
  9. package/bundles/cdk-clipboard.umd.min.js +1 -1
  10. package/bundles/cdk-clipboard.umd.min.js.map +1 -1
  11. package/bundles/cdk-coercion.umd.js +0 -1
  12. package/bundles/cdk-coercion.umd.js.map +1 -1
  13. package/bundles/cdk-coercion.umd.min.js.map +1 -1
  14. package/bundles/cdk-drag-drop.umd.js +121 -95
  15. package/bundles/cdk-drag-drop.umd.js.map +1 -1
  16. package/bundles/cdk-drag-drop.umd.min.js +15 -8
  17. package/bundles/cdk-drag-drop.umd.min.js.map +1 -1
  18. package/bundles/cdk-overlay.umd.js +2 -1
  19. package/bundles/cdk-overlay.umd.js.map +1 -1
  20. package/bundles/cdk-overlay.umd.min.js +4 -4
  21. package/bundles/cdk-overlay.umd.min.js.map +1 -1
  22. package/bundles/cdk-platform.umd.js +11 -0
  23. package/bundles/cdk-platform.umd.js.map +1 -1
  24. package/bundles/cdk-platform.umd.min.js +6 -6
  25. package/bundles/cdk-platform.umd.min.js.map +1 -1
  26. package/bundles/cdk-scrolling.umd.js +41 -10
  27. package/bundles/cdk-scrolling.umd.js.map +1 -1
  28. package/bundles/cdk-scrolling.umd.min.js +8 -8
  29. package/bundles/cdk-scrolling.umd.min.js.map +1 -1
  30. package/bundles/cdk-table.umd.js +58 -27
  31. package/bundles/cdk-table.umd.js.map +1 -1
  32. package/bundles/cdk-table.umd.min.js +12 -5
  33. package/bundles/cdk-table.umd.min.js.map +1 -1
  34. package/bundles/cdk-testing-protractor.umd.js +15 -9
  35. package/bundles/cdk-testing-protractor.umd.js.map +1 -1
  36. package/bundles/cdk-testing-protractor.umd.min.js +2 -2
  37. package/bundles/cdk-testing-protractor.umd.min.js.map +1 -1
  38. package/bundles/cdk-testing-testbed.umd.js +15 -9
  39. package/bundles/cdk-testing-testbed.umd.js.map +1 -1
  40. package/bundles/cdk-testing-testbed.umd.min.js +8 -8
  41. package/bundles/cdk-testing-testbed.umd.min.js.map +1 -1
  42. package/bundles/cdk-text-field.umd.js +21 -6
  43. package/bundles/cdk-text-field.umd.js.map +1 -1
  44. package/bundles/cdk-text-field.umd.min.js +3 -3
  45. package/bundles/cdk-text-field.umd.min.js.map +1 -1
  46. package/bundles/cdk-tree.umd.js +8 -4
  47. package/bundles/cdk-tree.umd.js.map +1 -1
  48. package/bundles/cdk-tree.umd.min.js +1 -1
  49. package/bundles/cdk-tree.umd.min.js.map +1 -1
  50. package/bundles/cdk.umd.js +1 -1
  51. package/bundles/cdk.umd.js.map +1 -1
  52. package/bundles/cdk.umd.min.js +1 -1
  53. package/bundles/cdk.umd.min.js.map +1 -1
  54. package/coercion/array.d.ts +1 -0
  55. package/drag-drop/client-rect.d.ts +31 -0
  56. package/drag-drop/directives/config.d.ts +1 -0
  57. package/drag-drop/directives/drop-list.d.ts +4 -3
  58. package/drag-drop/drag-ref.d.ts +4 -0
  59. package/drag-drop/index.metadata.json +1 -1
  60. package/esm2015/a11y/focus-monitor/focus-monitor.js +163 -76
  61. package/esm2015/a11y/focus-trap/configurable-focus-trap-factory.js +3 -3
  62. package/esm2015/a11y/focus-trap/focus-trap.js +1 -1
  63. package/esm2015/a11y/high-contrast-mode/high-contrast-mode-detector.js +8 -4
  64. package/esm2015/a11y/live-announcer/live-announcer.js +1 -1
  65. package/esm2015/a11y/public-api.js +2 -2
  66. package/esm2015/bidi/directionality.js +1 -1
  67. package/esm2015/clipboard/pending-copy.js +3 -3
  68. package/esm2015/coercion/array.js +1 -2
  69. package/esm2015/drag-drop/client-rect.js +75 -0
  70. package/esm2015/drag-drop/directives/config.js +3 -1
  71. package/esm2015/drag-drop/directives/drag.js +3 -2
  72. package/esm2015/drag-drop/directives/drop-list.js +24 -18
  73. package/esm2015/drag-drop/drag-drop.js +1 -1
  74. package/esm2015/drag-drop/drag-ref.js +61 -25
  75. package/esm2015/drag-drop/drop-list-ref.js +15 -82
  76. package/esm2015/layout/breakpoints-observer.js +1 -1
  77. package/esm2015/overlay/position/flexible-connected-position-strategy.js +3 -2
  78. package/esm2015/overlay/position/overlay-position-builder.js +1 -1
  79. package/esm2015/platform/features/shadow-dom.js +16 -1
  80. package/esm2015/platform/public-api.js +2 -2
  81. package/esm2015/scrolling/scroll-dispatcher.js +38 -5
  82. package/esm2015/scrolling/viewport-ruler.js +44 -5
  83. package/esm2015/table/cell.js +18 -8
  84. package/esm2015/table/public-api.js +3 -2
  85. package/esm2015/table/row.js +24 -8
  86. package/esm2015/table/table.js +26 -12
  87. package/esm2015/table/text-column.js +3 -26
  88. package/esm2015/table/tokens.js +44 -0
  89. package/esm2015/testing/protractor/protractor-harness-environment.js +13 -8
  90. package/esm2015/testing/testbed/testbed-harness-environment.js +16 -10
  91. package/esm2015/text-field/autosize.js +38 -4
  92. package/esm2015/tree/padding.js +9 -10
  93. package/esm2015/version.js +1 -1
  94. package/esm5/a11y/focus-monitor/focus-monitor.js +87 -56
  95. package/esm5/a11y/focus-trap/configurable-focus-trap-factory.js +3 -3
  96. package/esm5/a11y/focus-trap/focus-trap.js +1 -1
  97. package/esm5/a11y/high-contrast-mode/high-contrast-mode-detector.js +7 -4
  98. package/esm5/a11y/live-announcer/live-announcer.js +1 -1
  99. package/esm5/bidi/directionality.js +1 -1
  100. package/esm5/clipboard/pending-copy.js +2 -2
  101. package/esm5/coercion/array.js +1 -2
  102. package/esm5/drag-drop/client-rect.js +60 -0
  103. package/esm5/drag-drop/directives/config.js +1 -1
  104. package/esm5/drag-drop/directives/drag.js +3 -2
  105. package/esm5/drag-drop/directives/drop-list.js +13 -10
  106. package/esm5/drag-drop/drag-drop.js +1 -1
  107. package/esm5/drag-drop/drag-ref.js +39 -21
  108. package/esm5/drag-drop/drop-list-ref.js +13 -67
  109. package/esm5/layout/breakpoints-observer.js +1 -1
  110. package/esm5/overlay/position/flexible-connected-position-strategy.js +3 -2
  111. package/esm5/overlay/position/overlay-position-builder.js +1 -1
  112. package/esm5/platform/features/shadow-dom.js +11 -1
  113. package/esm5/scrolling/scroll-dispatcher.js +21 -5
  114. package/esm5/scrolling/viewport-ruler.js +24 -5
  115. package/esm5/table/cell.js +13 -8
  116. package/esm5/table/public-api.js +2 -1
  117. package/esm5/table/row.js +21 -11
  118. package/esm5/table/table.js +16 -11
  119. package/esm5/table/text-column.js +3 -4
  120. package/esm5/table/tokens.js +16 -0
  121. package/esm5/testing/protractor/protractor-harness-environment.js +17 -11
  122. package/esm5/testing/testbed/testbed-harness-environment.js +17 -11
  123. package/esm5/text-field/autosize.js +20 -4
  124. package/esm5/tree/padding.js +9 -5
  125. package/esm5/version.js +1 -1
  126. package/fesm2015/a11y.js +190 -103
  127. package/fesm2015/a11y.js.map +1 -1
  128. package/fesm2015/cdk.js +1 -1
  129. package/fesm2015/cdk.js.map +1 -1
  130. package/fesm2015/clipboard.js +2 -2
  131. package/fesm2015/clipboard.js.map +1 -1
  132. package/fesm2015/coercion.js +0 -1
  133. package/fesm2015/coercion.js.map +1 -1
  134. package/fesm2015/drag-drop.js +174 -123
  135. package/fesm2015/drag-drop.js.map +1 -1
  136. package/fesm2015/overlay.js +2 -1
  137. package/fesm2015/overlay.js.map +1 -1
  138. package/fesm2015/platform.js +16 -1
  139. package/fesm2015/platform.js.map +1 -1
  140. package/fesm2015/scrolling.js +76 -7
  141. package/fesm2015/scrolling.js.map +1 -1
  142. package/fesm2015/table.js +98 -49
  143. package/fesm2015/table.js.map +1 -1
  144. package/fesm2015/testing/protractor.js +13 -8
  145. package/fesm2015/testing/protractor.js.map +1 -1
  146. package/fesm2015/testing/testbed.js +15 -9
  147. package/fesm2015/testing/testbed.js.map +1 -1
  148. package/fesm2015/text-field.js +37 -3
  149. package/fesm2015/text-field.js.map +1 -1
  150. package/fesm2015/tree.js +8 -9
  151. package/fesm2015/tree.js.map +1 -1
  152. package/fesm5/a11y.js +107 -76
  153. package/fesm5/a11y.js.map +1 -1
  154. package/fesm5/cdk.js +1 -1
  155. package/fesm5/cdk.js.map +1 -1
  156. package/fesm5/clipboard.js +1 -1
  157. package/fesm5/clipboard.js.map +1 -1
  158. package/fesm5/coercion.js +0 -1
  159. package/fesm5/coercion.js.map +1 -1
  160. package/fesm5/drag-drop.js +122 -96
  161. package/fesm5/drag-drop.js.map +1 -1
  162. package/fesm5/overlay.js +2 -1
  163. package/fesm5/overlay.js.map +1 -1
  164. package/fesm5/platform.js +11 -1
  165. package/fesm5/platform.js.map +1 -1
  166. package/fesm5/scrolling.js +39 -7
  167. package/fesm5/scrolling.js.map +1 -1
  168. package/fesm5/table.js +59 -29
  169. package/fesm5/table.js.map +1 -1
  170. package/fesm5/testing/protractor.js +17 -11
  171. package/fesm5/testing/protractor.js.map +1 -1
  172. package/fesm5/testing/testbed.js +16 -10
  173. package/fesm5/testing/testbed.js.map +1 -1
  174. package/fesm5/text-field.js +19 -3
  175. package/fesm5/text-field.js.map +1 -1
  176. package/fesm5/tree.js +8 -4
  177. package/fesm5/tree.js.map +1 -1
  178. package/package.json +1 -1
  179. package/platform/features/shadow-dom.d.ts +2 -0
  180. package/platform/index.metadata.json +1 -1
  181. package/schematics/ng-add/index.js +1 -1
  182. package/schematics/ng-update/upgrade-rules/class-names-rule.js +3 -1
  183. package/schematics/utils/ast/ng-module-imports.js +3 -2
  184. package/scrolling/index.metadata.json +1 -1
  185. package/scrolling/scroll-dispatcher.d.ts +9 -1
  186. package/scrolling/viewport-ruler.d.ts +9 -1
  187. package/table/cell.d.ts +2 -0
  188. package/table/index.metadata.json +1 -1
  189. package/table/public-api.d.ts +1 -0
  190. package/table/row.d.ts +6 -3
  191. package/table/table.d.ts +2 -0
  192. package/table/text-column.d.ts +2 -13
  193. package/table/tokens.d.ts +25 -0
  194. package/testing/protractor/protractor-harness-environment.d.ts +10 -3
  195. package/testing/testbed/testbed-harness-environment.d.ts +12 -4
  196. package/text-field/autosize.d.ts +9 -1
  197. package/text-field/index.metadata.json +1 -1
  198. package/tree/index.metadata.json +1 -1
  199. package/tree/padding.d.ts +6 -2
@@ -267,6 +267,16 @@
267
267
  }
268
268
  return shadowDomIsSupported;
269
269
  }
270
+ /** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */
271
+ function _getShadowRoot(element) {
272
+ if (_supportsShadowDom()) {
273
+ var rootNode = element.getRootNode ? element.getRootNode() : null;
274
+ if (rootNode instanceof ShadowRoot) {
275
+ return rootNode;
276
+ }
277
+ }
278
+ return null;
279
+ }
270
280
 
271
281
  /**
272
282
  * @license
@@ -282,6 +292,7 @@
282
292
 
283
293
  exports.Platform = Platform;
284
294
  exports.PlatformModule = PlatformModule;
295
+ exports._getShadowRoot = _getShadowRoot;
285
296
  exports._supportsShadowDom = _supportsShadowDom;
286
297
  exports.getRtlScrollAxisType = getRtlScrollAxisType;
287
298
  exports.getSupportedInputTypes = getSupportedInputTypes;
@@ -1 +1 @@
1
- {"version":3,"file":"cdk-platform.umd.js","sources":["../../../../../../src/cdk/platform/platform.ts","../../../../../../src/cdk/platform/platform-module.ts","../../../../../../src/cdk/platform/features/input-types.ts","../../../../../../src/cdk/platform/features/passive-listeners.ts","../../../../../../src/cdk/platform/features/scrolling.ts","../../../../../../src/cdk/platform/features/shadow-dom.ts","../../../../../../src/cdk/platform/public-api.ts","../../../../../../src/cdk/platform/index.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 {Inject, Injectable, Optional, PLATFORM_ID} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator: boolean;\n\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = (typeof Intl !== 'undefined' && (Intl as any).v8BreakIterator);\n} catch {\n hasV8BreakIterator = false;\n}\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 // 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 /** Whether the Angular application is being rendered in the browser. */\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 // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n BLINK: boolean = this.isBrowser && (!!((window as any).chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT);\n\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 /** Whether the current rendering engine is WebKit. */\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 // 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 /** Whether the current browser is Firefox. */\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 // 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 /** Whether the current browser is Safari. */\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 * @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\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\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/** The possible ways the browser may handle the horizontal scroll axis in RTL languages. */\nexport const 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|undefined;\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 == null) {\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\nlet shadowDomIsSupported: boolean;\n\n/** Checks whether the user's browser support Shadow DOM. */\nexport function _supportsShadowDom(): boolean {\n if (shadowDomIsSupported == null) {\n const head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && ((head as any).createShadowRoot || head.attachShadow));\n }\n\n return shadowDomIsSupported;\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\nexport * from './platform';\nexport * from './platform-module';\nexport * from './features/input-types';\nexport * from './features/passive-listeners';\nexport * from './features/scrolling';\nexport * from './features/shadow-dom';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["isPlatformBrowser","Injectable","Optional","Inject","PLATFORM_ID","NgModule"],"mappings":"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"}
1
+ {"version":3,"file":"cdk-platform.umd.js","sources":["../../../../../../src/cdk/platform/platform.ts","../../../../../../src/cdk/platform/platform-module.ts","../../../../../../src/cdk/platform/features/input-types.ts","../../../../../../src/cdk/platform/features/passive-listeners.ts","../../../../../../src/cdk/platform/features/scrolling.ts","../../../../../../src/cdk/platform/features/shadow-dom.ts","../../../../../../src/cdk/platform/public-api.ts","../../../../../../src/cdk/platform/index.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 {Inject, Injectable, Optional, PLATFORM_ID} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator: boolean;\n\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = (typeof Intl !== 'undefined' && (Intl as any).v8BreakIterator);\n} catch {\n hasV8BreakIterator = false;\n}\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 // 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 /** Whether the Angular application is being rendered in the browser. */\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 // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n BLINK: boolean = this.isBrowser && (!!((window as any).chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT);\n\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 /** Whether the current rendering engine is WebKit. */\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 // 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 /** Whether the current browser is Firefox. */\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 // 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 /** Whether the current browser is Safari. */\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 * @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\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\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/** The possible ways the browser may handle the horizontal scroll axis in RTL languages. */\nexport const 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|undefined;\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 == null) {\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\nlet shadowDomIsSupported: boolean;\n\n/** Checks whether the user's browser support Shadow DOM. */\nexport function _supportsShadowDom(): boolean {\n if (shadowDomIsSupported == null) {\n const head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && ((head as any).createShadowRoot || head.attachShadow));\n }\n\n return shadowDomIsSupported;\n}\n\n/** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\nexport function _getShadowRoot(element: HTMLElement): Node | null {\n if (_supportsShadowDom()) {\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n\n if (rootNode instanceof ShadowRoot) {\n return rootNode;\n }\n }\n\n return null;\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\nexport * from './platform';\nexport * from './platform-module';\nexport * from './features/input-types';\nexport * from './features/passive-listeners';\nexport * from './features/scrolling';\nexport * from './features/shadow-dom';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["isPlatformBrowser","Injectable","Optional","Inject","PLATFORM_ID","NgModule"],"mappings":"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"}
@@ -5,14 +5,14 @@
5
5
  *
6
6
  * Use of this source code is governed by an MIT-style license that can be
7
7
  * found in the LICENSE file at https://angular.io/license
8
- */var r;try{r="undefined"!=typeof Intl&&Intl.v8BreakIterator}catch(e){r=!1}var o,i,s,a,u=function(){function e(e){this._platformId=e,this.isBrowser=this._platformId?n.isPlatformBrowser(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!r)&&"undefined"!=typeof CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}return e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:Object,decorators:[{type:t.Optional},{type:t.Inject,args:[t.PLATFORM_ID]}]}]},e.ɵprov=t.ɵɵdefineInjectable({factory:function n(){return new e(t.ɵɵinject(t.PLATFORM_ID,8))},token:e,providedIn:"root"}),e}(),d=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{}]}],e}(),c=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];
8
+ */var o;try{o="undefined"!=typeof Intl&&Intl.v8BreakIterator}catch(e){o=!1}var r,i,s,a,u=function(){function e(e){this._platformId=e,this.isBrowser=this._platformId?n.isPlatformBrowser(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!o)&&"undefined"!=typeof CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}return e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:Object,decorators:[{type:t.Optional},{type:t.Inject,args:[t.PLATFORM_ID]}]}]},e.ɵprov=t.ɵɵdefineInjectable({factory:function n(){return new e(t.ɵɵinject(t.PLATFORM_ID,8))},token:e,providedIn:"root"}),e}(),d=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{}]}],e}(),c=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];
9
9
  /**
10
10
  * @license
11
11
  * Copyright Google LLC All Rights Reserved.
12
12
  *
13
13
  * Use of this source code is governed by an MIT-style license that can be
14
14
  * found in the LICENSE file at https://angular.io/license
15
- */function l(){if(null==i&&"undefined"!=typeof window)try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){return i=!0}}))}finally{i=i||!1}return i}
15
+ */function l(){if(null==i&&"undefined"!=typeof window)try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){return i=!0}}))}finally{i=i||!1}return i}function f(){if(null==a){var e="undefined"!=typeof document?document.head:null;a=!(!e||!e.createShadowRoot&&!e.attachShadow)}return a}
16
16
  /**
17
17
  * @license
18
18
  * Copyright Google LLC All Rights Reserved.
@@ -20,25 +20,25 @@
20
20
  * Use of this source code is governed by an MIT-style license that can be
21
21
  * found in the LICENSE file at https://angular.io/license
22
22
  */
23
- e.Platform=u,e.PlatformModule=d,e._supportsShadowDom=function f(){if(null==a){var e="undefined"!=typeof document?document.head:null;a=!(!e||!e.createShadowRoot&&!e.attachShadow)}return a},e.getRtlScrollAxisType=function p(){if("object"!=typeof document||!document)return 0;if(null==s){var e=document.createElement("div"),t=e.style;e.dir="rtl",t.height="1px",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";var n=document.createElement("div"),r=n.style;r.width="2px",r.height="1px",e.appendChild(n),document.body.appendChild(e),s=0,0===e.scrollLeft&&(e.scrollLeft=1,s=0===e.scrollLeft?1:2),e.parentNode.removeChild(e)}return s}
23
+ e.Platform=u,e.PlatformModule=d,e._getShadowRoot=function p(e){if(f()){var t=e.getRootNode?e.getRootNode():null;if(t instanceof ShadowRoot)return t}return null},e._supportsShadowDom=f,e.getRtlScrollAxisType=function h(){if("object"!=typeof document||!document)return 0;if(null==s){var e=document.createElement("div"),t=e.style;e.dir="rtl",t.height="1px",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";var n=document.createElement("div"),o=n.style;o.width="2px",o.height="1px",e.appendChild(n),document.body.appendChild(e),s=0,0===e.scrollLeft&&(e.scrollLeft=1,s=0===e.scrollLeft?1:2),e.parentNode.removeChild(e)}return s}
24
24
  /**
25
25
  * @license
26
26
  * Copyright Google LLC All Rights Reserved.
27
27
  *
28
28
  * Use of this source code is governed by an MIT-style license that can be
29
29
  * found in the LICENSE file at https://angular.io/license
30
- */,e.getSupportedInputTypes=function h(){if(o)return o;if("object"!=typeof document||!document)return o=new Set(c);var e=document.createElement("input");return o=new Set(c.filter((function(t){return e.setAttribute("type",t),e.type===t})))}
30
+ */,e.getSupportedInputTypes=function m(){if(r)return r;if("object"!=typeof document||!document)return r=new Set(c);var e=document.createElement("input");return r=new Set(c.filter((function(t){return e.setAttribute("type",t),e.type===t})))}
31
31
  /**
32
32
  * @license
33
33
  * Copyright Google LLC All Rights Reserved.
34
34
  *
35
35
  * Use of this source code is governed by an MIT-style license that can be
36
36
  * found in the LICENSE file at https://angular.io/license
37
- */,e.normalizePassiveListenerOptions=function m(e){return l()?e:!!e.capture}
37
+ */,e.normalizePassiveListenerOptions=function g(e){return l()?e:!!e.capture}
38
38
  /**
39
39
  * @license
40
40
  * Copyright Google LLC All Rights Reserved.
41
41
  *
42
42
  * Use of this source code is governed by an MIT-style license that can be
43
43
  * found in the LICENSE file at https://angular.io/license
44
- */,e.supportsPassiveEventListeners=l,e.supportsScrollBehavior=function g(){return!!("object"==typeof document&&"scrollBehavior"in document.documentElement.style)},Object.defineProperty(e,"__esModule",{value:!0})}));
44
+ */,e.supportsPassiveEventListeners=l,e.supportsScrollBehavior=function v(){return!!("object"==typeof document&&"scrollBehavior"in document.documentElement.style)},Object.defineProperty(e,"__esModule",{value:!0})}));
@@ -1 +1 @@
1
- {"version":3,"sources":["src/cdk/cdk-platform.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","cdk","platform","core","common","this","i0","hasV8BreakIterator","Intl","v8BreakIterator","_a","supportedInputTypes","supportsPassiveEvents","rtlScrollAxisType","shadowDomIsSupported","Platform","_platformId","isBrowser","isPlatformBrowser","document","EDGE","test","navigator","userAgent","TRIDENT","BLINK","window","chrome","CSS","WEBKIT","IOS","FIREFOX","ANDROID","SAFARI","decorators","type","Injectable","args","providedIn","ctorParameters","Object","Optional","Inject","PLATFORM_ID","ɵprov","ɵɵdefineInjectable","Platform_Factory","ɵɵinject","token","PlatformModule","NgModule","candidateInputTypes","supportsPassiveEventListeners","addEventListener","defineProperty","get","_supportsShadowDom","head","createShadowRoot","attachShadow","getRtlScrollAxisType","scrollContainer","createElement","containerStyle","style","dir","height","width","overflow","visibility","pointerEvents","position","content","contentStyle","appendChild","body","scrollLeft","parentNode","removeChild","getSupportedInputTypes","Set","featureTestInput","filter","value","setAttribute","normalizePassiveListenerOptions","options","capture","supportsScrollBehavior","documentElement"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common')) :\n typeof define === 'function' && define.amd ? define('@angular/cdk/platform', ['exports', '@angular/core', '@angular/common'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.platform = {}), global.ng.core, global.ng.common));\n}(this, (function (exports, i0, common) { 'use strict';\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 // Whether the current platform supports the V8 Break Iterator. The V8 check\n // is necessary to detect all Blink based browsers.\n var hasV8BreakIterator;\n // We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n // cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n // the consumer is providing a polyfilled `Map`. See:\n // https://github.com/Microsoft/ChakraCore/issues/3189\n // https://github.com/angular/components/issues/15687\n try {\n hasV8BreakIterator = (typeof Intl !== 'undefined' && Intl.v8BreakIterator);\n }\n catch (_a) {\n hasV8BreakIterator = false;\n }\n /**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\n var Platform = /** @class */ (function () {\n /**\n * @breaking-change 8.0.0 remove optional decorator\n */\n function Platform(_platformId) {\n this._platformId = _platformId;\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 /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId ?\n common.isPlatformBrowser(this._platformId) : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser && (!!(window.chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT);\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 /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) &&\n !('MSStream' in window);\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 /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\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 /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n Platform.decorators = [\n { type: i0.Injectable, args: [{ providedIn: 'root' },] }\n ];\n /** @nocollapse */\n Platform.ctorParameters = function () { return [\n { type: Object, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i0.PLATFORM_ID,] }] }\n ]; };\n Platform.ɵprov = i0.ɵɵdefineInjectable({ factory: function Platform_Factory() { return new Platform(i0.ɵɵinject(i0.PLATFORM_ID, 8)); }, token: Platform, providedIn: \"root\" });\n return Platform;\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 var PlatformModule = /** @class */ (function () {\n function PlatformModule() {\n }\n PlatformModule.decorators = [\n { type: i0.NgModule, args: [{},] }\n ];\n return PlatformModule;\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 /** Cached result Set of input types support by the current browser. */\n var supportedInputTypes;\n /** Types of `<input>` that *might* be supported. */\n var 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 /** @returns The input types supported by this browser. */\n function getSupportedInputTypes() {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\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 var featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(candidateInputTypes.filter(function (value) {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }));\n return supportedInputTypes;\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 /** Cached result of whether the user's browser supports passive event listeners. */\n var supportsPassiveEvents;\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 */\n function supportsPassiveEventListeners() {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: function () { return supportsPassiveEvents = true; }\n }));\n }\n finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n return supportsPassiveEvents;\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 */\n function normalizePassiveListenerOptions(options) {\n return supportsPassiveEventListeners() ? options : !!options.capture;\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 /** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\n var rtlScrollAxisType;\n /** Check whether the browser supports scroll behaviors. */\n function supportsScrollBehavior() {\n return !!(typeof document == 'object' && 'scrollBehavior' in document.documentElement.style);\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 */\n function getRtlScrollAxisType() {\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 0 /* NORMAL */;\n }\n if (rtlScrollAxisType == null) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n var scrollContainer = document.createElement('div');\n var 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 var content = document.createElement('div');\n var contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n rtlScrollAxisType = 0 /* NORMAL */;\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 ? 1 /* NEGATED */ : 2 /* INVERTED */;\n }\n scrollContainer.parentNode.removeChild(scrollContainer);\n }\n return rtlScrollAxisType;\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 var shadowDomIsSupported;\n /** Checks whether the user's browser support Shadow DOM. */\n function _supportsShadowDom() {\n if (shadowDomIsSupported == null) {\n var head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow));\n }\n return shadowDomIsSupported;\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 * Generated bundle index. Do not edit.\n */\n\n exports.Platform = Platform;\n exports.PlatformModule = PlatformModule;\n exports._supportsShadowDom = _supportsShadowDom;\n exports.getRtlScrollAxisType = getRtlScrollAxisType;\n exports.getSupportedInputTypes = getSupportedInputTypes;\n exports.normalizePassiveListenerOptions = normalizePassiveListenerOptions;\n exports.supportsPassiveEventListeners = supportsPassiveEventListeners;\n exports.supportsScrollBehavior = supportsScrollBehavior;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=cdk-platform.umd.js.map\n"]}
1
+ {"version":3,"sources":["src/cdk/cdk-platform.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","cdk","platform","core","common","this","i0","hasV8BreakIterator","Intl","v8BreakIterator","_a","supportedInputTypes","supportsPassiveEvents","rtlScrollAxisType","shadowDomIsSupported","Platform","_platformId","isBrowser","isPlatformBrowser","document","EDGE","test","navigator","userAgent","TRIDENT","BLINK","window","chrome","CSS","WEBKIT","IOS","FIREFOX","ANDROID","SAFARI","decorators","type","Injectable","args","providedIn","ctorParameters","Object","Optional","Inject","PLATFORM_ID","ɵprov","ɵɵdefineInjectable","Platform_Factory","ɵɵinject","token","PlatformModule","NgModule","candidateInputTypes","supportsPassiveEventListeners","addEventListener","defineProperty","get","_supportsShadowDom","head","createShadowRoot","attachShadow","_getShadowRoot","element","rootNode","getRootNode","ShadowRoot","getRtlScrollAxisType","scrollContainer","createElement","containerStyle","style","dir","height","width","overflow","visibility","pointerEvents","position","content","contentStyle","appendChild","body","scrollLeft","parentNode","removeChild","getSupportedInputTypes","Set","featureTestInput","filter","value","setAttribute","normalizePassiveListenerOptions","options","capture","supportsScrollBehavior","documentElement"],"mappings":"CAAC,SAAUA,EAAQC,GACI,iBAAZC,SAA0C,oBAAXC,OAAyBF,EAAQC,QAASE,QAAQ,iBAAkBA,QAAQ,oBAChG,mBAAXC,QAAyBA,OAAOC,IAAMD,OAAO,wBAAyB,CAAC,UAAW,gBAAiB,mBAAoBJ,GACpGA,IAAzBD,EAASA,GAAUO,MAAsBC,GAAKR,EAAOQ,IAAM,GAAIR,EAAOQ,GAAGC,IAAMT,EAAOQ,GAAGC,KAAO,GAAIT,EAAOQ,GAAGC,IAAIC,SAAW,IAAKV,EAAOQ,GAAGG,KAAMX,EAAOQ,GAAGI,QAHjK,CAIEC,MAAM,SAAWX,EAASY,EAAIF,GAAU;;;;;;;OAWtC,IAAIG,EAMJ,IACIA,EAAsC,oBAATC,MAAwBA,KAAKC,gBAE9D,MAAOC,GACHH,GAAqB,EAMzB,IA8EII,EA2DAC,EAoCAC,EAwDAC,EArOAC,EAA0B,WAI1B,SAASA,EAASC,GACdX,KAAKW,YAAcA,EAKnBX,KAAKY,UAAYZ,KAAKW,YAClBZ,EAAOc,kBAAkBb,KAAKW,aAAmC,iBAAbG,YAA2BA,SAEnFd,KAAKe,KAAOf,KAAKY,WAAa,UAAUI,KAAKC,UAAUC,WAEvDlB,KAAKmB,QAAUnB,KAAKY,WAAa,kBAAkBI,KAAKC,UAAUC,WAGlElB,KAAKoB,MAAQpB,KAAKY,cAAiBS,OAAOC,SAAUpB,IACjC,oBAARqB,MAAwBvB,KAAKe,OAASf,KAAKmB,QAItDnB,KAAKwB,OAASxB,KAAKY,WACf,eAAeI,KAAKC,UAAUC,aAAelB,KAAKoB,QAAUpB,KAAKe,OAASf,KAAKmB,QAEnFnB,KAAKyB,IAAMzB,KAAKY,WAAa,mBAAmBI,KAAKC,UAAUC,cACzD,aAAcG,QAMpBrB,KAAK0B,QAAU1B,KAAKY,WAAa,uBAAuBI,KAAKC,UAAUC,WAGvElB,KAAK2B,QAAU3B,KAAKY,WAAa,WAAWI,KAAKC,UAAUC,aAAelB,KAAKmB,QAK/EnB,KAAK4B,OAAS5B,KAAKY,WAAa,UAAUI,KAAKC,UAAUC,YAAclB,KAAKwB,OAUhF,OARAd,EAASmB,WAAa,CAClB,CAAEC,KAAM7B,EAAG8B,WAAYC,KAAM,CAAC,CAAEC,WAAY,WAGhDvB,EAASwB,eAAiB,WAAc,MAAO,CAC3C,CAAEJ,KAAMK,OAAQN,WAAY,CAAC,CAAEC,KAAM7B,EAAGmC,UAAY,CAAEN,KAAM7B,EAAGoC,OAAQL,KAAM,CAAC/B,EAAGqC,kBAErF5B,EAAS6B,MAAQtC,EAAGuC,mBAAmB,CAAEpD,QAAS,SAASqD,IAAqB,OAAO,IAAI/B,EAAST,EAAGyC,SAASzC,EAAGqC,YAAa,KAAQK,MAAOjC,EAAUuB,WAAY,SAC9JvB,EAnDkB,GA6DzBkC,EAAgC,WAChC,SAASA,KAKT,OAHAA,EAAef,WAAa,CACxB,CAAEC,KAAM7B,EAAG4C,SAAUb,KAAM,CAAC,MAEzBY,EANwB,GAmB/BE,EAAsB,CAKtB,QACA,SACA,WACA,OACA,iBACA,QACA,OACA,SACA,QACA,QACA,SACA,WACA,QACA,QACA,QACA,SACA,SACA,MACA,OACA,OACA,MACA;;;;;;;OAoCJ,SAASC,IACL,GAA6B,MAAzBxC,GAAmD,oBAAXc,OACxC,IACIA,OAAO2B,iBAAiB,OAAQ,KAAMb,OAAOc,eAAe,GAAI,UAAW,CACvEC,IAAK,WAAc,OAAO3C,GAAwB,MAG1D,QACIA,EAAwBA,IAAyB,EAGzD,OAAOA,EA8EX,SAAS4C,IACL,GAA4B,MAAxB1C,EAA8B,CAC9B,IAAI2C,EAA2B,oBAAbtC,SAA2BA,SAASsC,KAAO,KAC7D3C,KAA0B2C,IAASA,EAAKC,mBAAoBD,EAAKE,cAErE,OAAO7C;;;;;;;;AAyBXpB,EAAQqB,SAAWA,EACnBrB,EAAQuD,eAAiBA,EACzBvD,EAAQkE,eAxBR,SAASA,EAAeC,GACpB,GAAIL,IAAsB,CACtB,IAAIM,EAAWD,EAAQE,YAAcF,EAAQE,cAAgB,KAC7D,GAAID,aAAoBE,WACpB,OAAOF,EAGf,OAAO,MAkBXpE,EAAQ8D,mBAAqBA,EAC7B9D,EAAQuE,qBAnFR,SAASA,IAEL,GAAwB,iBAAb9C,WAA0BA,SACjC,OAAO,EAEX,GAAyB,MAArBN,EAA2B,CAE3B,IAAIqD,EAAkB/C,SAASgD,cAAc,OACzCC,EAAiBF,EAAgBG,MACrCH,EAAgBI,IAAM,MACtBF,EAAeG,OAAS,MACxBH,EAAeI,MAAQ,MACvBJ,EAAeK,SAAW,OAC1BL,EAAeM,WAAa,SAC5BN,EAAeO,cAAgB,OAC/BP,EAAeQ,SAAW,WAC1B,IAAIC,EAAU1D,SAASgD,cAAc,OACjCW,EAAeD,EAAQR,MAC3BS,EAAaN,MAAQ,MACrBM,EAAaP,OAAS,MACtBL,EAAgBa,YAAYF,GAC5B1D,SAAS6D,KAAKD,YAAYb,GAC1BrD,EAAoB,EAIe,IAA/BqD,EAAgBe,aAKhBf,EAAgBe,WAAa,EAC7BpE,EACmC,IAA/BqD,EAAgBe,WAAmB,EAAkB,GAE7Df,EAAgBgB,WAAWC,YAAYjB,GAE3C,OAAOrD;;;;;;;QA+CXnB,EAAQ0F,uBA7JR,SAASA,IAEL,GAAIzE,EACA,OAAOA,EAKX,GAAwB,iBAAbQ,WAA0BA,SAEjC,OADAR,EAAsB,IAAI0E,IAAIlC,GAGlC,IAAImC,EAAmBnE,SAASgD,cAAc,SAK9C,OAJAxD,EAAsB,IAAI0E,IAAIlC,EAAoBoC,QAAO,SAAUC,GAE/D,OADAF,EAAiBG,aAAa,OAAQD,GAC/BF,EAAiBnD,OAASqD;;;;;;;QA+IzC9F,EAAQgG,gCA1GR,SAASA,EAAgCC,GACrC,OAAOvC,IAAkCuC,IAAYA,EAAQC;;;;;;;QA0GjElG,EAAQ0D,8BAAgCA,EACxC1D,EAAQmG,uBA9FR,SAASA,IACL,SAA6B,iBAAZ1E,UAAwB,mBAAoBA,SAAS2E,gBAAgBzB,QA+F1F7B,OAAOc,eAAe5D,EAAS,aAAc,CAAE8F,OAAO","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common')) :\n typeof define === 'function' && define.amd ? define('@angular/cdk/platform', ['exports', '@angular/core', '@angular/common'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.platform = {}), global.ng.core, global.ng.common));\n}(this, (function (exports, i0, common) { 'use strict';\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 // Whether the current platform supports the V8 Break Iterator. The V8 check\n // is necessary to detect all Blink based browsers.\n var hasV8BreakIterator;\n // We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n // cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n // the consumer is providing a polyfilled `Map`. See:\n // https://github.com/Microsoft/ChakraCore/issues/3189\n // https://github.com/angular/components/issues/15687\n try {\n hasV8BreakIterator = (typeof Intl !== 'undefined' && Intl.v8BreakIterator);\n }\n catch (_a) {\n hasV8BreakIterator = false;\n }\n /**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\n var Platform = /** @class */ (function () {\n /**\n * @breaking-change 8.0.0 remove optional decorator\n */\n function Platform(_platformId) {\n this._platformId = _platformId;\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 /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId ?\n common.isPlatformBrowser(this._platformId) : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser && (!!(window.chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT);\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 /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) &&\n !('MSStream' in window);\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 /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\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 /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n Platform.decorators = [\n { type: i0.Injectable, args: [{ providedIn: 'root' },] }\n ];\n /** @nocollapse */\n Platform.ctorParameters = function () { return [\n { type: Object, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i0.PLATFORM_ID,] }] }\n ]; };\n Platform.ɵprov = i0.ɵɵdefineInjectable({ factory: function Platform_Factory() { return new Platform(i0.ɵɵinject(i0.PLATFORM_ID, 8)); }, token: Platform, providedIn: \"root\" });\n return Platform;\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 var PlatformModule = /** @class */ (function () {\n function PlatformModule() {\n }\n PlatformModule.decorators = [\n { type: i0.NgModule, args: [{},] }\n ];\n return PlatformModule;\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 /** Cached result Set of input types support by the current browser. */\n var supportedInputTypes;\n /** Types of `<input>` that *might* be supported. */\n var 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 /** @returns The input types supported by this browser. */\n function getSupportedInputTypes() {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\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 var featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(candidateInputTypes.filter(function (value) {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }));\n return supportedInputTypes;\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 /** Cached result of whether the user's browser supports passive event listeners. */\n var supportsPassiveEvents;\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 */\n function supportsPassiveEventListeners() {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: function () { return supportsPassiveEvents = true; }\n }));\n }\n finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n return supportsPassiveEvents;\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 */\n function normalizePassiveListenerOptions(options) {\n return supportsPassiveEventListeners() ? options : !!options.capture;\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 /** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\n var rtlScrollAxisType;\n /** Check whether the browser supports scroll behaviors. */\n function supportsScrollBehavior() {\n return !!(typeof document == 'object' && 'scrollBehavior' in document.documentElement.style);\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 */\n function getRtlScrollAxisType() {\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 0 /* NORMAL */;\n }\n if (rtlScrollAxisType == null) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n var scrollContainer = document.createElement('div');\n var 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 var content = document.createElement('div');\n var contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n rtlScrollAxisType = 0 /* NORMAL */;\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 ? 1 /* NEGATED */ : 2 /* INVERTED */;\n }\n scrollContainer.parentNode.removeChild(scrollContainer);\n }\n return rtlScrollAxisType;\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 var shadowDomIsSupported;\n /** Checks whether the user's browser support Shadow DOM. */\n function _supportsShadowDom() {\n if (shadowDomIsSupported == null) {\n var head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow));\n }\n return shadowDomIsSupported;\n }\n /** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\n function _getShadowRoot(element) {\n if (_supportsShadowDom()) {\n var rootNode = element.getRootNode ? element.getRootNode() : null;\n if (rootNode instanceof ShadowRoot) {\n return rootNode;\n }\n }\n return null;\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 * Generated bundle index. Do not edit.\n */\n\n exports.Platform = Platform;\n exports.PlatformModule = PlatformModule;\n exports._getShadowRoot = _getShadowRoot;\n exports._supportsShadowDom = _supportsShadowDom;\n exports.getRtlScrollAxisType = getRtlScrollAxisType;\n exports.getSupportedInputTypes = getSupportedInputTypes;\n exports.normalizePassiveListenerOptions = normalizePassiveListenerOptions;\n exports.supportsPassiveEventListeners = supportsPassiveEventListeners;\n exports.supportsScrollBehavior = supportsScrollBehavior;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=cdk-platform.umd.js.map\n"]}
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/cdk/coercion'), require('@angular/core'), require('rxjs'), require('rxjs/operators'), require('@angular/cdk/platform'), require('@angular/cdk/bidi'), require('@angular/cdk/collections')) :
3
- typeof define === 'function' && define.amd ? define('@angular/cdk/scrolling', ['exports', '@angular/cdk/coercion', '@angular/core', 'rxjs', 'rxjs/operators', '@angular/cdk/platform', '@angular/cdk/bidi', '@angular/cdk/collections'], factory) :
4
- (global = global || self, factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.scrolling = {}), global.ng.cdk.coercion, global.ng.core, global.rxjs, global.rxjs.operators, global.ng.cdk.platform, global.ng.cdk.bidi, global.ng.cdk.collections));
5
- }(this, (function (exports, coercion, i0, rxjs, operators, i1, bidi, collections) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/cdk/coercion'), require('@angular/core'), require('rxjs'), require('rxjs/operators'), require('@angular/cdk/platform'), require('@angular/common'), require('@angular/cdk/bidi'), require('@angular/cdk/collections')) :
3
+ typeof define === 'function' && define.amd ? define('@angular/cdk/scrolling', ['exports', '@angular/cdk/coercion', '@angular/core', 'rxjs', 'rxjs/operators', '@angular/cdk/platform', '@angular/common', '@angular/cdk/bidi', '@angular/cdk/collections'], factory) :
4
+ (global = global || self, factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.scrolling = {}), global.ng.cdk.coercion, global.ng.core, global.rxjs, global.rxjs.operators, global.ng.cdk.platform, global.ng.common, global.ng.cdk.bidi, global.ng.cdk.collections));
5
+ }(this, (function (exports, coercion, i0, rxjs, operators, i1, i2, bidi, collections) { 'use strict';
6
6
 
7
7
  /**
8
8
  * @license
@@ -210,7 +210,9 @@
210
210
  * Scrollable references emit a scrolled event.
211
211
  */
212
212
  var ScrollDispatcher = /** @class */ (function () {
213
- function ScrollDispatcher(_ngZone, _platform) {
213
+ function ScrollDispatcher(_ngZone, _platform,
214
+ /** @breaking-change 11.0.0 make document required */
215
+ document) {
214
216
  this._ngZone = _ngZone;
215
217
  this._platform = _platform;
216
218
  /** Subject for notifying that a registered scrollable reference element has been scrolled. */
@@ -224,6 +226,7 @@
224
226
  * scroll event subscriptions.
225
227
  */
226
228
  this.scrollContainers = new Map();
229
+ this._document = document;
227
230
  }
228
231
  /**
229
232
  * Registers a scrollable instance with the service and listens for its scrolled events. When the
@@ -312,6 +315,15 @@
312
315
  });
313
316
  return scrollingContainers;
314
317
  };
318
+ /** Access injected document if available or fallback to global document reference */
319
+ ScrollDispatcher.prototype._getDocument = function () {
320
+ return this._document || document;
321
+ };
322
+ /** Use defaultView of injected document if available or fallback to global window reference */
323
+ ScrollDispatcher.prototype._getWindow = function () {
324
+ var doc = this._getDocument();
325
+ return doc.defaultView || window;
326
+ };
315
327
  /** Returns true if the element is contained within the provided Scrollable. */
316
328
  ScrollDispatcher.prototype._scrollableContainsElement = function (scrollable, elementRef) {
317
329
  var element = elementRef.nativeElement;
@@ -329,6 +341,7 @@
329
341
  ScrollDispatcher.prototype._addGlobalListener = function () {
330
342
  var _this = this;
331
343
  this._globalSubscription = this._ngZone.runOutsideAngular(function () {
344
+ var window = _this._getWindow();
332
345
  return rxjs.fromEvent(window.document, 'scroll').subscribe(function () { return _this._scrolled.next(); });
333
346
  });
334
347
  };
@@ -345,9 +358,10 @@
345
358
  /** @nocollapse */
346
359
  ScrollDispatcher.ctorParameters = function () { return [
347
360
  { type: i0.NgZone },
348
- { type: i1.Platform }
361
+ { type: i1.Platform },
362
+ { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i2.DOCUMENT,] }] }
349
363
  ]; };
350
- ScrollDispatcher.ɵprov = i0.ɵɵdefineInjectable({ factory: function ScrollDispatcher_Factory() { return new ScrollDispatcher(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.Platform)); }, token: ScrollDispatcher, providedIn: "root" });
364
+ ScrollDispatcher.ɵprov = i0.ɵɵdefineInjectable({ factory: function ScrollDispatcher_Factory() { return new ScrollDispatcher(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i2.DOCUMENT, 8)); }, token: ScrollDispatcher, providedIn: "root" });
351
365
  return ScrollDispatcher;
352
366
  }());
353
367
 
@@ -736,10 +750,14 @@
736
750
  * @docs-private
737
751
  */
738
752
  var ViewportRuler = /** @class */ (function () {
739
- function ViewportRuler(_platform, ngZone) {
753
+ function ViewportRuler(_platform, ngZone,
754
+ /** @breaking-change 11.0.0 make document required */
755
+ document) {
740
756
  var _this = this;
741
757
  this._platform = _platform;
758
+ this._document = document;
742
759
  ngZone.runOutsideAngular(function () {
760
+ var window = _this._getWindow();
743
761
  _this._change = _platform.isBrowser ?
744
762
  rxjs.merge(rxjs.fromEvent(window, 'resize'), rxjs.fromEvent(window, 'orientationchange')) :
745
763
  rxjs.of();
@@ -798,6 +816,8 @@
798
816
  // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of
799
817
  // `document.documentElement` works consistently, where the `top` and `left` values will
800
818
  // equal negative the scroll position.
819
+ var document = this._getDocument();
820
+ var window = this._getWindow();
801
821
  var documentElement = document.documentElement;
802
822
  var documentRect = documentElement.getBoundingClientRect();
803
823
  var top = -documentRect.top || document.body.scrollTop || window.scrollY ||
@@ -814,8 +834,18 @@
814
834
  if (throttleTime === void 0) { throttleTime = DEFAULT_RESIZE_TIME; }
815
835
  return throttleTime > 0 ? this._change.pipe(operators.auditTime(throttleTime)) : this._change;
816
836
  };
837
+ /** Access injected document if available or fallback to global document reference */
838
+ ViewportRuler.prototype._getDocument = function () {
839
+ return this._document || document;
840
+ };
841
+ /** Use defaultView of injected document if available or fallback to global window reference */
842
+ ViewportRuler.prototype._getWindow = function () {
843
+ var doc = this._getDocument();
844
+ return doc.defaultView || window;
845
+ };
817
846
  /** Updates the cached viewport size. */
818
847
  ViewportRuler.prototype._updateViewportSize = function () {
848
+ var window = this._getWindow();
819
849
  this._viewportSize = this._platform.isBrowser ?
820
850
  { width: window.innerWidth, height: window.innerHeight } :
821
851
  { width: 0, height: 0 };
@@ -826,9 +856,10 @@
826
856
  /** @nocollapse */
827
857
  ViewportRuler.ctorParameters = function () { return [
828
858
  { type: i1.Platform },
829
- { type: i0.NgZone }
859
+ { type: i0.NgZone },
860
+ { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i2.DOCUMENT,] }] }
830
861
  ]; };
831
- ViewportRuler.ɵprov = i0.ɵɵdefineInjectable({ factory: function ViewportRuler_Factory() { return new ViewportRuler(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i0.NgZone)); }, token: ViewportRuler, providedIn: "root" });
862
+ ViewportRuler.ɵprov = i0.ɵɵdefineInjectable({ factory: function ViewportRuler_Factory() { return new ViewportRuler(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i2.DOCUMENT, 8)); }, token: ViewportRuler, providedIn: "root" });
832
863
  return ViewportRuler;
833
864
  }());
834
865