@kepler.gl/components 3.1.0-alpha.1 → 3.1.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (725) hide show
  1. package/dist/bottom-widget.d.ts +19 -0
  2. package/dist/bottom-widget.js +184 -0
  3. package/dist/common/action-panel.d.ts +29 -0
  4. package/dist/common/action-panel.js +136 -0
  5. package/dist/common/animation-control/animation-control.d.ts +25 -0
  6. package/dist/common/animation-control/animation-control.js +96 -0
  7. package/dist/common/animation-control/animation-controller.d.ts +19 -0
  8. package/dist/common/animation-control/animation-controller.js +269 -0
  9. package/dist/common/animation-control/animation-speed-slider.d.ts +12 -0
  10. package/dist/common/animation-control/animation-speed-slider.js +50 -0
  11. package/dist/common/animation-control/animation-window-control.d.ts +20 -0
  12. package/dist/common/animation-control/animation-window-control.js +60 -0
  13. package/dist/common/animation-control/floating-time-display.d.ts +9 -0
  14. package/dist/common/animation-control/floating-time-display.js +132 -0
  15. package/dist/common/animation-control/play-control.d.ts +12 -0
  16. package/dist/common/animation-control/play-control.js +52 -0
  17. package/dist/common/animation-control/playback-controls.d.ts +48 -0
  18. package/dist/common/animation-control/playback-controls.js +156 -0
  19. package/dist/common/animation-control/reset-control.d.ts +9 -0
  20. package/dist/common/animation-control/reset-control.js +43 -0
  21. package/dist/common/animation-control/speed-control.d.ts +12 -0
  22. package/dist/common/animation-control/speed-control.js +53 -0
  23. package/dist/common/animation-control/window-action-control.d.ts +11 -0
  24. package/dist/common/animation-control/window-action-control.js +58 -0
  25. package/dist/common/checkbox.d.ts +36 -0
  26. package/dist/common/checkbox.js +105 -0
  27. package/dist/common/color-legend.d.ts +57 -0
  28. package/dist/common/color-legend.js +262 -0
  29. package/dist/common/column-stats-chart.d.ts +37 -0
  30. package/dist/common/column-stats-chart.js +359 -0
  31. package/dist/common/data-table/button.d.ts +8 -0
  32. package/dist/common/data-table/button.js +38 -0
  33. package/dist/common/data-table/canvas.d.ts +2 -0
  34. package/dist/common/data-table/canvas.js +26 -0
  35. package/dist/common/data-table/cell-size.d.ts +43 -0
  36. package/dist/common/data-table/cell-size.js +183 -0
  37. package/dist/common/data-table/display-format.d.ts +25 -0
  38. package/dist/common/data-table/display-format.js +126 -0
  39. package/dist/common/data-table/grid.d.ts +10 -0
  40. package/dist/common/data-table/grid.js +107 -0
  41. package/dist/common/data-table/header-cell.d.ts +28 -0
  42. package/dist/common/data-table/header-cell.js +149 -0
  43. package/dist/common/data-table/index.d.ts +101 -0
  44. package/dist/common/data-table/index.js +464 -0
  45. package/dist/common/data-table/option-dropdown.d.ts +28 -0
  46. package/dist/common/data-table/option-dropdown.js +160 -0
  47. package/dist/common/dataset-label.d.ts +10 -0
  48. package/dist/common/dataset-label.js +27 -0
  49. package/dist/common/error-boundary.d.ts +16 -0
  50. package/dist/common/error-boundary.js +59 -0
  51. package/dist/common/field-selector.d.ts +49 -0
  52. package/dist/common/field-selector.js +173 -0
  53. package/dist/common/field-token.d.ts +62 -0
  54. package/dist/common/field-token.js +43 -0
  55. package/dist/common/file-uploader/file-drop.d.ts +54 -0
  56. package/dist/common/file-uploader/file-drop.js +196 -0
  57. package/dist/common/file-uploader/file-upload-progress.d.ts +8 -0
  58. package/dist/common/file-uploader/file-upload-progress.js +86 -0
  59. package/dist/common/file-uploader/file-upload.d.ts +23 -0
  60. package/dist/common/file-uploader/file-upload.js +244 -0
  61. package/dist/common/file-uploader/upload-button.d.ts +8 -0
  62. package/dist/common/file-uploader/upload-button.js +59 -0
  63. package/dist/common/flex-container.d.ts +3 -0
  64. package/dist/common/flex-container.js +15 -0
  65. package/dist/common/histogram-plot.d.ts +13 -0
  66. package/dist/common/histogram-plot.js +232 -0
  67. package/dist/common/icon-button.d.ts +27 -0
  68. package/dist/common/icon-button.js +25 -0
  69. package/dist/common/icons/add.d.ts +9 -0
  70. package/dist/common/icons/add.js +41 -0
  71. package/dist/common/icons/anchor_window.d.ts +11 -0
  72. package/dist/common/icons/anchor_window.js +34 -0
  73. package/dist/common/icons/arrow-down-alt.d.ts +9 -0
  74. package/dist/common/icons/arrow-down-alt.js +41 -0
  75. package/dist/common/icons/arrow-down-full.d.ts +16 -0
  76. package/dist/common/icons/arrow-down-full.js +50 -0
  77. package/dist/common/icons/arrow-down-small.d.ts +14 -0
  78. package/dist/common/icons/arrow-down-small.js +54 -0
  79. package/dist/common/icons/arrow-down-solid.d.ts +9 -0
  80. package/dist/common/icons/arrow-down-solid.js +41 -0
  81. package/dist/common/icons/arrow-down.d.ts +9 -0
  82. package/dist/common/icons/arrow-down.js +41 -0
  83. package/dist/common/icons/arrow-left.d.ts +9 -0
  84. package/dist/common/icons/arrow-left.js +44 -0
  85. package/dist/common/icons/arrow-right.d.ts +9 -0
  86. package/dist/common/icons/arrow-right.js +41 -0
  87. package/dist/common/icons/arrow-up-alt.d.ts +9 -0
  88. package/dist/common/icons/arrow-up-alt.js +42 -0
  89. package/dist/common/icons/arrow-up-solid.d.ts +9 -0
  90. package/dist/common/icons/arrow-up-solid.js +41 -0
  91. package/dist/common/icons/arrow-up.d.ts +9 -0
  92. package/dist/common/icons/arrow-up.js +41 -0
  93. package/dist/common/icons/base.d.ts +29 -0
  94. package/dist/common/icons/base.js +79 -0
  95. package/dist/common/icons/bug.d.ts +9 -0
  96. package/dist/common/icons/bug.js +43 -0
  97. package/dist/common/icons/calendar.d.ts +10 -0
  98. package/dist/common/icons/calendar.js +49 -0
  99. package/dist/common/icons/cancel.d.ts +9 -0
  100. package/dist/common/icons/cancel.js +41 -0
  101. package/dist/common/icons/checkmark.d.ts +10 -0
  102. package/dist/common/icons/checkmark.js +47 -0
  103. package/dist/common/icons/clipboard.d.ts +9 -0
  104. package/dist/common/icons/clipboard.js +42 -0
  105. package/dist/common/icons/clock.d.ts +9 -0
  106. package/dist/common/icons/clock.js +43 -0
  107. package/dist/common/icons/close.d.ts +9 -0
  108. package/dist/common/icons/close.js +46 -0
  109. package/dist/common/icons/code-alt.d.ts +9 -0
  110. package/dist/common/icons/code-alt.js +44 -0
  111. package/dist/common/icons/copy.d.ts +9 -0
  112. package/dist/common/icons/copy.js +46 -0
  113. package/dist/common/icons/crosshairs.d.ts +9 -0
  114. package/dist/common/icons/crosshairs.js +44 -0
  115. package/dist/common/icons/cube-3d.d.ts +9 -0
  116. package/dist/common/icons/cube-3d.js +45 -0
  117. package/dist/common/icons/cursor-click.d.ts +9 -0
  118. package/dist/common/icons/cursor-click.js +45 -0
  119. package/dist/common/icons/cursor-point.d.ts +14 -0
  120. package/dist/common/icons/cursor-point.js +51 -0
  121. package/dist/common/icons/data-table.d.ts +10 -0
  122. package/dist/common/icons/data-table.js +42 -0
  123. package/dist/common/icons/db.d.ts +10 -0
  124. package/dist/common/icons/db.js +42 -0
  125. package/dist/common/icons/delete.d.ts +9 -0
  126. package/dist/common/icons/delete.js +43 -0
  127. package/dist/common/icons/docs.d.ts +9 -0
  128. package/dist/common/icons/docs.js +57 -0
  129. package/dist/common/icons/drag-n-drop.d.ts +9 -0
  130. package/dist/common/icons/drag-n-drop.js +43 -0
  131. package/dist/common/icons/draw-polygon.d.ts +10 -0
  132. package/dist/common/icons/draw-polygon.js +61 -0
  133. package/dist/common/icons/edit.d.ts +14 -0
  134. package/dist/common/icons/edit.js +49 -0
  135. package/dist/common/icons/effects/brightness-contrast.d.ts +14 -0
  136. package/dist/common/icons/effects/brightness-contrast.js +70 -0
  137. package/dist/common/icons/effects/color-halftone.d.ts +14 -0
  138. package/dist/common/icons/effects/color-halftone.js +109 -0
  139. package/dist/common/icons/effects/dot-screen.d.ts +14 -0
  140. package/dist/common/icons/effects/dot-screen.js +104 -0
  141. package/dist/common/icons/effects/edge-work.d.ts +14 -0
  142. package/dist/common/icons/effects/edge-work.js +63 -0
  143. package/dist/common/icons/effects/hexagonal-pixelate.d.ts +14 -0
  144. package/dist/common/icons/effects/hexagonal-pixelate.js +130 -0
  145. package/dist/common/icons/effects/hue-saturation.d.ts +14 -0
  146. package/dist/common/icons/effects/hue-saturation.js +61 -0
  147. package/dist/common/icons/effects/ink.d.ts +14 -0
  148. package/dist/common/icons/effects/ink.js +60 -0
  149. package/dist/common/icons/effects/light-and-shadow.d.ts +14 -0
  150. package/dist/common/icons/effects/light-and-shadow.js +49 -0
  151. package/dist/common/icons/effects/magic-wand.d.ts +14 -0
  152. package/dist/common/icons/effects/magic-wand.js +61 -0
  153. package/dist/common/icons/effects/magnify.d.ts +14 -0
  154. package/dist/common/icons/effects/magnify.js +68 -0
  155. package/dist/common/icons/effects/noise.d.ts +14 -0
  156. package/dist/common/icons/effects/noise.js +114 -0
  157. package/dist/common/icons/effects/sepia.d.ts +14 -0
  158. package/dist/common/icons/effects/sepia.js +61 -0
  159. package/dist/common/icons/effects/tilt-shift.d.ts +14 -0
  160. package/dist/common/icons/effects/tilt-shift.js +70 -0
  161. package/dist/common/icons/effects/triangle-blur.d.ts +14 -0
  162. package/dist/common/icons/effects/triangle-blur.js +65 -0
  163. package/dist/common/icons/effects/vibrance.d.ts +14 -0
  164. package/dist/common/icons/effects/vibrance.js +61 -0
  165. package/dist/common/icons/effects/vignette.d.ts +14 -0
  166. package/dist/common/icons/effects/vignette.js +54 -0
  167. package/dist/common/icons/effects/zoom-blur.d.ts +14 -0
  168. package/dist/common/icons/effects/zoom-blur.js +89 -0
  169. package/dist/common/icons/email.d.ts +9 -0
  170. package/dist/common/icons/email.js +45 -0
  171. package/dist/common/icons/expand.d.ts +9 -0
  172. package/dist/common/icons/expand.js +43 -0
  173. package/dist/common/icons/eye-seen.d.ts +9 -0
  174. package/dist/common/icons/eye-seen.js +43 -0
  175. package/dist/common/icons/eye-unseen.d.ts +9 -0
  176. package/dist/common/icons/eye-unseen.js +43 -0
  177. package/dist/common/icons/file-type.d.ts +8 -0
  178. package/dist/common/icons/file-type.js +35 -0
  179. package/dist/common/icons/file.d.ts +9 -0
  180. package/dist/common/icons/file.js +41 -0
  181. package/dist/common/icons/files.d.ts +9 -0
  182. package/dist/common/icons/files.js +41 -0
  183. package/dist/common/icons/filter-funnel.d.ts +9 -0
  184. package/dist/common/icons/filter-funnel.js +41 -0
  185. package/dist/common/icons/free-window.d.ts +4 -0
  186. package/dist/common/icons/free-window.js +44 -0
  187. package/dist/common/icons/gear.d.ts +9 -0
  188. package/dist/common/icons/gear.js +43 -0
  189. package/dist/common/icons/globe.d.ts +15 -0
  190. package/dist/common/icons/globe.js +54 -0
  191. package/dist/common/icons/hash.d.ts +9 -0
  192. package/dist/common/icons/hash.js +41 -0
  193. package/dist/common/icons/help.d.ts +13 -0
  194. package/dist/common/icons/help.js +51 -0
  195. package/dist/common/icons/histogram.d.ts +9 -0
  196. package/dist/common/icons/histogram.js +41 -0
  197. package/dist/common/icons/index.d.ts +106 -0
  198. package/dist/common/icons/index.js +740 -0
  199. package/dist/common/icons/info.d.ts +12 -0
  200. package/dist/common/icons/info.js +54 -0
  201. package/dist/common/icons/layers.d.ts +9 -0
  202. package/dist/common/icons/layers.js +41 -0
  203. package/dist/common/icons/left-arrow.d.ts +9 -0
  204. package/dist/common/icons/left-arrow.js +44 -0
  205. package/dist/common/icons/legend.d.ts +9 -0
  206. package/dist/common/icons/legend.js +41 -0
  207. package/dist/common/icons/line-chart.d.ts +9 -0
  208. package/dist/common/icons/line-chart.js +41 -0
  209. package/dist/common/icons/location-marker.d.ts +14 -0
  210. package/dist/common/icons/location-marker.js +59 -0
  211. package/dist/common/icons/login.d.ts +9 -0
  212. package/dist/common/icons/login.js +44 -0
  213. package/dist/common/icons/logout.d.ts +9 -0
  214. package/dist/common/icons/logout.js +43 -0
  215. package/dist/common/icons/map-icon.d.ts +11 -0
  216. package/dist/common/icons/map-icon.js +48 -0
  217. package/dist/common/icons/map.d.ts +11 -0
  218. package/dist/common/icons/map.js +48 -0
  219. package/dist/common/icons/messages.d.ts +9 -0
  220. package/dist/common/icons/messages.js +41 -0
  221. package/dist/common/icons/minus.d.ts +9 -0
  222. package/dist/common/icons/minus.js +41 -0
  223. package/dist/common/icons/moon.d.ts +14 -0
  224. package/dist/common/icons/moon.js +59 -0
  225. package/dist/common/icons/order-by-dataset.d.ts +4 -0
  226. package/dist/common/icons/order-by-dataset.js +46 -0
  227. package/dist/common/icons/order-by-list.d.ts +4 -0
  228. package/dist/common/icons/order-by-list.js +38 -0
  229. package/dist/common/icons/pause.d.ts +9 -0
  230. package/dist/common/icons/pause.js +41 -0
  231. package/dist/common/icons/picture.d.ts +9 -0
  232. package/dist/common/icons/picture.js +41 -0
  233. package/dist/common/icons/pin.d.ts +9 -0
  234. package/dist/common/icons/pin.js +45 -0
  235. package/dist/common/icons/play.d.ts +9 -0
  236. package/dist/common/icons/play.js +41 -0
  237. package/dist/common/icons/polygon.d.ts +10 -0
  238. package/dist/common/icons/polygon.js +63 -0
  239. package/dist/common/icons/rectangle.d.ts +10 -0
  240. package/dist/common/icons/rectangle.js +64 -0
  241. package/dist/common/icons/reduce.d.ts +9 -0
  242. package/dist/common/icons/reduce.js +44 -0
  243. package/dist/common/icons/reset.d.ts +9 -0
  244. package/dist/common/icons/reset.js +41 -0
  245. package/dist/common/icons/rocket.d.ts +9 -0
  246. package/dist/common/icons/rocket.js +41 -0
  247. package/dist/common/icons/save.d.ts +9 -0
  248. package/dist/common/icons/save.js +43 -0
  249. package/dist/common/icons/save2.d.ts +9 -0
  250. package/dist/common/icons/save2.js +47 -0
  251. package/dist/common/icons/search.d.ts +9 -0
  252. package/dist/common/icons/search.js +43 -0
  253. package/dist/common/icons/settings.d.ts +9 -0
  254. package/dist/common/icons/settings.js +43 -0
  255. package/dist/common/icons/share.d.ts +9 -0
  256. package/dist/common/icons/share.js +41 -0
  257. package/dist/common/icons/split.d.ts +9 -0
  258. package/dist/common/icons/split.js +69 -0
  259. package/dist/common/icons/square-select.d.ts +9 -0
  260. package/dist/common/icons/square-select.js +43 -0
  261. package/dist/common/icons/sun.d.ts +14 -0
  262. package/dist/common/icons/sun.js +75 -0
  263. package/dist/common/icons/sunrise.d.ts +14 -0
  264. package/dist/common/icons/sunrise.js +71 -0
  265. package/dist/common/icons/sunset.d.ts +14 -0
  266. package/dist/common/icons/sunset.js +71 -0
  267. package/dist/common/icons/timeline-marker.d.ts +17 -0
  268. package/dist/common/icons/timeline-marker.js +56 -0
  269. package/dist/common/icons/trash.d.ts +10 -0
  270. package/dist/common/icons/trash.js +44 -0
  271. package/dist/common/icons/vert-dots.d.ts +9 -0
  272. package/dist/common/icons/vert-dots.js +79 -0
  273. package/dist/common/icons/vert-three-dots.d.ts +9 -0
  274. package/dist/common/icons/vert-three-dots.js +54 -0
  275. package/dist/common/icons/warning-sign.d.ts +15 -0
  276. package/dist/common/icons/warning-sign.js +61 -0
  277. package/dist/common/icons/warning.d.ts +10 -0
  278. package/dist/common/icons/warning.js +55 -0
  279. package/dist/common/image-preview.d.ts +15 -0
  280. package/dist/common/image-preview.js +60 -0
  281. package/dist/common/index.d.ts +4 -0
  282. package/dist/common/index.js +277 -0
  283. package/dist/common/info-helper.d.ts +10 -0
  284. package/dist/common/info-helper.js +61 -0
  285. package/dist/common/item-selector/accessor.d.ts +7 -0
  286. package/dist/common/item-selector/accessor.js +37 -0
  287. package/dist/common/item-selector/chickleted-input.d.ts +23 -0
  288. package/dist/common/item-selector/chickleted-input.js +153 -0
  289. package/dist/common/item-selector/dropdown-list.d.ts +74 -0
  290. package/dist/common/item-selector/dropdown-list.js +260 -0
  291. package/dist/common/item-selector/dropdown-select.d.ts +33 -0
  292. package/dist/common/item-selector/dropdown-select.js +79 -0
  293. package/dist/common/item-selector/item-selector.d.ts +82 -0
  294. package/dist/common/item-selector/item-selector.js +252 -0
  295. package/dist/common/item-selector/typeahead.d.ts +126 -0
  296. package/dist/common/item-selector/typeahead.js +433 -0
  297. package/dist/common/line-chart.d.ts +34 -0
  298. package/dist/common/line-chart.js +120 -0
  299. package/dist/common/loading-spinner.d.ts +10 -0
  300. package/dist/common/loading-spinner.js +51 -0
  301. package/dist/common/logo.d.ts +8 -0
  302. package/dist/common/logo.js +68 -0
  303. package/dist/common/map-layer-selector.d.ts +13 -0
  304. package/dist/common/map-layer-selector.js +38 -0
  305. package/dist/common/modal.d.ts +64 -0
  306. package/dist/common/modal.js +171 -0
  307. package/dist/common/portaled.d.ts +583 -0
  308. package/dist/common/portaled.js +285 -0
  309. package/dist/common/progress-bar.d.ts +12 -0
  310. package/dist/common/progress-bar.js +47 -0
  311. package/dist/common/radius-legend.d.ts +10 -0
  312. package/dist/common/radius-legend.js +132 -0
  313. package/dist/common/range-brush.d.ts +19 -0
  314. package/dist/common/range-brush.js +266 -0
  315. package/dist/common/range-plot.d.ts +41 -0
  316. package/dist/common/range-plot.js +207 -0
  317. package/dist/common/range-slider-timeline-panel.d.ts +11 -0
  318. package/dist/common/range-slider-timeline-panel.js +43 -0
  319. package/dist/common/range-slider-timeline.d.ts +7 -0
  320. package/dist/common/range-slider-timeline.js +114 -0
  321. package/dist/common/range-slider.d.ts +42 -0
  322. package/dist/common/range-slider.js +309 -0
  323. package/dist/common/slider/mouse-event.d.ts +27 -0
  324. package/dist/common/slider/mouse-event.js +105 -0
  325. package/dist/common/slider/slider-bar-handle.d.ts +29 -0
  326. package/dist/common/slider/slider-bar-handle.js +91 -0
  327. package/dist/common/slider/slider-handle.d.ts +33 -0
  328. package/dist/common/slider/slider-handle.js +137 -0
  329. package/dist/common/slider/slider.d.ts +72 -0
  330. package/dist/common/slider/slider.js +209 -0
  331. package/dist/common/styled-components.d.ts +159 -0
  332. package/dist/common/styled-components.js +398 -0
  333. package/dist/common/switch.d.ts +16 -0
  334. package/dist/common/switch.js +21 -0
  335. package/dist/common/sync-timeline-control.d.ts +28 -0
  336. package/dist/common/sync-timeline-control.js +61 -0
  337. package/dist/common/time-range-slider-time-title.d.ts +9 -0
  338. package/dist/common/time-range-slider-time-title.js +62 -0
  339. package/dist/common/time-range-slider.d.ts +42 -0
  340. package/dist/common/time-range-slider.js +132 -0
  341. package/dist/common/time-slider-marker.d.ts +14 -0
  342. package/dist/common/time-slider-marker.js +116 -0
  343. package/dist/common/timeline-slider.d.ts +13 -0
  344. package/dist/common/timeline-slider.js +132 -0
  345. package/dist/common/tippy-tooltip.d.ts +6 -0
  346. package/dist/common/tippy-tooltip.js +135 -0
  347. package/dist/common/toolbar-item.d.ts +14 -0
  348. package/dist/common/toolbar-item.js +60 -0
  349. package/dist/common/toolbar.d.ts +5 -0
  350. package/dist/common/toolbar.js +27 -0
  351. package/dist/common/vertical-toolbar.d.ts +3 -0
  352. package/dist/common/vertical-toolbar.js +16 -0
  353. package/dist/connect/keplergl-connect.d.ts +9 -0
  354. package/dist/connect/keplergl-connect.js +44 -0
  355. package/dist/connect/with-local-selector.d.ts +6 -0
  356. package/dist/connect/with-local-selector.js +86 -0
  357. package/dist/container.d.ts +39 -0
  358. package/dist/container.js +181 -0
  359. package/dist/context.d.ts +27 -0
  360. package/dist/context.js +44 -0
  361. package/dist/dnd-context.d.ts +13 -0
  362. package/dist/dnd-context.js +124 -0
  363. package/dist/editor/editor.d.ts +31 -0
  364. package/dist/editor/editor.js +201 -0
  365. package/dist/editor/feature-action-panel.d.ts +32 -0
  366. package/dist/editor/feature-action-panel.js +148 -0
  367. package/dist/effects/compact-color-picker.d.ts +10 -0
  368. package/dist/effects/compact-color-picker.js +111 -0
  369. package/dist/effects/effect-configurator.d.ts +17 -0
  370. package/dist/effects/effect-configurator.js +275 -0
  371. package/dist/effects/effect-list.d.ts +20 -0
  372. package/dist/effects/effect-list.js +129 -0
  373. package/dist/effects/effect-manager.d.ts +27 -0
  374. package/dist/effects/effect-manager.js +120 -0
  375. package/dist/effects/effect-panel-header.d.ts +45 -0
  376. package/dist/effects/effect-panel-header.js +180 -0
  377. package/dist/effects/effect-panel.d.ts +24 -0
  378. package/dist/effects/effect-panel.js +112 -0
  379. package/dist/effects/effect-time-configurator.d.ts +20 -0
  380. package/dist/effects/effect-time-configurator.js +302 -0
  381. package/dist/effects/effect-time-selector.d.ts +16 -0
  382. package/dist/effects/effect-time-selector.js +153 -0
  383. package/dist/effects/effect-time-slider.d.ts +34 -0
  384. package/dist/effects/effect-time-slider.js +199 -0
  385. package/dist/effects/effect-type-dropdown-list.d.ts +18 -0
  386. package/dist/effects/effect-type-dropdown-list.js +66 -0
  387. package/dist/effects/effect-type-list-item.d.ts +22 -0
  388. package/dist/effects/effect-type-list-item.js +87 -0
  389. package/dist/effects/effect-type-selector.d.ts +30 -0
  390. package/dist/effects/effect-type-selector.js +77 -0
  391. package/dist/effects/side-panel-title.d.ts +7 -0
  392. package/dist/effects/side-panel-title.js +37 -0
  393. package/dist/effects/timezone-selector.d.ts +19 -0
  394. package/dist/effects/timezone-selector.js +58 -0
  395. package/dist/filter-animation-controller.d.ts +17 -0
  396. package/dist/filter-animation-controller.js +77 -0
  397. package/dist/filters/components.d.ts +3 -0
  398. package/dist/filters/components.js +14 -0
  399. package/dist/filters/filter-panels/filter-panel-with-field-select.d.ts +10 -0
  400. package/dist/filters/filter-panels/filter-panel-with-field-select.js +78 -0
  401. package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +54 -0
  402. package/dist/filters/filter-panels/filter-synced-dataset-panel.js +261 -0
  403. package/dist/filters/filter-panels/multi-select-filter-panel.d.ts +9 -0
  404. package/dist/filters/filter-panels/multi-select-filter-panel.js +49 -0
  405. package/dist/filters/filter-panels/new-filter-panel.d.ts +12 -0
  406. package/dist/filters/filter-panels/new-filter-panel.js +67 -0
  407. package/dist/filters/filter-panels/polygon-filter-panel.d.ts +9 -0
  408. package/dist/filters/filter-panels/polygon-filter-panel.js +68 -0
  409. package/dist/filters/filter-panels/range-filter-panel.d.ts +9 -0
  410. package/dist/filters/filter-panels/range-filter-panel.js +54 -0
  411. package/dist/filters/filter-panels/single-select-filter-panel.d.ts +9 -0
  412. package/dist/filters/filter-panels/single-select-filter-panel.js +49 -0
  413. package/dist/filters/filter-panels/time-range-filter-panel.d.ts +12 -0
  414. package/dist/filters/filter-panels/time-range-filter-panel.js +130 -0
  415. package/dist/filters/filter-panels/time-synced-field-selector.d.ts +7 -0
  416. package/dist/filters/filter-panels/time-synced-field-selector.js +28 -0
  417. package/dist/filters/filter-panels/types.d.ts +40 -0
  418. package/dist/filters/filter-panels/types.js +6 -0
  419. package/dist/filters/index.d.ts +7 -0
  420. package/dist/filters/index.js +56 -0
  421. package/dist/filters/multi-select-filter.d.ts +3 -0
  422. package/dist/filters/multi-select-filter.js +31 -0
  423. package/dist/filters/polygon-filter.d.ts +4 -0
  424. package/dist/filters/polygon-filter.js +77 -0
  425. package/dist/filters/range-filter.d.ts +8 -0
  426. package/dist/filters/range-filter.js +35 -0
  427. package/dist/filters/single-select-filter.d.ts +3 -0
  428. package/dist/filters/single-select-filter.js +40 -0
  429. package/dist/filters/time-range-filter.d.ts +35 -0
  430. package/dist/filters/time-range-filter.js +67 -0
  431. package/dist/filters/time-widget-top.d.ts +8 -0
  432. package/dist/filters/time-widget-top.js +88 -0
  433. package/dist/filters/time-widget.d.ts +10 -0
  434. package/dist/filters/time-widget.js +101 -0
  435. package/dist/filters/types.d.ts +67 -0
  436. package/dist/filters/types.js +6 -0
  437. package/dist/geocoder/geocoder.d.ts +31 -0
  438. package/dist/geocoder/geocoder.js +269 -0
  439. package/dist/geocoder-panel.d.ts +22 -0
  440. package/dist/geocoder-panel.js +197 -0
  441. package/dist/hooks/use-cloud-list-provider.d.ts +11 -0
  442. package/dist/hooks/use-cloud-list-provider.js +47 -0
  443. package/dist/hooks/use-dnd-effects.d.ts +9 -0
  444. package/dist/hooks/use-dnd-effects.js +69 -0
  445. package/dist/hooks/use-dnd-layers.d.ts +9 -0
  446. package/dist/hooks/use-dnd-layers.js +80 -0
  447. package/dist/hooks/use-feature-flags.d.ts +5 -0
  448. package/dist/hooks/use-feature-flags.js +17 -0
  449. package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +16 -0
  450. package/dist/hooks/use-fetch-vector-tile-metadata.js +109 -0
  451. package/dist/hooks/use-on-click-outside.d.ts +2 -0
  452. package/dist/hooks/use-on-click-outside.js +36 -0
  453. package/dist/index.d.ts +253 -0
  454. package/dist/index.js +2608 -0
  455. package/dist/injector.d.ts +29 -0
  456. package/dist/injector.js +151 -0
  457. package/dist/kepler-gl.d.ts +325 -0
  458. package/dist/kepler-gl.js +504 -0
  459. package/dist/layer-animation-controller.d.ts +13 -0
  460. package/dist/layer-animation-controller.js +54 -0
  461. package/dist/map/coordinate-info.d.ts +7 -0
  462. package/dist/map/coordinate-info.js +42 -0
  463. package/dist/map/effects/effect-control.d.ts +16 -0
  464. package/dist/map/effects/effect-control.js +52 -0
  465. package/dist/map/layer-hover-info.d.ts +29 -0
  466. package/dist/map/layer-hover-info.js +222 -0
  467. package/dist/map/layer-selector-panel.d.ts +21 -0
  468. package/dist/map/layer-selector-panel.js +85 -0
  469. package/dist/map/lazy-tippy.d.ts +8 -0
  470. package/dist/map/lazy-tippy.js +61 -0
  471. package/dist/map/locale-panel.d.ts +16 -0
  472. package/dist/map/locale-panel.js +77 -0
  473. package/dist/map/map-control-panel.d.ts +20 -0
  474. package/dist/map/map-control-panel.js +139 -0
  475. package/dist/map/map-control-toolbar.d.ts +2 -0
  476. package/dist/map/map-control-toolbar.js +18 -0
  477. package/dist/map/map-control-tooltip.d.ts +8 -0
  478. package/dist/map/map-control-tooltip.js +34 -0
  479. package/dist/map/map-control.d.ts +56 -0
  480. package/dist/map/map-control.js +71 -0
  481. package/dist/map/map-draw-panel.d.ts +20 -0
  482. package/dist/map/map-draw-panel.js +98 -0
  483. package/dist/map/map-legend-panel.d.ts +65 -0
  484. package/dist/map/map-legend-panel.js +155 -0
  485. package/dist/map/map-legend.d.ts +90 -0
  486. package/dist/map/map-legend.js +369 -0
  487. package/dist/map/map-popover-content.d.ts +28 -0
  488. package/dist/map/map-popover-content.js +28 -0
  489. package/dist/map/map-popover.d.ts +33 -0
  490. package/dist/map/map-popover.js +185 -0
  491. package/dist/map/split-map-button.d.ts +20 -0
  492. package/dist/map/split-map-button.js +65 -0
  493. package/dist/map/toggle-3d-button.d.ts +17 -0
  494. package/dist/map/toggle-3d-button.js +55 -0
  495. package/dist/map-container.d.ts +73 -0
  496. package/dist/map-container.js +903 -0
  497. package/dist/map-view-state-context.d.ts +17 -0
  498. package/dist/map-view-state-context.js +99 -0
  499. package/dist/maps-layout.d.ts +12 -0
  500. package/dist/maps-layout.js +43 -0
  501. package/dist/modal-container.d.ts +59 -0
  502. package/dist/modal-container.js +434 -0
  503. package/dist/modals/add-map-style-modal.d.ts +17 -0
  504. package/dist/modals/add-map-style-modal.js +198 -0
  505. package/dist/modals/cloud-components/cloud-header.d.ts +12 -0
  506. package/dist/modals/cloud-components/cloud-header.js +60 -0
  507. package/dist/modals/cloud-components/cloud-item.d.ts +5 -0
  508. package/dist/modals/cloud-components/cloud-item.js +59 -0
  509. package/dist/modals/cloud-components/cloud-item.spec.d.ts +1 -0
  510. package/dist/modals/cloud-components/cloud-item.spec.js +92 -0
  511. package/dist/modals/cloud-components/cloud-maps.d.ts +8 -0
  512. package/dist/modals/cloud-components/cloud-maps.js +47 -0
  513. package/dist/modals/cloud-components/cloud-maps.spec.d.ts +1 -0
  514. package/dist/modals/cloud-components/cloud-maps.spec.js +98 -0
  515. package/dist/modals/cloud-components/provider-loading.d.ts +2 -0
  516. package/dist/modals/cloud-components/provider-loading.js +20 -0
  517. package/dist/modals/cloud-components/provider-select.d.ts +7 -0
  518. package/dist/modals/cloud-components/provider-select.js +30 -0
  519. package/dist/modals/cloud-tile.d.ts +15 -0
  520. package/dist/modals/cloud-tile.js +203 -0
  521. package/dist/modals/data-table-modal.d.ts +37 -0
  522. package/dist/modals/data-table-modal.js +264 -0
  523. package/dist/modals/delete-data-modal.d.ts +10 -0
  524. package/dist/modals/delete-data-modal.js +41 -0
  525. package/dist/modals/error-display.d.ts +6 -0
  526. package/dist/modals/error-display.js +33 -0
  527. package/dist/modals/export-data-modal.d.ts +23 -0
  528. package/dist/modals/export-data-modal.js +187 -0
  529. package/dist/modals/export-image-modal.d.ts +16 -0
  530. package/dist/modals/export-image-modal.js +122 -0
  531. package/dist/modals/export-map-modal/components.d.ts +8 -0
  532. package/dist/modals/export-map-modal/components.js +34 -0
  533. package/dist/modals/export-map-modal/export-html-map.d.ts +12 -0
  534. package/dist/modals/export-map-modal/export-html-map.js +126 -0
  535. package/dist/modals/export-map-modal/export-json-map.d.ts +9 -0
  536. package/dist/modals/export-map-modal/export-json-map.js +81 -0
  537. package/dist/modals/export-map-modal/export-map-modal.d.ts +27 -0
  538. package/dist/modals/export-map-modal/export-map-modal.js +84 -0
  539. package/dist/modals/image-modal-container.d.ts +16 -0
  540. package/dist/modals/image-modal-container.js +58 -0
  541. package/dist/modals/load-data-modal.d.ts +44 -0
  542. package/dist/modals/load-data-modal.js +98 -0
  543. package/dist/modals/load-storage-map.d.ts +9 -0
  544. package/dist/modals/load-storage-map.js +80 -0
  545. package/dist/modals/load-storage-map.spec.d.ts +1 -0
  546. package/dist/modals/load-storage-map.spec.js +216 -0
  547. package/dist/modals/loading-dialog.d.ts +7 -0
  548. package/dist/modals/loading-dialog.js +37 -0
  549. package/dist/modals/modal-dialog.d.ts +2 -0
  550. package/dist/modals/modal-dialog.js +16 -0
  551. package/dist/modals/modal-tabs.d.ts +15 -0
  552. package/dist/modals/modal-tabs.js +75 -0
  553. package/dist/modals/overwrite-map-modal.d.ts +16 -0
  554. package/dist/modals/overwrite-map-modal.js +84 -0
  555. package/dist/modals/save-map-modal.d.ts +28 -0
  556. package/dist/modals/save-map-modal.js +179 -0
  557. package/dist/modals/save-map-modal.spec.d.ts +1 -0
  558. package/dist/modals/save-map-modal.spec.js +195 -0
  559. package/dist/modals/share-map-modal.d.ts +26 -0
  560. package/dist/modals/share-map-modal.js +169 -0
  561. package/dist/modals/share-map-modal.spec.d.ts +1 -0
  562. package/dist/modals/share-map-modal.spec.js +173 -0
  563. package/dist/modals/status-panel.d.ts +13 -0
  564. package/dist/modals/status-panel.js +65 -0
  565. package/dist/modals/storage-map-viewer.d.ts +21 -0
  566. package/dist/modals/storage-map-viewer.js +98 -0
  567. package/dist/modals/tilesets-modals/common.d.ts +12 -0
  568. package/dist/modals/tilesets-modals/common.js +6 -0
  569. package/dist/modals/tilesets-modals/load-data-footer.d.ts +11 -0
  570. package/dist/modals/tilesets-modals/load-data-footer.js +41 -0
  571. package/dist/modals/tilesets-modals/load-tileset.d.ts +16 -0
  572. package/dist/modals/tilesets-modals/load-tileset.js +114 -0
  573. package/dist/modals/tilesets-modals/tileset-icon.d.ts +9 -0
  574. package/dist/modals/tilesets-modals/tileset-icon.js +32 -0
  575. package/dist/modals/tilesets-modals/tileset-vector-form.d.ts +13 -0
  576. package/dist/modals/tilesets-modals/tileset-vector-form.js +165 -0
  577. package/dist/notification-panel/notification-item.d.ts +67 -0
  578. package/dist/notification-panel/notification-item.js +150 -0
  579. package/dist/notification-panel.d.ts +13 -0
  580. package/dist/notification-panel.js +61 -0
  581. package/dist/plot-container.d.ts +24 -0
  582. package/dist/plot-container.js +223 -0
  583. package/dist/side-panel/add-by-dataset-button.d.ts +12 -0
  584. package/dist/side-panel/add-by-dataset-button.js +128 -0
  585. package/dist/side-panel/cloud-storage-dropdown.d.ts +6 -0
  586. package/dist/side-panel/cloud-storage-dropdown.js +40 -0
  587. package/dist/side-panel/common/dataset-info.d.ts +11 -0
  588. package/dist/side-panel/common/dataset-info.js +34 -0
  589. package/dist/side-panel/common/dataset-tag.d.ts +17 -0
  590. package/dist/side-panel/common/dataset-tag.js +62 -0
  591. package/dist/side-panel/common/dataset-title.d.ts +22 -0
  592. package/dist/side-panel/common/dataset-title.js +143 -0
  593. package/dist/side-panel/common/source-data-catalog.d.ts +29 -0
  594. package/dist/side-panel/common/source-data-catalog.js +49 -0
  595. package/dist/side-panel/common/source-data-selector-content.d.ts +8 -0
  596. package/dist/side-panel/common/source-data-selector-content.js +65 -0
  597. package/dist/side-panel/common/source-data-selector.d.ts +8 -0
  598. package/dist/side-panel/common/source-data-selector.js +41 -0
  599. package/dist/side-panel/common/source-selector.d.ts +21 -0
  600. package/dist/side-panel/common/source-selector.js +57 -0
  601. package/dist/side-panel/common/types.d.ts +44 -0
  602. package/dist/side-panel/common/types.js +6 -0
  603. package/dist/side-panel/custom-panel.d.ts +13 -0
  604. package/dist/side-panel/custom-panel.js +39 -0
  605. package/dist/side-panel/filter-manager.d.ts +32 -0
  606. package/dist/side-panel/filter-manager.js +203 -0
  607. package/dist/side-panel/filter-panel/add-filter-button.d.ts +8 -0
  608. package/dist/side-panel/filter-panel/add-filter-button.js +28 -0
  609. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +26 -0
  610. package/dist/side-panel/filter-panel/filter-panel-header.js +53 -0
  611. package/dist/side-panel/filter-panel/filter-panel.d.ts +23 -0
  612. package/dist/side-panel/filter-panel/filter-panel.js +93 -0
  613. package/dist/side-panel/interaction-manager.d.ts +18 -0
  614. package/dist/side-panel/interaction-manager.js +45 -0
  615. package/dist/side-panel/interaction-panel/brush-config.d.ts +15 -0
  616. package/dist/side-panel/interaction-panel/brush-config.js +41 -0
  617. package/dist/side-panel/interaction-panel/interaction-panel.d.ts +20 -0
  618. package/dist/side-panel/interaction-panel/interaction-panel.js +115 -0
  619. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +30 -0
  620. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +162 -0
  621. package/dist/side-panel/interaction-panel/tooltip-config.d.ts +37 -0
  622. package/dist/side-panel/interaction-panel/tooltip-config.js +150 -0
  623. package/dist/side-panel/layer-manager.d.ts +44 -0
  624. package/dist/side-panel/layer-manager.js +200 -0
  625. package/dist/side-panel/layer-panel/add-layer-button.d.ts +8 -0
  626. package/dist/side-panel/layer-panel/add-layer-button.js +28 -0
  627. package/dist/side-panel/layer-panel/aggr-scale-selector.d.ts +13 -0
  628. package/dist/side-panel/layer-panel/aggr-scale-selector.js +35 -0
  629. package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +26 -0
  630. package/dist/side-panel/layer-panel/channel-by-value-selector.js +68 -0
  631. package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +33 -0
  632. package/dist/side-panel/layer-panel/color-breaks-panel.js +153 -0
  633. package/dist/side-panel/layer-panel/color-palette-preset.d.ts +9 -0
  634. package/dist/side-panel/layer-panel/color-palette-preset.js +45 -0
  635. package/dist/side-panel/layer-panel/color-palette.d.ts +12 -0
  636. package/dist/side-panel/layer-panel/color-palette.js +69 -0
  637. package/dist/side-panel/layer-panel/color-range-selector.d.ts +39 -0
  638. package/dist/side-panel/layer-panel/color-range-selector.js +244 -0
  639. package/dist/side-panel/layer-panel/color-scale-selector.d.ts +36 -0
  640. package/dist/side-panel/layer-panel/color-scale-selector.js +186 -0
  641. package/dist/side-panel/layer-panel/color-selector.d.ts +34 -0
  642. package/dist/side-panel/layer-panel/color-selector.js +167 -0
  643. package/dist/side-panel/layer-panel/column-selector.d.ts +18 -0
  644. package/dist/side-panel/layer-panel/column-selector.js +60 -0
  645. package/dist/side-panel/layer-panel/custom-palette.d.ts +77 -0
  646. package/dist/side-panel/layer-panel/custom-palette.js +427 -0
  647. package/dist/side-panel/layer-panel/custom-picker.d.ts +8 -0
  648. package/dist/side-panel/layer-panel/custom-picker.js +71 -0
  649. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +23 -0
  650. package/dist/side-panel/layer-panel/dataset-layer-group.js +67 -0
  651. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +25 -0
  652. package/dist/side-panel/layer-panel/dataset-layer-section.js +60 -0
  653. package/dist/side-panel/layer-panel/dataset-section.d.ts +23 -0
  654. package/dist/side-panel/layer-panel/dataset-section.js +74 -0
  655. package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +23 -0
  656. package/dist/side-panel/layer-panel/dimension-scale-selector.js +90 -0
  657. package/dist/side-panel/layer-panel/how-to-button.d.ts +6 -0
  658. package/dist/side-panel/layer-panel/how-to-button.js +27 -0
  659. package/dist/side-panel/layer-panel/layer-color-selector.d.ts +42 -0
  660. package/dist/side-panel/layer-panel/layer-color-selector.js +106 -0
  661. package/dist/side-panel/layer-panel/layer-column-config.d.ts +24 -0
  662. package/dist/side-panel/layer-panel/layer-column-config.js +86 -0
  663. package/dist/side-panel/layer-panel/layer-column-mode-config.d.ts +47 -0
  664. package/dist/side-panel/layer-panel/layer-column-mode-config.js +193 -0
  665. package/dist/side-panel/layer-panel/layer-config-group.d.ts +44 -0
  666. package/dist/side-panel/layer-panel/layer-config-group.js +141 -0
  667. package/dist/side-panel/layer-panel/layer-configurator.d.ts +67 -0
  668. package/dist/side-panel/layer-panel/layer-configurator.js +644 -0
  669. package/dist/side-panel/layer-panel/layer-error-message.d.ts +6 -0
  670. package/dist/side-panel/layer-panel/layer-error-message.js +29 -0
  671. package/dist/side-panel/layer-panel/layer-list.d.ts +21 -0
  672. package/dist/side-panel/layer-panel/layer-list.js +170 -0
  673. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +73 -0
  674. package/dist/side-panel/layer-panel/layer-panel-header.js +274 -0
  675. package/dist/side-panel/layer-panel/layer-panel.d.ts +39 -0
  676. package/dist/side-panel/layer-panel/layer-panel.js +162 -0
  677. package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +22 -0
  678. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +78 -0
  679. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +22 -0
  680. package/dist/side-panel/layer-panel/layer-type-list-item.js +67 -0
  681. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +22 -0
  682. package/dist/side-panel/layer-panel/layer-type-selector.js +58 -0
  683. package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +11 -0
  684. package/dist/side-panel/layer-panel/radius-by-zoom-input.js +220 -0
  685. package/dist/side-panel/layer-panel/single-color-palette.d.ts +9 -0
  686. package/dist/side-panel/layer-panel/single-color-palette.js +86 -0
  687. package/dist/side-panel/layer-panel/text-label-panel.d.ts +17 -0
  688. package/dist/side-panel/layer-panel/text-label-panel.js +165 -0
  689. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +22 -0
  690. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +86 -0
  691. package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +24 -0
  692. package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +60 -0
  693. package/dist/side-panel/layer-panel/vis-config-slider.d.ts +20 -0
  694. package/dist/side-panel/layer-panel/vis-config-slider.js +159 -0
  695. package/dist/side-panel/layer-panel/vis-config-switch.d.ts +16 -0
  696. package/dist/side-panel/layer-panel/vis-config-switch.js +55 -0
  697. package/dist/side-panel/map-manager.d.ts +27 -0
  698. package/dist/side-panel/map-manager.js +127 -0
  699. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +14 -0
  700. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +77 -0
  701. package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +29 -0
  702. package/dist/side-panel/map-style-panel/map-layer-group-item.js +95 -0
  703. package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +23 -0
  704. package/dist/side-panel/map-style-panel/map-layer-selector.js +74 -0
  705. package/dist/side-panel/map-style-panel/map-style-selector.d.ts +23 -0
  706. package/dist/side-panel/map-style-panel/map-style-selector.js +96 -0
  707. package/dist/side-panel/panel-header-action.d.ts +22 -0
  708. package/dist/side-panel/panel-header-action.js +73 -0
  709. package/dist/side-panel/panel-header.d.ts +91 -0
  710. package/dist/side-panel/panel-header.js +303 -0
  711. package/dist/side-panel/panel-tab.d.ts +20 -0
  712. package/dist/side-panel/panel-tab.js +55 -0
  713. package/dist/side-panel/panel-title.d.ts +7 -0
  714. package/dist/side-panel/panel-title.js +40 -0
  715. package/dist/side-panel/panel-toggle.d.ts +13 -0
  716. package/dist/side-panel/panel-toggle.js +48 -0
  717. package/dist/side-panel/panel-view-list-toggle.d.ts +31 -0
  718. package/dist/side-panel/panel-view-list-toggle.js +98 -0
  719. package/dist/side-panel/side-bar.d.ts +78 -0
  720. package/dist/side-panel/side-bar.js +127 -0
  721. package/dist/side-panel.d.ts +21 -0
  722. package/dist/side-panel.js +214 -0
  723. package/dist/types.d.ts +47 -0
  724. package/dist/types.js +6 -0
  725. package/package.json +16 -16
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { KeplerTable } from '@kepler.gl/table';
3
+ import { Field } from '@kepler.gl/types';
4
+ import { ColorBreak, ColorBreakOrdinal } from '@kepler.gl/utils';
5
+ import HistogramPlotFactory from './histogram-plot';
6
+ export declare const HISTOGRAM_WIDTH = 210;
7
+ export declare const HISTOGRAM_HEIGHT = 80;
8
+ export declare const ColorChartHeader: ({ minVal, meanVal, maxVal }: {
9
+ minVal: any;
10
+ meanVal: any;
11
+ maxVal: any;
12
+ }) => React.JSX.Element;
13
+ export declare type ColorChartTickProps = {
14
+ colors: string[];
15
+ positions: number[];
16
+ onTickMoving: (positions: number[], dragTick: number) => void;
17
+ onTickChanged: () => void;
18
+ histogramWidth: number;
19
+ };
20
+ export declare const ColorChartTick: React.FC<ColorChartTickProps>;
21
+ export declare type ColumnStatsChartWLoadingProps = {
22
+ colorField: Field;
23
+ dataset: KeplerTable;
24
+ colorBreaks: ColorBreak[] | ColorBreakOrdinal[] | null;
25
+ onChangedUpdater: (ticks: ColorBreak[]) => void;
26
+ };
27
+ export declare type ColumnStatsChartProps = {
28
+ field: Field;
29
+ dataset: KeplerTable;
30
+ colorBreaks: ColorBreak[];
31
+ onChangedUpdater: (ticks: ColorBreak[]) => void;
32
+ };
33
+ declare function ColumnStatsChartFactory(HistogramPlot: ReturnType<typeof HistogramPlotFactory>): React.FC<ColumnStatsChartWLoadingProps>;
34
+ declare namespace ColumnStatsChartFactory {
35
+ var deps: (typeof HistogramPlotFactory)[];
36
+ }
37
+ export default ColumnStatsChartFactory;
@@ -0,0 +1,359 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.HISTOGRAM_WIDTH = exports.HISTOGRAM_HEIGHT = exports.ColorChartTick = exports.ColorChartHeader = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+ var _d3Format = require("d3-format");
14
+ var _d3Scale = require("d3-scale");
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
17
+ var _utils = require("@kepler.gl/utils");
18
+ var _colorPalette = _interopRequireDefault(require("../side-panel/layer-panel/color-palette"));
19
+ var _histogramPlot = _interopRequireWildcard(require("./histogram-plot"));
20
+ var _loadingSpinner = _interopRequireDefault(require("./loading-spinner"));
21
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8; // SPDX-License-Identifier: MIT
22
+ // Copyright contributors to the kepler.gl project
23
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
24
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
25
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
+ var HISTOGRAM_WIDTH = exports.HISTOGRAM_WIDTH = 210;
28
+ var HISTOGRAM_HEIGHT = exports.HISTOGRAM_HEIGHT = 80;
29
+ var HISTOGRAM_MARGIN = {
30
+ top: 10,
31
+ bottom: 8,
32
+ left: 10,
33
+ right: 20
34
+ };
35
+ var COLOR_CHART_TICK_WRAPPER_HEIGHT = 10;
36
+ var COLOR_CHART_TICK_HEIGHT = 8;
37
+ var COLOR_CHART_TICK_WIDTH = 4;
38
+ var COLOR_CHART_TICK_BORDER_COLOR = '#999999';
39
+ var HISTOGRAM_BINS = 30;
40
+ var StyledContainer = _styledComponents["default"].div.attrs({
41
+ className: 'color-chart-loading'
42
+ })(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n height: ", "px;\n"])), HISTOGRAM_HEIGHT);
43
+
44
+ // height 142 = 18 + 110 + 10
45
+ var ColorChartContainer = _styledComponents["default"].div.attrs({
46
+ className: 'color-chart-container'
47
+ })(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin-top: 8px;\n"])));
48
+ var ColorChartHeaderWrapper = _styledComponents["default"].div.attrs({
49
+ className: 'color-chart-header'
50
+ })(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-around;\n color: ", ";\n margin-left: ", "px;\n margin-right: ", "px;\n font-size: 9px;\n"])), function (props) {
51
+ return props.theme.textColor;
52
+ }, HISTOGRAM_MARGIN.left, HISTOGRAM_MARGIN.right);
53
+ var ColorChartHeaderItem = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 33%;\n overflow: hidden;\n white-space: nowrap;\n"])));
54
+ var ColorChartWrapper = _styledComponents["default"].div.attrs({
55
+ className: 'color-chart-wrapper'
56
+ })(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n height: ", "px;\n"])), HISTOGRAM_HEIGHT + 30);
57
+ var ColorPaletteWrapper = _styledComponents["default"].div.attrs({
58
+ className: 'color-chart-palette'
59
+ })(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n margin-top: ", "px;\n margin-left: ", "px;\n margin-right: ", "px;\n"])), HISTOGRAM_MARGIN.top, HISTOGRAM_MARGIN.left, HISTOGRAM_MARGIN.right);
60
+ var HistogramWrapper = _styledComponents["default"].div.attrs({
61
+ className: 'color-chart-histogram'
62
+ })(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n"])));
63
+ var ColorChartTickContainer = _styledComponents["default"].div.attrs({
64
+ className: 'color-chart-tick-container'
65
+ })(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", "px;\n position: relative;\n margin-left: ", "px;\n margin-right: ", "px;\n"])), COLOR_CHART_TICK_WRAPPER_HEIGHT, HISTOGRAM_MARGIN.left, HISTOGRAM_MARGIN.right);
66
+ var ColorChartHeader = exports.ColorChartHeader = function ColorChartHeader(_ref) {
67
+ var minVal = _ref.minVal,
68
+ meanVal = _ref.meanVal,
69
+ maxVal = _ref.maxVal;
70
+ return /*#__PURE__*/_react["default"].createElement(ColorChartHeaderWrapper, null, /*#__PURE__*/_react["default"].createElement(ColorChartHeaderItem, {
71
+ title: minVal
72
+ }, "MIN: ", minVal), /*#__PURE__*/_react["default"].createElement(ColorChartHeaderItem, {
73
+ title: meanVal
74
+ }, "MEAN: ", (0, _d3Format.format)('.4~r')(meanVal)), /*#__PURE__*/_react["default"].createElement(ColorChartHeaderItem, {
75
+ title: maxVal,
76
+ style: {
77
+ textAlign: 'right'
78
+ }
79
+ }, "MAX: ", maxVal));
80
+ };
81
+ var ColorChartTick = exports.ColorChartTick = function ColorChartTick(_ref2) {
82
+ var colors = _ref2.colors,
83
+ positions = _ref2.positions,
84
+ histogramWidth = _ref2.histogramWidth,
85
+ onTickMoving = _ref2.onTickMoving,
86
+ onTickChanged = _ref2.onTickChanged;
87
+ var _useState = (0, _react.useState)(positions),
88
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
89
+ statePositions = _useState2[0],
90
+ setPositions = _useState2[1];
91
+ var _useState3 = (0, _react.useState)(-1),
92
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
93
+ dragTick = _useState4[0],
94
+ setDragTick = _useState4[1];
95
+ var containerRef = (0, _react.useRef)(null);
96
+ (0, _react.useEffect)(function () {
97
+ setPositions(positions);
98
+ setDragTick(dragTick);
99
+ }, [positions, dragTick]);
100
+ var onMouseMove = (0, _react.useCallback)(function (e) {
101
+ if (dragTick >= 0) {
102
+ // @ts-ignore
103
+ var offsetX = containerRef.current.getBoundingClientRect().x;
104
+ statePositions[dragTick] = e.clientX - (offsetX !== null && offsetX !== void 0 ? offsetX : 0);
105
+ var leftBound = dragTick === 0 ? 0 : statePositions[dragTick - 1] + 1;
106
+ var rightBound = dragTick === positions.length - 1 ? histogramWidth : statePositions[dragTick + 1] - 1;
107
+
108
+ // restrict user drag-n-move between left and right neighboring ticks
109
+ if (statePositions[dragTick] < leftBound) {
110
+ statePositions[dragTick] = leftBound;
111
+ }
112
+ if (statePositions[dragTick] > rightBound) {
113
+ statePositions[dragTick] = rightBound;
114
+ }
115
+ setPositions((0, _toConsumableArray2["default"])(statePositions));
116
+ onTickMoving(statePositions, dragTick);
117
+ }
118
+ }, [dragTick, onTickMoving, positions.length, statePositions, histogramWidth]);
119
+ var onMouseUp = (0, _react.useCallback)(function (e) {
120
+ if (dragTick >= 0) {
121
+ onTickChanged();
122
+ setDragTick(-1);
123
+ e.stopPropagation();
124
+ e.preventDefault();
125
+ }
126
+ }, [dragTick, onTickChanged]);
127
+ var _onMouseDown = (0, _react.useCallback)(function (e, tickIndex) {
128
+ if ((0, _utils.isNumber)(tickIndex)) {
129
+ setDragTick(tickIndex);
130
+ e.stopPropagation();
131
+ e.preventDefault();
132
+ }
133
+ }, []);
134
+ return /*#__PURE__*/_react["default"].createElement(ColorChartTickContainer, {
135
+ ref: containerRef,
136
+ onMouseMove: onMouseMove,
137
+ onMouseUp: onMouseUp,
138
+ onMouseLeave: onMouseUp
139
+ }, colors.map(function (color, index) {
140
+ return /*#__PURE__*/_react["default"].createElement("div", {
141
+ draggable: true,
142
+ key: "color-chart-tick-".concat(color, "-").concat(index),
143
+ onMouseDown: function onMouseDown(e) {
144
+ return _onMouseDown(e, index);
145
+ },
146
+ style: {
147
+ backgroundColor: color,
148
+ left: "".concat(statePositions[index] - COLOR_CHART_TICK_WIDTH / 2 - 1, "px"),
149
+ borderWidth: "1px",
150
+ borderStyle: 'solid',
151
+ borderColor: COLOR_CHART_TICK_BORDER_COLOR,
152
+ position: 'absolute',
153
+ width: "".concat(COLOR_CHART_TICK_WIDTH, "px"),
154
+ height: "".concat(COLOR_CHART_TICK_HEIGHT, "px"),
155
+ cursor: 'pointer'
156
+ }
157
+ });
158
+ }));
159
+ };
160
+
161
+ // only for numetic field
162
+ ColumnStatsChartFactory.deps = [_histogramPlot["default"]];
163
+ function ColumnStatsChartFactory(HistogramPlot) {
164
+ var ColumnStatsChart = function ColumnStatsChart(_ref3) {
165
+ var _field$filterProps;
166
+ var field = _ref3.field,
167
+ dataset = _ref3.dataset,
168
+ colorBreaks = _ref3.colorBreaks,
169
+ onChangedUpdater = _ref3.onChangedUpdater;
170
+ var _useState5 = (0, _react.useState)(colorBreaks),
171
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
172
+ ticks = _useState6[0],
173
+ setTicks = _useState6[1];
174
+ var _useDimensions = (0, _utils.useDimensions)(),
175
+ _useDimensions2 = (0, _slicedToArray2["default"])(_useDimensions, 2),
176
+ ref = _useDimensions2[0],
177
+ size = _useDimensions2[1];
178
+ var histogramWidth = size ? size.width - HISTOGRAM_MARGIN.left - HISTOGRAM_MARGIN.right : HISTOGRAM_WIDTH;
179
+
180
+ // distinguish between props.colorBreaks and states.ticks
181
+ var isTickChangingRef = _react["default"].useRef(false);
182
+ (0, _react.useEffect)(function () {
183
+ setTicks(ticks);
184
+ // reset isTickChanging once histogram domain is recomputed
185
+ isTickChangingRef.current = false;
186
+ }, [ticks]);
187
+ var valueAccessor = (0, _react.useMemo)(function () {
188
+ return function (idx) {
189
+ return dataset.getValue(field.name, idx);
190
+ };
191
+ }, [dataset, field.name]);
192
+ var columnStats = (_field$filterProps = field.filterProps) === null || _field$filterProps === void 0 ? void 0 : _field$filterProps.columnStats;
193
+
194
+ // get bins with allIndexes
195
+ var allBins = (0, _react.useMemo)(function () {
196
+ if (columnStats !== null && columnStats !== void 0 && columnStats.bins) {
197
+ return columnStats === null || columnStats === void 0 ? void 0 : columnStats.bins;
198
+ }
199
+ return (0, _utils.histogramFromValues)(dataset.allIndexes, HISTOGRAM_BINS, valueAccessor);
200
+ }, [columnStats, dataset.allIndexes, valueAccessor]);
201
+ var isFiltered = dataset.filteredIndexForDomain.length !== dataset.allIndexes.length;
202
+
203
+ // get filteredBins
204
+ var filteredBins = (0, _react.useMemo)(function () {
205
+ if (!isFiltered) {
206
+ return allBins;
207
+ }
208
+ // get threholds
209
+ var filterEmptyBins = false;
210
+ var threholds = allBins.map(function (b) {
211
+ return b.x0;
212
+ });
213
+ return (0, _utils.histogramFromThreshold)(threholds, dataset.filteredIndexForDomain, valueAccessor, filterEmptyBins);
214
+ }, [dataset, valueAccessor, allBins, isFiltered]);
215
+
216
+ // histograms used by histogram-plot.js
217
+ var histogramsByGroup = (0, _react.useMemo)(function () {
218
+ return {
219
+ bins: allBins,
220
+ filteredBins: filteredBins
221
+ };
222
+ }, [allBins, filteredBins]);
223
+
224
+ // get domain (min, max) of histogram
225
+ var histogramDomain = (0, _react.useMemo)(function () {
226
+ if (columnStats && columnStats.quantiles && columnStats.mean) {
227
+ // no need to recalcuate min/max/mean if its already in columnStats
228
+ return [columnStats.quantiles[0].value, columnStats.quantiles[columnStats.quantiles.length - 1].value, columnStats.mean];
229
+ }
230
+ var domainMin = Number.POSITIVE_INFINITY;
231
+ var domainMax = Number.NEGATIVE_INFINITY;
232
+ var nValid = 0;
233
+ var domainSum = 0;
234
+ dataset.allIndexes.forEach(function (x, i) {
235
+ var val = valueAccessor(x);
236
+ if ((0, _utils.isNumber)(val)) {
237
+ if (val < domainMin) domainMin = val;
238
+ if (val > domainMax) domainMax = val;
239
+ domainSum += val;
240
+ nValid += 1;
241
+ }
242
+ });
243
+ var histogramMean = nValid > 0 ? domainSum / nValid : 0;
244
+ return [domainMin, domainMax, histogramMean];
245
+ }, [dataset, valueAccessor, columnStats]);
246
+
247
+ // get colors from colorBreaks
248
+ var domainColors = (0, _react.useMemo)(function () {
249
+ return colorBreaks ? colorBreaks.map(function (c) {
250
+ return c.data;
251
+ }) : [];
252
+ }, [colorBreaks]);
253
+ var tickPositions = (0, _react.useMemo)(function () {
254
+ if (!isTickChangingRef.current) {
255
+ setTicks(colorBreaks);
256
+ }
257
+ var _histogramDomain = (0, _slicedToArray2["default"])(histogramDomain, 2),
258
+ valueMin = _histogramDomain[0],
259
+ valueMax = _histogramDomain[1];
260
+ var widthScale = (0, _d3Scale.scaleLinear)().domain([valueMin, valueMax]).range([0, histogramWidth]);
261
+ return ticks.slice(0, -1).map(function (cb) {
262
+ var pos = widthScale(cb.range[1]);
263
+ if (pos < 0) return 0;else if (pos > histogramWidth) return histogramWidth;
264
+ return pos;
265
+ });
266
+ }, [histogramDomain, ticks, colorBreaks, histogramWidth]);
267
+ var domainColorWidths = (0, _react.useMemo)(function () {
268
+ var n = tickPositions.length;
269
+ var widths = [tickPositions[0]];
270
+ for (var i = 1; i < n; ++i) {
271
+ widths.push(tickPositions[i] - tickPositions[i - 1]);
272
+ }
273
+ widths.push(histogramWidth - tickPositions[n - 1]);
274
+ return widths;
275
+ }, [tickPositions, histogramWidth]);
276
+
277
+ // handle tick drag-n-move
278
+ var onTickMovingHandler = (0, _react.useCallback)(function (newTickPositions, tickIndex) {
279
+ var _histogramDomain2 = (0, _slicedToArray2["default"])(histogramDomain, 2),
280
+ valueMin = _histogramDomain2[0],
281
+ valueMax = _histogramDomain2[1];
282
+ var valueRange = valueMax - valueMin;
283
+ var breaks = [valueMin];
284
+ newTickPositions.forEach(function (element) {
285
+ breaks.push(valueMin + valueRange * element / histogramWidth);
286
+ });
287
+ breaks.push(valueMax);
288
+ for (var i = 0; i < ticks.length; ++i) {
289
+ var leftValue = i === tickIndex + 1 ? breaks[i] : ticks[i].range[0];
290
+ var rightValue = i + 1 === tickIndex + 1 ? breaks[i + 1] : ticks[i].range[1];
291
+ ticks[i] = _objectSpread(_objectSpread({}, ticks[i]), {}, {
292
+ range: [leftValue, rightValue],
293
+ inputs: [leftValue, rightValue],
294
+ label: "".concat((0, _d3Format.format)('.2f')(breaks[i]), " to ").concat((0, _d3Format.format)('.2f')(breaks[i + 1]))
295
+ });
296
+ }
297
+ isTickChangingRef.current = true;
298
+ setTicks((0, _toConsumableArray2["default"])(ticks));
299
+ }, [histogramDomain, ticks, histogramWidth]);
300
+
301
+ // update parent and sibling components when tick dragging ended
302
+ var onTickChangedHandler = (0, _react.useCallback)(function () {
303
+ onChangedUpdater(ticks);
304
+ }, [onChangedUpdater, ticks]);
305
+ return /*#__PURE__*/_react["default"].createElement(ColorChartContainer, {
306
+ ref: ref
307
+ }, /*#__PURE__*/_react["default"].createElement(ColorChartHeader, {
308
+ minVal: histogramDomain[0],
309
+ maxVal: histogramDomain[1],
310
+ meanVal: histogramDomain[2]
311
+ }), /*#__PURE__*/_react["default"].createElement(ColorChartWrapper, null, /*#__PURE__*/_react["default"].createElement(ColorPaletteWrapper, null, /*#__PURE__*/_react["default"].createElement(_colorPalette["default"], {
312
+ colors: domainColors,
313
+ colorWidths: domainColorWidths,
314
+ height: HISTOGRAM_HEIGHT + 16
315
+ })), /*#__PURE__*/_react["default"].createElement(HistogramWrapper, null, /*#__PURE__*/_react["default"].createElement(HistogramPlot, {
316
+ histogramsByGroup: histogramsByGroup,
317
+ colorsByGroup: null,
318
+ isMasked: isFiltered ? _histogramPlot.HISTOGRAM_MASK_MODE.MaskWithOverlay : _histogramPlot.HISTOGRAM_MASK_MODE.Mask,
319
+ value: histogramDomain,
320
+ width: histogramWidth,
321
+ height: HISTOGRAM_HEIGHT,
322
+ margin: HISTOGRAM_MARGIN,
323
+ breakLines: tickPositions
324
+ }))), /*#__PURE__*/_react["default"].createElement(ColorChartTick, {
325
+ colors: domainColors.slice(0, -1),
326
+ positions: tickPositions,
327
+ histogramWidth: histogramWidth,
328
+ onTickMoving: onTickMovingHandler,
329
+ onTickChanged: onTickChangedHandler
330
+ }));
331
+ };
332
+ var ColumnStatsChartWLoading = function ColumnStatsChartWLoading(_ref4) {
333
+ var colorField = _ref4.colorField,
334
+ dataset = _ref4.dataset,
335
+ colorBreaks = _ref4.colorBreaks,
336
+ onChangedUpdater = _ref4.onChangedUpdater;
337
+ var fieldName = colorField.name;
338
+ var field = (0, _react.useMemo)(function () {
339
+ return dataset.getColumnField(fieldName);
340
+ }, [dataset, fieldName]);
341
+ var isLoading = field === null || field === void 0 ? void 0 : field.isLoadingStats;
342
+ if (!(0, _utils.isNumericColorBreaks)(colorBreaks) || !field) {
343
+ // TODO: implement display for ordinal breaks
344
+ return null;
345
+ }
346
+ if (isLoading) {
347
+ return /*#__PURE__*/_react["default"].createElement(StyledContainer, null, /*#__PURE__*/_react["default"].createElement(_loadingSpinner["default"], null));
348
+ }
349
+ return /*#__PURE__*/_react["default"].createElement(ColumnStatsChart, {
350
+ colorBreaks: colorBreaks,
351
+ field: field,
352
+ dataset: dataset,
353
+ onChangedUpdater: onChangedUpdater
354
+ });
355
+ };
356
+ return ColumnStatsChartWLoading;
357
+ }
358
+ var _default = exports["default"] = ColumnStatsChartFactory;
359
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZDNGb3JtYXQiLCJyZXF1aXJlIiwiX2QzU2NhbGUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91dGlscyIsIl9jb2xvclBhbGV0dGUiLCJfaGlzdG9ncmFtUGxvdCIsIl9sb2FkaW5nU3Bpbm5lciIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJISVNUT0dSQU1fV0lEVEgiLCJleHBvcnRzIiwiSElTVE9HUkFNX0hFSUdIVCIsIkhJU1RPR1JBTV9NQVJHSU4iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJDT0xPUl9DSEFSVF9USUNLX1dSQVBQRVJfSEVJR0hUIiwiQ09MT1JfQ0hBUlRfVElDS19IRUlHSFQiLCJDT0xPUl9DSEFSVF9USUNLX1dJRFRIIiwiQ09MT1JfQ0hBUlRfVElDS19CT1JERVJfQ09MT1IiLCJISVNUT0dSQU1fQklOUyIsIlN0eWxlZENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsImF0dHJzIiwiY2xhc3NOYW1lIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJDb2xvckNoYXJ0Q29udGFpbmVyIiwiQ29sb3JDaGFydEhlYWRlcldyYXBwZXIiLCJwcm9wcyIsInRoZW1lIiwidGV4dENvbG9yIiwiQ29sb3JDaGFydEhlYWRlckl0ZW0iLCJDb2xvckNoYXJ0V3JhcHBlciIsIkNvbG9yUGFsZXR0ZVdyYXBwZXIiLCJIaXN0b2dyYW1XcmFwcGVyIiwiQ29sb3JDaGFydFRpY2tDb250YWluZXIiLCJDb2xvckNoYXJ0SGVhZGVyIiwiX3JlZiIsIm1pblZhbCIsIm1lYW5WYWwiLCJtYXhWYWwiLCJjcmVhdGVFbGVtZW50IiwidGl0bGUiLCJkM0Zvcm1hdCIsInN0eWxlIiwidGV4dEFsaWduIiwiQ29sb3JDaGFydFRpY2siLCJfcmVmMiIsImNvbG9ycyIsInBvc2l0aW9ucyIsImhpc3RvZ3JhbVdpZHRoIiwib25UaWNrTW92aW5nIiwib25UaWNrQ2hhbmdlZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInN0YXRlUG9zaXRpb25zIiwic2V0UG9zaXRpb25zIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJkcmFnVGljayIsInNldERyYWdUaWNrIiwiY29udGFpbmVyUmVmIiwidXNlUmVmIiwidXNlRWZmZWN0Iiwib25Nb3VzZU1vdmUiLCJ1c2VDYWxsYmFjayIsIm9mZnNldFgiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwieCIsImNsaWVudFgiLCJsZWZ0Qm91bmQiLCJyaWdodEJvdW5kIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsIm9uTW91c2VVcCIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0Iiwib25Nb3VzZURvd24iLCJ0aWNrSW5kZXgiLCJpc051bWJlciIsInJlZiIsIm9uTW91c2VMZWF2ZSIsIm1hcCIsImNvbG9yIiwiaW5kZXgiLCJkcmFnZ2FibGUiLCJrZXkiLCJjb25jYXQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXJXaWR0aCIsImJvcmRlclN0eWxlIiwiYm9yZGVyQ29sb3IiLCJwb3NpdGlvbiIsIndpZHRoIiwiaGVpZ2h0IiwiY3Vyc29yIiwiQ29sdW1uU3RhdHNDaGFydEZhY3RvcnkiLCJkZXBzIiwiSGlzdG9ncmFtUGxvdEZhY3RvcnkiLCJIaXN0b2dyYW1QbG90IiwiQ29sdW1uU3RhdHNDaGFydCIsIl9yZWYzIiwiX2ZpZWxkJGZpbHRlclByb3BzIiwiZmllbGQiLCJkYXRhc2V0IiwiY29sb3JCcmVha3MiLCJvbkNoYW5nZWRVcGRhdGVyIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJ0aWNrcyIsInNldFRpY2tzIiwiX3VzZURpbWVuc2lvbnMiLCJ1c2VEaW1lbnNpb25zIiwiX3VzZURpbWVuc2lvbnMyIiwic2l6ZSIsImlzVGlja0NoYW5naW5nUmVmIiwiUmVhY3QiLCJ2YWx1ZUFjY2Vzc29yIiwidXNlTWVtbyIsImlkeCIsImdldFZhbHVlIiwibmFtZSIsImNvbHVtblN0YXRzIiwiZmlsdGVyUHJvcHMiLCJhbGxCaW5zIiwiYmlucyIsImhpc3RvZ3JhbUZyb21WYWx1ZXMiLCJhbGxJbmRleGVzIiwiaXNGaWx0ZXJlZCIsImZpbHRlcmVkSW5kZXhGb3JEb21haW4iLCJmaWx0ZXJlZEJpbnMiLCJmaWx0ZXJFbXB0eUJpbnMiLCJ0aHJlaG9sZHMiLCJiIiwieDAiLCJoaXN0b2dyYW1Gcm9tVGhyZXNob2xkIiwiaGlzdG9ncmFtc0J5R3JvdXAiLCJoaXN0b2dyYW1Eb21haW4iLCJxdWFudGlsZXMiLCJtZWFuIiwidmFsdWUiLCJkb21haW5NaW4iLCJOdW1iZXIiLCJQT1NJVElWRV9JTkZJTklUWSIsImRvbWFpbk1heCIsIk5FR0FUSVZFX0lORklOSVRZIiwiblZhbGlkIiwiZG9tYWluU3VtIiwidmFsIiwiaGlzdG9ncmFtTWVhbiIsImRvbWFpbkNvbG9ycyIsImMiLCJkYXRhIiwidGlja1Bvc2l0aW9ucyIsIl9oaXN0b2dyYW1Eb21haW4iLCJ2YWx1ZU1pbiIsInZhbHVlTWF4Iiwid2lkdGhTY2FsZSIsInNjYWxlTGluZWFyIiwiZG9tYWluIiwicmFuZ2UiLCJzbGljZSIsImNiIiwicG9zIiwiZG9tYWluQ29sb3JXaWR0aHMiLCJ3aWR0aHMiLCJvblRpY2tNb3ZpbmdIYW5kbGVyIiwibmV3VGlja1Bvc2l0aW9ucyIsIl9oaXN0b2dyYW1Eb21haW4yIiwidmFsdWVSYW5nZSIsImJyZWFrcyIsImVsZW1lbnQiLCJsZWZ0VmFsdWUiLCJyaWdodFZhbHVlIiwiaW5wdXRzIiwibGFiZWwiLCJvblRpY2tDaGFuZ2VkSGFuZGxlciIsImNvbG9yV2lkdGhzIiwiY29sb3JzQnlHcm91cCIsImlzTWFza2VkIiwiSElTVE9HUkFNX01BU0tfTU9ERSIsIk1hc2tXaXRoT3ZlcmxheSIsIk1hc2siLCJtYXJnaW4iLCJicmVha0xpbmVzIiwiQ29sdW1uU3RhdHNDaGFydFdMb2FkaW5nIiwiX3JlZjQiLCJjb2xvckZpZWxkIiwiZmllbGROYW1lIiwiZ2V0Q29sdW1uRmllbGQiLCJpc0xvYWRpbmciLCJpc0xvYWRpbmdTdGF0cyIsImlzTnVtZXJpY0NvbG9yQnJlYWtzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL2NvbHVtbi1zdGF0cy1jaGFydC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtmb3JtYXQgYXMgZDNGb3JtYXR9IGZyb20gJ2QzLWZvcm1hdCc7XG5pbXBvcnQge3NjYWxlTGluZWFyfSBmcm9tICdkMy1zY2FsZSc7XG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtLZXBsZXJUYWJsZX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge0ZpZWxkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIENvbG9yQnJlYWssXG4gIENvbG9yQnJlYWtPcmRpbmFsLFxuICBoaXN0b2dyYW1Gcm9tVGhyZXNob2xkLFxuICBoaXN0b2dyYW1Gcm9tVmFsdWVzLFxuICBpc051bWJlcixcbiAgaXNOdW1lcmljQ29sb3JCcmVha3MsXG4gIHVzZURpbWVuc2lvbnNcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCBDb2xvclBhbGV0dGUgZnJvbSAnLi4vc2lkZS1wYW5lbC9sYXllci1wYW5lbC9jb2xvci1wYWxldHRlJztcbmltcG9ydCBIaXN0b2dyYW1QbG90RmFjdG9yeSwge0hJU1RPR1JBTV9NQVNLX01PREV9IGZyb20gJy4vaGlzdG9ncmFtLXBsb3QnO1xuaW1wb3J0IExvYWRpbmdTcGlubmVyIGZyb20gJy4vbG9hZGluZy1zcGlubmVyJztcblxuZXhwb3J0IGNvbnN0IEhJU1RPR1JBTV9XSURUSCA9IDIxMDtcbmV4cG9ydCBjb25zdCBISVNUT0dSQU1fSEVJR0hUID0gODA7XG5jb25zdCBISVNUT0dSQU1fTUFSR0lOID0ge3RvcDogMTAsIGJvdHRvbTogOCwgbGVmdDogMTAsIHJpZ2h0OiAyMH07XG5jb25zdCBDT0xPUl9DSEFSVF9USUNLX1dSQVBQRVJfSEVJR0hUID0gMTA7XG5jb25zdCBDT0xPUl9DSEFSVF9USUNLX0hFSUdIVCA9IDg7XG5jb25zdCBDT0xPUl9DSEFSVF9USUNLX1dJRFRIID0gNDtcbmNvbnN0IENPTE9SX0NIQVJUX1RJQ0tfQk9SREVSX0NPTE9SID0gJyM5OTk5OTknO1xuY29uc3QgSElTVE9HUkFNX0JJTlMgPSAzMDtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2NvbG9yLWNoYXJ0LWxvYWRpbmcnXG59KWBcbiAgaGVpZ2h0OiAke0hJU1RPR1JBTV9IRUlHSFR9cHg7XG5gO1xuXG4vLyBoZWlnaHQgMTQyID0gMTggKyAxMTAgKyAxMFxuY29uc3QgQ29sb3JDaGFydENvbnRhaW5lciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdjb2xvci1jaGFydC1jb250YWluZXInXG59KWBcbiAgbWFyZ2luLXRvcDogOHB4O1xuYDtcblxuY29uc3QgQ29sb3JDaGFydEhlYWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnY29sb3ItY2hhcnQtaGVhZGVyJ1xufSlgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICBtYXJnaW4tbGVmdDogJHtISVNUT0dSQU1fTUFSR0lOLmxlZnR9cHg7XG4gIG1hcmdpbi1yaWdodDogJHtISVNUT0dSQU1fTUFSR0lOLnJpZ2h0fXB4O1xuICBmb250LXNpemU6IDlweDtcbmA7XG5cbmNvbnN0IENvbG9yQ2hhcnRIZWFkZXJJdGVtID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDMzJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbmA7XG5cbmNvbnN0IENvbG9yQ2hhcnRXcmFwcGVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2NvbG9yLWNoYXJ0LXdyYXBwZXInXG59KWBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICR7SElTVE9HUkFNX0hFSUdIVCArIDMwfXB4O1xuYDtcblxuY29uc3QgQ29sb3JQYWxldHRlV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdjb2xvci1jaGFydC1wYWxldHRlJ1xufSlgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLXRvcDogJHtISVNUT0dSQU1fTUFSR0lOLnRvcH1weDtcbiAgbWFyZ2luLWxlZnQ6ICR7SElTVE9HUkFNX01BUkdJTi5sZWZ0fXB4O1xuICBtYXJnaW4tcmlnaHQ6ICR7SElTVE9HUkFNX01BUkdJTi5yaWdodH1weDtcbmA7XG5cbmNvbnN0IEhpc3RvZ3JhbVdyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnY29sb3ItY2hhcnQtaGlzdG9ncmFtJ1xufSlgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbmA7XG5cbmNvbnN0IENvbG9yQ2hhcnRUaWNrQ29udGFpbmVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2NvbG9yLWNoYXJ0LXRpY2stY29udGFpbmVyJ1xufSlgXG4gIGhlaWdodDogJHtDT0xPUl9DSEFSVF9USUNLX1dSQVBQRVJfSEVJR0hUfXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiAke0hJU1RPR1JBTV9NQVJHSU4ubGVmdH1weDtcbiAgbWFyZ2luLXJpZ2h0OiAke0hJU1RPR1JBTV9NQVJHSU4ucmlnaHR9cHg7XG5gO1xuXG5leHBvcnQgY29uc3QgQ29sb3JDaGFydEhlYWRlciA9ICh7bWluVmFsLCBtZWFuVmFsLCBtYXhWYWx9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPENvbG9yQ2hhcnRIZWFkZXJXcmFwcGVyPlxuICAgICAgPENvbG9yQ2hhcnRIZWFkZXJJdGVtIHRpdGxlPXttaW5WYWx9Pk1JTjoge21pblZhbH08L0NvbG9yQ2hhcnRIZWFkZXJJdGVtPlxuICAgICAgPENvbG9yQ2hhcnRIZWFkZXJJdGVtIHRpdGxlPXttZWFuVmFsfT5NRUFOOiB7ZDNGb3JtYXQoJy40fnInKShtZWFuVmFsKX08L0NvbG9yQ2hhcnRIZWFkZXJJdGVtPlxuICAgICAgPENvbG9yQ2hhcnRIZWFkZXJJdGVtIHRpdGxlPXttYXhWYWx9IHN0eWxlPXt7dGV4dEFsaWduOiAncmlnaHQnfX0+XG4gICAgICAgIE1BWDoge21heFZhbH1cbiAgICAgIDwvQ29sb3JDaGFydEhlYWRlckl0ZW0+XG4gICAgPC9Db2xvckNoYXJ0SGVhZGVyV3JhcHBlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIENvbG9yQ2hhcnRUaWNrUHJvcHMgPSB7XG4gIGNvbG9yczogc3RyaW5nW107XG4gIHBvc2l0aW9uczogbnVtYmVyW107XG4gIG9uVGlja01vdmluZzogKHBvc2l0aW9uczogbnVtYmVyW10sIGRyYWdUaWNrOiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uVGlja0NoYW5nZWQ6ICgpID0+IHZvaWQ7XG4gIGhpc3RvZ3JhbVdpZHRoOiBudW1iZXI7XG59O1xuXG5leHBvcnQgY29uc3QgQ29sb3JDaGFydFRpY2s6IFJlYWN0LkZDPENvbG9yQ2hhcnRUaWNrUHJvcHM+ID0gKHtcbiAgY29sb3JzLFxuICBwb3NpdGlvbnMsXG4gIGhpc3RvZ3JhbVdpZHRoLFxuICBvblRpY2tNb3ZpbmcsXG4gIG9uVGlja0NoYW5nZWRcbn0pID0+IHtcbiAgY29uc3QgW3N0YXRlUG9zaXRpb25zLCBzZXRQb3NpdGlvbnNdID0gdXNlU3RhdGUocG9zaXRpb25zKTtcbiAgY29uc3QgW2RyYWdUaWNrLCBzZXREcmFnVGlja10gPSB1c2VTdGF0ZSgtMSk7XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRQb3NpdGlvbnMocG9zaXRpb25zKTtcbiAgICBzZXREcmFnVGljayhkcmFnVGljayk7XG4gIH0sIFtwb3NpdGlvbnMsIGRyYWdUaWNrXSk7XG5cbiAgY29uc3Qgb25Nb3VzZU1vdmUgPSB1c2VDYWxsYmFjayhcbiAgICBlID0+IHtcbiAgICAgIGlmIChkcmFnVGljayA+PSAwKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IGNvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLng7XG4gICAgICAgIHN0YXRlUG9zaXRpb25zW2RyYWdUaWNrXSA9IGUuY2xpZW50WCAtIChvZmZzZXRYID8/IDApO1xuICAgICAgICBjb25zdCBsZWZ0Qm91bmQgPSBkcmFnVGljayA9PT0gMCA/IDAgOiBzdGF0ZVBvc2l0aW9uc1tkcmFnVGljayAtIDFdICsgMTtcbiAgICAgICAgY29uc3QgcmlnaHRCb3VuZCA9XG4gICAgICAgICAgZHJhZ1RpY2sgPT09IHBvc2l0aW9ucy5sZW5ndGggLSAxID8gaGlzdG9ncmFtV2lkdGggOiBzdGF0ZVBvc2l0aW9uc1tkcmFnVGljayArIDFdIC0gMTtcblxuICAgICAgICAvLyByZXN0cmljdCB1c2VyIGRyYWctbi1tb3ZlIGJldHdlZW4gbGVmdCBhbmQgcmlnaHQgbmVpZ2hib3JpbmcgdGlja3NcbiAgICAgICAgaWYgKHN0YXRlUG9zaXRpb25zW2RyYWdUaWNrXSA8IGxlZnRCb3VuZCkge1xuICAgICAgICAgIHN0YXRlUG9zaXRpb25zW2RyYWdUaWNrXSA9IGxlZnRCb3VuZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGVQb3NpdGlvbnNbZHJhZ1RpY2tdID4gcmlnaHRCb3VuZCkge1xuICAgICAgICAgIHN0YXRlUG9zaXRpb25zW2RyYWdUaWNrXSA9IHJpZ2h0Qm91bmQ7XG4gICAgICAgIH1cbiAgICAgICAgc2V0UG9zaXRpb25zKFsuLi5zdGF0ZVBvc2l0aW9uc10pO1xuICAgICAgICBvblRpY2tNb3Zpbmcoc3RhdGVQb3NpdGlvbnMsIGRyYWdUaWNrKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtkcmFnVGljaywgb25UaWNrTW92aW5nLCBwb3NpdGlvbnMubGVuZ3RoLCBzdGF0ZVBvc2l0aW9ucywgaGlzdG9ncmFtV2lkdGhdXG4gICk7XG5cbiAgY29uc3Qgb25Nb3VzZVVwID0gdXNlQ2FsbGJhY2soXG4gICAgZSA9PiB7XG4gICAgICBpZiAoZHJhZ1RpY2sgPj0gMCkge1xuICAgICAgICBvblRpY2tDaGFuZ2VkKCk7XG4gICAgICAgIHNldERyYWdUaWNrKC0xKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2RyYWdUaWNrLCBvblRpY2tDaGFuZ2VkXVxuICApO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duID0gdXNlQ2FsbGJhY2soKGUsIHRpY2tJbmRleCkgPT4ge1xuICAgIGlmIChpc051bWJlcih0aWNrSW5kZXgpKSB7XG4gICAgICBzZXREcmFnVGljayh0aWNrSW5kZXgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxDb2xvckNoYXJ0VGlja0NvbnRhaW5lclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBvbk1vdXNlTW92ZT17b25Nb3VzZU1vdmV9XG4gICAgICBvbk1vdXNlVXA9e29uTW91c2VVcH1cbiAgICAgIG9uTW91c2VMZWF2ZT17b25Nb3VzZVVwfVxuICAgID5cbiAgICAgIHtjb2xvcnMubWFwKChjb2xvciwgaW5kZXgpID0+IChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRyYWdnYWJsZT17dHJ1ZX1cbiAgICAgICAgICBrZXk9e2Bjb2xvci1jaGFydC10aWNrLSR7Y29sb3J9LSR7aW5kZXh9YH1cbiAgICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiBvbk1vdXNlRG93bihlLCBpbmRleCl9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IsXG4gICAgICAgICAgICBsZWZ0OiBgJHtzdGF0ZVBvc2l0aW9uc1tpbmRleF0gLSBDT0xPUl9DSEFSVF9USUNLX1dJRFRIIC8gMiAtIDF9cHhgLFxuICAgICAgICAgICAgYm9yZGVyV2lkdGg6IGAxcHhgLFxuICAgICAgICAgICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgICAgICAgICBib3JkZXJDb2xvcjogQ09MT1JfQ0hBUlRfVElDS19CT1JERVJfQ09MT1IsXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHdpZHRoOiBgJHtDT0xPUl9DSEFSVF9USUNLX1dJRFRIfXB4YCxcbiAgICAgICAgICAgIGhlaWdodDogYCR7Q09MT1JfQ0hBUlRfVElDS19IRUlHSFR9cHhgLFxuICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcidcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKSl9XG4gICAgPC9Db2xvckNoYXJ0VGlja0NvbnRhaW5lcj5cbiAgKTtcbn07XG5cbi8vIG9ubHkgZm9yIG51bWV0aWMgZmllbGRcbkNvbHVtblN0YXRzQ2hhcnRGYWN0b3J5LmRlcHMgPSBbSGlzdG9ncmFtUGxvdEZhY3RvcnldO1xuXG5leHBvcnQgdHlwZSBDb2x1bW5TdGF0c0NoYXJ0V0xvYWRpbmdQcm9wcyA9IHtcbiAgY29sb3JGaWVsZDogRmllbGQ7XG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlO1xuICBjb2xvckJyZWFrczogQ29sb3JCcmVha1tdIHwgQ29sb3JCcmVha09yZGluYWxbXSB8IG51bGw7XG4gIG9uQ2hhbmdlZFVwZGF0ZXI6ICh0aWNrczogQ29sb3JCcmVha1tdKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgQ29sdW1uU3RhdHNDaGFydFByb3BzID0ge1xuICBmaWVsZDogRmllbGQ7XG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlO1xuICBjb2xvckJyZWFrczogQ29sb3JCcmVha1tdO1xuICBvbkNoYW5nZWRVcGRhdGVyOiAodGlja3M6IENvbG9yQnJlYWtbXSkgPT4gdm9pZDtcbn07XG5mdW5jdGlvbiBDb2x1bW5TdGF0c0NoYXJ0RmFjdG9yeShcbiAgSGlzdG9ncmFtUGxvdDogUmV0dXJuVHlwZTx0eXBlb2YgSGlzdG9ncmFtUGxvdEZhY3Rvcnk+XG4pOiBSZWFjdC5GQzxDb2x1bW5TdGF0c0NoYXJ0V0xvYWRpbmdQcm9wcz4ge1xuICBjb25zdCBDb2x1bW5TdGF0c0NoYXJ0OiBSZWFjdC5GQzxDb2x1bW5TdGF0c0NoYXJ0UHJvcHM+ID0gKHtcbiAgICBmaWVsZCxcbiAgICBkYXRhc2V0LFxuICAgIGNvbG9yQnJlYWtzLFxuICAgIG9uQ2hhbmdlZFVwZGF0ZXJcbiAgfSkgPT4ge1xuICAgIGNvbnN0IFt0aWNrcywgc2V0VGlja3NdID0gdXNlU3RhdGUoY29sb3JCcmVha3MpO1xuICAgIGNvbnN0IFtyZWYsIHNpemVdID0gdXNlRGltZW5zaW9uczxIVE1MRGl2RWxlbWVudD4oKTtcbiAgICBjb25zdCBoaXN0b2dyYW1XaWR0aCA9IHNpemVcbiAgICAgID8gc2l6ZS53aWR0aCAtIEhJU1RPR1JBTV9NQVJHSU4ubGVmdCAtIEhJU1RPR1JBTV9NQVJHSU4ucmlnaHRcbiAgICAgIDogSElTVE9HUkFNX1dJRFRIO1xuXG4gICAgLy8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBwcm9wcy5jb2xvckJyZWFrcyBhbmQgc3RhdGVzLnRpY2tzXG4gICAgY29uc3QgaXNUaWNrQ2hhbmdpbmdSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIHNldFRpY2tzKHRpY2tzKTtcbiAgICAgIC8vIHJlc2V0IGlzVGlja0NoYW5naW5nIG9uY2UgaGlzdG9ncmFtIGRvbWFpbiBpcyByZWNvbXB1dGVkXG4gICAgICBpc1RpY2tDaGFuZ2luZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSwgW3RpY2tzXSk7XG5cbiAgICBjb25zdCB2YWx1ZUFjY2Vzc29yID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gaWR4ID0+IGRhdGFzZXQuZ2V0VmFsdWUoZmllbGQubmFtZSwgaWR4KTtcbiAgICB9LCBbZGF0YXNldCwgZmllbGQubmFtZV0pO1xuXG4gICAgY29uc3QgY29sdW1uU3RhdHMgPSBmaWVsZC5maWx0ZXJQcm9wcz8uY29sdW1uU3RhdHM7XG5cbiAgICAvLyBnZXQgYmlucyB3aXRoIGFsbEluZGV4ZXNcbiAgICBjb25zdCBhbGxCaW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoY29sdW1uU3RhdHM/LmJpbnMpIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtblN0YXRzPy5iaW5zO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhpc3RvZ3JhbUZyb21WYWx1ZXMoZGF0YXNldC5hbGxJbmRleGVzLCBISVNUT0dSQU1fQklOUywgdmFsdWVBY2Nlc3Nvcik7XG4gICAgfSwgW2NvbHVtblN0YXRzLCBkYXRhc2V0LmFsbEluZGV4ZXMsIHZhbHVlQWNjZXNzb3JdKTtcblxuICAgIGNvbnN0IGlzRmlsdGVyZWQgPSBkYXRhc2V0LmZpbHRlcmVkSW5kZXhGb3JEb21haW4ubGVuZ3RoICE9PSBkYXRhc2V0LmFsbEluZGV4ZXMubGVuZ3RoO1xuXG4gICAgLy8gZ2V0IGZpbHRlcmVkQmluc1xuICAgIGNvbnN0IGZpbHRlcmVkQmlucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFpc0ZpbHRlcmVkKSB7XG4gICAgICAgIHJldHVybiBhbGxCaW5zO1xuICAgICAgfVxuICAgICAgLy8gZ2V0IHRocmVob2xkc1xuICAgICAgY29uc3QgZmlsdGVyRW1wdHlCaW5zID0gZmFsc2U7XG4gICAgICBjb25zdCB0aHJlaG9sZHMgPSBhbGxCaW5zLm1hcChiID0+IGIueDApO1xuICAgICAgcmV0dXJuIGhpc3RvZ3JhbUZyb21UaHJlc2hvbGQoXG4gICAgICAgIHRocmVob2xkcyxcbiAgICAgICAgZGF0YXNldC5maWx0ZXJlZEluZGV4Rm9yRG9tYWluLFxuICAgICAgICB2YWx1ZUFjY2Vzc29yLFxuICAgICAgICBmaWx0ZXJFbXB0eUJpbnNcbiAgICAgICk7XG4gICAgfSwgW2RhdGFzZXQsIHZhbHVlQWNjZXNzb3IsIGFsbEJpbnMsIGlzRmlsdGVyZWRdKTtcblxuICAgIC8vIGhpc3RvZ3JhbXMgdXNlZCBieSBoaXN0b2dyYW0tcGxvdC5qc1xuICAgIGNvbnN0IGhpc3RvZ3JhbXNCeUdyb3VwID0gdXNlTWVtbyhcbiAgICAgICgpID0+ICh7XG4gICAgICAgIGJpbnM6IGFsbEJpbnMsXG4gICAgICAgIGZpbHRlcmVkQmluc1xuICAgICAgfSksXG4gICAgICBbYWxsQmlucywgZmlsdGVyZWRCaW5zXVxuICAgICk7XG5cbiAgICAvLyBnZXQgZG9tYWluIChtaW4sIG1heCkgb2YgaGlzdG9ncmFtXG4gICAgY29uc3QgaGlzdG9ncmFtRG9tYWluID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoY29sdW1uU3RhdHMgJiYgY29sdW1uU3RhdHMucXVhbnRpbGVzICYmIGNvbHVtblN0YXRzLm1lYW4pIHtcbiAgICAgICAgLy8gbm8gbmVlZCB0byByZWNhbGN1YXRlIG1pbi9tYXgvbWVhbiBpZiBpdHMgYWxyZWFkeSBpbiBjb2x1bW5TdGF0c1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIGNvbHVtblN0YXRzLnF1YW50aWxlc1swXS52YWx1ZSxcbiAgICAgICAgICBjb2x1bW5TdGF0cy5xdWFudGlsZXNbY29sdW1uU3RhdHMucXVhbnRpbGVzLmxlbmd0aCAtIDFdLnZhbHVlLFxuICAgICAgICAgIGNvbHVtblN0YXRzLm1lYW5cbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICAgIGxldCBkb21haW5NaW4gPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG4gICAgICBsZXQgZG9tYWluTWF4ID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO1xuICAgICAgbGV0IG5WYWxpZCA9IDA7XG4gICAgICBsZXQgZG9tYWluU3VtID0gMDtcbiAgICAgIGRhdGFzZXQuYWxsSW5kZXhlcy5mb3JFYWNoKCh4LCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbCA9IHZhbHVlQWNjZXNzb3IoeCk7XG4gICAgICAgIGlmIChpc051bWJlcih2YWwpKSB7XG4gICAgICAgICAgaWYgKHZhbCA8IGRvbWFpbk1pbikgZG9tYWluTWluID0gdmFsO1xuICAgICAgICAgIGlmICh2YWwgPiBkb21haW5NYXgpIGRvbWFpbk1heCA9IHZhbDtcbiAgICAgICAgICBkb21haW5TdW0gKz0gdmFsO1xuICAgICAgICAgIG5WYWxpZCArPSAxO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGhpc3RvZ3JhbU1lYW4gPSBuVmFsaWQgPiAwID8gZG9tYWluU3VtIC8gblZhbGlkIDogMDtcblxuICAgICAgcmV0dXJuIFtkb21haW5NaW4sIGRvbWFpbk1heCwgaGlzdG9ncmFtTWVhbl07XG4gICAgfSwgW2RhdGFzZXQsIHZhbHVlQWNjZXNzb3IsIGNvbHVtblN0YXRzXSk7XG5cbiAgICAvLyBnZXQgY29sb3JzIGZyb20gY29sb3JCcmVha3NcbiAgICBjb25zdCBkb21haW5Db2xvcnMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGNvbG9yQnJlYWtzID8gY29sb3JCcmVha3MubWFwKGMgPT4gYy5kYXRhKSA6IFtdKSxcbiAgICAgIFtjb2xvckJyZWFrc11cbiAgICApO1xuXG4gICAgY29uc3QgdGlja1Bvc2l0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFpc1RpY2tDaGFuZ2luZ1JlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldFRpY2tzKGNvbG9yQnJlYWtzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgW3ZhbHVlTWluLCB2YWx1ZU1heF0gPSBoaXN0b2dyYW1Eb21haW47XG4gICAgICBjb25zdCB3aWR0aFNjYWxlID0gc2NhbGVMaW5lYXIoKS5kb21haW4oW3ZhbHVlTWluLCB2YWx1ZU1heF0pLnJhbmdlKFswLCBoaXN0b2dyYW1XaWR0aF0pO1xuICAgICAgcmV0dXJuIHRpY2tzLnNsaWNlKDAsIC0xKS5tYXAoY2IgPT4ge1xuICAgICAgICBjb25zdCBwb3MgPSB3aWR0aFNjYWxlKGNiLnJhbmdlWzFdKTtcbiAgICAgICAgaWYgKHBvcyA8IDApIHJldHVybiAwO1xuICAgICAgICBlbHNlIGlmIChwb3MgPiBoaXN0b2dyYW1XaWR0aCkgcmV0dXJuIGhpc3RvZ3JhbVdpZHRoO1xuICAgICAgICByZXR1cm4gcG9zO1xuICAgICAgfSk7XG4gICAgfSwgW2hpc3RvZ3JhbURvbWFpbiwgdGlja3MsIGNvbG9yQnJlYWtzLCBoaXN0b2dyYW1XaWR0aF0pO1xuXG4gICAgY29uc3QgZG9tYWluQ29sb3JXaWR0aHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IG4gPSB0aWNrUG9zaXRpb25zLmxlbmd0aDtcbiAgICAgIGNvbnN0IHdpZHRocyA9IFt0aWNrUG9zaXRpb25zWzBdXTtcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbjsgKytpKSB7XG4gICAgICAgIHdpZHRocy5wdXNoKHRpY2tQb3NpdGlvbnNbaV0gLSB0aWNrUG9zaXRpb25zW2kgLSAxXSk7XG4gICAgICB9XG4gICAgICB3aWR0aHMucHVzaChoaXN0b2dyYW1XaWR0aCAtIHRpY2tQb3NpdGlvbnNbbiAtIDFdKTtcbiAgICAgIHJldHVybiB3aWR0aHM7XG4gICAgfSwgW3RpY2tQb3NpdGlvbnMsIGhpc3RvZ3JhbVdpZHRoXSk7XG5cbiAgICAvLyBoYW5kbGUgdGljayBkcmFnLW4tbW92ZVxuICAgIGNvbnN0IG9uVGlja01vdmluZ0hhbmRsZXIgPSB1c2VDYWxsYmFjayhcbiAgICAgIChuZXdUaWNrUG9zaXRpb25zLCB0aWNrSW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgW3ZhbHVlTWluLCB2YWx1ZU1heF0gPSBoaXN0b2dyYW1Eb21haW47XG4gICAgICAgIGNvbnN0IHZhbHVlUmFuZ2UgPSB2YWx1ZU1heCAtIHZhbHVlTWluO1xuICAgICAgICBjb25zdCBicmVha3MgPSBbdmFsdWVNaW5dO1xuICAgICAgICBuZXdUaWNrUG9zaXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgYnJlYWtzLnB1c2godmFsdWVNaW4gKyAodmFsdWVSYW5nZSAqIGVsZW1lbnQpIC8gaGlzdG9ncmFtV2lkdGgpO1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWtzLnB1c2godmFsdWVNYXgpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGlja3MubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBjb25zdCBsZWZ0VmFsdWUgPSBpID09PSB0aWNrSW5kZXggKyAxID8gYnJlYWtzW2ldIDogdGlja3NbaV0ucmFuZ2VbMF07XG4gICAgICAgICAgY29uc3QgcmlnaHRWYWx1ZSA9IGkgKyAxID09PSB0aWNrSW5kZXggKyAxID8gYnJlYWtzW2kgKyAxXSA6IHRpY2tzW2ldLnJhbmdlWzFdO1xuXG4gICAgICAgICAgdGlja3NbaV0gPSB7XG4gICAgICAgICAgICAuLi50aWNrc1tpXSxcbiAgICAgICAgICAgIHJhbmdlOiBbbGVmdFZhbHVlLCByaWdodFZhbHVlXSxcbiAgICAgICAgICAgIGlucHV0czogW2xlZnRWYWx1ZSwgcmlnaHRWYWx1ZV0sXG4gICAgICAgICAgICBsYWJlbDogYCR7ZDNGb3JtYXQoJy4yZicpKGJyZWFrc1tpXSl9IHRvICR7ZDNGb3JtYXQoJy4yZicpKGJyZWFrc1tpICsgMV0pfWBcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlzVGlja0NoYW5naW5nUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBzZXRUaWNrcyhbLi4udGlja3NdKTtcbiAgICAgIH0sXG4gICAgICBbaGlzdG9ncmFtRG9tYWluLCB0aWNrcywgaGlzdG9ncmFtV2lkdGhdXG4gICAgKTtcblxuICAgIC8vIHVwZGF0ZSBwYXJlbnQgYW5kIHNpYmxpbmcgY29tcG9uZW50cyB3aGVuIHRpY2sgZHJhZ2dpbmcgZW5kZWRcbiAgICBjb25zdCBvblRpY2tDaGFuZ2VkSGFuZGxlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uQ2hhbmdlZFVwZGF0ZXIodGlja3MpO1xuICAgIH0sIFtvbkNoYW5nZWRVcGRhdGVyLCB0aWNrc10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDb2xvckNoYXJ0Q29udGFpbmVyIHJlZj17cmVmfT5cbiAgICAgICAgPENvbG9yQ2hhcnRIZWFkZXJcbiAgICAgICAgICBtaW5WYWw9e2hpc3RvZ3JhbURvbWFpblswXX1cbiAgICAgICAgICBtYXhWYWw9e2hpc3RvZ3JhbURvbWFpblsxXX1cbiAgICAgICAgICBtZWFuVmFsPXtoaXN0b2dyYW1Eb21haW5bMl19XG4gICAgICAgIC8+XG4gICAgICAgIDxDb2xvckNoYXJ0V3JhcHBlcj5cbiAgICAgICAgICA8Q29sb3JQYWxldHRlV3JhcHBlcj5cbiAgICAgICAgICAgIDxDb2xvclBhbGV0dGVcbiAgICAgICAgICAgICAgY29sb3JzPXtkb21haW5Db2xvcnN9XG4gICAgICAgICAgICAgIGNvbG9yV2lkdGhzPXtkb21haW5Db2xvcldpZHRoc31cbiAgICAgICAgICAgICAgaGVpZ2h0PXtISVNUT0dSQU1fSEVJR0hUICsgMTZ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29sb3JQYWxldHRlV3JhcHBlcj5cbiAgICAgICAgICA8SGlzdG9ncmFtV3JhcHBlcj5cbiAgICAgICAgICAgIDxIaXN0b2dyYW1QbG90XG4gICAgICAgICAgICAgIGhpc3RvZ3JhbXNCeUdyb3VwPXtoaXN0b2dyYW1zQnlHcm91cH1cbiAgICAgICAgICAgICAgY29sb3JzQnlHcm91cD17bnVsbH1cbiAgICAgICAgICAgICAgaXNNYXNrZWQ9e2lzRmlsdGVyZWQgPyBISVNUT0dSQU1fTUFTS19NT0RFLk1hc2tXaXRoT3ZlcmxheSA6IEhJU1RPR1JBTV9NQVNLX01PREUuTWFza31cbiAgICAgICAgICAgICAgdmFsdWU9e2hpc3RvZ3JhbURvbWFpbn1cbiAgICAgICAgICAgICAgd2lkdGg9e2hpc3RvZ3JhbVdpZHRofVxuICAgICAgICAgICAgICBoZWlnaHQ9e0hJU1RPR1JBTV9IRUlHSFR9XG4gICAgICAgICAgICAgIG1hcmdpbj17SElTVE9HUkFNX01BUkdJTn1cbiAgICAgICAgICAgICAgYnJlYWtMaW5lcz17dGlja1Bvc2l0aW9uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9IaXN0b2dyYW1XcmFwcGVyPlxuICAgICAgICA8L0NvbG9yQ2hhcnRXcmFwcGVyPlxuICAgICAgICA8Q29sb3JDaGFydFRpY2tcbiAgICAgICAgICBjb2xvcnM9e2RvbWFpbkNvbG9ycy5zbGljZSgwLCAtMSl9XG4gICAgICAgICAgcG9zaXRpb25zPXt0aWNrUG9zaXRpb25zfVxuICAgICAgICAgIGhpc3RvZ3JhbVdpZHRoPXtoaXN0b2dyYW1XaWR0aH1cbiAgICAgICAgICBvblRpY2tNb3Zpbmc9e29uVGlja01vdmluZ0hhbmRsZXJ9XG4gICAgICAgICAgb25UaWNrQ2hhbmdlZD17b25UaWNrQ2hhbmdlZEhhbmRsZXJ9XG4gICAgICAgIC8+XG4gICAgICA8L0NvbG9yQ2hhcnRDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBDb2x1bW5TdGF0c0NoYXJ0V0xvYWRpbmc6IFJlYWN0LkZDPENvbHVtblN0YXRzQ2hhcnRXTG9hZGluZ1Byb3BzPiA9ICh7XG4gICAgY29sb3JGaWVsZCxcbiAgICBkYXRhc2V0LFxuICAgIGNvbG9yQnJlYWtzLFxuICAgIG9uQ2hhbmdlZFVwZGF0ZXJcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGZpZWxkTmFtZSA9IGNvbG9yRmllbGQubmFtZTtcbiAgICBjb25zdCBmaWVsZCA9IHVzZU1lbW8oKCkgPT4gZGF0YXNldC5nZXRDb2x1bW5GaWVsZChmaWVsZE5hbWUpLCBbZGF0YXNldCwgZmllbGROYW1lXSk7XG5cbiAgICBjb25zdCBpc0xvYWRpbmcgPSBmaWVsZD8uaXNMb2FkaW5nU3RhdHM7XG5cbiAgICBpZiAoIWlzTnVtZXJpY0NvbG9yQnJlYWtzKGNvbG9yQnJlYWtzKSB8fCAhZmllbGQpIHtcbiAgICAgIC8vIFRPRE86IGltcGxlbWVudCBkaXNwbGF5IGZvciBvcmRpbmFsIGJyZWFrc1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGlzTG9hZGluZykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZENvbnRhaW5lcj5cbiAgICAgICAgICA8TG9hZGluZ1NwaW5uZXIgLz5cbiAgICAgICAgPC9TdHlsZWRDb250YWluZXI+XG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8Q29sdW1uU3RhdHNDaGFydFxuICAgICAgICBjb2xvckJyZWFrcz17Y29sb3JCcmVha3N9XG4gICAgICAgIGZpZWxkPXtmaWVsZH1cbiAgICAgICAgZGF0YXNldD17ZGF0YXNldH1cbiAgICAgICAgb25DaGFuZ2VkVXBkYXRlcj17b25DaGFuZ2VkVXBkYXRlcn1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gQ29sdW1uU3RhdHNDaGFydFdMb2FkaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb2x1bW5TdGF0c0NoYXJ0RmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUwsT0FBQTtBQUlBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQVVBLElBQUFPLGFBQUEsR0FBQUYsc0JBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFRLGNBQUEsR0FBQUwsdUJBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFTLGVBQUEsR0FBQUosc0JBQUEsQ0FBQUwsT0FBQTtBQUErQyxJQUFBVSxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBdEIvQztBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFoQix3QkFBQWdCLENBQUEsRUFB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
@@ -0,0 +1,8 @@
1
+ import React, { MouseEventHandler } from 'react';
2
+ declare type ButtonProps = {
3
+ onClick?: MouseEventHandler<HTMLButtonElement>;
4
+ disabled?: boolean;
5
+ text?: string;
6
+ } & React.ButtonHTMLAttributes<HTMLButtonElement>;
7
+ declare const Button: ({ onClick, disabled, text, children, ...props }: ButtonProps) => React.JSX.Element;
8
+ export default Button;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
+ var _excluded = ["onClick", "disabled", "text", "children"];
14
+ var _templateObject; // SPDX-License-Identifier: MIT
15
+ // Copyright contributors to the kepler.gl project
16
+ var StyledButton = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n background-color: transparent;\n border: none;\n cursor: pointer;\n outline: none;\n transition: ", ";\n height: 2rem;\n display: flex;\n align-items: center;\n padding: 0;\n\n &:hover {\n opacity: 0.8;\n }\n"])), function (props) {
17
+ return props.theme.optionButtonColor;
18
+ }, function (props) {
19
+ return props.theme.transition;
20
+ });
21
+ var noop = function noop() {
22
+ return;
23
+ };
24
+ var Button = function Button(_ref) {
25
+ var _ref$onClick = _ref.onClick,
26
+ onClick = _ref$onClick === void 0 ? noop : _ref$onClick,
27
+ _ref$disabled = _ref.disabled,
28
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
29
+ _ref$text = _ref.text,
30
+ text = _ref$text === void 0 ? '' : _ref$text,
31
+ children = _ref.children,
32
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
33
+ return /*#__PURE__*/_react["default"].createElement(StyledButton, (0, _extends2["default"])({}, props, {
34
+ onClick: disabled ? undefined : onClick
35
+ }), text || children);
36
+ };
37
+ var _default = exports["default"] = Button;
38
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2V4Y2x1ZGVkIiwiX3RlbXBsYXRlT2JqZWN0IiwiU3R5bGVkQnV0dG9uIiwic3R5bGVkIiwiYnV0dG9uIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwib3B0aW9uQnV0dG9uQ29sb3IiLCJ0cmFuc2l0aW9uIiwibm9vcCIsIkJ1dHRvbiIsIl9yZWYiLCJfcmVmJG9uQ2xpY2siLCJvbkNsaWNrIiwiX3JlZiRkaXNhYmxlZCIsImRpc2FibGVkIiwiX3JlZiR0ZXh0IiwidGV4dCIsImNoaWxkcmVuIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJ1bmRlZmluZWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2RhdGEtdGFibGUvYnV0dG9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtNb3VzZUV2ZW50SGFuZGxlcn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmNvbnN0IFN0eWxlZEJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm9wdGlvbkJ1dHRvbkNvbG9yfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRyYW5zaXRpb259O1xuICBoZWlnaHQ6IDJyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDA7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogMC44O1xuICB9XG5gO1xuXG50eXBlIEJ1dHRvblByb3BzID0ge1xuICBvbkNsaWNrPzogTW91c2VFdmVudEhhbmRsZXI8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHRleHQ/OiBzdHJpbmc7XG59ICYgUmVhY3QuQnV0dG9uSFRNTEF0dHJpYnV0ZXM8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG5jb25zdCBub29wID0gKCkgPT4ge1xuICByZXR1cm47XG59O1xuY29uc3QgQnV0dG9uID0gKHtvbkNsaWNrID0gbm9vcCwgZGlzYWJsZWQgPSBmYWxzZSwgdGV4dCA9ICcnLCBjaGlsZHJlbiwgLi4ucHJvcHN9OiBCdXR0b25Qcm9wcykgPT4gKFxuICA8U3R5bGVkQnV0dG9uIHsuLi5wcm9wc30gb25DbGljaz17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBvbkNsaWNrfT5cbiAgICB7dGV4dCB8fCBjaGlsZHJlbn1cbiAgPC9TdHlsZWRCdXR0b24+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBCdXR0b247XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQXVDLElBQUFFLFNBQUE7QUFBQSxJQUFBQyxlQUFBLEVBSnZDO0FBQ0E7QUFLQSxJQUFNQyxZQUFZLEdBQUdDLDRCQUFNLENBQUNDLE1BQU0sQ0FBQUgsZUFBQSxLQUFBQSxlQUFBLE9BQUFJLHVCQUFBLHNRQUN2QixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLGlCQUFpQjtBQUFBLEdBS2pDLFVBQUFGLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0UsVUFBVTtBQUFBLEVBUzlDO0FBUUQsSUFBTUMsSUFBSSxHQUFHLFNBQVBBLElBQUlBLENBQUEsRUFBUztFQUNqQjtBQUNGLENBQUM7QUFDRCxJQUFNQyxNQUFNLEdBQUcsU0FBVEEsTUFBTUEsQ0FBQUMsSUFBQTtFQUFBLElBQUFDLFlBQUEsR0FBQUQsSUFBQSxDQUFLRSxPQUFPO0lBQVBBLE9BQU8sR0FBQUQsWUFBQSxjQUFHSCxJQUFJLEdBQUFHLFlBQUE7SUFBQUUsYUFBQSxHQUFBSCxJQUFBLENBQUVJLFFBQVE7SUFBUkEsUUFBUSxHQUFBRCxhQUFBLGNBQUcsS0FBSyxHQUFBQSxhQUFBO0lBQUFFLFNBQUEsR0FBQUwsSUFBQSxDQUFFTSxJQUFJO0lBQUpBLElBQUksR0FBQUQsU0FBQSxjQUFHLEVBQUUsR0FBQUEsU0FBQTtJQUFFRSxRQUFRLEdBQUFQLElBQUEsQ0FBUk8sUUFBUTtJQUFLYixLQUFLLE9BQUFjLHlCQUFBLGFBQUFSLElBQUEsRUFBQVosU0FBQTtFQUFBLG9CQUM5RUosTUFBQSxZQUFBeUIsYUFBQSxDQUFDbkIsWUFBWSxNQUFBb0IsU0FBQSxpQkFBS2hCLEtBQUs7SUFBRVEsT0FBTyxFQUFFRSxRQUFRLEdBQUdPLFNBQVMsR0FBR1Q7RUFBUSxJQUM5REksSUFBSSxJQUFJQyxRQUNHLENBQUM7QUFBQSxDQUNoQjtBQUFDLElBQUFLLFFBQUEsR0FBQUMsT0FBQSxjQUVhZCxNQUFNIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,2 @@
1
+ declare const _default: import("styled-components").StyledComponent<"canvas", any, {}, never>;
2
+ export default _default;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
+ var _templateObject; // SPDX-License-Identifier: MIT
11
+ // Copyright contributors to the kepler.gl project
12
+ /*
13
+ ScrollSync works by getting a callback about the dom elements scroll amount
14
+ and then using that to pass into how much to scroll all child components,
15
+ it works great!
16
+
17
+ Except... Because scrolling is managed by a separate thread, and JavaScript
18
+ is only periodically notified of the updated position, there's some latency
19
+ issues with this.
20
+
21
+ We can hack around this by using a niche property of canvas that removes the
22
+ delay in scroll event firing! Easiest way to reproduce: enable "Trace React updates"
23
+ in React DevTools (it works by overlaying a viewport-wide canvas over the document).
24
+ */
25
+ var _default = exports["default"] = _styledComponents["default"].canvas(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n"])));
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIiwic3R5bGVkIiwiY2FudmFzIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2RhdGEtdGFibGUvY2FudmFzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuLypcbiAgICBTY3JvbGxTeW5jIHdvcmtzIGJ5IGdldHRpbmcgYSBjYWxsYmFjayBhYm91dCB0aGUgZG9tIGVsZW1lbnRzIHNjcm9sbCBhbW91bnRcbiAgICBhbmQgdGhlbiB1c2luZyB0aGF0IHRvIHBhc3MgaW50byBob3cgbXVjaCB0byBzY3JvbGwgYWxsIGNoaWxkIGNvbXBvbmVudHMsXG4gICAgaXQgd29ya3MgZ3JlYXQhXG5cbiAgICBFeGNlcHQuLi4gQmVjYXVzZSBzY3JvbGxpbmcgaXMgbWFuYWdlZCBieSBhIHNlcGFyYXRlIHRocmVhZCwgYW5kIEphdmFTY3JpcHRcbiAgICBpcyBvbmx5IHBlcmlvZGljYWxseSBub3RpZmllZCBvZiB0aGUgdXBkYXRlZCBwb3NpdGlvbiwgdGhlcmUncyBzb21lIGxhdGVuY3lcbiAgICBpc3N1ZXMgd2l0aCB0aGlzLlxuXG4gICAgV2UgY2FuIGhhY2sgYXJvdW5kIHRoaXMgYnkgdXNpbmcgYSBuaWNoZSBwcm9wZXJ0eSBvZiBjYW52YXMgdGhhdCByZW1vdmVzIHRoZVxuICAgIGRlbGF5IGluIHNjcm9sbCBldmVudCBmaXJpbmchIEVhc2llc3Qgd2F5IHRvIHJlcHJvZHVjZTogZW5hYmxlIFwiVHJhY2UgUmVhY3QgdXBkYXRlc1wiXG4gICAgaW4gUmVhY3QgRGV2VG9vbHMgKGl0IHdvcmtzIGJ5IG92ZXJsYXlpbmcgYSB2aWV3cG9ydC13aWRlIGNhbnZhcyBvdmVyIHRoZSBkb2N1bWVudCkuXG4gICovXG5leHBvcnQgZGVmYXVsdCBzdHlsZWQuY2FudmFzYFxuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLElBQUFBLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBdUMsSUFBQUMsZUFBQSxFQUh2QztBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQSxJQUFBQyxRQUFBLEdBQUFDLE9BQUEsY0FhZUMsNEJBQU0sQ0FBQ0MsTUFBTSxDQUFBSixlQUFBLEtBQUFBLGVBQUEsT0FBQUssdUJBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,43 @@
1
+ import { DataContainerInterface } from '@kepler.gl/utils';
2
+ declare type RenderSizeParam = {
3
+ text: {
4
+ dataContainer: DataContainerInterface;
5
+ column: string;
6
+ };
7
+ type?: string;
8
+ colIdx: number;
9
+ numRowsToCalculate?: number;
10
+ fontSize?: number;
11
+ font?: string;
12
+ cellPadding?: number;
13
+ maxCellSize?: number;
14
+ maxHeaderSize?: number;
15
+ minCellSize?: number;
16
+ optionsButton?: number;
17
+ };
18
+ export declare type CellSizeCache = {
19
+ [key: string]: {
20
+ row: number;
21
+ header: number;
22
+ };
23
+ };
24
+ /**
25
+ * Measure rows and column content to determine min width for each column
26
+ * @param {RenderSizeParam} param0
27
+ */
28
+ export declare function renderedSize({ text: { dataContainer, column }, type, colIdx, numRowsToCalculate, fontSize, font, cellPadding, maxCellSize, maxHeaderSize, minCellSize, optionsButton }: RenderSizeParam): {
29
+ row: number;
30
+ header: number;
31
+ };
32
+ /**
33
+ * Adjust cell size based on container width
34
+ * @param {number} containerWidth
35
+ * @param {CellSizeCache} cellSizeCache
36
+ * @param {string[]} pinnedColumns
37
+ * @param {string[]} unpinnedColumns
38
+ */
39
+ export declare function adjustCellsToContainer(containerWidth: number, cellSizeCache: CellSizeCache, pinnedColumns: string[], unpinnedColumns: string[]): {
40
+ cellSizeCache: CellSizeCache;
41
+ ghost?: number | null;
42
+ };
43
+ export {};