@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,24 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
2
+ var _templateObject;
3
+ // SPDX-License-Identifier: MIT
4
+ // Copyright contributors to the kepler.gl project
5
+
6
+ import React from 'react';
7
+ import styled from 'styled-components';
8
+ import { FormattedMessage } from '@kepler.gl/localization';
9
+ var LayerErrorMessageContent = styled.div.attrs({
10
+ className: 'layer-error-message-content'
11
+ })(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background-color: ", ";\n color: #fff;\n display: block;\n width: 100%;\n font-size: 11px;\n padding: 1em;\n border-radius: 4px;\n"])), function (props) {
12
+ return props.theme.notificationColors.error || '#000';
13
+ });
14
+ var LayerErrorMessage = function LayerErrorMessage(_ref) {
15
+ var errorMessage = _ref.errorMessage;
16
+ return /*#__PURE__*/React.createElement(LayerErrorMessageContent, null, /*#__PURE__*/React.createElement(FormattedMessage, {
17
+ id: 'layer.layerUpdateError',
18
+ values: {
19
+ errorMessage: errorMessage
20
+ }
21
+ }));
22
+ };
23
+ export default LayerErrorMessage;
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInN0eWxlZCIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJMYXllckVycm9yTWVzc2FnZUNvbnRlbnQiLCJkaXYiLCJhdHRycyIsImNsYXNzTmFtZSIsIl90ZW1wbGF0ZU9iamVjdCIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwiLCJwcm9wcyIsInRoZW1lIiwibm90aWZpY2F0aW9uQ29sb3JzIiwiZXJyb3IiLCJMYXllckVycm9yTWVzc2FnZSIsIl9yZWYiLCJlcnJvck1lc3NhZ2UiLCJjcmVhdGVFbGVtZW50IiwiaWQiLCJ2YWx1ZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1lcnJvci1tZXNzYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuXG5jb25zdCBMYXllckVycm9yTWVzc2FnZUNvbnRlbnQgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbGF5ZXItZXJyb3ItbWVzc2FnZS1jb250ZW50J1xufSlgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubm90aWZpY2F0aW9uQ29sb3JzLmVycm9yIHx8ICcjMDAwJ307XG4gIGNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgcGFkZGluZzogMWVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG5gO1xuXG50eXBlIExheWVyRXJyb3JNZXNzYWdlUHJvcHMgPSB7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xufTtcblxuY29uc3QgTGF5ZXJFcnJvck1lc3NhZ2U6IFJlYWN0LkZDPExheWVyRXJyb3JNZXNzYWdlUHJvcHM+ID0gKHtlcnJvck1lc3NhZ2V9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPExheWVyRXJyb3JNZXNzYWdlQ29udGVudD5cbiAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbGF5ZXIubGF5ZXJVcGRhdGVFcnJvcid9IHZhbHVlcz17e2Vycm9yTWVzc2FnZX19IC8+XG4gICAgPC9MYXllckVycm9yTWVzc2FnZUNvbnRlbnQ+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBMYXllckVycm9yTWVzc2FnZTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBOztBQUVBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFFdEMsU0FBUUMsZ0JBQWdCLFFBQU8seUJBQXlCO0FBRXhELElBQU1DLHdCQUF3QixHQUFHRixNQUFNLENBQUNHLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDO0VBQ2hEQyxTQUFTLEVBQUU7QUFDYixDQUFDLENBQUMsQ0FBQUMsZUFBQSxLQUFBQSxlQUFBLEdBQUFDLHNCQUFBLHFKQUNvQixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLGtCQUFrQixDQUFDQyxLQUFLLElBQUksTUFBTTtBQUFBLEVBTzVFO0FBTUQsSUFBTUMsaUJBQW1ELEdBQUcsU0FBdERBLGlCQUFtREEsQ0FBQUMsSUFBQSxFQUF1QjtFQUFBLElBQWxCQyxZQUFZLEdBQUFELElBQUEsQ0FBWkMsWUFBWTtFQUN4RSxvQkFDRWYsS0FBQSxDQUFBZ0IsYUFBQSxDQUFDYix3QkFBd0IscUJBQ3ZCSCxLQUFBLENBQUFnQixhQUFBLENBQUNkLGdCQUFnQjtJQUFDZSxFQUFFLEVBQUUsd0JBQXlCO0lBQUNDLE1BQU0sRUFBRTtNQUFDSCxZQUFZLEVBQVpBO0lBQVk7RUFBRSxDQUFFLENBQ2pELENBQUM7QUFFL0IsQ0FBQztBQUVELGVBQWVGLGlCQUFpQiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,171 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
4
+ // SPDX-License-Identifier: MIT
5
+ // Copyright contributors to the kepler.gl project
6
+
7
+ import React, { useCallback, useState, useEffect, useRef } from 'react';
8
+ import { useDispatch } from 'react-redux';
9
+ import styled from 'styled-components';
10
+ import { updateLayerGroup, removeLayerGroup } from '@kepler.gl/actions';
11
+ import { getFlatLayerOrder } from '@kepler.gl/reducers';
12
+ import { StyledPanelHeader, InlineInput } from '../../common/styled-components';
13
+ import { DragHandle } from './layer-panel-header';
14
+ import { VertDots, EyeSeen, EyeUnseen, Trash, ArrowDown, ArrowRight } from '../../common/icons';
15
+ import PanelHeaderActionFactory from '../panel-header-action';
16
+ var GROUP_COLORS = ['#4BA9C9', '#E8A838', '#8BC58B', '#D67AB1', '#7B8FF7', '#F2726F', '#56C4A0', '#C9A84B'];
17
+ function getGroupColor(id) {
18
+ var hash = 0;
19
+ for (var i = 0; i < id.length; i++) {
20
+ hash = (hash << 5) - hash + id.charCodeAt(i) | 0;
21
+ }
22
+ return GROUP_COLORS[Math.abs(hash) % GROUP_COLORS.length];
23
+ }
24
+ var RemoveAction = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n opacity: 0;\n transition: opacity 0.15s ease;\n .panel--header__action {\n height: 16px;\n }\n"])));
25
+ var Container = styled(StyledPanelHeader)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: relative;\n height: ", "px;\n justify-content: space-between;\n color: ", ";\n padding-right: 10px;\n align-items: center;\n overflow: hidden;\n\n border: 1px solid ", ";\n\n &:hover {\n cursor: pointer;\n background-color: ", ";\n .layer__drag-handle {\n opacity: 1;\n }\n ", " {\n opacity: 1;\n }\n }\n"])), function (props) {
26
+ return props.theme.layerPanelHeaderHeight;
27
+ }, function (props) {
28
+ return props.theme.textColor;
29
+ }, function (props) {
30
+ return props.theme.panelBackgroundHover;
31
+ }, function (props) {
32
+ return props.theme.panelBackgroundHover;
33
+ }, RemoveAction);
34
+ var CornerTriangle = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: ", "px\n ", "px 0 0;\n border-color: ", " transparent transparent transparent;\n"])), function (props) {
35
+ return Math.round(props.theme.layerPanelHeaderHeight / 3);
36
+ }, function (props) {
37
+ return Math.round(props.theme.layerPanelHeaderHeight / 3);
38
+ }, function (props) {
39
+ return props.$color;
40
+ });
41
+ var Actions = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 0;\n height: 16px;\n .panel--header__action {\n height: 16px;\n }\n"])));
42
+ var LeftSection = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n flex-grow: 1;\n overflow: hidden;\n"])));
43
+ var GroupLabelInput = styled(InlineInput)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n margin-left: 4px;\n font-weight: 500;\n"])));
44
+ var ConfirmationBar = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 12px;\n background-color: ", ";\n border: 1px solid ", ";\n border-top: none;\n font-size: 11px;\n color: ", ";\n gap: 8px;\n"])), function (props) {
45
+ return props.theme.panelBackgroundHover;
46
+ }, function (props) {
47
+ return props.theme.panelBackgroundHover;
48
+ }, function (props) {
49
+ return props.theme.textColor;
50
+ });
51
+ var ConfirmButton = styled.button(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n background: ", ";\n color: ", ";\n border: none;\n border-radius: 2px;\n padding: 3px 8px;\n font-size: 11px;\n cursor: pointer;\n &:hover {\n background: ", ";\n }\n"])), function (props) {
52
+ return props.theme.secondaryBtnBgd;
53
+ }, function (props) {
54
+ return props.theme.secondaryBtnColor;
55
+ }, function (props) {
56
+ return props.theme.secondaryBtnBgdHover;
57
+ });
58
+ LayerGroupHeaderFactory.deps = [PanelHeaderActionFactory];
59
+ function LayerGroupHeaderFactory(PanelHeaderAction) {
60
+ var LayerGroupHeader = function LayerGroupHeader(_ref) {
61
+ var layerGroup = _ref.layerGroup,
62
+ onToggleLayerGroupContent = _ref.onToggleLayerGroupContent,
63
+ isLayerGroupContentOpen = _ref.isLayerGroupContentOpen,
64
+ listeners = _ref.listeners,
65
+ className = _ref.className;
66
+ var id = layerGroup.id,
67
+ label = layerGroup.label;
68
+ var dispatch = useDispatch();
69
+ var _useState = useState(false),
70
+ _useState2 = _slicedToArray(_useState, 2),
71
+ showConfirmation = _useState2[0],
72
+ setShowConfirmation = _useState2[1];
73
+ var confirmRef = useRef(null);
74
+ var layerCount = getFlatLayerOrder(layerGroup.layerOrder).length;
75
+ useEffect(function () {
76
+ if (!showConfirmation) return;
77
+ var handleClickOutside = function handleClickOutside(e) {
78
+ if (confirmRef.current && !confirmRef.current.contains(e.target)) {
79
+ setShowConfirmation(false);
80
+ }
81
+ };
82
+ document.addEventListener('mousedown', handleClickOutside);
83
+ return function () {
84
+ return document.removeEventListener('mousedown', handleClickOutside);
85
+ };
86
+ }, [showConfirmation]);
87
+ var onUpdateLabel = useCallback(function (event) {
88
+ dispatch(updateLayerGroup({
89
+ id: id,
90
+ options: {
91
+ label: event.target.value
92
+ }
93
+ }));
94
+ }, [dispatch, id]);
95
+ var onToggleVisibility = useCallback(function () {
96
+ dispatch(updateLayerGroup({
97
+ id: id,
98
+ options: {
99
+ isVisible: !layerGroup.isVisible
100
+ }
101
+ }));
102
+ }, [dispatch, id, layerGroup.isVisible]);
103
+ var onDelete = useCallback(function (e) {
104
+ e.stopPropagation();
105
+ if (layerCount > 0) {
106
+ setShowConfirmation(true);
107
+ } else {
108
+ dispatch(removeLayerGroup({
109
+ id: id
110
+ }));
111
+ }
112
+ }, [dispatch, id, layerCount]);
113
+ var onConfirmDelete = useCallback(function (e) {
114
+ e.stopPropagation();
115
+ dispatch(removeLayerGroup({
116
+ id: id
117
+ }));
118
+ setShowConfirmation(false);
119
+ }, [dispatch, id]);
120
+ var VisibilityIcon = layerGroup.isVisible ? EyeSeen : EyeUnseen;
121
+ var CollapseIcon = isLayerGroupContentOpen ? ArrowDown : ArrowRight;
122
+ var stopPropagation = useCallback(function (e) {
123
+ e.stopPropagation();
124
+ }, []);
125
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Container, {
126
+ className: className,
127
+ onClick: onToggleLayerGroupContent
128
+ }, /*#__PURE__*/React.createElement(CornerTriangle, {
129
+ $color: getGroupColor(id)
130
+ }), /*#__PURE__*/React.createElement(LeftSection, null, /*#__PURE__*/React.createElement(DragHandle, {
131
+ className: "layer__drag-handle",
132
+ listeners: listeners
133
+ }, /*#__PURE__*/React.createElement(VertDots, {
134
+ height: "20px"
135
+ })), /*#__PURE__*/React.createElement(GroupLabelInput, {
136
+ type: "text",
137
+ value: label,
138
+ onClick: stopPropagation,
139
+ onChange: onUpdateLabel,
140
+ id: "".concat(id, ":input-group-label")
141
+ })), /*#__PURE__*/React.createElement(Actions, {
142
+ onClick: stopPropagation
143
+ }, /*#__PURE__*/React.createElement(RemoveAction, null, /*#__PURE__*/React.createElement(PanelHeaderAction, {
144
+ className: "layer-group__delete",
145
+ id: "".concat(id, "-delete"),
146
+ tooltip: "Remove group",
147
+ onClick: onDelete,
148
+ IconComponent: Trash
149
+ })), /*#__PURE__*/React.createElement(PanelHeaderAction, {
150
+ className: "layer-group__visibility-toggle",
151
+ id: "".concat(id, "-visibility"),
152
+ tooltip: "Toggle group visibility",
153
+ onClick: onToggleVisibility,
154
+ IconComponent: VisibilityIcon
155
+ }), /*#__PURE__*/React.createElement(PanelHeaderAction, {
156
+ className: "layer-group__section-toggle",
157
+ id: "".concat(id, "-collapse"),
158
+ tooltip: "Toggle group content",
159
+ onClick: onToggleLayerGroupContent,
160
+ IconComponent: CollapseIcon
161
+ }))), showConfirmation ? /*#__PURE__*/React.createElement(ConfirmationBar, {
162
+ ref: confirmRef,
163
+ onClick: stopPropagation
164
+ }, /*#__PURE__*/React.createElement("span", null, "Remove group with layers?"), /*#__PURE__*/React.createElement(ConfirmButton, {
165
+ onClick: onConfirmDelete
166
+ }, "Remove")) : null);
167
+ };
168
+ return LayerGroupHeader;
169
+ }
170
+ export default LayerGroupHeaderFactory;
171
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VEaXNwYXRjaCIsInN0eWxlZCIsInVwZGF0ZUxheWVyR3JvdXAiLCJyZW1vdmVMYXllckdyb3VwIiwiZ2V0RmxhdExheWVyT3JkZXIiLCJTdHlsZWRQYW5lbEhlYWRlciIsIklubGluZUlucHV0IiwiRHJhZ0hhbmRsZSIsIlZlcnREb3RzIiwiRXllU2VlbiIsIkV5ZVVuc2VlbiIsIlRyYXNoIiwiQXJyb3dEb3duIiwiQXJyb3dSaWdodCIsIlBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSIsIkdST1VQX0NPTE9SUyIsImdldEdyb3VwQ29sb3IiLCJpZCIsImhhc2giLCJpIiwibGVuZ3RoIiwiY2hhckNvZGVBdCIsIk1hdGgiLCJhYnMiLCJSZW1vdmVBY3Rpb24iLCJkaXYiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwiQ29udGFpbmVyIiwiX3RlbXBsYXRlT2JqZWN0MiIsInByb3BzIiwidGhlbWUiLCJsYXllclBhbmVsSGVhZGVySGVpZ2h0IiwidGV4dENvbG9yIiwicGFuZWxCYWNrZ3JvdW5kSG92ZXIiLCJDb3JuZXJUcmlhbmdsZSIsIl90ZW1wbGF0ZU9iamVjdDMiLCJyb3VuZCIsIiRjb2xvciIsIkFjdGlvbnMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiTGVmdFNlY3Rpb24iLCJfdGVtcGxhdGVPYmplY3Q1IiwiR3JvdXBMYWJlbElucHV0IiwiX3RlbXBsYXRlT2JqZWN0NiIsIkNvbmZpcm1hdGlvbkJhciIsIl90ZW1wbGF0ZU9iamVjdDciLCJDb25maXJtQnV0dG9uIiwiYnV0dG9uIiwiX3RlbXBsYXRlT2JqZWN0OCIsInNlY29uZGFyeUJ0bkJnZCIsInNlY29uZGFyeUJ0bkNvbG9yIiwic2Vjb25kYXJ5QnRuQmdkSG92ZXIiLCJMYXllckdyb3VwSGVhZGVyRmFjdG9yeSIsImRlcHMiLCJQYW5lbEhlYWRlckFjdGlvbiIsIkxheWVyR3JvdXBIZWFkZXIiLCJfcmVmIiwibGF5ZXJHcm91cCIsIm9uVG9nZ2xlTGF5ZXJHcm91cENvbnRlbnQiLCJpc0xheWVyR3JvdXBDb250ZW50T3BlbiIsImxpc3RlbmVycyIsImNsYXNzTmFtZSIsImxhYmVsIiwiZGlzcGF0Y2giLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzaG93Q29uZmlybWF0aW9uIiwic2V0U2hvd0NvbmZpcm1hdGlvbiIsImNvbmZpcm1SZWYiLCJsYXllckNvdW50IiwibGF5ZXJPcmRlciIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImUiLCJjdXJyZW50IiwiY29udGFpbnMiLCJ0YXJnZXQiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25VcGRhdGVMYWJlbCIsImV2ZW50Iiwib3B0aW9ucyIsInZhbHVlIiwib25Ub2dnbGVWaXNpYmlsaXR5IiwiaXNWaXNpYmxlIiwib25EZWxldGUiLCJzdG9wUHJvcGFnYXRpb24iLCJvbkNvbmZpcm1EZWxldGUiLCJWaXNpYmlsaXR5SWNvbiIsIkNvbGxhcHNlSWNvbiIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwiaGVpZ2h0IiwidHlwZSIsIm9uQ2hhbmdlIiwiY29uY2F0IiwidG9vbHRpcCIsIkljb25Db21wb25lbnQiLCJyZWYiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1ncm91cC1oZWFkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7dXNlRGlzcGF0Y2h9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge3VwZGF0ZUxheWVyR3JvdXAsIHJlbW92ZUxheWVyR3JvdXB9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge0xheWVyT3JkZXJHcm91cH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge2dldEZsYXRMYXllck9yZGVyfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcblxuaW1wb3J0IHtTdHlsZWRQYW5lbEhlYWRlciwgSW5saW5lSW5wdXR9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0RyYWdIYW5kbGV9IGZyb20gJy4vbGF5ZXItcGFuZWwtaGVhZGVyJztcbmltcG9ydCB7VmVydERvdHMsIEV5ZVNlZW4sIEV5ZVVuc2VlbiwgVHJhc2gsIEFycm93RG93biwgQXJyb3dSaWdodH0gZnJvbSAnLi4vLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkgZnJvbSAnLi4vcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5cbmNvbnN0IEdST1VQX0NPTE9SUyA9IFtcbiAgJyM0QkE5QzknLFxuICAnI0U4QTgzOCcsXG4gICcjOEJDNThCJyxcbiAgJyNENjdBQjEnLFxuICAnIzdCOEZGNycsXG4gICcjRjI3MjZGJyxcbiAgJyM1NkM0QTAnLFxuICAnI0M5QTg0Qidcbl07XG5cbmZ1bmN0aW9uIGdldEdyb3VwQ29sb3IoaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBoYXNoID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpZC5sZW5ndGg7IGkrKykge1xuICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoICsgaWQuY2hhckNvZGVBdChpKSkgfCAwO1xuICB9XG4gIHJldHVybiBHUk9VUF9DT0xPUlNbTWF0aC5hYnMoaGFzaCkgJSBHUk9VUF9DT0xPUlMubGVuZ3RoXTtcbn1cblxuY29uc3QgUmVtb3ZlQWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xuICAucGFuZWwtLWhlYWRlcl9fYWN0aW9uIHtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZChTdHlsZWRQYW5lbEhlYWRlcilgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyUGFuZWxIZWFkZXJIZWlnaHR9cHg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBib3JkZXI6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG4gICAgLmxheWVyX19kcmFnLWhhbmRsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICAke1JlbW92ZUFjdGlvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IENvcm5lclRyaWFuZ2xlID0gc3R5bGVkLmRpdjx7JGNvbG9yOiBzdHJpbmd9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogJHtwcm9wcyA9PiBNYXRoLnJvdW5kKHByb3BzLnRoZW1lLmxheWVyUGFuZWxIZWFkZXJIZWlnaHQgLyAzKX1weFxuICAgICR7cHJvcHMgPT4gTWF0aC5yb3VuZChwcm9wcy50aGVtZS5sYXllclBhbmVsSGVhZGVySGVpZ2h0IC8gMyl9cHggMCAwO1xuICBib3JkZXItY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuJGNvbG9yfSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbmA7XG5cbmNvbnN0IEFjdGlvbnMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDA7XG4gIGhlaWdodDogMTZweDtcbiAgLnBhbmVsLS1oZWFkZXJfX2FjdGlvbiB7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICB9XG5gO1xuXG5jb25zdCBMZWZ0U2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtZ3JvdzogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmA7XG5cbmNvbnN0IEdyb3VwTGFiZWxJbnB1dCA9IHN0eWxlZChJbmxpbmVJbnB1dClgXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG5gO1xuXG5jb25zdCBDb25maXJtYXRpb25CYXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcbiAgYm9yZGVyOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgZ2FwOiA4cHg7XG5gO1xuXG5jb25zdCBDb25maXJtQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zZWNvbmRhcnlCdG5CZ2R9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zZWNvbmRhcnlCdG5Db2xvcn07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zZWNvbmRhcnlCdG5CZ2RIb3Zlcn07XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIExheWVyR3JvdXBIZWFkZXJQcm9wcyA9IHtcbiAgbGF5ZXJHcm91cDogTGF5ZXJPcmRlckdyb3VwO1xuICBpc0xheWVyR3JvdXBDb250ZW50T3Blbj86IGJvb2xlYW47XG4gIG9uVG9nZ2xlTGF5ZXJHcm91cENvbnRlbnQ/OiAoKSA9PiB2b2lkO1xuICBsaXN0ZW5lcnM/OiBhbnk7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn07XG5cbkxheWVyR3JvdXBIZWFkZXJGYWN0b3J5LmRlcHMgPSBbUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5XTtcblxuZnVuY3Rpb24gTGF5ZXJHcm91cEhlYWRlckZhY3RvcnkoXG4gIFBhbmVsSGVhZGVyQWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnk+XG4pOiBSZWFjdC5GQzxMYXllckdyb3VwSGVhZGVyUHJvcHM+IHtcbiAgY29uc3QgTGF5ZXJHcm91cEhlYWRlcjogUmVhY3QuRkM8TGF5ZXJHcm91cEhlYWRlclByb3BzPiA9ICh7XG4gICAgbGF5ZXJHcm91cCxcbiAgICBvblRvZ2dsZUxheWVyR3JvdXBDb250ZW50LFxuICAgIGlzTGF5ZXJHcm91cENvbnRlbnRPcGVuLFxuICAgIGxpc3RlbmVycyxcbiAgICBjbGFzc05hbWVcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtpZCwgbGFiZWx9ID0gbGF5ZXJHcm91cDtcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gICAgY29uc3QgW3Nob3dDb25maXJtYXRpb24sIHNldFNob3dDb25maXJtYXRpb25dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGNvbmZpcm1SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gICAgY29uc3QgbGF5ZXJDb3VudCA9IGdldEZsYXRMYXllck9yZGVyKGxheWVyR3JvdXAubGF5ZXJPcmRlcikubGVuZ3RoO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghc2hvd0NvbmZpcm1hdGlvbikgcmV0dXJuO1xuICAgICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGNvbmZpcm1SZWYuY3VycmVudCAmJiAhY29uZmlybVJlZi5jdXJyZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgICAgc2V0U2hvd0NvbmZpcm1hdGlvbihmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpO1xuICAgICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgfSwgW3Nob3dDb25maXJtYXRpb25dKTtcblxuICAgIGNvbnN0IG9uVXBkYXRlTGFiZWwgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgZGlzcGF0Y2godXBkYXRlTGF5ZXJHcm91cCh7aWQsIG9wdGlvbnM6IHtsYWJlbDogZXZlbnQudGFyZ2V0LnZhbHVlfX0pKTtcbiAgICAgIH0sXG4gICAgICBbZGlzcGF0Y2gsIGlkXVxuICAgICk7XG5cbiAgICBjb25zdCBvblRvZ2dsZVZpc2liaWxpdHkgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVMYXllckdyb3VwKHtpZCwgb3B0aW9uczoge2lzVmlzaWJsZTogIWxheWVyR3JvdXAuaXNWaXNpYmxlfX0pKTtcbiAgICB9LCBbZGlzcGF0Y2gsIGlkLCBsYXllckdyb3VwLmlzVmlzaWJsZV0pO1xuXG4gICAgY29uc3Qgb25EZWxldGUgPSB1c2VDYWxsYmFjayhcbiAgICAgIChlOiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmIChsYXllckNvdW50ID4gMCkge1xuICAgICAgICAgIHNldFNob3dDb25maXJtYXRpb24odHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGlzcGF0Y2gocmVtb3ZlTGF5ZXJHcm91cCh7aWR9KSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbZGlzcGF0Y2gsIGlkLCBsYXllckNvdW50XVxuICAgICk7XG5cbiAgICBjb25zdCBvbkNvbmZpcm1EZWxldGUgPSB1c2VDYWxsYmFjayhcbiAgICAgIChlOiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGRpc3BhdGNoKHJlbW92ZUxheWVyR3JvdXAoe2lkfSkpO1xuICAgICAgICBzZXRTaG93Q29uZmlybWF0aW9uKGZhbHNlKTtcbiAgICAgIH0sXG4gICAgICBbZGlzcGF0Y2gsIGlkXVxuICAgICk7XG5cbiAgICBjb25zdCBWaXNpYmlsaXR5SWNvbiA9IGxheWVyR3JvdXAuaXNWaXNpYmxlID8gRXllU2VlbiA6IEV5ZVVuc2VlbjtcbiAgICBjb25zdCBDb2xsYXBzZUljb24gPSBpc0xheWVyR3JvdXBDb250ZW50T3BlbiA/IEFycm93RG93biA6IEFycm93UmlnaHQ7XG5cbiAgICBjb25zdCBzdG9wUHJvcGFnYXRpb24gPSB1c2VDYWxsYmFjaygoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPENvbnRhaW5lciBjbGFzc05hbWU9e2NsYXNzTmFtZX0gb25DbGljaz17b25Ub2dnbGVMYXllckdyb3VwQ29udGVudH0+XG4gICAgICAgICAgPENvcm5lclRyaWFuZ2xlICRjb2xvcj17Z2V0R3JvdXBDb2xvcihpZCl9IC8+XG4gICAgICAgICAgPExlZnRTZWN0aW9uPlxuICAgICAgICAgICAgPERyYWdIYW5kbGUgY2xhc3NOYW1lPVwibGF5ZXJfX2RyYWctaGFuZGxlXCIgbGlzdGVuZXJzPXtsaXN0ZW5lcnN9PlxuICAgICAgICAgICAgICA8VmVydERvdHMgaGVpZ2h0PVwiMjBweFwiIC8+XG4gICAgICAgICAgICA8L0RyYWdIYW5kbGU+XG4gICAgICAgICAgICA8R3JvdXBMYWJlbElucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgdmFsdWU9e2xhYmVsfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wUHJvcGFnYXRpb259XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblVwZGF0ZUxhYmVsfVxuICAgICAgICAgICAgICBpZD17YCR7aWR9OmlucHV0LWdyb3VwLWxhYmVsYH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MZWZ0U2VjdGlvbj5cbiAgICAgICAgICA8QWN0aW9ucyBvbkNsaWNrPXtzdG9wUHJvcGFnYXRpb259PlxuICAgICAgICAgICAgPFJlbW92ZUFjdGlvbj5cbiAgICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItZ3JvdXBfX2RlbGV0ZVwiXG4gICAgICAgICAgICAgICAgaWQ9e2Ake2lkfS1kZWxldGVgfVxuICAgICAgICAgICAgICAgIHRvb2x0aXA9XCJSZW1vdmUgZ3JvdXBcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uRGVsZXRlfVxuICAgICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e1RyYXNofVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9SZW1vdmVBY3Rpb24+XG4gICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItZ3JvdXBfX3Zpc2liaWxpdHktdG9nZ2xlXCJcbiAgICAgICAgICAgICAgaWQ9e2Ake2lkfS12aXNpYmlsaXR5YH1cbiAgICAgICAgICAgICAgdG9vbHRpcD1cIlRvZ2dsZSBncm91cCB2aXNpYmlsaXR5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25Ub2dnbGVWaXNpYmlsaXR5fVxuICAgICAgICAgICAgICBJY29uQ29tcG9uZW50PXtWaXNpYmlsaXR5SWNvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItZ3JvdXBfX3NlY3Rpb24tdG9nZ2xlXCJcbiAgICAgICAgICAgICAgaWQ9e2Ake2lkfS1jb2xsYXBzZWB9XG4gICAgICAgICAgICAgIHRvb2x0aXA9XCJUb2dnbGUgZ3JvdXAgY29udGVudFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlTGF5ZXJHcm91cENvbnRlbnR9XG4gICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e0NvbGxhcHNlSWNvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9BY3Rpb25zPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge3Nob3dDb25maXJtYXRpb24gPyAoXG4gICAgICAgICAgPENvbmZpcm1hdGlvbkJhciByZWY9e2NvbmZpcm1SZWZ9IG9uQ2xpY2s9e3N0b3BQcm9wYWdhdGlvbn0+XG4gICAgICAgICAgICA8c3Bhbj5SZW1vdmUgZ3JvdXAgd2l0aCBsYXllcnM/PC9zcGFuPlxuICAgICAgICAgICAgPENvbmZpcm1CdXR0b24gb25DbGljaz17b25Db25maXJtRGVsZXRlfT5SZW1vdmU8L0NvbmZpcm1CdXR0b24+XG4gICAgICAgICAgPC9Db25maXJtYXRpb25CYXI+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gTGF5ZXJHcm91cEhlYWRlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJHcm91cEhlYWRlckZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7O0FBRUEsT0FBT0EsS0FBSyxJQUFHQyxXQUFXLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxNQUFNLFFBQU8sT0FBTztBQUNyRSxTQUFRQyxXQUFXLFFBQU8sYUFBYTtBQUN2QyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBRXRDLFNBQVFDLGdCQUFnQixFQUFFQyxnQkFBZ0IsUUFBTyxvQkFBb0I7QUFFckUsU0FBUUMsaUJBQWlCLFFBQU8scUJBQXFCO0FBRXJELFNBQVFDLGlCQUFpQixFQUFFQyxXQUFXLFFBQU8sZ0NBQWdDO0FBQzdFLFNBQVFDLFVBQVUsUUFBTyxzQkFBc0I7QUFDL0MsU0FBUUMsUUFBUSxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFQyxTQUFTLEVBQUVDLFVBQVUsUUFBTyxvQkFBb0I7QUFDN0YsT0FBT0Msd0JBQXdCLE1BQU0sd0JBQXdCO0FBRTdELElBQU1DLFlBQVksR0FBRyxDQUNuQixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxDQUNWO0FBRUQsU0FBU0MsYUFBYUEsQ0FBQ0MsRUFBVSxFQUFVO0VBQ3pDLElBQUlDLElBQUksR0FBRyxDQUFDO0VB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
@@ -0,0 +1,323 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
5
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject0;
6
+ // SPDX-License-Identifier: MIT
7
+ // Copyright contributors to the kepler.gl project
8
+
9
+ import React, { useMemo, useCallback, useState } from 'react';
10
+ import styled from 'styled-components';
11
+ import classnames from 'classnames';
12
+ import { useDroppable } from '@dnd-kit/core';
13
+ import { useSortable, SortableContext, verticalListSortingStrategy, defaultAnimateLayoutChanges } from '@dnd-kit/sortable';
14
+ import { CSS } from '@dnd-kit/utilities';
15
+ import LayerPanelFactory from './layer-panel';
16
+ import LayerGroupHeaderFactory from './layer-group-header';
17
+ import { buildLayerOrderHierarchy } from '@kepler.gl/reducers';
18
+ import { dataTestIds } from '@kepler.gl/constants';
19
+ import { SORTABLE_LAYER_TYPE, SORTABLE_SIDE_PANEL_TYPE, SORTABLE_LAYER_GROUP_TYPE, SORTABLE_LAYER_GROUP_DROPPABLE_TYPE, SORTABLE_LAYER_END_PLACEHOLDER, SORTABLE_LAYER_END_TYPE } from '../../common/dnd-layer-items';
20
+ var Container = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n gap: 8px;\n"])));
21
+ var animateLayoutChanges = function animateLayoutChanges(args) {
22
+ var isSorting = args.isSorting,
23
+ wasDragging = args.wasDragging;
24
+ if (isSorting || wasDragging) {
25
+ return false;
26
+ }
27
+ return defaultAnimateLayoutChanges(args);
28
+ };
29
+ var EndPlaceholder = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n height: 4px;\n"])));
30
+ var SortableStyledItem = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n transition: ", ";\n transform: ", ";\n &.sorting {\n opacity: 0.3;\n pointer-events: none;\n }\n &.sorting-layers .layer-panel__header {\n background-color: ", ";\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: ", ";\n *,\n *:before,\n *:after {\n box-sizing: border-box;\n }\n .layer__drag-handle {\n opacity: 1;\n color: ", ";\n }\n }\n"])), function (props) {
31
+ return props.$transition;
32
+ }, function (props) {
33
+ return props.$transform;
34
+ }, function (props) {
35
+ return props.theme.panelBackgroundHover;
36
+ }, function (props) {
37
+ return props.theme.fontFamily;
38
+ }, function (props) {
39
+ return props.theme.fontWeight;
40
+ }, function (props) {
41
+ return props.theme.fontSize;
42
+ }, function (props) {
43
+ return props.theme.lineHeight;
44
+ }, function (props) {
45
+ return props.theme.textColorHl;
46
+ });
47
+ var CollapsibleGroupContent = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: 4px 0;\n min-height: 32px;\n background-color: ", ";\n transition: background-color 0.15s ease;\n"])), function (props) {
48
+ return props.$isOver ? props.theme.panelBackgroundHover : 'transparent';
49
+ });
50
+ var CollapsedDropZone = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n min-height: 4px;\n background-color: ", ";\n transition: background-color 0.15s ease, min-height 0.15s ease;\n ", "\n"])), function (props) {
51
+ return props.$isOver ? props.theme.activeColor : 'transparent';
52
+ }, function (props) {
53
+ return props.$isOver && 'min-height: 24px;';
54
+ });
55
+ var EmptyLayerGroup = styled.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: flex;\n font-size: 11px;\n align-items: center;\n justify-content: center;\n min-height: 28px;\n border: 1px dashed ", ";\n border-radius: 4px;\n margin-top: 4px;\n color: ", ";\n"])), function (props) {
56
+ return props.theme.labelColor;
57
+ }, function (props) {
58
+ return props.theme.subtextColor;
59
+ });
60
+ var TREE_TILE_WIDTH = 10;
61
+ var TREE_TILE_BORDER_WIDTH = 1;
62
+ var StyledColumn = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n border-left: ", "px dashed ", ";\n"])), function (props) {
63
+ return props.$isLast ? 0 : 1;
64
+ }, function (props) {
65
+ return props.theme.labelColor;
66
+ });
67
+ var TreeTile = styled.div(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n width: ", "px;\n border-bottom: 1px dashed ", ";\n height: ", "px;\n margin-top: 2px;\n border-left: ", "px dashed ", ";\n"])), TREE_TILE_WIDTH, function (props) {
68
+ return props.theme.labelColor;
69
+ }, function (props) {
70
+ return (props.theme.layerPanelHeaderHeight || 32) / 2;
71
+ }, function (props) {
72
+ return props.$isLast ? 1 : 0;
73
+ }, function (props) {
74
+ return props.theme.labelColor;
75
+ });
76
+ var NestedLayerContainer = styled.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n display: flex;\n"])));
77
+ var NestedLayerContent = styled.div(_templateObject0 || (_templateObject0 = _taggedTemplateLiteral(["\n width: calc(100% - ", "px);\n padding-top: 8px;\n"])), TREE_TILE_WIDTH + TREE_TILE_BORDER_WIDTH);
78
+ LayerListFactory.deps = [LayerPanelFactory, LayerGroupHeaderFactory];
79
+ function LayerListFactory(LayerPanel, LayerGroupHeader) {
80
+ var NestedLayer = function NestedLayer(_ref) {
81
+ var children = _ref.children,
82
+ isLast = _ref.isLast;
83
+ return /*#__PURE__*/React.createElement(NestedLayerContainer, null, /*#__PURE__*/React.createElement(StyledColumn, {
84
+ $isLast: isLast
85
+ }, /*#__PURE__*/React.createElement(TreeTile, {
86
+ $isLast: isLast
87
+ })), /*#__PURE__*/React.createElement(NestedLayerContent, null, children));
88
+ };
89
+ var SortableLayerItem = function SortableLayerItem(_ref2) {
90
+ var layer = _ref2.layer,
91
+ idx = _ref2.idx,
92
+ panelProps = _ref2.panelProps,
93
+ layerActions = _ref2.layerActions,
94
+ disabled = _ref2.disabled,
95
+ parent = _ref2.parent;
96
+ var _useSortable = useSortable({
97
+ id: layer.id,
98
+ data: {
99
+ type: SORTABLE_LAYER_TYPE,
100
+ parent: parent
101
+ },
102
+ disabled: disabled,
103
+ animateLayoutChanges: animateLayoutChanges
104
+ }),
105
+ attributes = _useSortable.attributes,
106
+ listeners = _useSortable.listeners,
107
+ setNodeRef = _useSortable.setNodeRef,
108
+ isDragging = _useSortable.isDragging,
109
+ transform = _useSortable.transform,
110
+ transition = _useSortable.transition;
111
+ return /*#__PURE__*/React.createElement(SortableStyledItem, _extends({
112
+ ref: setNodeRef,
113
+ className: classnames(_defineProperty({}, dataTestIds.sortableLayerItem, !disabled), _defineProperty({}, dataTestIds.staticLayerItem, disabled), {
114
+ sorting: isDragging
115
+ }),
116
+ "data-testid": disabled ? dataTestIds.staticLayerItem : dataTestIds.sortableLayerItem,
117
+ $transform: CSS.Transform.toString(transform),
118
+ $transition: transition
119
+ }, attributes), /*#__PURE__*/React.createElement(LayerPanel, _extends({}, panelProps, layerActions, {
120
+ key: layer.id,
121
+ idx: idx,
122
+ layer: layer,
123
+ listeners: listeners,
124
+ isDraggable: !disabled
125
+ })));
126
+ };
127
+ var SortableGroupItem = function SortableGroupItem(_ref3) {
128
+ var layerGroup = _ref3.layerGroup,
129
+ layers = _ref3.layers,
130
+ panelProps = _ref3.panelProps,
131
+ layerActions = _ref3.layerActions,
132
+ disabled = _ref3.disabled;
133
+ var _useSortable2 = useSortable({
134
+ id: layerGroup.id,
135
+ data: {
136
+ type: SORTABLE_LAYER_GROUP_TYPE
137
+ },
138
+ disabled: disabled,
139
+ animateLayoutChanges: animateLayoutChanges
140
+ }),
141
+ attributes = _useSortable2.attributes,
142
+ isDragging = _useSortable2.isDragging,
143
+ listeners = _useSortable2.listeners,
144
+ setNodeRef = _useSortable2.setNodeRef,
145
+ transform = _useSortable2.transform,
146
+ transition = _useSortable2.transition;
147
+ var layerEntriesToShow = buildLayerOrderHierarchy(layerGroup.layerOrder, layers);
148
+ var dndItems = layerEntriesToShow.map(function (entry) {
149
+ var _entry$1$id;
150
+ return (_entry$1$id = entry[1].id) !== null && _entry$1$id !== void 0 ? _entry$1$id : entry[1];
151
+ });
152
+ var _useState = useState(true),
153
+ _useState2 = _slicedToArray(_useState, 2),
154
+ isSectionOpen = _useState2[0],
155
+ setIsSectionOpen = _useState2[1];
156
+ var onToggle = useCallback(function () {
157
+ return setIsSectionOpen(function (prev) {
158
+ return !prev;
159
+ });
160
+ }, []);
161
+ var style = useMemo(function () {
162
+ return {
163
+ transform: CSS.Transform.toString(transform),
164
+ transition: transition,
165
+ opacity: isDragging ? 0.5 : 1
166
+ };
167
+ }, [isDragging, transform, transition]);
168
+ var _useDroppable = useDroppable({
169
+ id: "droppable-layer-group-content-".concat(layerGroup.id),
170
+ data: {
171
+ type: SORTABLE_LAYER_GROUP_DROPPABLE_TYPE,
172
+ parent: layerGroup
173
+ }
174
+ }),
175
+ isOver = _useDroppable.isOver,
176
+ droppableSetNodeRef = _useDroppable.setNodeRef;
177
+ var isOpen = useMemo(function () {
178
+ return isSectionOpen && !isDragging;
179
+ }, [isSectionOpen, isDragging]);
180
+ return /*#__PURE__*/React.createElement("div", {
181
+ style: style
182
+ }, /*#__PURE__*/React.createElement("div", _extends({
183
+ ref: setNodeRef
184
+ }, attributes), /*#__PURE__*/React.createElement(LayerGroupHeader, {
185
+ layerGroup: layerGroup,
186
+ onToggleLayerGroupContent: onToggle,
187
+ isLayerGroupContentOpen: isSectionOpen,
188
+ listeners: listeners
189
+ })), isOpen ? /*#__PURE__*/React.createElement(CollapsibleGroupContent, {
190
+ ref: droppableSetNodeRef,
191
+ $isOver: isOver
192
+ }, layerEntriesToShow.length ? /*#__PURE__*/React.createElement(SortableContext, {
193
+ id: "sortable-group-".concat(layerGroup.id),
194
+ items: dndItems,
195
+ strategy: verticalListSortingStrategy
196
+ }, layerEntriesToShow.map(function (_ref4, index) {
197
+ var _ref5 = _slicedToArray(_ref4, 2),
198
+ type = _ref5[0],
199
+ nestedEntry = _ref5[1];
200
+ return type === 'layer' ? /*#__PURE__*/React.createElement(NestedLayer, {
201
+ key: nestedEntry.id,
202
+ isLast: index === layerEntriesToShow.length - 1
203
+ }, /*#__PURE__*/React.createElement(SortableLayerItem, {
204
+ layer: nestedEntry,
205
+ idx: layers.findIndex(function (l) {
206
+ return (l === null || l === void 0 ? void 0 : l.id) === nestedEntry.id;
207
+ }),
208
+ panelProps: panelProps,
209
+ layerActions: layerActions,
210
+ disabled: disabled,
211
+ parent: layerGroup
212
+ })) : null;
213
+ })) : /*#__PURE__*/React.createElement(EmptyLayerGroup, null, "Drag layer here")) : /*#__PURE__*/React.createElement(CollapsedDropZone, {
214
+ ref: droppableSetNodeRef,
215
+ $isOver: isOver
216
+ }));
217
+ };
218
+ var SortableEndPlaceholder = function SortableEndPlaceholder() {
219
+ var _useSortable3 = useSortable({
220
+ id: SORTABLE_LAYER_END_PLACEHOLDER,
221
+ data: {
222
+ type: SORTABLE_LAYER_END_TYPE
223
+ },
224
+ animateLayoutChanges: animateLayoutChanges
225
+ }),
226
+ setNodeRef = _useSortable3.setNodeRef;
227
+ return /*#__PURE__*/React.createElement(EndPlaceholder, {
228
+ ref: setNodeRef
229
+ });
230
+ };
231
+ var LayerList = function LayerList(props) {
232
+ var layers = props.layers,
233
+ datasets = props.datasets,
234
+ layerOrder = props.layerOrder,
235
+ uiStateActions = props.uiStateActions,
236
+ visStateActions = props.visStateActions,
237
+ mapStateActions = props.mapStateActions,
238
+ mapState = props.mapState,
239
+ layerClasses = props.layerClasses,
240
+ _props$isSortable = props.isSortable,
241
+ isSortable = _props$isSortable === void 0 ? true : _props$isSortable,
242
+ splitMap = props.splitMap;
243
+ var openModal = uiStateActions.toggleModal;
244
+ var layerEntriesToShow = useMemo(function () {
245
+ return buildLayerOrderHierarchy(layerOrder, layers);
246
+ }, [layerOrder, layers]);
247
+ var sidePanelDndItems = useMemo(function () {
248
+ var items = layerEntriesToShow.map(function (entry) {
249
+ var _entry$1$id2;
250
+ return (_entry$1$id2 = entry[1].id) !== null && _entry$1$id2 !== void 0 ? _entry$1$id2 : entry[1];
251
+ });
252
+ items.push(SORTABLE_LAYER_END_PLACEHOLDER);
253
+ return items;
254
+ }, [layerEntriesToShow]);
255
+ var layerTypeOptions = useMemo(function () {
256
+ return Object.keys(layerClasses).map(function (key) {
257
+ var layer = new layerClasses[key]({
258
+ dataId: ''
259
+ });
260
+ return {
261
+ id: key,
262
+ label: layer.name,
263
+ icon: layer.layerIcon,
264
+ requireData: layer.requireData
265
+ };
266
+ });
267
+ }, [layerClasses]);
268
+ var layerActions = useMemo(function () {
269
+ return {
270
+ layerColorUIChange: visStateActions.layerColorUIChange,
271
+ layerConfigChange: visStateActions.layerConfigChange,
272
+ layerVisualChannelConfigChange: visStateActions.layerVisualChannelConfigChange,
273
+ layerToggleVisibility: visStateActions.layerToggleVisibility,
274
+ layerTypeChange: visStateActions.layerTypeChange,
275
+ layerVisConfigChange: visStateActions.layerVisConfigChange,
276
+ layerTextLabelChange: visStateActions.layerTextLabelChange,
277
+ removeLayer: visStateActions.removeLayer,
278
+ zoomToLayer: mapStateActions.fitBounds,
279
+ duplicateLayer: visStateActions.duplicateLayer,
280
+ layerSetIsValid: visStateActions.layerSetIsValid
281
+ };
282
+ }, [visStateActions, mapStateActions]);
283
+ var panelProps = useMemo(function () {
284
+ return {
285
+ datasets: datasets,
286
+ openModal: openModal,
287
+ layerTypeOptions: layerTypeOptions,
288
+ splitMap: splitMap,
289
+ mapState: mapState
290
+ };
291
+ }, [datasets, openModal, layerTypeOptions, splitMap, mapState]);
292
+ return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(SortableContext, {
293
+ id: SORTABLE_SIDE_PANEL_TYPE,
294
+ items: sidePanelDndItems,
295
+ strategy: verticalListSortingStrategy,
296
+ disabled: !isSortable
297
+ }, layerEntriesToShow.map(function (_ref6) {
298
+ var _ref7 = _slicedToArray(_ref6, 2),
299
+ type = _ref7[0],
300
+ item = _ref7[1];
301
+ return type === 'layer' ? /*#__PURE__*/React.createElement(SortableLayerItem, {
302
+ key: item.id,
303
+ layer: item,
304
+ idx: layers.findIndex(function (l) {
305
+ return (l === null || l === void 0 ? void 0 : l.id) === item.id;
306
+ }),
307
+ panelProps: panelProps,
308
+ layerActions: layerActions,
309
+ disabled: !isSortable
310
+ }) : /*#__PURE__*/React.createElement(SortableGroupItem, {
311
+ key: item.id,
312
+ layerGroup: item,
313
+ layers: layers,
314
+ panelProps: panelProps,
315
+ layerActions: layerActions,
316
+ disabled: !isSortable
317
+ });
318
+ }), /*#__PURE__*/React.createElement(SortableEndPlaceholder, null)));
319
+ };
320
+ return LayerList;
321
+ }
322
+ export default LayerListFactory;
323
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwic3R5bGVkIiwiY2xhc3NuYW1lcyIsInVzZURyb3BwYWJsZSIsInVzZVNvcnRhYmxlIiwiU29ydGFibGVDb250ZXh0IiwidmVydGljYWxMaXN0U29ydGluZ1N0cmF0ZWd5IiwiZGVmYXVsdEFuaW1hdGVMYXlvdXRDaGFuZ2VzIiwiQ1NTIiwiTGF5ZXJQYW5lbEZhY3RvcnkiLCJMYXllckdyb3VwSGVhZGVyRmFjdG9yeSIsImJ1aWxkTGF5ZXJPcmRlckhpZXJhcmNoeSIsImRhdGFUZXN0SWRzIiwiU09SVEFCTEVfTEFZRVJfVFlQRSIsIlNPUlRBQkxFX1NJREVfUEFORUxfVFlQRSIsIlNPUlRBQkxFX0xBWUVSX0dST1VQX1RZUEUiLCJTT1JUQUJMRV9MQVlFUl9HUk9VUF9EUk9QUEFCTEVfVFlQRSIsIlNPUlRBQkxFX0xBWUVSX0VORF9QTEFDRUhPTERFUiIsIlNPUlRBQkxFX0xBWUVSX0VORF9UWVBFIiwiQ29udGFpbmVyIiwiZGl2IiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsImFuaW1hdGVMYXlvdXRDaGFuZ2VzIiwiYXJncyIsImlzU29ydGluZyIsIndhc0RyYWdnaW5nIiwiRW5kUGxhY2Vob2xkZXIiLCJfdGVtcGxhdGVPYmplY3QyIiwiU29ydGFibGVTdHlsZWRJdGVtIiwiX3RlbXBsYXRlT2JqZWN0MyIsInByb3BzIiwiJHRyYW5zaXRpb24iLCIkdHJhbnNmb3JtIiwidGhlbWUiLCJwYW5lbEJhY2tncm91bmRIb3ZlciIsImZvbnRGYW1pbHkiLCJmb250V2VpZ2h0IiwiZm9udFNpemUiLCJsaW5lSGVpZ2h0IiwidGV4dENvbG9ySGwiLCJDb2xsYXBzaWJsZUdyb3VwQ29udGVudCIsIl90ZW1wbGF0ZU9iamVjdDQiLCIkaXNPdmVyIiwiQ29sbGFwc2VkRHJvcFpvbmUiLCJfdGVtcGxhdGVPYmplY3Q1IiwiYWN0aXZlQ29sb3IiLCJFbXB0eUxheWVyR3JvdXAiLCJfdGVtcGxhdGVPYmplY3Q2IiwibGFiZWxDb2xvciIsInN1YnRleHRDb2xvciIsIlRSRUVfVElMRV9XSURUSCIsIlRSRUVfVElMRV9CT1JERVJfV0lEVEgiLCJTdHlsZWRDb2x1bW4iLCJfdGVtcGxhdGVPYmplY3Q3IiwiJGlzTGFzdCIsIlRyZWVUaWxlIiwiX3RlbXBsYXRlT2JqZWN0OCIsImxheWVyUGFuZWxIZWFkZXJIZWlnaHQiLCJOZXN0ZWRMYXllckNvbnRhaW5lciIsIl90ZW1wbGF0ZU9iamVjdDkiLCJOZXN0ZWRMYXllckNvbnRlbnQiLCJfdGVtcGxhdGVPYmplY3QwIiwiTGF5ZXJMaXN0RmFjdG9yeSIsImRlcHMiLCJMYXllclBhbmVsIiwiTGF5ZXJHcm91cEhlYWRlciIsIk5lc3RlZExheWVyIiwiX3JlZiIsImNoaWxkcmVuIiwiaXNMYXN0IiwiY3JlYXRlRWxlbWVudCIsIlNvcnRhYmxlTGF5ZXJJdGVtIiwiX3JlZjIiLCJsYXllciIsImlkeCIsInBhbmVsUHJvcHMiLCJsYXllckFjdGlvbnMiLCJkaXNhYmxlZCIsInBhcmVudCIsIl91c2VTb3J0YWJsZSIsImlkIiwiZGF0YSIsInR5cGUiLCJhdHRyaWJ1dGVzIiwibGlzdGVuZXJzIiwic2V0Tm9kZVJlZiIsImlzRHJhZ2dpbmciLCJ0cmFuc2Zvcm0iLCJ0cmFuc2l0aW9uIiwiX2V4dGVuZHMiLCJyZWYiLCJjbGFzc05hbWUiLCJfZGVmaW5lUHJvcGVydHkiLCJzb3J0YWJsZUxheWVySXRlbSIsInN0YXRpY0xheWVySXRlbSIsInNvcnRpbmciLCJUcmFuc2Zvcm0iLCJ0b1N0cmluZyIsImtleSIsImlzRHJhZ2dhYmxlIiwiU29ydGFibGVHcm91cEl0ZW0iLCJfcmVmMyIsImxheWVyR3JvdXAiLCJsYXllcnMiLCJfdXNlU29ydGFibGUyIiwibGF5ZXJFbnRyaWVzVG9TaG93IiwibGF5ZXJPcmRlciIsImRuZEl0ZW1zIiwibWFwIiwiZW50cnkiLCJfZW50cnkkMSRpZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzU2VjdGlvbk9wZW4iLCJzZXRJc1NlY3Rpb25PcGVuIiwib25Ub2dnbGUiLCJwcmV2Iiwic3R5bGUiLCJvcGFjaXR5IiwiX3VzZURyb3BwYWJsZSIsImNvbmNhdCIsImlzT3ZlciIsImRyb3BwYWJsZVNldE5vZGVSZWYiLCJpc09wZW4iLCJvblRvZ2dsZUxheWVyR3JvdXBDb250ZW50IiwiaXNMYXllckdyb3VwQ29udGVudE9wZW4iLCJsZW5ndGgiLCJpdGVtcyIsInN0cmF0ZWd5IiwiX3JlZjQiLCJpbmRleCIsIl9yZWY1IiwibmVzdGVkRW50cnkiLCJmaW5kSW5kZXgiLCJsIiwiU29ydGFibGVFbmRQbGFjZWhvbGRlciIsIl91c2VTb3J0YWJsZTMiLCJMYXllckxpc3QiLCJkYXRhc2V0cyIsInVpU3RhdGVBY3Rpb25zIiwidmlzU3RhdGVBY3Rpb25zIiwibWFwU3RhdGVBY3Rpb25zIiwibWFwU3RhdGUiLCJsYXllckNsYXNzZXMiLCJfcHJvcHMkaXNTb3J0YWJsZSIsImlzU29ydGFibGUiLCJzcGxpdE1hcCIsIm9wZW5Nb2RhbCIsInRvZ2dsZU1vZGFsIiwic2lkZVBhbmVsRG5kSXRlbXMiLCJfZW50cnkkMSRpZDIiLCJwdXNoIiwibGF5ZXJUeXBlT3B0aW9ucyIsIk9iamVjdCIsImtleXMiLCJkYXRhSWQiLCJsYWJlbCIsIm5hbWUiLCJpY29uIiwibGF5ZXJJY29uIiwicmVxdWlyZURhdGEiLCJsYXllckNvbG9yVUlDaGFuZ2UiLCJsYXllckNvbmZpZ0NoYW5nZSIsImxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZ0NoYW5nZSIsImxheWVyVG9nZ2xlVmlzaWJpbGl0eSIsImxheWVyVHlwZUNoYW5nZSIsImxheWVyVmlzQ29uZmlnQ2hhbmdlIiwibGF5ZXJUZXh0TGFiZWxDaGFuZ2UiLCJyZW1vdmVMYXllciIsInpvb21Ub0xheWVyIiwiZml0Qm91bmRzIiwiZHVwbGljYXRlTGF5ZXIiLCJsYXllclNldElzVmFsaWQiLCJfcmVmNiIsIl9yZWY3IiwiaXRlbSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2xheWVyLWxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZU1lbW8sIHVzZUNhbGxiYWNrLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IHtMYXllciwgTGF5ZXJDbGFzc2VzVHlwZX0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge1VJU3RhdGVBY3Rpb25zLCBWaXNTdGF0ZUFjdGlvbnMsIE1hcFN0YXRlQWN0aW9uc30gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7TGF5ZXJPcmRlckdyb3VwLCBMYXllck9yZGVyLCBMYXllck9yZGVySGllcmFyY2h5LCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmltcG9ydCB7dXNlRHJvcHBhYmxlfSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7XG4gIHVzZVNvcnRhYmxlLFxuICBTb3J0YWJsZUNvbnRleHQsXG4gIHZlcnRpY2FsTGlzdFNvcnRpbmdTdHJhdGVneSxcbiAgZGVmYXVsdEFuaW1hdGVMYXlvdXRDaGFuZ2VzXG59IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7Q1NTfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IExheWVyUGFuZWxGYWN0b3J5IGZyb20gJy4vbGF5ZXItcGFuZWwnO1xuaW1wb3J0IExheWVyR3JvdXBIZWFkZXJGYWN0b3J5IGZyb20gJy4vbGF5ZXItZ3JvdXAtaGVhZGVyJztcbmltcG9ydCB7YnVpbGRMYXllck9yZGVySGllcmFyY2h5fSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCB7ZGF0YVRlc3RJZHN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7U3BsaXRNYXB9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtcbiAgU09SVEFCTEVfTEFZRVJfVFlQRSxcbiAgU09SVEFCTEVfU0lERV9QQU5FTF9UWVBFLFxuICBTT1JUQUJMRV9MQVlFUl9HUk9VUF9UWVBFLFxuICBTT1JUQUJMRV9MQVlFUl9HUk9VUF9EUk9QUEFCTEVfVFlQRSxcbiAgU09SVEFCTEVfTEFZRVJfRU5EX1BMQUNFSE9MREVSLFxuICBTT1JUQUJMRV9MQVlFUl9FTkRfVFlQRVxufSBmcm9tICcuLi8uLi9jb21tb24vZG5kLWxheWVyLWl0ZW1zJztcblxuZXhwb3J0IHR5cGUgTGF5ZXJMaXN0UHJvcHMgPSB7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBsYXllck9yZGVyOiBMYXllck9yZGVyO1xuICBsYXllckNsYXNzZXM6IExheWVyQ2xhc3Nlc1R5cGU7XG4gIGlzU29ydGFibGU/OiBib29sZWFuO1xuICBzcGxpdE1hcD86IFNwbGl0TWFwO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICB1aVN0YXRlQWN0aW9uczogdHlwZW9mIFVJU3RhdGVBY3Rpb25zO1xuICB2aXNTdGF0ZUFjdGlvbnM6IHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0YXRlQWN0aW9uczogdHlwZW9mIE1hcFN0YXRlQWN0aW9ucztcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyTGlzdEZhY3RvcnlEZXBzID0gW1xuICB0eXBlb2YgTGF5ZXJQYW5lbEZhY3RvcnksXG4gIHR5cGVvZiBMYXllckdyb3VwSGVhZGVyRmFjdG9yeVxuXTtcblxuY29uc3QgQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG5gO1xuXG5jb25zdCBhbmltYXRlTGF5b3V0Q2hhbmdlcyA9IGFyZ3MgPT4ge1xuICBjb25zdCB7aXNTb3J0aW5nLCB3YXNEcmFnZ2luZ30gPSBhcmdzO1xuICBpZiAoaXNTb3J0aW5nIHx8IHdhc0RyYWdnaW5nKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBkZWZhdWx0QW5pbWF0ZUxheW91dENoYW5nZXMoYXJncyk7XG59O1xuXG5jb25zdCBFbmRQbGFjZWhvbGRlciA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogNHB4O1xuYDtcblxuaW50ZXJmYWNlIFNvcnRhYmxlU3R5bGVkSXRlbVByb3BzIHtcbiAgJHRyYW5zaXRpb24/OiBzdHJpbmc7XG4gICR0cmFuc2Zvcm0/OiBzdHJpbmc7XG59XG5cbmNvbnN0IFNvcnRhYmxlU3R5bGVkSXRlbSA9IHN0eWxlZC5kaXY8U29ydGFibGVTdHlsZWRJdGVtUHJvcHM+YFxuICB0cmFuc2l0aW9uOiAke3Byb3BzID0+IHByb3BzLiR0cmFuc2l0aW9ufTtcbiAgdHJhbnNmb3JtOiAke3Byb3BzID0+IHByb3BzLiR0cmFuc2Zvcm19O1xuICAmLnNvcnRpbmcge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuICAmLnNvcnRpbmctbGF5ZXJzIC5sYXllci1wYW5lbF9faGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcbiAgICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5fTtcbiAgICBmb250LXdlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250V2VpZ2h0fTtcbiAgICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udFNpemV9O1xuICAgIGxpbmUtaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxpbmVIZWlnaHR9O1xuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgICAubGF5ZXJfX2RyYWctaGFuZGxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgfVxuICB9XG5gO1xuXG5jb25zdCBDb2xsYXBzaWJsZUdyb3VwQ29udGVudCA9IHN0eWxlZC5kaXY8eyRpc092ZXI/OiBib29sZWFufT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMDtcbiAgcGFkZGluZzogNHB4IDA7XG4gIG1pbi1oZWlnaHQ6IDMycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gKHByb3BzLiRpc092ZXIgPyBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3ZlciA6ICd0cmFuc3BhcmVudCcpfTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xuYDtcblxuY29uc3QgQ29sbGFwc2VkRHJvcFpvbmUgPSBzdHlsZWQuZGl2PHskaXNPdmVyPzogYm9vbGVhbn0+YFxuICBtaW4taGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gKHByb3BzLiRpc092ZXIgPyBwcm9wcy50aGVtZS5hY3RpdmVDb2xvciA6ICd0cmFuc3BhcmVudCcpfTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLCBtaW4taGVpZ2h0IDAuMTVzIGVhc2U7XG4gICR7cHJvcHMgPT4gcHJvcHMuJGlzT3ZlciAmJiAnbWluLWhlaWdodDogMjRweDsnfVxuYDtcblxuY29uc3QgRW1wdHlMYXllckdyb3VwID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogMjhweDtcbiAgYm9yZGVyOiAxcHggZGFzaGVkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuYDtcblxuY29uc3QgVFJFRV9USUxFX1dJRFRIID0gMTA7XG5jb25zdCBUUkVFX1RJTEVfQk9SREVSX1dJRFRIID0gMTtcblxuY29uc3QgU3R5bGVkQ29sdW1uID0gc3R5bGVkLmRpdjx7JGlzTGFzdD86IGJvb2xlYW59PmBcbiAgYm9yZGVyLWxlZnQ6ICR7cHJvcHMgPT4gKHByb3BzLiRpc0xhc3QgPyAwIDogMSl9cHggZGFzaGVkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG5gO1xuXG5jb25zdCBUcmVlVGlsZSA9IHN0eWxlZC5kaXY8eyRpc0xhc3Q/OiBib29sZWFufT5gXG4gIHdpZHRoOiAke1RSRUVfVElMRV9XSURUSH1weDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gKHByb3BzLnRoZW1lLmxheWVyUGFuZWxIZWFkZXJIZWlnaHQgfHwgMzIpIC8gMn1weDtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBib3JkZXItbGVmdDogJHtwcm9wcyA9PiAocHJvcHMuJGlzTGFzdCA/IDEgOiAwKX1weCBkYXNoZWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbmA7XG5cbmNvbnN0IE5lc3RlZExheWVyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IE5lc3RlZExheWVyQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAke1RSRUVfVElMRV9XSURUSCArIFRSRUVfVElMRV9CT1JERVJfV0lEVEh9cHgpO1xuICBwYWRkaW5nLXRvcDogOHB4O1xuYDtcblxuTGF5ZXJMaXN0RmFjdG9yeS5kZXBzID0gW0xheWVyUGFuZWxGYWN0b3J5LCBMYXllckdyb3VwSGVhZGVyRmFjdG9yeV07XG5cbmZ1bmN0aW9uIExheWVyTGlzdEZhY3RvcnkoXG4gIExheWVyUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIExheWVyUGFuZWxGYWN0b3J5PixcbiAgTGF5ZXJHcm91cEhlYWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJHcm91cEhlYWRlckZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTmVzdGVkTGF5ZXI6IFJlYWN0LkZDPHtjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlOyBpc0xhc3Q/OiBib29sZWFufT4gPSAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGlzTGFzdFxuICB9KSA9PiAoXG4gICAgPE5lc3RlZExheWVyQ29udGFpbmVyPlxuICAgICAgPFN0eWxlZENvbHVtbiAkaXNMYXN0PXtpc0xhc3R9PlxuICAgICAgICA8VHJlZVRpbGUgJGlzTGFzdD17aXNMYXN0fSAvPlxuICAgICAgPC9TdHlsZWRDb2x1bW4+XG4gICAgICA8TmVzdGVkTGF5ZXJDb250ZW50PntjaGlsZHJlbn08L05lc3RlZExheWVyQ29udGVudD5cbiAgICA8L05lc3RlZExheWVyQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IFNvcnRhYmxlTGF5ZXJJdGVtID0gKHtsYXllciwgaWR4LCBwYW5lbFByb3BzLCBsYXllckFjdGlvbnMsIGRpc2FibGVkLCBwYXJlbnR9OiB7XG4gICAgbGF5ZXI6IExheWVyO1xuICAgIGlkeDogbnVtYmVyO1xuICAgIHBhbmVsUHJvcHM6IGFueTtcbiAgICBsYXllckFjdGlvbnM6IGFueTtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgcGFyZW50PzogTGF5ZXJPcmRlckdyb3VwO1xuICB9KSA9PiB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgaXNEcmFnZ2luZywgdHJhbnNmb3JtLCB0cmFuc2l0aW9ufSA9IHVzZVNvcnRhYmxlKHtcbiAgICAgIGlkOiBsYXllci5pZCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdHlwZTogU09SVEFCTEVfTEFZRVJfVFlQRSxcbiAgICAgICAgcGFyZW50XG4gICAgICB9LFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBhbmltYXRlTGF5b3V0Q2hhbmdlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTb3J0YWJsZVN0eWxlZEl0ZW1cbiAgICAgICAgcmVmPXtzZXROb2RlUmVmfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoXG4gICAgICAgICAge1tkYXRhVGVzdElkcy5zb3J0YWJsZUxheWVySXRlbV06ICFkaXNhYmxlZH0sXG4gICAgICAgICAge1tkYXRhVGVzdElkcy5zdGF0aWNMYXllckl0ZW1dOiBkaXNhYmxlZH0sXG4gICAgICAgICAge3NvcnRpbmc6IGlzRHJhZ2dpbmd9XG4gICAgICAgICl9XG4gICAgICAgIGRhdGEtdGVzdGlkPXtkaXNhYmxlZCA/IGRhdGFUZXN0SWRzLnN0YXRpY0xheWVySXRlbSA6IGRhdGFUZXN0SWRzLnNvcnRhYmxlTGF5ZXJJdGVtfVxuICAgICAgICAkdHJhbnNmb3JtPXtDU1MuVHJhbnNmb3JtLnRvU3RyaW5nKHRyYW5zZm9ybSl9XG4gICAgICAgICR0cmFuc2l0aW9uPXt0cmFuc2l0aW9ufVxuICAgICAgICB7Li4uYXR0cmlidXRlc31cbiAgICAgID5cbiAgICAgICAgPExheWVyUGFuZWxcbiAgICAgICAgICB7Li4ucGFuZWxQcm9wc31cbiAgICAgICAgICB7Li4ubGF5ZXJBY3Rpb25zfVxuICAgICAgICAgIGtleT17bGF5ZXIuaWR9XG4gICAgICAgICAgaWR4PXtpZHh9XG4gICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgIGxpc3RlbmVycz17bGlzdGVuZXJzfVxuICAgICAgICAgIGlzRHJhZ2dhYmxlPXshZGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1NvcnRhYmxlU3R5bGVkSXRlbT5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IFNvcnRhYmxlR3JvdXBJdGVtOiBSZWFjdC5GQzx7XG4gICAgbGF5ZXJHcm91cDogTGF5ZXJPcmRlckdyb3VwO1xuICAgIGxheWVyczogTGF5ZXJbXTtcbiAgICBwYW5lbFByb3BzOiBhbnk7XG4gICAgbGF5ZXJBY3Rpb25zOiBhbnk7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB9PiA9ICh7bGF5ZXJHcm91cCwgbGF5ZXJzLCBwYW5lbFByb3BzLCBsYXllckFjdGlvbnMsIGRpc2FibGVkfSkgPT4ge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVzLCBpc0RyYWdnaW5nLCBsaXN0ZW5lcnMsIHNldE5vZGVSZWYsIHRyYW5zZm9ybSwgdHJhbnNpdGlvbn0gPSB1c2VTb3J0YWJsZSh7XG4gICAgICBpZDogbGF5ZXJHcm91cC5pZCxcbiAgICAgIGRhdGE6IHt0eXBlOiBTT1JUQUJMRV9MQVlFUl9HUk9VUF9UWVBFfSxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgYW5pbWF0ZUxheW91dENoYW5nZXNcbiAgICB9KTtcblxuICAgIGNvbnN0IGxheWVyRW50cmllc1RvU2hvdyA9IGJ1aWxkTGF5ZXJPcmRlckhpZXJhcmNoeShsYXllckdyb3VwLmxheWVyT3JkZXIsIGxheWVycyk7XG4gICAgY29uc3QgZG5kSXRlbXMgPSBsYXllckVudHJpZXNUb1Nob3cubWFwKGVudHJ5ID0+IGVudHJ5WzFdLmlkID8/IGVudHJ5WzFdKTtcblxuICAgIGNvbnN0IFtpc1NlY3Rpb25PcGVuLCBzZXRJc1NlY3Rpb25PcGVuXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IG9uVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0SXNTZWN0aW9uT3BlbihwcmV2ID0+ICFwcmV2KSwgW10pO1xuXG4gICAgY29uc3Qgc3R5bGUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgdHJhbnNmb3JtOiBDU1MuVHJhbnNmb3JtLnRvU3RyaW5nKHRyYW5zZm9ybSksXG4gICAgICAgIHRyYW5zaXRpb24sXG4gICAgICAgIG9wYWNpdHk6IGlzRHJhZ2dpbmcgPyAwLjUgOiAxXG4gICAgICB9KSxcbiAgICAgIFtpc0RyYWdnaW5nLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb25dXG4gICAgKTtcblxuICAgIGNvbnN0IHtpc092ZXIsIHNldE5vZGVSZWY6IGRyb3BwYWJsZVNldE5vZGVSZWZ9ID0gdXNlRHJvcHBhYmxlKHtcbiAgICAgIGlkOiBgZHJvcHBhYmxlLWxheWVyLWdyb3VwLWNvbnRlbnQtJHtsYXllckdyb3VwLmlkfWAsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHR5cGU6IFNPUlRBQkxFX0xBWUVSX0dST1VQX0RST1BQQUJMRV9UWVBFLFxuICAgICAgICBwYXJlbnQ6IGxheWVyR3JvdXBcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGlzT3BlbiA9IHVzZU1lbW8oKCkgPT4gaXNTZWN0aW9uT3BlbiAmJiAhaXNEcmFnZ2luZywgW2lzU2VjdGlvbk9wZW4sIGlzRHJhZ2dpbmddKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZX0+XG4gICAgICAgIDxkaXYgcmVmPXtzZXROb2RlUmVmfSB7Li4uYXR0cmlidXRlc30+XG4gICAgICAgICAgPExheWVyR3JvdXBIZWFkZXJcbiAgICAgICAgICAgIGxheWVyR3JvdXA9e2xheWVyR3JvdXB9XG4gICAgICAgICAgICBvblRvZ2dsZUxheWVyR3JvdXBDb250ZW50PXtvblRvZ2dsZX1cbiAgICAgICAgICAgIGlzTGF5ZXJHcm91cENvbnRlbnRPcGVuPXtpc1NlY3Rpb25PcGVufVxuICAgICAgICAgICAgbGlzdGVuZXJzPXtsaXN0ZW5lcnN9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtpc09wZW4gPyAoXG4gICAgICAgICAgPENvbGxhcHNpYmxlR3JvdXBDb250ZW50IHJlZj17ZHJvcHBhYmxlU2V0Tm9kZVJlZn0gJGlzT3Zlcj17aXNPdmVyfT5cbiAgICAgICAgICAgIHtsYXllckVudHJpZXNUb1Nob3cubGVuZ3RoID8gKFxuICAgICAgICAgICAgICA8U29ydGFibGVDb250ZXh0XG4gICAgICAgICAgICAgICAgaWQ9e2Bzb3J0YWJsZS1ncm91cC0ke2xheWVyR3JvdXAuaWR9YH1cbiAgICAgICAgICAgICAgICBpdGVtcz17ZG5kSXRlbXN9XG4gICAgICAgICAgICAgICAgc3RyYXRlZ3k9e3ZlcnRpY2FsTGlzdFNvcnRpbmdTdHJhdGVneX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtsYXllckVudHJpZXNUb1Nob3cubWFwKChbdHlwZSwgbmVzdGVkRW50cnldLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgIHR5cGUgPT09ICdsYXllcicgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxOZXN0ZWRMYXllclxuICAgICAgICAgICAgICAgICAgICAgIGtleT17bmVzdGVkRW50cnkuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgaXNMYXN0PXtpbmRleCA9PT0gbGF5ZXJFbnRyaWVzVG9TaG93Lmxlbmd0aCAtIDF9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U29ydGFibGVMYXllckl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyPXtuZXN0ZWRFbnRyeSBhcyBMYXllcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkeD17bGF5ZXJzLmZpbmRJbmRleChsID0+IGw/LmlkID09PSBuZXN0ZWRFbnRyeS5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYW5lbFByb3BzPXtwYW5lbFByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJBY3Rpb25zPXtsYXllckFjdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQ9e2xheWVyR3JvdXB9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9OZXN0ZWRMYXllcj5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9Tb3J0YWJsZUNvbnRleHQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8RW1wdHlMYXllckdyb3VwPkRyYWcgbGF5ZXIgaGVyZTwvRW1wdHlMYXllckdyb3VwPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0NvbGxhcHNpYmxlR3JvdXBDb250ZW50PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxDb2xsYXBzZWREcm9wWm9uZSByZWY9e2Ryb3BwYWJsZVNldE5vZGVSZWZ9ICRpc092ZXI9e2lzT3Zlcn0gLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgU29ydGFibGVFbmRQbGFjZWhvbGRlciA9ICgpID0+IHtcbiAgICBjb25zdCB7c2V0Tm9kZVJlZn0gPSB1c2VTb3J0YWJsZSh7XG4gICAgICBpZDogU09SVEFCTEVfTEFZRVJfRU5EX1BMQUNFSE9MREVSLFxuICAgICAgZGF0YToge3R5cGU6IFNPUlRBQkxFX0xBWUVSX0VORF9UWVBFfSxcbiAgICAgIGFuaW1hdGVMYXlvdXRDaGFuZ2VzXG4gICAgfSk7XG4gICAgcmV0dXJuIDxFbmRQbGFjZWhvbGRlciByZWY9e3NldE5vZGVSZWZ9IC8+O1xuICB9O1xuXG4gIGNvbnN0IExheWVyTGlzdDogUmVhY3QuRkM8TGF5ZXJMaXN0UHJvcHM+ID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGxheWVycyxcbiAgICAgIGRhdGFzZXRzLFxuICAgICAgbGF5ZXJPcmRlcixcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgICAgbWFwU3RhdGVBY3Rpb25zLFxuICAgICAgbWFwU3RhdGUsXG4gICAgICBsYXllckNsYXNzZXMsXG4gICAgICBpc1NvcnRhYmxlID0gdHJ1ZSxcbiAgICAgIHNwbGl0TWFwXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IHt0b2dnbGVNb2RhbDogb3Blbk1vZGFsfSA9IHVpU3RhdGVBY3Rpb25zO1xuXG4gICAgY29uc3QgbGF5ZXJFbnRyaWVzVG9TaG93OiBMYXllck9yZGVySGllcmFyY2h5ID0gdXNlTWVtbyhcbiAgICAgICgpID0+IGJ1aWxkTGF5ZXJPcmRlckhpZXJhcmNoeShsYXllck9yZGVyLCBsYXllcnMpLFxuICAgICAgW2xheWVyT3JkZXIsIGxheWVyc11cbiAgICApO1xuXG4gICAgY29uc3Qgc2lkZVBhbmVsRG5kSXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gbGF5ZXJFbnRyaWVzVG9TaG93Lm1hcChlbnRyeSA9PiBlbnRyeVsxXS5pZCA/PyBlbnRyeVsxXSk7XG4gICAgICBpdGVtcy5wdXNoKFNPUlRBQkxFX0xBWUVSX0VORF9QTEFDRUhPTERFUik7XG4gICAgICByZXR1cm4gaXRlbXM7XG4gICAgfSwgW2xheWVyRW50cmllc1RvU2hvd10pO1xuXG4gICAgY29uc3QgbGF5ZXJUeXBlT3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhsYXllckNsYXNzZXMpLm1hcChrZXkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxheWVyID0gbmV3IGxheWVyQ2xhc3Nlc1trZXldKHtkYXRhSWQ6ICcnfSk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBrZXksXG4gICAgICAgICAgICBsYWJlbDogbGF5ZXIubmFtZSxcbiAgICAgICAgICAgIGljb246IGxheWVyLmxheWVySWNvbixcbiAgICAgICAgICAgIHJlcXVpcmVEYXRhOiBsYXllci5yZXF1aXJlRGF0YVxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgW2xheWVyQ2xhc3Nlc11cbiAgICApO1xuXG4gICAgY29uc3QgbGF5ZXJBY3Rpb25zID0gdXNlTWVtbyhcbiAgICAgICgpID0+ICh7XG4gICAgICAgIGxheWVyQ29sb3JVSUNoYW5nZTogdmlzU3RhdGVBY3Rpb25zLmxheWVyQ29sb3JVSUNoYW5nZSxcbiAgICAgICAgbGF5ZXJDb25maWdDaGFuZ2U6IHZpc1N0YXRlQWN0aW9ucy5sYXllckNvbmZpZ0NoYW5nZSxcbiAgICAgICAgbGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnQ2hhbmdlOiB2aXNTdGF0ZUFjdGlvbnMubGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnQ2hhbmdlLFxuICAgICAgICBsYXllclRvZ2dsZVZpc2liaWxpdHk6IHZpc1N0YXRlQWN0aW9ucy5sYXllclRvZ2dsZVZpc2liaWxpdHksXG4gICAgICAgIGxheWVyVHlwZUNoYW5nZTogdmlzU3RhdGVBY3Rpb25zLmxheWVyVHlwZUNoYW5nZSxcbiAgICAgICAgbGF5ZXJWaXNDb25maWdDaGFuZ2U6IHZpc1N0YXRlQWN0aW9ucy5sYXllclZpc0NvbmZpZ0NoYW5nZSxcbiAgICAgICAgbGF5ZXJUZXh0TGFiZWxDaGFuZ2U6IHZpc1N0YXRlQWN0aW9ucy5sYXllclRleHRMYWJlbENoYW5nZSxcbiAgICAgICAgcmVtb3ZlTGF5ZXI6IHZpc1N0YXRlQWN0aW9ucy5yZW1vdmVMYXllcixcbiAgICAgICAgem9vbVRvTGF5ZXI6IG1hcFN0YXRlQWN0aW9ucy5maXRCb3VuZHMsXG4gICAgICAgIGR1cGxpY2F0ZUxheWVyOiB2aXNTdGF0ZUFjdGlvbnMuZHVwbGljYXRlTGF5ZXIsXG4gICAgICAgIGxheWVyU2V0SXNWYWxpZDogdmlzU3RhdGVBY3Rpb25zLmxheWVyU2V0SXNWYWxpZFxuICAgICAgfSksXG4gICAgICBbdmlzU3RhdGVBY3Rpb25zLCBtYXBTdGF0ZUFjdGlvbnNdXG4gICAgKTtcblxuICAgIGNvbnN0IHBhbmVsUHJvcHMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgZGF0YXNldHMsXG4gICAgICAgIG9wZW5Nb2RhbCxcbiAgICAgICAgbGF5ZXJUeXBlT3B0aW9ucyxcbiAgICAgICAgc3BsaXRNYXAsXG4gICAgICAgIG1hcFN0YXRlXG4gICAgICB9KSxcbiAgICAgIFtkYXRhc2V0cywgb3Blbk1vZGFsLCBsYXllclR5cGVPcHRpb25zLCBzcGxpdE1hcCwgbWFwU3RhdGVdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Q29udGFpbmVyPlxuICAgICAgICA8U29ydGFibGVDb250ZXh0XG4gICAgICAgICAgaWQ9e1NPUlRBQkxFX1NJREVfUEFORUxfVFlQRX1cbiAgICAgICAgICBpdGVtcz17c2lkZVBhbmVsRG5kSXRlbXN9XG4gICAgICAgICAgc3RyYXRlZ3k9e3ZlcnRpY2FsTGlzdFNvcnRpbmdTdHJhdGVneX1cbiAgICAgICAgICBkaXNhYmxlZD17IWlzU29ydGFibGV9XG4gICAgICAgID5cbiAgICAgICAgICB7bGF5ZXJFbnRyaWVzVG9TaG93Lm1hcCgoW3R5cGUsIGl0ZW1dKSA9PlxuICAgICAgICAgICAgdHlwZSA9PT0gJ2xheWVyJyA/IChcbiAgICAgICAgICAgICAgPFNvcnRhYmxlTGF5ZXJJdGVtXG4gICAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICAgIGxheWVyPXtpdGVtIGFzIExheWVyfVxuICAgICAgICAgICAgICAgIGlkeD17bGF5ZXJzLmZpbmRJbmRleChsID0+IGw/LmlkID09PSBpdGVtLmlkKX1cbiAgICAgICAgICAgICAgICBwYW5lbFByb3BzPXtwYW5lbFByb3BzfVxuICAgICAgICAgICAgICAgIGxheWVyQWN0aW9ucz17bGF5ZXJBY3Rpb25zfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshaXNTb3J0YWJsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxTb3J0YWJsZUdyb3VwSXRlbVxuICAgICAgICAgICAgICAgIGtleT17KGl0ZW0gYXMgTGF5ZXJPcmRlckdyb3VwKS5pZH1cbiAgICAgICAgICAgICAgICBsYXllckdyb3VwPXtpdGVtIGFzIExheWVyT3JkZXJHcm91cH1cbiAgICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgICBwYW5lbFByb3BzPXtwYW5lbFByb3BzfVxuICAgICAgICAgICAgICAgIGxheWVyQWN0aW9ucz17bGF5ZXJBY3Rpb25zfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshaXNTb3J0YWJsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIClcbiAgICAgICAgICApfVxuICAgICAgICAgIDxTb3J0YWJsZUVuZFBsYWNlaG9sZGVyIC8+XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9Db250YWluZXI+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIExheWVyTGlzdDtcbn1cbmV4cG9ydCBkZWZhdWx0IExheWVyTGlzdEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTs7QUFFQSxPQUFPQSxLQUFLLElBQUdDLE9BQU8sRUFBRUMsV0FBVyxFQUFFQyxRQUFRLFFBQU8sT0FBTztBQUMzRCxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLFVBQVUsTUFBTSxZQUFZO0FBT25DLFNBQVFDLFlBQVksUUFBTyxlQUFlO0FBQzFDLFNBQ0VDLFdBQVcsRUFDWEMsZUFBZSxFQUNmQywyQkFBMkIsRUFDM0JDLDJCQUEyQixRQUN0QixtQkFBbUI7QUFDMUIsU0FBUUMsR0FBRyxRQUFPLG9CQUFvQjtBQUN0QyxPQUFPQyxpQkFBaUIsTUFBTSxlQUFlO0FBQzdDLE9BQU9DLHVCQUF1QixNQUFNLHNCQUFzQjtBQUMxRCxTQUFRQyx3QkFBd0IsUUFBTyxxQkFBcUI7QUFDNUQsU0FBUUMsV0FBVyxRQUFPLHNCQUFzQjtBQUVoRCxT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