@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
@@ -14,8 +14,7 @@ var _styledComponents2 = require("../common/styled-components");
14
14
  var _utils = require("@kepler.gl/utils");
15
15
  var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
16
16
  // Copyright contributors to the kepler.gl project
17
- 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); }
18
- 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; }
17
+ 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
18
  var StyledMapNavigationControl = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 8px;\n flex-direction: column;\n align-items: flex-end;\n margin-top: 12px;\n"])));
20
19
  var NavButtonGroup = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n gap: 0;\n overflow: hidden;\n box-shadow: 0 6px 12px 0 rgba(0, 0, 0, 0.16);\n"])));
21
20
  var NavButton = (0, _styledComponents["default"])(_styledComponents2.MapControlButton)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n box-shadow: none;\n border-top: ", ";\n"])), function (props) {
@@ -56,9 +55,26 @@ function MapNavigationControlFactory() {
56
55
  }, mapIndex);
57
56
  }, [viewState, mapState, mapStateActions, mapIndex]);
58
57
  var handleCompassClick = (0, _react.useCallback)(function () {
59
- var _viewState$bearing, _viewState$pitch;
58
+ var _viewState$bearing, _viewState$pitch, _mapState$globe;
60
59
  var currentBearing = (_viewState$bearing = viewState === null || viewState === void 0 ? void 0 : viewState.bearing) !== null && _viewState$bearing !== void 0 ? _viewState$bearing : mapState.bearing;
61
60
  var currentPitch = (_viewState$pitch = viewState === null || viewState === void 0 ? void 0 : viewState.pitch) !== null && _viewState$pitch !== void 0 ? _viewState$pitch : mapState.pitch;
61
+ var isGlobe = Boolean((_mapState$globe = mapState.globe) === null || _mapState$globe === void 0 ? void 0 : _mapState$globe.enabled);
62
+
63
+ // In globe mode bearing/pitch stay at 0, so a compass reset instead recenters
64
+ // the camera target back onto the equator (latitude 0), keeping longitude/zoom.
65
+ if (isGlobe) {
66
+ var _viewState$latitude;
67
+ var currentLatitude = (_viewState$latitude = viewState === null || viewState === void 0 ? void 0 : viewState.latitude) !== null && _viewState$latitude !== void 0 ? _viewState$latitude : mapState.latitude;
68
+ if (currentBearing === 0 && currentPitch === 0 && currentLatitude === 0) {
69
+ return;
70
+ }
71
+ mapStateActions.updateMap({
72
+ bearing: 0,
73
+ pitch: 0,
74
+ latitude: 0
75
+ }, mapIndex);
76
+ return;
77
+ }
62
78
  if (currentBearing === 0 && currentPitch === 0) {
63
79
  return;
64
80
  }
@@ -140,4 +156,4 @@ function MapNavigationControlFactory() {
140
156
  MapNavigationControl.displayName = 'MapNavigationControl';
141
157
  return /*#__PURE__*/_react["default"].memo(MapNavigationControl);
142
158
  }
143
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX3V0aWxzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJTdHlsZWRNYXBOYXZpZ2F0aW9uQ29udHJvbCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiTmF2QnV0dG9uR3JvdXAiLCJOYXZCdXR0b24iLCJNYXBDb250cm9sQnV0dG9uIiwicHJvcHMiLCIkaXNGaXJzdCIsImNvbmNhdCIsInRoZW1lIiwicGFuZWxCb3JkZXJDb2xvciIsIk1hcE5hdmlnYXRpb25Db250cm9sRmFjdG9yeSIsImRlcHMiLCJNYXBOYXZpZ2F0aW9uQ29udHJvbCIsIl9yZWYiLCJfdGhlbWUkbm90aWZpY2F0aW9uQ28iLCJtYXBTdGF0ZSIsIm1hcEluZGV4IiwibWFwU3RhdGVBY3Rpb25zIiwiX3VzZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwiTWFwVmlld1N0YXRlQ29udGV4dCIsImdldEludGVybmFsVmlld1N0YXRlIiwidmlld1N0YXRlIiwidXNlVGhlbWUiLCJpc0VuYWJsZWQiLCJnZXRBcHBsaWNhdGlvbkNvbmZpZyIsImVuYWJsZU1hcE5hdmlnYXRpb25Db250cm9sIiwiaGFuZGxlWm9vbUluIiwidXNlQ2FsbGJhY2siLCJfdmlld1N0YXRlJHpvb20iLCJjdXJyZW50Wm9vbSIsInpvb20iLCJuZXh0Wm9vbSIsIm1heFpvb20iLCJNYXRoIiwibWluIiwidXBkYXRlTWFwIiwiaGFuZGxlWm9vbU91dCIsIl92aWV3U3RhdGUkem9vbTIiLCJtaW5ab29tIiwibWF4IiwiaGFuZGxlQ29tcGFzc0NsaWNrIiwiX3ZpZXdTdGF0ZSRiZWFyaW5nIiwiX3ZpZXdTdGF0ZSRwaXRjaCIsImN1cnJlbnRCZWFyaW5nIiwiYmVhcmluZyIsImN1cnJlbnRQaXRjaCIsInBpdGNoIiwicm90YXRpb24iLCJ1c2VNZW1vIiwiX3JlZjIiLCJfdmlld1N0YXRlJGJlYXJpbmcyIiwiX3JlZjMiLCJfdmlld1N0YXRlJHBpdGNoMiIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwidGl0bGUiLCJmaWxsIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94Iiwic3Ryb2tlV2lkdGgiLCJzdHJva2UiLCJkIiwiZHJhZ1JvdGF0ZSIsInN0eWxlIiwidHJhbnNmb3JtIiwibm90aWZpY2F0aW9uQ29sb3JzIiwiZXJyb3IiLCJkaXNwbGF5TmFtZSIsIlJlYWN0IiwibWVtbyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLW5hdmlnYXRpb24tY29udHJvbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQsIHt1c2VUaGVtZX0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtNYXBWaWV3U3RhdGVDb250ZXh0LCBNYXBWaWV3U3RhdGVDb250ZXh0VHlwZX0gZnJvbSAnLi4vbWFwLXZpZXctc3RhdGUtY29udGV4dCc7XG5pbXBvcnQge01hcENvbnRyb2xCdXR0b259IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge01hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7TWFwU3RhdGVBY3Rpb25zfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtnZXRBcHBsaWNhdGlvbkNvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmV4cG9ydCB0eXBlIE1hcE5hdmlnYXRpb25Db250cm9sUHJvcHMgPSB7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgbWFwSW5kZXg6IG51bWJlcjtcbiAgbWFwU3RhdGVBY3Rpb25zOiB0eXBlb2YgTWFwU3RhdGVBY3Rpb25zO1xufTtcblxuY29uc3QgU3R5bGVkTWFwTmF2aWdhdGlvbkNvbnRyb2wgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuYDtcblxuY29uc3QgTmF2QnV0dG9uR3JvdXAgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IDAgNnB4IDEycHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xuYDtcblxuaW50ZXJmYWNlIE5hdkJ1dHRvblByb3BzIHtcbiAgJGlzRmlyc3Q/OiBib29sZWFuO1xufVxuXG5jb25zdCBOYXZCdXR0b24gPSBzdHlsZWQoTWFwQ29udHJvbEJ1dHRvbik8TmF2QnV0dG9uUHJvcHM+YFxuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItdG9wOiAke3Byb3BzID0+IChwcm9wcy4kaXNGaXJzdCA/ICdub25lJyA6IGAxcHggc29saWQgJHtwcm9wcy50aGVtZS5wYW5lbEJvcmRlckNvbG9yfWApfTtcbmA7XG5cbk1hcE5hdmlnYXRpb25Db250cm9sRmFjdG9yeS5kZXBzID0gW107XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1hcE5hdmlnYXRpb25Db250cm9sRmFjdG9yeSgpIHtcbiAgY29uc3QgTWFwTmF2aWdhdGlvbkNvbnRyb2w6IFJlYWN0LkZDPE1hcE5hdmlnYXRpb25Db250cm9sUHJvcHM+ID0gKHtcbiAgICBtYXBTdGF0ZSxcbiAgICBtYXBJbmRleCxcbiAgICBtYXBTdGF0ZUFjdGlvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtnZXRJbnRlcm5hbFZpZXdTdGF0ZX0gPSB1c2VDb250ZXh0PE1hcFZpZXdTdGF0ZUNvbnRleHRUeXBlPihNYXBWaWV3U3RhdGVDb250ZXh0KTtcbiAgICBjb25zdCB2aWV3U3RhdGUgPSBnZXRJbnRlcm5hbFZpZXdTdGF0ZShtYXBJbmRleCk7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuXG4gICAgY29uc3QgaXNFbmFibGVkID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVNYXBOYXZpZ2F0aW9uQ29udHJvbDtcblxuICAgIGNvbnN0IGhhbmRsZVpvb21JbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRab29tID0gdmlld1N0YXRlPy56b29tID8/IG1hcFN0YXRlLnpvb207XG4gICAgICBsZXQgbmV4dFpvb20gPSBjdXJyZW50Wm9vbSArIDE7XG4gICAgICBpZiAobWFwU3RhdGUubWF4Wm9vbSAhPSBudWxsKSB7XG4gICAgICAgIG5leHRab29tID0gTWF0aC5taW4obWFwU3RhdGUubWF4Wm9vbSwgbmV4dFpvb20pO1xuICAgICAgfVxuICAgICAgbWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcCh7em9vbTogbmV4dFpvb219LCBtYXBJbmRleCk7XG4gICAgfSwgW3ZpZXdTdGF0ZSwgbWFwU3RhdGUsIG1hcFN0YXRlQWN0aW9ucywgbWFwSW5kZXhdKTtcblxuICAgIGNvbnN0IGhhbmRsZVpvb21PdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50Wm9vbSA9IHZpZXdTdGF0ZT8uem9vbSA/PyBtYXBTdGF0ZS56b29tO1xuICAgICAgbGV0IG5leHRab29tID0gY3VycmVudFpvb20gLSAxO1xuICAgICAgaWYgKG1hcFN0YXRlLm1pblpvb20gIT0gbnVsbCkge1xuICAgICAgICBuZXh0Wm9vbSA9IE1hdGgubWF4KG1hcFN0YXRlLm1pblpvb20sIG5leHRab29tKTtcbiAgICAgIH1cbiAgICAgIG1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAoe3pvb206IG5leHRab29tfSwgbWFwSW5kZXgpO1xuICAgIH0sIFt2aWV3U3RhdGUsIG1hcFN0YXRlLCBtYXBTdGF0ZUFjdGlvbnMsIG1hcEluZGV4XSk7XG5cbiAgICBjb25zdCBoYW5kbGVDb21wYXNzQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50QmVhcmluZyA9IHZpZXdTdGF0ZT8uYmVhcmluZyA/PyBtYXBTdGF0ZS5iZWFyaW5nO1xuICAgICAgY29uc3QgY3VycmVudFBpdGNoID0gdmlld1N0YXRlPy5waXRjaCA/PyBtYXBTdGF0ZS5waXRjaDtcbiAgICAgIGlmIChjdXJyZW50QmVhcmluZyA9PT0gMCAmJiBjdXJyZW50UGl0Y2ggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnRCZWFyaW5nICE9PSAwKSB7XG4gICAgICAgIG1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAoe2JlYXJpbmc6IDB9LCBtYXBJbmRleCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtYXBTdGF0ZUFjdGlvbnMudXBkYXRlTWFwKHtiZWFyaW5nOiAwLCBwaXRjaDogMH0sIG1hcEluZGV4KTtcbiAgICAgIH1cbiAgICB9LCBbdmlld1N0YXRlLCBtYXBTdGF0ZSwgbWFwU3RhdGVBY3Rpb25zLCBtYXBJbmRleF0pO1xuXG4gICAgY29uc3Qgcm90YXRpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGJlYXJpbmcgPSAtKHZpZXdTdGF0ZT8uYmVhcmluZyA/PyBtYXBTdGF0ZS5iZWFyaW5nID8/IDApO1xuICAgICAgY29uc3QgcGl0Y2ggPSB2aWV3U3RhdGU/LnBpdGNoID8/IG1hcFN0YXRlLnBpdGNoID8/IDA7XG4gICAgICByZXR1cm4ge2JlYXJpbmcsIHBpdGNofTtcbiAgICB9LCBbdmlld1N0YXRlLCBtYXBTdGF0ZV0pO1xuXG4gICAgaWYgKCFpc0VuYWJsZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTWFwTmF2aWdhdGlvbkNvbnRyb2wgY2xhc3NOYW1lPVwibWFwLW5hdmlnYXRpb24tY29udHJvbFwiPlxuICAgICAgICA8TmF2QnV0dG9uR3JvdXA+XG4gICAgICAgICAgPE5hdkJ1dHRvblxuICAgICAgICAgICAgJGlzRmlyc3RcbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVpvb21Jbn1cbiAgICAgICAgICAgIHRpdGxlPVwiWm9vbSBpblwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJtYXAtbmF2aWdhdGlvbi1jb250cm9sX196b29tLWluXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxOFwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjE4XCJcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgIHN0cm9rZVdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgNC41djE1bTcuNS03LjVoLTE1XCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvTmF2QnV0dG9uPlxuICAgICAgICAgIDxOYXZCdXR0b25cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVpvb21PdXR9XG4gICAgICAgICAgICB0aXRsZT1cIlpvb20gb3V0XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1hcC1uYXZpZ2F0aW9uLWNvbnRyb2xfX3pvb20tb3V0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxOFwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjE4XCJcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgIHN0cm9rZVdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkuNSAxMmgtMTVcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9OYXZCdXR0b24+XG4gICAgICAgIDwvTmF2QnV0dG9uR3JvdXA+XG4gICAgICAgIHttYXBTdGF0ZS5kcmFnUm90YXRlID8gKFxuICAgICAgICAgIDxNYXBDb250cm9sQnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDb21wYXNzQ2xpY2t9XG4gICAgICAgICAgICB0aXRsZT1cIlJlc2V0IGJlYXJpbmcvcGl0Y2hcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibWFwLW5hdmlnYXRpb24tY29udHJvbF9fY29tcGFzc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17e3RyYW5zZm9ybTogYHJvdGF0ZVgoJHtyb3RhdGlvbi5waXRjaH1kZWcpYH19PlxuICAgICAgICAgICAgICA8c3ZnIGZpbGw9XCJub25lXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxuICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT17YHJvdGF0ZSgke3JvdGF0aW9uLmJlYXJpbmd9LDgsOClgfT5cbiAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNSA4LjAwMDA2TDcuOTk5ODcgMEwxMC45OTk3IDguMDAwMDZINVpcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPXt0aGVtZS5ub3RpZmljYXRpb25Db2xvcnM/LmVycm9yIHx8ICcjRjA1QzQ0J31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjAwMDIgNy45OTk5NEw4LjAwMDM4IDE2TDUuMDAwNTEgNy45OTk5NEwxMS4wMDAyIDcuOTk5OTRaXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L01hcENvbnRyb2xCdXR0b24+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TdHlsZWRNYXBOYXZpZ2F0aW9uQ29udHJvbD5cbiAgICApO1xuICB9O1xuXG4gIE1hcE5hdmlnYXRpb25Db250cm9sLmRpc3BsYXlOYW1lID0gJ01hcE5hdmlnYXRpb25Db250cm9sJztcbiAgcmV0dXJuIFJlYWN0Lm1lbW8oTWFwTmF2aWdhdGlvbkNvbnRyb2wpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRix1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsb0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGtCQUFBLEdBQUFILE9BQUE7QUFHQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFBc0QsSUFBQUssZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVR0RDtBQUNB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LEVBQUMsVUFBVTtNQUNoQkYsU0FBUyxFQUFDO0lBQWtDLGdCQUU1Q3ZGLE1BQUEsWUFBQXNGLGFBQUE7TUFDRUksSUFBSSxFQUFDLE1BQU07TUFDWEMsS0FBSyxFQUFDLElBQUk7TUFDVkMsTUFBTSxFQUFDLElBQUk7TUFDWEMsT0FBTyxFQUFDLFdBQVc7TUFDbkJDLFdBQVcsRUFBQyxHQUFHO01BQ2ZDLE1BQU0sRUFBQztJQUFjLGdCQUVyQi9GLE1BQUEsWUFBQXNGLGFBQUE7TUFBTVUsQ0FBQyxFQUFDO0lBQWMsQ0FBRSxDQUNyQixDQUNJLENBQ0csQ0FBQyxFQUNoQmpELFFBQVEsQ0FBQ2tELFVBQVUsZ0JBQ2xCakcsTUFBQSxZQUFBc0YsYUFBQSxDQUFDakYsa0JBQUEsQ0FBQStCLGdCQUFnQjtNQUNmb0QsT0FBTyxFQUFFZixrQkFBbUI7TUFDNUJnQixLQUFLLEVBQUMscUJBQXFCO01BQzNCRixTQUFTLEVBQUM7SUFBaUMsZ0JBRTNDdkYsTUFBQSxZQUFBc0YsYUFBQTtNQUFLWSxLQUFLLEVBQUU7UUFBQ0MsU0FBUyxhQUFBNUQsTUFBQSxDQUFheUMsUUFBUSxDQUFDRCxLQUFLO01BQU07SUFBRSxnQkFDdkQvRSxNQUFBLFlBQUFzRixhQUFBO01BQUtJLElBQUksRUFBQyxNQUFNO01BQUNDLEtBQUssRUFBQyxJQUFJO01BQUNDLE1BQU0sRUFBQyxJQUFJO01BQUNDLE9BQU8sRUFBQztJQUFXLGdCQUN6RDdGLE1BQUEsWUFBQXNGLGFBQUE7TUFBR2EsU0FBUyxZQUFBNUQsTUFBQSxDQUFZeUMsUUFBUSxDQUFDSCxPQUFPO0lBQVEsZ0JBQzlDN0UsTUFBQSxZQUFBc0YsYUFBQTtNQUNFVSxDQUFDLEVBQUMseUNBQXlDO01BQzNDTixJQUFJLEVBQUUsRUFBQTVDLHFCQUFBLEdBQUFOLEtBQUssQ0FBQzRELGtCQUFrQixjQUFBdEQscUJBQUEsdUJBQXhCQSxxQkFBQSxDQUEwQnVELEtBQUssS0FBSTtJQUFVLENBQ3BELENBQUMsZUFDRnJHLE1BQUEsWUFBQXNGLGFBQUE7TUFDRVUsQ0FBQyxFQUFDLDhEQUE4RDtNQUNoRU4sSUFBSSxFQUFDO0lBQWMsQ0FDcEIsQ0FDQSxDQUNBLENBQ0YsQ0FDVyxDQUFDLEdBQ2pCLElBQ3NCLENBQUM7RUFFakMsQ0FBQztFQUVEOUMsb0JBQW9CLENBQUMwRCxXQUFXLEdBQUcsc0JBQXNCO0VBQ3pELG9CQUFPQyxpQkFBSyxDQUFDQyxJQUFJLENBQUM1RCxvQkFBb0IsQ0FBQztBQUN6QyIsImlnbm9yZUxpc3QiOltdfQ==
159
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX3V0aWxzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIlN0eWxlZE1hcE5hdmlnYXRpb25Db250cm9sIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJOYXZCdXR0b25Hcm91cCIsIk5hdkJ1dHRvbiIsIk1hcENvbnRyb2xCdXR0b24iLCJwcm9wcyIsIiRpc0ZpcnN0IiwiY29uY2F0IiwidGhlbWUiLCJwYW5lbEJvcmRlckNvbG9yIiwiTWFwTmF2aWdhdGlvbkNvbnRyb2xGYWN0b3J5IiwiZGVwcyIsIk1hcE5hdmlnYXRpb25Db250cm9sIiwiX3JlZiIsIl90aGVtZSRub3RpZmljYXRpb25DbyIsIm1hcFN0YXRlIiwibWFwSW5kZXgiLCJtYXBTdGF0ZUFjdGlvbnMiLCJfdXNlQ29udGV4dCIsInVzZUNvbnRleHQiLCJNYXBWaWV3U3RhdGVDb250ZXh0IiwiZ2V0SW50ZXJuYWxWaWV3U3RhdGUiLCJ2aWV3U3RhdGUiLCJ1c2VUaGVtZSIsImlzRW5hYmxlZCIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiZW5hYmxlTWFwTmF2aWdhdGlvbkNvbnRyb2wiLCJoYW5kbGVab29tSW4iLCJ1c2VDYWxsYmFjayIsIl92aWV3U3RhdGUkem9vbSIsImN1cnJlbnRab29tIiwiem9vbSIsIm5leHRab29tIiwibWF4Wm9vbSIsIk1hdGgiLCJtaW4iLCJ1cGRhdGVNYXAiLCJoYW5kbGVab29tT3V0IiwiX3ZpZXdTdGF0ZSR6b29tMiIsIm1pblpvb20iLCJtYXgiLCJoYW5kbGVDb21wYXNzQ2xpY2siLCJfdmlld1N0YXRlJGJlYXJpbmciLCJfdmlld1N0YXRlJHBpdGNoIiwiX21hcFN0YXRlJGdsb2JlIiwiY3VycmVudEJlYXJpbmciLCJiZWFyaW5nIiwiY3VycmVudFBpdGNoIiwicGl0Y2giLCJpc0dsb2JlIiwiQm9vbGVhbiIsImdsb2JlIiwiZW5hYmxlZCIsIl92aWV3U3RhdGUkbGF0aXR1ZGUiLCJjdXJyZW50TGF0aXR1ZGUiLCJsYXRpdHVkZSIsInJvdGF0aW9uIiwidXNlTWVtbyIsIl9yZWYyIiwiX3ZpZXdTdGF0ZSRiZWFyaW5nMiIsIl9yZWYzIiwiX3ZpZXdTdGF0ZSRwaXRjaDIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsInRpdGxlIiwiZmlsbCIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsInN0cm9rZVdpZHRoIiwic3Ryb2tlIiwiZCIsImRyYWdSb3RhdGUiLCJzdHlsZSIsInRyYW5zZm9ybSIsIm5vdGlmaWNhdGlvbkNvbG9ycyIsImVycm9yIiwiZGlzcGxheU5hbWUiLCJSZWFjdCIsIm1lbW8iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwL21hcC1uYXZpZ2F0aW9uLWNvbnRyb2wudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7dXNlVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7TWFwVmlld1N0YXRlQ29udGV4dCwgTWFwVmlld1N0YXRlQ29udGV4dFR5cGV9IGZyb20gJy4uL21hcC12aWV3LXN0YXRlLWNvbnRleHQnO1xuaW1wb3J0IHtNYXBDb250cm9sQnV0dG9ufSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge01hcFN0YXRlQWN0aW9uc30gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7Z2V0QXBwbGljYXRpb25Db25maWd9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBNYXBOYXZpZ2F0aW9uQ29udHJvbFByb3BzID0ge1xuICBtYXBTdGF0ZTogTWFwU3RhdGU7XG4gIG1hcEluZGV4OiBudW1iZXI7XG4gIG1hcFN0YXRlQWN0aW9uczogdHlwZW9mIE1hcFN0YXRlQWN0aW9ucztcbn07XG5cbmNvbnN0IFN0eWxlZE1hcE5hdmlnYXRpb25Db250cm9sID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgbWFyZ2luLXRvcDogMTJweDtcbmA7XG5cbmNvbnN0IE5hdkJ1dHRvbkdyb3VwID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3gtc2hhZG93OiAwIDZweCAxMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE2KTtcbmA7XG5cbmludGVyZmFjZSBOYXZCdXR0b25Qcm9wcyB7XG4gICRpc0ZpcnN0PzogYm9vbGVhbjtcbn1cblxuY29uc3QgTmF2QnV0dG9uID0gc3R5bGVkKE1hcENvbnRyb2xCdXR0b24pPE5hdkJ1dHRvblByb3BzPmBcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXRvcDogJHtwcm9wcyA9PiAocHJvcHMuJGlzRmlyc3QgPyAnbm9uZScgOiBgMXB4IHNvbGlkICR7cHJvcHMudGhlbWUucGFuZWxCb3JkZXJDb2xvcn1gKX07XG5gO1xuXG5NYXBOYXZpZ2F0aW9uQ29udHJvbEZhY3RvcnkuZGVwcyA9IFtdO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNYXBOYXZpZ2F0aW9uQ29udHJvbEZhY3RvcnkoKSB7XG4gIGNvbnN0IE1hcE5hdmlnYXRpb25Db250cm9sOiBSZWFjdC5GQzxNYXBOYXZpZ2F0aW9uQ29udHJvbFByb3BzPiA9ICh7XG4gICAgbWFwU3RhdGUsXG4gICAgbWFwSW5kZXgsXG4gICAgbWFwU3RhdGVBY3Rpb25zXG4gIH0pID0+IHtcbiAgICBjb25zdCB7Z2V0SW50ZXJuYWxWaWV3U3RhdGV9ID0gdXNlQ29udGV4dDxNYXBWaWV3U3RhdGVDb250ZXh0VHlwZT4oTWFwVmlld1N0YXRlQ29udGV4dCk7XG4gICAgY29uc3Qgdmlld1N0YXRlID0gZ2V0SW50ZXJuYWxWaWV3U3RhdGUobWFwSW5kZXgpO1xuICAgIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcblxuICAgIGNvbnN0IGlzRW5hYmxlZCA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlTWFwTmF2aWdhdGlvbkNvbnRyb2w7XG5cbiAgICBjb25zdCBoYW5kbGVab29tSW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50Wm9vbSA9IHZpZXdTdGF0ZT8uem9vbSA/PyBtYXBTdGF0ZS56b29tO1xuICAgICAgbGV0IG5leHRab29tID0gY3VycmVudFpvb20gKyAxO1xuICAgICAgaWYgKG1hcFN0YXRlLm1heFpvb20gIT0gbnVsbCkge1xuICAgICAgICBuZXh0Wm9vbSA9IE1hdGgubWluKG1hcFN0YXRlLm1heFpvb20sIG5leHRab29tKTtcbiAgICAgIH1cbiAgICAgIG1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAoe3pvb206IG5leHRab29tfSwgbWFwSW5kZXgpO1xuICAgIH0sIFt2aWV3U3RhdGUsIG1hcFN0YXRlLCBtYXBTdGF0ZUFjdGlvbnMsIG1hcEluZGV4XSk7XG5cbiAgICBjb25zdCBoYW5kbGVab29tT3V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFpvb20gPSB2aWV3U3RhdGU/Lnpvb20gPz8gbWFwU3RhdGUuem9vbTtcbiAgICAgIGxldCBuZXh0Wm9vbSA9IGN1cnJlbnRab29tIC0gMTtcbiAgICAgIGlmIChtYXBTdGF0ZS5taW5ab29tICE9IG51bGwpIHtcbiAgICAgICAgbmV4dFpvb20gPSBNYXRoLm1heChtYXBTdGF0ZS5taW5ab29tLCBuZXh0Wm9vbSk7XG4gICAgICB9XG4gICAgICBtYXBTdGF0ZUFjdGlvbnMudXBkYXRlTWFwKHt6b29tOiBuZXh0Wm9vbX0sIG1hcEluZGV4KTtcbiAgICB9LCBbdmlld1N0YXRlLCBtYXBTdGF0ZSwgbWFwU3RhdGVBY3Rpb25zLCBtYXBJbmRleF0pO1xuXG4gICAgY29uc3QgaGFuZGxlQ29tcGFzc0NsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudEJlYXJpbmcgPSB2aWV3U3RhdGU/LmJlYXJpbmcgPz8gbWFwU3RhdGUuYmVhcmluZztcbiAgICAgIGNvbnN0IGN1cnJlbnRQaXRjaCA9IHZpZXdTdGF0ZT8ucGl0Y2ggPz8gbWFwU3RhdGUucGl0Y2g7XG4gICAgICBjb25zdCBpc0dsb2JlID0gQm9vbGVhbihtYXBTdGF0ZS5nbG9iZT8uZW5hYmxlZCk7XG5cbiAgICAgIC8vIEluIGdsb2JlIG1vZGUgYmVhcmluZy9waXRjaCBzdGF5IGF0IDAsIHNvIGEgY29tcGFzcyByZXNldCBpbnN0ZWFkIHJlY2VudGVyc1xuICAgICAgLy8gdGhlIGNhbWVyYSB0YXJnZXQgYmFjayBvbnRvIHRoZSBlcXVhdG9yIChsYXRpdHVkZSAwKSwga2VlcGluZyBsb25naXR1ZGUvem9vbS5cbiAgICAgIGlmIChpc0dsb2JlKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMYXRpdHVkZSA9IHZpZXdTdGF0ZT8ubGF0aXR1ZGUgPz8gbWFwU3RhdGUubGF0aXR1ZGU7XG4gICAgICAgIGlmIChjdXJyZW50QmVhcmluZyA9PT0gMCAmJiBjdXJyZW50UGl0Y2ggPT09IDAgJiYgY3VycmVudExhdGl0dWRlID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAoe2JlYXJpbmc6IDAsIHBpdGNoOiAwLCBsYXRpdHVkZTogMH0sIG1hcEluZGV4KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoY3VycmVudEJlYXJpbmcgPT09IDAgJiYgY3VycmVudFBpdGNoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChjdXJyZW50QmVhcmluZyAhPT0gMCkge1xuICAgICAgICBtYXBTdGF0ZUFjdGlvbnMudXBkYXRlTWFwKHtiZWFyaW5nOiAwfSwgbWFwSW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcCh7YmVhcmluZzogMCwgcGl0Y2g6IDB9LCBtYXBJbmRleCk7XG4gICAgICB9XG4gICAgfSwgW3ZpZXdTdGF0ZSwgbWFwU3RhdGUsIG1hcFN0YXRlQWN0aW9ucywgbWFwSW5kZXhdKTtcblxuICAgIGNvbnN0IHJvdGF0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBiZWFyaW5nID0gLSh2aWV3U3RhdGU/LmJlYXJpbmcgPz8gbWFwU3RhdGUuYmVhcmluZyA/PyAwKTtcbiAgICAgIGNvbnN0IHBpdGNoID0gdmlld1N0YXRlPy5waXRjaCA/PyBtYXBTdGF0ZS5waXRjaCA/PyAwO1xuICAgICAgcmV0dXJuIHtiZWFyaW5nLCBwaXRjaH07XG4gICAgfSwgW3ZpZXdTdGF0ZSwgbWFwU3RhdGVdKTtcblxuICAgIGlmICghaXNFbmFibGVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1hcE5hdmlnYXRpb25Db250cm9sIGNsYXNzTmFtZT1cIm1hcC1uYXZpZ2F0aW9uLWNvbnRyb2xcIj5cbiAgICAgICAgPE5hdkJ1dHRvbkdyb3VwPlxuICAgICAgICAgIDxOYXZCdXR0b25cbiAgICAgICAgICAgICRpc0ZpcnN0XG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVab29tSW59XG4gICAgICAgICAgICB0aXRsZT1cIlpvb20gaW5cIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibWFwLW5hdmlnYXRpb24tY29udHJvbF9fem9vbS1pblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIHdpZHRoPVwiMThcIlxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxOFwiXG4gICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICBzdHJva2VXaWR0aD1cIjJcIlxuICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyIDQuNXYxNW03LjUtNy41aC0xNVwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L05hdkJ1dHRvbj5cbiAgICAgICAgICA8TmF2QnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVab29tT3V0fVxuICAgICAgICAgICAgdGl0bGU9XCJab29tIG91dFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJtYXAtbmF2aWdhdGlvbi1jb250cm9sX196b29tLW91dFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIHdpZHRoPVwiMThcIlxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxOFwiXG4gICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICBzdHJva2VXaWR0aD1cIjJcIlxuICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE5LjUgMTJoLTE1XCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvTmF2QnV0dG9uPlxuICAgICAgICA8L05hdkJ1dHRvbkdyb3VwPlxuICAgICAgICB7bWFwU3RhdGUuZHJhZ1JvdGF0ZSA/IChcbiAgICAgICAgICA8TWFwQ29udHJvbEJ1dHRvblxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQ29tcGFzc0NsaWNrfVxuICAgICAgICAgICAgdGl0bGU9XCJSZXNldCBiZWFyaW5nL3BpdGNoXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1hcC1uYXZpZ2F0aW9uLWNvbnRyb2xfX2NvbXBhc3NcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3t0cmFuc2Zvcm06IGByb3RhdGVYKCR7cm90YXRpb24ucGl0Y2h9ZGVnKWB9fT5cbiAgICAgICAgICAgICAgPHN2ZyBmaWxsPVwibm9uZVwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj5cbiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09e2Byb3RhdGUoJHtyb3RhdGlvbi5iZWFyaW5nfSw4LDgpYH0+XG4gICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBkPVwiTTUgOC4wMDAwNkw3Ljk5OTg3IDBMMTAuOTk5NyA4LjAwMDA2SDVaXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD17dGhlbWUubm90aWZpY2F0aW9uQ29sb3JzPy5lcnJvciB8fCAnI0YwNUM0NCd9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS4wMDAyIDcuOTk5OTRMOC4wMDAzOCAxNkw1LjAwMDUxIDcuOTk5OTRMMTEuMDAwMiA3Ljk5OTk0WlwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9NYXBDb250cm9sQnV0dG9uPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU3R5bGVkTWFwTmF2aWdhdGlvbkNvbnRyb2w+XG4gICAgKTtcbiAgfTtcblxuICBNYXBOYXZpZ2F0aW9uQ29udHJvbC5kaXNwbGF5TmFtZSA9ICdNYXBOYXZpZ2F0aW9uQ29udHJvbCc7XG4gIHJldHVybiBSZWFjdC5tZW1vKE1hcE5hdmlnYXRpb25Db250cm9sKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUYsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLG9CQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxrQkFBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQXNELElBQUFLLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFUdEQ7QUFDQTtBQUFBLFNBQUFSLHdCQUFBUyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBWCx1QkFBQSxZQUFBQSx3QkFBQVMsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFB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
@@ -26,8 +26,7 @@ var _reducers = require("@kepler.gl/reducers");
26
26
  var _react2 = require("@floating-ui/react");
27
27
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5; // SPDX-License-Identifier: MIT
28
28
  // Copyright contributors to the kepler.gl project
29
- 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); }
30
- 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; }
29
+ 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); }
31
30
  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; }
32
31
  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; }
33
32
  var SELECTABLE_LAYERS = [_constants.LAYER_TYPES.hexagonId, _constants.LAYER_TYPES.geojson];
@@ -187,4 +186,4 @@ function MapPopoverFactory(MapPopoverContent) {
187
186
  };
188
187
  return (0, _reactIntl.injectIntl)(MapPopover);
189
188
  }
190
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbWFwUG9wb3ZlckNvbnRlbnQiLCJfaWNvbnMiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiX2xheWVycyIsIl9jb21tb25VdGlscyIsIl9jb25zdGFudHMiLCJfcmVkdWNlcnMiLCJfcmVhY3QyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlNFTEVDVEFCTEVfTEFZRVJTIiwiTEFZRVJfVFlQRVMiLCJoZXhhZ29uSWQiLCJnZW9qc29uIiwiTUFYX1dJRFRIIiwiTUFYX0hFSUdIVCIsIlN0eWxlZE1hcFBvcG92ZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJzY3JvbGxCYXIiLCJmb250RmFtaWx5IiwicGFuZWxCYWNrZ3JvdW5kIiwidGV4dENvbG9yIiwicGFuZWxCb3hTaGFkb3ciLCJjb25jYXQiLCJub3RpZmljYXRpb25Db2xvcnMiLCJzdWNjZXNzIiwidGV4dENvbG9ySGwiLCJQaW5uZWRCdXR0b25zIiwiUG9wb3ZlckNvbnRlbnQiLCJTdHlsZWRJY29uIiwiYWN0aXZlQ29sb3IiLCJsaW5rQnRuQ29sb3IiLCJTdHlsZWRTZWxlY3RHZW9tZXRyeSIsIk1hcFBvcG92ZXJGYWN0b3J5IiwiZGVwcyIsIk1hcFBvcG92ZXJDb250ZW50RmFjdG9yeSIsImdldFNlbGVjdGVkRmVhdHVyZSIsImxheWVySG92ZXJQcm9wIiwiX2xheWVyJGNvbmZpZyIsIl9sYXllciRjb25maWcyIiwibGF5ZXIiLCJmaWVsZElkeCIsInNlbGVjdGVkRmVhdHVyZSIsInR5cGUiLCJjb25maWciLCJjb2x1bW5zIiwiaGV4X2lkIiwiaWRUb1BvbHlnb25HZW8iLCJpZCIsImdldExheWVySG92ZXJQcm9wVmFsdWUiLCJkYXRhIiwiaXNDbG9zZWQiLCJwYXJzZUdlb0pzb25SYXdGZWF0dXJlIiwiZ2VuZXJhdGVIYXNoSWQiLCJNYXBQb3BvdmVyQ29udGVudCIsIk1hcFBvcG92ZXIiLCJfcmVmIiwiX2xheWVySG92ZXJQcm9wJGxheWVyIiwiX2xheWVySG92ZXJQcm9wJGxheWVyMiIsIngiLCJ5IiwiZnJvemVuIiwiY29vcmRpbmF0ZSIsImlzQmFzZSIsInpvb20iLCJjb250YWluZXIiLCJvbkNsb3NlIiwib25TZXRGZWF0dXJlcyIsInNldFNlbGVjdGVkRmVhdHVyZSIsImZlYXR1cmVDb2xsZWN0aW9uIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaG9yaXpvbnRhbFBsYWNlbWVudCIsInNldEhvcml6b250YWxQbGFjZW1lbnQiLCJtb3ZlTGVmdCIsIm1vdmVSaWdodCIsInJvb3RDb250ZXh0IiwidXNlQ29udGV4dCIsIlJvb3RDb250ZXh0IiwiX3VzZUZsb2F0aW5nIiwidXNlRmxvYXRpbmciLCJwbGFjZW1lbnQiLCJtaWRkbGV3YXJlIiwib2Zmc2V0IiwibWFpbkF4aXMiLCJhbGlnbm1lbnRBeGlzIiwiZmxpcCIsInJlZnMiLCJjb250ZXh0IiwiZmxvYXRpbmdTdHlsZXMiLCJvblNldFNlbGVjdGVkRmVhdHVyZSIsInVzZUNhbGxiYWNrIiwiY2xpY2tDb250ZXh0IiwibWFwSW5kZXgiLCJyaWdodENsaWNrIiwicG9zaXRpb24iLCJ1cGRhdGVkRmVhdHVyZXMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZmVhdHVyZXMiLCJjb250YWluZXJCb3VuZHMiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJjbGllbnRQb2ludCIsInVzZUNsaWVudFBvaW50IiwibGVmdCIsInRvcCIsIl91c2VJbnRlcmFjdGlvbnMiLCJ1c2VJbnRlcmFjdGlvbnMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiY3JlYXRlRWxlbWVudCIsIkZsb2F0aW5nUG9ydGFsIiwicm9vdCIsImN1cnJlbnQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJyZWYiLCJzZXRGbG9hdGluZyIsInN0eWxlIiwib25DbGljayIsIkFycm93TGVmdCIsIlBpbiIsImhlaWdodCIsIkFycm93UmlnaHQiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiaW5jbHVkZXMiLCJDdXJzb3JQb2ludCIsImluamVjdEludGwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwL21hcC1wb3BvdmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IE1hcFBvcG92ZXJDb250ZW50RmFjdG9yeSBmcm9tICcuL21hcC1wb3BvdmVyLWNvbnRlbnQnO1xuaW1wb3J0IHtQaW4sIEFycm93TGVmdCwgQXJyb3dSaWdodCwgQ3Vyc29yUG9pbnR9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHtwYXJzZUdlb0pzb25SYXdGZWF0dXJlfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge2dlbmVyYXRlSGFzaElkLCBpZFRvUG9seWdvbkdlb30gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHtMQVlFUl9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtMYXllckhvdmVyUHJvcCwgZ2V0TGF5ZXJIb3ZlclByb3BWYWx1ZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge0ZlYXR1cmUsIEZlYXR1cmVTZWxlY3Rpb25Db250ZXh0fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIEZsb2F0aW5nUG9ydGFsLFxuICBmbGlwLFxuICBvZmZzZXQsXG4gIHVzZUNsaWVudFBvaW50LFxuICB1c2VGbG9hdGluZyxcbiAgdXNlSW50ZXJhY3Rpb25zXG59IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5cbmNvbnN0IFNFTEVDVEFCTEVfTEFZRVJTOiBzdHJpbmdbXSA9IFtMQVlFUl9UWVBFUy5oZXhhZ29uSWQsIExBWUVSX1RZUEVTLmdlb2pzb25dO1xuY29uc3QgTUFYX1dJRFRIID0gNTAwO1xuY29uc3QgTUFYX0hFSUdIVCA9IDYwMDtcblxuY29uc3QgU3R5bGVkTWFwUG9wb3ZlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgbWF4LXdpZHRoOiAke01BWF9XSURUSH1weDtcbiAgbWF4LWhlaWdodDogJHtNQVhfSEVJR0hUfXB4O1xuICBwYWRkaW5nOiAxNHB4O1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgfVxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNjcm9sbEJhcn07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgei1pbmRleDogOTg7IC8qIHNob3VsZCBiZSBiZWxvdyA5OSB3aGljaCBpcyBzaWRlIHBhbmUgKi9cbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgYm94LXNoYWRvdzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJveFNoYWRvd307XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBgJHtwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmR9YH07XG4gIH1cblxuICAucHJpbWFyeS1sYWJlbCB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubm90aWZpY2F0aW9uQ29sb3JzLnN1Y2Nlc3N9O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuXG4gIC5tYXAtcG9wb3Zlcl9fbGF5ZXItaW5mbyxcbiAgLmNvb3JkaW5nYXRlLWhvdmVyLWluZm8ge1xuICAgICYgPiAqICsgKiB7XG4gICAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgfVxuICB9XG5cbiAgdGFibGUge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICByb3ctZ2FwOiA1cHg7XG4gICAgY29sdW1uLWdhcDogNXB4O1xuICB9XG5cbiAgLmNvb3JkaW5nYXRlLWhvdmVyLWluZm8gPiB0YWJsZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gYXV0bztcbiAgfVxuICAubWFwLXBvcG92ZXJfX2xheWVyLWluZm8gPiB0YWJsZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87XG4gIH1cbiAgLm1hcC1wb3BvdmVyX19sYXllci1pbmZvID4gdGFibGUuY29tcGFyaW5nIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byBhdXRvO1xuICB9XG5cbiAgdGJvZHksXG4gIHRyIHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgfVxuXG4gIHRkIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIH1cblxuICB0ZC5yb3dfX3ZhbHVlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgfVxuYDtcblxuY29uc3QgUGlubmVkQnV0dG9ucyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBQb3BvdmVyQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGlua0J0bkNvbG9yfTtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkU2VsZWN0R2VvbWV0cnkgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gIHN2ZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGlua0J0bkNvbG9yfTtcbiAgfVxuYDtcblxuTWFwUG9wb3ZlckZhY3RvcnkuZGVwcyA9IFtNYXBQb3BvdmVyQ29udGVudEZhY3RvcnldO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0ZWRGZWF0dXJlKGxheWVySG92ZXJQcm9wOiBMYXllckhvdmVyUHJvcCB8IG51bGwpOiBGZWF0dXJlIHwgbnVsbCB7XG4gIGNvbnN0IGxheWVyID0gbGF5ZXJIb3ZlclByb3A/LmxheWVyO1xuICBsZXQgZmllbGRJZHg7XG4gIGxldCBzZWxlY3RlZEZlYXR1cmU7XG4gIHN3aXRjaCAobGF5ZXI/LnR5cGUpIHtcbiAgICBjYXNlIExBWUVSX1RZUEVTLmhleGFnb25JZDpcbiAgICAgIGZpZWxkSWR4ID0gbGF5ZXIuY29uZmlnPy5jb2x1bW5zPy5oZXhfaWQ/LmZpZWxkSWR4O1xuICAgICAgc2VsZWN0ZWRGZWF0dXJlID0gaWRUb1BvbHlnb25HZW8oXG4gICAgICAgIHtpZDogZ2V0TGF5ZXJIb3ZlclByb3BWYWx1ZShsYXllckhvdmVyUHJvcD8uZGF0YSwgZmllbGRJZHgpfSxcbiAgICAgICAge2lzQ2xvc2VkOiB0cnVlfVxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTEFZRVJfVFlQRVMuZ2VvanNvbjpcbiAgICAgIGZpZWxkSWR4ID0gbGF5ZXIuY29uZmlnPy5jb2x1bW5zPy5nZW9qc29uPy5maWVsZElkeDtcbiAgICAgIHNlbGVjdGVkRmVhdHVyZSA9IHBhcnNlR2VvSnNvblJhd0ZlYXR1cmUoXG4gICAgICAgIGdldExheWVySG92ZXJQcm9wVmFsdWUobGF5ZXJIb3ZlclByb3A/LmRhdGEsIGZpZWxkSWR4KVxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBicmVhaztcbiAgfVxuXG4gIGlmIChzZWxlY3RlZEZlYXR1cmUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2VsZWN0ZWRGZWF0dXJlLFxuICAgICAgLy8gdW5pcXVlIGlkIHNob3VsZCBiZSBhc3NpZ25lZCB0byBmZWF0dXJlcyBpbiB0aGUgZWRpdG9yXG4gICAgICBpZDogZ2VuZXJhdGVIYXNoSWQoOClcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIE1hcFBvcG92ZXJQcm9wcyA9IHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIGZyb3plbj86IGJvb2xlYW47XG4gIGNvb3JkaW5hdGU6IFtudW1iZXIsIG51bWJlcl0gfCBib29sZWFuO1xuICBsYXllckhvdmVyUHJvcDogTGF5ZXJIb3ZlclByb3AgfCBudWxsO1xuICBpc0Jhc2U/OiBib29sZWFuO1xuICB6b29tOiBudW1iZXI7XG4gIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgb25DbG9zZTogKCkgPT4gdm9pZDtcbiAgb25TZXRGZWF0dXJlczogKGZlYXR1cmVzOiBGZWF0dXJlW10pID0+IGFueTtcbiAgc2V0U2VsZWN0ZWRGZWF0dXJlOiAoZmVhdHVyZTogRmVhdHVyZSB8IG51bGwsIGNsaWNrQ29udGV4dD86IEZlYXR1cmVTZWxlY3Rpb25Db250ZXh0KSA9PiBhbnk7XG4gIGZlYXR1cmVDb2xsZWN0aW9uPzoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBmZWF0dXJlczogRmVhdHVyZVtdO1xuICB9O1xufTtcblxudHlwZSBJbnRsUHJvcHMgPSB7XG4gIGludGw6IEludGxTaGFwZTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1hcFBvcG92ZXJGYWN0b3J5KFxuICBNYXBQb3BvdmVyQ29udGVudDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwUG9wb3ZlckNvbnRlbnRGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IE1hcFBvcG92ZXI6IFJlYWN0LkZDPE1hcFBvcG92ZXJQcm9wcyAmIEludGxQcm9wcz4gPSAoe1xuICAgIHgsXG4gICAgeSxcbiAgICBmcm96ZW4sXG4gICAgY29vcmRpbmF0ZSxcbiAgICBsYXllckhvdmVyUHJvcCxcbiAgICBpc0Jhc2UsXG4gICAgem9vbSxcbiAgICBjb250YWluZXIsXG4gICAgb25DbG9zZSxcbiAgICBvblNldEZlYXR1cmVzLFxuICAgIHNldFNlbGVjdGVkRmVhdHVyZSxcbiAgICBmZWF0dXJlQ29sbGVjdGlvblxuICB9KSA9PiB7XG4gICAgY29uc3QgW2hvcml6b250YWxQbGFjZW1lbnQsIHNldEhvcml6b250YWxQbGFjZW1lbnRdID0gdXNlU3RhdGUoJ3N0YXJ0Jyk7XG4gICAgY29uc3QgbW92ZUxlZnQgPSAoKSA9PiBzZXRIb3Jpem9udGFsUGxhY2VtZW50KCdlbmQnKTtcbiAgICBjb25zdCBtb3ZlUmlnaHQgPSAoKSA9PiBzZXRIb3Jpem9udGFsUGxhY2VtZW50KCdzdGFydCcpO1xuICAgIGNvbnN0IHJvb3RDb250ZXh0ID0gdXNlQ29udGV4dChSb290Q29udGV4dCk7XG4gICAgY29uc3Qge3JlZnMsIGNvbnRleHQsIGZsb2F0aW5nU3R5bGVzfSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgIHBsYWNlbWVudDogYCR7aG9yaXpvbnRhbFBsYWNlbWVudCA9PSAnZW5kJyA/ICdsZWZ0JyA6ICdyaWdodCd9LXN0YXJ0YCxcbiAgICAgIG1pZGRsZXdhcmU6IFtvZmZzZXQoe21haW5BeGlzOiAyMCwgYWxpZ25tZW50QXhpczogMjB9KSwgZmxpcCgpXVxuICAgIH0pO1xuICAgIGNvbnN0IG9uU2V0U2VsZWN0ZWRGZWF0dXJlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgY29uc3QgY2xpY2tDb250ZXh0ID0ge1xuICAgICAgICBtYXBJbmRleDogMCxcbiAgICAgICAgcmlnaHRDbGljazogdHJ1ZSxcbiAgICAgICAgcG9zaXRpb246IHt4LCB5fVxuICAgICAgfTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkRmVhdHVyZSA9IGdldFNlbGVjdGVkRmVhdHVyZShsYXllckhvdmVyUHJvcCk7XG4gICAgICBpZiAoc2VsZWN0ZWRGZWF0dXJlKSB7XG4gICAgICAgIHNldFNlbGVjdGVkRmVhdHVyZShzZWxlY3RlZEZlYXR1cmUsIGNsaWNrQ29udGV4dCk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRGZWF0dXJlcyA9IGZlYXR1cmVDb2xsZWN0aW9uXG4gICAgICAgICAgPyBbLi4uZmVhdHVyZUNvbGxlY3Rpb24uZmVhdHVyZXMsIHNlbGVjdGVkRmVhdHVyZV1cbiAgICAgICAgICA6IFtzZWxlY3RlZEZlYXR1cmVdO1xuICAgICAgICBvblNldEZlYXR1cmVzKHVwZGF0ZWRGZWF0dXJlcyk7XG4gICAgICB9XG4gICAgICBvbkNsb3NlKCk7XG4gICAgfSwgW29uQ2xvc2UsIG9uU2V0RmVhdHVyZXMsIHgsIHksIHNldFNlbGVjdGVkRmVhdHVyZSwgbGF5ZXJIb3ZlclByb3AsIGZlYXR1cmVDb2xsZWN0aW9uXSk7XG5cbiAgICBjb25zdCBjb250YWluZXJCb3VuZHMgPSBjb250YWluZXI/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGNsaWVudFBvaW50ID0gdXNlQ2xpZW50UG9pbnQoY29udGV4dCwge1xuICAgICAgeDogKGNvbnRhaW5lckJvdW5kcz8ubGVmdCB8fCAwKSArIHgsXG4gICAgICB5OiAoY29udGFpbmVyQm91bmRzPy50b3AgfHwgMCkgKyB5XG4gICAgfSk7XG4gICAgY29uc3Qge2dldEZsb2F0aW5nUHJvcHN9ID0gdXNlSW50ZXJhY3Rpb25zKFtjbGllbnRQb2ludF0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxGbG9hdGluZ1BvcnRhbCByb290PXtyb290Q29udGV4dD8uY3VycmVudH0+XG4gICAgICAgIDxTdHlsZWRNYXBQb3BvdmVyXG4gICAgICAgICAgY2xhc3NOYW1lPVwibWFwLXBvcG92ZXJcIlxuICAgICAgICAgIHJlZj17cmVmcy5zZXRGbG9hdGluZ31cbiAgICAgICAgICBzdHlsZT17ZmxvYXRpbmdTdHlsZXN9XG4gICAgICAgICAgey4uLmdldEZsb2F0aW5nUHJvcHMoKX1cbiAgICAgICAgPlxuICAgICAgICAgIHtmcm96ZW4gPyAoXG4gICAgICAgICAgICA8UGlubmVkQnV0dG9ucz5cbiAgICAgICAgICAgICAge2hvcml6b250YWxQbGFjZW1lbnQgPT09ICdzdGFydCcgJiYgKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uIGNsYXNzTmFtZT1cInBvcG92ZXItYXJyb3ctbGVmdFwiIG9uQ2xpY2s9e21vdmVMZWZ0fT5cbiAgICAgICAgICAgICAgICAgIDxBcnJvd0xlZnQgLz5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEljb24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxTdHlsZWRJY29uIGNsYXNzTmFtZT1cInBvcG92ZXItcGluXCIgb25DbGljaz17b25DbG9zZX0+XG4gICAgICAgICAgICAgICAgPFBpbiBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgICAgICAgICAgPC9TdHlsZWRJY29uPlxuICAgICAgICAgICAgICB7aG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gJ2VuZCcgJiYgKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uIGNsYXNzTmFtZT1cInBvcG92ZXItYXJyb3ctcmlnaHRcIiBvbkNsaWNrPXttb3ZlUmlnaHR9PlxuICAgICAgICAgICAgICAgICAgPEFycm93UmlnaHQgLz5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEljb24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtpc0Jhc2UgJiYgKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHJpbWFyeS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJtYXBQb3BvdmVyLnByaW1hcnlcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9QaW5uZWRCdXR0b25zPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxQb3BvdmVyQ29udGVudD5cbiAgICAgICAgICAgIDxNYXBQb3BvdmVyQ29udGVudFxuICAgICAgICAgICAgICBjb29yZGluYXRlPXtjb29yZGluYXRlfVxuICAgICAgICAgICAgICB6b29tPXt6b29tfVxuICAgICAgICAgICAgICBsYXllckhvdmVyUHJvcD17bGF5ZXJIb3ZlclByb3B9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvUG9wb3ZlckNvbnRlbnQ+XG4gICAgICAgICAge2xheWVySG92ZXJQcm9wPy5sYXllcj8udHlwZSAmJlxuICAgICAgICAgIFNFTEVDVEFCTEVfTEFZRVJTLmluY2x1ZGVzKGxheWVySG92ZXJQcm9wPy5sYXllcj8udHlwZSkgJiZcbiAgICAgICAgICBmcm96ZW4gPyAoXG4gICAgICAgICAgICA8U3R5bGVkU2VsZWN0R2VvbWV0cnkgY2xhc3NOYW1lPVwic2VsZWN0LWdlb21ldHJ5XCIgb25DbGljaz17b25TZXRTZWxlY3RlZEZlYXR1cmV9PlxuICAgICAgICAgICAgICA8Q3Vyc29yUG9pbnQgLz5cbiAgICAgICAgICAgICAgU2VsZWN0IEdlb21ldHJ5XG4gICAgICAgICAgICA8L1N0eWxlZFNlbGVjdEdlb21ldHJ5PlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZE1hcFBvcG92ZXI+XG4gICAgICA8L0Zsb2F0aW5nUG9ydGFsPlxuICAgICk7XG4gIH07XG4gIHJldHVybiBpbmplY3RJbnRsKE1hcFBvcG92ZXIpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxrQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsWUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsVUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsU0FBQSxHQUFBWCxPQUFBO0FBRUEsSUFBQVksT0FBQSxHQUFBWixPQUFBO0FBTzRCLElBQUFhLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUF0QjVCO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQXBCLHdCQUFBb0IsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEs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
189
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbWFwUG9wb3ZlckNvbnRlbnQiLCJfaWNvbnMiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiX2xheWVycyIsIl9jb21tb25VdGlscyIsIl9jb25zdGFudHMiLCJfcmVkdWNlcnMiLCJfcmVhY3QyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJTRUxFQ1RBQkxFX0xBWUVSUyIsIkxBWUVSX1RZUEVTIiwiaGV4YWdvbklkIiwiZ2VvanNvbiIsIk1BWF9XSURUSCIsIk1BWF9IRUlHSFQiLCJTdHlsZWRNYXBQb3BvdmVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwic2Nyb2xsQmFyIiwiZm9udEZhbWlseSIsInBhbmVsQmFja2dyb3VuZCIsInRleHRDb2xvciIsInBhbmVsQm94U2hhZG93IiwiY29uY2F0Iiwibm90aWZpY2F0aW9uQ29sb3JzIiwic3VjY2VzcyIsInRleHRDb2xvckhsIiwiUGlubmVkQnV0dG9ucyIsIlBvcG92ZXJDb250ZW50IiwiU3R5bGVkSWNvbiIsImFjdGl2ZUNvbG9yIiwibGlua0J0bkNvbG9yIiwiU3R5bGVkU2VsZWN0R2VvbWV0cnkiLCJNYXBQb3BvdmVyRmFjdG9yeSIsImRlcHMiLCJNYXBQb3BvdmVyQ29udGVudEZhY3RvcnkiLCJnZXRTZWxlY3RlZEZlYXR1cmUiLCJsYXllckhvdmVyUHJvcCIsIl9sYXllciRjb25maWciLCJfbGF5ZXIkY29uZmlnMiIsImxheWVyIiwiZmllbGRJZHgiLCJzZWxlY3RlZEZlYXR1cmUiLCJ0eXBlIiwiY29uZmlnIiwiY29sdW1ucyIsImhleF9pZCIsImlkVG9Qb2x5Z29uR2VvIiwiaWQiLCJnZXRMYXllckhvdmVyUHJvcFZhbHVlIiwiZGF0YSIsImlzQ2xvc2VkIiwicGFyc2VHZW9Kc29uUmF3RmVhdHVyZSIsImdlbmVyYXRlSGFzaElkIiwiTWFwUG9wb3ZlckNvbnRlbnQiLCJNYXBQb3BvdmVyIiwiX3JlZiIsIl9sYXllckhvdmVyUHJvcCRsYXllciIsIl9sYXllckhvdmVyUHJvcCRsYXllcjIiLCJ4IiwieSIsImZyb3plbiIsImNvb3JkaW5hdGUiLCJpc0Jhc2UiLCJ6b29tIiwiY29udGFpbmVyIiwib25DbG9zZSIsIm9uU2V0RmVhdHVyZXMiLCJzZXRTZWxlY3RlZEZlYXR1cmUiLCJmZWF0dXJlQ29sbGVjdGlvbiIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImhvcml6b250YWxQbGFjZW1lbnQiLCJzZXRIb3Jpem9udGFsUGxhY2VtZW50IiwibW92ZUxlZnQiLCJtb3ZlUmlnaHQiLCJyb290Q29udGV4dCIsInVzZUNvbnRleHQiLCJSb290Q29udGV4dCIsIl91c2VGbG9hdGluZyIsInVzZUZsb2F0aW5nIiwicGxhY2VtZW50IiwibWlkZGxld2FyZSIsIm9mZnNldCIsIm1haW5BeGlzIiwiYWxpZ25tZW50QXhpcyIsImZsaXAiLCJyZWZzIiwiY29udGV4dCIsImZsb2F0aW5nU3R5bGVzIiwib25TZXRTZWxlY3RlZEZlYXR1cmUiLCJ1c2VDYWxsYmFjayIsImNsaWNrQ29udGV4dCIsIm1hcEluZGV4IiwicmlnaHRDbGljayIsInBvc2l0aW9uIiwidXBkYXRlZEZlYXR1cmVzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImZlYXR1cmVzIiwiY29udGFpbmVyQm91bmRzIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiY2xpZW50UG9pbnQiLCJ1c2VDbGllbnRQb2ludCIsImxlZnQiLCJ0b3AiLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiZ2V0RmxvYXRpbmdQcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJGbG9hdGluZ1BvcnRhbCIsInJvb3QiLCJjdXJyZW50IiwiX2V4dGVuZHMyIiwiY2xhc3NOYW1lIiwicmVmIiwic2V0RmxvYXRpbmciLCJzdHlsZSIsIm9uQ2xpY2siLCJBcnJvd0xlZnQiLCJQaW4iLCJoZWlnaHQiLCJBcnJvd1JpZ2h0IiwiRm9ybWF0dGVkTWVzc2FnZSIsImluY2x1ZGVzIiwiQ3Vyc29yUG9pbnQiLCJpbmplY3RJbnRsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9tYXAtcG9wb3Zlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBNYXBQb3BvdmVyQ29udGVudEZhY3RvcnkgZnJvbSAnLi9tYXAtcG9wb3Zlci1jb250ZW50JztcbmltcG9ydCB7UGluLCBBcnJvd0xlZnQsIEFycm93UmlnaHQsIEN1cnNvclBvaW50fSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtpbmplY3RJbnRsLCBJbnRsU2hhcGV9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge1Jvb3RDb250ZXh0fSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7cGFyc2VHZW9Kc29uUmF3RmVhdHVyZX0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtnZW5lcmF0ZUhhc2hJZCwgaWRUb1BvbHlnb25HZW99IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcbmltcG9ydCB7TEFZRVJfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TGF5ZXJIb3ZlclByb3AsIGdldExheWVySG92ZXJQcm9wVmFsdWV9IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuaW1wb3J0IHtGZWF0dXJlLCBGZWF0dXJlU2VsZWN0aW9uQ29udGV4dH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBGbG9hdGluZ1BvcnRhbCxcbiAgZmxpcCxcbiAgb2Zmc2V0LFxuICB1c2VDbGllbnRQb2ludCxcbiAgdXNlRmxvYXRpbmcsXG4gIHVzZUludGVyYWN0aW9uc1xufSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuXG5jb25zdCBTRUxFQ1RBQkxFX0xBWUVSUzogc3RyaW5nW10gPSBbTEFZRVJfVFlQRVMuaGV4YWdvbklkLCBMQVlFUl9UWVBFUy5nZW9qc29uXTtcbmNvbnN0IE1BWF9XSURUSCA9IDUwMDtcbmNvbnN0IE1BWF9IRUlHSFQgPSA2MDA7XG5cbmNvbnN0IFN0eWxlZE1hcFBvcG92ZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIG1heC13aWR0aDogJHtNQVhfV0lEVEh9cHg7XG4gIG1heC1oZWlnaHQ6ICR7TUFYX0hFSUdIVH1weDtcbiAgcGFkZGluZzogMTRweDtcbiAgJiA+ICogKyAqIHtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG4gIH1cbiAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zY3JvbGxCYXJ9O1xuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5fTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZH07XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIHotaW5kZXg6IDk4OyAvKiBzaG91bGQgYmUgYmVsb3cgOTkgd2hpY2ggaXMgc2lkZSBwYW5lICovXG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCb3hTaGFkb3d9O1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gYCR7cHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfWB9O1xuICB9XG5cbiAgLnByaW1hcnktbGFiZWwge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm5vdGlmaWNhdGlvbkNvbG9ycy5zdWNjZXNzfTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gIH1cblxuICAubWFwLXBvcG92ZXJfX2xheWVyLWluZm8sXG4gIC5jb29yZGluZ2F0ZS1ob3Zlci1pbmZvIHtcbiAgICAmID4gKiArICoge1xuICAgICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgcm93LWdhcDogNXB4O1xuICAgIGNvbHVtbi1nYXA6IDVweDtcbiAgfVxuXG4gIC5jb29yZGluZ2F0ZS1ob3Zlci1pbmZvID4gdGFibGUge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIGF1dG87XG4gIH1cbiAgLm1hcC1wb3BvdmVyX19sYXllci1pbmZvID4gdGFibGUge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvO1xuICB9XG4gIC5tYXAtcG9wb3Zlcl9fbGF5ZXItaW5mbyA+IHRhYmxlLmNvbXBhcmluZyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gYXV0bztcbiAgfVxuXG4gIHRib2R5LFxuICB0ciB7XG4gICAgZGlzcGxheTogY29udGVudHM7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICB9XG5cbiAgdGQucm93X192YWx1ZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gIH1cbmA7XG5cbmNvbnN0IFBpbm5lZEJ1dHRvbnMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgJiA+ICogKyAqIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgfVxuYDtcblxuY29uc3QgUG9wb3ZlckNvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZEljb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG5cbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxpbmtCdG5Db2xvcn07XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFNlbGVjdEdlb21ldHJ5ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxpbmtCdG5Db2xvcn07XG4gIH1cbmA7XG5cbk1hcFBvcG92ZXJGYWN0b3J5LmRlcHMgPSBbTWFwUG9wb3ZlckNvbnRlbnRGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGVkRmVhdHVyZShsYXllckhvdmVyUHJvcDogTGF5ZXJIb3ZlclByb3AgfCBudWxsKTogRmVhdHVyZSB8IG51bGwge1xuICBjb25zdCBsYXllciA9IGxheWVySG92ZXJQcm9wPy5sYXllcjtcbiAgbGV0IGZpZWxkSWR4O1xuICBsZXQgc2VsZWN0ZWRGZWF0dXJlO1xuICBzd2l0Y2ggKGxheWVyPy50eXBlKSB7XG4gICAgY2FzZSBMQVlFUl9UWVBFUy5oZXhhZ29uSWQ6XG4gICAgICBmaWVsZElkeCA9IGxheWVyLmNvbmZpZz8uY29sdW1ucz8uaGV4X2lkPy5maWVsZElkeDtcbiAgICAgIHNlbGVjdGVkRmVhdHVyZSA9IGlkVG9Qb2x5Z29uR2VvKFxuICAgICAgICB7aWQ6IGdldExheWVySG92ZXJQcm9wVmFsdWUobGF5ZXJIb3ZlclByb3A/LmRhdGEsIGZpZWxkSWR4KX0sXG4gICAgICAgIHtpc0Nsb3NlZDogdHJ1ZX1cbiAgICAgICk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIExBWUVSX1RZUEVTLmdlb2pzb246XG4gICAgICBmaWVsZElkeCA9IGxheWVyLmNvbmZpZz8uY29sdW1ucz8uZ2VvanNvbj8uZmllbGRJZHg7XG4gICAgICBzZWxlY3RlZEZlYXR1cmUgPSBwYXJzZUdlb0pzb25SYXdGZWF0dXJlKFxuICAgICAgICBnZXRMYXllckhvdmVyUHJvcFZhbHVlKGxheWVySG92ZXJQcm9wPy5kYXRhLCBmaWVsZElkeClcbiAgICAgICk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cblxuICBpZiAoc2VsZWN0ZWRGZWF0dXJlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNlbGVjdGVkRmVhdHVyZSxcbiAgICAgIC8vIHVuaXF1ZSBpZCBzaG91bGQgYmUgYXNzaWduZWQgdG8gZmVhdHVyZXMgaW4gdGhlIGVkaXRvclxuICAgICAgaWQ6IGdlbmVyYXRlSGFzaElkKDgpXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBNYXBQb3BvdmVyUHJvcHMgPSB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICBmcm96ZW4/OiBib29sZWFuO1xuICBjb29yZGluYXRlOiBbbnVtYmVyLCBudW1iZXJdIHwgYm9vbGVhbjtcbiAgbGF5ZXJIb3ZlclByb3A6IExheWVySG92ZXJQcm9wIHwgbnVsbDtcbiAgaXNCYXNlPzogYm9vbGVhbjtcbiAgem9vbTogbnVtYmVyO1xuICBjb250YWluZXI/OiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIG9uU2V0RmVhdHVyZXM6IChmZWF0dXJlczogRmVhdHVyZVtdKSA9PiBhbnk7XG4gIHNldFNlbGVjdGVkRmVhdHVyZTogKGZlYXR1cmU6IEZlYXR1cmUgfCBudWxsLCBjbGlja0NvbnRleHQ/OiBGZWF0dXJlU2VsZWN0aW9uQ29udGV4dCkgPT4gYW55O1xuICBmZWF0dXJlQ29sbGVjdGlvbj86IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgZmVhdHVyZXM6IEZlYXR1cmVbXTtcbiAgfTtcbn07XG5cbnR5cGUgSW50bFByb3BzID0ge1xuICBpbnRsOiBJbnRsU2hhcGU7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNYXBQb3BvdmVyRmFjdG9yeShcbiAgTWFwUG9wb3ZlckNvbnRlbnQ6IFJldHVyblR5cGU8dHlwZW9mIE1hcFBvcG92ZXJDb250ZW50RmFjdG9yeT5cbikge1xuICBjb25zdCBNYXBQb3BvdmVyOiBSZWFjdC5GQzxNYXBQb3BvdmVyUHJvcHMgJiBJbnRsUHJvcHM+ID0gKHtcbiAgICB4LFxuICAgIHksXG4gICAgZnJvemVuLFxuICAgIGNvb3JkaW5hdGUsXG4gICAgbGF5ZXJIb3ZlclByb3AsXG4gICAgaXNCYXNlLFxuICAgIHpvb20sXG4gICAgY29udGFpbmVyLFxuICAgIG9uQ2xvc2UsXG4gICAgb25TZXRGZWF0dXJlcyxcbiAgICBzZXRTZWxlY3RlZEZlYXR1cmUsXG4gICAgZmVhdHVyZUNvbGxlY3Rpb25cbiAgfSkgPT4ge1xuICAgIGNvbnN0IFtob3Jpem9udGFsUGxhY2VtZW50LCBzZXRIb3Jpem9udGFsUGxhY2VtZW50XSA9IHVzZVN0YXRlKCdzdGFydCcpO1xuICAgIGNvbnN0IG1vdmVMZWZ0ID0gKCkgPT4gc2V0SG9yaXpvbnRhbFBsYWNlbWVudCgnZW5kJyk7XG4gICAgY29uc3QgbW92ZVJpZ2h0ID0gKCkgPT4gc2V0SG9yaXpvbnRhbFBsYWNlbWVudCgnc3RhcnQnKTtcbiAgICBjb25zdCByb290Q29udGV4dCA9IHVzZUNvbnRleHQoUm9vdENvbnRleHQpO1xuICAgIGNvbnN0IHtyZWZzLCBjb250ZXh0LCBmbG9hdGluZ1N0eWxlc30gPSB1c2VGbG9hdGluZyh7XG4gICAgICBwbGFjZW1lbnQ6IGAke2hvcml6b250YWxQbGFjZW1lbnQgPT0gJ2VuZCcgPyAnbGVmdCcgOiAncmlnaHQnfS1zdGFydGAsXG4gICAgICBtaWRkbGV3YXJlOiBbb2Zmc2V0KHttYWluQXhpczogMjAsIGFsaWdubWVudEF4aXM6IDIwfSksIGZsaXAoKV1cbiAgICB9KTtcbiAgICBjb25zdCBvblNldFNlbGVjdGVkRmVhdHVyZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGNsaWNrQ29udGV4dCA9IHtcbiAgICAgICAgbWFwSW5kZXg6IDAsXG4gICAgICAgIHJpZ2h0Q2xpY2s6IHRydWUsXG4gICAgICAgIHBvc2l0aW9uOiB7eCwgeX1cbiAgICAgIH07XG4gICAgICBjb25zdCBzZWxlY3RlZEZlYXR1cmUgPSBnZXRTZWxlY3RlZEZlYXR1cmUobGF5ZXJIb3ZlclByb3ApO1xuICAgICAgaWYgKHNlbGVjdGVkRmVhdHVyZSkge1xuICAgICAgICBzZXRTZWxlY3RlZEZlYXR1cmUoc2VsZWN0ZWRGZWF0dXJlLCBjbGlja0NvbnRleHQpO1xuICAgICAgICBjb25zdCB1cGRhdGVkRmVhdHVyZXMgPSBmZWF0dXJlQ29sbGVjdGlvblxuICAgICAgICAgID8gWy4uLmZlYXR1cmVDb2xsZWN0aW9uLmZlYXR1cmVzLCBzZWxlY3RlZEZlYXR1cmVdXG4gICAgICAgICAgOiBbc2VsZWN0ZWRGZWF0dXJlXTtcbiAgICAgICAgb25TZXRGZWF0dXJlcyh1cGRhdGVkRmVhdHVyZXMpO1xuICAgICAgfVxuICAgICAgb25DbG9zZSgpO1xuICAgIH0sIFtvbkNsb3NlLCBvblNldEZlYXR1cmVzLCB4LCB5LCBzZXRTZWxlY3RlZEZlYXR1cmUsIGxheWVySG92ZXJQcm9wLCBmZWF0dXJlQ29sbGVjdGlvbl0pO1xuXG4gICAgY29uc3QgY29udGFpbmVyQm91bmRzID0gY29udGFpbmVyPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBjbGllbnRQb2ludCA9IHVzZUNsaWVudFBvaW50KGNvbnRleHQsIHtcbiAgICAgIHg6IChjb250YWluZXJCb3VuZHM/LmxlZnQgfHwgMCkgKyB4LFxuICAgICAgeTogKGNvbnRhaW5lckJvdW5kcz8udG9wIHx8IDApICsgeVxuICAgIH0pO1xuICAgIGNvbnN0IHtnZXRGbG9hdGluZ1Byb3BzfSA9IHVzZUludGVyYWN0aW9ucyhbY2xpZW50UG9pbnRdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RmxvYXRpbmdQb3J0YWwgcm9vdD17cm9vdENvbnRleHQ/LmN1cnJlbnR9PlxuICAgICAgICA8U3R5bGVkTWFwUG9wb3ZlclxuICAgICAgICAgIGNsYXNzTmFtZT1cIm1hcC1wb3BvdmVyXCJcbiAgICAgICAgICByZWY9e3JlZnMuc2V0RmxvYXRpbmd9XG4gICAgICAgICAgc3R5bGU9e2Zsb2F0aW5nU3R5bGVzfVxuICAgICAgICAgIHsuLi5nZXRGbG9hdGluZ1Byb3BzKCl9XG4gICAgICAgID5cbiAgICAgICAgICB7ZnJvemVuID8gKFxuICAgICAgICAgICAgPFBpbm5lZEJ1dHRvbnM+XG4gICAgICAgICAgICAgIHtob3Jpem9udGFsUGxhY2VtZW50ID09PSAnc3RhcnQnICYmIChcbiAgICAgICAgICAgICAgICA8U3R5bGVkSWNvbiBjbGFzc05hbWU9XCJwb3BvdmVyLWFycm93LWxlZnRcIiBvbkNsaWNrPXttb3ZlTGVmdH0+XG4gICAgICAgICAgICAgICAgICA8QXJyb3dMZWZ0IC8+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRJY29uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8U3R5bGVkSWNvbiBjbGFzc05hbWU9XCJwb3BvdmVyLXBpblwiIG9uQ2xpY2s9e29uQ2xvc2V9PlxuICAgICAgICAgICAgICAgIDxQaW4gaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAge2hvcml6b250YWxQbGFjZW1lbnQgPT09ICdlbmQnICYmIChcbiAgICAgICAgICAgICAgICA8U3R5bGVkSWNvbiBjbGFzc05hbWU9XCJwb3BvdmVyLWFycm93LXJpZ2h0XCIgb25DbGljaz17bW92ZVJpZ2h0fT5cbiAgICAgICAgICAgICAgICAgIDxBcnJvd1JpZ2h0IC8+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRJY29uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7aXNCYXNlICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByaW1hcnktbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwibWFwUG9wb3Zlci5wcmltYXJ5XCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvUGlubmVkQnV0dG9ucz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8UG9wb3ZlckNvbnRlbnQ+XG4gICAgICAgICAgICA8TWFwUG9wb3ZlckNvbnRlbnRcbiAgICAgICAgICAgICAgY29vcmRpbmF0ZT17Y29vcmRpbmF0ZX1cbiAgICAgICAgICAgICAgem9vbT17em9vbX1cbiAgICAgICAgICAgICAgbGF5ZXJIb3ZlclByb3A9e2xheWVySG92ZXJQcm9wfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1BvcG92ZXJDb250ZW50PlxuICAgICAgICAgIHtsYXllckhvdmVyUHJvcD8ubGF5ZXI/LnR5cGUgJiZcbiAgICAgICAgICBTRUxFQ1RBQkxFX0xBWUVSUy5pbmNsdWRlcyhsYXllckhvdmVyUHJvcD8ubGF5ZXI/LnR5cGUpICYmXG4gICAgICAgICAgZnJvemVuID8gKFxuICAgICAgICAgICAgPFN0eWxlZFNlbGVjdEdlb21ldHJ5IGNsYXNzTmFtZT1cInNlbGVjdC1nZW9tZXRyeVwiIG9uQ2xpY2s9e29uU2V0U2VsZWN0ZWRGZWF0dXJlfT5cbiAgICAgICAgICAgICAgPEN1cnNvclBvaW50IC8+XG4gICAgICAgICAgICAgIFNlbGVjdCBHZW9tZXRyeVxuICAgICAgICAgICAgPC9TdHlsZWRTZWxlY3RHZW9tZXRyeT5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TdHlsZWRNYXBQb3BvdmVyPlxuICAgICAgPC9GbG9hdGluZ1BvcnRhbD5cbiAgICApO1xuICB9O1xuICByZXR1cm4gaW5qZWN0SW50bChNYXBQb3BvdmVyKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsa0JBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGFBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLE9BQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFlBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFVBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLFNBQUEsR0FBQVgsT0FBQTtBQUVBLElBQUFZLE9BQUEsR0FBQVosT0FBQTtBQU80QixJQUFBYSxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBdEI1QjtBQUNBO0FBQUEsU0FBQWxCLHdCQUFBbUIsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQXJCLHVCQUFBLFlBQUFBLHdCQUFBbUIsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FB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
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { MapState } from '@kepler.gl/types';
3
+ export type MapScaleProps = {
4
+ mapState: MapState;
5
+ mapIndex?: number;
6
+ };
7
+ declare function MapScaleFactory(): React.NamedExoticComponent<MapScaleProps>;
8
+ declare namespace MapScaleFactory {
9
+ var deps: any[];
10
+ }
11
+ export default MapScaleFactory;
@@ -0,0 +1,162 @@
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"] = MapScaleFactory;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
12
+ var _distance = _interopRequireDefault(require("@turf/distance"));
13
+ var _d3Array = require("d3-array");
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
16
+ var _mapViewStateContext = require("../map-view-state-context");
17
+ var _utils = require("@kepler.gl/utils");
18
+ var _templateObject; // 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 DISPLAY_UNITS = {
24
+ km: [{
25
+ label: 'm',
26
+ meters: 1
27
+ }, {
28
+ label: 'km',
29
+ meters: 1000
30
+ }],
31
+ miles: [{
32
+ label: 'ft',
33
+ meters: 0.3048
34
+ }, {
35
+ label: 'mi',
36
+ meters: 1609.34
37
+ }]
38
+ };
39
+
40
+ // Pre-generated list of "round" numbers: 1, 2, 5, 10, 20, 50, 100, ...
41
+ var NICE_VALUES = (0, _d3Array.range)(15).flatMap(function (p) {
42
+ return [1, 2, 5].map(function (n) {
43
+ return n * Math.pow(10, p);
44
+ });
45
+ });
46
+ function findLast(array, predicate) {
47
+ for (var i = array.length - 1; i >= 0; i--) {
48
+ if (predicate(array[i])) {
49
+ return array[i];
50
+ }
51
+ }
52
+ return undefined;
53
+ }
54
+ var DISTANCE_PREFERENCE_KEY = 'keplergl_distancePreference';
55
+ function getStoredDistancePreference() {
56
+ try {
57
+ var stored = window.localStorage.getItem(DISTANCE_PREFERENCE_KEY);
58
+ if (stored === 'km' || stored === 'miles') return stored;
59
+ } catch (_unused) {
60
+ // localStorage unavailable (e.g. SSR)
61
+ }
62
+ return 'km';
63
+ }
64
+ function setStoredDistancePreference(value) {
65
+ try {
66
+ window.localStorage.setItem(DISTANCE_PREFERENCE_KEY, value);
67
+ } catch (_unused2) {
68
+ // localStorage unavailable
69
+ }
70
+ }
71
+ var StyledMapScale = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n cursor: pointer;\n padding: 0 1px 2px 1px;\n border-radius: 3px;\n border: 1px solid ", ";\n background-color: ", "cc;\n user-select: none;\n svg {\n text {\n fill: ", ";\n font-size: 10px;\n }\n path {\n stroke: ", ";\n }\n }\n"])), function (props) {
72
+ return props.theme.borderColor;
73
+ }, function (props) {
74
+ return props.theme.sidePanelBg;
75
+ }, function (props) {
76
+ return props.theme.textColorHl;
77
+ }, function (props) {
78
+ return props.theme.textColorHl;
79
+ });
80
+ var Scale = function Scale(_ref) {
81
+ var metersPerPixel = _ref.metersPerPixel,
82
+ _ref$maxWidth = _ref.maxWidth,
83
+ maxWidth = _ref$maxWidth === void 0 ? 150 : _ref$maxWidth,
84
+ _ref$height = _ref.height,
85
+ h = _ref$height === void 0 ? 15 : _ref$height,
86
+ _ref$displayUnits = _ref.displayUnits,
87
+ displayUnits = _ref$displayUnits === void 0 ? 'km' : _ref$displayUnits;
88
+ var maxMetersContainer = maxWidth * metersPerPixel;
89
+ var unit = findLast(DISPLAY_UNITS[displayUnits], function (u) {
90
+ return u.meters * NICE_VALUES[0] <= maxMetersContainer;
91
+ });
92
+ if (!unit) return null;
93
+ var niceValue = findLast(NICE_VALUES, function (v) {
94
+ return v * unit.meters <= maxMetersContainer;
95
+ });
96
+ if (!niceValue) return null;
97
+ var niceValuePixels = niceValue * unit.meters / metersPerPixel;
98
+ var x1 = Math.round((maxWidth - niceValuePixels) / 2);
99
+ var x2 = maxWidth - x1;
100
+ var w = x2 - x1 + 1;
101
+ var dx = (maxWidth - w) / 2;
102
+ return /*#__PURE__*/_react["default"].createElement("svg", {
103
+ width: w,
104
+ height: h
105
+ }, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("text", {
106
+ textAnchor: "middle",
107
+ x: w / 2,
108
+ y: h - 3
109
+ }, niceValue, " ", unit.label), /*#__PURE__*/_react["default"].createElement("path", {
110
+ d: "M ".concat(-dx + x1 + 0.5, " ").concat(h / 2, "\n L ").concat(-dx + x1 + 0.5, " ").concat(h, "\n L ").concat(-dx + x2 - 0.5, " ").concat(h, "\n L ").concat(-dx + x2 - 0.5, " ").concat(h / 2),
111
+ fill: "none"
112
+ })));
113
+ };
114
+
115
+ // Reference ruler width in pixels used to sample real-world distance
116
+ var RULER_SIZE = 100;
117
+ MapScaleFactory.deps = [];
118
+ function MapScaleFactory() {
119
+ var MapScale = function MapScale(_ref2) {
120
+ var mapState = _ref2.mapState,
121
+ _ref2$mapIndex = _ref2.mapIndex,
122
+ mapIndex = _ref2$mapIndex === void 0 ? 0 : _ref2$mapIndex;
123
+ var _useContext = (0, _react.useContext)(_mapViewStateContext.MapViewStateContext),
124
+ getInternalViewState = _useContext.getInternalViewState;
125
+ var viewState = getInternalViewState(mapIndex);
126
+ var _useState = (0, _react.useState)(getStoredDistancePreference),
127
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
128
+ displayUnits = _useState2[0],
129
+ setDisplayUnits = _useState2[1];
130
+ var handleClick = (0, _react.useCallback)(function () {
131
+ setDisplayUnits(function (prev) {
132
+ var next = prev === 'km' ? 'miles' : 'km';
133
+ setStoredDistancePreference(next);
134
+ return next;
135
+ });
136
+ }, []);
137
+ if (!(0, _utils.getApplicationConfig)().enableMapScale) return null;
138
+ var mergedState = _objectSpread(_objectSpread({}, mapState), viewState);
139
+ var viewport = (0, _utils.getViewportFromMapState)(mergedState);
140
+ var cx = (mapState.width || 0) / 2;
141
+ var cy = (mapState.height || 0) / 2;
142
+ var p1 = viewport.unproject([cx - RULER_SIZE / 2, cy]);
143
+ var p2 = viewport.unproject([cx + RULER_SIZE / 2, cy]);
144
+
145
+ // unproject can return null in some edge cases (e.g. during globe projection)
146
+ if (!p1 || !p2) return null;
147
+ var metersPerPixel = (0, _distance["default"])(p1, p2, {
148
+ units: 'meters'
149
+ }) / RULER_SIZE;
150
+ if (!isFinite(metersPerPixel) || metersPerPixel <= 0) return null;
151
+ return /*#__PURE__*/_react["default"].createElement(StyledMapScale, {
152
+ className: "map-scale",
153
+ onClick: handleClick
154
+ }, /*#__PURE__*/_react["default"].createElement(Scale, {
155
+ metersPerPixel: metersPerPixel,
156
+ displayUnits: displayUnits
157
+ }));
158
+ };
159
+ MapScale.displayName = 'MapScale';
160
+ return /*#__PURE__*/_react["default"].memo(MapScale);
161
+ }
162
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGlzdGFuY2UiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9kM0FycmF5IiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX3V0aWxzIiwiX3RlbXBsYXRlT2JqZWN0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkRJU1BMQVlfVU5JVFMiLCJrbSIsImxhYmVsIiwibWV0ZXJzIiwibWlsZXMiLCJOSUNFX1ZBTFVFUyIsInJhbmdlIiwiZmxhdE1hcCIsInAiLCJtYXAiLCJNYXRoIiwicG93IiwiZmluZExhc3QiLCJhcnJheSIsInByZWRpY2F0ZSIsInVuZGVmaW5lZCIsIkRJU1RBTkNFX1BSRUZFUkVOQ0VfS0VZIiwiZ2V0U3RvcmVkRGlzdGFuY2VQcmVmZXJlbmNlIiwic3RvcmVkIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsIl91bnVzZWQiLCJzZXRTdG9yZWREaXN0YW5jZVByZWZlcmVuY2UiLCJ2YWx1ZSIsInNldEl0ZW0iLCJfdW51c2VkMiIsIlN0eWxlZE1hcFNjYWxlIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiYm9yZGVyQ29sb3IiLCJzaWRlUGFuZWxCZyIsInRleHRDb2xvckhsIiwiU2NhbGUiLCJfcmVmIiwibWV0ZXJzUGVyUGl4ZWwiLCJfcmVmJG1heFdpZHRoIiwibWF4V2lkdGgiLCJfcmVmJGhlaWdodCIsImhlaWdodCIsImgiLCJfcmVmJGRpc3BsYXlVbml0cyIsImRpc3BsYXlVbml0cyIsIm1heE1ldGVyc0NvbnRhaW5lciIsInVuaXQiLCJ1IiwibmljZVZhbHVlIiwidiIsIm5pY2VWYWx1ZVBpeGVscyIsIngxIiwicm91bmQiLCJ4MiIsInciLCJkeCIsImNyZWF0ZUVsZW1lbnQiLCJ3aWR0aCIsInRleHRBbmNob3IiLCJ4IiwieSIsImQiLCJjb25jYXQiLCJmaWxsIiwiUlVMRVJfU0laRSIsIk1hcFNjYWxlRmFjdG9yeSIsImRlcHMiLCJNYXBTY2FsZSIsIl9yZWYyIiwibWFwU3RhdGUiLCJfcmVmMiRtYXBJbmRleCIsIm1hcEluZGV4IiwiX3VzZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwiTWFwVmlld1N0YXRlQ29udGV4dCIsImdldEludGVybmFsVmlld1N0YXRlIiwidmlld1N0YXRlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic2V0RGlzcGxheVVuaXRzIiwiaGFuZGxlQ2xpY2siLCJ1c2VDYWxsYmFjayIsInByZXYiLCJuZXh0IiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJlbmFibGVNYXBTY2FsZSIsIm1lcmdlZFN0YXRlIiwidmlld3BvcnQiLCJnZXRWaWV3cG9ydEZyb21NYXBTdGF0ZSIsImN4IiwiY3kiLCJwMSIsInVucHJvamVjdCIsInAyIiwiZGlzdGFuY2UiLCJ1bml0cyIsImlzRmluaXRlIiwiY2xhc3NOYW1lIiwib25DbGljayIsImRpc3BsYXlOYW1lIiwiUmVhY3QiLCJtZW1vIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9tYXAtc2NhbGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBkaXN0YW5jZSBmcm9tICdAdHVyZi9kaXN0YW5jZSc7XG5pbXBvcnQge3JhbmdlfSBmcm9tICdkMy1hcnJheSc7XG5pbXBvcnQgUmVhY3QsIHtGQywgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7V2ViTWVyY2F0b3JWaWV3cG9ydH0gZnJvbSAndmlld3BvcnQtbWVyY2F0b3ItcHJvamVjdCc7XG5cbmltcG9ydCB7TWFwVmlld1N0YXRlQ29udGV4dCwgTWFwVmlld1N0YXRlQ29udGV4dFR5cGV9IGZyb20gJy4uL21hcC12aWV3LXN0YXRlLWNvbnRleHQnO1xuaW1wb3J0IHtnZXRWaWV3cG9ydEZyb21NYXBTdGF0ZSwgZ2V0QXBwbGljYXRpb25Db25maWd9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIE1hcFNjYWxlUHJvcHMgPSB7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgbWFwSW5kZXg/OiBudW1iZXI7XG59O1xuXG50eXBlIFVuaXQgPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG1ldGVyczogbnVtYmVyO1xufTtcblxuY29uc3QgRElTUExBWV9VTklUUzogUmVjb3JkPCdrbScgfCAnbWlsZXMnLCBVbml0W10+ID0ge1xuICBrbTogW1xuICAgIHtsYWJlbDogJ20nLCBtZXRlcnM6IDF9LFxuICAgIHtsYWJlbDogJ2ttJywgbWV0ZXJzOiAxMDAwfVxuICBdLFxuICBtaWxlczogW1xuICAgIHtsYWJlbDogJ2Z0JywgbWV0ZXJzOiAwLjMwNDh9LFxuICAgIHtsYWJlbDogJ21pJywgbWV0ZXJzOiAxNjA5LjM0fVxuICBdXG59O1xuXG4vLyBQcmUtZ2VuZXJhdGVkIGxpc3Qgb2YgXCJyb3VuZFwiIG51bWJlcnM6IDEsIDIsIDUsIDEwLCAyMCwgNTAsIDEwMCwgLi4uXG5jb25zdCBOSUNFX1ZBTFVFUyA9IHJhbmdlKDE1KS5mbGF0TWFwKHAgPT4gWzEsIDIsIDVdLm1hcChuID0+IG4gKiBNYXRoLnBvdygxMCwgcCkpKTtcblxuZnVuY3Rpb24gZmluZExhc3Q8VD4oYXJyYXk6IFRbXSwgcHJlZGljYXRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbik6IFQgfCB1bmRlZmluZWQge1xuICBmb3IgKGxldCBpID0gYXJyYXkubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBpZiAocHJlZGljYXRlKGFycmF5W2ldKSkge1xuICAgICAgcmV0dXJuIGFycmF5W2ldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5jb25zdCBESVNUQU5DRV9QUkVGRVJFTkNFX0tFWSA9ICdrZXBsZXJnbF9kaXN0YW5jZVByZWZlcmVuY2UnO1xuXG5mdW5jdGlvbiBnZXRTdG9yZWREaXN0YW5jZVByZWZlcmVuY2UoKTogJ2ttJyB8ICdtaWxlcycge1xuICB0cnkge1xuICAgIGNvbnN0IHN0b3JlZCA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShESVNUQU5DRV9QUkVGRVJFTkNFX0tFWSk7XG4gICAgaWYgKHN0b3JlZCA9PT0gJ2ttJyB8fCBzdG9yZWQgPT09ICdtaWxlcycpIHJldHVybiBzdG9yZWQ7XG4gIH0gY2F0Y2gge1xuICAgIC8vIGxvY2FsU3RvcmFnZSB1bmF2YWlsYWJsZSAoZS5nLiBTU1IpXG4gIH1cbiAgcmV0dXJuICdrbSc7XG59XG5cbmZ1bmN0aW9uIHNldFN0b3JlZERpc3RhbmNlUHJlZmVyZW5jZSh2YWx1ZTogJ2ttJyB8ICdtaWxlcycpOiB2b2lkIHtcbiAgdHJ5IHtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oRElTVEFOQ0VfUFJFRkVSRU5DRV9LRVksIHZhbHVlKTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gbG9jYWxTdG9yYWdlIHVuYXZhaWxhYmxlXG4gIH1cbn1cblxuY29uc3QgU3R5bGVkTWFwU2NhbGUgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAgMXB4IDJweCAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5ib3JkZXJDb2xvcn07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2lkZVBhbmVsQmd9Y2M7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBzdmcge1xuICAgIHRleHQge1xuICAgICAgZmlsbDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgfVxuICAgIHBhdGgge1xuICAgICAgc3Ryb2tlOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICB9XG4gIH1cbmA7XG5cbmludGVyZmFjZSBTY2FsZVByb3BzIHtcbiAgbWV0ZXJzUGVyUGl4ZWw6IG51bWJlcjtcbiAgbWF4V2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgZGlzcGxheVVuaXRzPzogJ2ttJyB8ICdtaWxlcyc7XG59XG5cbmNvbnN0IFNjYWxlOiBGQzxTY2FsZVByb3BzPiA9ICh7XG4gIG1ldGVyc1BlclBpeGVsLFxuICBtYXhXaWR0aCA9IDE1MCxcbiAgaGVpZ2h0OiBoID0gMTUsXG4gIGRpc3BsYXlVbml0cyA9ICdrbSdcbn0pID0+IHtcbiAgY29uc3QgbWF4TWV0ZXJzQ29udGFpbmVyID0gbWF4V2lkdGggKiBtZXRlcnNQZXJQaXhlbDtcbiAgY29uc3QgdW5pdCA9IGZpbmRMYXN0KFxuICAgIERJU1BMQVlfVU5JVFNbZGlzcGxheVVuaXRzXSxcbiAgICB1ID0+IHUubWV0ZXJzICogTklDRV9WQUxVRVNbMF0gPD0gbWF4TWV0ZXJzQ29udGFpbmVyXG4gICk7XG4gIGlmICghdW5pdCkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgbmljZVZhbHVlID0gZmluZExhc3QoTklDRV9WQUxVRVMsIHYgPT4gdiAqIHVuaXQubWV0ZXJzIDw9IG1heE1ldGVyc0NvbnRhaW5lcik7XG4gIGlmICghbmljZVZhbHVlKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBuaWNlVmFsdWVQaXhlbHMgPSAobmljZVZhbHVlICogdW5pdC5tZXRlcnMpIC8gbWV0ZXJzUGVyUGl4ZWw7XG4gIGNvbnN0IHgxID0gTWF0aC5yb3VuZCgobWF4V2lkdGggLSBuaWNlVmFsdWVQaXhlbHMpIC8gMik7XG4gIGNvbnN0IHgyID0gbWF4V2lkdGggLSB4MTtcbiAgY29uc3QgdyA9IHgyIC0geDEgKyAxO1xuICBjb25zdCBkeCA9IChtYXhXaWR0aCAtIHcpIC8gMjtcblxuICByZXR1cm4gKFxuICAgIDxzdmcgd2lkdGg9e3d9IGhlaWdodD17aH0+XG4gICAgICA8Zz5cbiAgICAgICAgPHRleHQgdGV4dEFuY2hvcj1cIm1pZGRsZVwiIHg9e3cgLyAyfSB5PXtoIC0gM30+XG4gICAgICAgICAge25pY2VWYWx1ZX0ge3VuaXQubGFiZWx9XG4gICAgICAgIDwvdGV4dD5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPXtgTSAkey1keCArIHgxICsgMC41fSAke2ggLyAyfVxuICAgICAgICAgICAgICBMICR7LWR4ICsgeDEgKyAwLjV9ICR7aH1cbiAgICAgICAgICAgICAgTCAkey1keCArIHgyIC0gMC41fSAke2h9XG4gICAgICAgICAgICAgIEwgJHstZHggKyB4MiAtIDAuNX0gJHtoIC8gMn1gfVxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZz5cbiAgICA8L3N2Zz5cbiAgKTtcbn07XG5cbi8vIFJlZmVyZW5jZSBydWxlciB3aWR0aCBpbiBwaXhlbHMgdXNlZCB0byBzYW1wbGUgcmVhbC13b3JsZCBkaXN0YW5jZVxuY29uc3QgUlVMRVJfU0laRSA9IDEwMDtcblxuTWFwU2NhbGVGYWN0b3J5LmRlcHMgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFwU2NhbGVGYWN0b3J5KCkge1xuICBjb25zdCBNYXBTY2FsZTogRkM8TWFwU2NhbGVQcm9wcz4gPSAoe21hcFN0YXRlLCBtYXBJbmRleCA9IDB9KSA9PiB7XG4gICAgY29uc3Qge2dldEludGVybmFsVmlld1N0YXRlfSA9IHVzZUNvbnRleHQ8TWFwVmlld1N0YXRlQ29udGV4dFR5cGU+KE1hcFZpZXdTdGF0ZUNvbnRleHQpO1xuICAgIGNvbnN0IHZpZXdTdGF0ZSA9IGdldEludGVybmFsVmlld1N0YXRlKG1hcEluZGV4KTtcblxuICAgIGNvbnN0IFtkaXNwbGF5VW5pdHMsIHNldERpc3BsYXlVbml0c10gPSB1c2VTdGF0ZTwna20nIHwgJ21pbGVzJz4oXG4gICAgICBnZXRTdG9yZWREaXN0YW5jZVByZWZlcmVuY2VcbiAgICApO1xuXG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXREaXNwbGF5VW5pdHMocHJldiA9PiB7XG4gICAgICAgIGNvbnN0IG5leHQgPSBwcmV2ID09PSAna20nID8gJ21pbGVzJyA6ICdrbSc7XG4gICAgICAgIHNldFN0b3JlZERpc3RhbmNlUHJlZmVyZW5jZShuZXh0KTtcbiAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICB9KTtcbiAgICB9LCBbXSk7XG5cbiAgICBpZiAoIWdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlTWFwU2NhbGUpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgbWVyZ2VkU3RhdGUgPSB7Li4ubWFwU3RhdGUsIC4uLnZpZXdTdGF0ZX07XG4gICAgY29uc3Qgdmlld3BvcnQgPSBnZXRWaWV3cG9ydEZyb21NYXBTdGF0ZShtZXJnZWRTdGF0ZSBhcyBNYXBTdGF0ZSkgYXMgV2ViTWVyY2F0b3JWaWV3cG9ydDtcblxuICAgIGNvbnN0IGN4ID0gKG1hcFN0YXRlLndpZHRoIHx8IDApIC8gMjtcbiAgICBjb25zdCBjeSA9IChtYXBTdGF0ZS5oZWlnaHQgfHwgMCkgLyAyO1xuICAgIGNvbnN0IHAxID0gdmlld3BvcnQudW5wcm9qZWN0KFtjeCAtIFJVTEVSX1NJWkUgLyAyLCBjeV0pO1xuICAgIGNvbnN0IHAyID0gdmlld3BvcnQudW5wcm9qZWN0KFtjeCArIFJVTEVSX1NJWkUgLyAyLCBjeV0pO1xuXG4gICAgLy8gdW5wcm9qZWN0IGNhbiByZXR1cm4gbnVsbCBpbiBzb21lIGVkZ2UgY2FzZXMgKGUuZy4gZHVyaW5nIGdsb2JlIHByb2plY3Rpb24pXG4gICAgaWYgKCFwMSB8fCAhcDIpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgbWV0ZXJzUGVyUGl4ZWwgPSBkaXN0YW5jZShwMSBhcyBbbnVtYmVyLCBudW1iZXJdLCBwMiBhcyBbbnVtYmVyLCBudW1iZXJdLCB7dW5pdHM6ICdtZXRlcnMnfSkgLyBSVUxFUl9TSVpFO1xuXG4gICAgaWYgKCFpc0Zpbml0ZShtZXRlcnNQZXJQaXhlbCkgfHwgbWV0ZXJzUGVyUGl4ZWwgPD0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1hcFNjYWxlIGNsYXNzTmFtZT1cIm1hcC1zY2FsZVwiIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfT5cbiAgICAgICAgPFNjYWxlIG1ldGVyc1BlclBpeGVsPXttZXRlcnNQZXJQaXhlbH0gZGlzcGxheVVuaXRzPXtkaXNwbGF5VW5pdHN9IC8+XG4gICAgICA8L1N0eWxlZE1hcFNjYWxlPlxuICAgICk7XG4gIH07XG5cbiAgTWFwU2NhbGUuZGlzcGxheU5hbWUgPSAnTWFwU2NhbGUnO1xuICByZXR1cm4gUmVhY3QubWVtbyhNYXBTY2FsZSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsU0FBQSxHQUFBQyxzQkFBQSxDQUFB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
@@ -1,5 +1,6 @@
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, MapState } from '@kepler.gl/types';
4
5
  import { MapSplitMode } from '@kepler.gl/constants';
5
6
  interface SplitMapButtonIcons {
@@ -13,13 +14,14 @@ export type SplitMapButtonProps = {
13
14
  onSetMapSplitMode?: (payload: {
14
15
  mapSplitMode: MapSplitMode;
15
16
  }) => void;
17
+ onToggleMapControl?: (control: string) => void;
16
18
  actionIcons: SplitMapButtonIcons;
17
19
  readOnly: boolean;
18
20
  mapControls: MapControls;
19
21
  mapState?: MapState;
20
22
  };
21
- declare function SplitMapButtonFactory(MapControlTooltip: any): React.NamedExoticComponent<SplitMapButtonProps>;
23
+ declare function SplitMapButtonFactory(MapControlTooltip: ReturnType<typeof MapControlTooltipFactory>, MapControlToolbar: ReturnType<typeof MapControlToolbarFactory>): React.NamedExoticComponent<SplitMapButtonProps>;
22
24
  declare namespace SplitMapButtonFactory {
23
- var deps: (typeof MapControlTooltipFactory)[];
25
+ var deps: (typeof MapControlToolbarFactory | typeof MapControlTooltipFactory)[];
24
26
  }
25
27
  export default SplitMapButtonFactory;