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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (725) hide show
  1. package/dist/bottom-widget.d.ts +19 -0
  2. package/dist/bottom-widget.js +184 -0
  3. package/dist/common/action-panel.d.ts +29 -0
  4. package/dist/common/action-panel.js +136 -0
  5. package/dist/common/animation-control/animation-control.d.ts +25 -0
  6. package/dist/common/animation-control/animation-control.js +96 -0
  7. package/dist/common/animation-control/animation-controller.d.ts +19 -0
  8. package/dist/common/animation-control/animation-controller.js +269 -0
  9. package/dist/common/animation-control/animation-speed-slider.d.ts +12 -0
  10. package/dist/common/animation-control/animation-speed-slider.js +50 -0
  11. package/dist/common/animation-control/animation-window-control.d.ts +20 -0
  12. package/dist/common/animation-control/animation-window-control.js +60 -0
  13. package/dist/common/animation-control/floating-time-display.d.ts +9 -0
  14. package/dist/common/animation-control/floating-time-display.js +132 -0
  15. package/dist/common/animation-control/play-control.d.ts +12 -0
  16. package/dist/common/animation-control/play-control.js +52 -0
  17. package/dist/common/animation-control/playback-controls.d.ts +48 -0
  18. package/dist/common/animation-control/playback-controls.js +156 -0
  19. package/dist/common/animation-control/reset-control.d.ts +9 -0
  20. package/dist/common/animation-control/reset-control.js +43 -0
  21. package/dist/common/animation-control/speed-control.d.ts +12 -0
  22. package/dist/common/animation-control/speed-control.js +53 -0
  23. package/dist/common/animation-control/window-action-control.d.ts +11 -0
  24. package/dist/common/animation-control/window-action-control.js +58 -0
  25. package/dist/common/checkbox.d.ts +36 -0
  26. package/dist/common/checkbox.js +105 -0
  27. package/dist/common/color-legend.d.ts +57 -0
  28. package/dist/common/color-legend.js +262 -0
  29. package/dist/common/column-stats-chart.d.ts +37 -0
  30. package/dist/common/column-stats-chart.js +359 -0
  31. package/dist/common/data-table/button.d.ts +8 -0
  32. package/dist/common/data-table/button.js +38 -0
  33. package/dist/common/data-table/canvas.d.ts +2 -0
  34. package/dist/common/data-table/canvas.js +26 -0
  35. package/dist/common/data-table/cell-size.d.ts +43 -0
  36. package/dist/common/data-table/cell-size.js +183 -0
  37. package/dist/common/data-table/display-format.d.ts +25 -0
  38. package/dist/common/data-table/display-format.js +126 -0
  39. package/dist/common/data-table/grid.d.ts +10 -0
  40. package/dist/common/data-table/grid.js +107 -0
  41. package/dist/common/data-table/header-cell.d.ts +28 -0
  42. package/dist/common/data-table/header-cell.js +149 -0
  43. package/dist/common/data-table/index.d.ts +101 -0
  44. package/dist/common/data-table/index.js +464 -0
  45. package/dist/common/data-table/option-dropdown.d.ts +28 -0
  46. package/dist/common/data-table/option-dropdown.js +160 -0
  47. package/dist/common/dataset-label.d.ts +10 -0
  48. package/dist/common/dataset-label.js +27 -0
  49. package/dist/common/error-boundary.d.ts +16 -0
  50. package/dist/common/error-boundary.js +59 -0
  51. package/dist/common/field-selector.d.ts +49 -0
  52. package/dist/common/field-selector.js +173 -0
  53. package/dist/common/field-token.d.ts +62 -0
  54. package/dist/common/field-token.js +43 -0
  55. package/dist/common/file-uploader/file-drop.d.ts +54 -0
  56. package/dist/common/file-uploader/file-drop.js +196 -0
  57. package/dist/common/file-uploader/file-upload-progress.d.ts +8 -0
  58. package/dist/common/file-uploader/file-upload-progress.js +86 -0
  59. package/dist/common/file-uploader/file-upload.d.ts +23 -0
  60. package/dist/common/file-uploader/file-upload.js +244 -0
  61. package/dist/common/file-uploader/upload-button.d.ts +8 -0
  62. package/dist/common/file-uploader/upload-button.js +59 -0
  63. package/dist/common/flex-container.d.ts +3 -0
  64. package/dist/common/flex-container.js +15 -0
  65. package/dist/common/histogram-plot.d.ts +13 -0
  66. package/dist/common/histogram-plot.js +232 -0
  67. package/dist/common/icon-button.d.ts +27 -0
  68. package/dist/common/icon-button.js +25 -0
  69. package/dist/common/icons/add.d.ts +9 -0
  70. package/dist/common/icons/add.js +41 -0
  71. package/dist/common/icons/anchor_window.d.ts +11 -0
  72. package/dist/common/icons/anchor_window.js +34 -0
  73. package/dist/common/icons/arrow-down-alt.d.ts +9 -0
  74. package/dist/common/icons/arrow-down-alt.js +41 -0
  75. package/dist/common/icons/arrow-down-full.d.ts +16 -0
  76. package/dist/common/icons/arrow-down-full.js +50 -0
  77. package/dist/common/icons/arrow-down-small.d.ts +14 -0
  78. package/dist/common/icons/arrow-down-small.js +54 -0
  79. package/dist/common/icons/arrow-down-solid.d.ts +9 -0
  80. package/dist/common/icons/arrow-down-solid.js +41 -0
  81. package/dist/common/icons/arrow-down.d.ts +9 -0
  82. package/dist/common/icons/arrow-down.js +41 -0
  83. package/dist/common/icons/arrow-left.d.ts +9 -0
  84. package/dist/common/icons/arrow-left.js +44 -0
  85. package/dist/common/icons/arrow-right.d.ts +9 -0
  86. package/dist/common/icons/arrow-right.js +41 -0
  87. package/dist/common/icons/arrow-up-alt.d.ts +9 -0
  88. package/dist/common/icons/arrow-up-alt.js +42 -0
  89. package/dist/common/icons/arrow-up-solid.d.ts +9 -0
  90. package/dist/common/icons/arrow-up-solid.js +41 -0
  91. package/dist/common/icons/arrow-up.d.ts +9 -0
  92. package/dist/common/icons/arrow-up.js +41 -0
  93. package/dist/common/icons/base.d.ts +29 -0
  94. package/dist/common/icons/base.js +79 -0
  95. package/dist/common/icons/bug.d.ts +9 -0
  96. package/dist/common/icons/bug.js +43 -0
  97. package/dist/common/icons/calendar.d.ts +10 -0
  98. package/dist/common/icons/calendar.js +49 -0
  99. package/dist/common/icons/cancel.d.ts +9 -0
  100. package/dist/common/icons/cancel.js +41 -0
  101. package/dist/common/icons/checkmark.d.ts +10 -0
  102. package/dist/common/icons/checkmark.js +47 -0
  103. package/dist/common/icons/clipboard.d.ts +9 -0
  104. package/dist/common/icons/clipboard.js +42 -0
  105. package/dist/common/icons/clock.d.ts +9 -0
  106. package/dist/common/icons/clock.js +43 -0
  107. package/dist/common/icons/close.d.ts +9 -0
  108. package/dist/common/icons/close.js +46 -0
  109. package/dist/common/icons/code-alt.d.ts +9 -0
  110. package/dist/common/icons/code-alt.js +44 -0
  111. package/dist/common/icons/copy.d.ts +9 -0
  112. package/dist/common/icons/copy.js +46 -0
  113. package/dist/common/icons/crosshairs.d.ts +9 -0
  114. package/dist/common/icons/crosshairs.js +44 -0
  115. package/dist/common/icons/cube-3d.d.ts +9 -0
  116. package/dist/common/icons/cube-3d.js +45 -0
  117. package/dist/common/icons/cursor-click.d.ts +9 -0
  118. package/dist/common/icons/cursor-click.js +45 -0
  119. package/dist/common/icons/cursor-point.d.ts +14 -0
  120. package/dist/common/icons/cursor-point.js +51 -0
  121. package/dist/common/icons/data-table.d.ts +10 -0
  122. package/dist/common/icons/data-table.js +42 -0
  123. package/dist/common/icons/db.d.ts +10 -0
  124. package/dist/common/icons/db.js +42 -0
  125. package/dist/common/icons/delete.d.ts +9 -0
  126. package/dist/common/icons/delete.js +43 -0
  127. package/dist/common/icons/docs.d.ts +9 -0
  128. package/dist/common/icons/docs.js +57 -0
  129. package/dist/common/icons/drag-n-drop.d.ts +9 -0
  130. package/dist/common/icons/drag-n-drop.js +43 -0
  131. package/dist/common/icons/draw-polygon.d.ts +10 -0
  132. package/dist/common/icons/draw-polygon.js +61 -0
  133. package/dist/common/icons/edit.d.ts +14 -0
  134. package/dist/common/icons/edit.js +49 -0
  135. package/dist/common/icons/effects/brightness-contrast.d.ts +14 -0
  136. package/dist/common/icons/effects/brightness-contrast.js +70 -0
  137. package/dist/common/icons/effects/color-halftone.d.ts +14 -0
  138. package/dist/common/icons/effects/color-halftone.js +109 -0
  139. package/dist/common/icons/effects/dot-screen.d.ts +14 -0
  140. package/dist/common/icons/effects/dot-screen.js +104 -0
  141. package/dist/common/icons/effects/edge-work.d.ts +14 -0
  142. package/dist/common/icons/effects/edge-work.js +63 -0
  143. package/dist/common/icons/effects/hexagonal-pixelate.d.ts +14 -0
  144. package/dist/common/icons/effects/hexagonal-pixelate.js +130 -0
  145. package/dist/common/icons/effects/hue-saturation.d.ts +14 -0
  146. package/dist/common/icons/effects/hue-saturation.js +61 -0
  147. package/dist/common/icons/effects/ink.d.ts +14 -0
  148. package/dist/common/icons/effects/ink.js +60 -0
  149. package/dist/common/icons/effects/light-and-shadow.d.ts +14 -0
  150. package/dist/common/icons/effects/light-and-shadow.js +49 -0
  151. package/dist/common/icons/effects/magic-wand.d.ts +14 -0
  152. package/dist/common/icons/effects/magic-wand.js +61 -0
  153. package/dist/common/icons/effects/magnify.d.ts +14 -0
  154. package/dist/common/icons/effects/magnify.js +68 -0
  155. package/dist/common/icons/effects/noise.d.ts +14 -0
  156. package/dist/common/icons/effects/noise.js +114 -0
  157. package/dist/common/icons/effects/sepia.d.ts +14 -0
  158. package/dist/common/icons/effects/sepia.js +61 -0
  159. package/dist/common/icons/effects/tilt-shift.d.ts +14 -0
  160. package/dist/common/icons/effects/tilt-shift.js +70 -0
  161. package/dist/common/icons/effects/triangle-blur.d.ts +14 -0
  162. package/dist/common/icons/effects/triangle-blur.js +65 -0
  163. package/dist/common/icons/effects/vibrance.d.ts +14 -0
  164. package/dist/common/icons/effects/vibrance.js +61 -0
  165. package/dist/common/icons/effects/vignette.d.ts +14 -0
  166. package/dist/common/icons/effects/vignette.js +54 -0
  167. package/dist/common/icons/effects/zoom-blur.d.ts +14 -0
  168. package/dist/common/icons/effects/zoom-blur.js +89 -0
  169. package/dist/common/icons/email.d.ts +9 -0
  170. package/dist/common/icons/email.js +45 -0
  171. package/dist/common/icons/expand.d.ts +9 -0
  172. package/dist/common/icons/expand.js +43 -0
  173. package/dist/common/icons/eye-seen.d.ts +9 -0
  174. package/dist/common/icons/eye-seen.js +43 -0
  175. package/dist/common/icons/eye-unseen.d.ts +9 -0
  176. package/dist/common/icons/eye-unseen.js +43 -0
  177. package/dist/common/icons/file-type.d.ts +8 -0
  178. package/dist/common/icons/file-type.js +35 -0
  179. package/dist/common/icons/file.d.ts +9 -0
  180. package/dist/common/icons/file.js +41 -0
  181. package/dist/common/icons/files.d.ts +9 -0
  182. package/dist/common/icons/files.js +41 -0
  183. package/dist/common/icons/filter-funnel.d.ts +9 -0
  184. package/dist/common/icons/filter-funnel.js +41 -0
  185. package/dist/common/icons/free-window.d.ts +4 -0
  186. package/dist/common/icons/free-window.js +44 -0
  187. package/dist/common/icons/gear.d.ts +9 -0
  188. package/dist/common/icons/gear.js +43 -0
  189. package/dist/common/icons/globe.d.ts +15 -0
  190. package/dist/common/icons/globe.js +54 -0
  191. package/dist/common/icons/hash.d.ts +9 -0
  192. package/dist/common/icons/hash.js +41 -0
  193. package/dist/common/icons/help.d.ts +13 -0
  194. package/dist/common/icons/help.js +51 -0
  195. package/dist/common/icons/histogram.d.ts +9 -0
  196. package/dist/common/icons/histogram.js +41 -0
  197. package/dist/common/icons/index.d.ts +106 -0
  198. package/dist/common/icons/index.js +740 -0
  199. package/dist/common/icons/info.d.ts +12 -0
  200. package/dist/common/icons/info.js +54 -0
  201. package/dist/common/icons/layers.d.ts +9 -0
  202. package/dist/common/icons/layers.js +41 -0
  203. package/dist/common/icons/left-arrow.d.ts +9 -0
  204. package/dist/common/icons/left-arrow.js +44 -0
  205. package/dist/common/icons/legend.d.ts +9 -0
  206. package/dist/common/icons/legend.js +41 -0
  207. package/dist/common/icons/line-chart.d.ts +9 -0
  208. package/dist/common/icons/line-chart.js +41 -0
  209. package/dist/common/icons/location-marker.d.ts +14 -0
  210. package/dist/common/icons/location-marker.js +59 -0
  211. package/dist/common/icons/login.d.ts +9 -0
  212. package/dist/common/icons/login.js +44 -0
  213. package/dist/common/icons/logout.d.ts +9 -0
  214. package/dist/common/icons/logout.js +43 -0
  215. package/dist/common/icons/map-icon.d.ts +11 -0
  216. package/dist/common/icons/map-icon.js +48 -0
  217. package/dist/common/icons/map.d.ts +11 -0
  218. package/dist/common/icons/map.js +48 -0
  219. package/dist/common/icons/messages.d.ts +9 -0
  220. package/dist/common/icons/messages.js +41 -0
  221. package/dist/common/icons/minus.d.ts +9 -0
  222. package/dist/common/icons/minus.js +41 -0
  223. package/dist/common/icons/moon.d.ts +14 -0
  224. package/dist/common/icons/moon.js +59 -0
  225. package/dist/common/icons/order-by-dataset.d.ts +4 -0
  226. package/dist/common/icons/order-by-dataset.js +46 -0
  227. package/dist/common/icons/order-by-list.d.ts +4 -0
  228. package/dist/common/icons/order-by-list.js +38 -0
  229. package/dist/common/icons/pause.d.ts +9 -0
  230. package/dist/common/icons/pause.js +41 -0
  231. package/dist/common/icons/picture.d.ts +9 -0
  232. package/dist/common/icons/picture.js +41 -0
  233. package/dist/common/icons/pin.d.ts +9 -0
  234. package/dist/common/icons/pin.js +45 -0
  235. package/dist/common/icons/play.d.ts +9 -0
  236. package/dist/common/icons/play.js +41 -0
  237. package/dist/common/icons/polygon.d.ts +10 -0
  238. package/dist/common/icons/polygon.js +63 -0
  239. package/dist/common/icons/rectangle.d.ts +10 -0
  240. package/dist/common/icons/rectangle.js +64 -0
  241. package/dist/common/icons/reduce.d.ts +9 -0
  242. package/dist/common/icons/reduce.js +44 -0
  243. package/dist/common/icons/reset.d.ts +9 -0
  244. package/dist/common/icons/reset.js +41 -0
  245. package/dist/common/icons/rocket.d.ts +9 -0
  246. package/dist/common/icons/rocket.js +41 -0
  247. package/dist/common/icons/save.d.ts +9 -0
  248. package/dist/common/icons/save.js +43 -0
  249. package/dist/common/icons/save2.d.ts +9 -0
  250. package/dist/common/icons/save2.js +47 -0
  251. package/dist/common/icons/search.d.ts +9 -0
  252. package/dist/common/icons/search.js +43 -0
  253. package/dist/common/icons/settings.d.ts +9 -0
  254. package/dist/common/icons/settings.js +43 -0
  255. package/dist/common/icons/share.d.ts +9 -0
  256. package/dist/common/icons/share.js +41 -0
  257. package/dist/common/icons/split.d.ts +9 -0
  258. package/dist/common/icons/split.js +69 -0
  259. package/dist/common/icons/square-select.d.ts +9 -0
  260. package/dist/common/icons/square-select.js +43 -0
  261. package/dist/common/icons/sun.d.ts +14 -0
  262. package/dist/common/icons/sun.js +75 -0
  263. package/dist/common/icons/sunrise.d.ts +14 -0
  264. package/dist/common/icons/sunrise.js +71 -0
  265. package/dist/common/icons/sunset.d.ts +14 -0
  266. package/dist/common/icons/sunset.js +71 -0
  267. package/dist/common/icons/timeline-marker.d.ts +17 -0
  268. package/dist/common/icons/timeline-marker.js +56 -0
  269. package/dist/common/icons/trash.d.ts +10 -0
  270. package/dist/common/icons/trash.js +44 -0
  271. package/dist/common/icons/vert-dots.d.ts +9 -0
  272. package/dist/common/icons/vert-dots.js +79 -0
  273. package/dist/common/icons/vert-three-dots.d.ts +9 -0
  274. package/dist/common/icons/vert-three-dots.js +54 -0
  275. package/dist/common/icons/warning-sign.d.ts +15 -0
  276. package/dist/common/icons/warning-sign.js +61 -0
  277. package/dist/common/icons/warning.d.ts +10 -0
  278. package/dist/common/icons/warning.js +55 -0
  279. package/dist/common/image-preview.d.ts +15 -0
  280. package/dist/common/image-preview.js +60 -0
  281. package/dist/common/index.d.ts +4 -0
  282. package/dist/common/index.js +277 -0
  283. package/dist/common/info-helper.d.ts +10 -0
  284. package/dist/common/info-helper.js +61 -0
  285. package/dist/common/item-selector/accessor.d.ts +7 -0
  286. package/dist/common/item-selector/accessor.js +37 -0
  287. package/dist/common/item-selector/chickleted-input.d.ts +23 -0
  288. package/dist/common/item-selector/chickleted-input.js +153 -0
  289. package/dist/common/item-selector/dropdown-list.d.ts +74 -0
  290. package/dist/common/item-selector/dropdown-list.js +260 -0
  291. package/dist/common/item-selector/dropdown-select.d.ts +33 -0
  292. package/dist/common/item-selector/dropdown-select.js +79 -0
  293. package/dist/common/item-selector/item-selector.d.ts +82 -0
  294. package/dist/common/item-selector/item-selector.js +252 -0
  295. package/dist/common/item-selector/typeahead.d.ts +126 -0
  296. package/dist/common/item-selector/typeahead.js +433 -0
  297. package/dist/common/line-chart.d.ts +34 -0
  298. package/dist/common/line-chart.js +120 -0
  299. package/dist/common/loading-spinner.d.ts +10 -0
  300. package/dist/common/loading-spinner.js +51 -0
  301. package/dist/common/logo.d.ts +8 -0
  302. package/dist/common/logo.js +68 -0
  303. package/dist/common/map-layer-selector.d.ts +13 -0
  304. package/dist/common/map-layer-selector.js +38 -0
  305. package/dist/common/modal.d.ts +64 -0
  306. package/dist/common/modal.js +171 -0
  307. package/dist/common/portaled.d.ts +583 -0
  308. package/dist/common/portaled.js +285 -0
  309. package/dist/common/progress-bar.d.ts +12 -0
  310. package/dist/common/progress-bar.js +47 -0
  311. package/dist/common/radius-legend.d.ts +10 -0
  312. package/dist/common/radius-legend.js +132 -0
  313. package/dist/common/range-brush.d.ts +19 -0
  314. package/dist/common/range-brush.js +266 -0
  315. package/dist/common/range-plot.d.ts +41 -0
  316. package/dist/common/range-plot.js +207 -0
  317. package/dist/common/range-slider-timeline-panel.d.ts +11 -0
  318. package/dist/common/range-slider-timeline-panel.js +43 -0
  319. package/dist/common/range-slider-timeline.d.ts +7 -0
  320. package/dist/common/range-slider-timeline.js +114 -0
  321. package/dist/common/range-slider.d.ts +42 -0
  322. package/dist/common/range-slider.js +309 -0
  323. package/dist/common/slider/mouse-event.d.ts +27 -0
  324. package/dist/common/slider/mouse-event.js +105 -0
  325. package/dist/common/slider/slider-bar-handle.d.ts +29 -0
  326. package/dist/common/slider/slider-bar-handle.js +91 -0
  327. package/dist/common/slider/slider-handle.d.ts +33 -0
  328. package/dist/common/slider/slider-handle.js +137 -0
  329. package/dist/common/slider/slider.d.ts +72 -0
  330. package/dist/common/slider/slider.js +209 -0
  331. package/dist/common/styled-components.d.ts +159 -0
  332. package/dist/common/styled-components.js +398 -0
  333. package/dist/common/switch.d.ts +16 -0
  334. package/dist/common/switch.js +21 -0
  335. package/dist/common/sync-timeline-control.d.ts +28 -0
  336. package/dist/common/sync-timeline-control.js +61 -0
  337. package/dist/common/time-range-slider-time-title.d.ts +9 -0
  338. package/dist/common/time-range-slider-time-title.js +62 -0
  339. package/dist/common/time-range-slider.d.ts +42 -0
  340. package/dist/common/time-range-slider.js +132 -0
  341. package/dist/common/time-slider-marker.d.ts +14 -0
  342. package/dist/common/time-slider-marker.js +116 -0
  343. package/dist/common/timeline-slider.d.ts +13 -0
  344. package/dist/common/timeline-slider.js +132 -0
  345. package/dist/common/tippy-tooltip.d.ts +6 -0
  346. package/dist/common/tippy-tooltip.js +135 -0
  347. package/dist/common/toolbar-item.d.ts +14 -0
  348. package/dist/common/toolbar-item.js +60 -0
  349. package/dist/common/toolbar.d.ts +5 -0
  350. package/dist/common/toolbar.js +27 -0
  351. package/dist/common/vertical-toolbar.d.ts +3 -0
  352. package/dist/common/vertical-toolbar.js +16 -0
  353. package/dist/connect/keplergl-connect.d.ts +9 -0
  354. package/dist/connect/keplergl-connect.js +44 -0
  355. package/dist/connect/with-local-selector.d.ts +6 -0
  356. package/dist/connect/with-local-selector.js +86 -0
  357. package/dist/container.d.ts +39 -0
  358. package/dist/container.js +181 -0
  359. package/dist/context.d.ts +27 -0
  360. package/dist/context.js +44 -0
  361. package/dist/dnd-context.d.ts +13 -0
  362. package/dist/dnd-context.js +124 -0
  363. package/dist/editor/editor.d.ts +31 -0
  364. package/dist/editor/editor.js +201 -0
  365. package/dist/editor/feature-action-panel.d.ts +32 -0
  366. package/dist/editor/feature-action-panel.js +148 -0
  367. package/dist/effects/compact-color-picker.d.ts +10 -0
  368. package/dist/effects/compact-color-picker.js +111 -0
  369. package/dist/effects/effect-configurator.d.ts +17 -0
  370. package/dist/effects/effect-configurator.js +275 -0
  371. package/dist/effects/effect-list.d.ts +20 -0
  372. package/dist/effects/effect-list.js +129 -0
  373. package/dist/effects/effect-manager.d.ts +27 -0
  374. package/dist/effects/effect-manager.js +120 -0
  375. package/dist/effects/effect-panel-header.d.ts +45 -0
  376. package/dist/effects/effect-panel-header.js +180 -0
  377. package/dist/effects/effect-panel.d.ts +24 -0
  378. package/dist/effects/effect-panel.js +112 -0
  379. package/dist/effects/effect-time-configurator.d.ts +20 -0
  380. package/dist/effects/effect-time-configurator.js +302 -0
  381. package/dist/effects/effect-time-selector.d.ts +16 -0
  382. package/dist/effects/effect-time-selector.js +153 -0
  383. package/dist/effects/effect-time-slider.d.ts +34 -0
  384. package/dist/effects/effect-time-slider.js +199 -0
  385. package/dist/effects/effect-type-dropdown-list.d.ts +18 -0
  386. package/dist/effects/effect-type-dropdown-list.js +66 -0
  387. package/dist/effects/effect-type-list-item.d.ts +22 -0
  388. package/dist/effects/effect-type-list-item.js +87 -0
  389. package/dist/effects/effect-type-selector.d.ts +30 -0
  390. package/dist/effects/effect-type-selector.js +77 -0
  391. package/dist/effects/side-panel-title.d.ts +7 -0
  392. package/dist/effects/side-panel-title.js +37 -0
  393. package/dist/effects/timezone-selector.d.ts +19 -0
  394. package/dist/effects/timezone-selector.js +58 -0
  395. package/dist/filter-animation-controller.d.ts +17 -0
  396. package/dist/filter-animation-controller.js +77 -0
  397. package/dist/filters/components.d.ts +3 -0
  398. package/dist/filters/components.js +14 -0
  399. package/dist/filters/filter-panels/filter-panel-with-field-select.d.ts +10 -0
  400. package/dist/filters/filter-panels/filter-panel-with-field-select.js +78 -0
  401. package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +54 -0
  402. package/dist/filters/filter-panels/filter-synced-dataset-panel.js +261 -0
  403. package/dist/filters/filter-panels/multi-select-filter-panel.d.ts +9 -0
  404. package/dist/filters/filter-panels/multi-select-filter-panel.js +49 -0
  405. package/dist/filters/filter-panels/new-filter-panel.d.ts +12 -0
  406. package/dist/filters/filter-panels/new-filter-panel.js +67 -0
  407. package/dist/filters/filter-panels/polygon-filter-panel.d.ts +9 -0
  408. package/dist/filters/filter-panels/polygon-filter-panel.js +68 -0
  409. package/dist/filters/filter-panels/range-filter-panel.d.ts +9 -0
  410. package/dist/filters/filter-panels/range-filter-panel.js +54 -0
  411. package/dist/filters/filter-panels/single-select-filter-panel.d.ts +9 -0
  412. package/dist/filters/filter-panels/single-select-filter-panel.js +49 -0
  413. package/dist/filters/filter-panels/time-range-filter-panel.d.ts +12 -0
  414. package/dist/filters/filter-panels/time-range-filter-panel.js +130 -0
  415. package/dist/filters/filter-panels/time-synced-field-selector.d.ts +7 -0
  416. package/dist/filters/filter-panels/time-synced-field-selector.js +28 -0
  417. package/dist/filters/filter-panels/types.d.ts +40 -0
  418. package/dist/filters/filter-panels/types.js +6 -0
  419. package/dist/filters/index.d.ts +7 -0
  420. package/dist/filters/index.js +56 -0
  421. package/dist/filters/multi-select-filter.d.ts +3 -0
  422. package/dist/filters/multi-select-filter.js +31 -0
  423. package/dist/filters/polygon-filter.d.ts +4 -0
  424. package/dist/filters/polygon-filter.js +77 -0
  425. package/dist/filters/range-filter.d.ts +8 -0
  426. package/dist/filters/range-filter.js +35 -0
  427. package/dist/filters/single-select-filter.d.ts +3 -0
  428. package/dist/filters/single-select-filter.js +40 -0
  429. package/dist/filters/time-range-filter.d.ts +35 -0
  430. package/dist/filters/time-range-filter.js +67 -0
  431. package/dist/filters/time-widget-top.d.ts +8 -0
  432. package/dist/filters/time-widget-top.js +88 -0
  433. package/dist/filters/time-widget.d.ts +10 -0
  434. package/dist/filters/time-widget.js +101 -0
  435. package/dist/filters/types.d.ts +67 -0
  436. package/dist/filters/types.js +6 -0
  437. package/dist/geocoder/geocoder.d.ts +31 -0
  438. package/dist/geocoder/geocoder.js +269 -0
  439. package/dist/geocoder-panel.d.ts +22 -0
  440. package/dist/geocoder-panel.js +197 -0
  441. package/dist/hooks/use-cloud-list-provider.d.ts +11 -0
  442. package/dist/hooks/use-cloud-list-provider.js +47 -0
  443. package/dist/hooks/use-dnd-effects.d.ts +9 -0
  444. package/dist/hooks/use-dnd-effects.js +69 -0
  445. package/dist/hooks/use-dnd-layers.d.ts +9 -0
  446. package/dist/hooks/use-dnd-layers.js +80 -0
  447. package/dist/hooks/use-feature-flags.d.ts +5 -0
  448. package/dist/hooks/use-feature-flags.js +17 -0
  449. package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +16 -0
  450. package/dist/hooks/use-fetch-vector-tile-metadata.js +109 -0
  451. package/dist/hooks/use-on-click-outside.d.ts +2 -0
  452. package/dist/hooks/use-on-click-outside.js +36 -0
  453. package/dist/index.d.ts +253 -0
  454. package/dist/index.js +2608 -0
  455. package/dist/injector.d.ts +29 -0
  456. package/dist/injector.js +151 -0
  457. package/dist/kepler-gl.d.ts +325 -0
  458. package/dist/kepler-gl.js +504 -0
  459. package/dist/layer-animation-controller.d.ts +13 -0
  460. package/dist/layer-animation-controller.js +54 -0
  461. package/dist/map/coordinate-info.d.ts +7 -0
  462. package/dist/map/coordinate-info.js +42 -0
  463. package/dist/map/effects/effect-control.d.ts +16 -0
  464. package/dist/map/effects/effect-control.js +52 -0
  465. package/dist/map/layer-hover-info.d.ts +29 -0
  466. package/dist/map/layer-hover-info.js +222 -0
  467. package/dist/map/layer-selector-panel.d.ts +21 -0
  468. package/dist/map/layer-selector-panel.js +85 -0
  469. package/dist/map/lazy-tippy.d.ts +8 -0
  470. package/dist/map/lazy-tippy.js +61 -0
  471. package/dist/map/locale-panel.d.ts +16 -0
  472. package/dist/map/locale-panel.js +77 -0
  473. package/dist/map/map-control-panel.d.ts +20 -0
  474. package/dist/map/map-control-panel.js +139 -0
  475. package/dist/map/map-control-toolbar.d.ts +2 -0
  476. package/dist/map/map-control-toolbar.js +18 -0
  477. package/dist/map/map-control-tooltip.d.ts +8 -0
  478. package/dist/map/map-control-tooltip.js +34 -0
  479. package/dist/map/map-control.d.ts +56 -0
  480. package/dist/map/map-control.js +71 -0
  481. package/dist/map/map-draw-panel.d.ts +20 -0
  482. package/dist/map/map-draw-panel.js +98 -0
  483. package/dist/map/map-legend-panel.d.ts +65 -0
  484. package/dist/map/map-legend-panel.js +155 -0
  485. package/dist/map/map-legend.d.ts +90 -0
  486. package/dist/map/map-legend.js +369 -0
  487. package/dist/map/map-popover-content.d.ts +28 -0
  488. package/dist/map/map-popover-content.js +28 -0
  489. package/dist/map/map-popover.d.ts +33 -0
  490. package/dist/map/map-popover.js +185 -0
  491. package/dist/map/split-map-button.d.ts +20 -0
  492. package/dist/map/split-map-button.js +65 -0
  493. package/dist/map/toggle-3d-button.d.ts +17 -0
  494. package/dist/map/toggle-3d-button.js +55 -0
  495. package/dist/map-container.d.ts +73 -0
  496. package/dist/map-container.js +903 -0
  497. package/dist/map-view-state-context.d.ts +17 -0
  498. package/dist/map-view-state-context.js +99 -0
  499. package/dist/maps-layout.d.ts +12 -0
  500. package/dist/maps-layout.js +43 -0
  501. package/dist/modal-container.d.ts +59 -0
  502. package/dist/modal-container.js +434 -0
  503. package/dist/modals/add-map-style-modal.d.ts +17 -0
  504. package/dist/modals/add-map-style-modal.js +198 -0
  505. package/dist/modals/cloud-components/cloud-header.d.ts +12 -0
  506. package/dist/modals/cloud-components/cloud-header.js +60 -0
  507. package/dist/modals/cloud-components/cloud-item.d.ts +5 -0
  508. package/dist/modals/cloud-components/cloud-item.js +59 -0
  509. package/dist/modals/cloud-components/cloud-item.spec.d.ts +1 -0
  510. package/dist/modals/cloud-components/cloud-item.spec.js +92 -0
  511. package/dist/modals/cloud-components/cloud-maps.d.ts +8 -0
  512. package/dist/modals/cloud-components/cloud-maps.js +47 -0
  513. package/dist/modals/cloud-components/cloud-maps.spec.d.ts +1 -0
  514. package/dist/modals/cloud-components/cloud-maps.spec.js +98 -0
  515. package/dist/modals/cloud-components/provider-loading.d.ts +2 -0
  516. package/dist/modals/cloud-components/provider-loading.js +20 -0
  517. package/dist/modals/cloud-components/provider-select.d.ts +7 -0
  518. package/dist/modals/cloud-components/provider-select.js +30 -0
  519. package/dist/modals/cloud-tile.d.ts +15 -0
  520. package/dist/modals/cloud-tile.js +203 -0
  521. package/dist/modals/data-table-modal.d.ts +37 -0
  522. package/dist/modals/data-table-modal.js +264 -0
  523. package/dist/modals/delete-data-modal.d.ts +10 -0
  524. package/dist/modals/delete-data-modal.js +41 -0
  525. package/dist/modals/error-display.d.ts +6 -0
  526. package/dist/modals/error-display.js +33 -0
  527. package/dist/modals/export-data-modal.d.ts +23 -0
  528. package/dist/modals/export-data-modal.js +187 -0
  529. package/dist/modals/export-image-modal.d.ts +16 -0
  530. package/dist/modals/export-image-modal.js +122 -0
  531. package/dist/modals/export-map-modal/components.d.ts +8 -0
  532. package/dist/modals/export-map-modal/components.js +34 -0
  533. package/dist/modals/export-map-modal/export-html-map.d.ts +12 -0
  534. package/dist/modals/export-map-modal/export-html-map.js +126 -0
  535. package/dist/modals/export-map-modal/export-json-map.d.ts +9 -0
  536. package/dist/modals/export-map-modal/export-json-map.js +81 -0
  537. package/dist/modals/export-map-modal/export-map-modal.d.ts +27 -0
  538. package/dist/modals/export-map-modal/export-map-modal.js +84 -0
  539. package/dist/modals/image-modal-container.d.ts +16 -0
  540. package/dist/modals/image-modal-container.js +58 -0
  541. package/dist/modals/load-data-modal.d.ts +44 -0
  542. package/dist/modals/load-data-modal.js +98 -0
  543. package/dist/modals/load-storage-map.d.ts +9 -0
  544. package/dist/modals/load-storage-map.js +80 -0
  545. package/dist/modals/load-storage-map.spec.d.ts +1 -0
  546. package/dist/modals/load-storage-map.spec.js +216 -0
  547. package/dist/modals/loading-dialog.d.ts +7 -0
  548. package/dist/modals/loading-dialog.js +37 -0
  549. package/dist/modals/modal-dialog.d.ts +2 -0
  550. package/dist/modals/modal-dialog.js +16 -0
  551. package/dist/modals/modal-tabs.d.ts +15 -0
  552. package/dist/modals/modal-tabs.js +75 -0
  553. package/dist/modals/overwrite-map-modal.d.ts +16 -0
  554. package/dist/modals/overwrite-map-modal.js +84 -0
  555. package/dist/modals/save-map-modal.d.ts +28 -0
  556. package/dist/modals/save-map-modal.js +179 -0
  557. package/dist/modals/save-map-modal.spec.d.ts +1 -0
  558. package/dist/modals/save-map-modal.spec.js +195 -0
  559. package/dist/modals/share-map-modal.d.ts +26 -0
  560. package/dist/modals/share-map-modal.js +169 -0
  561. package/dist/modals/share-map-modal.spec.d.ts +1 -0
  562. package/dist/modals/share-map-modal.spec.js +173 -0
  563. package/dist/modals/status-panel.d.ts +13 -0
  564. package/dist/modals/status-panel.js +65 -0
  565. package/dist/modals/storage-map-viewer.d.ts +21 -0
  566. package/dist/modals/storage-map-viewer.js +98 -0
  567. package/dist/modals/tilesets-modals/common.d.ts +12 -0
  568. package/dist/modals/tilesets-modals/common.js +6 -0
  569. package/dist/modals/tilesets-modals/load-data-footer.d.ts +11 -0
  570. package/dist/modals/tilesets-modals/load-data-footer.js +41 -0
  571. package/dist/modals/tilesets-modals/load-tileset.d.ts +16 -0
  572. package/dist/modals/tilesets-modals/load-tileset.js +114 -0
  573. package/dist/modals/tilesets-modals/tileset-icon.d.ts +9 -0
  574. package/dist/modals/tilesets-modals/tileset-icon.js +32 -0
  575. package/dist/modals/tilesets-modals/tileset-vector-form.d.ts +13 -0
  576. package/dist/modals/tilesets-modals/tileset-vector-form.js +165 -0
  577. package/dist/notification-panel/notification-item.d.ts +67 -0
  578. package/dist/notification-panel/notification-item.js +150 -0
  579. package/dist/notification-panel.d.ts +13 -0
  580. package/dist/notification-panel.js +61 -0
  581. package/dist/plot-container.d.ts +24 -0
  582. package/dist/plot-container.js +223 -0
  583. package/dist/side-panel/add-by-dataset-button.d.ts +12 -0
  584. package/dist/side-panel/add-by-dataset-button.js +128 -0
  585. package/dist/side-panel/cloud-storage-dropdown.d.ts +6 -0
  586. package/dist/side-panel/cloud-storage-dropdown.js +40 -0
  587. package/dist/side-panel/common/dataset-info.d.ts +11 -0
  588. package/dist/side-panel/common/dataset-info.js +34 -0
  589. package/dist/side-panel/common/dataset-tag.d.ts +17 -0
  590. package/dist/side-panel/common/dataset-tag.js +62 -0
  591. package/dist/side-panel/common/dataset-title.d.ts +22 -0
  592. package/dist/side-panel/common/dataset-title.js +143 -0
  593. package/dist/side-panel/common/source-data-catalog.d.ts +29 -0
  594. package/dist/side-panel/common/source-data-catalog.js +49 -0
  595. package/dist/side-panel/common/source-data-selector-content.d.ts +8 -0
  596. package/dist/side-panel/common/source-data-selector-content.js +65 -0
  597. package/dist/side-panel/common/source-data-selector.d.ts +8 -0
  598. package/dist/side-panel/common/source-data-selector.js +41 -0
  599. package/dist/side-panel/common/source-selector.d.ts +21 -0
  600. package/dist/side-panel/common/source-selector.js +57 -0
  601. package/dist/side-panel/common/types.d.ts +44 -0
  602. package/dist/side-panel/common/types.js +6 -0
  603. package/dist/side-panel/custom-panel.d.ts +13 -0
  604. package/dist/side-panel/custom-panel.js +39 -0
  605. package/dist/side-panel/filter-manager.d.ts +32 -0
  606. package/dist/side-panel/filter-manager.js +203 -0
  607. package/dist/side-panel/filter-panel/add-filter-button.d.ts +8 -0
  608. package/dist/side-panel/filter-panel/add-filter-button.js +28 -0
  609. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +26 -0
  610. package/dist/side-panel/filter-panel/filter-panel-header.js +53 -0
  611. package/dist/side-panel/filter-panel/filter-panel.d.ts +23 -0
  612. package/dist/side-panel/filter-panel/filter-panel.js +93 -0
  613. package/dist/side-panel/interaction-manager.d.ts +18 -0
  614. package/dist/side-panel/interaction-manager.js +45 -0
  615. package/dist/side-panel/interaction-panel/brush-config.d.ts +15 -0
  616. package/dist/side-panel/interaction-panel/brush-config.js +41 -0
  617. package/dist/side-panel/interaction-panel/interaction-panel.d.ts +20 -0
  618. package/dist/side-panel/interaction-panel/interaction-panel.js +115 -0
  619. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +30 -0
  620. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +162 -0
  621. package/dist/side-panel/interaction-panel/tooltip-config.d.ts +37 -0
  622. package/dist/side-panel/interaction-panel/tooltip-config.js +150 -0
  623. package/dist/side-panel/layer-manager.d.ts +44 -0
  624. package/dist/side-panel/layer-manager.js +200 -0
  625. package/dist/side-panel/layer-panel/add-layer-button.d.ts +8 -0
  626. package/dist/side-panel/layer-panel/add-layer-button.js +28 -0
  627. package/dist/side-panel/layer-panel/aggr-scale-selector.d.ts +13 -0
  628. package/dist/side-panel/layer-panel/aggr-scale-selector.js +35 -0
  629. package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +26 -0
  630. package/dist/side-panel/layer-panel/channel-by-value-selector.js +68 -0
  631. package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +33 -0
  632. package/dist/side-panel/layer-panel/color-breaks-panel.js +153 -0
  633. package/dist/side-panel/layer-panel/color-palette-preset.d.ts +9 -0
  634. package/dist/side-panel/layer-panel/color-palette-preset.js +45 -0
  635. package/dist/side-panel/layer-panel/color-palette.d.ts +12 -0
  636. package/dist/side-panel/layer-panel/color-palette.js +69 -0
  637. package/dist/side-panel/layer-panel/color-range-selector.d.ts +39 -0
  638. package/dist/side-panel/layer-panel/color-range-selector.js +244 -0
  639. package/dist/side-panel/layer-panel/color-scale-selector.d.ts +35 -0
  640. package/dist/side-panel/layer-panel/color-scale-selector.js +191 -0
  641. package/dist/side-panel/layer-panel/color-selector.d.ts +34 -0
  642. package/dist/side-panel/layer-panel/color-selector.js +167 -0
  643. package/dist/side-panel/layer-panel/column-selector.d.ts +18 -0
  644. package/dist/side-panel/layer-panel/column-selector.js +60 -0
  645. package/dist/side-panel/layer-panel/custom-palette.d.ts +77 -0
  646. package/dist/side-panel/layer-panel/custom-palette.js +427 -0
  647. package/dist/side-panel/layer-panel/custom-picker.d.ts +8 -0
  648. package/dist/side-panel/layer-panel/custom-picker.js +71 -0
  649. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +23 -0
  650. package/dist/side-panel/layer-panel/dataset-layer-group.js +67 -0
  651. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +25 -0
  652. package/dist/side-panel/layer-panel/dataset-layer-section.js +60 -0
  653. package/dist/side-panel/layer-panel/dataset-section.d.ts +23 -0
  654. package/dist/side-panel/layer-panel/dataset-section.js +74 -0
  655. package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +23 -0
  656. package/dist/side-panel/layer-panel/dimension-scale-selector.js +90 -0
  657. package/dist/side-panel/layer-panel/how-to-button.d.ts +6 -0
  658. package/dist/side-panel/layer-panel/how-to-button.js +27 -0
  659. package/dist/side-panel/layer-panel/layer-color-selector.d.ts +42 -0
  660. package/dist/side-panel/layer-panel/layer-color-selector.js +106 -0
  661. package/dist/side-panel/layer-panel/layer-column-config.d.ts +24 -0
  662. package/dist/side-panel/layer-panel/layer-column-config.js +86 -0
  663. package/dist/side-panel/layer-panel/layer-column-mode-config.d.ts +47 -0
  664. package/dist/side-panel/layer-panel/layer-column-mode-config.js +193 -0
  665. package/dist/side-panel/layer-panel/layer-config-group.d.ts +44 -0
  666. package/dist/side-panel/layer-panel/layer-config-group.js +141 -0
  667. package/dist/side-panel/layer-panel/layer-configurator.d.ts +67 -0
  668. package/dist/side-panel/layer-panel/layer-configurator.js +644 -0
  669. package/dist/side-panel/layer-panel/layer-error-message.d.ts +6 -0
  670. package/dist/side-panel/layer-panel/layer-error-message.js +29 -0
  671. package/dist/side-panel/layer-panel/layer-list.d.ts +21 -0
  672. package/dist/side-panel/layer-panel/layer-list.js +170 -0
  673. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +73 -0
  674. package/dist/side-panel/layer-panel/layer-panel-header.js +274 -0
  675. package/dist/side-panel/layer-panel/layer-panel.d.ts +39 -0
  676. package/dist/side-panel/layer-panel/layer-panel.js +162 -0
  677. package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +22 -0
  678. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +78 -0
  679. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +22 -0
  680. package/dist/side-panel/layer-panel/layer-type-list-item.js +67 -0
  681. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +22 -0
  682. package/dist/side-panel/layer-panel/layer-type-selector.js +58 -0
  683. package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +11 -0
  684. package/dist/side-panel/layer-panel/radius-by-zoom-input.js +220 -0
  685. package/dist/side-panel/layer-panel/single-color-palette.d.ts +8 -0
  686. package/dist/side-panel/layer-panel/single-color-palette.js +86 -0
  687. package/dist/side-panel/layer-panel/text-label-panel.d.ts +17 -0
  688. package/dist/side-panel/layer-panel/text-label-panel.js +165 -0
  689. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +22 -0
  690. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +86 -0
  691. package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +24 -0
  692. package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +60 -0
  693. package/dist/side-panel/layer-panel/vis-config-slider.d.ts +20 -0
  694. package/dist/side-panel/layer-panel/vis-config-slider.js +159 -0
  695. package/dist/side-panel/layer-panel/vis-config-switch.d.ts +16 -0
  696. package/dist/side-panel/layer-panel/vis-config-switch.js +55 -0
  697. package/dist/side-panel/map-manager.d.ts +27 -0
  698. package/dist/side-panel/map-manager.js +127 -0
  699. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +14 -0
  700. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +77 -0
  701. package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +29 -0
  702. package/dist/side-panel/map-style-panel/map-layer-group-item.js +95 -0
  703. package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +23 -0
  704. package/dist/side-panel/map-style-panel/map-layer-selector.js +74 -0
  705. package/dist/side-panel/map-style-panel/map-style-selector.d.ts +23 -0
  706. package/dist/side-panel/map-style-panel/map-style-selector.js +96 -0
  707. package/dist/side-panel/panel-header-action.d.ts +22 -0
  708. package/dist/side-panel/panel-header-action.js +73 -0
  709. package/dist/side-panel/panel-header.d.ts +91 -0
  710. package/dist/side-panel/panel-header.js +303 -0
  711. package/dist/side-panel/panel-tab.d.ts +20 -0
  712. package/dist/side-panel/panel-tab.js +55 -0
  713. package/dist/side-panel/panel-title.d.ts +7 -0
  714. package/dist/side-panel/panel-title.js +40 -0
  715. package/dist/side-panel/panel-toggle.d.ts +13 -0
  716. package/dist/side-panel/panel-toggle.js +48 -0
  717. package/dist/side-panel/panel-view-list-toggle.d.ts +31 -0
  718. package/dist/side-panel/panel-view-list-toggle.js +98 -0
  719. package/dist/side-panel/side-bar.d.ts +78 -0
  720. package/dist/side-panel/side-bar.js +127 -0
  721. package/dist/side-panel.d.ts +21 -0
  722. package/dist/side-panel.js +214 -0
  723. package/dist/types.d.ts +47 -0
  724. package/dist/types.js +6 -0
  725. package/package.json +19 -16
@@ -0,0 +1,90 @@
1
+ import React, { FC, ComponentType } from 'react';
2
+ import ColorLegendFactory, { LegendRowFactory } from '../common/color-legend';
3
+ import { Layer, LayerBaseConfig, VisualChannel, VisualChannelDescription } from '@kepler.gl/layers';
4
+ import { LayerVisConfig, MapState, RGBColor } from '@kepler.gl/types';
5
+ import PanelHeaderActionFactory from '../side-panel/panel-header-action';
6
+ interface StyledMapControlLegendProps {
7
+ width?: number;
8
+ last?: boolean;
9
+ }
10
+ export declare const StyledMapControlLegend: import("styled-components").StyledComponent<"div", any, StyledMapControlLegendProps, never>;
11
+ export declare const VisualChannelMetric: ({ name }: {
12
+ name: any;
13
+ }) => React.JSX.Element;
14
+ export declare type LayerSizeLegendProps = {
15
+ label: string;
16
+ name: string | undefined;
17
+ };
18
+ export declare const LayerDefaultLegend: React.FC<LayerSizeLegendProps>;
19
+ export declare type SingleColorLegendProps = {
20
+ color: RGBColor;
21
+ label?: string;
22
+ };
23
+ export declare function SingleColorLegendFactory(LegendRow: ReturnType<typeof LegendRowFactory>): React.NamedExoticComponent<SingleColorLegendProps>;
24
+ export declare namespace SingleColorLegendFactory {
25
+ var deps: (typeof LegendRowFactory)[];
26
+ }
27
+ export declare type LayerColorLegendProps = {
28
+ description: VisualChannelDescription;
29
+ config: LayerBaseConfig;
30
+ colorChannel: VisualChannel;
31
+ onLayerVisConfigChange?: (oldLayer: Layer, newVisConfig: Partial<LayerVisConfig>) => void;
32
+ layer: Layer;
33
+ disableEdit?: boolean;
34
+ isExport?: boolean;
35
+ mapState?: MapState;
36
+ actionIcons: MapLegendIcons;
37
+ };
38
+ export declare function LayerColorLegendFactory(ColorLegend: ReturnType<typeof ColorLegendFactory>, SingleColorLegend: ReturnType<typeof SingleColorLegendFactory>, PanelHeaderAction: ReturnType<typeof PanelHeaderActionFactory>): React.NamedExoticComponent<LayerColorLegendProps>;
39
+ export declare namespace LayerColorLegendFactory {
40
+ var deps: (typeof PanelHeaderActionFactory | typeof ColorLegendFactory | typeof SingleColorLegendFactory)[];
41
+ }
42
+ export declare type MapLegendIcons = {
43
+ expanded: ComponentType<any>;
44
+ collapsed: ComponentType<any>;
45
+ };
46
+ export declare type LayerRadiusLegendProps = {
47
+ layer: Layer;
48
+ mapState?: MapState;
49
+ width: number;
50
+ isExport?: boolean;
51
+ visualChannel: VisualChannel;
52
+ };
53
+ export declare const LayerRadiusLegend: FC<LayerRadiusLegendProps>;
54
+ export declare type LayerLegendHeaderProps = {
55
+ layer: Layer;
56
+ options?: {
57
+ showLayerName?: boolean;
58
+ };
59
+ };
60
+ export declare function LayerLegendHeaderFactory(): React.FC<LayerLegendHeaderProps>;
61
+ export declare type LayerLegendContentProps = {
62
+ layer: Layer;
63
+ containerW: number;
64
+ mapState?: MapState;
65
+ disableEdit?: boolean;
66
+ isExport?: boolean;
67
+ onLayerVisConfigChange?: (oldLayer: Layer, newVisConfig: Partial<LayerVisConfig>) => void;
68
+ actionIcons: MapLegendIcons;
69
+ };
70
+ export declare function LayerLegendContentFactory(LayerColorLegend: ReturnType<typeof LayerColorLegendFactory>): React.FC<LayerLegendContentProps>;
71
+ export declare namespace LayerLegendContentFactory {
72
+ var deps: (typeof LayerColorLegendFactory)[];
73
+ }
74
+ export declare type MapLegendProps = {
75
+ layers?: ReadonlyArray<Layer>;
76
+ width?: number;
77
+ mapState?: MapState;
78
+ options?: {
79
+ showLayerName?: boolean;
80
+ };
81
+ disableEdit?: boolean;
82
+ isExport?: boolean;
83
+ onLayerVisConfigChange?: (oldLayer: Layer, newVisConfig: Partial<LayerVisConfig>) => void;
84
+ actionIcons: MapLegendIcons;
85
+ };
86
+ declare function MapLegendFactory(LayerLegendHeader: ReturnType<typeof LayerLegendHeaderFactory>, LayerLegendContent: ReturnType<typeof LayerLegendContentFactory>): React.FC<MapLegendProps>;
87
+ declare namespace MapLegendFactory {
88
+ var deps: (typeof LayerLegendContentFactory | typeof LayerLegendHeaderFactory)[];
89
+ }
90
+ export default MapLegendFactory;
@@ -0,0 +1,369 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.LayerColorLegendFactory = LayerColorLegendFactory;
9
+ exports.LayerDefaultLegend = void 0;
10
+ exports.LayerLegendContentFactory = LayerLegendContentFactory;
11
+ exports.LayerLegendHeaderFactory = LayerLegendHeaderFactory;
12
+ exports.LayerRadiusLegend = void 0;
13
+ exports.SingleColorLegendFactory = SingleColorLegendFactory;
14
+ exports["default"] = exports.VisualChannelMetric = exports.StyledMapControlLegend = void 0;
15
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
18
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
20
+ var _react = _interopRequireWildcard(require("react"));
21
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
22
+ var _d3Color = require("d3-color");
23
+ var _reactIntl = require("react-intl");
24
+ var _colorLegend = _interopRequireWildcard(require("../common/color-legend"));
25
+ var _radiusLegend = _interopRequireDefault(require("../common/radius-legend"));
26
+ var _constants = require("@kepler.gl/constants");
27
+ var _localization = require("@kepler.gl/localization");
28
+ var _viewportMercatorProject = require("viewport-mercator-project");
29
+ var _icons = require("../common/icons");
30
+ var _panelHeaderAction = _interopRequireDefault(require("../side-panel/panel-header-action"));
31
+ var _templateObject; // SPDX-License-Identifier: MIT
32
+ // Copyright contributors to the kepler.gl project
33
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
34
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
35
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
36
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
37
+ var StyledMapControlLegend = exports.StyledMapControlLegend = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 10px ", "px 10px\n ", "px;\n font-size: 11px;\n font-family: ", ";\n border-bottom-color: ", ";\n border-bottom-style: solid;\n border-bottom-width: ", ";\n width: ", "px;\n box-sizing: border-box;\n\n .legend--layer_name {\n font-size: 12px;\n padding-right: ", "px;\n color: ", ";\n font-weight: 500;\n }\n .legend--layer_type {\n color: ", ";\n font-weight: 500;\n font-size: 11px;\n padding-right: ", "px;\n }\n\n .legend--layer_size-title-row {\n display: flex;\n margin-top: 4px;\n padding-right: ", "px;\n align-items: center;\n }\n\n .legend--layer__title {\n }\n\n .legend--layer__item {\n padding-bottom: 4px;\n }\n .legend--layer_by {\n color: ", ";\n margin-top: 4px;\n }\n\n .legend--layer_color_field {\n color: ", ";\n font-weight: 500;\n }\n\n .legend--layer_color-legend {\n margin-top: 6px;\n }\n"])), function (props) {
38
+ return props.theme.mapControl.padding;
39
+ }, function (props) {
40
+ return props.theme.mapControl.padding;
41
+ }, function (props) {
42
+ return props.theme.fontFamily;
43
+ }, function (props) {
44
+ return props.theme.panelBorderColor;
45
+ }, function (props) {
46
+ return props.last ? 0 : '1px';
47
+ }, function (props) {
48
+ return props.width;
49
+ }, function (props) {
50
+ return props.theme.mapControl.padding;
51
+ }, function (props) {
52
+ return props.theme.textColor;
53
+ }, function (props) {
54
+ return props.theme.subtextColor;
55
+ }, function (props) {
56
+ return props.theme.mapControl.padding;
57
+ }, function (props) {
58
+ return props.theme.mapControl.padding;
59
+ }, function (props) {
60
+ return props.theme.subtextColor;
61
+ }, function (props) {
62
+ return props.theme.textColorHl;
63
+ });
64
+ var VisualChannelMetric = exports.VisualChannelMetric = function VisualChannelMetric(_ref) {
65
+ var name = _ref.name;
66
+ return /*#__PURE__*/_react["default"].createElement("div", {
67
+ className: "legend--layer__title"
68
+ }, /*#__PURE__*/_react["default"].createElement("span", {
69
+ className: "legend--layer_color_field"
70
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
71
+ id: name
72
+ })));
73
+ };
74
+ var LayerDefaultLegend = exports.LayerDefaultLegend = function LayerDefaultLegend(_ref2) {
75
+ var label = _ref2.label,
76
+ name = _ref2.name;
77
+ return label ? /*#__PURE__*/_react["default"].createElement("div", {
78
+ className: "legend--layer_size-schema"
79
+ }, /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("span", {
80
+ className: "legend--layer_by"
81
+ }, label ? /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
82
+ id: label
83
+ }) : null), /*#__PURE__*/_react["default"].createElement("span", {
84
+ className: "legend--layer_by"
85
+ }, " by ")), name && /*#__PURE__*/_react["default"].createElement(VisualChannelMetric, {
86
+ name: name
87
+ })) : null;
88
+ };
89
+ SingleColorLegendFactory.deps = [_colorLegend.LegendRowFactory];
90
+ function SingleColorLegendFactory(LegendRow) {
91
+ var SingleColorLegend = function SingleColorLegend(_ref3) {
92
+ var color = _ref3.color,
93
+ label = _ref3.label;
94
+ return /*#__PURE__*/_react["default"].createElement(LegendRow, {
95
+ label: label !== null && label !== void 0 ? label : '',
96
+ displayLabel: Boolean(label),
97
+ color: Array.isArray(color) ? _d3Color.rgb.apply(void 0, (0, _toConsumableArray2["default"])(color)).toString() : color
98
+ });
99
+ };
100
+ SingleColorLegend.displayName = 'SingleColorLegend';
101
+ return /*#__PURE__*/_react["default"].memo(SingleColorLegend);
102
+ }
103
+ LayerColorLegendFactory.deps = [_colorLegend["default"], SingleColorLegendFactory, _panelHeaderAction["default"]];
104
+ function LayerColorLegendFactory(ColorLegend, SingleColorLegend, PanelHeaderAction) {
105
+ var LayerColorLegend = function LayerColorLegend(_ref4) {
106
+ var description = _ref4.description,
107
+ config = _ref4.config,
108
+ layer = _ref4.layer,
109
+ colorChannel = _ref4.colorChannel,
110
+ disableEdit = _ref4.disableEdit,
111
+ onLayerVisConfigChange = _ref4.onLayerVisConfigChange,
112
+ isExport = _ref4.isExport,
113
+ mapState = _ref4.mapState,
114
+ actionIcons = _ref4.actionIcons;
115
+ var intl = (0, _reactIntl.useIntl)();
116
+ var enableColorBy = description.measure;
117
+ var scale = colorChannel.scale,
118
+ field = colorChannel.field,
119
+ domain = colorChannel.domain,
120
+ range = colorChannel.range,
121
+ property = colorChannel.property,
122
+ fixed = colorChannel.fixed;
123
+ var _map = [scale, field, domain].map(function (k) {
124
+ return config[k];
125
+ }),
126
+ _map2 = (0, _slicedToArray2["default"])(_map, 3),
127
+ colorScale = _map2[0],
128
+ colorField = _map2[1],
129
+ colorDomain = _map2[2];
130
+ var isFixed = fixed && config.visConfig[fixed];
131
+ var colorRange = config.visConfig[range];
132
+ var onUpdateColorLegend = (0, _react.useCallback)(function (colorLegends) {
133
+ if (onLayerVisConfigChange) {
134
+ onLayerVisConfigChange(layer, (0, _defineProperty2["default"])({}, range, _objectSpread(_objectSpread({}, colorRange), {}, {
135
+ colorLegends: colorLegends
136
+ })));
137
+ }
138
+ }, [layer, onLayerVisConfigChange, colorRange, range]);
139
+ var _useState = (0, _react.useState)(isExport),
140
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
141
+ isExpanded = _useState2[0],
142
+ setIsExpanded = _useState2[1];
143
+ var handleToggleExpanded = function handleToggleExpanded() {
144
+ return setIsExpanded(!isExpanded);
145
+ };
146
+ return /*#__PURE__*/_react["default"].createElement("div", {
147
+ className: "legend--layer__item"
148
+ }, /*#__PURE__*/_react["default"].createElement("div", {
149
+ className: "legend--layer_color-schema"
150
+ }, /*#__PURE__*/_react["default"].createElement("div", null, enableColorBy ? /*#__PURE__*/_react["default"].createElement("div", {
151
+ className: "legend--layer_size-title-row"
152
+ }, /*#__PURE__*/_react["default"].createElement(VisualChannelMetric, {
153
+ name: enableColorBy
154
+ }), !isExport ? /*#__PURE__*/_react["default"].createElement(PanelHeaderAction, {
155
+ id: "legend-collapse-button",
156
+ onClick: handleToggleExpanded,
157
+ IconComponent: isExpanded ? actionIcons.expanded : actionIcons.collapsed
158
+ }) : null) : null, /*#__PURE__*/_react["default"].createElement("div", {
159
+ className: "legend--layer_color-legend"
160
+ }, enableColorBy ? /*#__PURE__*/_react["default"].createElement(ColorLegend, {
161
+ layer: layer,
162
+ isExpanded: isExpanded,
163
+ scaleType: colorScale,
164
+ displayLabel: true,
165
+ domain: colorDomain,
166
+ fieldType: colorField && colorField.type || 'real',
167
+ range: colorRange,
168
+ onUpdateColorLegend: onUpdateColorLegend,
169
+ disableEdit: disableEdit,
170
+ isFixed: isFixed,
171
+ mapState: mapState
172
+ }) : /*#__PURE__*/_react["default"].createElement(SingleColorLegend, {
173
+ color: config.visConfig[property] || config[property] || config.color,
174
+ label: intl.formatMessage({
175
+ id: "mapLegend.layers.".concat(layer.type, ".singleColor.").concat(colorChannel.key),
176
+ defaultMessage: intl.formatMessage({
177
+ id: "mapLegend.layers.default.singleColor.".concat(colorChannel.key),
178
+ defaultMessage: ' ' // mustn't be empty string or id will be used
179
+ })
180
+ })
181
+ })))));
182
+ };
183
+ LayerColorLegend.displayName = 'LayerColorLegend';
184
+ return /*#__PURE__*/_react["default"].memo(LayerColorLegend);
185
+ }
186
+ function getLayerRadiusScaleMetersToPixelsMultiplier(layer, mapState) {
187
+ // @ts-ignore this actually exist
188
+ var _getDistanceScales = (0, _viewportMercatorProject.getDistanceScales)(mapState),
189
+ metersPerPixel = _getDistanceScales.metersPerPixel;
190
+ // if no field size is defined we need to pass fixed radius = false
191
+ var fixedRadius = layer.config.visConfig.fixedRadius && Boolean(layer.config.sizeField);
192
+ return layer.getRadiusScaleByZoom(mapState, fixedRadius) / metersPerPixel[0];
193
+ }
194
+ var LayerRadiusLegend = exports.LayerRadiusLegend = /*#__PURE__*/_react["default"].memo(function (_ref5) {
195
+ var layer = _ref5.layer,
196
+ width = _ref5.width,
197
+ visualChannel = _ref5.visualChannel,
198
+ mapState = _ref5.mapState;
199
+ var description = layer.getVisualChannelDescription(visualChannel.key);
200
+ var config = layer.config;
201
+ var enableSizeBy = description.measure;
202
+ var scale = visualChannel.scale,
203
+ field = visualChannel.field,
204
+ domain = visualChannel.domain,
205
+ range = visualChannel.range;
206
+ var _map3 = [scale, field, domain].map(function (k) {
207
+ return config[k];
208
+ }),
209
+ _map4 = (0, _slicedToArray2["default"])(_map3, 3),
210
+ sizeScale = _map4[0],
211
+ sizeField = _map4[1],
212
+ sizeDomain = _map4[2];
213
+ var sizeRange = config.visConfig[range];
214
+ if (mapState) {
215
+ var radiusMultiplier = getLayerRadiusScaleMetersToPixelsMultiplier(layer, mapState);
216
+ sizeRange = sizeRange.map(function (v) {
217
+ return v * radiusMultiplier;
218
+ });
219
+ }
220
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
221
+ className: "legend--layer_size-schema"
222
+ }, /*#__PURE__*/_react["default"].createElement("div", null, enableSizeBy ? /*#__PURE__*/_react["default"].createElement(VisualChannelMetric, {
223
+ name: enableSizeBy
224
+ }) : null, /*#__PURE__*/_react["default"].createElement("div", {
225
+ className: "legend--layer_size-legend"
226
+ }, enableSizeBy ? /*#__PURE__*/_react["default"].createElement(_radiusLegend["default"], {
227
+ scaleType: sizeScale,
228
+ domain: sizeDomain,
229
+ fieldType: sizeField && sizeField.type || 'real',
230
+ range: sizeRange,
231
+ width: width
232
+ }) : null))));
233
+ });
234
+ var isColorChannel = function isColorChannel(visualChannel) {
235
+ return [_constants.CHANNEL_SCALES.color, _constants.CHANNEL_SCALES.colorAggr].includes(visualChannel.channelScaleType);
236
+ };
237
+ var isRadiusChannel = function isRadiusChannel(visualChannel) {
238
+ return [_constants.CHANNEL_SCALES.radius].includes(visualChannel.channelScaleType);
239
+ };
240
+ function LayerLegendHeaderFactory() {
241
+ var LayerLegendHeader = function LayerLegendHeader(_ref6) {
242
+ var options = _ref6.options,
243
+ layer = _ref6.layer;
244
+ return (options === null || options === void 0 ? void 0 : options.showLayerName) !== false ? /*#__PURE__*/_react["default"].createElement("div", {
245
+ className: "legend--layer_name"
246
+ }, layer.config.label) : null;
247
+ };
248
+ return LayerLegendHeader;
249
+ }
250
+ var defaultActionIcons = {
251
+ expanded: _icons.ArrowDown,
252
+ collapsed: _icons.ArrowRight
253
+ };
254
+ LayerLegendContentFactory.deps = [LayerColorLegendFactory];
255
+ function LayerLegendContentFactory(LayerColorLegend) {
256
+ var LayerLegendContent = function LayerLegendContent(_ref7) {
257
+ var layer = _ref7.layer,
258
+ containerW = _ref7.containerW,
259
+ mapState = _ref7.mapState,
260
+ disableEdit = _ref7.disableEdit,
261
+ isExport = _ref7.isExport,
262
+ onLayerVisConfigChange = _ref7.onLayerVisConfigChange,
263
+ actionIcons = _ref7.actionIcons;
264
+ var visualChannels = layer.getLegendVisualChannels();
265
+ var channelKeys = Object.values(visualChannels);
266
+ var colorChannels = channelKeys.filter(isColorChannel);
267
+ var nonColorChannels = channelKeys.filter(function (vc) {
268
+ return !isColorChannel(vc);
269
+ });
270
+ var width = containerW - 2 * _constants.DIMENSIONS.mapControl.padding;
271
+
272
+ // render color by chanel only
273
+ var colorChannelToRender = colorChannels.filter(function (cc) {
274
+ var _layer$getVisualChann;
275
+ return (!cc.condition || cc.condition(layer.config)) && ((_layer$getVisualChann = layer.getVisualChannelDescription(cc.key)) === null || _layer$getVisualChann === void 0 ? void 0 : _layer$getVisualChann.measure);
276
+ });
277
+ // if no color by chanel, render rest
278
+ if (!colorChannelToRender.length) {
279
+ colorChannelToRender = colorChannels.filter(function (cc) {
280
+ return !cc.condition || cc.condition(layer.config);
281
+ });
282
+ }
283
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, colorChannelToRender.map(function (colorChannel) {
284
+ return /*#__PURE__*/_react["default"].createElement(LayerColorLegend, {
285
+ key: colorChannel.key,
286
+ colorChannel: colorChannel,
287
+ config: layer.config,
288
+ description: layer.getVisualChannelDescription(colorChannel.key),
289
+ layer: layer,
290
+ isExport: isExport,
291
+ disableEdit: disableEdit,
292
+ mapState: mapState,
293
+ onLayerVisConfigChange: onLayerVisConfigChange,
294
+ actionIcons: actionIcons
295
+ });
296
+ }), nonColorChannels.map(function (visualChannel) {
297
+ var matchCondition = !visualChannel.condition || visualChannel.condition(layer.config);
298
+ var enabled = layer.config[visualChannel.field] || visualChannel.defaultMeasure;
299
+ if (matchCondition && enabled) {
300
+ var description = layer.getVisualChannelDescription(visualChannel.key);
301
+ if (isRadiusChannel(visualChannel)) {
302
+ return /*#__PURE__*/_react["default"].createElement(LayerRadiusLegend, {
303
+ key: visualChannel.key,
304
+ layer: layer,
305
+ mapState: mapState,
306
+ width: width,
307
+ visualChannel: visualChannel
308
+ });
309
+ }
310
+ return /*#__PURE__*/_react["default"].createElement(LayerDefaultLegend, {
311
+ key: visualChannel.key,
312
+ label: description.label,
313
+ name: description.measure
314
+ });
315
+ }
316
+ return null;
317
+ }));
318
+ };
319
+ return LayerLegendContent;
320
+ }
321
+ MapLegendFactory.deps = [LayerLegendHeaderFactory, LayerLegendContentFactory];
322
+ function MapLegendFactory(LayerLegendHeader, LayerLegendContent) {
323
+ var MapLegend = function MapLegend(_ref8) {
324
+ var _ref8$layers = _ref8.layers,
325
+ layers = _ref8$layers === void 0 ? [] : _ref8$layers,
326
+ width = _ref8.width,
327
+ mapState = _ref8.mapState,
328
+ options = _ref8.options,
329
+ disableEdit = _ref8.disableEdit,
330
+ isExport = _ref8.isExport,
331
+ onLayerVisConfigChange = _ref8.onLayerVisConfigChange,
332
+ _ref8$actionIcons = _ref8.actionIcons,
333
+ actionIcons = _ref8$actionIcons === void 0 ? defaultActionIcons : _ref8$actionIcons;
334
+ return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
335
+ className: "map-legend"
336
+ }, (mapState === null || mapState === void 0 ? void 0 : mapState.height) && {
337
+ style: {
338
+ /* subtracting rough size of 4 map control buttons and padding */
339
+ maxHeight: mapState.height - (isExport ? 0 : 250)
340
+ }
341
+ }), layers.map(function (layer, index) {
342
+ if (!layer.isValidToSave() || layer.config.hidden) {
343
+ return null;
344
+ }
345
+ var containerW = width || _constants.DIMENSIONS.mapControl.width;
346
+ return /*#__PURE__*/_react["default"].createElement(StyledMapControlLegend, {
347
+ className: "legend--layer",
348
+ last: index === layers.length - 1,
349
+ key: index,
350
+ width: containerW
351
+ }, /*#__PURE__*/_react["default"].createElement(LayerLegendHeader, {
352
+ options: options,
353
+ layer: layer
354
+ }), /*#__PURE__*/_react["default"].createElement(LayerLegendContent, {
355
+ containerW: containerW,
356
+ layer: layer,
357
+ mapState: mapState,
358
+ disableEdit: disableEdit,
359
+ isExport: isExport,
360
+ onLayerVisConfigChange: onLayerVisConfigChange,
361
+ actionIcons: actionIcons
362
+ }));
363
+ }));
364
+ };
365
+ MapLegend.displayName = 'MapLegend';
366
+ return MapLegend;
367
+ }
368
+ var _default = exports["default"] = MapLegendFactory;
369
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZDNDb2xvciIsIl9yZWFjdEludGwiLCJfY29sb3JMZWdlbmQiLCJfcmFkaXVzTGVnZW5kIiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfdmlld3BvcnRNZXJjYXRvclByb2plY3QiLCJfaWNvbnMiLCJfcGFuZWxIZWFkZXJBY3Rpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJTdHlsZWRNYXBDb250cm9sTGVnZW5kIiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsIm1hcENvbnRyb2wiLCJwYWRkaW5nIiwiZm9udEZhbWlseSIsInBhbmVsQm9yZGVyQ29sb3IiLCJsYXN0Iiwid2lkdGgiLCJ0ZXh0Q29sb3IiLCJzdWJ0ZXh0Q29sb3IiLCJ0ZXh0Q29sb3JIbCIsIlZpc3VhbENoYW5uZWxNZXRyaWMiLCJfcmVmIiwibmFtZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiaWQiLCJMYXllckRlZmF1bHRMZWdlbmQiLCJfcmVmMiIsImxhYmVsIiwiU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5IiwiZGVwcyIsIkxlZ2VuZFJvd0ZhY3RvcnkiLCJMZWdlbmRSb3ciLCJTaW5nbGVDb2xvckxlZ2VuZCIsIl9yZWYzIiwiY29sb3IiLCJkaXNwbGF5TGFiZWwiLCJCb29sZWFuIiwiQXJyYXkiLCJpc0FycmF5IiwicmdiIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInRvU3RyaW5nIiwiZGlzcGxheU5hbWUiLCJSZWFjdCIsIm1lbW8iLCJMYXllckNvbG9yTGVnZW5kRmFjdG9yeSIsIkNvbG9yTGVnZW5kRmFjdG9yeSIsIlBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSIsIkNvbG9yTGVnZW5kIiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJMYXllckNvbG9yTGVnZW5kIiwiX3JlZjQiLCJkZXNjcmlwdGlvbiIsImNvbmZpZyIsImxheWVyIiwiY29sb3JDaGFubmVsIiwiZGlzYWJsZUVkaXQiLCJvbkxheWVyVmlzQ29uZmlnQ2hhbmdlIiwiaXNFeHBvcnQiLCJtYXBTdGF0ZSIsImFjdGlvbkljb25zIiwiaW50bCIsInVzZUludGwiLCJlbmFibGVDb2xvckJ5IiwibWVhc3VyZSIsInNjYWxlIiwiZmllbGQiLCJkb21haW4iLCJyYW5nZSIsInByb3BlcnR5IiwiZml4ZWQiLCJfbWFwIiwibWFwIiwiayIsIl9tYXAyIiwiX3NsaWNlZFRvQXJyYXkyIiwiY29sb3JTY2FsZSIsImNvbG9yRmllbGQiLCJjb2xvckRvbWFpbiIsImlzRml4ZWQiLCJ2aXNDb25maWciLCJjb2xvclJhbmdlIiwib25VcGRhdGVDb2xvckxlZ2VuZCIsInVzZUNhbGxiYWNrIiwiY29sb3JMZWdlbmRzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJoYW5kbGVUb2dnbGVFeHBhbmRlZCIsIm9uQ2xpY2siLCJJY29uQ29tcG9uZW50IiwiZXhwYW5kZWQiLCJjb2xsYXBzZWQiLCJzY2FsZVR5cGUiLCJmaWVsZFR5cGUiLCJ0eXBlIiwiZm9ybWF0TWVzc2FnZSIsImNvbmNhdCIsImtleSIsImRlZmF1bHRNZXNzYWdlIiwiZ2V0TGF5ZXJSYWRpdXNTY2FsZU1ldGVyc1RvUGl4ZWxzTXVsdGlwbGllciIsIl9nZXREaXN0YW5jZVNjYWxlcyIsImdldERpc3RhbmNlU2NhbGVzIiwibWV0ZXJzUGVyUGl4ZWwiLCJmaXhlZFJhZGl1cyIsInNpemVGaWVsZCIsImdldFJhZGl1c1NjYWxlQnlab29tIiwiTGF5ZXJSYWRpdXNMZWdlbmQiLCJfcmVmNSIsInZpc3VhbENoYW5uZWwiLCJnZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24iLCJlbmFibGVTaXplQnkiLCJfbWFwMyIsIl9tYXA0Iiwic2l6ZVNjYWxlIiwic2l6ZURvbWFpbiIsInNpemVSYW5nZSIsInJhZGl1c011bHRpcGxpZXIiLCJ2IiwiaXNDb2xvckNoYW5uZWwiLCJDSEFOTkVMX1NDQUxFUyIsImNvbG9yQWdnciIsImluY2x1ZGVzIiwiY2hhbm5lbFNjYWxlVHlwZSIsImlzUmFkaXVzQ2hhbm5lbCIsInJhZGl1cyIsIkxheWVyTGVnZW5kSGVhZGVyRmFjdG9yeSIsIkxheWVyTGVnZW5kSGVhZGVyIiwiX3JlZjYiLCJvcHRpb25zIiwic2hvd0xheWVyTmFtZSIsImRlZmF1bHRBY3Rpb25JY29ucyIsIkFycm93RG93biIsIkFycm93UmlnaHQiLCJMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5IiwiTGF5ZXJMZWdlbmRDb250ZW50IiwiX3JlZjciLCJjb250YWluZXJXIiwidmlzdWFsQ2hhbm5lbHMiLCJnZXRMZWdlbmRWaXN1YWxDaGFubmVscyIsImNoYW5uZWxLZXlzIiwidmFsdWVzIiwiY29sb3JDaGFubmVscyIsIm5vbkNvbG9yQ2hhbm5lbHMiLCJ2YyIsIkRJTUVOU0lPTlMiLCJjb2xvckNoYW5uZWxUb1JlbmRlciIsImNjIiwiX2xheWVyJGdldFZpc3VhbENoYW5uIiwiY29uZGl0aW9uIiwiRnJhZ21lbnQiLCJtYXRjaENvbmRpdGlvbiIsImVuYWJsZWQiLCJkZWZhdWx0TWVhc3VyZSIsIk1hcExlZ2VuZEZhY3RvcnkiLCJNYXBMZWdlbmQiLCJfcmVmOCIsIl9yZWY4JGxheWVycyIsImxheWVycyIsIl9yZWY4JGFjdGlvbkljb25zIiwiX2V4dGVuZHMyIiwiaGVpZ2h0Iiwic3R5bGUiLCJtYXhIZWlnaHQiLCJpbmRleCIsImlzVmFsaWRUb1NhdmUiLCJoaWRkZW4iLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLWxlZ2VuZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7RkMsIHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSwgQ29tcG9uZW50VHlwZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3JnYn0gZnJvbSAnZDMtY29sb3InO1xuaW1wb3J0IHt1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCBDb2xvckxlZ2VuZEZhY3RvcnksIHtMZWdlbmRSb3dGYWN0b3J5fSBmcm9tICcuLi9jb21tb24vY29sb3ItbGVnZW5kJztcbmltcG9ydCBSYWRpdXNMZWdlbmQgZnJvbSAnLi4vY29tbW9uL3JhZGl1cy1sZWdlbmQnO1xuaW1wb3J0IHtDSEFOTkVMX1NDQUxFUywgRElNRU5TSU9OU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge0xheWVyLCBMYXllckJhc2VDb25maWcsIFZpc3VhbENoYW5uZWwsIFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtMYXllclZpc0NvbmZpZywgTWFwU3RhdGUsIFJHQkNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7Z2V0RGlzdGFuY2VTY2FsZXN9IGZyb20gJ3ZpZXdwb3J0LW1lcmNhdG9yLXByb2plY3QnO1xuaW1wb3J0IHtBcnJvd0Rvd24sIEFycm93UmlnaHR9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IGZyb20gJy4uL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5cbmludGVyZmFjZSBTdHlsZWRNYXBDb250cm9sTGVnZW5kUHJvcHMge1xuICB3aWR0aD86IG51bWJlcjtcbiAgbGFzdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNYXBDb250cm9sTGVnZW5kID0gc3R5bGVkLmRpdjxTdHlsZWRNYXBDb250cm9sTGVnZW5kUHJvcHM+YFxuICBwYWRkaW5nOiAxMHB4ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4IDEwcHhcbiAgICAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5fTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJvcmRlckNvbG9yfTtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLmxhc3QgPyAwIDogJzFweCcpfTtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGh9cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfbmFtZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuICAubGVnZW5kLS1sYXllcl90eXBlIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfc2l6ZS10aXRsZS1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9fdGl0bGUge1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfX2l0ZW0ge1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIH1cbiAgLmxlZ2VuZC0tbGF5ZXJfYnkge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfY29sb3JfZmllbGQge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfY29sb3ItbGVnZW5kIHtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBWaXN1YWxDaGFubmVsTWV0cmljID0gKHtuYW1lfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9fdGl0bGVcIj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3JfZmllbGRcIj5cbiAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e25hbWV9IC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBMYXllclNpemVMZWdlbmRQcm9wcyA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IExheWVyRGVmYXVsdExlZ2VuZDogUmVhY3QuRkM8TGF5ZXJTaXplTGVnZW5kUHJvcHM+ID0gKHtsYWJlbCwgbmFtZX0pID0+XG4gIGxhYmVsID8gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9zaXplLXNjaGVtYVwiPlxuICAgICAgPHA+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfYnlcIj57bGFiZWwgPyA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17bGFiZWx9IC8+IDogbnVsbH08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfYnlcIj4gYnkgPC9zcGFuPlxuICAgICAgPC9wPlxuICAgICAge25hbWUgJiYgPFZpc3VhbENoYW5uZWxNZXRyaWMgbmFtZT17bmFtZX0gLz59XG4gICAgPC9kaXY+XG4gICkgOiBudWxsO1xuXG5leHBvcnQgdHlwZSBTaW5nbGVDb2xvckxlZ2VuZFByb3BzID0ge1xuICBjb2xvcjogUkdCQ29sb3I7XG4gIGxhYmVsPzogc3RyaW5nO1xufTtcblxuU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5LmRlcHMgPSBbTGVnZW5kUm93RmFjdG9yeV07XG5cbmV4cG9ydCBmdW5jdGlvbiBTaW5nbGVDb2xvckxlZ2VuZEZhY3RvcnkoTGVnZW5kUm93OiBSZXR1cm5UeXBlPHR5cGVvZiBMZWdlbmRSb3dGYWN0b3J5Pikge1xuICBjb25zdCBTaW5nbGVDb2xvckxlZ2VuZDogUmVhY3QuRkM8U2luZ2xlQ29sb3JMZWdlbmRQcm9wcz4gPSAoe2NvbG9yLCBsYWJlbH0pID0+IChcbiAgICA8TGVnZW5kUm93XG4gICAgICBsYWJlbD17bGFiZWwgPz8gJyd9XG4gICAgICBkaXNwbGF5TGFiZWw9e0Jvb2xlYW4obGFiZWwpfVxuICAgICAgY29sb3I9e0FycmF5LmlzQXJyYXkoY29sb3IpID8gcmdiKC4uLmNvbG9yKS50b1N0cmluZygpIDogY29sb3J9XG4gICAgLz5cbiAgKTtcblxuICBTaW5nbGVDb2xvckxlZ2VuZC5kaXNwbGF5TmFtZSA9ICdTaW5nbGVDb2xvckxlZ2VuZCc7XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oU2luZ2xlQ29sb3JMZWdlbmQpO1xufVxuXG5leHBvcnQgdHlwZSBMYXllckNvbG9yTGVnZW5kUHJvcHMgPSB7XG4gIGRlc2NyaXB0aW9uOiBWaXN1YWxDaGFubmVsRGVzY3JpcHRpb247XG4gIGNvbmZpZzogTGF5ZXJCYXNlQ29uZmlnO1xuICBjb2xvckNoYW5uZWw6IFZpc3VhbENoYW5uZWw7XG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U/OiAob2xkTGF5ZXI6IExheWVyLCBuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICBsYXllcjogTGF5ZXI7XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBhY3Rpb25JY29uczogTWFwTGVnZW5kSWNvbnM7XG59O1xuXG5MYXllckNvbG9yTGVnZW5kRmFjdG9yeS5kZXBzID0gW1xuICBDb2xvckxlZ2VuZEZhY3RvcnksXG4gIFNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeSxcbiAgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5XG5dO1xuZXhwb3J0IGZ1bmN0aW9uIExheWVyQ29sb3JMZWdlbmRGYWN0b3J5KFxuICBDb2xvckxlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgQ29sb3JMZWdlbmRGYWN0b3J5PixcbiAgU2luZ2xlQ29sb3JMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIFNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeT4sXG4gIFBhbmVsSGVhZGVyQWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTGF5ZXJDb2xvckxlZ2VuZDogUmVhY3QuRkM8TGF5ZXJDb2xvckxlZ2VuZFByb3BzPiA9ICh7XG4gICAgZGVzY3JpcHRpb24sXG4gICAgY29uZmlnLFxuICAgIGxheWVyLFxuICAgIGNvbG9yQ2hhbm5lbCxcbiAgICBkaXNhYmxlRWRpdCxcbiAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICAgIGlzRXhwb3J0LFxuICAgIG1hcFN0YXRlLFxuICAgIGFjdGlvbkljb25zXG4gIH0pID0+IHtcbiAgICBjb25zdCBpbnRsID0gdXNlSW50bCgpO1xuICAgIGNvbnN0IGVuYWJsZUNvbG9yQnkgPSBkZXNjcmlwdGlvbi5tZWFzdXJlO1xuICAgIGNvbnN0IHtzY2FsZSwgZmllbGQsIGRvbWFpbiwgcmFuZ2UsIHByb3BlcnR5LCBmaXhlZH0gPSBjb2xvckNoYW5uZWw7XG4gICAgY29uc3QgW2NvbG9yU2NhbGUsIGNvbG9yRmllbGQsIGNvbG9yRG9tYWluXSA9IFtzY2FsZSwgZmllbGQsIGRvbWFpbl0ubWFwKGsgPT4gY29uZmlnW2tdKTtcbiAgICBjb25zdCBpc0ZpeGVkID0gZml4ZWQgJiYgY29uZmlnLnZpc0NvbmZpZ1tmaXhlZF07XG5cbiAgICBjb25zdCBjb2xvclJhbmdlID0gY29uZmlnLnZpc0NvbmZpZ1tyYW5nZV07XG4gICAgY29uc3Qgb25VcGRhdGVDb2xvckxlZ2VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgY29sb3JMZWdlbmRzID0+IHtcbiAgICAgICAgaWYgKG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UpIHtcbiAgICAgICAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlKGxheWVyLCB7XG4gICAgICAgICAgICBbcmFuZ2VdOiB7XG4gICAgICAgICAgICAgIC4uLmNvbG9yUmFuZ2UsXG4gICAgICAgICAgICAgIGNvbG9yTGVnZW5kc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2xheWVyLCBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLCBjb2xvclJhbmdlLCByYW5nZV1cbiAgICApO1xuICAgIGNvbnN0IFtpc0V4cGFuZGVkLCBzZXRJc0V4cGFuZGVkXSA9IHVzZVN0YXRlKGlzRXhwb3J0KTtcbiAgICBjb25zdCBoYW5kbGVUb2dnbGVFeHBhbmRlZCA9ICgpID0+IHNldElzRXhwYW5kZWQoIWlzRXhwYW5kZWQpO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfX2l0ZW1cIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX2NvbG9yLXNjaGVtYVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7ZW5hYmxlQ29sb3JCeSA/IChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX3NpemUtdGl0bGUtcm93XCI+XG4gICAgICAgICAgICAgICAgPFZpc3VhbENoYW5uZWxNZXRyaWMgbmFtZT17ZW5hYmxlQ29sb3JCeX0gLz5cbiAgICAgICAgICAgICAgICB7IWlzRXhwb3J0ID8gKFxuICAgICAgICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwibGVnZW5kLWNvbGxhcHNlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZUV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBJY29uQ29tcG9uZW50PXtpc0V4cGFuZGVkID8gYWN0aW9uSWNvbnMuZXhwYW5kZWQgOiBhY3Rpb25JY29ucy5jb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX2NvbG9yLWxlZ2VuZFwiPlxuICAgICAgICAgICAgICB7ZW5hYmxlQ29sb3JCeSA/IChcbiAgICAgICAgICAgICAgICA8Q29sb3JMZWdlbmRcbiAgICAgICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgICAgIGlzRXhwYW5kZWQ9e2lzRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBzY2FsZVR5cGU9e2NvbG9yU2NhbGV9XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5TGFiZWxcbiAgICAgICAgICAgICAgICAgIGRvbWFpbj17Y29sb3JEb21haW59XG4gICAgICAgICAgICAgICAgICBmaWVsZFR5cGU9eyhjb2xvckZpZWxkICYmIGNvbG9yRmllbGQudHlwZSkgfHwgJ3JlYWwnfVxuICAgICAgICAgICAgICAgICAgcmFuZ2U9e2NvbG9yUmFuZ2V9XG4gICAgICAgICAgICAgICAgICBvblVwZGF0ZUNvbG9yTGVnZW5kPXtvblVwZGF0ZUNvbG9yTGVnZW5kfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgICAgICAgaXNGaXhlZD17aXNGaXhlZH1cbiAgICAgICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxTaW5nbGVDb2xvckxlZ2VuZFxuICAgICAgICAgICAgICAgICAgY29sb3I9e2NvbmZpZy52aXNDb25maWdbcHJvcGVydHldIHx8IGNvbmZpZ1twcm9wZXJ0eV0gfHwgY29uZmlnLmNvbG9yfVxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2ludGwuZm9ybWF0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBgbWFwTGVnZW5kLmxheWVycy4ke2xheWVyLnR5cGV9LnNpbmdsZUNvbG9yLiR7Y29sb3JDaGFubmVsLmtleX1gLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TWVzc2FnZTogaW50bC5mb3JtYXRNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogYG1hcExlZ2VuZC5sYXllcnMuZGVmYXVsdC5zaW5nbGVDb2xvci4ke2NvbG9yQ2hhbm5lbC5rZXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TWVzc2FnZTogJyAnIC8vIG11c3RuJ3QgYmUgZW1wdHkgc3RyaW5nIG9yIGlkIHdpbGwgYmUgdXNlZFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgTGF5ZXJDb2xvckxlZ2VuZC5kaXNwbGF5TmFtZSA9ICdMYXllckNvbG9yTGVnZW5kJztcbiAgcmV0dXJuIFJlYWN0Lm1lbW8oTGF5ZXJDb2xvckxlZ2VuZCk7XG59XG5cbmZ1bmN0aW9uIGdldExheWVyUmFkaXVzU2NhbGVNZXRlcnNUb1BpeGVsc011bHRpcGxpZXIobGF5ZXIsIG1hcFN0YXRlKSB7XG4gIC8vIEB0cy1pZ25vcmUgdGhpcyBhY3R1YWxseSBleGlzdFxuICBjb25zdCB7bWV0ZXJzUGVyUGl4ZWx9ID0gZ2V0RGlzdGFuY2VTY2FsZXMobWFwU3RhdGUpO1xuICAvLyBpZiBubyBmaWVsZCBzaXplIGlzIGRlZmluZWQgd2UgbmVlZCB0byBwYXNzIGZpeGVkIHJhZGl1cyA9IGZhbHNlXG4gIGNvbnN0IGZpeGVkUmFkaXVzID0gbGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5maXhlZFJhZGl1cyAmJiBCb29sZWFuKGxheWVyLmNvbmZpZy5zaXplRmllbGQpO1xuICByZXR1cm4gbGF5ZXIuZ2V0UmFkaXVzU2NhbGVCeVpvb20obWFwU3RhdGUsIGZpeGVkUmFkaXVzKSAvIG1ldGVyc1BlclBpeGVsWzBdO1xufVxuXG5leHBvcnQgdHlwZSBNYXBMZWdlbmRJY29ucyA9IHtcbiAgZXhwYW5kZWQ6IENvbXBvbmVudFR5cGU8YW55PjtcbiAgY29sbGFwc2VkOiBDb21wb25lbnRUeXBlPGFueT47XG59O1xuXG5leHBvcnQgdHlwZSBMYXllclJhZGl1c0xlZ2VuZFByb3BzID0ge1xuICBsYXllcjogTGF5ZXI7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgdmlzdWFsQ2hhbm5lbDogVmlzdWFsQ2hhbm5lbDtcbn07XG5cbmV4cG9ydCBjb25zdCBMYXllclJhZGl1c0xlZ2VuZDogRkM8TGF5ZXJSYWRpdXNMZWdlbmRQcm9wcz4gPSBSZWFjdC5tZW1vKFxuICAoe2xheWVyLCB3aWR0aCwgdmlzdWFsQ2hhbm5lbCwgbWFwU3RhdGV9KSA9PiB7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24odmlzdWFsQ2hhbm5lbC5rZXkpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGxheWVyLmNvbmZpZztcblxuICAgIGNvbnN0IGVuYWJsZVNpemVCeSA9IGRlc2NyaXB0aW9uLm1lYXN1cmU7XG4gICAgY29uc3Qge3NjYWxlLCBmaWVsZCwgZG9tYWluLCByYW5nZX0gPSB2aXN1YWxDaGFubmVsO1xuICAgIGNvbnN0IFtzaXplU2NhbGUsIHNpemVGaWVsZCwgc2l6ZURvbWFpbl0gPSBbc2NhbGUsIGZpZWxkLCBkb21haW5dLm1hcChrID0+IGNvbmZpZ1trXSk7XG4gICAgbGV0IHNpemVSYW5nZSA9IGNvbmZpZy52aXNDb25maWdbcmFuZ2VdO1xuXG4gICAgaWYgKG1hcFN0YXRlKSB7XG4gICAgICBjb25zdCByYWRpdXNNdWx0aXBsaWVyID0gZ2V0TGF5ZXJSYWRpdXNTY2FsZU1ldGVyc1RvUGl4ZWxzTXVsdGlwbGllcihsYXllciwgbWFwU3RhdGUpO1xuICAgICAgc2l6ZVJhbmdlID0gc2l6ZVJhbmdlLm1hcCh2ID0+IHYgKiByYWRpdXNNdWx0aXBsaWVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX3NpemUtc2NoZW1hXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtlbmFibGVTaXplQnkgPyA8VmlzdWFsQ2hhbm5lbE1ldHJpYyBuYW1lPXtlbmFibGVTaXplQnl9IC8+IDogbnVsbH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9zaXplLWxlZ2VuZFwiPlxuICAgICAgICAgICAgICB7ZW5hYmxlU2l6ZUJ5ID8gKFxuICAgICAgICAgICAgICAgIDxSYWRpdXNMZWdlbmRcbiAgICAgICAgICAgICAgICAgIHNjYWxlVHlwZT17c2l6ZVNjYWxlfVxuICAgICAgICAgICAgICAgICAgZG9tYWluPXtzaXplRG9tYWlufVxuICAgICAgICAgICAgICAgICAgZmllbGRUeXBlPXsoc2l6ZUZpZWxkICYmIHNpemVGaWVsZC50eXBlKSB8fCAncmVhbCd9XG4gICAgICAgICAgICAgICAgICByYW5nZT17c2l6ZVJhbmdlfVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuKTtcblxuY29uc3QgaXNDb2xvckNoYW5uZWwgPSB2aXN1YWxDaGFubmVsID0+XG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvciwgQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXS5pbmNsdWRlcyh2aXN1YWxDaGFubmVsLmNoYW5uZWxTY2FsZVR5cGUpO1xuXG5leHBvcnQgdHlwZSBMYXllckxlZ2VuZEhlYWRlclByb3BzID0ge1xuICBsYXllcjogTGF5ZXI7XG4gIG9wdGlvbnM/OiB7XG4gICAgc2hvd0xheWVyTmFtZT86IGJvb2xlYW47XG4gIH07XG59O1xuXG5jb25zdCBpc1JhZGl1c0NoYW5uZWwgPSB2aXN1YWxDaGFubmVsID0+XG4gIFtDSEFOTkVMX1NDQUxFUy5yYWRpdXNdLmluY2x1ZGVzKHZpc3VhbENoYW5uZWwuY2hhbm5lbFNjYWxlVHlwZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBMYXllckxlZ2VuZEhlYWRlckZhY3RvcnkoKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kSGVhZGVyOiBSZWFjdC5GQzxMYXllckxlZ2VuZEhlYWRlclByb3BzPiA9ICh7b3B0aW9ucywgbGF5ZXJ9KSA9PiB7XG4gICAgcmV0dXJuIG9wdGlvbnM/LnNob3dMYXllck5hbWUgIT09IGZhbHNlID8gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX25hbWVcIj57bGF5ZXIuY29uZmlnLmxhYmVsfTwvZGl2PlxuICAgICkgOiBudWxsO1xuICB9O1xuICByZXR1cm4gTGF5ZXJMZWdlbmRIZWFkZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgZXhwYW5kZWQ6IEFycm93RG93bixcbiAgY29sbGFwc2VkOiBBcnJvd1JpZ2h0XG59O1xuXG5leHBvcnQgdHlwZSBMYXllckxlZ2VuZENvbnRlbnRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBjb250YWluZXJXOiBudW1iZXI7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPzogKG9sZExheWVyOiBMYXllciwgbmV3VmlzQ29uZmlnOiBQYXJ0aWFsPExheWVyVmlzQ29uZmlnPikgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM6IE1hcExlZ2VuZEljb25zO1xufTtcblxuTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeS5kZXBzID0gW0xheWVyQ29sb3JMZWdlbmRGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIExheWVyTGVnZW5kQ29udGVudEZhY3RvcnkoXG4gIExheWVyQ29sb3JMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQ29sb3JMZWdlbmRGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kQ29udGVudDogUmVhY3QuRkM8TGF5ZXJMZWdlbmRDb250ZW50UHJvcHM+ID0gKHtcbiAgICBsYXllcixcbiAgICBjb250YWluZXJXLFxuICAgIG1hcFN0YXRlLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIGlzRXhwb3J0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgYWN0aW9uSWNvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHZpc3VhbENoYW5uZWxzID0gbGF5ZXIuZ2V0TGVnZW5kVmlzdWFsQ2hhbm5lbHMoKTtcbiAgICBjb25zdCBjaGFubmVsS2V5cyA9IE9iamVjdC52YWx1ZXModmlzdWFsQ2hhbm5lbHMpO1xuICAgIGNvbnN0IGNvbG9yQ2hhbm5lbHMgPSBjaGFubmVsS2V5cy5maWx0ZXIoaXNDb2xvckNoYW5uZWwpIGFzIFZpc3VhbENoYW5uZWxbXTtcbiAgICBjb25zdCBub25Db2xvckNoYW5uZWxzID0gY2hhbm5lbEtleXMuZmlsdGVyKHZjID0+ICFpc0NvbG9yQ2hhbm5lbCh2YykpO1xuICAgIGNvbnN0IHdpZHRoID0gY29udGFpbmVyVyAtIDIgKiBESU1FTlNJT05TLm1hcENvbnRyb2wucGFkZGluZztcblxuICAgIC8vIHJlbmRlciBjb2xvciBieSBjaGFuZWwgb25seVxuICAgIGxldCBjb2xvckNoYW5uZWxUb1JlbmRlciA9IGNvbG9yQ2hhbm5lbHMuZmlsdGVyKFxuICAgICAgY2MgPT5cbiAgICAgICAgKCFjYy5jb25kaXRpb24gfHwgY2MuY29uZGl0aW9uKGxheWVyLmNvbmZpZykpICYmXG4gICAgICAgIGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbihjYy5rZXkpPy5tZWFzdXJlXG4gICAgKTtcbiAgICAvLyBpZiBubyBjb2xvciBieSBjaGFuZWwsIHJlbmRlciByZXN0XG4gICAgaWYgKCFjb2xvckNoYW5uZWxUb1JlbmRlci5sZW5ndGgpIHtcbiAgICAgIGNvbG9yQ2hhbm5lbFRvUmVuZGVyID0gY29sb3JDaGFubmVscy5maWx0ZXIoXG4gICAgICAgIGNjID0+ICFjYy5jb25kaXRpb24gfHwgY2MuY29uZGl0aW9uKGxheWVyLmNvbmZpZylcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7Y29sb3JDaGFubmVsVG9SZW5kZXIubWFwKGNvbG9yQ2hhbm5lbCA9PiAoXG4gICAgICAgICAgPExheWVyQ29sb3JMZWdlbmRcbiAgICAgICAgICAgIGtleT17Y29sb3JDaGFubmVsLmtleX1cbiAgICAgICAgICAgIGNvbG9yQ2hhbm5lbD17Y29sb3JDaGFubmVsfVxuICAgICAgICAgICAgY29uZmlnPXtsYXllci5jb25maWd9XG4gICAgICAgICAgICBkZXNjcmlwdGlvbj17bGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKGNvbG9yQ2hhbm5lbC5rZXkpfVxuICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT17b25MYXllclZpc0NvbmZpZ0NoYW5nZX1cbiAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgICAge25vbkNvbG9yQ2hhbm5lbHMubWFwKCh2aXN1YWxDaGFubmVsOiBWaXN1YWxDaGFubmVsKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWF0Y2hDb25kaXRpb24gPSAhdmlzdWFsQ2hhbm5lbC5jb25kaXRpb24gfHwgdmlzdWFsQ2hhbm5lbC5jb25kaXRpb24obGF5ZXIuY29uZmlnKTtcbiAgICAgICAgICBjb25zdCBlbmFibGVkID0gbGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWwuZmllbGRdIHx8IHZpc3VhbENoYW5uZWwuZGVmYXVsdE1lYXN1cmU7XG5cbiAgICAgICAgICBpZiAobWF0Y2hDb25kaXRpb24gJiYgZW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24odmlzdWFsQ2hhbm5lbC5rZXkpO1xuICAgICAgICAgICAgaWYgKGlzUmFkaXVzQ2hhbm5lbCh2aXN1YWxDaGFubmVsKSkge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxMYXllclJhZGl1c0xlZ2VuZFxuICAgICAgICAgICAgICAgICAga2V5PXt2aXN1YWxDaGFubmVsLmtleX1cbiAgICAgICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAgIHZpc3VhbENoYW5uZWw9e3Zpc3VhbENoYW5uZWx9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxMYXllckRlZmF1bHRMZWdlbmRcbiAgICAgICAgICAgICAgICBrZXk9e3Zpc3VhbENoYW5uZWwua2V5fVxuICAgICAgICAgICAgICAgIGxhYmVsPXtkZXNjcmlwdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICBuYW1lPXtkZXNjcmlwdGlvbi5tZWFzdXJlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gTGF5ZXJMZWdlbmRDb250ZW50O1xufVxuXG5leHBvcnQgdHlwZSBNYXBMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXJzPzogUmVhZG9ubHlBcnJheTxMYXllcj47XG4gIHdpZHRoPzogbnVtYmVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBvcHRpb25zPzoge1xuICAgIHNob3dMYXllck5hbWU/OiBib29sZWFuO1xuICB9O1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRJY29ucztcbn07XG5cbk1hcExlZ2VuZEZhY3RvcnkuZGVwcyA9IFtMYXllckxlZ2VuZEhlYWRlckZhY3RvcnksIExheWVyTGVnZW5kQ29udGVudEZhY3RvcnldO1xuXG5mdW5jdGlvbiBNYXBMZWdlbmRGYWN0b3J5KFxuICBMYXllckxlZ2VuZEhlYWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5PixcbiAgTGF5ZXJMZWdlbmRDb250ZW50OiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IE1hcExlZ2VuZDogUmVhY3QuRkM8TWFwTGVnZW5kUHJvcHM+ID0gKHtcbiAgICBsYXllcnMgPSBbXSxcbiAgICB3aWR0aCxcbiAgICBtYXBTdGF0ZSxcbiAgICBvcHRpb25zLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIGlzRXhwb3J0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnNcbiAgfSkgPT4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT1cIm1hcC1sZWdlbmRcIlxuICAgICAgey4uLihtYXBTdGF0ZT8uaGVpZ2h0ICYmIHtcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAvKiBzdWJ0cmFjdGluZyByb3VnaCBzaXplIG9mIDQgbWFwIGNvbnRyb2wgYnV0dG9ucyBhbmQgcGFkZGluZyAqL1xuICAgICAgICAgIG1heEhlaWdodDogbWFwU3RhdGUuaGVpZ2h0IC0gKGlzRXhwb3J0ID8gMCA6IDI1MClcbiAgICAgICAgfVxuICAgICAgfSl9XG4gICAgPlxuICAgICAge2xheWVycy5tYXAoKGxheWVyLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWxheWVyLmlzVmFsaWRUb1NhdmUoKSB8fCBsYXllci5jb25maWcuaGlkZGVuKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGFpbmVyVyA9IHdpZHRoIHx8IERJTUVOU0lPTlMubWFwQ29udHJvbC53aWR0aDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTdHlsZWRNYXBDb250cm9sTGVnZW5kXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyXCJcbiAgICAgICAgICAgIGxhc3Q9e2luZGV4ID09PSBsYXllcnMubGVuZ3RoIC0gMX1cbiAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICB3aWR0aD17Y29udGFpbmVyV31cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8TGF5ZXJMZWdlbmRIZWFkZXIgb3B0aW9ucz17b3B0aW9uc30gbGF5ZXI9e2xheWVyfSAvPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kQ29udGVudFxuICAgICAgICAgICAgICBjb250YWluZXJXPXtjb250YWluZXJXfVxuICAgICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U9e29uTGF5ZXJWaXNDb25maWdDaGFuZ2V9XG4gICAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRNYXBDb250cm9sTGVnZW5kPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG5cbiAgTWFwTGVnZW5kLmRpc3BsYXlOYW1lID0gJ01hcExlZ2VuZCc7XG5cbiAgcmV0dXJuIE1hcExlZ2VuZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwTGVnZW5kRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFOLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFSLE9BQUE7QUFHQSxJQUFBUyx3QkFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsTUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsa0JBQUEs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
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { IntlShape } from 'react-intl';
3
+ import { LayerHoverProp } from '@kepler.gl/reducers';
4
+ import LayerHoverInfoFactory from './layer-hover-info';
5
+ import CoordinateInfoFactory from './coordinate-info';
6
+ declare type MapPopoverContentProps = {
7
+ coordinate: [number, number] | boolean;
8
+ layerHoverProp: LayerHoverProp | null;
9
+ zoom: number;
10
+ };
11
+ declare type IntlProps = {
12
+ intl: IntlShape;
13
+ };
14
+ declare function MapPopoverContentFactory(LayerHoverInfo: ReturnType<typeof LayerHoverInfoFactory>, CoordinateInfo: ReturnType<typeof CoordinateInfoFactory>): React.FC<import("react-intl").WithIntlProps<MapPopoverContentProps & IntlProps>> & {
15
+ WrappedComponent: React.ComponentType<MapPopoverContentProps & IntlProps>;
16
+ };
17
+ declare namespace MapPopoverContentFactory {
18
+ var deps: ((() => React.FC<import("./coordinate-info").CoordinateInfoProps>) | (() => {
19
+ (props: any): React.JSX.Element | null;
20
+ propTypes: {
21
+ fields: import("prop-types").Requireable<any[]>;
22
+ fieldsToShow: import("prop-types").Requireable<any[]>;
23
+ layer: import("prop-types").Requireable<object>;
24
+ data: import("prop-types").Requireable<object>;
25
+ };
26
+ }))[];
27
+ }
28
+ export default MapPopoverContentFactory;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = MapPopoverContentFactory;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactIntl = require("react-intl");
10
+ var _layerHoverInfo = _interopRequireDefault(require("./layer-hover-info"));
11
+ var _coordinateInfo = _interopRequireDefault(require("./coordinate-info"));
12
+ // SPDX-License-Identifier: MIT
13
+ // Copyright contributors to the kepler.gl project
14
+
15
+ MapPopoverContentFactory.deps = [_layerHoverInfo["default"], _coordinateInfo["default"]];
16
+ function MapPopoverContentFactory(LayerHoverInfo, CoordinateInfo) {
17
+ var MapPopoverContent = function MapPopoverContent(_ref) {
18
+ var coordinate = _ref.coordinate,
19
+ layerHoverProp = _ref.layerHoverProp,
20
+ zoom = _ref.zoom;
21
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, Array.isArray(coordinate) && /*#__PURE__*/_react["default"].createElement(CoordinateInfo, {
22
+ coordinate: coordinate,
23
+ zoom: zoom
24
+ }), layerHoverProp && /*#__PURE__*/_react["default"].createElement(LayerHoverInfo, layerHoverProp));
25
+ };
26
+ return (0, _reactIntl.injectIntl)(MapPopoverContent);
27
+ }
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdEludGwiLCJfbGF5ZXJIb3ZlckluZm8iLCJfY29vcmRpbmF0ZUluZm8iLCJNYXBQb3BvdmVyQ29udGVudEZhY3RvcnkiLCJkZXBzIiwiTGF5ZXJIb3ZlckluZm9GYWN0b3J5IiwiQ29vcmRpbmF0ZUluZm9GYWN0b3J5IiwiTGF5ZXJIb3ZlckluZm8iLCJDb29yZGluYXRlSW5mbyIsIk1hcFBvcG92ZXJDb250ZW50IiwiX3JlZiIsImNvb3JkaW5hdGUiLCJsYXllckhvdmVyUHJvcCIsInpvb20iLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJBcnJheSIsImlzQXJyYXkiLCJpbmplY3RJbnRsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9tYXAtcG9wb3Zlci1jb250ZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtpbmplY3RJbnRsLCBJbnRsU2hhcGV9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHtMYXllckhvdmVyUHJvcH0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQgTGF5ZXJIb3ZlckluZm9GYWN0b3J5IGZyb20gJy4vbGF5ZXItaG92ZXItaW5mbyc7XG5pbXBvcnQgQ29vcmRpbmF0ZUluZm9GYWN0b3J5IGZyb20gJy4vY29vcmRpbmF0ZS1pbmZvJztcblxuTWFwUG9wb3ZlckNvbnRlbnRGYWN0b3J5LmRlcHMgPSBbTGF5ZXJIb3ZlckluZm9GYWN0b3J5LCBDb29yZGluYXRlSW5mb0ZhY3RvcnldO1xuXG50eXBlIE1hcFBvcG92ZXJDb250ZW50UHJvcHMgPSB7XG4gIGNvb3JkaW5hdGU6IFtudW1iZXIsIG51bWJlcl0gfCBib29sZWFuO1xuICBsYXllckhvdmVyUHJvcDogTGF5ZXJIb3ZlclByb3AgfCBudWxsO1xuICB6b29tOiBudW1iZXI7XG59O1xuXG50eXBlIEludGxQcm9wcyA9IHtcbiAgaW50bDogSW50bFNoYXBlO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFwUG9wb3ZlckNvbnRlbnRGYWN0b3J5KFxuICBMYXllckhvdmVySW5mbzogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJIb3ZlckluZm9GYWN0b3J5PixcbiAgQ29vcmRpbmF0ZUluZm86IFJldHVyblR5cGU8dHlwZW9mIENvb3JkaW5hdGVJbmZvRmFjdG9yeT5cbikge1xuICBjb25zdCBNYXBQb3BvdmVyQ29udGVudDogUmVhY3QuRkM8TWFwUG9wb3ZlckNvbnRlbnRQcm9wcyAmIEludGxQcm9wcz4gPSAoe1xuICAgIGNvb3JkaW5hdGUsXG4gICAgbGF5ZXJIb3ZlclByb3AsXG4gICAgem9vbVxuICB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtBcnJheS5pc0FycmF5KGNvb3JkaW5hdGUpICYmIDxDb29yZGluYXRlSW5mbyBjb29yZGluYXRlPXtjb29yZGluYXRlfSB6b29tPXt6b29tfSAvPn1cbiAgICAgICAge2xheWVySG92ZXJQcm9wICYmIDxMYXllckhvdmVySW5mbyB7Li4ubGF5ZXJIb3ZlclByb3B9IC8+fVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIGluamVjdEludGwoTWFwUG9wb3ZlckNvbnRlbnQpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsZUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsZUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBUEE7QUFDQTs7QUFRQUksd0JBQXdCLENBQUNDLElBQUksR0FBRyxDQUFDQywwQkFBcUIsRUFBRUMsMEJBQXFCLENBQUM7QUFZL0QsU0FBU0gsd0JBQXdCQSxDQUM5Q0ksY0FBd0QsRUFDeERDLGNBQXdELEVBQ3hEO0VBQ0EsSUFBTUMsaUJBQStELEdBQUcsU0FBbEVBLGlCQUErREEsQ0FBQUMsSUFBQSxFQUkvRDtJQUFBLElBSEpDLFVBQVUsR0FBQUQsSUFBQSxDQUFWQyxVQUFVO01BQ1ZDLGNBQWMsR0FBQUYsSUFBQSxDQUFkRSxjQUFjO01BQ2RDLElBQUksR0FBQUgsSUFBQSxDQUFKRyxJQUFJO0lBRUosb0JBQ0VoQixNQUFBLFlBQUFpQixhQUFBLENBQUFqQixNQUFBLFlBQUFrQixRQUFBLFFBQ0dDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDTixVQUFVLENBQUMsaUJBQUlkLE1BQUEsWUFBQWlCLGFBQUEsQ0FBQ04sY0FBYztNQUFDRyxVQUFVLEVBQUVBLFVBQVc7TUFBQ0UsSUFBSSxFQUFFQTtJQUFLLENBQUUsQ0FBQyxFQUNuRkQsY0FBYyxpQkFBSWYsTUFBQSxZQUFBaUIsYUFBQSxDQUFDUCxjQUFjLEVBQUtLLGNBQWlCLENBQ3hELENBQUM7RUFFUCxDQUFDO0VBQ0QsT0FBTyxJQUFBTSxxQkFBVSxFQUFDVCxpQkFBaUIsQ0FBQztBQUN0QyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import MapPopoverContentFactory from './map-popover-content';
3
+ import { IntlShape } from 'react-intl';
4
+ import { LayerHoverProp } from '@kepler.gl/reducers';
5
+ import { Feature, FeatureSelectionContext } from '@kepler.gl/types';
6
+ export declare function getSelectedFeature(layerHoverProp: LayerHoverProp | null): Feature | null;
7
+ export declare type MapPopoverProps = {
8
+ x: number;
9
+ y: number;
10
+ frozen?: boolean;
11
+ coordinate: [number, number] | boolean;
12
+ layerHoverProp: LayerHoverProp | null;
13
+ isBase?: boolean;
14
+ zoom: number;
15
+ container?: HTMLElement | null;
16
+ onClose: () => void;
17
+ onSetFeatures: (features: Feature[]) => any;
18
+ setSelectedFeature: (feature: Feature | null, clickContext?: FeatureSelectionContext) => any;
19
+ featureCollection?: {
20
+ type: string;
21
+ features: Feature[];
22
+ };
23
+ };
24
+ declare type IntlProps = {
25
+ intl: IntlShape;
26
+ };
27
+ declare function MapPopoverFactory(MapPopoverContent: ReturnType<typeof MapPopoverContentFactory>): React.FC<import("react-intl").WithIntlProps<MapPopoverProps & IntlProps>> & {
28
+ WrappedComponent: React.ComponentType<MapPopoverProps & IntlProps>;
29
+ };
30
+ declare namespace MapPopoverFactory {
31
+ var deps: (typeof MapPopoverContentFactory)[];
32
+ }
33
+ export default MapPopoverFactory;