@carto/kepler.gl 0.0.1-alpha.map-libre

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 (913) hide show
  1. package/CHANGELOG.md +939 -0
  2. package/LICENSE +19 -0
  3. package/README.md +63 -0
  4. package/actions.js +21 -0
  5. package/cloud-providers.js +21 -0
  6. package/components.js +21 -0
  7. package/constants.js +21 -0
  8. package/dist/actions/action-wrapper.js +218 -0
  9. package/dist/actions/actions.js +198 -0
  10. package/dist/actions/identity-actions.js +105 -0
  11. package/dist/actions/index.js +161 -0
  12. package/dist/actions/map-state-actions.js +112 -0
  13. package/dist/actions/map-style-actions.js +167 -0
  14. package/dist/actions/provider-actions.js +129 -0
  15. package/dist/actions/ui-state-actions.js +316 -0
  16. package/dist/actions/vis-state-actions.js +1045 -0
  17. package/dist/cloud-providers/index.js +22 -0
  18. package/dist/cloud-providers/provider.js +386 -0
  19. package/dist/components/bottom-widget.js +215 -0
  20. package/dist/components/common/action-panel.js +134 -0
  21. package/dist/components/common/animation-control/animation-control.js +126 -0
  22. package/dist/components/common/animation-control/animation-controller.js +273 -0
  23. package/dist/components/common/animation-control/animation-speed-slider.js +101 -0
  24. package/dist/components/common/animation-control/floating-time-display.js +157 -0
  25. package/dist/components/common/animation-control/playback-controls.js +278 -0
  26. package/dist/components/common/animation-control/speed-control.js +68 -0
  27. package/dist/components/common/checkbox.js +155 -0
  28. package/dist/components/common/color-legend.js +249 -0
  29. package/dist/components/common/data-table/button.js +46 -0
  30. package/dist/components/common/data-table/canvas.js +32 -0
  31. package/dist/components/common/data-table/cell-size.js +174 -0
  32. package/dist/components/common/data-table/grid.js +84 -0
  33. package/dist/components/common/data-table/index.js +514 -0
  34. package/dist/components/common/data-table/option-dropdown.js +103 -0
  35. package/dist/components/common/dataset-label.js +36 -0
  36. package/dist/components/common/error-boundary.js +83 -0
  37. package/dist/components/common/field-selector.js +282 -0
  38. package/dist/components/common/field-token.js +42 -0
  39. package/dist/components/common/file-uploader/file-drop.js +227 -0
  40. package/dist/components/common/file-uploader/file-upload-progress.js +102 -0
  41. package/dist/components/common/file-uploader/file-upload.js +304 -0
  42. package/dist/components/common/file-uploader/upload-button.js +111 -0
  43. package/dist/components/common/histogram-plot.js +102 -0
  44. package/dist/components/common/icons/add.js +64 -0
  45. package/dist/components/common/icons/anchor_window.js +62 -0
  46. package/dist/components/common/icons/arrow-down-alt.js +64 -0
  47. package/dist/components/common/icons/arrow-down-solid .js +64 -0
  48. package/dist/components/common/icons/arrow-down.js +64 -0
  49. package/dist/components/common/icons/arrow-left.js +67 -0
  50. package/dist/components/common/icons/arrow-right.js +64 -0
  51. package/dist/components/common/icons/arrow-up-alt.js +65 -0
  52. package/dist/components/common/icons/arrow-up-solid.js +64 -0
  53. package/dist/components/common/icons/arrow-up.js +64 -0
  54. package/dist/components/common/icons/base.js +110 -0
  55. package/dist/components/common/icons/bug.js +66 -0
  56. package/dist/components/common/icons/cancel.js +64 -0
  57. package/dist/components/common/icons/checkmark.js +71 -0
  58. package/dist/components/common/icons/chevron-right.js +69 -0
  59. package/dist/components/common/icons/clipboard.js +65 -0
  60. package/dist/components/common/icons/clock.js +66 -0
  61. package/dist/components/common/icons/close.js +69 -0
  62. package/dist/components/common/icons/code-alt.js +68 -0
  63. package/dist/components/common/icons/copy.js +70 -0
  64. package/dist/components/common/icons/crosshairs.js +68 -0
  65. package/dist/components/common/icons/cube-3d.js +68 -0
  66. package/dist/components/common/icons/cursor-click.js +68 -0
  67. package/dist/components/common/icons/data-table.js +65 -0
  68. package/dist/components/common/icons/db.js +65 -0
  69. package/dist/components/common/icons/delete.js +65 -0
  70. package/dist/components/common/icons/docs.js +80 -0
  71. package/dist/components/common/icons/drag-n-drop.js +66 -0
  72. package/dist/components/common/icons/draw-polygon.js +87 -0
  73. package/dist/components/common/icons/email.js +68 -0
  74. package/dist/components/common/icons/expand.js +66 -0
  75. package/dist/components/common/icons/eye-seen.js +66 -0
  76. package/dist/components/common/icons/eye-unseen.js +66 -0
  77. package/dist/components/common/icons/file-type.js +45 -0
  78. package/dist/components/common/icons/file.js +64 -0
  79. package/dist/components/common/icons/files.js +66 -0
  80. package/dist/components/common/icons/filter-funnel.js +64 -0
  81. package/dist/components/common/icons/free-window.js +62 -0
  82. package/dist/components/common/icons/gear.js +66 -0
  83. package/dist/components/common/icons/hash.js +64 -0
  84. package/dist/components/common/icons/histogram.js +64 -0
  85. package/dist/components/common/icons/index.js +612 -0
  86. package/dist/components/common/icons/info.js +78 -0
  87. package/dist/components/common/icons/layers.js +64 -0
  88. package/dist/components/common/icons/left-arrow.js +68 -0
  89. package/dist/components/common/icons/legend.js +64 -0
  90. package/dist/components/common/icons/line-chart.js +63 -0
  91. package/dist/components/common/icons/login.js +66 -0
  92. package/dist/components/common/icons/logout.js +65 -0
  93. package/dist/components/common/icons/map-icon.js +73 -0
  94. package/dist/components/common/icons/map.js +73 -0
  95. package/dist/components/common/icons/messages.js +64 -0
  96. package/dist/components/common/icons/minus.js +64 -0
  97. package/dist/components/common/icons/pause.js +64 -0
  98. package/dist/components/common/icons/picture.js +66 -0
  99. package/dist/components/common/icons/pin.js +64 -0
  100. package/dist/components/common/icons/play.js +64 -0
  101. package/dist/components/common/icons/polygon.js +89 -0
  102. package/dist/components/common/icons/rectangle.js +90 -0
  103. package/dist/components/common/icons/reduce.js +67 -0
  104. package/dist/components/common/icons/reset.js +64 -0
  105. package/dist/components/common/icons/rocket.js +64 -0
  106. package/dist/components/common/icons/save.js +66 -0
  107. package/dist/components/common/icons/save2.js +70 -0
  108. package/dist/components/common/icons/search.js +66 -0
  109. package/dist/components/common/icons/settings.js +66 -0
  110. package/dist/components/common/icons/share.js +64 -0
  111. package/dist/components/common/icons/split.js +92 -0
  112. package/dist/components/common/icons/square-select.js +66 -0
  113. package/dist/components/common/icons/swap-horizontal.js +68 -0
  114. package/dist/components/common/icons/table.js +63 -0
  115. package/dist/components/common/icons/trash.js +66 -0
  116. package/dist/components/common/icons/upload.js +65 -0
  117. package/dist/components/common/icons/vert-dots.js +102 -0
  118. package/dist/components/common/icons/vert-three-dots.js +77 -0
  119. package/dist/components/common/icons/warning.js +79 -0
  120. package/dist/components/common/image-preview.js +73 -0
  121. package/dist/components/common/info-helper.js +84 -0
  122. package/dist/components/common/item-selector/accessor.js +56 -0
  123. package/dist/components/common/item-selector/chickleted-input.js +118 -0
  124. package/dist/components/common/item-selector/dropdown-list.js +316 -0
  125. package/dist/components/common/item-selector/item-selector-submenu.js +99 -0
  126. package/dist/components/common/item-selector/item-selector.js +363 -0
  127. package/dist/components/common/item-selector/typeahead.js +496 -0
  128. package/dist/components/common/line-chart.js +125 -0
  129. package/dist/components/common/loading-spinner.js +58 -0
  130. package/dist/components/common/logo.js +92 -0
  131. package/dist/components/common/map-layer-selector.js +50 -0
  132. package/dist/components/common/modal.js +204 -0
  133. package/dist/components/common/portaled.js +317 -0
  134. package/dist/components/common/progress-bar.js +56 -0
  135. package/dist/components/common/range-brush.js +319 -0
  136. package/dist/components/common/range-plot.js +148 -0
  137. package/dist/components/common/range-slider.js +346 -0
  138. package/dist/components/common/slider/mouse-event.js +136 -0
  139. package/dist/components/common/slider/slider-bar-handle.js +122 -0
  140. package/dist/components/common/slider/slider-handle.js +167 -0
  141. package/dist/components/common/slider/slider.js +268 -0
  142. package/dist/components/common/styled-components.js +395 -0
  143. package/dist/components/common/switch.js +47 -0
  144. package/dist/components/common/time-range-slider-time-title.js +74 -0
  145. package/dist/components/common/time-range-slider.js +131 -0
  146. package/dist/components/common/time-slider-marker.js +141 -0
  147. package/dist/components/common/toolbar-item.js +67 -0
  148. package/dist/components/common/toolbar.js +33 -0
  149. package/dist/components/common/vertical-toolbar.js +22 -0
  150. package/dist/components/container.js +217 -0
  151. package/dist/components/context.js +42 -0
  152. package/dist/components/editor/constants.js +47 -0
  153. package/dist/components/editor/editor.js +274 -0
  154. package/dist/components/editor/feature-action-panel.js +154 -0
  155. package/dist/components/editor/feature-styles.js +72 -0
  156. package/dist/components/editor/handle-style.js +80 -0
  157. package/dist/components/filters/components.js +20 -0
  158. package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +110 -0
  159. package/dist/components/filters/filter-panels/multi-select-filter-panel.js +80 -0
  160. package/dist/components/filters/filter-panels/new-filter-panel.js +101 -0
  161. package/dist/components/filters/filter-panels/polygon-filter-panel.js +102 -0
  162. package/dist/components/filters/filter-panels/range-filter-panel.js +80 -0
  163. package/dist/components/filters/filter-panels/single-select-filter-panel.js +80 -0
  164. package/dist/components/filters/filter-panels/time-range-filter-panel.js +92 -0
  165. package/dist/components/filters/index.js +48 -0
  166. package/dist/components/filters/multi-select-filter.js +54 -0
  167. package/dist/components/filters/polygon-filter.js +96 -0
  168. package/dist/components/filters/range-filter.js +53 -0
  169. package/dist/components/filters/single-select-filter.js +63 -0
  170. package/dist/components/filters/time-range-filter.js +86 -0
  171. package/dist/components/filters/time-widget.js +173 -0
  172. package/dist/components/geocoder/geocoder.js +315 -0
  173. package/dist/components/geocoder-panel.js +224 -0
  174. package/dist/components/index.js +1485 -0
  175. package/dist/components/injector.js +178 -0
  176. package/dist/components/kepler-gl.js +563 -0
  177. package/dist/components/map/coordinate-info.js +68 -0
  178. package/dist/components/map/layer-hover-info.js +176 -0
  179. package/dist/components/map/layer-selector-panel.js +116 -0
  180. package/dist/components/map/locale-panel.js +113 -0
  181. package/dist/components/map/map-control-panel.js +79 -0
  182. package/dist/components/map/map-control-toolbar.js +25 -0
  183. package/dist/components/map/map-control-tooltip.js +55 -0
  184. package/dist/components/map/map-control.js +80 -0
  185. package/dist/components/map/map-draw-panel.js +142 -0
  186. package/dist/components/map/map-legend-panel.js +124 -0
  187. package/dist/components/map/map-legend.js +244 -0
  188. package/dist/components/map/map-popover.js +204 -0
  189. package/dist/components/map/split-map-button.js +98 -0
  190. package/dist/components/map/toggle-3d-button.js +86 -0
  191. package/dist/components/map-container.js +562 -0
  192. package/dist/components/maps-layout.js +58 -0
  193. package/dist/components/modal-container.js +536 -0
  194. package/dist/components/modals/add-map-style-modal.js +288 -0
  195. package/dist/components/modals/cloud-tile.js +124 -0
  196. package/dist/components/modals/data-table-modal.js +249 -0
  197. package/dist/components/modals/delete-data-modal.js +54 -0
  198. package/dist/components/modals/error-display.js +51 -0
  199. package/dist/components/modals/export-data-modal.js +227 -0
  200. package/dist/components/modals/export-image-modal.js +136 -0
  201. package/dist/components/modals/export-map-modal/components.js +51 -0
  202. package/dist/components/modals/export-map-modal/export-html-map.js +141 -0
  203. package/dist/components/modals/export-map-modal/export-json-map.js +87 -0
  204. package/dist/components/modals/export-map-modal/export-map-modal.js +133 -0
  205. package/dist/components/modals/image-modal-container.js +90 -0
  206. package/dist/components/modals/load-data-modal.js +97 -0
  207. package/dist/components/modals/load-storage-map.js +288 -0
  208. package/dist/components/modals/loading-dialog.js +48 -0
  209. package/dist/components/modals/modal-dialog.js +37 -0
  210. package/dist/components/modals/modal-tabs.js +99 -0
  211. package/dist/components/modals/overwrite-map-modal.js +80 -0
  212. package/dist/components/modals/provider-modal-container.js +84 -0
  213. package/dist/components/modals/save-map-modal.js +207 -0
  214. package/dist/components/modals/share-map-modal.js +202 -0
  215. package/dist/components/modals/status-panel.js +83 -0
  216. package/dist/components/modals/storage-map-viewer.js +135 -0
  217. package/dist/components/notification-panel/notification-item.js +164 -0
  218. package/dist/components/notification-panel.js +87 -0
  219. package/dist/components/performance.js +134 -0
  220. package/dist/components/plot-container.js +275 -0
  221. package/dist/components/side-panel/cloud-storage-dropdown.js +63 -0
  222. package/dist/components/side-panel/common/dataset-info.js +43 -0
  223. package/dist/components/side-panel/common/dataset-tag.js +42 -0
  224. package/dist/components/side-panel/common/dataset-title.js +170 -0
  225. package/dist/components/side-panel/common/source-data-catalog.js +60 -0
  226. package/dist/components/side-panel/common/source-data-selector.js +120 -0
  227. package/dist/components/side-panel/custom-panel.js +60 -0
  228. package/dist/components/side-panel/filter-manager.js +132 -0
  229. package/dist/components/side-panel/filter-panel/filter-panel-header.js +70 -0
  230. package/dist/components/side-panel/filter-panel/filter-panel.js +145 -0
  231. package/dist/components/side-panel/interaction-manager.js +58 -0
  232. package/dist/components/side-panel/interaction-panel/brush-config.js +54 -0
  233. package/dist/components/side-panel/interaction-panel/interaction-panel.js +168 -0
  234. package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +250 -0
  235. package/dist/components/side-panel/interaction-panel/tooltip-config.js +163 -0
  236. package/dist/components/side-panel/layer-manager.js +321 -0
  237. package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +45 -0
  238. package/dist/components/side-panel/layer-panel/color-palette.js +83 -0
  239. package/dist/components/side-panel/layer-panel/color-range-selector.js +370 -0
  240. package/dist/components/side-panel/layer-panel/color-selector.js +226 -0
  241. package/dist/components/side-panel/layer-panel/column-selector.js +65 -0
  242. package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +40 -0
  243. package/dist/components/side-panel/layer-panel/custom-palette.js +318 -0
  244. package/dist/components/side-panel/layer-panel/custom-picker.js +128 -0
  245. package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +61 -0
  246. package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +26 -0
  247. package/dist/components/side-panel/layer-panel/layer-column-config.js +93 -0
  248. package/dist/components/side-panel/layer-panel/layer-config-group.js +245 -0
  249. package/dist/components/side-panel/layer-panel/layer-configurator.js +977 -0
  250. package/dist/components/side-panel/layer-panel/layer-panel-header.js +222 -0
  251. package/dist/components/side-panel/layer-panel/layer-panel.js +201 -0
  252. package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +89 -0
  253. package/dist/components/side-panel/layer-panel/layer-type-list-item.js +71 -0
  254. package/dist/components/side-panel/layer-panel/layer-type-selector.js +96 -0
  255. package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +111 -0
  256. package/dist/components/side-panel/layer-panel/single-color-palette.js +109 -0
  257. package/dist/components/side-panel/layer-panel/text-label-panel.js +175 -0
  258. package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +174 -0
  259. package/dist/components/side-panel/layer-panel/vis-config-slider.js +90 -0
  260. package/dist/components/side-panel/layer-panel/vis-config-switch.js +84 -0
  261. package/dist/components/side-panel/map-manager.js +155 -0
  262. package/dist/components/side-panel/map-style-panel/map-layer-selector.js +106 -0
  263. package/dist/components/side-panel/map-style-panel/map-style-selector.js +78 -0
  264. package/dist/components/side-panel/panel-dropdown.js +86 -0
  265. package/dist/components/side-panel/panel-header-action.js +121 -0
  266. package/dist/components/side-panel/panel-header.js +351 -0
  267. package/dist/components/side-panel/panel-tab.js +68 -0
  268. package/dist/components/side-panel/panel-title.js +28 -0
  269. package/dist/components/side-panel/panel-toggle.js +69 -0
  270. package/dist/components/side-panel/side-bar.js +164 -0
  271. package/dist/components/side-panel.js +242 -0
  272. package/dist/connect/keplergl-connect.js +68 -0
  273. package/dist/connect/with-local-selector.js +110 -0
  274. package/dist/constants/action-types.js +180 -0
  275. package/dist/constants/color-palette.js +547 -0
  276. package/dist/constants/color-ranges.js +70 -0
  277. package/dist/constants/custom-color-ranges.js +415 -0
  278. package/dist/constants/default-settings.js +902 -0
  279. package/dist/constants/index.js +370 -0
  280. package/dist/constants/keyevent.js +47 -0
  281. package/dist/constants/tooltip.js +205 -0
  282. package/dist/constants/user-feedbacks.js +33 -0
  283. package/dist/constants/user-guides.js +44 -0
  284. package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +88 -0
  285. package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +214 -0
  286. package/dist/deckgl-layers/cluster-layer/cluster-layer.js +334 -0
  287. package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +78 -0
  288. package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +96 -0
  289. package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +96 -0
  290. package/dist/deckgl-layers/layer-utils/cluster-utils.js +119 -0
  291. package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +643 -0
  292. package/dist/deckgl-layers/layer-utils/shader-utils.js +50 -0
  293. package/dist/deckgl-layers/line-layer/line-layer.js +111 -0
  294. package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +78 -0
  295. package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +120 -0
  296. package/dist/index.js +155 -0
  297. package/dist/layers/aggregation-layer.js +416 -0
  298. package/dist/layers/arc-layer/arc-layer-icon.js +77 -0
  299. package/dist/layers/arc-layer/arc-layer.js +275 -0
  300. package/dist/layers/base-layer.js +1688 -0
  301. package/dist/layers/cluster-layer/cluster-layer-icon.js +80 -0
  302. package/dist/layers/cluster-layer/cluster-layer.js +151 -0
  303. package/dist/layers/default-layer-icon.js +87 -0
  304. package/dist/layers/geojson-layer/geojson-layer-icon.js +91 -0
  305. package/dist/layers/geojson-layer/geojson-layer.js +446 -0
  306. package/dist/layers/geojson-layer/geojson-utils.js +183 -0
  307. package/dist/layers/grid-layer/grid-layer-icon.js +136 -0
  308. package/dist/layers/grid-layer/grid-layer.js +115 -0
  309. package/dist/layers/grid-layer/grid-utils.js +62 -0
  310. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +71 -0
  311. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +346 -0
  312. package/dist/layers/h3-hexagon-layer/h3-utils.js +97 -0
  313. package/dist/layers/heatmap-layer/heatmap-layer-icon.js +88 -0
  314. package/dist/layers/heatmap-layer/heatmap-layer.js +269 -0
  315. package/dist/layers/hexagon-layer/hexagon-layer-icon.js +100 -0
  316. package/dist/layers/hexagon-layer/hexagon-layer.js +120 -0
  317. package/dist/layers/hexagon-layer/hexagon-utils.js +74 -0
  318. package/dist/layers/icon-layer/icon-info-modal.js +117 -0
  319. package/dist/layers/icon-layer/icon-layer-icon.js +73 -0
  320. package/dist/layers/icon-layer/icon-layer.js +392 -0
  321. package/dist/layers/index.js +97 -0
  322. package/dist/layers/layer-factory.js +499 -0
  323. package/dist/layers/layer-text-label.js +72 -0
  324. package/dist/layers/layer-update.js +85 -0
  325. package/dist/layers/line-layer/line-layer-icon.js +79 -0
  326. package/dist/layers/line-layer/line-layer.js +209 -0
  327. package/dist/layers/mapbox-utils.js +204 -0
  328. package/dist/layers/mapboxgl-layer.js +210 -0
  329. package/dist/layers/point-layer/point-layer-icon.js +94 -0
  330. package/dist/layers/point-layer/point-layer.js +475 -0
  331. package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +334 -0
  332. package/dist/layers/s2-geometry-layer/s2-layer-icon.js +70 -0
  333. package/dist/layers/s2-geometry-layer/s2-utils.js +51 -0
  334. package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +48 -0
  335. package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +151 -0
  336. package/dist/layers/scenegraph-layer/scenegraph-layer.js +250 -0
  337. package/dist/layers/trip-layer/trip-info-modal.js +54 -0
  338. package/dist/layers/trip-layer/trip-layer-icon.js +89 -0
  339. package/dist/layers/trip-layer/trip-layer.js +403 -0
  340. package/dist/layers/trip-layer/trip-utils.js +204 -0
  341. package/dist/layers/types.js +47 -0
  342. package/dist/localization/en.js +480 -0
  343. package/dist/localization/formatted-message.js +45 -0
  344. package/dist/localization/index.js +60 -0
  345. package/dist/localization/locales.js +64 -0
  346. package/dist/middleware/index.js +47 -0
  347. package/dist/processors/data-processor.js +784 -0
  348. package/dist/processors/file-handler.js +432 -0
  349. package/dist/processors/index.js +106 -0
  350. package/dist/reducers/combined-updaters.js +195 -0
  351. package/dist/reducers/composer-helpers.js +110 -0
  352. package/dist/reducers/composers.js +27 -0
  353. package/dist/reducers/core.js +156 -0
  354. package/dist/reducers/index.js +139 -0
  355. package/dist/reducers/map-state-updaters.js +239 -0
  356. package/dist/reducers/map-state.js +47 -0
  357. package/dist/reducers/map-style-updaters.js +531 -0
  358. package/dist/reducers/map-style.js +46 -0
  359. package/dist/reducers/provider-state-updaters.js +541 -0
  360. package/dist/reducers/provider-state.js +46 -0
  361. package/dist/reducers/root.js +218 -0
  362. package/dist/reducers/ui-state-updaters.js +855 -0
  363. package/dist/reducers/ui-state.js +47 -0
  364. package/dist/reducers/vis-state-merger.js +615 -0
  365. package/dist/reducers/vis-state-selectors.js +52 -0
  366. package/dist/reducers/vis-state-updaters.js +2433 -0
  367. package/dist/reducers/vis-state.js +46 -0
  368. package/dist/schemas/dataset-schema.js +189 -0
  369. package/dist/schemas/index.js +132 -0
  370. package/dist/schemas/map-state-schema.js +49 -0
  371. package/dist/schemas/map-style-schema.js +122 -0
  372. package/dist/schemas/schema-manager.js +262 -0
  373. package/dist/schemas/schema-utils.js +62 -0
  374. package/dist/schemas/schema.js +114 -0
  375. package/dist/schemas/versions.js +38 -0
  376. package/dist/schemas/vis-state-schema.js +1071 -0
  377. package/dist/styles/base.js +1570 -0
  378. package/dist/styles/index.js +32 -0
  379. package/dist/styles/media-breakpoints.js +39 -0
  380. package/dist/tasks/tasks.js +122 -0
  381. package/dist/templates/export-map-html.js +45 -0
  382. package/dist/utils/aggregate-utils.js +75 -0
  383. package/dist/utils/color-utils.js +135 -0
  384. package/dist/utils/data-scale-utils.js +84 -0
  385. package/dist/utils/data-utils.js +491 -0
  386. package/dist/utils/dataset-utils.js +254 -0
  387. package/dist/utils/dom-to-image.js +557 -0
  388. package/dist/utils/dom-utils.js +425 -0
  389. package/dist/utils/export-utils.js +297 -0
  390. package/dist/utils/filter-utils.js +1286 -0
  391. package/dist/utils/gl-utils.js +35 -0
  392. package/dist/utils/gpu-filter-utils.js +261 -0
  393. package/dist/utils/index.js +226 -0
  394. package/dist/utils/interaction-utils.js +201 -0
  395. package/dist/utils/layer-utils.js +205 -0
  396. package/dist/utils/locale-utils.js +54 -0
  397. package/dist/utils/map-info-utils.js +32 -0
  398. package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +212 -0
  399. package/dist/utils/map-style-utils/mapbox-utils.js +35 -0
  400. package/dist/utils/mapbox-utils.js +39 -0
  401. package/dist/utils/notifications-utils.js +89 -0
  402. package/dist/utils/observe-dimensions.js +147 -0
  403. package/dist/utils/projection-utils.js +83 -0
  404. package/dist/utils/searcher-utils.js +45 -0
  405. package/dist/utils/split-map-utils.js +108 -0
  406. package/dist/utils/table-utils/data-container-utils.js +69 -0
  407. package/dist/utils/table-utils/data-row.js +82 -0
  408. package/dist/utils/table-utils/index.js +20 -0
  409. package/dist/utils/table-utils/indexed-data-container.js +241 -0
  410. package/dist/utils/table-utils/kepler-table.js +544 -0
  411. package/dist/utils/table-utils/row-data-container.js +242 -0
  412. package/dist/utils/utils.js +234 -0
  413. package/layers.js +21 -0
  414. package/localization.js +21 -0
  415. package/middleware.js +21 -0
  416. package/package.json +281 -0
  417. package/processors.js +21 -0
  418. package/reducers.js +21 -0
  419. package/schemas.js +21 -0
  420. package/src/actions/action-wrapper.js +183 -0
  421. package/src/actions/actions.d.ts +104 -0
  422. package/src/actions/actions.js +178 -0
  423. package/src/actions/identity-actions.d.ts +53 -0
  424. package/src/actions/identity-actions.js +83 -0
  425. package/src/actions/index.d.ts +23 -0
  426. package/src/actions/index.js +42 -0
  427. package/src/actions/map-state-actions.d.ts +46 -0
  428. package/src/actions/map-state-actions.js +90 -0
  429. package/src/actions/map-style-actions.d.ts +116 -0
  430. package/src/actions/map-style-actions.js +135 -0
  431. package/src/actions/provider-actions.d.ts +203 -0
  432. package/src/actions/provider-actions.js +94 -0
  433. package/src/actions/ui-state-actions.d.ts +200 -0
  434. package/src/actions/ui-state-actions.js +272 -0
  435. package/src/actions/vis-state-actions.d.ts +502 -0
  436. package/src/actions/vis-state-actions.js +919 -0
  437. package/src/cloud-providers/index.d.ts +53 -0
  438. package/src/cloud-providers/index.js +21 -0
  439. package/src/cloud-providers/provider.js +233 -0
  440. package/src/components/bottom-widget.d.ts +33 -0
  441. package/src/components/bottom-widget.js +235 -0
  442. package/src/components/common/action-panel.d.ts +24 -0
  443. package/src/components/common/action-panel.js +177 -0
  444. package/src/components/common/animation-control/animation-control.js +155 -0
  445. package/src/components/common/animation-control/animation-controller.js +224 -0
  446. package/src/components/common/animation-control/animation-speed-slider.js +79 -0
  447. package/src/components/common/animation-control/floating-time-display.js +192 -0
  448. package/src/components/common/animation-control/playback-controls.js +278 -0
  449. package/src/components/common/animation-control/speed-control.js +71 -0
  450. package/src/components/common/checkbox.js +128 -0
  451. package/src/components/common/color-legend.js +198 -0
  452. package/src/components/common/data-table/button.js +47 -0
  453. package/src/components/common/data-table/canvas.js +43 -0
  454. package/src/components/common/data-table/cell-size.js +180 -0
  455. package/src/components/common/data-table/grid.js +55 -0
  456. package/src/components/common/data-table/index.js +620 -0
  457. package/src/components/common/data-table/option-dropdown.js +110 -0
  458. package/src/components/common/dataset-label.js +40 -0
  459. package/src/components/common/error-boundary.js +43 -0
  460. package/src/components/common/field-selector.js +233 -0
  461. package/src/components/common/field-token.js +56 -0
  462. package/src/components/common/file-uploader/file-drop.d.ts +19 -0
  463. package/src/components/common/file-uploader/file-drop.js +196 -0
  464. package/src/components/common/file-uploader/file-upload-progress.d.ts +11 -0
  465. package/src/components/common/file-uploader/file-upload-progress.js +110 -0
  466. package/src/components/common/file-uploader/file-upload.d.ts +22 -0
  467. package/src/components/common/file-uploader/file-upload.js +301 -0
  468. package/src/components/common/file-uploader/upload-button.d.ts.wip +11 -0
  469. package/src/components/common/file-uploader/upload-button.js +83 -0
  470. package/src/components/common/histogram-plot.js +102 -0
  471. package/src/components/common/icons/add.js +43 -0
  472. package/src/components/common/icons/anchor_window.js +53 -0
  473. package/src/components/common/icons/arrow-down-alt.js +43 -0
  474. package/src/components/common/icons/arrow-down-solid .js +43 -0
  475. package/src/components/common/icons/arrow-down.js +46 -0
  476. package/src/components/common/icons/arrow-left.js +48 -0
  477. package/src/components/common/icons/arrow-right.js +46 -0
  478. package/src/components/common/icons/arrow-up-alt.js +46 -0
  479. package/src/components/common/icons/arrow-up-solid.js +43 -0
  480. package/src/components/common/icons/arrow-up.js +46 -0
  481. package/src/components/common/icons/base.js +90 -0
  482. package/src/components/common/icons/bug.js +46 -0
  483. package/src/components/common/icons/cancel.js +43 -0
  484. package/src/components/common/icons/checkmark.js +45 -0
  485. package/src/components/common/icons/chevron-right.js +47 -0
  486. package/src/components/common/icons/clipboard.js +46 -0
  487. package/src/components/common/icons/clock.js +44 -0
  488. package/src/components/common/icons/close.js +49 -0
  489. package/src/components/common/icons/code-alt.js +43 -0
  490. package/src/components/common/icons/copy.js +44 -0
  491. package/src/components/common/icons/crosshairs.js +43 -0
  492. package/src/components/common/icons/cube-3d.js +45 -0
  493. package/src/components/common/icons/cursor-click.js +49 -0
  494. package/src/components/common/icons/data-table.js +45 -0
  495. package/src/components/common/icons/db.js +45 -0
  496. package/src/components/common/icons/delete.js +44 -0
  497. package/src/components/common/icons/docs.js +46 -0
  498. package/src/components/common/icons/drag-n-drop.js +44 -0
  499. package/src/components/common/icons/draw-polygon.js +60 -0
  500. package/src/components/common/icons/email.js +45 -0
  501. package/src/components/common/icons/expand.js +45 -0
  502. package/src/components/common/icons/eye-seen.js +44 -0
  503. package/src/components/common/icons/eye-unseen.js +44 -0
  504. package/src/components/common/icons/file-type.js +57 -0
  505. package/src/components/common/icons/file.js +43 -0
  506. package/src/components/common/icons/files.js +42 -0
  507. package/src/components/common/icons/filter-funnel.js +43 -0
  508. package/src/components/common/icons/free-window.js +53 -0
  509. package/src/components/common/icons/gear.js +45 -0
  510. package/src/components/common/icons/hash.js +43 -0
  511. package/src/components/common/icons/histogram.js +47 -0
  512. package/src/components/common/icons/index.js +96 -0
  513. package/src/components/common/icons/info.js +54 -0
  514. package/src/components/common/icons/layers.js +43 -0
  515. package/src/components/common/icons/left-arrow.js +43 -0
  516. package/src/components/common/icons/legend.js +43 -0
  517. package/src/components/common/icons/line-chart.js +45 -0
  518. package/src/components/common/icons/login.js +46 -0
  519. package/src/components/common/icons/logout.js +43 -0
  520. package/src/components/common/icons/map-icon.js +69 -0
  521. package/src/components/common/icons/map.js +69 -0
  522. package/src/components/common/icons/messages.js +43 -0
  523. package/src/components/common/icons/minus.js +45 -0
  524. package/src/components/common/icons/pause.js +43 -0
  525. package/src/components/common/icons/picture.js +43 -0
  526. package/src/components/common/icons/pin.js +43 -0
  527. package/src/components/common/icons/play.js +43 -0
  528. package/src/components/common/icons/polygon.js +74 -0
  529. package/src/components/common/icons/rectangle.js +75 -0
  530. package/src/components/common/icons/reduce.js +48 -0
  531. package/src/components/common/icons/reset.js +43 -0
  532. package/src/components/common/icons/rocket.js +43 -0
  533. package/src/components/common/icons/save.js +44 -0
  534. package/src/components/common/icons/save2.js +47 -0
  535. package/src/components/common/icons/search.js +44 -0
  536. package/src/components/common/icons/settings.js +45 -0
  537. package/src/components/common/icons/share.js +43 -0
  538. package/src/components/common/icons/split.js +63 -0
  539. package/src/components/common/icons/square-select.js +44 -0
  540. package/src/components/common/icons/swap-horizontal.js +43 -0
  541. package/src/components/common/icons/table.js +46 -0
  542. package/src/components/common/icons/trash.js +51 -0
  543. package/src/components/common/icons/upload.js +44 -0
  544. package/src/components/common/icons/vert-dots.js +50 -0
  545. package/src/components/common/icons/vert-three-dots.js +45 -0
  546. package/src/components/common/icons/warning.js +46 -0
  547. package/src/components/common/image-preview.js +111 -0
  548. package/src/components/common/info-helper.js +84 -0
  549. package/src/components/common/item-selector/accessor.js +45 -0
  550. package/src/components/common/item-selector/chickleted-input.js +143 -0
  551. package/src/components/common/item-selector/dropdown-list.js +250 -0
  552. package/src/components/common/item-selector/item-selector-submenu.js +68 -0
  553. package/src/components/common/item-selector/item-selector.d.ts +34 -0
  554. package/src/components/common/item-selector/item-selector.js +360 -0
  555. package/src/components/common/item-selector/typeahead.js +507 -0
  556. package/src/components/common/line-chart.js +134 -0
  557. package/src/components/common/loading-spinner.js +64 -0
  558. package/src/components/common/logo.js +92 -0
  559. package/src/components/common/map-layer-selector.d.ts +10 -0
  560. package/src/components/common/map-layer-selector.js +54 -0
  561. package/src/components/common/modal.js +233 -0
  562. package/src/components/common/portaled.js +264 -0
  563. package/src/components/common/progress-bar.d.ts +13 -0
  564. package/src/components/common/progress-bar.js +49 -0
  565. package/src/components/common/range-brush.js +256 -0
  566. package/src/components/common/range-plot.js +139 -0
  567. package/src/components/common/range-slider.js +299 -0
  568. package/src/components/common/slider/mouse-event.js +97 -0
  569. package/src/components/common/slider/slider-bar-handle.js +97 -0
  570. package/src/components/common/slider/slider-handle.js +181 -0
  571. package/src/components/common/slider/slider.js +213 -0
  572. package/src/components/common/styled-components.js +657 -0
  573. package/src/components/common/switch.js +50 -0
  574. package/src/components/common/time-range-slider-time-title.js +76 -0
  575. package/src/components/common/time-range-slider.js +163 -0
  576. package/src/components/common/time-slider-marker.js +168 -0
  577. package/src/components/common/toolbar-item.d.ts +14 -0
  578. package/src/components/common/toolbar-item.js +83 -0
  579. package/src/components/common/toolbar.js +45 -0
  580. package/src/components/common/vertical-toolbar.js +35 -0
  581. package/src/components/container.js +173 -0
  582. package/src/components/context.d.ts +10 -0
  583. package/src/components/context.js +32 -0
  584. package/src/components/editor/constants.js +39 -0
  585. package/src/components/editor/editor.js +218 -0
  586. package/src/components/editor/feature-action-panel.js +143 -0
  587. package/src/components/editor/feature-styles.js +75 -0
  588. package/src/components/editor/handle-style.js +89 -0
  589. package/src/components/filters/components.js +28 -0
  590. package/src/components/filters/filter-panels/filter-panel-types.d.ts +28 -0
  591. package/src/components/filters/filter-panels/filter-panel-with-field-select.js +124 -0
  592. package/src/components/filters/filter-panels/multi-select-filter-panel.js +75 -0
  593. package/src/components/filters/filter-panels/new-filter-panel.js +99 -0
  594. package/src/components/filters/filter-panels/polygon-filter-panel.js +96 -0
  595. package/src/components/filters/filter-panels/range-filter-panel.js +75 -0
  596. package/src/components/filters/filter-panels/single-select-filter-panel.js +75 -0
  597. package/src/components/filters/filter-panels/time-range-filter-panel.js +95 -0
  598. package/src/components/filters/index.js +25 -0
  599. package/src/components/filters/multi-select-filter.js +36 -0
  600. package/src/components/filters/polygon-filter.d.ts +13 -0
  601. package/src/components/filters/polygon-filter.js +73 -0
  602. package/src/components/filters/range-filter.js +43 -0
  603. package/src/components/filters/single-select-filter.js +49 -0
  604. package/src/components/filters/time-range-filter.js +68 -0
  605. package/src/components/filters/time-widget.js +228 -0
  606. package/src/components/geocoder/geocoder.d.ts +33 -0
  607. package/src/components/geocoder/geocoder.js +272 -0
  608. package/src/components/geocoder-panel.js +191 -0
  609. package/src/components/index.js +247 -0
  610. package/src/components/injector.js +161 -0
  611. package/src/components/kepler-gl.d.ts +60 -0
  612. package/src/components/kepler-gl.js +525 -0
  613. package/src/components/map/coordinate-info.js +53 -0
  614. package/src/components/map/layer-hover-info.d.ts +12 -0
  615. package/src/components/map/layer-hover-info.js +185 -0
  616. package/src/components/map/layer-selector-panel.d.ts +16 -0
  617. package/src/components/map/layer-selector-panel.js +106 -0
  618. package/src/components/map/locale-panel.d.ts +12 -0
  619. package/src/components/map/locale-panel.js +91 -0
  620. package/src/components/map/map-control-panel.d.ts +11 -0
  621. package/src/components/map/map-control-panel.js +98 -0
  622. package/src/components/map/map-control-toolbar.js +33 -0
  623. package/src/components/map/map-control-tooltip.d.ts +8 -0
  624. package/src/components/map/map-control-tooltip.js +40 -0
  625. package/src/components/map/map-control.d.ts +37 -0
  626. package/src/components/map/map-control.js +100 -0
  627. package/src/components/map/map-draw-panel.d.ts +16 -0
  628. package/src/components/map/map-draw-panel.js +125 -0
  629. package/src/components/map/map-legend-panel.d.ts +20 -0
  630. package/src/components/map/map-legend-panel.js +100 -0
  631. package/src/components/map/map-legend.d.ts +58 -0
  632. package/src/components/map/map-legend.js +228 -0
  633. package/src/components/map/map-popover.d.ts +28 -0
  634. package/src/components/map/map-popover.js +250 -0
  635. package/src/components/map/split-map-button.d.ts +19 -0
  636. package/src/components/map/split-map-button.js +82 -0
  637. package/src/components/map/toggle-3d-button.d.ts +16 -0
  638. package/src/components/map/toggle-3d-button.js +75 -0
  639. package/src/components/map-container.d.ts +18 -0
  640. package/src/components/map-container.js +502 -0
  641. package/src/components/maps-layout.d.ts +5 -0
  642. package/src/components/maps-layout.js +40 -0
  643. package/src/components/modal-container.d.ts +38 -0
  644. package/src/components/modal-container.js +545 -0
  645. package/src/components/modals/add-map-style-modal.js +301 -0
  646. package/src/components/modals/cloud-tile.js +147 -0
  647. package/src/components/modals/data-table-modal.js +217 -0
  648. package/src/components/modals/delete-data-modal.js +48 -0
  649. package/src/components/modals/error-display.js +39 -0
  650. package/src/components/modals/export-data-modal.js +193 -0
  651. package/src/components/modals/export-image-modal.d.ts +21 -0
  652. package/src/components/modals/export-image-modal.js +144 -0
  653. package/src/components/modals/export-map-modal/components.js +42 -0
  654. package/src/components/modals/export-map-modal/export-html-map.d.ts +21 -0
  655. package/src/components/modals/export-map-modal/export-html-map.js +145 -0
  656. package/src/components/modals/export-map-modal/export-json-map.js +100 -0
  657. package/src/components/modals/export-map-modal/export-map-modal.js +114 -0
  658. package/src/components/modals/image-modal-container.d.ts +13 -0
  659. package/src/components/modals/image-modal-container.js +76 -0
  660. package/src/components/modals/load-data-modal.d.ts +30 -0
  661. package/src/components/modals/load-data-modal.js +94 -0
  662. package/src/components/modals/load-storage-map.js +381 -0
  663. package/src/components/modals/loading-dialog.js +69 -0
  664. package/src/components/modals/modal-dialog.js +25 -0
  665. package/src/components/modals/modal-tabs.js +126 -0
  666. package/src/components/modals/overwrite-map-modal.d.ts +18 -0
  667. package/src/components/modals/overwrite-map-modal.js +97 -0
  668. package/src/components/modals/provider-modal-container.d.ts +12 -0
  669. package/src/components/modals/provider-modal-container.js +60 -0
  670. package/src/components/modals/save-map-modal.d.ts +32 -0
  671. package/src/components/modals/save-map-modal.js +244 -0
  672. package/src/components/modals/share-map-modal.js +208 -0
  673. package/src/components/modals/status-panel.js +95 -0
  674. package/src/components/modals/storage-map-viewer.js +177 -0
  675. package/src/components/notification-panel/notification-item.js +132 -0
  676. package/src/components/notification-panel.js +72 -0
  677. package/src/components/performance.js +103 -0
  678. package/src/components/plot-container.js +228 -0
  679. package/src/components/side-panel/cloud-storage-dropdown.js +52 -0
  680. package/src/components/side-panel/common/dataset-info.js +45 -0
  681. package/src/components/side-panel/common/dataset-tag.js +55 -0
  682. package/src/components/side-panel/common/dataset-title.js +146 -0
  683. package/src/components/side-panel/common/source-data-catalog.js +61 -0
  684. package/src/components/side-panel/common/source-data-selector.js +79 -0
  685. package/src/components/side-panel/custom-panel.js +50 -0
  686. package/src/components/side-panel/filter-manager.js +105 -0
  687. package/src/components/side-panel/filter-panel/filter-panel-header.js +83 -0
  688. package/src/components/side-panel/filter-panel/filter-panel.js +126 -0
  689. package/src/components/side-panel/interaction-manager.js +46 -0
  690. package/src/components/side-panel/interaction-panel/brush-config.js +51 -0
  691. package/src/components/side-panel/interaction-panel/interaction-panel.js +115 -0
  692. package/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +199 -0
  693. package/src/components/side-panel/interaction-panel/tooltip-config.js +190 -0
  694. package/src/components/side-panel/layer-manager.js +290 -0
  695. package/src/components/side-panel/layer-panel/color-dimension-scale-selector.js +33 -0
  696. package/src/components/side-panel/layer-panel/color-palette.js +90 -0
  697. package/src/components/side-panel/layer-panel/color-range-selector.js +322 -0
  698. package/src/components/side-panel/layer-panel/color-selector.js +193 -0
  699. package/src/components/side-panel/layer-panel/column-selector.js +70 -0
  700. package/src/components/side-panel/layer-panel/custom-markers-config-group.js +30 -0
  701. package/src/components/side-panel/layer-panel/custom-palette.js +296 -0
  702. package/src/components/side-panel/layer-panel/custom-picker.js +88 -0
  703. package/src/components/side-panel/layer-panel/dimension-scale-selector.js +48 -0
  704. package/src/components/side-panel/layer-panel/layer-aggregation-resolution.js +13 -0
  705. package/src/components/side-panel/layer-panel/layer-column-config.js +113 -0
  706. package/src/components/side-panel/layer-panel/layer-config-group.js +237 -0
  707. package/src/components/side-panel/layer-panel/layer-configurator.js +1317 -0
  708. package/src/components/side-panel/layer-panel/layer-panel-header.js +236 -0
  709. package/src/components/side-panel/layer-panel/layer-panel.js +171 -0
  710. package/src/components/side-panel/layer-panel/layer-type-dropdown-list.js +105 -0
  711. package/src/components/side-panel/layer-panel/layer-type-list-item.js +83 -0
  712. package/src/components/side-panel/layer-panel/layer-type-selector.js +89 -0
  713. package/src/components/side-panel/layer-panel/layer-visibility-by-zoom.js +123 -0
  714. package/src/components/side-panel/layer-panel/single-color-palette.js +98 -0
  715. package/src/components/side-panel/layer-panel/text-label-panel.js +179 -0
  716. package/src/components/side-panel/layer-panel/vis-config-by-field-selector.js +163 -0
  717. package/src/components/side-panel/layer-panel/vis-config-slider.js +82 -0
  718. package/src/components/side-panel/layer-panel/vis-config-switch.js +87 -0
  719. package/src/components/side-panel/map-manager.js +114 -0
  720. package/src/components/side-panel/map-style-panel/map-layer-selector.js +128 -0
  721. package/src/components/side-panel/map-style-panel/map-style-selector.js +111 -0
  722. package/src/components/side-panel/panel-dropdown.js +53 -0
  723. package/src/components/side-panel/panel-header-action.js +106 -0
  724. package/src/components/side-panel/panel-header.js +321 -0
  725. package/src/components/side-panel/panel-tab.js +62 -0
  726. package/src/components/side-panel/panel-title.js +32 -0
  727. package/src/components/side-panel/panel-toggle.js +70 -0
  728. package/src/components/side-panel/side-bar.js +136 -0
  729. package/src/components/side-panel.d.ts +33 -0
  730. package/src/components/side-panel.js +253 -0
  731. package/src/connect/keplergl-connect.js +47 -0
  732. package/src/connect/with-local-selector.d.ts +11 -0
  733. package/src/connect/with-local-selector.js +67 -0
  734. package/src/constants/action-types.d.ts +135 -0
  735. package/src/constants/action-types.js +184 -0
  736. package/src/constants/color-palette.js +553 -0
  737. package/src/constants/color-ranges.js +63 -0
  738. package/src/constants/custom-color-ranges.js +551 -0
  739. package/src/constants/default-settings.js +991 -0
  740. package/src/constants/index.js +80 -0
  741. package/src/constants/keyevent.js +36 -0
  742. package/src/constants/tooltip.js +198 -0
  743. package/src/constants/user-feedbacks.js +32 -0
  744. package/src/constants/user-guides.js +32 -0
  745. package/src/deckgl-layers/3d-building-layer/3d-building-layer.js +56 -0
  746. package/src/deckgl-layers/3d-building-layer/3d-building-utils.js +192 -0
  747. package/src/deckgl-layers/cluster-layer/cluster-layer.js +255 -0
  748. package/src/deckgl-layers/column-layer/enhanced-column-layer.js +63 -0
  749. package/src/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +70 -0
  750. package/src/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +70 -0
  751. package/src/deckgl-layers/layer-utils/cluster-utils.js +76 -0
  752. package/src/deckgl-layers/layer-utils/cpu-aggregator.js +583 -0
  753. package/src/deckgl-layers/layer-utils/shader-utils.js +41 -0
  754. package/src/deckgl-layers/line-layer/line-layer.js +122 -0
  755. package/src/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +57 -0
  756. package/src/deckgl-layers/svg-icon-layer/svg-icon-layer.js +85 -0
  757. package/src/index.js +52 -0
  758. package/src/layers/aggregation-layer.js +356 -0
  759. package/src/layers/arc-layer/arc-layer-icon.js +67 -0
  760. package/src/layers/arc-layer/arc-layer.js +221 -0
  761. package/src/layers/base-layer.js +1439 -0
  762. package/src/layers/cluster-layer/cluster-layer-icon.js +71 -0
  763. package/src/layers/cluster-layer/cluster-layer.js +125 -0
  764. package/src/layers/default-layer-icon.js +50 -0
  765. package/src/layers/geojson-layer/geojson-layer-icon.js +68 -0
  766. package/src/layers/geojson-layer/geojson-layer.js +344 -0
  767. package/src/layers/geojson-layer/geojson-utils.js +179 -0
  768. package/src/layers/grid-layer/grid-layer-icon.js +53 -0
  769. package/src/layers/grid-layer/grid-layer.js +95 -0
  770. package/src/layers/grid-layer/grid-utils.js +71 -0
  771. package/src/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +48 -0
  772. package/src/layers/h3-hexagon-layer/h3-hexagon-layer.js +264 -0
  773. package/src/layers/h3-hexagon-layer/h3-utils.js +65 -0
  774. package/src/layers/heatmap-layer/heatmap-layer-icon.js +64 -0
  775. package/src/layers/heatmap-layer/heatmap-layer.js +226 -0
  776. package/src/layers/hexagon-layer/hexagon-layer-icon.js +74 -0
  777. package/src/layers/hexagon-layer/hexagon-layer.js +95 -0
  778. package/src/layers/hexagon-layer/hexagon-utils.js +63 -0
  779. package/src/layers/icon-layer/icon-info-modal.js +155 -0
  780. package/src/layers/icon-layer/icon-layer-icon.js +56 -0
  781. package/src/layers/icon-layer/icon-layer.js +324 -0
  782. package/src/layers/index.d.ts +126 -0
  783. package/src/layers/index.js +72 -0
  784. package/src/layers/layer-factory.d.ts +148 -0
  785. package/src/layers/layer-factory.js +480 -0
  786. package/src/layers/layer-text-label.js +62 -0
  787. package/src/layers/layer-update.js +71 -0
  788. package/src/layers/line-layer/line-layer-icon.js +69 -0
  789. package/src/layers/line-layer/line-layer.js +161 -0
  790. package/src/layers/mapbox-utils.js +195 -0
  791. package/src/layers/mapboxgl-layer.js +154 -0
  792. package/src/layers/point-layer/point-layer-icon.js +51 -0
  793. package/src/layers/point-layer/point-layer.js +414 -0
  794. package/src/layers/s2-geometry-layer/s2-geometry-layer.js +265 -0
  795. package/src/layers/s2-geometry-layer/s2-layer-icon.js +47 -0
  796. package/src/layers/s2-geometry-layer/s2-utils.js +36 -0
  797. package/src/layers/scenegraph-layer/scenegraph-info-modal.js +97 -0
  798. package/src/layers/scenegraph-layer/scenegraph-layer-icon.js +144 -0
  799. package/src/layers/scenegraph-layer/scenegraph-layer.js +182 -0
  800. package/src/layers/trip-layer/trip-info-modal.js +82 -0
  801. package/src/layers/trip-layer/trip-layer-icon.js +62 -0
  802. package/src/layers/trip-layer/trip-layer.js +295 -0
  803. package/src/layers/trip-layer/trip-utils.js +169 -0
  804. package/src/layers/types.js +37 -0
  805. package/src/localization/en.js +501 -0
  806. package/src/localization/formatted-message.js +33 -0
  807. package/src/localization/index.js +32 -0
  808. package/src/localization/locales.js +46 -0
  809. package/src/middleware/index.js +34 -0
  810. package/src/processors/data-processor.d.ts +57 -0
  811. package/src/processors/data-processor.js +684 -0
  812. package/src/processors/file-handler.d.ts +46 -0
  813. package/src/processors/file-handler.js +220 -0
  814. package/src/processors/index.js +44 -0
  815. package/src/reducers/combined-updaters.d.ts +26 -0
  816. package/src/reducers/combined-updaters.js +198 -0
  817. package/src/reducers/composer-helpers.d.ts +32 -0
  818. package/src/reducers/composer-helpers.js +70 -0
  819. package/src/reducers/composers.js +33 -0
  820. package/src/reducers/core.d.ts +25 -0
  821. package/src/reducers/core.js +97 -0
  822. package/src/reducers/index.d.ts +118 -0
  823. package/src/reducers/index.js +53 -0
  824. package/src/reducers/map-state-updaters.d.ts +64 -0
  825. package/src/reducers/map-state-updaters.js +224 -0
  826. package/src/reducers/map-state.js +47 -0
  827. package/src/reducers/map-style-updaters.d.ts +76 -0
  828. package/src/reducers/map-style-updaters.js +541 -0
  829. package/src/reducers/map-style.js +53 -0
  830. package/src/reducers/provider-state-updaters.d.ts +88 -0
  831. package/src/reducers/provider-state-updaters.js +428 -0
  832. package/src/reducers/provider-state.js +53 -0
  833. package/src/reducers/root.js +230 -0
  834. package/src/reducers/types.d.ts +10 -0
  835. package/src/reducers/ui-state-updaters.d.ts +198 -0
  836. package/src/reducers/ui-state-updaters.js +766 -0
  837. package/src/reducers/ui-state.js +73 -0
  838. package/src/reducers/vis-state-merger.d.ts +78 -0
  839. package/src/reducers/vis-state-merger.js +545 -0
  840. package/src/reducers/vis-state-selectors.js +35 -0
  841. package/src/reducers/vis-state-updaters.d.ts +534 -0
  842. package/src/reducers/vis-state-updaters.js +2137 -0
  843. package/src/reducers/vis-state.js +155 -0
  844. package/src/schemas/dataset-schema.js +141 -0
  845. package/src/schemas/index.d.ts +24 -0
  846. package/src/schemas/index.js +42 -0
  847. package/src/schemas/map-state-schema.js +52 -0
  848. package/src/schemas/map-style-schema.js +95 -0
  849. package/src/schemas/schema-manager.d.ts +229 -0
  850. package/src/schemas/schema-manager.js +228 -0
  851. package/src/schemas/schema-utils.js +54 -0
  852. package/src/schemas/schema.d.ts +47 -0
  853. package/src/schemas/schema.js +90 -0
  854. package/src/schemas/versions.d.ts +23 -0
  855. package/src/schemas/versions.js +28 -0
  856. package/src/schemas/vis-state-schema.js +731 -0
  857. package/src/styles/base.js +1620 -0
  858. package/src/styles/index.js +22 -0
  859. package/src/styles/media-breakpoints.js +47 -0
  860. package/src/tasks/tasks.js +92 -0
  861. package/src/templates/export-map-html.js +262 -0
  862. package/src/typedefs/README.md +3 -0
  863. package/src/typedefs/deck.gl__core.d.ts +64 -0
  864. package/src/typedefs/deck.gl__mesh-layers.d.ts +33 -0
  865. package/src/utils/aggregate-utils.js +71 -0
  866. package/src/utils/color-utils.js +106 -0
  867. package/src/utils/data-scale-utils.d.ts +26 -0
  868. package/src/utils/data-scale-utils.js +61 -0
  869. package/src/utils/data-utils.d.ts +45 -0
  870. package/src/utils/data-utils.js +428 -0
  871. package/src/utils/dataset-utils.d.ts +10 -0
  872. package/src/utils/dataset-utils.js +255 -0
  873. package/src/utils/dom-to-image.js +533 -0
  874. package/src/utils/dom-utils.js +354 -0
  875. package/src/utils/export-utils.js +247 -0
  876. package/src/utils/filter-utils.d.ts +192 -0
  877. package/src/utils/filter-utils.js +1114 -0
  878. package/src/utils/gl-utils.js +42 -0
  879. package/src/utils/gpu-filter-utils.d.ts +28 -0
  880. package/src/utils/gpu-filter-utils.js +253 -0
  881. package/src/utils/index.d.ts +5 -0
  882. package/src/utils/index.js +55 -0
  883. package/src/utils/interaction-utils.d.ts +36 -0
  884. package/src/utils/interaction-utils.js +185 -0
  885. package/src/utils/layer-utils.d.ts +78 -0
  886. package/src/utils/layer-utils.js +205 -0
  887. package/src/utils/locale-utils.js +59 -0
  888. package/src/utils/map-info-utils.js +29 -0
  889. package/src/utils/map-style-utils/mapbox-gl-style-editor.js +201 -0
  890. package/src/utils/map-style-utils/mapbox-utils.js +28 -0
  891. package/src/utils/mapbox-utils.js +27 -0
  892. package/src/utils/notifications-utils.js +83 -0
  893. package/src/utils/observe-dimensions.d.ts +18 -0
  894. package/src/utils/observe-dimensions.js +115 -0
  895. package/src/utils/projection-utils.js +72 -0
  896. package/src/utils/searcher-utils.js +37 -0
  897. package/src/utils/split-map-utils.js +104 -0
  898. package/src/utils/table-utils/UPGRADE-data-container.md +38 -0
  899. package/src/utils/table-utils/data-container-interface.d.ts +140 -0
  900. package/src/utils/table-utils/data-container-utils.d.ts +43 -0
  901. package/src/utils/table-utils/data-container-utils.js +61 -0
  902. package/src/utils/table-utils/data-row.d.ts +65 -0
  903. package/src/utils/table-utils/data-row.js +54 -0
  904. package/src/utils/table-utils/index.d.ts +1 -0
  905. package/src/utils/table-utils/index.js +21 -0
  906. package/src/utils/table-utils/indexed-data-container.d.ts +26 -0
  907. package/src/utils/table-utils/indexed-data-container.js +152 -0
  908. package/src/utils/table-utils/kepler-table.d.ts +114 -0
  909. package/src/utils/table-utils/kepler-table.js +486 -0
  910. package/src/utils/table-utils/row-data-container.d.ts +30 -0
  911. package/src/utils/table-utils/row-data-container.js +151 -0
  912. package/src/utils/utils.js +202 -0
  913. package/styles.js +21 -0
@@ -0,0 +1,115 @@
1
+ // Copyright (c) 2022 Uber Technologies, Inc.
2
+ //
3
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ // of this software and associated documentation files (the "Software"), to deal
5
+ // in the Software without restriction, including without limitation the rights
6
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ // copies of the Software, and to permit persons to whom the Software is
8
+ // furnished to do so, subject to the following conditions:
9
+ //
10
+ // The above copyright notice and this permission notice shall be included in
11
+ // all copies or substantial portions of the Software.
12
+ //
13
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ // THE SOFTWARE.
20
+
21
+ import throttle from 'lodash.throttle';
22
+ import {useEffect, useRef, useState} from 'react';
23
+ import ResizeObserver from 'resize-observer-polyfill';
24
+
25
+ const DEFAULT_THROTTLE_DELAY = 100;
26
+
27
+ // Using a single ResizeObserver for all elements can be 10x
28
+ // more performant than using a separate ResizeObserver per element
29
+ // https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/z6ienONUb5A/F5-VcUZtBAAJ
30
+ let _observerRegistry;
31
+
32
+ function getObserverRegistry() {
33
+ if (_observerRegistry === undefined) {
34
+ const callbacks = new Map();
35
+ const resizeObserver = new ResizeObserver((entries, observer) => {
36
+ for (const entry of entries) {
37
+ callbacks.get(entry.target)?.(entry, observer);
38
+ }
39
+ });
40
+ _observerRegistry = {
41
+ subscribe(target, callback) {
42
+ resizeObserver.observe(target);
43
+ callbacks.set(target, callback);
44
+ },
45
+ unsubscribe(target) {
46
+ resizeObserver.unobserve(target);
47
+ callbacks.delete(target);
48
+ }
49
+ };
50
+ }
51
+ return _observerRegistry;
52
+ }
53
+
54
+ export function observeDimensions(target, handleResize, throttleDelay = DEFAULT_THROTTLE_DELAY) {
55
+ const registry = getObserverRegistry();
56
+ const handler = throttleDelay > 0 ? throttle(handleResize, throttleDelay) : handleResize;
57
+ registry.subscribe(target, entry => handler(getSize(target, entry)));
58
+ }
59
+
60
+ export function unobserveDimensions(target) {
61
+ const registry = getObserverRegistry();
62
+ registry.unsubscribe(target);
63
+ }
64
+
65
+ function getSize(node, entry) {
66
+ if (entry.contentRect) {
67
+ const {width, height} = entry.contentRect;
68
+ return {width, height};
69
+ }
70
+ if (node.getBoundingClientRect) {
71
+ const {width, height} = node.getBoundingClientRect();
72
+ return {width, height};
73
+ }
74
+ return null;
75
+ }
76
+
77
+ /**
78
+ * Usage example:
79
+ * const [ref, dimensions] = useDimensions<HTMLDivElement>();
80
+ *
81
+ * @param throttleDelay
82
+ * @returns {[React.RefObject<Element>, {width: number, height: number} | null]}
83
+ */
84
+ export default function useDimensions(throttleDelay = DEFAULT_THROTTLE_DELAY) {
85
+ const ref = useRef(null);
86
+ const [size, setSize] = useState(null);
87
+
88
+ useEffect(() => {
89
+ const {current} = ref;
90
+ if (!current) {
91
+ return;
92
+ }
93
+
94
+ let didUnobserve = false;
95
+ observeDimensions(
96
+ current,
97
+ entry => {
98
+ if (didUnobserve) return;
99
+ const newSize = getSize(current, entry);
100
+ if (newSize) {
101
+ // @ts-ignore
102
+ setSize(newSize);
103
+ }
104
+ },
105
+ throttleDelay
106
+ );
107
+ return () => {
108
+ didUnobserve = true;
109
+ unobserveDimensions(current);
110
+ };
111
+ // eslint-disable-next-line react-hooks/exhaustive-deps
112
+ }, [throttleDelay]);
113
+
114
+ return [ref, size];
115
+ }
@@ -0,0 +1,72 @@
1
+ // Copyright (c) 2022 Uber Technologies, Inc.
2
+ //
3
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ // of this software and associated documentation files (the "Software"), to deal
5
+ // in the Software without restriction, including without limitation the rights
6
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ // copies of the Software, and to permit persons to whom the Software is
8
+ // furnished to do so, subject to the following conditions:
9
+ //
10
+ // The above copyright notice and this permission notice shall be included in
11
+ // all copies or substantial portions of the Software.
12
+ //
13
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ // THE SOFTWARE.
20
+
21
+ import geoViewport from '@mapbox/geo-viewport';
22
+ import Console from 'global/console';
23
+
24
+ const MAPBOX_TILE_SIZE = 512;
25
+
26
+ function isLat(num) {
27
+ return Number.isFinite(num) && num <= 90 && num >= -90;
28
+ }
29
+ function isLng(num) {
30
+ return Number.isFinite(num) && num <= 180 && num >= -180;
31
+ }
32
+
33
+ /**
34
+ * bounds should be [minLng, minLat, maxLng, maxLat]
35
+ * @param {*} bounds
36
+ */
37
+ export function validateBounds(bounds) {
38
+ // array: [ -180, -85.05112877980659, 180, 85.0511287798066 ]
39
+ // validate bounds
40
+ if (
41
+ Array.isArray(bounds) &&
42
+ bounds.length === 4 &&
43
+ [bounds[0], bounds[2]].every(isLng) &&
44
+ [bounds[1], bounds[3]].every(isLat)
45
+ ) {
46
+ return bounds;
47
+ }
48
+ return null;
49
+ }
50
+
51
+ export function getCenterAndZoomFromBounds(bounds, {width, height}) {
52
+ const validBounds = validateBounds(bounds);
53
+ if (!validBounds) {
54
+ Console.warn('invalid map bounds provided');
55
+ return null;
56
+ }
57
+
58
+ // viewport(bounds, dimensions, minzoom, maxzoom, tileSize, allowFloat)
59
+ const {zoom} = geoViewport.viewport(
60
+ bounds,
61
+ [width, height],
62
+ undefined,
63
+ undefined,
64
+ MAPBOX_TILE_SIZE
65
+ );
66
+ // center being calculated by geo-vieweport.viewport has a complex logic that
67
+ // projects and then unprojects the coordinates to determine the center
68
+ // Calculating a simple average instead as that is the expected behavior in most of cases
69
+ const center = [(bounds[0] + bounds[2]) / 2, (bounds[1] + bounds[3]) / 2];
70
+
71
+ return {zoom, center};
72
+ }
@@ -0,0 +1,37 @@
1
+ // Copyright (c) 2022 Uber Technologies, Inc.
2
+ //
3
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ // of this software and associated documentation files (the "Software"), to deal
5
+ // in the Software without restriction, including without limitation the rights
6
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ // copies of the Software, and to permit persons to whom the Software is
8
+ // furnished to do so, subject to the following conditions:
9
+ //
10
+ // The above copyright notice and this permission notice shall be included in
11
+ // all copies or substantial portions of the Software.
12
+ //
13
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ // THE SOFTWARE.
20
+
21
+ /* eslint-disable callback-return */
22
+ export function simpleSearcher(autofillValues, page, query, cb) {
23
+ var regex = new RegExp(query, 'i');
24
+ var foundQuery = false;
25
+ var matches = (autofillValues || []).filter(function _filter(item) {
26
+ var tag = item.name;
27
+ foundQuery = foundQuery || tag === query;
28
+ return tag && regex.test(tag);
29
+ });
30
+
31
+ if (cb) {
32
+ cb(matches);
33
+ }
34
+
35
+ return matches;
36
+ }
37
+ /* eslint-enable callback-return */
@@ -0,0 +1,104 @@
1
+ // Copyright (c) 2022 Uber Technologies, Inc.
2
+ //
3
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ // of this software and associated documentation files (the "Software"), to deal
5
+ // in the Software without restriction, including without limitation the rights
6
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ // copies of the Software, and to permit persons to whom the Software is
8
+ // furnished to do so, subject to the following conditions:
9
+ //
10
+ // The above copyright notice and this permission notice shall be included in
11
+ // all copies or substantial portions of the Software.
12
+ //
13
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ // THE SOFTWARE.
20
+
21
+ import cloneDeep from 'lodash.clonedeep';
22
+
23
+ /**
24
+ * Add new layers to both existing maps
25
+ * @param {Object} splitMaps
26
+ * @param {Object|Array<Object>} layers
27
+ * @returns {Array<Object>} new splitMaps
28
+ */
29
+ export function addNewLayersToSplitMap(splitMaps, layers) {
30
+ const newLayers = Array.isArray(layers) ? layers : [layers];
31
+
32
+ if (!splitMaps.length || !newLayers.length) {
33
+ return splitMaps;
34
+ }
35
+
36
+ // add new layer to both maps,
37
+ // don't override, if layer.id is already in splitMaps
38
+ return splitMaps.map(settings => ({
39
+ ...settings,
40
+ layers: {
41
+ ...settings.layers,
42
+ ...newLayers.reduce(
43
+ (accu, newLayer) =>
44
+ // @ts-ignore
45
+ newLayer.id in settings.layers || !newLayer.config.isVisible
46
+ ? accu
47
+ : {
48
+ ...accu,
49
+ [newLayer.id]: newLayer.config.isVisible
50
+ },
51
+ {}
52
+ )
53
+ }
54
+ }));
55
+ }
56
+
57
+ /**
58
+ * Remove an existing layer from split map settings
59
+ * @param {Object} splitMaps
60
+ * @param {Object} layer
61
+ * @returns {Object} Maps of custom layer objects
62
+ */
63
+ export function removeLayerFromSplitMaps(splitMaps, layer) {
64
+ if (!splitMaps.length) {
65
+ return splitMaps;
66
+ }
67
+ return splitMaps.map(settings => {
68
+ // eslint-disable-next-line no-unused-vars
69
+ const {[layer.id]: _, ...newLayers} = settings.layers;
70
+ return {
71
+ ...settings,
72
+ layers: newLayers
73
+ };
74
+ });
75
+ }
76
+
77
+ /**
78
+ * This method will compute the default maps layer settings
79
+ * based on the current layers visibility
80
+ * @param {Array<Object>} layers
81
+ * @returns {Array<Object>} layer visibility for each panel
82
+ */
83
+ export function getInitialMapLayersForSplitMap(layers) {
84
+ return layers
85
+ .filter(layer => layer.config.isVisible)
86
+ .reduce(
87
+ (newLayers, currentLayer) => ({
88
+ ...newLayers,
89
+ [currentLayer.id]: currentLayer.config.isVisible
90
+ }),
91
+ {}
92
+ );
93
+ }
94
+
95
+ /**
96
+ * This method will get default splitMap settings based on existing layers
97
+ * @param {Array<Object>} layers
98
+ * @returns {Array<Object>} split map settings
99
+ */
100
+ export function computeSplitMapLayers(layers) {
101
+ const mapLayers = getInitialMapLayersForSplitMap(layers);
102
+
103
+ return [{layers: mapLayers}, {layers: cloneDeep(mapLayers)}];
104
+ }
@@ -0,0 +1,38 @@
1
+ # Upgrade Guide (Data Containers)
2
+
3
+ ### Major changes
4
+ - `KeplerTable.allData: any[][]` is substituted with `KeplerTable.dataContainer: DataContainerInterface`.
5
+
6
+ ### Step by step upgrade
7
+ | File | Function | Change |
8
+ | ---- | --- | --- |
9
+ | base-layer.js & extended layers | accessors | Accessors in default Kepler layers now expect a data container as one of parameters: ```const pointPosAccessor = config => dc => d => {return ...}``` where `dc` is an instance of `DataContainerInterface`, and `d` is an object that is expected to contain an index of a row in the data container. |
10
+ | | updateLayerMeta() | 1st parameter has to be an instance of `DataContainerInterface`. |
11
+ | | getPointsBounds() | 1st parameter has to be an instance of `DataContainerInterface`. |
12
+ | | calculateDataAttribute() | 1st parameter has to be an instance of `KeplerTable`. |
13
+ | | getAttributeAccessors() | 1st parameter is now an object that to contains `dataContainer: : DataContainerInterface`. |
14
+ | | getHoverData() | New 2nd parameter, an instance of `DataContainerInterface`. |
15
+ | | getPositionAccessor() | 1st parameter has to be an instance of `DataContainerInterface`. |
16
+ | | setInitialLayerConfig() | 1st parameter is now object expected to contain `dataContainer: : DataContainerInterface`. |
17
+ | | findDefaultLayerProps() | 2nd parameter has to be an instance of `DataContainerInterface`. |
18
+ | cell-size.js | renderedSize() | `text.rows` is substituted with `text.dataContainer: DataContainerInterface`. |
19
+ | data-table/index.js | | `DataTable.props.rows` is substituted with `DataTable.props.dataContainer: DataContainerInterface`. |
20
+ | layer-text-label.js | formatTextLabelData() | `dataContainer: DataContainerInterface` is expected as part of the 1st parameter. |
21
+ | geojson-utils.js | getGeojsonDataMaps() | 1st parameter has to be an instance of `DataContainerInterface`. |
22
+ | h3-utils.js | isHexField() | 3rd parameter has to be an instance of `DataContainerInterface`. |
23
+ | | getHexFields() | 2nd parameter has to be an instance of `DataContainerInterface`. |
24
+ | mapbox-utils.js | geoJsonFromData() | `allData` is removed from the parameter list. `getGeometry`, `getProperties` parameters expect `{index}` object as input parameter. |
25
+ | trip-utils.js | isTripGeoJsonField() | 1st parameter has to be an instance of `DataContainerInterface`. |
26
+ | data-processor.js | formatCsv() | `data` parameter has to be an instance of `DataContainerInterface`. |
27
+ | data-scale-utils.js | getOrdinalDomain() | 1st parameter has to be an instance of `DataContainerInterface`. |
28
+ | filter-utils.js | getFilterFunction() | New 5th parameter, an instance of `DataContainerInterface`. Returned function expects `{index}` object as 1st parameter. |
29
+ | | filterDataByFilterTypes() | 2nd parameter has to be an instance of `DataContainerInterface`. |
30
+ | | getTimestampFieldDomain() | 1st parameter has to be an instance of `DataContainerInterface`. valueAccessor parameter expects a function that accepts `{index}` object as 1st parameter. |
31
+ | | getNumericFieldDomain() | 1st parameter has to be an instance of `DataContainerInterface`. valueAccessor parameter expects a function that accepts `{index}` object as 1st parameter. |
32
+ | | getPolygonFilterFunctor() | New 3rd parameter, an instance of `DataContainerInterface`. |
33
+ | interaction-utils.js | getTooltipDisplayDeltaValue() | data and primaryData parameters are now of `DataRow` type. |
34
+ | | getTooltipDisplayValue() | data parameter is now of `DataRow` type. |
35
+ | comparison-utils.js | cmpGpuFilterProp() | New 4th parameter, an instance of `DataContainerInterface`. |
36
+ | gpu-filter-utils.js | getGpuFilterProps() | Returned function now expects a data container. ```dc => (getIndex, getData) => d => {...}``` as parameter to the first call. |
37
+ | data-utils.js | maybeToDate() | New 4th parameter, an instance of `DataContainerInterface`. |
38
+ | kepler-table.js | Field.valueAccessor() | 1st parameter is expected to be an object that contain index property. |
@@ -0,0 +1,140 @@
1
+ import {DataRow, SharedRowOptions} from './data-row';
2
+
3
+ /**
4
+ * Specifies a range of rows of a data container that should be processed.
5
+ */
6
+ export type RangeOptions = {
7
+ start?: number;
8
+ end?: number;
9
+ };
10
+ export interface DataContainerInterface {
11
+ /**
12
+ * Returns the number of rows in the data container.
13
+ * @returns Number of rows in the data container.
14
+ */
15
+ numRows(): number;
16
+
17
+ /**
18
+ * Returns the number of columns in the data container.
19
+ * @returns Number of columns in the data container.
20
+ */
21
+ numColumns(): number;
22
+
23
+ /**
24
+ * Returns the value stored at the specified cell in the data container.
25
+ * @param rowIndex Row index.
26
+ * @param columnIndex Column index.
27
+ * @returns Value at the specified cell.
28
+ */
29
+ valueAt(rowIndex: number, columnIndex: number): any;
30
+
31
+ /**
32
+ * Returns the row at the specified index.
33
+ * @param rowIndex Row index.
34
+ * @param sharedRow Passed row is filled with contents from the specified index and returned without extra row allocations.
35
+ * @returns A row object.
36
+ */
37
+ row(rowIndex: number, sharedRow?: SharedRowOptions): DataRow;
38
+
39
+ /**
40
+ * Returns the specified row of the data container represented as an array.
41
+ * @param rowIndex Row index.
42
+ * @returns The specified row represented as an array.
43
+ */
44
+ rowAsArray(rowIndex: number): any[];
45
+
46
+ /**
47
+ * Returns an iterator to sequentially access all rows in the data container.
48
+ * @param sharedRow Indicates that a temporary row object should be used.
49
+ * If enabled, the returned row object is shared between calls
50
+ * and mustn't be stored without cloning.
51
+ * Passed row is filled with contents of the specified row and returned on each iteration.
52
+ * @returns An iterator to sequentially access all rows in the data container.
53
+ */
54
+ rows(sharedRow?: SharedRowOptions): Generator<DataRow, void, any>;
55
+
56
+ /**
57
+ * Returns an iterator to sequentially access all values in the specified column of the data container.
58
+ * @param columnIndex Column index.
59
+ * @returns An iterator to all values in the specified column of the data container.
60
+ */
61
+ column(columnIndex: number): Generator<any, void, any>;
62
+
63
+ /**
64
+ * Returns contents of the data container as a two-dimensional array.
65
+ * @returns Data.
66
+ */
67
+ flattenData(): any[][];
68
+
69
+ /**
70
+ * Generates an array of indices where each index represents a row in the data container.
71
+ * @returns An array of indices.
72
+ */
73
+ getPlainIndex(): number[];
74
+
75
+ /**
76
+ * Creates a new array populated with the results of calling the provided callback
77
+ * on every row in the data container.
78
+ * @param func Callback that is called for every row of the data container.
79
+ * The callback is called with the following arguments:
80
+ * - row: The current row being processed in the data container.
81
+ * - index: The index of the current row being processed in the data container.
82
+ * @param sharedRow Truthy value indicates that a shared row object should be used.
83
+ * Make sure the func callback doesn't store the row object in such case,
84
+ * and clone the row in case you need to store it.
85
+ * @param options Specify start and end row indices that should be mapped.
86
+ * @returns A new array with each element being the result of the func callback.
87
+ */
88
+ map(
89
+ func: (row: DataRow, index: number) => any,
90
+ sharedRow?: SharedRowOptions,
91
+ options?: RangeOptions
92
+ ): any[];
93
+
94
+ /**
95
+ * Creates a new array populated with the results of calling the provided callback.
96
+ * The callback is called for every row in the dataset, but only {index} object is passed.
97
+ * @param func Callback that is called for every row of the data container.
98
+ * @param options Specify start and end row indices that should be mapped.
99
+ * @returns A new array with each element being the result of the func callback.
100
+ */
101
+ mapIndex(
102
+ func: ({index: number}, dataContainer: DataContainerInterface) => any,
103
+ options?: RangeOptions
104
+ ): any[];
105
+
106
+ /**
107
+ * Returns the value of the first row in the provided data container that satisfies the provided testing function.
108
+ * @param func Function to execute on each value in the array.
109
+ * The function is called with the following arguments:
110
+ * - row: The current row being processed in the data container.
111
+ * - index: The index of the current row being processed in the data container.
112
+ * @param sharedRow Truthy value indicates that a shared row object should be used.
113
+ * Make sure the func callback doesn't store the row object in such case,
114
+ * and clone the row in case you need to store it.
115
+ * @returns First matching row or undefined if no rows satisfy the testing function.
116
+ */
117
+ find(
118
+ func: (row: DataRow, index: number) => any,
119
+ sharedRow?: SharedRowOptions
120
+ ): DataRow | undefined;
121
+
122
+ /**
123
+ * Executes a reducer function on each element of the data container, resulting in single output value.
124
+ * @param func A function to execute on each row in the data container.
125
+ * The function is called with the following arguments:
126
+ * - acc: The accumulator accumulates func's return values.
127
+ * - row: The current row being processed in the data container.
128
+ * - index: The index of the current row being processed in the data container.
129
+ * @param initialValue A value to use as the first argument to the first call of the func.
130
+ * @param sharedRow Truthy value indicates that a shared row object should be used.
131
+ * Make sure the func callback doesn't store the row object in such case,
132
+ * and clone the row in case you need to store it.
133
+ * @returns The single value that results from the reduction.
134
+ */
135
+ reduce(
136
+ func: (acc: any, row: DataRow, index: number) => any,
137
+ initialValue: any,
138
+ sharedRow?: SharedRowOptions
139
+ ): any;
140
+ }
@@ -0,0 +1,43 @@
1
+ import {Field} from './kepler-table';
2
+ import {DataContainerInterface} from './data-container-interface';
3
+
4
+ type DataForm = {
5
+ ROWS_ARRAY: string;
6
+ };
7
+
8
+ export type DataContainerOptions = {
9
+ inputDataFormat?: string; // one of DataForm
10
+ fields?: Field[];
11
+ };
12
+
13
+ /**
14
+ * Creates a data container wrapper for the data.
15
+ * @param data Data.
16
+ * @param options Options.
17
+ * @returns A data container object which is based on data and options.
18
+ */
19
+ export function createDataContainer(
20
+ data: any[],
21
+ options?: DataContainerOptions
22
+ ): DataContainerInterface;
23
+
24
+ /**
25
+ * Creates a data container wrapper around another data container.
26
+ * @param dataContainer Parent data container.
27
+ * @param indices An array of row indices in the parent data container.
28
+ */
29
+ export function createIndexedDataContainer(
30
+ dataContainer: DataContainerInterface,
31
+ indices: number[]
32
+ ): DataContainerInterface;
33
+
34
+ /**
35
+ * Get a sample of rows from a data container.
36
+ * @param dataContainer Data container to get samples from.
37
+ * @param sampleSize Max number of samples.
38
+ * @returns A data container which contains samples from the original data container.
39
+ */
40
+ export function getSampleData(
41
+ dataContainer: DataContainerInterface,
42
+ sampleSize?: number
43
+ ): DataContainerInterface;
@@ -0,0 +1,61 @@
1
+ // Copyright (c) 2022 Uber Technologies, Inc.
2
+ //
3
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ // of this software and associated documentation files (the "Software"), to deal
5
+ // in the Software without restriction, including without limitation the rights
6
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ // copies of the Software, and to permit persons to whom the Software is
8
+ // furnished to do so, subject to the following conditions:
9
+ //
10
+ // The above copyright notice and this permission notice shall be included in
11
+ // all copies or substantial portions of the Software.
12
+ //
13
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ // THE SOFTWARE.
20
+
21
+ import {RowDataContainer} from './row-data-container';
22
+ import {IndexedDataContainer} from './indexed-data-container';
23
+
24
+ /** @type {import('./data-container-utils').DataForm} */
25
+ export const DataForm = {
26
+ ROWS_ARRAY: 'ROWS_ARRAY'
27
+ };
28
+
29
+ /** @type {import('./data-container-utils').DataContainerOptions} */
30
+ const defaultOptions = {
31
+ inputDataFormat: DataForm.ROWS_ARRAY
32
+ };
33
+
34
+ /** @type {typeof import('./data-container-utils').createDataContainer} */
35
+ export function createDataContainer(data, options = defaultOptions) {
36
+ options = {...defaultOptions, ...options};
37
+
38
+ if (options.inputDataFormat === DataForm.ROWS_ARRAY) {
39
+ return new RowDataContainer({rows: data, fields: options.fields});
40
+ }
41
+
42
+ throw Error('Failed to create a data container: not implemented format');
43
+ }
44
+
45
+ /** @type {typeof import('./data-container-utils').createIndexedDataContainer} */
46
+ export function createIndexedDataContainer(dataContainer, indices) {
47
+ return new IndexedDataContainer(dataContainer, indices);
48
+ }
49
+
50
+ /** @type {typeof import('./data-container-utils').getSampleData} */
51
+ export function getSampleData(dataContainer, sampleSize = 500) {
52
+ const numberOfRows = dataContainer.numRows();
53
+ const sampleStep = Math.max(Math.floor(numberOfRows / sampleSize), 1);
54
+
55
+ const indices = [];
56
+ for (let i = 0; i < numberOfRows; i += sampleStep) {
57
+ indices.push(i);
58
+ }
59
+
60
+ return createIndexedDataContainer(dataContainer, indices);
61
+ }
@@ -0,0 +1,65 @@
1
+ import {DataContainerInterface} from './data-container-interface';
2
+
3
+ /**
4
+ * Setting for shared row optimization.
5
+ * - False/undefined indicates that unique row objects should be used (default).
6
+ * - True indicates that a single temporary row object should be created and used without extra allocations.
7
+ * - A DataRow object indicates that the row should be used as a temporary shared row.
8
+ * When used, the content of the shared row isn't preserved between calls.
9
+ */
10
+ export type SharedRowOptions = DataRow | boolean | undefined;
11
+
12
+ /**
13
+ * Return type for createSharedRow:
14
+ * - DataRow object that should be used as shared row.
15
+ * - Falsy values indicate that shared row object shouldn't be used.
16
+ */
17
+ export type SharedRowOptionsResult = DataRow | false | undefined;
18
+
19
+ export class DataRow {
20
+ /**
21
+ * Creates new DataRow.
22
+ * @param dataContainer Data container where data is stored. Can be initialized with null for shared rows.
23
+ * @param rowIndex Index of a row in the data container.
24
+ */
25
+ constructor(dataContainer: DataContainerInterface | null, rowIndex: number);
26
+
27
+ /**
28
+ * Conditionally creates a DataRow object.
29
+ * @param sharedRowDesc Accepts forllowing options:
30
+ * - true indicates that new DataRow should be created.
31
+ * - falsy value or a DataRow object is passed through without any change.
32
+ * @returns A new DataRow object or unchanged input argument.
33
+ */
34
+ static createSharedRow(sharedRowDesc: SharedRowOptions): SharedRowOptionsResult;
35
+
36
+ /**
37
+ * Returns the value stored at the specified index in the row.
38
+ * @param index Index of the requested field in the row.
39
+ * @returns Value at the index.
40
+ */
41
+ valueAt(index: number): any;
42
+
43
+ /**
44
+ * Returns the row represented as an array.
45
+ * @returns The row represented as an array.
46
+ */
47
+ values(): any[];
48
+
49
+ /**
50
+ * Setup a row object. The method is used by shared rows to prevent excessive allocations.
51
+ * @param dataContainer Data container.
52
+ * @param rowIndex Index of a row in the data container.
53
+ */
54
+ setSource(dataContainer: DataContainerInterface, rowIndex: number): void;
55
+
56
+ /**
57
+ * Creates a new array populated with the results of calling the provided function
58
+ * on every element of the row.
59
+ * @param func The callback is called with the following arguments:
60
+ * - elem: The current element being processed in the row.
61
+ * - index: The index of the current element being processed in the row.
62
+ * @returns A new array with each element being the result of the func callback.
63
+ */
64
+ map(func: (elem: any, index: number) => any): any[];
65
+ }