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

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 (1305) 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 +183 -0
  36. package/dist/cjs/common/data-table/display-format.js +125 -0
  37. package/dist/cjs/common/data-table/grid.js +106 -0
  38. package/dist/cjs/common/data-table/header-cell.js +148 -0
  39. package/dist/cjs/common/data-table/index.js +470 -0
  40. package/dist/cjs/common/data-table/option-dropdown.js +159 -0
  41. package/dist/cjs/common/dataset-label.js +27 -0
  42. package/dist/cjs/common/dnd-layer-items.js +22 -0
  43. package/dist/cjs/common/error-boundary.js +59 -0
  44. package/dist/cjs/common/field-selector.js +172 -0
  45. package/dist/cjs/common/field-token.js +43 -0
  46. package/dist/cjs/common/file-uploader/file-drop.js +180 -0
  47. package/dist/cjs/common/file-uploader/file-upload-progress.js +84 -0
  48. package/dist/cjs/common/file-uploader/file-upload.js +241 -0
  49. package/dist/cjs/common/file-uploader/upload-button.js +58 -0
  50. package/dist/cjs/common/flex-container.js +15 -0
  51. package/dist/cjs/common/histogram-plot.js +282 -0
  52. package/dist/cjs/common/icon-button.js +25 -0
  53. package/dist/cjs/common/icons/3d-models/airplane.js +103 -0
  54. package/dist/cjs/common/icons/3d-models/bicycle.js +425 -0
  55. package/dist/cjs/common/icons/3d-models/boeing.js +118 -0
  56. package/dist/cjs/common/icons/3d-models/car.js +109 -0
  57. package/dist/cjs/common/icons/3d-models/cargoship.js +245 -0
  58. package/dist/cjs/common/icons/3d-models/evtol.js +133 -0
  59. package/dist/cjs/common/icons/3d-models/glider.js +61 -0
  60. package/dist/cjs/common/icons/3d-models/helicopter.js +109 -0
  61. package/dist/cjs/common/icons/3d-models/scooter.js +158 -0
  62. package/dist/cjs/common/icons/3d-models/semitruck.js +176 -0
  63. package/dist/cjs/common/icons/3d-models/truck.js +121 -0
  64. package/dist/cjs/common/icons/add.js +40 -0
  65. package/dist/cjs/common/icons/anchor_window.js +41 -0
  66. package/dist/cjs/common/icons/annotation-text.js +55 -0
  67. package/dist/cjs/common/icons/arrow-down-alt.js +40 -0
  68. package/dist/cjs/common/icons/arrow-down-full.js +49 -0
  69. package/dist/cjs/common/icons/arrow-down-small.js +53 -0
  70. package/dist/cjs/common/icons/arrow-down-solid.js +40 -0
  71. package/dist/cjs/common/icons/arrow-down.js +50 -0
  72. package/dist/cjs/common/icons/arrow-left.js +43 -0
  73. package/dist/cjs/common/icons/arrow-right.js +40 -0
  74. package/dist/cjs/common/icons/arrow-up-alt.js +41 -0
  75. package/dist/cjs/common/icons/arrow-up-solid.js +40 -0
  76. package/dist/cjs/common/icons/arrow-up.js +40 -0
  77. package/dist/cjs/common/icons/base-map.js +56 -0
  78. package/dist/cjs/common/icons/base.js +78 -0
  79. package/dist/cjs/common/icons/bug.js +70 -0
  80. package/dist/cjs/common/icons/calendar.js +48 -0
  81. package/dist/cjs/common/icons/cancel.js +40 -0
  82. package/dist/cjs/common/icons/checkmark.js +46 -0
  83. package/dist/cjs/common/icons/clipboard.js +41 -0
  84. package/dist/cjs/common/icons/clock.js +42 -0
  85. package/dist/cjs/common/icons/close.js +46 -0
  86. package/dist/cjs/common/icons/cloud.js +50 -0
  87. package/dist/cjs/common/icons/code-alt.js +43 -0
  88. package/dist/cjs/common/icons/copy.js +51 -0
  89. package/dist/cjs/common/icons/crosshairs.js +43 -0
  90. package/dist/cjs/common/icons/cube-3d.js +54 -0
  91. package/dist/cjs/common/icons/cursor-click.js +44 -0
  92. package/dist/cjs/common/icons/cursor-point.js +50 -0
  93. package/dist/cjs/common/icons/data-table.js +76 -0
  94. package/dist/cjs/common/icons/db.js +58 -0
  95. package/dist/cjs/common/icons/delete.js +52 -0
  96. package/dist/cjs/common/icons/docs.js +56 -0
  97. package/dist/cjs/common/icons/docs2.js +50 -0
  98. package/dist/cjs/common/icons/drag-n-drop.js +42 -0
  99. package/dist/cjs/common/icons/draggable-dots.js +84 -0
  100. package/dist/cjs/common/icons/draw-polygon.js +60 -0
  101. package/dist/cjs/common/icons/edit.js +48 -0
  102. package/dist/cjs/common/icons/effects/brightness-contrast.js +69 -0
  103. package/dist/cjs/common/icons/effects/color-halftone.js +108 -0
  104. package/dist/cjs/common/icons/effects/distance-fog.js +78 -0
  105. package/dist/cjs/common/icons/effects/dot-screen.js +103 -0
  106. package/dist/cjs/common/icons/effects/edge-work.js +62 -0
  107. package/dist/cjs/common/icons/effects/hexagonal-pixelate.js +129 -0
  108. package/dist/cjs/common/icons/effects/hue-saturation.js +60 -0
  109. package/dist/cjs/common/icons/effects/ink.js +59 -0
  110. package/dist/cjs/common/icons/effects/light-and-shadow.js +48 -0
  111. package/dist/cjs/common/icons/effects/magic-wand.js +60 -0
  112. package/dist/cjs/common/icons/effects/magnify.js +67 -0
  113. package/dist/cjs/common/icons/effects/noise.js +113 -0
  114. package/dist/cjs/common/icons/effects/sepia.js +60 -0
  115. package/dist/cjs/common/icons/effects/surface-fog.js +85 -0
  116. package/dist/cjs/common/icons/effects/tilt-shift.js +69 -0
  117. package/dist/cjs/common/icons/effects/triangle-blur.js +64 -0
  118. package/dist/cjs/common/icons/effects/vibrance.js +60 -0
  119. package/dist/cjs/common/icons/effects/vignette.js +53 -0
  120. package/dist/cjs/common/icons/effects/zoom-blur.js +88 -0
  121. package/dist/cjs/common/icons/email.js +44 -0
  122. package/dist/cjs/common/icons/expand.js +42 -0
  123. package/dist/cjs/common/icons/eye-seen.js +49 -0
  124. package/dist/cjs/common/icons/eye-unseen.js +47 -0
  125. package/dist/cjs/common/icons/file-type.js +35 -0
  126. package/dist/cjs/common/icons/file.js +40 -0
  127. package/dist/cjs/common/icons/files.js +41 -0
  128. package/dist/cjs/common/icons/filter-funnel.js +50 -0
  129. package/dist/cjs/common/icons/folder.js +50 -0
  130. package/dist/cjs/common/icons/free-window.js +44 -0
  131. package/dist/cjs/common/icons/gear.js +42 -0
  132. package/dist/cjs/common/icons/globe.js +53 -0
  133. package/dist/cjs/common/icons/hash.js +40 -0
  134. package/dist/cjs/common/icons/help.js +50 -0
  135. package/dist/cjs/common/icons/histogram.js +41 -0
  136. package/dist/cjs/common/icons/horizontal-resize-handle.js +58 -0
  137. package/dist/cjs/common/icons/index.js +824 -0
  138. package/dist/cjs/common/icons/info.js +53 -0
  139. package/dist/cjs/common/icons/layers.js +54 -0
  140. package/dist/cjs/common/icons/left-arrow.js +43 -0
  141. package/dist/cjs/common/icons/legend.js +68 -0
  142. package/dist/cjs/common/icons/line-chart.js +40 -0
  143. package/dist/cjs/common/icons/location-marker.js +58 -0
  144. package/dist/cjs/common/icons/login.js +43 -0
  145. package/dist/cjs/common/icons/logout.js +42 -0
  146. package/dist/cjs/common/icons/map-icon.js +47 -0
  147. package/dist/cjs/common/icons/map-pin.js +56 -0
  148. package/dist/cjs/common/icons/messages.js +54 -0
  149. package/dist/cjs/common/icons/minus.js +40 -0
  150. package/dist/cjs/common/icons/moon.js +58 -0
  151. package/dist/cjs/common/icons/order-by-dataset.js +46 -0
  152. package/dist/cjs/common/icons/order-by-list.js +38 -0
  153. package/dist/cjs/common/icons/pause.js +60 -0
  154. package/dist/cjs/common/icons/picture.js +59 -0
  155. package/dist/cjs/common/icons/pin.js +52 -0
  156. package/dist/cjs/common/icons/play.js +50 -0
  157. package/dist/cjs/common/icons/pointer-click.js +58 -0
  158. package/dist/cjs/common/icons/polygon.js +62 -0
  159. package/dist/cjs/common/icons/rectangle.js +63 -0
  160. package/dist/cjs/common/icons/reduce.js +43 -0
  161. package/dist/cjs/common/icons/reset.js +56 -0
  162. package/dist/cjs/common/icons/save.js +57 -0
  163. package/dist/cjs/common/icons/save2.js +54 -0
  164. package/dist/cjs/common/icons/search.js +42 -0
  165. package/dist/cjs/common/icons/settings.js +60 -0
  166. package/dist/cjs/common/icons/share.js +70 -0
  167. package/dist/cjs/common/icons/speed.js +52 -0
  168. package/dist/cjs/common/icons/split.js +68 -0
  169. package/dist/cjs/common/icons/square-select.js +42 -0
  170. package/dist/cjs/common/icons/sun.js +74 -0
  171. package/dist/cjs/common/icons/sunrise.js +70 -0
  172. package/dist/cjs/common/icons/sunset.js +70 -0
  173. package/dist/cjs/common/icons/timeline-marker.js +55 -0
  174. package/dist/cjs/common/icons/trash.js +54 -0
  175. package/dist/cjs/common/icons/vert-dots.js +78 -0
  176. package/dist/cjs/common/icons/vert-three-dots.js +53 -0
  177. package/dist/cjs/common/icons/warning-sign.js +60 -0
  178. package/dist/cjs/common/icons/warning.js +54 -0
  179. package/dist/cjs/common/icons/zoom-in.js +47 -0
  180. package/dist/cjs/common/icons/zoom-out.js +47 -0
  181. package/dist/cjs/common/image-preview.js +64 -0
  182. package/dist/cjs/common/index.js +282 -0
  183. package/dist/cjs/common/info-helper.js +61 -0
  184. package/dist/cjs/common/item-selector/accessor.js +37 -0
  185. package/dist/cjs/common/item-selector/chickleted-input.js +157 -0
  186. package/dist/cjs/common/item-selector/dropdown-list.js +257 -0
  187. package/dist/cjs/common/item-selector/dropdown-select.js +84 -0
  188. package/dist/cjs/common/item-selector/item-selector.js +254 -0
  189. package/dist/cjs/common/item-selector/typeahead.js +435 -0
  190. package/dist/cjs/common/layout-splitter.js +230 -0
  191. package/dist/cjs/common/line-chart.js +286 -0
  192. package/dist/cjs/common/link-renderer.js +20 -0
  193. package/dist/cjs/common/loading-spinner.js +50 -0
  194. package/dist/cjs/common/logo.js +68 -0
  195. package/dist/cjs/common/map-layer-selector.js +38 -0
  196. package/dist/cjs/common/modal.js +170 -0
  197. package/dist/cjs/common/portaled.js +287 -0
  198. package/dist/cjs/common/progress-bar.js +47 -0
  199. package/dist/cjs/common/radius-legend.js +131 -0
  200. package/dist/cjs/common/range-brush.js +265 -0
  201. package/dist/cjs/common/range-plot.js +217 -0
  202. package/dist/cjs/common/range-slider-timeline-panel.js +42 -0
  203. package/dist/cjs/common/range-slider-timeline.js +112 -0
  204. package/dist/cjs/common/range-slider.js +371 -0
  205. package/dist/cjs/common/slider/mouse-event.js +104 -0
  206. package/dist/cjs/common/slider/slider-bar-handle.js +90 -0
  207. package/dist/cjs/common/slider/slider-handle.js +136 -0
  208. package/dist/cjs/common/slider/slider.js +251 -0
  209. package/dist/cjs/common/styled-components.js +447 -0
  210. package/dist/cjs/common/switch.js +21 -0
  211. package/dist/cjs/common/sync-timeline-control.js +61 -0
  212. package/dist/cjs/common/time-range-slider-time-title.js +62 -0
  213. package/dist/cjs/common/time-range-slider.js +143 -0
  214. package/dist/cjs/common/time-slider-marker.js +115 -0
  215. package/dist/cjs/common/timeline-helpers.js +57 -0
  216. package/dist/cjs/common/timeline-slider.js +140 -0
  217. package/dist/cjs/common/tippy-tooltip.js +134 -0
  218. package/dist/cjs/common/toolbar-item.js +60 -0
  219. package/dist/cjs/common/toolbar.js +27 -0
  220. package/dist/cjs/common/vertical-toolbar.js +16 -0
  221. package/dist/cjs/connect/keplergl-connect.js +44 -0
  222. package/dist/cjs/connect/with-local-selector.js +85 -0
  223. package/dist/cjs/container.js +180 -0
  224. package/dist/cjs/context.js +43 -0
  225. package/dist/cjs/dnd-context.js +174 -0
  226. package/dist/cjs/editor/editor.js +200 -0
  227. package/dist/cjs/editor/feature-action-panel.js +147 -0
  228. package/dist/cjs/effects/compact-color-picker.js +110 -0
  229. package/dist/cjs/effects/effect-configurator.js +473 -0
  230. package/dist/cjs/effects/effect-list.js +129 -0
  231. package/dist/cjs/effects/effect-manager.js +126 -0
  232. package/dist/cjs/effects/effect-panel-header.js +196 -0
  233. package/dist/cjs/effects/effect-panel.js +86 -0
  234. package/dist/cjs/effects/effect-time-configurator.js +313 -0
  235. package/dist/cjs/effects/effect-time-selector.js +152 -0
  236. package/dist/cjs/effects/effect-time-slider.js +198 -0
  237. package/dist/cjs/effects/effect-type-dropdown-list.js +65 -0
  238. package/dist/cjs/effects/effect-type-list-item.js +98 -0
  239. package/dist/cjs/effects/effect-type-selector.js +76 -0
  240. package/dist/cjs/effects/side-panel-title.js +37 -0
  241. package/dist/cjs/effects/surface-fog-section.js +262 -0
  242. package/dist/cjs/effects/timezone-selector.js +57 -0
  243. package/dist/cjs/filter-animation-controller.js +76 -0
  244. package/dist/cjs/filters/components.js +14 -0
  245. package/dist/cjs/filters/filter-panels/filter-panel-with-field-select.js +77 -0
  246. package/dist/cjs/filters/filter-panels/filter-synced-dataset-panel.js +260 -0
  247. package/dist/cjs/filters/filter-panels/multi-select-filter-panel.js +48 -0
  248. package/dist/cjs/filters/filter-panels/new-filter-panel.js +66 -0
  249. package/dist/cjs/filters/filter-panels/polygon-filter-panel.js +67 -0
  250. package/dist/cjs/filters/filter-panels/range-filter-panel.js +53 -0
  251. package/dist/cjs/filters/filter-panels/single-select-filter-panel.js +48 -0
  252. package/dist/cjs/filters/filter-panels/time-range-filter-panel.js +129 -0
  253. package/dist/cjs/filters/filter-panels/time-synced-field-selector.js +28 -0
  254. package/dist/cjs/filters/filter-panels/types.js +6 -0
  255. package/dist/cjs/filters/index.js +63 -0
  256. package/dist/cjs/filters/multi-select-filter.js +31 -0
  257. package/dist/cjs/filters/polygon-filter.js +76 -0
  258. package/dist/cjs/filters/range-filter.js +35 -0
  259. package/dist/cjs/filters/single-select-filter.js +40 -0
  260. package/dist/cjs/filters/time-range-filter.js +69 -0
  261. package/dist/cjs/filters/time-widget-settings.js +311 -0
  262. package/dist/cjs/filters/time-widget-top.js +80 -0
  263. package/dist/cjs/filters/time-widget.js +376 -0
  264. package/dist/cjs/filters/types.js +6 -0
  265. package/dist/cjs/geocoder/geocoder.js +327 -0
  266. package/dist/cjs/geocoder-panel.js +172 -0
  267. package/dist/cjs/hooks/use-cloud-list-provider.js +46 -0
  268. package/dist/cjs/hooks/use-dnd-effects.js +69 -0
  269. package/dist/cjs/hooks/use-dnd-layers.js +141 -0
  270. package/dist/cjs/hooks/use-feature-flags.js +17 -0
  271. package/dist/cjs/hooks/use-fetch-raster-tile-metadata.js +120 -0
  272. package/dist/cjs/hooks/use-fetch-vector-tile-metadata.js +133 -0
  273. package/dist/cjs/hooks/use-legend-position.js +176 -0
  274. package/dist/cjs/hooks/use-on-click-outside.js +36 -0
  275. package/dist/cjs/index.js +2897 -0
  276. package/dist/cjs/injector.js +151 -0
  277. package/dist/cjs/kepler-gl.js +664 -0
  278. package/dist/cjs/layer-animation-controller.js +53 -0
  279. package/dist/cjs/loading-indicator.js +76 -0
  280. package/dist/cjs/map/annotations/annotation-control.js +55 -0
  281. package/dist/cjs/map/attribution.js +391 -0
  282. package/dist/cjs/map/coordinate-info.js +42 -0
  283. package/dist/cjs/map/effects/effect-control.js +51 -0
  284. package/dist/cjs/map/layer-hover-info.js +318 -0
  285. package/dist/cjs/map/lazy-tippy.js +60 -0
  286. package/dist/cjs/map/locale-panel.js +76 -0
  287. package/dist/cjs/map/map-control-panel.js +140 -0
  288. package/dist/cjs/map/map-control-toolbar.js +18 -0
  289. package/dist/cjs/map/map-control-tooltip.js +34 -0
  290. package/dist/cjs/map/map-control.js +81 -0
  291. package/dist/cjs/map/map-draw-panel.js +100 -0
  292. package/dist/cjs/map/map-legend-panel.js +289 -0
  293. package/dist/cjs/map/map-legend.js +509 -0
  294. package/dist/cjs/map/map-navigation-control.js +159 -0
  295. package/dist/cjs/map/map-popover-content.js +28 -0
  296. package/dist/cjs/map/map-popover.js +189 -0
  297. package/dist/cjs/map/map-scale.js +162 -0
  298. package/dist/cjs/map/split-map-button.js +176 -0
  299. package/dist/cjs/map/toggle-3d-button.js +122 -0
  300. package/dist/cjs/map-container.js +1322 -0
  301. package/dist/cjs/map-view-state-context.js +98 -0
  302. package/dist/cjs/maps-layout.js +102 -0
  303. package/dist/cjs/modal-container.js +456 -0
  304. package/dist/cjs/modals/add-map-style-modal.js +262 -0
  305. package/dist/cjs/modals/cloud-components/cloud-header.js +59 -0
  306. package/dist/cjs/modals/cloud-components/cloud-item.js +59 -0
  307. package/dist/cjs/modals/cloud-components/cloud-item.spec.js +92 -0
  308. package/dist/cjs/modals/cloud-components/cloud-maps.js +47 -0
  309. package/dist/cjs/modals/cloud-components/cloud-maps.spec.js +98 -0
  310. package/dist/cjs/modals/cloud-components/provider-loading.js +20 -0
  311. package/dist/cjs/modals/cloud-components/provider-select.js +30 -0
  312. package/dist/cjs/modals/cloud-tile.js +202 -0
  313. package/dist/cjs/modals/data-table-modal.js +215 -0
  314. package/dist/cjs/modals/delete-data-modal.js +41 -0
  315. package/dist/cjs/modals/error-display.js +32 -0
  316. package/dist/cjs/modals/export-data-modal.js +163 -0
  317. package/dist/cjs/modals/export-image-modal.js +188 -0
  318. package/dist/cjs/modals/export-map-modal/components.js +34 -0
  319. package/dist/cjs/modals/export-map-modal/export-html-map.js +128 -0
  320. package/dist/cjs/modals/export-map-modal/export-json-map.js +81 -0
  321. package/dist/cjs/modals/export-map-modal/export-map-modal.js +84 -0
  322. package/dist/cjs/modals/export-video-modal.js +413 -0
  323. package/dist/cjs/modals/export-video-modal.spec.js +686 -0
  324. package/dist/cjs/modals/fog-height-animation.js +97 -0
  325. package/dist/cjs/modals/globe-export-video-container.js +626 -0
  326. package/dist/cjs/modals/globe-export-video-preview.js +148 -0
  327. package/dist/cjs/modals/hubble-utils.js +447 -0
  328. package/dist/cjs/modals/hubble-utils.spec.js +397 -0
  329. package/dist/cjs/modals/image-modal-container.js +57 -0
  330. package/dist/cjs/modals/load-data-modal.js +97 -0
  331. package/dist/cjs/modals/load-storage-map.js +79 -0
  332. package/dist/cjs/modals/load-storage-map.spec.js +216 -0
  333. package/dist/cjs/modals/loading-dialog.js +37 -0
  334. package/dist/cjs/modals/modal-dialog.js +16 -0
  335. package/dist/cjs/modals/modal-tabs.js +74 -0
  336. package/dist/cjs/modals/overwrite-map-modal.js +83 -0
  337. package/dist/cjs/modals/save-map-modal.js +179 -0
  338. package/dist/cjs/modals/save-map-modal.spec.js +195 -0
  339. package/dist/cjs/modals/share-map-modal.js +168 -0
  340. package/dist/cjs/modals/share-map-modal.spec.js +173 -0
  341. package/dist/cjs/modals/status-panel.js +65 -0
  342. package/dist/cjs/modals/storage-map-viewer.js +98 -0
  343. package/dist/cjs/modals/swipe-composite-utils.js +118 -0
  344. package/dist/cjs/modals/swipe-export-settings.js +372 -0
  345. package/dist/cjs/modals/swipe-export-video-container.js +653 -0
  346. package/dist/cjs/modals/swipe-export-video-preview.js +391 -0
  347. package/dist/cjs/modals/tilesets-modals/common.js +6 -0
  348. package/dist/cjs/modals/tilesets-modals/load-data-footer.js +55 -0
  349. package/dist/cjs/modals/tilesets-modals/load-tileset.js +168 -0
  350. package/dist/cjs/modals/tilesets-modals/tileset-bitmap-form.js +283 -0
  351. package/dist/cjs/modals/tilesets-modals/tileset-icon.js +39 -0
  352. package/dist/cjs/modals/tilesets-modals/tileset-raster-form.js +287 -0
  353. package/dist/cjs/modals/tilesets-modals/tileset-tile3d-form.js +388 -0
  354. package/dist/cjs/modals/tilesets-modals/tileset-vector-form.js +261 -0
  355. package/dist/cjs/modals/tilesets-modals/tileset-wms-form.js +206 -0
  356. package/dist/cjs/notification-panel/notification-item.js +119 -0
  357. package/dist/cjs/notification-panel.js +39 -0
  358. package/dist/cjs/plot-container.js +311 -0
  359. package/dist/cjs/side-panel/add-by-dataset-button.js +128 -0
  360. package/dist/cjs/side-panel/cloud-storage-dropdown.js +40 -0
  361. package/dist/cjs/side-panel/common/dataset-info.js +34 -0
  362. package/dist/cjs/side-panel/common/dataset-tag.js +62 -0
  363. package/dist/cjs/side-panel/common/dataset-title.js +143 -0
  364. package/dist/cjs/side-panel/common/source-data-catalog.js +49 -0
  365. package/dist/cjs/side-panel/common/source-data-selector-content.js +64 -0
  366. package/dist/cjs/side-panel/common/source-data-selector.js +41 -0
  367. package/dist/cjs/side-panel/common/source-selector.js +56 -0
  368. package/dist/cjs/side-panel/common/types.js +6 -0
  369. package/dist/cjs/side-panel/custom-panel.js +39 -0
  370. package/dist/cjs/side-panel/filter-manager.js +202 -0
  371. package/dist/cjs/side-panel/filter-panel/add-filter-button.js +27 -0
  372. package/dist/cjs/side-panel/filter-panel/filter-panel-header.js +67 -0
  373. package/dist/cjs/side-panel/filter-panel/filter-panel.js +92 -0
  374. package/dist/cjs/side-panel/interaction-manager.js +45 -0
  375. package/dist/cjs/side-panel/interaction-panel/brush-config.js +41 -0
  376. package/dist/cjs/side-panel/interaction-panel/geocoder-config.js +45 -0
  377. package/dist/cjs/side-panel/interaction-panel/interaction-panel.js +121 -0
  378. package/dist/cjs/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +164 -0
  379. package/dist/cjs/side-panel/interaction-panel/tooltip-config.js +149 -0
  380. package/dist/cjs/side-panel/layer-manager.js +224 -0
  381. package/dist/cjs/side-panel/layer-panel/add-layer-button.js +27 -0
  382. package/dist/cjs/side-panel/layer-panel/aggr-scale-selector.js +37 -0
  383. package/dist/cjs/side-panel/layer-panel/channel-by-value-selector.js +71 -0
  384. package/dist/cjs/side-panel/layer-panel/color-breaks-panel.js +193 -0
  385. package/dist/cjs/side-panel/layer-panel/color-palette-preset.js +45 -0
  386. package/dist/cjs/side-panel/layer-panel/color-palette.js +74 -0
  387. package/dist/cjs/side-panel/layer-panel/color-range-selector.js +242 -0
  388. package/dist/cjs/side-panel/layer-panel/color-scale-selector.js +295 -0
  389. package/dist/cjs/side-panel/layer-panel/color-selector.js +186 -0
  390. package/dist/cjs/side-panel/layer-panel/column-selector.js +59 -0
  391. package/dist/cjs/side-panel/layer-panel/custom-palette.js +787 -0
  392. package/dist/cjs/side-panel/layer-panel/custom-picker.js +83 -0
  393. package/dist/cjs/side-panel/layer-panel/dataset-layer-group.js +68 -0
  394. package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +101 -0
  395. package/dist/cjs/side-panel/layer-panel/dataset-section.js +74 -0
  396. package/dist/cjs/side-panel/layer-panel/dimension-scale-selector.js +91 -0
  397. package/dist/cjs/side-panel/layer-panel/how-to-button.js +27 -0
  398. package/dist/cjs/side-panel/layer-panel/layer-color-selector.js +105 -0
  399. package/dist/cjs/side-panel/layer-panel/layer-column-config.js +85 -0
  400. package/dist/cjs/side-panel/layer-panel/layer-column-mode-config.js +192 -0
  401. package/dist/cjs/side-panel/layer-panel/layer-config-group.js +143 -0
  402. package/dist/cjs/side-panel/layer-panel/layer-configurator.js +1073 -0
  403. package/dist/cjs/side-panel/layer-panel/layer-error-message.js +29 -0
  404. package/dist/cjs/side-panel/layer-panel/layer-group-header.js +178 -0
  405. package/dist/cjs/side-panel/layer-panel/layer-list.js +330 -0
  406. package/dist/cjs/side-panel/layer-panel/layer-panel-header.js +311 -0
  407. package/dist/cjs/side-panel/layer-panel/layer-panel.js +171 -0
  408. package/dist/cjs/side-panel/layer-panel/layer-type-dropdown-list.js +77 -0
  409. package/dist/cjs/side-panel/layer-panel/layer-type-list-item.js +71 -0
  410. package/dist/cjs/side-panel/layer-panel/layer-type-selector.js +57 -0
  411. package/dist/cjs/side-panel/layer-panel/raster-tile-colormap-list-item.js +60 -0
  412. package/dist/cjs/side-panel/layer-panel/raster-tile-layer-configurator.js +457 -0
  413. package/dist/cjs/side-panel/layer-panel/scenegraph-model-selector.js +122 -0
  414. package/dist/cjs/side-panel/layer-panel/single-color-palette.js +85 -0
  415. package/dist/cjs/side-panel/layer-panel/text-label-panel.js +173 -0
  416. package/dist/cjs/side-panel/layer-panel/vector-tile-layer-configurator.js +93 -0
  417. package/dist/cjs/side-panel/layer-panel/vis-config-by-field-selector.js +60 -0
  418. package/dist/cjs/side-panel/layer-panel/vis-config-slider.js +167 -0
  419. package/dist/cjs/side-panel/layer-panel/vis-config-switch.js +55 -0
  420. package/dist/cjs/side-panel/map-manager.js +108 -0
  421. package/dist/cjs/side-panel/map-style-panel/globe-config-panel.js +269 -0
  422. package/dist/cjs/side-panel/map-style-panel/map-layer-group-color-picker.js +76 -0
  423. package/dist/cjs/side-panel/map-style-panel/map-layer-group-item.js +94 -0
  424. package/dist/cjs/side-panel/map-style-panel/map-layer-selector.js +74 -0
  425. package/dist/cjs/side-panel/map-style-panel/map-style-selector.js +97 -0
  426. package/dist/cjs/side-panel/panel-header-action.js +73 -0
  427. package/dist/cjs/side-panel/panel-header.js +309 -0
  428. package/dist/cjs/side-panel/panel-tab.js +55 -0
  429. package/dist/cjs/side-panel/panel-title.js +40 -0
  430. package/dist/cjs/side-panel/panel-toggle.js +47 -0
  431. package/dist/cjs/side-panel/panel-view-list-toggle.js +97 -0
  432. package/dist/cjs/side-panel/side-bar.js +126 -0
  433. package/dist/cjs/side-panel.js +235 -0
  434. package/dist/cjs/types.js +6 -0
  435. package/dist/esm/annotations/annotation-node.js +138 -0
  436. package/dist/esm/annotations/annotation-overlay.js +161 -0
  437. package/dist/esm/annotations/annotation-panel.js +355 -0
  438. package/dist/esm/annotations/annotation-text.js +142 -0
  439. package/dist/esm/annotations/annotation-utils.js +185 -0
  440. package/dist/esm/annotations/index.js +9 -0
  441. package/dist/esm/annotations/lexical-editor/clickable-link-plugin.js +64 -0
  442. package/dist/esm/annotations/lexical-editor/floating-link-editor.js +186 -0
  443. package/dist/esm/annotations/lexical-editor/index.js +9 -0
  444. package/dist/esm/annotations/lexical-editor/lexical-constants.js +16 -0
  445. package/dist/esm/annotations/lexical-editor/lexical-nodes.js +7 -0
  446. package/dist/esm/annotations/lexical-editor/lexical-rich-text-editor.js +114 -0
  447. package/dist/esm/annotations/lexical-editor/lexical-theme.js +19 -0
  448. package/dist/esm/annotations/lexical-editor/lexical-toolbar.js +285 -0
  449. package/dist/esm/annotations/lexical-editor/lexical-utils.js +37 -0
  450. package/dist/esm/annotations/lexical-editor/use-lexical-toolbar.js +248 -0
  451. package/dist/esm/bottom-widget.js +176 -0
  452. package/dist/esm/common/action-panel.js +126 -0
  453. package/dist/esm/common/animation-control/animation-control.js +95 -0
  454. package/dist/esm/common/animation-control/animation-controller.js +266 -0
  455. package/dist/esm/common/animation-control/animation-speed-slider.js +56 -0
  456. package/dist/esm/common/animation-control/animation-window-control.js +50 -0
  457. package/dist/esm/common/animation-control/export-video-control.js +36 -0
  458. package/dist/esm/common/animation-control/floating-time-display.js +124 -0
  459. package/dist/esm/common/animation-control/play-control.js +43 -0
  460. package/dist/esm/common/animation-control/playback-controls.js +157 -0
  461. package/dist/esm/common/animation-control/reset-control.js +34 -0
  462. package/dist/esm/common/animation-control/speed-control.js +46 -0
  463. package/dist/esm/common/animation-control/window-action-control.js +48 -0
  464. package/dist/esm/common/checkbox.js +94 -0
  465. package/dist/esm/common/color-legend.js +261 -0
  466. package/dist/esm/common/column-stats-chart.js +305 -0
  467. package/dist/esm/common/data-table/button.js +33 -0
  468. package/dist/esm/common/data-table/canvas.js +22 -0
  469. package/dist/esm/common/data-table/cell-size.js +177 -0
  470. package/dist/esm/common/data-table/display-format.js +118 -0
  471. package/dist/esm/common/data-table/grid.js +100 -0
  472. package/dist/esm/common/data-table/header-cell.js +141 -0
  473. package/dist/esm/common/data-table/index.js +463 -0
  474. package/dist/esm/common/data-table/option-dropdown.js +152 -0
  475. package/dist/esm/common/dataset-label.js +22 -0
  476. package/dist/esm/common/dnd-layer-items.js +16 -0
  477. package/dist/esm/common/error-boundary.js +55 -0
  478. package/dist/esm/common/field-selector.js +164 -0
  479. package/dist/esm/common/field-token.js +38 -0
  480. package/dist/esm/common/file-uploader/file-drop.js +170 -0
  481. package/dist/esm/common/file-uploader/file-upload-progress.js +77 -0
  482. package/dist/esm/common/file-uploader/file-upload.js +234 -0
  483. package/dist/esm/common/file-uploader/upload-button.js +51 -0
  484. package/dist/esm/common/flex-container.js +10 -0
  485. package/dist/esm/common/histogram-plot.js +275 -0
  486. package/dist/esm/common/icon-button.js +20 -0
  487. package/dist/esm/common/icons/3d-models/airplane.js +97 -0
  488. package/dist/esm/common/icons/3d-models/bicycle.js +419 -0
  489. package/dist/esm/common/icons/3d-models/boeing.js +112 -0
  490. package/dist/esm/common/icons/3d-models/car.js +103 -0
  491. package/dist/esm/common/icons/3d-models/cargoship.js +239 -0
  492. package/dist/esm/common/icons/3d-models/evtol.js +127 -0
  493. package/dist/esm/common/icons/3d-models/glider.js +55 -0
  494. package/dist/esm/common/icons/3d-models/helicopter.js +103 -0
  495. package/dist/esm/common/icons/3d-models/scooter.js +152 -0
  496. package/dist/esm/common/icons/3d-models/semitruck.js +170 -0
  497. package/dist/esm/common/icons/3d-models/truck.js +115 -0
  498. package/dist/esm/common/icons/add.js +34 -0
  499. package/dist/esm/common/icons/anchor_window.js +36 -0
  500. package/dist/esm/common/icons/annotation-text.js +49 -0
  501. package/dist/esm/common/icons/arrow-down-alt.js +34 -0
  502. package/dist/esm/common/icons/arrow-down-full.js +43 -0
  503. package/dist/esm/common/icons/arrow-down-small.js +47 -0
  504. package/dist/esm/common/icons/arrow-down-solid.js +34 -0
  505. package/dist/esm/common/icons/arrow-down.js +44 -0
  506. package/dist/esm/common/icons/arrow-left.js +37 -0
  507. package/dist/esm/common/icons/arrow-right.js +34 -0
  508. package/dist/esm/common/icons/arrow-up-alt.js +35 -0
  509. package/dist/esm/common/icons/arrow-up-solid.js +34 -0
  510. package/dist/esm/common/icons/arrow-up.js +34 -0
  511. package/dist/esm/common/icons/base-map.js +49 -0
  512. package/dist/esm/common/icons/base.js +72 -0
  513. package/dist/esm/common/icons/bug.js +64 -0
  514. package/dist/esm/common/icons/calendar.js +42 -0
  515. package/dist/esm/common/icons/cancel.js +34 -0
  516. package/dist/esm/common/icons/checkmark.js +40 -0
  517. package/dist/esm/common/icons/clipboard.js +35 -0
  518. package/dist/esm/common/icons/clock.js +36 -0
  519. package/dist/esm/common/icons/close.js +40 -0
  520. package/dist/esm/common/icons/cloud.js +44 -0
  521. package/dist/esm/common/icons/code-alt.js +37 -0
  522. package/dist/esm/common/icons/copy.js +45 -0
  523. package/dist/esm/common/icons/crosshairs.js +37 -0
  524. package/dist/esm/common/icons/cube-3d.js +48 -0
  525. package/dist/esm/common/icons/cursor-click.js +38 -0
  526. package/dist/esm/common/icons/cursor-point.js +44 -0
  527. package/dist/esm/common/icons/data-table.js +70 -0
  528. package/dist/esm/common/icons/db.js +52 -0
  529. package/dist/esm/common/icons/delete.js +46 -0
  530. package/dist/esm/common/icons/docs.js +50 -0
  531. package/dist/esm/common/icons/docs2.js +44 -0
  532. package/dist/esm/common/icons/drag-n-drop.js +36 -0
  533. package/dist/esm/common/icons/draggable-dots.js +78 -0
  534. package/dist/esm/common/icons/draw-polygon.js +54 -0
  535. package/dist/esm/common/icons/edit.js +42 -0
  536. package/dist/esm/common/icons/effects/brightness-contrast.js +63 -0
  537. package/dist/esm/common/icons/effects/color-halftone.js +102 -0
  538. package/dist/esm/common/icons/effects/distance-fog.js +72 -0
  539. package/dist/esm/common/icons/effects/dot-screen.js +97 -0
  540. package/dist/esm/common/icons/effects/edge-work.js +56 -0
  541. package/dist/esm/common/icons/effects/hexagonal-pixelate.js +123 -0
  542. package/dist/esm/common/icons/effects/hue-saturation.js +54 -0
  543. package/dist/esm/common/icons/effects/ink.js +53 -0
  544. package/dist/esm/common/icons/effects/light-and-shadow.js +42 -0
  545. package/dist/esm/common/icons/effects/magic-wand.js +54 -0
  546. package/dist/esm/common/icons/effects/magnify.js +61 -0
  547. package/dist/esm/common/icons/effects/noise.js +107 -0
  548. package/dist/esm/common/icons/effects/sepia.js +54 -0
  549. package/dist/esm/common/icons/effects/surface-fog.js +79 -0
  550. package/dist/esm/common/icons/effects/tilt-shift.js +63 -0
  551. package/dist/esm/common/icons/effects/triangle-blur.js +58 -0
  552. package/dist/esm/common/icons/effects/vibrance.js +54 -0
  553. package/dist/esm/common/icons/effects/vignette.js +47 -0
  554. package/dist/esm/common/icons/effects/zoom-blur.js +82 -0
  555. package/dist/esm/common/icons/email.js +38 -0
  556. package/dist/esm/common/icons/expand.js +36 -0
  557. package/dist/esm/common/icons/eye-seen.js +43 -0
  558. package/dist/esm/common/icons/eye-unseen.js +41 -0
  559. package/dist/esm/common/icons/file-type.js +30 -0
  560. package/dist/esm/common/icons/file.js +34 -0
  561. package/dist/esm/common/icons/files.js +37 -0
  562. package/dist/esm/common/icons/filter-funnel.js +44 -0
  563. package/dist/esm/common/icons/folder.js +44 -0
  564. package/dist/esm/common/icons/free-window.js +39 -0
  565. package/dist/esm/common/icons/gear.js +36 -0
  566. package/dist/esm/common/icons/globe.js +47 -0
  567. package/dist/esm/common/icons/hash.js +34 -0
  568. package/dist/esm/common/icons/help.js +44 -0
  569. package/dist/esm/common/icons/histogram.js +37 -0
  570. package/dist/esm/common/icons/horizontal-resize-handle.js +52 -0
  571. package/dist/esm/common/icons/index.js +124 -0
  572. package/dist/esm/common/icons/info.js +47 -0
  573. package/dist/esm/common/icons/layers.js +48 -0
  574. package/dist/esm/common/icons/left-arrow.js +37 -0
  575. package/dist/esm/common/icons/legend.js +62 -0
  576. package/dist/esm/common/icons/line-chart.js +34 -0
  577. package/dist/esm/common/icons/location-marker.js +52 -0
  578. package/dist/esm/common/icons/login.js +37 -0
  579. package/dist/esm/common/icons/logout.js +36 -0
  580. package/dist/esm/common/icons/map-icon.js +40 -0
  581. package/dist/esm/common/icons/map-pin.js +50 -0
  582. package/dist/esm/common/icons/messages.js +48 -0
  583. package/dist/esm/common/icons/minus.js +34 -0
  584. package/dist/esm/common/icons/moon.js +52 -0
  585. package/dist/esm/common/icons/order-by-dataset.js +41 -0
  586. package/dist/esm/common/icons/order-by-list.js +33 -0
  587. package/dist/esm/common/icons/pause.js +54 -0
  588. package/dist/esm/common/icons/picture.js +55 -0
  589. package/dist/esm/common/icons/pin.js +46 -0
  590. package/dist/esm/common/icons/play.js +44 -0
  591. package/dist/esm/common/icons/pointer-click.js +52 -0
  592. package/dist/esm/common/icons/polygon.js +56 -0
  593. package/dist/esm/common/icons/rectangle.js +57 -0
  594. package/dist/esm/common/icons/reduce.js +37 -0
  595. package/dist/esm/common/icons/reset.js +50 -0
  596. package/dist/esm/common/icons/save.js +51 -0
  597. package/dist/esm/common/icons/save2.js +48 -0
  598. package/dist/esm/common/icons/search.js +36 -0
  599. package/dist/esm/common/icons/settings.js +54 -0
  600. package/dist/esm/common/icons/share.js +64 -0
  601. package/dist/esm/common/icons/speed.js +46 -0
  602. package/dist/esm/common/icons/split.js +62 -0
  603. package/dist/esm/common/icons/square-select.js +36 -0
  604. package/dist/esm/common/icons/sun.js +68 -0
  605. package/dist/esm/common/icons/sunrise.js +64 -0
  606. package/dist/esm/common/icons/sunset.js +64 -0
  607. package/dist/esm/common/icons/timeline-marker.js +49 -0
  608. package/dist/esm/common/icons/trash.js +48 -0
  609. package/dist/esm/common/icons/vert-dots.js +72 -0
  610. package/dist/esm/common/icons/vert-three-dots.js +47 -0
  611. package/dist/esm/common/icons/warning-sign.js +54 -0
  612. package/dist/esm/common/icons/warning.js +48 -0
  613. package/dist/esm/common/icons/zoom-in.js +41 -0
  614. package/dist/esm/common/icons/zoom-out.js +41 -0
  615. package/dist/esm/common/image-preview.js +59 -0
  616. package/dist/esm/common/index.js +8 -0
  617. package/dist/esm/common/info-helper.js +56 -0
  618. package/dist/esm/common/item-selector/accessor.js +31 -0
  619. package/dist/esm/common/item-selector/chickleted-input.js +150 -0
  620. package/dist/esm/common/item-selector/dropdown-list.js +251 -0
  621. package/dist/esm/common/item-selector/dropdown-select.js +79 -0
  622. package/dist/esm/common/item-selector/item-selector.js +247 -0
  623. package/dist/esm/common/item-selector/typeahead.js +428 -0
  624. package/dist/esm/common/layout-splitter.js +224 -0
  625. package/dist/esm/common/line-chart.js +279 -0
  626. package/dist/esm/common/link-renderer.js +13 -0
  627. package/dist/esm/common/loading-spinner.js +43 -0
  628. package/dist/esm/common/logo.js +63 -0
  629. package/dist/esm/common/map-layer-selector.js +33 -0
  630. package/dist/esm/common/modal.js +163 -0
  631. package/dist/esm/common/portaled.js +280 -0
  632. package/dist/esm/common/progress-bar.js +43 -0
  633. package/dist/esm/common/radius-legend.js +124 -0
  634. package/dist/esm/common/range-brush.js +258 -0
  635. package/dist/esm/common/range-plot.js +210 -0
  636. package/dist/esm/common/range-slider-timeline-panel.js +35 -0
  637. package/dist/esm/common/range-slider-timeline.js +105 -0
  638. package/dist/esm/common/range-slider.js +364 -0
  639. package/dist/esm/common/slider/mouse-event.js +98 -0
  640. package/dist/esm/common/slider/slider-bar-handle.js +84 -0
  641. package/dist/esm/common/slider/slider-handle.js +130 -0
  642. package/dist/esm/common/slider/slider.js +245 -0
  643. package/dist/esm/common/styled-components.js +441 -0
  644. package/dist/esm/common/switch.js +16 -0
  645. package/dist/esm/common/sync-timeline-control.js +54 -0
  646. package/dist/esm/common/time-range-slider-time-title.js +57 -0
  647. package/dist/esm/common/time-range-slider.js +135 -0
  648. package/dist/esm/common/time-slider-marker.js +105 -0
  649. package/dist/esm/common/timeline-helpers.js +48 -0
  650. package/dist/esm/common/timeline-slider.js +133 -0
  651. package/dist/esm/common/tippy-tooltip.js +127 -0
  652. package/dist/esm/common/toolbar-item.js +55 -0
  653. package/dist/esm/common/toolbar.js +22 -0
  654. package/dist/esm/common/vertical-toolbar.js +11 -0
  655. package/dist/esm/connect/keplergl-connect.js +38 -0
  656. package/dist/esm/connect/with-local-selector.js +78 -0
  657. package/dist/esm/container.js +171 -0
  658. package/dist/esm/context.js +35 -0
  659. package/dist/esm/dnd-context.js +167 -0
  660. package/dist/esm/editor/editor.js +193 -0
  661. package/dist/esm/editor/feature-action-panel.js +139 -0
  662. package/dist/esm/effects/compact-color-picker.js +103 -0
  663. package/dist/esm/effects/effect-configurator.js +465 -0
  664. package/dist/esm/effects/effect-list.js +122 -0
  665. package/dist/esm/effects/effect-manager.js +119 -0
  666. package/dist/esm/effects/effect-panel-header.js +188 -0
  667. package/dist/esm/effects/effect-panel.js +79 -0
  668. package/dist/esm/effects/effect-time-configurator.js +306 -0
  669. package/dist/esm/effects/effect-time-selector.js +145 -0
  670. package/dist/esm/effects/effect-time-slider.js +190 -0
  671. package/dist/esm/effects/effect-type-dropdown-list.js +57 -0
  672. package/dist/esm/effects/effect-type-list-item.js +89 -0
  673. package/dist/esm/effects/effect-type-selector.js +69 -0
  674. package/dist/esm/effects/side-panel-title.js +32 -0
  675. package/dist/esm/effects/surface-fog-section.js +254 -0
  676. package/dist/esm/effects/timezone-selector.js +50 -0
  677. package/dist/esm/filter-animation-controller.js +67 -0
  678. package/dist/esm/filters/components.js +9 -0
  679. package/dist/esm/filters/filter-panels/filter-panel-with-field-select.js +68 -0
  680. package/dist/esm/filters/filter-panels/filter-synced-dataset-panel.js +253 -0
  681. package/dist/esm/filters/filter-panels/multi-select-filter-panel.js +39 -0
  682. package/dist/esm/filters/filter-panels/new-filter-panel.js +56 -0
  683. package/dist/esm/filters/filter-panels/polygon-filter-panel.js +58 -0
  684. package/dist/esm/filters/filter-panels/range-filter-panel.js +44 -0
  685. package/dist/esm/filters/filter-panels/single-select-filter-panel.js +39 -0
  686. package/dist/esm/filters/filter-panels/time-range-filter-panel.js +120 -0
  687. package/dist/esm/filters/filter-panels/time-synced-field-selector.js +23 -0
  688. package/dist/esm/filters/filter-panels/types.js +3 -0
  689. package/dist/esm/filters/index.js +12 -0
  690. package/dist/esm/filters/multi-select-filter.js +24 -0
  691. package/dist/esm/filters/polygon-filter.js +67 -0
  692. package/dist/esm/filters/range-filter.js +28 -0
  693. package/dist/esm/filters/single-select-filter.js +33 -0
  694. package/dist/esm/filters/time-range-filter.js +61 -0
  695. package/dist/esm/filters/time-widget-settings.js +304 -0
  696. package/dist/esm/filters/time-widget-top.js +73 -0
  697. package/dist/esm/filters/time-widget.js +369 -0
  698. package/dist/esm/filters/types.js +3 -0
  699. package/dist/esm/geocoder/geocoder.js +318 -0
  700. package/dist/esm/geocoder-panel.js +164 -0
  701. package/dist/esm/hooks/use-cloud-list-provider.js +37 -0
  702. package/dist/esm/hooks/use-dnd-effects.js +62 -0
  703. package/dist/esm/hooks/use-dnd-layers.js +136 -0
  704. package/dist/esm/hooks/use-feature-flags.js +11 -0
  705. package/dist/esm/hooks/use-fetch-raster-tile-metadata.js +113 -0
  706. package/dist/esm/hooks/use-fetch-vector-tile-metadata.js +128 -0
  707. package/dist/esm/hooks/use-legend-position.js +170 -0
  708. package/dist/esm/hooks/use-on-click-outside.js +29 -0
  709. package/dist/esm/index.js +278 -0
  710. package/dist/esm/injector.js +141 -0
  711. package/dist/esm/kepler-gl.js +651 -0
  712. package/dist/esm/layer-animation-controller.js +44 -0
  713. package/dist/esm/loading-indicator.js +69 -0
  714. package/dist/esm/map/annotations/annotation-control.js +46 -0
  715. package/dist/esm/map/attribution.js +382 -0
  716. package/dist/esm/map/coordinate-info.js +36 -0
  717. package/dist/esm/map/effects/effect-control.js +42 -0
  718. package/dist/esm/map/layer-hover-info.js +312 -0
  719. package/dist/esm/map/lazy-tippy.js +53 -0
  720. package/dist/esm/map/locale-panel.js +67 -0
  721. package/dist/esm/map/map-control-panel.js +133 -0
  722. package/dist/esm/map/map-control-toolbar.js +13 -0
  723. package/dist/esm/map/map-control-tooltip.js +27 -0
  724. package/dist/esm/map/map-control.js +77 -0
  725. package/dist/esm/map/map-draw-panel.js +91 -0
  726. package/dist/esm/map/map-legend-panel.js +282 -0
  727. package/dist/esm/map/map-legend.js +496 -0
  728. package/dist/esm/map/map-navigation-control.js +152 -0
  729. package/dist/esm/map/map-popover-content.js +21 -0
  730. package/dist/esm/map/map-popover.js +181 -0
  731. package/dist/esm/map/map-scale.js +155 -0
  732. package/dist/esm/map/split-map-button.js +167 -0
  733. package/dist/esm/map/toggle-3d-button.js +113 -0
  734. package/dist/esm/map-container.js +1292 -0
  735. package/dist/esm/map-view-state-context.js +89 -0
  736. package/dist/esm/maps-layout.js +95 -0
  737. package/dist/esm/modal-container.js +453 -0
  738. package/dist/esm/modals/add-map-style-modal.js +256 -0
  739. package/dist/esm/modals/cloud-components/cloud-header.js +52 -0
  740. package/dist/esm/modals/cloud-components/cloud-item.js +54 -0
  741. package/dist/esm/modals/cloud-components/cloud-item.spec.js +91 -0
  742. package/dist/esm/modals/cloud-components/cloud-maps.js +42 -0
  743. package/dist/esm/modals/cloud-components/cloud-maps.spec.js +94 -0
  744. package/dist/esm/modals/cloud-components/provider-loading.js +15 -0
  745. package/dist/esm/modals/cloud-components/provider-select.js +25 -0
  746. package/dist/esm/modals/cloud-tile.js +195 -0
  747. package/dist/esm/modals/data-table-modal.js +208 -0
  748. package/dist/esm/modals/delete-data-modal.js +36 -0
  749. package/dist/esm/modals/error-display.js +23 -0
  750. package/dist/esm/modals/export-data-modal.js +155 -0
  751. package/dist/esm/modals/export-image-modal.js +181 -0
  752. package/dist/esm/modals/export-map-modal/components.js +29 -0
  753. package/dist/esm/modals/export-map-modal/export-html-map.js +123 -0
  754. package/dist/esm/modals/export-map-modal/export-json-map.js +74 -0
  755. package/dist/esm/modals/export-map-modal/export-map-modal.js +77 -0
  756. package/dist/esm/modals/export-video-modal.js +400 -0
  757. package/dist/esm/modals/export-video-modal.spec.js +685 -0
  758. package/dist/esm/modals/fog-height-animation.js +90 -0
  759. package/dist/esm/modals/globe-export-video-container.js +620 -0
  760. package/dist/esm/modals/globe-export-video-preview.js +141 -0
  761. package/dist/esm/modals/hubble-utils.js +429 -0
  762. package/dist/esm/modals/hubble-utils.spec.js +396 -0
  763. package/dist/esm/modals/image-modal-container.js +48 -0
  764. package/dist/esm/modals/load-data-modal.js +89 -0
  765. package/dist/esm/modals/load-storage-map.js +70 -0
  766. package/dist/esm/modals/load-storage-map.spec.js +212 -0
  767. package/dist/esm/modals/loading-dialog.js +32 -0
  768. package/dist/esm/modals/modal-dialog.js +9 -0
  769. package/dist/esm/modals/modal-tabs.js +67 -0
  770. package/dist/esm/modals/overwrite-map-modal.js +76 -0
  771. package/dist/esm/modals/save-map-modal.js +172 -0
  772. package/dist/esm/modals/save-map-modal.spec.js +196 -0
  773. package/dist/esm/modals/share-map-modal.js +160 -0
  774. package/dist/esm/modals/share-map-modal.spec.js +172 -0
  775. package/dist/esm/modals/status-panel.js +60 -0
  776. package/dist/esm/modals/storage-map-viewer.js +93 -0
  777. package/dist/esm/modals/swipe-composite-utils.js +111 -0
  778. package/dist/esm/modals/swipe-export-settings.js +366 -0
  779. package/dist/esm/modals/swipe-export-video-container.js +646 -0
  780. package/dist/esm/modals/swipe-export-video-preview.js +384 -0
  781. package/dist/esm/modals/tilesets-modals/common.js +3 -0
  782. package/dist/esm/modals/tilesets-modals/load-data-footer.js +48 -0
  783. package/dist/esm/modals/tilesets-modals/load-tileset.js +161 -0
  784. package/dist/esm/modals/tilesets-modals/tileset-bitmap-form.js +275 -0
  785. package/dist/esm/modals/tilesets-modals/tileset-icon.js +34 -0
  786. package/dist/esm/modals/tilesets-modals/tileset-raster-form.js +279 -0
  787. package/dist/esm/modals/tilesets-modals/tileset-tile3d-form.js +380 -0
  788. package/dist/esm/modals/tilesets-modals/tileset-vector-form.js +253 -0
  789. package/dist/esm/modals/tilesets-modals/tileset-wms-form.js +199 -0
  790. package/dist/esm/notification-panel/notification-item.js +112 -0
  791. package/dist/esm/notification-panel.js +34 -0
  792. package/dist/esm/plot-container.js +304 -0
  793. package/dist/esm/side-panel/add-by-dataset-button.js +121 -0
  794. package/dist/esm/side-panel/cloud-storage-dropdown.js +33 -0
  795. package/dist/esm/side-panel/common/dataset-info.js +29 -0
  796. package/dist/esm/side-panel/common/dataset-tag.js +57 -0
  797. package/dist/esm/side-panel/common/dataset-title.js +136 -0
  798. package/dist/esm/side-panel/common/source-data-catalog.js +44 -0
  799. package/dist/esm/side-panel/common/source-data-selector-content.js +55 -0
  800. package/dist/esm/side-panel/common/source-data-selector.js +34 -0
  801. package/dist/esm/side-panel/common/source-selector.js +49 -0
  802. package/dist/esm/side-panel/common/types.js +3 -0
  803. package/dist/esm/side-panel/custom-panel.js +32 -0
  804. package/dist/esm/side-panel/filter-manager.js +195 -0
  805. package/dist/esm/side-panel/filter-panel/add-filter-button.js +20 -0
  806. package/dist/esm/side-panel/filter-panel/filter-panel-header.js +60 -0
  807. package/dist/esm/side-panel/filter-panel/filter-panel.js +85 -0
  808. package/dist/esm/side-panel/interaction-manager.js +38 -0
  809. package/dist/esm/side-panel/interaction-panel/brush-config.js +36 -0
  810. package/dist/esm/side-panel/interaction-panel/geocoder-config.js +40 -0
  811. package/dist/esm/side-panel/interaction-panel/interaction-panel.js +114 -0
  812. package/dist/esm/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +157 -0
  813. package/dist/esm/side-panel/interaction-panel/tooltip-config.js +142 -0
  814. package/dist/esm/side-panel/layer-manager.js +217 -0
  815. package/dist/esm/side-panel/layer-panel/add-layer-button.js +20 -0
  816. package/dist/esm/side-panel/layer-panel/aggr-scale-selector.js +29 -0
  817. package/dist/esm/side-panel/layer-panel/channel-by-value-selector.js +61 -0
  818. package/dist/esm/side-panel/layer-panel/color-breaks-panel.js +186 -0
  819. package/dist/esm/side-panel/layer-panel/color-palette-preset.js +40 -0
  820. package/dist/esm/side-panel/layer-panel/color-palette.js +67 -0
  821. package/dist/esm/side-panel/layer-panel/color-range-selector.js +236 -0
  822. package/dist/esm/side-panel/layer-panel/color-scale-selector.js +288 -0
  823. package/dist/esm/side-panel/layer-panel/color-selector.js +179 -0
  824. package/dist/esm/side-panel/layer-panel/column-selector.js +52 -0
  825. package/dist/esm/side-panel/layer-panel/custom-palette.js +783 -0
  826. package/dist/esm/side-panel/layer-panel/custom-picker.js +77 -0
  827. package/dist/esm/side-panel/layer-panel/dataset-layer-group.js +59 -0
  828. package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +94 -0
  829. package/dist/esm/side-panel/layer-panel/dataset-section.js +68 -0
  830. package/dist/esm/side-panel/layer-panel/dimension-scale-selector.js +82 -0
  831. package/dist/esm/side-panel/layer-panel/how-to-button.js +22 -0
  832. package/dist/esm/side-panel/layer-panel/layer-color-selector.js +94 -0
  833. package/dist/esm/side-panel/layer-panel/layer-column-config.js +76 -0
  834. package/dist/esm/side-panel/layer-panel/layer-column-mode-config.js +184 -0
  835. package/dist/esm/side-panel/layer-panel/layer-config-group.js +134 -0
  836. package/dist/esm/side-panel/layer-panel/layer-configurator.js +1064 -0
  837. package/dist/esm/side-panel/layer-panel/layer-error-message.js +24 -0
  838. package/dist/esm/side-panel/layer-panel/layer-group-header.js +171 -0
  839. package/dist/esm/side-panel/layer-panel/layer-list.js +323 -0
  840. package/dist/esm/side-panel/layer-panel/layer-panel-header.js +302 -0
  841. package/dist/esm/side-panel/layer-panel/layer-panel.js +164 -0
  842. package/dist/esm/side-panel/layer-panel/layer-type-dropdown-list.js +69 -0
  843. package/dist/esm/side-panel/layer-panel/layer-type-list-item.js +63 -0
  844. package/dist/esm/side-panel/layer-panel/layer-type-selector.js +50 -0
  845. package/dist/esm/side-panel/layer-panel/raster-tile-colormap-list-item.js +55 -0
  846. package/dist/esm/side-panel/layer-panel/raster-tile-layer-configurator.js +450 -0
  847. package/dist/esm/side-panel/layer-panel/scenegraph-model-selector.js +115 -0
  848. package/dist/esm/side-panel/layer-panel/single-color-palette.js +78 -0
  849. package/dist/esm/side-panel/layer-panel/text-label-panel.js +166 -0
  850. package/dist/esm/side-panel/layer-panel/vector-tile-layer-configurator.js +86 -0
  851. package/dist/esm/side-panel/layer-panel/vis-config-by-field-selector.js +53 -0
  852. package/dist/esm/side-panel/layer-panel/vis-config-slider.js +160 -0
  853. package/dist/esm/side-panel/layer-panel/vis-config-switch.js +50 -0
  854. package/dist/esm/side-panel/map-manager.js +99 -0
  855. package/dist/esm/side-panel/map-style-panel/globe-config-panel.js +262 -0
  856. package/dist/esm/side-panel/map-style-panel/map-layer-group-color-picker.js +69 -0
  857. package/dist/esm/side-panel/map-style-panel/map-layer-group-item.js +87 -0
  858. package/dist/esm/side-panel/map-style-panel/map-layer-selector.js +69 -0
  859. package/dist/esm/side-panel/map-style-panel/map-style-selector.js +92 -0
  860. package/dist/esm/side-panel/panel-header-action.js +68 -0
  861. package/dist/esm/side-panel/panel-header.js +303 -0
  862. package/dist/esm/side-panel/panel-tab.js +49 -0
  863. package/dist/esm/side-panel/panel-title.js +35 -0
  864. package/dist/esm/side-panel/panel-toggle.js +40 -0
  865. package/dist/esm/side-panel/panel-view-list-toggle.js +90 -0
  866. package/dist/esm/side-panel/side-bar.js +119 -0
  867. package/dist/esm/side-panel.js +227 -0
  868. package/dist/esm/types.js +3 -0
  869. package/dist/index.d.ts +1 -1
  870. package/dist/modals/hubble-utils.d.ts +16 -0
  871. package/package.json +35 -20
  872. package/dist/annotations/annotation-node.js +0 -145
  873. package/dist/annotations/annotation-overlay.js +0 -168
  874. package/dist/annotations/annotation-panel.js +0 -361
  875. package/dist/annotations/annotation-text.js +0 -149
  876. package/dist/annotations/annotation-utils.js +0 -197
  877. package/dist/annotations/index.js +0 -53
  878. package/dist/annotations/lexical-editor/clickable-link-plugin.js +0 -71
  879. package/dist/annotations/lexical-editor/floating-link-editor.js +0 -193
  880. package/dist/annotations/lexical-editor/index.js +0 -78
  881. package/dist/annotations/lexical-editor/lexical-constants.js +0 -22
  882. package/dist/annotations/lexical-editor/lexical-nodes.js +0 -13
  883. package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +0 -121
  884. package/dist/annotations/lexical-editor/lexical-theme.js +0 -25
  885. package/dist/annotations/lexical-editor/lexical-toolbar.js +0 -292
  886. package/dist/annotations/lexical-editor/lexical-utils.js +0 -45
  887. package/dist/annotations/lexical-editor/use-lexical-toolbar.js +0 -253
  888. package/dist/bottom-widget.js +0 -183
  889. package/dist/common/action-panel.js +0 -133
  890. package/dist/common/animation-control/animation-control.js +0 -100
  891. package/dist/common/animation-control/animation-controller.js +0 -271
  892. package/dist/common/animation-control/animation-speed-slider.js +0 -63
  893. package/dist/common/animation-control/animation-window-control.js +0 -59
  894. package/dist/common/animation-control/export-video-control.js +0 -43
  895. package/dist/common/animation-control/floating-time-display.js +0 -131
  896. package/dist/common/animation-control/play-control.js +0 -50
  897. package/dist/common/animation-control/playback-controls.js +0 -164
  898. package/dist/common/animation-control/reset-control.js +0 -41
  899. package/dist/common/animation-control/speed-control.js +0 -51
  900. package/dist/common/animation-control/window-action-control.js +0 -57
  901. package/dist/common/checkbox.js +0 -101
  902. package/dist/common/color-legend.js +0 -272
  903. package/dist/common/column-stats-chart.js +0 -312
  904. package/dist/common/data-table/button.js +0 -38
  905. package/dist/common/data-table/canvas.js +0 -26
  906. package/dist/common/data-table/cell-size.js +0 -183
  907. package/dist/common/data-table/display-format.js +0 -125
  908. package/dist/common/data-table/grid.js +0 -106
  909. package/dist/common/data-table/header-cell.js +0 -148
  910. package/dist/common/data-table/index.js +0 -470
  911. package/dist/common/data-table/option-dropdown.js +0 -159
  912. package/dist/common/dataset-label.js +0 -27
  913. package/dist/common/dnd-layer-items.js +0 -22
  914. package/dist/common/error-boundary.js +0 -59
  915. package/dist/common/field-selector.js +0 -172
  916. package/dist/common/field-token.js +0 -43
  917. package/dist/common/file-uploader/file-drop.js +0 -180
  918. package/dist/common/file-uploader/file-upload-progress.js +0 -84
  919. package/dist/common/file-uploader/file-upload.js +0 -241
  920. package/dist/common/file-uploader/upload-button.js +0 -58
  921. package/dist/common/flex-container.js +0 -15
  922. package/dist/common/histogram-plot.js +0 -282
  923. package/dist/common/icon-button.js +0 -25
  924. package/dist/common/icons/3d-models/airplane.js +0 -103
  925. package/dist/common/icons/3d-models/bicycle.js +0 -425
  926. package/dist/common/icons/3d-models/boeing.js +0 -118
  927. package/dist/common/icons/3d-models/car.js +0 -109
  928. package/dist/common/icons/3d-models/cargoship.js +0 -245
  929. package/dist/common/icons/3d-models/evtol.js +0 -133
  930. package/dist/common/icons/3d-models/glider.js +0 -61
  931. package/dist/common/icons/3d-models/helicopter.js +0 -109
  932. package/dist/common/icons/3d-models/scooter.js +0 -158
  933. package/dist/common/icons/3d-models/semitruck.js +0 -176
  934. package/dist/common/icons/3d-models/truck.js +0 -121
  935. package/dist/common/icons/add.js +0 -40
  936. package/dist/common/icons/anchor_window.js +0 -41
  937. package/dist/common/icons/annotation-text.js +0 -55
  938. package/dist/common/icons/arrow-down-alt.js +0 -40
  939. package/dist/common/icons/arrow-down-full.js +0 -49
  940. package/dist/common/icons/arrow-down-small.js +0 -53
  941. package/dist/common/icons/arrow-down-solid.js +0 -40
  942. package/dist/common/icons/arrow-down.js +0 -50
  943. package/dist/common/icons/arrow-left.js +0 -43
  944. package/dist/common/icons/arrow-right.js +0 -40
  945. package/dist/common/icons/arrow-up-alt.js +0 -41
  946. package/dist/common/icons/arrow-up-solid.js +0 -40
  947. package/dist/common/icons/arrow-up.js +0 -40
  948. package/dist/common/icons/base-map.js +0 -56
  949. package/dist/common/icons/base.js +0 -78
  950. package/dist/common/icons/bug.js +0 -70
  951. package/dist/common/icons/calendar.js +0 -48
  952. package/dist/common/icons/cancel.js +0 -40
  953. package/dist/common/icons/checkmark.js +0 -46
  954. package/dist/common/icons/clipboard.js +0 -41
  955. package/dist/common/icons/clock.js +0 -42
  956. package/dist/common/icons/close.js +0 -46
  957. package/dist/common/icons/cloud.js +0 -50
  958. package/dist/common/icons/code-alt.js +0 -43
  959. package/dist/common/icons/copy.js +0 -51
  960. package/dist/common/icons/crosshairs.js +0 -43
  961. package/dist/common/icons/cube-3d.js +0 -54
  962. package/dist/common/icons/cursor-click.js +0 -44
  963. package/dist/common/icons/cursor-point.js +0 -50
  964. package/dist/common/icons/data-table.js +0 -76
  965. package/dist/common/icons/db.js +0 -58
  966. package/dist/common/icons/delete.js +0 -52
  967. package/dist/common/icons/docs.js +0 -56
  968. package/dist/common/icons/docs2.js +0 -50
  969. package/dist/common/icons/drag-n-drop.js +0 -42
  970. package/dist/common/icons/draggable-dots.js +0 -84
  971. package/dist/common/icons/draw-polygon.js +0 -60
  972. package/dist/common/icons/edit.js +0 -48
  973. package/dist/common/icons/effects/brightness-contrast.js +0 -69
  974. package/dist/common/icons/effects/color-halftone.js +0 -108
  975. package/dist/common/icons/effects/distance-fog.js +0 -78
  976. package/dist/common/icons/effects/dot-screen.js +0 -103
  977. package/dist/common/icons/effects/edge-work.js +0 -62
  978. package/dist/common/icons/effects/hexagonal-pixelate.js +0 -129
  979. package/dist/common/icons/effects/hue-saturation.js +0 -60
  980. package/dist/common/icons/effects/ink.js +0 -59
  981. package/dist/common/icons/effects/light-and-shadow.js +0 -48
  982. package/dist/common/icons/effects/magic-wand.js +0 -60
  983. package/dist/common/icons/effects/magnify.js +0 -67
  984. package/dist/common/icons/effects/noise.js +0 -113
  985. package/dist/common/icons/effects/sepia.js +0 -60
  986. package/dist/common/icons/effects/surface-fog.js +0 -85
  987. package/dist/common/icons/effects/tilt-shift.js +0 -69
  988. package/dist/common/icons/effects/triangle-blur.js +0 -64
  989. package/dist/common/icons/effects/vibrance.js +0 -60
  990. package/dist/common/icons/effects/vignette.js +0 -53
  991. package/dist/common/icons/effects/zoom-blur.js +0 -88
  992. package/dist/common/icons/email.js +0 -44
  993. package/dist/common/icons/expand.js +0 -42
  994. package/dist/common/icons/eye-seen.js +0 -49
  995. package/dist/common/icons/eye-unseen.js +0 -47
  996. package/dist/common/icons/file-type.js +0 -35
  997. package/dist/common/icons/file.js +0 -40
  998. package/dist/common/icons/files.js +0 -41
  999. package/dist/common/icons/filter-funnel.js +0 -50
  1000. package/dist/common/icons/folder.js +0 -50
  1001. package/dist/common/icons/free-window.js +0 -44
  1002. package/dist/common/icons/gear.js +0 -42
  1003. package/dist/common/icons/globe.js +0 -53
  1004. package/dist/common/icons/hash.js +0 -40
  1005. package/dist/common/icons/help.js +0 -50
  1006. package/dist/common/icons/histogram.js +0 -41
  1007. package/dist/common/icons/horizontal-resize-handle.js +0 -58
  1008. package/dist/common/icons/index.js +0 -824
  1009. package/dist/common/icons/info.js +0 -53
  1010. package/dist/common/icons/layers.js +0 -54
  1011. package/dist/common/icons/left-arrow.js +0 -43
  1012. package/dist/common/icons/legend.js +0 -68
  1013. package/dist/common/icons/line-chart.js +0 -40
  1014. package/dist/common/icons/location-marker.js +0 -58
  1015. package/dist/common/icons/login.js +0 -43
  1016. package/dist/common/icons/logout.js +0 -42
  1017. package/dist/common/icons/map-icon.js +0 -47
  1018. package/dist/common/icons/map-pin.js +0 -56
  1019. package/dist/common/icons/messages.js +0 -54
  1020. package/dist/common/icons/minus.js +0 -40
  1021. package/dist/common/icons/moon.js +0 -58
  1022. package/dist/common/icons/order-by-dataset.js +0 -46
  1023. package/dist/common/icons/order-by-list.js +0 -38
  1024. package/dist/common/icons/pause.js +0 -60
  1025. package/dist/common/icons/picture.js +0 -59
  1026. package/dist/common/icons/pin.js +0 -52
  1027. package/dist/common/icons/play.js +0 -50
  1028. package/dist/common/icons/pointer-click.js +0 -58
  1029. package/dist/common/icons/polygon.js +0 -62
  1030. package/dist/common/icons/rectangle.js +0 -63
  1031. package/dist/common/icons/reduce.js +0 -43
  1032. package/dist/common/icons/reset.js +0 -56
  1033. package/dist/common/icons/save.js +0 -57
  1034. package/dist/common/icons/save2.js +0 -54
  1035. package/dist/common/icons/search.js +0 -42
  1036. package/dist/common/icons/settings.js +0 -60
  1037. package/dist/common/icons/share.js +0 -70
  1038. package/dist/common/icons/speed.js +0 -52
  1039. package/dist/common/icons/split.js +0 -68
  1040. package/dist/common/icons/square-select.js +0 -42
  1041. package/dist/common/icons/sun.js +0 -74
  1042. package/dist/common/icons/sunrise.js +0 -70
  1043. package/dist/common/icons/sunset.js +0 -70
  1044. package/dist/common/icons/timeline-marker.js +0 -55
  1045. package/dist/common/icons/trash.js +0 -54
  1046. package/dist/common/icons/vert-dots.js +0 -78
  1047. package/dist/common/icons/vert-three-dots.js +0 -53
  1048. package/dist/common/icons/warning-sign.js +0 -60
  1049. package/dist/common/icons/warning.js +0 -54
  1050. package/dist/common/icons/zoom-in.js +0 -47
  1051. package/dist/common/icons/zoom-out.js +0 -47
  1052. package/dist/common/image-preview.js +0 -64
  1053. package/dist/common/index.js +0 -282
  1054. package/dist/common/info-helper.js +0 -61
  1055. package/dist/common/item-selector/accessor.js +0 -37
  1056. package/dist/common/item-selector/chickleted-input.js +0 -157
  1057. package/dist/common/item-selector/dropdown-list.js +0 -257
  1058. package/dist/common/item-selector/dropdown-select.js +0 -84
  1059. package/dist/common/item-selector/item-selector.js +0 -254
  1060. package/dist/common/item-selector/typeahead.js +0 -435
  1061. package/dist/common/layout-splitter.js +0 -230
  1062. package/dist/common/line-chart.js +0 -286
  1063. package/dist/common/link-renderer.js +0 -20
  1064. package/dist/common/loading-spinner.js +0 -50
  1065. package/dist/common/logo.js +0 -68
  1066. package/dist/common/map-layer-selector.js +0 -38
  1067. package/dist/common/modal.js +0 -170
  1068. package/dist/common/portaled.js +0 -287
  1069. package/dist/common/progress-bar.js +0 -47
  1070. package/dist/common/radius-legend.js +0 -131
  1071. package/dist/common/range-brush.js +0 -265
  1072. package/dist/common/range-plot.js +0 -217
  1073. package/dist/common/range-slider-timeline-panel.js +0 -42
  1074. package/dist/common/range-slider-timeline.js +0 -112
  1075. package/dist/common/range-slider.js +0 -371
  1076. package/dist/common/slider/mouse-event.js +0 -104
  1077. package/dist/common/slider/slider-bar-handle.js +0 -90
  1078. package/dist/common/slider/slider-handle.js +0 -136
  1079. package/dist/common/slider/slider.js +0 -251
  1080. package/dist/common/styled-components.js +0 -447
  1081. package/dist/common/switch.js +0 -21
  1082. package/dist/common/sync-timeline-control.js +0 -61
  1083. package/dist/common/time-range-slider-time-title.js +0 -62
  1084. package/dist/common/time-range-slider.js +0 -143
  1085. package/dist/common/time-slider-marker.js +0 -115
  1086. package/dist/common/timeline-helpers.js +0 -57
  1087. package/dist/common/timeline-slider.js +0 -140
  1088. package/dist/common/tippy-tooltip.js +0 -134
  1089. package/dist/common/toolbar-item.js +0 -60
  1090. package/dist/common/toolbar.js +0 -27
  1091. package/dist/common/vertical-toolbar.js +0 -16
  1092. package/dist/connect/keplergl-connect.js +0 -44
  1093. package/dist/connect/with-local-selector.js +0 -85
  1094. package/dist/container.js +0 -180
  1095. package/dist/context.js +0 -43
  1096. package/dist/dnd-context.js +0 -174
  1097. package/dist/editor/editor.js +0 -200
  1098. package/dist/editor/feature-action-panel.js +0 -147
  1099. package/dist/effects/compact-color-picker.js +0 -110
  1100. package/dist/effects/effect-configurator.js +0 -473
  1101. package/dist/effects/effect-list.js +0 -129
  1102. package/dist/effects/effect-manager.js +0 -126
  1103. package/dist/effects/effect-panel-header.js +0 -196
  1104. package/dist/effects/effect-panel.js +0 -86
  1105. package/dist/effects/effect-time-configurator.js +0 -313
  1106. package/dist/effects/effect-time-selector.js +0 -152
  1107. package/dist/effects/effect-time-slider.js +0 -198
  1108. package/dist/effects/effect-type-dropdown-list.js +0 -65
  1109. package/dist/effects/effect-type-list-item.js +0 -98
  1110. package/dist/effects/effect-type-selector.js +0 -76
  1111. package/dist/effects/side-panel-title.js +0 -37
  1112. package/dist/effects/surface-fog-section.js +0 -262
  1113. package/dist/effects/timezone-selector.js +0 -57
  1114. package/dist/filter-animation-controller.js +0 -76
  1115. package/dist/filters/components.js +0 -14
  1116. package/dist/filters/filter-panels/filter-panel-with-field-select.js +0 -77
  1117. package/dist/filters/filter-panels/filter-synced-dataset-panel.js +0 -260
  1118. package/dist/filters/filter-panels/multi-select-filter-panel.js +0 -48
  1119. package/dist/filters/filter-panels/new-filter-panel.js +0 -66
  1120. package/dist/filters/filter-panels/polygon-filter-panel.js +0 -67
  1121. package/dist/filters/filter-panels/range-filter-panel.js +0 -53
  1122. package/dist/filters/filter-panels/single-select-filter-panel.js +0 -48
  1123. package/dist/filters/filter-panels/time-range-filter-panel.js +0 -129
  1124. package/dist/filters/filter-panels/time-synced-field-selector.js +0 -28
  1125. package/dist/filters/filter-panels/types.js +0 -6
  1126. package/dist/filters/index.js +0 -63
  1127. package/dist/filters/multi-select-filter.js +0 -31
  1128. package/dist/filters/polygon-filter.js +0 -76
  1129. package/dist/filters/range-filter.js +0 -35
  1130. package/dist/filters/single-select-filter.js +0 -40
  1131. package/dist/filters/time-range-filter.js +0 -69
  1132. package/dist/filters/time-widget-settings.js +0 -311
  1133. package/dist/filters/time-widget-top.js +0 -80
  1134. package/dist/filters/time-widget.js +0 -376
  1135. package/dist/filters/types.js +0 -6
  1136. package/dist/geocoder/geocoder.js +0 -327
  1137. package/dist/geocoder-panel.js +0 -172
  1138. package/dist/hooks/use-cloud-list-provider.js +0 -46
  1139. package/dist/hooks/use-dnd-effects.js +0 -69
  1140. package/dist/hooks/use-dnd-layers.js +0 -141
  1141. package/dist/hooks/use-feature-flags.js +0 -17
  1142. package/dist/hooks/use-fetch-raster-tile-metadata.js +0 -120
  1143. package/dist/hooks/use-fetch-vector-tile-metadata.js +0 -133
  1144. package/dist/hooks/use-legend-position.js +0 -176
  1145. package/dist/hooks/use-on-click-outside.js +0 -36
  1146. package/dist/index.js +0 -2890
  1147. package/dist/injector.js +0 -151
  1148. package/dist/kepler-gl.js +0 -664
  1149. package/dist/layer-animation-controller.js +0 -53
  1150. package/dist/loading-indicator.js +0 -76
  1151. package/dist/map/annotations/annotation-control.js +0 -55
  1152. package/dist/map/attribution.js +0 -391
  1153. package/dist/map/coordinate-info.js +0 -42
  1154. package/dist/map/effects/effect-control.js +0 -51
  1155. package/dist/map/layer-hover-info.js +0 -318
  1156. package/dist/map/lazy-tippy.js +0 -60
  1157. package/dist/map/locale-panel.js +0 -76
  1158. package/dist/map/map-control-panel.js +0 -140
  1159. package/dist/map/map-control-toolbar.js +0 -18
  1160. package/dist/map/map-control-tooltip.js +0 -34
  1161. package/dist/map/map-control.js +0 -81
  1162. package/dist/map/map-draw-panel.js +0 -100
  1163. package/dist/map/map-legend-panel.js +0 -289
  1164. package/dist/map/map-legend.js +0 -509
  1165. package/dist/map/map-navigation-control.js +0 -159
  1166. package/dist/map/map-popover-content.js +0 -28
  1167. package/dist/map/map-popover.js +0 -189
  1168. package/dist/map/map-scale.js +0 -162
  1169. package/dist/map/split-map-button.js +0 -176
  1170. package/dist/map/toggle-3d-button.js +0 -122
  1171. package/dist/map-container.js +0 -1322
  1172. package/dist/map-view-state-context.js +0 -98
  1173. package/dist/maps-layout.js +0 -102
  1174. package/dist/modal-container.js +0 -456
  1175. package/dist/modals/add-map-style-modal.js +0 -262
  1176. package/dist/modals/cloud-components/cloud-header.js +0 -59
  1177. package/dist/modals/cloud-components/cloud-item.js +0 -59
  1178. package/dist/modals/cloud-components/cloud-item.spec.js +0 -92
  1179. package/dist/modals/cloud-components/cloud-maps.js +0 -47
  1180. package/dist/modals/cloud-components/cloud-maps.spec.js +0 -98
  1181. package/dist/modals/cloud-components/provider-loading.js +0 -20
  1182. package/dist/modals/cloud-components/provider-select.js +0 -30
  1183. package/dist/modals/cloud-tile.js +0 -202
  1184. package/dist/modals/data-table-modal.js +0 -215
  1185. package/dist/modals/delete-data-modal.js +0 -41
  1186. package/dist/modals/error-display.js +0 -32
  1187. package/dist/modals/export-data-modal.js +0 -163
  1188. package/dist/modals/export-image-modal.js +0 -188
  1189. package/dist/modals/export-map-modal/components.js +0 -34
  1190. package/dist/modals/export-map-modal/export-html-map.js +0 -128
  1191. package/dist/modals/export-map-modal/export-json-map.js +0 -81
  1192. package/dist/modals/export-map-modal/export-map-modal.js +0 -84
  1193. package/dist/modals/export-video-modal.js +0 -413
  1194. package/dist/modals/export-video-modal.spec.js +0 -686
  1195. package/dist/modals/fog-height-animation.js +0 -97
  1196. package/dist/modals/globe-export-video-container.js +0 -626
  1197. package/dist/modals/globe-export-video-preview.js +0 -152
  1198. package/dist/modals/hubble-utils.js +0 -422
  1199. package/dist/modals/hubble-utils.spec.js +0 -397
  1200. package/dist/modals/image-modal-container.js +0 -57
  1201. package/dist/modals/load-data-modal.js +0 -97
  1202. package/dist/modals/load-storage-map.js +0 -79
  1203. package/dist/modals/load-storage-map.spec.js +0 -216
  1204. package/dist/modals/loading-dialog.js +0 -37
  1205. package/dist/modals/modal-dialog.js +0 -16
  1206. package/dist/modals/modal-tabs.js +0 -74
  1207. package/dist/modals/overwrite-map-modal.js +0 -83
  1208. package/dist/modals/save-map-modal.js +0 -179
  1209. package/dist/modals/save-map-modal.spec.js +0 -195
  1210. package/dist/modals/share-map-modal.js +0 -168
  1211. package/dist/modals/share-map-modal.spec.js +0 -173
  1212. package/dist/modals/status-panel.js +0 -65
  1213. package/dist/modals/storage-map-viewer.js +0 -98
  1214. package/dist/modals/swipe-composite-utils.js +0 -118
  1215. package/dist/modals/swipe-export-settings.js +0 -372
  1216. package/dist/modals/swipe-export-video-container.js +0 -653
  1217. package/dist/modals/swipe-export-video-preview.js +0 -401
  1218. package/dist/modals/tilesets-modals/common.js +0 -6
  1219. package/dist/modals/tilesets-modals/load-data-footer.js +0 -55
  1220. package/dist/modals/tilesets-modals/load-tileset.js +0 -168
  1221. package/dist/modals/tilesets-modals/tileset-bitmap-form.js +0 -283
  1222. package/dist/modals/tilesets-modals/tileset-icon.js +0 -39
  1223. package/dist/modals/tilesets-modals/tileset-raster-form.js +0 -287
  1224. package/dist/modals/tilesets-modals/tileset-tile3d-form.js +0 -388
  1225. package/dist/modals/tilesets-modals/tileset-vector-form.js +0 -261
  1226. package/dist/modals/tilesets-modals/tileset-wms-form.js +0 -206
  1227. package/dist/notification-panel/notification-item.js +0 -119
  1228. package/dist/notification-panel.js +0 -39
  1229. package/dist/plot-container.js +0 -311
  1230. package/dist/side-panel/add-by-dataset-button.js +0 -128
  1231. package/dist/side-panel/cloud-storage-dropdown.js +0 -40
  1232. package/dist/side-panel/common/dataset-info.js +0 -34
  1233. package/dist/side-panel/common/dataset-tag.js +0 -62
  1234. package/dist/side-panel/common/dataset-title.js +0 -143
  1235. package/dist/side-panel/common/source-data-catalog.js +0 -49
  1236. package/dist/side-panel/common/source-data-selector-content.js +0 -64
  1237. package/dist/side-panel/common/source-data-selector.js +0 -41
  1238. package/dist/side-panel/common/source-selector.js +0 -56
  1239. package/dist/side-panel/common/types.js +0 -6
  1240. package/dist/side-panel/custom-panel.js +0 -39
  1241. package/dist/side-panel/filter-manager.js +0 -202
  1242. package/dist/side-panel/filter-panel/add-filter-button.js +0 -27
  1243. package/dist/side-panel/filter-panel/filter-panel-header.js +0 -67
  1244. package/dist/side-panel/filter-panel/filter-panel.js +0 -92
  1245. package/dist/side-panel/interaction-manager.js +0 -45
  1246. package/dist/side-panel/interaction-panel/brush-config.js +0 -41
  1247. package/dist/side-panel/interaction-panel/geocoder-config.js +0 -45
  1248. package/dist/side-panel/interaction-panel/interaction-panel.js +0 -121
  1249. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +0 -164
  1250. package/dist/side-panel/interaction-panel/tooltip-config.js +0 -149
  1251. package/dist/side-panel/layer-manager.js +0 -224
  1252. package/dist/side-panel/layer-panel/add-layer-button.js +0 -27
  1253. package/dist/side-panel/layer-panel/aggr-scale-selector.js +0 -37
  1254. package/dist/side-panel/layer-panel/channel-by-value-selector.js +0 -71
  1255. package/dist/side-panel/layer-panel/color-breaks-panel.js +0 -193
  1256. package/dist/side-panel/layer-panel/color-palette-preset.js +0 -45
  1257. package/dist/side-panel/layer-panel/color-palette.js +0 -74
  1258. package/dist/side-panel/layer-panel/color-range-selector.js +0 -242
  1259. package/dist/side-panel/layer-panel/color-scale-selector.js +0 -295
  1260. package/dist/side-panel/layer-panel/color-selector.js +0 -186
  1261. package/dist/side-panel/layer-panel/column-selector.js +0 -59
  1262. package/dist/side-panel/layer-panel/custom-palette.js +0 -787
  1263. package/dist/side-panel/layer-panel/custom-picker.js +0 -83
  1264. package/dist/side-panel/layer-panel/dataset-layer-group.js +0 -68
  1265. package/dist/side-panel/layer-panel/dataset-layer-section.js +0 -101
  1266. package/dist/side-panel/layer-panel/dataset-section.js +0 -74
  1267. package/dist/side-panel/layer-panel/dimension-scale-selector.js +0 -91
  1268. package/dist/side-panel/layer-panel/how-to-button.js +0 -27
  1269. package/dist/side-panel/layer-panel/layer-color-selector.js +0 -105
  1270. package/dist/side-panel/layer-panel/layer-column-config.js +0 -85
  1271. package/dist/side-panel/layer-panel/layer-column-mode-config.js +0 -192
  1272. package/dist/side-panel/layer-panel/layer-config-group.js +0 -143
  1273. package/dist/side-panel/layer-panel/layer-configurator.js +0 -1073
  1274. package/dist/side-panel/layer-panel/layer-error-message.js +0 -29
  1275. package/dist/side-panel/layer-panel/layer-group-header.js +0 -178
  1276. package/dist/side-panel/layer-panel/layer-list.js +0 -330
  1277. package/dist/side-panel/layer-panel/layer-panel-header.js +0 -311
  1278. package/dist/side-panel/layer-panel/layer-panel.js +0 -171
  1279. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +0 -77
  1280. package/dist/side-panel/layer-panel/layer-type-list-item.js +0 -71
  1281. package/dist/side-panel/layer-panel/layer-type-selector.js +0 -57
  1282. package/dist/side-panel/layer-panel/raster-tile-colormap-list-item.js +0 -60
  1283. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +0 -457
  1284. package/dist/side-panel/layer-panel/scenegraph-model-selector.js +0 -122
  1285. package/dist/side-panel/layer-panel/single-color-palette.js +0 -85
  1286. package/dist/side-panel/layer-panel/text-label-panel.js +0 -173
  1287. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +0 -93
  1288. package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +0 -60
  1289. package/dist/side-panel/layer-panel/vis-config-slider.js +0 -167
  1290. package/dist/side-panel/layer-panel/vis-config-switch.js +0 -55
  1291. package/dist/side-panel/map-manager.js +0 -108
  1292. package/dist/side-panel/map-style-panel/globe-config-panel.js +0 -269
  1293. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +0 -76
  1294. package/dist/side-panel/map-style-panel/map-layer-group-item.js +0 -94
  1295. package/dist/side-panel/map-style-panel/map-layer-selector.js +0 -74
  1296. package/dist/side-panel/map-style-panel/map-style-selector.js +0 -97
  1297. package/dist/side-panel/panel-header-action.js +0 -73
  1298. package/dist/side-panel/panel-header.js +0 -309
  1299. package/dist/side-panel/panel-tab.js +0 -55
  1300. package/dist/side-panel/panel-title.js +0 -40
  1301. package/dist/side-panel/panel-toggle.js +0 -47
  1302. package/dist/side-panel/panel-view-list-toggle.js +0 -97
  1303. package/dist/side-panel/side-bar.js +0 -126
  1304. package/dist/side-panel.js +0 -235
  1305. package/dist/types.js +0 -6
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
14
+ var _core = require("@dnd-kit/core");
15
+ var _constants = require("@kepler.gl/constants");
16
+ var _annotationUtils = require("./annotation-utils");
17
+ var _lexicalEditor = require("./lexical-editor");
18
+ var _templateObject, _templateObject2; // SPDX-License-Identifier: MIT
19
+ // Copyright contributors to the kepler.gl project
20
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
21
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
+ var StyledAnnotationText = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n color: #fff;\n transition: border-color 0.2s;\n border: 2px solid transparent;\n padding: 4px 8px;\n white-space: pre-wrap;\n word-break: break-word;\n &:focus {\n outline: none;\n }\n ", "\n ", "\n .editor-inner {\n justify-content: ", ";\n }\n"])), function (props) {
24
+ return props.$isEditing ? "\n border-color: ".concat(props.$isSelected ? 'rgba(255,255,255,0.8)' : 'rgba(255,255,255,0.2)', ";\n &:hover {\n border-color: rgba(255,255,255,0.6);\n }\n cursor: move;\n pointer-events: all;\n ") : "\n pointer-events: none;\n a {\n pointer-events: all;\n cursor: pointer;\n }\n ";
25
+ }, function (props) {
26
+ return props.$isEditingText ? "\n .editor-inner {\n cursor: text;\n }\n " : '';
27
+ }, function (props) {
28
+ return props.$textVerticalAlign === 'top' ? 'flex-start' : props.$textVerticalAlign === 'middle' ? 'center' : 'flex-end';
29
+ });
30
+ var StyledToolbarWrapper = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n bottom: 100%;\n left: 0;\n background-color: rgba(30, 33, 40, 0.95);\n border-radius: 5px;\n width: max-content;\n padding: 2px 5px;\n margin-bottom: 4px;\n z-index: 1;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);\n"])));
31
+ var AnnotationText = function AnnotationText(_ref) {
32
+ var annotation = _ref.annotation,
33
+ viewport = _ref.viewport,
34
+ isEditing = _ref.isEditing,
35
+ isSelected = _ref.isSelected,
36
+ isEditingText = _ref.isEditingText,
37
+ onSelect = _ref.onSelect,
38
+ onChangeText = _ref.onChangeText,
39
+ onUpdateAnnotation = _ref.onUpdateAnnotation;
40
+ var _useDraggable = (0, _core.useDraggable)({
41
+ id: "".concat(annotation.id, ":MOVE_TEXT")
42
+ }),
43
+ attributes = _useDraggable.attributes,
44
+ listeners = _useDraggable.listeners,
45
+ setNodeRef = _useDraggable.setNodeRef;
46
+ var textWidth = annotation.textWidth,
47
+ textHeight = annotation.textHeight,
48
+ lineColor = annotation.lineColor,
49
+ lineWidth = annotation.lineWidth,
50
+ textVerticalAlign = annotation.textVerticalAlign,
51
+ autoSize = annotation.autoSize,
52
+ kind = annotation.kind;
53
+ var _makeMarker = (0, _annotationUtils.makeMarker)(annotation, viewport),
54
+ x = _makeMarker.x,
55
+ y = _makeMarker.y,
56
+ tx = _makeMarker.tx,
57
+ ty = _makeMarker.ty;
58
+ var isArm = 'armLength' in annotation;
59
+ var isLeft = isArm && (0, _annotationUtils.isLeftOriented)(annotation.angle);
60
+ var style = (0, _react.useMemo)(function () {
61
+ return _objectSpread(_objectSpread({}, autoSize ? {
62
+ minWidth: 80
63
+ } : {
64
+ width: textWidth || 120
65
+ }), {}, {
66
+ bottom: viewport.height - (y + ty),
67
+ borderBottom: kind !== _constants.AnnotationKind.TEXT ? "".concat(lineWidth, "px solid ").concat(lineColor) : undefined
68
+ }, kind === _constants.AnnotationKind.TEXT ? {
69
+ left: x + tx - (textWidth || 80) / 2
70
+ } : isLeft ? {
71
+ right: viewport.width - x - tx
72
+ } : {
73
+ left: x + tx
74
+ });
75
+ }, [autoSize, kind, textWidth, tx, ty, viewport.width, viewport.height, x, y, isLeft, lineWidth, lineColor]);
76
+ var handleEditorChange = (0, _react.useCallback)(function (change) {
77
+ onChangeText(change.text, change.editorState);
78
+ }, [onChangeText]);
79
+ (0, _react.useEffect)(function () {
80
+ if (!isEditingText || !isSelected || !isEditing) {
81
+ var _window$getSelection;
82
+ (_window$getSelection = window.getSelection()) === null || _window$getSelection === void 0 || _window$getSelection.removeAllRanges();
83
+ }
84
+ }, [isEditingText, isSelected, isEditing]);
85
+ return /*#__PURE__*/_react["default"].createElement(StyledAnnotationText, (0, _extends2["default"])({
86
+ ref: setNodeRef,
87
+ $isEditing: isEditing,
88
+ $isEditingText: isEditingText,
89
+ $isSelected: isSelected,
90
+ $textVerticalAlign: textVerticalAlign,
91
+ style: style
92
+ }, isEditing ? _objectSpread(_objectSpread(_objectSpread({}, attributes), listeners), {}, {
93
+ onPointerDown: function onPointerDown(evt) {
94
+ var _listeners$onPointerD2;
95
+ var target = evt.target;
96
+ if (target instanceof Element && target.closest('.lexical-toolbar')) {
97
+ return;
98
+ }
99
+ if (isEditingText) {
100
+ var _listeners$onPointerD;
101
+ if (target instanceof Element && target.closest('.editor-inner')) {
102
+ return;
103
+ }
104
+ listeners === null || listeners === void 0 || (_listeners$onPointerD = listeners.onPointerDown) === null || _listeners$onPointerD === void 0 || _listeners$onPointerD.call(listeners, evt);
105
+ return;
106
+ }
107
+ listeners === null || listeners === void 0 || (_listeners$onPointerD2 = listeners.onPointerDown) === null || _listeners$onPointerD2 === void 0 || _listeners$onPointerD2.call(listeners, evt);
108
+ if (!isSelected) {
109
+ onSelect(false);
110
+ }
111
+ }
112
+ }) : {}, {
113
+ onClick: function onClick(evt) {
114
+ if (!isEditing) return;
115
+ var target = evt.target;
116
+ if (target instanceof Element && target.closest('.lexical-toolbar')) {
117
+ return;
118
+ }
119
+ evt.stopPropagation();
120
+ if (!isEditingText) {
121
+ onSelect(true);
122
+ }
123
+ },
124
+ onDoubleClick: function onDoubleClick() {
125
+ if (!isEditing) {
126
+ onSelect(true);
127
+ }
128
+ }
129
+ }), /*#__PURE__*/_react["default"].createElement(_lexicalEditor.LexicalRichTextEditor, (0, _extends2["default"])({}, isEditingText && annotation.autoSize ? {} : {
130
+ width: textWidth || undefined
131
+ }, isEditingText && annotation.autoSizeY ? {} : {
132
+ height: textHeight || undefined
133
+ }, {
134
+ isEditable: isEditing && isEditingText,
135
+ editorState: annotation.editorState,
136
+ initialText: annotation.label,
137
+ onChange: handleEditorChange
138
+ }), isEditing && isSelected ? /*#__PURE__*/_react["default"].createElement(StyledToolbarWrapper, null, /*#__PURE__*/_react["default"].createElement(_lexicalEditor.LexicalToolbar, {
139
+ isEditingText: isEditingText,
140
+ textVerticalAlign: textVerticalAlign,
141
+ onChangeTextVerticalAlign: function onChangeTextVerticalAlign(value) {
142
+ onUpdateAnnotation({
143
+ textVerticalAlign: value
144
+ });
145
+ }
146
+ })) : null));
147
+ };
148
+ var _default = exports["default"] = AnnotationText;
149
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29yZSIsIl9jb25zdGFudHMiLCJfYW5ub3RhdGlvblV0aWxzIiwiX2xleGljYWxFZGl0b3IiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlN0eWxlZEFubm90YXRpb25UZXh0Iiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsIiRpc0VkaXRpbmciLCJjb25jYXQiLCIkaXNTZWxlY3RlZCIsIiRpc0VkaXRpbmdUZXh0IiwiJHRleHRWZXJ0aWNhbEFsaWduIiwiU3R5bGVkVG9vbGJhcldyYXBwZXIiLCJBbm5vdGF0aW9uVGV4dCIsIl9yZWYiLCJhbm5vdGF0aW9uIiwidmlld3BvcnQiLCJpc0VkaXRpbmciLCJpc1NlbGVjdGVkIiwiaXNFZGl0aW5nVGV4dCIsIm9uU2VsZWN0Iiwib25DaGFuZ2VUZXh0Iiwib25VcGRhdGVBbm5vdGF0aW9uIiwiX3VzZURyYWdnYWJsZSIsInVzZURyYWdnYWJsZSIsImlkIiwiYXR0cmlidXRlcyIsImxpc3RlbmVycyIsInNldE5vZGVSZWYiLCJ0ZXh0V2lkdGgiLCJ0ZXh0SGVpZ2h0IiwibGluZUNvbG9yIiwibGluZVdpZHRoIiwidGV4dFZlcnRpY2FsQWxpZ24iLCJhdXRvU2l6ZSIsImtpbmQiLCJfbWFrZU1hcmtlciIsIm1ha2VNYXJrZXIiLCJ4IiwieSIsInR4IiwidHkiLCJpc0FybSIsImlzTGVmdCIsImlzTGVmdE9yaWVudGVkIiwiYW5nbGUiLCJzdHlsZSIsInVzZU1lbW8iLCJtaW5XaWR0aCIsIndpZHRoIiwiYm90dG9tIiwiaGVpZ2h0IiwiYm9yZGVyQm90dG9tIiwiQW5ub3RhdGlvbktpbmQiLCJURVhUIiwidW5kZWZpbmVkIiwibGVmdCIsInJpZ2h0IiwiaGFuZGxlRWRpdG9yQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJjaGFuZ2UiLCJ0ZXh0IiwiZWRpdG9yU3RhdGUiLCJ1c2VFZmZlY3QiLCJfd2luZG93JGdldFNlbGVjdGlvbiIsIndpbmRvdyIsImdldFNlbGVjdGlvbiIsInJlbW92ZUFsbFJhbmdlcyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJyZWYiLCJvblBvaW50ZXJEb3duIiwiZXZ0IiwiX2xpc3RlbmVycyRvblBvaW50ZXJEMiIsInRhcmdldCIsIkVsZW1lbnQiLCJjbG9zZXN0IiwiX2xpc3RlbmVycyRvblBvaW50ZXJEIiwib25DbGljayIsInN0b3BQcm9wYWdhdGlvbiIsIm9uRG91YmxlQ2xpY2siLCJMZXhpY2FsUmljaFRleHRFZGl0b3IiLCJhdXRvU2l6ZVkiLCJpc0VkaXRhYmxlIiwiaW5pdGlhbFRleHQiLCJsYWJlbCIsIm9uQ2hhbmdlIiwiTGV4aWNhbFRvb2xiYXIiLCJvbkNoYW5nZVRleHRWZXJ0aWNhbEFsaWduIiwidmFsdWUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi10ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtGQywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3VzZURyYWdnYWJsZX0gZnJvbSAnQGRuZC1raXQvY29yZSc7XG5pbXBvcnQge0Fubm90YXRpb24sIEFubm90YXRpb25XaXRoQXJtfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7QW5ub3RhdGlvbktpbmR9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7bWFrZU1hcmtlciwgaXNMZWZ0T3JpZW50ZWQsIE1hcFZpZXdwb3J0fSBmcm9tICcuL2Fubm90YXRpb24tdXRpbHMnO1xuaW1wb3J0IHtMZXhpY2FsUmljaFRleHRFZGl0b3IsIExleGljYWxUb29sYmFyfSBmcm9tICcuL2xleGljYWwtZWRpdG9yJztcbmltcG9ydCB7U2VyaWFsaXplZEVkaXRvclN0YXRlfSBmcm9tICdsZXhpY2FsJztcblxudHlwZSBTdHlsZWRBbm5vdGF0aW9uVGV4dFByb3BzID0ge1xuICAkaXNFZGl0aW5nPzogYm9vbGVhbjtcbiAgJGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICAkaXNFZGl0aW5nVGV4dD86IGJvb2xlYW47XG4gICR0ZXh0VmVydGljYWxBbGlnbj86IHN0cmluZztcbn07XG5cbmNvbnN0IFN0eWxlZEFubm90YXRpb25UZXh0ID0gc3R5bGVkLmRpdjxTdHlsZWRBbm5vdGF0aW9uVGV4dFByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogI2ZmZjtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnM7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbiAgJHtwcm9wcyA9PlxuICAgIHByb3BzLiRpc0VkaXRpbmdcbiAgICAgID8gYFxuICAgICAgICBib3JkZXItY29sb3I6ICR7cHJvcHMuJGlzU2VsZWN0ZWQgPyAncmdiYSgyNTUsMjU1LDI1NSwwLjgpJyA6ICdyZ2JhKDI1NSwyNTUsMjU1LDAuMiknfTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7XG4gICAgICAgIH1cbiAgICAgICAgY3Vyc29yOiBtb3ZlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgYFxuICAgICAgOiBgXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBhIHtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgJHtwcm9wcyA9PlxuICAgIHByb3BzLiRpc0VkaXRpbmdUZXh0XG4gICAgICA/IGBcbiAgICAuZWRpdG9yLWlubmVyIHtcbiAgICAgIGN1cnNvcjogdGV4dDtcbiAgICB9XG4gIGBcbiAgICAgIDogJyd9XG4gIC5lZGl0b3ItaW5uZXIge1xuICAgIGp1c3RpZnktY29udGVudDogJHtwcm9wcyA9PlxuICAgICAgcHJvcHMuJHRleHRWZXJ0aWNhbEFsaWduID09PSAndG9wJ1xuICAgICAgICA/ICdmbGV4LXN0YXJ0J1xuICAgICAgICA6IHByb3BzLiR0ZXh0VmVydGljYWxBbGlnbiA9PT0gJ21pZGRsZSdcbiAgICAgICAgPyAnY2VudGVyJ1xuICAgICAgICA6ICdmbGV4LWVuZCd9O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRUb29sYmFyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMwLCAzMywgNDAsIDAuOTUpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgcGFkZGluZzogMnB4IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICB6LWluZGV4OiAxO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuYDtcblxuZXhwb3J0IHR5cGUgQW5ub3RhdGlvblRleHRQcm9wcyA9IHtcbiAgYW5ub3RhdGlvbjogQW5ub3RhdGlvbjtcbiAgdmlld3BvcnQ6IE1hcFZpZXdwb3J0O1xuICBpc0VkaXRpbmc6IGJvb2xlYW47XG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGlzRWRpdGluZ1RleHQ6IGJvb2xlYW47XG4gIG9uU2VsZWN0OiAoaXNFZGl0aW5nVGV4dDogYm9vbGVhbikgPT4gdm9pZDtcbiAgb25DaGFuZ2VUZXh0OiAodGV4dDogc3RyaW5nLCBlZGl0b3JTdGF0ZT86IFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZSkgPT4gdm9pZDtcbiAgb25VcGRhdGVBbm5vdGF0aW9uOiAoY29uZmlnOiBQYXJ0aWFsPEFubm90YXRpb24+KSA9PiB2b2lkO1xufTtcblxuY29uc3QgQW5ub3RhdGlvblRleHQ6IEZDPEFubm90YXRpb25UZXh0UHJvcHM+ID0gKHtcbiAgYW5ub3RhdGlvbixcbiAgdmlld3BvcnQsXG4gIGlzRWRpdGluZyxcbiAgaXNTZWxlY3RlZCxcbiAgaXNFZGl0aW5nVGV4dCxcbiAgb25TZWxlY3QsXG4gIG9uQ2hhbmdlVGV4dCxcbiAgb25VcGRhdGVBbm5vdGF0aW9uXG59KSA9PiB7XG4gIGNvbnN0IHthdHRyaWJ1dGVzLCBsaXN0ZW5lcnMsIHNldE5vZGVSZWZ9ID0gdXNlRHJhZ2dhYmxlKHtcbiAgICBpZDogYCR7YW5ub3RhdGlvbi5pZH06TU9WRV9URVhUYFxuICB9KTtcblxuICBjb25zdCB7dGV4dFdpZHRoLCB0ZXh0SGVpZ2h0LCBsaW5lQ29sb3IsIGxpbmVXaWR0aCwgdGV4dFZlcnRpY2FsQWxpZ24sIGF1dG9TaXplLCBraW5kfSA9XG4gICAgYW5ub3RhdGlvbjtcbiAgY29uc3Qge3gsIHksIHR4LCB0eX0gPSBtYWtlTWFya2VyKGFubm90YXRpb24sIHZpZXdwb3J0KTtcblxuICBjb25zdCBpc0FybSA9ICdhcm1MZW5ndGgnIGluIGFubm90YXRpb247XG4gIGNvbnN0IGlzTGVmdCA9IGlzQXJtICYmIGlzTGVmdE9yaWVudGVkKChhbm5vdGF0aW9uIGFzIEFubm90YXRpb25XaXRoQXJtKS5hbmdsZSk7XG5cbiAgY29uc3Qgc3R5bGUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICAuLi4oYXV0b1NpemUgPyB7bWluV2lkdGg6IDgwfSA6IHt3aWR0aDogdGV4dFdpZHRoIHx8IDEyMH0pLFxuICAgICAgYm90dG9tOiB2aWV3cG9ydC5oZWlnaHQgLSAoeSArIHR5KSxcbiAgICAgIGJvcmRlckJvdHRvbTpcbiAgICAgICAga2luZCAhPT0gQW5ub3RhdGlvbktpbmQuVEVYVCA/IGAke2xpbmVXaWR0aH1weCBzb2xpZCAke2xpbmVDb2xvcn1gIDogdW5kZWZpbmVkLFxuICAgICAgLi4uKGtpbmQgPT09IEFubm90YXRpb25LaW5kLlRFWFRcbiAgICAgICAgPyB7bGVmdDogeCArIHR4IC0gKHRleHRXaWR0aCB8fCA4MCkgLyAyfVxuICAgICAgICA6IGlzTGVmdFxuICAgICAgICA/IHtyaWdodDogdmlld3BvcnQud2lkdGggLSB4IC0gdHh9XG4gICAgICAgIDoge2xlZnQ6IHggKyB0eH0pXG4gICAgfSksXG4gICAgW2F1dG9TaXplLCBraW5kLCB0ZXh0V2lkdGgsIHR4LCB0eSwgdmlld3BvcnQud2lkdGgsIHZpZXdwb3J0LmhlaWdodCwgeCwgeSwgaXNMZWZ0LCBsaW5lV2lkdGgsIGxpbmVDb2xvcl1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVFZGl0b3JDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoY2hhbmdlOiB7dGV4dDogc3RyaW5nOyBlZGl0b3JTdGF0ZTogU2VyaWFsaXplZEVkaXRvclN0YXRlfSkgPT4ge1xuICAgICAgb25DaGFuZ2VUZXh0KGNoYW5nZS50ZXh0LCBjaGFuZ2UuZWRpdG9yU3RhdGUpO1xuICAgIH0sXG4gICAgW29uQ2hhbmdlVGV4dF1cbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNFZGl0aW5nVGV4dCB8fCAhaXNTZWxlY3RlZCB8fCAhaXNFZGl0aW5nKSB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIH1cbiAgfSwgW2lzRWRpdGluZ1RleHQsIGlzU2VsZWN0ZWQsIGlzRWRpdGluZ10pO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZEFubm90YXRpb25UZXh0XG4gICAgICByZWY9e3NldE5vZGVSZWZ9XG4gICAgICAkaXNFZGl0aW5nPXtpc0VkaXRpbmd9XG4gICAgICAkaXNFZGl0aW5nVGV4dD17aXNFZGl0aW5nVGV4dH1cbiAgICAgICRpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgJHRleHRWZXJ0aWNhbEFsaWduPXt0ZXh0VmVydGljYWxBbGlnbn1cbiAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgIHsuLi4oaXNFZGl0aW5nXG4gICAgICAgID8ge1xuICAgICAgICAgICAgLi4uYXR0cmlidXRlcyxcbiAgICAgICAgICAgIC4uLmxpc3RlbmVycyxcbiAgICAgICAgICAgIG9uUG9pbnRlckRvd246IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7dGFyZ2V0fSA9IGV2dDtcbiAgICAgICAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgdGFyZ2V0LmNsb3Nlc3QoJy5sZXhpY2FsLXRvb2xiYXInKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoaXNFZGl0aW5nVGV4dCkge1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50ICYmIHRhcmdldC5jbG9zZXN0KCcuZWRpdG9yLWlubmVyJykpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGlzdGVuZXJzPy5vblBvaW50ZXJEb3duPy4oZXZ0IGFzIGFueSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGxpc3RlbmVycz8ub25Qb2ludGVyRG93bj8uKGV2dCBhcyBhbnkpO1xuICAgICAgICAgICAgICBpZiAoIWlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBvblNlbGVjdChmYWxzZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDoge30pfVxuICAgICAgb25DbGljaz17ZXZ0ID0+IHtcbiAgICAgICAgaWYgKCFpc0VkaXRpbmcpIHJldHVybjtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDtcbiAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgdGFyZ2V0LmNsb3Nlc3QoJy5sZXhpY2FsLXRvb2xiYXInKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICghaXNFZGl0aW5nVGV4dCkge1xuICAgICAgICAgIG9uU2VsZWN0KHRydWUpO1xuICAgICAgICB9XG4gICAgICB9fVxuICAgICAgb25Eb3VibGVDbGljaz17KCkgPT4ge1xuICAgICAgICBpZiAoIWlzRWRpdGluZykge1xuICAgICAgICAgIG9uU2VsZWN0KHRydWUpO1xuICAgICAgICB9XG4gICAgICB9fVxuICAgID5cbiAgICAgIDxMZXhpY2FsUmljaFRleHRFZGl0b3JcbiAgICAgICAgey4uLihpc0VkaXRpbmdUZXh0ICYmIGFubm90YXRpb24uYXV0b1NpemUgPyB7fSA6IHt3aWR0aDogdGV4dFdpZHRoIHx8IHVuZGVmaW5lZH0pfVxuICAgICAgICB7Li4uKGlzRWRpdGluZ1RleHQgJiYgYW5ub3RhdGlvbi5hdXRvU2l6ZVkgPyB7fSA6IHtoZWlnaHQ6IHRleHRIZWlnaHQgfHwgdW5kZWZpbmVkfSl9XG4gICAgICAgIGlzRWRpdGFibGU9e2lzRWRpdGluZyAmJiBpc0VkaXRpbmdUZXh0fVxuICAgICAgICBlZGl0b3JTdGF0ZT17YW5ub3RhdGlvbi5lZGl0b3JTdGF0ZSBhcyBTZXJpYWxpemVkRWRpdG9yU3RhdGUgfCB1bmRlZmluZWR9XG4gICAgICAgIGluaXRpYWxUZXh0PXthbm5vdGF0aW9uLmxhYmVsfVxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlRWRpdG9yQ2hhbmdlfVxuICAgICAgPlxuICAgICAgICB7aXNFZGl0aW5nICYmIGlzU2VsZWN0ZWQgPyAoXG4gICAgICAgICAgPFN0eWxlZFRvb2xiYXJXcmFwcGVyPlxuICAgICAgICAgICAgPExleGljYWxUb29sYmFyXG4gICAgICAgICAgICAgIGlzRWRpdGluZ1RleHQ9e2lzRWRpdGluZ1RleHR9XG4gICAgICAgICAgICAgIHRleHRWZXJ0aWNhbEFsaWduPXt0ZXh0VmVydGljYWxBbGlnbn1cbiAgICAgICAgICAgICAgb25DaGFuZ2VUZXh0VmVydGljYWxBbGlnbj17dmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIG9uVXBkYXRlQW5ub3RhdGlvbih7dGV4dFZlcnRpY2FsQWxpZ246IHZhbHVlfSk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3R5bGVkVG9vbGJhcldyYXBwZXI+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9MZXhpY2FsUmljaFRleHRFZGl0b3I+XG4gICAgPC9TdHlsZWRBbm5vdGF0aW9uVGV4dD5cbiAgKTtcbn07XG5cbmV4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
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isLeftOriented = isLeftOriented;
8
+ exports.isPointVisibleOnGlobe = isPointVisibleOnGlobe;
9
+ exports.makeMarker = makeMarker;
10
+ exports.movePoint = movePoint;
11
+ exports.moveText = moveText;
12
+ exports.resizeCircle = resizeCircle;
13
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
14
+ var _webMercator = require("@math.gl/web-mercator");
15
+ var _constants = require("@kepler.gl/constants");
16
+ // SPDX-License-Identifier: MIT
17
+ // Copyright contributors to the kepler.gl project
18
+
19
+ function degreesToRadians(degree) {
20
+ return degree * (Math.PI / 180);
21
+ }
22
+ function calcRadius(viewport, point, radiusInMeters) {
23
+ var _viewport$project = viewport.project(point),
24
+ _viewport$project2 = (0, _slicedToArray2["default"])(_viewport$project, 2),
25
+ x = _viewport$project2[0],
26
+ y = _viewport$project2[1];
27
+ var shifted = (0, _webMercator.addMetersToLngLat)(point, [radiusInMeters, 0, 0]);
28
+ var _viewport$project3 = viewport.project(shifted),
29
+ _viewport$project4 = (0, _slicedToArray2["default"])(_viewport$project3, 2),
30
+ x1 = _viewport$project4[0],
31
+ y1 = _viewport$project4[1];
32
+ var dx = x1 - x;
33
+ var dy = y1 - y;
34
+ return Math.sqrt(dx * dx + dy * dy);
35
+ }
36
+ function makeMarker(annotation, viewport) {
37
+ var kind = annotation.kind,
38
+ anchorPoint = annotation.anchorPoint;
39
+ var angle = (0, _constants.isAnnotationWithArm)(annotation) ? degreesToRadians(annotation.angle) : 0;
40
+ var _viewport$project5 = viewport.project(anchorPoint),
41
+ _viewport$project6 = (0, _slicedToArray2["default"])(_viewport$project5, 2),
42
+ x = _viewport$project6[0],
43
+ y = _viewport$project6[1];
44
+ switch (kind) {
45
+ case _constants.AnnotationKind.CIRCLE:
46
+ {
47
+ var armLength = annotation.armLength,
48
+ radiusInMeters = annotation.radiusInMeters;
49
+ var r = calcRadius(viewport, anchorPoint, radiusInMeters);
50
+ var ax = Math.cos(angle) * r,
51
+ ay = Math.sin(angle) * r;
52
+ var tx = Math.cos(angle) * (r + armLength),
53
+ ty = Math.sin(angle) * (r + armLength);
54
+ return {
55
+ kind: kind,
56
+ x: x,
57
+ y: y,
58
+ ax: ax,
59
+ ay: ay,
60
+ tx: tx,
61
+ ty: ty,
62
+ r: r
63
+ };
64
+ }
65
+ case _constants.AnnotationKind.ARROW:
66
+ case _constants.AnnotationKind.POINT:
67
+ {
68
+ var _armLength = annotation.armLength;
69
+ var _tx = Math.cos(angle) * _armLength,
70
+ _ty = Math.sin(angle) * _armLength;
71
+ return {
72
+ kind: kind,
73
+ x: x,
74
+ y: y,
75
+ tx: _tx,
76
+ ty: _ty
77
+ };
78
+ }
79
+ case _constants.AnnotationKind.TEXT:
80
+ default:
81
+ return {
82
+ kind: kind,
83
+ x: x,
84
+ y: y,
85
+ tx: 0,
86
+ ty: 0
87
+ };
88
+ }
89
+ }
90
+ function isLeftOriented(angle) {
91
+ return angle > 90 || angle < -90;
92
+ }
93
+
94
+ /** Great-circle angular distance between two lng/lat points, in degrees. */
95
+ function angularDistanceDeg(a, b) {
96
+ var toRad = Math.PI / 180;
97
+ var phi1 = a[1] * toRad;
98
+ var phi2 = b[1] * toRad;
99
+ var dLambda = (b[0] - a[0]) * toRad;
100
+ var cosD = Math.sin(phi1) * Math.sin(phi2) + Math.cos(phi1) * Math.cos(phi2) * Math.cos(dLambda);
101
+ return Math.acos(Math.min(1, Math.max(-1, cosD))) / toRad;
102
+ }
103
+
104
+ // Round-trip tolerance in degrees. Front-facing points round-trip back to
105
+ // themselves within numerical error; occluded points resolve to a different
106
+ // (front) surface point that is several degrees away.
107
+ var GLOBE_VISIBILITY_TOLERANCE_DEG = 0.5;
108
+
109
+ /**
110
+ * Geometric occlusion test for a point on the globe.
111
+ *
112
+ * In globe mode `viewport.project()` still returns valid screen coordinates for
113
+ * points on the far (back) side of the planet, so DOM overlays like annotations
114
+ * keep rendering "through" the opaque globe. Rather than approximate with a
115
+ * lng/lat box, we project the point to screen space and unproject it back:
116
+ * deck's `GlobeViewport.unproject` returns the *nearest* (front-facing) point on
117
+ * the sphere along that ray. If the point comes back to (approximately) itself
118
+ * it is on the visible hemisphere; otherwise the ray hit the front of the globe
119
+ * first and the point is occluded. This uses the real projection math, so it
120
+ * follows the true horizon and adapts to zoom/altitude automatically.
121
+ */
122
+ function isPointVisibleOnGlobe(point, viewport) {
123
+ var projected = viewport.project(point);
124
+ if (!projected || !Number.isFinite(projected[0]) || !Number.isFinite(projected[1])) {
125
+ return false;
126
+ }
127
+ var roundTrip = viewport.unproject([projected[0], projected[1]]);
128
+ if (!roundTrip || !Number.isFinite(roundTrip[0]) || !Number.isFinite(roundTrip[1])) {
129
+ return false;
130
+ }
131
+ return angularDistanceDeg(point, [roundTrip[0], roundTrip[1]]) < GLOBE_VISIBILITY_TOLERANCE_DEG;
132
+ }
133
+ function movePoint(annotation, delta, viewport) {
134
+ var anchorPoint = annotation.anchorPoint;
135
+ var _viewport$project7 = viewport.project(anchorPoint),
136
+ _viewport$project8 = (0, _slicedToArray2["default"])(_viewport$project7, 2),
137
+ px = _viewport$project8[0],
138
+ py = _viewport$project8[1];
139
+ var _viewport$unproject = viewport.unproject([px + delta.x, py + delta.y]),
140
+ _viewport$unproject2 = (0, _slicedToArray2["default"])(_viewport$unproject, 2),
141
+ lon = _viewport$unproject2[0],
142
+ lat = _viewport$unproject2[1];
143
+ return {
144
+ anchorPoint: [lon, lat]
145
+ };
146
+ }
147
+ function moveText(annotation, delta, viewport) {
148
+ var marker = makeMarker(annotation, viewport);
149
+ var kind = marker.kind,
150
+ tx = marker.tx,
151
+ ty = marker.ty;
152
+ if (kind === _constants.AnnotationKind.TEXT) {
153
+ return movePoint(annotation, delta, viewport);
154
+ }
155
+ if (!(0, _constants.isAnnotationWithArm)(annotation)) {
156
+ return {};
157
+ }
158
+ var tx1 = tx + delta.x,
159
+ ty1 = ty + delta.y;
160
+ var nextAngle = radiansToDegrees(Math.atan2(ty1, tx1));
161
+ var nextArm;
162
+ switch (kind) {
163
+ case _constants.AnnotationKind.ARROW:
164
+ case _constants.AnnotationKind.POINT:
165
+ nextArm = Math.sqrt(tx1 * tx1 + ty1 * ty1);
166
+ break;
167
+ case _constants.AnnotationKind.CIRCLE:
168
+ nextArm = Math.sqrt(tx1 * tx1 + ty1 * ty1) - marker.r;
169
+ break;
170
+ default:
171
+ nextArm = annotation.armLength;
172
+ }
173
+ return {
174
+ angle: nextAngle,
175
+ armLength: nextArm
176
+ };
177
+ }
178
+ function resizeCircle(annotation, delta, viewport) {
179
+ if (annotation.kind !== _constants.AnnotationKind.CIRCLE) return {};
180
+ var anchorPoint = annotation.anchorPoint,
181
+ radiusInMeters = annotation.radiusInMeters;
182
+ var shifted = (0, _webMercator.addMetersToLngLat)(anchorPoint, [radiusInMeters, 0, 0]);
183
+ var _viewport$project9 = viewport.project(shifted),
184
+ _viewport$project0 = (0, _slicedToArray2["default"])(_viewport$project9, 1),
185
+ x = _viewport$project0[0];
186
+ var newPoint = viewport.unproject([x + delta.x, viewport.project(anchorPoint)[1]]);
187
+ var dx = newPoint[0] - anchorPoint[0];
188
+ var currentRadius = shifted[0] - anchorPoint[0];
189
+ var ratio = currentRadius !== 0 ? (currentRadius + dx) / currentRadius : 1;
190
+ return {
191
+ radiusInMeters: Math.max(0, radiusInMeters * ratio)
192
+ };
193
+ }
194
+ function radiansToDegrees(radians) {
195
+ return radians * (180 / Math.PI);
196
+ }
197
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2ViTWVyY2F0b3IiLCJyZXF1aXJlIiwiX2NvbnN0YW50cyIsImRlZ3JlZXNUb1JhZGlhbnMiLCJkZWdyZWUiLCJNYXRoIiwiUEkiLCJjYWxjUmFkaXVzIiwidmlld3BvcnQiLCJwb2ludCIsInJhZGl1c0luTWV0ZXJzIiwiX3ZpZXdwb3J0JHByb2plY3QiLCJwcm9qZWN0IiwiX3ZpZXdwb3J0JHByb2plY3QyIiwiX3NsaWNlZFRvQXJyYXkyIiwieCIsInkiLCJzaGlmdGVkIiwiYWRkTWV0ZXJzVG9MbmdMYXQiLCJfdmlld3BvcnQkcHJvamVjdDMiLCJfdmlld3BvcnQkcHJvamVjdDQiLCJ4MSIsInkxIiwiZHgiLCJkeSIsInNxcnQiLCJtYWtlTWFya2VyIiwiYW5ub3RhdGlvbiIsImtpbmQiLCJhbmNob3JQb2ludCIsImFuZ2xlIiwiaXNBbm5vdGF0aW9uV2l0aEFybSIsIl92aWV3cG9ydCRwcm9qZWN0NSIsIl92aWV3cG9ydCRwcm9qZWN0NiIsIkFubm90YXRpb25LaW5kIiwiQ0lSQ0xFIiwiYXJtTGVuZ3RoIiwiciIsImF4IiwiY29zIiwiYXkiLCJzaW4iLCJ0eCIsInR5IiwiQVJST1ciLCJQT0lOVCIsIlRFWFQiLCJpc0xlZnRPcmllbnRlZCIsImFuZ3VsYXJEaXN0YW5jZURlZyIsImEiLCJiIiwidG9SYWQiLCJwaGkxIiwicGhpMiIsImRMYW1iZGEiLCJjb3NEIiwiYWNvcyIsIm1pbiIsIm1heCIsIkdMT0JFX1ZJU0lCSUxJVFlfVE9MRVJBTkNFX0RFRyIsImlzUG9pbnRWaXNpYmxlT25HbG9iZSIsInByb2plY3RlZCIsIk51bWJlciIsImlzRmluaXRlIiwicm91bmRUcmlwIiwidW5wcm9qZWN0IiwibW92ZVBvaW50IiwiZGVsdGEiLCJfdmlld3BvcnQkcHJvamVjdDciLCJfdmlld3BvcnQkcHJvamVjdDgiLCJweCIsInB5IiwiX3ZpZXdwb3J0JHVucHJvamVjdCIsIl92aWV3cG9ydCR1bnByb2plY3QyIiwibG9uIiwibGF0IiwibW92ZVRleHQiLCJtYXJrZXIiLCJ0eDEiLCJ0eTEiLCJuZXh0QW5nbGUiLCJyYWRpYW5zVG9EZWdyZWVzIiwiYXRhbjIiLCJuZXh0QXJtIiwicmVzaXplQ2lyY2xlIiwiX3ZpZXdwb3J0JHByb2plY3Q5IiwiX3ZpZXdwb3J0JHByb2plY3QwIiwibmV3UG9pbnQiLCJjdXJyZW50UmFkaXVzIiwicmF0aW8iLCJyYWRpYW5zIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Fubm90YXRpb25zL2Fubm90YXRpb24tdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHthZGRNZXRlcnNUb0xuZ0xhdH0gZnJvbSAnQG1hdGguZ2wvd2ViLW1lcmNhdG9yJztcbmltcG9ydCB7QW5ub3RhdGlvbiwgQW5ub3RhdGlvbldpdGhBcm19IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtBbm5vdGF0aW9uS2luZCwgaXNBbm5vdGF0aW9uV2l0aEFybX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5leHBvcnQgdHlwZSBNYXBWaWV3cG9ydCA9IHtcbiAgcHJvamVjdDogKGxuZ0xhdDogW251bWJlciwgbnVtYmVyXSkgPT4gW251bWJlciwgbnVtYmVyXTtcbiAgdW5wcm9qZWN0OiAoeHk6IFtudW1iZXIsIG51bWJlcl0pID0+IFtudW1iZXIsIG51bWJlcl07XG4gIGxvbmdpdHVkZTogbnVtYmVyO1xuICBsYXRpdHVkZTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgem9vbTogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQmFzZUFubm90YXRpb25NYXJrZXIgPSB7XG4gIGtpbmQ6IEFubm90YXRpb25LaW5kO1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgdHg6IG51bWJlcjtcbiAgdHk6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIENpcmNsZUFubm90YXRpb25NYXJrZXIgPSBCYXNlQW5ub3RhdGlvbk1hcmtlciAmIHtcbiAga2luZDogQW5ub3RhdGlvbktpbmQuQ0lSQ0xFO1xuICBheDogbnVtYmVyO1xuICBheTogbnVtYmVyO1xuICByOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBBbm5vdGF0aW9uTWFya2VyID0gQmFzZUFubm90YXRpb25NYXJrZXIgfCBDaXJjbGVBbm5vdGF0aW9uTWFya2VyO1xuXG5mdW5jdGlvbiBkZWdyZWVzVG9SYWRpYW5zKGRlZ3JlZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIGRlZ3JlZSAqIChNYXRoLlBJIC8gMTgwKTtcbn1cblxuZnVuY3Rpb24gY2FsY1JhZGl1cyhcbiAgdmlld3BvcnQ6IE1hcFZpZXdwb3J0LFxuICBwb2ludDogW251bWJlciwgbnVtYmVyXSxcbiAgcmFkaXVzSW5NZXRlcnM6IG51bWJlclxuKTogbnVtYmVyIHtcbiAgY29uc3QgW3gsIHldID0gdmlld3BvcnQucHJvamVjdChwb2ludCk7XG4gIGNvbnN0IHNoaWZ0ZWQgPSBhZGRNZXRlcnNUb0xuZ0xhdChwb2ludCwgW3JhZGl1c0luTWV0ZXJzLCAwLCAwXSkgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgY29uc3QgW3gxLCB5MV0gPSB2aWV3cG9ydC5wcm9qZWN0KHNoaWZ0ZWQpO1xuICBjb25zdCBkeCA9IHgxIC0geDtcbiAgY29uc3QgZHkgPSB5MSAtIHk7XG4gIHJldHVybiBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZU1hcmtlcihhbm5vdGF0aW9uOiBBbm5vdGF0aW9uLCB2aWV3cG9ydDogTWFwVmlld3BvcnQpOiBBbm5vdGF0aW9uTWFya2VyIHtcbiAgY29uc3Qge2tpbmQsIGFuY2hvclBvaW50fSA9IGFubm90YXRpb247XG4gIGNvbnN0IGFuZ2xlID0gaXNBbm5vdGF0aW9uV2l0aEFybShhbm5vdGF0aW9uKSA/IGRlZ3JlZXNUb1JhZGlhbnMoYW5ub3RhdGlvbi5hbmdsZSkgOiAwO1xuICBjb25zdCBbeCwgeV0gPSB2aWV3cG9ydC5wcm9qZWN0KGFuY2hvclBvaW50KTtcblxuICBzd2l0Y2ggKGtpbmQpIHtcbiAgICBjYXNlIEFubm90YXRpb25LaW5kLkNJUkNMRToge1xuICAgICAgY29uc3Qge2FybUxlbmd0aCwgcmFkaXVzSW5NZXRlcnN9ID0gYW5ub3RhdGlvbjtcbiAgICAgIGNvbnN0IHIgPSBjYWxjUmFkaXVzKHZpZXdwb3J0LCBhbmNob3JQb2ludCwgcmFkaXVzSW5NZXRlcnMpO1xuICAgICAgY29uc3QgW2F4LCBheV0gPSBbTWF0aC5jb3MoYW5nbGUpICogciwgTWF0aC5zaW4oYW5nbGUpICogcl07XG4gICAgICBjb25zdCBbdHgsIHR5XSA9IFtNYXRoLmNvcyhhbmdsZSkgKiAociArIGFybUxlbmd0aCksIE1hdGguc2luKGFuZ2xlKSAqIChyICsgYXJtTGVuZ3RoKV07XG4gICAgICByZXR1cm4ge2tpbmQsIHgsIHksIGF4LCBheSwgdHgsIHR5LCByfSBhcyBDaXJjbGVBbm5vdGF0aW9uTWFya2VyO1xuICAgIH1cbiAgICBjYXNlIEFubm90YXRpb25LaW5kLkFSUk9XOlxuICAgIGNhc2UgQW5ub3RhdGlvbktpbmQuUE9JTlQ6IHtcbiAgICAgIGNvbnN0IHthcm1MZW5ndGh9ID0gYW5ub3RhdGlvbjtcbiAgICAgIGNvbnN0IFt0eCwgdHldID0gW01hdGguY29zKGFuZ2xlKSAqIGFybUxlbmd0aCwgTWF0aC5zaW4oYW5nbGUpICogYXJtTGVuZ3RoXTtcbiAgICAgIHJldHVybiB7a2luZCwgeCwgeSwgdHgsIHR5fTtcbiAgICB9XG4gICAgY2FzZSBBbm5vdGF0aW9uS2luZC5URVhUOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge2tpbmQsIHgsIHksIHR4OiAwLCB0eTogMH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTGVmdE9yaWVudGVkKGFuZ2xlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuIGFuZ2xlID4gOTAgfHwgYW5nbGUgPCAtOTA7XG59XG5cbi8qKiBHcmVhdC1jaXJjbGUgYW5ndWxhciBkaXN0YW5jZSBiZXR3ZWVuIHR3byBsbmcvbGF0IHBvaW50cywgaW4gZGVncmVlcy4gKi9cbmZ1bmN0aW9uIGFuZ3VsYXJEaXN0YW5jZURlZyhhOiBbbnVtYmVyLCBudW1iZXJdLCBiOiBbbnVtYmVyLCBudW1iZXJdKTogbnVtYmVyIHtcbiAgY29uc3QgdG9SYWQgPSBNYXRoLlBJIC8gMTgwO1xuICBjb25zdCBwaGkxID0gYVsxXSAqIHRvUmFkO1xuICBjb25zdCBwaGkyID0gYlsxXSAqIHRvUmFkO1xuICBjb25zdCBkTGFtYmRhID0gKGJbMF0gLSBhWzBdKSAqIHRvUmFkO1xuICBjb25zdCBjb3NEID1cbiAgICBNYXRoLnNpbihwaGkxKSAqIE1hdGguc2luKHBoaTIpICsgTWF0aC5jb3MocGhpMSkgKiBNYXRoLmNvcyhwaGkyKSAqIE1hdGguY29zKGRMYW1iZGEpO1xuICByZXR1cm4gTWF0aC5hY29zKE1hdGgubWluKDEsIE1hdGgubWF4KC0xLCBjb3NEKSkpIC8gdG9SYWQ7XG59XG5cbi8vIFJvdW5kLXRyaXAgdG9sZXJhbmNlIGluIGRlZ3JlZXMuIEZyb250LWZhY2luZyBwb2ludHMgcm91bmQtdHJpcCBiYWNrIHRvXG4vLyB0aGVtc2VsdmVzIHdpdGhpbiBudW1lcmljYWwgZXJyb3I7IG9jY2x1ZGVkIHBvaW50cyByZXNvbHZlIHRvIGEgZGlmZmVyZW50XG4vLyAoZnJvbnQpIHN1cmZhY2UgcG9pbnQgdGhhdCBpcyBzZXZlcmFsIGRlZ3JlZXMgYXdheS5cbmNvbnN0IEdMT0JFX1ZJU0lCSUxJVFlfVE9MRVJBTkNFX0RFRyA9IDAuNTtcblxuLyoqXG4gKiBHZW9tZXRyaWMgb2NjbHVzaW9uIHRlc3QgZm9yIGEgcG9pbnQgb24gdGhlIGdsb2JlLlxuICpcbiAqIEluIGdsb2JlIG1vZGUgYHZpZXdwb3J0LnByb2plY3QoKWAgc3RpbGwgcmV0dXJucyB2YWxpZCBzY3JlZW4gY29vcmRpbmF0ZXMgZm9yXG4gKiBwb2ludHMgb24gdGhlIGZhciAoYmFjaykgc2lkZSBvZiB0aGUgcGxhbmV0LCBzbyBET00gb3ZlcmxheXMgbGlrZSBhbm5vdGF0aW9uc1xuICoga2VlcCByZW5kZXJpbmcgXCJ0aHJvdWdoXCIgdGhlIG9wYXF1ZSBnbG9iZS4gUmF0aGVyIHRoYW4gYXBwcm94aW1hdGUgd2l0aCBhXG4gKiBsbmcvbGF0IGJveCwgd2UgcHJvamVjdCB0aGUgcG9pbnQgdG8gc2NyZWVuIHNwYWNlIGFuZCB1bnByb2plY3QgaXQgYmFjazpcbiAqIGRlY2sncyBgR2xvYmVWaWV3cG9ydC51bnByb2plY3RgIHJldHVybnMgdGhlICpuZWFyZXN0KiAoZnJvbnQtZmFjaW5nKSBwb2ludCBvblxuICogdGhlIHNwaGVyZSBhbG9uZyB0aGF0IHJheS4gSWYgdGhlIHBvaW50IGNvbWVzIGJhY2sgdG8gKGFwcHJveGltYXRlbHkpIGl0c2VsZlxuICogaXQgaXMgb24gdGhlIHZpc2libGUgaGVtaXNwaGVyZTsgb3RoZXJ3aXNlIHRoZSByYXkgaGl0IHRoZSBmcm9udCBvZiB0aGUgZ2xvYmVcbiAqIGZpcnN0IGFuZCB0aGUgcG9pbnQgaXMgb2NjbHVkZWQuIFRoaXMgdXNlcyB0aGUgcmVhbCBwcm9qZWN0aW9uIG1hdGgsIHNvIGl0XG4gKiBmb2xsb3dzIHRoZSB0cnVlIGhvcml6b24gYW5kIGFkYXB0cyB0byB6b29tL2FsdGl0dWRlIGF1dG9tYXRpY2FsbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BvaW50VmlzaWJsZU9uR2xvYmUocG9pbnQ6IFtudW1iZXIsIG51bWJlcl0sIHZpZXdwb3J0OiBNYXBWaWV3cG9ydCk6IGJvb2xlYW4ge1xuICBjb25zdCBwcm9qZWN0ZWQgPSB2aWV3cG9ydC5wcm9qZWN0KHBvaW50KTtcbiAgaWYgKCFwcm9qZWN0ZWQgfHwgIU51bWJlci5pc0Zpbml0ZShwcm9qZWN0ZWRbMF0pIHx8ICFOdW1iZXIuaXNGaW5pdGUocHJvamVjdGVkWzFdKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCByb3VuZFRyaXAgPSB2aWV3cG9ydC51bnByb2plY3QoW3Byb2plY3RlZFswXSwgcHJvamVjdGVkWzFdXSk7XG4gIGlmICghcm91bmRUcmlwIHx8ICFOdW1iZXIuaXNGaW5pdGUocm91bmRUcmlwWzBdKSB8fCAhTnVtYmVyLmlzRmluaXRlKHJvdW5kVHJpcFsxXSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGFuZ3VsYXJEaXN0YW5jZURlZyhwb2ludCwgW3JvdW5kVHJpcFswXSwgcm91bmRUcmlwWzFdXSkgPCBHTE9CRV9WSVNJQklMSVRZX1RPTEVSQU5DRV9ERUc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlUG9pbnQoXG4gIGFubm90YXRpb246IEFubm90YXRpb24sXG4gIGRlbHRhOiB7eDogbnVtYmVyOyB5OiBudW1iZXJ9LFxuICB2aWV3cG9ydDogTWFwVmlld3BvcnRcbik6IFBhcnRpYWw8QW5ub3RhdGlvbj4ge1xuICBjb25zdCB7YW5jaG9yUG9pbnR9ID0gYW5ub3RhdGlvbjtcbiAgY29uc3QgW3B4LCBweV0gPSB2aWV3cG9ydC5wcm9qZWN0KGFuY2hvclBvaW50KTtcbiAgY29uc3QgW2xvbiwgbGF0XSA9IHZpZXdwb3J0LnVucHJvamVjdChbcHggKyBkZWx0YS54LCBweSArIGRlbHRhLnldKTtcbiAgcmV0dXJuIHthbmNob3JQb2ludDogW2xvbiwgbGF0XX07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlVGV4dChcbiAgYW5ub3RhdGlvbjogQW5ub3RhdGlvbixcbiAgZGVsdGE6IHt4OiBudW1iZXI7IHk6IG51bWJlcn0sXG4gIHZpZXdwb3J0OiBNYXBWaWV3cG9ydFxuKTogUGFydGlhbDxBbm5vdGF0aW9uPiB7XG4gIGNvbnN0IG1hcmtlciA9IG1ha2VNYXJrZXIoYW5ub3RhdGlvbiwgdmlld3BvcnQpO1xuICBjb25zdCB7a2luZCwgdHgsIHR5fSA9IG1hcmtlcjtcblxuICBpZiAoa2luZCA9PT0gQW5ub3RhdGlvbktpbmQuVEVYVCkge1xuICAgIHJldHVybiBtb3ZlUG9pbnQoYW5ub3RhdGlvbiwgZGVsdGEsIHZpZXdwb3J0KTtcbiAgfVxuICBpZiAoIWlzQW5ub3RhdGlvbldpdGhBcm0oYW5ub3RhdGlvbikpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCBbdHgxLCB0eTFdID0gW3R4ICsgZGVsdGEueCwgdHkgKyBkZWx0YS55XTtcbiAgY29uc3QgbmV4dEFuZ2xlID0gcmFkaWFuc1RvRGVncmVlcyhNYXRoLmF0YW4yKHR5MSwgdHgxKSk7XG4gIGxldCBuZXh0QXJtOiBudW1iZXI7XG5cbiAgc3dpdGNoIChraW5kKSB7XG4gICAgY2FzZSBBbm5vdGF0aW9uS2luZC5BUlJPVzpcbiAgICBjYXNlIEFubm90YXRpb25LaW5kLlBPSU5UOlxuICAgICAgbmV4dEFybSA9IE1hdGguc3FydCh0eDEgKiB0eDEgKyB0eTEgKiB0eTEpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBbm5vdGF0aW9uS2luZC5DSVJDTEU6XG4gICAgICBuZXh0QXJtID0gTWF0aC5zcXJ0KHR4MSAqIHR4MSArIHR5MSAqIHR5MSkgLSAobWFya2VyIGFzIENpcmNsZUFubm90YXRpb25NYXJrZXIpLnI7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgbmV4dEFybSA9IChhbm5vdGF0aW9uIGFzIEFubm90YXRpb25XaXRoQXJtKS5hcm1MZW5ndGg7XG4gIH1cbiAgcmV0dXJuIHthbmdsZTogbmV4dEFuZ2xlLCBhcm1MZW5ndGg6IG5leHRBcm19O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzaXplQ2lyY2xlKFxuICBhbm5vdGF0aW9uOiBBbm5vdGF0aW9uLFxuICBkZWx0YToge3g6IG51bWJlcjsgeTogbnVtYmVyfSxcbiAgdmlld3BvcnQ6IE1hcFZpZXdwb3J0XG4pOiBQYXJ0aWFsPEFubm90YXRpb24+IHtcbiAgaWYgKGFubm90YXRpb24ua2luZCAhPT0gQW5ub3RhdGlvbktpbmQuQ0lSQ0xFKSByZXR1cm4ge307XG4gIGNvbnN0IHthbmNob3JQb2ludCwgcmFkaXVzSW5NZXRlcnN9ID0gYW5ub3RhdGlvbjtcbiAgY29uc3Qgc2hpZnRlZCA9IGFkZE1ldGVyc1RvTG5nTGF0KGFuY2hvclBvaW50LCBbcmFkaXVzSW5NZXRlcnMsIDAsIDBdKSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuICBjb25zdCBbeF0gPSB2aWV3cG9ydC5wcm9qZWN0KHNoaWZ0ZWQpO1xuICBjb25zdCBuZXdQb2ludCA9IHZpZXdwb3J0LnVucHJvamVjdChbeCArIGRlbHRhLngsIHZpZXdwb3J0LnByb2plY3QoYW5jaG9yUG9pbnQpWzFdXSk7XG4gIGNvbnN0IGR4ID0gbmV3UG9pbnRbMF0gLSBhbmNob3JQb2ludFswXTtcbiAgY29uc3QgY3VycmVudFJhZGl1cyA9IHNoaWZ0ZWRbMF0gLSBhbmNob3JQb2ludFswXTtcbiAgY29uc3QgcmF0aW8gPSBjdXJyZW50UmFkaXVzICE9PSAwID8gKGN1cnJlbnRSYWRpdXMgKyBkeCkgLyBjdXJyZW50UmFkaXVzIDogMTtcbiAgcmV0dXJuIHtyYWRpdXNJbk1ldGVyczogTWF0aC5tYXgoMCwgcmFkaXVzSW5NZXRlcnMgKiByYXRpbyl9O1xufVxuXG5mdW5jdGlvbiByYWRpYW5zVG9EZWdyZWVzKHJhZGlhbnM6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiByYWRpYW5zICogKDE4MCAvIE1hdGguUEkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsWUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBTEE7QUFDQTs7QUFpQ0EsU0FBU0UsZ0JBQWdCQSxDQUFDQyxNQUFjLEVBQVU7RUFDaEQsT0FBT0EsTUFBTSxJQUFJQyxJQUFJLENBQUNDLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDakM7QUFFQSxTQUFTQyxVQUFVQSxDQUNqQkMsUUFBcUIsRUFDckJDLEtBQXVCLEVBQ3ZCQyxjQUFzQixFQUNkO0VBQ1IsSUFBQUMsaUJBQUEsR0FBZUgsUUFBUSxD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
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ var _exportNames = {
8
+ AnnotationOverlay: true,
9
+ AnnotationNode: true,
10
+ AnnotationText: true,
11
+ AnnotationManagerFactory: true
12
+ };
13
+ Object.defineProperty(exports, "AnnotationManagerFactory", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _annotationPanel["default"];
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "AnnotationNode", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _annotationNode["default"];
23
+ }
24
+ });
25
+ Object.defineProperty(exports, "AnnotationOverlay", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _annotationOverlay["default"];
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "AnnotationText", {
32
+ enumerable: true,
33
+ get: function get() {
34
+ return _annotationText["default"];
35
+ }
36
+ });
37
+ var _annotationOverlay = _interopRequireDefault(require("./annotation-overlay"));
38
+ var _annotationNode = _interopRequireDefault(require("./annotation-node"));
39
+ var _annotationText = _interopRequireDefault(require("./annotation-text"));
40
+ var _annotationPanel = _interopRequireDefault(require("./annotation-panel"));
41
+ var _annotationUtils = require("./annotation-utils");
42
+ Object.keys(_annotationUtils).forEach(function (key) {
43
+ if (key === "default" || key === "__esModule") return;
44
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
45
+ if (key in exports && exports[key] === _annotationUtils[key]) return;
46
+ Object.defineProperty(exports, key, {
47
+ enumerable: true,
48
+ get: function get() {
49
+ return _annotationUtils[key];
50
+ }
51
+ });
52
+ });
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYW5ub3RhdGlvbk92ZXJsYXkiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9hbm5vdGF0aW9uTm9kZSIsIl9hbm5vdGF0aW9uVGV4dCIsIl9hbm5vdGF0aW9uUGFuZWwiLCJfYW5ub3RhdGlvblV0aWxzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfZXhwb3J0TmFtZXMiLCJleHBvcnRzIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Fubm90YXRpb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBBbm5vdGF0aW9uT3ZlcmxheX0gZnJvbSAnLi9hbm5vdGF0aW9uLW92ZXJsYXknO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEFubm90YXRpb25Ob2RlfSBmcm9tICcuL2Fubm90YXRpb24tbm9kZSc7XG5leHBvcnQge2RlZmF1bHQgYXMgQW5ub3RhdGlvblRleHR9IGZyb20gJy4vYW5ub3RhdGlvbi10ZXh0JztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBBbm5vdGF0aW9uTWFuYWdlckZhY3Rvcnl9IGZyb20gJy4vYW5ub3RhdGlvbi1wYW5lbCc7XG5leHBvcnQgKiBmcm9tICcuL2Fubm90YXRpb24tdXRpbHMnO1xuZXhwb3J0IHR5cGUge0Fubm90YXRpb25PdmVybGF5UHJvcHN9IGZyb20gJy4vYW5ub3RhdGlvbi1vdmVybGF5JztcbmV4cG9ydCB0eXBlIHtBbm5vdGF0aW9uTWFuYWdlclByb3BzfSBmcm9tICcuL2Fubm90YXRpb24tcGFuZWwnO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxrQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsZ0JBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLGdCQUFBLEdBQUFKLE9BQUE7QUFBQUssTUFBQSxDQUFBQyxJQUFBLENBQUFGLGdCQUFBLEVBQUFHLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFDLFlBQUEsRUFBQUosR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUssT0FBQSxJQUFBQSxPQUFBLENBQUFMLEdBQUEsTUFBQUosZ0JBQUEsQ0FBQUksR0FBQTtFQUFBSCxNQUFBLENBQUFTLGNBQUEsQ0FBQUQsT0FBQSxFQUFBTCxHQUFBO0lBQUFPLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQVosZ0JBQUEsQ0FBQUksR0FBQTtJQUFBO0VBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = ClickableLinkPlugin;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
10
+ var _lexical = require("lexical");
11
+ var _react = require("react");
12
+ // SPDX-License-Identifier: MIT
13
+ // Copyright contributors to the kepler.gl project
14
+
15
+ function ClickableLinkPlugin(_ref) {
16
+ var _ref$newTab = _ref.newTab,
17
+ newTab = _ref$newTab === void 0 ? true : _ref$newTab;
18
+ var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
19
+ _useLexicalComposerCo2 = (0, _slicedToArray2["default"])(_useLexicalComposerCo, 1),
20
+ editor = _useLexicalComposerCo2[0];
21
+ (0, _react.useEffect)(function () {
22
+ function onClick(e) {
23
+ if (editor.isEditable()) {
24
+ return;
25
+ }
26
+ var evt = e;
27
+ var linkDomNode = getLinkDomNode(evt, editor);
28
+ if (!linkDomNode) {
29
+ return;
30
+ }
31
+ var href = linkDomNode.getAttribute('href');
32
+ if (linkDomNode.getAttribute('contenteditable') === 'false' || href == null) {
33
+ return;
34
+ }
35
+ var selection = editor.getEditorState().read(_lexical.$getSelection);
36
+ if ((0, _lexical.$isRangeSelection)(selection) && !selection.isCollapsed()) {
37
+ return;
38
+ }
39
+ if (href && newTab) {
40
+ window.open(href, '_blank', 'noopener,noreferrer');
41
+ } else if (href) {
42
+ window.location.href = href;
43
+ }
44
+ }
45
+ return editor.registerRootListener(function (rootElement, prevRootElement) {
46
+ if (prevRootElement !== null) {
47
+ prevRootElement.removeEventListener('click', onClick);
48
+ }
49
+ if (rootElement !== null) {
50
+ rootElement.addEventListener('click', onClick);
51
+ }
52
+ });
53
+ }, [editor, newTab]);
54
+ return null;
55
+ }
56
+ function isLinkDomNode(domNode) {
57
+ return domNode.nodeName.toLowerCase() === 'a';
58
+ }
59
+ function getLinkDomNode(event, editor) {
60
+ return editor.getEditorState().read(function () {
61
+ var domNode = event.target;
62
+ if (isLinkDomNode(domNode)) {
63
+ return domNode;
64
+ }
65
+ if (domNode.parentNode && isLinkDomNode(domNode.parentNode)) {
66
+ return domNode.parentNode;
67
+ }
68
+ return null;
69
+ });
70
+ }
71
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsInJlcXVpcmUiLCJfbGV4aWNhbCIsIl9yZWFjdCIsIkNsaWNrYWJsZUxpbmtQbHVnaW4iLCJfcmVmIiwiX3JlZiRuZXdUYWIiLCJuZXdUYWIiLCJfdXNlTGV4aWNhbENvbXBvc2VyQ28iLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiX3VzZUxleGljYWxDb21wb3NlckNvMiIsIl9zbGljZWRUb0FycmF5MiIsImVkaXRvciIsInVzZUVmZmVjdCIsIm9uQ2xpY2siLCJlIiwiaXNFZGl0YWJsZSIsImV2dCIsImxpbmtEb21Ob2RlIiwiZ2V0TGlua0RvbU5vZGUiLCJocmVmIiwiZ2V0QXR0cmlidXRlIiwic2VsZWN0aW9uIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiJGdldFNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiaXNDb2xsYXBzZWQiLCJ3aW5kb3ciLCJvcGVuIiwibG9jYXRpb24iLCJyZWdpc3RlclJvb3RMaXN0ZW5lciIsInJvb3RFbGVtZW50IiwicHJldlJvb3RFbGVtZW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImFkZEV2ZW50TGlzdGVuZXIiLCJpc0xpbmtEb21Ob2RlIiwiZG9tTm9kZSIsIm5vZGVOYW1lIiwidG9Mb3dlckNhc2UiLCJldmVudCIsInRhcmdldCIsInBhcmVudE5vZGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYW5ub3RhdGlvbnMvbGV4aWNhbC1lZGl0b3IvY2xpY2thYmxlLWxpbmstcGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7dXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCc7XG5pbXBvcnQgeyRnZXRTZWxlY3Rpb24sICRpc1JhbmdlU2VsZWN0aW9ufSBmcm9tICdsZXhpY2FsJztcbmltcG9ydCB7dXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHtMZXhpY2FsRWRpdG9yfSBmcm9tICdsZXhpY2FsJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ2xpY2thYmxlTGlua1BsdWdpbih7XG4gIG5ld1RhYiA9IHRydWVcbn06IHtcbiAgbmV3VGFiPzogYm9vbGVhbjtcbn0pOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmdW5jdGlvbiBvbkNsaWNrKGU6IEV2ZW50KSB7XG4gICAgICBpZiAoZWRpdG9yLmlzRWRpdGFibGUoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV2dCA9IGUgYXMgTW91c2VFdmVudDtcbiAgICAgIGNvbnN0IGxpbmtEb21Ob2RlID0gZ2V0TGlua0RvbU5vZGUoZXZ0LCBlZGl0b3IpO1xuICAgICAgaWYgKCFsaW5rRG9tTm9kZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBocmVmID0gbGlua0RvbU5vZGUuZ2V0QXR0cmlidXRlKCdocmVmJyk7XG4gICAgICBpZiAobGlua0RvbU5vZGUuZ2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKSA9PT0gJ2ZhbHNlJyB8fCBocmVmID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgkZ2V0U2VsZWN0aW9uKTtcbiAgICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pICYmICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChocmVmICYmIG5ld1RhYikge1xuICAgICAgICB3aW5kb3cub3BlbihocmVmLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcbiAgICAgIH0gZWxzZSBpZiAoaHJlZikge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGhyZWY7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlZGl0b3IucmVnaXN0ZXJSb290TGlzdGVuZXIoXG4gICAgICAocm9vdEVsZW1lbnQ6IG51bGwgfCBIVE1MRWxlbWVudCwgcHJldlJvb3RFbGVtZW50OiBudWxsIHwgSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKHByZXZSb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHByZXZSb290RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIG9uQ2xpY2spO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25DbGljayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9LCBbZWRpdG9yLCBuZXdUYWJdKTtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzTGlua0RvbU5vZGUoZG9tTm9kZTogTm9kZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gZG9tTm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYSc7XG59XG5cbmZ1bmN0aW9uIGdldExpbmtEb21Ob2RlKGV2ZW50OiBNb3VzZUV2ZW50LCBlZGl0b3I6IExleGljYWxFZGl0b3IpOiBIVE1MQW5jaG9yRWxlbWVudCB8IG51bGwge1xuICByZXR1cm4gZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgY29uc3QgZG9tTm9kZSA9IGV2ZW50LnRhcmdldCBhcyBOb2RlO1xuICAgIGlmIChpc0xpbmtEb21Ob2RlKGRvbU5vZGUpKSB7XG4gICAgICByZXR1cm4gZG9tTm9kZSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcbiAgICB9XG4gICAgaWYgKGRvbU5vZGUucGFyZW50Tm9kZSAmJiBpc0xpbmtEb21Ob2RlKGRvbU5vZGUucGFyZW50Tm9kZSkpIHtcbiAgICAgIHJldHVybiBkb21Ob2RlLnBhcmVudE5vZGUgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSx1QkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBTEE7QUFDQTs7QUFRZSxTQUFTRyxtQkFBbUJBLENBQUFDLElBQUEsRUFJcEI7RUFBQSxJQUFBQyxXQUFBLEdBQUFELElBQUEsQ0FIckJFLE1BQU07SUFBTkEsTUFBTSxHQUFBRCxXQUFBLGNBQUcsSUFBSSxHQUFBQSxXQUFBO0VBSWIsSUFBQUUscUJBQUEsR0FBaUIsSUFBQUMsaURBQXlCLEVBQUMsQ0FBQztJQUFBQyxzQkFBQSxPQUFBQyxlQUFBLGFBQUFILHFCQUFBO0lBQXJDSSxNQUFNLEdBQUFGLHNCQUFBO0VBQ2IsSUFBQUcsZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsU0FBU0MsT0FBT0EsQ0FBQ0MsQ0FBUSxFQUFFO01BQ3pCLElBQUlILE1BQU0sQ0FBQ0ksVUFBVSxDQUFDLENBQUMsRUFBRTtRQUN2QjtNQUNGO01BRUEsSUFBTUMsR0FBRyxHQUFHRixDQUFlO01BQzNCLElBQU1HLFdBQVcsR0FBR0MsY0FBYyxDQUFDRixHQUFHLEVBQUVMLE1BQU0sQ0FBQztNQUMvQyxJQUFJLENBQUNNLFdBQVcsRUFBRTtRQUNoQjtNQUNGO01BQ0EsSUFBTUUsSUFBSSxHQUFHRixXQUFXLENBQUNHLFlBQVksQ0FBQyxNQUFNLENBQUM7TUFDN0MsSUFBSUgsV0FBVyxDQUFDRyxZQUFZLENBQUMsaUJBQWlCLENBQUMsS0FBSyxPQUFPLElBQUlELElBQUksSUFBSSxJQUFJLEVBQUU7UUFDM0U7TUFDRjtNQUNBLElBQU1FLFNBQVMsR0FBR1YsTUFBTSxDQUFDVyxjQUFjLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUNDLHNCQUFhLENBQUM7TUFDN0QsSUFBSSxJQUFBQywwQkFBaUIsRUFBQ0osU0FBUyxDQUFDLElBQUksQ0FBQ0EsU0FBUyxDQUFDSyxXQUFXLENBQUMsQ0FBQyxFQUFFO1FBQzVEO01BQ0Y7TUFFQSxJQUFJUCxJQUFJLElBQUliLE1BQU0sRUFBRTtRQUNsQnFCLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVCxJQUFJLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixDQUFDO01BQ3BELENBQUMsTUFBTSxJQUFJQSxJQUFJLEVBQUU7UUFDZlEsTUFBTSxDQUFDRSxRQUFRLENBQUNWLElBQUksR0FBR0EsSUFBSTtNQUM3QjtJQUNGO0lBQ0EsT0FBT1IsTUFBTSxDQUFDbUIsb0JBQW9CLENBQ2hDLFVBQUNDLFdBQStCLEVBQUVDLGVBQW1DLEVBQUs7TUFDeEUsSUFBSUEsZUFBZSxLQUFLLElBQUksRUFBRTtRQUM1QkEsZUFBZSxDQUFDQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUVwQixPQUFPLENBQUM7TUFDdkQ7TUFDQSxJQUFJa0IsV0FBVyxLQUFLLElBQUksRUFBRTtRQUN4QkEsV0FBVyxDQUFDRyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUVyQixPQUFPLENBQUM7TUFDaEQ7SUFDRixDQUNGLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ0YsTUFBTSxFQUFFTCxNQUFNLENBQUMsQ0FBQztFQUNwQixPQUFPLElBQUk7QUFDYjtBQUVBLFNBQVM2QixhQUFhQSxDQUFDQyxPQUFhLEVBQVc7RUFDN0MsT0FBT0EsT0FBTyxDQUFDQyxRQUFRLENBQUNDLFdBQVcsQ0FBQyxDQUFDLEtBQUssR0FBRztBQUMvQztBQUVBLFNBQVNwQixjQUFjQSxDQUFDcUIsS0FBaUIsRUFBRTVCLE1BQXFCLEVBQTRCO0VBQzFGLE9BQU9BLE1BQU0sQ0FBQ1csY0FBYyxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLFlBQU07SUFDeEMsSUFBTWEsT0FBTyxHQUFHRyxLQUFLLENBQUNDLE1BQWM7SUFDcEMsSUFBSUwsYUFBYSxDQUFDQyxPQUFPLENBQUMsRUFBRTtNQUMxQixPQUFPQSxPQUFPO0lBQ2hCO0lBQ0EsSUFBSUEsT0FBTyxDQUFDSyxVQUFVLElBQUlOLGFBQWEsQ0FBQ0MsT0FBTyxDQUFDSyxVQUFVLENBQUMsRUFBRTtNQUMzRCxPQUFPTCxPQUFPLENBQUNLLFVBQVU7SUFDM0I7SUFDQSxPQUFPLElBQUk7RUFDYixDQUFDLENBQUM7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==