@kepler.gl/components 3.3.0-alpha.5 → 3.3.0-alpha.7

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 (1347) hide show
  1. package/dist/cjs/annotations/annotation-node.js +145 -0
  2. package/dist/cjs/annotations/annotation-overlay.js +168 -0
  3. package/dist/cjs/annotations/annotation-panel.js +361 -0
  4. package/dist/cjs/annotations/annotation-text.js +149 -0
  5. package/dist/cjs/annotations/annotation-utils.js +197 -0
  6. package/dist/cjs/annotations/index.js +53 -0
  7. package/dist/cjs/annotations/lexical-editor/clickable-link-plugin.js +71 -0
  8. package/dist/cjs/annotations/lexical-editor/floating-link-editor.js +193 -0
  9. package/dist/cjs/annotations/lexical-editor/index.js +78 -0
  10. package/dist/cjs/annotations/lexical-editor/lexical-constants.js +22 -0
  11. package/dist/cjs/annotations/lexical-editor/lexical-nodes.js +13 -0
  12. package/dist/cjs/annotations/lexical-editor/lexical-rich-text-editor.js +121 -0
  13. package/dist/cjs/annotations/lexical-editor/lexical-theme.js +25 -0
  14. package/dist/cjs/annotations/lexical-editor/lexical-toolbar.js +292 -0
  15. package/dist/cjs/annotations/lexical-editor/lexical-utils.js +45 -0
  16. package/dist/cjs/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
  17. package/dist/cjs/bottom-widget.js +183 -0
  18. package/dist/cjs/common/action-panel.js +133 -0
  19. package/dist/cjs/common/animation-control/animation-control.js +100 -0
  20. package/dist/cjs/common/animation-control/animation-controller.js +271 -0
  21. package/dist/cjs/common/animation-control/animation-speed-slider.js +63 -0
  22. package/dist/cjs/common/animation-control/animation-window-control.js +59 -0
  23. package/dist/cjs/common/animation-control/export-video-control.js +43 -0
  24. package/dist/cjs/common/animation-control/floating-time-display.js +131 -0
  25. package/dist/cjs/common/animation-control/play-control.js +50 -0
  26. package/dist/cjs/common/animation-control/playback-controls.js +164 -0
  27. package/dist/cjs/common/animation-control/reset-control.js +41 -0
  28. package/dist/cjs/common/animation-control/speed-control.js +51 -0
  29. package/dist/cjs/common/animation-control/window-action-control.js +57 -0
  30. package/dist/cjs/common/checkbox.js +101 -0
  31. package/dist/cjs/common/color-legend.js +272 -0
  32. package/dist/cjs/common/column-stats-chart.js +312 -0
  33. package/dist/cjs/common/data-table/button.js +38 -0
  34. package/dist/cjs/common/data-table/canvas.js +26 -0
  35. package/dist/cjs/common/data-table/cell-size.js +200 -0
  36. package/dist/cjs/common/data-table/column-statistics-categoric.js +40 -0
  37. package/dist/cjs/common/data-table/column-statistics-components.js +65 -0
  38. package/dist/cjs/common/data-table/column-statistics-numeric.js +87 -0
  39. package/dist/cjs/common/data-table/column-statistics-time.js +69 -0
  40. package/dist/cjs/common/data-table/display-format.js +125 -0
  41. package/dist/cjs/common/data-table/grid.js +106 -0
  42. package/dist/cjs/common/data-table/header-cell.js +227 -0
  43. package/dist/cjs/common/data-table/index.js +543 -0
  44. package/dist/cjs/common/data-table/option-dropdown.js +159 -0
  45. package/dist/cjs/common/dataset-label.js +27 -0
  46. package/dist/cjs/common/dnd-layer-items.js +22 -0
  47. package/dist/cjs/common/error-boundary.js +59 -0
  48. package/dist/cjs/common/field-selector.js +172 -0
  49. package/dist/cjs/common/field-token.js +43 -0
  50. package/dist/cjs/common/file-uploader/file-drop.js +180 -0
  51. package/dist/cjs/common/file-uploader/file-upload-progress.js +84 -0
  52. package/dist/cjs/common/file-uploader/file-upload.js +241 -0
  53. package/dist/cjs/common/file-uploader/upload-button.js +58 -0
  54. package/dist/cjs/common/flex-container.js +15 -0
  55. package/dist/cjs/common/histogram-plot.js +282 -0
  56. package/dist/cjs/common/icon-button.js +25 -0
  57. package/dist/cjs/common/icons/3d-models/airplane.js +103 -0
  58. package/dist/cjs/common/icons/3d-models/bicycle.js +425 -0
  59. package/dist/cjs/common/icons/3d-models/boeing.js +118 -0
  60. package/dist/cjs/common/icons/3d-models/car.js +109 -0
  61. package/dist/cjs/common/icons/3d-models/cargoship.js +245 -0
  62. package/dist/cjs/common/icons/3d-models/evtol.js +133 -0
  63. package/dist/cjs/common/icons/3d-models/glider.js +61 -0
  64. package/dist/cjs/common/icons/3d-models/helicopter.js +109 -0
  65. package/dist/cjs/common/icons/3d-models/scooter.js +158 -0
  66. package/dist/cjs/common/icons/3d-models/semitruck.js +176 -0
  67. package/dist/cjs/common/icons/3d-models/truck.js +121 -0
  68. package/dist/cjs/common/icons/add.js +40 -0
  69. package/dist/cjs/common/icons/anchor_window.js +41 -0
  70. package/dist/cjs/common/icons/annotation-text.js +55 -0
  71. package/dist/cjs/common/icons/arrow-down-alt.js +40 -0
  72. package/dist/cjs/common/icons/arrow-down-full.js +49 -0
  73. package/dist/cjs/common/icons/arrow-down-small.js +53 -0
  74. package/dist/cjs/common/icons/arrow-down.js +50 -0
  75. package/dist/cjs/common/icons/arrow-left.js +43 -0
  76. package/dist/cjs/common/icons/arrow-right.js +40 -0
  77. package/dist/cjs/common/icons/arrow-up-alt.js +41 -0
  78. package/dist/cjs/common/icons/arrow-up-solid.js +40 -0
  79. package/dist/cjs/common/icons/arrow-up.js +40 -0
  80. package/dist/cjs/common/icons/base-map.js +56 -0
  81. package/dist/cjs/common/icons/base.js +78 -0
  82. package/dist/cjs/common/icons/bug.js +70 -0
  83. package/dist/cjs/common/icons/calendar.js +48 -0
  84. package/dist/cjs/common/icons/cancel.js +40 -0
  85. package/dist/cjs/common/icons/checkmark.js +46 -0
  86. package/dist/cjs/common/icons/clipboard.js +41 -0
  87. package/dist/cjs/common/icons/clock.js +42 -0
  88. package/dist/cjs/common/icons/close.js +46 -0
  89. package/dist/cjs/common/icons/cloud.js +50 -0
  90. package/dist/cjs/common/icons/code-alt.js +43 -0
  91. package/dist/cjs/common/icons/copy.js +51 -0
  92. package/dist/cjs/common/icons/crosshairs.js +43 -0
  93. package/dist/cjs/common/icons/cube-3d.js +54 -0
  94. package/dist/cjs/common/icons/cursor-click.js +44 -0
  95. package/dist/cjs/common/icons/cursor-point.js +50 -0
  96. package/dist/cjs/common/icons/data-table.js +76 -0
  97. package/dist/cjs/common/icons/db.js +58 -0
  98. package/dist/cjs/common/icons/delete.js +52 -0
  99. package/dist/cjs/common/icons/docs.js +56 -0
  100. package/dist/cjs/common/icons/docs2.js +50 -0
  101. package/dist/cjs/common/icons/drag-n-drop.js +42 -0
  102. package/dist/cjs/common/icons/draggable-dots.js +84 -0
  103. package/dist/cjs/common/icons/draw-point.js +50 -0
  104. package/dist/cjs/common/icons/draw-polygon.js +60 -0
  105. package/dist/cjs/common/icons/edit.js +48 -0
  106. package/dist/cjs/common/icons/effects/brightness-contrast.js +69 -0
  107. package/dist/cjs/common/icons/effects/color-halftone.js +108 -0
  108. package/dist/cjs/common/icons/effects/distance-fog.js +78 -0
  109. package/dist/cjs/common/icons/effects/dot-screen.js +103 -0
  110. package/dist/cjs/common/icons/effects/edge-work.js +62 -0
  111. package/dist/cjs/common/icons/effects/hexagonal-pixelate.js +129 -0
  112. package/dist/cjs/common/icons/effects/hue-saturation.js +60 -0
  113. package/dist/cjs/common/icons/effects/ink.js +59 -0
  114. package/dist/cjs/common/icons/effects/light-and-shadow.js +48 -0
  115. package/dist/cjs/common/icons/effects/magic-wand.js +60 -0
  116. package/dist/cjs/common/icons/effects/magnify.js +67 -0
  117. package/dist/cjs/common/icons/effects/noise.js +113 -0
  118. package/dist/cjs/common/icons/effects/sepia.js +60 -0
  119. package/dist/cjs/common/icons/effects/surface-fog.js +85 -0
  120. package/dist/cjs/common/icons/effects/tilt-shift.js +69 -0
  121. package/dist/cjs/common/icons/effects/triangle-blur.js +64 -0
  122. package/dist/cjs/common/icons/effects/vibrance.js +60 -0
  123. package/dist/cjs/common/icons/effects/vignette.js +53 -0
  124. package/dist/cjs/common/icons/effects/zoom-blur.js +88 -0
  125. package/dist/cjs/common/icons/email.js +44 -0
  126. package/dist/cjs/common/icons/expand.js +42 -0
  127. package/dist/cjs/common/icons/eye-seen.js +49 -0
  128. package/dist/cjs/common/icons/eye-unseen.js +47 -0
  129. package/dist/cjs/common/icons/file-type.js +35 -0
  130. package/dist/cjs/common/icons/file.js +40 -0
  131. package/dist/cjs/common/icons/files.js +41 -0
  132. package/dist/cjs/common/icons/filter-funnel.js +50 -0
  133. package/dist/cjs/common/icons/folder.js +50 -0
  134. package/dist/cjs/common/icons/free-window.js +44 -0
  135. package/dist/cjs/common/icons/gear.js +42 -0
  136. package/dist/cjs/common/icons/globe.js +53 -0
  137. package/dist/cjs/common/icons/hash.js +40 -0
  138. package/dist/cjs/common/icons/help.js +50 -0
  139. package/dist/cjs/common/icons/histogram.js +41 -0
  140. package/dist/cjs/common/icons/horizontal-resize-handle.js +58 -0
  141. package/dist/cjs/common/icons/index.js +838 -0
  142. package/dist/cjs/common/icons/info.js +53 -0
  143. package/dist/cjs/common/icons/layers.js +54 -0
  144. package/dist/cjs/common/icons/left-arrow.js +43 -0
  145. package/dist/cjs/common/icons/legend.js +68 -0
  146. package/dist/cjs/common/icons/line-chart.js +40 -0
  147. package/dist/cjs/common/icons/line-string.js +60 -0
  148. package/dist/cjs/common/icons/location-marker.js +58 -0
  149. package/dist/cjs/common/icons/login.js +43 -0
  150. package/dist/cjs/common/icons/logout.js +42 -0
  151. package/dist/cjs/common/icons/map-icon.js +47 -0
  152. package/dist/cjs/common/icons/map-pin.js +56 -0
  153. package/dist/cjs/common/icons/messages.js +54 -0
  154. package/dist/cjs/common/icons/minus.js +40 -0
  155. package/dist/cjs/common/icons/moon.js +58 -0
  156. package/dist/cjs/common/icons/order-by-dataset.js +46 -0
  157. package/dist/cjs/common/icons/order-by-list.js +38 -0
  158. package/dist/cjs/common/icons/pause.js +60 -0
  159. package/dist/cjs/common/icons/picture.js +59 -0
  160. package/dist/cjs/common/icons/pin.js +52 -0
  161. package/dist/cjs/common/icons/play.js +50 -0
  162. package/dist/cjs/common/icons/pointer-click.js +58 -0
  163. package/dist/cjs/common/icons/polygon.js +62 -0
  164. package/dist/cjs/common/icons/rectangle.js +63 -0
  165. package/dist/cjs/common/icons/reduce.js +43 -0
  166. package/dist/cjs/common/icons/reset.js +56 -0
  167. package/dist/cjs/common/icons/save.js +57 -0
  168. package/dist/cjs/common/icons/save2.js +54 -0
  169. package/dist/cjs/common/icons/search.js +42 -0
  170. package/dist/cjs/common/icons/settings.js +60 -0
  171. package/dist/cjs/common/icons/share.js +70 -0
  172. package/dist/cjs/common/icons/speed.js +52 -0
  173. package/dist/cjs/common/icons/split.js +68 -0
  174. package/dist/cjs/common/icons/square-select.js +42 -0
  175. package/dist/cjs/common/icons/sun.js +74 -0
  176. package/dist/cjs/common/icons/sunrise.js +70 -0
  177. package/dist/cjs/common/icons/sunset.js +70 -0
  178. package/dist/cjs/common/icons/timeline-marker.js +55 -0
  179. package/dist/cjs/common/icons/trash.js +54 -0
  180. package/dist/cjs/common/icons/vert-dots.js +78 -0
  181. package/dist/cjs/common/icons/vert-three-dots.js +53 -0
  182. package/dist/cjs/common/icons/warning-sign.js +60 -0
  183. package/dist/cjs/common/icons/warning.js +54 -0
  184. package/dist/cjs/common/icons/zoom-in.js +47 -0
  185. package/dist/cjs/common/icons/zoom-out.js +47 -0
  186. package/dist/cjs/common/image-preview.js +64 -0
  187. package/dist/cjs/common/index.js +282 -0
  188. package/dist/cjs/common/info-helper.js +61 -0
  189. package/dist/cjs/common/item-selector/accessor.js +37 -0
  190. package/dist/cjs/common/item-selector/chickleted-input.js +157 -0
  191. package/dist/cjs/common/item-selector/dropdown-list.js +257 -0
  192. package/dist/cjs/common/item-selector/dropdown-select.js +84 -0
  193. package/dist/cjs/common/item-selector/item-selector.js +254 -0
  194. package/dist/cjs/common/item-selector/typeahead.js +435 -0
  195. package/dist/cjs/common/layout-splitter.js +230 -0
  196. package/dist/cjs/common/line-chart.js +286 -0
  197. package/dist/cjs/common/link-renderer.js +20 -0
  198. package/dist/cjs/common/loading-spinner.js +50 -0
  199. package/dist/cjs/common/logo.js +68 -0
  200. package/dist/cjs/common/map-layer-selector.js +38 -0
  201. package/dist/cjs/common/modal.js +170 -0
  202. package/dist/cjs/common/portaled.js +287 -0
  203. package/dist/cjs/common/progress-bar.js +47 -0
  204. package/dist/cjs/common/radius-legend.js +131 -0
  205. package/dist/cjs/common/range-brush.js +265 -0
  206. package/dist/cjs/common/range-plot.js +217 -0
  207. package/dist/cjs/common/range-slider-timeline-panel.js +42 -0
  208. package/dist/cjs/common/range-slider-timeline.js +112 -0
  209. package/dist/cjs/common/range-slider.js +371 -0
  210. package/dist/cjs/common/slider/mouse-event.js +104 -0
  211. package/dist/cjs/common/slider/slider-bar-handle.js +90 -0
  212. package/dist/cjs/common/slider/slider-handle.js +136 -0
  213. package/dist/cjs/common/slider/slider.js +251 -0
  214. package/dist/cjs/common/styled-components.js +447 -0
  215. package/dist/cjs/common/switch.js +21 -0
  216. package/dist/cjs/common/sync-timeline-control.js +61 -0
  217. package/dist/cjs/common/time-range-slider-time-title.js +62 -0
  218. package/dist/cjs/common/time-range-slider.js +143 -0
  219. package/dist/cjs/common/time-slider-marker.js +115 -0
  220. package/dist/cjs/common/timeline-helpers.js +57 -0
  221. package/dist/cjs/common/timeline-slider.js +140 -0
  222. package/dist/cjs/common/tippy-tooltip.js +134 -0
  223. package/dist/cjs/common/toolbar-item.js +81 -0
  224. package/dist/cjs/common/toolbar.js +27 -0
  225. package/dist/cjs/common/vertical-toolbar.js +16 -0
  226. package/dist/cjs/connect/keplergl-connect.js +44 -0
  227. package/dist/cjs/connect/with-local-selector.js +85 -0
  228. package/dist/cjs/container.js +180 -0
  229. package/dist/cjs/context.js +43 -0
  230. package/dist/cjs/dnd-context.js +174 -0
  231. package/dist/cjs/editor/editor.js +218 -0
  232. package/dist/cjs/editor/feature-action-panel.js +169 -0
  233. package/dist/cjs/editor/feature-properties-editor.js +215 -0
  234. package/dist/cjs/editor/filter-feature-badges.js +92 -0
  235. package/dist/cjs/effects/compact-color-picker.js +110 -0
  236. package/dist/cjs/effects/effect-configurator.js +473 -0
  237. package/dist/cjs/effects/effect-list.js +129 -0
  238. package/dist/cjs/effects/effect-manager.js +126 -0
  239. package/dist/cjs/effects/effect-panel-header.js +196 -0
  240. package/dist/cjs/effects/effect-panel.js +86 -0
  241. package/dist/cjs/effects/effect-time-configurator.js +313 -0
  242. package/dist/cjs/effects/effect-time-selector.js +152 -0
  243. package/dist/cjs/effects/effect-time-slider.js +198 -0
  244. package/dist/cjs/effects/effect-type-dropdown-list.js +65 -0
  245. package/dist/cjs/effects/effect-type-list-item.js +98 -0
  246. package/dist/cjs/effects/effect-type-selector.js +76 -0
  247. package/dist/cjs/effects/side-panel-title.js +37 -0
  248. package/dist/cjs/effects/surface-fog-section.js +262 -0
  249. package/dist/cjs/effects/timezone-selector.js +57 -0
  250. package/dist/cjs/filter-animation-controller.js +76 -0
  251. package/dist/cjs/filters/components.js +14 -0
  252. package/dist/cjs/filters/filter-panels/filter-panel-with-field-select.js +77 -0
  253. package/dist/cjs/filters/filter-panels/filter-synced-dataset-panel.js +260 -0
  254. package/dist/cjs/filters/filter-panels/multi-select-filter-panel.js +48 -0
  255. package/dist/cjs/filters/filter-panels/new-filter-panel.js +66 -0
  256. package/dist/cjs/filters/filter-panels/polygon-filter-panel.js +67 -0
  257. package/dist/cjs/filters/filter-panels/range-filter-panel.js +53 -0
  258. package/dist/cjs/filters/filter-panels/single-select-filter-panel.js +48 -0
  259. package/dist/cjs/filters/filter-panels/time-range-filter-panel.js +129 -0
  260. package/dist/cjs/filters/filter-panels/time-synced-field-selector.js +28 -0
  261. package/dist/cjs/filters/filter-panels/types.js +6 -0
  262. package/dist/cjs/filters/index.js +63 -0
  263. package/dist/cjs/filters/multi-select-filter.js +31 -0
  264. package/dist/cjs/filters/polygon-filter.js +76 -0
  265. package/dist/cjs/filters/range-filter.js +35 -0
  266. package/dist/cjs/filters/single-select-filter.js +40 -0
  267. package/dist/cjs/filters/time-range-filter.js +69 -0
  268. package/dist/cjs/filters/time-widget-settings.js +311 -0
  269. package/dist/cjs/filters/time-widget-top.js +80 -0
  270. package/dist/cjs/filters/time-widget.js +376 -0
  271. package/dist/cjs/filters/types.js +6 -0
  272. package/dist/cjs/geocoder/geocoder.js +327 -0
  273. package/dist/cjs/geocoder-panel.js +172 -0
  274. package/dist/cjs/hooks/use-cloud-list-provider.js +46 -0
  275. package/dist/cjs/hooks/use-dnd-effects.js +69 -0
  276. package/dist/cjs/hooks/use-dnd-layers.js +141 -0
  277. package/dist/cjs/hooks/use-feature-flags.js +17 -0
  278. package/dist/cjs/hooks/use-fetch-raster-tile-metadata.js +120 -0
  279. package/dist/cjs/hooks/use-fetch-vector-tile-metadata.js +133 -0
  280. package/dist/cjs/hooks/use-legend-position.js +176 -0
  281. package/dist/cjs/hooks/use-on-click-outside.js +36 -0
  282. package/dist/cjs/index.js +2929 -0
  283. package/dist/cjs/injector.js +151 -0
  284. package/dist/cjs/kepler-gl.js +681 -0
  285. package/dist/cjs/layer-animation-controller.js +53 -0
  286. package/dist/cjs/loading-indicator.js +76 -0
  287. package/dist/cjs/map/annotations/annotation-control.js +55 -0
  288. package/dist/cjs/map/attribution.js +391 -0
  289. package/dist/cjs/map/coordinate-info.js +42 -0
  290. package/dist/cjs/map/effects/effect-control.js +51 -0
  291. package/dist/cjs/map/layer-hover-info.js +318 -0
  292. package/dist/cjs/map/lazy-tippy.js +60 -0
  293. package/dist/cjs/map/locale-panel.js +76 -0
  294. package/dist/cjs/map/map-control-panel.js +140 -0
  295. package/dist/cjs/map/map-control-toolbar.js +18 -0
  296. package/dist/cjs/map/map-control-tooltip.js +34 -0
  297. package/dist/cjs/map/map-control.js +87 -0
  298. package/dist/cjs/map/map-draw-panel.js +150 -0
  299. package/dist/cjs/map/map-legend-panel.js +289 -0
  300. package/dist/cjs/map/map-legend.js +509 -0
  301. package/dist/cjs/map/map-navigation-control.js +159 -0
  302. package/dist/cjs/map/map-popover-content.js +28 -0
  303. package/dist/cjs/map/map-popover.js +189 -0
  304. package/dist/cjs/map/map-scale.js +162 -0
  305. package/dist/cjs/map/split-map-button.js +176 -0
  306. package/dist/cjs/map/theme-toggle-button.js +64 -0
  307. package/dist/cjs/map/toggle-3d-button.js +122 -0
  308. package/dist/cjs/map-container.js +1333 -0
  309. package/dist/cjs/map-view-state-context.js +98 -0
  310. package/dist/cjs/maps-layout.js +102 -0
  311. package/dist/cjs/modal-container.js +457 -0
  312. package/dist/cjs/modals/add-map-style-modal.js +262 -0
  313. package/dist/cjs/modals/cloud-components/cloud-header.js +59 -0
  314. package/dist/cjs/modals/cloud-components/cloud-item.js +107 -0
  315. package/dist/cjs/modals/cloud-components/cloud-item.spec.js +164 -0
  316. package/dist/cjs/modals/cloud-components/cloud-maps.js +48 -0
  317. package/dist/cjs/modals/cloud-components/cloud-maps.spec.js +98 -0
  318. package/dist/cjs/modals/cloud-components/provider-select.js +30 -0
  319. package/dist/cjs/modals/cloud-tile.js +216 -0
  320. package/dist/cjs/modals/data-table-modal.js +227 -0
  321. package/dist/cjs/modals/delete-data-modal.js +41 -0
  322. package/dist/cjs/modals/error-display.js +32 -0
  323. package/dist/cjs/modals/export-data-modal.js +163 -0
  324. package/dist/cjs/modals/export-image-modal.js +188 -0
  325. package/dist/cjs/modals/export-map-modal/components.js +34 -0
  326. package/dist/cjs/modals/export-map-modal/export-html-map.js +128 -0
  327. package/dist/cjs/modals/export-map-modal/export-json-map.js +81 -0
  328. package/dist/cjs/modals/export-map-modal/export-map-modal.js +84 -0
  329. package/dist/cjs/modals/export-video-modal.js +440 -0
  330. package/dist/cjs/modals/export-video-modal.spec.js +732 -0
  331. package/dist/cjs/modals/fog-height-animation.js +97 -0
  332. package/dist/cjs/modals/globe-export-video-container.js +642 -0
  333. package/dist/cjs/modals/globe-export-video-preview.js +166 -0
  334. package/dist/cjs/modals/hubble-utils.js +452 -0
  335. package/dist/cjs/modals/hubble-utils.spec.js +397 -0
  336. package/dist/cjs/modals/image-modal-container.js +57 -0
  337. package/dist/cjs/modals/load-data-modal.js +97 -0
  338. package/dist/cjs/modals/load-storage-map.js +79 -0
  339. package/dist/cjs/modals/load-storage-map.spec.js +216 -0
  340. package/dist/cjs/modals/loading-dialog.js +37 -0
  341. package/dist/cjs/modals/modal-dialog.js +16 -0
  342. package/dist/cjs/modals/modal-tabs.js +74 -0
  343. package/dist/cjs/modals/overwrite-map-modal.js +83 -0
  344. package/dist/cjs/modals/save-map-modal.js +179 -0
  345. package/dist/cjs/modals/save-map-modal.spec.js +195 -0
  346. package/dist/cjs/modals/share-map-modal.js +168 -0
  347. package/dist/cjs/modals/share-map-modal.spec.js +173 -0
  348. package/dist/cjs/modals/status-panel.js +65 -0
  349. package/dist/cjs/modals/swipe-composite-utils.js +126 -0
  350. package/dist/cjs/modals/swipe-composite-utils.spec.js +69 -0
  351. package/dist/cjs/modals/swipe-export-settings.js +372 -0
  352. package/dist/cjs/modals/swipe-export-video-container.js +653 -0
  353. package/dist/cjs/modals/swipe-export-video-preview.js +395 -0
  354. package/dist/cjs/modals/tilesets-modals/common.js +6 -0
  355. package/dist/cjs/modals/tilesets-modals/load-data-footer.js +55 -0
  356. package/dist/cjs/modals/tilesets-modals/load-tileset.js +168 -0
  357. package/dist/cjs/modals/tilesets-modals/tileset-bitmap-form.js +283 -0
  358. package/dist/cjs/modals/tilesets-modals/tileset-icon.js +39 -0
  359. package/dist/cjs/modals/tilesets-modals/tileset-raster-form.js +287 -0
  360. package/dist/cjs/modals/tilesets-modals/tileset-tile3d-form.js +388 -0
  361. package/dist/cjs/modals/tilesets-modals/tileset-vector-form.js +261 -0
  362. package/dist/cjs/modals/tilesets-modals/tileset-wms-form.js +206 -0
  363. package/dist/cjs/notification-panel/notification-item.js +119 -0
  364. package/dist/cjs/notification-panel.js +39 -0
  365. package/dist/cjs/plot-container.js +311 -0
  366. package/dist/cjs/side-panel/add-by-dataset-button.js +128 -0
  367. package/dist/cjs/side-panel/common/dataset-info.js +34 -0
  368. package/dist/cjs/side-panel/common/dataset-tag.js +62 -0
  369. package/dist/cjs/side-panel/common/dataset-title.js +143 -0
  370. package/dist/cjs/side-panel/common/source-data-catalog.js +49 -0
  371. package/dist/cjs/side-panel/common/source-data-selector-content.js +64 -0
  372. package/dist/cjs/side-panel/common/source-data-selector.js +41 -0
  373. package/dist/cjs/side-panel/common/source-selector.js +56 -0
  374. package/dist/cjs/side-panel/common/types.js +6 -0
  375. package/dist/cjs/side-panel/custom-panel.js +39 -0
  376. package/dist/cjs/side-panel/filter-manager.js +202 -0
  377. package/dist/cjs/side-panel/filter-panel/add-filter-button.js +27 -0
  378. package/dist/cjs/side-panel/filter-panel/filter-panel-header.js +67 -0
  379. package/dist/cjs/side-panel/filter-panel/filter-panel.js +92 -0
  380. package/dist/cjs/side-panel/interaction-manager.js +45 -0
  381. package/dist/cjs/side-panel/interaction-panel/brush-config.js +41 -0
  382. package/dist/cjs/side-panel/interaction-panel/geocoder-config.js +45 -0
  383. package/dist/cjs/side-panel/interaction-panel/interaction-panel.js +121 -0
  384. package/dist/cjs/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +164 -0
  385. package/dist/cjs/side-panel/interaction-panel/tooltip-config.js +149 -0
  386. package/dist/cjs/side-panel/layer-manager.js +232 -0
  387. package/dist/cjs/side-panel/layer-panel/add-layer-button.js +27 -0
  388. package/dist/cjs/side-panel/layer-panel/aggr-scale-selector.js +37 -0
  389. package/dist/cjs/side-panel/layer-panel/channel-by-value-selector.js +71 -0
  390. package/dist/cjs/side-panel/layer-panel/color-breaks-panel.js +193 -0
  391. package/dist/cjs/side-panel/layer-panel/color-palette-preset.js +45 -0
  392. package/dist/cjs/side-panel/layer-panel/color-palette.js +74 -0
  393. package/dist/cjs/side-panel/layer-panel/color-range-selector.js +242 -0
  394. package/dist/cjs/side-panel/layer-panel/color-scale-selector.js +295 -0
  395. package/dist/cjs/side-panel/layer-panel/color-selector.js +186 -0
  396. package/dist/cjs/side-panel/layer-panel/column-selector.js +59 -0
  397. package/dist/cjs/side-panel/layer-panel/custom-palette.js +787 -0
  398. package/dist/cjs/side-panel/layer-panel/custom-picker.js +83 -0
  399. package/dist/cjs/side-panel/layer-panel/dataset-layer-group.js +68 -0
  400. package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +109 -0
  401. package/dist/cjs/side-panel/layer-panel/dataset-section.js +74 -0
  402. package/dist/cjs/side-panel/layer-panel/dimension-scale-selector.js +91 -0
  403. package/dist/cjs/side-panel/layer-panel/how-to-button.js +27 -0
  404. package/dist/cjs/side-panel/layer-panel/layer-color-selector.js +105 -0
  405. package/dist/cjs/side-panel/layer-panel/layer-column-config.js +85 -0
  406. package/dist/cjs/side-panel/layer-panel/layer-column-mode-config.js +192 -0
  407. package/dist/cjs/side-panel/layer-panel/layer-config-group.js +143 -0
  408. package/dist/cjs/side-panel/layer-panel/layer-configurator.js +1116 -0
  409. package/dist/cjs/side-panel/layer-panel/layer-error-message.js +29 -0
  410. package/dist/cjs/side-panel/layer-panel/layer-group-header.js +178 -0
  411. package/dist/cjs/side-panel/layer-panel/layer-list.js +330 -0
  412. package/dist/cjs/side-panel/layer-panel/layer-panel-header.js +311 -0
  413. package/dist/cjs/side-panel/layer-panel/layer-panel.js +171 -0
  414. package/dist/cjs/side-panel/layer-panel/layer-type-dropdown-list.js +77 -0
  415. package/dist/cjs/side-panel/layer-panel/layer-type-list-item.js +71 -0
  416. package/dist/cjs/side-panel/layer-panel/layer-type-selector.js +57 -0
  417. package/dist/cjs/side-panel/layer-panel/raster-tile-colormap-list-item.js +60 -0
  418. package/dist/cjs/side-panel/layer-panel/raster-tile-layer-configurator.js +457 -0
  419. package/dist/cjs/side-panel/layer-panel/scenegraph-model-selector.js +122 -0
  420. package/dist/cjs/side-panel/layer-panel/single-color-palette.js +85 -0
  421. package/dist/cjs/side-panel/layer-panel/text-label-panel.js +173 -0
  422. package/dist/cjs/side-panel/layer-panel/vector-tile-layer-configurator.js +93 -0
  423. package/dist/cjs/side-panel/layer-panel/vis-config-by-field-selector.js +60 -0
  424. package/dist/cjs/side-panel/layer-panel/vis-config-slider.js +167 -0
  425. package/dist/cjs/side-panel/layer-panel/vis-config-switch.js +55 -0
  426. package/dist/cjs/side-panel/map-manager.js +108 -0
  427. package/dist/cjs/side-panel/map-style-panel/globe-config-panel.js +334 -0
  428. package/dist/cjs/side-panel/map-style-panel/map-layer-group-color-picker.js +76 -0
  429. package/dist/cjs/side-panel/map-style-panel/map-layer-group-item.js +94 -0
  430. package/dist/cjs/side-panel/map-style-panel/map-layer-selector.js +74 -0
  431. package/dist/cjs/side-panel/map-style-panel/map-style-selector.js +97 -0
  432. package/dist/cjs/side-panel/panel-header-action.js +73 -0
  433. package/dist/cjs/side-panel/panel-header.js +309 -0
  434. package/dist/cjs/side-panel/panel-tab.js +55 -0
  435. package/dist/cjs/side-panel/panel-title.js +40 -0
  436. package/dist/cjs/side-panel/panel-toggle.js +47 -0
  437. package/dist/cjs/side-panel/panel-view-list-toggle.js +97 -0
  438. package/dist/cjs/side-panel/side-bar.js +126 -0
  439. package/dist/cjs/side-panel.js +235 -0
  440. package/dist/cjs/types.js +6 -0
  441. package/dist/common/data-table/column-statistics-categoric.d.ts +9 -0
  442. package/dist/common/data-table/column-statistics-components.d.ts +31 -0
  443. package/dist/common/data-table/column-statistics-numeric.d.ts +18 -0
  444. package/dist/common/data-table/column-statistics-time.d.ts +19 -0
  445. package/dist/common/data-table/header-cell.d.ts +7 -5
  446. package/dist/common/data-table/index.d.ts +7 -24
  447. package/dist/common/histogram-plot.d.ts +24 -1
  448. package/dist/common/icons/draw-point.d.ts +10 -0
  449. package/dist/common/icons/index.d.ts +2 -0
  450. package/dist/common/icons/line-string.d.ts +10 -0
  451. package/dist/common/toolbar-item.d.ts +2 -0
  452. package/dist/editor/editor.d.ts +1 -0
  453. package/dist/editor/feature-action-panel.d.ts +1 -0
  454. package/dist/editor/feature-properties-editor.d.ts +8 -0
  455. package/dist/editor/filter-feature-badges.d.ts +12 -0
  456. package/dist/esm/annotations/annotation-node.js +138 -0
  457. package/dist/esm/annotations/annotation-overlay.js +161 -0
  458. package/dist/esm/annotations/annotation-panel.js +355 -0
  459. package/dist/esm/annotations/annotation-text.js +142 -0
  460. package/dist/esm/annotations/annotation-utils.js +185 -0
  461. package/dist/esm/annotations/index.js +9 -0
  462. package/dist/esm/annotations/lexical-editor/clickable-link-plugin.js +64 -0
  463. package/dist/esm/annotations/lexical-editor/floating-link-editor.js +186 -0
  464. package/dist/esm/annotations/lexical-editor/index.js +9 -0
  465. package/dist/esm/annotations/lexical-editor/lexical-constants.js +16 -0
  466. package/dist/esm/annotations/lexical-editor/lexical-nodes.js +7 -0
  467. package/dist/esm/annotations/lexical-editor/lexical-rich-text-editor.js +114 -0
  468. package/dist/esm/annotations/lexical-editor/lexical-theme.js +19 -0
  469. package/dist/esm/annotations/lexical-editor/lexical-toolbar.js +285 -0
  470. package/dist/esm/annotations/lexical-editor/lexical-utils.js +37 -0
  471. package/dist/esm/annotations/lexical-editor/use-lexical-toolbar.js +248 -0
  472. package/dist/esm/bottom-widget.js +176 -0
  473. package/dist/esm/common/action-panel.js +126 -0
  474. package/dist/esm/common/animation-control/animation-control.js +95 -0
  475. package/dist/esm/common/animation-control/animation-controller.js +266 -0
  476. package/dist/esm/common/animation-control/animation-speed-slider.js +56 -0
  477. package/dist/esm/common/animation-control/animation-window-control.js +50 -0
  478. package/dist/esm/common/animation-control/export-video-control.js +36 -0
  479. package/dist/esm/common/animation-control/floating-time-display.js +124 -0
  480. package/dist/esm/common/animation-control/play-control.js +43 -0
  481. package/dist/esm/common/animation-control/playback-controls.js +157 -0
  482. package/dist/esm/common/animation-control/reset-control.js +34 -0
  483. package/dist/esm/common/animation-control/speed-control.js +46 -0
  484. package/dist/esm/common/animation-control/window-action-control.js +48 -0
  485. package/dist/esm/common/checkbox.js +94 -0
  486. package/dist/esm/common/color-legend.js +261 -0
  487. package/dist/esm/common/column-stats-chart.js +305 -0
  488. package/dist/esm/common/data-table/button.js +33 -0
  489. package/dist/esm/common/data-table/canvas.js +22 -0
  490. package/dist/esm/common/data-table/cell-size.js +194 -0
  491. package/dist/esm/common/data-table/column-statistics-categoric.js +33 -0
  492. package/dist/esm/common/data-table/column-statistics-components.js +59 -0
  493. package/dist/esm/common/data-table/column-statistics-numeric.js +78 -0
  494. package/dist/esm/common/data-table/column-statistics-time.js +60 -0
  495. package/dist/esm/common/data-table/display-format.js +118 -0
  496. package/dist/esm/common/data-table/grid.js +100 -0
  497. package/dist/esm/common/data-table/header-cell.js +220 -0
  498. package/dist/esm/common/data-table/index.js +536 -0
  499. package/dist/esm/common/data-table/option-dropdown.js +152 -0
  500. package/dist/esm/common/dataset-label.js +22 -0
  501. package/dist/esm/common/dnd-layer-items.js +16 -0
  502. package/dist/esm/common/error-boundary.js +55 -0
  503. package/dist/esm/common/field-selector.js +164 -0
  504. package/dist/esm/common/field-token.js +38 -0
  505. package/dist/esm/common/file-uploader/file-drop.js +170 -0
  506. package/dist/esm/common/file-uploader/file-upload-progress.js +77 -0
  507. package/dist/esm/common/file-uploader/file-upload.js +234 -0
  508. package/dist/esm/common/file-uploader/upload-button.js +51 -0
  509. package/dist/esm/common/flex-container.js +10 -0
  510. package/dist/esm/common/histogram-plot.js +275 -0
  511. package/dist/esm/common/icon-button.js +20 -0
  512. package/dist/esm/common/icons/3d-models/airplane.js +97 -0
  513. package/dist/esm/common/icons/3d-models/bicycle.js +419 -0
  514. package/dist/esm/common/icons/3d-models/boeing.js +112 -0
  515. package/dist/esm/common/icons/3d-models/car.js +103 -0
  516. package/dist/esm/common/icons/3d-models/cargoship.js +239 -0
  517. package/dist/esm/common/icons/3d-models/evtol.js +127 -0
  518. package/dist/esm/common/icons/3d-models/glider.js +55 -0
  519. package/dist/esm/common/icons/3d-models/helicopter.js +103 -0
  520. package/dist/esm/common/icons/3d-models/scooter.js +152 -0
  521. package/dist/esm/common/icons/3d-models/semitruck.js +170 -0
  522. package/dist/esm/common/icons/3d-models/truck.js +115 -0
  523. package/dist/esm/common/icons/add.js +34 -0
  524. package/dist/esm/common/icons/anchor_window.js +36 -0
  525. package/dist/esm/common/icons/annotation-text.js +49 -0
  526. package/dist/esm/common/icons/arrow-down-alt.js +34 -0
  527. package/dist/esm/common/icons/arrow-down-full.js +43 -0
  528. package/dist/esm/common/icons/arrow-down-small.js +47 -0
  529. package/dist/esm/common/icons/arrow-down.js +44 -0
  530. package/dist/esm/common/icons/arrow-left.js +37 -0
  531. package/dist/esm/common/icons/arrow-right.js +34 -0
  532. package/dist/esm/common/icons/arrow-up-alt.js +35 -0
  533. package/dist/esm/common/icons/arrow-up-solid.js +34 -0
  534. package/dist/esm/common/icons/arrow-up.js +34 -0
  535. package/dist/esm/common/icons/base-map.js +49 -0
  536. package/dist/esm/common/icons/base.js +72 -0
  537. package/dist/esm/common/icons/bug.js +64 -0
  538. package/dist/esm/common/icons/calendar.js +42 -0
  539. package/dist/esm/common/icons/cancel.js +34 -0
  540. package/dist/esm/common/icons/checkmark.js +40 -0
  541. package/dist/esm/common/icons/clipboard.js +35 -0
  542. package/dist/esm/common/icons/clock.js +36 -0
  543. package/dist/esm/common/icons/close.js +40 -0
  544. package/dist/esm/common/icons/cloud.js +44 -0
  545. package/dist/esm/common/icons/code-alt.js +37 -0
  546. package/dist/esm/common/icons/copy.js +45 -0
  547. package/dist/esm/common/icons/crosshairs.js +37 -0
  548. package/dist/esm/common/icons/cube-3d.js +48 -0
  549. package/dist/esm/common/icons/cursor-click.js +38 -0
  550. package/dist/esm/common/icons/cursor-point.js +44 -0
  551. package/dist/esm/common/icons/data-table.js +70 -0
  552. package/dist/esm/common/icons/db.js +52 -0
  553. package/dist/esm/common/icons/delete.js +46 -0
  554. package/dist/esm/common/icons/docs.js +50 -0
  555. package/dist/esm/common/icons/docs2.js +44 -0
  556. package/dist/esm/common/icons/drag-n-drop.js +36 -0
  557. package/dist/esm/common/icons/draggable-dots.js +78 -0
  558. package/dist/esm/common/icons/draw-point.js +44 -0
  559. package/dist/esm/common/icons/draw-polygon.js +54 -0
  560. package/dist/esm/common/icons/edit.js +42 -0
  561. package/dist/esm/common/icons/effects/brightness-contrast.js +63 -0
  562. package/dist/esm/common/icons/effects/color-halftone.js +102 -0
  563. package/dist/esm/common/icons/effects/distance-fog.js +72 -0
  564. package/dist/esm/common/icons/effects/dot-screen.js +97 -0
  565. package/dist/esm/common/icons/effects/edge-work.js +56 -0
  566. package/dist/esm/common/icons/effects/hexagonal-pixelate.js +123 -0
  567. package/dist/esm/common/icons/effects/hue-saturation.js +54 -0
  568. package/dist/esm/common/icons/effects/ink.js +53 -0
  569. package/dist/esm/common/icons/effects/light-and-shadow.js +42 -0
  570. package/dist/esm/common/icons/effects/magic-wand.js +54 -0
  571. package/dist/esm/common/icons/effects/magnify.js +61 -0
  572. package/dist/esm/common/icons/effects/noise.js +107 -0
  573. package/dist/esm/common/icons/effects/sepia.js +54 -0
  574. package/dist/esm/common/icons/effects/surface-fog.js +79 -0
  575. package/dist/esm/common/icons/effects/tilt-shift.js +63 -0
  576. package/dist/esm/common/icons/effects/triangle-blur.js +58 -0
  577. package/dist/esm/common/icons/effects/vibrance.js +54 -0
  578. package/dist/esm/common/icons/effects/vignette.js +47 -0
  579. package/dist/esm/common/icons/effects/zoom-blur.js +82 -0
  580. package/dist/esm/common/icons/email.js +38 -0
  581. package/dist/esm/common/icons/expand.js +36 -0
  582. package/dist/esm/common/icons/eye-seen.js +43 -0
  583. package/dist/esm/common/icons/eye-unseen.js +41 -0
  584. package/dist/esm/common/icons/file-type.js +30 -0
  585. package/dist/esm/common/icons/file.js +34 -0
  586. package/dist/esm/common/icons/files.js +37 -0
  587. package/dist/esm/common/icons/filter-funnel.js +44 -0
  588. package/dist/esm/common/icons/folder.js +44 -0
  589. package/dist/esm/common/icons/free-window.js +39 -0
  590. package/dist/esm/common/icons/gear.js +36 -0
  591. package/dist/esm/common/icons/globe.js +47 -0
  592. package/dist/esm/common/icons/hash.js +34 -0
  593. package/dist/esm/common/icons/help.js +44 -0
  594. package/dist/esm/common/icons/histogram.js +37 -0
  595. package/dist/esm/common/icons/horizontal-resize-handle.js +52 -0
  596. package/dist/esm/common/icons/index.js +126 -0
  597. package/dist/esm/common/icons/info.js +47 -0
  598. package/dist/esm/common/icons/layers.js +48 -0
  599. package/dist/esm/common/icons/left-arrow.js +37 -0
  600. package/dist/esm/common/icons/legend.js +62 -0
  601. package/dist/esm/common/icons/line-chart.js +34 -0
  602. package/dist/esm/common/icons/line-string.js +54 -0
  603. package/dist/esm/common/icons/location-marker.js +52 -0
  604. package/dist/esm/common/icons/login.js +37 -0
  605. package/dist/esm/common/icons/logout.js +36 -0
  606. package/dist/esm/common/icons/map-icon.js +40 -0
  607. package/dist/esm/common/icons/map-pin.js +50 -0
  608. package/dist/esm/common/icons/messages.js +48 -0
  609. package/dist/esm/common/icons/minus.js +34 -0
  610. package/dist/esm/common/icons/moon.js +52 -0
  611. package/dist/esm/common/icons/order-by-dataset.js +41 -0
  612. package/dist/esm/common/icons/order-by-list.js +33 -0
  613. package/dist/esm/common/icons/pause.js +54 -0
  614. package/dist/esm/common/icons/picture.js +55 -0
  615. package/dist/esm/common/icons/pin.js +46 -0
  616. package/dist/esm/common/icons/play.js +44 -0
  617. package/dist/esm/common/icons/pointer-click.js +52 -0
  618. package/dist/esm/common/icons/polygon.js +56 -0
  619. package/dist/esm/common/icons/rectangle.js +57 -0
  620. package/dist/esm/common/icons/reduce.js +37 -0
  621. package/dist/esm/common/icons/reset.js +50 -0
  622. package/dist/esm/common/icons/save.js +51 -0
  623. package/dist/esm/common/icons/save2.js +48 -0
  624. package/dist/esm/common/icons/search.js +36 -0
  625. package/dist/esm/common/icons/settings.js +54 -0
  626. package/dist/esm/common/icons/share.js +64 -0
  627. package/dist/esm/common/icons/speed.js +46 -0
  628. package/dist/esm/common/icons/split.js +62 -0
  629. package/dist/esm/common/icons/square-select.js +36 -0
  630. package/dist/esm/common/icons/sun.js +68 -0
  631. package/dist/esm/common/icons/sunrise.js +64 -0
  632. package/dist/esm/common/icons/sunset.js +64 -0
  633. package/dist/esm/common/icons/timeline-marker.js +49 -0
  634. package/dist/esm/common/icons/trash.js +48 -0
  635. package/dist/esm/common/icons/vert-dots.js +72 -0
  636. package/dist/esm/common/icons/vert-three-dots.js +47 -0
  637. package/dist/esm/common/icons/warning-sign.js +54 -0
  638. package/dist/esm/common/icons/warning.js +48 -0
  639. package/dist/esm/common/icons/zoom-in.js +41 -0
  640. package/dist/esm/common/icons/zoom-out.js +41 -0
  641. package/dist/esm/common/image-preview.js +59 -0
  642. package/dist/esm/common/index.js +8 -0
  643. package/dist/esm/common/info-helper.js +56 -0
  644. package/dist/esm/common/item-selector/accessor.js +31 -0
  645. package/dist/esm/common/item-selector/chickleted-input.js +150 -0
  646. package/dist/esm/common/item-selector/dropdown-list.js +251 -0
  647. package/dist/esm/common/item-selector/dropdown-select.js +79 -0
  648. package/dist/esm/common/item-selector/item-selector.js +247 -0
  649. package/dist/esm/common/item-selector/typeahead.js +428 -0
  650. package/dist/esm/common/layout-splitter.js +224 -0
  651. package/dist/esm/common/line-chart.js +279 -0
  652. package/dist/esm/common/link-renderer.js +13 -0
  653. package/dist/esm/common/loading-spinner.js +43 -0
  654. package/dist/esm/common/logo.js +63 -0
  655. package/dist/esm/common/map-layer-selector.js +33 -0
  656. package/dist/esm/common/modal.js +163 -0
  657. package/dist/esm/common/portaled.js +280 -0
  658. package/dist/esm/common/progress-bar.js +43 -0
  659. package/dist/esm/common/radius-legend.js +124 -0
  660. package/dist/esm/common/range-brush.js +258 -0
  661. package/dist/esm/common/range-plot.js +210 -0
  662. package/dist/esm/common/range-slider-timeline-panel.js +35 -0
  663. package/dist/esm/common/range-slider-timeline.js +105 -0
  664. package/dist/esm/common/range-slider.js +364 -0
  665. package/dist/esm/common/slider/mouse-event.js +98 -0
  666. package/dist/esm/common/slider/slider-bar-handle.js +84 -0
  667. package/dist/esm/common/slider/slider-handle.js +130 -0
  668. package/dist/esm/common/slider/slider.js +245 -0
  669. package/dist/esm/common/styled-components.js +441 -0
  670. package/dist/esm/common/switch.js +16 -0
  671. package/dist/esm/common/sync-timeline-control.js +54 -0
  672. package/dist/esm/common/time-range-slider-time-title.js +57 -0
  673. package/dist/esm/common/time-range-slider.js +135 -0
  674. package/dist/esm/common/time-slider-marker.js +105 -0
  675. package/dist/esm/common/timeline-helpers.js +48 -0
  676. package/dist/esm/common/timeline-slider.js +133 -0
  677. package/dist/esm/common/tippy-tooltip.js +127 -0
  678. package/dist/esm/common/toolbar-item.js +76 -0
  679. package/dist/esm/common/toolbar.js +22 -0
  680. package/dist/esm/common/vertical-toolbar.js +11 -0
  681. package/dist/esm/connect/keplergl-connect.js +38 -0
  682. package/dist/esm/connect/with-local-selector.js +78 -0
  683. package/dist/esm/container.js +171 -0
  684. package/dist/esm/context.js +35 -0
  685. package/dist/esm/dnd-context.js +167 -0
  686. package/dist/esm/editor/editor.js +211 -0
  687. package/dist/esm/editor/feature-action-panel.js +161 -0
  688. package/dist/esm/editor/feature-properties-editor.js +208 -0
  689. package/dist/esm/editor/filter-feature-badges.js +85 -0
  690. package/dist/esm/effects/compact-color-picker.js +103 -0
  691. package/dist/esm/effects/effect-configurator.js +465 -0
  692. package/dist/esm/effects/effect-list.js +122 -0
  693. package/dist/esm/effects/effect-manager.js +119 -0
  694. package/dist/esm/effects/effect-panel-header.js +188 -0
  695. package/dist/esm/effects/effect-panel.js +79 -0
  696. package/dist/esm/effects/effect-time-configurator.js +306 -0
  697. package/dist/esm/effects/effect-time-selector.js +145 -0
  698. package/dist/esm/effects/effect-time-slider.js +190 -0
  699. package/dist/esm/effects/effect-type-dropdown-list.js +57 -0
  700. package/dist/esm/effects/effect-type-list-item.js +89 -0
  701. package/dist/esm/effects/effect-type-selector.js +69 -0
  702. package/dist/esm/effects/side-panel-title.js +32 -0
  703. package/dist/esm/effects/surface-fog-section.js +254 -0
  704. package/dist/esm/effects/timezone-selector.js +50 -0
  705. package/dist/esm/filter-animation-controller.js +67 -0
  706. package/dist/esm/filters/components.js +9 -0
  707. package/dist/esm/filters/filter-panels/filter-panel-with-field-select.js +68 -0
  708. package/dist/esm/filters/filter-panels/filter-synced-dataset-panel.js +253 -0
  709. package/dist/esm/filters/filter-panels/multi-select-filter-panel.js +39 -0
  710. package/dist/esm/filters/filter-panels/new-filter-panel.js +56 -0
  711. package/dist/esm/filters/filter-panels/polygon-filter-panel.js +58 -0
  712. package/dist/esm/filters/filter-panels/range-filter-panel.js +44 -0
  713. package/dist/esm/filters/filter-panels/single-select-filter-panel.js +39 -0
  714. package/dist/esm/filters/filter-panels/time-range-filter-panel.js +120 -0
  715. package/dist/esm/filters/filter-panels/time-synced-field-selector.js +23 -0
  716. package/dist/esm/filters/filter-panels/types.js +3 -0
  717. package/dist/esm/filters/index.js +12 -0
  718. package/dist/esm/filters/multi-select-filter.js +24 -0
  719. package/dist/esm/filters/polygon-filter.js +67 -0
  720. package/dist/esm/filters/range-filter.js +28 -0
  721. package/dist/esm/filters/single-select-filter.js +33 -0
  722. package/dist/esm/filters/time-range-filter.js +61 -0
  723. package/dist/esm/filters/time-widget-settings.js +304 -0
  724. package/dist/esm/filters/time-widget-top.js +73 -0
  725. package/dist/esm/filters/time-widget.js +369 -0
  726. package/dist/esm/filters/types.js +3 -0
  727. package/dist/esm/geocoder/geocoder.js +318 -0
  728. package/dist/esm/geocoder-panel.js +164 -0
  729. package/dist/esm/hooks/use-cloud-list-provider.js +37 -0
  730. package/dist/esm/hooks/use-dnd-effects.js +62 -0
  731. package/dist/esm/hooks/use-dnd-layers.js +136 -0
  732. package/dist/esm/hooks/use-feature-flags.js +11 -0
  733. package/dist/esm/hooks/use-fetch-raster-tile-metadata.js +113 -0
  734. package/dist/esm/hooks/use-fetch-vector-tile-metadata.js +128 -0
  735. package/dist/esm/hooks/use-legend-position.js +170 -0
  736. package/dist/esm/hooks/use-on-click-outside.js +29 -0
  737. package/dist/esm/index.js +282 -0
  738. package/dist/esm/injector.js +141 -0
  739. package/dist/esm/kepler-gl.js +668 -0
  740. package/dist/esm/layer-animation-controller.js +44 -0
  741. package/dist/esm/loading-indicator.js +69 -0
  742. package/dist/esm/map/annotations/annotation-control.js +46 -0
  743. package/dist/esm/map/attribution.js +382 -0
  744. package/dist/esm/map/coordinate-info.js +36 -0
  745. package/dist/esm/map/effects/effect-control.js +42 -0
  746. package/dist/esm/map/layer-hover-info.js +312 -0
  747. package/dist/esm/map/lazy-tippy.js +53 -0
  748. package/dist/esm/map/locale-panel.js +67 -0
  749. package/dist/esm/map/map-control-panel.js +133 -0
  750. package/dist/esm/map/map-control-toolbar.js +13 -0
  751. package/dist/esm/map/map-control-tooltip.js +27 -0
  752. package/dist/esm/map/map-control.js +83 -0
  753. package/dist/esm/map/map-draw-panel.js +143 -0
  754. package/dist/esm/map/map-legend-panel.js +282 -0
  755. package/dist/esm/map/map-legend.js +496 -0
  756. package/dist/esm/map/map-navigation-control.js +152 -0
  757. package/dist/esm/map/map-popover-content.js +21 -0
  758. package/dist/esm/map/map-popover.js +181 -0
  759. package/dist/esm/map/map-scale.js +155 -0
  760. package/dist/esm/map/split-map-button.js +167 -0
  761. package/dist/esm/map/theme-toggle-button.js +55 -0
  762. package/dist/esm/map/toggle-3d-button.js +113 -0
  763. package/dist/esm/map-container.js +1303 -0
  764. package/dist/esm/map-view-state-context.js +89 -0
  765. package/dist/esm/maps-layout.js +95 -0
  766. package/dist/esm/modal-container.js +454 -0
  767. package/dist/esm/modals/add-map-style-modal.js +256 -0
  768. package/dist/esm/modals/cloud-components/cloud-header.js +52 -0
  769. package/dist/esm/modals/cloud-components/cloud-item.js +100 -0
  770. package/dist/esm/modals/cloud-components/cloud-item.spec.js +163 -0
  771. package/dist/esm/modals/cloud-components/cloud-maps.js +43 -0
  772. package/dist/esm/modals/cloud-components/cloud-maps.spec.js +94 -0
  773. package/dist/esm/modals/cloud-components/provider-select.js +25 -0
  774. package/dist/esm/modals/cloud-tile.js +209 -0
  775. package/dist/esm/modals/data-table-modal.js +220 -0
  776. package/dist/esm/modals/delete-data-modal.js +36 -0
  777. package/dist/esm/modals/error-display.js +23 -0
  778. package/dist/esm/modals/export-data-modal.js +155 -0
  779. package/dist/esm/modals/export-image-modal.js +181 -0
  780. package/dist/esm/modals/export-map-modal/components.js +29 -0
  781. package/dist/esm/modals/export-map-modal/export-html-map.js +123 -0
  782. package/dist/esm/modals/export-map-modal/export-json-map.js +74 -0
  783. package/dist/esm/modals/export-map-modal/export-map-modal.js +77 -0
  784. package/dist/esm/modals/export-video-modal.js +427 -0
  785. package/dist/esm/modals/export-video-modal.spec.js +731 -0
  786. package/dist/esm/modals/fog-height-animation.js +90 -0
  787. package/dist/esm/modals/globe-export-video-container.js +636 -0
  788. package/dist/esm/modals/globe-export-video-preview.js +159 -0
  789. package/dist/esm/modals/hubble-utils.js +434 -0
  790. package/dist/esm/modals/hubble-utils.spec.js +396 -0
  791. package/dist/esm/modals/image-modal-container.js +48 -0
  792. package/dist/esm/modals/load-data-modal.js +89 -0
  793. package/dist/esm/modals/load-storage-map.js +70 -0
  794. package/dist/esm/modals/load-storage-map.spec.js +212 -0
  795. package/dist/esm/modals/loading-dialog.js +32 -0
  796. package/dist/esm/modals/modal-dialog.js +9 -0
  797. package/dist/esm/modals/modal-tabs.js +67 -0
  798. package/dist/esm/modals/overwrite-map-modal.js +76 -0
  799. package/dist/esm/modals/save-map-modal.js +172 -0
  800. package/dist/esm/modals/save-map-modal.spec.js +196 -0
  801. package/dist/esm/modals/share-map-modal.js +160 -0
  802. package/dist/esm/modals/share-map-modal.spec.js +172 -0
  803. package/dist/esm/modals/status-panel.js +60 -0
  804. package/dist/esm/modals/swipe-composite-utils.js +119 -0
  805. package/dist/esm/modals/swipe-composite-utils.spec.js +67 -0
  806. package/dist/esm/modals/swipe-export-settings.js +366 -0
  807. package/dist/esm/modals/swipe-export-video-container.js +646 -0
  808. package/dist/esm/modals/swipe-export-video-preview.js +388 -0
  809. package/dist/esm/modals/tilesets-modals/common.js +3 -0
  810. package/dist/esm/modals/tilesets-modals/load-data-footer.js +48 -0
  811. package/dist/esm/modals/tilesets-modals/load-tileset.js +161 -0
  812. package/dist/esm/modals/tilesets-modals/tileset-bitmap-form.js +275 -0
  813. package/dist/esm/modals/tilesets-modals/tileset-icon.js +34 -0
  814. package/dist/esm/modals/tilesets-modals/tileset-raster-form.js +279 -0
  815. package/dist/esm/modals/tilesets-modals/tileset-tile3d-form.js +380 -0
  816. package/dist/esm/modals/tilesets-modals/tileset-vector-form.js +253 -0
  817. package/dist/esm/modals/tilesets-modals/tileset-wms-form.js +199 -0
  818. package/dist/esm/notification-panel/notification-item.js +112 -0
  819. package/dist/esm/notification-panel.js +34 -0
  820. package/dist/esm/plot-container.js +304 -0
  821. package/dist/esm/side-panel/add-by-dataset-button.js +121 -0
  822. package/dist/esm/side-panel/common/dataset-info.js +29 -0
  823. package/dist/esm/side-panel/common/dataset-tag.js +57 -0
  824. package/dist/esm/side-panel/common/dataset-title.js +136 -0
  825. package/dist/esm/side-panel/common/source-data-catalog.js +44 -0
  826. package/dist/esm/side-panel/common/source-data-selector-content.js +55 -0
  827. package/dist/esm/side-panel/common/source-data-selector.js +34 -0
  828. package/dist/esm/side-panel/common/source-selector.js +49 -0
  829. package/dist/esm/side-panel/common/types.js +3 -0
  830. package/dist/esm/side-panel/custom-panel.js +32 -0
  831. package/dist/esm/side-panel/filter-manager.js +195 -0
  832. package/dist/esm/side-panel/filter-panel/add-filter-button.js +20 -0
  833. package/dist/esm/side-panel/filter-panel/filter-panel-header.js +60 -0
  834. package/dist/esm/side-panel/filter-panel/filter-panel.js +85 -0
  835. package/dist/esm/side-panel/interaction-manager.js +38 -0
  836. package/dist/esm/side-panel/interaction-panel/brush-config.js +36 -0
  837. package/dist/esm/side-panel/interaction-panel/geocoder-config.js +40 -0
  838. package/dist/esm/side-panel/interaction-panel/interaction-panel.js +114 -0
  839. package/dist/esm/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +157 -0
  840. package/dist/esm/side-panel/interaction-panel/tooltip-config.js +142 -0
  841. package/dist/esm/side-panel/layer-manager.js +225 -0
  842. package/dist/esm/side-panel/layer-panel/add-layer-button.js +20 -0
  843. package/dist/esm/side-panel/layer-panel/aggr-scale-selector.js +29 -0
  844. package/dist/esm/side-panel/layer-panel/channel-by-value-selector.js +61 -0
  845. package/dist/esm/side-panel/layer-panel/color-breaks-panel.js +186 -0
  846. package/dist/esm/side-panel/layer-panel/color-palette-preset.js +40 -0
  847. package/dist/esm/side-panel/layer-panel/color-palette.js +67 -0
  848. package/dist/esm/side-panel/layer-panel/color-range-selector.js +236 -0
  849. package/dist/esm/side-panel/layer-panel/color-scale-selector.js +288 -0
  850. package/dist/esm/side-panel/layer-panel/color-selector.js +179 -0
  851. package/dist/esm/side-panel/layer-panel/column-selector.js +52 -0
  852. package/dist/esm/side-panel/layer-panel/custom-palette.js +783 -0
  853. package/dist/esm/side-panel/layer-panel/custom-picker.js +77 -0
  854. package/dist/esm/side-panel/layer-panel/dataset-layer-group.js +59 -0
  855. package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +102 -0
  856. package/dist/esm/side-panel/layer-panel/dataset-section.js +68 -0
  857. package/dist/esm/side-panel/layer-panel/dimension-scale-selector.js +82 -0
  858. package/dist/esm/side-panel/layer-panel/how-to-button.js +22 -0
  859. package/dist/esm/side-panel/layer-panel/layer-color-selector.js +94 -0
  860. package/dist/esm/side-panel/layer-panel/layer-column-config.js +76 -0
  861. package/dist/esm/side-panel/layer-panel/layer-column-mode-config.js +184 -0
  862. package/dist/esm/side-panel/layer-panel/layer-config-group.js +134 -0
  863. package/dist/esm/side-panel/layer-panel/layer-configurator.js +1107 -0
  864. package/dist/esm/side-panel/layer-panel/layer-error-message.js +24 -0
  865. package/dist/esm/side-panel/layer-panel/layer-group-header.js +171 -0
  866. package/dist/esm/side-panel/layer-panel/layer-list.js +323 -0
  867. package/dist/esm/side-panel/layer-panel/layer-panel-header.js +302 -0
  868. package/dist/esm/side-panel/layer-panel/layer-panel.js +164 -0
  869. package/dist/esm/side-panel/layer-panel/layer-type-dropdown-list.js +69 -0
  870. package/dist/esm/side-panel/layer-panel/layer-type-list-item.js +63 -0
  871. package/dist/esm/side-panel/layer-panel/layer-type-selector.js +50 -0
  872. package/dist/esm/side-panel/layer-panel/raster-tile-colormap-list-item.js +55 -0
  873. package/dist/esm/side-panel/layer-panel/raster-tile-layer-configurator.js +450 -0
  874. package/dist/esm/side-panel/layer-panel/scenegraph-model-selector.js +115 -0
  875. package/dist/esm/side-panel/layer-panel/single-color-palette.js +78 -0
  876. package/dist/esm/side-panel/layer-panel/text-label-panel.js +166 -0
  877. package/dist/esm/side-panel/layer-panel/vector-tile-layer-configurator.js +86 -0
  878. package/dist/esm/side-panel/layer-panel/vis-config-by-field-selector.js +53 -0
  879. package/dist/esm/side-panel/layer-panel/vis-config-slider.js +160 -0
  880. package/dist/esm/side-panel/layer-panel/vis-config-switch.js +50 -0
  881. package/dist/esm/side-panel/map-manager.js +99 -0
  882. package/dist/esm/side-panel/map-style-panel/globe-config-panel.js +327 -0
  883. package/dist/esm/side-panel/map-style-panel/map-layer-group-color-picker.js +69 -0
  884. package/dist/esm/side-panel/map-style-panel/map-layer-group-item.js +87 -0
  885. package/dist/esm/side-panel/map-style-panel/map-layer-selector.js +69 -0
  886. package/dist/esm/side-panel/map-style-panel/map-style-selector.js +92 -0
  887. package/dist/esm/side-panel/panel-header-action.js +68 -0
  888. package/dist/esm/side-panel/panel-header.js +303 -0
  889. package/dist/esm/side-panel/panel-tab.js +49 -0
  890. package/dist/esm/side-panel/panel-title.js +35 -0
  891. package/dist/esm/side-panel/panel-toggle.js +40 -0
  892. package/dist/esm/side-panel/panel-view-list-toggle.js +90 -0
  893. package/dist/esm/side-panel/side-bar.js +119 -0
  894. package/dist/esm/side-panel.js +227 -0
  895. package/dist/esm/types.js +3 -0
  896. package/dist/index.d.ts +9 -1
  897. package/dist/kepler-gl.d.ts +3 -0
  898. package/dist/map/map-control.d.ts +6 -2
  899. package/dist/map/map-draw-panel.d.ts +1 -0
  900. package/dist/map/theme-toggle-button.d.ts +18 -0
  901. package/dist/map-container.d.ts +1 -0
  902. package/dist/modals/cloud-components/cloud-item.d.ts +2 -1
  903. package/dist/modals/data-table-modal.d.ts +1 -0
  904. package/dist/modals/globe-export-video-container.d.ts +2 -0
  905. package/dist/modals/globe-export-video-preview.d.ts +3 -0
  906. package/dist/modals/hubble-utils.d.ts +18 -1
  907. package/dist/modals/swipe-composite-utils.d.ts +1 -1
  908. package/dist/modals/swipe-composite-utils.spec.d.ts +1 -0
  909. package/package.json +39 -24
  910. package/dist/annotations/annotation-node.js +0 -145
  911. package/dist/annotations/annotation-overlay.js +0 -168
  912. package/dist/annotations/annotation-panel.js +0 -361
  913. package/dist/annotations/annotation-text.js +0 -149
  914. package/dist/annotations/annotation-utils.js +0 -197
  915. package/dist/annotations/index.js +0 -53
  916. package/dist/annotations/lexical-editor/clickable-link-plugin.js +0 -71
  917. package/dist/annotations/lexical-editor/floating-link-editor.js +0 -193
  918. package/dist/annotations/lexical-editor/index.js +0 -78
  919. package/dist/annotations/lexical-editor/lexical-constants.js +0 -22
  920. package/dist/annotations/lexical-editor/lexical-nodes.js +0 -13
  921. package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +0 -121
  922. package/dist/annotations/lexical-editor/lexical-theme.js +0 -25
  923. package/dist/annotations/lexical-editor/lexical-toolbar.js +0 -292
  924. package/dist/annotations/lexical-editor/lexical-utils.js +0 -45
  925. package/dist/annotations/lexical-editor/use-lexical-toolbar.js +0 -253
  926. package/dist/bottom-widget.js +0 -183
  927. package/dist/common/action-panel.js +0 -133
  928. package/dist/common/animation-control/animation-control.js +0 -100
  929. package/dist/common/animation-control/animation-controller.js +0 -271
  930. package/dist/common/animation-control/animation-speed-slider.js +0 -63
  931. package/dist/common/animation-control/animation-window-control.js +0 -59
  932. package/dist/common/animation-control/export-video-control.js +0 -43
  933. package/dist/common/animation-control/floating-time-display.js +0 -131
  934. package/dist/common/animation-control/play-control.js +0 -50
  935. package/dist/common/animation-control/playback-controls.js +0 -164
  936. package/dist/common/animation-control/reset-control.js +0 -41
  937. package/dist/common/animation-control/speed-control.js +0 -51
  938. package/dist/common/animation-control/window-action-control.js +0 -57
  939. package/dist/common/checkbox.js +0 -101
  940. package/dist/common/color-legend.js +0 -272
  941. package/dist/common/column-stats-chart.js +0 -312
  942. package/dist/common/data-table/button.js +0 -38
  943. package/dist/common/data-table/canvas.js +0 -26
  944. package/dist/common/data-table/cell-size.js +0 -183
  945. package/dist/common/data-table/display-format.js +0 -125
  946. package/dist/common/data-table/grid.js +0 -106
  947. package/dist/common/data-table/header-cell.js +0 -148
  948. package/dist/common/data-table/index.js +0 -470
  949. package/dist/common/data-table/option-dropdown.js +0 -159
  950. package/dist/common/dataset-label.js +0 -27
  951. package/dist/common/dnd-layer-items.js +0 -22
  952. package/dist/common/error-boundary.js +0 -59
  953. package/dist/common/field-selector.js +0 -172
  954. package/dist/common/field-token.js +0 -43
  955. package/dist/common/file-uploader/file-drop.js +0 -180
  956. package/dist/common/file-uploader/file-upload-progress.js +0 -84
  957. package/dist/common/file-uploader/file-upload.js +0 -241
  958. package/dist/common/file-uploader/upload-button.js +0 -58
  959. package/dist/common/flex-container.js +0 -15
  960. package/dist/common/histogram-plot.js +0 -282
  961. package/dist/common/icon-button.js +0 -25
  962. package/dist/common/icons/3d-models/airplane.js +0 -103
  963. package/dist/common/icons/3d-models/bicycle.js +0 -425
  964. package/dist/common/icons/3d-models/boeing.js +0 -118
  965. package/dist/common/icons/3d-models/car.js +0 -109
  966. package/dist/common/icons/3d-models/cargoship.js +0 -245
  967. package/dist/common/icons/3d-models/evtol.js +0 -133
  968. package/dist/common/icons/3d-models/glider.js +0 -61
  969. package/dist/common/icons/3d-models/helicopter.js +0 -109
  970. package/dist/common/icons/3d-models/scooter.js +0 -158
  971. package/dist/common/icons/3d-models/semitruck.js +0 -176
  972. package/dist/common/icons/3d-models/truck.js +0 -121
  973. package/dist/common/icons/add.js +0 -40
  974. package/dist/common/icons/anchor_window.js +0 -41
  975. package/dist/common/icons/annotation-text.js +0 -55
  976. package/dist/common/icons/arrow-down-alt.js +0 -40
  977. package/dist/common/icons/arrow-down-full.js +0 -49
  978. package/dist/common/icons/arrow-down-small.js +0 -53
  979. package/dist/common/icons/arrow-down-solid.d.ts +0 -9
  980. package/dist/common/icons/arrow-down-solid.js +0 -40
  981. package/dist/common/icons/arrow-down.js +0 -50
  982. package/dist/common/icons/arrow-left.js +0 -43
  983. package/dist/common/icons/arrow-right.js +0 -40
  984. package/dist/common/icons/arrow-up-alt.js +0 -41
  985. package/dist/common/icons/arrow-up-solid.js +0 -40
  986. package/dist/common/icons/arrow-up.js +0 -40
  987. package/dist/common/icons/base-map.js +0 -56
  988. package/dist/common/icons/base.js +0 -78
  989. package/dist/common/icons/bug.js +0 -70
  990. package/dist/common/icons/calendar.js +0 -48
  991. package/dist/common/icons/cancel.js +0 -40
  992. package/dist/common/icons/checkmark.js +0 -46
  993. package/dist/common/icons/clipboard.js +0 -41
  994. package/dist/common/icons/clock.js +0 -42
  995. package/dist/common/icons/close.js +0 -46
  996. package/dist/common/icons/cloud.js +0 -50
  997. package/dist/common/icons/code-alt.js +0 -43
  998. package/dist/common/icons/copy.js +0 -51
  999. package/dist/common/icons/crosshairs.js +0 -43
  1000. package/dist/common/icons/cube-3d.js +0 -54
  1001. package/dist/common/icons/cursor-click.js +0 -44
  1002. package/dist/common/icons/cursor-point.js +0 -50
  1003. package/dist/common/icons/data-table.js +0 -76
  1004. package/dist/common/icons/db.js +0 -58
  1005. package/dist/common/icons/delete.js +0 -52
  1006. package/dist/common/icons/docs.js +0 -56
  1007. package/dist/common/icons/docs2.js +0 -50
  1008. package/dist/common/icons/drag-n-drop.js +0 -42
  1009. package/dist/common/icons/draggable-dots.js +0 -84
  1010. package/dist/common/icons/draw-polygon.js +0 -60
  1011. package/dist/common/icons/edit.js +0 -48
  1012. package/dist/common/icons/effects/brightness-contrast.js +0 -69
  1013. package/dist/common/icons/effects/color-halftone.js +0 -108
  1014. package/dist/common/icons/effects/distance-fog.js +0 -78
  1015. package/dist/common/icons/effects/dot-screen.js +0 -103
  1016. package/dist/common/icons/effects/edge-work.js +0 -62
  1017. package/dist/common/icons/effects/hexagonal-pixelate.js +0 -129
  1018. package/dist/common/icons/effects/hue-saturation.js +0 -60
  1019. package/dist/common/icons/effects/ink.js +0 -59
  1020. package/dist/common/icons/effects/light-and-shadow.js +0 -48
  1021. package/dist/common/icons/effects/magic-wand.js +0 -60
  1022. package/dist/common/icons/effects/magnify.js +0 -67
  1023. package/dist/common/icons/effects/noise.js +0 -113
  1024. package/dist/common/icons/effects/sepia.js +0 -60
  1025. package/dist/common/icons/effects/surface-fog.js +0 -85
  1026. package/dist/common/icons/effects/tilt-shift.js +0 -69
  1027. package/dist/common/icons/effects/triangle-blur.js +0 -64
  1028. package/dist/common/icons/effects/vibrance.js +0 -60
  1029. package/dist/common/icons/effects/vignette.js +0 -53
  1030. package/dist/common/icons/effects/zoom-blur.js +0 -88
  1031. package/dist/common/icons/email.js +0 -44
  1032. package/dist/common/icons/expand.js +0 -42
  1033. package/dist/common/icons/eye-seen.js +0 -49
  1034. package/dist/common/icons/eye-unseen.js +0 -47
  1035. package/dist/common/icons/file-type.js +0 -35
  1036. package/dist/common/icons/file.js +0 -40
  1037. package/dist/common/icons/files.js +0 -41
  1038. package/dist/common/icons/filter-funnel.js +0 -50
  1039. package/dist/common/icons/folder.js +0 -50
  1040. package/dist/common/icons/free-window.js +0 -44
  1041. package/dist/common/icons/gear.js +0 -42
  1042. package/dist/common/icons/globe.js +0 -53
  1043. package/dist/common/icons/hash.js +0 -40
  1044. package/dist/common/icons/help.js +0 -50
  1045. package/dist/common/icons/histogram.js +0 -41
  1046. package/dist/common/icons/horizontal-resize-handle.js +0 -58
  1047. package/dist/common/icons/index.js +0 -824
  1048. package/dist/common/icons/info.js +0 -53
  1049. package/dist/common/icons/layers.js +0 -54
  1050. package/dist/common/icons/left-arrow.js +0 -43
  1051. package/dist/common/icons/legend.js +0 -68
  1052. package/dist/common/icons/line-chart.js +0 -40
  1053. package/dist/common/icons/location-marker.js +0 -58
  1054. package/dist/common/icons/login.js +0 -43
  1055. package/dist/common/icons/logout.js +0 -42
  1056. package/dist/common/icons/map-icon.js +0 -47
  1057. package/dist/common/icons/map-pin.js +0 -56
  1058. package/dist/common/icons/messages.js +0 -54
  1059. package/dist/common/icons/minus.js +0 -40
  1060. package/dist/common/icons/moon.js +0 -58
  1061. package/dist/common/icons/order-by-dataset.js +0 -46
  1062. package/dist/common/icons/order-by-list.js +0 -38
  1063. package/dist/common/icons/pause.js +0 -60
  1064. package/dist/common/icons/picture.js +0 -59
  1065. package/dist/common/icons/pin.js +0 -52
  1066. package/dist/common/icons/play.js +0 -50
  1067. package/dist/common/icons/pointer-click.js +0 -58
  1068. package/dist/common/icons/polygon.js +0 -62
  1069. package/dist/common/icons/rectangle.js +0 -63
  1070. package/dist/common/icons/reduce.js +0 -43
  1071. package/dist/common/icons/reset.js +0 -56
  1072. package/dist/common/icons/save.js +0 -57
  1073. package/dist/common/icons/save2.js +0 -54
  1074. package/dist/common/icons/search.js +0 -42
  1075. package/dist/common/icons/settings.js +0 -60
  1076. package/dist/common/icons/share.js +0 -70
  1077. package/dist/common/icons/speed.js +0 -52
  1078. package/dist/common/icons/split.js +0 -68
  1079. package/dist/common/icons/square-select.js +0 -42
  1080. package/dist/common/icons/sun.js +0 -74
  1081. package/dist/common/icons/sunrise.js +0 -70
  1082. package/dist/common/icons/sunset.js +0 -70
  1083. package/dist/common/icons/timeline-marker.js +0 -55
  1084. package/dist/common/icons/trash.js +0 -54
  1085. package/dist/common/icons/vert-dots.js +0 -78
  1086. package/dist/common/icons/vert-three-dots.js +0 -53
  1087. package/dist/common/icons/warning-sign.js +0 -60
  1088. package/dist/common/icons/warning.js +0 -54
  1089. package/dist/common/icons/zoom-in.js +0 -47
  1090. package/dist/common/icons/zoom-out.js +0 -47
  1091. package/dist/common/image-preview.js +0 -64
  1092. package/dist/common/index.js +0 -282
  1093. package/dist/common/info-helper.js +0 -61
  1094. package/dist/common/item-selector/accessor.js +0 -37
  1095. package/dist/common/item-selector/chickleted-input.js +0 -157
  1096. package/dist/common/item-selector/dropdown-list.js +0 -257
  1097. package/dist/common/item-selector/dropdown-select.js +0 -84
  1098. package/dist/common/item-selector/item-selector.js +0 -254
  1099. package/dist/common/item-selector/typeahead.js +0 -435
  1100. package/dist/common/layout-splitter.js +0 -230
  1101. package/dist/common/line-chart.js +0 -286
  1102. package/dist/common/link-renderer.js +0 -20
  1103. package/dist/common/loading-spinner.js +0 -50
  1104. package/dist/common/logo.js +0 -68
  1105. package/dist/common/map-layer-selector.js +0 -38
  1106. package/dist/common/modal.js +0 -170
  1107. package/dist/common/portaled.js +0 -287
  1108. package/dist/common/progress-bar.js +0 -47
  1109. package/dist/common/radius-legend.js +0 -131
  1110. package/dist/common/range-brush.js +0 -265
  1111. package/dist/common/range-plot.js +0 -217
  1112. package/dist/common/range-slider-timeline-panel.js +0 -42
  1113. package/dist/common/range-slider-timeline.js +0 -112
  1114. package/dist/common/range-slider.js +0 -371
  1115. package/dist/common/slider/mouse-event.js +0 -104
  1116. package/dist/common/slider/slider-bar-handle.js +0 -90
  1117. package/dist/common/slider/slider-handle.js +0 -136
  1118. package/dist/common/slider/slider.js +0 -251
  1119. package/dist/common/styled-components.js +0 -447
  1120. package/dist/common/switch.js +0 -21
  1121. package/dist/common/sync-timeline-control.js +0 -61
  1122. package/dist/common/time-range-slider-time-title.js +0 -62
  1123. package/dist/common/time-range-slider.js +0 -143
  1124. package/dist/common/time-slider-marker.js +0 -115
  1125. package/dist/common/timeline-helpers.js +0 -57
  1126. package/dist/common/timeline-slider.js +0 -140
  1127. package/dist/common/tippy-tooltip.js +0 -134
  1128. package/dist/common/toolbar-item.js +0 -60
  1129. package/dist/common/toolbar.js +0 -27
  1130. package/dist/common/vertical-toolbar.js +0 -16
  1131. package/dist/connect/keplergl-connect.js +0 -44
  1132. package/dist/connect/with-local-selector.js +0 -85
  1133. package/dist/container.js +0 -180
  1134. package/dist/context.js +0 -43
  1135. package/dist/dnd-context.js +0 -174
  1136. package/dist/editor/editor.js +0 -200
  1137. package/dist/editor/feature-action-panel.js +0 -147
  1138. package/dist/effects/compact-color-picker.js +0 -110
  1139. package/dist/effects/effect-configurator.js +0 -473
  1140. package/dist/effects/effect-list.js +0 -129
  1141. package/dist/effects/effect-manager.js +0 -126
  1142. package/dist/effects/effect-panel-header.js +0 -196
  1143. package/dist/effects/effect-panel.js +0 -86
  1144. package/dist/effects/effect-time-configurator.js +0 -313
  1145. package/dist/effects/effect-time-selector.js +0 -152
  1146. package/dist/effects/effect-time-slider.js +0 -198
  1147. package/dist/effects/effect-type-dropdown-list.js +0 -65
  1148. package/dist/effects/effect-type-list-item.js +0 -98
  1149. package/dist/effects/effect-type-selector.js +0 -76
  1150. package/dist/effects/side-panel-title.js +0 -37
  1151. package/dist/effects/surface-fog-section.js +0 -262
  1152. package/dist/effects/timezone-selector.js +0 -57
  1153. package/dist/filter-animation-controller.js +0 -76
  1154. package/dist/filters/components.js +0 -14
  1155. package/dist/filters/filter-panels/filter-panel-with-field-select.js +0 -77
  1156. package/dist/filters/filter-panels/filter-synced-dataset-panel.js +0 -260
  1157. package/dist/filters/filter-panels/multi-select-filter-panel.js +0 -48
  1158. package/dist/filters/filter-panels/new-filter-panel.js +0 -66
  1159. package/dist/filters/filter-panels/polygon-filter-panel.js +0 -67
  1160. package/dist/filters/filter-panels/range-filter-panel.js +0 -53
  1161. package/dist/filters/filter-panels/single-select-filter-panel.js +0 -48
  1162. package/dist/filters/filter-panels/time-range-filter-panel.js +0 -129
  1163. package/dist/filters/filter-panels/time-synced-field-selector.js +0 -28
  1164. package/dist/filters/filter-panels/types.js +0 -6
  1165. package/dist/filters/index.js +0 -63
  1166. package/dist/filters/multi-select-filter.js +0 -31
  1167. package/dist/filters/polygon-filter.js +0 -76
  1168. package/dist/filters/range-filter.js +0 -35
  1169. package/dist/filters/single-select-filter.js +0 -40
  1170. package/dist/filters/time-range-filter.js +0 -69
  1171. package/dist/filters/time-widget-settings.js +0 -311
  1172. package/dist/filters/time-widget-top.js +0 -80
  1173. package/dist/filters/time-widget.js +0 -376
  1174. package/dist/filters/types.js +0 -6
  1175. package/dist/geocoder/geocoder.js +0 -327
  1176. package/dist/geocoder-panel.js +0 -172
  1177. package/dist/hooks/use-cloud-list-provider.js +0 -46
  1178. package/dist/hooks/use-dnd-effects.js +0 -69
  1179. package/dist/hooks/use-dnd-layers.js +0 -141
  1180. package/dist/hooks/use-feature-flags.js +0 -17
  1181. package/dist/hooks/use-fetch-raster-tile-metadata.js +0 -120
  1182. package/dist/hooks/use-fetch-vector-tile-metadata.js +0 -133
  1183. package/dist/hooks/use-legend-position.js +0 -176
  1184. package/dist/hooks/use-on-click-outside.js +0 -36
  1185. package/dist/index.js +0 -2890
  1186. package/dist/injector.js +0 -151
  1187. package/dist/kepler-gl.js +0 -664
  1188. package/dist/layer-animation-controller.js +0 -53
  1189. package/dist/loading-indicator.js +0 -76
  1190. package/dist/map/annotations/annotation-control.js +0 -55
  1191. package/dist/map/attribution.js +0 -391
  1192. package/dist/map/coordinate-info.js +0 -42
  1193. package/dist/map/effects/effect-control.js +0 -51
  1194. package/dist/map/layer-hover-info.js +0 -318
  1195. package/dist/map/lazy-tippy.js +0 -60
  1196. package/dist/map/locale-panel.js +0 -76
  1197. package/dist/map/map-control-panel.js +0 -140
  1198. package/dist/map/map-control-toolbar.js +0 -18
  1199. package/dist/map/map-control-tooltip.js +0 -34
  1200. package/dist/map/map-control.js +0 -81
  1201. package/dist/map/map-draw-panel.js +0 -100
  1202. package/dist/map/map-legend-panel.js +0 -289
  1203. package/dist/map/map-legend.js +0 -509
  1204. package/dist/map/map-navigation-control.js +0 -159
  1205. package/dist/map/map-popover-content.js +0 -28
  1206. package/dist/map/map-popover.js +0 -189
  1207. package/dist/map/map-scale.js +0 -162
  1208. package/dist/map/split-map-button.js +0 -176
  1209. package/dist/map/toggle-3d-button.js +0 -122
  1210. package/dist/map-container.js +0 -1322
  1211. package/dist/map-view-state-context.js +0 -98
  1212. package/dist/maps-layout.js +0 -102
  1213. package/dist/modal-container.js +0 -456
  1214. package/dist/modals/add-map-style-modal.js +0 -262
  1215. package/dist/modals/cloud-components/cloud-header.js +0 -59
  1216. package/dist/modals/cloud-components/cloud-item.js +0 -59
  1217. package/dist/modals/cloud-components/cloud-item.spec.js +0 -92
  1218. package/dist/modals/cloud-components/cloud-maps.js +0 -47
  1219. package/dist/modals/cloud-components/cloud-maps.spec.js +0 -98
  1220. package/dist/modals/cloud-components/provider-loading.d.ts +0 -2
  1221. package/dist/modals/cloud-components/provider-loading.js +0 -20
  1222. package/dist/modals/cloud-components/provider-select.js +0 -30
  1223. package/dist/modals/cloud-tile.js +0 -202
  1224. package/dist/modals/data-table-modal.js +0 -215
  1225. package/dist/modals/delete-data-modal.js +0 -41
  1226. package/dist/modals/error-display.js +0 -32
  1227. package/dist/modals/export-data-modal.js +0 -163
  1228. package/dist/modals/export-image-modal.js +0 -188
  1229. package/dist/modals/export-map-modal/components.js +0 -34
  1230. package/dist/modals/export-map-modal/export-html-map.js +0 -128
  1231. package/dist/modals/export-map-modal/export-json-map.js +0 -81
  1232. package/dist/modals/export-map-modal/export-map-modal.js +0 -84
  1233. package/dist/modals/export-video-modal.js +0 -413
  1234. package/dist/modals/export-video-modal.spec.js +0 -686
  1235. package/dist/modals/fog-height-animation.js +0 -97
  1236. package/dist/modals/globe-export-video-container.js +0 -626
  1237. package/dist/modals/globe-export-video-preview.js +0 -152
  1238. package/dist/modals/hubble-utils.js +0 -422
  1239. package/dist/modals/hubble-utils.spec.js +0 -397
  1240. package/dist/modals/image-modal-container.js +0 -57
  1241. package/dist/modals/load-data-modal.js +0 -97
  1242. package/dist/modals/load-storage-map.js +0 -79
  1243. package/dist/modals/load-storage-map.spec.js +0 -216
  1244. package/dist/modals/loading-dialog.js +0 -37
  1245. package/dist/modals/modal-dialog.js +0 -16
  1246. package/dist/modals/modal-tabs.js +0 -74
  1247. package/dist/modals/overwrite-map-modal.js +0 -83
  1248. package/dist/modals/save-map-modal.js +0 -179
  1249. package/dist/modals/save-map-modal.spec.js +0 -195
  1250. package/dist/modals/share-map-modal.js +0 -168
  1251. package/dist/modals/share-map-modal.spec.js +0 -173
  1252. package/dist/modals/status-panel.js +0 -65
  1253. package/dist/modals/storage-map-viewer.d.ts +0 -21
  1254. package/dist/modals/storage-map-viewer.js +0 -98
  1255. package/dist/modals/swipe-composite-utils.js +0 -118
  1256. package/dist/modals/swipe-export-settings.js +0 -372
  1257. package/dist/modals/swipe-export-video-container.js +0 -653
  1258. package/dist/modals/swipe-export-video-preview.js +0 -401
  1259. package/dist/modals/tilesets-modals/common.js +0 -6
  1260. package/dist/modals/tilesets-modals/load-data-footer.js +0 -55
  1261. package/dist/modals/tilesets-modals/load-tileset.js +0 -168
  1262. package/dist/modals/tilesets-modals/tileset-bitmap-form.js +0 -283
  1263. package/dist/modals/tilesets-modals/tileset-icon.js +0 -39
  1264. package/dist/modals/tilesets-modals/tileset-raster-form.js +0 -287
  1265. package/dist/modals/tilesets-modals/tileset-tile3d-form.js +0 -388
  1266. package/dist/modals/tilesets-modals/tileset-vector-form.js +0 -261
  1267. package/dist/modals/tilesets-modals/tileset-wms-form.js +0 -206
  1268. package/dist/notification-panel/notification-item.js +0 -119
  1269. package/dist/notification-panel.js +0 -39
  1270. package/dist/plot-container.js +0 -311
  1271. package/dist/side-panel/add-by-dataset-button.js +0 -128
  1272. package/dist/side-panel/cloud-storage-dropdown.d.ts +0 -6
  1273. package/dist/side-panel/cloud-storage-dropdown.js +0 -40
  1274. package/dist/side-panel/common/dataset-info.js +0 -34
  1275. package/dist/side-panel/common/dataset-tag.js +0 -62
  1276. package/dist/side-panel/common/dataset-title.js +0 -143
  1277. package/dist/side-panel/common/source-data-catalog.js +0 -49
  1278. package/dist/side-panel/common/source-data-selector-content.js +0 -64
  1279. package/dist/side-panel/common/source-data-selector.js +0 -41
  1280. package/dist/side-panel/common/source-selector.js +0 -56
  1281. package/dist/side-panel/common/types.js +0 -6
  1282. package/dist/side-panel/custom-panel.js +0 -39
  1283. package/dist/side-panel/filter-manager.js +0 -202
  1284. package/dist/side-panel/filter-panel/add-filter-button.js +0 -27
  1285. package/dist/side-panel/filter-panel/filter-panel-header.js +0 -67
  1286. package/dist/side-panel/filter-panel/filter-panel.js +0 -92
  1287. package/dist/side-panel/interaction-manager.js +0 -45
  1288. package/dist/side-panel/interaction-panel/brush-config.js +0 -41
  1289. package/dist/side-panel/interaction-panel/geocoder-config.js +0 -45
  1290. package/dist/side-panel/interaction-panel/interaction-panel.js +0 -121
  1291. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +0 -164
  1292. package/dist/side-panel/interaction-panel/tooltip-config.js +0 -149
  1293. package/dist/side-panel/layer-manager.js +0 -224
  1294. package/dist/side-panel/layer-panel/add-layer-button.js +0 -27
  1295. package/dist/side-panel/layer-panel/aggr-scale-selector.js +0 -37
  1296. package/dist/side-panel/layer-panel/channel-by-value-selector.js +0 -71
  1297. package/dist/side-panel/layer-panel/color-breaks-panel.js +0 -193
  1298. package/dist/side-panel/layer-panel/color-palette-preset.js +0 -45
  1299. package/dist/side-panel/layer-panel/color-palette.js +0 -74
  1300. package/dist/side-panel/layer-panel/color-range-selector.js +0 -242
  1301. package/dist/side-panel/layer-panel/color-scale-selector.js +0 -295
  1302. package/dist/side-panel/layer-panel/color-selector.js +0 -186
  1303. package/dist/side-panel/layer-panel/column-selector.js +0 -59
  1304. package/dist/side-panel/layer-panel/custom-palette.js +0 -787
  1305. package/dist/side-panel/layer-panel/custom-picker.js +0 -83
  1306. package/dist/side-panel/layer-panel/dataset-layer-group.js +0 -68
  1307. package/dist/side-panel/layer-panel/dataset-layer-section.js +0 -101
  1308. package/dist/side-panel/layer-panel/dataset-section.js +0 -74
  1309. package/dist/side-panel/layer-panel/dimension-scale-selector.js +0 -91
  1310. package/dist/side-panel/layer-panel/how-to-button.js +0 -27
  1311. package/dist/side-panel/layer-panel/layer-color-selector.js +0 -105
  1312. package/dist/side-panel/layer-panel/layer-column-config.js +0 -85
  1313. package/dist/side-panel/layer-panel/layer-column-mode-config.js +0 -192
  1314. package/dist/side-panel/layer-panel/layer-config-group.js +0 -143
  1315. package/dist/side-panel/layer-panel/layer-configurator.js +0 -1073
  1316. package/dist/side-panel/layer-panel/layer-error-message.js +0 -29
  1317. package/dist/side-panel/layer-panel/layer-group-header.js +0 -178
  1318. package/dist/side-panel/layer-panel/layer-list.js +0 -330
  1319. package/dist/side-panel/layer-panel/layer-panel-header.js +0 -311
  1320. package/dist/side-panel/layer-panel/layer-panel.js +0 -171
  1321. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +0 -77
  1322. package/dist/side-panel/layer-panel/layer-type-list-item.js +0 -71
  1323. package/dist/side-panel/layer-panel/layer-type-selector.js +0 -57
  1324. package/dist/side-panel/layer-panel/raster-tile-colormap-list-item.js +0 -60
  1325. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +0 -457
  1326. package/dist/side-panel/layer-panel/scenegraph-model-selector.js +0 -122
  1327. package/dist/side-panel/layer-panel/single-color-palette.js +0 -85
  1328. package/dist/side-panel/layer-panel/text-label-panel.js +0 -173
  1329. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +0 -93
  1330. package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +0 -60
  1331. package/dist/side-panel/layer-panel/vis-config-slider.js +0 -167
  1332. package/dist/side-panel/layer-panel/vis-config-switch.js +0 -55
  1333. package/dist/side-panel/map-manager.js +0 -108
  1334. package/dist/side-panel/map-style-panel/globe-config-panel.js +0 -269
  1335. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +0 -76
  1336. package/dist/side-panel/map-style-panel/map-layer-group-item.js +0 -94
  1337. package/dist/side-panel/map-style-panel/map-layer-selector.js +0 -74
  1338. package/dist/side-panel/map-style-panel/map-style-selector.js +0 -97
  1339. package/dist/side-panel/panel-header-action.js +0 -73
  1340. package/dist/side-panel/panel-header.js +0 -309
  1341. package/dist/side-panel/panel-tab.js +0 -55
  1342. package/dist/side-panel/panel-title.js +0 -40
  1343. package/dist/side-panel/panel-toggle.js +0 -47
  1344. package/dist/side-panel/panel-view-list-toggle.js +0 -97
  1345. package/dist/side-panel/side-bar.js +0 -126
  1346. package/dist/side-panel.js +0 -235
  1347. package/dist/types.js +0 -6
@@ -0,0 +1,256 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
5
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
6
+ 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; }
7
+ 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) { _defineProperty(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; }
8
+ // SPDX-License-Identifier: MIT
9
+ // Copyright contributors to the kepler.gl project
10
+
11
+ import React, { useRef, useState, useEffect, useCallback } from 'react';
12
+ import classnames from 'classnames';
13
+ import styled from 'styled-components';
14
+ import { Map as MapboxLegacyMap } from 'react-map-gl/mapbox-legacy';
15
+ import { Map as MaplibreMap } from '@vis.gl/react-maplibre';
16
+ import { StyledModalContent, InputLight, StyledMapContainer, StyledModalVerticalPanel, StyledModalSection } from '../common/styled-components';
17
+ import { media } from '@kepler.gl/styles';
18
+
19
+ // Utils
20
+ import { getApplicationConfig, getBaseMapLibrary, transformRequest } from '@kepler.gl/utils';
21
+ import { injectIntl } from 'react-intl';
22
+ import { FormattedMessage } from '@kepler.gl/localization';
23
+ import { NO_BASEMAP_ICON, MAP_LIB_OPTIONS } from '@kepler.gl/constants';
24
+ var MapH = 190;
25
+ var MapW = 264;
26
+ var ErrorMsg = {
27
+ styleError: 'Failed to load map style, make sure it is published. For private style, paste in your access token.'
28
+ };
29
+ var PreviewMap = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-left: 116px;\n flex-shrink: 0;\n\n .preview-title {\n font-weight: 500;\n font-size: 10px;\n padding: 8px 0px;\n }\n\n .preview-title.error {\n color: ", ";\n max-width: 250px;\n }\n\n ", ";\n\n ", ";\n"])), function (props) {
30
+ return props.theme.errorColor;
31
+ }, media.portable(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-left: 32px;\n "]))), media.palm(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin-left: unset;\n .preview-title {\n margin-top: 0px;\n }\n "]))));
32
+ var StyledPreviewImage = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n background: ", ";\n border-radius: 4px;\n box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.18);\n width: ", "px;\n height: ", "px;\n position: relative;\n\n .preview-image-placeholder {\n position: absolute;\n top: 0;\n left: 0;\n }\n\n .preview-image-spinner {\n position: absolute;\n left: calc(50% - 25px);\n top: calc(50% - 25px);\n }\n"])), function (props) {
33
+ return props.theme.modalImagePlaceHolder;
34
+ }, MapW, MapH);
35
+ var InlineLink = styled.a(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n font-weight: 500;\n\n &:hover {\n cursor: pointer;\n }\n"])));
36
+ function AddMapStyleModalFactory() {
37
+ function AddMapStyleModal(_ref) {
38
+ var inputMapStyleAction = _ref.inputMapStyle,
39
+ inputStyle = _ref.inputStyle,
40
+ loadCustomMapStyleAction = _ref.loadCustomMapStyle,
41
+ mapboxApiAccessToken = _ref.mapboxApiAccessToken,
42
+ mapboxApiUrl = _ref.mapboxApiUrl,
43
+ customTransformRequest = _ref.transformRequest,
44
+ mapState = _ref.mapState,
45
+ intl = _ref.intl;
46
+ var _useState = useState(0),
47
+ _useState2 = _slicedToArray(_useState, 2),
48
+ reRenderKey = _useState2[0],
49
+ setReRenderKey = _useState2[1];
50
+ var _useState3 = useState(null),
51
+ _useState4 = _slicedToArray(_useState3, 2),
52
+ previousToken = _useState4[0],
53
+ setPreviousToken = _useState4[1];
54
+ var mapRef = useRef(null);
55
+ var mapListenersRef = useRef({});
56
+ var loadCustomMapStyleRef = useRef(loadCustomMapStyleAction);
57
+ loadCustomMapStyleRef.current = loadCustomMapStyleAction;
58
+ useEffect(function () {
59
+ if (inputStyle !== null && inputStyle !== void 0 && inputStyle.accessToken && inputStyle.accessToken !== previousToken) {
60
+ setReRenderKey(function (prev) {
61
+ return prev + 1;
62
+ });
63
+ setPreviousToken(inputStyle.accessToken);
64
+ }
65
+ }, [inputStyle === null || inputStyle === void 0 ? void 0 : inputStyle.accessToken, previousToken]);
66
+ var setMapRefCallback = useCallback(function (mapRefInstance) {
67
+ // Remove listeners from the previous map instance
68
+ if (mapRef.current && mapRefInstance) {
69
+ var _map = mapRefInstance.getMap();
70
+ if (_map && mapRef.current !== _map) {
71
+ if (mapListenersRef.current.onStyleLoad) {
72
+ mapRef.current.off('style.load', mapListenersRef.current.onStyleLoad);
73
+ }
74
+ if (mapListenersRef.current.onError) {
75
+ mapRef.current.off('error', mapListenersRef.current.onError);
76
+ }
77
+ if (mapListenersRef.current.pendingOnIdle) {
78
+ mapRef.current.off('idle', mapListenersRef.current.pendingOnIdle);
79
+ }
80
+ mapListenersRef.current = {};
81
+ mapRef.current = null;
82
+ }
83
+ }
84
+ var map = mapRefInstance && mapRefInstance.getMap();
85
+ if (map && mapRef.current !== map) {
86
+ mapRef.current = map;
87
+ var onStyleLoad = function onStyleLoad() {
88
+ // Cancel any previous idle capture that hasn't fired yet.
89
+ if (mapListenersRef.current.pendingOnIdle) {
90
+ map.off('idle', mapListenersRef.current.pendingOnIdle);
91
+ mapListenersRef.current.pendingOnIdle = null;
92
+ }
93
+ var style = map.getStyle();
94
+ loadCustomMapStyleRef.current({
95
+ style: style,
96
+ error: false
97
+ });
98
+
99
+ // Capture a thumbnail once the map finishes its first full render
100
+ // (tiles loaded + painted). We use a one-shot `idle` listener so we
101
+ // get a real screenshot instead of a blank canvas.
102
+ // preserveDrawingBuffer is set to true on this map instance, so
103
+ // getCanvas().toDataURL() is safe to call synchronously here.
104
+ var _onIdle = function onIdle() {
105
+ mapListenersRef.current.pendingOnIdle = null;
106
+ map.off('idle', _onIdle);
107
+ try {
108
+ var icon = map.getCanvas().toDataURL('image/png');
109
+ loadCustomMapStyleRef.current({
110
+ icon: icon
111
+ });
112
+ } catch (_unused) {
113
+ // toDataURL can fail if the canvas is cross-origin tainted; in
114
+ // that case the no-icon placeholder set by inputMapStyleAction
115
+ // stays and is good enough.
116
+ }
117
+ };
118
+ mapListenersRef.current.pendingOnIdle = _onIdle;
119
+ map.on('idle', _onIdle);
120
+ };
121
+ var onError = function onError() {
122
+ loadCustomMapStyleRef.current({
123
+ error: true
124
+ });
125
+ };
126
+ mapListenersRef.current.onStyleLoad = onStyleLoad;
127
+ mapListenersRef.current.onError = onError;
128
+ map.on('style.load', onStyleLoad);
129
+ map.on('error', onError);
130
+ }
131
+ }, []);
132
+ var baseMapLibraryName = getBaseMapLibrary(inputStyle);
133
+ var baseMapLibraryConfig = getApplicationConfig().baseMapLibraryConfig[baseMapLibraryName];
134
+ var mapboxApiAccessTokenToUse = inputStyle.accessToken || mapboxApiAccessToken;
135
+ var mapProps = _objectSpread(_objectSpread({}, mapState), {}, {
136
+ mapboxAccessToken: mapboxApiAccessTokenToUse,
137
+ preserveDrawingBuffer: true,
138
+ transformRequest: (customTransformRequest === null || customTransformRequest === void 0 ? void 0 : customTransformRequest(mapboxApiAccessTokenToUse)) || transformRequest(mapboxApiAccessTokenToUse)
139
+ });
140
+ if (baseMapLibraryName === MAP_LIB_OPTIONS.MAPBOX) {
141
+ mapProps.mapLib = baseMapLibraryConfig.getMapLib();
142
+ }
143
+ var ResolvedMapComponent = baseMapLibraryName === MAP_LIB_OPTIONS.MAPBOX ? MapboxLegacyMap : MaplibreMap;
144
+ return /*#__PURE__*/React.createElement("div", {
145
+ className: "add-map-style-modal"
146
+ }, /*#__PURE__*/React.createElement(StyledModalContent, null, /*#__PURE__*/React.createElement(StyledModalVerticalPanel, null, /*#__PURE__*/React.createElement(StyledModalSection, null, /*#__PURE__*/React.createElement("div", {
147
+ className: "modal-section-title"
148
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
149
+ id: 'modal.addStyle.pasteTitle'
150
+ })), /*#__PURE__*/React.createElement("div", {
151
+ className: "modal-section-subtitle"
152
+ }, intl.formatMessage({
153
+ id: 'modal.addStyle.pasteSubtitle0'
154
+ }), /*#__PURE__*/React.createElement(InlineLink, {
155
+ target: "_blank",
156
+ href: "https://www.mapbox.com/help/studio-manual-publish/#style-url"
157
+ }, ' ', intl.formatMessage({
158
+ id: 'modal.addStyle.pasteSubtitle2'
159
+ })), ' ', intl.formatMessage({
160
+ id: 'modal.addStyle.pasteSubtitle3'
161
+ }), /*#__PURE__*/React.createElement(InlineLink, {
162
+ target: "_blank",
163
+ href: "https://docs.mapbox.com/mapbox-gl-js/style-spec"
164
+ }, ' ', intl.formatMessage({
165
+ id: 'modal.addStyle.pasteSubtitle4'
166
+ }))), /*#__PURE__*/React.createElement(InputLight, {
167
+ type: "text",
168
+ value: inputStyle.url || '',
169
+ onChange: function onChange(_ref2) {
170
+ var value = _ref2.target.value;
171
+ return inputMapStyleAction({
172
+ url: value,
173
+ id: 'Custom Style',
174
+ icon: "".concat(getApplicationConfig().cdnUrl, "/").concat(NO_BASEMAP_ICON)
175
+ });
176
+ },
177
+ placeholder: "e.g. https://basemaps.cartocdn.com/gl/positron-gl-style/style.json"
178
+ })), /*#__PURE__*/React.createElement(StyledModalSection, null, /*#__PURE__*/React.createElement("div", {
179
+ className: "modal-section-title"
180
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
181
+ id: 'modal.addStyle.publishTitle'
182
+ })), /*#__PURE__*/React.createElement("div", {
183
+ className: "modal-section-subtitle"
184
+ }, intl.formatMessage({
185
+ id: 'modal.addStyle.publishSubtitle1'
186
+ }), /*#__PURE__*/React.createElement(InlineLink, {
187
+ target: "_blank",
188
+ href: "https://www.mapbox.com/studio/styles/"
189
+ }, ' ', "mapbox"), ' ', intl.formatMessage({
190
+ id: 'modal.addStyle.publishSubtitle2'
191
+ }), /*#__PURE__*/React.createElement(InlineLink, {
192
+ target: "_blank",
193
+ href: "https://www.mapbox.com/help/studio-manual-publish/"
194
+ }, ' ', intl.formatMessage({
195
+ id: 'modal.addStyle.publishSubtitle3'
196
+ })), ' ', intl.formatMessage({
197
+ id: 'modal.addStyle.publishSubtitle4'
198
+ })), /*#__PURE__*/React.createElement("div", {
199
+ className: "modal-section-subtitle"
200
+ }, intl.formatMessage({
201
+ id: 'modal.addStyle.publishSubtitle5'
202
+ }), /*#__PURE__*/React.createElement(InlineLink, {
203
+ target: "_blank",
204
+ href: "https://www.mapbox.com/help/how-access-tokens-work/"
205
+ }, ' ', intl.formatMessage({
206
+ id: 'modal.addStyle.publishSubtitle6'
207
+ })), ' ', intl.formatMessage({
208
+ id: 'modal.addStyle.publishSubtitle7'
209
+ })), /*#__PURE__*/React.createElement(InputLight, {
210
+ type: "text",
211
+ value: inputStyle.accessToken || '',
212
+ onChange: function onChange(_ref3) {
213
+ var value = _ref3.target.value;
214
+ return inputMapStyleAction({
215
+ accessToken: value
216
+ });
217
+ },
218
+ placeholder: intl.formatMessage({
219
+ id: 'modal.addStyle.exampleToken'
220
+ })
221
+ })), /*#__PURE__*/React.createElement(StyledModalSection, null, /*#__PURE__*/React.createElement("div", {
222
+ className: "modal-section-title"
223
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
224
+ id: 'modal.addStyle.namingTitle'
225
+ })), /*#__PURE__*/React.createElement(InputLight, {
226
+ type: "text",
227
+ value: inputStyle.label || '',
228
+ onChange: function onChange(_ref4) {
229
+ var value = _ref4.target.value;
230
+ return inputMapStyleAction({
231
+ label: value
232
+ });
233
+ },
234
+ placeholder: "Name your style"
235
+ }))), /*#__PURE__*/React.createElement(PreviewMap, null, /*#__PURE__*/React.createElement("div", {
236
+ className: classnames('preview-title', {
237
+ error: inputStyle.error
238
+ })
239
+ }, inputStyle.error ? ErrorMsg.styleError : inputStyle.style && inputStyle.style.name || ''), /*#__PURE__*/React.createElement(StyledPreviewImage, {
240
+ className: "preview-image"
241
+ }, !inputStyle.isValid ? /*#__PURE__*/React.createElement("div", {
242
+ className: "preview-image-spinner"
243
+ }) : /*#__PURE__*/React.createElement(StyledMapContainer, null, /*#__PURE__*/React.createElement(ResolvedMapComponent, _extends({}, mapProps, {
244
+ ref: setMapRefCallback,
245
+ key: "".concat(baseMapLibraryName, "-").concat(reRenderKey, "-").concat(inputStyle.url, "-").concat(mapboxApiAccessTokenToUse),
246
+ style: {
247
+ width: MapW,
248
+ height: MapH
249
+ },
250
+ mapStyle: inputStyle.url === null ? undefined : inputStyle.url
251
+ })))))));
252
+ }
253
+ return injectIntl(AddMapStyleModal);
254
+ }
255
+ export default AddMapStyleModalFactory;
256
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlQ2FsbGJhY2siLCJjbGFzc25hbWVzIiwic3R5bGVkIiwiTWFwIiwiTWFwYm94TGVnYWN5TWFwIiwiTWFwbGlicmVNYXAiLCJTdHlsZWRNb2RhbENvbnRlbnQiLCJJbnB1dExpZ2h0IiwiU3R5bGVkTWFwQ29udGFpbmVyIiwiU3R5bGVkTW9kYWxWZXJ0aWNhbFBhbmVsIiwiU3R5bGVkTW9kYWxTZWN0aW9uIiwibWVkaWEiLCJnZXRBcHBsaWNhdGlvbkNvbmZpZyIsImdldEJhc2VNYXBMaWJyYXJ5IiwidHJhbnNmb3JtUmVxdWVzdCIsImluamVjdEludGwiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiTk9fQkFTRU1BUF9JQ09OIiwiTUFQX0xJQl9PUFRJT05TIiwiTWFwSCIsIk1hcFciLCJFcnJvck1zZyIsInN0eWxlRXJyb3IiLCJQcmV2aWV3TWFwIiwiZGl2IiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsInByb3BzIiwidGhlbWUiLCJlcnJvckNvbG9yIiwicG9ydGFibGUiLCJfdGVtcGxhdGVPYmplY3QyIiwicGFsbSIsIl90ZW1wbGF0ZU9iamVjdDMiLCJTdHlsZWRQcmV2aWV3SW1hZ2UiLCJfdGVtcGxhdGVPYmplY3Q0IiwibW9kYWxJbWFnZVBsYWNlSG9sZGVyIiwiSW5saW5lTGluayIsImEiLCJfdGVtcGxhdGVPYmplY3Q1IiwiQWRkTWFwU3R5bGVNb2RhbEZhY3RvcnkiLCJBZGRNYXBTdHlsZU1vZGFsIiwiX3JlZiIsImlucHV0TWFwU3R5bGVBY3Rpb24iLCJpbnB1dE1hcFN0eWxlIiwiaW5wdXRTdHlsZSIsImxvYWRDdXN0b21NYXBTdHlsZUFjdGlvbiIsImxvYWRDdXN0b21NYXBTdHlsZSIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwibWFwYm94QXBpVXJsIiwiY3VzdG9tVHJhbnNmb3JtUmVxdWVzdCIsIm1hcFN0YXRlIiwiaW50bCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInJlUmVuZGVyS2V5Iiwic2V0UmVSZW5kZXJLZXkiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInByZXZpb3VzVG9rZW4iLCJzZXRQcmV2aW91c1Rva2VuIiwibWFwUmVmIiwibWFwTGlzdGVuZXJzUmVmIiwibG9hZEN1c3RvbU1hcFN0eWxlUmVmIiwiY3VycmVudCIsImFjY2Vzc1Rva2VuIiwicHJldiIsInNldE1hcFJlZkNhbGxiYWNrIiwibWFwUmVmSW5zdGFuY2UiLCJtYXAiLCJnZXRNYXAiLCJvblN0eWxlTG9hZCIsIm9mZiIsIm9uRXJyb3IiLCJwZW5kaW5nT25JZGxlIiwic3R5bGUiLCJnZXRTdHlsZSIsImVycm9yIiwib25JZGxlIiwiaWNvbiIsImdldENhbnZhcyIsInRvRGF0YVVSTCIsIl91bnVzZWQiLCJvbiIsImJhc2VNYXBMaWJyYXJ5TmFtZSIsImJhc2VNYXBMaWJyYXJ5Q29uZmlnIiwibWFwYm94QXBpQWNjZXNzVG9rZW5Ub1VzZSIsIm1hcFByb3BzIiwiX29iamVjdFNwcmVhZCIsIm1hcGJveEFjY2Vzc1Rva2VuIiwicHJlc2VydmVEcmF3aW5nQnVmZmVyIiwiTUFQQk9YIiwibWFwTGliIiwiZ2V0TWFwTGliIiwiUmVzb2x2ZWRNYXBDb21wb25lbnQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiaWQiLCJmb3JtYXRNZXNzYWdlIiwidGFyZ2V0IiwiaHJlZiIsInR5cGUiLCJ2YWx1ZSIsInVybCIsIm9uQ2hhbmdlIiwiX3JlZjIiLCJjb25jYXQiLCJjZG5VcmwiLCJwbGFjZWhvbGRlciIsIl9yZWYzIiwibGFiZWwiLCJfcmVmNCIsIm5hbWUiLCJpc1ZhbGlkIiwiX2V4dGVuZHMiLCJyZWYiLCJrZXkiLCJ3aWR0aCIsImhlaWdodCIsIm1hcFN0eWxlIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFscy9hZGQtbWFwLXN0eWxlLW1vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VSZWYsIHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtNYXAgYXMgTWFwYm94TGVnYWN5TWFwLCBNYXBJbnN0YW5jZSwgTWFwUmVmfSBmcm9tICdyZWFjdC1tYXAtZ2wvbWFwYm94LWxlZ2FjeSc7XG5pbXBvcnQge01hcCBhcyBNYXBsaWJyZU1hcH0gZnJvbSAnQHZpcy5nbC9yZWFjdC1tYXBsaWJyZSc7XG5pbXBvcnQge1xuICBTdHlsZWRNb2RhbENvbnRlbnQsXG4gIElucHV0TGlnaHQsXG4gIFN0eWxlZE1hcENvbnRhaW5lcixcbiAgU3R5bGVkTW9kYWxWZXJ0aWNhbFBhbmVsLFxuICBTdHlsZWRNb2RhbFNlY3Rpb25cbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7bWVkaWF9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcblxuLy8gVXRpbHNcbmltcG9ydCB7Z2V0QXBwbGljYXRpb25Db25maWcsIGdldEJhc2VNYXBMaWJyYXJ5LCB0cmFuc2Zvcm1SZXF1ZXN0fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7aW5qZWN0SW50bCwgSW50bFNoYXBlfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtOT19CQVNFTUFQX0lDT04sIE1BUF9MSUJfT1BUSU9OU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtJbnB1dFN0eWxlLCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0FjdGlvbkhhbmRsZXIsIGlucHV0TWFwU3R5bGUsIGxvYWRDdXN0b21NYXBTdHlsZX0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcblxuY29uc3QgTWFwSCA9IDE5MDtcbmNvbnN0IE1hcFcgPSAyNjQ7XG5jb25zdCBFcnJvck1zZyA9IHtcbiAgc3R5bGVFcnJvcjpcbiAgICAnRmFpbGVkIHRvIGxvYWQgbWFwIHN0eWxlLCBtYWtlIHN1cmUgaXQgaXMgcHVibGlzaGVkLiBGb3IgcHJpdmF0ZSBzdHlsZSwgcGFzdGUgaW4geW91ciBhY2Nlc3MgdG9rZW4uJ1xufTtcblxuY29uc3QgUHJldmlld01hcCA9IHN0eWxlZC5kaXZgXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tbGVmdDogMTE2cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuXG4gIC5wcmV2aWV3LXRpdGxlIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBwYWRkaW5nOiA4cHggMHB4O1xuICB9XG5cbiAgLnByZXZpZXctdGl0bGUuZXJyb3Ige1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVycm9yQ29sb3J9O1xuICAgIG1heC13aWR0aDogMjUwcHg7XG4gIH1cblxuICAke21lZGlhLnBvcnRhYmxlYFxuICAgIG1hcmdpbi1sZWZ0OiAzMnB4O1xuICBgfTtcblxuICAke21lZGlhLnBhbG1gXG4gICAgbWFyZ2luLWxlZnQ6IHVuc2V0O1xuICAgIC5wcmV2aWV3LXRpdGxlIHtcbiAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICB9XG4gIGB9O1xuYDtcblxuY29uc3QgU3R5bGVkUHJldmlld0ltYWdlID0gc3R5bGVkLmRpdmBcbiAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tb2RhbEltYWdlUGxhY2VIb2xkZXJ9O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDE2cHggMCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xuICB3aWR0aDogJHtNYXBXfXB4O1xuICBoZWlnaHQ6ICR7TWFwSH1weDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5wcmV2aWV3LWltYWdlLXBsYWNlaG9sZGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICAucHJldmlldy1pbWFnZS1zcGlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogY2FsYyg1MCUgLSAyNXB4KTtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMjVweCk7XG4gIH1cbmA7XG5cbmNvbnN0IElubGluZUxpbmsgPSBzdHlsZWQuYWBcbiAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbmA7XG5cbmludGVyZmFjZSBBZGRNYXBTdHlsZU1vZGFsUHJvcHMge1xuICBpbnB1dE1hcFN0eWxlOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBpbnB1dE1hcFN0eWxlPjtcbiAgaW5wdXRTdHlsZTogSW5wdXRTdHlsZTtcbiAgbG9hZEN1c3RvbU1hcFN0eWxlOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBsb2FkQ3VzdG9tTWFwU3R5bGU+O1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIHRyYW5zZm9ybVJlcXVlc3Q/OiAobWFwYm94S2V5OiBzdHJpbmcpID0+IChcbiAgICB1cmw6IHN0cmluZyxcbiAgICByZXNvdXJjZVR5cGU6IHN0cmluZ1xuICApID0+IHtcbiAgICB1cmw6IHN0cmluZztcbiAgfTtcbiAgbWFwU3RhdGU6IE1hcFN0YXRlO1xuICBpbnRsOiBJbnRsU2hhcGU7XG59XG5cbmZ1bmN0aW9uIEFkZE1hcFN0eWxlTW9kYWxGYWN0b3J5KCkge1xuICBmdW5jdGlvbiBBZGRNYXBTdHlsZU1vZGFsKHtcbiAgICBpbnB1dE1hcFN0eWxlOiBpbnB1dE1hcFN0eWxlQWN0aW9uLFxuICAgIGlucHV0U3R5bGUsXG4gICAgbG9hZEN1c3RvbU1hcFN0eWxlOiBsb2FkQ3VzdG9tTWFwU3R5bGVBY3Rpb24sXG4gICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgbWFwYm94QXBpVXJsLFxuICAgIHRyYW5zZm9ybVJlcXVlc3Q6IGN1c3RvbVRyYW5zZm9ybVJlcXVlc3QsXG4gICAgbWFwU3RhdGUsXG4gICAgaW50bFxuICB9OiBBZGRNYXBTdHlsZU1vZGFsUHJvcHMpIHtcbiAgICBjb25zdCBbcmVSZW5kZXJLZXksIHNldFJlUmVuZGVyS2V5XSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtwcmV2aW91c1Rva2VuLCBzZXRQcmV2aW91c1Rva2VuXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IG1hcFJlZiA9IHVzZVJlZjxNYXBJbnN0YW5jZSB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IG1hcExpc3RlbmVyc1JlZiA9IHVzZVJlZjx7XG4gICAgICBvblN0eWxlTG9hZD86ICgpID0+IHZvaWQ7XG4gICAgICBvbkVycm9yPzogKCkgPT4gdm9pZDtcbiAgICAgIHBlbmRpbmdPbklkbGU/OiAoKCkgPT4gdm9pZCkgfCBudWxsO1xuICAgIH0+KHt9KTtcbiAgICBjb25zdCBsb2FkQ3VzdG9tTWFwU3R5bGVSZWYgPSB1c2VSZWYobG9hZEN1c3RvbU1hcFN0eWxlQWN0aW9uKTtcbiAgICBsb2FkQ3VzdG9tTWFwU3R5bGVSZWYuY3VycmVudCA9IGxvYWRDdXN0b21NYXBTdHlsZUFjdGlvbjtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaW5wdXRTdHlsZT8uYWNjZXNzVG9rZW4gJiYgaW5wdXRTdHlsZS5hY2Nlc3NUb2tlbiAhPT0gcHJldmlvdXNUb2tlbikge1xuICAgICAgICBzZXRSZVJlbmRlcktleShwcmV2ID0+IHByZXYgKyAxKTtcbiAgICAgICAgc2V0UHJldmlvdXNUb2tlbihpbnB1dFN0eWxlLmFjY2Vzc1Rva2VuKTtcbiAgICAgIH1cbiAgICB9LCBbaW5wdXRTdHlsZT8uYWNjZXNzVG9rZW4sIHByZXZpb3VzVG9rZW5dKTtcblxuICAgIGNvbnN0IHNldE1hcFJlZkNhbGxiYWNrID0gdXNlQ2FsbGJhY2soKG1hcFJlZkluc3RhbmNlOiBNYXBSZWYgfCBudWxsKSA9PiB7XG4gICAgICAvLyBSZW1vdmUgbGlzdGVuZXJzIGZyb20gdGhlIHByZXZpb3VzIG1hcCBpbnN0YW5jZVxuICAgICAgaWYgKG1hcFJlZi5jdXJyZW50ICYmIG1hcFJlZkluc3RhbmNlKSB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG1hcFJlZkluc3RhbmNlLmdldE1hcCgpO1xuICAgICAgICBpZiAobWFwICYmIG1hcFJlZi5jdXJyZW50ICE9PSBtYXApIHtcbiAgICAgICAgICBpZiAobWFwTGlzdGVuZXJzUmVmLmN1cnJlbnQub25TdHlsZUxvYWQpIHtcbiAgICAgICAgICAgIG1hcFJlZi5jdXJyZW50Lm9mZignc3R5bGUubG9hZCcsIG1hcExpc3RlbmVyc1JlZi5jdXJyZW50Lm9uU3R5bGVMb2FkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG1hcExpc3RlbmVyc1JlZi5jdXJyZW50Lm9uRXJyb3IpIHtcbiAgICAgICAgICAgIG1hcFJlZi5jdXJyZW50Lm9mZignZXJyb3InLCBtYXBMaXN0ZW5lcnNSZWYuY3VycmVudC5vbkVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG1hcExpc3RlbmVyc1JlZi5jdXJyZW50LnBlbmRpbmdPbklkbGUpIHtcbiAgICAgICAgICAgIG1hcFJlZi5jdXJyZW50Lm9mZignaWRsZScsIG1hcExpc3RlbmVyc1JlZi5jdXJyZW50LnBlbmRpbmdPbklkbGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtYXBMaXN0ZW5lcnNSZWYuY3VycmVudCA9IHt9O1xuICAgICAgICAgIG1hcFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBtYXAgPSBtYXBSZWZJbnN0YW5jZSAmJiBtYXBSZWZJbnN0YW5jZS5nZXRNYXAoKTtcbiAgICAgIGlmIChtYXAgJiYgbWFwUmVmLmN1cnJlbnQgIT09IG1hcCkge1xuICAgICAgICBtYXBSZWYuY3VycmVudCA9IG1hcDtcblxuICAgICAgICBjb25zdCBvblN0eWxlTG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAvLyBDYW5jZWwgYW55IHByZXZpb3VzIGlkbGUgY2FwdHVyZSB0aGF0IGhhc24ndCBmaXJlZCB5ZXQuXG4gICAgICAgICAgaWYgKG1hcExpc3RlbmVyc1JlZi5jdXJyZW50LnBlbmRpbmdPbklkbGUpIHtcbiAgICAgICAgICAgIG1hcC5vZmYoJ2lkbGUnLCBtYXBMaXN0ZW5lcnNSZWYuY3VycmVudC5wZW5kaW5nT25JZGxlKTtcbiAgICAgICAgICAgIG1hcExpc3RlbmVyc1JlZi5jdXJyZW50LnBlbmRpbmdPbklkbGUgPSBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHN0eWxlID0gbWFwLmdldFN0eWxlKCk7XG4gICAgICAgICAgbG9hZEN1c3RvbU1hcFN0eWxlUmVmLmN1cnJlbnQoe3N0eWxlLCBlcnJvcjogZmFsc2V9KTtcblxuICAgICAgICAgIC8vIENhcHR1cmUgYSB0aHVtYm5haWwgb25jZSB0aGUgbWFwIGZpbmlzaGVzIGl0cyBmaXJzdCBmdWxsIHJlbmRlclxuICAgICAgICAgIC8vICh0aWxlcyBsb2FkZWQgKyBwYWludGVkKS4gIFdlIHVzZSBhIG9uZS1zaG90IGBpZGxlYCBsaXN0ZW5lciBzbyB3ZVxuICAgICAgICAgIC8vIGdldCBhIHJlYWwgc2NyZWVuc2hvdCBpbnN0ZWFkIG9mIGEgYmxhbmsgY2FudmFzLlxuICAgICAgICAgIC8vIHByZXNlcnZlRHJhd2luZ0J1ZmZlciBpcyBzZXQgdG8gdHJ1ZSBvbiB0aGlzIG1hcCBpbnN0YW5jZSwgc29cbiAgICAgICAgICAvLyBnZXRDYW52YXMoKS50b0RhdGFVUkwoKSBpcyBzYWZlIHRvIGNhbGwgc3luY2hyb25vdXNseSBoZXJlLlxuICAgICAgICAgIGNvbnN0IG9uSWRsZSA9ICgpID0+IHtcbiAgICAgICAgICAgIG1hcExpc3RlbmVyc1JlZi5jdXJyZW50LnBlbmRpbmdPbklkbGUgPSBudWxsO1xuICAgICAgICAgICAgbWFwLm9mZignaWRsZScsIG9uSWRsZSk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBpY29uID0gbWFwLmdldENhbnZhcygpLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyk7XG4gICAgICAgICAgICAgIGxvYWRDdXN0b21NYXBTdHlsZVJlZi5jdXJyZW50KHtpY29ufSk7XG4gICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgLy8gdG9EYXRhVVJMIGNhbiBmYWlsIGlmIHRoZSBjYW52YXMgaXMgY3Jvc3Mtb3JpZ2luIHRhaW50ZWQ7IGluXG4gICAgICAgICAgICAgIC8vIHRoYXQgY2FzZSB0aGUgbm8taWNvbiBwbGFjZWhvbGRlciBzZXQgYnkgaW5wdXRNYXBTdHlsZUFjdGlvblxuICAgICAgICAgICAgICAvLyBzdGF5cyBhbmQgaXMgZ29vZCBlbm91Z2guXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBtYXBMaXN0ZW5lcnNSZWYuY3VycmVudC5wZW5kaW5nT25JZGxlID0gb25JZGxlO1xuICAgICAgICAgIG1hcC5vbignaWRsZScsIG9uSWRsZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgb25FcnJvciA9ICgpID0+IHtcbiAgICAgICAgICBsb2FkQ3VzdG9tTWFwU3R5bGVSZWYuY3VycmVudCh7ZXJyb3I6IHRydWV9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBtYXBMaXN0ZW5lcnNSZWYuY3VycmVudC5vblN0eWxlTG9hZCA9IG9uU3R5bGVMb2FkO1xuICAgICAgICBtYXBMaXN0ZW5lcnNSZWYuY3VycmVudC5vbkVycm9yID0gb25FcnJvcjtcblxuICAgICAgICBtYXAub24oJ3N0eWxlLmxvYWQnLCBvblN0eWxlTG9hZCk7XG4gICAgICAgIG1hcC5vbignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBiYXNlTWFwTGlicmFyeU5hbWUgPSBnZXRCYXNlTWFwTGlicmFyeShpbnB1dFN0eWxlKTtcbiAgICBjb25zdCBiYXNlTWFwTGlicmFyeUNvbmZpZyA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuYmFzZU1hcExpYnJhcnlDb25maWdbYmFzZU1hcExpYnJhcnlOYW1lXTtcblxuICAgIGNvbnN0IG1hcGJveEFwaUFjY2Vzc1Rva2VuVG9Vc2UgPSBpbnB1dFN0eWxlLmFjY2Vzc1Rva2VuIHx8IG1hcGJveEFwaUFjY2Vzc1Rva2VuO1xuICAgIGNvbnN0IG1hcFByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xuICAgICAgLi4ubWFwU3RhdGUsXG4gICAgICBtYXBib3hBY2Nlc3NUb2tlbjogbWFwYm94QXBpQWNjZXNzVG9rZW5Ub1VzZSxcbiAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSxcbiAgICAgIHRyYW5zZm9ybVJlcXVlc3Q6XG4gICAgICAgIGN1c3RvbVRyYW5zZm9ybVJlcXVlc3Q/LihtYXBib3hBcGlBY2Nlc3NUb2tlblRvVXNlKSB8fFxuICAgICAgICB0cmFuc2Zvcm1SZXF1ZXN0KG1hcGJveEFwaUFjY2Vzc1Rva2VuVG9Vc2UpXG4gICAgfTtcblxuICAgIGlmIChiYXNlTWFwTGlicmFyeU5hbWUgPT09IE1BUF9MSUJfT1BUSU9OUy5NQVBCT1gpIHtcbiAgICAgIG1hcFByb3BzLm1hcExpYiA9IGJhc2VNYXBMaWJyYXJ5Q29uZmlnLmdldE1hcExpYigpO1xuICAgIH1cblxuICAgIGNvbnN0IFJlc29sdmVkTWFwQ29tcG9uZW50ID1cbiAgICAgIGJhc2VNYXBMaWJyYXJ5TmFtZSA9PT0gTUFQX0xJQl9PUFRJT05TLk1BUEJPWCA/IE1hcGJveExlZ2FjeU1hcCA6IE1hcGxpYnJlTWFwO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWRkLW1hcC1zdHlsZS1tb2RhbFwiPlxuICAgICAgICA8U3R5bGVkTW9kYWxDb250ZW50PlxuICAgICAgICAgIDxTdHlsZWRNb2RhbFZlcnRpY2FsUGFuZWw+XG4gICAgICAgICAgICA8U3R5bGVkTW9kYWxTZWN0aW9uPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmFkZFN0eWxlLnBhc3RlVGl0bGUnfSAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1zZWN0aW9uLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5wYXN0ZVN1YnRpdGxlMCd9KX1cbiAgICAgICAgICAgICAgICA8SW5saW5lTGlua1xuICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL2hlbHAvc3R1ZGlvLW1hbnVhbC1wdWJsaXNoLyNzdHlsZS11cmxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICAgICAgICB7aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmFkZFN0eWxlLnBhc3RlU3VidGl0bGUyJ30pfVxuICAgICAgICAgICAgICAgIDwvSW5saW5lTGluaz57JyAnfVxuICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuYWRkU3R5bGUucGFzdGVTdWJ0aXRsZTMnfSl9XG4gICAgICAgICAgICAgICAgPElubGluZUxpbmsgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vZG9jcy5tYXBib3guY29tL21hcGJveC1nbC1qcy9zdHlsZS1zcGVjXCI+XG4gICAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5wYXN0ZVN1YnRpdGxlNCd9KX1cbiAgICAgICAgICAgICAgICA8L0lubGluZUxpbms+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17aW5wdXRTdHlsZS51cmwgfHwgJyd9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh7dGFyZ2V0OiB7dmFsdWV9fSkgPT5cbiAgICAgICAgICAgICAgICAgIGlucHV0TWFwU3R5bGVBY3Rpb24oe1xuICAgICAgICAgICAgICAgICAgICB1cmw6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBpZDogJ0N1c3RvbSBTdHlsZScsXG4gICAgICAgICAgICAgICAgICAgIGljb246IGAke2dldEFwcGxpY2F0aW9uQ29uZmlnKCkuY2RuVXJsfS8ke05PX0JBU0VNQVBfSUNPTn1gXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImUuZy4gaHR0cHM6Ly9iYXNlbWFwcy5jYXJ0b2Nkbi5jb20vZ2wvcG9zaXRyb24tZ2wtc3R5bGUvc3R5bGUuanNvblwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1N0eWxlZE1vZGFsU2VjdGlvbj5cblxuICAgICAgICAgICAgPFN0eWxlZE1vZGFsU2VjdGlvbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5hZGRTdHlsZS5wdWJsaXNoVGl0bGUnfSAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1zZWN0aW9uLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5wdWJsaXNoU3VidGl0bGUxJ30pfVxuICAgICAgICAgICAgICAgIDxJbmxpbmVMaW5rIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL3N0dWRpby9zdHlsZXMvXCI+XG4gICAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgICAgbWFwYm94XG4gICAgICAgICAgICAgICAgPC9JbmxpbmVMaW5rPnsnICd9XG4gICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5wdWJsaXNoU3VidGl0bGUyJ30pfVxuICAgICAgICAgICAgICAgIDxJbmxpbmVMaW5rXG4gICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3Lm1hcGJveC5jb20vaGVscC9zdHVkaW8tbWFudWFsLXB1Ymxpc2gvXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5wdWJsaXNoU3VidGl0bGUzJ30pfVxuICAgICAgICAgICAgICAgIDwvSW5saW5lTGluaz57JyAnfVxuICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuYWRkU3R5bGUucHVibGlzaFN1YnRpdGxlNCd9KX1cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1zZWN0aW9uLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5wdWJsaXNoU3VidGl0bGU1J30pfVxuICAgICAgICAgICAgICAgIDxJbmxpbmVMaW5rXG4gICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3Lm1hcGJveC5jb20vaGVscC9ob3ctYWNjZXNzLXRva2Vucy13b3JrL1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuYWRkU3R5bGUucHVibGlzaFN1YnRpdGxlNid9KX1cbiAgICAgICAgICAgICAgICA8L0lubGluZUxpbms+eycgJ31cbiAgICAgICAgICAgICAgICB7aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmFkZFN0eWxlLnB1Ymxpc2hTdWJ0aXRsZTcnfSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17aW5wdXRTdHlsZS5hY2Nlc3NUb2tlbiB8fCAnJ31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHt0YXJnZXQ6IHt2YWx1ZX19KSA9PiBpbnB1dE1hcFN0eWxlQWN0aW9uKHthY2Nlc3NUb2tlbjogdmFsdWV9KX1cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmFkZFN0eWxlLmV4YW1wbGVUb2tlbid9KX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvU3R5bGVkTW9kYWxTZWN0aW9uPlxuXG4gICAgICAgICAgICA8U3R5bGVkTW9kYWxTZWN0aW9uPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmFkZFN0eWxlLm5hbWluZ1RpdGxlJ30gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtpbnB1dFN0eWxlLmxhYmVsIHx8ICcnfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoe3RhcmdldDoge3ZhbHVlfX0pID0+IGlucHV0TWFwU3R5bGVBY3Rpb24oe2xhYmVsOiB2YWx1ZX0pfVxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTmFtZSB5b3VyIHN0eWxlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvU3R5bGVkTW9kYWxTZWN0aW9uPlxuICAgICAgICAgIDwvU3R5bGVkTW9kYWxWZXJ0aWNhbFBhbmVsPlxuICAgICAgICAgIDxQcmV2aWV3TWFwPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ3ByZXZpZXctdGl0bGUnLCB7XG4gICAgICAgICAgICAgICAgZXJyb3I6IGlucHV0U3R5bGUuZXJyb3JcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtpbnB1dFN0eWxlLmVycm9yXG4gICAgICAgICAgICAgICAgPyBFcnJvck1zZy5zdHlsZUVycm9yXG4gICAgICAgICAgICAgICAgOiAoaW5wdXRTdHlsZS5zdHlsZSAmJiBpbnB1dFN0eWxlLnN0eWxlLm5hbWUpIHx8ICcnfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8U3R5bGVkUHJldmlld0ltYWdlIGNsYXNzTmFtZT1cInByZXZpZXctaW1hZ2VcIj5cbiAgICAgICAgICAgICAgeyFpbnB1dFN0eWxlLmlzVmFsaWQgPyAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwcmV2aWV3LWltYWdlLXNwaW5uZXJcIiAvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRNYXBDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8UmVzb2x2ZWRNYXBDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgey4uLm1hcFByb3BzfVxuICAgICAgICAgICAgICAgICAgICByZWY9e3NldE1hcFJlZkNhbGxiYWNrIGFzIGFueX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtiYXNlTWFwTGlicmFyeU5hbWV9LSR7cmVSZW5kZXJLZXl9LSR7aW5wdXRTdHlsZS51cmx9LSR7bWFwYm94QXBpQWNjZXNzVG9rZW5Ub1VzZX1gfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBNYXBXLFxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogTWFwSFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBtYXBTdHlsZT17aW5wdXRTdHlsZS51cmwgPT09IG51bGwgPyB1bmRlZmluZWQgOiBpbnB1dFN0eWxlLnVybH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRNYXBDb250YWluZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1N0eWxlZFByZXZpZXdJbWFnZT5cbiAgICAgICAgICA8L1ByZXZpZXdNYXA+XG4gICAgICAgIDwvU3R5bGVkTW9kYWxDb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBpbmplY3RJbnRsKEFkZE1hcFN0eWxlTW9kYWwpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBBZGRNYXBTdHls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
@@ -0,0 +1,52 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
2
+ var _templateObject, _templateObject2, _templateObject3;
3
+ // SPDX-License-Identifier: MIT
4
+ // Copyright contributors to the kepler.gl project
5
+
6
+ import React, { useMemo } from 'react';
7
+ import { Button } from '../../common/styled-components';
8
+ import { ArrowLeft } from '../../common/icons';
9
+ import InfoHelperFactory from '../../common/info-helper';
10
+ import { FormattedMessage } from '@kepler.gl/localization';
11
+ import styled from 'styled-components';
12
+ import { dataTestIds } from '@kepler.gl/constants';
13
+ var StyledStorageHeader = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n font-size: 12px;\n line-height: 14px;\n"])));
14
+ var StyledBackBtn = styled.a(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-bottom: 16px;\n color: #3a414c;\n cursor: pointer;\n\n &:hover {\n font-weight: 500;\n }\n"])));
15
+ var LINK_STYLE = {
16
+ textDecoration: 'underline'
17
+ };
18
+ var Title = styled.span(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n font-size: 14px;\n line-height: 16px;\n font-weight: 500;\n margin-bottom: 16px;\n\n span {\n text-transform: capitalize;\n }\n"])));
19
+ CloudHeaderFactory.deps = [InfoHelperFactory];
20
+ function CloudHeaderFactory(InfoHelper) {
21
+ var CloudHeader = function CloudHeader(_ref) {
22
+ var provider = _ref.provider,
23
+ onBack = _ref.onBack;
24
+ var managementUrl = useMemo(function () {
25
+ return provider.getManagementUrl();
26
+ }, [provider]);
27
+ return /*#__PURE__*/React.createElement("div", {
28
+ "data-testid": dataTestIds.cloudHeader
29
+ }, /*#__PURE__*/React.createElement(StyledStorageHeader, null, /*#__PURE__*/React.createElement(StyledBackBtn, null, /*#__PURE__*/React.createElement(Button, {
30
+ link: true,
31
+ onClick: onBack
32
+ }, /*#__PURE__*/React.createElement(ArrowLeft, {
33
+ height: "14px"
34
+ }), /*#__PURE__*/React.createElement(FormattedMessage, {
35
+ id: 'modal.loadStorageMap.back'
36
+ }))), managementUrl && /*#__PURE__*/React.createElement("a", {
37
+ key: 1,
38
+ href: managementUrl,
39
+ target: "_blank",
40
+ rel: "noopener noreferrer",
41
+ style: LINK_STYLE
42
+ }, provider.displayName)), /*#__PURE__*/React.createElement(Title, null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", null, provider.displayName), ' ', /*#__PURE__*/React.createElement(FormattedMessage, {
43
+ id: 'modal.loadStorageMap.storageMaps'
44
+ })), provider.storageMessage ? /*#__PURE__*/React.createElement(InfoHelper, {
45
+ id: "cloud-provider-storageMessage",
46
+ description: provider.storageMessage
47
+ }) : null));
48
+ };
49
+ return CloudHeader;
50
+ }
51
+ export default CloudHeaderFactory;
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJCdXR0b24iLCJBcnJvd0xlZnQiLCJJbmZvSGVscGVyRmFjdG9yeSIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJzdHlsZWQiLCJkYXRhVGVzdElkcyIsIlN0eWxlZFN0b3JhZ2VIZWFkZXIiLCJkaXYiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwiU3R5bGVkQmFja0J0biIsImEiLCJfdGVtcGxhdGVPYmplY3QyIiwiTElOS19TVFlMRSIsInRleHREZWNvcmF0aW9uIiwiVGl0bGUiLCJzcGFuIiwiX3RlbXBsYXRlT2JqZWN0MyIsIkNsb3VkSGVhZGVyRmFjdG9yeSIsImRlcHMiLCJJbmZvSGVscGVyIiwiQ2xvdWRIZWFkZXIiLCJfcmVmIiwicHJvdmlkZXIiLCJvbkJhY2siLCJtYW5hZ2VtZW50VXJsIiwiZ2V0TWFuYWdlbWVudFVybCIsImNyZWF0ZUVsZW1lbnQiLCJjbG91ZEhlYWRlciIsImxpbmsiLCJvbkNsaWNrIiwiaGVpZ2h0IiwiaWQiLCJrZXkiLCJocmVmIiwidGFyZ2V0IiwicmVsIiwic3R5bGUiLCJkaXNwbGF5TmFtZSIsInN0b3JhZ2VNZXNzYWdlIiwiZGVzY3JpcHRpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kYWxzL2Nsb3VkLWNvbXBvbmVudHMvY2xvdWQtaGVhZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0J1dHRvbn0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7QXJyb3dMZWZ0fSBmcm9tICcuLi8uLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IEluZm9IZWxwZXJGYWN0b3J5IGZyb20gJy4uLy4uL2NvbW1vbi9pbmZvLWhlbHBlcic7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtkYXRhVGVzdElkc30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtQcm92aWRlcn0gZnJvbSAnQGtlcGxlci5nbC9jbG91ZC1wcm92aWRlcnMnO1xuXG5jb25zdCBTdHlsZWRTdG9yYWdlSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuYDtcblxuY29uc3QgU3R5bGVkQmFja0J0biA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBjb2xvcjogIzNhNDE0YztcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cbmA7XG5cbmNvbnN0IExJTktfU1RZTEUgPSB7dGV4dERlY29yYXRpb246ICd1bmRlcmxpbmUnfTtcblxuY29uc3QgVGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcblxuICBzcGFuIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgfVxuYDtcblxudHlwZSBDbG91ZEhlYWRlclByb3BzID0ge1xuICBwcm92aWRlcjogUHJvdmlkZXI7XG4gIG9uQmFjazogKCkgPT4gdm9pZDtcbn07XG5cbkNsb3VkSGVhZGVyRmFjdG9yeS5kZXBzID0gW0luZm9IZWxwZXJGYWN0b3J5XTtcblxuZnVuY3Rpb24gQ2xvdWRIZWFkZXJGYWN0b3J5KEluZm9IZWxwZXI6IFJldHVyblR5cGU8dHlwZW9mIEluZm9IZWxwZXJGYWN0b3J5Pikge1xuICBjb25zdCBDbG91ZEhlYWRlcjogUmVhY3QuRkM8Q2xvdWRIZWFkZXJQcm9wcz4gPSAoe3Byb3ZpZGVyLCBvbkJhY2t9KSA9PiB7XG4gICAgY29uc3QgbWFuYWdlbWVudFVybCA9IHVzZU1lbW8oKCkgPT4gcHJvdmlkZXIuZ2V0TWFuYWdlbWVudFVybCgpLCBbcHJvdmlkZXJdKTtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZHMuY2xvdWRIZWFkZXJ9PlxuICAgICAgICA8U3R5bGVkU3RvcmFnZUhlYWRlcj5cbiAgICAgICAgICA8U3R5bGVkQmFja0J0bj5cbiAgICAgICAgICAgIDxCdXR0b24gbGluayBvbkNsaWNrPXtvbkJhY2t9PlxuICAgICAgICAgICAgICA8QXJyb3dMZWZ0IGhlaWdodD1cIjE0cHhcIiAvPlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmxvYWRTdG9yYWdlTWFwLmJhY2snfSAvPlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9TdHlsZWRCYWNrQnRuPlxuICAgICAgICAgIHttYW5hZ2VtZW50VXJsICYmIChcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGtleT17MX1cbiAgICAgICAgICAgICAgaHJlZj17bWFuYWdlbWVudFVybH1cbiAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgIHN0eWxlPXtMSU5LX1NUWUxFfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7cHJvdmlkZXIuZGlzcGxheU5hbWV9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdHlsZWRTdG9yYWdlSGVhZGVyPlxuICAgICAgICA8VGl0bGU+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzcGFuPntwcm92aWRlci5kaXNwbGF5TmFtZX08L3NwYW4+eycgJ31cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwubG9hZFN0b3JhZ2VNYXAuc3RvcmFnZU1hcHMnfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHtwcm92aWRlci5zdG9yYWdlTWVzc2FnZSA/IChcbiAgICAgICAgICAgIDxJbmZvSGVscGVyXG4gICAgICAgICAgICAgIGlkPXtgY2xvdWQtcHJvdmlkZXItc3RvcmFnZU1lc3NhZ2VgfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17cHJvdmlkZXIuc3RvcmFnZU1lc3NhZ2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1RpdGxlPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIENsb3VkSGVhZGVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDbG91ZEhlYWRlckZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTs7QUFFQSxPQUFPQSxLQUFLLElBQUdDLE9BQU8sUUFBTyxPQUFPO0FBQ3BDLFNBQVFDLE1BQU0sUUFBTyxnQ0FBZ0M7QUFDckQsU0FBUUMsU0FBUyxRQUFPLG9CQUFvQjtBQUM1QyxPQUFPQyxpQkFBaUIsTUFBTSwwQkFBMEI7QUFDeEQsU0FBUUMsZ0JBQWdCLFFBQU8seUJBQXlCO0FBQ3hELE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsU0FBUUMsV0FBVyxRQUFPLHNCQUFzQjtBQUdoRCxJQUFNQyxtQkFBbUIsR0FBR0YsTUFBTSxDQUFDRyxHQUFHLENBQUFDLGVBQUEsS0FBQUEsZUFBQSxHQUFBQyxzQkFBQSxpTEFRckM7QUFFRCxJQUFNQyxhQUFhLEdBQUdOLE1BQU0sQ0FBQ08sQ0FBQyxDQUFBQyxnQkFBQSxLQUFBQSxnQkFBQSxHQUFBSCxzQkFBQSxvSEFRN0I7QUFFRCxJQUFNSSxVQUFVLEdBQUc7RUFBQ0MsY0FBYyxFQUFFO0FBQVcsQ0FBQztBQUVoRCxJQUFNQyxLQUFLLEdBQUdYLE1BQU0sQ0FBQ1ksSUFBSSxDQUFBQyxnQkFBQSxLQUFBQSxnQkFBQSxHQUFBUixzQkFBQSxxS0FVeEI7QUFPRFMsa0JBQWtCLENBQUNDLElBQUksR0FBRyxDQUFDakIsaUJBQWlCLENBQUM7QUFFN0MsU0FBU2dCLGtCQUFrQkEsQ0FBQ0UsVUFBZ0QsRUFBRTtFQUM1RSxJQUFNQyxXQUF1QyxHQUFHLFNBQTFDQSxXQUF1Q0EsQ0FBQUMsSUFBQSxFQUEyQjtJQUFBLElBQXRCQyxRQUFRLEdBQUFELElBQUEsQ0FBUkMsUUFBUTtNQUFFQyxNQUFNLEdBQUFGLElBQUEsQ0FBTkUsTUFBTTtJQUNoRSxJQUFNQyxhQUFhLEdBQUcxQixPQUFPLENBQUM7TUFBQSxPQUFNd0IsUUFBUSxDQUFDRyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQUEsR0FBRSxDQUFDSCxRQUFRLENBQUMsQ0FBQztJQUM1RSxvQkFDRXpCLEtBQUEsQ0FBQTZCLGFBQUE7TUFBSyxlQUFhdEIsV0FBVyxDQUFDdUI7SUFBWSxnQkFDeEM5QixLQUFBLENBQUE2QixhQUFBLENBQUNyQixtQkFBbUIscUJBQ2xCUixLQUFBLENBQUE2QixhQUFBLENBQUNqQixhQUFhLHFCQUNaWixLQUFBLENBQUE2QixhQUFBLENBQUMzQixNQUFNO01BQUM2QixJQUFJO01BQUNDLE9BQU8sRUFBRU47SUFBTyxnQkFDM0IxQixLQUFBLENBQUE2QixhQUFBLENBQUMxQixTQUFTO01BQUM4QixNQUFNLEVBQUM7SUFBTSxDQUFFLENBQUMsZUFDM0JqQyxLQUFBLENBQUE2QixhQUFBLENBQUN4QixnQkFBZ0I7TUFBQzZCLEVBQUUsRUFBRTtJQUE0QixDQUFFLENBQzlDLENBQ0ssQ0FBQyxFQUNmUCxhQUFhLGlCQUNaM0IsS0FBQSxDQUFBNkIsYUFBQTtNQUNFTSxHQUFHLEVBQUUsQ0FBRTtNQUNQQyxJQUFJLEVBQUVULGFBQWM7TUFDcEJVLE1BQU0sRUFBQyxRQUFRO01BQ2ZDLEdBQUcsRUFBQyxxQkFBcUI7TUFDekJDLEtBQUssRUFBRXhCO0lBQVcsR0FFakJVLFFBQVEsQ0FBQ2UsV0FDVCxDQUVjLENBQUMsZUFDdEJ4QyxLQUFBLENBQUE2QixhQUFBLENBQUNaLEtBQUsscUJBQ0pqQixLQUFBLENBQUE2QixhQUFBLDJCQUNFN0IsS0FBQSxDQUFBNkIsYUFBQSxlQUFPSixRQUFRLENBQUNlLFdBQWtCLENBQUMsRUFBQyxHQUFHLGVBQ3ZDeEMsS0FBQSxDQUFBNkIsYUFBQSxDQUFDeEIsZ0JBQWdCO01BQUM2QixFQUFFLEVBQUU7SUFBbUMsQ0FBRSxDQUN4RCxDQUFDLEVBQ0xULFFBQVEsQ0FBQ2dCLGNBQWMsZ0JBQ3RCekMsS0FBQSxDQUFBNkIsYUFBQSxDQUFDUCxVQUFVO01BQ1RZLEVBQUUsaUNBQWtDO01BQ3BDUSxXQUFXLEVBQUVqQixRQUFRLENBQUNnQjtJQUFlLENBQ3RDLENBQUMsR0FDQSxJQUNDLENBQ0osQ0FBQztFQUVWLENBQUM7RUFDRCxPQUFPbEIsV0FBVztBQUNwQjtBQUVBLGVBQWVILGtCQUFrQiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,100 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
3
+ var _templateObject;
4
+ // SPDX-License-Identifier: MIT
5
+ // Copyright contributors to the kepler.gl project
6
+
7
+ import moment from 'moment/moment';
8
+ import React, { useEffect, useRef, useState } from 'react';
9
+ import styled from 'styled-components';
10
+ import { Base } from '../../common/icons';
11
+ var MapIcon = function MapIcon(props) {
12
+ return /*#__PURE__*/React.createElement("div", props, props.children, /*#__PURE__*/React.createElement(Base, {
13
+ height: "32px",
14
+ viewBox: '0 0 16 16'
15
+ }, /*#__PURE__*/React.createElement("path", {
16
+ fill: "#d3d8d6",
17
+ d: "m13.6 11.572-3.2 2.1336v-9.2776l3.2-2.1336zm-12-7.144 3.2-2.1336v9.2776l-3.2 2.1336zm13.244 8.2376c0.2224-0.148 0.356-0.3984 0.356-0.6656v-11.2c0-0.2952-0.1624-0.5664-0.4224-0.7048-0.26-0.14-0.576-0.1248-0.8216 0.0392l-4.3128 2.876-3.5432-2.8352c-0.1208-0.0936-0.2952-0.1624-0.472-0.1688-0.1648-0.0064-0.348 0.0464-0.472 0.128l-4.8 3.2c-0.2224 0.1488-0.356 0.3984-0.356 0.6656v11.2c0 0.2952 0.1624 0.5664 0.4224 0.7056 0.1184 0.0632 0.248 0.0944 0.3776 0.0944 0.1552 0 0.3096-0.0448 0.444-0.1344l4.3128-2.876 3.5432 2.8352c0.1448 0.116 0.3216 0.1752 0.5 0.1752 0.1184 0 0.236-0.0248 0.3464-0.0784z"
18
+ })));
19
+ };
20
+ var PrivacyBadge = function PrivacyBadge(_ref) {
21
+ var privateMap = _ref.privateMap;
22
+ return /*#__PURE__*/React.createElement("span", {
23
+ className: "vis_item-privacy"
24
+ }, privateMap ? 'Private' : 'Public');
25
+ };
26
+ var StyledVisualizationItem = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n flex: 0 0 auto;\n width: 208px;\n display: flex;\n flex-direction: column;\n padding: 16px 8px;\n color: #3a414c;\n cursor: pointer;\n font-size: 12px;\n line-height: 18px;\n border: 1px solid transparent;\n\n &:hover {\n .vis_item-icon,\n .vis_item-thumb,\n .vis_item-description,\n .vis_item-modification-date {\n opacity: 1;\n }\n border: 1px solid #bbbbbb;\n }\n\n .vis_item-icon,\n .vis_item-thumb,\n .vis_item-description,\n .vis_item-modification-date {\n opacity: 0.9;\n transition: opacity 0.4s ease;\n }\n\n .vis_item-icon {\n position: relative;\n flex: 0 0 108px;\n background-color: #6a7484;\n border-radius: 4px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n }\n\n .vis_item-thumb {\n position: relative;\n flex: 0 0 108px;\n background-size: cover;\n background-position: center;\n border-radius: 4px;\n }\n\n .vis_item-privacy {\n position: absolute;\n top: 0;\n left: 0;\n padding: 3px 6px;\n border-radius: 4px 0;\n background-color: rgba(58, 65, 76, 0.7);\n color: #fff;\n font-size: 11px;\n line-height: 18px;\n }\n\n .vis_item-title {\n margin-top: 16px;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .vis_item-description {\n flex: 1 1 auto;\n margin-top: 8px;\n }\n\n .vis_item-modification-date {\n margin-top: 16px;\n flex: 1 0 auto;\n color: #6a7484;\n line-height: 15px;\n }\n"])));
27
+ export var CloudItem = function CloudItem(_ref2) {
28
+ var _vis$description;
29
+ var vis = _ref2.vis,
30
+ onClick = _ref2.onClick,
31
+ provider = _ref2.provider;
32
+ var _useState = useState(vis.thumbnail),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ thumbnail = _useState2[0],
35
+ setThumbnail = _useState2[1];
36
+ var rootRef = useRef(null);
37
+ var loadingRef = useRef(false);
38
+ useEffect(function () {
39
+ setThumbnail(vis.thumbnail);
40
+ loadingRef.current = false;
41
+ }, [vis.id, vis.thumbnail]);
42
+ useEffect(function () {
43
+ var _provider$hasLazyThum;
44
+ if (thumbnail || !(provider !== null && provider !== void 0 && (_provider$hasLazyThum = provider.hasLazyThumbnails) !== null && _provider$hasLazyThum !== void 0 && _provider$hasLazyThum.call(provider)) || !(provider !== null && provider !== void 0 && provider.getMapThumbnail) || !rootRef.current) {
45
+ return;
46
+ }
47
+ var cancelled = false;
48
+ var el = rootRef.current;
49
+ var observer = new IntersectionObserver(function (entries) {
50
+ var entry = entries[0];
51
+ if (!(entry !== null && entry !== void 0 && entry.isIntersecting) || loadingRef.current || cancelled) {
52
+ return;
53
+ }
54
+ loadingRef.current = true;
55
+ Promise.resolve(provider.getMapThumbnail(vis)).then(function (url) {
56
+ if (!cancelled && url) {
57
+ setThumbnail(url);
58
+ }
59
+ })["catch"](function () {
60
+ // Keep placeholder icon on failure
61
+ })["finally"](function () {
62
+ observer.disconnect();
63
+ });
64
+ }, {
65
+ root: null,
66
+ rootMargin: '100px',
67
+ threshold: 0.01
68
+ });
69
+ observer.observe(el);
70
+ return function () {
71
+ cancelled = true;
72
+ observer.disconnect();
73
+ };
74
+ }, [thumbnail, provider, vis]);
75
+ var thumbnailStyle = thumbnail ? {
76
+ backgroundImage: "url(".concat(thumbnail, ")")
77
+ } : undefined;
78
+ return /*#__PURE__*/React.createElement(StyledVisualizationItem, {
79
+ ref: rootRef,
80
+ onClick: onClick
81
+ }, thumbnail ? /*#__PURE__*/React.createElement("div", {
82
+ role: "thumbnail-wrapper",
83
+ className: "vis_item-thumb",
84
+ style: thumbnailStyle
85
+ }, Object.prototype.hasOwnProperty.call(vis, 'privateMap') ? /*#__PURE__*/React.createElement(PrivacyBadge, {
86
+ privateMap: vis.privateMap
87
+ }) : null) : /*#__PURE__*/React.createElement(MapIcon, {
88
+ role: "map-icon",
89
+ className: "vis_item-icon"
90
+ }, Object.prototype.hasOwnProperty.call(vis, 'privateMap') ? /*#__PURE__*/React.createElement(PrivacyBadge, {
91
+ privateMap: vis.privateMap
92
+ }) : null), /*#__PURE__*/React.createElement("span", {
93
+ className: "vis_item-title"
94
+ }, vis.title), ((_vis$description = vis.description) === null || _vis$description === void 0 ? void 0 : _vis$description.length) > 0 && /*#__PURE__*/React.createElement("span", {
95
+ className: "vis_item-description"
96
+ }, vis.description), /*#__PURE__*/React.createElement("span", {
97
+ className: "vis_item-modification-date"
98
+ }, "Last modified ", moment.utc(vis.updatedAt).fromNow()));
99
+ };
100
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb21lbnQiLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwic3R5bGVkIiwiQmFzZSIsIk1hcEljb24iLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJjaGlsZHJlbiIsImhlaWdodCIsInZpZXdCb3giLCJmaWxsIiwiZCIsIlByaXZhY3lCYWRnZSIsIl9yZWYiLCJwcml2YXRlTWFwIiwiY2xhc3NOYW1lIiwiU3R5bGVkVmlzdWFsaXphdGlvbkl0ZW0iLCJkaXYiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwiQ2xvdWRJdGVtIiwiX3JlZjIiLCJfdmlzJGRlc2NyaXB0aW9uIiwidmlzIiwib25DbGljayIsInByb3ZpZGVyIiwiX3VzZVN0YXRlIiwidGh1bWJuYWlsIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2V0VGh1bWJuYWlsIiwicm9vdFJlZiIsImxvYWRpbmdSZWYiLCJjdXJyZW50IiwiaWQiLCJfcHJvdmlkZXIkaGFzTGF6eVRodW0iLCJoYXNMYXp5VGh1bWJuYWlscyIsImNhbGwiLCJnZXRNYXBUaHVtYm5haWwiLCJjYW5jZWxsZWQiLCJlbCIsIm9ic2VydmVyIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJlbnRyaWVzIiwiZW50cnkiLCJpc0ludGVyc2VjdGluZyIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInVybCIsImRpc2Nvbm5lY3QiLCJyb290Iiwicm9vdE1hcmdpbiIsInRocmVzaG9sZCIsIm9ic2VydmUiLCJ0aHVtYm5haWxTdHlsZSIsImJhY2tncm91bmRJbWFnZSIsImNvbmNhdCIsInVuZGVmaW5lZCIsInJlZiIsInJvbGUiLCJzdHlsZSIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImxlbmd0aCIsInV0YyIsInVwZGF0ZWRBdCIsImZyb21Ob3ciXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kYWxzL2Nsb3VkLWNvbXBvbmVudHMvY2xvdWQtaXRlbS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Jhc2V9IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5cbmNvbnN0IE1hcEljb24gPSBwcm9wcyA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiB7Li4ucHJvcHN9PlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPEJhc2UgaGVpZ2h0PVwiMzJweFwiIHZpZXdCb3g9eycwIDAgMTYgMTYnfT5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBmaWxsPVwiI2QzZDhkNlwiXG4gICAgICAgICAgZD1cIm0xMy42IDExLjU3Mi0zLjIgMi4xMzM2di05LjI3NzZsMy4yLTIuMTMzNnptLTEyLTcuMTQ0IDMuMi0yLjEzMzZ2OS4yNzc2bC0zLjIgMi4xMzM2em0xMy4yNDQgOC4yMzc2YzAuMjIyNC0wLjE0OCAwLjM1Ni0wLjM5ODQgMC4zNTYtMC42NjU2di0xMS4yYzAtMC4yOTUyLTAuMTYyNC0wLjU2NjQtMC40MjI0LTAuNzA0OC0wLjI2LTAuMTQtMC41NzYtMC4xMjQ4LTAuODIxNiAwLjAzOTJsLTQuMzEyOCAyLjg3Ni0zLjU0MzItMi44MzUyYy0wLjEyMDgtMC4wOTM2LTAuMjk1Mi0wLjE2MjQtMC40NzItMC4xNjg4LTAuMTY0OC0wLjAwNjQtMC4zNDggMC4wNDY0LTAuNDcyIDAuMTI4bC00LjggMy4yYy0wLjIyMjQgMC4xNDg4LTAuMzU2IDAuMzk4NC0wLjM1NiAwLjY2NTZ2MTEuMmMwIDAuMjk1MiAwLjE2MjQgMC41NjY0IDAuNDIyNCAwLjcwNTYgMC4xMTg0IDAuMDYzMiAwLjI0OCAwLjA5NDQgMC4zNzc2IDAuMDk0NCAwLjE1NTIgMCAwLjMwOTYtMC4wNDQ4IDAuNDQ0LTAuMTM0NGw0LjMxMjgtMi44NzYgMy41NDMyIDIuODM1MmMwLjE0NDggMC4xMTYgMC4zMjE2IDAuMTc1MiAwLjUgMC4xNzUyIDAuMTE4NCAwIDAuMjM2LTAuMDI0OCAwLjM0NjQtMC4wNzg0elwiXG4gICAgICAgIC8+XG4gICAgICA8L0Jhc2U+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBQcml2YWN5QmFkZ2UgPSAoe3ByaXZhdGVNYXB9KSA9PiAoXG4gIDxzcGFuIGNsYXNzTmFtZT1cInZpc19pdGVtLXByaXZhY3lcIj57cHJpdmF0ZU1hcCA/ICdQcml2YXRlJyA6ICdQdWJsaWMnfTwvc3Bhbj5cbik7XG5cbmNvbnN0IFN0eWxlZFZpc3VhbGl6YXRpb25JdGVtID0gc3R5bGVkLmRpdmBcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAyMDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogMTZweCA4cHg7XG4gIGNvbG9yOiAjM2E0MTRjO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICY6aG92ZXIge1xuICAgIC52aXNfaXRlbS1pY29uLFxuICAgIC52aXNfaXRlbS10aHVtYixcbiAgICAudmlzX2l0ZW0tZGVzY3JpcHRpb24sXG4gICAgLnZpc19pdGVtLW1vZGlmaWNhdGlvbi1kYXRlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmJiYmI7XG4gIH1cblxuICAudmlzX2l0ZW0taWNvbixcbiAgLnZpc19pdGVtLXRodW1iLFxuICAudmlzX2l0ZW0tZGVzY3JpcHRpb24sXG4gIC52aXNfaXRlbS1tb2RpZmljYXRpb24tZGF0ZSB7XG4gICAgb3BhY2l0eTogMC45O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlO1xuICB9XG5cbiAgLnZpc19pdGVtLWljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAwIDAgMTA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZhNzQ4NDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAudmlzX2l0ZW0tdGh1bWIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAwIDAgMTA4cHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG5cbiAgLnZpc19pdGVtLXByaXZhY3kge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTgsIDY1LCA3NiwgMC43KTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIH1cblxuICAudmlzX2l0ZW0tdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuICAudmlzX2l0ZW0tZGVzY3JpcHRpb24ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgfVxuXG4gIC52aXNfaXRlbS1tb2RpZmljYXRpb24tZGF0ZSB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgICBjb2xvcjogIzZhNzQ4NDtcbiAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IENsb3VkSXRlbSA9ICh7dmlzLCBvbkNsaWNrLCBwcm92aWRlcn0pID0+IHtcbiAgY29uc3QgW3RodW1ibmFpbCwgc2V0VGh1bWJuYWlsXSA9IHVzZVN0YXRlKHZpcy50aHVtYm5haWwpO1xuICBjb25zdCByb290UmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBsb2FkaW5nUmVmID0gdXNlUmVmKGZhbHNlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFRodW1ibmFpbCh2aXMudGh1bWJuYWlsKTtcbiAgICBsb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgfSwgW3Zpcy5pZCwgdmlzLnRodW1ibmFpbF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgdGh1bWJuYWlsIHx8XG4gICAgICAhcHJvdmlkZXI/Lmhhc0xhenlUaHVtYm5haWxzPy4oKSB8fFxuICAgICAgIXByb3ZpZGVyPy5nZXRNYXBUaHVtYm5haWwgfHxcbiAgICAgICFyb290UmVmLmN1cnJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgY29uc3QgZWwgPSByb290UmVmLmN1cnJlbnQ7XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICBlbnRyaWVzID0+IHtcbiAgICAgICAgY29uc3QgZW50cnkgPSBlbnRyaWVzWzBdO1xuICAgICAgICBpZiAoIWVudHJ5Py5pc0ludGVyc2VjdGluZyB8fCBsb2FkaW5nUmVmLmN1cnJlbnQgfHwgY2FuY2VsbGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxvYWRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShwcm92aWRlci5nZXRNYXBUaHVtYm5haWwodmlzKSlcbiAgICAgICAgICAudGhlbih1cmwgPT4ge1xuICAgICAgICAgICAgaWYgKCFjYW5jZWxsZWQgJiYgdXJsKSB7XG4gICAgICAgICAgICAgIHNldFRodW1ibmFpbCh1cmwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgIC8vIEtlZXAgcGxhY2Vob2xkZXIgaWNvbiBvbiBmYWlsdXJlXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAge3Jvb3Q6IG51bGwsIHJvb3RNYXJnaW46ICcxMDBweCcsIHRocmVzaG9sZDogMC4wMX1cbiAgICApO1xuXG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZShlbCk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfTtcbiAgfSwgW3RodW1ibmFpbCwgcHJvdmlkZXIsIHZpc10pO1xuXG4gIGNvbnN0IHRodW1ibmFpbFN0eWxlID0gdGh1bWJuYWlsID8ge2JhY2tncm91bmRJbWFnZTogYHVybCgke3RodW1ibmFpbH0pYH0gOiB1bmRlZmluZWQ7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlZFZpc3VhbGl6YXRpb25JdGVtIHJlZj17cm9vdFJlZn0gb25DbGljaz17b25DbGlja30+XG4gICAgICB7dGh1bWJuYWlsID8gKFxuICAgICAgICA8ZGl2IHJvbGU9XCJ0aHVtYm5haWwtd3JhcHBlclwiIGNsYXNzTmFtZT1cInZpc19pdGVtLXRodW1iXCIgc3R5bGU9e3RodW1ibmFpbFN0eWxlfT5cbiAgICAgICAgICB7T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZpcywgJ3ByaXZhdGVNYXAnKSA/IChcbiAgICAgICAgICAgIDxQcml2YWN5QmFkZ2UgcHJpdmF0ZU1hcD17dmlzLnByaXZhdGVNYXB9IC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgPE1hcEljb24gcm9sZT1cIm1hcC1pY29uXCIgY2xhc3NOYW1lPVwidmlzX2l0ZW0taWNvblwiPlxuICAgICAgICAgIHtPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmlzLCAncHJpdmF0ZU1hcCcpID8gKFxuICAgICAgICAgICAgPFByaXZhY3lCYWRnZSBwcml2YXRlTWFwPXt2aXMucHJpdmF0ZU1hcH0gLz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9NYXBJY29uPlxuICAgICAgKX1cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInZpc19pdGVtLXRpdGxlXCI+e3Zpcy50aXRsZX08L3NwYW4+XG4gICAgICB7dmlzLmRlc2NyaXB0aW9uPy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidmlzX2l0ZW0tZGVzY3JpcHRpb25cIj57dmlzLmRlc2NyaXB0aW9ufTwvc3Bhbj5cbiAgICAgICl9XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJ2aXNfaXRlbS1tb2RpZmljYXRpb24tZGF0ZVwiPlxuICAgICAgICBMYXN0IG1vZGlmaWVkIHttb21lbnQudXRjKHZpcy51cGRhdGVkQXQpLmZyb21Ob3coKX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L1N0eWxlZFZpc3VhbGl6YXRpb25JdGVtPlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDQTs7QUFF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