ngx-bootstrap 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +3 -0
  3. package/accordion/package.json +1 -1
  4. package/alert/package.json +1 -1
  5. package/bundles/ngx-bootstrap.es2015.js +10658 -8629
  6. package/bundles/ngx-bootstrap.es2015.js.map +1 -1
  7. package/buttons/package.json +1 -1
  8. package/carousel/package.json +1 -1
  9. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +22 -1
  10. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
  11. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +1 -1
  12. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
  13. package/chronos/esm2015/index.js +2 -2
  14. package/chronos/esm2015/ngx-bootstrap-chronos.js +2 -2
  15. package/chronos/esm2015/public_api.js +2 -2
  16. package/chronos/esm5/index.js +2 -2
  17. package/chronos/esm5/ngx-bootstrap-chronos.js +2 -2
  18. package/chronos/esm5/public_api.js +2 -2
  19. package/chronos/fesm2015/ngx-bootstrap-chronos.js +19 -2
  20. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
  21. package/chronos/fesm5/ngx-bootstrap-chronos.js +20 -2
  22. package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
  23. package/chronos/ngx-bootstrap-chronos.metadata.json +1 -1
  24. package/chronos/package.json +1 -1
  25. package/chronos/public_api.d.ts +1 -1
  26. package/collapse/package.json +1 -1
  27. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +2 -1
  28. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
  29. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
  30. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
  31. package/component-loader/esm2015/component-loader.class.js +2 -1
  32. package/component-loader/esm5/component-loader.class.js +2 -1
  33. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +2 -1
  34. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
  35. package/component-loader/fesm5/ngx-bootstrap-component-loader.js +2 -1
  36. package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
  37. package/component-loader/package.json +1 -1
  38. package/datepicker/base/bs-datepicker-container.d.ts +1 -0
  39. package/datepicker/bs-datepicker-inline.component.d.ts +4 -0
  40. package/datepicker/bs-datepicker.component.d.ts +4 -0
  41. package/datepicker/bs-datepicker.config.d.ts +4 -0
  42. package/datepicker/bs-daterangepicker.component.d.ts +4 -0
  43. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +69 -4
  44. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
  45. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +1 -1
  46. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
  47. package/datepicker/engine/flag-days-calendar.d.ts +1 -0
  48. package/datepicker/esm2015/base/bs-datepicker-container.js +8 -1
  49. package/datepicker/esm2015/bs-datepicker-inline.component.js +12 -2
  50. package/datepicker/esm2015/bs-datepicker.component.js +11 -1
  51. package/datepicker/esm2015/bs-datepicker.config.js +6 -1
  52. package/datepicker/esm2015/bs-daterangepicker.component.js +12 -2
  53. package/datepicker/esm2015/engine/flag-days-calendar.js +6 -3
  54. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
  55. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +9 -1
  56. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +2 -1
  57. package/datepicker/esm2015/reducer/bs-datepicker.state.js +3 -1
  58. package/datepicker/esm2015/utils/bs-calendar-utils.js +13 -2
  59. package/datepicker/esm5/base/bs-datepicker-container.js +12 -1
  60. package/datepicker/esm5/bs-datepicker-inline.component.js +12 -2
  61. package/datepicker/esm5/bs-datepicker.component.js +11 -1
  62. package/datepicker/esm5/bs-datepicker.config.js +6 -1
  63. package/datepicker/esm5/bs-daterangepicker.component.js +12 -2
  64. package/datepicker/esm5/engine/flag-days-calendar.js +6 -3
  65. package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
  66. package/datepicker/esm5/reducer/bs-datepicker.effects.js +13 -1
  67. package/datepicker/esm5/reducer/bs-datepicker.reducer.js +2 -1
  68. package/datepicker/esm5/reducer/bs-datepicker.state.js +3 -1
  69. package/datepicker/esm5/utils/bs-calendar-utils.js +13 -2
  70. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +59 -5
  71. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
  72. package/datepicker/fesm5/ngx-bootstrap-datepicker.js +71 -5
  73. package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
  74. package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
  75. package/datepicker/package.json +1 -1
  76. package/datepicker/reducer/bs-datepicker.actions.d.ts +2 -0
  77. package/datepicker/reducer/bs-datepicker.effects.d.ts +1 -0
  78. package/datepicker/reducer/bs-datepicker.state.d.ts +1 -0
  79. package/datepicker/utils/bs-calendar-utils.d.ts +1 -0
  80. package/dropdown/package.json +1 -1
  81. package/locale/package.json +1 -1
  82. package/mini-ngrx/package.json +1 -1
  83. package/modal/package.json +1 -1
  84. package/package.json +2 -2
  85. package/pagination/package.json +1 -1
  86. package/popover/bundles/ngx-bootstrap-popover.umd.js +3 -2
  87. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
  88. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
  89. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
  90. package/popover/esm2015/popover-container.component.js +19 -8
  91. package/popover/esm5/popover-container.component.js +3 -2
  92. package/popover/fesm2015/ngx-bootstrap-popover.js +19 -8
  93. package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
  94. package/popover/fesm5/ngx-bootstrap-popover.js +3 -2
  95. package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
  96. package/popover/ngx-bootstrap-popover.metadata.json +1 -1
  97. package/popover/package.json +1 -1
  98. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +1192 -252
  99. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
  100. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +1 -1
  101. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
  102. package/positioning/esm2015/models/index.js +44 -0
  103. package/positioning/esm2015/modifiers/arrow.js +54 -0
  104. package/positioning/esm2015/modifiers/flip.js +65 -0
  105. package/positioning/esm2015/modifiers/index.js +11 -0
  106. package/positioning/esm2015/modifiers/initData.js +34 -0
  107. package/positioning/esm2015/modifiers/preventOverflow.js +70 -0
  108. package/positioning/esm2015/modifiers/shift.js +29 -0
  109. package/positioning/esm2015/ng-positioning.js +19 -220
  110. package/positioning/esm2015/positioning.service.js +44 -4
  111. package/positioning/esm2015/utils/computeAutoPlacement.js +64 -0
  112. package/positioning/esm2015/utils/findCommonOffsetParent.js +47 -0
  113. package/positioning/esm2015/utils/getBordersSize.js +20 -0
  114. package/positioning/esm2015/utils/getBoundaries.js +66 -0
  115. package/positioning/esm2015/utils/getBoundingClientRect.js +61 -0
  116. package/positioning/esm2015/utils/getClientRect.js +13 -0
  117. package/positioning/esm2015/utils/getFixedPositionOffsetParent.js +26 -0
  118. package/positioning/esm2015/utils/getOffsetParent.js +37 -0
  119. package/positioning/esm2015/utils/getOffsetRectRelativeToArbitraryNode.js +62 -0
  120. package/positioning/esm2015/utils/getOffsets.js +20 -0
  121. package/positioning/esm2015/utils/getOppositePlacement.js +15 -0
  122. package/positioning/esm2015/utils/getOppositeVariation.js +20 -0
  123. package/positioning/esm2015/utils/getOuterSizes.js +21 -0
  124. package/positioning/esm2015/utils/getParentNode.js +17 -0
  125. package/positioning/esm2015/utils/getReferenceOffsets.js +21 -0
  126. package/positioning/esm2015/utils/getRoot.js +17 -0
  127. package/positioning/esm2015/utils/getScroll.js +22 -0
  128. package/positioning/esm2015/utils/getScrollParent.js +32 -0
  129. package/positioning/esm2015/utils/getStyleComputedProperty.js +21 -0
  130. package/positioning/esm2015/utils/getTargetOffsets.js +38 -0
  131. package/positioning/esm2015/utils/getViewportOffsetRectRelativeToArtbitraryNode.js +29 -0
  132. package/positioning/esm2015/utils/getWindowSizes.js +34 -0
  133. package/positioning/esm2015/utils/includeScroll.js +23 -0
  134. package/positioning/esm2015/utils/index.js +28 -0
  135. package/positioning/esm2015/utils/isBrowser.js +7 -0
  136. package/positioning/esm2015/utils/isFixed.js +22 -0
  137. package/positioning/esm2015/utils/isIE.js +22 -0
  138. package/positioning/esm2015/utils/isNumeric.js +14 -0
  139. package/positioning/esm2015/utils/isOffsetContainer.js +18 -0
  140. package/positioning/esm2015/utils/setAllStyles.js +55 -0
  141. package/positioning/esm2015/utils/setStyles.js +28 -0
  142. package/positioning/esm5/models/index.js +44 -0
  143. package/positioning/esm5/modifiers/arrow.js +56 -0
  144. package/positioning/esm5/modifiers/flip.js +66 -0
  145. package/positioning/esm5/modifiers/index.js +11 -0
  146. package/positioning/esm5/modifiers/initData.js +34 -0
  147. package/positioning/esm5/modifiers/preventOverflow.js +73 -0
  148. package/positioning/esm5/modifiers/shift.js +31 -0
  149. package/positioning/esm5/ng-positioning.js +24 -247
  150. package/positioning/esm5/positioning.service.js +49 -5
  151. package/positioning/esm5/utils/computeAutoPlacement.js +72 -0
  152. package/positioning/esm5/utils/findCommonOffsetParent.js +47 -0
  153. package/positioning/esm5/utils/getBordersSize.js +20 -0
  154. package/positioning/esm5/utils/getBoundaries.js +68 -0
  155. package/positioning/esm5/utils/getBoundingClientRect.js +61 -0
  156. package/positioning/esm5/utils/getClientRect.js +14 -0
  157. package/positioning/esm5/utils/getFixedPositionOffsetParent.js +26 -0
  158. package/positioning/esm5/utils/getOffsetParent.js +37 -0
  159. package/positioning/esm5/utils/getOffsetRectRelativeToArbitraryNode.js +63 -0
  160. package/positioning/esm5/utils/getOffsets.js +20 -0
  161. package/positioning/esm5/utils/getOppositePlacement.js +15 -0
  162. package/positioning/esm5/utils/getOppositeVariation.js +20 -0
  163. package/positioning/esm5/utils/getOuterSizes.js +21 -0
  164. package/positioning/esm5/utils/getParentNode.js +17 -0
  165. package/positioning/esm5/utils/getReferenceOffsets.js +22 -0
  166. package/positioning/esm5/utils/getRoot.js +17 -0
  167. package/positioning/esm5/utils/getScroll.js +23 -0
  168. package/positioning/esm5/utils/getScrollParent.js +32 -0
  169. package/positioning/esm5/utils/getStyleComputedProperty.js +21 -0
  170. package/positioning/esm5/utils/getTargetOffsets.js +38 -0
  171. package/positioning/esm5/utils/getViewportOffsetRectRelativeToArtbitraryNode.js +30 -0
  172. package/positioning/esm5/utils/getWindowSizes.js +34 -0
  173. package/positioning/esm5/utils/includeScroll.js +24 -0
  174. package/positioning/esm5/utils/index.js +28 -0
  175. package/positioning/esm5/utils/isBrowser.js +7 -0
  176. package/positioning/esm5/utils/isFixed.js +22 -0
  177. package/positioning/esm5/utils/isIE.js +22 -0
  178. package/positioning/esm5/utils/isNumeric.js +14 -0
  179. package/positioning/esm5/utils/isOffsetContainer.js +18 -0
  180. package/positioning/esm5/utils/setAllStyles.js +55 -0
  181. package/positioning/esm5/utils/setStyles.js +28 -0
  182. package/positioning/fesm2015/ngx-bootstrap-positioning.js +1108 -211
  183. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
  184. package/positioning/fesm5/ngx-bootstrap-positioning.js +1148 -249
  185. package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
  186. package/positioning/models/index.d.ts +27 -0
  187. package/positioning/modifiers/arrow.d.ts +2 -0
  188. package/positioning/modifiers/flip.d.ts +2 -0
  189. package/positioning/modifiers/index.d.ts +5 -0
  190. package/positioning/modifiers/initData.d.ts +2 -0
  191. package/positioning/modifiers/preventOverflow.d.ts +2 -0
  192. package/positioning/modifiers/shift.d.ts +2 -0
  193. package/positioning/ng-positioning.d.ts +7 -10
  194. package/positioning/ngx-bootstrap-positioning.metadata.json +1 -1
  195. package/positioning/package.json +1 -1
  196. package/positioning/positioning.service.d.ts +7 -1
  197. package/positioning/utils/computeAutoPlacement.d.ts +2 -0
  198. package/positioning/utils/findCommonOffsetParent.d.ts +1 -0
  199. package/positioning/utils/getBordersSize.d.ts +4 -0
  200. package/positioning/utils/getBoundaries.d.ts +1 -0
  201. package/positioning/utils/getBoundingClientRect.d.ts +2 -0
  202. package/positioning/utils/getClientRect.d.ts +5 -0
  203. package/positioning/utils/getFixedPositionOffsetParent.d.ts +1 -0
  204. package/positioning/utils/getOffsetParent.d.ts +1 -0
  205. package/positioning/utils/getOffsetRectRelativeToArbitraryNode.d.ts +2 -0
  206. package/positioning/utils/getOffsets.d.ts +2 -0
  207. package/positioning/utils/getOppositePlacement.d.ts +4 -0
  208. package/positioning/utils/getOppositeVariation.d.ts +4 -0
  209. package/positioning/utils/getOuterSizes.d.ts +7 -0
  210. package/positioning/utils/getParentNode.d.ts +4 -0
  211. package/positioning/utils/getReferenceOffsets.d.ts +2 -0
  212. package/positioning/utils/getRoot.d.ts +4 -0
  213. package/positioning/utils/getScroll.d.ts +4 -0
  214. package/positioning/utils/getScrollParent.d.ts +1 -0
  215. package/positioning/utils/getStyleComputedProperty.d.ts +4 -0
  216. package/positioning/utils/getTargetOffsets.d.ts +2 -0
  217. package/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.d.ts +2 -0
  218. package/positioning/utils/getWindowSizes.d.ts +4 -0
  219. package/positioning/utils/includeScroll.d.ts +2 -0
  220. package/positioning/utils/index.d.ts +22 -0
  221. package/positioning/utils/isBrowser.d.ts +1 -0
  222. package/positioning/utils/isFixed.d.ts +1 -0
  223. package/positioning/utils/isIE.d.ts +1 -0
  224. package/positioning/utils/isNumeric.d.ts +4 -0
  225. package/positioning/utils/isOffsetContainer.d.ts +1 -0
  226. package/positioning/utils/setAllStyles.d.ts +6 -0
  227. package/positioning/utils/setStyles.d.ts +5 -0
  228. package/progressbar/package.json +1 -1
  229. package/rating/package.json +1 -1
  230. package/sortable/package.json +1 -1
  231. package/tabs/package.json +1 -1
  232. package/timepicker/package.json +1 -1
  233. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +3 -2
  234. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
  235. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +1 -1
  236. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
  237. package/tooltip/esm2015/tooltip-container.component.js +12 -7
  238. package/tooltip/esm5/tooltip-container.component.js +3 -2
  239. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +12 -7
  240. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
  241. package/tooltip/fesm5/ngx-bootstrap-tooltip.js +3 -2
  242. package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
  243. package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
  244. package/tooltip/package.json +1 -1
  245. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +46 -22
  246. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
  247. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +1 -1
  248. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
  249. package/typeahead/esm2015/typeahead-container.component.js +15 -4
  250. package/typeahead/esm2015/typeahead.config.js +21 -1
  251. package/typeahead/esm2015/typeahead.directive.js +37 -21
  252. package/typeahead/esm5/typeahead-container.component.js +12 -4
  253. package/typeahead/esm5/typeahead.config.js +21 -1
  254. package/typeahead/esm5/typeahead.directive.js +37 -21
  255. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +49 -22
  256. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
  257. package/typeahead/fesm5/ngx-bootstrap-typeahead.js +46 -22
  258. package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
  259. package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
  260. package/typeahead/package.json +1 -1
  261. package/typeahead/typeahead-container.component.d.ts +1 -1
  262. package/typeahead/typeahead.config.d.ts +6 -0
  263. package/typeahead/typeahead.directive.d.ts +7 -1
  264. package/utils/package.json +1 -1
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ import { getScrollParent } from './getScrollParent';
6
+ import { getParentNode } from './getParentNode';
7
+ import { findCommonOffsetParent } from './findCommonOffsetParent';
8
+ import { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';
9
+ import { getViewportOffsetRectRelativeToArtbitraryNode } from './getViewportOffsetRectRelativeToArtbitraryNode';
10
+ import { getWindowSizes } from './getWindowSizes';
11
+ import { isFixed } from './isFixed';
12
+ import { getFixedPositionOffsetParent } from './getFixedPositionOffsetParent';
13
+ /**
14
+ * @param {?} target
15
+ * @param {?} host
16
+ * @param {?=} padding
17
+ * @param {?=} boundariesElement
18
+ * @param {?=} fixedPosition
19
+ * @return {?}
20
+ */
21
+ export function getBoundaries(target, host, padding, boundariesElement, fixedPosition) {
22
+ if (padding === void 0) { padding = 0; }
23
+ if (fixedPosition === void 0) { fixedPosition = false; }
24
+ // NOTE: 1 DOM access here
25
+ var /** @type {?} */ boundaries = { top: 0, left: 0 };
26
+ var /** @type {?} */ offsetParent = fixedPosition ? getFixedPositionOffsetParent(target) : findCommonOffsetParent(target, host);
27
+ // Handle viewport case
28
+ if (boundariesElement === 'viewport') {
29
+ boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
30
+ }
31
+ else {
32
+ // Handle other cases based on DOM element used as boundaries
33
+ var /** @type {?} */ boundariesNode = void 0;
34
+ if (boundariesElement === 'scrollParent') {
35
+ boundariesNode = getScrollParent(getParentNode(host));
36
+ if (boundariesNode.nodeName === 'BODY') {
37
+ boundariesNode = target.ownerDocument.documentElement;
38
+ }
39
+ }
40
+ else if (boundariesElement === 'window') {
41
+ boundariesNode = target.ownerDocument.documentElement;
42
+ }
43
+ else {
44
+ boundariesNode = boundariesElement;
45
+ }
46
+ var /** @type {?} */ offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
47
+ // In case of HTML, we need a different computation
48
+ if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
49
+ var _a = getWindowSizes(target.ownerDocument), height = _a.height, width = _a.width;
50
+ boundaries.top += offsets.top - offsets.marginTop;
51
+ boundaries.bottom = Number(height) + Number(offsets.top);
52
+ boundaries.left += offsets.left - offsets.marginLeft;
53
+ boundaries.right = Number(width) + Number(offsets.left);
54
+ }
55
+ else {
56
+ // for all the other DOM elements, this one is good
57
+ boundaries = offsets;
58
+ }
59
+ }
60
+ // Add paddings
61
+ boundaries.left += padding;
62
+ boundaries.top += padding;
63
+ boundaries.right -= padding;
64
+ boundaries.bottom -= padding;
65
+ return boundaries;
66
+ }
67
+
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Qm91bmRhcmllcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvcG9zaXRpb25pbmcvIiwic291cmNlcyI6WyJ1dGlscy9nZXRCb3VuZGFyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2hILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7QUFFOUUsTUFBTSx3QkFDSixNQUFtQixFQUNuQixJQUFpQixFQUNqQixPQUFXLEVBQ1gsaUJBQXlCLEVBQ3pCLGFBQXFCO0lBRnJCLHdCQUFBLEVBQUEsV0FBVztJQUVYLDhCQUFBLEVBQUEscUJBQXFCOztJQUlyQixxQkFBSSxVQUFVLEdBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUMxQyxxQkFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDOztJQUdqSCxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLFVBQVUsR0FBRyw2Q0FBNkMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDekY7SUFBQyxJQUFJLENBQUMsQ0FBQzs7UUFFTixxQkFBSSxjQUFjLFNBQUEsQ0FBQztRQUNuQixFQUFFLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLGNBQWMsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEQsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxjQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7YUFDdkQ7U0FDRjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzFDLGNBQWMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztTQUN2RDtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sY0FBYyxHQUFHLGlCQUFpQixDQUFDO1NBQ3BDO1FBRUQscUJBQU0sT0FBTyxHQUFHLG9DQUFvQyxDQUNsRCxjQUFjLEVBQ2QsWUFBWSxFQUNaLGFBQWEsQ0FDZCxDQUFDOztRQUdGLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEtBQUssTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRSwrQ0FBUSxrQkFBTSxFQUFFLGdCQUFLLENBQTBDO1lBQy9ELFVBQVUsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ2xELFVBQVUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekQsVUFBVSxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDckQsVUFBVSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RDtRQUFDLElBQUksQ0FBQyxDQUFDOztZQUVOLFVBQVUsR0FBRyxPQUFPLENBQUM7U0FDdEI7S0FDRjs7SUFHRCxVQUFVLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQztJQUMzQixVQUFVLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQztJQUMxQixVQUFVLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQztJQUM1QixVQUFVLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQztJQUU3QixNQUFNLENBQUMsVUFBVSxDQUFDO0NBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21wdXRlZCB0aGUgYm91bmRhcmllcyBsaW1pdHMgYW5kIHJldHVybiB0aGVtXG4gKi9cbmltcG9ydCB7IGdldFNjcm9sbFBhcmVudCB9IGZyb20gJy4vZ2V0U2Nyb2xsUGFyZW50JztcbmltcG9ydCB7IGdldFBhcmVudE5vZGUgfSBmcm9tICcuL2dldFBhcmVudE5vZGUnO1xuaW1wb3J0IHsgZmluZENvbW1vbk9mZnNldFBhcmVudCB9IGZyb20gJy4vZmluZENvbW1vbk9mZnNldFBhcmVudCc7XG5pbXBvcnQgeyBnZXRPZmZzZXRSZWN0UmVsYXRpdmVUb0FyYml0cmFyeU5vZGUgfSBmcm9tICcuL2dldE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJiaXRyYXJ5Tm9kZSc7XG5pbXBvcnQgeyBnZXRWaWV3cG9ydE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJ0Yml0cmFyeU5vZGUgfSBmcm9tICcuL2dldFZpZXdwb3J0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcnRiaXRyYXJ5Tm9kZSc7XG5pbXBvcnQgeyBnZXRXaW5kb3dTaXplcyB9IGZyb20gJy4vZ2V0V2luZG93U2l6ZXMnO1xuaW1wb3J0IHsgaXNGaXhlZCB9IGZyb20gJy4vaXNGaXhlZCc7XG5pbXBvcnQgeyBnZXRGaXhlZFBvc2l0aW9uT2Zmc2V0UGFyZW50IH0gZnJvbSAnLi9nZXRGaXhlZFBvc2l0aW9uT2Zmc2V0UGFyZW50JztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJvdW5kYXJpZXMoXG4gIHRhcmdldDogSFRNTEVsZW1lbnQsXG4gIGhvc3Q6IEhUTUxFbGVtZW50LFxuICBwYWRkaW5nID0gMCxcbiAgYm91bmRhcmllc0VsZW1lbnQ6IHN0cmluZyxcbiAgZml4ZWRQb3NpdGlvbiA9IGZhbHNlXG4pIHtcbiAgLy8gTk9URTogMSBET00gYWNjZXNzIGhlcmVcblxuICBsZXQgYm91bmRhcmllczogYW55ID0geyB0b3A6IDAsIGxlZnQ6IDAgfTtcbiAgY29uc3Qgb2Zmc2V0UGFyZW50ID0gZml4ZWRQb3NpdGlvbiA/IGdldEZpeGVkUG9zaXRpb25PZmZzZXRQYXJlbnQodGFyZ2V0KSA6IGZpbmRDb21tb25PZmZzZXRQYXJlbnQodGFyZ2V0LCBob3N0KTtcblxuICAvLyBIYW5kbGUgdmlld3BvcnQgY2FzZVxuICBpZiAoYm91bmRhcmllc0VsZW1lbnQgPT09ICd2aWV3cG9ydCcpIHtcbiAgICBib3VuZGFyaWVzID0gZ2V0Vmlld3BvcnRPZmZzZXRSZWN0UmVsYXRpdmVUb0FydGJpdHJhcnlOb2RlKG9mZnNldFBhcmVudCwgZml4ZWRQb3NpdGlvbik7XG4gIH0gZWxzZSB7XG4gICAgLy8gSGFuZGxlIG90aGVyIGNhc2VzIGJhc2VkIG9uIERPTSBlbGVtZW50IHVzZWQgYXMgYm91bmRhcmllc1xuICAgIGxldCBib3VuZGFyaWVzTm9kZTtcbiAgICBpZiAoYm91bmRhcmllc0VsZW1lbnQgPT09ICdzY3JvbGxQYXJlbnQnKSB7XG4gICAgICBib3VuZGFyaWVzTm9kZSA9IGdldFNjcm9sbFBhcmVudChnZXRQYXJlbnROb2RlKGhvc3QpKTtcbiAgICAgIGlmIChib3VuZGFyaWVzTm9kZS5ub2RlTmFtZSA9PT0gJ0JPRFknKSB7XG4gICAgICAgIGJvdW5kYXJpZXNOb2RlID0gdGFyZ2V0Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYm91bmRhcmllc0VsZW1lbnQgPT09ICd3aW5kb3cnKSB7XG4gICAgICBib3VuZGFyaWVzTm9kZSA9IHRhcmdldC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgYm91bmRhcmllc05vZGUgPSBib3VuZGFyaWVzRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdCBvZmZzZXRzID0gZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlKFxuICAgICAgYm91bmRhcmllc05vZGUsXG4gICAgICBvZmZzZXRQYXJlbnQsXG4gICAgICBmaXhlZFBvc2l0aW9uXG4gICAgKTtcblxuICAgIC8vIEluIGNhc2Ugb2YgSFRNTCwgd2UgbmVlZCBhIGRpZmZlcmVudCBjb21wdXRhdGlvblxuICAgIGlmIChib3VuZGFyaWVzTm9kZS5ub2RlTmFtZSA9PT0gJ0hUTUwnICYmICFpc0ZpeGVkKG9mZnNldFBhcmVudCkpIHtcbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCB3aWR0aCB9ID0gZ2V0V2luZG93U2l6ZXModGFyZ2V0Lm93bmVyRG9jdW1lbnQpO1xuICAgICAgYm91bmRhcmllcy50b3AgKz0gb2Zmc2V0cy50b3AgLSBvZmZzZXRzLm1hcmdpblRvcDtcbiAgICAgIGJvdW5kYXJpZXMuYm90dG9tID0gTnVtYmVyKGhlaWdodCkgKyBOdW1iZXIob2Zmc2V0cy50b3ApO1xuICAgICAgYm91bmRhcmllcy5sZWZ0ICs9IG9mZnNldHMubGVmdCAtIG9mZnNldHMubWFyZ2luTGVmdDtcbiAgICAgIGJvdW5kYXJpZXMucmlnaHQgPSBOdW1iZXIod2lkdGgpICsgTnVtYmVyKG9mZnNldHMubGVmdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZvciBhbGwgdGhlIG90aGVyIERPTSBlbGVtZW50cywgdGhpcyBvbmUgaXMgZ29vZFxuICAgICAgYm91bmRhcmllcyA9IG9mZnNldHM7XG4gICAgfVxuICB9XG5cbiAgLy8gQWRkIHBhZGRpbmdzXG4gIGJvdW5kYXJpZXMubGVmdCArPSBwYWRkaW5nO1xuICBib3VuZGFyaWVzLnRvcCArPSBwYWRkaW5nO1xuICBib3VuZGFyaWVzLnJpZ2h0IC09IHBhZGRpbmc7XG4gIGJvdW5kYXJpZXMuYm90dG9tIC09IHBhZGRpbmc7XG5cbiAgcmV0dXJuIGJvdW5kYXJpZXM7XG59XG4iXX0=
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ import { getStyleComputedProperty } from './getStyleComputedProperty';
6
+ import { getBordersSize } from './getBordersSize';
7
+ import { getWindowSizes } from './getWindowSizes';
8
+ import { getScroll } from './getScroll';
9
+ import { getClientRect } from './getClientRect';
10
+ import { isIE } from './isIE';
11
+ /**
12
+ * @param {?} element
13
+ * @return {?}
14
+ */
15
+ export function getBoundingClientRect(element) {
16
+ var /** @type {?} */ rect = {};
17
+ // IE10 10 FIX: Please, don't ask, the element isn't
18
+ // considered in DOM in some circumstances...
19
+ // This isn't reproducible in IE10 compatibility mode of IE11
20
+ try {
21
+ if (isIE(10)) {
22
+ rect = element.getBoundingClientRect();
23
+ var /** @type {?} */ scrollTop = getScroll(element, 'top');
24
+ var /** @type {?} */ scrollLeft = getScroll(element, 'left');
25
+ rect.top += scrollTop;
26
+ rect.left += scrollLeft;
27
+ rect.bottom += scrollTop;
28
+ rect.right += scrollLeft;
29
+ }
30
+ else {
31
+ rect = element.getBoundingClientRect();
32
+ }
33
+ }
34
+ catch (/** @type {?} */ e) {
35
+ return undefined;
36
+ }
37
+ var /** @type {?} */ result = {
38
+ left: rect.left,
39
+ top: rect.top,
40
+ width: rect.right - rect.left,
41
+ height: rect.bottom - rect.top
42
+ };
43
+ // subtract scrollbar size from sizes
44
+ var /** @type {?} */ sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
45
+ var /** @type {?} */ width = sizes.width || element.clientWidth || result.right - result.left;
46
+ var /** @type {?} */ height = sizes.height || element.clientHeight || result.bottom - result.top;
47
+ var /** @type {?} */ horizScrollbar = element.offsetWidth - width;
48
+ var /** @type {?} */ vertScrollbar = element.offsetHeight - height;
49
+ // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
50
+ // we make this check conditional for performance reasons
51
+ if (horizScrollbar || vertScrollbar) {
52
+ var /** @type {?} */ styles = getStyleComputedProperty(element);
53
+ horizScrollbar -= getBordersSize(styles, 'x');
54
+ vertScrollbar -= getBordersSize(styles, 'y');
55
+ result.width -= horizScrollbar;
56
+ result.height -= vertScrollbar;
57
+ }
58
+ return getClientRect(result);
59
+ }
60
+
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWJvb3RzdHJhcC9wb3NpdGlvbmluZy8iLCJzb3VyY2VzIjpbInV0aWxzL2dldEJvdW5kaW5nQ2xpZW50UmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7OztBQUc5QixNQUFNLGdDQUFnQyxPQUFvQjtJQUN4RCxxQkFBSSxJQUFJLEdBQVEsRUFBRSxDQUFDOzs7O0lBS25CLElBQUksQ0FBQztRQUNILEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDYixJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDdkMscUJBQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUMscUJBQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUM7U0FDMUI7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLElBQUksR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUN4QztLQUNGO0lBQUMsS0FBSyxDQUFDLENBQUMsaUJBQUEsQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLENBQUMsU0FBUyxDQUFDO0tBQ2xCO0lBRUQscUJBQU0sTUFBTSxHQUFRO1FBQ2xCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztRQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJO1FBQzdCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHO0tBQy9CLENBQUM7O0lBR0YscUJBQU0sS0FBSyxHQUFRLE9BQU8sQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDNUYscUJBQU0sS0FBSyxHQUNULEtBQUssQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDbkUscUJBQU0sTUFBTSxHQUNWLEtBQUssQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFFckUscUJBQUksY0FBYyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ2pELHFCQUFJLGFBQWEsR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQzs7O0lBSWxELEVBQUUsQ0FBQyxDQUFDLGNBQWMsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLHFCQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxjQUFjLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QyxhQUFhLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUU3QyxNQUFNLENBQUMsS0FBSyxJQUFJLGNBQWMsQ0FBQztRQUMvQixNQUFNLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQztLQUNoQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDOUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldCBib3VuZGluZyBjbGllbnQgcmVjdCBvZiBnaXZlbiBlbGVtZW50XG4gKi9cbmltcG9ydCB7IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eSB9IGZyb20gJy4vZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5JztcbmltcG9ydCB7IGdldEJvcmRlcnNTaXplIH0gZnJvbSAnLi9nZXRCb3JkZXJzU2l6ZSc7XG5pbXBvcnQgeyBnZXRXaW5kb3dTaXplcyB9IGZyb20gJy4vZ2V0V2luZG93U2l6ZXMnO1xuaW1wb3J0IHsgZ2V0U2Nyb2xsIH0gZnJvbSAnLi9nZXRTY3JvbGwnO1xuaW1wb3J0IHsgZ2V0Q2xpZW50UmVjdCB9IGZyb20gJy4vZ2V0Q2xpZW50UmVjdCc7XG5pbXBvcnQgeyBpc0lFIH0gZnJvbSAnLi9pc0lFJztcbmltcG9ydCB7IE9mZnNldHMgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogT2Zmc2V0cyB7XG4gIGxldCByZWN0OiBhbnkgPSB7fTtcblxuICAvLyBJRTEwIDEwIEZJWDogUGxlYXNlLCBkb24ndCBhc2ssIHRoZSBlbGVtZW50IGlzbid0XG4gIC8vIGNvbnNpZGVyZWQgaW4gRE9NIGluIHNvbWUgY2lyY3Vtc3RhbmNlcy4uLlxuICAvLyBUaGlzIGlzbid0IHJlcHJvZHVjaWJsZSBpbiBJRTEwIGNvbXBhdGliaWxpdHkgbW9kZSBvZiBJRTExXG4gIHRyeSB7XG4gICAgaWYgKGlzSUUoMTApKSB7XG4gICAgICByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IGdldFNjcm9sbChlbGVtZW50LCAndG9wJyk7XG4gICAgICBjb25zdCBzY3JvbGxMZWZ0ID0gZ2V0U2Nyb2xsKGVsZW1lbnQsICdsZWZ0Jyk7XG4gICAgICByZWN0LnRvcCArPSBzY3JvbGxUb3A7XG4gICAgICByZWN0LmxlZnQgKz0gc2Nyb2xsTGVmdDtcbiAgICAgIHJlY3QuYm90dG9tICs9IHNjcm9sbFRvcDtcbiAgICAgIHJlY3QucmlnaHQgKz0gc2Nyb2xsTGVmdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge1xuICAgIGxlZnQ6IHJlY3QubGVmdCxcbiAgICB0b3A6IHJlY3QudG9wLFxuICAgIHdpZHRoOiByZWN0LnJpZ2h0IC0gcmVjdC5sZWZ0LFxuICAgIGhlaWdodDogcmVjdC5ib3R0b20gLSByZWN0LnRvcFxuICB9O1xuXG4gIC8vIHN1YnRyYWN0IHNjcm9sbGJhciBzaXplIGZyb20gc2l6ZXNcbiAgY29uc3Qgc2l6ZXM6IGFueSA9IGVsZW1lbnQubm9kZU5hbWUgPT09ICdIVE1MJyA/IGdldFdpbmRvd1NpemVzKGVsZW1lbnQub3duZXJEb2N1bWVudCkgOiB7fTtcbiAgY29uc3Qgd2lkdGggPVxuICAgIHNpemVzLndpZHRoIHx8IGVsZW1lbnQuY2xpZW50V2lkdGggfHwgcmVzdWx0LnJpZ2h0IC0gcmVzdWx0LmxlZnQ7XG4gIGNvbnN0IGhlaWdodCA9XG4gICAgc2l6ZXMuaGVpZ2h0IHx8IGVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IHJlc3VsdC5ib3R0b20gLSByZXN1bHQudG9wO1xuXG4gIGxldCBob3JpelNjcm9sbGJhciA9IGVsZW1lbnQub2Zmc2V0V2lkdGggLSB3aWR0aDtcbiAgbGV0IHZlcnRTY3JvbGxiYXIgPSBlbGVtZW50Lm9mZnNldEhlaWdodCAtIGhlaWdodDtcblxuICAvLyBpZiBhbiBoeXBvdGhldGljYWwgc2Nyb2xsYmFyIGlzIGRldGVjdGVkLCB3ZSBtdXN0IGJlIHN1cmUgaXQncyBub3QgYSBgYm9yZGVyYFxuICAvLyB3ZSBtYWtlIHRoaXMgY2hlY2sgY29uZGl0aW9uYWwgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnNcbiAgaWYgKGhvcml6U2Nyb2xsYmFyIHx8IHZlcnRTY3JvbGxiYXIpIHtcbiAgICBjb25zdCBzdHlsZXMgPSBnZXRTdHlsZUNvbXB1dGVkUHJvcGVydHkoZWxlbWVudCk7XG4gICAgaG9yaXpTY3JvbGxiYXIgLT0gZ2V0Qm9yZGVyc1NpemUoc3R5bGVzLCAneCcpO1xuICAgIHZlcnRTY3JvbGxiYXIgLT0gZ2V0Qm9yZGVyc1NpemUoc3R5bGVzLCAneScpO1xuXG4gICAgcmVzdWx0LndpZHRoIC09IGhvcml6U2Nyb2xsYmFyO1xuICAgIHJlc3VsdC5oZWlnaHQgLT0gdmVydFNjcm9sbGJhcjtcbiAgfVxuXG4gIHJldHVybiBnZXRDbGllbnRSZWN0KHJlc3VsdCk7XG59XG4iXX0=
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ /**
7
+ * @param {?} offsets
8
+ * @return {?}
9
+ */
10
+ export function getClientRect(offsets) {
11
+ return tslib_1.__assign({}, offsets, { right: offsets.left + offsets.width, bottom: offsets.top + offsets.height });
12
+ }
13
+
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2xpZW50UmVjdC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvcG9zaXRpb25pbmcvIiwic291cmNlcyI6WyJ1dGlscy9nZXRDbGllbnRSZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUtBLE1BQU0sd0JBQXdCLE9BQWdCO0lBQzVDLE1BQU0sc0JBQ0QsT0FBTyxJQUNWLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQ25DLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQ3BDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdpdmVuIGVsZW1lbnQgb2Zmc2V0cywgZ2VuZXJhdGUgYW4gb3V0cHV0IHNpbWlsYXIgdG8gZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG4gKi9cbmltcG9ydCB7IE9mZnNldHMgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdChvZmZzZXRzOiBPZmZzZXRzKTogT2Zmc2V0cyB7XG4gIHJldHVybiB7XG4gICAgLi4ub2Zmc2V0cyxcbiAgICByaWdodDogb2Zmc2V0cy5sZWZ0ICsgb2Zmc2V0cy53aWR0aCxcbiAgICBib3R0b206IG9mZnNldHMudG9wICsgb2Zmc2V0cy5oZWlnaHRcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ /**
6
+ * Finds the first parent of an element that has a transformed property defined
7
+ */
8
+ import { getStyleComputedProperty } from './getStyleComputedProperty';
9
+ import { isIE } from './isIE';
10
+ /**
11
+ * @param {?} element
12
+ * @return {?}
13
+ */
14
+ export function getFixedPositionOffsetParent(element) {
15
+ // This check is needed to avoid errors in case one of the elements isn't defined for any reason
16
+ if (!element || !element.parentElement || isIE()) {
17
+ return document.documentElement;
18
+ }
19
+ var /** @type {?} */ el = element.parentElement;
20
+ while (el && getStyleComputedProperty(el, 'transform') === 'none') {
21
+ el = el.parentElement;
22
+ }
23
+ return el || document.documentElement;
24
+ }
25
+
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Rml4ZWRQb3NpdGlvbk9mZnNldFBhcmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvcG9zaXRpb25pbmcvIiwic291cmNlcyI6WyJ1dGlscy9nZXRGaXhlZFBvc2l0aW9uT2Zmc2V0UGFyZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7OztBQUU5QixNQUFNLHVDQUF1QyxPQUFvQjs7SUFFL0QsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztLQUNoQztJQUVELHFCQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBRS9CLE9BQU8sRUFBRSxJQUFJLHdCQUF3QixDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUNsRSxFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztLQUN2QjtJQUVELE1BQU0sQ0FBQyxFQUFFLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQztDQUN2QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmluZHMgdGhlIGZpcnN0IHBhcmVudCBvZiBhbiBlbGVtZW50IHRoYXQgaGFzIGEgdHJhbnNmb3JtZWQgcHJvcGVydHkgZGVmaW5lZFxuICovXG5cbmltcG9ydCB7IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eSB9IGZyb20gJy4vZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5JztcbmltcG9ydCB7IGlzSUUgfSBmcm9tICcuL2lzSUUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rml4ZWRQb3NpdGlvbk9mZnNldFBhcmVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgLy8gVGhpcyBjaGVjayBpcyBuZWVkZWQgdG8gYXZvaWQgZXJyb3JzIGluIGNhc2Ugb25lIG9mIHRoZSBlbGVtZW50cyBpc24ndCBkZWZpbmVkIGZvciBhbnkgcmVhc29uXG4gIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC5wYXJlbnRFbGVtZW50IHx8IGlzSUUoKSkge1xuICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgfVxuXG4gIGxldCBlbCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcblxuICB3aGlsZSAoZWwgJiYgZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5KGVsLCAndHJhbnNmb3JtJykgPT09ICdub25lJykge1xuICAgIGVsID0gZWwucGFyZW50RWxlbWVudDtcbiAgfVxuXG4gIHJldHVybiBlbCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG59XG4iXX0=
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ import { getStyleComputedProperty } from './getStyleComputedProperty';
6
+ import { isIE } from './isIE';
7
+ /**
8
+ * @param {?} element
9
+ * @return {?}
10
+ */
11
+ export function getOffsetParent(element) {
12
+ if (!element) {
13
+ return document.documentElement;
14
+ }
15
+ var /** @type {?} */ noOffsetParent = isIE(10) ? document.body : null;
16
+ // NOTE: 1 DOM access here
17
+ var /** @type {?} */ offsetParent = element.offsetParent || null;
18
+ // Skip hidden elements which don't have an offsetParent
19
+ var /** @type {?} */ sibling;
20
+ while (offsetParent === noOffsetParent && element.nextElementSibling) {
21
+ sibling = element.nextElementSibling;
22
+ offsetParent = sibling.offsetParent;
23
+ }
24
+ var /** @type {?} */ nodeName = offsetParent && offsetParent.nodeName;
25
+ if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
26
+ return sibling ? sibling.ownerDocument.documentElement : document.documentElement;
27
+ }
28
+ // .offsetParent will return the closest TH, TD or TABLE in case
29
+ // no offsetParent is present, I hate this job...
30
+ if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&
31
+ getStyleComputedProperty(offsetParent, 'position') === 'static') {
32
+ return getOffsetParent(offsetParent);
33
+ }
34
+ return offsetParent;
35
+ }
36
+
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0T2Zmc2V0UGFyZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWJvb3RzdHJhcC9wb3NpdGlvbmluZy8iLCJzb3VyY2VzIjpbInV0aWxzL2dldE9mZnNldFBhcmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFFOUIsTUFBTSwwQkFBMEIsT0FBWTtJQUMxQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDYixNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztLQUNqQztJQUVELHFCQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzs7SUFHdkQscUJBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDOztJQUdoRCxxQkFBSSxPQUFZLENBQUM7SUFFakIsT0FBTyxZQUFZLEtBQUssY0FBYyxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3JFLE9BQU8sR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUM7UUFDckMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7S0FDckM7SUFFRCxxQkFBTSxRQUFRLEdBQUcsWUFBWSxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFFdkQsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxLQUFLLE1BQU0sSUFBSSxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztLQUNuRjs7O0lBSUQsRUFBRSxDQUFDLENBQ0QsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNELHdCQUF3QixDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsS0FBSyxRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUNELE1BQU0sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7S0FDdEM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDO0NBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXR1cm5zIHRoZSBvZmZzZXQgcGFyZW50IG9mIHRoZSBnaXZlbiBlbGVtZW50XG4gKi9cbmltcG9ydCB7IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eSB9IGZyb20gJy4vZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5JztcbmltcG9ydCB7IGlzSUUgfSBmcm9tICcuL2lzSUUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQ6IGFueSk6IGFueSB7XG4gIGlmICghZWxlbWVudCkge1xuICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdCBub09mZnNldFBhcmVudCA9IGlzSUUoMTApID8gZG9jdW1lbnQuYm9keSA6IG51bGw7XG5cbiAgLy8gTk9URTogMSBET00gYWNjZXNzIGhlcmVcbiAgbGV0IG9mZnNldFBhcmVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50IHx8IG51bGw7XG4gIC8vIFNraXAgaGlkZGVuIGVsZW1lbnRzIHdoaWNoIGRvbid0IGhhdmUgYW4gb2Zmc2V0UGFyZW50XG5cbiAgbGV0IHNpYmxpbmc6IGFueTtcblxuICB3aGlsZSAob2Zmc2V0UGFyZW50ID09PSBub09mZnNldFBhcmVudCAmJiBlbGVtZW50Lm5leHRFbGVtZW50U2libGluZykge1xuICAgIHNpYmxpbmcgPSBlbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcbiAgICBvZmZzZXRQYXJlbnQgPSBzaWJsaW5nLm9mZnNldFBhcmVudDtcbiAgfVxuXG4gIGNvbnN0IG5vZGVOYW1lID0gb2Zmc2V0UGFyZW50ICYmIG9mZnNldFBhcmVudC5ub2RlTmFtZTtcblxuICBpZiAoIW5vZGVOYW1lIHx8IG5vZGVOYW1lID09PSAnQk9EWScgfHwgbm9kZU5hbWUgPT09ICdIVE1MJykge1xuICAgIHJldHVybiBzaWJsaW5nID8gc2libGluZy5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgfVxuXG4gIC8vIC5vZmZzZXRQYXJlbnQgd2lsbCByZXR1cm4gdGhlIGNsb3Nlc3QgVEgsIFREIG9yIFRBQkxFIGluIGNhc2VcbiAgLy8gbm8gb2Zmc2V0UGFyZW50IGlzIHByZXNlbnQsIEkgaGF0ZSB0aGlzIGpvYi4uLlxuICBpZiAoXG4gICAgWydUSCcsICdURCcsICdUQUJMRSddLmluZGV4T2Yob2Zmc2V0UGFyZW50Lm5vZGVOYW1lKSAhPT0gLTEgJiZcbiAgICBnZXRTdHlsZUNvbXB1dGVkUHJvcGVydHkob2Zmc2V0UGFyZW50LCAncG9zaXRpb24nKSA9PT0gJ3N0YXRpYydcbiAgKSB7XG4gICAgcmV0dXJuIGdldE9mZnNldFBhcmVudChvZmZzZXRQYXJlbnQpO1xuICB9XG5cbiAgcmV0dXJuIG9mZnNldFBhcmVudDtcbn1cbiJdfQ==
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ import { getBoundingClientRect } from './getBoundingClientRect';
6
+ import { getClientRect } from './getClientRect';
7
+ import { getScrollParent } from './getScrollParent';
8
+ import { getStyleComputedProperty } from './getStyleComputedProperty';
9
+ import { includeScroll } from './includeScroll';
10
+ import { isIE as runIsIE } from './isIE';
11
+ /**
12
+ * @param {?} children
13
+ * @param {?} parent
14
+ * @param {?=} fixedPosition
15
+ * @return {?}
16
+ */
17
+ export function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition) {
18
+ if (fixedPosition === void 0) { fixedPosition = false; }
19
+ var /** @type {?} */ isIE10 = runIsIE(10);
20
+ var /** @type {?} */ isHTML = parent.nodeName === 'HTML';
21
+ var /** @type {?} */ childrenRect = getBoundingClientRect(children);
22
+ var /** @type {?} */ parentRect = getBoundingClientRect(parent);
23
+ var /** @type {?} */ scrollParent = getScrollParent(children);
24
+ var /** @type {?} */ styles = getStyleComputedProperty(parent);
25
+ var /** @type {?} */ borderTopWidth = parseFloat(styles.borderTopWidth);
26
+ var /** @type {?} */ borderLeftWidth = parseFloat(styles.borderLeftWidth);
27
+ // In cases where the parent is fixed, we must ignore negative scroll in offset calc
28
+ if (fixedPosition && isHTML) {
29
+ parentRect.top = Math.max(parentRect.top, 0);
30
+ parentRect.left = Math.max(parentRect.left, 0);
31
+ }
32
+ var /** @type {?} */ offsets = getClientRect({
33
+ top: childrenRect.top - parentRect.top - borderTopWidth,
34
+ left: childrenRect.left - parentRect.left - borderLeftWidth,
35
+ width: childrenRect.width,
36
+ height: childrenRect.height
37
+ });
38
+ offsets.marginTop = 0;
39
+ offsets.marginLeft = 0;
40
+ // Subtract margins of documentElement in case it's being used as parent
41
+ // we do this only on HTML because it's the only element that behaves
42
+ // differently when margins are applied to it. The margins are included in
43
+ // the box of the documentElement, in the other cases not.
44
+ if (!isIE10 && isHTML) {
45
+ var /** @type {?} */ marginTop = parseFloat(styles.marginTop);
46
+ var /** @type {?} */ marginLeft = parseFloat(styles.marginLeft);
47
+ offsets.top -= borderTopWidth - marginTop;
48
+ offsets.bottom -= borderTopWidth - marginTop;
49
+ offsets.left -= borderLeftWidth - marginLeft;
50
+ offsets.right -= borderLeftWidth - marginLeft;
51
+ // Attach marginTop and marginLeft because in some circumstances we may need them
52
+ offsets.marginTop = marginTop;
53
+ offsets.marginLeft = marginLeft;
54
+ }
55
+ if (isIE10 && !fixedPosition
56
+ ? parent.contains(scrollParent)
57
+ : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
58
+ offsets = includeScroll(offsets, parent);
59
+ }
60
+ return offsets;
61
+ }
62
+
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWJvb3RzdHJhcC9wb3NpdGlvbmluZy8iLCJzb3VyY2VzIjpbInV0aWxzL2dldE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJiaXRyYXJ5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksSUFBSSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7QUFHekMsTUFBTSwrQ0FDSixRQUFxQixFQUNyQixNQUFtQixFQUNuQixhQUFxQjtJQUFyQiw4QkFBQSxFQUFBLHFCQUFxQjtJQUVyQixxQkFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLHFCQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQztJQUMxQyxxQkFBTSxZQUFZLEdBQVEscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUQscUJBQU0sVUFBVSxHQUFRLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELHFCQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFL0MscUJBQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELHFCQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pELHFCQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDOztJQUczRCxFQUFFLENBQUMsQ0FBQyxhQUFhLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM1QixVQUFVLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3QyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztLQUNoRDtJQUVELHFCQUFJLE9BQU8sR0FBWSxhQUFhLENBQUM7UUFDbkMsR0FBRyxFQUFFLFlBQVksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsR0FBRyxjQUFjO1FBQ3ZELElBQUksRUFBRSxZQUFZLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEdBQUcsZUFBZTtRQUMzRCxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7UUFDekIsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNO0tBQzVCLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDOzs7OztJQU12QixFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLHFCQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLHFCQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpELE9BQU8sQ0FBQyxHQUFHLElBQUksY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUMxQyxPQUFPLENBQUMsTUFBTSxJQUFJLGNBQWMsR0FBRyxTQUFTLENBQUM7UUFDN0MsT0FBTyxDQUFDLElBQUksSUFBSSxlQUFlLEdBQUcsVUFBVSxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxLQUFLLElBQUksZUFBZSxHQUFHLFVBQVUsQ0FBQzs7UUFHOUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDOUIsT0FBTyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7S0FDakM7SUFFRCxFQUFFLENBQUMsQ0FDRCxNQUFNLElBQUksQ0FBQyxhQUFhO1FBQ3RCLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUMvQixDQUFDLENBQUMsTUFBTSxLQUFLLFlBQVksSUFBSSxZQUFZLENBQUMsUUFBUSxLQUFLLE1BQzNELENBQUMsQ0FBQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDMUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDO0NBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IH0gZnJvbSAnLi9nZXRCb3VuZGluZ0NsaWVudFJlY3QnO1xuaW1wb3J0IHsgZ2V0Q2xpZW50UmVjdCB9IGZyb20gJy4vZ2V0Q2xpZW50UmVjdCc7XG5pbXBvcnQgeyBnZXRTY3JvbGxQYXJlbnQgfSBmcm9tICcuL2dldFNjcm9sbFBhcmVudCc7XG5pbXBvcnQgeyBnZXRTdHlsZUNvbXB1dGVkUHJvcGVydHkgfSBmcm9tICcuL2dldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eSc7XG5pbXBvcnQgeyBpbmNsdWRlU2Nyb2xsIH0gZnJvbSAnLi9pbmNsdWRlU2Nyb2xsJztcbmltcG9ydCB7IGlzSUUgYXMgcnVuSXNJRSB9IGZyb20gJy4vaXNJRSc7XG5pbXBvcnQgeyBPZmZzZXRzIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJiaXRyYXJ5Tm9kZShcbiAgY2hpbGRyZW46IEhUTUxFbGVtZW50LFxuICBwYXJlbnQ6IEhUTUxFbGVtZW50LFxuICBmaXhlZFBvc2l0aW9uID0gZmFsc2Vcbik6IE9mZnNldHMge1xuICBjb25zdCBpc0lFMTAgPSBydW5Jc0lFKDEwKTtcbiAgY29uc3QgaXNIVE1MID0gcGFyZW50Lm5vZGVOYW1lID09PSAnSFRNTCc7XG4gIGNvbnN0IGNoaWxkcmVuUmVjdDogYW55ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGNoaWxkcmVuKTtcbiAgY29uc3QgcGFyZW50UmVjdDogYW55ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KHBhcmVudCk7XG4gIGNvbnN0IHNjcm9sbFBhcmVudCA9IGdldFNjcm9sbFBhcmVudChjaGlsZHJlbik7XG5cbiAgY29uc3Qgc3R5bGVzID0gZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5KHBhcmVudCk7XG4gIGNvbnN0IGJvcmRlclRvcFdpZHRoID0gcGFyc2VGbG9hdChzdHlsZXMuYm9yZGVyVG9wV2lkdGgpO1xuICBjb25zdCBib3JkZXJMZWZ0V2lkdGggPSBwYXJzZUZsb2F0KHN0eWxlcy5ib3JkZXJMZWZ0V2lkdGgpO1xuXG4gIC8vIEluIGNhc2VzIHdoZXJlIHRoZSBwYXJlbnQgaXMgZml4ZWQsIHdlIG11c3QgaWdub3JlIG5lZ2F0aXZlIHNjcm9sbCBpbiBvZmZzZXQgY2FsY1xuICBpZiAoZml4ZWRQb3NpdGlvbiAmJiBpc0hUTUwpIHtcbiAgICBwYXJlbnRSZWN0LnRvcCA9IE1hdGgubWF4KHBhcmVudFJlY3QudG9wLCAwKTtcbiAgICBwYXJlbnRSZWN0LmxlZnQgPSBNYXRoLm1heChwYXJlbnRSZWN0LmxlZnQsIDApO1xuICB9XG5cbiAgbGV0IG9mZnNldHM6IE9mZnNldHMgPSBnZXRDbGllbnRSZWN0KHtcbiAgICB0b3A6IGNoaWxkcmVuUmVjdC50b3AgLSBwYXJlbnRSZWN0LnRvcCAtIGJvcmRlclRvcFdpZHRoLFxuICAgIGxlZnQ6IGNoaWxkcmVuUmVjdC5sZWZ0IC0gcGFyZW50UmVjdC5sZWZ0IC0gYm9yZGVyTGVmdFdpZHRoLFxuICAgIHdpZHRoOiBjaGlsZHJlblJlY3Qud2lkdGgsXG4gICAgaGVpZ2h0OiBjaGlsZHJlblJlY3QuaGVpZ2h0XG4gIH0pO1xuXG4gIG9mZnNldHMubWFyZ2luVG9wID0gMDtcbiAgb2Zmc2V0cy5tYXJnaW5MZWZ0ID0gMDtcblxuICAvLyBTdWJ0cmFjdCBtYXJnaW5zIG9mIGRvY3VtZW50RWxlbWVudCBpbiBjYXNlIGl0J3MgYmVpbmcgdXNlZCBhcyBwYXJlbnRcbiAgLy8gd2UgZG8gdGhpcyBvbmx5IG9uIEhUTUwgYmVjYXVzZSBpdCdzIHRoZSBvbmx5IGVsZW1lbnQgdGhhdCBiZWhhdmVzXG4gIC8vIGRpZmZlcmVudGx5IHdoZW4gbWFyZ2lucyBhcmUgYXBwbGllZCB0byBpdC4gVGhlIG1hcmdpbnMgYXJlIGluY2x1ZGVkIGluXG4gIC8vIHRoZSBib3ggb2YgdGhlIGRvY3VtZW50RWxlbWVudCwgaW4gdGhlIG90aGVyIGNhc2VzIG5vdC5cbiAgaWYgKCFpc0lFMTAgJiYgaXNIVE1MKSB7XG4gICAgY29uc3QgbWFyZ2luVG9wID0gcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luVG9wKTtcbiAgICBjb25zdCBtYXJnaW5MZWZ0ID0gcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luTGVmdCk7XG5cbiAgICBvZmZzZXRzLnRvcCAtPSBib3JkZXJUb3BXaWR0aCAtIG1hcmdpblRvcDtcbiAgICBvZmZzZXRzLmJvdHRvbSAtPSBib3JkZXJUb3BXaWR0aCAtIG1hcmdpblRvcDtcbiAgICBvZmZzZXRzLmxlZnQgLT0gYm9yZGVyTGVmdFdpZHRoIC0gbWFyZ2luTGVmdDtcbiAgICBvZmZzZXRzLnJpZ2h0IC09IGJvcmRlckxlZnRXaWR0aCAtIG1hcmdpbkxlZnQ7XG5cbiAgICAvLyBBdHRhY2ggbWFyZ2luVG9wIGFuZCBtYXJnaW5MZWZ0IGJlY2F1c2UgaW4gc29tZSBjaXJjdW1zdGFuY2VzIHdlIG1heSBuZWVkIHRoZW1cbiAgICBvZmZzZXRzLm1hcmdpblRvcCA9IG1hcmdpblRvcDtcbiAgICBvZmZzZXRzLm1hcmdpbkxlZnQgPSBtYXJnaW5MZWZ0O1xuICB9XG5cbiAgaWYgKFxuICAgIGlzSUUxMCAmJiAhZml4ZWRQb3NpdGlvblxuICAgICAgPyBwYXJlbnQuY29udGFpbnMoc2Nyb2xsUGFyZW50KVxuICAgICAgOiBwYXJlbnQgPT09IHNjcm9sbFBhcmVudCAmJiBzY3JvbGxQYXJlbnQubm9kZU5hbWUgIT09ICdCT0RZJ1xuICApIHtcbiAgICBvZmZzZXRzID0gaW5jbHVkZVNjcm9sbChvZmZzZXRzLCBwYXJlbnQpO1xuICB9XG5cbiAgcmV0dXJuIG9mZnNldHM7XG59XG4iXX0=
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ /**
6
+ * @param {?} data
7
+ * @return {?}
8
+ */
9
+ export function getOffsets(data) {
10
+ return {
11
+ width: data.offsets.target.width,
12
+ height: data.offsets.target.height,
13
+ left: Math.floor(data.offsets.target.left),
14
+ top: Math.round(data.offsets.target.top),
15
+ bottom: Math.round(data.offsets.target.bottom),
16
+ right: Math.floor(data.offsets.target.right)
17
+ };
18
+ }
19
+
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0T2Zmc2V0cy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvcG9zaXRpb25pbmcvIiwic291cmNlcyI6WyJ1dGlscy9nZXRPZmZzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBRUEsTUFBTSxxQkFBcUIsSUFBVTtJQUNuQyxNQUFNLENBQUM7UUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSztRQUNoQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUNsQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDMUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ3hDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM5QyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7S0FDN0MsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YSwgT2Zmc2V0cyB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPZmZzZXRzKGRhdGE6IERhdGEpOiBPZmZzZXRzIHtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogZGF0YS5vZmZzZXRzLnRhcmdldC53aWR0aCxcbiAgICBoZWlnaHQ6IGRhdGEub2Zmc2V0cy50YXJnZXQuaGVpZ2h0LFxuICAgIGxlZnQ6IE1hdGguZmxvb3IoZGF0YS5vZmZzZXRzLnRhcmdldC5sZWZ0KSxcbiAgICB0b3A6IE1hdGgucm91bmQoZGF0YS5vZmZzZXRzLnRhcmdldC50b3ApLFxuICAgIGJvdHRvbTogTWF0aC5yb3VuZChkYXRhLm9mZnNldHMudGFyZ2V0LmJvdHRvbSksXG4gICAgcmlnaHQ6IE1hdGguZmxvb3IoZGF0YS5vZmZzZXRzLnRhcmdldC5yaWdodClcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ /**
6
+ * Get the opposite placement of the given one
7
+ * @param {?} placement
8
+ * @return {?}
9
+ */
10
+ export function getOppositePlacement(placement) {
11
+ var /** @type {?} */ hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
12
+ return placement.replace(/left|right|bottom|top/g, function (matched) { return hash[matched]; });
13
+ }
14
+
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0T3Bwb3NpdGVQbGFjZW1lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYm9vdHN0cmFwL3Bvc2l0aW9uaW5nLyIsInNvdXJjZXMiOlsidXRpbHMvZ2V0T3Bwb3NpdGVQbGFjZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsTUFBTSwrQkFBK0IsU0FBaUI7SUFDcEQscUJBQU0sSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBRTVFLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLFVBQUEsT0FBTyxJQUFJLE9BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFiLENBQWEsQ0FBQyxDQUFDO0NBQzlFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZXQgdGhlIG9wcG9zaXRlIHBsYWNlbWVudCBvZiB0aGUgZ2l2ZW4gb25lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQ6IHN0cmluZykge1xuICBjb25zdCBoYXNoID0geyBsZWZ0OiAncmlnaHQnLCByaWdodDogJ2xlZnQnLCBib3R0b206ICd0b3AnLCB0b3A6ICdib3R0b20nIH07XG5cbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgbWF0Y2hlZCA9PiBoYXNoW21hdGNoZWRdKTtcbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ /**
6
+ * Get the opposite placement variation of the given one
7
+ * @param {?} variation
8
+ * @return {?}
9
+ */
10
+ export function getOppositeVariation(variation) {
11
+ if (variation === 'right') {
12
+ return 'left';
13
+ }
14
+ else if (variation === 'left') {
15
+ return 'right';
16
+ }
17
+ return variation;
18
+ }
19
+
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0T3Bwb3NpdGVWYXJpYXRpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYm9vdHN0cmFwL3Bvc2l0aW9uaW5nLyIsInNvdXJjZXMiOlsidXRpbHMvZ2V0T3Bwb3NpdGVWYXJpYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsTUFBTSwrQkFBK0IsU0FBaUI7SUFDcEQsRUFBRSxDQUFDLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQztLQUNmO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FDaEI7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDO0NBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZXQgdGhlIG9wcG9zaXRlIHBsYWNlbWVudCB2YXJpYXRpb24gb2YgdGhlIGdpdmVuIG9uZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3Bwb3NpdGVWYXJpYXRpb24odmFyaWF0aW9uOiBzdHJpbmcpIHtcbiAgaWYgKHZhcmlhdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgIHJldHVybiAnbGVmdCc7XG4gIH0gZWxzZSBpZiAodmFyaWF0aW9uID09PSAnbGVmdCcpIHtcbiAgICByZXR1cm4gJ3JpZ2h0JztcbiAgfVxuXG4gIHJldHVybiB2YXJpYXRpb247XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ /**
6
+ * Get the outer sizes of the given element (offset size + margins)
7
+ * @param {?} element
8
+ * @return {?}
9
+ */
10
+ export function getOuterSizes(element) {
11
+ var /** @type {?} */ window = element.ownerDocument.defaultView;
12
+ var /** @type {?} */ styles = window.getComputedStyle(element);
13
+ var /** @type {?} */ x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
14
+ var /** @type {?} */ y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
15
+ return {
16
+ width: Number(element.offsetWidth) + y,
17
+ height: Number(element.offsetHeight) + x
18
+ };
19
+ }
20
+
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0T3V0ZXJTaXplcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvcG9zaXRpb25pbmcvIiwic291cmNlcyI6WyJ1dGlscy9nZXRPdXRlclNpemVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLE1BQU0sd0JBQXdCLE9BQVk7SUFDeEMscUJBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ2pELHFCQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQscUJBQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ25GLHFCQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUVuRixNQUFNLENBQUM7UUFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1FBQ3RDLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUM7S0FDekMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZXQgdGhlIG91dGVyIHNpemVzIG9mIHRoZSBnaXZlbiBlbGVtZW50IChvZmZzZXQgc2l6ZSArIG1hcmdpbnMpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPdXRlclNpemVzKGVsZW1lbnQ6IGFueSkge1xuICBjb25zdCB3aW5kb3cgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gIGNvbnN0IHN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICBjb25zdCB4ID0gcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luVG9wIHx8IDApICsgcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luQm90dG9tIHx8IDApO1xuICBjb25zdCB5ID0gcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luTGVmdCB8fCAwKSArIHBhcnNlRmxvYXQoc3R5bGVzLm1hcmdpblJpZ2h0IHx8IDApO1xuXG4gIHJldHVybiB7XG4gICAgd2lkdGg6IE51bWJlcihlbGVtZW50Lm9mZnNldFdpZHRoKSArIHksXG4gICAgaGVpZ2h0OiBOdW1iZXIoZWxlbWVudC5vZmZzZXRIZWlnaHQpICsgeFxuICB9O1xufVxuIl19
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ /**
6
+ * Returns the parentNode or the host of the element
7
+ * @param {?} element
8
+ * @return {?}
9
+ */
10
+ export function getParentNode(element) {
11
+ if (element.nodeName === 'HTML') {
12
+ return element;
13
+ }
14
+ return element.parentNode || element.host;
15
+ }
16
+
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGFyZW50Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvcG9zaXRpb25pbmcvIiwic291cmNlcyI6WyJ1dGlscy9nZXRQYXJlbnROb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLE1BQU0sd0JBQXdCLE9BQVk7SUFDeEMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FDaEI7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO0NBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXR1cm5zIHRoZSBwYXJlbnROb2RlIG9yIHRoZSBob3N0IG9mIHRoZSBlbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJlbnROb2RlKGVsZW1lbnQ6IGFueSk6IGFueSB7XG4gIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnSFRNTCcpIHtcbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50LnBhcmVudE5vZGUgfHwgZWxlbWVudC5ob3N0O1xufVxuIl19
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ import { findCommonOffsetParent } from './findCommonOffsetParent';
6
+ import { getOffsetRectRelativeToArbitraryNode } from './getOffsetRectRelativeToArbitraryNode';
7
+ import { getFixedPositionOffsetParent } from './getFixedPositionOffsetParent';
8
+ /**
9
+ * @param {?} target
10
+ * @param {?} host
11
+ * @param {?=} fixedPosition
12
+ * @return {?}
13
+ */
14
+ export function getReferenceOffsets(target, host, fixedPosition) {
15
+ if (fixedPosition === void 0) { fixedPosition = null; }
16
+ var /** @type {?} */ commonOffsetParent = fixedPosition
17
+ ? getFixedPositionOffsetParent(target)
18
+ : findCommonOffsetParent(target, host);
19
+ return getOffsetRectRelativeToArbitraryNode(host, commonOffsetParent, fixedPosition);
20
+ }
21
+
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UmVmZXJlbmNlT2Zmc2V0cy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvcG9zaXRpb25pbmcvIiwic291cmNlcyI6WyJ1dGlscy9nZXRSZWZlcmVuY2VPZmZzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7OztBQUc5RSxNQUFNLDhCQUNKLE1BQW1CLEVBQ25CLElBQWlCLEVBQ2pCLGFBQTZCO0lBQTdCLDhCQUFBLEVBQUEsb0JBQTZCO0lBRTdCLHFCQUFNLGtCQUFrQixHQUFHLGFBQWE7UUFDdEMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQztRQUN0QyxDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRXpDLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLENBQUM7Q0FDdEYiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldCBvZmZzZXRzIHRvIHRoZSByZWZlcmVuY2UgZWxlbWVudFxuICovXG5pbXBvcnQgeyBmaW5kQ29tbW9uT2Zmc2V0UGFyZW50IH0gZnJvbSAnLi9maW5kQ29tbW9uT2Zmc2V0UGFyZW50JztcbmltcG9ydCB7IGdldE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJiaXRyYXJ5Tm9kZSB9IGZyb20gJy4vZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlJztcbmltcG9ydCB7IGdldEZpeGVkUG9zaXRpb25PZmZzZXRQYXJlbnQgfSBmcm9tICcuL2dldEZpeGVkUG9zaXRpb25PZmZzZXRQYXJlbnQnO1xuaW1wb3J0IHsgT2Zmc2V0cyB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWZlcmVuY2VPZmZzZXRzKFxuICB0YXJnZXQ6IEhUTUxFbGVtZW50LFxuICBob3N0OiBIVE1MRWxlbWVudCxcbiAgZml4ZWRQb3NpdGlvbjogYm9vbGVhbiA9IG51bGxcbik6IE9mZnNldHMge1xuICBjb25zdCBjb21tb25PZmZzZXRQYXJlbnQgPSBmaXhlZFBvc2l0aW9uXG4gICAgPyBnZXRGaXhlZFBvc2l0aW9uT2Zmc2V0UGFyZW50KHRhcmdldClcbiAgICA6IGZpbmRDb21tb25PZmZzZXRQYXJlbnQodGFyZ2V0LCBob3N0KTtcblxuICByZXR1cm4gZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlKGhvc3QsIGNvbW1vbk9mZnNldFBhcmVudCwgZml4ZWRQb3NpdGlvbik7XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ /**
6
+ * Finds the root node (document, shadowDOM root) of the given element
7
+ * @param {?} node
8
+ * @return {?}
9
+ */
10
+ export function getRoot(node) {
11
+ if (node.parentNode !== null) {
12
+ return getRoot(node.parentNode);
13
+ }
14
+ return node;
15
+ }
16
+
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Um9vdC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvcG9zaXRpb25pbmcvIiwic291cmNlcyI6WyJ1dGlscy9nZXRSb290LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLE1BQU0sa0JBQWtCLElBQVU7SUFDaEMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ2pDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQztDQUNiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaW5kcyB0aGUgcm9vdCBub2RlIChkb2N1bWVudCwgc2hhZG93RE9NIHJvb3QpIG9mIHRoZSBnaXZlbiBlbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290KG5vZGU6IE5vZGUpOiBhbnkge1xuICBpZiAobm9kZS5wYXJlbnROb2RlICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGdldFJvb3Qobm9kZS5wYXJlbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuIl19
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ /**
6
+ * Gets the scroll value of the given element in the given side (top and left)
7
+ * @param {?} element
8
+ * @param {?=} side
9
+ * @return {?}
10
+ */
11
+ export function getScroll(element, side) {
12
+ if (side === void 0) { side = 'top'; }
13
+ var /** @type {?} */ upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
14
+ var /** @type {?} */ nodeName = element.nodeName;
15
+ if (nodeName === 'BODY' || nodeName === 'HTML') {
16
+ var /** @type {?} */ html = element.ownerDocument.documentElement;
17
+ var /** @type {?} */ scrollingElement = element.ownerDocument.scrollingElement || html;
18
+ return scrollingElement[upperSide];
19
+ }
20
+ return element[upperSide];
21
+ }
22
+
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U2Nyb2xsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWJvb3RzdHJhcC9wb3NpdGlvbmluZy8iLCJzb3VyY2VzIjpbInV0aWxzL2dldFNjcm9sbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsTUFBTSxvQkFBb0IsT0FBb0IsRUFBRSxJQUFZO0lBQVoscUJBQUEsRUFBQSxZQUFZO0lBQzFELHFCQUFNLFNBQVMsR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUM5RCxxQkFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUVsQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxJQUFJLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQy9DLHFCQUFNLElBQUksR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztRQUNuRCxxQkFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQztRQUV4RSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDcEM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0NBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZXRzIHRoZSBzY3JvbGwgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQgaW4gdGhlIGdpdmVuIHNpZGUgKHRvcCBhbmQgbGVmdClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcm9sbChlbGVtZW50OiBIVE1MRWxlbWVudCwgc2lkZSA9ICd0b3AnKSB7XG4gIGNvbnN0IHVwcGVyU2lkZSA9IHNpZGUgPT09ICd0b3AnID8gJ3Njcm9sbFRvcCcgOiAnc2Nyb2xsTGVmdCc7XG4gIGNvbnN0IG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZTtcblxuICBpZiAobm9kZU5hbWUgPT09ICdCT0RZJyB8fCBub2RlTmFtZSA9PT0gJ0hUTUwnKSB7XG4gICAgY29uc3QgaHRtbCA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsaW5nRWxlbWVudCA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50IHx8IGh0bWw7XG5cbiAgICByZXR1cm4gc2Nyb2xsaW5nRWxlbWVudFt1cHBlclNpZGVdO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRbdXBwZXJTaWRlXTtcbn1cbiJdfQ==
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ import { getStyleComputedProperty } from './getStyleComputedProperty';
6
+ import { getParentNode } from './getParentNode';
7
+ /**
8
+ * @param {?} element
9
+ * @return {?}
10
+ */
11
+ export function getScrollParent(element) {
12
+ // Return body, `getScroll` will take care to get the correct `scrollTop` from it
13
+ if (!element) {
14
+ return document.body;
15
+ }
16
+ switch (element.nodeName) {
17
+ case 'HTML':
18
+ case 'BODY':
19
+ return element.ownerDocument.body;
20
+ case '#document':
21
+ return element.body;
22
+ default:
23
+ }
24
+ // Firefox want us to check `-x` and `-y` variations as well
25
+ var _a = getStyleComputedProperty(element), overflow = _a.overflow, overflowX = _a.overflowX, overflowY = _a.overflowY;
26
+ if (/(auto|scroll|overlay)/.test(String(overflow) + String(overflowY) + String(overflowX))) {
27
+ return element;
28
+ }
29
+ return getScrollParent(getParentNode(element));
30
+ }
31
+
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U2Nyb2xsUGFyZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWJvb3RzdHJhcC9wb3NpdGlvbmluZy8iLCJzb3VyY2VzIjpbInV0aWxzL2dldFNjcm9sbFBhcmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUVoRCxNQUFNLDBCQUEwQixPQUFZOztJQUUxQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDYixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztLQUN0QjtJQUVELE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxNQUFNO1lBQ1QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBQ3BDLEtBQUssV0FBVztZQUNkLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3RCLFFBQVE7S0FDVDs7SUFHRCw0Q0FBUSxzQkFBUSxFQUFFLHdCQUFTLEVBQUUsd0JBQVMsQ0FBdUM7SUFDN0UsRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNGLE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FDaEI7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0NBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXR1cm5zIHRoZSBzY3JvbGxpbmcgcGFyZW50IG9mIHRoZSBnaXZlbiBlbGVtZW50XG4gKi9cbmltcG9ydCB7IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eSB9IGZyb20gJy4vZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5JztcbmltcG9ydCB7IGdldFBhcmVudE5vZGUgfSBmcm9tICcuL2dldFBhcmVudE5vZGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2Nyb2xsUGFyZW50KGVsZW1lbnQ6IGFueSk6IGFueSB7XG4gIC8vIFJldHVybiBib2R5LCBgZ2V0U2Nyb2xsYCB3aWxsIHRha2UgY2FyZSB0byBnZXQgdGhlIGNvcnJlY3QgYHNjcm9sbFRvcGAgZnJvbSBpdFxuICBpZiAoIWVsZW1lbnQpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYm9keTtcbiAgfVxuXG4gIHN3aXRjaCAoZWxlbWVudC5ub2RlTmFtZSkge1xuICAgIGNhc2UgJ0hUTUwnOlxuICAgIGNhc2UgJ0JPRFknOlxuICAgICAgcmV0dXJuIGVsZW1lbnQub3duZXJEb2N1bWVudC5ib2R5O1xuICAgIGNhc2UgJyNkb2N1bWVudCc6XG4gICAgICByZXR1cm4gZWxlbWVudC5ib2R5O1xuICAgIGRlZmF1bHQ6XG4gIH1cblxuICAvLyBGaXJlZm94IHdhbnQgdXMgdG8gY2hlY2sgYC14YCBhbmQgYC15YCB2YXJpYXRpb25zIGFzIHdlbGxcbiAgY29uc3QgeyBvdmVyZmxvdywgb3ZlcmZsb3dYLCBvdmVyZmxvd1kgfSA9IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eShlbGVtZW50KTtcbiAgaWYgKC8oYXV0b3xzY3JvbGx8b3ZlcmxheSkvLnRlc3QoU3RyaW5nKG92ZXJmbG93KSArIFN0cmluZyhvdmVyZmxvd1kpICsgU3RyaW5nKG92ZXJmbG93WCkpKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICByZXR1cm4gZ2V0U2Nyb2xsUGFyZW50KGdldFBhcmVudE5vZGUoZWxlbWVudCkpO1xufVxuIl19
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ /**
6
+ * Get CSS computed property of the given element
7
+ * @param {?} element
8
+ * @param {?=} property
9
+ * @return {?}
10
+ */
11
+ export function getStyleComputedProperty(element, property) {
12
+ if (element.nodeType !== 1) {
13
+ return [];
14
+ }
15
+ // NOTE: 1 DOM access here
16
+ var /** @type {?} */ window = element.ownerDocument.defaultView;
17
+ var /** @type {?} */ css = window.getComputedStyle(element, null);
18
+ return property ? css[property] : css;
19
+ }
20
+
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWJvb3RzdHJhcC9wb3NpdGlvbmluZy8iLCJzb3VyY2VzIjpbInV0aWxzL2dldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsTUFBTSxtQ0FBbUMsT0FBb0IsRUFBRSxRQUFpQjtJQUM5RSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsTUFBTSxDQUFDLEVBQUUsQ0FBQztLQUNYOztJQUVELHFCQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUNqRCxxQkFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVuRCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztDQUN2QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2V0IENTUyBjb21wdXRlZCBwcm9wZXJ0eSBvZiB0aGUgZ2l2ZW4gZWxlbWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwcm9wZXJ0eT86IHN0cmluZyk6IGFueSB7XG4gIGlmIChlbGVtZW50Lm5vZGVUeXBlICE9PSAxKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIC8vIE5PVEU6IDEgRE9NIGFjY2VzcyBoZXJlXG4gIGNvbnN0IHdpbmRvdyA9IGVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcbiAgY29uc3QgY3NzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCk7XG5cbiAgcmV0dXJuIHByb3BlcnR5ID8gY3NzW3Byb3BlcnR5XSA6IGNzcztcbn1cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes} checked by tsc
4
+ */
5
+ import { getOppositePlacement } from './getOppositePlacement';
6
+ import { getOuterSizes } from './getOuterSizes';
7
+ /**
8
+ * @param {?} target
9
+ * @param {?} hostOffsets
10
+ * @param {?} position
11
+ * @return {?}
12
+ */
13
+ export function getTargetOffsets(target, hostOffsets, position) {
14
+ var /** @type {?} */ placement = position.split(' ')[0];
15
+ // Get target node sizes
16
+ var /** @type {?} */ targetRect = getOuterSizes(target);
17
+ // Add position, width and height to our offsets object
18
+ var /** @type {?} */ targetOffsets = {
19
+ width: targetRect.width,
20
+ height: targetRect.height
21
+ };
22
+ // depending by the target placement we have to compute its offsets slightly differently
23
+ var /** @type {?} */ isHoriz = ['right', 'left'].indexOf(placement) !== -1;
24
+ var /** @type {?} */ mainSide = isHoriz ? 'top' : 'left';
25
+ var /** @type {?} */ secondarySide = isHoriz ? 'left' : 'top';
26
+ var /** @type {?} */ measurement = isHoriz ? 'height' : 'width';
27
+ var /** @type {?} */ secondaryMeasurement = !isHoriz ? 'height' : 'width';
28
+ targetOffsets[mainSide] =
29
+ hostOffsets[mainSide] +
30
+ hostOffsets[measurement] / 2 -
31
+ targetRect[measurement] / 2;
32
+ targetOffsets[secondarySide] = placement === secondarySide
33
+ ? hostOffsets[secondarySide] - targetRect[secondaryMeasurement]
34
+ : hostOffsets[getOppositePlacement(secondarySide)];
35
+ return targetOffsets;
36
+ }
37
+
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VGFyZ2V0T2Zmc2V0cy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1ib290c3RyYXAvcG9zaXRpb25pbmcvIiwic291cmNlcyI6WyJ1dGlscy9nZXRUYXJnZXRPZmZzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFHaEQsTUFBTSwyQkFDSixNQUFtQixFQUNuQixXQUFvQixFQUNwQixRQUFnQjtJQUVoQixxQkFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7SUFHekMscUJBQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7SUFHekMscUJBQU0sYUFBYSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztRQUN2QixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07S0FDMUIsQ0FBQzs7SUFHRixxQkFBTSxPQUFPLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVELHFCQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFDLHFCQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQy9DLHFCQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2pELHFCQUFNLG9CQUFvQixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUUzRCxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ3JCLFdBQVcsQ0FBQyxRQUFRLENBQUM7WUFDckIsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDNUIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU5QixhQUFhLENBQUMsYUFBYSxDQUFDLEdBQUcsU0FBUyxLQUFLLGFBQWE7UUFDeEQsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUM7UUFDL0QsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBRXJELE1BQU0sQ0FBQyxhQUFhLENBQUM7Q0FDdEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdldCBvZmZzZXRzIHRvIHRoZSB0YXJnZXRcbiAqL1xuaW1wb3J0IHsgZ2V0T3Bwb3NpdGVQbGFjZW1lbnQgfSBmcm9tICcuL2dldE9wcG9zaXRlUGxhY2VtZW50JztcbmltcG9ydCB7IGdldE91dGVyU2l6ZXMgfSBmcm9tICcuL2dldE91dGVyU2l6ZXMnO1xuaW1wb3J0IHsgT2Zmc2V0cyB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYXJnZXRPZmZzZXRzKFxuICB0YXJnZXQ6IEhUTUxFbGVtZW50LFxuICBob3N0T2Zmc2V0czogT2Zmc2V0cyxcbiAgcG9zaXRpb246IHN0cmluZ1xuKTogT2Zmc2V0cyB7XG4gIGNvbnN0IHBsYWNlbWVudCA9IHBvc2l0aW9uLnNwbGl0KCcgJylbMF07XG5cbiAgLy8gR2V0IHRhcmdldCBub2RlIHNpemVzXG4gIGNvbnN0IHRhcmdldFJlY3QgPSBnZXRPdXRlclNpemVzKHRhcmdldCk7XG5cbiAgLy8gQWRkIHBvc2l0aW9uLCB3aWR0aCBhbmQgaGVpZ2h0IHRvIG91ciBvZmZzZXRzIG9iamVjdFxuICBjb25zdCB0YXJnZXRPZmZzZXRzID0ge1xuICAgIHdpZHRoOiB0YXJnZXRSZWN0LndpZHRoLFxuICAgIGhlaWdodDogdGFyZ2V0UmVjdC5oZWlnaHRcbiAgfTtcblxuICAvLyBkZXBlbmRpbmcgYnkgdGhlIHRhcmdldCBwbGFjZW1lbnQgd2UgaGF2ZSB0byBjb21wdXRlIGl0cyBvZmZzZXRzIHNsaWdodGx5IGRpZmZlcmVudGx5XG4gIGNvbnN0IGlzSG9yaXogPSBbJ3JpZ2h0JywgJ2xlZnQnXS5pbmRleE9mKHBsYWNlbWVudCkgIT09IC0xO1xuICBjb25zdCBtYWluU2lkZSA9IGlzSG9yaXogPyAndG9wJyA6ICdsZWZ0JztcbiAgY29uc3Qgc2Vjb25kYXJ5U2lkZSA9IGlzSG9yaXogPyAnbGVmdCcgOiAndG9wJztcbiAgY29uc3QgbWVhc3VyZW1lbnQgPSBpc0hvcml6ID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuICBjb25zdCBzZWNvbmRhcnlNZWFzdXJlbWVudCA9ICFpc0hvcml6ID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuXG4gIHRhcmdldE9mZnNldHNbbWFpblNpZGVdID1cbiAgICBob3N0T2Zmc2V0c1ttYWluU2lkZV0gK1xuICAgIGhvc3RPZmZzZXRzW21lYXN1cmVtZW50XSAvIDIgLVxuICAgIHRhcmdldFJlY3RbbWVhc3VyZW1lbnRdIC8gMjtcblxuICB0YXJnZXRPZmZzZXRzW3NlY29uZGFyeVNpZGVdID0gcGxhY2VtZW50ID09PSBzZWNvbmRhcnlTaWRlXG4gICAgPyBob3N0T2Zmc2V0c1tzZWNvbmRhcnlTaWRlXSAtIHRhcmdldFJlY3Rbc2Vjb25kYXJ5TWVhc3VyZW1lbnRdXG4gICAgOiBob3N0T2Zmc2V0c1tnZXRPcHBvc2l0ZVBsYWNlbWVudChzZWNvbmRhcnlTaWRlKV07XG5cbiAgcmV0dXJuIHRhcmdldE9mZnNldHM7XG59XG4iXX0=