@kepler.gl/components 3.0.0-alpha.1 → 3.0.0-alpha.2

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 (418) hide show
  1. package/dist/bottom-widget.js +1 -21
  2. package/dist/common/action-panel.js +1 -21
  3. package/dist/common/animation-control/animation-control.js +1 -21
  4. package/dist/common/animation-control/animation-controller.js +1 -21
  5. package/dist/common/animation-control/animation-speed-slider.js +1 -21
  6. package/dist/common/animation-control/animation-window-control.js +3 -21
  7. package/dist/common/animation-control/floating-time-display.js +1 -21
  8. package/dist/common/animation-control/play-control.js +3 -21
  9. package/dist/common/animation-control/playback-controls.js +1 -21
  10. package/dist/common/animation-control/reset-control.js +3 -21
  11. package/dist/common/animation-control/speed-control.js +1 -21
  12. package/dist/common/animation-control/window-action-control.js +3 -21
  13. package/dist/common/checkbox.js +1 -21
  14. package/dist/common/color-legend.js +1 -21
  15. package/dist/common/data-table/button.js +1 -21
  16. package/dist/common/data-table/canvas.js +1 -21
  17. package/dist/common/data-table/cell-size.js +1 -21
  18. package/dist/common/data-table/display-format.js +1 -21
  19. package/dist/common/data-table/grid.js +1 -21
  20. package/dist/common/data-table/header-cell.js +1 -21
  21. package/dist/common/data-table/index.js +1 -21
  22. package/dist/common/data-table/option-dropdown.js +1 -21
  23. package/dist/common/dataset-label.js +1 -21
  24. package/dist/common/error-boundary.js +1 -21
  25. package/dist/common/field-selector.d.ts +1 -0
  26. package/dist/common/field-selector.js +3 -21
  27. package/dist/common/field-token.d.ts +4 -0
  28. package/dist/common/field-token.js +1 -21
  29. package/dist/common/file-uploader/file-drop.js +1 -21
  30. package/dist/common/file-uploader/file-upload-progress.js +1 -21
  31. package/dist/common/file-uploader/file-upload.js +1 -21
  32. package/dist/common/file-uploader/upload-button.js +1 -21
  33. package/dist/common/flex-container.d.ts +3 -0
  34. package/dist/common/flex-container.js +23 -0
  35. package/dist/common/histogram-plot.js +1 -21
  36. package/dist/common/icon-button.d.ts +1 -1
  37. package/dist/common/icon-button.js +1 -21
  38. package/dist/common/icons/add.js +1 -21
  39. package/dist/common/icons/anchor_window.js +6 -22
  40. package/dist/common/icons/arrow-down-alt.js +1 -21
  41. package/dist/common/icons/arrow-down-small.d.ts +14 -0
  42. package/dist/common/icons/arrow-down-small.js +72 -0
  43. package/dist/common/icons/arrow-down-solid.js +1 -21
  44. package/dist/common/icons/arrow-down.js +1 -21
  45. package/dist/common/icons/arrow-left.js +1 -21
  46. package/dist/common/icons/arrow-right.js +1 -21
  47. package/dist/common/icons/arrow-up-alt.js +1 -21
  48. package/dist/common/icons/arrow-up-solid.js +1 -21
  49. package/dist/common/icons/arrow-up.js +1 -21
  50. package/dist/common/icons/base.js +1 -21
  51. package/dist/common/icons/bug.js +1 -21
  52. package/dist/common/icons/calendar.d.ts +10 -0
  53. package/dist/common/icons/calendar.js +66 -0
  54. package/dist/common/icons/cancel.js +1 -21
  55. package/dist/common/icons/checkmark.js +1 -21
  56. package/dist/common/icons/clipboard.js +1 -21
  57. package/dist/common/icons/clock.js +1 -21
  58. package/dist/common/icons/close.js +1 -21
  59. package/dist/common/icons/code-alt.js +1 -21
  60. package/dist/common/icons/copy.js +1 -21
  61. package/dist/common/icons/crosshairs.js +1 -21
  62. package/dist/common/icons/cube-3d.js +1 -21
  63. package/dist/common/icons/cursor-click.js +1 -21
  64. package/dist/common/icons/cursor-point.js +1 -21
  65. package/dist/common/icons/data-table.js +1 -21
  66. package/dist/common/icons/db.js +1 -21
  67. package/dist/common/icons/delete.js +1 -21
  68. package/dist/common/icons/docs.js +1 -21
  69. package/dist/common/icons/drag-n-drop.js +1 -21
  70. package/dist/common/icons/draw-polygon.js +1 -21
  71. package/dist/common/icons/effects/brightness-contrast.d.ts +14 -0
  72. package/dist/common/icons/effects/brightness-contrast.js +88 -0
  73. package/dist/common/icons/effects/color-halftone.d.ts +14 -0
  74. package/dist/common/icons/effects/color-halftone.js +127 -0
  75. package/dist/common/icons/effects/dot-screen.d.ts +14 -0
  76. package/dist/common/icons/effects/dot-screen.js +122 -0
  77. package/dist/common/icons/effects/edge-work.d.ts +14 -0
  78. package/dist/common/icons/effects/edge-work.js +81 -0
  79. package/dist/common/icons/effects/hexagonal-pixelate.d.ts +14 -0
  80. package/dist/common/icons/effects/hexagonal-pixelate.js +148 -0
  81. package/dist/common/icons/effects/hue-saturation.d.ts +14 -0
  82. package/dist/common/icons/effects/hue-saturation.js +79 -0
  83. package/dist/common/icons/effects/ink.d.ts +14 -0
  84. package/dist/common/icons/effects/ink.js +78 -0
  85. package/dist/common/icons/effects/light-and-shadow.d.ts +14 -0
  86. package/dist/common/icons/effects/light-and-shadow.js +67 -0
  87. package/dist/common/icons/effects/magic-wand.d.ts +14 -0
  88. package/dist/common/icons/effects/magic-wand.js +79 -0
  89. package/dist/common/icons/effects/magnify.d.ts +14 -0
  90. package/dist/common/icons/effects/magnify.js +86 -0
  91. package/dist/common/icons/effects/noise.d.ts +14 -0
  92. package/dist/common/icons/effects/noise.js +132 -0
  93. package/dist/common/icons/effects/sepia.d.ts +14 -0
  94. package/dist/common/icons/effects/sepia.js +79 -0
  95. package/dist/common/icons/effects/tilt-shift.d.ts +14 -0
  96. package/dist/common/icons/effects/tilt-shift.js +88 -0
  97. package/dist/common/icons/effects/triangle-blur.d.ts +14 -0
  98. package/dist/common/icons/effects/triangle-blur.js +83 -0
  99. package/dist/common/icons/effects/vibrance.d.ts +14 -0
  100. package/dist/common/icons/effects/vibrance.js +79 -0
  101. package/dist/common/icons/effects/vignette.d.ts +14 -0
  102. package/dist/common/icons/effects/vignette.js +72 -0
  103. package/dist/common/icons/effects/zoom-blur.d.ts +14 -0
  104. package/dist/common/icons/effects/zoom-blur.js +107 -0
  105. package/dist/common/icons/email.js +1 -21
  106. package/dist/common/icons/expand.js +1 -21
  107. package/dist/common/icons/eye-seen.js +1 -21
  108. package/dist/common/icons/eye-unseen.js +1 -21
  109. package/dist/common/icons/file-type.js +1 -21
  110. package/dist/common/icons/file.js +1 -21
  111. package/dist/common/icons/files.js +1 -21
  112. package/dist/common/icons/filter-funnel.js +1 -21
  113. package/dist/common/icons/free-window.js +6 -22
  114. package/dist/common/icons/gear.js +1 -21
  115. package/dist/common/icons/globe.d.ts +15 -0
  116. package/dist/common/icons/globe.js +72 -0
  117. package/dist/common/icons/hash.js +1 -21
  118. package/dist/common/icons/histogram.js +1 -21
  119. package/dist/common/icons/index.d.ts +25 -0
  120. package/dist/common/icons/index.js +201 -21
  121. package/dist/common/icons/info.js +1 -21
  122. package/dist/common/icons/layers.js +1 -21
  123. package/dist/common/icons/left-arrow.js +1 -21
  124. package/dist/common/icons/legend.js +1 -21
  125. package/dist/common/icons/line-chart.js +1 -21
  126. package/dist/common/icons/location-marker.d.ts +14 -0
  127. package/dist/common/icons/location-marker.js +77 -0
  128. package/dist/common/icons/login.js +1 -21
  129. package/dist/common/icons/logout.js +1 -21
  130. package/dist/common/icons/map-icon.js +1 -21
  131. package/dist/common/icons/map.js +1 -21
  132. package/dist/common/icons/messages.js +1 -21
  133. package/dist/common/icons/minus.js +1 -21
  134. package/dist/common/icons/moon.d.ts +14 -0
  135. package/dist/common/icons/moon.js +77 -0
  136. package/dist/common/icons/order-by-dataset.js +6 -22
  137. package/dist/common/icons/order-by-list.js +6 -22
  138. package/dist/common/icons/pause.js +1 -21
  139. package/dist/common/icons/picture.js +1 -21
  140. package/dist/common/icons/pin.js +1 -21
  141. package/dist/common/icons/play.js +1 -21
  142. package/dist/common/icons/polygon.js +1 -21
  143. package/dist/common/icons/rectangle.js +1 -21
  144. package/dist/common/icons/reduce.js +1 -21
  145. package/dist/common/icons/reset.js +1 -21
  146. package/dist/common/icons/rocket.js +1 -21
  147. package/dist/common/icons/save.js +1 -21
  148. package/dist/common/icons/save2.js +1 -21
  149. package/dist/common/icons/search.js +1 -21
  150. package/dist/common/icons/settings.js +1 -21
  151. package/dist/common/icons/share.js +1 -21
  152. package/dist/common/icons/split.js +1 -21
  153. package/dist/common/icons/square-select.js +1 -21
  154. package/dist/common/icons/sun.d.ts +14 -0
  155. package/dist/common/icons/sun.js +93 -0
  156. package/dist/common/icons/sunrise.d.ts +14 -0
  157. package/dist/common/icons/sunrise.js +89 -0
  158. package/dist/common/icons/sunset.d.ts +14 -0
  159. package/dist/common/icons/sunset.js +89 -0
  160. package/dist/common/icons/trash.js +1 -21
  161. package/dist/common/icons/vert-dots.js +1 -21
  162. package/dist/common/icons/vert-three-dots.js +1 -21
  163. package/dist/common/icons/warning-sign.js +1 -21
  164. package/dist/common/icons/warning.js +1 -21
  165. package/dist/common/image-preview.js +1 -21
  166. package/dist/common/index.js +1 -21
  167. package/dist/common/info-helper.js +1 -21
  168. package/dist/common/item-selector/accessor.js +5 -22
  169. package/dist/common/item-selector/chickleted-input.d.ts +1 -0
  170. package/dist/common/item-selector/chickleted-input.js +104 -44
  171. package/dist/common/item-selector/dropdown-list.d.ts +2 -0
  172. package/dist/common/item-selector/dropdown-list.js +10 -25
  173. package/dist/common/item-selector/item-selector.d.ts +3 -0
  174. package/dist/common/item-selector/item-selector.js +11 -23
  175. package/dist/common/item-selector/typeahead.js +1 -21
  176. package/dist/common/line-chart.js +1 -21
  177. package/dist/common/loading-spinner.js +1 -21
  178. package/dist/common/logo.js +1 -21
  179. package/dist/common/map-layer-selector.js +1 -21
  180. package/dist/common/modal.js +25 -28
  181. package/dist/common/portaled.d.ts +15 -2
  182. package/dist/common/portaled.js +1 -21
  183. package/dist/common/progress-bar.js +1 -21
  184. package/dist/common/range-brush.js +1 -21
  185. package/dist/common/range-plot.js +1 -21
  186. package/dist/common/range-slider.d.ts +1 -1
  187. package/dist/common/range-slider.js +1 -21
  188. package/dist/common/slider/mouse-event.js +6 -22
  189. package/dist/common/slider/slider-bar-handle.js +1 -21
  190. package/dist/common/slider/slider-handle.js +1 -21
  191. package/dist/common/slider/slider.js +1 -21
  192. package/dist/common/styled-components.d.ts +3 -3
  193. package/dist/common/styled-components.js +26 -47
  194. package/dist/common/switch.js +1 -21
  195. package/dist/common/time-range-slider-time-title.js +1 -21
  196. package/dist/common/time-range-slider.js +1 -21
  197. package/dist/common/time-slider-marker.js +1 -21
  198. package/dist/common/timeline-slider.js +1 -21
  199. package/dist/common/tippy-tooltip.js +1 -21
  200. package/dist/common/toolbar-item.js +1 -21
  201. package/dist/common/toolbar.js +1 -21
  202. package/dist/common/vertical-toolbar.js +1 -21
  203. package/dist/connect/keplergl-connect.js +6 -22
  204. package/dist/connect/with-local-selector.js +1 -21
  205. package/dist/container.js +1 -21
  206. package/dist/context.d.ts +11 -0
  207. package/dist/context.js +18 -23
  208. package/dist/dnd-context.d.ts +1 -1
  209. package/dist/dnd-context.js +32 -127
  210. package/dist/editor/editor.js +1 -21
  211. package/dist/editor/feature-action-panel.js +28 -79
  212. package/dist/effects/compact-color-picker.d.ts +10 -0
  213. package/dist/effects/compact-color-picker.js +130 -0
  214. package/dist/effects/effect-configurator.d.ts +4 -5
  215. package/dist/effects/effect-configurator.js +183 -118
  216. package/dist/effects/effect-list.js +2 -22
  217. package/dist/effects/effect-manager.d.ts +2 -1
  218. package/dist/effects/effect-manager.js +43 -30
  219. package/dist/effects/effect-panel-header.d.ts +14 -2
  220. package/dist/effects/effect-panel-header.js +82 -50
  221. package/dist/effects/effect-panel.js +30 -43
  222. package/dist/effects/effect-time-configurator.d.ts +14 -7
  223. package/dist/effects/effect-time-configurator.js +258 -109
  224. package/dist/effects/effect-time-selector.d.ts +16 -0
  225. package/dist/effects/effect-time-selector.js +181 -0
  226. package/dist/effects/effect-time-slider.d.ts +34 -0
  227. package/dist/effects/effect-time-slider.js +220 -0
  228. package/dist/effects/effect-type-dropdown-list.d.ts +18 -0
  229. package/dist/effects/effect-type-dropdown-list.js +77 -0
  230. package/dist/effects/effect-type-list-item.d.ts +22 -0
  231. package/dist/effects/effect-type-list-item.js +105 -0
  232. package/dist/effects/effect-type-selector.d.ts +22 -3
  233. package/dist/effects/effect-type-selector.js +58 -83
  234. package/dist/effects/side-panel-title.js +1 -21
  235. package/dist/effects/timezone-selector.d.ts +19 -0
  236. package/dist/effects/timezone-selector.js +71 -0
  237. package/dist/filter-animation-controller.js +3 -21
  238. package/dist/filters/components.js +1 -21
  239. package/dist/filters/filter-panels/filter-panel-with-field-select.js +6 -22
  240. package/dist/filters/filter-panels/multi-select-filter-panel.js +6 -22
  241. package/dist/filters/filter-panels/new-filter-panel.js +6 -22
  242. package/dist/filters/filter-panels/polygon-filter-panel.js +6 -22
  243. package/dist/filters/filter-panels/range-filter-panel.js +6 -22
  244. package/dist/filters/filter-panels/single-select-filter-panel.js +6 -22
  245. package/dist/filters/filter-panels/time-range-filter-panel.js +1 -21
  246. package/dist/filters/filter-panels/types.js +0 -20
  247. package/dist/filters/index.js +1 -21
  248. package/dist/filters/multi-select-filter.js +6 -22
  249. package/dist/filters/polygon-filter.js +6 -22
  250. package/dist/filters/range-filter.js +6 -22
  251. package/dist/filters/single-select-filter.js +6 -22
  252. package/dist/filters/time-range-filter.js +7 -22
  253. package/dist/filters/time-widget-top.js +1 -21
  254. package/dist/filters/time-widget.js +1 -21
  255. package/dist/filters/types.js +0 -20
  256. package/dist/geocoder/geocoder.js +10 -27
  257. package/dist/geocoder-panel.js +1 -21
  258. package/dist/hooks/use-cloud-list-provider.d.ts +11 -0
  259. package/dist/hooks/use-cloud-list-provider.js +57 -0
  260. package/dist/hooks/use-dnd-effects.d.ts +9 -0
  261. package/dist/hooks/use-dnd-effects.js +88 -0
  262. package/dist/hooks/use-dnd-layers.d.ts +9 -0
  263. package/dist/hooks/use-dnd-layers.js +95 -0
  264. package/dist/hooks/use-feature-flags.d.ts +5 -0
  265. package/dist/hooks/use-feature-flags.js +21 -0
  266. package/dist/index.d.ts +10 -1
  267. package/dist/index.js +103 -24
  268. package/dist/injector.js +1 -21
  269. package/dist/kepler-gl.d.ts +2 -1
  270. package/dist/kepler-gl.js +13 -25
  271. package/dist/layer-animation-controller.js +3 -21
  272. package/dist/map/coordinate-info.js +6 -22
  273. package/dist/map/effects/effect-control.d.ts +1 -1
  274. package/dist/map/effects/effect-control.js +5 -23
  275. package/dist/map/layer-hover-info.js +2 -22
  276. package/dist/map/layer-selector-panel.js +6 -22
  277. package/dist/map/lazy-tippy.js +1 -21
  278. package/dist/map/locale-panel.js +6 -22
  279. package/dist/map/map-control-panel.js +1 -21
  280. package/dist/map/map-control-toolbar.js +1 -21
  281. package/dist/map/map-control-tooltip.js +6 -22
  282. package/dist/map/map-control.js +1 -21
  283. package/dist/map/map-draw-panel.js +6 -22
  284. package/dist/map/map-legend-panel.js +6 -22
  285. package/dist/map/map-legend.js +1 -21
  286. package/dist/map/map-popover-content.js +6 -22
  287. package/dist/map/map-popover.js +1 -21
  288. package/dist/map/split-map-button.js +6 -22
  289. package/dist/map/toggle-3d-button.js +6 -22
  290. package/dist/map-container.d.ts +1 -1
  291. package/dist/map-container.js +33 -52
  292. package/dist/map-view-state-context.d.ts +6 -1
  293. package/dist/map-view-state-context.js +34 -33
  294. package/dist/maps-layout.js +1 -21
  295. package/dist/modal-container.d.ts +2 -2
  296. package/dist/modal-container.js +13 -72
  297. package/dist/modals/add-map-style-modal.js +8 -72
  298. package/dist/modals/cloud-components/cloud-header.d.ts +8 -0
  299. package/dist/modals/cloud-components/cloud-header.js +65 -0
  300. package/dist/modals/cloud-components/cloud-item.d.ts +5 -0
  301. package/dist/modals/cloud-components/cloud-item.js +72 -0
  302. package/dist/modals/cloud-components/cloud-item.spec.d.ts +1 -0
  303. package/dist/modals/cloud-components/cloud-item.spec.js +105 -0
  304. package/dist/modals/cloud-components/cloud-maps.d.ts +8 -0
  305. package/dist/modals/cloud-components/cloud-maps.js +63 -0
  306. package/dist/modals/cloud-components/cloud-maps.spec.d.ts +1 -0
  307. package/dist/modals/cloud-components/cloud-maps.spec.js +112 -0
  308. package/dist/modals/cloud-components/provider-loading.d.ts +2 -0
  309. package/dist/modals/cloud-components/provider-loading.js +29 -0
  310. package/dist/modals/cloud-components/provider-select.d.ts +7 -0
  311. package/dist/modals/cloud-components/provider-select.js +40 -0
  312. package/dist/modals/cloud-tile.d.ts +8 -8
  313. package/dist/modals/cloud-tile.js +184 -75
  314. package/dist/modals/data-table-modal.js +1 -21
  315. package/dist/modals/delete-data-modal.js +1 -21
  316. package/dist/modals/error-display.js +15 -26
  317. package/dist/modals/export-data-modal.js +1 -21
  318. package/dist/modals/export-image-modal.js +1 -21
  319. package/dist/modals/export-map-modal/components.js +1 -21
  320. package/dist/modals/export-map-modal/export-html-map.js +1 -21
  321. package/dist/modals/export-map-modal/export-json-map.js +1 -21
  322. package/dist/modals/export-map-modal/export-map-modal.js +6 -22
  323. package/dist/modals/image-modal-container.d.ts +1 -3
  324. package/dist/modals/image-modal-container.js +12 -34
  325. package/dist/modals/load-data-modal.d.ts +0 -5
  326. package/dist/modals/load-data-modal.js +1 -21
  327. package/dist/modals/load-storage-map.d.ts +3 -24
  328. package/dist/modals/load-storage-map.js +69 -282
  329. package/dist/modals/load-storage-map.spec.d.ts +1 -0
  330. package/dist/modals/load-storage-map.spec.js +237 -0
  331. package/dist/modals/loading-dialog.js +1 -21
  332. package/dist/modals/modal-dialog.js +6 -22
  333. package/dist/modals/modal-tabs.js +1 -21
  334. package/dist/modals/overwrite-map-modal.d.ts +2 -2
  335. package/dist/modals/overwrite-map-modal.js +39 -32
  336. package/dist/modals/save-map-modal.d.ts +3 -5
  337. package/dist/modals/save-map-modal.js +99 -119
  338. package/dist/modals/save-map-modal.spec.d.ts +1 -0
  339. package/dist/modals/save-map-modal.spec.js +218 -0
  340. package/dist/modals/share-map-modal.d.ts +1 -5
  341. package/dist/modals/share-map-modal.js +57 -81
  342. package/dist/modals/share-map-modal.spec.d.ts +1 -0
  343. package/dist/modals/share-map-modal.spec.js +202 -0
  344. package/dist/modals/status-panel.js +1 -21
  345. package/dist/modals/storage-map-viewer.js +1 -21
  346. package/dist/notification-panel/notification-item.js +1 -21
  347. package/dist/notification-panel.js +1 -21
  348. package/dist/plot-container.js +7 -27
  349. package/dist/side-panel/add-by-dataset-button.js +1 -21
  350. package/dist/side-panel/cloud-storage-dropdown.js +6 -22
  351. package/dist/side-panel/common/dataset-info.js +1 -21
  352. package/dist/side-panel/common/dataset-tag.js +1 -21
  353. package/dist/side-panel/common/dataset-title.js +1 -21
  354. package/dist/side-panel/common/source-data-catalog.js +1 -21
  355. package/dist/side-panel/common/source-data-selector.js +6 -22
  356. package/dist/side-panel/common/types.js +0 -20
  357. package/dist/side-panel/custom-panel.js +6 -22
  358. package/dist/side-panel/filter-manager.js +1 -21
  359. package/dist/side-panel/filter-panel/add-filter-button.js +6 -22
  360. package/dist/side-panel/filter-panel/filter-panel-header.js +2 -22
  361. package/dist/side-panel/filter-panel/filter-panel.js +1 -21
  362. package/dist/side-panel/interaction-manager.js +6 -22
  363. package/dist/side-panel/interaction-panel/brush-config.js +1 -21
  364. package/dist/side-panel/interaction-panel/interaction-panel.js +1 -21
  365. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +8 -0
  366. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +46 -27
  367. package/dist/side-panel/interaction-panel/tooltip-config.js +41 -52
  368. package/dist/side-panel/layer-manager.d.ts +5 -0
  369. package/dist/side-panel/layer-manager.js +3 -22
  370. package/dist/side-panel/layer-panel/add-layer-button.js +6 -22
  371. package/dist/side-panel/layer-panel/color-palette.js +1 -21
  372. package/dist/side-panel/layer-panel/color-range-selector.js +1 -21
  373. package/dist/side-panel/layer-panel/color-selector.js +1 -21
  374. package/dist/side-panel/layer-panel/column-selector.js +1 -21
  375. package/dist/side-panel/layer-panel/custom-palette.js +1 -21
  376. package/dist/side-panel/layer-panel/custom-picker.js +1 -21
  377. package/dist/side-panel/layer-panel/dataset-layer-group.js +6 -22
  378. package/dist/side-panel/layer-panel/dataset-layer-section.js +1 -21
  379. package/dist/side-panel/layer-panel/dataset-section.js +1 -21
  380. package/dist/side-panel/layer-panel/dimension-scale-selector.js +6 -22
  381. package/dist/side-panel/layer-panel/how-to-button.js +1 -21
  382. package/dist/side-panel/layer-panel/layer-color-selector.js +6 -22
  383. package/dist/side-panel/layer-panel/layer-column-config.js +1 -21
  384. package/dist/side-panel/layer-panel/layer-config-group.js +1 -21
  385. package/dist/side-panel/layer-panel/layer-configurator.js +16 -24
  386. package/dist/side-panel/layer-panel/layer-error-message.js +1 -21
  387. package/dist/side-panel/layer-panel/layer-list.js +1 -21
  388. package/dist/side-panel/layer-panel/layer-panel-header.js +1 -21
  389. package/dist/side-panel/layer-panel/layer-panel.js +1 -21
  390. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +1 -21
  391. package/dist/side-panel/layer-panel/layer-type-list-item.js +1 -21
  392. package/dist/side-panel/layer-panel/layer-type-selector.js +1 -21
  393. package/dist/side-panel/layer-panel/single-color-palette.js +1 -21
  394. package/dist/side-panel/layer-panel/text-label-panel.js +1 -21
  395. package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +1 -21
  396. package/dist/side-panel/layer-panel/vis-config-slider.js +1 -21
  397. package/dist/side-panel/layer-panel/vis-config-switch.js +1 -21
  398. package/dist/side-panel/map-manager.js +1 -21
  399. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +1 -21
  400. package/dist/side-panel/map-style-panel/map-layer-group-item.js +1 -21
  401. package/dist/side-panel/map-style-panel/map-layer-selector.js +1 -21
  402. package/dist/side-panel/map-style-panel/map-style-selector.js +1 -21
  403. package/dist/side-panel/panel-dropdown.js +1 -21
  404. package/dist/side-panel/panel-header-action.js +1 -21
  405. package/dist/side-panel/panel-header.js +2 -21
  406. package/dist/side-panel/panel-tab.js +1 -21
  407. package/dist/side-panel/panel-title.js +1 -21
  408. package/dist/side-panel/panel-toggle.js +1 -21
  409. package/dist/side-panel/panel-view-list-toggle.js +1 -21
  410. package/dist/side-panel/side-bar.js +1 -21
  411. package/dist/side-panel.js +7 -36
  412. package/dist/types.d.ts +2 -4
  413. package/dist/types.js +0 -20
  414. package/package.json +27 -24
  415. package/dist/hooks/useFeatureFlags.d.ts +0 -2
  416. package/dist/hooks/useFeatureFlags.js +0 -38
  417. package/dist/modals/provider-modal-container.d.ts +0 -23
  418. package/dist/modals/provider-modal-container.js +0 -101
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2023 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
1
  "use strict";
22
2
 
23
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -55,7 +35,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
55
35
 
56
36
  var _styledComponents = _interopRequireDefault(require("styled-components"));
57
37
 
58
- var _reactMapGl = _interopRequireDefault(require("react-map-gl"));
38
+ var _maplibre = _interopRequireDefault(require("react-map-gl/maplibre"));
59
39
 
60
40
  var _styledComponents2 = require("../common/styled-components");
61
41
 
@@ -67,7 +47,7 @@ var _reactIntl = require("react-intl");
67
47
 
68
48
  var _localization = require("@kepler.gl/localization");
69
49
 
70
- var _mapboxGl = _interopRequireDefault(require("mapbox-gl"));
50
+ var _maplibreGl = _interopRequireDefault(require("maplibre-gl"));
71
51
 
72
52
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
73
53
 
@@ -139,7 +119,6 @@ function AddMapStyleModalFactory() {
139
119
  var map = this.mapRef && this.mapRef.getMap();
140
120
 
141
121
  if (map && this._map !== map) {
142
- // @ts-expect-error react-map-gl.Map vs mapbox-gl.Map ?
143
122
  this._map = map;
144
123
  map.on('style.load', function () {
145
124
  var style = map.getStyle();
@@ -166,7 +145,7 @@ function AddMapStyleModalFactory() {
166
145
  var mapProps = _objectSpread(_objectSpread({}, mapState), {}, {
167
146
  baseApiUrl: mapboxApiUrl,
168
147
  mapboxAccessToken: mapboxApiAccessToken,
169
- mapLib: _mapboxGl["default"],
148
+ mapLib: _maplibreGl["default"],
170
149
  preserveDrawingBuffer: true,
171
150
  transformRequest: _utils.transformRequest
172
151
  });
@@ -202,50 +181,7 @@ function AddMapStyleModalFactory() {
202
181
  url: value
203
182
  });
204
183
  },
205
- placeholder: "e.g. mapbox://styles/username/style, http://my.stles.com/xxx/style.json "
206
- })), /*#__PURE__*/_react["default"].createElement(_styledComponents2.StyledModalSection, null, /*#__PURE__*/_react["default"].createElement("div", {
207
- className: "modal-section-title"
208
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
209
- id: 'modal.addStyle.publishTitle'
210
- })), /*#__PURE__*/_react["default"].createElement("div", {
211
- className: "modal-section-subtitle"
212
- }, intl.formatMessage({
213
- id: 'modal.addStyle.publishSubtitle1'
214
- }), /*#__PURE__*/_react["default"].createElement(InlineLink, {
215
- target: "_blank",
216
- href: "https://www.mapbox.com/studio/styles/"
217
- }, ' ', "mapbox"), ' ', intl.formatMessage({
218
- id: 'modal.addStyle.publishSubtitle2'
219
- }), /*#__PURE__*/_react["default"].createElement(InlineLink, {
220
- target: "_blank",
221
- href: "https://www.mapbox.com/help/studio-manual-publish/"
222
- }, ' ', intl.formatMessage({
223
- id: 'modal.addStyle.publishSubtitle3'
224
- })), ' ', intl.formatMessage({
225
- id: 'modal.addStyle.publishSubtitle4'
226
- })), /*#__PURE__*/_react["default"].createElement("div", {
227
- className: "modal-section-subtitle"
228
- }, intl.formatMessage({
229
- id: 'modal.addStyle.publishSubtitle5'
230
- }), /*#__PURE__*/_react["default"].createElement(InlineLink, {
231
- target: "_blank",
232
- href: "https://www.mapbox.com/help/how-access-tokens-work/"
233
- }, ' ', intl.formatMessage({
234
- id: 'modal.addStyle.publishSubtitle6'
235
- })), ' ', intl.formatMessage({
236
- id: 'modal.addStyle.publishSubtitle7'
237
- })), /*#__PURE__*/_react["default"].createElement(_styledComponents2.InputLight, {
238
- type: "text",
239
- value: inputStyle.accessToken || '',
240
- onChange: function onChange(_ref2) {
241
- var value = _ref2.target.value;
242
- return _this3.props.inputMapStyle({
243
- accessToken: value
244
- });
245
- },
246
- placeholder: intl.formatMessage({
247
- id: 'modal.addStyle.exampleToken'
248
- })
184
+ placeholder: "e.g. https://basemaps.cartocdn.com/gl/positron-gl-style/style.json"
249
185
  })), /*#__PURE__*/_react["default"].createElement(_styledComponents2.StyledModalSection, null, /*#__PURE__*/_react["default"].createElement("div", {
250
186
  className: "modal-section-title"
251
187
  }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
@@ -253,8 +189,8 @@ function AddMapStyleModalFactory() {
253
189
  })), /*#__PURE__*/_react["default"].createElement(_styledComponents2.InputLight, {
254
190
  type: "text",
255
191
  value: inputStyle.label || '',
256
- onChange: function onChange(_ref3) {
257
- var value = _ref3.target.value;
192
+ onChange: function onChange(_ref2) {
193
+ var value = _ref2.target.value;
258
194
  return _this3.props.inputMapStyle({
259
195
  label: value
260
196
  });
@@ -267,7 +203,7 @@ function AddMapStyleModalFactory() {
267
203
  className: "preview-image"
268
204
  }, !inputStyle.isValid ? /*#__PURE__*/_react["default"].createElement("div", {
269
205
  className: "preview-image-spinner"
270
- }) : /*#__PURE__*/_react["default"].createElement(_styledComponents2.StyledMapContainer, null, /*#__PURE__*/_react["default"].createElement(_reactMapGl["default"], (0, _extends2["default"])({}, mapProps, {
206
+ }) : /*#__PURE__*/_react["default"].createElement(_styledComponents2.StyledMapContainer, null, /*#__PURE__*/_react["default"].createElement(_maplibre["default"], (0, _extends2["default"])({}, mapProps, {
271
207
  ref: function ref(el) {
272
208
  _this3.mapRef = el;
273
209
  },
@@ -303,4 +239,4 @@ function AddMapStyleModalFactory() {
303
239
 
304
240
  var _default = AddMapStyleModalFactory;
305
241
  exports["default"] = _default;
306
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvYWRkLW1hcC1zdHlsZS1tb2RhbC50c3giXSwibmFtZXMiOlsiTWFwSCIsIk1hcFciLCJFcnJvck1zZyIsInN0eWxlRXJyb3IiLCJQcmV2aWV3TWFwIiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsImVycm9yQ29sb3IiLCJtZWRpYSIsInBvcnRhYmxlIiwicGFsbSIsIlN0eWxlZFByZXZpZXdJbWFnZSIsIm1vZGFsSW1hZ2VQbGFjZUhvbGRlciIsIklubGluZUxpbmsiLCJhIiwiQWRkTWFwU3R5bGVNb2RhbEZhY3RvcnkiLCJBZGRNYXBTdHlsZU1vZGFsIiwicmVSZW5kZXJLZXkiLCJwcmV2aW91c1Rva2VuIiwic3R5bGUiLCJsb2FkQ3VzdG9tTWFwU3R5bGUiLCJlcnJvciIsIm1hcCIsIm1hcFJlZiIsImdldE1hcCIsIl9tYXAiLCJvbiIsImdldFN0eWxlIiwibG9hZE1hcFN0eWxlSnNvbiIsImxvYWRNYXBTdHlsZUVycm9yIiwiaW5wdXRTdHlsZSIsIm1hcFN0YXRlIiwibWFwYm94QXBpVXJsIiwiaW50bCIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwiYWNjZXNzVG9rZW4iLCJtYXBQcm9wcyIsImJhc2VBcGlVcmwiLCJtYXBib3hBY2Nlc3NUb2tlbiIsIm1hcExpYiIsIm1hcGJveGdsIiwicHJlc2VydmVEcmF3aW5nQnVmZmVyIiwidHJhbnNmb3JtUmVxdWVzdCIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsInVybCIsInZhbHVlIiwidGFyZ2V0IiwiaW5wdXRNYXBTdHlsZSIsImxhYmVsIiwibmFtZSIsImlzVmFsaWQiLCJlbCIsInN0YXRlIiwid2lkdGgiLCJoZWlnaHQiLCJ1bmRlZmluZWQiLCJDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQU9BOztBQUdBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7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TGpDLFNBQU8sMkJBQVcscUNBQVN6QyxnQkFBVCxDQUFYLENBQVA7QUFDRDs7ZUFFY0QsdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7cG9seWZpbGx9IGZyb20gJ3JlYWN0LWxpZmVjeWNsZXMtY29tcGF0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgTWFwYm94R0xNYXAsIHtNYXBSZWZ9IGZyb20gJ3JlYWN0LW1hcC1nbCc7XG5pbXBvcnQge1xuICBTdHlsZWRNb2RhbENvbnRlbnQsXG4gIElucHV0TGlnaHQsXG4gIFN0eWxlZE1hcENvbnRhaW5lcixcbiAgU3R5bGVkTW9kYWxWZXJ0aWNhbFBhbmVsLFxuICBTdHlsZWRNb2RhbFNlY3Rpb25cbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7bWVkaWF9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcblxuLy8gVXRpbHNcbmltcG9ydCB7dHJhbnNmb3JtUmVxdWVzdH0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCBtYXBib3hnbCBmcm9tICdtYXBib3gtZ2wnO1xuaW1wb3J0IHtJbnB1dFN0eWxlLCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmNvbnN0IE1hcEggPSAxOTA7XG5jb25zdCBNYXBXID0gMjY0O1xuY29uc3QgRXJyb3JNc2cgPSB7XG4gIHN0eWxlRXJyb3I6XG4gICAgJ0ZhaWxlZCB0byBsb2FkIG1hcCBzdHlsZSwgbWFrZSBzdXJlIGl0IGlzIHB1Ymxpc2hlZC4gRm9yIHByaXZhdGUgc3R5bGUsIHBhc3RlIGluIHlvdXIgYWNjZXNzIHRva2VuLidcbn07XG5cbmNvbnN0IFByZXZpZXdNYXAgPSBzdHlsZWQuZGl2YFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDExNnB4O1xuICBmbGV4LXNocmluazogMDtcblxuICAucHJldmlldy10aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgcGFkZGluZzogOHB4IDBweDtcbiAgfVxuXG4gIC5wcmV2aWV3LXRpdGxlLmVycm9yIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5lcnJvckNvbG9yfTtcbiAgfVxuXG4gICR7bWVkaWEucG9ydGFibGVgXG4gICAgbWFyZ2luLWxlZnQ6IDMycHg7XG4gIGB9O1xuXG4gICR7bWVkaWEucGFsbWBcbiAgICBtYXJnaW4tbGVmdDogdW5zZXQ7XG4gICAgLnByZXZpZXctdGl0bGUge1xuICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgIH1cbiAgYH07XG5gO1xuXG5jb25zdCBTdHlsZWRQcmV2aWV3SW1hZ2UgPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1vZGFsSW1hZ2VQbGFjZUhvbGRlcn07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMTZweCAwIHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gIHdpZHRoOiAke01hcFd9cHg7XG4gIGhlaWdodDogJHtNYXBIfXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLnByZXZpZXctaW1hZ2UtcGxhY2Vob2xkZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC5wcmV2aWV3LWltYWdlLXNwaW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDI1cHgpO1xuICAgIHRvcDogY2FsYyg1MCUgLSAyNXB4KTtcbiAgfVxuYDtcblxuY29uc3QgSW5saW5lTGluayA9IHN0eWxlZC5hYFxuICBmb250LXdlaWdodDogNTAwO1xuXG4gIDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgQWRkTWFwU3R5bGVNb2RhbFByb3BzIHtcbiAgaW5wdXRNYXBTdHlsZTogRnVuY3Rpb247XG4gIGlucHV0U3R5bGU6IElucHV0U3R5bGU7XG4gIGxvYWRDdXN0b21NYXBTdHlsZTogRnVuY3Rpb247XG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIG1hcGJveEFwaVVybD86IHN0cmluZztcbiAgbWFwU3RhdGU6IE1hcFN0YXRlO1xuICBpbnRsOiBJbnRsU2hhcGU7XG59XG5cbmZ1bmN0aW9uIEFkZE1hcFN0eWxlTW9kYWxGYWN0b3J5KCkge1xuICBjbGFzcyBBZGRNYXBTdHlsZU1vZGFsIGV4dGVuZHMgQ29tcG9uZW50PEFkZE1hcFN0eWxlTW9kYWxQcm9wcz4ge1xuICAgIHN0YXRlID0ge1xuICAgICAgcmVSZW5kZXJLZXk6IDAsXG4gICAgICBwcmV2aW91c1Rva2VuOiBudWxsXG4gICAgfTtcblxuICAgIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMocHJvcHMsIHN0YXRlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHByb3BzLmlucHV0U3R5bGUgJiZcbiAgICAgICAgcHJvcHMuaW5wdXRTdHlsZS5hY2Nlc3NUb2tlbiAmJlxuICAgICAgICBwcm9wcy5pbnB1dFN0eWxlLmFjY2Vzc1Rva2VuICE9PSBzdGF0ZS5wcmV2aW91c1Rva2VuXG4gICAgICApIHtcbiAgICAgICAgLy8gdG9rZSBoYXMgY2hhbmdlZFxuICAgICAgICAvLyBSZWFjdE1hcEdsIGRvZXNuJ3QgcmUtY3JlYXRlIG1hcCB3aGVuIHRva2VuIGhhcyBjaGFuZ2VkXG4gICAgICAgIC8vIGhlcmUgd2UgZm9yY2UgdGhlIG1hcCB0byB1cGRhdGVcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlUmVuZGVyS2V5OiBzdGF0ZS5yZVJlbmRlcktleSArIDEsXG4gICAgICAgICAgcHJldmlvdXNUb2tlbjogcHJvcHMuaW5wdXRTdHlsZS5hY2Nlc3NUb2tlblxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBtYXBSZWY6IE1hcFJlZiB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgX21hcDogbWFwYm94Z2wuTWFwIHwgdW5kZWZpbmVkO1xuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgY29uc3QgbWFwID0gdGhpcy5tYXBSZWYgJiYgdGhpcy5tYXBSZWYuZ2V0TWFwKCk7XG4gICAgICBpZiAobWFwICYmIHRoaXMuX21hcCAhPT0gbWFwKSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgcmVhY3QtbWFwLWdsLk1hcCB2cyBtYXBib3gtZ2wuTWFwID9cbiAgICAgICAgdGhpcy5fbWFwID0gbWFwO1xuXG4gICAgICAgIG1hcC5vbignc3R5bGUubG9hZCcsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBzdHlsZSA9IG1hcC5nZXRTdHlsZSgpO1xuICAgICAgICAgIHRoaXMubG9hZE1hcFN0eWxlSnNvbihzdHlsZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG1hcC5vbignZXJyb3InLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkTWFwU3R5bGVFcnJvcigpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsb2FkTWFwU3R5bGVKc29uID0gc3R5bGUgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5sb2FkQ3VzdG9tTWFwU3R5bGUoe3N0eWxlLCBlcnJvcjogZmFsc2V9KTtcbiAgICB9O1xuXG4gICAgbG9hZE1hcFN0eWxlRXJyb3IgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLmxvYWRDdXN0b21NYXBTdHlsZSh7ZXJyb3I6IHRydWV9KTtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2lucHV0U3R5bGUsIG1hcFN0YXRlLCBtYXBib3hBcGlVcmwsIGludGx9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgbWFwYm94QXBpQWNjZXNzVG9rZW4gPSBpbnB1dFN0eWxlLmFjY2Vzc1Rva2VuIHx8IHRoaXMucHJvcHMubWFwYm94QXBpQWNjZXNzVG9rZW47XG4gICAgICBjb25zdCBtYXBQcm9wcyA9IHtcbiAgICAgICAgLi4ubWFwU3RhdGUsXG4gICAgICAgIGJhc2VBcGlVcmw6IG1hcGJveEFwaVVybCxcbiAgICAgICAgbWFwYm94QWNjZXNzVG9rZW46IG1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICBtYXBMaWI6IG1hcGJveGdsLFxuICAgICAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUsXG4gICAgICAgIHRyYW5zZm9ybVJlcXVlc3RcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWRkLW1hcC1zdHlsZS1tb2RhbFwiPlxuICAgICAgICAgIDxTdHlsZWRNb2RhbENvbnRlbnQ+XG4gICAgICAgICAgICA8U3R5bGVkTW9kYWxWZXJ0aWNhbFBhbmVsPlxuICAgICAgICAgICAgICA8U3R5bGVkTW9kYWxTZWN0aW9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtc2VjdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5hZGRTdHlsZS5wYXN0ZVRpdGxlJ30gLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLXNlY3Rpb24tc3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuYWRkU3R5bGUucGFzdGVTdWJ0aXRsZTAnfSl9XG4gICAgICAgICAgICAgICAgICA8SW5saW5lTGlua1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cubWFwYm94LmNvbS9oZWxwL3N0dWRpby1tYW51YWwtcHVibGlzaC8jc3R5bGUtdXJsXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5wYXN0ZVN1YnRpdGxlMid9KX1cbiAgICAgICAgICAgICAgICAgIDwvSW5saW5lTGluaz57JyAnfVxuICAgICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5wYXN0ZVN1YnRpdGxlMyd9KX1cbiAgICAgICAgICAgICAgICAgIDxJbmxpbmVMaW5rXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2RvY3MubWFwYm94LmNvbS9tYXBib3gtZ2wtanMvc3R5bGUtc3BlY1wiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuYWRkU3R5bGUucGFzdGVTdWJ0aXRsZTQnfSl9XG4gICAgICAgICAgICAgICAgICA8L0lubGluZUxpbms+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPElucHV0TGlnaHRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtpbnB1dFN0eWxlLnVybCB8fCAnJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoe3RhcmdldDoge3ZhbHVlfX0pID0+IHRoaXMucHJvcHMuaW5wdXRNYXBTdHlsZSh7dXJsOiB2YWx1ZX0pfVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJlLmcuIG1hcGJveDovL3N0eWxlcy91c2VybmFtZS9zdHlsZSwgaHR0cDovL215LnN0bGVzLmNvbS94eHgvc3R5bGUuanNvbiBcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3R5bGVkTW9kYWxTZWN0aW9uPlxuXG4gICAgICAgICAgICAgIDxTdHlsZWRNb2RhbFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmFkZFN0eWxlLnB1Ymxpc2hUaXRsZSd9IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1zZWN0aW9uLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICB7aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmFkZFN0eWxlLnB1Ymxpc2hTdWJ0aXRsZTEnfSl9XG4gICAgICAgICAgICAgICAgICA8SW5saW5lTGluayB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly93d3cubWFwYm94LmNvbS9zdHVkaW8vc3R5bGVzL1wiPlxuICAgICAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgICAgICBtYXBib3hcbiAgICAgICAgICAgICAgICAgIDwvSW5saW5lTGluaz57JyAnfVxuICAgICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5wdWJsaXNoU3VidGl0bGUyJ30pfVxuICAgICAgICAgICAgICAgICAgPElubGluZUxpbmtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3Lm1hcGJveC5jb20vaGVscC9zdHVkaW8tbWFudWFsLXB1Ymxpc2gvXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5wdWJsaXNoU3VidGl0bGUzJ30pfVxuICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMaW5rPnsnICd9XG4gICAgICAgICAgICAgICAgICB7aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmFkZFN0eWxlLnB1Ymxpc2hTdWJ0aXRsZTQnfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLXNlY3Rpb24tc3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuYWRkU3R5bGUucHVibGlzaFN1YnRpdGxlNSd9KX1cbiAgICAgICAgICAgICAgICAgIDxJbmxpbmVMaW5rXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL2hlbHAvaG93LWFjY2Vzcy10b2tlbnMtd29yay9cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgICAgICB7aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmFkZFN0eWxlLnB1Ymxpc2hTdWJ0aXRsZTYnfSl9XG4gICAgICAgICAgICAgICAgICA8L0lubGluZUxpbms+eycgJ31cbiAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuYWRkU3R5bGUucHVibGlzaFN1YnRpdGxlNyd9KX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2lucHV0U3R5bGUuYWNjZXNzVG9rZW4gfHwgJyd9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHt0YXJnZXQ6IHt2YWx1ZX19KSA9PiB0aGlzLnByb3BzLmlucHV0TWFwU3R5bGUoe2FjY2Vzc1Rva2VuOiB2YWx1ZX0pfVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5leGFtcGxlVG9rZW4nfSl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdHlsZWRNb2RhbFNlY3Rpb24+XG5cbiAgICAgICAgICAgICAgPFN0eWxlZE1vZGFsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuYWRkU3R5bGUubmFtaW5nVGl0bGUnfSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17aW5wdXRTdHlsZS5sYWJlbCB8fCAnJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoe3RhcmdldDoge3ZhbHVlfX0pID0+IHRoaXMucHJvcHMuaW5wdXRNYXBTdHlsZSh7bGFiZWw6IHZhbHVlfSl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdHlsZWRNb2RhbFNlY3Rpb24+XG4gICAgICAgICAgICA8L1N0eWxlZE1vZGFsVmVydGljYWxQYW5lbD5cbiAgICAgICAgICAgIDxQcmV2aWV3TWFwPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdwcmV2aWV3LXRpdGxlJywge1xuICAgICAgICAgICAgICAgICAgZXJyb3I6IGlucHV0U3R5bGUuZXJyb3JcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtpbnB1dFN0eWxlLmVycm9yXG4gICAgICAgICAgICAgICAgICA/IEVycm9yTXNnLnN0eWxlRXJyb3JcbiAgICAgICAgICAgICAgICAgIDogKGlucHV0U3R5bGUuc3R5bGUgJiYgaW5wdXRTdHlsZS5zdHlsZS5uYW1lKSB8fCAnJ31cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxTdHlsZWRQcmV2aWV3SW1hZ2UgY2xhc3NOYW1lPVwicHJldmlldy1pbWFnZVwiPlxuICAgICAgICAgICAgICAgIHshaW5wdXRTdHlsZS5pc1ZhbGlkID8gKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwcmV2aWV3LWltYWdlLXNwaW5uZXJcIiAvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkTWFwQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8TWFwYm94R0xNYXBcbiAgICAgICAgICAgICAgICAgICAgICB7Li4ubWFwUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcFJlZiA9IGVsO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAga2V5PXt0aGlzLnN0YXRlLnJlUmVuZGVyS2V5fVxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogTWFwVyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogTWFwSFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgbWFwU3R5bGU9e2lucHV0U3R5bGUudXJsID09PSBudWxsID8gdW5kZWZpbmVkIDogaW5wdXRTdHlsZS51cmx9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZE1hcENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZFByZXZpZXdJbWFnZT5cbiAgICAgICAgICAgIDwvUHJldmlld01hcD5cbiAgICAgICAgICA8L1N0eWxlZE1vZGFsQ29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpbmplY3RJbnRsKHBvbHlmaWxsKEFkZE1hcFN0eWxlTW9kYWwpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQWRkTWFwU3R5bGVNb2RhbEZhY3Rvcnk7XG4iXX0=
242
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvYWRkLW1hcC1zdHlsZS1tb2RhbC50c3giXSwibmFtZXMiOlsiTWFwSCIsIk1hcFciLCJFcnJvck1zZyIsInN0eWxlRXJyb3IiLCJQcmV2aWV3TWFwIiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsImVycm9yQ29sb3IiLCJtZWRpYSIsInBvcnRhYmxlIiwicGFsbSIsIlN0eWxlZFByZXZpZXdJbWFnZSIsIm1vZGFsSW1hZ2VQbGFjZUhvbGRlciIsIklubGluZUxpbmsiLCJhIiwiQWRkTWFwU3R5bGVNb2RhbEZhY3RvcnkiLCJBZGRNYXBTdHlsZU1vZGFsIiwicmVSZW5kZXJLZXkiLCJwcmV2aW91c1Rva2VuIiwic3R5bGUiLCJsb2FkQ3VzdG9tTWFwU3R5bGUiLCJlcnJvciIsIm1hcCIsIm1hcFJlZiIsImdldE1hcCIsIl9tYXAiLCJvbiIsImdldFN0eWxlIiwibG9hZE1hcFN0eWxlSnNvbiIsImxvYWRNYXBTdHlsZUVycm9yIiwiaW5wdXRTdHlsZSIsIm1hcFN0YXRlIiwibWFwYm94QXBpVXJsIiwiaW50bCIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwiYWNjZXNzVG9rZW4iLCJtYXBQcm9wcyIsImJhc2VBcGlVcmwiLCJtYXBib3hBY2Nlc3NUb2tlbiIsIm1hcExpYiIsIm1hcGxpYnJlZ2wiLCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCJ0cmFuc2Zvcm1SZXF1ZXN0IiwiZm9ybWF0TWVzc2FnZSIsImlkIiwidXJsIiwidmFsdWUiLCJ0YXJnZXQiLCJpbnB1dE1hcFN0eWxlIiwibGFiZWwiLCJuYW1lIiwiaXNWYWxpZCIsImVsIiwic3RhdGUiLCJ3aWR0aCIsImhlaWdodCIsInVuZGVmaW5lZCIsIkNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7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QUFNLEVBQUV6RDtBQUZILFdBTlQ7QUFVRSxVQUFBLFFBQVEsRUFBRWdDLFVBQVUsQ0FBQ2UsR0FBWCxLQUFtQixJQUFuQixHQUEwQlcsU0FBMUIsR0FBc0MxQixVQUFVLENBQUNlO0FBVjdELFdBREYsQ0FKSixDQVZGLENBbkZGLENBREYsQ0FERjtBQXVIRDtBQTFMOEI7QUFBQTtBQUFBLGFBTy9CLGtDQUFnQ3hDLEtBQWhDLEVBQXVDZ0QsS0FBdkMsRUFBOEM7QUFDNUMsWUFDRWhELEtBQUssQ0FBQ3lCLFVBQU4sSUFDQXpCLEtBQUssQ0FBQ3lCLFVBQU4sQ0FBaUJLLFdBRGpCLElBRUE5QixLQUFLLENBQUN5QixVQUFOLENBQWlCSyxXQUFqQixLQUFpQ2tCLEtBQUssQ0FBQ25DLGFBSHpDLEVBSUU7QUFDQTtBQUNBO0FBQ0E7QUFFQSxpQkFBTztBQUNMRCxZQUFBQSxXQUFXLEVBQUVvQyxLQUFLLENBQUNwQyxXQUFOLEdBQW9CLENBRDVCO0FBRUxDLFlBQUFBLGFBQWEsRUFBRWIsS0FBSyxDQUFDeUIsVUFBTixDQUFpQks7QUFGM0IsV0FBUDtBQUlEOztBQUVELGVBQU8sSUFBUDtBQUNEO0FBeEI4QjtBQUFBO0FBQUEsSUFDRnNCLGdCQURFOztBQTZMakMsU0FBTywyQkFBVyxxQ0FBU3pDLGdCQUFULENBQVgsQ0FBUDtBQUNEOztlQUVjRCx1QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtwb2x5ZmlsbH0gZnJvbSAncmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBNYXBHTE1hcCwge01hcFJlZn0gZnJvbSAncmVhY3QtbWFwLWdsL21hcGxpYnJlJztcbmltcG9ydCB7XG4gIFN0eWxlZE1vZGFsQ29udGVudCxcbiAgSW5wdXRMaWdodCxcbiAgU3R5bGVkTWFwQ29udGFpbmVyLFxuICBTdHlsZWRNb2RhbFZlcnRpY2FsUGFuZWwsXG4gIFN0eWxlZE1vZGFsU2VjdGlvblxufSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHttZWRpYX0gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuXG4vLyBVdGlsc1xuaW1wb3J0IHt0cmFuc2Zvcm1SZXF1ZXN0fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7aW5qZWN0SW50bCwgSW50bFNoYXBlfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IG1hcGxpYnJlZ2wgZnJvbSAnbWFwbGlicmUtZ2wnO1xuaW1wb3J0IHtJbnB1dFN0eWxlLCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmNvbnN0IE1hcEggPSAxOTA7XG5jb25zdCBNYXBXID0gMjY0O1xuY29uc3QgRXJyb3JNc2cgPSB7XG4gIHN0eWxlRXJyb3I6XG4gICAgJ0ZhaWxlZCB0byBsb2FkIG1hcCBzdHlsZSwgbWFrZSBzdXJlIGl0IGlzIHB1Ymxpc2hlZC4gRm9yIHByaXZhdGUgc3R5bGUsIHBhc3RlIGluIHlvdXIgYWNjZXNzIHRva2VuLidcbn07XG5cbmNvbnN0IFByZXZpZXdNYXAgPSBzdHlsZWQuZGl2YFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDExNnB4O1xuICBmbGV4LXNocmluazogMDtcblxuICAucHJldmlldy10aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgcGFkZGluZzogOHB4IDBweDtcbiAgfVxuXG4gIC5wcmV2aWV3LXRpdGxlLmVycm9yIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5lcnJvckNvbG9yfTtcbiAgfVxuXG4gICR7bWVkaWEucG9ydGFibGVgXG4gICAgbWFyZ2luLWxlZnQ6IDMycHg7XG4gIGB9O1xuXG4gICR7bWVkaWEucGFsbWBcbiAgICBtYXJnaW4tbGVmdDogdW5zZXQ7XG4gICAgLnByZXZpZXctdGl0bGUge1xuICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgIH1cbiAgYH07XG5gO1xuXG5jb25zdCBTdHlsZWRQcmV2aWV3SW1hZ2UgPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1vZGFsSW1hZ2VQbGFjZUhvbGRlcn07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMTZweCAwIHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gIHdpZHRoOiAke01hcFd9cHg7XG4gIGhlaWdodDogJHtNYXBIfXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLnByZXZpZXctaW1hZ2UtcGxhY2Vob2xkZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC5wcmV2aWV3LWltYWdlLXNwaW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDI1cHgpO1xuICAgIHRvcDogY2FsYyg1MCUgLSAyNXB4KTtcbiAgfVxuYDtcblxuY29uc3QgSW5saW5lTGluayA9IHN0eWxlZC5hYFxuICBmb250LXdlaWdodDogNTAwO1xuXG4gIDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgQWRkTWFwU3R5bGVNb2RhbFByb3BzIHtcbiAgaW5wdXRNYXBTdHlsZTogRnVuY3Rpb247XG4gIGlucHV0U3R5bGU6IElucHV0U3R5bGU7XG4gIGxvYWRDdXN0b21NYXBTdHlsZTogRnVuY3Rpb247XG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIG1hcGJveEFwaVVybD86IHN0cmluZztcbiAgbWFwU3RhdGU6IE1hcFN0YXRlO1xuICBpbnRsOiBJbnRsU2hhcGU7XG59XG5cbmZ1bmN0aW9uIEFkZE1hcFN0eWxlTW9kYWxGYWN0b3J5KCkge1xuICBjbGFzcyBBZGRNYXBTdHlsZU1vZGFsIGV4dGVuZHMgQ29tcG9uZW50PEFkZE1hcFN0eWxlTW9kYWxQcm9wcz4ge1xuICAgIHN0YXRlID0ge1xuICAgICAgcmVSZW5kZXJLZXk6IDAsXG4gICAgICBwcmV2aW91c1Rva2VuOiBudWxsXG4gICAgfTtcblxuICAgIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMocHJvcHMsIHN0YXRlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHByb3BzLmlucHV0U3R5bGUgJiZcbiAgICAgICAgcHJvcHMuaW5wdXRTdHlsZS5hY2Nlc3NUb2tlbiAmJlxuICAgICAgICBwcm9wcy5pbnB1dFN0eWxlLmFjY2Vzc1Rva2VuICE9PSBzdGF0ZS5wcmV2aW91c1Rva2VuXG4gICAgICApIHtcbiAgICAgICAgLy8gdG9rZSBoYXMgY2hhbmdlZFxuICAgICAgICAvLyBSZWFjdE1hcEdsIGRvZXNuJ3QgcmUtY3JlYXRlIG1hcCB3aGVuIHRva2VuIGhhcyBjaGFuZ2VkXG4gICAgICAgIC8vIGhlcmUgd2UgZm9yY2UgdGhlIG1hcCB0byB1cGRhdGVcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlUmVuZGVyS2V5OiBzdGF0ZS5yZVJlbmRlcktleSArIDEsXG4gICAgICAgICAgcHJldmlvdXNUb2tlbjogcHJvcHMuaW5wdXRTdHlsZS5hY2Nlc3NUb2tlblxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBtYXBSZWY6IE1hcFJlZiB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgX21hcDogbWFwbGlicmVnbC5NYXAgfCB1bmRlZmluZWQ7XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBjb25zdCBtYXAgPSB0aGlzLm1hcFJlZiAmJiB0aGlzLm1hcFJlZi5nZXRNYXAoKTtcbiAgICAgIGlmIChtYXAgJiYgdGhpcy5fbWFwICE9PSBtYXApIHtcblxuICAgICAgICB0aGlzLl9tYXAgPSBtYXA7XG5cbiAgICAgICAgbWFwLm9uKCdzdHlsZS5sb2FkJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN0eWxlID0gbWFwLmdldFN0eWxlKCk7XG4gICAgICAgICAgdGhpcy5sb2FkTWFwU3R5bGVKc29uKHN0eWxlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbWFwLm9uKCdlcnJvcicsICgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRNYXBTdHlsZUVycm9yKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRNYXBTdHlsZUpzb24gPSBzdHlsZSA9PiB7XG4gICAgICB0aGlzLnByb3BzLmxvYWRDdXN0b21NYXBTdHlsZSh7c3R5bGUsIGVycm9yOiBmYWxzZX0pO1xuICAgIH07XG5cbiAgICBsb2FkTWFwU3R5bGVFcnJvciA9ICgpID0+IHtcbiAgICAgIHRoaXMucHJvcHMubG9hZEN1c3RvbU1hcFN0eWxlKHtlcnJvcjogdHJ1ZX0pO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7aW5wdXRTdHlsZSwgbWFwU3RhdGUsIG1hcGJveEFwaVVybCwgaW50bH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBjb25zdCBtYXBib3hBcGlBY2Nlc3NUb2tlbiA9IGlucHV0U3R5bGUuYWNjZXNzVG9rZW4gfHwgdGhpcy5wcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbjtcbiAgICAgIGNvbnN0IG1hcFByb3BzID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgYmFzZUFwaVVybDogbWFwYm94QXBpVXJsLFxuICAgICAgICBtYXBib3hBY2Nlc3NUb2tlbjogbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgIG1hcExpYjogbWFwbGlicmVnbCxcbiAgICAgICAgcHJlc2VydmVEcmF3aW5nQnVmZmVyOiB0cnVlLFxuICAgICAgICB0cmFuc2Zvcm1SZXF1ZXN0XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFkZC1tYXAtc3R5bGUtbW9kYWxcIj5cbiAgICAgICAgICA8U3R5bGVkTW9kYWxDb250ZW50PlxuICAgICAgICAgICAgPFN0eWxlZE1vZGFsVmVydGljYWxQYW5lbD5cbiAgICAgICAgICAgICAgPFN0eWxlZE1vZGFsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuYWRkU3R5bGUucGFzdGVUaXRsZSd9IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1zZWN0aW9uLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICB7aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmFkZFN0eWxlLnBhc3RlU3VidGl0bGUwJ30pfVxuICAgICAgICAgICAgICAgICAgPElubGluZUxpbmtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3Lm1hcGJveC5jb20vaGVscC9zdHVkaW8tbWFudWFsLXB1Ymxpc2gvI3N0eWxlLXVybFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuYWRkU3R5bGUucGFzdGVTdWJ0aXRsZTInfSl9XG4gICAgICAgICAgICAgICAgICA8L0lubGluZUxpbms+eycgJ31cbiAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuYWRkU3R5bGUucGFzdGVTdWJ0aXRsZTMnfSl9XG4gICAgICAgICAgICAgICAgICA8SW5saW5lTGlua1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9kb2NzLm1hcGJveC5jb20vbWFwYm94LWdsLWpzL3N0eWxlLXNwZWNcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgICAgICB7aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmFkZFN0eWxlLnBhc3RlU3VidGl0bGU0J30pfVxuICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMaW5rPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17aW5wdXRTdHlsZS51cmwgfHwgJyd9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHt0YXJnZXQ6IHt2YWx1ZX19KSA9PiB0aGlzLnByb3BzLmlucHV0TWFwU3R5bGUoe3VybDogdmFsdWV9KX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZS5nLiBodHRwczovL2Jhc2VtYXBzLmNhcnRvY2RuLmNvbS9nbC9wb3NpdHJvbi1nbC1zdHlsZS9zdHlsZS5qc29uXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZE1vZGFsU2VjdGlvbj5cblxuICAgICAgICAgICAgICB7LyogPFN0eWxlZE1vZGFsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuYWRkU3R5bGUucHVibGlzaFRpdGxlJ30gLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLXNlY3Rpb24tc3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuYWRkU3R5bGUucHVibGlzaFN1YnRpdGxlMSd9KX1cbiAgICAgICAgICAgICAgICAgIDxJbmxpbmVMaW5rIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL3N0dWRpby9zdHlsZXMvXCI+XG4gICAgICAgICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICAgICAgICAgIG1hcGJveFxuICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMaW5rPnsnICd9XG4gICAgICAgICAgICAgICAgICB7aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmFkZFN0eWxlLnB1Ymxpc2hTdWJ0aXRsZTInfSl9XG4gICAgICAgICAgICAgICAgICA8SW5saW5lTGlua1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cubWFwYm94LmNvbS9oZWxwL3N0dWRpby1tYW51YWwtcHVibGlzaC9cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgICAgICB7aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmFkZFN0eWxlLnB1Ymxpc2hTdWJ0aXRsZTMnfSl9XG4gICAgICAgICAgICAgICAgICA8L0lubGluZUxpbms+eycgJ31cbiAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuYWRkU3R5bGUucHVibGlzaFN1YnRpdGxlNCd9KX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtc2VjdGlvbi1zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5wdWJsaXNoU3VidGl0bGU1J30pfVxuICAgICAgICAgICAgICAgICAgPElubGluZUxpbmtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3Lm1hcGJveC5jb20vaGVscC9ob3ctYWNjZXNzLXRva2Vucy13b3JrL1wiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuYWRkU3R5bGUucHVibGlzaFN1YnRpdGxlNid9KX1cbiAgICAgICAgICAgICAgICAgIDwvSW5saW5lTGluaz57JyAnfVxuICAgICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5hZGRTdHlsZS5wdWJsaXNoU3VidGl0bGU3J30pfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17aW5wdXRTdHlsZS5hY2Nlc3NUb2tlbiB8fCAnJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoe3RhcmdldDoge3ZhbHVlfX0pID0+IHRoaXMucHJvcHMuaW5wdXRNYXBTdHlsZSh7YWNjZXNzVG9rZW46IHZhbHVlfSl9XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmFkZFN0eWxlLmV4YW1wbGVUb2tlbid9KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZE1vZGFsU2VjdGlvbj4gKi99XG5cbiAgICAgICAgICAgICAgPFN0eWxlZE1vZGFsU2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuYWRkU3R5bGUubmFtaW5nVGl0bGUnfSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17aW5wdXRTdHlsZS5sYWJlbCB8fCAnJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoe3RhcmdldDoge3ZhbHVlfX0pID0+IHRoaXMucHJvcHMuaW5wdXRNYXBTdHlsZSh7bGFiZWw6IHZhbHVlfSl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdHlsZWRNb2RhbFNlY3Rpb24+XG4gICAgICAgICAgICA8L1N0eWxlZE1vZGFsVmVydGljYWxQYW5lbD5cbiAgICAgICAgICAgIDxQcmV2aWV3TWFwPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdwcmV2aWV3LXRpdGxlJywge1xuICAgICAgICAgICAgICAgICAgZXJyb3I6IGlucHV0U3R5bGUuZXJyb3JcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtpbnB1dFN0eWxlLmVycm9yXG4gICAgICAgICAgICAgICAgICA/IEVycm9yTXNnLnN0eWxlRXJyb3JcbiAgICAgICAgICAgICAgICAgIDogKGlucHV0U3R5bGUuc3R5bGUgJiYgaW5wdXRTdHlsZS5zdHlsZS5uYW1lKSB8fCAnJ31cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxTdHlsZWRQcmV2aWV3SW1hZ2UgY2xhc3NOYW1lPVwicHJldmlldy1pbWFnZVwiPlxuICAgICAgICAgICAgICAgIHshaW5wdXRTdHlsZS5pc1ZhbGlkID8gKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwcmV2aWV3LWltYWdlLXNwaW5uZXJcIiAvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkTWFwQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8TWFwR0xNYXBcbiAgICAgICAgICAgICAgICAgICAgICB7Li4ubWFwUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcFJlZiA9IGVsO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAga2V5PXt0aGlzLnN0YXRlLnJlUmVuZGVyS2V5fVxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogTWFwVyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogTWFwSFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgbWFwU3R5bGU9e2lucHV0U3R5bGUudXJsID09PSBudWxsID8gdW5kZWZpbmVkIDogaW5wdXRTdHlsZS51cmx9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZE1hcENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZFByZXZpZXdJbWFnZT5cbiAgICAgICAgICAgIDwvUHJldmlld01hcD5cbiAgICAgICAgICA8L1N0eWxlZE1vZGFsQ29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpbmplY3RJbnRsKHBvbHlmaWxsKEFkZE1hcFN0eWxlTW9kYWwpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQWRkTWFwU3R5bGVNb2RhbEZhY3Rvcnk7XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { Provider } from '@kepler.gl/cloud-providers';
3
+ declare type CloudHeaderProps = {
4
+ provider: Provider;
5
+ onBack: () => void;
6
+ };
7
+ export declare const CloudHeader: React.FC<CloudHeaderProps>;
8
+ export {};
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.CloudHeader = void 0;
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _styledComponents = require("../../common/styled-components");
17
+
18
+ var _icons = require("../../common/icons");
19
+
20
+ var _localization = require("@kepler.gl/localization");
21
+
22
+ var _styledComponents2 = _interopRequireDefault(require("styled-components"));
23
+
24
+ var _constants = require("@kepler.gl/constants");
25
+
26
+ var _templateObject, _templateObject2, _templateObject3;
27
+
28
+ var StyledStorageHeader = _styledComponents2["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n font-size: 12px;\n line-height: 14px;\n"])));
29
+
30
+ var StyledBackBtn = _styledComponents2["default"].a(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin-bottom: 16px;\n color: #3a414c;\n cursor: pointer;\n\n &:hover {\n font-weight: 500;\n }\n"])));
31
+
32
+ var LINK_STYLE = {
33
+ textDecoration: 'underline'
34
+ };
35
+
36
+ var Title = _styledComponents2["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 14px;\n line-height: 16px;\n font-weight: 500;\n margin-bottom: 16px;\n\n span {\n text-transform: capitalize;\n }\n"])));
37
+
38
+ var CloudHeader = function CloudHeader(_ref) {
39
+ var provider = _ref.provider,
40
+ onBack = _ref.onBack;
41
+ var managementUrl = (0, _react.useMemo)(function () {
42
+ return provider.getManagementUrl();
43
+ }, [provider]);
44
+ return /*#__PURE__*/_react["default"].createElement("div", {
45
+ "data-testid": _constants.dataTestIds.cloudHeader
46
+ }, /*#__PURE__*/_react["default"].createElement(StyledStorageHeader, null, /*#__PURE__*/_react["default"].createElement(StyledBackBtn, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.Button, {
47
+ link: true,
48
+ onClick: onBack
49
+ }, /*#__PURE__*/_react["default"].createElement(_icons.ArrowLeft, {
50
+ height: "14px"
51
+ }), /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
52
+ id: 'modal.loadStorageMap.back'
53
+ }))), managementUrl && /*#__PURE__*/_react["default"].createElement("a", {
54
+ key: 1,
55
+ href: managementUrl,
56
+ target: "_blank",
57
+ rel: "noopener noreferrer",
58
+ style: LINK_STYLE
59
+ }, provider.displayName)), /*#__PURE__*/_react["default"].createElement(Title, null, /*#__PURE__*/_react["default"].createElement("span", null, provider.displayName), /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
60
+ id: 'modal.loadStorageMap.storageMaps'
61
+ })));
62
+ };
63
+
64
+ exports.CloudHeader = CloudHeader;
65
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RhbHMvY2xvdWQtY29tcG9uZW50cy9jbG91ZC1oZWFkZXIudHN4Il0sIm5hbWVzIjpbIlN0eWxlZFN0b3JhZ2VIZWFkZXIiLCJzdHlsZWQiLCJkaXYiLCJTdHlsZWRCYWNrQnRuIiwiYSIsIkxJTktfU1RZTEUiLCJ0ZXh0RGVjb3JhdGlvbiIsIlRpdGxlIiwic3BhbiIsIkNsb3VkSGVhZGVyIiwicHJvdmlkZXIiLCJvbkJhY2siLCJtYW5hZ2VtZW50VXJsIiwiZ2V0TWFuYWdlbWVudFVybCIsImRhdGFUZXN0SWRzIiwiY2xvdWRIZWFkZXIiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBR0EsSUFBTUEsbUJBQW1CLEdBQUdDLDhCQUFPQyxHQUFWLCtQQUF6Qjs7QUFVQSxJQUFNQyxhQUFhLEdBQUdGLDhCQUFPRyxDQUFWLG9NQUFuQjs7QUFVQSxJQUFNQyxVQUFVLEdBQUc7QUFBQ0MsRUFBQUEsY0FBYyxFQUFFO0FBQWpCLENBQW5COztBQUVBLElBQU1DLEtBQUssR0FBR04sOEJBQU9PLElBQVYsbU9BQVg7O0FBZ0JPLElBQU1DLFdBQXVDLEdBQUcsU0FBMUNBLFdBQTBDLE9BQXdCO0FBQUEsTUFBdEJDLFFBQXNCLFFBQXRCQSxRQUFzQjtBQUFBLE1BQVpDLE1BQVksUUFBWkEsTUFBWTtBQUM3RSxNQUFNQyxhQUFhLEdBQUcsb0JBQVE7QUFBQSxXQUFNRixRQUFRLENBQUNHLGdCQUFULEVBQU47QUFBQSxHQUFSLEVBQTJDLENBQUNILFFBQUQsQ0FBM0MsQ0FBdEI7QUFDQSxzQkFDRTtBQUFLLG1CQUFhSSx1QkFBWUM7QUFBOUIsa0JBQ0UsZ0NBQUMsbUJBQUQscUJBQ0UsZ0NBQUMsYUFBRCxxQkFDRSxnQ0FBQyx3QkFBRDtBQUFRLElBQUEsSUFBSSxNQUFaO0FBQWEsSUFBQSxPQUFPLEVBQUVKO0FBQXRCLGtCQUNFLGdDQUFDLGdCQUFEO0FBQVcsSUFBQSxNQUFNLEVBQUM7QUFBbEIsSUFERixlQUVFLGdDQUFDLDhCQUFEO0FBQWtCLElBQUEsRUFBRSxFQUFFO0FBQXRCLElBRkYsQ0FERixDQURGLEVBT0dDLGFBQWEsaUJBQ1o7QUFDRSxJQUFBLEdBQUcsRUFBRSxDQURQO0FBRUUsSUFBQSxJQUFJLEVBQUVBLGFBRlI7QUFHRSxJQUFBLE1BQU0sRUFBQyxRQUhUO0FBSUUsSUFBQSxHQUFHLEVBQUMscUJBSk47QUFLRSxJQUFBLEtBQUssRUFBRVA7QUFMVCxLQU9HSyxRQUFRLENBQUNNLFdBUFosQ0FSSixDQURGLGVBb0JFLGdDQUFDLEtBQUQscUJBQ0UsOENBQU9OLFFBQVEsQ0FBQ00sV0FBaEIsQ0FERixlQUVFLGdDQUFDLDhCQUFEO0FBQWtCLElBQUEsRUFBRSxFQUFFO0FBQXRCLElBRkYsQ0FwQkYsQ0FERjtBQTJCRCxDQTdCTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7QnV0dG9ufSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtBcnJvd0xlZnR9IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtkYXRhVGVzdElkc30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtQcm92aWRlcn0gZnJvbSAnQGtlcGxlci5nbC9jbG91ZC1wcm92aWRlcnMnO1xuXG5jb25zdCBTdHlsZWRTdG9yYWdlSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuYDtcblxuY29uc3QgU3R5bGVkQmFja0J0biA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBjb2xvcjogIzNhNDE0YztcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cbmA7XG5cbmNvbnN0IExJTktfU1RZTEUgPSB7dGV4dERlY29yYXRpb246ICd1bmRlcmxpbmUnfTtcblxuY29uc3QgVGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcblxuICBzcGFuIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgfVxuYDtcblxudHlwZSBDbG91ZEhlYWRlclByb3BzID0ge1xuICBwcm92aWRlcjogUHJvdmlkZXI7XG4gIG9uQmFjazogKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCBjb25zdCBDbG91ZEhlYWRlcjogUmVhY3QuRkM8Q2xvdWRIZWFkZXJQcm9wcz4gPSAoe3Byb3ZpZGVyLCBvbkJhY2t9KSA9PiB7XG4gIGNvbnN0IG1hbmFnZW1lbnRVcmwgPSB1c2VNZW1vKCgpID0+IHByb3ZpZGVyLmdldE1hbmFnZW1lbnRVcmwoKSwgW3Byb3ZpZGVyXSk7XG4gIHJldHVybiAoXG4gICAgPGRpdiBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZHMuY2xvdWRIZWFkZXJ9PlxuICAgICAgPFN0eWxlZFN0b3JhZ2VIZWFkZXI+XG4gICAgICAgIDxTdHlsZWRCYWNrQnRuPlxuICAgICAgICAgIDxCdXR0b24gbGluayBvbkNsaWNrPXtvbkJhY2t9PlxuICAgICAgICAgICAgPEFycm93TGVmdCBoZWlnaHQ9XCIxNHB4XCIgLz5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwubG9hZFN0b3JhZ2VNYXAuYmFjayd9IC8+XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvU3R5bGVkQmFja0J0bj5cbiAgICAgICAge21hbmFnZW1lbnRVcmwgJiYgKFxuICAgICAgICAgIDxhXG4gICAgICAgICAgICBrZXk9ezF9XG4gICAgICAgICAgICBocmVmPXttYW5hZ2VtZW50VXJsfVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgc3R5bGU9e0xJTktfU1RZTEV9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Byb3ZpZGVyLmRpc3BsYXlOYW1lfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgKX1cbiAgICAgIDwvU3R5bGVkU3RvcmFnZUhlYWRlcj5cbiAgICAgIDxUaXRsZT5cbiAgICAgICAgPHNwYW4+e3Byb3ZpZGVyLmRpc3BsYXlOYW1lfTwvc3Bhbj5cbiAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5sb2FkU3RvcmFnZU1hcC5zdG9yYWdlTWFwcyd9IC8+XG4gICAgICA8L1RpdGxlPlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare const CloudItem: ({ vis, onClick }: {
3
+ vis: any;
4
+ onClick: any;
5
+ }) => React.JSX.Element;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.CloudItem = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _moment = _interopRequireDefault(require("moment/moment"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
17
+
18
+ var _icons = require("../../common/icons");
19
+
20
+ var _templateObject;
21
+
22
+ var MapIcon = function MapIcon(props) {
23
+ return /*#__PURE__*/_react["default"].createElement("div", props, props.children, /*#__PURE__*/_react["default"].createElement(_icons.Base, {
24
+ height: "32px",
25
+ viewBox: '0 0 16 16'
26
+ }, /*#__PURE__*/_react["default"].createElement("path", {
27
+ fill: "#d3d8d6",
28
+ d: "m13.6 11.572-3.2 2.1336v-9.2776l3.2-2.1336zm-12-7.144 3.2-2.1336v9.2776l-3.2 2.1336zm13.244 8.2376c0.2224-0.148 0.356-0.3984 0.356-0.6656v-11.2c0-0.2952-0.1624-0.5664-0.4224-0.7048-0.26-0.14-0.576-0.1248-0.8216 0.0392l-4.3128 2.876-3.5432-2.8352c-0.1208-0.0936-0.2952-0.1624-0.472-0.1688-0.1648-0.0064-0.348 0.0464-0.472 0.128l-4.8 3.2c-0.2224 0.1488-0.356 0.3984-0.356 0.6656v11.2c0 0.2952 0.1624 0.5664 0.4224 0.7056 0.1184 0.0632 0.248 0.0944 0.3776 0.0944 0.1552 0 0.3096-0.0448 0.444-0.1344l4.3128-2.876 3.5432 2.8352c0.1448 0.116 0.3216 0.1752 0.5 0.1752 0.1184 0 0.236-0.0248 0.3464-0.0784z"
29
+ })));
30
+ };
31
+
32
+ var PrivacyBadge = function PrivacyBadge(_ref) {
33
+ var privateMap = _ref.privateMap;
34
+ return /*#__PURE__*/_react["default"].createElement("span", {
35
+ className: "vis_item-privacy"
36
+ }, privateMap ? 'Private' : 'Public');
37
+ };
38
+
39
+ var StyledVisualizationItem = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n flex: 0 0 auto;\n width: 208px;\n display: flex;\n flex-direction: column;\n padding: 16px 8px;\n color: #3a414c;\n cursor: pointer;\n font-size: 12px;\n line-height: 18px;\n border: 1px solid transparent;\n\n &:hover {\n .vis_item-icon,\n .vis_item-thumb,\n .vis_item-description,\n .vis_item-modification-date {\n opacity: 1;\n }\n border: 1px solid #bbbbbb;\n }\n\n .vis_item-icon,\n .vis_item-thumb,\n .vis_item-description,\n .vis_item-modification-date {\n opacity: 0.9;\n transition: opacity 0.4s ease;\n }\n\n .vis_item-icon {\n position: relative;\n flex: 0 0 108px;\n background-color: #6a7484;\n border-radius: 4px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n }\n\n .vis_item-thumb {\n position: relative;\n flex: 0 0 108px;\n background-size: cover;\n background-position: center;\n border-radius: 4px;\n }\n\n .vis_item-privacy {\n position: absolute;\n top: 0;\n left: 0;\n padding: 3px 6px;\n border-radius: 4px 0;\n background-color: rgba(58, 65, 76, 0.7);\n color: #fff;\n font-size: 11px;\n line-height: 18px;\n }\n\n .vis_item-title {\n margin-top: 16px;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .vis_item-description {\n flex: 1 1 auto;\n margin-top: 8px;\n }\n\n .vis_item-modification-date {\n margin-top: 16px;\n flex: 1 0 auto;\n color: #6a7484;\n line-height: 15px;\n }\n"])));
40
+
41
+ var CloudItem = function CloudItem(_ref2) {
42
+ var _vis$description;
43
+
44
+ var vis = _ref2.vis,
45
+ onClick = _ref2.onClick;
46
+ var thumbnailStyle = {
47
+ backgroundImage: "url(".concat(vis.thumbnail, ")")
48
+ };
49
+ return /*#__PURE__*/_react["default"].createElement(StyledVisualizationItem, {
50
+ onClick: onClick
51
+ }, vis.thumbnail ? /*#__PURE__*/_react["default"].createElement("div", {
52
+ role: "thumbnail-wrapper",
53
+ className: "vis_item-thumb",
54
+ style: thumbnailStyle
55
+ }, vis.hasOwnProperty('privateMap') ? /*#__PURE__*/_react["default"].createElement(PrivacyBadge, {
56
+ privateMap: vis.privateMap
57
+ }) : null) : /*#__PURE__*/_react["default"].createElement(MapIcon, {
58
+ role: "map-icon",
59
+ className: "vis_item-icon"
60
+ }, vis.hasOwnProperty('privateMap') ? /*#__PURE__*/_react["default"].createElement(PrivacyBadge, {
61
+ privateMap: vis.privateMap
62
+ }) : null), /*#__PURE__*/_react["default"].createElement("span", {
63
+ className: "vis_item-title"
64
+ }, vis.title), ((_vis$description = vis.description) === null || _vis$description === void 0 ? void 0 : _vis$description.length) && /*#__PURE__*/_react["default"].createElement("span", {
65
+ className: "vis_item-description"
66
+ }, vis.description), /*#__PURE__*/_react["default"].createElement("span", {
67
+ className: "vis_item-modification-date"
68
+ }, "Last modified ", _moment["default"].utc(vis.updatedAt).fromNow()));
69
+ };
70
+
71
+ exports.CloudItem = CloudItem;
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RhbHMvY2xvdWQtY29tcG9uZW50cy9jbG91ZC1pdGVtLnRzeCJdLCJuYW1lcyI6WyJNYXBJY29uIiwicHJvcHMiLCJjaGlsZHJlbiIsIlByaXZhY3lCYWRnZSIsInByaXZhdGVNYXAiLCJTdHlsZWRWaXN1YWxpemF0aW9uSXRlbSIsInN0eWxlZCIsImRpdiIsIkNsb3VkSXRlbSIsInZpcyIsIm9uQ2xpY2siLCJ0aHVtYm5haWxTdHlsZSIsImJhY2tncm91bmRJbWFnZSIsInRodW1ibmFpbCIsImhhc093blByb3BlcnR5IiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImxlbmd0aCIsIm1vbWVudCIsInV0YyIsInVwZGF0ZWRBdCIsImZyb21Ob3ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxJQUFNQSxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFBQyxLQUFLLEVBQUk7QUFDdkIsc0JBQ0UsdUNBQVNBLEtBQVQsRUFDR0EsS0FBSyxDQUFDQyxRQURULGVBRUUsZ0NBQUMsV0FBRDtBQUFNLElBQUEsTUFBTSxFQUFDLE1BQWI7QUFBb0IsSUFBQSxPQUFPLEVBQUU7QUFBN0Isa0JBQ0U7QUFDRSxJQUFBLElBQUksRUFBQyxTQURQO0FBRUUsSUFBQSxDQUFDLEVBQUM7QUFGSixJQURGLENBRkYsQ0FERjtBQVdELENBWkQ7O0FBY0EsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQWU7QUFBQSxNQUFFQyxVQUFGLFFBQUVBLFVBQUY7QUFBQSxzQkFDbkI7QUFBTSxJQUFBLFNBQVMsRUFBQztBQUFoQixLQUFvQ0EsVUFBVSxHQUFHLFNBQUgsR0FBZSxRQUE3RCxDQURtQjtBQUFBLENBQXJCOztBQUlBLElBQU1DLHVCQUF1QixHQUFHQyw2QkFBT0MsR0FBViwrbURBQTdCOztBQWtGTyxJQUFNQyxTQUFTLEdBQUcsU0FBWkEsU0FBWSxRQUFvQjtBQUFBOztBQUFBLE1BQWxCQyxHQUFrQixTQUFsQkEsR0FBa0I7QUFBQSxNQUFiQyxPQUFhLFNBQWJBLE9BQWE7QUFDM0MsTUFBTUMsY0FBYyxHQUFHO0FBQUNDLElBQUFBLGVBQWUsZ0JBQVNILEdBQUcsQ0FBQ0ksU0FBYjtBQUFoQixHQUF2QjtBQUNBLHNCQUNFLGdDQUFDLHVCQUFEO0FBQXlCLElBQUEsT0FBTyxFQUFFSDtBQUFsQyxLQUNHRCxHQUFHLENBQUNJLFNBQUosZ0JBQ0M7QUFBSyxJQUFBLElBQUksRUFBQyxtQkFBVjtBQUE4QixJQUFBLFNBQVMsRUFBQyxnQkFBeEM7QUFBeUQsSUFBQSxLQUFLLEVBQUVGO0FBQWhFLEtBQ0dGLEdBQUcsQ0FBQ0ssY0FBSixDQUFtQixZQUFuQixpQkFBbUMsZ0NBQUMsWUFBRDtBQUFjLElBQUEsVUFBVSxFQUFFTCxHQUFHLENBQUNMO0FBQTlCLElBQW5DLEdBQWtGLElBRHJGLENBREQsZ0JBS0MsZ0NBQUMsT0FBRDtBQUFTLElBQUEsSUFBSSxFQUFDLFVBQWQ7QUFBeUIsSUFBQSxTQUFTLEVBQUM7QUFBbkMsS0FDR0ssR0FBRyxDQUFDSyxjQUFKLENBQW1CLFlBQW5CLGlCQUFtQyxnQ0FBQyxZQUFEO0FBQWMsSUFBQSxVQUFVLEVBQUVMLEdBQUcsQ0FBQ0w7QUFBOUIsSUFBbkMsR0FBa0YsSUFEckYsQ0FOSixlQVVFO0FBQU0sSUFBQSxTQUFTLEVBQUM7QUFBaEIsS0FBa0NLLEdBQUcsQ0FBQ00sS0FBdEMsQ0FWRixFQVdHLHFCQUFBTixHQUFHLENBQUNPLFdBQUosc0VBQWlCQyxNQUFqQixrQkFBMkI7QUFBTSxJQUFBLFNBQVMsRUFBQztBQUFoQixLQUF3Q1IsR0FBRyxDQUFDTyxXQUE1QyxDQVg5QixlQVlFO0FBQU0sSUFBQSxTQUFTLEVBQUM7QUFBaEIsdUJBQ2lCRSxtQkFBT0MsR0FBUCxDQUFXVixHQUFHLENBQUNXLFNBQWYsRUFBMEJDLE9BQTFCLEVBRGpCLENBWkYsQ0FERjtBQWtCRCxDQXBCTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Jhc2V9IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5cbmNvbnN0IE1hcEljb24gPSBwcm9wcyA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiB7Li4ucHJvcHN9PlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPEJhc2UgaGVpZ2h0PVwiMzJweFwiIHZpZXdCb3g9eycwIDAgMTYgMTYnfT5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBmaWxsPVwiI2QzZDhkNlwiXG4gICAgICAgICAgZD1cIm0xMy42IDExLjU3Mi0zLjIgMi4xMzM2di05LjI3NzZsMy4yLTIuMTMzNnptLTEyLTcuMTQ0IDMuMi0yLjEzMzZ2OS4yNzc2bC0zLjIgMi4xMzM2em0xMy4yNDQgOC4yMzc2YzAuMjIyNC0wLjE0OCAwLjM1Ni0wLjM5ODQgMC4zNTYtMC42NjU2di0xMS4yYzAtMC4yOTUyLTAuMTYyNC0wLjU2NjQtMC40MjI0LTAuNzA0OC0wLjI2LTAuMTQtMC41NzYtMC4xMjQ4LTAuODIxNiAwLjAzOTJsLTQuMzEyOCAyLjg3Ni0zLjU0MzItMi44MzUyYy0wLjEyMDgtMC4wOTM2LTAuMjk1Mi0wLjE2MjQtMC40NzItMC4xNjg4LTAuMTY0OC0wLjAwNjQtMC4zNDggMC4wNDY0LTAuNDcyIDAuMTI4bC00LjggMy4yYy0wLjIyMjQgMC4xNDg4LTAuMzU2IDAuMzk4NC0wLjM1NiAwLjY2NTZ2MTEuMmMwIDAuMjk1MiAwLjE2MjQgMC41NjY0IDAuNDIyNCAwLjcwNTYgMC4xMTg0IDAuMDYzMiAwLjI0OCAwLjA5NDQgMC4zNzc2IDAuMDk0NCAwLjE1NTIgMCAwLjMwOTYtMC4wNDQ4IDAuNDQ0LTAuMTM0NGw0LjMxMjgtMi44NzYgMy41NDMyIDIuODM1MmMwLjE0NDggMC4xMTYgMC4zMjE2IDAuMTc1MiAwLjUgMC4xNzUyIDAuMTE4NCAwIDAuMjM2LTAuMDI0OCAwLjM0NjQtMC4wNzg0elwiXG4gICAgICAgIC8+XG4gICAgICA8L0Jhc2U+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBQcml2YWN5QmFkZ2UgPSAoe3ByaXZhdGVNYXB9KSA9PiAoXG4gIDxzcGFuIGNsYXNzTmFtZT1cInZpc19pdGVtLXByaXZhY3lcIj57cHJpdmF0ZU1hcCA/ICdQcml2YXRlJyA6ICdQdWJsaWMnfTwvc3Bhbj5cbik7XG5cbmNvbnN0IFN0eWxlZFZpc3VhbGl6YXRpb25JdGVtID0gc3R5bGVkLmRpdmBcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiAyMDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogMTZweCA4cHg7XG4gIGNvbG9yOiAjM2E0MTRjO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICY6aG92ZXIge1xuICAgIC52aXNfaXRlbS1pY29uLFxuICAgIC52aXNfaXRlbS10aHVtYixcbiAgICAudmlzX2l0ZW0tZGVzY3JpcHRpb24sXG4gICAgLnZpc19pdGVtLW1vZGlmaWNhdGlvbi1kYXRlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmJiYmI7XG4gIH1cblxuICAudmlzX2l0ZW0taWNvbixcbiAgLnZpc19pdGVtLXRodW1iLFxuICAudmlzX2l0ZW0tZGVzY3JpcHRpb24sXG4gIC52aXNfaXRlbS1tb2RpZmljYXRpb24tZGF0ZSB7XG4gICAgb3BhY2l0eTogMC45O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlO1xuICB9XG5cbiAgLnZpc19pdGVtLWljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAwIDAgMTA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzZhNzQ4NDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAudmlzX2l0ZW0tdGh1bWIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAwIDAgMTA4cHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG5cbiAgLnZpc19pdGVtLXByaXZhY3kge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTgsIDY1LCA3NiwgMC43KTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIH1cblxuICAudmlzX2l0ZW0tdGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuICAudmlzX2l0ZW0tZGVzY3JpcHRpb24ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgfVxuXG4gIC52aXNfaXRlbS1tb2RpZmljYXRpb24tZGF0ZSB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgICBjb2xvcjogIzZhNzQ4NDtcbiAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IENsb3VkSXRlbSA9ICh7dmlzLCBvbkNsaWNrfSkgPT4ge1xuICBjb25zdCB0aHVtYm5haWxTdHlsZSA9IHtiYWNrZ3JvdW5kSW1hZ2U6IGB1cmwoJHt2aXMudGh1bWJuYWlsfSlgfTtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkVmlzdWFsaXphdGlvbkl0ZW0gb25DbGljaz17b25DbGlja30+XG4gICAgICB7dmlzLnRodW1ibmFpbCA/IChcbiAgICAgICAgPGRpdiByb2xlPVwidGh1bWJuYWlsLXdyYXBwZXJcIiBjbGFzc05hbWU9XCJ2aXNfaXRlbS10aHVtYlwiIHN0eWxlPXt0aHVtYm5haWxTdHlsZX0+XG4gICAgICAgICAge3Zpcy5oYXNPd25Qcm9wZXJ0eSgncHJpdmF0ZU1hcCcpID8gPFByaXZhY3lCYWRnZSBwcml2YXRlTWFwPXt2aXMucHJpdmF0ZU1hcH0gLz4gOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICkgOiAoXG4gICAgICAgIDxNYXBJY29uIHJvbGU9XCJtYXAtaWNvblwiIGNsYXNzTmFtZT1cInZpc19pdGVtLWljb25cIj5cbiAgICAgICAgICB7dmlzLmhhc093blByb3BlcnR5KCdwcml2YXRlTWFwJykgPyA8UHJpdmFjeUJhZGdlIHByaXZhdGVNYXA9e3Zpcy5wcml2YXRlTWFwfSAvPiA6IG51bGx9XG4gICAgICAgIDwvTWFwSWNvbj5cbiAgICAgICl9XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJ2aXNfaXRlbS10aXRsZVwiPnt2aXMudGl0bGV9PC9zcGFuPlxuICAgICAge3Zpcy5kZXNjcmlwdGlvbj8ubGVuZ3RoICYmIDxzcGFuIGNsYXNzTmFtZT1cInZpc19pdGVtLWRlc2NyaXB0aW9uXCI+e3Zpcy5kZXNjcmlwdGlvbn08L3NwYW4+fVxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidmlzX2l0ZW0tbW9kaWZpY2F0aW9uLWRhdGVcIj5cbiAgICAgICAgTGFzdCBtb2RpZmllZCB7bW9tZW50LnV0Yyh2aXMudXBkYXRlZEF0KS5mcm9tTm93KCl9XG4gICAgICA8L3NwYW4+XG4gICAgPC9TdHlsZWRWaXN1YWxpemF0aW9uSXRlbT5cbiAgKTtcbn07XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
+
7
+ var _react = _interopRequireDefault(require("react"));
8
+
9
+ var _react2 = require("@testing-library/react");
10
+
11
+ var _componentJestUtils = require("../../../../../test/helpers/component-jest-utils");
12
+
13
+ var _cloudItem = require("./cloud-item");
14
+
15
+ var _moment = _interopRequireDefault(require("moment"));
16
+
17
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
18
+
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+
21
+ describe('CloudItem', function () {
22
+ var mockVis = {
23
+ title: 'Test Title',
24
+ description: 'Test Description',
25
+ lastModification: new Date().toISOString(),
26
+ thumbnail: 'test-thumbnail.jpg',
27
+ privateMap: true
28
+ };
29
+ it('renders without crashing', function () {
30
+ var _renderWithTheme = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(_cloudItem.CloudItem, {
31
+ vis: mockVis,
32
+ onClick: function onClick() {}
33
+ })),
34
+ getByText = _renderWithTheme.getByText;
35
+
36
+ expect(getByText('Test Title')).toBeInTheDocument();
37
+ });
38
+ it('renders PrivacyBadge for private maps', function () {
39
+ var _renderWithTheme2 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(_cloudItem.CloudItem, {
40
+ vis: _objectSpread(_objectSpread({}, mockVis), {}, {
41
+ privateMap: true
42
+ }),
43
+ onClick: function onClick() {}
44
+ })),
45
+ getByText = _renderWithTheme2.getByText;
46
+
47
+ expect(getByText('Private')).toBeInTheDocument();
48
+ });
49
+ it('does not render PrivacyBadge for public maps', function () {
50
+ var _renderWithTheme3 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(_cloudItem.CloudItem, {
51
+ vis: _objectSpread(_objectSpread({}, mockVis), {}, {
52
+ privateMap: false
53
+ }),
54
+ onClick: function onClick() {}
55
+ })),
56
+ queryByText = _renderWithTheme3.queryByText;
57
+
58
+ expect(queryByText('Private')).toBeNull();
59
+ });
60
+ it('displays correct thumbnail image', function () {
61
+ var _renderWithTheme4 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(_cloudItem.CloudItem, {
62
+ vis: mockVis,
63
+ onClick: function onClick() {}
64
+ })),
65
+ getByRole = _renderWithTheme4.getByRole;
66
+
67
+ expect(getByRole('thumbnail-wrapper').style.backgroundImage).toContain('test-thumbnail.jpg');
68
+ });
69
+ it('displays MapIcon when no thumbnail is provided', function () {
70
+ var _renderWithTheme5 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(_cloudItem.CloudItem, {
71
+ vis: _objectSpread(_objectSpread({}, mockVis), {}, {
72
+ thumbnail: null
73
+ }),
74
+ onClick: function onClick() {}
75
+ })),
76
+ getByRole = _renderWithTheme5.getByRole;
77
+
78
+ expect(getByRole('map-icon')).toBeInTheDocument();
79
+ });
80
+ it('displays title, description, and last modification date', function () {
81
+ var _renderWithTheme6 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(_cloudItem.CloudItem, {
82
+ vis: mockVis,
83
+ onClick: function onClick() {}
84
+ })),
85
+ getByText = _renderWithTheme6.getByText;
86
+
87
+ expect(getByText('Test Title')).toBeInTheDocument();
88
+ expect(getByText('Test Description')).toBeInTheDocument();
89
+ expect(getByText("Last modified ".concat(_moment["default"].utc(mockVis.lastModification).fromNow()))).toBeInTheDocument();
90
+ });
91
+ it('calls onClick when component is clicked', function () {
92
+ var onClickMock = jest.fn();
93
+
94
+ var _renderWithTheme7 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(_cloudItem.CloudItem, {
95
+ vis: mockVis,
96
+ onClick: onClickMock
97
+ })),
98
+ getByText = _renderWithTheme7.getByText;
99
+
100
+ _react2.fireEvent.click(getByText('Test Title'));
101
+
102
+ expect(onClickMock).toHaveBeenCalled();
103
+ });
104
+ });
105
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RhbHMvY2xvdWQtY29tcG9uZW50cy9jbG91ZC1pdGVtLnNwZWMudHN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwibW9ja1ZpcyIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJsYXN0TW9kaWZpY2F0aW9uIiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwidGh1bWJuYWlsIiwicHJpdmF0ZU1hcCIsIml0IiwiZ2V0QnlUZXh0IiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJxdWVyeUJ5VGV4dCIsInRvQmVOdWxsIiwiZ2V0QnlSb2xlIiwic3R5bGUiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJ0b0NvbnRhaW4iLCJtb21lbnQiLCJ1dGMiLCJmcm9tTm93Iiwib25DbGlja01vY2siLCJqZXN0IiwiZm4iLCJmaXJlRXZlbnQiLCJjbGljayIsInRvSGF2ZUJlZW5DYWxsZWQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUlBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOzs7Ozs7QUFFQUEsUUFBUSxDQUFDLFdBQUQsRUFBYyxZQUFNO0FBQzFCLE1BQU1DLE9BQU8sR0FBRztBQUNkQyxJQUFBQSxLQUFLLEVBQUUsWUFETztBQUVkQyxJQUFBQSxXQUFXLEVBQUUsa0JBRkM7QUFHZEMsSUFBQUEsZ0JBQWdCLEVBQUUsSUFBSUMsSUFBSixHQUFXQyxXQUFYLEVBSEo7QUFJZEMsSUFBQUEsU0FBUyxFQUFFLG9CQUpHO0FBS2RDLElBQUFBLFVBQVUsRUFBRTtBQUxFLEdBQWhCO0FBUUFDLEVBQUFBLEVBQUUsQ0FBQywwQkFBRCxFQUE2QixZQUFNO0FBQUEsMkJBQ2YsdURBQWdCLGdDQUFDLG9CQUFEO0FBQVcsTUFBQSxHQUFHLEVBQUVSLE9BQWhCO0FBQXlCLE1BQUEsT0FBTyxFQUFFLG1CQUFNLENBQUU7QUFBMUMsTUFBaEIsQ0FEZTtBQUFBLFFBQzVCUyxTQUQ0QixvQkFDNUJBLFNBRDRCOztBQUVuQ0MsSUFBQUEsTUFBTSxDQUFDRCxTQUFTLENBQUMsWUFB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QSxPQUFPLEVBQUVxQjtBQUFsQyxNQUFoQixDQUY4QjtBQUFBLFFBRTNDWixTQUYyQyxxQkFFM0NBLFNBRjJDOztBQUdsRGUsc0JBQVVDLEtBQVYsQ0FBZ0JoQixTQUFTLENBQUMsWUFBRCxDQUF6Qjs7QUFDQUMsSUFBQUEsTUFBTSxDQUFDVyxXQUFELENBQU4sQ0FBb0JLLGdCQUFwQjtBQUNELEdBTEMsQ0FBRjtBQU1ELENBdkRPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vLyBAdHMtbm9jaGVja1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7ZmlyZUV2ZW50fSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7cmVuZGVyV2l0aFRoZW1lfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90ZXN0L2hlbHBlcnMvY29tcG9uZW50LWplc3QtdXRpbHMnO1xuXG5pbXBvcnQge0Nsb3VkSXRlbX0gZnJvbSAnLi9jbG91ZC1pdGVtJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuZGVzY3JpYmUoJ0Nsb3VkSXRlbScsICgpID0+IHtcbiAgY29uc3QgbW9ja1ZpcyA9IHtcbiAgICB0aXRsZTogJ1Rlc3QgVGl0bGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVGVzdCBEZXNjcmlwdGlvbicsXG4gICAgbGFzdE1vZGlmaWNhdGlvbjogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIHRodW1ibmFpbDogJ3Rlc3QtdGh1bWJuYWlsLmpwZycsXG4gICAgcHJpdmF0ZU1hcDogdHJ1ZVxuICB9O1xuXG4gIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgY29uc3Qge2dldEJ5VGV4dH0gPSByZW5kZXJXaXRoVGhlbWUoPENsb3VkSXRlbSB2aXM9e21vY2tWaXN9IG9uQ2xpY2s9eygpID0+IHt9fSAvPik7XG4gICAgZXhwZWN0KGdldEJ5VGV4dCgnVGVzdCBUaXRsZScpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBQcml2YWN5QmFkZ2UgZm9yIHByaXZhdGUgbWFwcycsICgpID0+IHtcbiAgICBjb25zdCB7Z2V0QnlUZXh0fSA9IHJlbmRlcldpdGhUaGVtZShcbiAgICAgIDxDbG91ZEl0ZW0gdmlzPXt7Li4ubW9ja1ZpcywgcHJpdmF0ZU1hcDogdHJ1ZX19IG9uQ2xpY2s9eygpID0+IHt9fSAvPlxuICAgICk7XG4gICAgZXhwZWN0KGdldEJ5VGV4dCgnUHJpdmF0ZScpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3QgcmVuZGVyIFByaXZhY3lCYWRnZSBmb3IgcHVibGljIG1hcHMnLCAoKSA9PiB7XG4gICAgY29uc3Qge3F1ZXJ5QnlUZXh0fSA9IHJlbmRlcldpdGhUaGVtZShcbiAgICAgIDxDbG91ZEl0ZW0gdmlzPXt7Li4ubW9ja1ZpcywgcHJpdmF0ZU1hcDogZmFsc2V9fSBvbkNsaWNrPXsoKSA9PiB7fX0gLz5cbiAgICApO1xuICAgIGV4cGVjdChxdWVyeUJ5VGV4dCgnUHJpdmF0ZScpKS50b0JlTnVsbCgpO1xuICB9KTtcblxuICBpdCgnZGlzcGxheXMgY29ycmVjdCB0aHVtYm5haWwgaW1hZ2UnLCAoKSA9PiB7XG4gICAgY29uc3Qge2dldEJ5Um9sZX0gPSByZW5kZXJXaXRoVGhlbWUoPENsb3VkSXRlbSB2aXM9e21vY2tWaXN9IG9uQ2xpY2s9eygpID0+IHt9fSAvPik7XG4gICAgZXhwZWN0KGdldEJ5Um9sZSgndGh1bWJuYWlsLXdyYXBwZXInKS5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UpLnRvQ29udGFpbigndGVzdC10aHVtYm5haWwuanBnJyk7XG4gIH0pO1xuXG4gIGl0KCdkaXNwbGF5cyBNYXBJY29uIHdoZW4gbm8gdGh1bWJuYWlsIGlzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IHtnZXRCeVJvbGV9ID0gcmVuZGVyV2l0aFRoZW1lKFxuICAgICAgPENsb3VkSXRlbSB2aXM9e3suLi5tb2NrVmlzLCB0aHVtYm5haWw6IG51bGx9fSBvbkNsaWNrPXsoKSA9PiB7fX0gLz5cbiAgICApO1xuICAgIGV4cGVjdChnZXRCeVJvbGUoJ21hcC1pY29uJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdkaXNwbGF5cyB0aXRsZSwgZGVzY3JpcHRpb24sIGFuZCBsYXN0IG1vZGlmaWNhdGlvbiBkYXRlJywgKCkgPT4ge1xuICAgIGNvbnN0IHtnZXRCeVRleHR9ID0gcmVuZGVyV2l0aFRoZW1lKDxDbG91ZEl0ZW0gdmlzPXttb2NrVmlzfSBvbkNsaWNrPXsoKSA9PiB7fX0gLz4pO1xuICAgIGV4cGVjdChnZXRCeVRleHQoJ1Rlc3QgVGl0bGUnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdUZXN0IERlc2NyaXB0aW9uJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgZXhwZWN0KFxuICAgICAgZ2V0QnlUZXh0KGBMYXN0IG1vZGlmaWVkICR7bW9tZW50LnV0Yyhtb2NrVmlzLmxhc3RNb2RpZmljYXRpb24pLmZyb21Ob3coKX1gKVxuICAgICkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2NhbGxzIG9uQ2xpY2sgd2hlbiBjb21wb25lbnQgaXMgY2xpY2tlZCcsICgpID0+IHtcbiAgICBjb25zdCBvbkNsaWNrTW9jayA9IGplc3QuZm4oKTtcbiAgICBjb25zdCB7Z2V0QnlUZXh0fSA9IHJlbmRlcldpdGhUaGVtZSg8Q2xvdWRJdGVtIHZpcz17bW9ja1Zpc30gb25DbGljaz17b25DbGlja01vY2t9IC8+KTtcbiAgICBmaXJlRXZlbnQuY2xpY2soZ2V0QnlUZXh0KCdUZXN0IFRpdGxlJykpO1xuICAgIGV4cGVjdChvbkNsaWNrTW9jaykudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export declare const CloudMaps: ({ provider, onSelectMap, isLoading, maps, error }: {
3
+ provider: any;
4
+ onSelectMap: any;
5
+ isLoading: any;
6
+ maps: any;
7
+ error: any;
8
+ }) => React.JSX.Element;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.CloudMaps = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
15
+
16
+ var _loadingDialog = _interopRequireDefault(require("../loading-dialog"));
17
+
18
+ var _localization = require("@kepler.gl/localization");
19
+
20
+ var _cloudItem = require("./cloud-item");
21
+
22
+ var _flexContainer = require("../../common/flex-container");
23
+
24
+ var _templateObject, _templateObject2;
25
+
26
+ var StyledSpinner = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n text-align: center;\n span {\n margin: 0 auto;\n }\n"])));
27
+
28
+ var StyledFlexContainer = (0, _styledComponents["default"])(_flexContainer.FlexContainer)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n justify-content: flex-start;\n flex-wrap: wrap;\n"])));
29
+
30
+ var CloudMaps = function CloudMaps(_ref) {
31
+ var provider = _ref.provider,
32
+ onSelectMap = _ref.onSelectMap,
33
+ isLoading = _ref.isLoading,
34
+ maps = _ref.maps,
35
+ error = _ref.error;
36
+
37
+ if (error) {
38
+ return /*#__PURE__*/_react["default"].createElement("div", null, "Error while fetching maps: ", error.message);
39
+ }
40
+
41
+ if (isLoading) {
42
+ return /*#__PURE__*/_react["default"].createElement(StyledSpinner, null, /*#__PURE__*/_react["default"].createElement(_loadingDialog["default"], {
43
+ size: 64
44
+ }));
45
+ }
46
+
47
+ return /*#__PURE__*/_react["default"].createElement(StyledFlexContainer, null, (maps !== null && maps !== void 0 ? maps : []).length ? maps.map(function (vis) {
48
+ return /*#__PURE__*/_react["default"].createElement(_cloudItem.CloudItem, {
49
+ key: vis.id,
50
+ onClick: function onClick() {
51
+ return onSelectMap(provider, vis);
52
+ },
53
+ vis: vis
54
+ });
55
+ }) : /*#__PURE__*/_react["default"].createElement("div", {
56
+ className: "visualization-list__message"
57
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
58
+ id: 'modal.loadStorageMap.noSavedMaps'
59
+ })));
60
+ };
61
+
62
+ exports.CloudMaps = CloudMaps;
63
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RhbHMvY2xvdWQtY29tcG9uZW50cy9jbG91ZC1tYXBzLnRzeCJdLCJuYW1lcyI6WyJTdHlsZWRTcGlubmVyIiwic3R5bGVkIiwiZGl2IiwiU3R5bGVkRmxleENvbnRhaW5lciIsIkZsZXhDb250YWluZXIiLCJDbG91ZE1hcHMiLCJwcm92aWRlciIsIm9uU2VsZWN0TWFwIiwiaXNMb2FkaW5nIiwibWFwcyIsImVycm9yIiwibWVzc2FnZSIsImxlbmd0aCIsIm1hcCIsInZpcyIsImlkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsSUFBTUEsYUFBYSxHQUFHQyw2QkFBT0MsR0FBVixtSkFBbkI7O0FBT0EsSUFBTUMsbUJBQW1CLEdBQUcsa0NBQU9DLDRCQUFQLENBQUgsOElBQXpCOztBQUtPLElBQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFZLE9BQXFEO0FBQUEsTUFBbkRDLFFBQW1ELFFBQW5EQSxRQUFtRDtBQUFBLE1BQXpDQyxXQUF5QyxRQUF6Q0EsV0FBeUM7QUFBQSxNQUE1QkMsU0FBNEIsUUFBNUJBLFNBQTRCO0FBQUEsTUFBakJDLElBQWlCLFFBQWpCQSxJQUFpQjtBQUFBLE1BQVhDLEtBQVcsUUFBWEEsS0FBVzs7QUFDNUUsTUFBSUEsS0FBSixFQUFXO0FBQ1Qsd0JBQU8sNEVBQWlDQSxLQUFLLENBQUNDLE9BQXZDLENBQVA7QUFDRDs7QUFFRCxNQUFJSCxTQUFKLEVBQWU7QUFDYix3QkFDRSxnQ0FBQyxhQUFELHFCQUNFLGdDQUFDLHlCQUFEO0FBQWUsTUFBQSxJQUFJLEVBQUU7QUFBckIsTUFERixDQURGO0FBS0Q7O0FBRUQsc0JBQ0UsZ0NBQUMsbUJBQUQsUUFDRyxDQUFDQyxJQUFELGFBQUNBLElBQUQsY0FBQ0EsSUFBRCxHQUFTLEVBQVQsRUFBYUcsTUFBYixHQUNDSCxJQUFJLENBQUNJLEdBQUwsQ0FBUyxVQUFBQyxHQUFHO0FBQUEsd0JBQ1YsZ0NBQUMsb0JBQUQ7QUFBVyxNQUFBLEdBQUcsRUFBRUEsR0FBRyxDQUFDQyxFQUFwQjtBQUF3QixNQUFBLE9BQU8sRUFBRTtBQUFBLGVBQU1SLFdBQVcsQ0FBQ0QsUUFBRCxFQUFXUSxHQUFYLENBQWpCO0FBQUEsT0FBakM7QUFBbUUsTUFBQSxHQUFHLEVBQUVBO0FBQXhFLE1BRFU7QUFBQSxHQUFaLENBREQsZ0JBS0M7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLGtCQUNFLGdDQUFDLDhCQUFEO0FBQWtCLElBQUEsRUFBRSxFQUFFO0FBQXRCLElBREYsQ0FOSixDQURGO0FBYUQsQ0ExQk0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7Q2xvdWRJdGVtfSBmcm9tICcuL2Nsb3VkLWl0ZW0nO1xuaW1wb3J0IHtGbGV4Q29udGFpbmVyfSBmcm9tICcuLi8uLi9jb21tb24vZmxleC1jb250YWluZXInO1xuXG5jb25zdCBTdHlsZWRTcGlubmVyID0gc3R5bGVkLmRpdmBcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBzcGFuIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkRmxleENvbnRhaW5lciA9IHN0eWxlZChGbGV4Q29udGFpbmVyKWBcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5gO1xuXG5leHBvcnQgY29uc3QgQ2xvdWRNYXBzID0gKHtwcm92aWRlciwgb25TZWxlY3RNYXAsIGlzTG9hZGluZywgbWFwcywgZXJyb3J9KSA9PiB7XG4gIGlmIChlcnJvcikge1xuICAgIHJldHVybiA8ZGl2PkVycm9yIHdoaWxlIGZldGNoaW5nIG1hcHM6IHtlcnJvci5tZXNzYWdlfTwvZGl2PjtcbiAgfVxuXG4gIGlmIChpc0xvYWRpbmcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZFNwaW5uZXI+XG4gICAgICAgIDxMb2FkaW5nRGlhbG9nIHNpemU9ezY0fSAvPlxuICAgICAgPC9TdHlsZWRTcGlubmVyPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRGbGV4Q29udGFpbmVyPlxuICAgICAgeyhtYXBzID8/IFtdKS5sZW5ndGggPyAoXG4gICAgICAgIG1hcHMubWFwKHZpcyA9PiAoXG4gICAgICAgICAgPENsb3VkSXRlbSBrZXk9e3Zpcy5pZH0gb25DbGljaz17KCkgPT4gb25TZWxlY3RNYXAocHJvdmlkZXIsIHZpcyl9IHZpcz17dmlzfSAvPlxuICAgICAgICApKVxuICAgICAgKSA6IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ2aXN1YWxpemF0aW9uLWxpc3RfX21lc3NhZ2VcIj5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmxvYWRTdG9yYWdlTWFwLm5vU2F2ZWRNYXBzJ30gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvU3R5bGVkRmxleENvbnRhaW5lcj5cbiAgKTtcbn07XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};