@carto/kepler.gl 0.0.80 → 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1725) hide show
  1. package/README.md +652 -42
  2. package/dist/actions/action-wrapper.d.ts +115 -0
  3. package/dist/actions/actions.d.ts +195 -0
  4. package/dist/actions/identity-actions.d.ts +61 -0
  5. package/dist/actions/index.d.ts +9 -0
  6. package/dist/actions/map-state-actions.d.ts +69 -0
  7. package/dist/actions/map-style-actions.d.ts +146 -0
  8. package/dist/actions/provider-actions.d.ts +153 -0
  9. package/dist/actions/ui-state-actions.d.ts +300 -0
  10. package/dist/actions/vis-state-actions.d.ts +821 -0
  11. package/dist/bundle.js +75163 -0
  12. package/dist/bundle.js.map +1 -0
  13. package/dist/cloud-providers/index.d.ts +2 -0
  14. package/dist/cloud-providers/provider.d.ts +176 -0
  15. package/dist/components/bottom-widget.d.ts +47 -0
  16. package/dist/components/common/action-panel.d.ts +27 -0
  17. package/dist/components/common/animation-control/animation-control.d.ts +24 -0
  18. package/dist/components/common/animation-control/animation-controller.d.ts +16 -0
  19. package/dist/components/common/animation-control/animation-speed-slider.d.ts +12 -0
  20. package/dist/components/common/animation-control/floating-time-display.d.ts +9 -0
  21. package/dist/components/common/animation-control/playback-controls.d.ts +72 -0
  22. package/dist/components/common/animation-control/speed-control.d.ts +13 -0
  23. package/dist/components/common/checkbox.d.ts +35 -0
  24. package/dist/components/common/color-legend.d.ts +43 -0
  25. package/dist/components/common/data-table/button.d.ts +8 -0
  26. package/dist/components/common/data-table/canvas.d.ts +2 -0
  27. package/dist/components/common/data-table/cell-size.d.ts +36 -0
  28. package/dist/components/common/data-table/grid.d.ts +7 -0
  29. package/dist/components/common/data-table/index.d.ts +143 -0
  30. package/dist/components/common/data-table/option-dropdown.d.ts +14 -0
  31. package/dist/components/common/dataset-label.d.ts +10 -0
  32. package/dist/components/common/error-boundary.d.ts +16 -0
  33. package/dist/components/common/field-selector.d.ts +47 -0
  34. package/dist/components/common/field-token.d.ts +45 -0
  35. package/dist/components/common/file-uploader/file-drop.d.ts +54 -0
  36. package/dist/components/common/file-uploader/file-upload-progress.d.ts +8 -0
  37. package/dist/components/common/file-uploader/file-upload.d.ts +27 -0
  38. package/dist/components/common/file-uploader/upload-button.d.ts +8 -0
  39. package/dist/components/common/histogram-plot.d.ts +3 -0
  40. package/dist/components/common/icons/add.d.ts +9 -0
  41. package/dist/components/common/icons/anchor_window.d.ts +11 -0
  42. package/dist/components/common/icons/arrow-down-alt.d.ts +9 -0
  43. package/dist/components/common/icons/arrow-down-solid.d.ts +9 -0
  44. package/dist/components/common/icons/arrow-down.d.ts +9 -0
  45. package/dist/components/common/icons/arrow-left.d.ts +9 -0
  46. package/dist/components/common/icons/arrow-right.d.ts +9 -0
  47. package/dist/components/common/icons/arrow-up-alt.d.ts +9 -0
  48. package/dist/components/common/icons/arrow-up-solid.d.ts +9 -0
  49. package/dist/components/common/icons/arrow-up.d.ts +9 -0
  50. package/dist/components/common/icons/base.d.ts +29 -0
  51. package/dist/components/common/icons/bug.d.ts +9 -0
  52. package/dist/components/common/icons/cancel.d.ts +9 -0
  53. package/dist/components/common/icons/checkmark.d.ts +10 -0
  54. package/dist/components/common/icons/clipboard.d.ts +9 -0
  55. package/dist/components/common/icons/clock.d.ts +9 -0
  56. package/dist/components/common/icons/close.d.ts +9 -0
  57. package/dist/components/common/icons/code-alt.d.ts +9 -0
  58. package/dist/components/common/icons/copy.d.ts +9 -0
  59. package/dist/components/common/icons/crosshairs.d.ts +9 -0
  60. package/dist/components/common/icons/cube-3d.d.ts +9 -0
  61. package/dist/components/common/icons/cursor-click.d.ts +9 -0
  62. package/dist/components/common/icons/data-table.d.ts +10 -0
  63. package/dist/components/common/icons/db.d.ts +10 -0
  64. package/dist/components/common/icons/delete.d.ts +9 -0
  65. package/dist/components/common/icons/docs.d.ts +9 -0
  66. package/dist/components/common/icons/drag-n-drop.d.ts +9 -0
  67. package/dist/components/common/icons/draw-polygon.d.ts +10 -0
  68. package/dist/components/common/icons/email.d.ts +9 -0
  69. package/dist/components/common/icons/expand.d.ts +9 -0
  70. package/dist/components/common/icons/eye-seen.d.ts +9 -0
  71. package/dist/components/common/icons/eye-unseen.d.ts +9 -0
  72. package/dist/components/common/icons/file-type.d.ts +8 -0
  73. package/dist/components/common/icons/file.d.ts +9 -0
  74. package/dist/components/common/icons/files.d.ts +9 -0
  75. package/dist/components/common/icons/filter-funnel.d.ts +9 -0
  76. package/dist/components/common/icons/free-window.d.ts +11 -0
  77. package/dist/components/common/icons/gear.d.ts +9 -0
  78. package/dist/components/common/icons/hash.d.ts +9 -0
  79. package/dist/components/common/icons/histogram.d.ts +9 -0
  80. package/dist/components/common/icons/index.d.ts +78 -0
  81. package/dist/components/common/icons/info.d.ts +12 -0
  82. package/dist/components/common/icons/layers.d.ts +9 -0
  83. package/dist/components/common/icons/left-arrow.d.ts +9 -0
  84. package/dist/components/common/icons/legend.d.ts +9 -0
  85. package/dist/components/common/icons/line-chart.d.ts +9 -0
  86. package/dist/components/common/icons/login.d.ts +9 -0
  87. package/dist/components/common/icons/logout.d.ts +9 -0
  88. package/dist/components/common/icons/map-icon.d.ts +11 -0
  89. package/dist/components/common/icons/map.d.ts +11 -0
  90. package/dist/components/common/icons/messages.d.ts +9 -0
  91. package/dist/components/common/icons/minus.d.ts +9 -0
  92. package/dist/components/common/icons/order-by-dataset.d.ts +12 -0
  93. package/dist/components/common/icons/order-by-list.d.ts +12 -0
  94. package/dist/components/common/icons/pause.d.ts +9 -0
  95. package/dist/components/common/icons/picture.d.ts +9 -0
  96. package/dist/components/common/icons/pin.d.ts +9 -0
  97. package/dist/components/common/icons/play.d.ts +9 -0
  98. package/dist/components/common/icons/polygon.d.ts +10 -0
  99. package/dist/components/common/icons/rectangle.d.ts +10 -0
  100. package/dist/components/common/icons/reduce.d.ts +9 -0
  101. package/dist/components/common/icons/reset.d.ts +9 -0
  102. package/dist/components/common/icons/rocket.d.ts +9 -0
  103. package/dist/components/common/icons/save.d.ts +9 -0
  104. package/dist/components/common/icons/save2.d.ts +9 -0
  105. package/dist/components/common/icons/search.d.ts +9 -0
  106. package/dist/components/common/icons/settings.d.ts +9 -0
  107. package/dist/components/common/icons/share.d.ts +9 -0
  108. package/dist/components/common/icons/split.d.ts +9 -0
  109. package/dist/components/common/icons/square-select.d.ts +9 -0
  110. package/dist/components/common/icons/table.d.ts +9 -0
  111. package/dist/components/common/icons/trash.d.ts +9 -0
  112. package/dist/components/common/icons/upload.d.ts +9 -0
  113. package/dist/components/common/icons/vert-dots.d.ts +9 -0
  114. package/dist/components/common/icons/vert-three-dots.d.ts +9 -0
  115. package/dist/components/common/icons/warning.d.ts +10 -0
  116. package/dist/components/common/image-preview.d.ts +15 -0
  117. package/dist/components/common/info-helper.d.ts +11 -0
  118. package/dist/components/common/item-selector/accessor.d.ts +7 -0
  119. package/dist/components/common/item-selector/chickleted-input.d.ts +21 -0
  120. package/dist/components/common/item-selector/dropdown-list.d.ts +68 -0
  121. package/dist/components/common/item-selector/item-selector.d.ts +91 -0
  122. package/dist/components/common/item-selector/typeahead.d.ts +115 -0
  123. package/dist/components/common/line-chart.d.ts +34 -0
  124. package/dist/components/common/loading-spinner.d.ts +9 -0
  125. package/dist/components/common/logo.d.ts +8 -0
  126. package/dist/components/common/map-layer-selector.d.ts +13 -0
  127. package/dist/components/common/modal.d.ts +49 -0
  128. package/dist/components/common/portaled.d.ts +527 -0
  129. package/dist/components/common/progress-bar.d.ts +12 -0
  130. package/dist/components/common/range-brush.d.ts +19 -0
  131. package/dist/components/common/range-plot.d.ts +35 -0
  132. package/dist/components/common/range-slider.d.ts +32 -0
  133. package/dist/components/common/slider/mouse-event.d.ts +27 -0
  134. package/dist/components/common/slider/slider-bar-handle.d.ts +29 -0
  135. package/dist/components/common/slider/slider-handle.d.ts +33 -0
  136. package/dist/components/common/slider/slider.d.ts +70 -0
  137. package/dist/components/common/styled-components.d.ts +119 -0
  138. package/dist/components/common/switch.d.ts +16 -0
  139. package/dist/components/common/time-range-slider-time-title.d.ts +9 -0
  140. package/dist/components/common/time-range-slider.d.ts +32 -0
  141. package/dist/components/common/time-slider-marker.d.ts +21 -0
  142. package/dist/components/common/tippy-tooltip.d.ts +4 -0
  143. package/dist/components/common/toolbar-item.d.ts +14 -0
  144. package/dist/components/common/toolbar.d.ts +5 -0
  145. package/dist/components/common/vertical-toolbar.d.ts +3 -0
  146. package/dist/components/container.d.ts +39 -0
  147. package/dist/components/context.d.ts +7 -0
  148. package/dist/components/editor/constants.d.ts +17 -0
  149. package/dist/components/editor/editor.d.ts +29 -0
  150. package/dist/components/editor/feature-action-panel.d.ts +27 -0
  151. package/dist/components/editor/feature-styles.d.ts +24 -0
  152. package/dist/components/editor/handle-style.d.ts +38 -0
  153. package/dist/components/filters/components.d.ts +3 -0
  154. package/dist/components/filters/filter-panels/filter-panel-with-field-select.d.ts +10 -0
  155. package/dist/components/filters/filter-panels/multi-select-filter-panel.d.ts +9 -0
  156. package/dist/components/filters/filter-panels/new-filter-panel.d.ts +12 -0
  157. package/dist/components/filters/filter-panels/polygon-filter-panel.d.ts +9 -0
  158. package/dist/components/filters/filter-panels/range-filter-panel.d.ts +9 -0
  159. package/dist/components/filters/filter-panels/single-select-filter-panel.d.ts +9 -0
  160. package/dist/components/filters/filter-panels/time-range-filter-panel.d.ts +8 -0
  161. package/dist/components/filters/filter-panels/types.d.ts +36 -0
  162. package/dist/components/filters/index.d.ts +5 -0
  163. package/dist/components/filters/multi-select-filter.d.ts +3 -0
  164. package/dist/components/filters/polygon-filter.d.ts +4 -0
  165. package/dist/components/filters/range-filter.d.ts +8 -0
  166. package/dist/components/filters/single-select-filter.d.ts +3 -0
  167. package/dist/components/filters/time-range-filter.d.ts +28 -0
  168. package/dist/components/filters/time-widget.d.ts +14 -0
  169. package/dist/components/filters/types.d.ts +53 -0
  170. package/dist/components/geocoder/geocoder.d.ts +33 -0
  171. package/dist/components/geocoder-panel.d.ts +28 -0
  172. package/dist/components/index.d.ts +165 -0
  173. package/dist/components/injector.d.ts +25 -0
  174. package/dist/components/kepler-gl.d.ts +302 -0
  175. package/dist/components/map/coordinate-info.d.ts +7 -0
  176. package/dist/components/map/layer-hover-info.d.ts +13 -0
  177. package/dist/components/map/layer-selector-panel.d.ts +22 -0
  178. package/dist/components/map/locale-panel.d.ts +16 -0
  179. package/dist/components/map/map-control-panel.d.ts +14 -0
  180. package/dist/components/map/map-control-toolbar.d.ts +2 -0
  181. package/dist/components/map/map-control-tooltip.d.ts +7 -0
  182. package/dist/components/map/map-control.d.ts +44 -0
  183. package/dist/components/map/map-draw-panel.d.ts +21 -0
  184. package/dist/components/map/map-legend-panel.d.ts +23 -0
  185. package/dist/components/map/map-legend.d.ts +55 -0
  186. package/dist/components/map/map-popover.d.ts +37 -0
  187. package/dist/components/map/split-map-button.d.ts +19 -0
  188. package/dist/components/map/toggle-3d-button.d.ts +16 -0
  189. package/dist/components/map-container.d.ts +58 -0
  190. package/dist/components/maps-layout.d.ts +10 -0
  191. package/dist/components/modal-container.d.ts +65 -0
  192. package/dist/components/modals/add-map-style-modal.d.ts +17 -0
  193. package/dist/components/modals/cloud-tile.d.ts +15 -0
  194. package/dist/components/modals/data-table-modal.d.ts +29 -0
  195. package/dist/components/modals/delete-data-modal.d.ts +10 -0
  196. package/dist/components/modals/error-display.d.ts +6 -0
  197. package/dist/components/modals/export-data-modal.d.ts +25 -0
  198. package/dist/components/modals/export-image-modal.d.ts +18 -0
  199. package/dist/components/modals/export-map-modal/components.d.ts +8 -0
  200. package/dist/components/modals/export-map-modal/export-html-map.d.ts +12 -0
  201. package/dist/components/modals/export-map-modal/export-json-map.d.ts +9 -0
  202. package/dist/components/modals/export-map-modal/export-map-modal.d.ts +27 -0
  203. package/dist/components/modals/image-modal-container.d.ts +18 -0
  204. package/dist/components/modals/load-data-modal.d.ts +33 -0
  205. package/dist/components/modals/load-storage-map.d.ts +26 -0
  206. package/dist/components/modals/loading-dialog.d.ts +7 -0
  207. package/dist/components/modals/modal-dialog.d.ts +2 -0
  208. package/dist/components/modals/modal-tabs.d.ts +27 -0
  209. package/dist/components/modals/overwrite-map-modal.d.ts +16 -0
  210. package/dist/components/modals/provider-modal-container.d.ts +23 -0
  211. package/dist/components/modals/save-map-modal.d.ts +29 -0
  212. package/dist/components/modals/share-map-modal.d.ts +30 -0
  213. package/dist/components/modals/status-panel.d.ts +13 -0
  214. package/dist/components/modals/storage-map-viewer.d.ts +21 -0
  215. package/dist/components/notification-panel/notification-item.d.ts +66 -0
  216. package/dist/components/notification-panel.d.ts +61 -0
  217. package/dist/components/performance.d.ts +4 -0
  218. package/dist/components/plot-container.d.ts +24 -0
  219. package/dist/components/side-panel/cloud-storage-dropdown.d.ts +6 -0
  220. package/dist/components/side-panel/common/dataset-info.d.ts +3 -0
  221. package/dist/components/side-panel/common/dataset-tag.d.ts +3 -0
  222. package/dist/components/side-panel/common/dataset-title.d.ts +8 -0
  223. package/dist/components/side-panel/common/source-data-catalog.d.ts +9 -0
  224. package/dist/components/side-panel/common/source-data-selector.d.ts +8 -0
  225. package/dist/components/side-panel/common/types.d.ts +58 -0
  226. package/dist/components/side-panel/custom-panel.d.ts +9 -0
  227. package/dist/components/side-panel/filter-manager.d.ts +20 -0
  228. package/dist/components/side-panel/filter-panel/filter-panel-header.d.ts +21 -0
  229. package/dist/components/side-panel/filter-panel/filter-panel.d.ts +23 -0
  230. package/dist/components/side-panel/interaction-manager.d.ts +14 -0
  231. package/dist/components/side-panel/interaction-panel/brush-config.d.ts +15 -0
  232. package/dist/components/side-panel/interaction-panel/interaction-panel.d.ts +19 -0
  233. package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +28 -0
  234. package/dist/components/side-panel/interaction-panel/tooltip-config.d.ts +38 -0
  235. package/dist/components/side-panel/layer-manager.d.ts +46 -0
  236. package/dist/components/side-panel/layer-panel/add-layer-button.d.ts +10 -0
  237. package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.d.ts +8 -0
  238. package/dist/components/side-panel/layer-panel/color-palette.d.ts +13 -0
  239. package/dist/components/side-panel/layer-panel/color-range-selector.d.ts +129 -0
  240. package/dist/components/side-panel/layer-panel/color-selector.d.ts +101 -0
  241. package/dist/components/side-panel/layer-panel/column-selector.d.ts +22 -0
  242. package/dist/components/side-panel/layer-panel/custom-markers-config-group.d.ts +6 -0
  243. package/dist/components/side-panel/layer-panel/custom-palette.d.ts +38 -0
  244. package/dist/components/side-panel/layer-panel/custom-picker.d.ts +67 -0
  245. package/dist/components/side-panel/layer-panel/dataset-layer-group.d.ts +24 -0
  246. package/dist/components/side-panel/layer-panel/dataset-layer-section.d.ts +25 -0
  247. package/dist/components/side-panel/layer-panel/dataset-section.d.ts +26 -0
  248. package/dist/components/side-panel/layer-panel/dimension-scale-selector.d.ts +10 -0
  249. package/dist/components/side-panel/layer-panel/hex-column-config.d.ts +62 -0
  250. package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.d.ts +8 -0
  251. package/dist/components/side-panel/layer-panel/layer-column-config.d.ts +20 -0
  252. package/dist/components/side-panel/layer-panel/layer-config-group.d.ts +37 -0
  253. package/dist/components/side-panel/layer-panel/layer-configurator.d.ts +415 -0
  254. package/dist/components/side-panel/layer-panel/layer-list.d.ts +20 -0
  255. package/dist/components/side-panel/layer-panel/layer-panel-header.d.ts +43 -0
  256. package/dist/components/side-panel/layer-panel/layer-panel.d.ts +40 -0
  257. package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.d.ts +17 -0
  258. package/dist/components/side-panel/layer-panel/layer-type-list-item.d.ts +11 -0
  259. package/dist/components/side-panel/layer-panel/layer-type-selector.d.ts +23 -0
  260. package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.d.ts +23 -0
  261. package/dist/components/side-panel/layer-panel/panel-view-list-toggle.d.ts +36 -0
  262. package/dist/components/side-panel/layer-panel/single-color-palette.d.ts +12 -0
  263. package/dist/components/side-panel/layer-panel/text-label-panel.d.ts +18 -0
  264. package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.d.ts +35 -0
  265. package/dist/components/side-panel/layer-panel/vis-config-slider.d.ts +20 -0
  266. package/dist/components/side-panel/layer-panel/vis-config-switch.d.ts +16 -0
  267. package/dist/components/side-panel/map-manager.d.ts +21 -0
  268. package/dist/components/side-panel/map-style-panel/map-layer-selector.d.ts +19 -0
  269. package/dist/components/side-panel/map-style-panel/map-style-selector.d.ts +16 -0
  270. package/dist/components/side-panel/panel-dropdown.d.ts +18 -0
  271. package/dist/components/side-panel/panel-header-action.d.ts +20 -0
  272. package/dist/components/side-panel/panel-header.d.ts +78 -0
  273. package/dist/components/side-panel/panel-tab.d.ts +20 -0
  274. package/dist/components/side-panel/panel-title.d.ts +4 -0
  275. package/dist/components/side-panel/panel-toggle.d.ts +14 -0
  276. package/dist/components/side-panel/side-bar.d.ts +76 -0
  277. package/dist/components/side-panel.d.ts +134 -0
  278. package/dist/components/types.d.ts +44 -0
  279. package/dist/connect/keplergl-connect.d.ts +5 -0
  280. package/dist/connect/with-local-selector.d.ts +6 -0
  281. package/dist/constants/action-types.d.ts +111 -0
  282. package/dist/constants/color-palette.d.ts +491 -0
  283. package/dist/constants/color-ranges.d.ts +24 -0
  284. package/dist/constants/custom-color-ranges.d.ts +37 -0
  285. package/dist/constants/default-settings.d.ts +773 -0
  286. package/dist/constants/index.d.ts +9 -0
  287. package/dist/constants/keyevent.d.ts +2 -0
  288. package/dist/constants/tooltip.d.ts +165 -0
  289. package/dist/constants/user-feedbacks.d.ts +5 -0
  290. package/dist/constants/user-guides.d.ts +9 -0
  291. package/dist/deckgl-layers/3d-building-layer/3d-building-layer.d.ts +13 -0
  292. package/dist/deckgl-layers/3d-building-layer/3d-building-utils.d.ts +7 -0
  293. package/dist/deckgl-layers/column-layer/enhanced-column-layer.d.ts +6 -0
  294. package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.d.ts +13 -0
  295. package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.d.ts +13 -0
  296. package/dist/deckgl-layers/layer-utils/cluster-utils.d.ts +12 -0
  297. package/dist/deckgl-layers/layer-utils/cpu-aggregator.d.ts +91 -0
  298. package/dist/deckgl-layers/layer-utils/shader-utils.d.ts +1 -0
  299. package/dist/deckgl-layers/line-layer/line-layer.d.ts +12 -0
  300. package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.d.ts +8 -0
  301. package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.d.ts +18 -0
  302. package/dist/index.d.ts +11 -0
  303. package/dist/layers/aggregation-layer.d.ts +70 -0
  304. package/dist/layers/arc-layer/arc-layer-icon.d.ts +16 -0
  305. package/dist/layers/arc-layer/arc-layer.d.ts +143 -0
  306. package/dist/layers/base-layer.d.ts +436 -0
  307. package/dist/layers/cluster-layer/cluster-layer-icon.d.ts +16 -0
  308. package/dist/layers/cluster-layer/cluster-layer.d.ts +39 -0
  309. package/dist/layers/default-layer-icon.d.ts +14 -0
  310. package/dist/layers/geojson-layer/geojson-layer-icon.d.ts +15 -0
  311. package/dist/layers/geojson-layer/geojson-layer.d.ts +230 -0
  312. package/dist/layers/geojson-layer/geojson-utils.d.ts +44 -0
  313. package/dist/layers/grid-layer/grid-layer-icon.d.ts +15 -0
  314. package/dist/layers/grid-layer/grid-layer.d.ts +74 -0
  315. package/dist/layers/grid-layer/grid-utils.d.ts +24 -0
  316. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.d.ts +16 -0
  317. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.d.ts +170 -0
  318. package/dist/layers/h3-hexagon-layer/h3-utils.d.ts +20 -0
  319. package/dist/layers/heatmap-layer/heatmap-layer-icon.d.ts +15 -0
  320. package/dist/layers/heatmap-layer/heatmap-layer.d.ts +144 -0
  321. package/dist/layers/hexagon-layer/hexagon-layer-icon.d.ts +15 -0
  322. package/dist/layers/hexagon-layer/hexagon-layer.d.ts +78 -0
  323. package/dist/layers/hexagon-layer/hexagon-utils.d.ts +7 -0
  324. package/dist/layers/icon-layer/icon-info-modal.d.ts +3 -0
  325. package/dist/layers/icon-layer/icon-layer-icon.d.ts +15 -0
  326. package/dist/layers/icon-layer/icon-layer.d.ts +119 -0
  327. package/dist/layers/index.d.ts +53 -0
  328. package/dist/layers/layer-factory.d.ts +150 -0
  329. package/dist/layers/layer-text-label.d.ts +7 -0
  330. package/dist/layers/layer-update.d.ts +9 -0
  331. package/dist/layers/line-layer/line-layer-icon.d.ts +15 -0
  332. package/dist/layers/line-layer/line-layer.d.ts +136 -0
  333. package/dist/layers/mapbox-utils.d.ts +57 -0
  334. package/dist/layers/mapboxgl-layer.d.ts +87 -0
  335. package/dist/layers/point-layer/point-layer-icon.d.ts +15 -0
  336. package/dist/layers/point-layer/point-layer.d.ts +272 -0
  337. package/dist/layers/s2-geometry-layer/s2-geometry-layer.d.ts +189 -0
  338. package/dist/layers/s2-geometry-layer/s2-layer-icon.d.ts +15 -0
  339. package/dist/layers/s2-geometry-layer/s2-utils.d.ts +7 -0
  340. package/dist/layers/scenegraph-layer/scenegraph-info-modal.d.ts +3 -0
  341. package/dist/layers/scenegraph-layer/scenegraph-layer-icon.d.ts +15 -0
  342. package/dist/layers/scenegraph-layer/scenegraph-layer.d.ts +80 -0
  343. package/dist/layers/trip-layer/trip-info-modal.d.ts +3 -0
  344. package/dist/layers/trip-layer/trip-layer-icon.d.ts +15 -0
  345. package/dist/layers/trip-layer/trip-layer.d.ts +157 -0
  346. package/dist/layers/trip-layer/trip-utils.d.ts +31 -0
  347. package/dist/layers/types.d.ts +15 -0
  348. package/dist/localization/formatted-message.d.ts +12 -0
  349. package/dist/localization/index.d.ts +5 -0
  350. package/dist/localization/locales.d.ts +27 -0
  351. package/dist/localization/messages.d.ts +4 -0
  352. package/dist/localization/translations/ca.d.ts +438 -0
  353. package/dist/localization/translations/cn.d.ts +441 -0
  354. package/dist/localization/translations/en.d.ts +466 -0
  355. package/dist/localization/translations/es.d.ts +438 -0
  356. package/dist/localization/translations/fi.d.ts +410 -0
  357. package/dist/localization/translations/ja.d.ts +439 -0
  358. package/dist/localization/translations/pt.d.ts +410 -0
  359. package/dist/localization/translations/ru.d.ts +447 -0
  360. package/dist/middleware/index.d.ts +8 -0
  361. package/dist/processors/data-processor.d.ts +242 -0
  362. package/dist/processors/file-handler.d.ts +28 -0
  363. package/dist/processors/index.d.ts +3 -0
  364. package/dist/processors/types.d.ts +21 -0
  365. package/dist/reducers/combined-updaters.d.ts +52 -0
  366. package/dist/reducers/composer-helpers.d.ts +21 -0
  367. package/dist/reducers/composers.d.ts +12 -0
  368. package/dist/reducers/core.d.ts +65 -0
  369. package/dist/reducers/index.d.ts +19 -0
  370. package/dist/reducers/map-state-updaters.d.ts +96 -0
  371. package/dist/reducers/map-state.d.ts +4 -0
  372. package/dist/reducers/map-style-updaters.d.ts +204 -0
  373. package/dist/reducers/map-style.d.ts +16 -0
  374. package/dist/reducers/provider-state-updaters.d.ts +41 -0
  375. package/dist/reducers/provider-state.d.ts +4 -0
  376. package/dist/reducers/root.d.ts +24 -0
  377. package/dist/reducers/types.d.ts +16 -0
  378. package/dist/reducers/ui-state-updaters.d.ts +434 -0
  379. package/dist/reducers/ui-state.d.ts +3 -0
  380. package/dist/reducers/vis-state-merger.d.ts +110 -0
  381. package/dist/reducers/vis-state-selectors.d.ts +10 -0
  382. package/dist/reducers/vis-state-updaters.d.ts +645 -0
  383. package/dist/reducers/vis-state.d.ts +4 -0
  384. package/dist/schemas/dataset-schema.d.ts +17 -0
  385. package/dist/schemas/index.d.ts +8 -0
  386. package/dist/schemas/map-state-schema.d.ts +23 -0
  387. package/dist/schemas/map-style-schema.d.ts +38 -0
  388. package/dist/schemas/schema-manager.d.ts +271 -0
  389. package/dist/schemas/schema-utils.d.ts +11 -0
  390. package/dist/schemas/schema.d.ts +37 -0
  391. package/dist/schemas/versions.d.ts +5 -0
  392. package/dist/schemas/vis-state-schema.d.ts +214 -0
  393. package/dist/styles/base.d.ts +1530 -0
  394. package/dist/styles/index.d.ts +2 -0
  395. package/dist/styles/media-breakpoints.d.ts +13 -0
  396. package/dist/tasks/tasks.d.ts +15 -0
  397. package/dist/templates/export-map-html.d.ts +9 -0
  398. package/dist/utils/aggregate-utils.d.ts +3 -0
  399. package/dist/utils/color-utils.d.ts +44 -0
  400. package/dist/utils/data-scale-utils.d.ts +23 -0
  401. package/dist/utils/data-utils.d.ts +115 -0
  402. package/dist/utils/dataset-utils.d.ts +38 -0
  403. package/dist/utils/dom-to-image.d.ts +73 -0
  404. package/dist/utils/dom-utils.d.ts +20 -0
  405. package/dist/utils/export-utils.d.ts +56 -0
  406. package/dist/utils/filter-utils.d.ts +267 -0
  407. package/dist/utils/gl-utils.d.ts +1 -0
  408. package/dist/utils/gpu-filter-utils.d.ts +28 -0
  409. package/dist/utils/index.d.ts +22 -0
  410. package/dist/utils/interaction-utils.d.ts +36 -0
  411. package/dist/utils/layer-utils.d.ts +54 -0
  412. package/dist/utils/locale-utils.d.ts +2 -0
  413. package/dist/utils/map-info-utils.d.ts +1 -0
  414. package/dist/utils/map-style-utils/mapbox-gl-style-editor.d.ts +64 -0
  415. package/dist/utils/map-style-utils/mapbox-utils.d.ts +3 -0
  416. package/dist/utils/mapbox-utils.d.ts +7 -0
  417. package/dist/utils/notifications-utils.d.ts +54 -0
  418. package/dist/utils/observe-dimensions.d.ts +15 -0
  419. package/dist/utils/projection-utils.d.ts +12 -0
  420. package/dist/utils/searcher-utils.d.ts +1 -0
  421. package/dist/utils/split-map-utils.d.ts +29 -0
  422. package/dist/utils/table-utils/data-container-interface.d.ts +115 -0
  423. package/dist/utils/table-utils/data-container-utils.d.ts +29 -0
  424. package/dist/utils/table-utils/data-row.d.ts +59 -0
  425. package/dist/utils/table-utils/index.d.ts +1 -0
  426. package/dist/utils/table-utils/indexed-data-container.d.ts +34 -0
  427. package/dist/utils/table-utils/kepler-table.d.ts +168 -0
  428. package/dist/utils/table-utils/row-data-container.d.ts +31 -0
  429. package/dist/utils/utils.d.ts +98 -0
  430. package/package.json +167 -94
  431. package/src/actions/action-wrapper.ts +183 -0
  432. package/src/actions/actions.ts +259 -0
  433. package/src/actions/identity-actions.ts +116 -0
  434. package/src/actions/map-state-actions.ts +116 -0
  435. package/src/actions/map-style-actions.ts +243 -0
  436. package/src/actions/provider-actions.ts +218 -0
  437. package/src/actions/ui-state-actions.ts +490 -0
  438. package/src/actions/vis-state-actions.ts +1279 -0
  439. package/src/cloud-providers/index.ts +22 -0
  440. package/src/cloud-providers/provider.ts +276 -0
  441. package/src/components/bottom-widget.tsx +277 -0
  442. package/src/components/common/action-panel.tsx +207 -0
  443. package/src/components/common/animation-control/animation-control.tsx +157 -0
  444. package/src/components/common/animation-control/animation-controller.ts +250 -0
  445. package/src/components/common/animation-control/animation-speed-slider.tsx +86 -0
  446. package/src/components/common/animation-control/floating-time-display.tsx +209 -0
  447. package/src/components/common/animation-control/playback-controls.tsx +316 -0
  448. package/src/components/common/animation-control/speed-control.tsx +71 -0
  449. package/src/components/common/checkbox.tsx +137 -0
  450. package/src/components/common/color-legend.tsx +203 -0
  451. package/src/components/common/data-table/button.tsx +54 -0
  452. package/src/components/common/data-table/cell-size.ts +185 -0
  453. package/src/components/common/data-table/grid.tsx +57 -0
  454. package/src/components/common/data-table/index.tsx +693 -0
  455. package/src/components/common/data-table/option-dropdown.tsx +122 -0
  456. package/src/components/common/dataset-label.tsx +48 -0
  457. package/src/components/common/error-boundary.tsx +47 -0
  458. package/src/components/common/field-selector.tsx +242 -0
  459. package/src/components/common/field-token.tsx +60 -0
  460. package/src/components/common/file-uploader/file-drop.tsx +209 -0
  461. package/src/components/common/file-uploader/file-upload-progress.tsx +123 -0
  462. package/src/components/common/file-uploader/file-upload.tsx +319 -0
  463. package/src/components/common/file-uploader/upload-button.tsx +89 -0
  464. package/src/components/common/histogram-plot.tsx +125 -0
  465. package/src/components/common/icons/add.tsx +37 -0
  466. package/src/components/common/icons/anchor_window.tsx +49 -0
  467. package/src/components/common/icons/arrow-down-alt.tsx +37 -0
  468. package/src/components/common/icons/arrow-down-solid.tsx +37 -0
  469. package/src/components/common/icons/arrow-down.tsx +40 -0
  470. package/src/components/common/icons/arrow-left.tsx +42 -0
  471. package/src/components/common/icons/arrow-right.tsx +40 -0
  472. package/src/components/common/icons/arrow-up-alt.tsx +40 -0
  473. package/src/components/common/icons/arrow-up-solid.tsx +37 -0
  474. package/src/components/common/icons/arrow-up.tsx +40 -0
  475. package/src/components/common/icons/base.tsx +95 -0
  476. package/src/components/common/icons/bug.tsx +40 -0
  477. package/src/components/common/icons/cancel.tsx +37 -0
  478. package/src/components/common/icons/checkmark.tsx +39 -0
  479. package/src/components/common/icons/chevron-right.js +1 -1
  480. package/src/components/common/icons/clipboard.tsx +40 -0
  481. package/src/components/common/icons/clock.tsx +38 -0
  482. package/src/components/common/icons/close.tsx +43 -0
  483. package/src/components/common/icons/code-alt.tsx +37 -0
  484. package/src/components/common/icons/copy.tsx +38 -0
  485. package/src/components/common/icons/crosshairs.tsx +37 -0
  486. package/src/components/common/icons/cube-3d.tsx +39 -0
  487. package/src/components/common/icons/cursor-click.tsx +43 -0
  488. package/src/components/common/icons/data-table.tsx +40 -0
  489. package/src/components/common/icons/db.tsx +40 -0
  490. package/src/components/common/icons/delete.tsx +39 -0
  491. package/src/components/common/icons/docs.tsx +40 -0
  492. package/src/components/common/icons/drag-n-drop.tsx +38 -0
  493. package/src/components/common/icons/draw-polygon.tsx +51 -0
  494. package/src/components/common/icons/email.tsx +39 -0
  495. package/src/components/common/icons/expand.tsx +39 -0
  496. package/src/components/common/icons/eye-seen.tsx +38 -0
  497. package/src/components/common/icons/eye-unseen.tsx +38 -0
  498. package/src/components/common/icons/file-type.tsx +71 -0
  499. package/src/components/common/icons/file.tsx +37 -0
  500. package/src/components/common/icons/files.tsx +37 -0
  501. package/src/components/common/icons/filter-funnel.tsx +37 -0
  502. package/src/components/common/icons/free-window.tsx +48 -0
  503. package/src/components/common/icons/gear.tsx +40 -0
  504. package/src/components/common/icons/hash.tsx +37 -0
  505. package/src/components/common/icons/histogram.tsx +42 -0
  506. package/src/components/common/icons/index.tsx +98 -0
  507. package/src/components/common/icons/info.tsx +48 -0
  508. package/src/components/common/icons/layers.tsx +37 -0
  509. package/src/components/common/icons/left-arrow.tsx +37 -0
  510. package/src/components/common/icons/legend.tsx +37 -0
  511. package/src/components/common/icons/line-chart.tsx +40 -0
  512. package/src/components/common/icons/login.tsx +41 -0
  513. package/src/components/common/icons/logout.tsx +38 -0
  514. package/src/components/common/icons/map-icon.tsx +62 -0
  515. package/src/components/common/icons/map.tsx +62 -0
  516. package/src/components/common/icons/messages.tsx +37 -0
  517. package/src/components/common/icons/minus.tsx +39 -0
  518. package/src/components/common/icons/order-by-dataset.tsx +49 -0
  519. package/src/components/common/icons/order-by-list.tsx +39 -0
  520. package/src/components/common/icons/pause.tsx +37 -0
  521. package/src/components/common/icons/picture.tsx +37 -0
  522. package/src/components/common/icons/pin.tsx +42 -0
  523. package/src/components/common/icons/play.tsx +37 -0
  524. package/src/components/common/icons/polygon.tsx +65 -0
  525. package/src/components/common/icons/rectangle.tsx +66 -0
  526. package/src/components/common/icons/reduce.tsx +42 -0
  527. package/src/components/common/icons/reset.tsx +37 -0
  528. package/src/components/common/icons/rocket.tsx +37 -0
  529. package/src/components/common/icons/save.tsx +38 -0
  530. package/src/components/common/icons/save2.tsx +42 -0
  531. package/src/components/common/icons/search.tsx +38 -0
  532. package/src/components/common/icons/settings.tsx +39 -0
  533. package/src/components/common/icons/share.tsx +37 -0
  534. package/src/components/common/icons/split.tsx +57 -0
  535. package/src/components/common/icons/square-select.tsx +38 -0
  536. package/src/components/common/icons/swap-horizontal.js +1 -1
  537. package/src/components/common/icons/table.tsx +41 -0
  538. package/src/components/common/icons/trash.tsx +45 -0
  539. package/src/components/common/icons/upload.tsx +37 -0
  540. package/src/components/common/icons/vert-dots.tsx +44 -0
  541. package/src/components/common/icons/vert-three-dots.tsx +39 -0
  542. package/src/components/common/icons/warning.tsx +40 -0
  543. package/src/components/common/image-preview.tsx +118 -0
  544. package/src/components/common/info-helper.tsx +91 -0
  545. package/src/components/common/item-selector/accessor.ts +45 -0
  546. package/src/components/common/item-selector/chickleted-input.tsx +153 -0
  547. package/src/components/common/item-selector/dropdown-list.tsx +269 -0
  548. package/src/components/common/item-selector/item-selector-submenu.js +1 -1
  549. package/src/components/common/item-selector/item-selector.d.ts +24 -27
  550. package/src/components/common/item-selector/item-selector.tsx +373 -0
  551. package/src/components/common/item-selector/typeahead.tsx +533 -0
  552. package/src/components/common/line-chart.tsx +170 -0
  553. package/src/components/common/loading-spinner.tsx +75 -0
  554. package/src/components/common/logo.tsx +88 -0
  555. package/src/components/common/map-layer-selector.tsx +64 -0
  556. package/src/components/common/modal.tsx +238 -0
  557. package/src/components/common/portaled.tsx +311 -0
  558. package/src/components/common/progress-bar.tsx +74 -0
  559. package/src/components/common/range-brush.tsx +276 -0
  560. package/src/components/common/range-plot.tsx +145 -0
  561. package/src/components/common/range-slider.tsx +320 -0
  562. package/src/components/common/slider/mouse-event.ts +122 -0
  563. package/src/components/common/slider/slider-bar-handle.tsx +106 -0
  564. package/src/components/common/slider/slider-handle.tsx +210 -0
  565. package/src/components/common/slider/slider.tsx +234 -0
  566. package/src/components/common/styled-components.tsx +714 -0
  567. package/src/components/common/switch.tsx +47 -0
  568. package/src/components/common/time-range-slider-time-title.tsx +87 -0
  569. package/src/components/common/time-range-slider.tsx +171 -0
  570. package/src/components/common/time-slider-marker.tsx +187 -0
  571. package/src/components/common/tippy-tooltip.tsx +130 -0
  572. package/src/components/common/toolbar-item.tsx +99 -0
  573. package/src/components/common/toolbar.tsx +49 -0
  574. package/src/components/common/vertical-toolbar.tsx +35 -0
  575. package/src/components/container.d.ts +8 -0
  576. package/src/components/container.tsx +189 -0
  577. package/src/components/context.ts +32 -0
  578. package/src/components/editor/editor.tsx +234 -0
  579. package/src/components/editor/feature-action-panel.tsx +155 -0
  580. package/src/components/editor/feature-styles.ts +76 -0
  581. package/src/components/editor/handle-style.ts +89 -0
  582. package/src/components/filters/filter-panels/filter-panel-with-field-select.tsx +118 -0
  583. package/src/components/filters/filter-panels/multi-select-filter-panel.tsx +63 -0
  584. package/src/components/filters/filter-panels/new-filter-panel.tsx +100 -0
  585. package/src/components/filters/filter-panels/polygon-filter-panel.tsx +84 -0
  586. package/src/components/filters/filter-panels/range-filter-panel.tsx +63 -0
  587. package/src/components/filters/filter-panels/single-select-filter-panel.tsx +63 -0
  588. package/src/components/filters/filter-panels/time-range-filter-panel.tsx +92 -0
  589. package/src/components/filters/filter-panels/types.ts +40 -0
  590. package/src/components/filters/multi-select-filter.tsx +37 -0
  591. package/src/components/filters/polygon-filter.tsx +74 -0
  592. package/src/components/filters/range-filter.tsx +44 -0
  593. package/src/components/filters/single-select-filter.tsx +50 -0
  594. package/src/components/filters/time-range-filter.tsx +76 -0
  595. package/src/components/filters/time-widget.tsx +240 -0
  596. package/src/components/filters/types.ts +78 -0
  597. package/src/components/geocoder/geocoder.tsx +307 -0
  598. package/src/components/geocoder-panel.tsx +199 -0
  599. package/src/components/index.ts +269 -0
  600. package/src/components/injector.d.ts +33 -0
  601. package/src/components/injector.tsx +171 -0
  602. package/src/components/kepler-gl.d.ts +1 -2
  603. package/src/components/kepler-gl.tsx +585 -0
  604. package/src/components/map/coordinate-info.tsx +58 -0
  605. package/src/components/map/layer-hover-info.tsx +192 -0
  606. package/src/components/map/layer-selector-panel.tsx +122 -0
  607. package/src/components/map/locale-panel.tsx +110 -0
  608. package/src/components/map/map-control-panel.tsx +142 -0
  609. package/src/components/map/map-control-tooltip.tsx +45 -0
  610. package/src/components/map/map-control.tsx +138 -0
  611. package/src/components/map/map-draw-panel.tsx +145 -0
  612. package/src/components/map/map-legend-panel.tsx +167 -0
  613. package/src/components/map/map-legend.tsx +284 -0
  614. package/src/components/map/map-popover.tsx +268 -0
  615. package/src/components/map/split-map-button.tsx +98 -0
  616. package/src/components/map/toggle-3d-button.tsx +90 -0
  617. package/src/components/map-container.tsx +549 -0
  618. package/src/components/maps-layout.tsx +45 -0
  619. package/src/components/modal-container.tsx +555 -0
  620. package/src/components/modals/add-map-style-modal.tsx +304 -0
  621. package/src/components/modals/cloud-tile.tsx +181 -0
  622. package/src/components/modals/data-table-modal.tsx +241 -0
  623. package/src/components/modals/delete-data-modal.tsx +55 -0
  624. package/src/components/modals/error-display.tsx +43 -0
  625. package/src/components/modals/export-data-modal.tsx +201 -0
  626. package/src/components/modals/export-image-modal.tsx +155 -0
  627. package/src/components/modals/export-map-modal/export-html-map.tsx +164 -0
  628. package/src/components/modals/export-map-modal/export-json-map.tsx +112 -0
  629. package/src/components/modals/export-map-modal/export-map-modal.tsx +109 -0
  630. package/src/components/modals/image-modal-container.tsx +86 -0
  631. package/src/components/modals/load-data-modal.tsx +120 -0
  632. package/src/components/modals/load-storage-map.tsx +414 -0
  633. package/src/components/modals/loading-dialog.tsx +77 -0
  634. package/src/components/modals/modal-tabs.tsx +137 -0
  635. package/src/components/modals/overwrite-map-modal.tsx +113 -0
  636. package/src/components/modals/provider-modal-container.tsx +62 -0
  637. package/src/components/modals/save-map-modal.tsx +277 -0
  638. package/src/components/modals/share-map-modal.tsx +217 -0
  639. package/src/components/modals/status-panel.tsx +106 -0
  640. package/src/components/modals/storage-map-viewer.tsx +190 -0
  641. package/src/components/notification-panel/notification-item.tsx +143 -0
  642. package/src/components/notification-panel.tsx +75 -0
  643. package/src/components/performance.tsx +105 -0
  644. package/src/components/plot-container.tsx +243 -0
  645. package/src/components/side-panel/common/dataset-info.tsx +46 -0
  646. package/src/components/side-panel/common/dataset-tag.tsx +86 -0
  647. package/src/components/side-panel/common/dataset-title.tsx +187 -0
  648. package/src/components/side-panel/common/source-data-catalog.tsx +67 -0
  649. package/src/components/side-panel/common/source-data-selector.tsx +90 -0
  650. package/src/components/side-panel/common/types.ts +76 -0
  651. package/src/components/side-panel/filter-manager.tsx +120 -0
  652. package/src/components/side-panel/filter-panel/filter-panel-header.tsx +96 -0
  653. package/src/components/side-panel/filter-panel/filter-panel.tsx +125 -0
  654. package/src/components/side-panel/interaction-manager.tsx +59 -0
  655. package/src/components/side-panel/interaction-panel/brush-config.tsx +58 -0
  656. package/src/components/side-panel/interaction-panel/interaction-panel.tsx +124 -0
  657. package/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.tsx +243 -0
  658. package/src/components/side-panel/interaction-panel/tooltip-config.tsx +238 -0
  659. package/src/components/side-panel/layer-manager.tsx +242 -0
  660. package/src/components/side-panel/layer-panel/add-layer-button.tsx +208 -0
  661. package/src/components/side-panel/layer-panel/color-dimension-scale-selector.tsx +33 -0
  662. package/src/components/side-panel/layer-panel/color-palette.tsx +98 -0
  663. package/src/components/side-panel/layer-panel/color-range-selector.tsx +388 -0
  664. package/src/components/side-panel/layer-panel/color-selector.tsx +200 -0
  665. package/src/components/side-panel/layer-panel/column-selector.tsx +102 -0
  666. package/src/components/side-panel/layer-panel/custom-markers-config-group.tsx +30 -0
  667. package/src/components/side-panel/layer-panel/custom-palette.tsx +301 -0
  668. package/src/components/side-panel/layer-panel/custom-picker.tsx +99 -0
  669. package/src/components/side-panel/layer-panel/dataset-layer-group.tsx +99 -0
  670. package/src/components/side-panel/layer-panel/dataset-layer-section.tsx +100 -0
  671. package/src/components/side-panel/layer-panel/dataset-section.tsx +125 -0
  672. package/src/components/side-panel/layer-panel/dimension-scale-selector.tsx +64 -0
  673. package/src/components/side-panel/layer-panel/hex-column-config.tsx +53 -0
  674. package/src/components/side-panel/layer-panel/layer-column-config.tsx +115 -0
  675. package/src/components/side-panel/layer-panel/layer-config-group.tsx +259 -0
  676. package/src/components/side-panel/layer-panel/layer-configurator.tsx +1419 -0
  677. package/src/components/side-panel/layer-panel/layer-list.tsx +193 -0
  678. package/src/components/side-panel/layer-panel/layer-panel-header.tsx +273 -0
  679. package/src/components/side-panel/layer-panel/layer-panel.tsx +197 -0
  680. package/src/components/side-panel/layer-panel/layer-type-dropdown-list.tsx +118 -0
  681. package/src/components/side-panel/layer-panel/layer-type-list-item.tsx +92 -0
  682. package/src/components/side-panel/layer-panel/layer-type-selector.tsx +115 -0
  683. package/src/components/side-panel/layer-panel/layer-visibility-by-zoom.tsx +123 -0
  684. package/src/components/side-panel/layer-panel/panel-view-list-toggle.tsx +132 -0
  685. package/src/components/side-panel/layer-panel/single-color-palette.tsx +94 -0
  686. package/src/components/side-panel/layer-panel/text-label-panel.tsx +189 -0
  687. package/src/components/side-panel/layer-panel/vis-config-by-field-selector.tsx +187 -0
  688. package/src/components/side-panel/layer-panel/vis-config-slider.tsx +237 -0
  689. package/src/components/side-panel/layer-panel/vis-config-switch.tsx +86 -0
  690. package/src/components/side-panel/map-manager.tsx +123 -0
  691. package/src/components/side-panel/map-style-panel/map-layer-selector.tsx +145 -0
  692. package/src/components/side-panel/map-style-panel/map-style-selector.tsx +122 -0
  693. package/src/components/side-panel/panel-dropdown.tsx +54 -0
  694. package/src/components/side-panel/panel-header-action.tsx +114 -0
  695. package/src/components/side-panel/panel-header.tsx +386 -0
  696. package/src/components/side-panel/panel-tab.tsx +79 -0
  697. package/src/components/side-panel/panel-title.tsx +35 -0
  698. package/src/components/side-panel/panel-toggle.tsx +72 -0
  699. package/src/components/side-panel/side-bar.tsx +141 -0
  700. package/src/components/side-panel.tsx +261 -0
  701. package/src/components/types.ts +41 -0
  702. package/src/connect/keplergl-connect.ts +48 -0
  703. package/src/connect/with-local-selector.tsx +70 -0
  704. package/src/constants/action-types.ts +188 -0
  705. package/src/constants/color-ranges.ts +87 -0
  706. package/src/constants/default-settings.ts +1051 -0
  707. package/src/constants/index.ts +84 -0
  708. package/src/deckgl-layers/3d-building-layer/3d-building-layer.ts +63 -0
  709. package/src/deckgl-layers/3d-building-layer/3d-building-utils.ts +211 -0
  710. package/src/deckgl-layers/3d-building-layer/types.ts +29 -0
  711. package/src/deckgl-layers/column-layer/enhanced-column-layer.ts +63 -0
  712. package/src/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.ts +70 -0
  713. package/src/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.ts +70 -0
  714. package/src/deckgl-layers/layer-utils/cluster-utils.ts +78 -0
  715. package/src/deckgl-layers/layer-utils/cpu-aggregator.ts +671 -0
  716. package/src/deckgl-layers/layer-utils/shader-utils.ts +41 -0
  717. package/src/deckgl-layers/line-layer/line-layer.ts +126 -0
  718. package/src/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.ts +68 -0
  719. package/src/deckgl-layers/svg-icon-layer/svg-icon-layer.ts +102 -0
  720. package/src/index.ts +54 -0
  721. package/src/layers/aggregation-layer.ts +400 -0
  722. package/src/layers/arc-layer/arc-layer-icon.tsx +67 -0
  723. package/src/layers/arc-layer/arc-layer.ts +294 -0
  724. package/src/layers/base-layer.ts +1744 -0
  725. package/src/layers/cluster-layer/cluster-layer.ts +162 -0
  726. package/src/layers/geojson-layer/geojson-layer-icon.tsx +68 -0
  727. package/src/layers/geojson-layer/geojson-layer.ts +462 -0
  728. package/src/layers/geojson-layer/geojson-utils.ts +200 -0
  729. package/src/layers/grid-layer/grid-layer-icon.tsx +53 -0
  730. package/src/layers/grid-layer/grid-layer.ts +154 -0
  731. package/src/layers/grid-layer/grid-utils.ts +84 -0
  732. package/src/layers/h3-hexagon-layer/h3-hexagon-layer.ts +340 -0
  733. package/src/layers/h3-hexagon-layer/h3-utils.ts +67 -0
  734. package/src/layers/heatmap-layer/heatmap-layer.ts +255 -0
  735. package/src/layers/hexagon-layer/hexagon-layer.ts +157 -0
  736. package/src/layers/hexagon-layer/hexagon-utils.ts +64 -0
  737. package/src/layers/icon-layer/icon-info-modal.tsx +155 -0
  738. package/src/layers/icon-layer/icon-layer.ts +396 -0
  739. package/src/layers/index.ts +81 -0
  740. package/src/layers/layer-factory.ts +707 -0
  741. package/src/layers/layer-text-label.ts +62 -0
  742. package/src/layers/layer-update.ts +70 -0
  743. package/src/layers/line-layer/line-layer.ts +223 -0
  744. package/src/layers/mapbox-utils.ts +204 -0
  745. package/src/layers/mapboxgl-layer.ts +176 -0
  746. package/src/layers/point-layer/point-layer.ts +507 -0
  747. package/src/layers/s2-geometry-layer/s2-geometry-layer.ts +369 -0
  748. package/src/layers/s2-geometry-layer/s2-utils.ts +42 -0
  749. package/src/layers/scenegraph-layer/scenegraph-layer.ts +237 -0
  750. package/src/layers/trip-layer/trip-layer.ts +356 -0
  751. package/src/layers/trip-layer/trip-utils.ts +177 -0
  752. package/src/localization/formatted-message.tsx +42 -0
  753. package/src/localization/index.ts +29 -0
  754. package/src/localization/locales.ts +53 -0
  755. package/src/localization/messages.ts +40 -0
  756. package/src/localization/translations/ca.ts +476 -0
  757. package/src/localization/translations/cn.ts +477 -0
  758. package/src/localization/translations/en.ts +504 -0
  759. package/src/localization/translations/es.ts +477 -0
  760. package/src/localization/translations/fi.ts +448 -0
  761. package/src/localization/translations/ja.ts +477 -0
  762. package/src/localization/translations/pt.ts +449 -0
  763. package/src/localization/translations/ru.ts +488 -0
  764. package/src/middleware/index.ts +35 -0
  765. package/src/processors/data-processor.ts +723 -0
  766. package/src/processors/file-handler.ts +250 -0
  767. package/src/processors/index.ts +23 -0
  768. package/src/processors/types.ts +22 -0
  769. package/src/reducers/combined-updaters.ts +215 -0
  770. package/src/reducers/composer-helpers.ts +75 -0
  771. package/src/reducers/core.ts +111 -0
  772. package/src/reducers/index.ts +116 -0
  773. package/src/reducers/map-state-updaters.ts +271 -0
  774. package/src/reducers/map-state.ts +47 -0
  775. package/src/reducers/map-style-updaters.ts +638 -0
  776. package/src/reducers/map-style.ts +53 -0
  777. package/src/reducers/provider-state-updaters.ts +454 -0
  778. package/src/reducers/provider-state.ts +53 -0
  779. package/src/reducers/root.ts +230 -0
  780. package/src/reducers/types.ts +18 -0
  781. package/src/reducers/ui-state-updaters.ts +925 -0
  782. package/src/reducers/ui-state.ts +75 -0
  783. package/src/reducers/vis-state-merger.ts +625 -0
  784. package/src/reducers/vis-state-selectors.ts +35 -0
  785. package/src/reducers/vis-state-updaters.ts +2567 -0
  786. package/src/reducers/vis-state.ts +157 -0
  787. package/src/schemas/dataset-schema.ts +141 -0
  788. package/src/schemas/index.ts +52 -0
  789. package/src/schemas/schema-manager.ts +445 -0
  790. package/src/schemas/schema.ts +122 -0
  791. package/src/schemas/vis-state-schema.ts +761 -0
  792. package/src/styles/base.ts +1642 -0
  793. package/src/styles/media-breakpoints.ts +56 -0
  794. package/src/tasks/tasks.ts +92 -0
  795. package/src/typedefs/deckgl.d.ts +25 -0
  796. package/src/utils/aggregate-utils.ts +71 -0
  797. package/src/utils/color-utils.ts +135 -0
  798. package/src/utils/data-scale-utils.ts +73 -0
  799. package/src/utils/data-utils.ts +459 -0
  800. package/src/utils/dataset-utils.ts +261 -0
  801. package/src/utils/dom-to-image.ts +533 -0
  802. package/src/utils/dom-utils.ts +354 -0
  803. package/src/utils/export-utils.ts +265 -0
  804. package/src/utils/filter-utils.ts +1181 -0
  805. package/src/utils/gpu-filter-utils.ts +249 -0
  806. package/src/utils/index.ts +72 -0
  807. package/src/utils/interaction-utils.ts +212 -0
  808. package/src/utils/layer-utils.ts +248 -0
  809. package/src/utils/map-style-utils/mapbox-gl-style-editor.ts +227 -0
  810. package/src/utils/notifications-utils.ts +89 -0
  811. package/src/utils/observe-dimensions.ts +127 -0
  812. package/src/utils/split-map-utils.ts +104 -0
  813. package/src/utils/table-utils/data-container-interface.ts +140 -0
  814. package/src/utils/table-utils/data-container-utils.ts +90 -0
  815. package/src/utils/table-utils/data-row.ts +110 -0
  816. package/src/utils/table-utils/indexed-data-container.ts +184 -0
  817. package/src/utils/table-utils/kepler-table.ts +638 -0
  818. package/src/utils/table-utils/row-data-container.ts +178 -0
  819. package/src/utils/utils.ts +228 -0
  820. package/CHANGELOG.md +0 -979
  821. package/actions.js +0 -21
  822. package/cloud-providers.js +0 -21
  823. package/components.js +0 -21
  824. package/constants.js +0 -21
  825. package/dist/actions/action-wrapper.js +0 -190
  826. package/dist/actions/actions.js +0 -189
  827. package/dist/actions/identity-actions.js +0 -96
  828. package/dist/actions/index.js +0 -144
  829. package/dist/actions/map-state-actions.js +0 -103
  830. package/dist/actions/map-style-actions.js +0 -152
  831. package/dist/actions/provider-actions.js +0 -113
  832. package/dist/actions/ui-state-actions.js +0 -288
  833. package/dist/actions/vis-state-actions.js +0 -985
  834. package/dist/cloud-providers/index.js +0 -22
  835. package/dist/cloud-providers/provider.js +0 -347
  836. package/dist/components/bottom-widget.js +0 -214
  837. package/dist/components/common/action-panel.js +0 -135
  838. package/dist/components/common/animation-control/animation-control.js +0 -128
  839. package/dist/components/common/animation-control/animation-controller.js +0 -250
  840. package/dist/components/common/animation-control/animation-speed-slider.js +0 -91
  841. package/dist/components/common/animation-control/floating-time-display.js +0 -146
  842. package/dist/components/common/animation-control/playback-controls.js +0 -262
  843. package/dist/components/common/animation-control/speed-control.js +0 -70
  844. package/dist/components/common/checkbox.js +0 -134
  845. package/dist/components/common/color-legend.js +0 -217
  846. package/dist/components/common/data-table/button.js +0 -53
  847. package/dist/components/common/data-table/canvas.js +0 -43
  848. package/dist/components/common/data-table/cell-size.js +0 -170
  849. package/dist/components/common/data-table/grid.js +0 -83
  850. package/dist/components/common/data-table/index.js +0 -472
  851. package/dist/components/common/data-table/option-dropdown.js +0 -99
  852. package/dist/components/common/dataset-label.js +0 -44
  853. package/dist/components/common/error-boundary.js +0 -78
  854. package/dist/components/common/field-selector.js +0 -248
  855. package/dist/components/common/field-token.js +0 -47
  856. package/dist/components/common/file-uploader/file-drop.js +0 -212
  857. package/dist/components/common/file-uploader/file-upload-progress.js +0 -104
  858. package/dist/components/common/file-uploader/file-upload.js +0 -265
  859. package/dist/components/common/file-uploader/upload-button.js +0 -100
  860. package/dist/components/common/histogram-plot.js +0 -107
  861. package/dist/components/common/icons/add.js +0 -64
  862. package/dist/components/common/icons/anchor_window.js +0 -56
  863. package/dist/components/common/icons/arrow-down-alt.js +0 -64
  864. package/dist/components/common/icons/arrow-down-solid .js +0 -64
  865. package/dist/components/common/icons/arrow-down.js +0 -64
  866. package/dist/components/common/icons/arrow-left.js +0 -67
  867. package/dist/components/common/icons/arrow-right.js +0 -64
  868. package/dist/components/common/icons/arrow-up-alt.js +0 -65
  869. package/dist/components/common/icons/arrow-up-solid.js +0 -64
  870. package/dist/components/common/icons/arrow-up.js +0 -64
  871. package/dist/components/common/icons/base.js +0 -106
  872. package/dist/components/common/icons/bug.js +0 -66
  873. package/dist/components/common/icons/cancel.js +0 -64
  874. package/dist/components/common/icons/checkmark.js +0 -70
  875. package/dist/components/common/icons/chevron-right.js +0 -69
  876. package/dist/components/common/icons/clipboard.js +0 -65
  877. package/dist/components/common/icons/clock.js +0 -66
  878. package/dist/components/common/icons/close.js +0 -69
  879. package/dist/components/common/icons/code-alt.js +0 -67
  880. package/dist/components/common/icons/copy.js +0 -69
  881. package/dist/components/common/icons/crosshairs.js +0 -67
  882. package/dist/components/common/icons/cube-3d.js +0 -68
  883. package/dist/components/common/icons/cursor-click.js +0 -68
  884. package/dist/components/common/icons/data-table.js +0 -65
  885. package/dist/components/common/icons/db.js +0 -65
  886. package/dist/components/common/icons/delete.js +0 -65
  887. package/dist/components/common/icons/docs.js +0 -80
  888. package/dist/components/common/icons/drag-n-drop.js +0 -66
  889. package/dist/components/common/icons/draw-polygon.js +0 -87
  890. package/dist/components/common/icons/email.js +0 -68
  891. package/dist/components/common/icons/expand.js +0 -66
  892. package/dist/components/common/icons/eye-seen.js +0 -66
  893. package/dist/components/common/icons/eye-unseen.js +0 -66
  894. package/dist/components/common/icons/file-type.js +0 -52
  895. package/dist/components/common/icons/file.js +0 -64
  896. package/dist/components/common/icons/files.js +0 -64
  897. package/dist/components/common/icons/filter-funnel.js +0 -64
  898. package/dist/components/common/icons/free-window.js +0 -56
  899. package/dist/components/common/icons/gear.js +0 -66
  900. package/dist/components/common/icons/hash.js +0 -64
  901. package/dist/components/common/icons/histogram.js +0 -63
  902. package/dist/components/common/icons/index.js +0 -537
  903. package/dist/components/common/icons/info.js +0 -77
  904. package/dist/components/common/icons/layers.js +0 -64
  905. package/dist/components/common/icons/left-arrow.js +0 -67
  906. package/dist/components/common/icons/legend.js +0 -64
  907. package/dist/components/common/icons/line-chart.js +0 -63
  908. package/dist/components/common/icons/login.js +0 -66
  909. package/dist/components/common/icons/logout.js +0 -65
  910. package/dist/components/common/icons/map-icon.js +0 -72
  911. package/dist/components/common/icons/map.js +0 -72
  912. package/dist/components/common/icons/messages.js +0 -64
  913. package/dist/components/common/icons/minus.js +0 -64
  914. package/dist/components/common/icons/pause.js +0 -64
  915. package/dist/components/common/icons/picture.js +0 -64
  916. package/dist/components/common/icons/pin.js +0 -64
  917. package/dist/components/common/icons/play.js +0 -64
  918. package/dist/components/common/icons/polygon.js +0 -89
  919. package/dist/components/common/icons/rectangle.js +0 -90
  920. package/dist/components/common/icons/reduce.js +0 -67
  921. package/dist/components/common/icons/reset.js +0 -64
  922. package/dist/components/common/icons/rocket.js +0 -64
  923. package/dist/components/common/icons/save.js +0 -66
  924. package/dist/components/common/icons/save2.js +0 -70
  925. package/dist/components/common/icons/search.js +0 -66
  926. package/dist/components/common/icons/settings.js +0 -66
  927. package/dist/components/common/icons/share.js +0 -64
  928. package/dist/components/common/icons/split.js +0 -92
  929. package/dist/components/common/icons/square-select.js +0 -66
  930. package/dist/components/common/icons/swap-horizontal.js +0 -67
  931. package/dist/components/common/icons/table.js +0 -63
  932. package/dist/components/common/icons/trash.js +0 -66
  933. package/dist/components/common/icons/upload.js +0 -65
  934. package/dist/components/common/icons/vert-dots.js +0 -102
  935. package/dist/components/common/icons/vert-three-dots.js +0 -77
  936. package/dist/components/common/icons/warning.js +0 -78
  937. package/dist/components/common/image-preview.js +0 -80
  938. package/dist/components/common/info-helper.js +0 -85
  939. package/dist/components/common/item-selector/accessor.js +0 -54
  940. package/dist/components/common/item-selector/chickleted-input.js +0 -116
  941. package/dist/components/common/item-selector/dropdown-list.js +0 -289
  942. package/dist/components/common/item-selector/item-selector-submenu.js +0 -90
  943. package/dist/components/common/item-selector/item-selector.js +0 -315
  944. package/dist/components/common/item-selector/typeahead.js +0 -450
  945. package/dist/components/common/line-chart.js +0 -128
  946. package/dist/components/common/loading-spinner.js +0 -66
  947. package/dist/components/common/logo.js +0 -94
  948. package/dist/components/common/map-layer-selector.js +0 -57
  949. package/dist/components/common/modal.js +0 -179
  950. package/dist/components/common/portaled.js +0 -276
  951. package/dist/components/common/progress-bar.js +0 -65
  952. package/dist/components/common/range-brush.js +0 -278
  953. package/dist/components/common/range-plot.js +0 -143
  954. package/dist/components/common/range-slider.js +0 -320
  955. package/dist/components/common/slider/mouse-event.js +0 -110
  956. package/dist/components/common/slider/slider-bar-handle.js +0 -114
  957. package/dist/components/common/slider/slider-handle.js +0 -158
  958. package/dist/components/common/slider/slider.js +0 -241
  959. package/dist/components/common/styled-components.js +0 -290
  960. package/dist/components/common/switch.js +0 -53
  961. package/dist/components/common/time-range-slider-time-title.js +0 -79
  962. package/dist/components/common/time-range-slider.js +0 -134
  963. package/dist/components/common/time-slider-marker.js +0 -136
  964. package/dist/components/common/toolbar-item.js +0 -73
  965. package/dist/components/common/toolbar.js +0 -44
  966. package/dist/components/common/vertical-toolbar.js +0 -33
  967. package/dist/components/container.js +0 -196
  968. package/dist/components/context.js +0 -38
  969. package/dist/components/editor/constants.js +0 -45
  970. package/dist/components/editor/editor.js +0 -242
  971. package/dist/components/editor/feature-action-panel.js +0 -146
  972. package/dist/components/editor/feature-styles.js +0 -67
  973. package/dist/components/editor/handle-style.js +0 -78
  974. package/dist/components/filters/components.js +0 -31
  975. package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +0 -99
  976. package/dist/components/filters/filter-panels/multi-select-filter-panel.js +0 -73
  977. package/dist/components/filters/filter-panels/new-filter-panel.js +0 -91
  978. package/dist/components/filters/filter-panels/polygon-filter-panel.js +0 -90
  979. package/dist/components/filters/filter-panels/range-filter-panel.js +0 -73
  980. package/dist/components/filters/filter-panels/single-select-filter-panel.js +0 -73
  981. package/dist/components/filters/filter-panels/time-range-filter-panel.js +0 -83
  982. package/dist/components/filters/index.js +0 -42
  983. package/dist/components/filters/multi-select-filter.js +0 -48
  984. package/dist/components/filters/polygon-filter.js +0 -86
  985. package/dist/components/filters/range-filter.js +0 -48
  986. package/dist/components/filters/single-select-filter.js +0 -57
  987. package/dist/components/filters/time-range-filter.js +0 -75
  988. package/dist/components/filters/time-widget.js +0 -163
  989. package/dist/components/geocoder/geocoder.js +0 -282
  990. package/dist/components/geocoder-panel.js +0 -199
  991. package/dist/components/index.js +0 -1343
  992. package/dist/components/injector.js +0 -162
  993. package/dist/components/kepler-gl.js +0 -470
  994. package/dist/components/map/coordinate-info.js +0 -59
  995. package/dist/components/map/layer-hover-info.js +0 -168
  996. package/dist/components/map/layer-selector-panel.js +0 -103
  997. package/dist/components/map/locale-panel.js +0 -99
  998. package/dist/components/map/map-control-panel.js +0 -82
  999. package/dist/components/map/map-control-toolbar.js +0 -35
  1000. package/dist/components/map/map-control-tooltip.js +0 -48
  1001. package/dist/components/map/map-control.js +0 -79
  1002. package/dist/components/map/map-draw-panel.js +0 -125
  1003. package/dist/components/map/map-legend-panel.js +0 -107
  1004. package/dist/components/map/map-legend.js +0 -226
  1005. package/dist/components/map/map-popover.js +0 -188
  1006. package/dist/components/map/split-map-button.js +0 -86
  1007. package/dist/components/map/toggle-3d-button.js +0 -75
  1008. package/dist/components/map-container.js +0 -515
  1009. package/dist/components/maps-layout.js +0 -56
  1010. package/dist/components/modal-container.js +0 -484
  1011. package/dist/components/modals/add-map-style-modal.js +0 -258
  1012. package/dist/components/modals/cloud-tile.js +0 -124
  1013. package/dist/components/modals/data-table-modal.js +0 -219
  1014. package/dist/components/modals/delete-data-modal.js +0 -58
  1015. package/dist/components/modals/error-display.js +0 -44
  1016. package/dist/components/modals/export-data-modal.js +0 -210
  1017. package/dist/components/modals/export-image-modal.js +0 -139
  1018. package/dist/components/modals/export-map-modal/components.js +0 -51
  1019. package/dist/components/modals/export-map-modal/export-html-map.js +0 -141
  1020. package/dist/components/modals/export-map-modal/export-json-map.js +0 -87
  1021. package/dist/components/modals/export-map-modal/export-map-modal.js +0 -113
  1022. package/dist/components/modals/image-modal-container.js +0 -83
  1023. package/dist/components/modals/load-data-modal.js +0 -93
  1024. package/dist/components/modals/load-storage-map.js +0 -253
  1025. package/dist/components/modals/loading-dialog.js +0 -54
  1026. package/dist/components/modals/modal-dialog.js +0 -33
  1027. package/dist/components/modals/modal-tabs.js +0 -99
  1028. package/dist/components/modals/overwrite-map-modal.js +0 -81
  1029. package/dist/components/modals/provider-modal-container.js +0 -84
  1030. package/dist/components/modals/save-map-modal.js +0 -202
  1031. package/dist/components/modals/share-map-modal.js +0 -191
  1032. package/dist/components/modals/status-panel.js +0 -82
  1033. package/dist/components/modals/storage-map-viewer.js +0 -122
  1034. package/dist/components/notification-panel/notification-item.js +0 -150
  1035. package/dist/components/notification-panel.js +0 -81
  1036. package/dist/components/performance.js +0 -109
  1037. package/dist/components/plot-container.js +0 -245
  1038. package/dist/components/side-panel/cloud-storage-dropdown.js +0 -57
  1039. package/dist/components/side-panel/common/dataset-info.js +0 -50
  1040. package/dist/components/side-panel/common/dataset-tag.js +0 -51
  1041. package/dist/components/side-panel/common/dataset-title.js +0 -155
  1042. package/dist/components/side-panel/common/source-data-catalog.js +0 -64
  1043. package/dist/components/side-panel/common/source-data-selector.js +0 -114
  1044. package/dist/components/side-panel/custom-panel.js +0 -56
  1045. package/dist/components/side-panel/filter-manager.js +0 -121
  1046. package/dist/components/side-panel/filter-panel/filter-panel-header.js +0 -70
  1047. package/dist/components/side-panel/filter-panel/filter-panel.js +0 -126
  1048. package/dist/components/side-panel/interaction-manager.js +0 -51
  1049. package/dist/components/side-panel/interaction-panel/brush-config.js +0 -58
  1050. package/dist/components/side-panel/interaction-panel/interaction-panel.js +0 -145
  1051. package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +0 -210
  1052. package/dist/components/side-panel/interaction-panel/tooltip-config.js +0 -151
  1053. package/dist/components/side-panel/layer-manager.js +0 -290
  1054. package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +0 -38
  1055. package/dist/components/side-panel/layer-panel/color-palette.js +0 -87
  1056. package/dist/components/side-panel/layer-panel/color-range-selector.js +0 -366
  1057. package/dist/components/side-panel/layer-panel/color-selector.js +0 -198
  1058. package/dist/components/side-panel/layer-panel/column-selector.js +0 -66
  1059. package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +0 -36
  1060. package/dist/components/side-panel/layer-panel/custom-palette.js +0 -284
  1061. package/dist/components/side-panel/layer-panel/custom-picker.js +0 -115
  1062. package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +0 -53
  1063. package/dist/components/side-panel/layer-panel/hex-column-config.js +0 -75
  1064. package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +0 -18
  1065. package/dist/components/side-panel/layer-panel/layer-column-config.js +0 -97
  1066. package/dist/components/side-panel/layer-panel/layer-config-group.js +0 -211
  1067. package/dist/components/side-panel/layer-panel/layer-configurator.js +0 -970
  1068. package/dist/components/side-panel/layer-panel/layer-panel-header.js +0 -208
  1069. package/dist/components/side-panel/layer-panel/layer-panel.js +0 -180
  1070. package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +0 -95
  1071. package/dist/components/side-panel/layer-panel/layer-type-list-item.js +0 -75
  1072. package/dist/components/side-panel/layer-panel/layer-type-selector.js +0 -93
  1073. package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +0 -106
  1074. package/dist/components/side-panel/layer-panel/single-color-palette.js +0 -99
  1075. package/dist/components/side-panel/layer-panel/text-label-panel.js +0 -164
  1076. package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +0 -161
  1077. package/dist/components/side-panel/layer-panel/vis-config-slider.js +0 -81
  1078. package/dist/components/side-panel/layer-panel/vis-config-switch.js +0 -83
  1079. package/dist/components/side-panel/map-manager.js +0 -141
  1080. package/dist/components/side-panel/map-style-panel/map-layer-selector.js +0 -103
  1081. package/dist/components/side-panel/map-style-panel/map-style-selector.js +0 -80
  1082. package/dist/components/side-panel/panel-dropdown.js +0 -79
  1083. package/dist/components/side-panel/panel-header-action.js +0 -116
  1084. package/dist/components/side-panel/panel-header.js +0 -313
  1085. package/dist/components/side-panel/panel-tab.js +0 -72
  1086. package/dist/components/side-panel/panel-title.js +0 -39
  1087. package/dist/components/side-panel/panel-toggle.js +0 -72
  1088. package/dist/components/side-panel/side-bar.js +0 -148
  1089. package/dist/components/side-panel.js +0 -233
  1090. package/dist/connect/keplergl-connect.js +0 -59
  1091. package/dist/connect/with-local-selector.js +0 -105
  1092. package/dist/constants/action-types.js +0 -179
  1093. package/dist/constants/color-palette.js +0 -536
  1094. package/dist/constants/color-ranges.js +0 -81
  1095. package/dist/constants/custom-color-ranges.js +0 -410
  1096. package/dist/constants/default-settings.js +0 -820
  1097. package/dist/constants/index.js +0 -362
  1098. package/dist/constants/keyevent.js +0 -43
  1099. package/dist/constants/tooltip.js +0 -202
  1100. package/dist/constants/user-feedbacks.js +0 -32
  1101. package/dist/constants/user-guides.js +0 -36
  1102. package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +0 -85
  1103. package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +0 -181
  1104. package/dist/deckgl-layers/cluster-layer/cluster-layer.js +0 -313
  1105. package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +0 -75
  1106. package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +0 -95
  1107. package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +0 -95
  1108. package/dist/deckgl-layers/layer-utils/cluster-utils.js +0 -108
  1109. package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +0 -586
  1110. package/dist/deckgl-layers/layer-utils/shader-utils.js +0 -46
  1111. package/dist/deckgl-layers/line-layer/line-layer.js +0 -104
  1112. package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +0 -74
  1113. package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +0 -114
  1114. package/dist/index.js +0 -136
  1115. package/dist/layers/aggregation-layer.js +0 -382
  1116. package/dist/layers/arc-layer/arc-layer-icon.js +0 -77
  1117. package/dist/layers/arc-layer/arc-layer.js +0 -250
  1118. package/dist/layers/base-layer.js +0 -1687
  1119. package/dist/layers/cluster-layer/cluster-layer-icon.js +0 -80
  1120. package/dist/layers/cluster-layer/cluster-layer.js +0 -140
  1121. package/dist/layers/default-layer-icon.js +0 -87
  1122. package/dist/layers/geojson-layer/geojson-layer-icon.js +0 -91
  1123. package/dist/layers/geojson-layer/geojson-layer.js +0 -413
  1124. package/dist/layers/geojson-layer/geojson-utils.js +0 -171
  1125. package/dist/layers/grid-layer/grid-layer-icon.js +0 -136
  1126. package/dist/layers/grid-layer/grid-layer.js +0 -104
  1127. package/dist/layers/grid-layer/grid-utils.js +0 -59
  1128. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +0 -71
  1129. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +0 -314
  1130. package/dist/layers/h3-hexagon-layer/h3-utils.js +0 -86
  1131. package/dist/layers/heatmap-layer/heatmap-layer-icon.js +0 -88
  1132. package/dist/layers/heatmap-layer/heatmap-layer.js +0 -242
  1133. package/dist/layers/hexagon-layer/hexagon-layer-icon.js +0 -100
  1134. package/dist/layers/hexagon-layer/hexagon-layer.js +0 -108
  1135. package/dist/layers/hexagon-layer/hexagon-utils.js +0 -62
  1136. package/dist/layers/icon-layer/icon-info-modal.js +0 -114
  1137. package/dist/layers/icon-layer/icon-layer-icon.js +0 -73
  1138. package/dist/layers/icon-layer/icon-layer.js +0 -354
  1139. package/dist/layers/index.js +0 -96
  1140. package/dist/layers/layer-factory.js +0 -502
  1141. package/dist/layers/layer-text-label.js +0 -62
  1142. package/dist/layers/layer-update.js +0 -74
  1143. package/dist/layers/line-layer/line-layer-icon.js +0 -79
  1144. package/dist/layers/line-layer/line-layer.js +0 -189
  1145. package/dist/layers/mapbox-utils.js +0 -191
  1146. package/dist/layers/mapboxgl-layer.js +0 -195
  1147. package/dist/layers/point-layer/point-layer-icon.js +0 -94
  1148. package/dist/layers/point-layer/point-layer.js +0 -443
  1149. package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +0 -302
  1150. package/dist/layers/s2-geometry-layer/s2-layer-icon.js +0 -70
  1151. package/dist/layers/s2-geometry-layer/s2-utils.js +0 -45
  1152. package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +0 -54
  1153. package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +0 -151
  1154. package/dist/layers/scenegraph-layer/scenegraph-layer.js +0 -227
  1155. package/dist/layers/trip-layer/trip-info-modal.js +0 -59
  1156. package/dist/layers/trip-layer/trip-layer-icon.js +0 -89
  1157. package/dist/layers/trip-layer/trip-layer.js +0 -361
  1158. package/dist/layers/trip-layer/trip-utils.js +0 -181
  1159. package/dist/layers/types.js +0 -44
  1160. package/dist/localization/en.js +0 -494
  1161. package/dist/localization/formatted-message.js +0 -40
  1162. package/dist/localization/index.js +0 -54
  1163. package/dist/localization/locales.js +0 -59
  1164. package/dist/middleware/index.js +0 -44
  1165. package/dist/processors/data-processor.js +0 -720
  1166. package/dist/processors/file-handler.js +0 -356
  1167. package/dist/processors/index.js +0 -104
  1168. package/dist/reducers/combined-updaters.js +0 -184
  1169. package/dist/reducers/composer-helpers.js +0 -111
  1170. package/dist/reducers/composers.js +0 -40
  1171. package/dist/reducers/core.js +0 -123
  1172. package/dist/reducers/index.js +0 -125
  1173. package/dist/reducers/map-state-updaters.js +0 -227
  1174. package/dist/reducers/map-state.js +0 -52
  1175. package/dist/reducers/map-style-updaters.js +0 -487
  1176. package/dist/reducers/map-style.js +0 -51
  1177. package/dist/reducers/provider-state-updaters.js +0 -466
  1178. package/dist/reducers/provider-state.js +0 -53
  1179. package/dist/reducers/root.js +0 -212
  1180. package/dist/reducers/ui-state-updaters.js +0 -755
  1181. package/dist/reducers/ui-state.js +0 -53
  1182. package/dist/reducers/vis-state-merger.js +0 -565
  1183. package/dist/reducers/vis-state-selectors.js +0 -47
  1184. package/dist/reducers/vis-state-updaters.js +0 -2156
  1185. package/dist/reducers/vis-state.js +0 -53
  1186. package/dist/schemas/dataset-schema.js +0 -169
  1187. package/dist/schemas/index.js +0 -125
  1188. package/dist/schemas/map-state-schema.js +0 -53
  1189. package/dist/schemas/map-style-schema.js +0 -108
  1190. package/dist/schemas/schema-manager.js +0 -244
  1191. package/dist/schemas/schema-utils.js +0 -58
  1192. package/dist/schemas/schema.js +0 -119
  1193. package/dist/schemas/versions.js +0 -34
  1194. package/dist/schemas/vis-state-schema.js +0 -906
  1195. package/dist/styles/base.js +0 -1297
  1196. package/dist/styles/index.js +0 -28
  1197. package/dist/styles/media-breakpoints.js +0 -51
  1198. package/dist/tasks/tasks.js +0 -94
  1199. package/dist/templates/export-map-html.js +0 -42
  1200. package/dist/utils/aggregate-utils.js +0 -71
  1201. package/dist/utils/color-utils.js +0 -129
  1202. package/dist/utils/custom-scales.js +0 -22
  1203. package/dist/utils/data-scale-utils.js +0 -75
  1204. package/dist/utils/data-utils.js +0 -462
  1205. package/dist/utils/dataset-utils.js +0 -237
  1206. package/dist/utils/dom-to-image.js +0 -479
  1207. package/dist/utils/dom-utils.js +0 -343
  1208. package/dist/utils/export-utils.js +0 -260
  1209. package/dist/utils/filter-utils.js +0 -1136
  1210. package/dist/utils/gl-utils.js +0 -43
  1211. package/dist/utils/gpu-filter-utils.js +0 -248
  1212. package/dist/utils/index.js +0 -220
  1213. package/dist/utils/interaction-utils.js +0 -177
  1214. package/dist/utils/layer-utils.js +0 -201
  1215. package/dist/utils/locale-utils.js +0 -56
  1216. package/dist/utils/map-info-utils.js +0 -31
  1217. package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +0 -213
  1218. package/dist/utils/map-style-utils/mapbox-utils.js +0 -33
  1219. package/dist/utils/mapbox-utils.js +0 -36
  1220. package/dist/utils/notifications-utils.js +0 -90
  1221. package/dist/utils/observe-dimensions.js +0 -142
  1222. package/dist/utils/projection-utils.js +0 -72
  1223. package/dist/utils/searcher-utils.js +0 -42
  1224. package/dist/utils/split-map-utils.js +0 -112
  1225. package/dist/utils/table-utils/data-container-utils.js +0 -73
  1226. package/dist/utils/table-utils/data-row.js +0 -71
  1227. package/dist/utils/table-utils/index.js +0 -19
  1228. package/dist/utils/table-utils/indexed-data-container.js +0 -222
  1229. package/dist/utils/table-utils/kepler-table.js +0 -520
  1230. package/dist/utils/table-utils/row-data-container.js +0 -217
  1231. package/dist/utils/utils.js +0 -216
  1232. package/layers.js +0 -21
  1233. package/localization.js +0 -21
  1234. package/middleware.js +0 -21
  1235. package/processors.js +0 -21
  1236. package/reducers.js +0 -21
  1237. package/schemas.js +0 -21
  1238. package/src/actions/action-wrapper.js +0 -183
  1239. package/src/actions/actions.d.ts +0 -104
  1240. package/src/actions/actions.js +0 -178
  1241. package/src/actions/identity-actions.d.ts +0 -53
  1242. package/src/actions/identity-actions.js +0 -83
  1243. package/src/actions/index.d.ts +0 -23
  1244. package/src/actions/map-state-actions.d.ts +0 -46
  1245. package/src/actions/map-state-actions.js +0 -90
  1246. package/src/actions/map-style-actions.d.ts +0 -116
  1247. package/src/actions/map-style-actions.js +0 -135
  1248. package/src/actions/provider-actions.d.ts +0 -203
  1249. package/src/actions/provider-actions.js +0 -94
  1250. package/src/actions/ui-state-actions.d.ts +0 -200
  1251. package/src/actions/ui-state-actions.js +0 -272
  1252. package/src/actions/vis-state-actions.d.ts +0 -502
  1253. package/src/actions/vis-state-actions.js +0 -919
  1254. package/src/cloud-providers/index.d.ts +0 -53
  1255. package/src/cloud-providers/index.js +0 -21
  1256. package/src/cloud-providers/provider.js +0 -233
  1257. package/src/components/bottom-widget.d.ts +0 -33
  1258. package/src/components/bottom-widget.js +0 -235
  1259. package/src/components/common/action-panel.d.ts +0 -24
  1260. package/src/components/common/action-panel.js +0 -177
  1261. package/src/components/common/animation-control/animation-control.js +0 -155
  1262. package/src/components/common/animation-control/animation-controller.js +0 -224
  1263. package/src/components/common/animation-control/animation-speed-slider.js +0 -79
  1264. package/src/components/common/animation-control/floating-time-display.js +0 -192
  1265. package/src/components/common/animation-control/playback-controls.js +0 -278
  1266. package/src/components/common/animation-control/speed-control.js +0 -71
  1267. package/src/components/common/checkbox.js +0 -128
  1268. package/src/components/common/color-legend.js +0 -198
  1269. package/src/components/common/data-table/button.js +0 -47
  1270. package/src/components/common/data-table/cell-size.js +0 -180
  1271. package/src/components/common/data-table/grid.js +0 -55
  1272. package/src/components/common/data-table/index.js +0 -620
  1273. package/src/components/common/data-table/option-dropdown.js +0 -110
  1274. package/src/components/common/dataset-label.js +0 -40
  1275. package/src/components/common/error-boundary.js +0 -43
  1276. package/src/components/common/field-selector.js +0 -233
  1277. package/src/components/common/field-token.js +0 -56
  1278. package/src/components/common/file-uploader/file-drop.d.ts +0 -19
  1279. package/src/components/common/file-uploader/file-drop.js +0 -196
  1280. package/src/components/common/file-uploader/file-upload-progress.d.ts +0 -11
  1281. package/src/components/common/file-uploader/file-upload-progress.js +0 -110
  1282. package/src/components/common/file-uploader/file-upload.d.ts +0 -22
  1283. package/src/components/common/file-uploader/file-upload.js +0 -301
  1284. package/src/components/common/file-uploader/upload-button.d.ts.wip +0 -11
  1285. package/src/components/common/file-uploader/upload-button.js +0 -83
  1286. package/src/components/common/histogram-plot.js +0 -102
  1287. package/src/components/common/icons/add.js +0 -43
  1288. package/src/components/common/icons/anchor_window.js +0 -53
  1289. package/src/components/common/icons/arrow-down-alt.js +0 -43
  1290. package/src/components/common/icons/arrow-down-solid .js +0 -43
  1291. package/src/components/common/icons/arrow-down.js +0 -46
  1292. package/src/components/common/icons/arrow-left.js +0 -48
  1293. package/src/components/common/icons/arrow-right.js +0 -46
  1294. package/src/components/common/icons/arrow-up-alt.js +0 -46
  1295. package/src/components/common/icons/arrow-up-solid.js +0 -43
  1296. package/src/components/common/icons/arrow-up.js +0 -46
  1297. package/src/components/common/icons/base.js +0 -90
  1298. package/src/components/common/icons/bug.js +0 -46
  1299. package/src/components/common/icons/cancel.js +0 -43
  1300. package/src/components/common/icons/checkmark.js +0 -45
  1301. package/src/components/common/icons/clipboard.js +0 -46
  1302. package/src/components/common/icons/clock.js +0 -44
  1303. package/src/components/common/icons/close.js +0 -49
  1304. package/src/components/common/icons/code-alt.js +0 -43
  1305. package/src/components/common/icons/copy.js +0 -44
  1306. package/src/components/common/icons/crosshairs.js +0 -43
  1307. package/src/components/common/icons/cube-3d.js +0 -45
  1308. package/src/components/common/icons/cursor-click.js +0 -49
  1309. package/src/components/common/icons/data-table.js +0 -45
  1310. package/src/components/common/icons/db.js +0 -45
  1311. package/src/components/common/icons/delete.js +0 -44
  1312. package/src/components/common/icons/docs.js +0 -46
  1313. package/src/components/common/icons/drag-n-drop.js +0 -44
  1314. package/src/components/common/icons/draw-polygon.js +0 -60
  1315. package/src/components/common/icons/email.js +0 -45
  1316. package/src/components/common/icons/expand.js +0 -45
  1317. package/src/components/common/icons/eye-seen.js +0 -44
  1318. package/src/components/common/icons/eye-unseen.js +0 -44
  1319. package/src/components/common/icons/file-type.js +0 -57
  1320. package/src/components/common/icons/file.js +0 -43
  1321. package/src/components/common/icons/files.js +0 -42
  1322. package/src/components/common/icons/filter-funnel.js +0 -43
  1323. package/src/components/common/icons/free-window.js +0 -53
  1324. package/src/components/common/icons/gear.js +0 -45
  1325. package/src/components/common/icons/hash.js +0 -43
  1326. package/src/components/common/icons/histogram.js +0 -47
  1327. package/src/components/common/icons/index.js +0 -96
  1328. package/src/components/common/icons/info.js +0 -54
  1329. package/src/components/common/icons/layers.js +0 -43
  1330. package/src/components/common/icons/left-arrow.js +0 -43
  1331. package/src/components/common/icons/legend.js +0 -43
  1332. package/src/components/common/icons/line-chart.js +0 -45
  1333. package/src/components/common/icons/login.js +0 -46
  1334. package/src/components/common/icons/logout.js +0 -43
  1335. package/src/components/common/icons/map-icon.js +0 -69
  1336. package/src/components/common/icons/map.js +0 -69
  1337. package/src/components/common/icons/messages.js +0 -43
  1338. package/src/components/common/icons/minus.js +0 -45
  1339. package/src/components/common/icons/pause.js +0 -43
  1340. package/src/components/common/icons/picture.js +0 -43
  1341. package/src/components/common/icons/pin.js +0 -43
  1342. package/src/components/common/icons/play.js +0 -43
  1343. package/src/components/common/icons/polygon.js +0 -74
  1344. package/src/components/common/icons/rectangle.js +0 -75
  1345. package/src/components/common/icons/reduce.js +0 -48
  1346. package/src/components/common/icons/reset.js +0 -43
  1347. package/src/components/common/icons/rocket.js +0 -43
  1348. package/src/components/common/icons/save.js +0 -44
  1349. package/src/components/common/icons/save2.js +0 -47
  1350. package/src/components/common/icons/search.js +0 -44
  1351. package/src/components/common/icons/settings.js +0 -45
  1352. package/src/components/common/icons/share.js +0 -43
  1353. package/src/components/common/icons/split.js +0 -63
  1354. package/src/components/common/icons/square-select.js +0 -44
  1355. package/src/components/common/icons/table.js +0 -46
  1356. package/src/components/common/icons/trash.js +0 -51
  1357. package/src/components/common/icons/upload.js +0 -44
  1358. package/src/components/common/icons/vert-dots.js +0 -50
  1359. package/src/components/common/icons/vert-three-dots.js +0 -45
  1360. package/src/components/common/icons/warning.js +0 -46
  1361. package/src/components/common/image-preview.js +0 -111
  1362. package/src/components/common/info-helper.js +0 -84
  1363. package/src/components/common/item-selector/accessor.js +0 -45
  1364. package/src/components/common/item-selector/chickleted-input.js +0 -143
  1365. package/src/components/common/item-selector/dropdown-list.js +0 -258
  1366. package/src/components/common/item-selector/item-selector.js +0 -360
  1367. package/src/components/common/item-selector/typeahead.js +0 -507
  1368. package/src/components/common/line-chart.js +0 -134
  1369. package/src/components/common/loading-spinner.js +0 -64
  1370. package/src/components/common/logo.js +0 -92
  1371. package/src/components/common/map-layer-selector.d.ts +0 -10
  1372. package/src/components/common/map-layer-selector.js +0 -54
  1373. package/src/components/common/modal.js +0 -233
  1374. package/src/components/common/portaled.js +0 -264
  1375. package/src/components/common/progress-bar.d.ts +0 -13
  1376. package/src/components/common/progress-bar.js +0 -49
  1377. package/src/components/common/range-brush.js +0 -256
  1378. package/src/components/common/range-plot.js +0 -139
  1379. package/src/components/common/range-slider.js +0 -299
  1380. package/src/components/common/slider/mouse-event.js +0 -97
  1381. package/src/components/common/slider/slider-bar-handle.js +0 -97
  1382. package/src/components/common/slider/slider-handle.js +0 -181
  1383. package/src/components/common/slider/slider.js +0 -213
  1384. package/src/components/common/styled-components.js +0 -657
  1385. package/src/components/common/switch.js +0 -50
  1386. package/src/components/common/time-range-slider-time-title.js +0 -76
  1387. package/src/components/common/time-range-slider.js +0 -163
  1388. package/src/components/common/time-slider-marker.js +0 -168
  1389. package/src/components/common/toolbar-item.d.ts +0 -14
  1390. package/src/components/common/toolbar-item.js +0 -83
  1391. package/src/components/common/toolbar.js +0 -45
  1392. package/src/components/common/vertical-toolbar.js +0 -35
  1393. package/src/components/container.js +0 -173
  1394. package/src/components/context.d.ts +0 -10
  1395. package/src/components/context.js +0 -32
  1396. package/src/components/editor/editor.js +0 -218
  1397. package/src/components/editor/feature-action-panel.js +0 -143
  1398. package/src/components/editor/feature-styles.js +0 -75
  1399. package/src/components/editor/handle-style.js +0 -89
  1400. package/src/components/filters/filter-panels/filter-panel-types.d.ts +0 -28
  1401. package/src/components/filters/filter-panels/filter-panel-with-field-select.js +0 -124
  1402. package/src/components/filters/filter-panels/multi-select-filter-panel.js +0 -75
  1403. package/src/components/filters/filter-panels/new-filter-panel.js +0 -99
  1404. package/src/components/filters/filter-panels/polygon-filter-panel.js +0 -96
  1405. package/src/components/filters/filter-panels/range-filter-panel.js +0 -75
  1406. package/src/components/filters/filter-panels/single-select-filter-panel.js +0 -75
  1407. package/src/components/filters/filter-panels/time-range-filter-panel.js +0 -95
  1408. package/src/components/filters/multi-select-filter.js +0 -36
  1409. package/src/components/filters/polygon-filter.d.ts +0 -13
  1410. package/src/components/filters/polygon-filter.js +0 -73
  1411. package/src/components/filters/range-filter.js +0 -43
  1412. package/src/components/filters/single-select-filter.js +0 -49
  1413. package/src/components/filters/time-range-filter.js +0 -68
  1414. package/src/components/filters/time-widget.js +0 -228
  1415. package/src/components/geocoder/geocoder.d.ts +0 -33
  1416. package/src/components/geocoder/geocoder.js +0 -272
  1417. package/src/components/geocoder-panel.js +0 -191
  1418. package/src/components/index.js +0 -247
  1419. package/src/components/injector.js +0 -161
  1420. package/src/components/kepler-gl.js +0 -518
  1421. package/src/components/map/coordinate-info.js +0 -53
  1422. package/src/components/map/layer-hover-info.d.ts +0 -12
  1423. package/src/components/map/layer-hover-info.js +0 -185
  1424. package/src/components/map/layer-selector-panel.d.ts +0 -16
  1425. package/src/components/map/layer-selector-panel.js +0 -106
  1426. package/src/components/map/locale-panel.d.ts +0 -12
  1427. package/src/components/map/locale-panel.js +0 -91
  1428. package/src/components/map/map-control-panel.d.ts +0 -11
  1429. package/src/components/map/map-control-panel.js +0 -98
  1430. package/src/components/map/map-control-tooltip.d.ts +0 -8
  1431. package/src/components/map/map-control-tooltip.js +0 -40
  1432. package/src/components/map/map-control.d.ts +0 -37
  1433. package/src/components/map/map-control.js +0 -100
  1434. package/src/components/map/map-draw-panel.d.ts +0 -16
  1435. package/src/components/map/map-draw-panel.js +0 -125
  1436. package/src/components/map/map-legend-panel.d.ts +0 -20
  1437. package/src/components/map/map-legend-panel.js +0 -100
  1438. package/src/components/map/map-legend.d.ts +0 -58
  1439. package/src/components/map/map-legend.js +0 -228
  1440. package/src/components/map/map-popover.d.ts +0 -28
  1441. package/src/components/map/map-popover.js +0 -250
  1442. package/src/components/map/split-map-button.d.ts +0 -19
  1443. package/src/components/map/split-map-button.js +0 -82
  1444. package/src/components/map/toggle-3d-button.d.ts +0 -16
  1445. package/src/components/map/toggle-3d-button.js +0 -75
  1446. package/src/components/map-container.d.ts +0 -18
  1447. package/src/components/map-container.js +0 -499
  1448. package/src/components/maps-layout.d.ts +0 -5
  1449. package/src/components/maps-layout.js +0 -40
  1450. package/src/components/modal-container.d.ts +0 -37
  1451. package/src/components/modal-container.js +0 -543
  1452. package/src/components/modals/add-map-style-modal.js +0 -298
  1453. package/src/components/modals/cloud-tile.js +0 -147
  1454. package/src/components/modals/data-table-modal.js +0 -217
  1455. package/src/components/modals/delete-data-modal.js +0 -48
  1456. package/src/components/modals/error-display.js +0 -39
  1457. package/src/components/modals/export-data-modal.js +0 -193
  1458. package/src/components/modals/export-image-modal.d.ts +0 -21
  1459. package/src/components/modals/export-image-modal.js +0 -144
  1460. package/src/components/modals/export-map-modal/export-html-map.d.ts +0 -21
  1461. package/src/components/modals/export-map-modal/export-html-map.js +0 -145
  1462. package/src/components/modals/export-map-modal/export-json-map.js +0 -100
  1463. package/src/components/modals/export-map-modal/export-map-modal.js +0 -114
  1464. package/src/components/modals/image-modal-container.d.ts +0 -13
  1465. package/src/components/modals/image-modal-container.js +0 -76
  1466. package/src/components/modals/load-data-modal.d.ts +0 -30
  1467. package/src/components/modals/load-data-modal.js +0 -94
  1468. package/src/components/modals/load-storage-map.js +0 -381
  1469. package/src/components/modals/loading-dialog.js +0 -69
  1470. package/src/components/modals/modal-tabs.js +0 -126
  1471. package/src/components/modals/overwrite-map-modal.d.ts +0 -18
  1472. package/src/components/modals/overwrite-map-modal.js +0 -97
  1473. package/src/components/modals/provider-modal-container.d.ts +0 -12
  1474. package/src/components/modals/provider-modal-container.js +0 -60
  1475. package/src/components/modals/save-map-modal.d.ts +0 -32
  1476. package/src/components/modals/save-map-modal.js +0 -244
  1477. package/src/components/modals/share-map-modal.js +0 -208
  1478. package/src/components/modals/status-panel.js +0 -95
  1479. package/src/components/modals/storage-map-viewer.js +0 -177
  1480. package/src/components/notification-panel/notification-item.js +0 -132
  1481. package/src/components/notification-panel.js +0 -72
  1482. package/src/components/performance.js +0 -103
  1483. package/src/components/plot-container.js +0 -228
  1484. package/src/components/side-panel/common/dataset-info.js +0 -45
  1485. package/src/components/side-panel/common/dataset-tag.js +0 -55
  1486. package/src/components/side-panel/common/dataset-title.js +0 -146
  1487. package/src/components/side-panel/common/source-data-catalog.js +0 -61
  1488. package/src/components/side-panel/common/source-data-selector.js +0 -79
  1489. package/src/components/side-panel/filter-manager.js +0 -105
  1490. package/src/components/side-panel/filter-panel/filter-panel-header.js +0 -83
  1491. package/src/components/side-panel/filter-panel/filter-panel.js +0 -126
  1492. package/src/components/side-panel/interaction-manager.js +0 -46
  1493. package/src/components/side-panel/interaction-panel/brush-config.js +0 -51
  1494. package/src/components/side-panel/interaction-panel/interaction-panel.js +0 -115
  1495. package/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +0 -199
  1496. package/src/components/side-panel/interaction-panel/tooltip-config.js +0 -190
  1497. package/src/components/side-panel/layer-manager.js +0 -290
  1498. package/src/components/side-panel/layer-panel/color-dimension-scale-selector.js +0 -33
  1499. package/src/components/side-panel/layer-panel/color-palette.js +0 -90
  1500. package/src/components/side-panel/layer-panel/color-range-selector.js +0 -359
  1501. package/src/components/side-panel/layer-panel/color-selector.js +0 -196
  1502. package/src/components/side-panel/layer-panel/column-selector.js +0 -70
  1503. package/src/components/side-panel/layer-panel/custom-markers-config-group.js +0 -30
  1504. package/src/components/side-panel/layer-panel/custom-palette.js +0 -296
  1505. package/src/components/side-panel/layer-panel/custom-picker.js +0 -88
  1506. package/src/components/side-panel/layer-panel/dimension-scale-selector.js +0 -48
  1507. package/src/components/side-panel/layer-panel/hex-column-config.js +0 -45
  1508. package/src/components/side-panel/layer-panel/layer-column-config.js +0 -113
  1509. package/src/components/side-panel/layer-panel/layer-config-group.js +0 -237
  1510. package/src/components/side-panel/layer-panel/layer-configurator.js +0 -1412
  1511. package/src/components/side-panel/layer-panel/layer-panel-header.js +0 -236
  1512. package/src/components/side-panel/layer-panel/layer-panel.js +0 -171
  1513. package/src/components/side-panel/layer-panel/layer-type-dropdown-list.js +0 -105
  1514. package/src/components/side-panel/layer-panel/layer-type-list-item.js +0 -83
  1515. package/src/components/side-panel/layer-panel/layer-type-selector.js +0 -89
  1516. package/src/components/side-panel/layer-panel/layer-visibility-by-zoom.js +0 -123
  1517. package/src/components/side-panel/layer-panel/single-color-palette.js +0 -98
  1518. package/src/components/side-panel/layer-panel/text-label-panel.js +0 -179
  1519. package/src/components/side-panel/layer-panel/vis-config-by-field-selector.js +0 -163
  1520. package/src/components/side-panel/layer-panel/vis-config-slider.js +0 -82
  1521. package/src/components/side-panel/layer-panel/vis-config-switch.js +0 -87
  1522. package/src/components/side-panel/map-manager.js +0 -114
  1523. package/src/components/side-panel/map-style-panel/map-layer-selector.js +0 -128
  1524. package/src/components/side-panel/map-style-panel/map-style-selector.js +0 -111
  1525. package/src/components/side-panel/panel-dropdown.js +0 -53
  1526. package/src/components/side-panel/panel-header-action.js +0 -106
  1527. package/src/components/side-panel/panel-header.js +0 -321
  1528. package/src/components/side-panel/panel-tab.js +0 -62
  1529. package/src/components/side-panel/panel-title.js +0 -32
  1530. package/src/components/side-panel/panel-toggle.js +0 -70
  1531. package/src/components/side-panel/side-bar.js +0 -136
  1532. package/src/components/side-panel.d.ts +0 -33
  1533. package/src/components/side-panel.js +0 -253
  1534. package/src/connect/keplergl-connect.js +0 -47
  1535. package/src/connect/with-local-selector.d.ts +0 -11
  1536. package/src/connect/with-local-selector.js +0 -67
  1537. package/src/constants/action-types.d.ts +0 -135
  1538. package/src/constants/action-types.js +0 -184
  1539. package/src/constants/color-ranges.js +0 -72
  1540. package/src/constants/default-settings.js +0 -994
  1541. package/src/constants/index.js +0 -80
  1542. package/src/deckgl-layers/3d-building-layer/3d-building-layer.js +0 -56
  1543. package/src/deckgl-layers/3d-building-layer/3d-building-utils.js +0 -192
  1544. package/src/deckgl-layers/column-layer/enhanced-column-layer.js +0 -63
  1545. package/src/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +0 -70
  1546. package/src/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +0 -70
  1547. package/src/deckgl-layers/layer-utils/cluster-utils.js +0 -76
  1548. package/src/deckgl-layers/layer-utils/cpu-aggregator.js +0 -583
  1549. package/src/deckgl-layers/layer-utils/shader-utils.js +0 -41
  1550. package/src/deckgl-layers/line-layer/line-layer.js +0 -122
  1551. package/src/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +0 -57
  1552. package/src/deckgl-layers/svg-icon-layer/svg-icon-layer.js +0 -85
  1553. package/src/index.js +0 -52
  1554. package/src/layers/aggregation-layer.js +0 -356
  1555. package/src/layers/arc-layer/arc-layer-icon.js +0 -67
  1556. package/src/layers/arc-layer/arc-layer.js +0 -221
  1557. package/src/layers/base-layer.js +0 -1545
  1558. package/src/layers/cluster-layer/cluster-layer.js +0 -125
  1559. package/src/layers/geojson-layer/geojson-layer-icon.js +0 -68
  1560. package/src/layers/geojson-layer/geojson-layer.js +0 -344
  1561. package/src/layers/geojson-layer/geojson-utils.js +0 -179
  1562. package/src/layers/grid-layer/grid-layer-icon.js +0 -53
  1563. package/src/layers/grid-layer/grid-layer.js +0 -95
  1564. package/src/layers/grid-layer/grid-utils.js +0 -71
  1565. package/src/layers/h3-hexagon-layer/h3-hexagon-layer.js +0 -264
  1566. package/src/layers/h3-hexagon-layer/h3-utils.js +0 -65
  1567. package/src/layers/heatmap-layer/heatmap-layer.js +0 -226
  1568. package/src/layers/hexagon-layer/hexagon-layer.js +0 -95
  1569. package/src/layers/hexagon-layer/hexagon-utils.js +0 -63
  1570. package/src/layers/icon-layer/icon-info-modal.js +0 -155
  1571. package/src/layers/icon-layer/icon-layer.js +0 -324
  1572. package/src/layers/index.d.ts +0 -128
  1573. package/src/layers/index.js +0 -72
  1574. package/src/layers/layer-factory.d.ts +0 -149
  1575. package/src/layers/layer-factory.js +0 -487
  1576. package/src/layers/layer-text-label.js +0 -62
  1577. package/src/layers/layer-update.js +0 -71
  1578. package/src/layers/line-layer/line-layer.js +0 -161
  1579. package/src/layers/mapbox-utils.js +0 -195
  1580. package/src/layers/mapboxgl-layer.js +0 -154
  1581. package/src/layers/point-layer/point-layer.js +0 -412
  1582. package/src/layers/s2-geometry-layer/s2-geometry-layer.js +0 -265
  1583. package/src/layers/s2-geometry-layer/s2-utils.js +0 -36
  1584. package/src/layers/scenegraph-layer/scenegraph-layer.js +0 -182
  1585. package/src/layers/trip-layer/trip-layer.js +0 -295
  1586. package/src/layers/trip-layer/trip-utils.js +0 -169
  1587. package/src/localization/en.js +0 -504
  1588. package/src/localization/formatted-message.js +0 -33
  1589. package/src/localization/index.js +0 -32
  1590. package/src/localization/locales.js +0 -46
  1591. package/src/middleware/index.js +0 -34
  1592. package/src/processors/data-processor.d.ts +0 -57
  1593. package/src/processors/data-processor.js +0 -684
  1594. package/src/processors/file-handler.d.ts +0 -46
  1595. package/src/processors/file-handler.js +0 -220
  1596. package/src/processors/index.js +0 -44
  1597. package/src/reducers/combined-updaters.d.ts +0 -26
  1598. package/src/reducers/combined-updaters.js +0 -198
  1599. package/src/reducers/composer-helpers.d.ts +0 -32
  1600. package/src/reducers/composer-helpers.js +0 -70
  1601. package/src/reducers/core.d.ts +0 -25
  1602. package/src/reducers/core.js +0 -97
  1603. package/src/reducers/index.d.ts +0 -118
  1604. package/src/reducers/index.js +0 -53
  1605. package/src/reducers/map-state-updaters.d.ts +0 -64
  1606. package/src/reducers/map-state-updaters.js +0 -224
  1607. package/src/reducers/map-state.js +0 -47
  1608. package/src/reducers/map-style-updaters.d.ts +0 -76
  1609. package/src/reducers/map-style-updaters.js +0 -541
  1610. package/src/reducers/map-style.js +0 -53
  1611. package/src/reducers/provider-state-updaters.d.ts +0 -88
  1612. package/src/reducers/provider-state-updaters.js +0 -428
  1613. package/src/reducers/provider-state.js +0 -53
  1614. package/src/reducers/root.js +0 -230
  1615. package/src/reducers/types.d.ts +0 -10
  1616. package/src/reducers/ui-state-updaters.d.ts +0 -198
  1617. package/src/reducers/ui-state-updaters.js +0 -766
  1618. package/src/reducers/ui-state.js +0 -73
  1619. package/src/reducers/vis-state-merger.d.ts +0 -78
  1620. package/src/reducers/vis-state-merger.js +0 -557
  1621. package/src/reducers/vis-state-selectors.js +0 -35
  1622. package/src/reducers/vis-state-updaters.d.ts +0 -534
  1623. package/src/reducers/vis-state-updaters.js +0 -2137
  1624. package/src/reducers/vis-state.js +0 -155
  1625. package/src/schemas/dataset-schema.js +0 -141
  1626. package/src/schemas/index.d.ts +0 -24
  1627. package/src/schemas/index.js +0 -42
  1628. package/src/schemas/schema-manager.d.ts +0 -229
  1629. package/src/schemas/schema-manager.js +0 -228
  1630. package/src/schemas/schema.d.ts +0 -47
  1631. package/src/schemas/schema.js +0 -90
  1632. package/src/schemas/versions.d.ts +0 -23
  1633. package/src/schemas/vis-state-schema.js +0 -754
  1634. package/src/styles/base.js +0 -1620
  1635. package/src/styles/media-breakpoints.js +0 -47
  1636. package/src/tasks/tasks.js +0 -92
  1637. package/src/typedefs/README.md +0 -3
  1638. package/src/typedefs/deck.gl__core.d.ts +0 -64
  1639. package/src/typedefs/deck.gl__mesh-layers.d.ts +0 -33
  1640. package/src/utils/aggregate-utils.js +0 -71
  1641. package/src/utils/color-utils.js +0 -115
  1642. package/src/utils/data-scale-utils.d.ts +0 -26
  1643. package/src/utils/data-scale-utils.js +0 -61
  1644. package/src/utils/data-utils.d.ts +0 -46
  1645. package/src/utils/data-utils.js +0 -447
  1646. package/src/utils/dataset-utils.d.ts +0 -10
  1647. package/src/utils/dataset-utils.js +0 -255
  1648. package/src/utils/dom-to-image.js +0 -533
  1649. package/src/utils/dom-utils.js +0 -354
  1650. package/src/utils/export-utils.js +0 -247
  1651. package/src/utils/filter-utils.d.ts +0 -192
  1652. package/src/utils/filter-utils.js +0 -1114
  1653. package/src/utils/gpu-filter-utils.d.ts +0 -28
  1654. package/src/utils/gpu-filter-utils.js +0 -253
  1655. package/src/utils/index.d.ts +0 -5
  1656. package/src/utils/index.js +0 -55
  1657. package/src/utils/interaction-utils.d.ts +0 -36
  1658. package/src/utils/interaction-utils.js +0 -185
  1659. package/src/utils/layer-utils.d.ts +0 -78
  1660. package/src/utils/layer-utils.js +0 -206
  1661. package/src/utils/map-style-utils/mapbox-gl-style-editor.js +0 -201
  1662. package/src/utils/notifications-utils.js +0 -83
  1663. package/src/utils/observe-dimensions.d.ts +0 -18
  1664. package/src/utils/observe-dimensions.js +0 -115
  1665. package/src/utils/split-map-utils.js +0 -104
  1666. package/src/utils/table-utils/data-container-interface.d.ts +0 -140
  1667. package/src/utils/table-utils/data-container-utils.d.ts +0 -43
  1668. package/src/utils/table-utils/data-container-utils.js +0 -61
  1669. package/src/utils/table-utils/data-row.d.ts +0 -65
  1670. package/src/utils/table-utils/data-row.js +0 -54
  1671. package/src/utils/table-utils/index.d.ts +0 -1
  1672. package/src/utils/table-utils/indexed-data-container.d.ts +0 -26
  1673. package/src/utils/table-utils/indexed-data-container.js +0 -152
  1674. package/src/utils/table-utils/kepler-table.d.ts +0 -114
  1675. package/src/utils/table-utils/kepler-table.js +0 -508
  1676. package/src/utils/table-utils/row-data-container.d.ts +0 -30
  1677. package/src/utils/table-utils/row-data-container.js +0 -151
  1678. package/src/utils/utils.js +0 -202
  1679. package/styles.js +0 -21
  1680. /package/src/actions/{index.js → index.ts} +0 -0
  1681. /package/src/components/common/data-table/{canvas.js → canvas.tsx} +0 -0
  1682. /package/src/components/editor/{constants.js → constants.ts} +0 -0
  1683. /package/src/components/filters/{components.js → components.ts} +0 -0
  1684. /package/src/components/filters/{index.js → index.ts} +0 -0
  1685. /package/src/components/map/{map-control-toolbar.js → map-control-toolbar.tsx} +0 -0
  1686. /package/src/components/modals/export-map-modal/{components.js → components.tsx} +0 -0
  1687. /package/src/components/modals/{modal-dialog.js → modal-dialog.tsx} +0 -0
  1688. /package/src/components/side-panel/{cloud-storage-dropdown.js → cloud-storage-dropdown.tsx} +0 -0
  1689. /package/src/components/side-panel/{custom-panel.js → custom-panel.tsx} +0 -0
  1690. /package/src/components/side-panel/layer-panel/{layer-aggregation-resolution.js → layer-aggregation-resolution.tsx} +0 -0
  1691. /package/src/constants/{color-palette.js → color-palette.ts} +0 -0
  1692. /package/src/constants/{custom-color-ranges.js → custom-color-ranges.ts} +0 -0
  1693. /package/src/constants/{keyevent.js → keyevent.ts} +0 -0
  1694. /package/src/constants/{tooltip.js → tooltip.ts} +0 -0
  1695. /package/src/constants/{user-feedbacks.js → user-feedbacks.ts} +0 -0
  1696. /package/src/constants/{user-guides.js → user-guides.ts} +0 -0
  1697. /package/src/layers/cluster-layer/{cluster-layer-icon.js → cluster-layer-icon.tsx} +0 -0
  1698. /package/src/layers/{default-layer-icon.js → default-layer-icon.tsx} +0 -0
  1699. /package/src/layers/h3-hexagon-layer/{h3-hexagon-layer-icon.js → h3-hexagon-layer-icon.tsx} +0 -0
  1700. /package/src/layers/heatmap-layer/{heatmap-layer-icon.js → heatmap-layer-icon.tsx} +0 -0
  1701. /package/src/layers/hexagon-layer/{hexagon-layer-icon.js → hexagon-layer-icon.tsx} +0 -0
  1702. /package/src/layers/icon-layer/{icon-layer-icon.js → icon-layer-icon.tsx} +0 -0
  1703. /package/src/layers/line-layer/{line-layer-icon.js → line-layer-icon.tsx} +0 -0
  1704. /package/src/layers/point-layer/{point-layer-icon.js → point-layer-icon.tsx} +0 -0
  1705. /package/src/layers/s2-geometry-layer/{s2-layer-icon.js → s2-layer-icon.tsx} +0 -0
  1706. /package/src/layers/scenegraph-layer/{scenegraph-info-modal.js → scenegraph-info-modal.tsx} +0 -0
  1707. /package/src/layers/scenegraph-layer/{scenegraph-layer-icon.js → scenegraph-layer-icon.tsx} +0 -0
  1708. /package/src/layers/trip-layer/{trip-info-modal.js → trip-info-modal.tsx} +0 -0
  1709. /package/src/layers/trip-layer/{trip-layer-icon.js → trip-layer-icon.tsx} +0 -0
  1710. /package/src/layers/{types.js → types.ts} +0 -0
  1711. /package/src/reducers/{composers.js → composers.ts} +0 -0
  1712. /package/src/schemas/{map-state-schema.js → map-state-schema.ts} +0 -0
  1713. /package/src/schemas/{map-style-schema.js → map-style-schema.ts} +0 -0
  1714. /package/src/schemas/{schema-utils.js → schema-utils.ts} +0 -0
  1715. /package/src/schemas/{versions.js → versions.ts} +0 -0
  1716. /package/src/styles/{index.js → index.ts} +0 -0
  1717. /package/src/templates/{export-map-html.js → export-map-html.ts} +0 -0
  1718. /package/src/utils/{gl-utils.js → gl-utils.ts} +0 -0
  1719. /package/src/utils/{locale-utils.js → locale-utils.ts} +0 -0
  1720. /package/src/utils/{map-info-utils.js → map-info-utils.ts} +0 -0
  1721. /package/src/utils/map-style-utils/{mapbox-utils.js → mapbox-utils.ts} +0 -0
  1722. /package/src/utils/{mapbox-utils.js → mapbox-utils.ts} +0 -0
  1723. /package/src/utils/{projection-utils.js → projection-utils.ts} +0 -0
  1724. /package/src/utils/{searcher-utils.js → searcher-utils.ts} +0 -0
  1725. /package/src/utils/table-utils/{index.js → index.ts} +0 -0
@@ -0,0 +1,1744 @@
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 {console as Console} from 'global/window';
22
+ import keymirror from 'keymirror';
23
+ import {CollisionFilterExtension, DataFilterExtension} from '@deck.gl/extensions';
24
+ import {COORDINATE_SYSTEM, Layer as DeckLayer} from '@deck.gl/core';
25
+ import {_PointLabelLayer as PointLabelLayer} from '@deck.gl/carto';
26
+ import DefaultLayerIcon from './default-layer-icon';
27
+ import {diffUpdateTriggers} from './layer-update';
28
+ import {rgb} from 'd3-color';
29
+
30
+ import {
31
+ ALL_FIELD_TYPES,
32
+ NO_VALUE_COLOR,
33
+ SCALE_TYPES,
34
+ CHANNEL_SCALES,
35
+ FIELD_OPTS,
36
+ SCALE_FUNC,
37
+ CHANNEL_SCALE_SUPPORTED_FIELDS,
38
+ MAX_GPU_FILTERS,
39
+ UNKNOWN_COLOR,
40
+ ZOOM_LEVEL_LIMITS
41
+ } from 'constants/default-settings';
42
+ import {ColorRange, COLOR_RANGES, hexColor} from 'constants/color-ranges';
43
+ import {DataVizColors} from 'constants/custom-color-ranges';
44
+ import {
45
+ LAYER_VIS_CONFIGS,
46
+ DEFAULT_TEXT_LABEL,
47
+ DEFAULT_COLOR_UI,
48
+ DEFAULT_HIGHLIGHT_COLOR,
49
+ DEFAULT_LAYER_LABEL,
50
+ LayerVisConfig,
51
+ LayerVisConfigSettings
52
+ } from './layer-factory';
53
+
54
+ import {generateHashId, isPlainObject} from 'utils/utils';
55
+
56
+ import {getLatLngBounds, notNullorUndefined} from 'utils/data-utils';
57
+ import {getSampleData} from 'utils/table-utils/data-container-utils';
58
+
59
+ import {hexToRgb, getColorGroupByName, reverseColorRange, checkColorOrFallback} from 'utils/color-utils';
60
+ import {getMaskExtensionProps} from 'utils/layer-utils';
61
+ import {scaleOrdinal} from 'd3-scale';
62
+
63
+ import {RGBColor, RGBAColor, MapState, Filter, Datasets, ValueOf, NestedPartial} from 'reducers';
64
+ import {LayerTextLabel, ColorUI} from './layer-factory';
65
+ import {KeplerTable} from '../utils';
66
+ import {DataContainerInterface} from 'utils/table-utils/data-container-interface';
67
+ import {Field, GpuFilter} from 'utils/table-utils/kepler-table';
68
+ import React from 'react';
69
+
70
+ export type LayerColumn = {value: string | null; fieldIdx: number; optional?: boolean};
71
+
72
+ export type LayerColumns = {
73
+ [key: string]: LayerColumn;
74
+ };
75
+ export type VisualChannelDomain = number[] | string[];
76
+ export type VisualChannelField = Field | null;
77
+ export type VisualChannelScale = keyof typeof SCALE_TYPES;
78
+
79
+ export type LayerBaseConfig = {
80
+ dataId: string | null;
81
+ label: string;
82
+ color: RGBColor;
83
+
84
+ columns: LayerColumns;
85
+ isVisible: boolean;
86
+ isConfigActive: boolean;
87
+ highlightColor: RGBColor | RGBAColor;
88
+ hidden: boolean;
89
+
90
+ visConfig: LayerVisConfig;
91
+ textLabel: LayerTextLabel[];
92
+
93
+ colorUI: {
94
+ color: ColorUI;
95
+ colorRange: ColorUI;
96
+ };
97
+ animation: {
98
+ enabled: boolean;
99
+ domain?: null;
100
+ };
101
+ };
102
+
103
+ export type LayerColorConfig = {
104
+ colorField: VisualChannelField;
105
+ colorDomain: VisualChannelDomain;
106
+ colorScale: VisualChannelScale;
107
+ };
108
+ export type LayerSizeConfig = {
109
+ // color by size, domain is set by filters, field, scale type
110
+ sizeDomain: VisualChannelDomain;
111
+ sizeScale: VisualChannelScale;
112
+ sizeField: VisualChannelField;
113
+ };
114
+ export type LayerHeightConfig = {
115
+ heightField: VisualChannelField;
116
+ heightDomain: VisualChannelDomain;
117
+ heightScale: VisualChannelScale;
118
+ };
119
+ export type LayerStrokeColorConfig = {
120
+ strokeColorField: VisualChannelField;
121
+ strokeColorDomain: VisualChannelDomain;
122
+ strokeColorScale: VisualChannelScale;
123
+ };
124
+ export type LayerCoverageConfig = {
125
+ coverageField: VisualChannelField;
126
+ coverageDomain: VisualChannelDomain;
127
+ coverageScale: VisualChannelScale;
128
+ };
129
+ export type LayerRadiusConfig = {
130
+ radiusField: VisualChannelField;
131
+ radiusDomain: VisualChannelDomain;
132
+ radiusScale: VisualChannelScale;
133
+ };
134
+ export type LayerWeightConfig = {
135
+ weightField: VisualChannelField;
136
+ };
137
+
138
+ export type VisualChannels = {[key: string]: VisualChannel};
139
+
140
+ export type VisualChannelAggregation = 'colorAggregation' | 'sizeAggregation';
141
+
142
+ export type VisualChannel = {
143
+ property: string;
144
+ field: string;
145
+ scale: string;
146
+ domain: string;
147
+ range: string;
148
+ key: string;
149
+ channelScaleType: string;
150
+ nullValue?: any;
151
+ defaultMeasure?: any;
152
+ accessor?: string;
153
+ condition?: (config: any) => boolean;
154
+ getAttributeValue?: (config: any) => (d: any) => any;
155
+
156
+ // TODO: define defaultValue
157
+ defaultValue?: any;
158
+ // TODO: define fixed
159
+ fixed?: any;
160
+
161
+ supportedFieldTypes?: Array<keyof typeof ALL_FIELD_TYPES>;
162
+
163
+ aggregation?: VisualChannelAggregation;
164
+ };
165
+
166
+ export type VisualChannelDescription = {
167
+ label: string;
168
+ measure: string;
169
+ };
170
+
171
+ export type ColumnPairs = {[key: string]: {pair: string; fieldPairKey: string}};
172
+
173
+ type ColumnValidator = (column: LayerColumn, columns: LayerColumns, allFields: Field[]) => boolean;
174
+
175
+ export type UpdateTriggers = {
176
+ [key: string]: UpdateTrigger;
177
+ };
178
+ export type UpdateTrigger = {
179
+ [key: string]: {};
180
+ };
181
+ export type LayerBounds = [number, number, number, number];
182
+ export type FindDefaultLayerPropsReturnValue = {props: any[]; foundLayers?: any[]};
183
+ /**
184
+ * Approx. number of points to sample in a large data set
185
+ */
186
+ export const LAYER_ID_LENGTH = 6;
187
+
188
+ // Note, this is is SVG of solid circle encoded as data-uri
189
+ const FALLBACK_ICON =
190
+ 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCjwvc3ZnPg==';
191
+
192
+ const MAX_SAMPLE_SIZE = 5000;
193
+ const defaultDomain: [number, number] = [0, 1];
194
+ const dataFilterExtension = new DataFilterExtension({filterSize: MAX_GPU_FILTERS});
195
+ const collisionFilterExtension = new CollisionFilterExtension();
196
+
197
+ const defaultDataAccessor = dc => d => d;
198
+ const defaultGetFieldValue = (field, d) => field.valueAccessor(d);
199
+ const scaleIdentity = v => v;
200
+
201
+ export const OVERLAY_TYPE = keymirror({
202
+ deckgl: null,
203
+ mapboxgl: null
204
+ });
205
+
206
+ export const layerColors = Object.values(DataVizColors).map(hexToRgb);
207
+ function* generateColor(): Generator<RGBColor> {
208
+ let index = 0;
209
+ while (index < layerColors.length + 1) {
210
+ if (index === layerColors.length) {
211
+ index = 0;
212
+ }
213
+ yield layerColors[index++];
214
+ }
215
+ }
216
+
217
+ export const colorMaker = generateColor();
218
+
219
+ class Layer {
220
+ id: string;
221
+ meta: {};
222
+ visConfigSettings: {
223
+ [key: string]: ValueOf<LayerVisConfigSettings>;
224
+ };
225
+ config: LayerBaseConfig;
226
+ // TODO: define _oldDataUpdateTriggers
227
+ _oldDataUpdateTriggers: any;
228
+
229
+ legendSettings: Record<string, unknown>;
230
+ _interactivitySettings: Record<string, unknown>;
231
+
232
+ constructor(
233
+ props: {
234
+ id?: string;
235
+ } & Partial<LayerBaseConfig> = {}
236
+ ) {
237
+ this.id = props.id || generateHashId(LAYER_ID_LENGTH);
238
+ // meta
239
+ this.meta = {};
240
+
241
+ // legendSettings
242
+ this.legendSettings = {};
243
+
244
+ // visConfigSettings
245
+ this.visConfigSettings = {};
246
+
247
+ // interactivitySettings
248
+ this._interactivitySettings = {};
249
+
250
+ this.config = this.getDefaultLayerConfig({
251
+ columns: this.getLayerColumns(),
252
+ ...props
253
+ });
254
+ }
255
+
256
+ get layerIcon(): React.ElementType {
257
+ return DefaultLayerIcon;
258
+ }
259
+
260
+ get overlayType(): keyof typeof OVERLAY_TYPE {
261
+ return OVERLAY_TYPE.deckgl;
262
+ }
263
+
264
+ get type(): string | null {
265
+ return null;
266
+ }
267
+
268
+ get name() {
269
+ return this.type;
270
+ }
271
+
272
+ get isAggregated() {
273
+ return false;
274
+ }
275
+
276
+ get requiredLayerColumns(): string[] {
277
+ return [];
278
+ }
279
+
280
+ get optionalColumns(): string[] {
281
+ return [];
282
+ }
283
+
284
+ get noneLayerDataAffectingProps() {
285
+ return ['label', 'opacity', 'thickness', 'isVisible', 'hidden'];
286
+ }
287
+
288
+ get visualChannels(): VisualChannels {
289
+ return {
290
+ color: {
291
+ property: 'color',
292
+ field: 'colorField',
293
+ scale: 'colorScale',
294
+ domain: 'colorDomain',
295
+ range: 'colorRange',
296
+ key: 'color',
297
+ channelScaleType: CHANNEL_SCALES.color,
298
+ nullValue: NO_VALUE_COLOR,
299
+ defaultValue: config => config.color
300
+ },
301
+ size: {
302
+ property: 'size',
303
+ field: 'sizeField',
304
+ scale: 'sizeScale',
305
+ domain: 'sizeDomain',
306
+ range: 'sizeRange',
307
+ key: 'size',
308
+ channelScaleType: CHANNEL_SCALES.size,
309
+ nullValue: 0,
310
+ defaultValue: 1
311
+ }
312
+ };
313
+ }
314
+
315
+ get columnValidators(): {[key: string]: ColumnValidator} {
316
+ return {};
317
+ }
318
+ /*
319
+ * Column pairs maps layer column to a specific field pairs,
320
+ * By default, it is set to null
321
+ */
322
+ get columnPairs(): ColumnPairs | null {
323
+ return null;
324
+ }
325
+
326
+ /*
327
+ * Default point column pairs, can be used for point based layers: point, icon etc.
328
+ */
329
+ get defaultPointColumnPairs(): ColumnPairs {
330
+ return {
331
+ lat: {pair: 'lng', fieldPairKey: 'lat'},
332
+ lng: {pair: 'lat', fieldPairKey: 'lng'}
333
+ };
334
+ }
335
+
336
+ /*
337
+ * Default link column pairs, can be used for link based layers: arc, line etc
338
+ */
339
+ get defaultLinkColumnPairs(): ColumnPairs {
340
+ return {
341
+ lat0: {pair: 'lng0', fieldPairKey: 'lat'},
342
+ lng0: {pair: 'lat0', fieldPairKey: 'lng'},
343
+ lat1: {pair: 'lng1', fieldPairKey: 'lat'},
344
+ lng1: {pair: 'lat1', fieldPairKey: 'lng'}
345
+ };
346
+ }
347
+
348
+ /**
349
+ * Return a React component for to render layer instructions in a modal
350
+ * @returns {object} - an object
351
+ * @example
352
+ * return {
353
+ * id: 'iconInfo',
354
+ * template: IconInfoModal,
355
+ * modalProps: {
356
+ * title: 'How to draw icons'
357
+ * };
358
+ * }
359
+ */
360
+ get layerInfoModal(): any {
361
+ return null;
362
+ }
363
+
364
+ get interactivitySettings() {
365
+ return (this as any)._interactivitySettings;
366
+ }
367
+
368
+ set interactivitySettings(interactivitySettings) {
369
+ (this as any)._interactivitySettings = interactivitySettings;
370
+ }
371
+
372
+ get hasTooltip() {
373
+ return Boolean(
374
+ this.interactivitySettings?.hover?.fields.length ||
375
+ this.interactivitySettings?.click?.fields.length
376
+ );
377
+ }
378
+
379
+ get hasInteractivity() {
380
+ return Boolean(this.hasTooltip && this.interactivitySettings?.enabled);
381
+ }
382
+
383
+ /*
384
+ * Given a dataset, automatically find props to create layer based on it
385
+ * and return the props and previous found layers.
386
+ * By default, no layers will be found
387
+ */
388
+ static findDefaultLayerProps(
389
+ dataset: KeplerTable,
390
+ foundLayers?: any[]
391
+ ): FindDefaultLayerPropsReturnValue {
392
+ return {props: [], foundLayers};
393
+ }
394
+
395
+ /**
396
+ * Given a array of preset required column names
397
+ * found field that has the same name to set as layer column
398
+ *
399
+ * @param {object} defaultFields
400
+ * @param {object[]} allFields
401
+ * @returns {object[] | null} all possible required layer column pairs
402
+ */
403
+ static findDefaultColumnField(defaultFields, allFields) {
404
+ // find all matched fields for each required col
405
+ const requiredColumns = Object.keys(defaultFields).reduce((prev, key) => {
406
+ const requiredFields = allFields.filter(
407
+ f => f.name === defaultFields[key] || defaultFields[key].includes(f.name)
408
+ );
409
+
410
+ prev[key] = requiredFields.length
411
+ ? requiredFields.map(f => ({
412
+ value: f.name,
413
+ fieldIdx: f.fieldIdx
414
+ }))
415
+ : null;
416
+ return prev;
417
+ }, {});
418
+
419
+ if (!Object.values(requiredColumns).every(Boolean)) {
420
+ // if any field missing, return null
421
+ return null;
422
+ }
423
+
424
+ return this.getAllPossibleColumnParis(requiredColumns);
425
+ }
426
+
427
+ static getAllPossibleColumnParis(requiredColumns) {
428
+ // for multiple matched field for one required column, return multiple
429
+ // combinations, e. g. if column a has 2 matched, column b has 3 matched
430
+ // 6 possible column pairs will be returned
431
+ const allKeys = Object.keys(requiredColumns);
432
+ const pointers = allKeys.map((k, i) => (i === allKeys.length - 1 ? -1 : 0));
433
+ const countPerKey = allKeys.map(k => requiredColumns[k].length);
434
+ // TODO: Better typings
435
+ const pairs: any[] = [];
436
+
437
+ /* eslint-disable no-loop-func */
438
+ while (incrementPointers(pointers, countPerKey, pointers.length - 1)) {
439
+ const newPair = pointers.reduce((prev, cuur, i) => {
440
+ prev[allKeys[i]] = requiredColumns[allKeys[i]][cuur];
441
+ return prev;
442
+ }, {});
443
+
444
+ pairs.push(newPair);
445
+ }
446
+ /* eslint-enable no-loop-func */
447
+
448
+ // recursively increment pointers
449
+ function incrementPointers(pts, counts, index) {
450
+ if (index === 0 && pts[0] === counts[0] - 1) {
451
+ // nothing to increment
452
+ return false;
453
+ }
454
+
455
+ if (pts[index] + 1 < counts[index]) {
456
+ pts[index] = pts[index] + 1;
457
+ return true;
458
+ }
459
+
460
+ pts[index] = 0;
461
+ return incrementPointers(pts, counts, index - 1);
462
+ }
463
+
464
+ return pairs;
465
+ }
466
+
467
+ static hexToRgb(c) {
468
+ return hexToRgb(c);
469
+ }
470
+
471
+ getDefaultLayerConfig(
472
+ props: Partial<LayerBaseConfig> = {}
473
+ ): LayerBaseConfig & Partial<LayerColorConfig & LayerSizeConfig> {
474
+ return {
475
+ dataId: props.dataId || null,
476
+ ...{visibilityByZoom: {
477
+ min: (props as any).visibilityByZoom?.min || ZOOM_LEVEL_LIMITS.min,
478
+ max: (props as any).visibilityByZoom?.max || ZOOM_LEVEL_LIMITS.max
479
+ }}, // TODO: Clean up
480
+ label: props.label || DEFAULT_LAYER_LABEL,
481
+ color: props.color || colorMaker.next().value,
482
+ columns: props.columns || {},
483
+ isVisible: props.isVisible || false,
484
+ isConfigActive: props.isConfigActive || false,
485
+ highlightColor: props.highlightColor || DEFAULT_HIGHLIGHT_COLOR,
486
+ hidden: props.hidden || false,
487
+
488
+ // TODO: refactor this into separate visual Channel config
489
+ // color by field, domain is set by filters, field, scale type
490
+ colorField: null,
491
+ colorDomain: [0, 1],
492
+ colorScale: SCALE_TYPES.quantile,
493
+
494
+ // color by size, domain is set by filters, field, scale type
495
+ sizeDomain: [0, 1],
496
+ sizeScale: SCALE_TYPES.linear,
497
+ sizeField: null,
498
+ ...{radiusField: null}, // TODO: Clean up
499
+
500
+ visConfig: {},
501
+
502
+ textLabel: [DEFAULT_TEXT_LABEL],
503
+
504
+ colorUI: {
505
+ color: DEFAULT_COLOR_UI,
506
+ colorRange: DEFAULT_COLOR_UI
507
+ },
508
+ animation: {enabled: false}
509
+ };
510
+ }
511
+
512
+ /**
513
+ * Get the description of a visualChannel config
514
+ * @param key
515
+ * @returns
516
+ */
517
+ getVisualChannelDescription(key: string): VisualChannelDescription {
518
+ // e.g. label: Color, measure: Vehicle Type
519
+ const channel = this.visualChannels[key];
520
+ if (!channel) return {label: '', measure: ''};
521
+ const rangeSettings = this.visConfigSettings[channel.range];
522
+ const fieldSettings = this.config[channel.field];
523
+ const label = rangeSettings?.label;
524
+ return {
525
+ label: typeof label === 'function' ? label(this.config) : label,
526
+ measure: fieldSettings
527
+ ? fieldSettings.displayName || fieldSettings.name
528
+ : channel.defaultMeasure
529
+ };
530
+ }
531
+
532
+ /**
533
+ * Assign a field to layer column, return column config
534
+ * @param key - Column Key
535
+ * @param field - Selected field
536
+ * @returns {{}} - Column config
537
+ */
538
+ assignColumn(key: string, field: Field): LayerColumns {
539
+ // field value could be null for optional columns
540
+ const update = field
541
+ ? {
542
+ value: field.name,
543
+ fieldIdx: field.fieldIdx
544
+ }
545
+ : {value: null, fieldIdx: -1};
546
+
547
+ return {
548
+ ...this.config.columns,
549
+ [key]: {
550
+ ...this.config.columns[key],
551
+ ...update
552
+ }
553
+ };
554
+ }
555
+
556
+ /**
557
+ * Assign a field pair to column config, return column config
558
+ * @param key - Column Key
559
+ * @param pair - field Pair
560
+ * @returns {object} - Column config
561
+ */
562
+ assignColumnPairs(key, pair) {
563
+ if (!this.columnPairs || !this.columnPairs?.[key]) {
564
+ // should not end in this state
565
+ return this.config.columns;
566
+ }
567
+
568
+ const {pair: partnerKey, fieldPairKey} = this.columnPairs?.[key];
569
+ const {fieldPairKey: partnerFieldPairKey} = this.columnPairs?.[partnerKey];
570
+
571
+ return {
572
+ ...this.config.columns,
573
+ [key]: pair[fieldPairKey],
574
+ [partnerKey]: pair[partnerFieldPairKey]
575
+ };
576
+ }
577
+
578
+ /**
579
+ * Calculate a radius zoom multiplier to render points, so they are visible in all zoom level
580
+ * @param {object} mapState
581
+ * @param {number} mapState.zoom - actual zoom
582
+ * @param {number | void} mapState.zoomOffset - zoomOffset when render in the plot container for export image
583
+ * @returns {number}
584
+ */
585
+ getZoomFactor({zoom, zoomOffset = 0}) {
586
+ return Math.pow(2, Math.max(14 - zoom + zoomOffset, 0));
587
+ }
588
+
589
+ /**
590
+ * Calculate a elevation zoom multiplier to render points, so they are visible in all zoom level
591
+ * @param {object} mapState
592
+ * @param {number} mapState.zoom - actual zoom
593
+ * @param {number | void} mapState.zoomOffset - zoomOffset when render in the plot container for export image
594
+ * @returns {number}
595
+ */
596
+ getElevationZoomFactor({zoom, zoomOffset = 0}: {zoom: number; zoomOffset?: number}) {
597
+ return this.config.visConfig.enableElevationZoomFactor
598
+ ? Math.pow(2, Math.max(8 - zoom + zoomOffset, 0))
599
+ : 1;
600
+ }
601
+
602
+ formatLayerData(datasets: Datasets, oldLayerData?: any) {
603
+ return {};
604
+ }
605
+
606
+ renderLayer(...args: any[]): any[] {
607
+ return [];
608
+ }
609
+
610
+ getHoverData(object, dataContainer: DataContainerInterface, fields: Field[]) {
611
+ if (!object) {
612
+ return null;
613
+ }
614
+
615
+ // By default, each entry of layerData should have an index of a row in the original data container.
616
+ // Each layer can implement its own getHoverData method
617
+ return dataContainer.row(object.index);
618
+ }
619
+
620
+ /**
621
+ * When change layer type, try to copy over layer configs as much as possible
622
+ * @param configToCopy - config to copy over
623
+ * @param visConfigSettings - visConfig settings of config to copy
624
+ */
625
+ assignConfigToLayer(configToCopy, visConfigSettings) {
626
+ // don't deep merge visualChannel field
627
+ // don't deep merge color range, reversed: is not a key by default
628
+ const shallowCopy = ['colorRange', 'strokeColorRange'].concat(
629
+ Object.values(this.visualChannels).map(v => v.field)
630
+ );
631
+
632
+ // don't copy over domain and animation
633
+ const notToCopy = ['animation'].concat(Object.values(this.visualChannels).map(v => v.domain));
634
+ // if range is for the same property group copy it, otherwise, not to copy
635
+ Object.values(this.visualChannels).forEach(v => {
636
+ if (
637
+ configToCopy.visConfig[v.range] &&
638
+ this.visConfigSettings[v.range] &&
639
+ visConfigSettings[v.range].group !== this.visConfigSettings[v.range].group
640
+ ) {
641
+ notToCopy.push(v.range);
642
+ }
643
+ });
644
+
645
+ // don't copy over visualChannel range
646
+ const currentConfig = this.config;
647
+ const copied = this.copyLayerConfig(currentConfig, configToCopy, {
648
+ shallowCopy,
649
+ notToCopy
650
+ });
651
+ this.updateLayerConfig(copied);
652
+ // validate visualChannel field type and scale types
653
+ Object.keys(this.visualChannels).forEach(channel => {
654
+ this.validateVisualChannel(channel);
655
+ });
656
+ }
657
+
658
+ /*
659
+ * Recursively copy config over to an empty layer
660
+ * when received saved config, or copy config over from a different layer type
661
+ * make sure to only copy over value to existing keys
662
+ * @param {object} currentConfig - existing config to be override
663
+ * @param {object} configToCopy - new Config to copy over
664
+ * @param {string[]} shallowCopy - array of properties to not to be deep copied
665
+ * @param {string[]} notToCopy - array of properties not to copy
666
+ * @returns {object} - copied config
667
+ */
668
+ copyLayerConfig(
669
+ currentConfig,
670
+ configToCopy,
671
+ {shallowCopy = [], notToCopy = []}: {shallowCopy?: string[]; notToCopy?: string[]} = {}
672
+ ) {
673
+ const copied = {};
674
+ Object.keys(currentConfig).forEach(key => {
675
+ if (
676
+ isPlainObject(currentConfig[key]) &&
677
+ isPlainObject(configToCopy[key]) &&
678
+ !shallowCopy.includes(key) &&
679
+ !notToCopy.includes(key)
680
+ ) {
681
+ // recursively assign object value
682
+ copied[key] = this.copyLayerConfig(currentConfig[key], configToCopy[key], {
683
+ shallowCopy,
684
+ notToCopy
685
+ });
686
+ } else if (notNullorUndefined(configToCopy[key]) && !notToCopy.includes(key)) {
687
+ // copy
688
+ copied[key] = configToCopy[key];
689
+ } else {
690
+ // keep existing
691
+ copied[key] = currentConfig[key];
692
+ }
693
+ });
694
+
695
+ return copied;
696
+ }
697
+
698
+ registerVisConfig(layerVisConfigs: {
699
+ [key: string]: keyof LayerVisConfigSettings | ValueOf<LayerVisConfigSettings>;
700
+ }) {
701
+ Object.keys(layerVisConfigs).forEach(item => {
702
+ const configItem = layerVisConfigs[item];
703
+ if (typeof configItem === 'string' && LAYER_VIS_CONFIGS[configItem]) {
704
+ // if assigned one of default LAYER_CONFIGS
705
+ this.config.visConfig[item] = LAYER_VIS_CONFIGS[configItem].defaultValue;
706
+ this.visConfigSettings[item] = LAYER_VIS_CONFIGS[configItem];
707
+ } else if (
708
+ typeof configItem === 'object' &&
709
+ ['type', 'defaultValue'].every(p => configItem.hasOwnProperty(p))
710
+ ) {
711
+ // if provided customized visConfig, and has type && defaultValue
712
+ // TODO: further check if customized visConfig is valid
713
+ this.config.visConfig[item] = configItem.defaultValue;
714
+ this.visConfigSettings[item] = configItem;
715
+ }
716
+ });
717
+ }
718
+
719
+ getLayerColumns() {
720
+ const columnValidators = this.columnValidators;
721
+ const required = this.requiredLayerColumns.reduce(
722
+ (accu, key) => ({
723
+ ...accu,
724
+ [key]: columnValidators[key]
725
+ ? {value: null, fieldIdx: -1, validator: columnValidators[key]}
726
+ : {value: null, fieldIdx: -1}
727
+ }),
728
+ {}
729
+ );
730
+ const optional = this.optionalColumns.reduce(
731
+ (accu, key) => ({
732
+ ...accu,
733
+ [key]: {value: null, fieldIdx: -1, optional: true}
734
+ }),
735
+ {}
736
+ );
737
+
738
+ return {...required, ...optional};
739
+ }
740
+
741
+ updateLayerConfig<LayerConfig extends LayerBaseConfig = LayerBaseConfig>(
742
+ newConfig: Partial<LayerConfig>
743
+ ): Layer {
744
+ this.config = {...this.config, ...newConfig};
745
+ return this;
746
+ }
747
+
748
+ updateLayerVisConfig(newVisConfig) {
749
+ this.config.visConfig = {...this.config.visConfig, ...newVisConfig};
750
+ return this;
751
+ }
752
+
753
+ updateLayerColorUI(prop: string, newConfig: NestedPartial<ColorUI>): Layer {
754
+ const {colorUI: previous, visConfig} = this.config;
755
+
756
+ if (!isPlainObject(newConfig) || typeof prop !== 'string') {
757
+ return this;
758
+ }
759
+
760
+ const colorUIProp = Object.entries(newConfig).reduce((accu, [key, value]) => {
761
+ return {
762
+ ...accu,
763
+ [key]: isPlainObject(accu[key]) && isPlainObject(value) ? {...accu[key], ...value} : value
764
+ };
765
+ }, previous[prop] || DEFAULT_COLOR_UI);
766
+
767
+ const colorUI = {
768
+ ...previous,
769
+ [prop]: colorUIProp
770
+ };
771
+
772
+ this.updateLayerConfig({colorUI});
773
+ // if colorUI[prop] is colorRange. If type is hexColor then it's also a range
774
+ const isColorRange =
775
+ visConfig[prop] && (visConfig[prop].colors || visConfig[prop].type === hexColor);
776
+
777
+ if (isColorRange) {
778
+ this.updateColorUIByColorRange(newConfig, prop);
779
+ this.updateColorRangeByColorUI(newConfig, previous, prop);
780
+ this.updateCustomPalette(newConfig, previous, prop);
781
+ }
782
+
783
+ return this;
784
+ }
785
+
786
+ updateCustomPalette(newConfig, previous, prop) {
787
+ if (!newConfig.colorRangeConfig || !newConfig.colorRangeConfig.custom) {
788
+ return;
789
+ }
790
+
791
+ const {colorUI, visConfig} = this.config;
792
+
793
+ if (!visConfig[prop]) return;
794
+ const {colors} = visConfig[prop];
795
+ const customPalette = {
796
+ ...colorUI[prop].customPalette,
797
+ name: 'Custom Palette',
798
+ colors: [...colors]
799
+ };
800
+ this.updateLayerConfig({
801
+ colorUI: {
802
+ ...colorUI,
803
+ [prop]: {
804
+ ...colorUI[prop],
805
+ customPalette
806
+ }
807
+ }
808
+ });
809
+ }
810
+ /**
811
+ * if open dropdown and prop is color range
812
+ * Automatically set colorRangeConfig's step, reversed and type
813
+ * @param {*} newConfig
814
+ * @param {*} prop
815
+ */
816
+ updateColorUIByColorRange(newConfig, prop) {
817
+ if (typeof newConfig.showDropdown !== 'number') return;
818
+
819
+ const {colorUI, visConfig} = this.config;
820
+ this.updateLayerConfig({
821
+ colorUI: {
822
+ ...colorUI,
823
+ [prop]: {
824
+ ...colorUI[prop],
825
+ colorRangeConfig: {
826
+ ...colorUI[prop].colorRangeConfig,
827
+ type: visConfig[prop].type,
828
+ steps: visConfig[prop].colors?.length,
829
+ reversed: Boolean(visConfig[prop].reversed),
830
+ hexColumn: this.getHexColumn(prop),
831
+ isHexColumn: this.isColoredByColorColumn(prop)
832
+ }
833
+ }
834
+ }
835
+ });
836
+ }
837
+
838
+ // eslint-disable-next-line complexity
839
+ updateColorRangeByColorUI(newConfig, previous, prop) {
840
+ // only update colorRange if changes in UI is made to 'reversed', 'steps' or steps
841
+ const shouldUpdate =
842
+ newConfig.colorRangeConfig &&
843
+ ['reversed', 'steps'].some(
844
+ key =>
845
+ newConfig.colorRangeConfig.hasOwnProperty(key) &&
846
+ newConfig.colorRangeConfig[key] !==
847
+ (previous[prop] || DEFAULT_COLOR_UI).colorRangeConfig[key]
848
+ );
849
+ if (!shouldUpdate) return;
850
+
851
+ const {colorUI, visConfig} = this.config;
852
+ const {steps, reversed} = colorUI[prop].colorRangeConfig;
853
+ const colorRange = visConfig[prop];
854
+ // find based on step or reversed
855
+ let update;
856
+ if (newConfig.colorRangeConfig.hasOwnProperty('steps')) {
857
+ const group = getColorGroupByName(colorRange);
858
+
859
+ if (group) {
860
+ const sameGroup = COLOR_RANGES.filter(cr => getColorGroupByName(cr) === group);
861
+
862
+ update = sameGroup.find(cr => cr.colors.length === steps);
863
+
864
+ if (update && colorRange.reversed) {
865
+ update = reverseColorRange(true, update);
866
+ }
867
+
868
+ if (update && colorRange.colorMap) {
869
+ update = this.updateColorMap(prop, colorRange.colorMap, update);
870
+ }
871
+ }
872
+ }
873
+
874
+ if (newConfig.colorRangeConfig.hasOwnProperty('reversed')) {
875
+ update = reverseColorRange(reversed, update || colorRange);
876
+ }
877
+
878
+ if (update) {
879
+ this.updateLayerVisConfig({[prop]: update});
880
+ }
881
+ }
882
+
883
+ updateColorMap(prop, colorMap, colorRange) {
884
+ // @ts-ignore
885
+ const {field, domain} = Object.values(this.visualChannels).find(value => value.range === prop);
886
+ const type = this.config[field]?.type;
887
+
888
+ if (type === 'string' || type === 'boolean' || type === 'date') {
889
+ return this.updateCategoryColorMap(colorMap, this.config[domain], colorRange);
890
+ }
891
+
892
+ // If no type or type is not string, boolean or date
893
+ return this.updateNumericColorMap(colorMap, this.config[domain], colorRange);
894
+ }
895
+
896
+ updateCategoryColorMap(colorMap, domain, colorRange) {
897
+ const colors = colorRange.colors;
898
+ const assignedCategories = [];
899
+ if (colorRange.type === hexColor) {
900
+ return {
901
+ ...colorRange,
902
+ colorMap: []
903
+ };
904
+ }
905
+ const newColorMap = colorMap.slice(0, colors.length).map((cMap, index) => {
906
+ assignedCategories.push(cMap[0]);
907
+ return [cMap[0], colors[index]];
908
+ });
909
+ const unassignedColors = colors.slice(newColorMap.length, colors.length);
910
+
911
+ for (const color of unassignedColors) {
912
+ const category = domain.find(d => !assignedCategories.includes(d));
913
+ if (!category) {
914
+ break;
915
+ }
916
+ assignedCategories.push(category);
917
+ newColorMap.push([category, color]);
918
+ }
919
+ return {
920
+ ...colorRange,
921
+ colorMap: newColorMap
922
+ };
923
+ }
924
+
925
+ updateNumericColorMap(colorMap, domain, update) {
926
+ const colors = update.colors;
927
+ let newColorMap = colorMap.slice(0, colors.length);
928
+
929
+ newColorMap = newColorMap.map((cMap, index) => {
930
+ const value = index === newColorMap.length - 1 ? null : cMap[0];
931
+ return [value, colors[index]];
932
+ });
933
+ const unassignedColors = colors.slice(newColorMap.length, colors.length);
934
+
935
+ if (unassignedColors.length > 0) {
936
+ const colorMapValues = colorMap.map(c => c[0]).filter(c => typeof c === 'number');
937
+ const maxValue = Math.max(...colorMapValues, domain[domain.length - 1]);
938
+ const prevValue = newColorMap[newColorMap.length - 2][0];
939
+ const step = (maxValue - prevValue) / (unassignedColors.length + 1);
940
+ newColorMap[newColorMap.length - 1][0] = prevValue + step;
941
+
942
+ for (const [i, color] of unassignedColors.entries()) {
943
+ const value = i === unassignedColors.length - 1 ? null : prevValue + (step * (i + 2));
944
+ newColorMap.push([value, color]);
945
+ }
946
+ }
947
+ return {
948
+ ...update,
949
+ colorMap: newColorMap
950
+ };
951
+ }
952
+
953
+ /**
954
+ * Check whether layer has all columns
955
+ * @returns yes or no
956
+ */
957
+ hasAllColumns(): boolean {
958
+ const {columns} = this.config;
959
+ return (
960
+ columns &&
961
+ Object.values(columns).every(v => {
962
+ return Boolean(v.optional || (v.value && v.fieldIdx > -1));
963
+ })
964
+ );
965
+ }
966
+
967
+ /**
968
+ * Check whether layer has data
969
+ *
970
+ * @param {Array | Object} layerData
971
+ * @returns {boolean} yes or no
972
+ */
973
+ hasLayerData(layerData) {
974
+ if (!layerData) {
975
+ return false;
976
+ }
977
+ return Boolean(layerData.data && layerData.data.length);
978
+ }
979
+
980
+ isValidToSave(): boolean {
981
+ return Boolean(this.type && this.hasAllColumns());
982
+ }
983
+
984
+ shouldRenderLayer(data): boolean {
985
+ return (
986
+ Boolean(this.type) &&
987
+ this.hasAllColumns() &&
988
+ this.hasLayerData(data) &&
989
+ typeof this.renderLayer === 'function'
990
+ );
991
+ }
992
+
993
+ getColorScale(colorScale: string, colorDomain: VisualChannelDomain, colorRange: ColorRange) {
994
+ if (colorRange.type === hexColor) {
995
+ return (_, color) => {
996
+ const {r, g, b} = rgb(color);
997
+ return [r, g, b].some(isNaN) ? UNKNOWN_COLOR : [r, g, b];
998
+ };
999
+ } else if (Array.isArray(colorRange.colorMap)) {
1000
+ const cMap = new Map();
1001
+ colorRange.colorMap.forEach(([k, v]) => {
1002
+ cMap.set(k, typeof v === 'string' ? hexToRgb(v) : v);
1003
+ });
1004
+
1005
+ const scale = SCALE_FUNC[colorScale]()
1006
+ .domain(cMap.keys())
1007
+ .range(cMap.values())
1008
+ .unknown(UNKNOWN_COLOR);
1009
+ return scale;
1010
+ }
1011
+ return this.getVisChannelScale(colorScale, colorDomain, colorRange.colors.map(hexToRgb));
1012
+ }
1013
+
1014
+ getCustomMarkersScale(range, fallbackIcon) {
1015
+ let unknownValue = fallbackIcon || FALLBACK_ICON;
1016
+ if (!range) {
1017
+ return () => unknownValue;
1018
+ }
1019
+
1020
+ const mapping = new Map();
1021
+
1022
+ if (range.othersMarker) {
1023
+ unknownValue = range.othersMarker;
1024
+ }
1025
+ for (const {value, markerUrl} of range.markerMap) {
1026
+ if (markerUrl) {
1027
+ mapping.set(value, markerUrl);
1028
+ }
1029
+ }
1030
+
1031
+ // @ts-ignore d3 scale
1032
+ const scale = scaleOrdinal()
1033
+ .domain(Array.from(mapping.keys()))
1034
+ .range(Array.from(mapping.values()))
1035
+ .unknown(unknownValue);
1036
+ return scale;
1037
+ }
1038
+
1039
+ /**
1040
+ * Mapping from visual channels to deck.gl accesors
1041
+ * @param {Object} param Parameters
1042
+ * @param {Function} param.dataAccessor Access kepler.gl layer data from deck.gl layer
1043
+ * @param {import('utils/table-utils/data-container-interface').DataContainerInterface} param.dataContainer DataContainer to use use with dataAccessor
1044
+ * @return {Object} attributeAccessors - deck.gl layer attribute accessors
1045
+ */
1046
+ getAttributeAccessors({
1047
+ dataAccessor = defaultDataAccessor,
1048
+ dataContainer
1049
+ }: {
1050
+ dataAccessor?: typeof defaultDataAccessor;
1051
+ dataContainer: DataContainerInterface;
1052
+ }) {
1053
+ const attributeAccessors: {[key: string]: any} = {};
1054
+
1055
+ // eslint-disable-next-line complexity
1056
+ Object.keys(this.visualChannels).forEach(channel => {
1057
+ const {
1058
+ field,
1059
+ fixed,
1060
+ scale,
1061
+ domain,
1062
+ range,
1063
+ accessor,
1064
+ defaultValue,
1065
+ getAttributeValue,
1066
+ nullValue,
1067
+ channelScaleType,
1068
+ aggregation
1069
+ } = this.visualChannels[channel];
1070
+
1071
+ const shouldGetScale = Boolean(
1072
+ (scale || channelScaleType === CHANNEL_SCALES.identity) && this.config[field]
1073
+ );
1074
+
1075
+ if (shouldGetScale) {
1076
+ const isFixed = fixed && this.config.visConfig[fixed];
1077
+ // It's important to declare as const all the parameters that we are going to be use in the getEncodedChannelValue call
1078
+ // otherwise, the oldLayerData parameter in formatLayerData method will be wrong (you can check the formatLayerData TileLayer method in Builder as example)
1079
+ const fieldConfig = this.config[field];
1080
+ const aggregationValue = this.config.visConfig[aggregation];
1081
+
1082
+ const scaleFunction =
1083
+ channelScaleType === CHANNEL_SCALES.identity
1084
+ ? scaleIdentity
1085
+ : channelScaleType === CHANNEL_SCALES.color
1086
+ ? this.getColorScale(
1087
+ this.config[scale],
1088
+ this.config[domain],
1089
+ this.config.visConfig[range]
1090
+ )
1091
+ : channelScaleType === CHANNEL_SCALES.customMarker
1092
+ ? this.getCustomMarkersScale(
1093
+ this.config.visConfig[range],
1094
+ this.config.visConfig.customMarkersUrl
1095
+ )
1096
+ : this.getVisChannelScale(
1097
+ this.config[scale],
1098
+ this.config[domain],
1099
+ this.config.visConfig[range],
1100
+ isFixed
1101
+ );
1102
+
1103
+ attributeAccessors[accessor] = d =>
1104
+ this.getEncodedChannelValue({
1105
+ channel,
1106
+ dataContainer,
1107
+ scale: scaleFunction,
1108
+ data: dataAccessor(dataContainer)(d),
1109
+ field: fieldConfig,
1110
+ aggregation: aggregationValue,
1111
+ nullValue
1112
+ });
1113
+ } else if (typeof getAttributeValue === 'function') {
1114
+ attributeAccessors[accessor] = getAttributeValue(this.config);
1115
+ } else {
1116
+ attributeAccessors[accessor] =
1117
+ typeof defaultValue === 'function' ? defaultValue(this.config) : defaultValue;
1118
+ }
1119
+
1120
+ if (!(accessor in attributeAccessors)) {
1121
+ Console.warn(`Failed to provide accessor function for ${accessor || channel}`);
1122
+ }
1123
+ });
1124
+
1125
+ return attributeAccessors;
1126
+ }
1127
+
1128
+ getVisChannelScale(
1129
+ scale: string,
1130
+ domain: VisualChannelDomain,
1131
+ range: any,
1132
+ fixed?: boolean
1133
+ ): () => any | null {
1134
+ if (scale === SCALE_TYPES.ordinal) {
1135
+ return SCALE_FUNC[scale]()
1136
+ .domain(domain.slice(0, range.length) as any)
1137
+ .range(range)
1138
+ .unknown(UNKNOWN_COLOR) as any;
1139
+ }
1140
+
1141
+ // for `count` aggregation, we domain is actually `[0, Infinity]` so it doesn't make sense
1142
+ // to use it, so skip specyfying this domains
1143
+ const domainIsInfinite = domain && (domain[0] === 0 && domain[1] === Infinity);
1144
+ const scaleFactory = SCALE_FUNC[fixed ? 'linear' : scale];
1145
+ // @ts-ignore d3-scale type
1146
+ let result = scaleFactory();
1147
+ if (domain && !domainIsInfinite) {
1148
+ result = result.domain(domain);
1149
+ }
1150
+ return result.range(fixed ? domain : range);
1151
+ }
1152
+
1153
+ /**
1154
+ * Get longitude and latitude bounds of the data.
1155
+ * @param {import('utils/table-utils/data-container-interface').DataContainerInterface} dataContainer DataContainer to calculate bounds for.
1156
+ * @param {(d: {index: number}, dc: import('utils/table-utils/data-container-interface').DataContainerInterface) => number[]} getPosition Access kepler.gl layer data from deck.gl layer
1157
+ * @return {number[]|null} bounds of the data.
1158
+ */
1159
+ getPointsBounds(dataContainer, getPosition) {
1160
+ // no need to loop through the entire dataset
1161
+ // get a sample of data to calculate bounds
1162
+ const sampleData =
1163
+ dataContainer.numRows() > MAX_SAMPLE_SIZE
1164
+ ? getSampleData(dataContainer, MAX_SAMPLE_SIZE)
1165
+ : dataContainer;
1166
+
1167
+ const points = sampleData.mapIndex(getPosition);
1168
+
1169
+ const latBounds = getLatLngBounds(points, 1, [-90, 90]);
1170
+ const lngBounds = getLatLngBounds(points, 0, [-180, 180]);
1171
+
1172
+ if (!latBounds || !lngBounds) {
1173
+ return null;
1174
+ }
1175
+
1176
+ return [lngBounds[0], latBounds[0], lngBounds[1], latBounds[1]];
1177
+ }
1178
+
1179
+ getChangedTriggers(dataUpdateTriggers) {
1180
+ const triggerChanged = diffUpdateTriggers(dataUpdateTriggers, this._oldDataUpdateTriggers);
1181
+ this._oldDataUpdateTriggers = dataUpdateTriggers;
1182
+
1183
+ return triggerChanged;
1184
+ }
1185
+
1186
+ getEncodedChannelValue({
1187
+ channel,
1188
+ scale,
1189
+ data,
1190
+ field,
1191
+ dataContainer,
1192
+ // In builder we overwrite the getValue function and we use the _aggregation parameter in spatial index layers as the QuadkeyLayer.
1193
+ aggregation,
1194
+ nullValue = NO_VALUE_COLOR as RGBAColor,
1195
+ getValue = defaultGetFieldValue
1196
+ }: {
1197
+ channel: string;
1198
+ scale: (...value) => any;
1199
+ data: any[];
1200
+ field: VisualChannelField;
1201
+ dataContainer: any;
1202
+ aggregation: any;
1203
+ nullValue?: RGBAColor;
1204
+ getValue?: typeof defaultGetFieldValue;
1205
+ }) {
1206
+ const {type} = field;
1207
+ const value = getValue(field, data);
1208
+ const channelConfig = this.config.visConfig[this.visualChannels[channel].range];
1209
+ const channelField = this.config[this.visualChannels[channel].field];
1210
+ let colorColumnValue: any;
1211
+
1212
+ if (channelConfig?.type === hexColor) {
1213
+ const columnField = {
1214
+ id: channelField.colorColumn,
1215
+ name: channelField.colorColumn,
1216
+ fieldIdx: channelField.colorColumnIdx,
1217
+ valueAccessor: d => {
1218
+ return dataContainer.valueAt(d.index, channelField.colorColumnIdx);
1219
+ }
1220
+ };
1221
+
1222
+ colorColumnValue = getValue(columnField, data);
1223
+ } else if (!notNullorUndefined(value)) {
1224
+ return nullValue;
1225
+ }
1226
+
1227
+ let attributeValue;
1228
+ if (type === ALL_FIELD_TYPES.timestamp) {
1229
+ // shouldn't need to convert here
1230
+ // scale Function should take care of it
1231
+ attributeValue = scale(new Date(value), colorColumnValue);
1232
+ } else {
1233
+ attributeValue = scale(value, colorColumnValue);
1234
+ }
1235
+
1236
+ if (!notNullorUndefined(attributeValue)) {
1237
+ attributeValue = nullValue;
1238
+ }
1239
+
1240
+ return attributeValue;
1241
+ }
1242
+
1243
+ updateMeta(meta) {
1244
+ this.meta = {...this.meta, ...meta};
1245
+ }
1246
+
1247
+ updateLayerLegend(settings) {
1248
+ (this as any).legendSettings = settings;
1249
+ }
1250
+
1251
+ // @ts-expect-error
1252
+ getDataUpdateTriggers({filteredIndex, id, allData}: KeplerTable): any {
1253
+ const {columns} = this.config;
1254
+
1255
+ return {
1256
+ getData: {datasetId: id, allData, columns, filteredIndex},
1257
+ getMeta: {datasetId: id, allData, columns},
1258
+ ...(this.config.textLabel || []).reduce(
1259
+ (accu, tl, i) => ({
1260
+ ...accu,
1261
+ [`getLabelCharacterSet-${i}`]: tl.field ? tl.field.name : null
1262
+ }),
1263
+ {}
1264
+ )
1265
+ };
1266
+ }
1267
+
1268
+ updateData(datasets, oldLayerData) {
1269
+ if (!this.config.dataId) {
1270
+ return {};
1271
+ }
1272
+ const dataset = this.getDataset(datasets);
1273
+ const {dataContainer} = dataset;
1274
+
1275
+ this.updateVisualChannelFields(dataset);
1276
+ this.updateHexColorDomain(dataset);
1277
+
1278
+ const getPosition = this.getPositionAccessor(dataContainer);
1279
+ const dataUpdateTriggers = this.getDataUpdateTriggers(dataset);
1280
+ const triggerChanged = this.getChangedTriggers(dataUpdateTriggers);
1281
+
1282
+ if (triggerChanged && triggerChanged.getMeta) {
1283
+ this.updateLayerMeta(dataContainer, getPosition);
1284
+ }
1285
+
1286
+ let data = [];
1287
+
1288
+ if (!(triggerChanged && triggerChanged.getData) && oldLayerData && oldLayerData.data) {
1289
+ // same data
1290
+ data = oldLayerData.data;
1291
+ } else {
1292
+ data = this.calculateDataAttribute(dataset, getPosition);
1293
+ }
1294
+
1295
+ return {data, triggerChanged};
1296
+ }
1297
+
1298
+ /**
1299
+ * Update styled fields to match ones from new dataset.
1300
+ *
1301
+ * @param {Object} dataset
1302
+ */
1303
+ updateVisualChannelFields(dataset) {
1304
+ for (const {field, range} of Object.values(this.visualChannels)) {
1305
+ const oldField = this.config[field];
1306
+ const isUsingHexColorCode = this.config.visConfig[range]?.hexColor;
1307
+ if (!oldField) {
1308
+ return;
1309
+ }
1310
+ let newDataSetField = dataset.fields.find(fd => fd.name === oldField.name) || null;
1311
+ if (isUsingHexColorCode) {
1312
+ newDataSetField = {
1313
+ ...newDataSetField,
1314
+ colorColumn: newDataSetField.colorColumn || oldField.colorColumn,
1315
+ colorColumnIdx: newDataSetField.colorColumnIdx || oldField.colorColumnIdx
1316
+ };
1317
+ }
1318
+ this.updateLayerConfig({[field]: newDataSetField});
1319
+ }
1320
+ }
1321
+
1322
+ /**
1323
+ * helper function to update one layer domain when state.data changed
1324
+ * if state.data change is due ot update filter, newFiler will be passed
1325
+ * called by updateAllLayerDomainData
1326
+ * @param datasets
1327
+ * @param newFilter
1328
+ * @returns layer
1329
+ */
1330
+ updateLayerDomain(datasets: Datasets, newFilter?: Filter): Layer {
1331
+ const table = this.getDataset(datasets);
1332
+ if (!table) {
1333
+ return this;
1334
+ }
1335
+ Object.values(this.visualChannels).forEach(channel => {
1336
+ const {scale} = channel;
1337
+ const scaleType = this.config[scale];
1338
+
1339
+ // ordinal domain is based on dataContainer, if only filter changed
1340
+ // no need to update ordinal domain
1341
+ if (!newFilter || scaleType !== SCALE_TYPES.ordinal) {
1342
+ const {domain} = channel;
1343
+ const updatedDomain = this.calculateLayerDomain(table, channel);
1344
+ this.updateLayerConfig({[domain]: updatedDomain});
1345
+ }
1346
+ });
1347
+
1348
+ return this;
1349
+ }
1350
+
1351
+ getDataset(datasets) {
1352
+ return this.config.dataId ? datasets[this.config.dataId] : null;
1353
+ }
1354
+
1355
+ /**
1356
+ * Validate visual channel field and scales based on supported field & scale type
1357
+ * @param channel
1358
+ */
1359
+ validateVisualChannel(channel: string) {
1360
+ this.validateFieldType(channel);
1361
+ this.validateScale(channel);
1362
+ }
1363
+
1364
+ /**
1365
+ * Validate field type based on channelScaleType
1366
+ */
1367
+ validateFieldType(channel: string) {
1368
+ const visualChannel = this.visualChannels[channel];
1369
+ const {field, channelScaleType, supportedFieldTypes} = visualChannel;
1370
+
1371
+ if (this.config[field]) {
1372
+ // if field is selected, check if field type is supported
1373
+ const channelSupportedFieldTypes =
1374
+ supportedFieldTypes || CHANNEL_SCALE_SUPPORTED_FIELDS[channelScaleType];
1375
+
1376
+ if (!channelSupportedFieldTypes.includes(this.config[field].type)) {
1377
+ // field type is not supported, set it back to null
1378
+ // set scale back to default
1379
+ this.updateLayerConfig({[field]: null});
1380
+ }
1381
+ }
1382
+ }
1383
+
1384
+ /**
1385
+ * Validate scale type based on aggregation
1386
+ */
1387
+ validateScale(channel) {
1388
+ const visualChannel = this.visualChannels[channel];
1389
+ const {scale, range} = visualChannel;
1390
+ if (
1391
+ !scale ||
1392
+ (this.isColoredByColorColumn(range) && this.config[scale] === SCALE_TYPES.identity)
1393
+ ) {
1394
+ // visualChannel doesn't have scale
1395
+ return;
1396
+ }
1397
+ const scaleOptions = this.getScaleOptions(channel);
1398
+ // check if current selected scale is
1399
+ // supported, if not, change to default
1400
+ if (!scaleOptions.includes(this.config[scale])) {
1401
+ this.updateLayerConfig({[scale]: scaleOptions[0]});
1402
+ }
1403
+ }
1404
+
1405
+ /**
1406
+ * Get scale options based on current field
1407
+ * @param {string} channel
1408
+ * @returns {string[]}
1409
+ */
1410
+ getScaleOptions(channel) {
1411
+ const visualChannel = this.visualChannels[channel];
1412
+ const {field, scale, channelScaleType} = visualChannel;
1413
+
1414
+ return this.config[field]
1415
+ ? FIELD_OPTS[this.config[field].type].scale[channelScaleType]
1416
+ : [this.getDefaultLayerConfig()[scale]];
1417
+ }
1418
+
1419
+ updateLayerVisualChannel(dataset: KeplerTable, channel: string) {
1420
+ const visualChannel = this.visualChannels[channel];
1421
+ this.validateVisualChannel(channel);
1422
+ // calculate layer channel domain
1423
+ const updatedDomain = this.calculateLayerDomain(dataset, visualChannel);
1424
+ this.updateLayerConfig({[visualChannel.domain]: updatedDomain});
1425
+ }
1426
+
1427
+ getVisualChannelUpdateTriggers(): UpdateTriggers {
1428
+ const updateTriggers: UpdateTriggers = {};
1429
+ Object.values(this.visualChannels).forEach(visualChannel => {
1430
+ // field range scale domain
1431
+ const {accessor, field, scale, domain, range, defaultValue, fixed} = visualChannel;
1432
+
1433
+ if (accessor) {
1434
+ updateTriggers[accessor] = {
1435
+ [field]: this.config[field],
1436
+ [scale]: this.config[scale],
1437
+ [domain]: this.config[domain],
1438
+ [range]: this.config.visConfig[range],
1439
+ defaultValue:
1440
+ typeof defaultValue === 'function' ? defaultValue(this.config) : defaultValue,
1441
+ ...(fixed ? {[fixed]: this.config.visConfig[fixed]} : {})
1442
+ };
1443
+ }
1444
+ });
1445
+ return updateTriggers;
1446
+ }
1447
+
1448
+ calculateLayerDomain(dataset, visualChannel) {
1449
+ const {scale} = visualChannel;
1450
+ const field = this.config[visualChannel.field];
1451
+ if (!field || !scale) {
1452
+ // if colorField or sizeField were set back to null
1453
+ return defaultDomain;
1454
+ }
1455
+
1456
+ const scaleType = this.config[scale];
1457
+ const dataSetField = dataset.fields.find(f => f.name === field.name);
1458
+ if (!scaleType || !dataSetField) {
1459
+ // if new dataset doesn't contain previously set field
1460
+ return defaultDomain;
1461
+ }
1462
+
1463
+ return dataset.getColumnLayerDomain(dataSetField, scaleType) || defaultDomain;
1464
+ }
1465
+
1466
+ updateHexColorDomain(dataset) {
1467
+ if (!dataset) {
1468
+ return this;
1469
+ }
1470
+ Object.values(this.visualChannels).forEach(channel => {
1471
+ const channelConfig = this.config.visConfig[channel.range];
1472
+ const field = this.config[channel.field];
1473
+
1474
+ if (channelConfig?.type === hexColor && field?.colorColumn) {
1475
+ const dataSetField = dataset.fields.find(f => f.name === field.colorColumn);
1476
+ const colors = dataset
1477
+ .getColumnLayerDomain(dataSetField, SCALE_TYPES.ordinal)
1478
+ .map(c => checkColorOrFallback(c));
1479
+ this.updateLayerVisConfig({
1480
+ [channel.range]: {...channelConfig, colors}
1481
+ });
1482
+ }
1483
+ });
1484
+
1485
+ return this;
1486
+ }
1487
+
1488
+ calculateHexColumnLegend(datasets) {
1489
+ const dataset = this.getDataset(datasets);
1490
+ if (!datasets) {
1491
+ return;
1492
+ }
1493
+
1494
+ const legendSettings = Object.keys(this.visualChannels).reduce((legends, channel) => {
1495
+ const {range, field: channelField} = this.visualChannels[channel];
1496
+ const channelConfig = this.config.visConfig[range];
1497
+ const field = this.config[channelField];
1498
+
1499
+ if (channelConfig?.type === hexColor && field?.colorColumn) {
1500
+ const dataSetField = dataset.fields.find(f => f.name === field.colorColumn);
1501
+ const legend = dataset.calculateLegend(field, dataSetField);
1502
+ legends[channel] = legend;
1503
+ }
1504
+ return legends;
1505
+ }, {});
1506
+ this.updateLayerLegend(legendSettings);
1507
+ }
1508
+
1509
+ hasHoveredObject(objectInfo) {
1510
+ return this.isLayerHovered(objectInfo) && objectInfo.object ? objectInfo.object : null;
1511
+ }
1512
+
1513
+ isLayerHovered(objectInfo): boolean {
1514
+ return objectInfo?.picked && objectInfo?.layer?.props?.id === this.id;
1515
+ }
1516
+
1517
+ getRadiusScaleByZoom(mapState: MapState, fixedRadius?: boolean) {
1518
+ const radiusChannel = Object.values(this.visualChannels).find(vc => vc.property === 'radius');
1519
+
1520
+ if (!radiusChannel) {
1521
+ return 1;
1522
+ }
1523
+
1524
+ const field = radiusChannel.field;
1525
+ const {radius} = this.config.visConfig;
1526
+
1527
+ // @ts-ignore
1528
+ return (this.config[field] ? 1 : radius) * this.getZoomFactor(mapState);
1529
+ }
1530
+
1531
+ getRadiusScale() {
1532
+ const radiusChannel = Object.values(this.visualChannels).find(vc => vc.property === 'radius');
1533
+
1534
+ if (!radiusChannel || this.config[radiusChannel.field]) {
1535
+ return 1;
1536
+ }
1537
+
1538
+ return this.config.visConfig.radius;
1539
+ }
1540
+
1541
+ getMaxMarkerSize() {
1542
+ const {radiusField, sizeField, visConfig} = this.config as any;
1543
+ const {radiusRange, radius} = visConfig;
1544
+ const field = radiusField || sizeField;
1545
+ return Math.ceil((field && radiusRange ? radiusRange[1] : radius));
1546
+ }
1547
+
1548
+ shouldCalculateLayerData(props: string[]) {
1549
+ return props.some(p => !this.noneLayerDataAffectingProps.includes(p));
1550
+ }
1551
+
1552
+ getBrushingExtensionProps(interactionConfig, brushingTarget?) {
1553
+ const {brush} = interactionConfig;
1554
+
1555
+ return {
1556
+ // brushing
1557
+ autoHighlight: !brush.enabled,
1558
+ brushingRadius: brush.config.size * 1000,
1559
+ brushingTarget: brushingTarget || 'source',
1560
+ brushingEnabled: brush.enabled
1561
+ };
1562
+ }
1563
+
1564
+ getDefaultDeckLayerProps({
1565
+ idx,
1566
+ gpuFilter,
1567
+ mapState,
1568
+ visible,
1569
+ maskPolygon
1570
+ }: {
1571
+ idx: number;
1572
+ gpuFilter: GpuFilter;
1573
+ mapState: MapState;
1574
+ visible: boolean;
1575
+ maskPolygon: any;
1576
+ }) {
1577
+ const maskExtensionProps = getMaskExtensionProps(maskPolygon);
1578
+ return {
1579
+ ...maskExtensionProps,
1580
+ id: this.id,
1581
+ idx,
1582
+ coordinateSystem: COORDINATE_SYSTEM.LNGLAT,
1583
+ pickable: this.hasInteractivity,
1584
+ wrapLongitude: true,
1585
+ parameters: {depthTest: Boolean(mapState.dragRotate || this.config.visConfig.enable3d)},
1586
+ hidden: this.config.hidden,
1587
+ visibilityByZoom: (this.config as any).visibilityByZoom,
1588
+ // visconfig
1589
+ opacity: this.config.visConfig.opacity,
1590
+ highlightColor: this.config.highlightColor,
1591
+ // data filtering
1592
+ extensions: [dataFilterExtension, ...maskExtensionProps.extensions],
1593
+ filterRange: gpuFilter ? gpuFilter.filterRange : undefined,
1594
+ // layer should be visible and if splitMap, shown in to one of panel
1595
+ visible: this.config.isVisible && visible
1596
+ };
1597
+ }
1598
+
1599
+ getDefaultHoverLayerProps() {
1600
+ return {
1601
+ id: `${this.id}-hovered`,
1602
+ pickable: false,
1603
+ wrapLongitude: true,
1604
+ coordinateSystem: COORDINATE_SYSTEM.LNGLAT
1605
+ };
1606
+ }
1607
+
1608
+ renderTextLabelLayer(
1609
+ {getPosition, getRadius, radiusScale, updateTriggers, sharedProps},
1610
+ renderOpts
1611
+ ) {
1612
+ const {data} = renderOpts;
1613
+ const {textLabel, visibilityByZoom} = this.config as any;
1614
+ const extensions = [...sharedProps.extensions, collisionFilterExtension];
1615
+
1616
+ if (!data || !data.textLabels || !data.textLabels[0] || !data.textLabels[0].getText) {
1617
+ return [];
1618
+ }
1619
+
1620
+ const [mainLabel, secondaryLabel] = textLabel;
1621
+ const {
1622
+ alignment,
1623
+ anchor,
1624
+ color: getColor,
1625
+ field: mainField,
1626
+ outlineColor,
1627
+ size: sizeScale
1628
+ } = mainLabel;
1629
+ const {
1630
+ color: getSecondaryColor,
1631
+ field: secondaryField,
1632
+ outlineColor: secondaryOutlineColor,
1633
+ size: secondarySizeScale
1634
+ } = secondaryLabel || {};
1635
+
1636
+ return [
1637
+ new PointLabelLayer({
1638
+ ...sharedProps,
1639
+
1640
+ // Recreate layer when labels change otherwise rendering breaks
1641
+ // TODO could be more efficient with updateTriggers?
1642
+ id: `${this.id}-${mainField?.name}-${secondaryField?.name}-label`,
1643
+ data: data.data,
1644
+ visibilityByZoom,
1645
+ extensions,
1646
+
1647
+ characterSet: 'auto',
1648
+ collisionEnabled: true,
1649
+ collisionGroup: `${this.id}-labels`,
1650
+
1651
+ getText: data.textLabels[0].getText,
1652
+ getColor,
1653
+ sizeScale,
1654
+ outlineColor,
1655
+
1656
+ ...(secondaryField && {
1657
+ getSecondaryText: data.textLabels[1].getText,
1658
+ getSecondaryColor,
1659
+ secondarySizeScale,
1660
+ secondaryOutlineColor
1661
+ }),
1662
+
1663
+ // Position
1664
+ getPosition,
1665
+ getRadius,
1666
+ radiusScale,
1667
+ getTextAnchor: anchor,
1668
+ getAlignmentBaseline: alignment,
1669
+
1670
+ // Style
1671
+ fontFamily: 'Inter, sans',
1672
+ fontSettings: {sdf: true},
1673
+ fontWeight: 500,
1674
+ outlineWidth: 4,
1675
+ parameters: {
1676
+ // text will always show on top of all layers
1677
+ depthTest: false
1678
+ },
1679
+
1680
+ getFilterValue: data.getFilterValue,
1681
+ updateTriggers: {
1682
+ ...updateTriggers,
1683
+ getText: mainField?.name,
1684
+ getColor: (mainField as any)?.color,
1685
+ getTextAnchor: mainLabel.anchor,
1686
+ getAlignmentBaseline: mainLabel.alignment,
1687
+ getSecondaryText: secondaryField?.name
1688
+ }
1689
+ })
1690
+ ];
1691
+ }
1692
+
1693
+ /**
1694
+ * Create deck.gl `IconLayer` "autoPack" mode accessor for custom markers.
1695
+ *
1696
+ * @param {*} iconUrlAccessor deck.gl accessor (or value) that resolves to URL of icon for given row
1697
+ * @returns deck.gl accessor that returns UnpackedIcon ready to consume by IconLayer
1698
+ */
1699
+ getCustomMarkerIconAccessor(iconUrlAccessor, mask = true) {
1700
+ const maxIconSize = this.getMaxMarkerSize();
1701
+
1702
+ return d => {
1703
+ const wantedUrl =
1704
+ (typeof iconUrlAccessor === 'function') ? iconUrlAccessor(d) : iconUrlAccessor;
1705
+ const iconOk = Boolean(wantedUrl);
1706
+ mask = iconOk ? mask : true;
1707
+ const url = iconOk ? wantedUrl : FALLBACK_ICON;
1708
+ return {
1709
+ id: `${url}@@${maxIconSize}@${mask ? 'm' : 'c'}`,
1710
+ url,
1711
+ width: maxIconSize,
1712
+ height: maxIconSize,
1713
+ mask
1714
+ };
1715
+ };
1716
+ }
1717
+
1718
+ calculateDataAttribute(keplerTable: KeplerTable, getPosition): any {
1719
+ // implemented in subclasses
1720
+ return [];
1721
+ }
1722
+
1723
+ updateLayerMeta(dataContainer: DataContainerInterface, getPosition) {
1724
+ // implemented in subclasses
1725
+ }
1726
+
1727
+ getPositionAccessor(dataContainer?: DataContainerInterface): (...args: any[]) => any {
1728
+ // implemented in subclasses
1729
+ return () => null;
1730
+ }
1731
+
1732
+ getHexColumn(range) {
1733
+ const field = Object.values(this.visualChannels)?.find(value => value.range === range)?.field;
1734
+ if (field) {
1735
+ return this.config[field]?.colorColumn;
1736
+ }
1737
+ }
1738
+
1739
+ isColoredByColorColumn(range) {
1740
+ return this.config.visConfig[range]?.hexColor;
1741
+ }
1742
+ }
1743
+
1744
+ export default Layer;