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

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 (356) hide show
  1. package/dist/annotations/annotation-overlay.d.ts +1 -0
  2. package/dist/annotations/annotation-overlay.js +7 -5
  3. package/dist/annotations/annotation-panel.js +16 -17
  4. package/dist/annotations/annotation-text.js +2 -3
  5. package/dist/annotations/annotation-utils.d.ts +14 -0
  6. package/dist/annotations/annotation-utils.js +44 -3
  7. package/dist/annotations/lexical-editor/floating-link-editor.js +9 -10
  8. package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +2 -3
  9. package/dist/annotations/lexical-editor/lexical-toolbar.js +6 -7
  10. package/dist/annotations/lexical-editor/use-lexical-toolbar.js +15 -15
  11. package/dist/bottom-widget.js +3 -4
  12. package/dist/common/action-panel.js +2 -3
  13. package/dist/common/animation-control/animation-speed-slider.js +2 -3
  14. package/dist/common/animation-control/animation-window-control.js +2 -3
  15. package/dist/common/animation-control/floating-time-display.js +2 -3
  16. package/dist/common/animation-control/playback-controls.js +2 -3
  17. package/dist/common/animation-control/window-action-control.js +2 -3
  18. package/dist/common/checkbox.js +2 -3
  19. package/dist/common/color-legend.js +2 -3
  20. package/dist/common/column-stats-chart.js +2 -3
  21. package/dist/common/data-table/display-format.js +2 -3
  22. package/dist/common/data-table/grid.js +2 -3
  23. package/dist/common/data-table/header-cell.js +2 -3
  24. package/dist/common/data-table/index.js +2 -3
  25. package/dist/common/data-table/option-dropdown.js +2 -3
  26. package/dist/common/field-selector.js +2 -3
  27. package/dist/common/file-uploader/file-drop.js +2 -3
  28. package/dist/common/file-uploader/file-upload-progress.js +2 -3
  29. package/dist/common/file-uploader/file-upload.js +8 -9
  30. package/dist/common/file-uploader/upload-button.js +2 -3
  31. package/dist/common/histogram-plot.js +2 -3
  32. package/dist/common/icons/3d-models/airplane.js +2 -3
  33. package/dist/common/icons/3d-models/bicycle.js +2 -3
  34. package/dist/common/icons/3d-models/boeing.js +2 -3
  35. package/dist/common/icons/3d-models/car.js +2 -3
  36. package/dist/common/icons/3d-models/cargoship.js +2 -3
  37. package/dist/common/icons/3d-models/evtol.js +2 -3
  38. package/dist/common/icons/3d-models/glider.js +2 -3
  39. package/dist/common/icons/3d-models/helicopter.js +2 -3
  40. package/dist/common/icons/3d-models/scooter.js +2 -3
  41. package/dist/common/icons/3d-models/semitruck.js +2 -3
  42. package/dist/common/icons/3d-models/truck.js +2 -3
  43. package/dist/common/icons/add.js +2 -3
  44. package/dist/common/icons/annotation-text.js +2 -3
  45. package/dist/common/icons/arrow-down-alt.js +2 -3
  46. package/dist/common/icons/arrow-down-full.js +2 -3
  47. package/dist/common/icons/arrow-down-small.js +2 -3
  48. package/dist/common/icons/arrow-down-solid.js +2 -3
  49. package/dist/common/icons/arrow-down.js +2 -3
  50. package/dist/common/icons/arrow-left.js +2 -3
  51. package/dist/common/icons/arrow-right.js +2 -3
  52. package/dist/common/icons/arrow-up-alt.js +2 -3
  53. package/dist/common/icons/arrow-up-solid.js +2 -3
  54. package/dist/common/icons/arrow-up.js +2 -3
  55. package/dist/common/icons/base-map.js +2 -3
  56. package/dist/common/icons/base.js +2 -3
  57. package/dist/common/icons/bug.js +2 -3
  58. package/dist/common/icons/calendar.js +2 -3
  59. package/dist/common/icons/cancel.js +2 -3
  60. package/dist/common/icons/checkmark.js +2 -3
  61. package/dist/common/icons/clipboard.js +2 -3
  62. package/dist/common/icons/clock.js +2 -3
  63. package/dist/common/icons/close.js +2 -3
  64. package/dist/common/icons/cloud.js +2 -3
  65. package/dist/common/icons/code-alt.js +2 -3
  66. package/dist/common/icons/copy.js +2 -3
  67. package/dist/common/icons/crosshairs.js +2 -3
  68. package/dist/common/icons/cube-3d.js +2 -3
  69. package/dist/common/icons/cursor-click.js +2 -3
  70. package/dist/common/icons/cursor-point.js +2 -3
  71. package/dist/common/icons/data-table.js +2 -3
  72. package/dist/common/icons/db.js +2 -3
  73. package/dist/common/icons/delete.js +2 -3
  74. package/dist/common/icons/docs.js +2 -3
  75. package/dist/common/icons/docs2.js +2 -3
  76. package/dist/common/icons/drag-n-drop.js +2 -3
  77. package/dist/common/icons/draggable-dots.js +2 -3
  78. package/dist/common/icons/draw-polygon.js +2 -3
  79. package/dist/common/icons/edit.js +2 -3
  80. package/dist/common/icons/effects/brightness-contrast.js +2 -3
  81. package/dist/common/icons/effects/color-halftone.js +2 -3
  82. package/dist/common/icons/effects/distance-fog.js +2 -3
  83. package/dist/common/icons/effects/dot-screen.js +2 -3
  84. package/dist/common/icons/effects/edge-work.js +2 -3
  85. package/dist/common/icons/effects/hexagonal-pixelate.js +2 -3
  86. package/dist/common/icons/effects/hue-saturation.js +2 -3
  87. package/dist/common/icons/effects/ink.js +2 -3
  88. package/dist/common/icons/effects/light-and-shadow.js +2 -3
  89. package/dist/common/icons/effects/magic-wand.js +2 -3
  90. package/dist/common/icons/effects/magnify.js +2 -3
  91. package/dist/common/icons/effects/noise.js +2 -3
  92. package/dist/common/icons/effects/sepia.js +2 -3
  93. package/dist/common/icons/effects/surface-fog.js +2 -3
  94. package/dist/common/icons/effects/tilt-shift.js +2 -3
  95. package/dist/common/icons/effects/triangle-blur.js +2 -3
  96. package/dist/common/icons/effects/vibrance.js +2 -3
  97. package/dist/common/icons/effects/vignette.js +2 -3
  98. package/dist/common/icons/effects/zoom-blur.js +2 -3
  99. package/dist/common/icons/email.js +2 -3
  100. package/dist/common/icons/expand.js +2 -3
  101. package/dist/common/icons/eye-seen.js +2 -3
  102. package/dist/common/icons/eye-unseen.js +2 -3
  103. package/dist/common/icons/file.js +2 -3
  104. package/dist/common/icons/filter-funnel.js +2 -3
  105. package/dist/common/icons/folder.js +2 -3
  106. package/dist/common/icons/gear.js +2 -3
  107. package/dist/common/icons/globe.js +2 -3
  108. package/dist/common/icons/hash.js +2 -3
  109. package/dist/common/icons/help.js +2 -3
  110. package/dist/common/icons/horizontal-resize-handle.js +2 -3
  111. package/dist/common/icons/info.js +2 -3
  112. package/dist/common/icons/layers.js +2 -3
  113. package/dist/common/icons/left-arrow.js +2 -3
  114. package/dist/common/icons/legend.js +2 -3
  115. package/dist/common/icons/line-chart.js +2 -3
  116. package/dist/common/icons/location-marker.js +2 -3
  117. package/dist/common/icons/login.js +2 -3
  118. package/dist/common/icons/logout.js +2 -3
  119. package/dist/common/icons/map-icon.js +2 -3
  120. package/dist/common/icons/map-pin.js +2 -3
  121. package/dist/common/icons/messages.js +2 -3
  122. package/dist/common/icons/minus.js +2 -3
  123. package/dist/common/icons/moon.js +2 -3
  124. package/dist/common/icons/pause.js +2 -3
  125. package/dist/common/icons/pin.js +2 -3
  126. package/dist/common/icons/play.js +2 -3
  127. package/dist/common/icons/pointer-click.js +2 -3
  128. package/dist/common/icons/polygon.js +2 -3
  129. package/dist/common/icons/rectangle.js +2 -3
  130. package/dist/common/icons/reduce.js +2 -3
  131. package/dist/common/icons/reset.js +2 -3
  132. package/dist/common/icons/save.js +2 -3
  133. package/dist/common/icons/save2.js +2 -3
  134. package/dist/common/icons/search.js +2 -3
  135. package/dist/common/icons/settings.js +2 -3
  136. package/dist/common/icons/share.js +2 -3
  137. package/dist/common/icons/speed.js +2 -3
  138. package/dist/common/icons/split.js +2 -3
  139. package/dist/common/icons/square-select.js +2 -3
  140. package/dist/common/icons/sun.js +2 -3
  141. package/dist/common/icons/sunrise.js +2 -3
  142. package/dist/common/icons/sunset.js +2 -3
  143. package/dist/common/icons/timeline-marker.js +2 -3
  144. package/dist/common/icons/trash.js +2 -3
  145. package/dist/common/icons/vert-dots.js +2 -3
  146. package/dist/common/icons/vert-three-dots.js +2 -3
  147. package/dist/common/icons/warning-sign.js +2 -3
  148. package/dist/common/icons/warning.js +2 -3
  149. package/dist/common/icons/zoom-in.js +2 -3
  150. package/dist/common/icons/zoom-out.js +2 -3
  151. package/dist/common/index.js +2 -3
  152. package/dist/common/item-selector/chickleted-input.js +2 -3
  153. package/dist/common/item-selector/dropdown-list.js +2 -3
  154. package/dist/common/item-selector/item-selector.js +2 -3
  155. package/dist/common/item-selector/typeahead.js +2 -3
  156. package/dist/common/layout-splitter.js +2 -3
  157. package/dist/common/line-chart.js +2 -3
  158. package/dist/common/loading-spinner.js +2 -3
  159. package/dist/common/modal.js +6 -7
  160. package/dist/common/portaled.js +2 -3
  161. package/dist/common/radius-legend.js +2 -3
  162. package/dist/common/range-brush.js +2 -3
  163. package/dist/common/range-plot.js +2 -3
  164. package/dist/common/range-slider-timeline-panel.js +2 -3
  165. package/dist/common/range-slider-timeline.js +2 -3
  166. package/dist/common/range-slider.js +2 -3
  167. package/dist/common/slider/slider-bar-handle.js +2 -3
  168. package/dist/common/slider/slider-handle.js +2 -3
  169. package/dist/common/slider/slider.js +2 -3
  170. package/dist/common/styled-components.d.ts +86 -83
  171. package/dist/common/styled-components.js +53 -45
  172. package/dist/common/time-range-slider.js +2 -3
  173. package/dist/common/time-slider-marker.js +2 -3
  174. package/dist/common/timeline-slider.js +2 -3
  175. package/dist/common/tippy-tooltip.js +2 -3
  176. package/dist/connect/with-local-selector.js +2 -3
  177. package/dist/container.js +4 -5
  178. package/dist/context.js +2 -3
  179. package/dist/dnd-context.js +2 -3
  180. package/dist/editor/editor.js +3 -4
  181. package/dist/editor/feature-action-panel.js +2 -3
  182. package/dist/effects/compact-color-picker.js +2 -3
  183. package/dist/effects/effect-configurator.js +17 -18
  184. package/dist/effects/effect-list.js +2 -3
  185. package/dist/effects/effect-manager.js +2 -3
  186. package/dist/effects/effect-panel-header.js +2 -3
  187. package/dist/effects/effect-panel.js +2 -3
  188. package/dist/effects/effect-time-configurator.js +18 -7
  189. package/dist/effects/effect-time-selector.js +2 -3
  190. package/dist/effects/effect-time-slider.js +2 -3
  191. package/dist/effects/effect-type-dropdown-list.js +2 -3
  192. package/dist/effects/effect-type-list-item.js +2 -3
  193. package/dist/effects/effect-type-selector.js +2 -3
  194. package/dist/effects/surface-fog-section.js +7 -8
  195. package/dist/effects/timezone-selector.js +2 -3
  196. package/dist/filter-animation-controller.js +2 -3
  197. package/dist/filters/filter-panels/filter-panel-with-field-select.js +2 -3
  198. package/dist/filters/filter-panels/filter-synced-dataset-panel.js +4 -5
  199. package/dist/filters/filter-panels/multi-select-filter-panel.js +2 -3
  200. package/dist/filters/filter-panels/new-filter-panel.js +2 -3
  201. package/dist/filters/filter-panels/polygon-filter-panel.js +2 -3
  202. package/dist/filters/filter-panels/range-filter-panel.js +2 -3
  203. package/dist/filters/filter-panels/single-select-filter-panel.js +2 -3
  204. package/dist/filters/filter-panels/time-range-filter-panel.js +2 -3
  205. package/dist/filters/polygon-filter.js +3 -4
  206. package/dist/filters/time-widget-settings.js +9 -10
  207. package/dist/filters/time-widget-top.js +2 -3
  208. package/dist/filters/time-widget.js +2 -3
  209. package/dist/geocoder/geocoder.js +6 -7
  210. package/dist/geocoder-panel.js +2 -3
  211. package/dist/hooks/use-cloud-list-provider.js +2 -3
  212. package/dist/hooks/use-fetch-raster-tile-metadata.js +2 -2
  213. package/dist/hooks/use-fetch-vector-tile-metadata.js +2 -2
  214. package/dist/index.d.ts +3 -2
  215. package/dist/index.js +31 -3
  216. package/dist/kepler-gl.d.ts +1 -0
  217. package/dist/kepler-gl.js +3 -3
  218. package/dist/layer-animation-controller.js +2 -3
  219. package/dist/loading-indicator.d.ts +1 -0
  220. package/dist/loading-indicator.js +6 -4
  221. package/dist/map/annotations/annotation-control.js +2 -3
  222. package/dist/map/attribution.d.ts +52 -0
  223. package/dist/map/attribution.js +391 -0
  224. package/dist/map/effects/effect-control.js +2 -3
  225. package/dist/map/layer-hover-info.js +2 -3
  226. package/dist/map/lazy-tippy.js +2 -3
  227. package/dist/map/locale-panel.d.ts +1 -1
  228. package/dist/map/locale-panel.js +2 -3
  229. package/dist/map/map-control-panel.js +2 -3
  230. package/dist/map/map-control.d.ts +3 -0
  231. package/dist/map/map-control.js +1 -1
  232. package/dist/map/map-draw-panel.d.ts +1 -1
  233. package/dist/map/map-draw-panel.js +2 -3
  234. package/dist/map/map-legend-panel.d.ts +1 -1
  235. package/dist/map/map-legend-panel.js +9 -14
  236. package/dist/map/map-legend.js +2 -3
  237. package/dist/map/map-navigation-control.js +20 -4
  238. package/dist/map/map-popover.js +2 -3
  239. package/dist/map/map-scale.d.ts +11 -0
  240. package/dist/map/map-scale.js +162 -0
  241. package/dist/map/split-map-button.d.ts +4 -2
  242. package/dist/map/split-map-button.js +63 -46
  243. package/dist/map/toggle-3d-button.d.ts +8 -2
  244. package/dist/map/toggle-3d-button.js +79 -17
  245. package/dist/map-container.d.ts +6 -16
  246. package/dist/map-container.js +354 -240
  247. package/dist/map-view-state-context.d.ts +2 -0
  248. package/dist/map-view-state-context.js +2 -3
  249. package/dist/maps-layout.js +2 -3
  250. package/dist/modal-container.js +2 -3
  251. package/dist/modals/add-map-style-modal.js +49 -12
  252. package/dist/modals/cloud-components/cloud-header.js +2 -3
  253. package/dist/modals/cloud-components/cloud-item.spec.js +8 -8
  254. package/dist/modals/cloud-components/cloud-maps.spec.js +7 -7
  255. package/dist/modals/cloud-tile.js +5 -6
  256. package/dist/modals/data-table-modal.js +2 -3
  257. package/dist/modals/error-display.js +2 -3
  258. package/dist/modals/export-data-modal.js +2 -3
  259. package/dist/modals/export-image-modal.js +2 -3
  260. package/dist/modals/export-map-modal/export-json-map.js +2 -3
  261. package/dist/modals/export-video-modal.js +52 -10
  262. package/dist/modals/export-video-modal.spec.js +83 -83
  263. package/dist/modals/globe-export-video-container.d.ts +117 -0
  264. package/dist/modals/globe-export-video-container.js +626 -0
  265. package/dist/modals/globe-export-video-preview.d.ts +41 -0
  266. package/dist/modals/globe-export-video-preview.js +152 -0
  267. package/dist/modals/hubble-utils.d.ts +13 -1
  268. package/dist/modals/hubble-utils.js +164 -36
  269. package/dist/modals/image-modal-container.js +2 -3
  270. package/dist/modals/load-data-modal.js +2 -3
  271. package/dist/modals/load-storage-map.js +2 -3
  272. package/dist/modals/load-storage-map.spec.js +10 -10
  273. package/dist/modals/modal-tabs.js +2 -3
  274. package/dist/modals/overwrite-map-modal.js +2 -3
  275. package/dist/modals/save-map-modal.js +2 -3
  276. package/dist/modals/save-map-modal.spec.js +16 -16
  277. package/dist/modals/share-map-modal.js +2 -3
  278. package/dist/modals/share-map-modal.spec.js +9 -9
  279. package/dist/modals/swipe-composite-utils.d.ts +1 -1
  280. package/dist/modals/swipe-composite-utils.js +11 -1
  281. package/dist/modals/swipe-export-settings.d.ts +1 -0
  282. package/dist/modals/swipe-export-settings.js +8 -6
  283. package/dist/modals/swipe-export-video-container.d.ts +6 -0
  284. package/dist/modals/swipe-export-video-container.js +27 -4
  285. package/dist/modals/swipe-export-video-preview.d.ts +2 -0
  286. package/dist/modals/swipe-export-video-preview.js +80 -18
  287. package/dist/modals/tilesets-modals/load-data-footer.js +2 -3
  288. package/dist/modals/tilesets-modals/load-tileset.js +2 -3
  289. package/dist/modals/tilesets-modals/tileset-bitmap-form.js +18 -19
  290. package/dist/modals/tilesets-modals/tileset-raster-form.js +5 -6
  291. package/dist/modals/tilesets-modals/tileset-tile3d-form.js +13 -14
  292. package/dist/modals/tilesets-modals/tileset-vector-form.js +7 -8
  293. package/dist/modals/tilesets-modals/tileset-wms-form.js +11 -12
  294. package/dist/notification-panel/notification-item.js +2 -3
  295. package/dist/plot-container.js +2 -3
  296. package/dist/side-panel/add-by-dataset-button.js +2 -3
  297. package/dist/side-panel/common/dataset-title.js +2 -3
  298. package/dist/side-panel/common/source-data-selector-content.js +2 -3
  299. package/dist/side-panel/common/source-selector.js +2 -3
  300. package/dist/side-panel/filter-manager.js +2 -3
  301. package/dist/side-panel/filter-panel/filter-panel-header.js +2 -3
  302. package/dist/side-panel/filter-panel/filter-panel.js +2 -3
  303. package/dist/side-panel/interaction-panel/interaction-panel.js +2 -3
  304. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +2 -3
  305. package/dist/side-panel/interaction-panel/tooltip-config.js +2 -3
  306. package/dist/side-panel/layer-manager.d.ts +2 -1
  307. package/dist/side-panel/layer-manager.js +6 -4
  308. package/dist/side-panel/layer-panel/channel-by-value-selector.js +2 -3
  309. package/dist/side-panel/layer-panel/color-breaks-panel.js +2 -3
  310. package/dist/side-panel/layer-panel/color-palette.js +2 -3
  311. package/dist/side-panel/layer-panel/color-range-selector.js +2 -3
  312. package/dist/side-panel/layer-panel/color-scale-selector.js +2 -3
  313. package/dist/side-panel/layer-panel/color-selector.js +2 -3
  314. package/dist/side-panel/layer-panel/column-selector.js +2 -3
  315. package/dist/side-panel/layer-panel/custom-palette.js +41 -42
  316. package/dist/side-panel/layer-panel/custom-picker.js +2 -3
  317. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +2 -1
  318. package/dist/side-panel/layer-panel/dataset-layer-group.js +6 -5
  319. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +2 -1
  320. package/dist/side-panel/layer-panel/dataset-layer-section.js +5 -4
  321. package/dist/side-panel/layer-panel/dimension-scale-selector.js +2 -3
  322. package/dist/side-panel/layer-panel/layer-color-selector.js +2 -3
  323. package/dist/side-panel/layer-panel/layer-column-config.js +2 -3
  324. package/dist/side-panel/layer-panel/layer-column-mode-config.js +2 -3
  325. package/dist/side-panel/layer-panel/layer-config-group.js +2 -3
  326. package/dist/side-panel/layer-panel/layer-configurator.js +51 -52
  327. package/dist/side-panel/layer-panel/layer-group-header.js +2 -3
  328. package/dist/side-panel/layer-panel/layer-list.d.ts +2 -1
  329. package/dist/side-panel/layer-panel/layer-list.js +8 -7
  330. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +1 -1
  331. package/dist/side-panel/layer-panel/layer-panel-header.js +3 -4
  332. package/dist/side-panel/layer-panel/layer-panel.d.ts +2 -1
  333. package/dist/side-panel/layer-panel/layer-panel.js +15 -6
  334. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +2 -3
  335. package/dist/side-panel/layer-panel/layer-type-list-item.js +2 -3
  336. package/dist/side-panel/layer-panel/layer-type-selector.js +2 -3
  337. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +4 -5
  338. package/dist/side-panel/layer-panel/scenegraph-model-selector.js +2 -3
  339. package/dist/side-panel/layer-panel/single-color-palette.js +2 -3
  340. package/dist/side-panel/layer-panel/text-label-panel.js +2 -3
  341. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +2 -3
  342. package/dist/side-panel/layer-panel/vis-config-slider.js +2 -3
  343. package/dist/side-panel/map-manager.d.ts +9 -3
  344. package/dist/side-panel/map-manager.js +13 -7
  345. package/dist/side-panel/map-style-panel/globe-config-panel.d.ts +15 -0
  346. package/dist/side-panel/map-style-panel/globe-config-panel.js +269 -0
  347. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +2 -3
  348. package/dist/side-panel/map-style-panel/map-layer-group-item.js +2 -3
  349. package/dist/side-panel/panel-header.js +9 -10
  350. package/dist/side-panel/panel-toggle.js +2 -3
  351. package/dist/side-panel/panel-view-list-toggle.js +2 -3
  352. package/dist/side-panel/side-bar.js +2 -3
  353. package/dist/side-panel.js +4 -3
  354. package/dist/types.d.ts +2 -1
  355. package/dist/types.js +1 -1
  356. package/package.json +23 -23
@@ -7,31 +7,19 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
10
  var _react = _interopRequireWildcard(require("react"));
12
11
  var _classnames = _interopRequireDefault(require("classnames"));
13
- var _styledComponents = _interopRequireDefault(require("styled-components"));
14
- var _styledComponents2 = require("../common/styled-components");
12
+ var _styledComponents = require("../common/styled-components");
15
13
  var _icons = require("../common/icons");
14
+ var _toolbarItem = _interopRequireDefault(require("../common/toolbar-item"));
16
15
  var _mapControlTooltip = _interopRequireDefault(require("./map-control-tooltip"));
16
+ var _mapControlToolbar = _interopRequireDefault(require("./map-control-toolbar"));
17
17
  var _constants = require("@kepler.gl/constants");
18
- var _templateObject, _templateObject2; // SPDX-License-Identifier: MIT
18
+ 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); }
19
+ // SPDX-License-Identifier: MIT
19
20
  // Copyright contributors to the kepler.gl project
20
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
22
- SplitMapButtonFactory.deps = [_mapControlTooltip["default"]];
23
- var StyledSplitModeMenu = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n top: 0;\n left: -160px;\n background: ", ";\n border-radius: 4px;\n box-shadow: 0 6px 12px 0 rgba(0, 0, 0, 0.16);\n padding: 4px 0;\n z-index: 1000;\n min-width: 140px;\n"])), function (props) {
24
- return props.theme.dropdownListBgd || '#3A414C';
25
- });
26
- var StyledMenuItem = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 8px 16px;\n color: ", ";\n cursor: pointer;\n font-size: 12px;\n font-weight: ", ";\n &:hover {\n background: ", ";\n color: ", ";\n }\n"])), function (props) {
27
- return props.$active ? props.theme.activeColor || '#1FBAD6' : props.theme.textColor || '#A0A7B4';
28
- }, function (props) {
29
- return props.$active ? 500 : 400;
30
- }, function (props) {
31
- return props.theme.dropdownListHighlightBg || '#4B5464';
32
- }, function (props) {
33
- return props.theme.textColorHl || '#FFFFFF';
34
- });
21
+
22
+ SplitMapButtonFactory.deps = [_mapControlTooltip["default"], _mapControlToolbar["default"]];
35
23
  var SwipeCompareIcon = function SwipeCompareIcon(_ref) {
36
24
  var _ref$height = _ref.height,
37
25
  height = _ref$height === void 0 ? '18px' : _ref$height;
@@ -53,15 +41,15 @@ var SwipeCompareIcon = function SwipeCompareIcon(_ref) {
53
41
  };
54
42
  var SPLIT_MODE_OPTIONS = [{
55
43
  id: _constants.MapSplitMode.SINGLE_MAP,
56
- label: 'Single'
44
+ label: 'tooltip.singleView'
57
45
  }, {
58
46
  id: _constants.MapSplitMode.DUAL_MAP,
59
- label: 'Dual'
47
+ label: 'tooltip.dualView'
60
48
  }, {
61
49
  id: _constants.MapSplitMode.SWIPE_COMPARE,
62
- label: 'Swipe'
50
+ label: 'tooltip.swipeView'
63
51
  }];
64
- function SplitMapButtonFactory(MapControlTooltip) {
52
+ function SplitMapButtonFactory(MapControlTooltip, MapControlToolbar) {
65
53
  var defaultActionIcons = {
66
54
  "delete": _icons.Delete,
67
55
  split: _icons.Split
@@ -73,40 +61,65 @@ function SplitMapButtonFactory(MapControlTooltip) {
73
61
  mapIndex = _ref2.mapIndex,
74
62
  onToggleSplitMap = _ref2.onToggleSplitMap,
75
63
  onSetMapSplitMode = _ref2.onSetMapSplitMode,
64
+ onToggleMapControl = _ref2.onToggleMapControl,
76
65
  _ref2$actionIcons = _ref2.actionIcons,
77
66
  actionIcons = _ref2$actionIcons === void 0 ? defaultActionIcons : _ref2$actionIcons,
78
67
  mapControls = _ref2.mapControls,
79
68
  readOnly = _ref2.readOnly,
80
69
  mapState = _ref2.mapState;
81
70
  var splitMap = (mapControls === null || mapControls === void 0 ? void 0 : mapControls.splitMap) || {};
71
+ var menuRef = (0, _react.useRef)(null);
72
+
73
+ // The split-mode menu open state is normally kept in redux
74
+ // (mapControls.splitMap.active) so it participates in the "only one
75
+ // map-control menu open at a time" logic in toggleMapControlUpdater.
76
+ // If a consumer supplies onSetMapSplitMode without onToggleMapControl, we
77
+ // fall back to local component state so the menu still opens/closes.
78
+ var useReduxMenuState = Boolean(onToggleMapControl);
82
79
  var _useState = (0, _react.useState)(false),
83
80
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
84
- menuOpen = _useState2[0],
85
- setMenuOpen = _useState2[1];
86
- var menuRef = (0, _react.useRef)(null);
81
+ localMenuOpen = _useState2[0],
82
+ setLocalMenuOpen = _useState2[1];
83
+ var toggleMenu = (0, _react.useCallback)(function () {
84
+ if (useReduxMenuState) {
85
+ onToggleMapControl === null || onToggleMapControl === void 0 || onToggleMapControl('splitMap');
86
+ } else {
87
+ setLocalMenuOpen(function (prev) {
88
+ return !prev;
89
+ });
90
+ }
91
+ }, [useReduxMenuState, onToggleMapControl]);
92
+ var closeMenu = (0, _react.useCallback)(function () {
93
+ if (useReduxMenuState) {
94
+ if (splitMap.active) {
95
+ onToggleMapControl === null || onToggleMapControl === void 0 || onToggleMapControl('splitMap');
96
+ }
97
+ } else {
98
+ setLocalMenuOpen(false);
99
+ }
100
+ }, [useReduxMenuState, onToggleMapControl, splitMap.active]);
101
+ var menuOpen = Boolean(onSetMapSplitMode) && (useReduxMenuState ? Boolean(splitMap.active) : localMenuOpen);
87
102
  var currentMode = (mapState === null || mapState === void 0 ? void 0 : mapState.mapSplitMode) || _constants.MapSplitMode.SINGLE_MAP;
88
103
  var onClick = (0, _react.useCallback)(function (event) {
89
104
  event.preventDefault();
90
105
  if (onSetMapSplitMode) {
91
- setMenuOpen(function (prev) {
92
- return !prev;
93
- });
106
+ toggleMenu();
94
107
  } else {
95
108
  onToggleSplitMap(isSplit ? mapIndex : undefined);
96
109
  }
97
- }, [isSplit, mapIndex, onToggleSplitMap, onSetMapSplitMode]);
110
+ }, [isSplit, mapIndex, onToggleSplitMap, onSetMapSplitMode, toggleMenu]);
98
111
  var handleModeSelect = (0, _react.useCallback)(function (mode) {
99
112
  if (onSetMapSplitMode) {
100
113
  onSetMapSplitMode({
101
114
  mapSplitMode: mode
102
115
  });
103
116
  }
104
- setMenuOpen(false);
105
- }, [onSetMapSplitMode]);
117
+ closeMenu();
118
+ }, [onSetMapSplitMode, closeMenu]);
106
119
  (0, _react.useEffect)(function () {
107
120
  var handleClickOutside = function handleClickOutside(event) {
108
121
  if (menuRef.current && !menuRef.current.contains(event.target)) {
109
- setMenuOpen(false);
122
+ closeMenu();
110
123
  }
111
124
  };
112
125
  if (menuOpen) {
@@ -115,7 +128,7 @@ function SplitMapButtonFactory(MapControlTooltip) {
115
128
  return function () {
116
129
  document.removeEventListener('mousedown', handleClickOutside);
117
130
  };
118
- }, [menuOpen]);
131
+ }, [menuOpen, closeMenu]);
119
132
  var isVisible = (0, _react.useMemo)(function () {
120
133
  return splitMap.show && readOnly !== true;
121
134
  }, [splitMap.show, readOnly]);
@@ -123,14 +136,26 @@ function SplitMapButtonFactory(MapControlTooltip) {
123
136
  return null;
124
137
  }
125
138
  return isVisible ? /*#__PURE__*/_react["default"].createElement("div", {
139
+ className: "split-map-controls",
126
140
  style: {
127
141
  position: 'relative'
128
142
  },
129
143
  ref: menuRef
130
- }, /*#__PURE__*/_react["default"].createElement(MapControlTooltip, {
144
+ }, menuOpen && onSetMapSplitMode ? /*#__PURE__*/_react["default"].createElement(MapControlToolbar, {
145
+ $show: menuOpen
146
+ }, SPLIT_MODE_OPTIONS.map(function (option) {
147
+ return /*#__PURE__*/_react["default"].createElement(_toolbarItem["default"], {
148
+ key: option.id,
149
+ onClick: function onClick() {
150
+ return handleModeSelect(option.id);
151
+ },
152
+ label: option.label,
153
+ active: currentMode === option.id
154
+ });
155
+ })) : null, /*#__PURE__*/_react["default"].createElement(MapControlTooltip, {
131
156
  id: "action-toggle",
132
157
  message: onSetMapSplitMode ? 'tooltip.selectSplitMode' : isSplit ? 'tooltip.closePanel' : 'tooltip.switchToDualView'
133
- }, /*#__PURE__*/_react["default"].createElement(_styledComponents2.MapControlButton, {
158
+ }, /*#__PURE__*/_react["default"].createElement(_styledComponents.MapControlButton, {
134
159
  active: isSplit,
135
160
  onClick: onClick,
136
161
  className: (0, _classnames["default"])('map-control-button', 'split-map', {
@@ -142,18 +167,10 @@ function SplitMapButtonFactory(MapControlTooltip) {
142
167
  height: "18px"
143
168
  }) : /*#__PURE__*/_react["default"].createElement(actionIcons.split, {
144
169
  height: "18px"
145
- }))), menuOpen && onSetMapSplitMode && /*#__PURE__*/_react["default"].createElement(StyledSplitModeMenu, null, SPLIT_MODE_OPTIONS.map(function (option) {
146
- return /*#__PURE__*/_react["default"].createElement(StyledMenuItem, {
147
- key: option.id,
148
- $active: currentMode === option.id,
149
- onClick: function onClick() {
150
- return handleModeSelect(option.id);
151
- }
152
- }, option.label);
153
- }))) : null;
170
+ })))) : null;
154
171
  };
155
172
  SplitMapButton.displayName = 'SplitMapButton';
156
173
  return /*#__PURE__*/_react["default"].memo(SplitMapButton);
157
174
  }
158
175
  var _default = exports["default"] = SplitMapButtonFactory;
159
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pY29ucyIsIl9tYXBDb250cm9sVG9vbHRpcCIsIl9jb25zdGFudHMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiU3BsaXRNYXBCdXR0b25GYWN0b3J5IiwiZGVwcyIsIk1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSIsIlN0eWxlZFNwbGl0TW9kZU1lbnUiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJkcm9wZG93bkxpc3RCZ2QiLCJTdHlsZWRNZW51SXRlbSIsIiRhY3RpdmUiLCJhY3RpdmVDb2xvciIsInRleHRDb2xvciIsImRyb3Bkb3duTGlzdEhpZ2hsaWdodEJnIiwidGV4dENvbG9ySGwiLCJTd2lwZUNvbXBhcmVJY29uIiwiX3JlZiIsIl9yZWYkaGVpZ2h0IiwiaGVpZ2h0IiwiY3JlYXRlRWxlbWVudCIsInZpZXdCb3giLCJmaWxsIiwiZmlsbFJ1bGUiLCJjbGlwUnVsZSIsImQiLCJTUExJVF9NT0RFX09QVElPTlMiLCJpZCIsIk1hcFNwbGl0TW9kZSIsIlNJTkdMRV9NQVAiLCJsYWJlbCIsIkRVQUxfTUFQIiwiU1dJUEVfQ09NUEFSRSIsIk1hcENvbnRyb2xUb29sdGlwIiwiZGVmYXVsdEFjdGlvbkljb25zIiwiRGVsZXRlIiwic3BsaXQiLCJTcGxpdCIsIlNwbGl0TWFwQnV0dG9uIiwiX3JlZjIiLCJpc1NwbGl0IiwibWFwSW5kZXgiLCJvblRvZ2dsZVNwbGl0TWFwIiwib25TZXRNYXBTcGxpdE1vZGUiLCJfcmVmMiRhY3Rpb25JY29ucyIsImFjdGlvbkljb25zIiwibWFwQ29udHJvbHMiLCJyZWFkT25seSIsIm1hcFN0YXRlIiwic3BsaXRNYXAiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJtZW51T3BlbiIsInNldE1lbnVPcGVuIiwibWVudVJlZiIsInVzZVJlZiIsImN1cnJlbnRNb2RlIiwibWFwU3BsaXRNb2RlIiwib25DbGljayIsInVzZUNhbGxiYWNrIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInByZXYiLCJ1bmRlZmluZWQiLCJoYW5kbGVNb2RlU2VsZWN0IiwibW9kZSIsInVzZUVmZmVjdCIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImN1cnJlbnQiLCJjb250YWlucyIsInRhcmdldCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJpc1Zpc2libGUiLCJ1c2VNZW1vIiwic2hvdyIsInN0eWxlIiwicG9zaXRpb24iLCJyZWYiLCJtZXNzYWdlIiwiTWFwQ29udHJvbEJ1dHRvbiIsImFjdGl2ZSIsImNsYXNzTmFtZSIsImNsYXNzbmFtZXMiLCJtYXAiLCJvcHRpb24iLCJrZXkiLCJkaXNwbGF5TmFtZSIsIlJlYWN0IiwibWVtbyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvc3BsaXQtbWFwLWJ1dHRvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50VHlwZSwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7TWFwQ29udHJvbEJ1dHRvbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7RGVsZXRlLCBTcGxpdH0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC10b29sdGlwJztcbmltcG9ydCB7TWFwQ29udHJvbEl0ZW0sIE1hcENvbnRyb2xzLCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge01hcFNwbGl0TW9kZX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5TcGxpdE1hcEJ1dHRvbkZhY3RvcnkuZGVwcyA9IFtNYXBDb250cm9sVG9vbHRpcEZhY3RvcnldO1xuXG5pbnRlcmZhY2UgU3BsaXRNYXBCdXR0b25JY29ucyB7XG4gIGRlbGV0ZTogQ29tcG9uZW50VHlwZTxhbnk+O1xuICBzcGxpdDogQ29tcG9uZW50VHlwZTxhbnk+O1xufVxuXG5leHBvcnQgdHlwZSBTcGxpdE1hcEJ1dHRvblByb3BzID0ge1xuICBpc1NwbGl0OiBib29sZWFuO1xuICBtYXBJbmRleDogbnVtYmVyO1xuICBvblRvZ2dsZVNwbGl0TWFwOiAoaW5kZXg/OiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uU2V0TWFwU3BsaXRNb2RlPzogKHBheWxvYWQ6IHttYXBTcGxpdE1vZGU6IE1hcFNwbGl0TW9kZX0pID0+IHZvaWQ7XG4gIGFjdGlvbkljb25zOiBTcGxpdE1hcEJ1dHRvbkljb25zO1xuICByZWFkT25seTogYm9vbGVhbjtcbiAgbWFwQ29udHJvbHM6IE1hcENvbnRyb2xzO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xufTtcblxuY29uc3QgU3R5bGVkU3BsaXRNb2RlTWVudSA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtMTYwcHg7XG4gIGJhY2tncm91bmQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QmdkIHx8ICcjM0E0MTRDJ307XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMCA2cHggMTJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNik7XG4gIHBhZGRpbmc6IDRweCAwO1xuICB6LWluZGV4OiAxMDAwO1xuICBtaW4td2lkdGg6IDE0MHB4O1xuYDtcblxuY29uc3QgU3R5bGVkTWVudUl0ZW0gPSBzdHlsZWQuZGl2PHskYWN0aXZlPzogYm9vbGVhbn0+YFxuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgY29sb3I6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy4kYWN0aXZlXG4gICAgICA/IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yIHx8ICcjMUZCQUQ2J1xuICAgICAgOiBwcm9wcy50aGVtZS50ZXh0Q29sb3IgfHwgJyNBMEE3QjQnfTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiAke3Byb3BzID0+IChwcm9wcy4kYWN0aXZlID8gNTAwIDogNDAwKX07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0SGlnaGxpZ2h0QmcgfHwgJyM0QjU0NjQnfTtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbCB8fCAnI0ZGRkZGRid9O1xuICB9XG5gO1xuXG5jb25zdCBTd2lwZUNvbXBhcmVJY29uOiBSZWFjdC5GQzx7aGVpZ2h0Pzogc3RyaW5nfT4gPSAoe2hlaWdodCA9ICcxOHB4J30pID0+IChcbiAgPHN2ZyBoZWlnaHQ9e2hlaWdodH0gdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgIGNsaXBSdWxlPVwiZXZlbm9kZFwiXG4gICAgICBkPVwiTTIgMmgxMnYxMkgyVjJ6bTEgMXYxMGgxMFYzSDN6XCJcbiAgICAvPlxuICAgIDxwYXRoIGQ9XCJNNy41IDN2MTBoMVYzelwiIC8+XG4gICAgPHBhdGggZD1cIk01IDhsMi0ydjRsLTItMnpcIiAvPlxuICAgIDxwYXRoIGQ9XCJNMTEgOGwtMi0ydjRsMi0yelwiIC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgU1BMSVRfTU9ERV9PUFRJT05TID0gW1xuICB7aWQ6IE1hcFNwbGl0TW9kZS5TSU5HTEVfTUFQLCBsYWJlbDogJ1NpbmdsZSd9LFxuICB7aWQ6IE1hcFNwbGl0TW9kZS5EVUFMX01BUCwgbGFiZWw6ICdEdWFsJ30sXG4gIHtpZDogTWFwU3BsaXRNb2RlLlNXSVBFX0NPTVBBUkUsIGxhYmVsOiAnU3dpcGUnfVxuXTtcblxuZnVuY3Rpb24gU3BsaXRNYXBCdXR0b25GYWN0b3J5KE1hcENvbnRyb2xUb29sdGlwKSB7XG4gIGNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgICBkZWxldGU6IERlbGV0ZSxcbiAgICBzcGxpdDogU3BsaXRcbiAgfTtcblxuICAvKiogQHR5cGUge2ltcG9ydCgnLi9zcGxpdC1tYXAtYnV0dG9uJykuU3BsaXRNYXBCdXR0b25Db21wb25lbnR9ICovXG4gIGNvbnN0IFNwbGl0TWFwQnV0dG9uOiBSZWFjdC5GQzxTcGxpdE1hcEJ1dHRvblByb3BzPiA9ICh7XG4gICAgaXNTcGxpdCxcbiAgICBtYXBJbmRleCxcbiAgICBvblRvZ2dsZVNwbGl0TWFwLFxuICAgIG9uU2V0TWFwU3BsaXRNb2RlLFxuICAgIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zLFxuICAgIG1hcENvbnRyb2xzLFxuICAgIHJlYWRPbmx5LFxuICAgIG1hcFN0YXRlXG4gIH0pID0+IHtcbiAgICBjb25zdCBzcGxpdE1hcCA9IG1hcENvbnRyb2xzPy5zcGxpdE1hcCB8fCAoe30gYXMgTWFwQ29udHJvbEl0ZW0pO1xuICAgIGNvbnN0IFttZW51T3Blbiwgc2V0TWVudU9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IG1lbnVSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gICAgY29uc3QgY3VycmVudE1vZGUgPSBtYXBTdGF0ZT8ubWFwU3BsaXRNb2RlIHx8IE1hcFNwbGl0TW9kZS5TSU5HTEVfTUFQO1xuXG4gICAgY29uc3Qgb25DbGljayA9IHVzZUNhbGxiYWNrKFxuICAgICAgZXZlbnQgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAob25TZXRNYXBTcGxpdE1vZGUpIHtcbiAgICAgICAgICBzZXRNZW51T3BlbihwcmV2ID0+ICFwcmV2KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvblRvZ2dsZVNwbGl0TWFwKGlzU3BsaXQgPyBtYXBJbmRleCA6IHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbaXNTcGxpdCwgbWFwSW5kZXgsIG9uVG9nZ2xlU3BsaXRNYXAsIG9uU2V0TWFwU3BsaXRNb2RlXVxuICAgICk7XG5cbiAgICBjb25zdCBoYW5kbGVNb2RlU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAobW9kZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChvblNldE1hcFNwbGl0TW9kZSkge1xuICAgICAgICAgIG9uU2V0TWFwU3BsaXRNb2RlKHttYXBTcGxpdE1vZGU6IG1vZGUgYXMgTWFwU3BsaXRNb2RlfSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0TWVudU9wZW4oZmFsc2UpO1xuICAgICAgfSxcbiAgICAgIFtvblNldE1hcFNwbGl0TW9kZV1cbiAgICApO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAobWVudVJlZi5jdXJyZW50ICYmICFtZW51UmVmLmN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgICAgc2V0TWVudU9wZW4oZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaWYgKG1lbnVPcGVuKSB7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpO1xuICAgICAgfTtcbiAgICB9LCBbbWVudU9wZW5dKTtcblxuICAgIGNvbnN0IGlzVmlzaWJsZSA9IHVzZU1lbW8oKCkgPT4gc3BsaXRNYXAuc2hvdyAmJiByZWFkT25seSAhPT0gdHJ1ZSwgW3NwbGl0TWFwLnNob3csIHJlYWRPbmx5XSk7XG5cbiAgICBpZiAoIXNwbGl0TWFwLnNob3cpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaXNWaXNpYmxlID8gKFxuICAgICAgPGRpdiBzdHlsZT17e3Bvc2l0aW9uOiAncmVsYXRpdmUnfX0gcmVmPXttZW51UmVmfT5cbiAgICAgICAgPE1hcENvbnRyb2xUb29sdGlwXG4gICAgICAgICAgaWQ9XCJhY3Rpb24tdG9nZ2xlXCJcbiAgICAgICAgICBtZXNzYWdlPXtcbiAgICAgICAgICAgIG9uU2V0TWFwU3BsaXRNb2RlXG4gICAgICAgICAgICAgID8gJ3Rvb2x0aXAuc2VsZWN0U3BsaXRNb2RlJ1xuICAgICAgICAgICAgICA6IGlzU3BsaXRcbiAgICAgICAgICAgICAgPyAndG9vbHRpcC5jbG9zZVBhbmVsJ1xuICAgICAgICAgICAgICA6ICd0b29sdGlwLnN3aXRjaFRvRHVhbFZpZXcnXG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAgPE1hcENvbnRyb2xCdXR0b25cbiAgICAgICAgICAgIGFjdGl2ZT17aXNTcGxpdH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ21hcC1jb250cm9sLWJ1dHRvbicsICdzcGxpdC1tYXAnLCB7J2Nsb3NlLW1hcCc6IGlzU3BsaXR9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y3VycmVudE1vZGUgPT09IE1hcFNwbGl0TW9kZS5TV0lQRV9DT01QQVJFID8gKFxuICAgICAgICAgICAgICA8U3dpcGVDb21wYXJlSWNvbiBoZWlnaHQ9XCIxOHB4XCIgLz5cbiAgICAgICAgICAgICkgOiBpc1NwbGl0ID8gKFxuICAgICAgICAgICAgICA8YWN0aW9uSWNvbnMuZGVsZXRlIGhlaWdodD1cIjE4cHhcIiAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPGFjdGlvbkljb25zLnNwbGl0IGhlaWdodD1cIjE4cHhcIiAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L01hcENvbnRyb2xCdXR0b24+XG4gICAgICAgIDwvTWFwQ29udHJvbFRvb2x0aXA+XG4gICAgICAgIHttZW51T3BlbiAmJiBvblNldE1hcFNwbGl0TW9kZSAmJiAoXG4gICAgICAgICAgPFN0eWxlZFNwbGl0TW9kZU1lbnU+XG4gICAgICAgICAgICB7U1BMSVRfTU9ERV9PUFRJT05TLm1hcChvcHRpb24gPT4gKFxuICAgICAgICAgICAgICA8U3R5bGVkTWVudUl0ZW1cbiAgICAgICAgICAgICAgICBrZXk9e29wdGlvbi5pZH1cbiAgICAgICAgICAgICAgICAkYWN0aXZlPXtjdXJyZW50TW9kZSA9PT0gb3B0aW9uLmlkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZU1vZGVTZWxlY3Qob3B0aW9uLmlkKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgICAgIDwvU3R5bGVkTWVudUl0ZW0+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L1N0eWxlZFNwbGl0TW9kZU1lbnU+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApIDogbnVsbDtcbiAgfTtcblxuICBTcGxpdE1hcEJ1dHRvbi5kaXNwbGF5TmFtZSA9ICdTcGxpdE1hcEJ1dHRvbic7XG4gIHJldHVybiBSZWFjdC5tZW1vKFNwbGl0TWFwQnV0dG9uKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgU3BsaXRNYXBCdXR0b25GYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLGtCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxrQkFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQWtELElBQUFRLGVBQUEsRUFBQUMsZ0JBQUEsRUFWbEQ7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBWix3QkFBQVksQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENB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
176
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pY29ucyIsIl90b29sYmFySXRlbSIsIl9tYXBDb250cm9sVG9vbHRpcCIsIl9tYXBDb250cm9sVG9vbGJhciIsIl9jb25zdGFudHMiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIlNwbGl0TWFwQnV0dG9uRmFjdG9yeSIsImRlcHMiLCJNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkiLCJNYXBDb250cm9sVG9vbGJhckZhY3RvcnkiLCJTd2lwZUNvbXBhcmVJY29uIiwiX3JlZiIsIl9yZWYkaGVpZ2h0IiwiaGVpZ2h0IiwiY3JlYXRlRWxlbWVudCIsInZpZXdCb3giLCJmaWxsIiwiZmlsbFJ1bGUiLCJjbGlwUnVsZSIsImQiLCJTUExJVF9NT0RFX09QVElPTlMiLCJpZCIsIk1hcFNwbGl0TW9kZSIsIlNJTkdMRV9NQVAiLCJsYWJlbCIsIkRVQUxfTUFQIiwiU1dJUEVfQ09NUEFSRSIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFRvb2xiYXIiLCJkZWZhdWx0QWN0aW9uSWNvbnMiLCJEZWxldGUiLCJzcGxpdCIsIlNwbGl0IiwiU3BsaXRNYXBCdXR0b24iLCJfcmVmMiIsImlzU3BsaXQiLCJtYXBJbmRleCIsIm9uVG9nZ2xlU3BsaXRNYXAiLCJvblNldE1hcFNwbGl0TW9kZSIsIm9uVG9nZ2xlTWFwQ29udHJvbCIsIl9yZWYyJGFjdGlvbkljb25zIiwiYWN0aW9uSWNvbnMiLCJtYXBDb250cm9scyIsInJlYWRPbmx5IiwibWFwU3RhdGUiLCJzcGxpdE1hcCIsIm1lbnVSZWYiLCJ1c2VSZWYiLCJ1c2VSZWR1eE1lbnVTdGF0ZSIsIkJvb2xlYW4iLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJsb2NhbE1lbnVPcGVuIiwic2V0TG9jYWxNZW51T3BlbiIsInRvZ2dsZU1lbnUiLCJ1c2VDYWxsYmFjayIsInByZXYiLCJjbG9zZU1lbnUiLCJhY3RpdmUiLCJtZW51T3BlbiIsImN1cnJlbnRNb2RlIiwibWFwU3BsaXRNb2RlIiwib25DbGljayIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ1bmRlZmluZWQiLCJoYW5kbGVNb2RlU2VsZWN0IiwibW9kZSIsInVzZUVmZmVjdCIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImN1cnJlbnQiLCJjb250YWlucyIsInRhcmdldCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJpc1Zpc2libGUiLCJ1c2VNZW1vIiwic2hvdyIsImNsYXNzTmFtZSIsInN0eWxlIiwicG9zaXRpb24iLCJyZWYiLCIkc2hvdyIsIm1hcCIsIm9wdGlvbiIsImtleSIsIm1lc3NhZ2UiLCJNYXBDb250cm9sQnV0dG9uIiwiY2xhc3NuYW1lcyIsImRpc3BsYXlOYW1lIiwiUmVhY3QiLCJtZW1vIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9zcGxpdC1tYXAtYnV0dG9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnRUeXBlLCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7TWFwQ29udHJvbEJ1dHRvbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7RGVsZXRlLCBTcGxpdH0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBUb29sYmFySXRlbSBmcm9tICcuLi9jb21tb24vdG9vbGJhci1pdGVtJztcbmltcG9ydCBNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC10b29sdGlwJztcbmltcG9ydCBNYXBDb250cm9sVG9vbGJhckZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC10b29sYmFyJztcbmltcG9ydCB7TWFwQ29udHJvbEl0ZW0sIE1hcENvbnRyb2xzLCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge01hcFNwbGl0TW9kZX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5TcGxpdE1hcEJ1dHRvbkZhY3RvcnkuZGVwcyA9IFtNYXBDb250cm9sVG9vbHRpcEZhY3RvcnksIE1hcENvbnRyb2xUb29sYmFyRmFjdG9yeV07XG5cbmludGVyZmFjZSBTcGxpdE1hcEJ1dHRvbkljb25zIHtcbiAgZGVsZXRlOiBDb21wb25lbnRUeXBlPGFueT47XG4gIHNwbGl0OiBDb21wb25lbnRUeXBlPGFueT47XG59XG5cbmV4cG9ydCB0eXBlIFNwbGl0TWFwQnV0dG9uUHJvcHMgPSB7XG4gIGlzU3BsaXQ6IGJvb2xlYW47XG4gIG1hcEluZGV4OiBudW1iZXI7XG4gIG9uVG9nZ2xlU3BsaXRNYXA6IChpbmRleD86IG51bWJlcikgPT4gdm9pZDtcbiAgb25TZXRNYXBTcGxpdE1vZGU/OiAocGF5bG9hZDoge21hcFNwbGl0TW9kZTogTWFwU3BsaXRNb2RlfSkgPT4gdm9pZDtcbiAgb25Ub2dnbGVNYXBDb250cm9sPzogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM6IFNwbGl0TWFwQnV0dG9uSWNvbnM7XG4gIHJlYWRPbmx5OiBib29sZWFuO1xuICBtYXBDb250cm9sczogTWFwQ29udHJvbHM7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG59O1xuXG5jb25zdCBTd2lwZUNvbXBhcmVJY29uOiBSZWFjdC5GQzx7aGVpZ2h0Pzogc3RyaW5nfT4gPSAoe2hlaWdodCA9ICcxOHB4J30pID0+IChcbiAgPHN2ZyBoZWlnaHQ9e2hlaWdodH0gdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgIGNsaXBSdWxlPVwiZXZlbm9kZFwiXG4gICAgICBkPVwiTTIgMmgxMnYxMkgyVjJ6bTEgMXYxMGgxMFYzSDN6XCJcbiAgICAvPlxuICAgIDxwYXRoIGQ9XCJNNy41IDN2MTBoMVYzelwiIC8+XG4gICAgPHBhdGggZD1cIk01IDhsMi0ydjRsLTItMnpcIiAvPlxuICAgIDxwYXRoIGQ9XCJNMTEgOGwtMi0ydjRsMi0yelwiIC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgU1BMSVRfTU9ERV9PUFRJT05TID0gW1xuICB7aWQ6IE1hcFNwbGl0TW9kZS5TSU5HTEVfTUFQLCBsYWJlbDogJ3Rvb2x0aXAuc2luZ2xlVmlldyd9LFxuICB7aWQ6IE1hcFNwbGl0TW9kZS5EVUFMX01BUCwgbGFiZWw6ICd0b29sdGlwLmR1YWxWaWV3J30sXG4gIHtpZDogTWFwU3BsaXRNb2RlLlNXSVBFX0NPTVBBUkUsIGxhYmVsOiAndG9vbHRpcC5zd2lwZVZpZXcnfVxuXTtcblxuZnVuY3Rpb24gU3BsaXRNYXBCdXR0b25GYWN0b3J5KFxuICBNYXBDb250cm9sVG9vbHRpcDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5PixcbiAgTWFwQ29udHJvbFRvb2xiYXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xUb29sYmFyRmFjdG9yeT5cbikge1xuICBjb25zdCBkZWZhdWx0QWN0aW9uSWNvbnMgPSB7XG4gICAgZGVsZXRlOiBEZWxldGUsXG4gICAgc3BsaXQ6IFNwbGl0XG4gIH07XG5cbiAgLyoqIEB0eXBlIHtpbXBvcnQoJy4vc3BsaXQtbWFwLWJ1dHRvbicpLlNwbGl0TWFwQnV0dG9uQ29tcG9uZW50fSAqL1xuICBjb25zdCBTcGxpdE1hcEJ1dHRvbjogUmVhY3QuRkM8U3BsaXRNYXBCdXR0b25Qcm9wcz4gPSAoe1xuICAgIGlzU3BsaXQsXG4gICAgbWFwSW5kZXgsXG4gICAgb25Ub2dnbGVTcGxpdE1hcCxcbiAgICBvblNldE1hcFNwbGl0TW9kZSxcbiAgICBvblRvZ2dsZU1hcENvbnRyb2wsXG4gICAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnMsXG4gICAgbWFwQ29udHJvbHMsXG4gICAgcmVhZE9ubHksXG4gICAgbWFwU3RhdGVcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHNwbGl0TWFwID0gbWFwQ29udHJvbHM/LnNwbGl0TWFwIHx8ICh7fSBhcyBNYXBDb250cm9sSXRlbSk7XG4gICAgY29uc3QgbWVudVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgICAvLyBUaGUgc3BsaXQtbW9kZSBtZW51IG9wZW4gc3RhdGUgaXMgbm9ybWFsbHkga2VwdCBpbiByZWR1eFxuICAgIC8vIChtYXBDb250cm9scy5zcGxpdE1hcC5hY3RpdmUpIHNvIGl0IHBhcnRpY2lwYXRlcyBpbiB0aGUgXCJvbmx5IG9uZVxuICAgIC8vIG1hcC1jb250cm9sIG1lbnUgb3BlbiBhdCBhIHRpbWVcIiBsb2dpYyBpbiB0b2dnbGVNYXBDb250cm9sVXBkYXRlci5cbiAgICAvLyBJZiBhIGNvbnN1bWVyIHN1cHBsaWVzIG9uU2V0TWFwU3BsaXRNb2RlIHdpdGhvdXQgb25Ub2dnbGVNYXBDb250cm9sLCB3ZVxuICAgIC8vIGZhbGwgYmFjayB0byBsb2NhbCBjb21wb25lbnQgc3RhdGUgc28gdGhlIG1lbnUgc3RpbGwgb3BlbnMvY2xvc2VzLlxuICAgIGNvbnN0IHVzZVJlZHV4TWVudVN0YXRlID0gQm9vbGVhbihvblRvZ2dsZU1hcENvbnRyb2wpO1xuICAgIGNvbnN0IFtsb2NhbE1lbnVPcGVuLCBzZXRMb2NhbE1lbnVPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgIGNvbnN0IHRvZ2dsZU1lbnUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAodXNlUmVkdXhNZW51U3RhdGUpIHtcbiAgICAgICAgb25Ub2dnbGVNYXBDb250cm9sPy4oJ3NwbGl0TWFwJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRMb2NhbE1lbnVPcGVuKHByZXYgPT4gIXByZXYpO1xuICAgICAgfVxuICAgIH0sIFt1c2VSZWR1eE1lbnVTdGF0ZSwgb25Ub2dnbGVNYXBDb250cm9sXSk7XG5cbiAgICBjb25zdCBjbG9zZU1lbnUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAodXNlUmVkdXhNZW51U3RhdGUpIHtcbiAgICAgICAgaWYgKHNwbGl0TWFwLmFjdGl2ZSkge1xuICAgICAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbD8uKCdzcGxpdE1hcCcpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRMb2NhbE1lbnVPcGVuKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9LCBbdXNlUmVkdXhNZW51U3RhdGUsIG9uVG9nZ2xlTWFwQ29udHJvbCwgc3BsaXRNYXAuYWN0aXZlXSk7XG5cbiAgICBjb25zdCBtZW51T3BlbiA9XG4gICAgICBCb29sZWFuKG9uU2V0TWFwU3BsaXRNb2RlKSAmJiAodXNlUmVkdXhNZW51U3RhdGUgPyBCb29sZWFuKHNwbGl0TWFwLmFjdGl2ZSkgOiBsb2NhbE1lbnVPcGVuKTtcblxuICAgIGNvbnN0IGN1cnJlbnRNb2RlID0gbWFwU3RhdGU/Lm1hcFNwbGl0TW9kZSB8fCBNYXBTcGxpdE1vZGUuU0lOR0xFX01BUDtcblxuICAgIGNvbnN0IG9uQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKG9uU2V0TWFwU3BsaXRNb2RlKSB7XG4gICAgICAgICAgdG9nZ2xlTWVudSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uVG9nZ2xlU3BsaXRNYXAoaXNTcGxpdCA/IG1hcEluZGV4IDogdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtpc1NwbGl0LCBtYXBJbmRleCwgb25Ub2dnbGVTcGxpdE1hcCwgb25TZXRNYXBTcGxpdE1vZGUsIHRvZ2dsZU1lbnVdXG4gICAgKTtcblxuICAgIGNvbnN0IGhhbmRsZU1vZGVTZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAgIChtb2RlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKG9uU2V0TWFwU3BsaXRNb2RlKSB7XG4gICAgICAgICAgb25TZXRNYXBTcGxpdE1vZGUoe21hcFNwbGl0TW9kZTogbW9kZSBhcyBNYXBTcGxpdE1vZGV9KTtcbiAgICAgICAgfVxuICAgICAgICBjbG9zZU1lbnUoKTtcbiAgICAgIH0sXG4gICAgICBbb25TZXRNYXBTcGxpdE1vZGUsIGNsb3NlTWVudV1cbiAgICApO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAobWVudVJlZi5jdXJyZW50ICYmICFtZW51UmVmLmN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgICAgY2xvc2VNZW51KCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBpZiAobWVudU9wZW4pIHtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgICB9O1xuICAgIH0sIFttZW51T3BlbiwgY2xvc2VNZW51XSk7XG5cbiAgICBjb25zdCBpc1Zpc2libGUgPSB1c2VNZW1vKCgpID0+IHNwbGl0TWFwLnNob3cgJiYgcmVhZE9ubHkgIT09IHRydWUsIFtzcGxpdE1hcC5zaG93LCByZWFkT25seV0pO1xuXG4gICAgaWYgKCFzcGxpdE1hcC5zaG93KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmlzaWJsZSA/IChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BsaXQtbWFwLWNvbnRyb2xzXCIgc3R5bGU9e3twb3NpdGlvbjogJ3JlbGF0aXZlJ319IHJlZj17bWVudVJlZn0+XG4gICAgICAgIHttZW51T3BlbiAmJiBvblNldE1hcFNwbGl0TW9kZSA/IChcbiAgICAgICAgICA8TWFwQ29udHJvbFRvb2xiYXIgJHNob3c9e21lbnVPcGVufT5cbiAgICAgICAgICAgIHtTUExJVF9NT0RFX09QVElPTlMubWFwKG9wdGlvbiA9PiAoXG4gICAgICAgICAgICAgIDxUb29sYmFySXRlbVxuICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLmlkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZU1vZGVTZWxlY3Qob3B0aW9uLmlkKX1cbiAgICAgICAgICAgICAgICBsYWJlbD17b3B0aW9uLmxhYmVsfVxuICAgICAgICAgICAgICAgIGFjdGl2ZT17Y3VycmVudE1vZGUgPT09IG9wdGlvbi5pZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvTWFwQ29udHJvbFRvb2xiYXI+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8TWFwQ29udHJvbFRvb2x0aXBcbiAgICAgICAgICBpZD1cImFjdGlvbi10b2dnbGVcIlxuICAgICAgICAgIG1lc3NhZ2U9e1xuICAgICAgICAgICAgb25TZXRNYXBTcGxpdE1vZGVcbiAgICAgICAgICAgICAgPyAndG9vbHRpcC5zZWxlY3RTcGxpdE1vZGUnXG4gICAgICAgICAgICAgIDogaXNTcGxpdFxuICAgICAgICAgICAgICA/ICd0b29sdGlwLmNsb3NlUGFuZWwnXG4gICAgICAgICAgICAgIDogJ3Rvb2x0aXAuc3dpdGNoVG9EdWFsVmlldydcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8TWFwQ29udHJvbEJ1dHRvblxuICAgICAgICAgICAgYWN0aXZlPXtpc1NwbGl0fVxuICAgICAgICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnbWFwLWNvbnRyb2wtYnV0dG9uJywgJ3NwbGl0LW1hcCcsIHsnY2xvc2UtbWFwJzogaXNTcGxpdH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtjdXJyZW50TW9kZSA9PT0gTWFwU3BsaXRNb2RlLlNXSVBFX0NPTVBBUkUgPyAoXG4gICAgICAgICAgICAgIDxTd2lwZUNvbXBhcmVJY29uIGhlaWdodD1cIjE4cHhcIiAvPlxuICAgICAgICAgICAgKSA6IGlzU3BsaXQgPyAoXG4gICAgICAgICAgICAgIDxhY3Rpb25JY29ucy5kZWxldGUgaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8YWN0aW9uSWNvbnMuc3BsaXQgaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgICAgPC9NYXBDb250cm9sVG9vbHRpcD5cbiAgICAgIDwvZGl2PlxuICAgICkgOiBudWxsO1xuICB9O1xuXG4gIFNwbGl0TWFwQnV0dG9uLmRpc3BsYXlOYW1lID0gJ1NwbGl0TWFwQnV0dG9uJztcbiAgcmV0dXJuIFJlYWN0Lm1lbW8oU3BsaXRNYXBCdXR0b24pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBTcGxpdE1hcEJ1dHRvbkZhY3Rvcnk7XG4i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
@@ -1,17 +1,23 @@
1
1
  import React, { ComponentType } from 'react';
2
2
  import MapControlTooltipFactory from './map-control-tooltip';
3
+ import MapControlToolbarFactory from './map-control-toolbar';
3
4
  import { MapControls } from '@kepler.gl/types';
5
+ import { MapViewMode } from '@kepler.gl/constants';
4
6
  interface Toggle3dButtonIcons {
5
7
  cube: ComponentType<any>;
8
+ globe: ComponentType<any>;
6
9
  }
7
10
  export type Toggle3dButtonProps = {
8
11
  dragRotate: boolean;
12
+ mapViewMode?: MapViewMode;
9
13
  onTogglePerspective: () => void;
14
+ onSetMapViewMode?: (mode: MapViewMode) => void;
15
+ onToggleMapControl: (control: string) => void;
10
16
  actionIcons: Toggle3dButtonIcons;
11
17
  mapControls: MapControls;
12
18
  };
13
- declare function Toggle3dButtonFactory(MapControlTooltip: any): React.NamedExoticComponent<Toggle3dButtonProps>;
19
+ declare function Toggle3dButtonFactory(MapControlTooltip: ReturnType<typeof MapControlTooltipFactory>, MapControlToolbar: ReturnType<typeof MapControlToolbarFactory>): React.NamedExoticComponent<Toggle3dButtonProps>;
14
20
  declare namespace Toggle3dButtonFactory {
15
- var deps: (typeof MapControlTooltipFactory)[];
21
+ var deps: (typeof MapControlToolbarFactory | typeof MapControlTooltipFactory)[];
16
22
  }
17
23
  export default Toggle3dButtonFactory;
@@ -12,49 +12,111 @@ var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _icons = require("../common/icons");
13
13
  var _styledComponents = require("../common/styled-components");
14
14
  var _mapControlTooltip = _interopRequireDefault(require("./map-control-tooltip"));
15
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
15
+ var _mapControlToolbar = _interopRequireDefault(require("./map-control-toolbar"));
16
+ var _toolbarItem = _interopRequireDefault(require("../common/toolbar-item"));
17
+ var _constants = require("@kepler.gl/constants");
18
+ var _utils = require("@kepler.gl/utils");
19
+ 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); }
17
20
  // SPDX-License-Identifier: MIT
18
21
  // Copyright contributors to the kepler.gl project
19
22
 
20
- Toggle3dButtonFactory.deps = [_mapControlTooltip["default"]];
21
- function Toggle3dButtonFactory(MapControlTooltip) {
23
+ Toggle3dButtonFactory.deps = [_mapControlTooltip["default"], _mapControlToolbar["default"]];
24
+ var VIEW_MODE_ITEMS = [{
25
+ id: _constants.MapViewMode.MODE_2D,
26
+ label: 'tooltip.top'
27
+ }, {
28
+ id: _constants.MapViewMode.MODE_3D,
29
+ label: 'tooltip.3DMap'
30
+ }, {
31
+ id: _constants.MapViewMode.MODE_GLOBE,
32
+ label: 'tooltip.globeMap'
33
+ }];
34
+ function Toggle3dButtonFactory(MapControlTooltip, MapControlToolbar) {
22
35
  var defaultActionIcons = {
23
36
  cube: function cube(props) {
24
37
  return /*#__PURE__*/_react["default"].createElement(_icons.Cube3d, (0, _extends2["default"])({}, props, {
25
38
  height: "18px"
26
39
  }));
40
+ },
41
+ globe: function globe(props) {
42
+ return /*#__PURE__*/_react["default"].createElement(_icons.Globe, (0, _extends2["default"])({}, props, {
43
+ height: "18px"
44
+ }));
27
45
  }
28
46
  };
29
- /** @type {import('./toggle-3d-button').Toggle3dButtonComponent} */
30
47
  var Toggle3dButton = function Toggle3dButton(_ref) {
48
+ var _mapControls$toggle3d;
31
49
  var dragRotate = _ref.dragRotate,
50
+ mapViewMode = _ref.mapViewMode,
32
51
  onTogglePerspective = _ref.onTogglePerspective,
52
+ onSetMapViewMode = _ref.onSetMapViewMode,
53
+ onToggleMapControl = _ref.onToggleMapControl,
33
54
  _ref$actionIcons = _ref.actionIcons,
34
55
  actionIcons = _ref$actionIcons === void 0 ? defaultActionIcons : _ref$actionIcons,
35
56
  mapControls = _ref.mapControls;
36
- var onClick = (0, _react.useCallback)(function (event) {
37
- event.preventDefault();
38
- onTogglePerspective();
39
- }, [onTogglePerspective]);
57
+ var currentMode = mapViewMode || (dragRotate ? _constants.MapViewMode.MODE_3D : _constants.MapViewMode.MODE_2D);
58
+ var onClickButton = (0, _react.useCallback)(function (e) {
59
+ e.preventDefault();
60
+ onToggleMapControl('toggle3d');
61
+ }, [onToggleMapControl]);
62
+ var onSelectMode = (0, _react.useCallback)(function (mode) {
63
+ if (onSetMapViewMode) {
64
+ onSetMapViewMode(mode);
65
+ } else if (mode === _constants.MapViewMode.MODE_3D) {
66
+ if (!dragRotate) onTogglePerspective();
67
+ } else if (mode === _constants.MapViewMode.MODE_2D) {
68
+ if (dragRotate) onTogglePerspective();
69
+ }
70
+ onToggleMapControl('toggle3d');
71
+ }, [onSetMapViewMode, onTogglePerspective, dragRotate, onToggleMapControl]);
40
72
  var isVisible = (0, _react.useMemo)(function () {
41
73
  return ((mapControls === null || mapControls === void 0 ? void 0 : mapControls.toggle3d) || {}).show;
42
74
  }, [mapControls]);
43
- return isVisible ? /*#__PURE__*/_react["default"].createElement(MapControlTooltip, {
75
+
76
+ // Optionally hide the globe view mode option via application config.
77
+ var viewModeItems = (0, _react.useMemo)(function () {
78
+ return (0, _utils.getApplicationConfig)().enableGlobeView ? VIEW_MODE_ITEMS : VIEW_MODE_ITEMS.filter(function (item) {
79
+ return item.id !== _constants.MapViewMode.MODE_GLOBE;
80
+ });
81
+ }, []);
82
+ if (!isVisible) return null;
83
+ var isActive = mapControls === null || mapControls === void 0 || (_mapControls$toggle3d = mapControls.toggle3d) === null || _mapControls$toggle3d === void 0 ? void 0 : _mapControls$toggle3d.active;
84
+ var isGlobe = currentMode === _constants.MapViewMode.MODE_GLOBE;
85
+ var is3d = currentMode === _constants.MapViewMode.MODE_3D;
86
+ var ActiveIcon = isGlobe ? actionIcons.globe : actionIcons.cube;
87
+ return /*#__PURE__*/_react["default"].createElement("div", {
88
+ className: "view-mode-controls",
89
+ style: {
90
+ position: 'relative'
91
+ }
92
+ }, isActive ? /*#__PURE__*/_react["default"].createElement(MapControlToolbar, {
93
+ $show: isActive
94
+ }, viewModeItems.map(function (item) {
95
+ return /*#__PURE__*/_react["default"].createElement(_toolbarItem["default"], {
96
+ key: item.id,
97
+ onClick: function onClick() {
98
+ return onSelectMode(item.id);
99
+ },
100
+ label: item.label,
101
+ icon: item.id === _constants.MapViewMode.MODE_GLOBE ? actionIcons.globe : actionIcons.cube,
102
+ active: currentMode === item.id
103
+ });
104
+ })) : null, /*#__PURE__*/_react["default"].createElement(MapControlTooltip, {
44
105
  id: "action-3d",
45
- message: dragRotate ? 'tooltip.disable3DMap' : 'tooltip.3DMap'
106
+ message: "tooltip.viewMode"
46
107
  }, /*#__PURE__*/_react["default"].createElement(_styledComponents.MapControlButton, {
47
- onClick: onClick,
48
- active: dragRotate,
108
+ onClick: onClickButton,
109
+ active: is3d || isGlobe,
49
110
  className: (0, _classnames["default"])('map-control-button', 'toggle-3d', {
50
- map3d: dragRotate
111
+ map3d: is3d,
112
+ mapGlobe: isGlobe
51
113
  })
52
- }, /*#__PURE__*/_react["default"].createElement(actionIcons.cube, {
114
+ }, /*#__PURE__*/_react["default"].createElement(ActiveIcon, {
53
115
  height: "22px"
54
- }))) : null;
116
+ }))));
55
117
  };
56
118
  Toggle3dButton.displayName = 'Toggle3dButton';
57
119
  return /*#__PURE__*/_react["default"].memo(Toggle3dButton);
58
120
  }
59
121
  var _default = exports["default"] = Toggle3dButtonFactory;
60
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaWNvbnMiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9tYXBDb250cm9sVG9vbHRpcCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlRvZ2dsZTNkQnV0dG9uRmFjdG9yeSIsImRlcHMiLCJNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkiLCJNYXBDb250cm9sVG9vbHRpcCIsImRlZmF1bHRBY3Rpb25JY29ucyIsImN1YmUiLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJDdWJlM2QiLCJfZXh0ZW5kczIiLCJoZWlnaHQiLCJUb2dnbGUzZEJ1dHRvbiIsIl9yZWYiLCJkcmFnUm90YXRlIiwib25Ub2dnbGVQZXJzcGVjdGl2ZSIsIl9yZWYkYWN0aW9uSWNvbnMiLCJhY3Rpb25JY29ucyIsIm1hcENvbnRyb2xzIiwib25DbGljayIsInVzZUNhbGxiYWNrIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsImlzVmlzaWJsZSIsInVzZU1lbW8iLCJ0b2dnbGUzZCIsInNob3ciLCJpZCIsIm1lc3NhZ2UiLCJNYXBDb250cm9sQnV0dG9uIiwiYWN0aXZlIiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsIm1hcDNkIiwiZGlzcGxheU5hbWUiLCJSZWFjdCIsIm1lbW8iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwL3RvZ2dsZS0zZC1idXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudFR5cGUsIHVzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7Q3ViZTNkfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtNYXBDb250cm9sQnV0dG9ufSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSBmcm9tICcuL21hcC1jb250cm9sLXRvb2x0aXAnO1xuaW1wb3J0IHtNYXBDb250cm9sc30gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cblRvZ2dsZTNkQnV0dG9uRmFjdG9yeS5kZXBzID0gW01hcENvbnRyb2xUb29sdGlwRmFjdG9yeV07XG5cbmludGVyZmFjZSBUb2dnbGUzZEJ1dHRvbkljb25zIHtcbiAgY3ViZTogQ29tcG9uZW50VHlwZTxhbnk+O1xufVxuXG5leHBvcnQgdHlwZSBUb2dnbGUzZEJ1dHRvblByb3BzID0ge1xuICBkcmFnUm90YXRlOiBib29sZWFuO1xuICBvblRvZ2dsZVBlcnNwZWN0aXZlOiAoKSA9PiB2b2lkO1xuICBhY3Rpb25JY29uczogVG9nZ2xlM2RCdXR0b25JY29ucztcbiAgbWFwQ29udHJvbHM6IE1hcENvbnRyb2xzO1xufTtcblxuZnVuY3Rpb24gVG9nZ2xlM2RCdXR0b25GYWN0b3J5KE1hcENvbnRyb2xUb29sdGlwKSB7XG4gIGNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgICBjdWJlOiBwcm9wcyA9PiA8Q3ViZTNkIHsuLi5wcm9wc30gaGVpZ2h0PVwiMThweFwiIC8+XG4gIH07XG4gIC8qKiBAdHlwZSB7aW1wb3J0KCcuL3RvZ2dsZS0zZC1idXR0b24nKS5Ub2dnbGUzZEJ1dHRvbkNvbXBvbmVudH0gKi9cbiAgY29uc3QgVG9nZ2xlM2RCdXR0b246IFJlYWN0LkZDPFRvZ2dsZTNkQnV0dG9uUHJvcHM+ID0gKHtcbiAgICBkcmFnUm90YXRlLFxuICAgIG9uVG9nZ2xlUGVyc3BlY3RpdmUsXG4gICAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnMsXG4gICAgbWFwQ29udHJvbHNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9uQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgb25Ub2dnbGVQZXJzcGVjdGl2ZSgpO1xuICAgICAgfSxcbiAgICAgIFtvblRvZ2dsZVBlcnNwZWN0aXZlXVxuICAgICk7XG5cbiAgICBjb25zdCBpc1Zpc2libGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiAobWFwQ29udHJvbHM/LnRvZ2dsZTNkIHx8IHt9KS5zaG93O1xuICAgIH0sIFttYXBDb250cm9sc10pO1xuXG4gICAgcmV0dXJuIGlzVmlzaWJsZSA/IChcbiAgICAgIDxNYXBDb250cm9sVG9vbHRpcFxuICAgICAgICBpZD1cImFjdGlvbi0zZFwiXG4gICAgICAgIG1lc3NhZ2U9e2RyYWdSb3RhdGUgPyAndG9vbHRpcC5kaXNhYmxlM0RNYXAnIDogJ3Rvb2x0aXAuM0RNYXAnfVxuICAgICAgPlxuICAgICAgICA8TWFwQ29udHJvbEJ1dHRvblxuICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgYWN0aXZlPXtkcmFnUm90YXRlfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnbWFwLWNvbnRyb2wtYnV0dG9uJywgJ3RvZ2dsZS0zZCcsIHttYXAzZDogZHJhZ1JvdGF0ZX0pfVxuICAgICAgICA+XG4gICAgICAgICAgPGFjdGlvbkljb25zLmN1YmUgaGVpZ2h0PVwiMjJweFwiIC8+XG4gICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgIDwvTWFwQ29udHJvbFRvb2x0aXA+XG4gICAgKSA6IG51bGw7XG4gIH07XG5cbiAgVG9nZ2xlM2RCdXR0b24uZGlzcGxheU5hbWUgPSAnVG9nZ2xlM2RCdXR0b24nO1xuICByZXR1cm4gUmVhY3QubWVtbyhUb2dnbGUzZEJ1dHRvbik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRvZ2dsZTNkQnV0dG9uRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGtCQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFBNkQsU0FBQU0seUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFSLHdCQUFBUSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFj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
122
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaWNvbnMiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9tYXBDb250cm9sVG9vbHRpcCIsIl9tYXBDb250cm9sVG9vbGJhciIsIl90b29sYmFySXRlbSIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIlRvZ2dsZTNkQnV0dG9uRmFjdG9yeSIsImRlcHMiLCJNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkiLCJNYXBDb250cm9sVG9vbGJhckZhY3RvcnkiLCJWSUVXX01PREVfSVRFTVMiLCJpZCIsIk1hcFZpZXdNb2RlIiwiTU9ERV8yRCIsImxhYmVsIiwiTU9ERV8zRCIsIk1PREVfR0xPQkUiLCJNYXBDb250cm9sVG9vbHRpcCIsIk1hcENvbnRyb2xUb29sYmFyIiwiZGVmYXVsdEFjdGlvbkljb25zIiwiY3ViZSIsInByb3BzIiwiY3JlYXRlRWxlbWVudCIsIkN1YmUzZCIsIl9leHRlbmRzMiIsImhlaWdodCIsImdsb2JlIiwiR2xvYmUiLCJUb2dnbGUzZEJ1dHRvbiIsIl9yZWYiLCJfbWFwQ29udHJvbHMkdG9nZ2xlM2QiLCJkcmFnUm90YXRlIiwibWFwVmlld01vZGUiLCJvblRvZ2dsZVBlcnNwZWN0aXZlIiwib25TZXRNYXBWaWV3TW9kZSIsIm9uVG9nZ2xlTWFwQ29udHJvbCIsIl9yZWYkYWN0aW9uSWNvbnMiLCJhY3Rpb25JY29ucyIsIm1hcENvbnRyb2xzIiwiY3VycmVudE1vZGUiLCJvbkNsaWNrQnV0dG9uIiwidXNlQ2FsbGJhY2siLCJwcmV2ZW50RGVmYXVsdCIsIm9uU2VsZWN0TW9kZSIsIm1vZGUiLCJpc1Zpc2libGUiLCJ1c2VNZW1vIiwidG9nZ2xlM2QiLCJzaG93Iiwidmlld01vZGVJdGVtcyIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiZW5hYmxlR2xvYmVWaWV3IiwiZmlsdGVyIiwiaXRlbSIsImlzQWN0aXZlIiwiYWN0aXZlIiwiaXNHbG9iZSIsImlzM2QiLCJBY3RpdmVJY29uIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJwb3NpdGlvbiIsIiRzaG93IiwibWFwIiwia2V5Iiwib25DbGljayIsImljb24iLCJtZXNzYWdlIiwiTWFwQ29udHJvbEJ1dHRvbiIsImNsYXNzbmFtZXMiLCJtYXAzZCIsIm1hcEdsb2JlIiwiZGlzcGxheU5hbWUiLCJSZWFjdCIsIm1lbW8iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwL3RvZ2dsZS0zZC1idXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudFR5cGUsIHVzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7Q3ViZTNkLCBHbG9iZX0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCB7TWFwQ29udHJvbEJ1dHRvbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC10b29sdGlwJztcbmltcG9ydCBNYXBDb250cm9sVG9vbGJhckZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC10b29sYmFyJztcbmltcG9ydCBUb29sYmFySXRlbSBmcm9tICcuLi9jb21tb24vdG9vbGJhci1pdGVtJztcbmltcG9ydCB7TWFwQ29udHJvbHN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtNYXBWaWV3TW9kZX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtnZXRBcHBsaWNhdGlvbkNvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cblRvZ2dsZTNkQnV0dG9uRmFjdG9yeS5kZXBzID0gW01hcENvbnRyb2xUb29sdGlwRmFjdG9yeSwgTWFwQ29udHJvbFRvb2xiYXJGYWN0b3J5XTtcblxuaW50ZXJmYWNlIFRvZ2dsZTNkQnV0dG9uSWNvbnMge1xuICBjdWJlOiBDb21wb25lbnRUeXBlPGFueT47XG4gIGdsb2JlOiBDb21wb25lbnRUeXBlPGFueT47XG59XG5cbmV4cG9ydCB0eXBlIFRvZ2dsZTNkQnV0dG9uUHJvcHMgPSB7XG4gIGRyYWdSb3RhdGU6IGJvb2xlYW47XG4gIG1hcFZpZXdNb2RlPzogTWFwVmlld01vZGU7XG4gIG9uVG9nZ2xlUGVyc3BlY3RpdmU6ICgpID0+IHZvaWQ7XG4gIG9uU2V0TWFwVmlld01vZGU/OiAobW9kZTogTWFwVmlld01vZGUpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlTWFwQ29udHJvbDogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM6IFRvZ2dsZTNkQnV0dG9uSWNvbnM7XG4gIG1hcENvbnRyb2xzOiBNYXBDb250cm9scztcbn07XG5cbmNvbnN0IFZJRVdfTU9ERV9JVEVNUyA9IFtcbiAge1xuICAgIGlkOiBNYXBWaWV3TW9kZS5NT0RFXzJELFxuICAgIGxhYmVsOiAndG9vbHRpcC50b3AnXG4gIH0sXG4gIHtcbiAgICBpZDogTWFwVmlld01vZGUuTU9ERV8zRCxcbiAgICBsYWJlbDogJ3Rvb2x0aXAuM0RNYXAnXG4gIH0sXG4gIHtcbiAgICBpZDogTWFwVmlld01vZGUuTU9ERV9HTE9CRSxcbiAgICBsYWJlbDogJ3Rvb2x0aXAuZ2xvYmVNYXAnXG4gIH1cbl07XG5cbmZ1bmN0aW9uIFRvZ2dsZTNkQnV0dG9uRmFjdG9yeShcbiAgTWFwQ29udHJvbFRvb2x0aXA6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeT4sXG4gIE1hcENvbnRyb2xUb29sYmFyOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sVG9vbGJhckZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgZGVmYXVsdEFjdGlvbkljb25zID0ge1xuICAgIGN1YmU6IHByb3BzID0+IDxDdWJlM2Qgey4uLnByb3BzfSBoZWlnaHQ9XCIxOHB4XCIgLz4sXG4gICAgZ2xvYmU6IHByb3BzID0+IDxHbG9iZSB7Li4ucHJvcHN9IGhlaWdodD1cIjE4cHhcIiAvPlxuICB9O1xuXG4gIGNvbnN0IFRvZ2dsZTNkQnV0dG9uOiBSZWFjdC5GQzxUb2dnbGUzZEJ1dHRvblByb3BzPiA9ICh7XG4gICAgZHJhZ1JvdGF0ZSxcbiAgICBtYXBWaWV3TW9kZSxcbiAgICBvblRvZ2dsZVBlcnNwZWN0aXZlLFxuICAgIG9uU2V0TWFwVmlld01vZGUsXG4gICAgb25Ub2dnbGVNYXBDb250cm9sLFxuICAgIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zLFxuICAgIG1hcENvbnRyb2xzXG4gIH0pID0+IHtcbiAgICBjb25zdCBjdXJyZW50TW9kZSA9IG1hcFZpZXdNb2RlIHx8IChkcmFnUm90YXRlID8gTWFwVmlld01vZGUuTU9ERV8zRCA6IE1hcFZpZXdNb2RlLk1PREVfMkQpO1xuXG4gICAgY29uc3Qgb25DbGlja0J1dHRvbiA9IHVzZUNhbGxiYWNrKFxuICAgICAgZSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgb25Ub2dnbGVNYXBDb250cm9sKCd0b2dnbGUzZCcpO1xuICAgICAgfSxcbiAgICAgIFtvblRvZ2dsZU1hcENvbnRyb2xdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uU2VsZWN0TW9kZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgKG1vZGU6IE1hcFZpZXdNb2RlKSA9PiB7XG4gICAgICAgIGlmIChvblNldE1hcFZpZXdNb2RlKSB7XG4gICAgICAgICAgb25TZXRNYXBWaWV3TW9kZShtb2RlKTtcbiAgICAgICAgfSBlbHNlIGlmIChtb2RlID09PSBNYXBWaWV3TW9kZS5NT0RFXzNEKSB7XG4gICAgICAgICAgaWYgKCFkcmFnUm90YXRlKSBvblRvZ2dsZVBlcnNwZWN0aXZlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZSA9PT0gTWFwVmlld01vZGUuTU9ERV8yRCkge1xuICAgICAgICAgIGlmIChkcmFnUm90YXRlKSBvblRvZ2dsZVBlcnNwZWN0aXZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgb25Ub2dnbGVNYXBDb250cm9sKCd0b2dnbGUzZCcpO1xuICAgICAgfSxcbiAgICAgIFtvblNldE1hcFZpZXdNb2RlLCBvblRvZ2dsZVBlcnNwZWN0aXZlLCBkcmFnUm90YXRlLCBvblRvZ2dsZU1hcENvbnRyb2xdXG4gICAgKTtcblxuICAgIGNvbnN0IGlzVmlzaWJsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIChtYXBDb250cm9scz8udG9nZ2xlM2QgfHwge30pLnNob3c7XG4gICAgfSwgW21hcENvbnRyb2xzXSk7XG5cbiAgICAvLyBPcHRpb25hbGx5IGhpZGUgdGhlIGdsb2JlIHZpZXcgbW9kZSBvcHRpb24gdmlhIGFwcGxpY2F0aW9uIGNvbmZpZy5cbiAgICBjb25zdCB2aWV3TW9kZUl0ZW1zID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlR2xvYmVWaWV3XG4gICAgICAgICAgPyBWSUVXX01PREVfSVRFTVNcbiAgICAgICAgICA6IFZJRVdfTU9ERV9JVEVNUy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkICE9PSBNYXBWaWV3TW9kZS5NT0RFX0dMT0JFKSxcbiAgICAgIFtdXG4gICAgKTtcblxuICAgIGlmICghaXNWaXNpYmxlKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGlzQWN0aXZlID0gbWFwQ29udHJvbHM/LnRvZ2dsZTNkPy5hY3RpdmU7XG4gICAgY29uc3QgaXNHbG9iZSA9IGN1cnJlbnRNb2RlID09PSBNYXBWaWV3TW9kZS5NT0RFX0dMT0JFO1xuICAgIGNvbnN0IGlzM2QgPSBjdXJyZW50TW9kZSA9PT0gTWFwVmlld01vZGUuTU9ERV8zRDtcblxuICAgIGNvbnN0IEFjdGl2ZUljb24gPSBpc0dsb2JlID8gYWN0aW9uSWNvbnMuZ2xvYmUgOiBhY3Rpb25JY29ucy5jdWJlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmlldy1tb2RlLWNvbnRyb2xzXCIgc3R5bGU9e3twb3NpdGlvbjogJ3JlbGF0aXZlJ319PlxuICAgICAgICB7aXNBY3RpdmUgPyAoXG4gICAgICAgICAgPE1hcENvbnRyb2xUb29sYmFyICRzaG93PXtpc0FjdGl2ZX0+XG4gICAgICAgICAgICB7dmlld01vZGVJdGVtcy5tYXAoaXRlbSA9PiAoXG4gICAgICAgICAgICAgIDxUb29sYmFySXRlbVxuICAgICAgICAgICAgICAgIGtleT17aXRlbS5pZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblNlbGVjdE1vZGUoaXRlbS5pZCl9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XG4gICAgICAgICAgICAgICAgaWNvbj17aXRlbS5pZCA9PT0gTWFwVmlld01vZGUuTU9ERV9HTE9CRSA/IGFjdGlvbkljb25zLmdsb2JlIDogYWN0aW9uSWNvbnMuY3ViZX1cbiAgICAgICAgICAgICAgICBhY3RpdmU9e2N1cnJlbnRNb2RlID09PSBpdGVtLmlkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9NYXBDb250cm9sVG9vbGJhcj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxNYXBDb250cm9sVG9vbHRpcFxuICAgICAgICAgIGlkPVwiYWN0aW9uLTNkXCJcbiAgICAgICAgICBtZXNzYWdlPVwidG9vbHRpcC52aWV3TW9kZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8TWFwQ29udHJvbEJ1dHRvblxuICAgICAgICAgICAgb25DbGljaz17b25DbGlja0J1dHRvbn1cbiAgICAgICAgICAgIGFjdGl2ZT17aXMzZCB8fCBpc0dsb2JlfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdtYXAtY29udHJvbC1idXR0b24nLCAndG9nZ2xlLTNkJywge21hcDNkOiBpczNkLCBtYXBHbG9iZTogaXNHbG9iZX0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxBY3RpdmVJY29uIGhlaWdodD1cIjIycHhcIiAvPlxuICAgICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgICAgPC9NYXBDb250cm9sVG9vbHRpcD5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgVG9nZ2xlM2RCdXR0b24uZGlzcGxheU5hbWUgPSAnVG9nZ2xlM2RCdXR0b24nO1xuICByZXR1cm4gUmVhY3QubWVtbyhUb2dnbGUzZEJ1dHRvbik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRvZ2dsZTNkQnV0dG9uRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGtCQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxrQkFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sWUFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsTUFBQSxHQUFBVCxPQUFBO0FBQXNELFNBQUFELHdCQUFBVyxDQUFBLEVBQUFD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
@@ -4,29 +4,19 @@ import { Map as MaplibreMap } from '@vis.gl/react-maplibre';
4
4
  import { VisStateActions, MapStateActions, UIStateActions } from '@kepler.gl/actions';
5
5
  import MapPopoverFactory from './map/map-popover';
6
6
  import MapControlFactory from './map/map-control';
7
+ import MapScaleFactory from './map/map-scale';
8
+ import { Attribution, AttributionLogos, renderBasemapAttribution, dedupeBasemapAttributions } from './map/attribution';
7
9
  import EditorFactory from './editor/editor';
8
10
  import { generateMapboxLayers } from '@kepler.gl/layers';
9
11
  import { AttributionWithStyle, DatasetAttribution, MapState, MapControls, Viewport } from '@kepler.gl/types';
10
- import { BaseMapLibraryConfig, GetMapRef } from '@kepler.gl/utils';
12
+ import { GetMapRef } from '@kepler.gl/utils';
11
13
  import { MapStyle, computeDeckLayers } from '@kepler.gl/reducers';
12
14
  import { VisState } from '@kepler.gl/schemas';
13
15
  export declare const isSplitSelector: (props: any) => any;
14
16
  export declare const Droppable: ({ containerId }: {
15
17
  containerId: any;
16
18
  }) => React.JSX.Element;
17
- type AttributionProps = {
18
- showBaseMapLibLogo: boolean;
19
- showOsmBasemapAttribution: boolean;
20
- datasetAttributions: DatasetAttribution[];
21
- baseMapLibraryConfig: BaseMapLibraryConfig;
22
- };
23
- export declare const Attribution: React.FC<AttributionProps>;
24
- type AttributionLogosProps = {
25
- logos: AttributionWithStyle[];
26
- activeSidePanel?: boolean;
27
- sidePanelWidth?: number;
28
- };
29
- export declare const AttributionLogos: React.FC<AttributionLogosProps>;
19
+ export { Attribution, AttributionLogos, renderBasemapAttribution, dedupeBasemapAttributions };
30
20
  type MapboxStyle = string | object | undefined;
31
21
  export interface MapContainerProps {
32
22
  visState: VisState;
@@ -82,8 +72,8 @@ export interface MapContainerProps {
82
72
  };
83
73
  logoComponent?: React.FC | React.ReactNode;
84
74
  }
85
- declare function MapContainerFactory(MapPopover: ReturnType<typeof MapPopoverFactory>, MapControl: ReturnType<typeof MapControlFactory>, Editor: ReturnType<typeof EditorFactory>): React.ComponentType<MapContainerProps>;
75
+ declare function MapContainerFactory(MapPopover: ReturnType<typeof MapPopoverFactory>, MapControl: ReturnType<typeof MapControlFactory>, Editor: ReturnType<typeof EditorFactory>, MapScale: ReturnType<typeof MapScaleFactory>): React.ComponentType<MapContainerProps>;
86
76
  declare namespace MapContainerFactory {
87
- var deps: (typeof EditorFactory | typeof MapPopoverFactory | typeof MapControlFactory)[];
77
+ var deps: (typeof MapScaleFactory | typeof MapPopoverFactory | typeof MapControlFactory | typeof EditorFactory)[];
88
78
  }
89
79
  export default MapContainerFactory;