@depup/react-virtualized 9.22.6-depup.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 (254) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +34 -0
  3. package/changes.json +22 -0
  4. package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.example.js +184 -0
  5. package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.jest.js +338 -0
  6. package/dist/commonjs/ArrowKeyStepper/ArrowKeyStepper.js +204 -0
  7. package/dist/commonjs/ArrowKeyStepper/index.js +19 -0
  8. package/dist/commonjs/ArrowKeyStepper/types.js +5 -0
  9. package/dist/commonjs/AutoSizer/AutoSizer.example.js +104 -0
  10. package/dist/commonjs/AutoSizer/AutoSizer.jest.js +341 -0
  11. package/dist/commonjs/AutoSizer/AutoSizer.js +199 -0
  12. package/dist/commonjs/AutoSizer/AutoSizer.ssr.js +25 -0
  13. package/dist/commonjs/AutoSizer/index.js +19 -0
  14. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightGrid.example.js +100 -0
  15. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightList.example.js +99 -0
  16. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicHeightTableColumn.example.js +107 -0
  17. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicWidthGrid.example.js +102 -0
  18. package/dist/commonjs/CellMeasurer/CellMeasurer.DynamicWidthMultiGrid.example.js +107 -0
  19. package/dist/commonjs/CellMeasurer/CellMeasurer.example.js +129 -0
  20. package/dist/commonjs/CellMeasurer/CellMeasurer.jest.js +345 -0
  21. package/dist/commonjs/CellMeasurer/CellMeasurer.js +195 -0
  22. package/dist/commonjs/CellMeasurer/CellMeasurerCache.jest.js +298 -0
  23. package/dist/commonjs/CellMeasurer/CellMeasurerCache.js +202 -0
  24. package/dist/commonjs/CellMeasurer/index.js +22 -0
  25. package/dist/commonjs/CellMeasurer/types.js +14 -0
  26. package/dist/commonjs/Collection/Collection.example.js +231 -0
  27. package/dist/commonjs/Collection/Collection.jest.js +829 -0
  28. package/dist/commonjs/Collection/Collection.js +266 -0
  29. package/dist/commonjs/Collection/CollectionView.js +553 -0
  30. package/dist/commonjs/Collection/Section.jest.js +63 -0
  31. package/dist/commonjs/Collection/Section.js +57 -0
  32. package/dist/commonjs/Collection/SectionManager.jest.js +121 -0
  33. package/dist/commonjs/Collection/SectionManager.js +134 -0
  34. package/dist/commonjs/Collection/TestData.js +77 -0
  35. package/dist/commonjs/Collection/index.js +15 -0
  36. package/dist/commonjs/Collection/types.js +22 -0
  37. package/dist/commonjs/Collection/utils/calculateSizeAndPositionData.jest.js +34 -0
  38. package/dist/commonjs/Collection/utils/calculateSizeAndPositionData.js +38 -0
  39. package/dist/commonjs/ColumnSizer/ColumnSizer.example.js +159 -0
  40. package/dist/commonjs/ColumnSizer/ColumnSizer.jest.js +129 -0
  41. package/dist/commonjs/ColumnSizer/ColumnSizer.js +103 -0
  42. package/dist/commonjs/ColumnSizer/index.js +15 -0
  43. package/dist/commonjs/Grid/Grid.example.js +330 -0
  44. package/dist/commonjs/Grid/Grid.jest.js +2561 -0
  45. package/dist/commonjs/Grid/Grid.js +1432 -0
  46. package/dist/commonjs/Grid/Grid.ssr.js +62 -0
  47. package/dist/commonjs/Grid/accessibilityOverscanIndicesGetter.jest.js +92 -0
  48. package/dist/commonjs/Grid/accessibilityOverscanIndicesGetter.js +40 -0
  49. package/dist/commonjs/Grid/defaultCellRangeRenderer.js +139 -0
  50. package/dist/commonjs/Grid/defaultOverscanIndicesGetter.jest.js +92 -0
  51. package/dist/commonjs/Grid/defaultOverscanIndicesGetter.js +36 -0
  52. package/dist/commonjs/Grid/index.js +40 -0
  53. package/dist/commonjs/Grid/types.js +8 -0
  54. package/dist/commonjs/Grid/utils/CellSizeAndPositionManager.jest.js +375 -0
  55. package/dist/commonjs/Grid/utils/CellSizeAndPositionManager.js +296 -0
  56. package/dist/commonjs/Grid/utils/ScalingCellSizeAndPositionManager.jest.js +201 -0
  57. package/dist/commonjs/Grid/utils/ScalingCellSizeAndPositionManager.js +204 -0
  58. package/dist/commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.jest.js +84 -0
  59. package/dist/commonjs/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js +59 -0
  60. package/dist/commonjs/Grid/utils/maxElementSize.js +22 -0
  61. package/dist/commonjs/Grid/utils/updateScrollIndexHelper.jest.js +180 -0
  62. package/dist/commonjs/Grid/utils/updateScrollIndexHelper.js +85 -0
  63. package/dist/commonjs/InfiniteLoader/InfiniteLoader.example.js +179 -0
  64. package/dist/commonjs/InfiniteLoader/InfiniteLoader.jest.js +571 -0
  65. package/dist/commonjs/InfiniteLoader/InfiniteLoader.js +274 -0
  66. package/dist/commonjs/InfiniteLoader/index.js +15 -0
  67. package/dist/commonjs/List/List.example.js +236 -0
  68. package/dist/commonjs/List/List.jest.js +517 -0
  69. package/dist/commonjs/List/List.js +318 -0
  70. package/dist/commonjs/List/index.js +19 -0
  71. package/dist/commonjs/List/types.js +6 -0
  72. package/dist/commonjs/Masonry/Masonry.example.js +287 -0
  73. package/dist/commonjs/Masonry/Masonry.jest.js +450 -0
  74. package/dist/commonjs/Masonry/Masonry.js +431 -0
  75. package/dist/commonjs/Masonry/PositionCache.js +88 -0
  76. package/dist/commonjs/Masonry/createCellPositioner.js +59 -0
  77. package/dist/commonjs/Masonry/index.js +22 -0
  78. package/dist/commonjs/MultiGrid/CellMeasurerCacheDecorator.js +106 -0
  79. package/dist/commonjs/MultiGrid/MultiGrid.example.js +131 -0
  80. package/dist/commonjs/MultiGrid/MultiGrid.jest.js +584 -0
  81. package/dist/commonjs/MultiGrid/MultiGrid.js +743 -0
  82. package/dist/commonjs/MultiGrid/index.js +15 -0
  83. package/dist/commonjs/ScrollSync/ScrollSync.example.js +257 -0
  84. package/dist/commonjs/ScrollSync/ScrollSync.jest.js +66 -0
  85. package/dist/commonjs/ScrollSync/ScrollSync.js +88 -0
  86. package/dist/commonjs/ScrollSync/index.js +15 -0
  87. package/dist/commonjs/Table/Column.jest.js +90 -0
  88. package/dist/commonjs/Table/Column.js +93 -0
  89. package/dist/commonjs/Table/SortDirection.js +19 -0
  90. package/dist/commonjs/Table/SortIndicator.js +40 -0
  91. package/dist/commonjs/Table/Table.example.js +325 -0
  92. package/dist/commonjs/Table/Table.jest.js +1257 -0
  93. package/dist/commonjs/Table/Table.js +742 -0
  94. package/dist/commonjs/Table/createMultiSort.jest.js +165 -0
  95. package/dist/commonjs/Table/createMultiSort.js +99 -0
  96. package/dist/commonjs/Table/defaultCellDataGetter.js +21 -0
  97. package/dist/commonjs/Table/defaultCellRenderer.js +19 -0
  98. package/dist/commonjs/Table/defaultHeaderRenderer.js +35 -0
  99. package/dist/commonjs/Table/defaultHeaderRowRenderer.js +21 -0
  100. package/dist/commonjs/Table/defaultRowRenderer.js +87 -0
  101. package/dist/commonjs/Table/index.js +78 -0
  102. package/dist/commonjs/Table/types.js +39 -0
  103. package/dist/commonjs/WindowScroller/WindowScroller.e2e.js +298 -0
  104. package/dist/commonjs/WindowScroller/WindowScroller.example.js +167 -0
  105. package/dist/commonjs/WindowScroller/WindowScroller.header-resize.e2e.js +359 -0
  106. package/dist/commonjs/WindowScroller/WindowScroller.jest.js +536 -0
  107. package/dist/commonjs/WindowScroller/WindowScroller.js +268 -0
  108. package/dist/commonjs/WindowScroller/WindowScroller.ssr.js +25 -0
  109. package/dist/commonjs/WindowScroller/index.js +23 -0
  110. package/dist/commonjs/WindowScroller/utils/dimensions.js +89 -0
  111. package/dist/commonjs/WindowScroller/utils/onScroll.js +70 -0
  112. package/dist/commonjs/index.js +180 -0
  113. package/dist/commonjs/jest-setup.js +7 -0
  114. package/dist/commonjs/utils/TestHelper.js +36 -0
  115. package/dist/commonjs/utils/animationFrame.js +29 -0
  116. package/dist/commonjs/utils/createCallbackMemoizer.jest.js +219 -0
  117. package/dist/commonjs/utils/createCallbackMemoizer.js +31 -0
  118. package/dist/commonjs/utils/getUpdatedOffsetForIndex.jest.js +68 -0
  119. package/dist/commonjs/utils/getUpdatedOffsetForIndex.js +38 -0
  120. package/dist/commonjs/utils/initCellMetadata.js +37 -0
  121. package/dist/commonjs/utils/requestAnimationTimeout.js +38 -0
  122. package/dist/commonjs/vendor/binarySearchBounds.js +200 -0
  123. package/dist/commonjs/vendor/detectElementResize.js +192 -0
  124. package/dist/commonjs/vendor/intervalTree.js +361 -0
  125. package/dist/es/ArrowKeyStepper/ArrowKeyStepper.example.js +176 -0
  126. package/dist/es/ArrowKeyStepper/ArrowKeyStepper.jest.js +332 -0
  127. package/dist/es/ArrowKeyStepper/ArrowKeyStepper.js +197 -0
  128. package/dist/es/ArrowKeyStepper/index.js +3 -0
  129. package/dist/es/ArrowKeyStepper/types.js +4 -0
  130. package/dist/es/AutoSizer/AutoSizer.example.js +96 -0
  131. package/dist/es/AutoSizer/AutoSizer.jest.js +335 -0
  132. package/dist/es/AutoSizer/AutoSizer.js +190 -0
  133. package/dist/es/AutoSizer/AutoSizer.js.flow +200 -0
  134. package/dist/es/AutoSizer/AutoSizer.ssr.js +19 -0
  135. package/dist/es/AutoSizer/index.js +2 -0
  136. package/dist/es/AutoSizer/index.js.flow +4 -0
  137. package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightGrid.example.js +91 -0
  138. package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightList.example.js +90 -0
  139. package/dist/es/CellMeasurer/CellMeasurer.DynamicHeightTableColumn.example.js +98 -0
  140. package/dist/es/CellMeasurer/CellMeasurer.DynamicWidthGrid.example.js +93 -0
  141. package/dist/es/CellMeasurer/CellMeasurer.DynamicWidthMultiGrid.example.js +98 -0
  142. package/dist/es/CellMeasurer/CellMeasurer.example.js +120 -0
  143. package/dist/es/CellMeasurer/CellMeasurer.jest.js +340 -0
  144. package/dist/es/CellMeasurer/CellMeasurer.js +187 -0
  145. package/dist/es/CellMeasurer/CellMeasurerCache.jest.js +293 -0
  146. package/dist/es/CellMeasurer/CellMeasurerCache.js +196 -0
  147. package/dist/es/CellMeasurer/index.js +4 -0
  148. package/dist/es/CellMeasurer/types.js +13 -0
  149. package/dist/es/Collection/Collection.example.js +223 -0
  150. package/dist/es/Collection/Collection.jest.js +824 -0
  151. package/dist/es/Collection/Collection.js +257 -0
  152. package/dist/es/Collection/CollectionView.js +544 -0
  153. package/dist/es/Collection/Section.jest.js +60 -0
  154. package/dist/es/Collection/Section.js +51 -0
  155. package/dist/es/Collection/SectionManager.jest.js +118 -0
  156. package/dist/es/Collection/SectionManager.js +128 -0
  157. package/dist/es/Collection/TestData.js +71 -0
  158. package/dist/es/Collection/index.js +3 -0
  159. package/dist/es/Collection/types.js +21 -0
  160. package/dist/es/Collection/utils/calculateSizeAndPositionData.jest.js +31 -0
  161. package/dist/es/Collection/utils/calculateSizeAndPositionData.js +31 -0
  162. package/dist/es/ColumnSizer/ColumnSizer.example.js +150 -0
  163. package/dist/es/ColumnSizer/ColumnSizer.jest.js +123 -0
  164. package/dist/es/ColumnSizer/ColumnSizer.js +95 -0
  165. package/dist/es/ColumnSizer/index.js +3 -0
  166. package/dist/es/Grid/Grid.example.js +321 -0
  167. package/dist/es/Grid/Grid.jest.js +2555 -0
  168. package/dist/es/Grid/Grid.js +1425 -0
  169. package/dist/es/Grid/Grid.ssr.js +57 -0
  170. package/dist/es/Grid/accessibilityOverscanIndicesGetter.jest.js +87 -0
  171. package/dist/es/Grid/accessibilityOverscanIndicesGetter.js +33 -0
  172. package/dist/es/Grid/defaultCellRangeRenderer.js +134 -0
  173. package/dist/es/Grid/defaultOverscanIndicesGetter.jest.js +87 -0
  174. package/dist/es/Grid/defaultOverscanIndicesGetter.js +29 -0
  175. package/dist/es/Grid/index.js +15 -0
  176. package/dist/es/Grid/types.js +96 -0
  177. package/dist/es/Grid/utils/CellSizeAndPositionManager.jest.js +372 -0
  178. package/dist/es/Grid/utils/CellSizeAndPositionManager.js +290 -0
  179. package/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.jest.js +198 -0
  180. package/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js +198 -0
  181. package/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.jest.js +81 -0
  182. package/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js +53 -0
  183. package/dist/es/Grid/utils/maxElementSize.js +16 -0
  184. package/dist/es/Grid/utils/updateScrollIndexHelper.jest.js +174 -0
  185. package/dist/es/Grid/utils/updateScrollIndexHelper.js +79 -0
  186. package/dist/es/InfiniteLoader/InfiniteLoader.example.js +170 -0
  187. package/dist/es/InfiniteLoader/InfiniteLoader.jest.js +565 -0
  188. package/dist/es/InfiniteLoader/InfiniteLoader.js +263 -0
  189. package/dist/es/InfiniteLoader/index.js +3 -0
  190. package/dist/es/List/List.example.js +227 -0
  191. package/dist/es/List/List.jest.js +511 -0
  192. package/dist/es/List/List.js +312 -0
  193. package/dist/es/List/index.js +3 -0
  194. package/dist/es/List/types.js +21 -0
  195. package/dist/es/Masonry/Masonry.example.js +278 -0
  196. package/dist/es/Masonry/Masonry.jest.js +444 -0
  197. package/dist/es/Masonry/Masonry.js +421 -0
  198. package/dist/es/Masonry/PositionCache.js +82 -0
  199. package/dist/es/Masonry/createCellPositioner.js +53 -0
  200. package/dist/es/Masonry/index.js +4 -0
  201. package/dist/es/MultiGrid/CellMeasurerCacheDecorator.js +100 -0
  202. package/dist/es/MultiGrid/MultiGrid.example.js +122 -0
  203. package/dist/es/MultiGrid/MultiGrid.jest.js +579 -0
  204. package/dist/es/MultiGrid/MultiGrid.js +733 -0
  205. package/dist/es/MultiGrid/index.js +3 -0
  206. package/dist/es/ScrollSync/ScrollSync.example.js +248 -0
  207. package/dist/es/ScrollSync/ScrollSync.jest.js +60 -0
  208. package/dist/es/ScrollSync/ScrollSync.js +80 -0
  209. package/dist/es/ScrollSync/index.js +3 -0
  210. package/dist/es/Table/Column.jest.js +84 -0
  211. package/dist/es/Table/Column.js +85 -0
  212. package/dist/es/Table/SortDirection.js +13 -0
  213. package/dist/es/Table/SortIndicator.js +31 -0
  214. package/dist/es/Table/Table.example.js +316 -0
  215. package/dist/es/Table/Table.jest.js +1251 -0
  216. package/dist/es/Table/Table.js +735 -0
  217. package/dist/es/Table/createMultiSort.jest.js +162 -0
  218. package/dist/es/Table/createMultiSort.js +93 -0
  219. package/dist/es/Table/defaultCellDataGetter.js +15 -0
  220. package/dist/es/Table/defaultCellRenderer.js +13 -0
  221. package/dist/es/Table/defaultHeaderRenderer.js +25 -0
  222. package/dist/es/Table/defaultHeaderRowRenderer.js +12 -0
  223. package/dist/es/Table/defaultRowRenderer.js +77 -0
  224. package/dist/es/Table/index.js +12 -0
  225. package/dist/es/Table/types.js +38 -0
  226. package/dist/es/WindowScroller/WindowScroller.e2e.js +295 -0
  227. package/dist/es/WindowScroller/WindowScroller.example.js +158 -0
  228. package/dist/es/WindowScroller/WindowScroller.header-resize.e2e.js +356 -0
  229. package/dist/es/WindowScroller/WindowScroller.jest.js +530 -0
  230. package/dist/es/WindowScroller/WindowScroller.js +259 -0
  231. package/dist/es/WindowScroller/WindowScroller.js.flow +277 -0
  232. package/dist/es/WindowScroller/WindowScroller.ssr.js +19 -0
  233. package/dist/es/WindowScroller/index.js +3 -0
  234. package/dist/es/WindowScroller/index.js.flow +6 -0
  235. package/dist/es/WindowScroller/utils/dimensions.js +81 -0
  236. package/dist/es/WindowScroller/utils/dimensions.js.flow +91 -0
  237. package/dist/es/WindowScroller/utils/onScroll.js +64 -0
  238. package/dist/es/WindowScroller/utils/onScroll.js.flow +94 -0
  239. package/dist/es/index.js +13 -0
  240. package/dist/es/jest-setup.js +5 -0
  241. package/dist/es/utils/TestHelper.js +30 -0
  242. package/dist/es/utils/animationFrame.js +23 -0
  243. package/dist/es/utils/createCallbackMemoizer.jest.js +216 -0
  244. package/dist/es/utils/createCallbackMemoizer.js +25 -0
  245. package/dist/es/utils/getUpdatedOffsetForIndex.jest.js +65 -0
  246. package/dist/es/utils/getUpdatedOffsetForIndex.js +32 -0
  247. package/dist/es/utils/initCellMetadata.js +31 -0
  248. package/dist/es/utils/requestAnimationTimeout.js +32 -0
  249. package/dist/es/vendor/binarySearchBounds.js +194 -0
  250. package/dist/es/vendor/detectElementResize.js +186 -0
  251. package/dist/es/vendor/intervalTree.js +354 -0
  252. package/dist/umd/react-virtualized.js +4638 -0
  253. package/package.json +188 -0
  254. package/styles.css +80 -0
@@ -0,0 +1,32 @@
1
+ import { caf, raf } from './animationFrame';
2
+ /*:: export type AnimationTimeoutId = {
3
+ id: number,
4
+ };*/
5
+ export var cancelAnimationTimeout = function cancelAnimationTimeout(frame /*: AnimationTimeoutId*/) {
6
+ return caf(frame.id);
7
+ };
8
+
9
+ /**
10
+ * Recursively calls requestAnimationFrame until a specified delay has been met or exceeded.
11
+ * When the delay time has been reached the function you're timing out will be called.
12
+ *
13
+ * Credit: Joe Lambert (https://gist.github.com/joelambert/1002116#file-requesttimeout-js)
14
+ */
15
+ export var requestAnimationTimeout = function requestAnimationTimeout(callback /*: Function*/, delay /*: number*/) /*: AnimationTimeoutId*/{
16
+ var start;
17
+ // wait for end of processing current event handler, because event handler may be long
18
+ Promise.resolve().then(function () {
19
+ start = Date.now();
20
+ });
21
+ var _timeout = function timeout() {
22
+ if (Date.now() - start >= delay) {
23
+ callback.call();
24
+ } else {
25
+ frame.id = raf(_timeout);
26
+ }
27
+ };
28
+ var frame /*: AnimationTimeoutId*/ = {
29
+ id: raf(_timeout)
30
+ };
31
+ return frame;
32
+ };
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Binary Search Bounds
3
+ * https://github.com/mikolalysenko/binary-search-bounds
4
+ * Mikola Lysenko
5
+ *
6
+ * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax.
7
+ * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5
8
+ **/
9
+
10
+ function _GEA(a, l, h, y) {
11
+ var i = h + 1;
12
+ while (l <= h) {
13
+ var m = l + h >>> 1,
14
+ x = a[m];
15
+ if (x >= y) {
16
+ i = m;
17
+ h = m - 1;
18
+ } else {
19
+ l = m + 1;
20
+ }
21
+ }
22
+ return i;
23
+ }
24
+ function _GEP(a, l, h, y, c) {
25
+ var i = h + 1;
26
+ while (l <= h) {
27
+ var m = l + h >>> 1,
28
+ x = a[m];
29
+ if (c(x, y) >= 0) {
30
+ i = m;
31
+ h = m - 1;
32
+ } else {
33
+ l = m + 1;
34
+ }
35
+ }
36
+ return i;
37
+ }
38
+ function dispatchBsearchGE(a, y, c, l, h) {
39
+ if (typeof c === 'function') {
40
+ return _GEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
41
+ } else {
42
+ return _GEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
43
+ }
44
+ }
45
+ function _GTA(a, l, h, y) {
46
+ var i = h + 1;
47
+ while (l <= h) {
48
+ var m = l + h >>> 1,
49
+ x = a[m];
50
+ if (x > y) {
51
+ i = m;
52
+ h = m - 1;
53
+ } else {
54
+ l = m + 1;
55
+ }
56
+ }
57
+ return i;
58
+ }
59
+ function _GTP(a, l, h, y, c) {
60
+ var i = h + 1;
61
+ while (l <= h) {
62
+ var m = l + h >>> 1,
63
+ x = a[m];
64
+ if (c(x, y) > 0) {
65
+ i = m;
66
+ h = m - 1;
67
+ } else {
68
+ l = m + 1;
69
+ }
70
+ }
71
+ return i;
72
+ }
73
+ function dispatchBsearchGT(a, y, c, l, h) {
74
+ if (typeof c === 'function') {
75
+ return _GTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
76
+ } else {
77
+ return _GTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
78
+ }
79
+ }
80
+ function _LTA(a, l, h, y) {
81
+ var i = l - 1;
82
+ while (l <= h) {
83
+ var m = l + h >>> 1,
84
+ x = a[m];
85
+ if (x < y) {
86
+ i = m;
87
+ l = m + 1;
88
+ } else {
89
+ h = m - 1;
90
+ }
91
+ }
92
+ return i;
93
+ }
94
+ function _LTP(a, l, h, y, c) {
95
+ var i = l - 1;
96
+ while (l <= h) {
97
+ var m = l + h >>> 1,
98
+ x = a[m];
99
+ if (c(x, y) < 0) {
100
+ i = m;
101
+ l = m + 1;
102
+ } else {
103
+ h = m - 1;
104
+ }
105
+ }
106
+ return i;
107
+ }
108
+ function dispatchBsearchLT(a, y, c, l, h) {
109
+ if (typeof c === 'function') {
110
+ return _LTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
111
+ } else {
112
+ return _LTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
113
+ }
114
+ }
115
+ function _LEA(a, l, h, y) {
116
+ var i = l - 1;
117
+ while (l <= h) {
118
+ var m = l + h >>> 1,
119
+ x = a[m];
120
+ if (x <= y) {
121
+ i = m;
122
+ l = m + 1;
123
+ } else {
124
+ h = m - 1;
125
+ }
126
+ }
127
+ return i;
128
+ }
129
+ function _LEP(a, l, h, y, c) {
130
+ var i = l - 1;
131
+ while (l <= h) {
132
+ var m = l + h >>> 1,
133
+ x = a[m];
134
+ if (c(x, y) <= 0) {
135
+ i = m;
136
+ l = m + 1;
137
+ } else {
138
+ h = m - 1;
139
+ }
140
+ }
141
+ return i;
142
+ }
143
+ function dispatchBsearchLE(a, y, c, l, h) {
144
+ if (typeof c === 'function') {
145
+ return _LEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
146
+ } else {
147
+ return _LEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
148
+ }
149
+ }
150
+ function _EQA(a, l, h, y) {
151
+ l - 1;
152
+ while (l <= h) {
153
+ var m = l + h >>> 1,
154
+ x = a[m];
155
+ if (x === y) {
156
+ return m;
157
+ } else if (x <= y) {
158
+ l = m + 1;
159
+ } else {
160
+ h = m - 1;
161
+ }
162
+ }
163
+ return -1;
164
+ }
165
+ function _EQP(a, l, h, y, c) {
166
+ l - 1;
167
+ while (l <= h) {
168
+ var m = l + h >>> 1,
169
+ x = a[m];
170
+ var p = c(x, y);
171
+ if (p === 0) {
172
+ return m;
173
+ } else if (p <= 0) {
174
+ l = m + 1;
175
+ } else {
176
+ h = m - 1;
177
+ }
178
+ }
179
+ return -1;
180
+ }
181
+ function dispatchBsearchEQ(a, y, c, l, h) {
182
+ if (typeof c === 'function') {
183
+ return _EQP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
184
+ } else {
185
+ return _EQA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
186
+ }
187
+ }
188
+ export default {
189
+ ge: dispatchBsearchGE,
190
+ gt: dispatchBsearchGT,
191
+ lt: dispatchBsearchLT,
192
+ le: dispatchBsearchLE,
193
+ eq: dispatchBsearchEQ
194
+ };
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Detect Element Resize.
3
+ * https://github.com/sdecima/javascript-detect-element-resize
4
+ * Sebastian Decima
5
+ *
6
+ * Forked from version 0.5.3; includes the following modifications:
7
+ * 1) Guard against unsafe 'window' and 'document' references (to support SSR).
8
+ * 2) Defer initialization code via a top-level function wrapper (to support SSR).
9
+ * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.
10
+ * 4) Add nonce for style element.
11
+ * 5) Added support for injecting custom window object
12
+ **/
13
+
14
+ export default function createDetectElementResize(nonce, hostWindow) {
15
+ // Check `document` and `window` in case of server-side rendering
16
+ var _window;
17
+ if (typeof hostWindow !== 'undefined') {
18
+ _window = hostWindow;
19
+ } else if (typeof window !== 'undefined') {
20
+ _window = window;
21
+ } else if (typeof self !== 'undefined') {
22
+ _window = self;
23
+ } else {
24
+ _window = global;
25
+ }
26
+ var attachEvent = typeof _window.document !== 'undefined' && _window.document.attachEvent;
27
+ if (!attachEvent) {
28
+ var requestFrame = function () {
29
+ var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {
30
+ return _window.setTimeout(fn, 20);
31
+ };
32
+ return function (fn) {
33
+ return raf(fn);
34
+ };
35
+ }();
36
+ var cancelFrame = function () {
37
+ var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;
38
+ return function (id) {
39
+ return cancel(id);
40
+ };
41
+ }();
42
+ var resetTriggers = function resetTriggers(element) {
43
+ var triggers = element.__resizeTriggers__,
44
+ expand = triggers.firstElementChild,
45
+ contract = triggers.lastElementChild,
46
+ expandChild = expand.firstElementChild;
47
+ contract.scrollLeft = contract.scrollWidth;
48
+ contract.scrollTop = contract.scrollHeight;
49
+ expandChild.style.width = expand.offsetWidth + 1 + 'px';
50
+ expandChild.style.height = expand.offsetHeight + 1 + 'px';
51
+ expand.scrollLeft = expand.scrollWidth;
52
+ expand.scrollTop = expand.scrollHeight;
53
+ };
54
+ var checkTriggers = function checkTriggers(element) {
55
+ return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;
56
+ };
57
+ var scrollListener = function scrollListener(e) {
58
+ // Don't measure (which forces) reflow for scrolls that happen inside of children!
59
+ if (e.target.className && typeof e.target.className.indexOf === 'function' && e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {
60
+ return;
61
+ }
62
+ var element = this;
63
+ resetTriggers(this);
64
+ if (this.__resizeRAF__) {
65
+ cancelFrame(this.__resizeRAF__);
66
+ }
67
+ this.__resizeRAF__ = requestFrame(function () {
68
+ if (checkTriggers(element)) {
69
+ element.__resizeLast__.width = element.offsetWidth;
70
+ element.__resizeLast__.height = element.offsetHeight;
71
+ element.__resizeListeners__.forEach(function (fn) {
72
+ fn.call(element, e);
73
+ });
74
+ }
75
+ });
76
+ };
77
+
78
+ /* Detect CSS Animations support to detect element display/re-attach */
79
+ var animation = false,
80
+ keyframeprefix = '',
81
+ animationstartevent = 'animationstart',
82
+ domPrefixes = 'Webkit Moz O ms'.split(' '),
83
+ startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),
84
+ pfx = '';
85
+ {
86
+ var elm = _window.document.createElement('fakeelement');
87
+ if (elm.style.animationName !== undefined) {
88
+ animation = true;
89
+ }
90
+ if (animation === false) {
91
+ for (var i = 0; i < domPrefixes.length; i++) {
92
+ if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
93
+ pfx = domPrefixes[i];
94
+ keyframeprefix = '-' + pfx.toLowerCase() + '-';
95
+ animationstartevent = startEvents[i];
96
+ animation = true;
97
+ break;
98
+ }
99
+ }
100
+ }
101
+ }
102
+ var animationName = 'resizeanim';
103
+ var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';
104
+ var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';
105
+ }
106
+ var createStyles = function createStyles(doc) {
107
+ if (!doc.getElementById('detectElementResize')) {
108
+ //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360
109
+ var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',
110
+ head = doc.head || doc.getElementsByTagName('head')[0],
111
+ style = doc.createElement('style');
112
+ style.id = 'detectElementResize';
113
+ style.type = 'text/css';
114
+ if (nonce != null) {
115
+ style.setAttribute('nonce', nonce);
116
+ }
117
+ if (style.styleSheet) {
118
+ style.styleSheet.cssText = css;
119
+ } else {
120
+ style.appendChild(doc.createTextNode(css));
121
+ }
122
+ head.appendChild(style);
123
+ }
124
+ };
125
+ var addResizeListener = function addResizeListener(element, fn) {
126
+ if (attachEvent) {
127
+ element.attachEvent('onresize', fn);
128
+ } else {
129
+ if (!element.__resizeTriggers__) {
130
+ var doc = element.ownerDocument;
131
+ var elementStyle = _window.getComputedStyle(element);
132
+ if (elementStyle && elementStyle.position == 'static') {
133
+ element.style.position = 'relative';
134
+ }
135
+ createStyles(doc);
136
+ element.__resizeLast__ = {};
137
+ element.__resizeListeners__ = [];
138
+ (element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';
139
+ var expandTrigger = doc.createElement('div');
140
+ expandTrigger.className = 'expand-trigger';
141
+ expandTrigger.appendChild(doc.createElement('div'));
142
+ var contractTrigger = doc.createElement('div');
143
+ contractTrigger.className = 'contract-trigger';
144
+ element.__resizeTriggers__.appendChild(expandTrigger);
145
+ element.__resizeTriggers__.appendChild(contractTrigger);
146
+ element.appendChild(element.__resizeTriggers__);
147
+ resetTriggers(element);
148
+ element.addEventListener('scroll', scrollListener, true);
149
+
150
+ /* Listen for a css animation to detect element display/re-attach */
151
+ if (animationstartevent) {
152
+ element.__resizeTriggers__.__animationListener__ = function animationListener(e) {
153
+ if (e.animationName == animationName) {
154
+ resetTriggers(element);
155
+ }
156
+ };
157
+ element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);
158
+ }
159
+ }
160
+ element.__resizeListeners__.push(fn);
161
+ }
162
+ };
163
+ var removeResizeListener = function removeResizeListener(element, fn) {
164
+ if (attachEvent) {
165
+ element.detachEvent('onresize', fn);
166
+ } else {
167
+ element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);
168
+ if (!element.__resizeListeners__.length) {
169
+ element.removeEventListener('scroll', scrollListener, true);
170
+ if (element.__resizeTriggers__.__animationListener__) {
171
+ element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);
172
+ element.__resizeTriggers__.__animationListener__ = null;
173
+ }
174
+ try {
175
+ element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);
176
+ } catch (e) {
177
+ // Preact compat; see developit/preact-compat/issues/228
178
+ }
179
+ }
180
+ }
181
+ };
182
+ return {
183
+ addResizeListener: addResizeListener,
184
+ removeResizeListener: removeResizeListener
185
+ };
186
+ }