@kepler.gl/components 3.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/dist/bottom-widget.d.ts +46 -0
  2. package/dist/bottom-widget.js +242 -0
  3. package/dist/common/action-panel.d.ts +27 -0
  4. package/dist/common/action-panel.js +152 -0
  5. package/dist/common/animation-control/animation-control.d.ts +24 -0
  6. package/dist/common/animation-control/animation-control.js +155 -0
  7. package/dist/common/animation-control/animation-controller.d.ts +15 -0
  8. package/dist/common/animation-control/animation-controller.js +324 -0
  9. package/dist/common/animation-control/animation-speed-slider.d.ts +12 -0
  10. package/dist/common/animation-control/animation-speed-slider.js +120 -0
  11. package/dist/common/animation-control/animation-window-control.d.ts +20 -0
  12. package/dist/common/animation-control/animation-window-control.js +86 -0
  13. package/dist/common/animation-control/floating-time-display.d.ts +9 -0
  14. package/dist/common/animation-control/floating-time-display.js +181 -0
  15. package/dist/common/animation-control/play-control.d.ts +12 -0
  16. package/dist/common/animation-control/play-control.js +81 -0
  17. package/dist/common/animation-control/playback-controls.d.ts +55 -0
  18. package/dist/common/animation-control/playback-controls.js +202 -0
  19. package/dist/common/animation-control/reset-control.d.ts +9 -0
  20. package/dist/common/animation-control/reset-control.js +71 -0
  21. package/dist/common/animation-control/speed-control.d.ts +12 -0
  22. package/dist/common/animation-control/speed-control.js +88 -0
  23. package/dist/common/animation-control/window-action-control.d.ts +11 -0
  24. package/dist/common/animation-control/window-action-control.js +87 -0
  25. package/dist/common/checkbox.d.ts +35 -0
  26. package/dist/common/checkbox.js +159 -0
  27. package/dist/common/color-legend.d.ts +39 -0
  28. package/dist/common/color-legend.js +257 -0
  29. package/dist/common/data-table/button.d.ts +8 -0
  30. package/dist/common/data-table/button.js +66 -0
  31. package/dist/common/data-table/canvas.d.ts +2 -0
  32. package/dist/common/data-table/canvas.js +52 -0
  33. package/dist/common/data-table/cell-size.d.ts +43 -0
  34. package/dist/common/data-table/cell-size.js +195 -0
  35. package/dist/common/data-table/grid.d.ts +7 -0
  36. package/dist/common/data-table/grid.js +119 -0
  37. package/dist/common/data-table/header-cell.d.ts +25 -0
  38. package/dist/common/data-table/header-cell.js +152 -0
  39. package/dist/common/data-table/index.d.ts +108 -0
  40. package/dist/common/data-table/index.js +457 -0
  41. package/dist/common/data-table/option-dropdown.d.ts +14 -0
  42. package/dist/common/data-table/option-dropdown.js +142 -0
  43. package/dist/common/dataset-label.d.ts +10 -0
  44. package/dist/common/dataset-label.js +56 -0
  45. package/dist/common/error-boundary.d.ts +12 -0
  46. package/dist/common/error-boundary.js +103 -0
  47. package/dist/common/field-selector.d.ts +43 -0
  48. package/dist/common/field-selector.js +220 -0
  49. package/dist/common/field-token.d.ts +46 -0
  50. package/dist/common/field-token.js +70 -0
  51. package/dist/common/file-uploader/file-drop.d.ts +53 -0
  52. package/dist/common/file-uploader/file-drop.js +252 -0
  53. package/dist/common/file-uploader/file-upload-progress.d.ts +8 -0
  54. package/dist/common/file-uploader/file-upload-progress.js +123 -0
  55. package/dist/common/file-uploader/file-upload.d.ts +27 -0
  56. package/dist/common/file-uploader/file-upload.js +324 -0
  57. package/dist/common/file-uploader/upload-button.d.ts +7 -0
  58. package/dist/common/file-uploader/upload-button.js +94 -0
  59. package/dist/common/histogram-plot.d.ts +3 -0
  60. package/dist/common/histogram-plot.js +134 -0
  61. package/dist/common/icon-button.d.ts +12 -0
  62. package/dist/common/icon-button.js +52 -0
  63. package/dist/common/icons/add.d.ts +9 -0
  64. package/dist/common/icons/add.js +78 -0
  65. package/dist/common/icons/anchor_window.d.ts +11 -0
  66. package/dist/common/icons/anchor_window.js +55 -0
  67. package/dist/common/icons/arrow-down-alt.d.ts +9 -0
  68. package/dist/common/icons/arrow-down-alt.js +78 -0
  69. package/dist/common/icons/arrow-down-solid.d.ts +9 -0
  70. package/dist/common/icons/arrow-down-solid.js +78 -0
  71. package/dist/common/icons/arrow-down.d.ts +9 -0
  72. package/dist/common/icons/arrow-down.js +78 -0
  73. package/dist/common/icons/arrow-left.d.ts +9 -0
  74. package/dist/common/icons/arrow-left.js +81 -0
  75. package/dist/common/icons/arrow-right.d.ts +9 -0
  76. package/dist/common/icons/arrow-right.js +78 -0
  77. package/dist/common/icons/arrow-up-alt.d.ts +9 -0
  78. package/dist/common/icons/arrow-up-alt.js +79 -0
  79. package/dist/common/icons/arrow-up-solid.d.ts +9 -0
  80. package/dist/common/icons/arrow-up-solid.js +78 -0
  81. package/dist/common/icons/arrow-up.d.ts +9 -0
  82. package/dist/common/icons/arrow-up.js +78 -0
  83. package/dist/common/icons/base.d.ts +29 -0
  84. package/dist/common/icons/base.js +116 -0
  85. package/dist/common/icons/bug.d.ts +9 -0
  86. package/dist/common/icons/bug.js +80 -0
  87. package/dist/common/icons/cancel.d.ts +9 -0
  88. package/dist/common/icons/cancel.js +78 -0
  89. package/dist/common/icons/checkmark.d.ts +10 -0
  90. package/dist/common/icons/checkmark.js +85 -0
  91. package/dist/common/icons/clipboard.d.ts +9 -0
  92. package/dist/common/icons/clipboard.js +79 -0
  93. package/dist/common/icons/clock.d.ts +9 -0
  94. package/dist/common/icons/clock.js +80 -0
  95. package/dist/common/icons/close.d.ts +9 -0
  96. package/dist/common/icons/close.js +83 -0
  97. package/dist/common/icons/code-alt.d.ts +9 -0
  98. package/dist/common/icons/code-alt.js +82 -0
  99. package/dist/common/icons/copy.d.ts +9 -0
  100. package/dist/common/icons/copy.js +84 -0
  101. package/dist/common/icons/crosshairs.d.ts +9 -0
  102. package/dist/common/icons/crosshairs.js +82 -0
  103. package/dist/common/icons/cube-3d.d.ts +9 -0
  104. package/dist/common/icons/cube-3d.js +82 -0
  105. package/dist/common/icons/cursor-click.d.ts +9 -0
  106. package/dist/common/icons/cursor-click.js +82 -0
  107. package/dist/common/icons/data-table.d.ts +10 -0
  108. package/dist/common/icons/data-table.js +79 -0
  109. package/dist/common/icons/db.d.ts +10 -0
  110. package/dist/common/icons/db.js +79 -0
  111. package/dist/common/icons/delete.d.ts +9 -0
  112. package/dist/common/icons/delete.js +80 -0
  113. package/dist/common/icons/docs.d.ts +9 -0
  114. package/dist/common/icons/docs.js +94 -0
  115. package/dist/common/icons/drag-n-drop.d.ts +9 -0
  116. package/dist/common/icons/drag-n-drop.js +80 -0
  117. package/dist/common/icons/draw-polygon.d.ts +10 -0
  118. package/dist/common/icons/draw-polygon.js +98 -0
  119. package/dist/common/icons/email.d.ts +9 -0
  120. package/dist/common/icons/email.js +82 -0
  121. package/dist/common/icons/expand.d.ts +9 -0
  122. package/dist/common/icons/expand.js +80 -0
  123. package/dist/common/icons/eye-seen.d.ts +9 -0
  124. package/dist/common/icons/eye-seen.js +80 -0
  125. package/dist/common/icons/eye-unseen.d.ts +9 -0
  126. package/dist/common/icons/eye-unseen.js +80 -0
  127. package/dist/common/icons/file-type.d.ts +8 -0
  128. package/dist/common/icons/file-type.js +65 -0
  129. package/dist/common/icons/file.d.ts +9 -0
  130. package/dist/common/icons/file.js +78 -0
  131. package/dist/common/icons/files.d.ts +9 -0
  132. package/dist/common/icons/files.js +80 -0
  133. package/dist/common/icons/filter-funnel.d.ts +9 -0
  134. package/dist/common/icons/filter-funnel.js +78 -0
  135. package/dist/common/icons/free-window.d.ts +11 -0
  136. package/dist/common/icons/free-window.js +55 -0
  137. package/dist/common/icons/gear.d.ts +9 -0
  138. package/dist/common/icons/gear.js +80 -0
  139. package/dist/common/icons/hash.d.ts +9 -0
  140. package/dist/common/icons/hash.js +78 -0
  141. package/dist/common/icons/histogram.d.ts +9 -0
  142. package/dist/common/icons/histogram.js +79 -0
  143. package/dist/common/icons/index.d.ts +76 -0
  144. package/dist/common/icons/index.js +624 -0
  145. package/dist/common/icons/info.d.ts +12 -0
  146. package/dist/common/icons/info.js +92 -0
  147. package/dist/common/icons/layers.d.ts +9 -0
  148. package/dist/common/icons/layers.js +78 -0
  149. package/dist/common/icons/left-arrow.d.ts +9 -0
  150. package/dist/common/icons/left-arrow.js +82 -0
  151. package/dist/common/icons/legend.d.ts +9 -0
  152. package/dist/common/icons/legend.js +78 -0
  153. package/dist/common/icons/line-chart.d.ts +9 -0
  154. package/dist/common/icons/line-chart.js +78 -0
  155. package/dist/common/icons/login.d.ts +9 -0
  156. package/dist/common/icons/login.js +81 -0
  157. package/dist/common/icons/logout.d.ts +9 -0
  158. package/dist/common/icons/logout.js +80 -0
  159. package/dist/common/icons/map-icon.d.ts +11 -0
  160. package/dist/common/icons/map-icon.js +86 -0
  161. package/dist/common/icons/map.d.ts +11 -0
  162. package/dist/common/icons/map.js +86 -0
  163. package/dist/common/icons/messages.d.ts +9 -0
  164. package/dist/common/icons/messages.js +78 -0
  165. package/dist/common/icons/minus.d.ts +9 -0
  166. package/dist/common/icons/minus.js +78 -0
  167. package/dist/common/icons/order-by-dataset.d.ts +12 -0
  168. package/dist/common/icons/order-by-dataset.js +55 -0
  169. package/dist/common/icons/order-by-list.d.ts +12 -0
  170. package/dist/common/icons/order-by-list.js +47 -0
  171. package/dist/common/icons/pause.d.ts +9 -0
  172. package/dist/common/icons/pause.js +78 -0
  173. package/dist/common/icons/picture.d.ts +9 -0
  174. package/dist/common/icons/picture.js +80 -0
  175. package/dist/common/icons/pin.d.ts +9 -0
  176. package/dist/common/icons/pin.js +86 -0
  177. package/dist/common/icons/play.d.ts +9 -0
  178. package/dist/common/icons/play.js +78 -0
  179. package/dist/common/icons/polygon.d.ts +10 -0
  180. package/dist/common/icons/polygon.js +100 -0
  181. package/dist/common/icons/rectangle.d.ts +10 -0
  182. package/dist/common/icons/rectangle.js +101 -0
  183. package/dist/common/icons/reduce.d.ts +9 -0
  184. package/dist/common/icons/reduce.js +81 -0
  185. package/dist/common/icons/reset.d.ts +9 -0
  186. package/dist/common/icons/reset.js +78 -0
  187. package/dist/common/icons/rocket.d.ts +9 -0
  188. package/dist/common/icons/rocket.js +78 -0
  189. package/dist/common/icons/save.d.ts +9 -0
  190. package/dist/common/icons/save.js +80 -0
  191. package/dist/common/icons/save2.d.ts +9 -0
  192. package/dist/common/icons/save2.js +84 -0
  193. package/dist/common/icons/search.d.ts +9 -0
  194. package/dist/common/icons/search.js +80 -0
  195. package/dist/common/icons/settings.d.ts +9 -0
  196. package/dist/common/icons/settings.js +80 -0
  197. package/dist/common/icons/share.d.ts +9 -0
  198. package/dist/common/icons/share.js +78 -0
  199. package/dist/common/icons/split.d.ts +9 -0
  200. package/dist/common/icons/split.js +106 -0
  201. package/dist/common/icons/square-select.d.ts +9 -0
  202. package/dist/common/icons/square-select.js +80 -0
  203. package/dist/common/icons/trash.d.ts +9 -0
  204. package/dist/common/icons/trash.js +80 -0
  205. package/dist/common/icons/vert-dots.d.ts +9 -0
  206. package/dist/common/icons/vert-dots.js +116 -0
  207. package/dist/common/icons/vert-three-dots.d.ts +9 -0
  208. package/dist/common/icons/vert-three-dots.js +91 -0
  209. package/dist/common/icons/warning-sign.d.ts +15 -0
  210. package/dist/common/icons/warning-sign.js +100 -0
  211. package/dist/common/icons/warning.d.ts +10 -0
  212. package/dist/common/icons/warning.js +93 -0
  213. package/dist/common/image-preview.d.ts +15 -0
  214. package/dist/common/image-preview.js +91 -0
  215. package/dist/common/index.d.ts +3 -0
  216. package/dist/common/index.js +287 -0
  217. package/dist/common/info-helper.d.ts +10 -0
  218. package/dist/common/info-helper.js +95 -0
  219. package/dist/common/item-selector/accessor.d.ts +7 -0
  220. package/dist/common/item-selector/accessor.js +56 -0
  221. package/dist/common/item-selector/chickleted-input.d.ts +21 -0
  222. package/dist/common/item-selector/chickleted-input.js +116 -0
  223. package/dist/common/item-selector/dropdown-list.d.ts +50 -0
  224. package/dist/common/item-selector/dropdown-list.js +191 -0
  225. package/dist/common/item-selector/item-selector.d.ts +45 -0
  226. package/dist/common/item-selector/item-selector.js +359 -0
  227. package/dist/common/item-selector/typeahead.d.ts +113 -0
  228. package/dist/common/item-selector/typeahead.js +507 -0
  229. package/dist/common/line-chart.d.ts +34 -0
  230. package/dist/common/line-chart.js +146 -0
  231. package/dist/common/loading-spinner.d.ts +9 -0
  232. package/dist/common/loading-spinner.js +76 -0
  233. package/dist/common/logo.d.ts +8 -0
  234. package/dist/common/logo.js +102 -0
  235. package/dist/common/map-layer-selector.d.ts +13 -0
  236. package/dist/common/map-layer-selector.js +69 -0
  237. package/dist/common/modal.d.ts +51 -0
  238. package/dist/common/modal.js +211 -0
  239. package/dist/common/portaled.d.ts +54 -0
  240. package/dist/common/portaled.js +360 -0
  241. package/dist/common/progress-bar.d.ts +12 -0
  242. package/dist/common/progress-bar.js +74 -0
  243. package/dist/common/range-brush.d.ts +19 -0
  244. package/dist/common/range-brush.js +346 -0
  245. package/dist/common/range-plot.d.ts +35 -0
  246. package/dist/common/range-plot.js +156 -0
  247. package/dist/common/range-slider.d.ts +30 -0
  248. package/dist/common/range-slider.js +343 -0
  249. package/dist/common/slider/mouse-event.d.ts +27 -0
  250. package/dist/common/slider/mouse-event.js +145 -0
  251. package/dist/common/slider/slider-bar-handle.d.ts +29 -0
  252. package/dist/common/slider/slider-bar-handle.js +135 -0
  253. package/dist/common/slider/slider-handle.d.ts +33 -0
  254. package/dist/common/slider/slider-handle.js +182 -0
  255. package/dist/common/slider/slider.d.ts +70 -0
  256. package/dist/common/slider/slider.js +264 -0
  257. package/dist/common/styled-components.d.ts +123 -0
  258. package/dist/common/styled-components.js +438 -0
  259. package/dist/common/switch.d.ts +15 -0
  260. package/dist/common/switch.js +50 -0
  261. package/dist/common/time-range-slider-time-title.d.ts +9 -0
  262. package/dist/common/time-range-slider-time-title.js +94 -0
  263. package/dist/common/time-range-slider.d.ts +32 -0
  264. package/dist/common/time-range-slider.js +132 -0
  265. package/dist/common/time-slider-marker.d.ts +21 -0
  266. package/dist/common/time-slider-marker.js +161 -0
  267. package/dist/common/tippy-tooltip.d.ts +4 -0
  268. package/dist/common/tippy-tooltip.js +142 -0
  269. package/dist/common/toolbar-item.d.ts +14 -0
  270. package/dist/common/toolbar-item.js +91 -0
  271. package/dist/common/toolbar.d.ts +5 -0
  272. package/dist/common/toolbar.js +53 -0
  273. package/dist/common/vertical-toolbar.d.ts +3 -0
  274. package/dist/common/vertical-toolbar.js +42 -0
  275. package/dist/connect/keplergl-connect.d.ts +5 -0
  276. package/dist/connect/keplergl-connect.js +67 -0
  277. package/dist/connect/with-local-selector.d.ts +6 -0
  278. package/dist/connect/with-local-selector.js +130 -0
  279. package/dist/container.d.ts +39 -0
  280. package/dist/container.js +242 -0
  281. package/dist/context.d.ts +16 -0
  282. package/dist/context.js +53 -0
  283. package/dist/editor/constants.d.ts +17 -0
  284. package/dist/editor/constants.js +47 -0
  285. package/dist/editor/editor.d.ts +30 -0
  286. package/dist/editor/editor.js +279 -0
  287. package/dist/editor/feature-action-panel.d.ts +30 -0
  288. package/dist/editor/feature-action-panel.js +169 -0
  289. package/dist/editor/feature-styles.d.ts +37 -0
  290. package/dist/editor/feature-styles.js +92 -0
  291. package/dist/editor/handle-style.d.ts +42 -0
  292. package/dist/editor/handle-style.js +100 -0
  293. package/dist/filters/components.d.ts +3 -0
  294. package/dist/filters/components.js +40 -0
  295. package/dist/filters/filter-panels/filter-panel-with-field-select.d.ts +10 -0
  296. package/dist/filters/filter-panels/filter-panel-with-field-select.js +106 -0
  297. package/dist/filters/filter-panels/multi-select-filter-panel.d.ts +9 -0
  298. package/dist/filters/filter-panels/multi-select-filter-panel.js +72 -0
  299. package/dist/filters/filter-panels/new-filter-panel.d.ts +12 -0
  300. package/dist/filters/filter-panels/new-filter-panel.js +94 -0
  301. package/dist/filters/filter-panels/polygon-filter-panel.d.ts +9 -0
  302. package/dist/filters/filter-panels/polygon-filter-panel.js +96 -0
  303. package/dist/filters/filter-panels/range-filter-panel.d.ts +9 -0
  304. package/dist/filters/filter-panels/range-filter-panel.js +72 -0
  305. package/dist/filters/filter-panels/single-select-filter-panel.d.ts +9 -0
  306. package/dist/filters/filter-panels/single-select-filter-panel.js +72 -0
  307. package/dist/filters/filter-panels/time-range-filter-panel.d.ts +8 -0
  308. package/dist/filters/filter-panels/time-range-filter-panel.js +87 -0
  309. package/dist/filters/filter-panels/types.d.ts +35 -0
  310. package/dist/filters/filter-panels/types.js +26 -0
  311. package/dist/filters/index.d.ts +5 -0
  312. package/dist/filters/index.js +68 -0
  313. package/dist/filters/multi-select-filter.d.ts +3 -0
  314. package/dist/filters/multi-select-filter.js +53 -0
  315. package/dist/filters/polygon-filter.d.ts +4 -0
  316. package/dist/filters/polygon-filter.js +94 -0
  317. package/dist/filters/range-filter.d.ts +8 -0
  318. package/dist/filters/range-filter.js +52 -0
  319. package/dist/filters/single-select-filter.d.ts +3 -0
  320. package/dist/filters/single-select-filter.js +62 -0
  321. package/dist/filters/time-range-filter.d.ts +28 -0
  322. package/dist/filters/time-range-filter.js +84 -0
  323. package/dist/filters/time-widget.d.ts +14 -0
  324. package/dist/filters/time-widget.js +192 -0
  325. package/dist/filters/types.d.ts +54 -0
  326. package/dist/filters/types.js +26 -0
  327. package/dist/geocoder/geocoder.d.ts +33 -0
  328. package/dist/geocoder/geocoder.js +336 -0
  329. package/dist/geocoder-panel.d.ts +25 -0
  330. package/dist/geocoder-panel.js +241 -0
  331. package/dist/hooks/useFeatureFlags.d.ts +2 -0
  332. package/dist/hooks/useFeatureFlags.js +38 -0
  333. package/dist/index.d.ts +176 -0
  334. package/dist/index.js +1935 -0
  335. package/dist/injector.d.ts +29 -0
  336. package/dist/injector.js +198 -0
  337. package/dist/kepler-gl.d.ts +281 -0
  338. package/dist/kepler-gl.js +568 -0
  339. package/dist/map/coordinate-info.d.ts +7 -0
  340. package/dist/map/coordinate-info.js +67 -0
  341. package/dist/map/layer-hover-info.d.ts +13 -0
  342. package/dist/map/layer-hover-info.js +228 -0
  343. package/dist/map/layer-selector-panel.d.ts +21 -0
  344. package/dist/map/layer-selector-panel.js +114 -0
  345. package/dist/map/lazy-tippy.d.ts +7 -0
  346. package/dist/map/lazy-tippy.js +94 -0
  347. package/dist/map/locale-panel.d.ts +16 -0
  348. package/dist/map/locale-panel.js +107 -0
  349. package/dist/map/map-control-panel.d.ts +13 -0
  350. package/dist/map/map-control-panel.js +116 -0
  351. package/dist/map/map-control-toolbar.d.ts +2 -0
  352. package/dist/map/map-control-toolbar.js +45 -0
  353. package/dist/map/map-control-tooltip.d.ts +8 -0
  354. package/dist/map/map-control-tooltip.js +57 -0
  355. package/dist/map/map-control.d.ts +45 -0
  356. package/dist/map/map-control.js +101 -0
  357. package/dist/map/map-draw-panel.d.ts +20 -0
  358. package/dist/map/map-draw-panel.js +137 -0
  359. package/dist/map/map-legend-panel.d.ts +24 -0
  360. package/dist/map/map-legend-panel.js +181 -0
  361. package/dist/map/map-legend.d.ts +55 -0
  362. package/dist/map/map-legend.js +274 -0
  363. package/dist/map/map-popover.d.ts +36 -0
  364. package/dist/map/map-popover.js +217 -0
  365. package/dist/map/split-map-button.d.ts +20 -0
  366. package/dist/map/split-map-button.js +92 -0
  367. package/dist/map/toggle-3d-button.d.ts +17 -0
  368. package/dist/map/toggle-3d-button.js +81 -0
  369. package/dist/map-container.d.ts +48 -0
  370. package/dist/map-container.js +653 -0
  371. package/dist/maps-layout.d.ts +9 -0
  372. package/dist/maps-layout.js +80 -0
  373. package/dist/modal-container.d.ts +63 -0
  374. package/dist/modal-container.js +530 -0
  375. package/dist/modals/add-map-style-modal.d.ts +18 -0
  376. package/dist/modals/add-map-style-modal.js +300 -0
  377. package/dist/modals/cloud-tile.d.ts +15 -0
  378. package/dist/modals/cloud-tile.js +144 -0
  379. package/dist/modals/data-table-modal.d.ts +28 -0
  380. package/dist/modals/data-table-modal.js +285 -0
  381. package/dist/modals/delete-data-modal.d.ts +10 -0
  382. package/dist/modals/delete-data-modal.js +74 -0
  383. package/dist/modals/error-display.d.ts +6 -0
  384. package/dist/modals/error-display.js +50 -0
  385. package/dist/modals/export-data-modal.d.ts +25 -0
  386. package/dist/modals/export-data-modal.js +232 -0
  387. package/dist/modals/export-image-modal.d.ts +18 -0
  388. package/dist/modals/export-image-modal.js +156 -0
  389. package/dist/modals/export-map-modal/components.d.ts +8 -0
  390. package/dist/modals/export-map-modal/components.js +71 -0
  391. package/dist/modals/export-map-modal/export-html-map.d.ts +12 -0
  392. package/dist/modals/export-map-modal/export-html-map.js +158 -0
  393. package/dist/modals/export-map-modal/export-json-map.d.ts +9 -0
  394. package/dist/modals/export-map-modal/export-json-map.js +120 -0
  395. package/dist/modals/export-map-modal/export-map-modal.d.ts +27 -0
  396. package/dist/modals/export-map-modal/export-map-modal.js +119 -0
  397. package/dist/modals/image-modal-container.d.ts +17 -0
  398. package/dist/modals/image-modal-container.js +86 -0
  399. package/dist/modals/load-data-modal.d.ts +41 -0
  400. package/dist/modals/load-data-modal.js +118 -0
  401. package/dist/modals/load-storage-map.d.ts +26 -0
  402. package/dist/modals/load-storage-map.js +308 -0
  403. package/dist/modals/loading-dialog.d.ts +7 -0
  404. package/dist/modals/loading-dialog.js +68 -0
  405. package/dist/modals/modal-dialog.d.ts +2 -0
  406. package/dist/modals/modal-dialog.js +36 -0
  407. package/dist/modals/modal-tabs.d.ts +27 -0
  408. package/dist/modals/modal-tabs.js +119 -0
  409. package/dist/modals/overwrite-map-modal.d.ts +16 -0
  410. package/dist/modals/overwrite-map-modal.js +100 -0
  411. package/dist/modals/provider-modal-container.d.ts +22 -0
  412. package/dist/modals/provider-modal-container.js +101 -0
  413. package/dist/modals/save-map-modal.d.ts +30 -0
  414. package/dist/modals/save-map-modal.js +226 -0
  415. package/dist/modals/share-map-modal.d.ts +30 -0
  416. package/dist/modals/share-map-modal.js +219 -0
  417. package/dist/modals/status-panel.d.ts +13 -0
  418. package/dist/modals/status-panel.js +103 -0
  419. package/dist/modals/storage-map-viewer.d.ts +21 -0
  420. package/dist/modals/storage-map-viewer.js +147 -0
  421. package/dist/notification-panel/notification-item.d.ts +70 -0
  422. package/dist/notification-panel/notification-item.js +173 -0
  423. package/dist/notification-panel.d.ts +13 -0
  424. package/dist/notification-panel.js +106 -0
  425. package/dist/plot-container.d.ts +24 -0
  426. package/dist/plot-container.js +276 -0
  427. package/dist/side-panel/cloud-storage-dropdown.d.ts +6 -0
  428. package/dist/side-panel/cloud-storage-dropdown.js +62 -0
  429. package/dist/side-panel/common/dataset-info.d.ts +3 -0
  430. package/dist/side-panel/common/dataset-info.js +63 -0
  431. package/dist/side-panel/common/dataset-tag.d.ts +3 -0
  432. package/dist/side-panel/common/dataset-tag.js +89 -0
  433. package/dist/side-panel/common/dataset-title.d.ts +8 -0
  434. package/dist/side-panel/common/dataset-title.js +225 -0
  435. package/dist/side-panel/common/source-data-catalog.d.ts +9 -0
  436. package/dist/side-panel/common/source-data-catalog.js +82 -0
  437. package/dist/side-panel/common/source-data-selector.d.ts +8 -0
  438. package/dist/side-panel/common/source-data-selector.js +96 -0
  439. package/dist/side-panel/common/types.d.ts +63 -0
  440. package/dist/side-panel/common/types.js +26 -0
  441. package/dist/side-panel/custom-panel.d.ts +9 -0
  442. package/dist/side-panel/custom-panel.js +59 -0
  443. package/dist/side-panel/filter-manager.d.ts +20 -0
  444. package/dist/side-panel/filter-manager.js +132 -0
  445. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +21 -0
  446. package/dist/side-panel/filter-panel/filter-panel-header.js +87 -0
  447. package/dist/side-panel/filter-panel/filter-panel.d.ts +23 -0
  448. package/dist/side-panel/filter-panel/filter-panel.js +151 -0
  449. package/dist/side-panel/interaction-manager.d.ts +15 -0
  450. package/dist/side-panel/interaction-manager.js +57 -0
  451. package/dist/side-panel/interaction-panel/brush-config.d.ts +15 -0
  452. package/dist/side-panel/interaction-panel/brush-config.js +74 -0
  453. package/dist/side-panel/interaction-panel/interaction-panel.d.ts +18 -0
  454. package/dist/side-panel/interaction-panel/interaction-panel.js +156 -0
  455. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +28 -0
  456. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +264 -0
  457. package/dist/side-panel/interaction-panel/tooltip-config.d.ts +38 -0
  458. package/dist/side-panel/interaction-panel/tooltip-config.js +185 -0
  459. package/dist/side-panel/layer-manager.d.ts +39 -0
  460. package/dist/side-panel/layer-manager.js +225 -0
  461. package/dist/side-panel/layer-panel/add-layer-button.d.ts +10 -0
  462. package/dist/side-panel/layer-panel/add-layer-button.js +176 -0
  463. package/dist/side-panel/layer-panel/color-palette.d.ts +11 -0
  464. package/dist/side-panel/layer-panel/color-palette.js +91 -0
  465. package/dist/side-panel/layer-panel/color-range-selector.d.ts +47 -0
  466. package/dist/side-panel/layer-panel/color-range-selector.js +290 -0
  467. package/dist/side-panel/layer-panel/color-selector.d.ts +42 -0
  468. package/dist/side-panel/layer-panel/color-selector.js +225 -0
  469. package/dist/side-panel/layer-panel/column-selector.d.ts +22 -0
  470. package/dist/side-panel/layer-panel/column-selector.js +85 -0
  471. package/dist/side-panel/layer-panel/custom-palette.d.ts +38 -0
  472. package/dist/side-panel/layer-panel/custom-palette.js +312 -0
  473. package/dist/side-panel/layer-panel/custom-picker.d.ts +51 -0
  474. package/dist/side-panel/layer-panel/custom-picker.js +136 -0
  475. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +22 -0
  476. package/dist/side-panel/layer-panel/dataset-layer-group.js +86 -0
  477. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +23 -0
  478. package/dist/side-panel/layer-panel/dataset-layer-section.js +89 -0
  479. package/dist/side-panel/layer-panel/dataset-section.d.ts +24 -0
  480. package/dist/side-panel/layer-panel/dataset-section.js +112 -0
  481. package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +10 -0
  482. package/dist/side-panel/layer-panel/dimension-scale-selector.js +60 -0
  483. package/dist/side-panel/layer-panel/how-to-button.d.ts +6 -0
  484. package/dist/side-panel/layer-panel/how-to-button.js +58 -0
  485. package/dist/side-panel/layer-panel/layer-column-config.d.ts +19 -0
  486. package/dist/side-panel/layer-panel/layer-column-config.js +107 -0
  487. package/dist/side-panel/layer-panel/layer-config-group.d.ts +35 -0
  488. package/dist/side-panel/layer-panel/layer-config-group.js +188 -0
  489. package/dist/side-panel/layer-panel/layer-configurator.d.ts +100 -0
  490. package/dist/side-panel/layer-panel/layer-configurator.js +792 -0
  491. package/dist/side-panel/layer-panel/layer-list.d.ts +19 -0
  492. package/dist/side-panel/layer-panel/layer-list.js +188 -0
  493. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +63 -0
  494. package/dist/side-panel/layer-panel/layer-panel-header.js +291 -0
  495. package/dist/side-panel/layer-panel/layer-panel.d.ts +36 -0
  496. package/dist/side-panel/layer-panel/layer-panel.js +201 -0
  497. package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +22 -0
  498. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +109 -0
  499. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +13 -0
  500. package/dist/side-panel/layer-panel/layer-type-list-item.js +89 -0
  501. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +21 -0
  502. package/dist/side-panel/layer-panel/layer-type-selector.js +91 -0
  503. package/dist/side-panel/layer-panel/panel-view-list-toggle.d.ts +36 -0
  504. package/dist/side-panel/layer-panel/panel-view-list-toggle.js +143 -0
  505. package/dist/side-panel/layer-panel/single-color-palette.d.ts +9 -0
  506. package/dist/side-panel/layer-panel/single-color-palette.js +81 -0
  507. package/dist/side-panel/layer-panel/text-label-panel.d.ts +15 -0
  508. package/dist/side-panel/layer-panel/text-label-panel.js +171 -0
  509. package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +29 -0
  510. package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +137 -0
  511. package/dist/side-panel/layer-panel/vis-config-slider.d.ts +20 -0
  512. package/dist/side-panel/layer-panel/vis-config-slider.js +210 -0
  513. package/dist/side-panel/layer-panel/vis-config-switch.d.ts +16 -0
  514. package/dist/side-panel/layer-panel/vis-config-switch.js +91 -0
  515. package/dist/side-panel/map-manager.d.ts +20 -0
  516. package/dist/side-panel/map-manager.js +168 -0
  517. package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +19 -0
  518. package/dist/side-panel/map-style-panel/map-layer-selector.js +128 -0
  519. package/dist/side-panel/map-style-panel/map-style-selector.d.ts +16 -0
  520. package/dist/side-panel/map-style-panel/map-style-selector.js +98 -0
  521. package/dist/side-panel/panel-dropdown.d.ts +17 -0
  522. package/dist/side-panel/panel-dropdown.js +99 -0
  523. package/dist/side-panel/panel-header-action.d.ts +20 -0
  524. package/dist/side-panel/panel-header-action.js +100 -0
  525. package/dist/side-panel/panel-header.d.ts +79 -0
  526. package/dist/side-panel/panel-header.js +360 -0
  527. package/dist/side-panel/panel-tab.d.ts +20 -0
  528. package/dist/side-panel/panel-tab.js +88 -0
  529. package/dist/side-panel/panel-title.d.ts +4 -0
  530. package/dist/side-panel/panel-title.js +54 -0
  531. package/dist/side-panel/panel-toggle.d.ts +13 -0
  532. package/dist/side-panel/panel-toggle.js +80 -0
  533. package/dist/side-panel/side-bar.d.ts +79 -0
  534. package/dist/side-panel/side-bar.js +177 -0
  535. package/dist/side-panel.d.ts +134 -0
  536. package/dist/side-panel.js +274 -0
  537. package/dist/types.d.ts +42 -0
  538. package/dist/types.js +26 -0
  539. package/package.json +136 -0
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export interface CoordinateInfoProps {
3
+ coordinate: number[];
4
+ zoom: number;
5
+ }
6
+ declare const CoordinateInfoFactory: () => React.FC<CoordinateInfoProps>;
7
+ export default CoordinateInfoFactory;
@@ -0,0 +1,67 @@
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
+ "use strict";
22
+
23
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
24
+
25
+ Object.defineProperty(exports, "__esModule", {
26
+ value: true
27
+ });
28
+ exports["default"] = void 0;
29
+
30
+ var _react = _interopRequireDefault(require("react"));
31
+
32
+ var _utils = require("@kepler.gl/utils");
33
+
34
+ var _icons = require("../common/icons");
35
+
36
+ var _layerHoverInfo = require("./layer-hover-info");// 6th decimal is worth up to 0.11 m
37
+ // https://gis.stackexchange.com/questions/8650/measuring-accuracy-of-latitude-and-longitude
38
+ var DECIMAL = 6;
39
+ var DECIMAL_Z = 1;
40
+
41
+ var CoordinateInfoFactory = function CoordinateInfoFactory() {
42
+ var CoordinateInfo = function CoordinateInfo(_ref) {
43
+ var coordinate = _ref.coordinate,
44
+ zoom = _ref.zoom;
45
+ return /*#__PURE__*/_react["default"].createElement("div", {
46
+ className: "coordingate-hover-info"
47
+ }, /*#__PURE__*/_react["default"].createElement(_layerHoverInfo.StyledLayerName, {
48
+ className: "map-popover__layer-name"
49
+ }, /*#__PURE__*/_react["default"].createElement(_icons.CursorClick, {
50
+ height: "12px"
51
+ }), "Coordinate"), /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", {
52
+ className: "row"
53
+ }, /*#__PURE__*/_react["default"].createElement("td", {
54
+ className: "row__value"
55
+ }, (0, _utils.preciseRound)(coordinate[1], DECIMAL), ","), /*#__PURE__*/_react["default"].createElement("td", {
56
+ className: "row__value"
57
+ }, (0, _utils.preciseRound)(coordinate[0], DECIMAL), ","), /*#__PURE__*/_react["default"].createElement("td", {
58
+ className: "row__value"
59
+ }, (0, _utils.preciseRound)(zoom, DECIMAL_Z), "z")))));
60
+ };
61
+
62
+ return CoordinateInfo;
63
+ };
64
+
65
+ var _default = CoordinateInfoFactory;
66
+ exports["default"] = _default;
67
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvY29vcmRpbmF0ZS1pbmZvLnRzeCJdLCJuYW1lcyI6WyJERUNJTUFMIiwiREVDSU1BTF9aIiwiQ29vcmRpbmF0ZUluZm9GYWN0b3J5IiwiQ29vcmRpbmF0ZUluZm8iLCJjb29yZGluYXRlIiwiem9vbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQXZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QUFDQSxJQUFNQSxPQUFPLEdBQUcsQ0FBaEI7QUFDQSxJQUFNQyxTQUFTLEdBQUcsQ0FBbEI7O0FBT0EsSUFBTUMscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUF3QixHQUFNO0FBQ2xDLE1BQU1DLGNBQTZDLEdBQUcsU0FBaERBLGNBQWdEO0FBQUEsUUFBRUMsVUFBRixRQUFFQSxVQUFGO0FBQUEsUUFBY0MsSUFBZCxRQUFjQSxJQUFkO0FBQUEsd0JBQ3BEO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixvQkFDRSxnQ0FBQywrQkFBRDtBQUFpQixNQUFBLFNBQVMsRUFBQztBQUEzQixvQkFDRSxnQ0FBQyxrQkFBRDtBQUFhLE1BQUEsTUFBTSxFQUFDO0FBQXBCLE1BREYsZUFERixlQUtFLDREQUNFLDREQUNFO0FBQUksTUFBQSxTQUFTLEVBQUM7QUFBZCxvQkFDRTtBQUFJLE1BQUEsU0FBUyxFQUFDO0FBQWQsT0FBNEIseUJBQWFELFVBQVUsQ0FBQyxDQUFELENBQXZCLEVBQTRCSixPQUE1QixDQUE1QixNQURGLGVBRUU7QUFBSSxNQUFBLFNBQVMsRUFBQztBQUFkLE9BQTRCLHlCQUFhSSxVQUFVLENBQUMsQ0FBRCxDQUF2QixFQUE0QkosT0FBNUIsQ0FBNUIsTUFGRixlQUdFO0FBQUksTUFBQSxTQUFTLEVBQUM7QUFBZCxPQUE0Qix5QkFBYUssSUFBYixFQUFtQkosU0FBbkIsQ0FBNUIsTUFIRixDQURGLENBREYsQ0FMRixDQURvRDtBQUFBLEdBQXREOztBQWtCQSxTQUFPRSxjQUFQO0FBQ0QsQ0FwQkQ7O2VBc0JlRCxxQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge3ByZWNpc2VSb3VuZH0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0N1cnNvckNsaWNrfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtTdHlsZWRMYXllck5hbWV9IGZyb20gJy4vbGF5ZXItaG92ZXItaW5mbyc7XG5cbi8vIDZ0aCBkZWNpbWFsIGlzIHdvcnRoIHVwIHRvIDAuMTEgbVxuLy8gaHR0cHM6Ly9naXMuc3RhY2tleGNoYW5nZS5jb20vcXVlc3Rpb25zLzg2NTAvbWVhc3VyaW5nLWFjY3VyYWN5LW9mLWxhdGl0dWRlLWFuZC1sb25naXR1ZGVcbmNvbnN0IERFQ0lNQUwgPSA2O1xuY29uc3QgREVDSU1BTF9aID0gMTtcblxuZXhwb3J0IGludGVyZmFjZSBDb29yZGluYXRlSW5mb1Byb3BzIHtcbiAgY29vcmRpbmF0ZTogbnVtYmVyW107XG4gIHpvb206IG51bWJlcjtcbn1cblxuY29uc3QgQ29vcmRpbmF0ZUluZm9GYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCBDb29yZGluYXRlSW5mbzogUmVhY3QuRkM8Q29vcmRpbmF0ZUluZm9Qcm9wcz4gPSAoe2Nvb3JkaW5hdGUsIHpvb219KSA9PiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJjb29yZGluZ2F0ZS1ob3Zlci1pbmZvXCI+XG4gICAgICA8U3R5bGVkTGF5ZXJOYW1lIGNsYXNzTmFtZT1cIm1hcC1wb3BvdmVyX19sYXllci1uYW1lXCI+XG4gICAgICAgIDxDdXJzb3JDbGljayBoZWlnaHQ9XCIxMnB4XCIgLz5cbiAgICAgICAgQ29vcmRpbmF0ZVxuICAgICAgPC9TdHlsZWRMYXllck5hbWU+XG4gICAgICA8dGFibGU+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8dHIgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwicm93X192YWx1ZVwiPntwcmVjaXNlUm91bmQoY29vcmRpbmF0ZVsxXSwgREVDSU1BTCl9LDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwicm93X192YWx1ZVwiPntwcmVjaXNlUm91bmQoY29vcmRpbmF0ZVswXSwgREVDSU1BTCl9LDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwicm93X192YWx1ZVwiPntwcmVjaXNlUm91bmQoem9vbSwgREVDSU1BTF9aKX16PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgKTtcblxuICByZXR1cm4gQ29vcmRpbmF0ZUluZm87XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb29yZGluYXRlSW5mb0ZhY3Rvcnk7XG4iXX0=
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import PropTypes from 'prop-types';
3
+ export declare const StyledLayerName: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ declare const LayerHoverInfoFactory: () => {
5
+ (props: any): JSX.Element | null;
6
+ propTypes: {
7
+ fields: PropTypes.Requireable<any[]>;
8
+ fieldsToShow: PropTypes.Requireable<any[]>;
9
+ layer: PropTypes.Requireable<object>;
10
+ data: PropTypes.Requireable<object>;
11
+ };
12
+ };
13
+ export default LayerHoverInfoFactory;
@@ -0,0 +1,228 @@
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
+ "use strict";
22
+
23
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
24
+
25
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
26
+
27
+ Object.defineProperty(exports, "__esModule", {
28
+ value: true
29
+ });
30
+ exports["default"] = exports.StyledLayerName = void 0;
31
+
32
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
33
+
34
+ var _react = _interopRequireWildcard(require("react"));
35
+
36
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
37
+
38
+ var _styledComponents2 = require("../common/styled-components");
39
+
40
+ var _icons = require("../common/icons");
41
+
42
+ var _propTypes = _interopRequireDefault(require("prop-types"));
43
+
44
+ var _utils = require("@kepler.gl/utils");
45
+
46
+ var _reducers = require("@kepler.gl/reducers");
47
+
48
+ var _templateObject, _templateObject2;
49
+
50
+ var StyledLayerName = (0, _styledComponents["default"])(_styledComponents2.CenterFlexbox)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-size: 12px;\n letter-spacing: 0.43px;\n text-transform: capitalize;\n\n svg {\n margin-right: 4px;\n }\n"])), function (props) {
51
+ return props.theme.textColorHl;
52
+ });
53
+ exports.StyledLayerName = StyledLayerName;
54
+
55
+ var StyledTable = _styledComponents["default"].table(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n & .row__delta-value {\n text-align: right;\n margin-left: 6px;\n\n &.positive {\n color: ", ";\n }\n\n &.negative {\n color: ", ";\n }\n }\n"])), function (props) {
56
+ return props.theme.notificationColors.success;
57
+ }, function (props) {
58
+ return props.theme.negativeBtnActBgd;
59
+ });
60
+
61
+ /** @type {import('./layer-hover-info').RowComponent} */
62
+ var Row = function Row(_ref) {
63
+ var name = _ref.name,
64
+ value = _ref.value,
65
+ deltaValue = _ref.deltaValue,
66
+ url = _ref.url;
67
+
68
+ // Set 'url' to 'value' if it looks like a url
69
+ if (!url && value && typeof value === 'string' && value.match(/^http/)) {
70
+ url = value;
71
+ }
72
+
73
+ var asImg = /<img>/.test(name);
74
+ return /*#__PURE__*/_react["default"].createElement("tr", {
75
+ className: "row",
76
+ key: name
77
+ }, /*#__PURE__*/_react["default"].createElement("td", {
78
+ className: "row__name"
79
+ }, name), /*#__PURE__*/_react["default"].createElement("td", {
80
+ className: "row__value"
81
+ }, asImg ? /*#__PURE__*/_react["default"].createElement("img", {
82
+ src: value
83
+ }) : url ? /*#__PURE__*/_react["default"].createElement("a", {
84
+ target: "_blank",
85
+ rel: "noopener noreferrer",
86
+ href: url
87
+ }, value) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", null, value), (0, _utils.notNullorUndefined)(deltaValue) ? /*#__PURE__*/_react["default"].createElement("span", {
88
+ className: "row__delta-value ".concat(deltaValue.toString().charAt(0) === '+' ? 'positive' : 'negative')
89
+ }, deltaValue) : null)));
90
+ };
91
+
92
+ var EntryInfo = function EntryInfo(_ref2) {
93
+ var fieldsToShow = _ref2.fieldsToShow,
94
+ fields = _ref2.fields,
95
+ data = _ref2.data,
96
+ primaryData = _ref2.primaryData,
97
+ compareType = _ref2.compareType;
98
+ return /*#__PURE__*/_react["default"].createElement("tbody", null, fieldsToShow.map(function (item) {
99
+ return /*#__PURE__*/_react["default"].createElement(EntryInfoRow, {
100
+ key: item.name,
101
+ item: item,
102
+ fields: fields,
103
+ data: data,
104
+ primaryData: primaryData,
105
+ compareType: compareType
106
+ });
107
+ }));
108
+ };
109
+
110
+ var EntryInfoRow = function EntryInfoRow(_ref3) {
111
+ var item = _ref3.item,
112
+ fields = _ref3.fields,
113
+ data = _ref3.data,
114
+ primaryData = _ref3.primaryData,
115
+ compareType = _ref3.compareType;
116
+ var fieldIdx = fields.findIndex(function (f) {
117
+ return f.name === item.name;
118
+ });
119
+
120
+ if (fieldIdx < 0) {
121
+ return null;
122
+ }
123
+
124
+ var field = fields[fieldIdx];
125
+ var value = data.valueAt(fieldIdx);
126
+ var displayValue = (0, _reducers.getTooltipDisplayValue)({
127
+ item: item,
128
+ field: field,
129
+ value: value
130
+ });
131
+ var displayDeltaValue = (0, _reducers.getTooltipDisplayDeltaValue)({
132
+ item: item,
133
+ field: field,
134
+ data: data,
135
+ fieldIdx: fieldIdx,
136
+ primaryData: primaryData,
137
+ compareType: compareType
138
+ });
139
+ return /*#__PURE__*/_react["default"].createElement(Row, {
140
+ name: field.displayName || field.name,
141
+ value: displayValue,
142
+ deltaValue: displayDeltaValue
143
+ });
144
+ }; // TODO: supporting comparative value for aggregated cells as well
145
+
146
+
147
+ var CellInfo = function CellInfo(_ref4) {
148
+ var fieldsToShow = _ref4.fieldsToShow,
149
+ data = _ref4.data,
150
+ layer = _ref4.layer;
151
+ var _ref5 = layer.config,
152
+ colorField = _ref5.colorField,
153
+ sizeField = _ref5.sizeField;
154
+ var colorValue = (0, _react.useMemo)(function () {
155
+ if (colorField && layer.visualChannels.color) {
156
+ var item = fieldsToShow.find(function (field) {
157
+ return field.name === colorField.name;
158
+ });
159
+ return (0, _reducers.getTooltipDisplayValue)({
160
+ item: item,
161
+ field: colorField,
162
+ value: data.colorValue
163
+ });
164
+ }
165
+
166
+ return null;
167
+ }, [fieldsToShow, colorField, layer, data.colorValue]);
168
+ var elevationValue = (0, _react.useMemo)(function () {
169
+ if (sizeField && layer.visualChannels.size) {
170
+ var item = fieldsToShow.find(function (field) {
171
+ return field.name === sizeField.name;
172
+ });
173
+ return (0, _reducers.getTooltipDisplayValue)({
174
+ item: item,
175
+ field: sizeField,
176
+ value: data.elevationValue
177
+ });
178
+ }
179
+
180
+ return null;
181
+ }, [fieldsToShow, sizeField, layer, data.elevationValue]);
182
+ var colorMeasure = layer.getVisualChannelDescription('color').measure;
183
+ var sizeMeasure = layer.getVisualChannelDescription('size').measure;
184
+ return /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement(Row, {
185
+ name: 'total points',
186
+ key: "count",
187
+ value: String(data.points && data.points.length)
188
+ }), colorField && layer.visualChannels.color && colorMeasure ? /*#__PURE__*/_react["default"].createElement(Row, {
189
+ name: colorMeasure,
190
+ key: "color",
191
+ value: colorValue || 'N/A'
192
+ }) : null, sizeField && layer.visualChannels.size && sizeMeasure ? /*#__PURE__*/_react["default"].createElement(Row, {
193
+ name: sizeMeasure,
194
+ key: "size",
195
+ value: elevationValue || 'N/A'
196
+ }) : null);
197
+ };
198
+
199
+ var LayerHoverInfoFactory = function LayerHoverInfoFactory() {
200
+ var LayerHoverInfo = function LayerHoverInfo(props) {
201
+ var data = props.data,
202
+ layer = props.layer;
203
+
204
+ if (!data || !layer) {
205
+ return null;
206
+ }
207
+
208
+ return /*#__PURE__*/_react["default"].createElement("div", {
209
+ className: "map-popover__layer-info"
210
+ }, /*#__PURE__*/_react["default"].createElement(StyledLayerName, {
211
+ className: "map-popover__layer-name"
212
+ }, /*#__PURE__*/_react["default"].createElement(_icons.Layers, {
213
+ height: "12px"
214
+ }), props.layer.config.label), /*#__PURE__*/_react["default"].createElement(StyledTable, null, props.layer.isAggregated ? /*#__PURE__*/_react["default"].createElement(CellInfo, props) : /*#__PURE__*/_react["default"].createElement(EntryInfo, props)));
215
+ };
216
+
217
+ LayerHoverInfo.propTypes = {
218
+ fields: _propTypes["default"].arrayOf(_propTypes["default"].any),
219
+ fieldsToShow: _propTypes["default"].arrayOf(_propTypes["default"].any),
220
+ layer: _propTypes["default"].object,
221
+ data: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].any), _propTypes["default"].object])
222
+ };
223
+ return LayerHoverInfo;
224
+ };
225
+
226
+ var _default = LayerHoverInfoFactory;
227
+ exports["default"] = _default;
228
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbGF5ZXItaG92ZXItaW5mby50c3giXSwibmFtZXMiOlsiU3R5bGVkTGF5ZXJOYW1lIiwiQ2VudGVyRmxleGJveCIsInByb3BzIiwidGhlbWUiLCJ0ZXh0Q29sb3JIbCIsIlN0eWxlZFRhYmxlIiwic3R5bGVkIiwidGFibGUiLCJub3RpZmljYXRpb25Db2xvcnMiLCJzdWNjZXNzIiwibmVnYXRpdmVCdG5BY3RCZ2QiLCJSb3ciLCJuYW1lIiwidmFsdWUiLCJkZWx0YVZhbHVlIiwidXJsIiwibWF0Y2giLCJhc0ltZyIsInRlc3QiLCJ0b1N0cmluZyIsImNoYXJBdCIsIkVudHJ5SW5mbyIsImZpZWxkc1RvU2hvdyIsImZpZWxkcyIsImRhdGEiLCJwcmltYXJ5RGF0YSIsImNvbXBhcmVUeXBlIiwibWFwIiwiaXRlbSIsIkVudHJ5SW5mb1JvdyIsImZpZWxkSWR4IiwiZmluZEluZGV4IiwiZiIsImZpZWxkIiwidmFsdWVBdCIsImRpc3BsYXlWYWx1ZSIsImRpc3BsYXlEZWx0YVZhbHVlIiwiZGlzcGxheU5hbWUiLCJDZWxsSW5mbyIsImxheWVyIiwiY29uZmlnIiwiY29sb3JGaWVsZCIsInNpemVGaWVsZCIsImNvbG9yVmFsdWUiLCJ2aXN1YWxDaGFubmVscyIsImNvbG9yIiwiZmluZCIsImVsZXZhdGlvblZhbHVlIiwic2l6ZSIsImNvbG9yTWVhc3VyZSIsImdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbiIsIm1lYXN1cmUiLCJzaXplTWVhc3VyZSIsIlN0cmluZyIsInBvaW50cyIsImxlbmd0aCIsIkxheWVySG92ZXJJbmZvRmFjdG9yeSIsIkxheWVySG92ZXJJbmZvIiwibGFiZWwiLCJpc0FnZ3JlZ2F0ZWQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJhcnJheU9mIiwiYW55Iiwib2JqZWN0Iiwib25lT2ZUeXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztB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IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtUb29sdGlwRmllbGR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtDZW50ZXJGbGV4Ym94fSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtMYXllcnN9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHtub3ROdWxsb3JVbmRlZmluZWR9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtcbiAgQWdncmVnYXRpb25MYXllckhvdmVyRGF0YSxcbiAgZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlLFxuICBnZXRUb29sdGlwRGlzcGxheVZhbHVlXG59IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkTGF5ZXJOYW1lID0gc3R5bGVkKENlbnRlckZsZXhib3gpYFxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNDNweDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5cbiAgc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkVGFibGUgPSBzdHlsZWQudGFibGVgXG4gICYgLnJvd19fZGVsdGEtdmFsdWUge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG5cbiAgICAmLnBvc2l0aXZlIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm5vdGlmaWNhdGlvbkNvbG9ycy5zdWNjZXNzfTtcbiAgICB9XG5cbiAgICAmLm5lZ2F0aXZlIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm5lZ2F0aXZlQnRuQWN0QmdkfTtcbiAgICB9XG4gIH1cbmA7XG5cbmludGVyZmFjZSBSb3dQcm9wcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgZGVsdGFWYWx1ZT86IHN0cmluZyB8IG51bGw7XG4gIHVybD86IHN0cmluZztcbn1cblxuLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItaG92ZXItaW5mbycpLlJvd0NvbXBvbmVudH0gKi9cbmNvbnN0IFJvdzogUmVhY3QuRkM8Um93UHJvcHM+ID0gKHtuYW1lLCB2YWx1ZSwgZGVsdGFWYWx1ZSwgdXJsfSkgPT4ge1xuICAvLyBTZXQgJ3VybCcgdG8gJ3ZhbHVlJyBpZiBpdCBsb29rcyBsaWtlIGEgdXJsXG4gIGlmICghdXJsICYmIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubWF0Y2goL15odHRwLykpIHtcbiAgICB1cmwgPSB2YWx1ZTtcbiAgfVxuXG4gIGNvbnN0IGFzSW1nID0gLzxpbWc+Ly50ZXN0KG5hbWUpO1xuICByZXR1cm4gKFxuICAgIDx0ciBjbGFzc05hbWU9XCJyb3dcIiBrZXk9e25hbWV9PlxuICAgICAgPHRkIGNsYXNzTmFtZT1cInJvd19fbmFtZVwiPntuYW1lfTwvdGQ+XG4gICAgICA8dGQgY2xhc3NOYW1lPVwicm93X192YWx1ZVwiPlxuICAgICAgICB7YXNJbWcgPyAoXG4gICAgICAgICAgPGltZyBzcmM9e3ZhbHVlfSAvPlxuICAgICAgICApIDogdXJsID8gKFxuICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBocmVmPXt1cmx9PlxuICAgICAgICAgICAge3ZhbHVlfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPHNwYW4+e3ZhbHVlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtub3ROdWxsb3JVbmRlZmluZWQoZGVsdGFWYWx1ZSkgPyAoXG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcm93X19kZWx0YS12YWx1ZSAke1xuICAgICAgICAgICAgICAgICAgZGVsdGFWYWx1ZS50b1N0cmluZygpLmNoYXJBdCgwKSA9PT0gJysnID8gJ3Bvc2l0aXZlJyA6ICduZWdhdGl2ZSdcbiAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtkZWx0YVZhbHVlfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgKTtcbn07XG5cbmNvbnN0IEVudHJ5SW5mbyA9ICh7ZmllbGRzVG9TaG93LCBmaWVsZHMsIGRhdGEsIHByaW1hcnlEYXRhLCBjb21wYXJlVHlwZX0pID0+IChcbiAgPHRib2R5PlxuICAgIHtmaWVsZHNUb1Nob3cubWFwKGl0ZW0gPT4gKFxuICAgICAgPEVudHJ5SW5mb1Jvd1xuICAgICAgICBrZXk9e2l0ZW0ubmFtZX1cbiAgICAgICAgaXRlbT17aXRlbX1cbiAgICAgICAgZmllbGRzPXtmaWVsZHN9XG4gICAgICAgIGRhdGE9e2RhdGF9XG4gICAgICAgIHByaW1hcnlEYXRhPXtwcmltYXJ5RGF0YX1cbiAgICAgICAgY29tcGFyZVR5cGU9e2NvbXBhcmVUeXBlfVxuICAgICAgLz5cbiAgICApKX1cbiAgPC90Ym9keT5cbik7XG5cbmNvbnN0IEVudHJ5SW5mb1JvdyA9ICh7aXRlbSwgZmllbGRzLCBkYXRhLCBwcmltYXJ5RGF0YSwgY29tcGFyZVR5cGV9KSA9PiB7XG4gIGNvbnN0IGZpZWxkSWR4ID0gZmllbGRzLmZpbmRJbmRleChmID0+IGYubmFtZSA9PT0gaXRlbS5uYW1lKTtcbiAgaWYgKGZpZWxkSWR4IDwgMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IGZpZWxkID0gZmllbGRzW2ZpZWxkSWR4XTtcbiAgY29uc3QgdmFsdWUgPSBkYXRhLnZhbHVlQXQoZmllbGRJZHgpO1xuICBjb25zdCBkaXNwbGF5VmFsdWUgPSBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtpdGVtLCBmaWVsZCwgdmFsdWV9KTtcblxuICBjb25zdCBkaXNwbGF5RGVsdGFWYWx1ZSA9IGdldFRvb2x0aXBEaXNwbGF5RGVsdGFWYWx1ZSh7XG4gICAgaXRlbSxcbiAgICBmaWVsZCxcbiAgICBkYXRhLFxuICAgIGZpZWxkSWR4LFxuICAgIHByaW1hcnlEYXRhLFxuICAgIGNvbXBhcmVUeXBlXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPFJvd1xuICAgICAgbmFtZT17ZmllbGQuZGlzcGxheU5hbWUgfHwgZmllbGQubmFtZX1cbiAgICAgIHZhbHVlPXtkaXNwbGF5VmFsdWV9XG4gICAgICBkZWx0YVZhbHVlPXtkaXNwbGF5RGVsdGFWYWx1ZX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gVE9ETzogc3VwcG9ydGluZyBjb21wYXJhdGl2ZSB2YWx1ZSBmb3IgYWdncmVnYXRlZCBjZWxscyBhcyB3ZWxsXG5jb25zdCBDZWxsSW5mbyA9ICh7XG4gIGZpZWxkc1RvU2hvdyxcbiAgZGF0YSxcbiAgbGF5ZXJcbn06IHtcbiAgZGF0YTogQWdncmVnYXRpb25MYXllckhvdmVyRGF0YTtcbiAgZmllbGRzVG9TaG93OiBUb29sdGlwRmllbGRbXTtcbiAgbGF5ZXI6IExheWVyO1xufSkgPT4ge1xuICBjb25zdCB7Y29sb3JGaWVsZCwgc2l6ZUZpZWxkfSA9IGxheWVyLmNvbmZpZyBhcyBhbnk7XG5cbiAgY29uc3QgY29sb3JWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChjb2xvckZpZWxkICYmIGxheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yKSB7XG4gICAgICBjb25zdCBpdGVtID0gZmllbGRzVG9TaG93LmZpbmQoZmllbGQgPT4gZmllbGQubmFtZSA9PT0gY29sb3JGaWVsZC5uYW1lKTtcbiAgICAgIHJldHVybiBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtpdGVtLCBmaWVsZDogY29sb3JGaWVsZCwgdmFsdWU6IGRhdGEuY29sb3JWYWx1ZX0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfSwgW2ZpZWxkc1RvU2hvdywgY29sb3JGaWVsZCwgbGF5ZXIsIGRhdGEuY29sb3JWYWx1ZV0pO1xuXG4gIGNvbnN0IGVsZXZhdGlvblZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHNpemVGaWVsZCAmJiBsYXllci52aXN1YWxDaGFubmVscy5zaXplKSB7XG4gICAgICBjb25zdCBpdGVtID0gZmllbGRzVG9TaG93LmZpbmQoZmllbGQgPT4gZmllbGQubmFtZSA9PT0gc2l6ZUZpZWxkLm5hbWUpO1xuICAgICAgcmV0dXJuIGdldFRvb2x0aXBEaXNwbGF5VmFsdWUoe2l0ZW0sIGZpZWxkOiBzaXplRmllbGQsIHZhbHVlOiBkYXRhLmVsZXZhdGlvblZhbHVlfSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9LCBbZmllbGRzVG9TaG93LCBzaXplRmllbGQsIGxheWVyLCBkYXRhLmVsZXZhdGlvblZhbHVlXSk7XG5cbiAgY29uc3QgY29sb3JNZWFzdXJlID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKCdjb2xvcicpLm1lYXN1cmU7XG4gIGNvbnN0IHNpemVNZWFzdXJlID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKCdzaXplJykubWVhc3VyZTtcbiAgcmV0dXJuIChcbiAgICA8dGJvZHk+XG4gICAgICA8Um93IG5hbWU9eyd0b3RhbCBwb2ludHMnfSBrZXk9XCJjb3VudFwiIHZhbHVlPXtTdHJpbmcoZGF0YS5wb2ludHMgJiYgZGF0YS5wb2ludHMubGVuZ3RoKX0gLz5cbiAgICAgIHtjb2xvckZpZWxkICYmIGxheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yICYmIGNvbG9yTWVhc3VyZSA/IChcbiAgICAgICAgPFJvdyBuYW1lPXtjb2xvck1lYXN1cmV9IGtleT1cImNvbG9yXCIgdmFsdWU9e2NvbG9yVmFsdWUgfHwgJ04vQSd9IC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHtzaXplRmllbGQgJiYgbGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZSAmJiBzaXplTWVhc3VyZSA/IChcbiAgICAgICAgPFJvdyBuYW1lPXtzaXplTWVhc3VyZX0ga2V5PVwic2l6ZVwiIHZhbHVlPXtlbGV2YXRpb25WYWx1ZSB8fCAnTi9BJ30gLz5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvdGJvZHk+XG4gICk7XG59O1xuXG5jb25zdCBMYXllckhvdmVySW5mb0ZhY3RvcnkgPSAoKSA9PiB7XG4gIGNvbnN0IExheWVySG92ZXJJbmZvID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHtkYXRhLCBsYXllcn0gPSBwcm9wcztcblxuICAgIGlmICghZGF0YSB8fCAhbGF5ZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hcC1wb3BvdmVyX19sYXllci1pbmZvXCI+XG4gICAgICAgIDxTdHlsZWRMYXllck5hbWUgY2xhc3NOYW1lPVwibWFwLXBvcG92ZXJfX2xheWVyLW5hbWVcIj5cbiAgICAgICAgICA8TGF5ZXJzIGhlaWdodD1cIjEycHhcIiAvPlxuICAgICAgICAgIHtwcm9wcy5sYXllci5jb25maWcubGFiZWx9XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJOYW1lPlxuICAgICAgICA8U3R5bGVkVGFibGU+XG4gICAgICAgICAge3Byb3BzLmxheWVyLmlzQWdncmVnYXRlZCA/IDxDZWxsSW5mbyB7Li4ucHJvcHN9IC8+IDogPEVudHJ5SW5mbyB7Li4ucHJvcHN9IC8+fVxuICAgICAgICA8L1N0eWxlZFRhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICBMYXllckhvdmVySW5mby5wcm9wVHlwZXMgPSB7XG4gICAgZmllbGRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KSxcbiAgICBmaWVsZHNUb1Nob3c6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLFxuICAgIGxheWVyOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRhdGE6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLCBQcm9wVHlwZXMub2JqZWN0XSlcbiAgfTtcbiAgcmV0dXJuIExheWVySG92ZXJJbmZvO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJIb3ZlckluZm9GYWN0b3J5O1xuIl19
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import MapControlTooltipFactory from './map-control-tooltip';
3
+ import MapControlPanelFactory from './map-control-panel';
4
+ import { Layer } from '@kepler.gl/layers';
5
+ import { MapControls } from '@kepler.gl/types';
6
+ export declare type LayerSelectorPanelProps = {
7
+ onMapToggleLayer: (layerId: string) => void;
8
+ onToggleMapControl: (control: string) => void;
9
+ layers: ReadonlyArray<Layer>;
10
+ layersToRender: {
11
+ [key: string]: boolean;
12
+ };
13
+ isSplit: boolean;
14
+ mapControls: MapControls;
15
+ readOnly: boolean;
16
+ };
17
+ declare function LayerSelectorPanelFactory(MapControlTooltip: ReturnType<typeof MapControlTooltipFactory>, MapControlPanel: ReturnType<typeof MapControlPanelFactory>): React.NamedExoticComponent<LayerSelectorPanelProps>;
18
+ declare namespace LayerSelectorPanelFactory {
19
+ var deps: (typeof MapControlTooltipFactory | typeof MapControlPanelFactory)[];
20
+ }
21
+ export default LayerSelectorPanelFactory;
@@ -0,0 +1,114 @@
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
+ "use strict";
22
+
23
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
24
+
25
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
26
+
27
+ Object.defineProperty(exports, "__esModule", {
28
+ value: true
29
+ });
30
+ exports["default"] = void 0;
31
+
32
+ var _react = _interopRequireWildcard(require("react"));
33
+
34
+ var _classnames = _interopRequireDefault(require("classnames"));
35
+
36
+ var _styledComponents = require("../common/styled-components");
37
+
38
+ var _icons = require("../common/icons");
39
+
40
+ var _mapLayerSelector = _interopRequireDefault(require("../common/map-layer-selector"));
41
+
42
+ var _mapControlTooltip = _interopRequireDefault(require("./map-control-tooltip"));
43
+
44
+ var _mapControlPanel = _interopRequireDefault(require("./map-control-panel"));LayerSelectorPanelFactory.deps = [_mapControlTooltip["default"], _mapControlPanel["default"]];
45
+
46
+ function LayerSelectorPanelFactory(MapControlTooltip, MapControlPanel) {
47
+ /** @type {import('./layer-selector-panel').LayerSelectorPanelComponent} */
48
+ var LayerSelectorPanel = function LayerSelectorPanel(_ref) {
49
+ var onMapToggleLayer = _ref.onMapToggleLayer,
50
+ onToggleMapControl = _ref.onToggleMapControl,
51
+ layers = _ref.layers,
52
+ layersToRender = _ref.layersToRender,
53
+ isSplit = _ref.isSplit,
54
+ mapControls = _ref.mapControls,
55
+ readOnly = _ref.readOnly;
56
+ var visibleLayers = (mapControls === null || mapControls === void 0 ? void 0 : mapControls.visibleLayers) || {};
57
+
58
+ var _ref2 = visibleLayers || {},
59
+ isActive = _ref2.active,
60
+ show = _ref2.show,
61
+ disableClose = _ref2.disableClose;
62
+
63
+ var legendLayers = (0, _react.useMemo)(function () {
64
+ return layers.filter(function (_ref3) {
65
+ var config = _ref3.config;
66
+ return config.isVisible;
67
+ }).map(function (_ref4) {
68
+ var id = _ref4.id,
69
+ config = _ref4.config;
70
+ return {
71
+ id: id,
72
+ name: config.label,
73
+ // layer
74
+ isVisible: layersToRender[id]
75
+ };
76
+ });
77
+ }, [layers, layersToRender]);
78
+ var isVisible = (0, _react.useMemo)(function () {
79
+ return isSplit && show && readOnly !== true;
80
+ }, [isSplit, show, readOnly]);
81
+ var onToggleMenuPanel = (0, _react.useCallback)(function (event) {
82
+ event.preventDefault();
83
+ onToggleMapControl('visibleLayers');
84
+ }, [onToggleMapControl]);
85
+ return isVisible ? !isActive ? /*#__PURE__*/_react["default"].createElement(_styledComponents.MapControlButton, {
86
+ key: 1,
87
+ onClick: onToggleMenuPanel,
88
+ className: (0, _classnames["default"])('map-control-button', 'toggle-layer', {
89
+ isActive: isActive
90
+ }),
91
+ "data-tip": true,
92
+ "data-for": "toggle-layer"
93
+ }, /*#__PURE__*/_react["default"].createElement(_icons.Layers, {
94
+ height: "22px"
95
+ }), /*#__PURE__*/_react["default"].createElement(MapControlTooltip, {
96
+ id: "toggle-layer",
97
+ message: isActive ? 'tooltip.hideLayerPanel' : 'tooltip.showLayerPanel'
98
+ })) : /*#__PURE__*/_react["default"].createElement(MapControlPanel, {
99
+ header: "header.visibleLayers",
100
+ onClick: onToggleMenuPanel,
101
+ disableClose: disableClose
102
+ }, /*#__PURE__*/_react["default"].createElement(_mapLayerSelector["default"], {
103
+ layers: legendLayers,
104
+ onMapToggleLayer: onMapToggleLayer
105
+ })) : null;
106
+ };
107
+
108
+ LayerSelectorPanel.displayName = 'LayerSelectorPanel';
109
+ return /*#__PURE__*/_react["default"].memo(LayerSelectorPanel);
110
+ }
111
+
112
+ var _default = LayerSelectorPanelFactory;
113
+ exports["default"] = _default;
114
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbGF5ZXItc2VsZWN0b3ItcGFuZWwudHN4Il0sIm5hbWVzIjpbIkxheWVyU2VsZWN0b3JQYW5lbEZhY3RvcnkiLCJkZXBzIiwiTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5IiwiTWFwQ29udHJvbFBhbmVsRmFjdG9yeSIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFBhbmVsIiwiTGF5ZXJTZWxlY3RvclBhbmVsIiwib25NYXBUb2dnbGVMYXllciIsIm9uVG9nZ2xlTWFwQ29udHJvbCIsImxheWVycyIsImxheWVyc1RvUmVuZGVyIiwiaXNTcGxpdCIsIm1hcENvbnRyb2xzIiwicmVhZE9ubHkiLCJ2aXNpYmxlTGF5ZXJzIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJzaG93IiwiZGlzYWJsZUNsb3NlIiwibGVnZW5kTGF5ZXJzIiwiZmlsdGVyIiwiY29uZmlnIiwiaXNWaXNpYmxlIiwibWFwIiwiaWQiLCJuYW1lIiwibGFiZWwiLCJvblRvZ2dsZU1lbnVQYW5lbCIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJkaXNwbGF5TmFtZSIsIlJlYWN0IiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYUFBLHlCQUF5QixDQUFDQyxJQUExQixHQUFpQyxDQUFDQyw2QkFBRCxFQUEyQkMsMkJBQTNCLENBQWpDOztBQVlBLFNBQVNILHlCQUFULENBQ0VJLGlCQURGLEVBRUVDLGVBRkYsRUFHRTtBQUNBO0FBQ0EsTUFBTUMsa0JBQXFELEdBQUcsU0FBeERBLGtCQUF3RCxPQVF4RDtBQUFBLFFBUEpDLGdCQU9JLFFBUEpBLGdCQU9JO0FBQUEsUUFOSkMsa0JBTUksUUFOSkEsa0JBTUk7QUFBQSxRQUxKQyxNQUtJLFFBTEpBLE1BS0k7QUFBQSxRQUpKQyxjQUlJLFFBSkpBLGNBSUk7QUFBQSxRQUhKQyxPQUdJLFFBSEpBLE9BR0k7QUFBQSxRQUZKQyxXQUVJLFFBRkpBLFdBRUk7QUFBQSxRQURKQyxRQUNJLFFBREpBLFFBQ0k7QUFDSixRQUFNQyxhQUFhLEdBQUcsQ0FBQUYsV0FBVyxTQUFYLElBQUFBLFdBQVcsV0FBWCxZQUFBQSxXQUFXLENBQUVFLGFBQWIsS0FBK0IsRUFBckQ7O0FBREksZ0JBRTJDQSxhQUFhLElBQUksRUFGNUQ7QUFBQSxRQUVXQyxRQUZYLFNBRUdDLE1BRkg7QUFBQSxRQUVxQkMsSUFGckIsU0FFcUJBLElBRnJCO0FBQUEsUUFFMkJDLFlBRjNCLFNBRTJCQSxZQUYzQjs7QUFJSixRQUFNQyxZQUFZLEdBQUcsb0JBQ25CO0FBQUEsYUFDRVYsTUFBTSxDQUNIVyxNQURILENBQ1U7QUFBQSxZQUFFQyxNQUFGLFNBQUVBLE1BQUY7QUFBQSxlQUFjQSxNQUFNLENBQUNDLFNBQXJCO0FBQUEsT0FEVixFQUVHQyxHQUZILENBRU87QUFBQSxZQUFFQyxFQUFGLFNBQUVBLEVBQUY7QUFBQSxZQUFNSCxNQUFOLFNBQU1BLE1BQU47QUFBQSxlQUFtQjtBQUN0QkcsVUFBQUEsRUFBRSxFQUFGQSxFQURzQjtBQUV0QkMsVUFBQUEsSUFBSSxFQUFFSixNQUFNLENBQUNLLEtBRlM7QUFHdEI7QUFDQUosVUFBQUEsU0FBUyxFQUFFWixjQUFjLENBQUNjLEVBQUQ7QUFKSCxTQUFuQjtBQUFBLE9BRlAsQ0FERjtBQUFBLEtBRG1CLEVBVW5CLENBQUNmLE1BQUQsRUFBU0MsY0FBVCxDQVZtQixDQUFyQjtBQWFBLFFBQU1ZLFNBQVMsR0FBRyxvQkFBUTtBQUFBLGFBQU1YLE9BQU8sSUFBSU0sSUFBWCxJQUFtQkosUUFBUSxLQUFLLElBQXRDO0FBQUEsS0FBUixFQUFvRCxDQUNwRUYsT0FEb0UsRUFFcEVNLElBRm9FLEVBR3BFSixRQUhvRSxDQUFwRCxDQUFsQjtBQU1BLFFBQU1jLGlCQUFpQixHQUFHLHdCQUN4QixVQUFBQyxLQUFLLEVBQUk7QUFDUEEsTUFBQUEsS0FBSyxDQUFDQyxjQUFOO0FBQ0FyQixNQUFBQSxrQkFBa0IsQ0FBQyxlQUFELENBQWxCO0FBQ0QsS0FKdUIsRUFLeEIsQ0FBQ0Esa0JBQUQsQ0FMd0IsQ0FBMUI7QUFRQSxXQUFPYyxTQUFTLEdBQ2QsQ0FBQ1AsUUFBRCxnQkFDRSxnQ0FBQyxrQ0FBRDtBQUNFLE1BQUEsR0FBRyxFQUFFLENBRFA7QUFFRSxNQUFBLE9BQU8sRUFBRVksaUJBRlg7QUFHRSxNQUFBLFNBQVMsRUFBRSw0QkFBVyxvQkFBWCxFQUFpQyxjQUFqQyxFQUFpRDtBQUFDWixRQUFBQSxRQUFRLEVBQVJBO0FBQUQsT0FBakQsQ0FIYjtBQUlFLHNCQUpGO0FBS0Usa0JBQVM7QUFMWCxvQkFPRSxnQ0FBQyxhQUFEO0FBQVEsTUFBQSxNQUFNLEVBQUM7QUFBZixNQVBGLGVBUUUsZ0NBQUMsaUJBQUQ7QUFDRSxNQUFBLEVBQUUsRUFBQyxjQURMO0FBRUUsTUFBQSxPQUFPLEVBQUVBLFFBQVEsR0FBRyx3QkFBSCxHQUE4QjtBQUZqRCxNQVJGLENBREYsZ0JBZUUsZ0NBQUMsZUFBRDtBQUNFLE1BQUEsTUFBTSxFQUFDLHNCQURUO0FBRUUsTUFBQSxPQUFPLEVBQUVZLGlCQUZYO0FBR0UsTUFBQSxZQUFZLEVBQUVUO0FBSGhCLG9CQUtFLGdDQUFDLDRCQUFEO0FBQWtCLE1BQUEsTUFBTSxFQUFFQyxZQUExQjtBQUF3QyxNQUFBLGdCQUFnQixFQUFFWjtBQUExRCxNQUxGLENBaEJZLEdBd0JaLElBeEJKO0FBeUJELEdBaEVEOztBQWtFQUQsRUFBQUEsa0JBQWtCLENBQUN3QixXQUFuQixHQUFpQyxvQkFBakM7QUFFQSxzQkFBT0Msa0JBQU1DLElBQU4sQ0FBVzFCLGtCQUFYLENBQVA7QUFDRDs7ZUFFY04seUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCB7TWFwQ29udHJvbEJ1dHRvbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7TGF5ZXJzfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IE1hcExheWVyU2VsZWN0b3IgZnJvbSAnLi4vY29tbW9uL21hcC1sYXllci1zZWxlY3Rvcic7XG5pbXBvcnQgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtdG9vbHRpcCc7XG5pbXBvcnQgTWFwQ29udHJvbFBhbmVsRmFjdG9yeSBmcm9tICcuL21hcC1jb250cm9sLXBhbmVsJztcbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7TWFwQ29udHJvbCwgTWFwQ29udHJvbHN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5MYXllclNlbGVjdG9yUGFuZWxGYWN0b3J5LmRlcHMgPSBbTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5LCBNYXBDb250cm9sUGFuZWxGYWN0b3J5XTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJTZWxlY3RvclBhbmVsUHJvcHMgPSB7XG4gIG9uTWFwVG9nZ2xlTGF5ZXI6IChsYXllcklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlTWFwQ29udHJvbDogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgbGF5ZXJzOiBSZWFkb25seUFycmF5PExheWVyPjtcbiAgbGF5ZXJzVG9SZW5kZXI6IHtba2V5OiBzdHJpbmddOiBib29sZWFufTtcbiAgaXNTcGxpdDogYm9vbGVhbjtcbiAgbWFwQ29udHJvbHM6IE1hcENvbnRyb2xzO1xuICByZWFkT25seTogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIExheWVyU2VsZWN0b3JQYW5lbEZhY3RvcnkoXG4gIE1hcENvbnRyb2xUb29sdGlwOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3Rvcnk+LFxuICBNYXBDb250cm9sUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk+XG4pIHtcbiAgLyoqIEB0eXBlIHtpbXBvcnQoJy4vbGF5ZXItc2VsZWN0b3ItcGFuZWwnKS5MYXllclNlbGVjdG9yUGFuZWxDb21wb25lbnR9ICovXG4gIGNvbnN0IExheWVyU2VsZWN0b3JQYW5lbDogUmVhY3QuRkM8TGF5ZXJTZWxlY3RvclBhbmVsUHJvcHM+ID0gKHtcbiAgICBvbk1hcFRvZ2dsZUxheWVyLFxuICAgIG9uVG9nZ2xlTWFwQ29udHJvbCxcbiAgICBsYXllcnMsXG4gICAgbGF5ZXJzVG9SZW5kZXIsXG4gICAgaXNTcGxpdCxcbiAgICBtYXBDb250cm9scyxcbiAgICByZWFkT25seVxuICB9KSA9PiB7XG4gICAgY29uc3QgdmlzaWJsZUxheWVycyA9IG1hcENvbnRyb2xzPy52aXNpYmxlTGF5ZXJzIHx8ICh7fSBhcyBNYXBDb250cm9sKTtcbiAgICBjb25zdCB7YWN0aXZlOiBpc0FjdGl2ZSwgc2hvdywgZGlzYWJsZUNsb3NlfSA9IHZpc2libGVMYXllcnMgfHwge307XG5cbiAgICBjb25zdCBsZWdlbmRMYXllcnMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgbGF5ZXJzXG4gICAgICAgICAgLmZpbHRlcigoe2NvbmZpZ30pID0+IGNvbmZpZy5pc1Zpc2libGUpXG4gICAgICAgICAgLm1hcCgoe2lkLCBjb25maWd9KSA9PiAoe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBuYW1lOiBjb25maWcubGFiZWwsXG4gICAgICAgICAgICAvLyBsYXllclxuICAgICAgICAgICAgaXNWaXNpYmxlOiBsYXllcnNUb1JlbmRlcltpZF1cbiAgICAgICAgICB9KSksXG4gICAgICBbbGF5ZXJzLCBsYXllcnNUb1JlbmRlcl1cbiAgICApO1xuXG4gICAgY29uc3QgaXNWaXNpYmxlID0gdXNlTWVtbygoKSA9PiBpc1NwbGl0ICYmIHNob3cgJiYgcmVhZE9ubHkgIT09IHRydWUsIFtcbiAgICAgIGlzU3BsaXQsXG4gICAgICBzaG93LFxuICAgICAgcmVhZE9ubHlcbiAgICBdKTtcblxuICAgIGNvbnN0IG9uVG9nZ2xlTWVudVBhbmVsID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgndmlzaWJsZUxheWVycycpO1xuICAgICAgfSxcbiAgICAgIFtvblRvZ2dsZU1hcENvbnRyb2xdXG4gICAgKTtcblxuICAgIHJldHVybiBpc1Zpc2libGUgPyAoXG4gICAgICAhaXNBY3RpdmUgPyAoXG4gICAgICAgIDxNYXBDb250cm9sQnV0dG9uXG4gICAgICAgICAga2V5PXsxfVxuICAgICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlTWVudVBhbmVsfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnbWFwLWNvbnRyb2wtYnV0dG9uJywgJ3RvZ2dsZS1sYXllcicsIHtpc0FjdGl2ZX0pfVxuICAgICAgICAgIGRhdGEtdGlwXG4gICAgICAgICAgZGF0YS1mb3I9XCJ0b2dnbGUtbGF5ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPExheWVycyBoZWlnaHQ9XCIyMnB4XCIgLz5cbiAgICAgICAgICA8TWFwQ29udHJvbFRvb2x0aXBcbiAgICAgICAgICAgIGlkPVwidG9nZ2xlLWxheWVyXCJcbiAgICAgICAgICAgIG1lc3NhZ2U9e2lzQWN0aXZlID8gJ3Rvb2x0aXAuaGlkZUxheWVyUGFuZWwnIDogJ3Rvb2x0aXAuc2hvd0xheWVyUGFuZWwnfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgICkgOiAoXG4gICAgICAgIDxNYXBDb250cm9sUGFuZWxcbiAgICAgICAgICBoZWFkZXI9XCJoZWFkZXIudmlzaWJsZUxheWVyc1wiXG4gICAgICAgICAgb25DbGljaz17b25Ub2dnbGVNZW51UGFuZWx9XG4gICAgICAgICAgZGlzYWJsZUNsb3NlPXtkaXNhYmxlQ2xvc2V9XG4gICAgICAgID5cbiAgICAgICAgICA8TWFwTGF5ZXJTZWxlY3RvciBsYXllcnM9e2xlZ2VuZExheWVyc30gb25NYXBUb2dnbGVMYXllcj17b25NYXBUb2dnbGVMYXllcn0gLz5cbiAgICAgICAgPC9NYXBDb250cm9sUGFuZWw+XG4gICAgICApXG4gICAgKSA6IG51bGw7XG4gIH07XG5cbiAgTGF5ZXJTZWxlY3RvclBhbmVsLmRpc3BsYXlOYW1lID0gJ0xheWVyU2VsZWN0b3JQYW5lbCc7XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oTGF5ZXJTZWxlY3RvclBhbmVsKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJTZWxlY3RvclBhbmVsRmFjdG9yeTtcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ /**
3
+ * Lazy mounting tippy content
4
+ * https://gist.github.com/atomiks/520f4b0c7b537202a23a3059d4eec908
5
+ */
6
+ declare const LazyTippy: React.ForwardRefExoticComponent<React.RefAttributes<unknown>>;
7
+ export default LazyTippy;
@@ -0,0 +1,94 @@
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
+ "use strict";
22
+
23
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
24
+
25
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
26
+
27
+ Object.defineProperty(exports, "__esModule", {
28
+ value: true
29
+ });
30
+ exports["default"] = void 0;
31
+
32
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
33
+
34
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
35
+
36
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
37
+
38
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
39
+
40
+ var _react = _interopRequireWildcard(require("react"));
41
+
42
+ var _headless = _interopRequireDefault(require("@tippyjs/react/headless"));
43
+
44
+ var _utils = require("@kepler.gl/utils");
45
+
46
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
47
+
48
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
49
+
50
+ var isTestEnv = (0, _utils.isTest)();
51
+ /**
52
+ * Lazy mounting tippy content
53
+ * https://gist.github.com/atomiks/520f4b0c7b537202a23a3059d4eec908
54
+ */
55
+ // eslint-disable-next-line react/display-name
56
+
57
+ var LazyTippy = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
58
+ var _useState = (0, _react.useState)(isTestEnv),
59
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
+ mounted = _useState2[0],
61
+ setMounted = _useState2[1];
62
+
63
+ var lazyPlugin = {
64
+ fn: function fn() {
65
+ return {
66
+ onMount: function onMount() {
67
+ return setMounted(true);
68
+ },
69
+ onHidden: function onHidden() {
70
+ return setMounted(false);
71
+ }
72
+ };
73
+ }
74
+ };
75
+
76
+ var computedProps = _objectSpread({}, props);
77
+
78
+ computedProps.plugins = [lazyPlugin].concat((0, _toConsumableArray2["default"])(props.plugins || []));
79
+
80
+ if (props.render) {
81
+ computedProps.render = function () {
82
+ return mounted ? props.render.apply(props, arguments) : '';
83
+ };
84
+ } else {
85
+ computedProps.content = mounted ? props.content : '';
86
+ }
87
+
88
+ return /*#__PURE__*/_react["default"].createElement(_headless["default"], (0, _extends2["default"])({}, computedProps, {
89
+ ref: ref
90
+ }));
91
+ });
92
+ var _default = LazyTippy;
93
+ exports["default"] = _default;
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbGF6eS10aXBweS50c3giXSwibmFtZXMiOlsiaXNUZXN0RW52IiwiTGF6eVRpcHB5IiwicHJvcHMiLCJyZWYiLCJtb3VudGVkIiwic2V0TW91bnRlZCIsImxhenlQbHVnaW4iLCJmbiIsIm9uTW91bnQiLCJvbkhpZGRlbiIsImNvbXB1dGVkUHJvcHMiLCJwbHVnaW5zIiwicmVuZGVyIiwiY29udGVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxTQUFTLEdBQUcsb0JBQWxCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxJQUFNQyxTQUFTLGdCQUFHLHVCQUFXLFVBQUNDLEtBQUQsRUFBUUMsR0FBUixFQUFnQjtBQUFBLGtCQUNiLHFCQUFTSCxTQUFULENBRGE7QUFBQTtBQUFBLE1BQ3BDSSxPQURvQztBQUFBLE1BQzNCQyxVQUQyQjs7QUFHM0MsTUFBTUMsVUFBVSxHQUFHO0FBQ2pCQyxJQUFBQSxFQUFFLEVBQUU7QUFBQSxhQUFPO0FBQ1RDLFFBQUFBLE9BQU8sRUFBRTtBQUFBLGlCQUFNSCxVQUFVLENBQUMsSUFBRCxDQUFoQjtBQUFBLFNBREE7QUFFVEksUUFBQUEsUUFBUSxFQUFFO0FBQUEsaUJBQU1KLFVBQVUsQ0FBQyxLQUFELENBQWhCO0FBQUE7QUFGRCxPQUFQO0FBQUE7QUFEYSxHQUFuQjs7QUFPQSxNQUFNSyxhQUFhLHFCQUFPUixLQUFQLENBQW5COztBQUVBUSxFQUFBQSxhQUFhLENBQUNDLE9BQWQsSUFBeUJMLFVBQXpCLDZDQUF5Q0osS0FBSyxDQUFDUyxPQUFOLElBQWlCLEVBQTFEOztBQUVBLE1BQUlULEtBQUssQ0FBQ1UsTUFBVixFQUFrQjtBQUNoQkYsSUFBQUEsYUFBYSxDQUFDRSxNQUFkLEdBQXVCO0FBQUEsYUFBY1IsT0FBTyxHQUFHRixLQUFLLENBQUNVLE1BQU4sT0FBQVYsS0FBSyxZQUFSLEdBQTJCLEVBQWhEO0FBQUEsS0FBdkI7QUFDRCxHQUZELE1BRU87QUFDTFEsSUFBQUEsYUFBYSxDQUFDRyxPQUFkLEdBQXdCVCxPQUFPLEdBQUdGLEtBQUssQ0FBQ1csT0FBVCxHQUFtQixFQUFsRDtBQUNEOztBQUVELHNCQUFPLGdDQUFDLG9CQUFELGdDQUFXSCxhQUFYO0FBQTBCLElBQUEsR0FBRyxFQUFFUDtBQUEvQixLQUFQO0FBQ0QsQ0FyQmlCLENBQWxCO2VBdUJlRixTIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLW5vY2hlY2tcbmltcG9ydCBSZWFjdCwge3VzZVN0YXRlLCBmb3J3YXJkUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVGlwcHkgZnJvbSAnQHRpcHB5anMvcmVhY3QvaGVhZGxlc3MnO1xuaW1wb3J0IHtpc1Rlc3R9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5jb25zdCBpc1Rlc3RFbnYgPSBpc1Rlc3QoKTtcblxuLyoqXG4gKiBMYXp5IG1vdW50aW5nIHRpcHB5IGNvbnRlbnRcbiAqIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2F0b21pa3MvNTIwZjRiMGM3YjUzNzIwMmEyM2EzMDU5ZDRlZWM5MDhcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rpc3BsYXktbmFtZVxuY29uc3QgTGF6eVRpcHB5ID0gZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCBbbW91bnRlZCwgc2V0TW91bnRlZF0gPSB1c2VTdGF0ZShpc1Rlc3RFbnYpO1xuXG4gIGNvbnN0IGxhenlQbHVnaW4gPSB7XG4gICAgZm46ICgpID0+ICh7XG4gICAgICBvbk1vdW50OiAoKSA9PiBzZXRNb3VudGVkKHRydWUpLFxuICAgICAgb25IaWRkZW46ICgpID0+IHNldE1vdW50ZWQoZmFsc2UpXG4gICAgfSlcbiAgfTtcblxuICBjb25zdCBjb21wdXRlZFByb3BzID0gey4uLnByb3BzfTtcblxuICBjb21wdXRlZFByb3BzLnBsdWdpbnMgPSBbbGF6eVBsdWdpbiwgLi4uKHByb3BzLnBsdWdpbnMgfHwgW10pXTtcblxuICBpZiAocHJvcHMucmVuZGVyKSB7XG4gICAgY29tcHV0ZWRQcm9wcy5yZW5kZXIgPSAoLi4uYXJncykgPT4gKG1vdW50ZWQgPyBwcm9wcy5yZW5kZXIoLi4uYXJncykgOiAnJyk7XG4gIH0gZWxzZSB7XG4gICAgY29tcHV0ZWRQcm9wcy5jb250ZW50ID0gbW91bnRlZCA/IHByb3BzLmNvbnRlbnQgOiAnJztcbiAgfVxuXG4gIHJldHVybiA8VGlwcHkgey4uLmNvbXB1dGVkUHJvcHN9IHJlZj17cmVmfSAvPjtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBMYXp5VGlwcHk7XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import MapControlTooltipFactory from './map-control-tooltip';
3
+ import MapControlToolbarFactory from './map-control-toolbar';
4
+ import { MapControls } from '@kepler.gl/types';
5
+ export declare type LocalePanelProps = {
6
+ availableLocales: ReadonlyArray<string>;
7
+ onSetLocale: (locale: string) => void;
8
+ locale: string;
9
+ onToggleMapControl: (control: string) => void;
10
+ mapControls: MapControls;
11
+ };
12
+ declare function LocalePanelFactory(MapControlTooltip: ReturnType<typeof MapControlTooltipFactory>, MapControlToolbar: ReturnType<typeof MapControlToolbarFactory>): React.FC<LocalePanelProps>;
13
+ declare namespace LocalePanelFactory {
14
+ var deps: (typeof MapControlTooltipFactory | typeof MapControlToolbarFactory)[];
15
+ }
16
+ export default LocalePanelFactory;