@kepler.gl/components 3.0.0-alpha.0

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 (539) hide show
  1. package/dist/bottom-widget.d.ts +46 -0
  2. package/dist/bottom-widget.js +242 -0
  3. package/dist/common/action-panel.d.ts +27 -0
  4. package/dist/common/action-panel.js +152 -0
  5. package/dist/common/animation-control/animation-control.d.ts +24 -0
  6. package/dist/common/animation-control/animation-control.js +155 -0
  7. package/dist/common/animation-control/animation-controller.d.ts +15 -0
  8. package/dist/common/animation-control/animation-controller.js +324 -0
  9. package/dist/common/animation-control/animation-speed-slider.d.ts +12 -0
  10. package/dist/common/animation-control/animation-speed-slider.js +120 -0
  11. package/dist/common/animation-control/animation-window-control.d.ts +20 -0
  12. package/dist/common/animation-control/animation-window-control.js +86 -0
  13. package/dist/common/animation-control/floating-time-display.d.ts +9 -0
  14. package/dist/common/animation-control/floating-time-display.js +181 -0
  15. package/dist/common/animation-control/play-control.d.ts +12 -0
  16. package/dist/common/animation-control/play-control.js +81 -0
  17. package/dist/common/animation-control/playback-controls.d.ts +55 -0
  18. package/dist/common/animation-control/playback-controls.js +202 -0
  19. package/dist/common/animation-control/reset-control.d.ts +9 -0
  20. package/dist/common/animation-control/reset-control.js +71 -0
  21. package/dist/common/animation-control/speed-control.d.ts +12 -0
  22. package/dist/common/animation-control/speed-control.js +88 -0
  23. package/dist/common/animation-control/window-action-control.d.ts +11 -0
  24. package/dist/common/animation-control/window-action-control.js +87 -0
  25. package/dist/common/checkbox.d.ts +35 -0
  26. package/dist/common/checkbox.js +159 -0
  27. package/dist/common/color-legend.d.ts +39 -0
  28. package/dist/common/color-legend.js +257 -0
  29. package/dist/common/data-table/button.d.ts +8 -0
  30. package/dist/common/data-table/button.js +66 -0
  31. package/dist/common/data-table/canvas.d.ts +2 -0
  32. package/dist/common/data-table/canvas.js +52 -0
  33. package/dist/common/data-table/cell-size.d.ts +43 -0
  34. package/dist/common/data-table/cell-size.js +195 -0
  35. package/dist/common/data-table/grid.d.ts +7 -0
  36. package/dist/common/data-table/grid.js +119 -0
  37. package/dist/common/data-table/header-cell.d.ts +25 -0
  38. package/dist/common/data-table/header-cell.js +152 -0
  39. package/dist/common/data-table/index.d.ts +108 -0
  40. package/dist/common/data-table/index.js +457 -0
  41. package/dist/common/data-table/option-dropdown.d.ts +14 -0
  42. package/dist/common/data-table/option-dropdown.js +142 -0
  43. package/dist/common/dataset-label.d.ts +10 -0
  44. package/dist/common/dataset-label.js +56 -0
  45. package/dist/common/error-boundary.d.ts +12 -0
  46. package/dist/common/error-boundary.js +103 -0
  47. package/dist/common/field-selector.d.ts +43 -0
  48. package/dist/common/field-selector.js +220 -0
  49. package/dist/common/field-token.d.ts +46 -0
  50. package/dist/common/field-token.js +70 -0
  51. package/dist/common/file-uploader/file-drop.d.ts +53 -0
  52. package/dist/common/file-uploader/file-drop.js +252 -0
  53. package/dist/common/file-uploader/file-upload-progress.d.ts +8 -0
  54. package/dist/common/file-uploader/file-upload-progress.js +123 -0
  55. package/dist/common/file-uploader/file-upload.d.ts +27 -0
  56. package/dist/common/file-uploader/file-upload.js +324 -0
  57. package/dist/common/file-uploader/upload-button.d.ts +7 -0
  58. package/dist/common/file-uploader/upload-button.js +94 -0
  59. package/dist/common/histogram-plot.d.ts +3 -0
  60. package/dist/common/histogram-plot.js +134 -0
  61. package/dist/common/icon-button.d.ts +12 -0
  62. package/dist/common/icon-button.js +52 -0
  63. package/dist/common/icons/add.d.ts +9 -0
  64. package/dist/common/icons/add.js +78 -0
  65. package/dist/common/icons/anchor_window.d.ts +11 -0
  66. package/dist/common/icons/anchor_window.js +55 -0
  67. package/dist/common/icons/arrow-down-alt.d.ts +9 -0
  68. package/dist/common/icons/arrow-down-alt.js +78 -0
  69. package/dist/common/icons/arrow-down-solid.d.ts +9 -0
  70. package/dist/common/icons/arrow-down-solid.js +78 -0
  71. package/dist/common/icons/arrow-down.d.ts +9 -0
  72. package/dist/common/icons/arrow-down.js +78 -0
  73. package/dist/common/icons/arrow-left.d.ts +9 -0
  74. package/dist/common/icons/arrow-left.js +81 -0
  75. package/dist/common/icons/arrow-right.d.ts +9 -0
  76. package/dist/common/icons/arrow-right.js +78 -0
  77. package/dist/common/icons/arrow-up-alt.d.ts +9 -0
  78. package/dist/common/icons/arrow-up-alt.js +79 -0
  79. package/dist/common/icons/arrow-up-solid.d.ts +9 -0
  80. package/dist/common/icons/arrow-up-solid.js +78 -0
  81. package/dist/common/icons/arrow-up.d.ts +9 -0
  82. package/dist/common/icons/arrow-up.js +78 -0
  83. package/dist/common/icons/base.d.ts +29 -0
  84. package/dist/common/icons/base.js +116 -0
  85. package/dist/common/icons/bug.d.ts +9 -0
  86. package/dist/common/icons/bug.js +80 -0
  87. package/dist/common/icons/cancel.d.ts +9 -0
  88. package/dist/common/icons/cancel.js +78 -0
  89. package/dist/common/icons/checkmark.d.ts +10 -0
  90. package/dist/common/icons/checkmark.js +85 -0
  91. package/dist/common/icons/clipboard.d.ts +9 -0
  92. package/dist/common/icons/clipboard.js +79 -0
  93. package/dist/common/icons/clock.d.ts +9 -0
  94. package/dist/common/icons/clock.js +80 -0
  95. package/dist/common/icons/close.d.ts +9 -0
  96. package/dist/common/icons/close.js +83 -0
  97. package/dist/common/icons/code-alt.d.ts +9 -0
  98. package/dist/common/icons/code-alt.js +82 -0
  99. package/dist/common/icons/copy.d.ts +9 -0
  100. package/dist/common/icons/copy.js +84 -0
  101. package/dist/common/icons/crosshairs.d.ts +9 -0
  102. package/dist/common/icons/crosshairs.js +82 -0
  103. package/dist/common/icons/cube-3d.d.ts +9 -0
  104. package/dist/common/icons/cube-3d.js +82 -0
  105. package/dist/common/icons/cursor-click.d.ts +9 -0
  106. package/dist/common/icons/cursor-click.js +82 -0
  107. package/dist/common/icons/data-table.d.ts +10 -0
  108. package/dist/common/icons/data-table.js +79 -0
  109. package/dist/common/icons/db.d.ts +10 -0
  110. package/dist/common/icons/db.js +79 -0
  111. package/dist/common/icons/delete.d.ts +9 -0
  112. package/dist/common/icons/delete.js +80 -0
  113. package/dist/common/icons/docs.d.ts +9 -0
  114. package/dist/common/icons/docs.js +94 -0
  115. package/dist/common/icons/drag-n-drop.d.ts +9 -0
  116. package/dist/common/icons/drag-n-drop.js +80 -0
  117. package/dist/common/icons/draw-polygon.d.ts +10 -0
  118. package/dist/common/icons/draw-polygon.js +98 -0
  119. package/dist/common/icons/email.d.ts +9 -0
  120. package/dist/common/icons/email.js +82 -0
  121. package/dist/common/icons/expand.d.ts +9 -0
  122. package/dist/common/icons/expand.js +80 -0
  123. package/dist/common/icons/eye-seen.d.ts +9 -0
  124. package/dist/common/icons/eye-seen.js +80 -0
  125. package/dist/common/icons/eye-unseen.d.ts +9 -0
  126. package/dist/common/icons/eye-unseen.js +80 -0
  127. package/dist/common/icons/file-type.d.ts +8 -0
  128. package/dist/common/icons/file-type.js +65 -0
  129. package/dist/common/icons/file.d.ts +9 -0
  130. package/dist/common/icons/file.js +78 -0
  131. package/dist/common/icons/files.d.ts +9 -0
  132. package/dist/common/icons/files.js +80 -0
  133. package/dist/common/icons/filter-funnel.d.ts +9 -0
  134. package/dist/common/icons/filter-funnel.js +78 -0
  135. package/dist/common/icons/free-window.d.ts +11 -0
  136. package/dist/common/icons/free-window.js +55 -0
  137. package/dist/common/icons/gear.d.ts +9 -0
  138. package/dist/common/icons/gear.js +80 -0
  139. package/dist/common/icons/hash.d.ts +9 -0
  140. package/dist/common/icons/hash.js +78 -0
  141. package/dist/common/icons/histogram.d.ts +9 -0
  142. package/dist/common/icons/histogram.js +79 -0
  143. package/dist/common/icons/index.d.ts +76 -0
  144. package/dist/common/icons/index.js +624 -0
  145. package/dist/common/icons/info.d.ts +12 -0
  146. package/dist/common/icons/info.js +92 -0
  147. package/dist/common/icons/layers.d.ts +9 -0
  148. package/dist/common/icons/layers.js +78 -0
  149. package/dist/common/icons/left-arrow.d.ts +9 -0
  150. package/dist/common/icons/left-arrow.js +82 -0
  151. package/dist/common/icons/legend.d.ts +9 -0
  152. package/dist/common/icons/legend.js +78 -0
  153. package/dist/common/icons/line-chart.d.ts +9 -0
  154. package/dist/common/icons/line-chart.js +78 -0
  155. package/dist/common/icons/login.d.ts +9 -0
  156. package/dist/common/icons/login.js +81 -0
  157. package/dist/common/icons/logout.d.ts +9 -0
  158. package/dist/common/icons/logout.js +80 -0
  159. package/dist/common/icons/map-icon.d.ts +11 -0
  160. package/dist/common/icons/map-icon.js +86 -0
  161. package/dist/common/icons/map.d.ts +11 -0
  162. package/dist/common/icons/map.js +86 -0
  163. package/dist/common/icons/messages.d.ts +9 -0
  164. package/dist/common/icons/messages.js +78 -0
  165. package/dist/common/icons/minus.d.ts +9 -0
  166. package/dist/common/icons/minus.js +78 -0
  167. package/dist/common/icons/order-by-dataset.d.ts +12 -0
  168. package/dist/common/icons/order-by-dataset.js +55 -0
  169. package/dist/common/icons/order-by-list.d.ts +12 -0
  170. package/dist/common/icons/order-by-list.js +47 -0
  171. package/dist/common/icons/pause.d.ts +9 -0
  172. package/dist/common/icons/pause.js +78 -0
  173. package/dist/common/icons/picture.d.ts +9 -0
  174. package/dist/common/icons/picture.js +80 -0
  175. package/dist/common/icons/pin.d.ts +9 -0
  176. package/dist/common/icons/pin.js +86 -0
  177. package/dist/common/icons/play.d.ts +9 -0
  178. package/dist/common/icons/play.js +78 -0
  179. package/dist/common/icons/polygon.d.ts +10 -0
  180. package/dist/common/icons/polygon.js +100 -0
  181. package/dist/common/icons/rectangle.d.ts +10 -0
  182. package/dist/common/icons/rectangle.js +101 -0
  183. package/dist/common/icons/reduce.d.ts +9 -0
  184. package/dist/common/icons/reduce.js +81 -0
  185. package/dist/common/icons/reset.d.ts +9 -0
  186. package/dist/common/icons/reset.js +78 -0
  187. package/dist/common/icons/rocket.d.ts +9 -0
  188. package/dist/common/icons/rocket.js +78 -0
  189. package/dist/common/icons/save.d.ts +9 -0
  190. package/dist/common/icons/save.js +80 -0
  191. package/dist/common/icons/save2.d.ts +9 -0
  192. package/dist/common/icons/save2.js +84 -0
  193. package/dist/common/icons/search.d.ts +9 -0
  194. package/dist/common/icons/search.js +80 -0
  195. package/dist/common/icons/settings.d.ts +9 -0
  196. package/dist/common/icons/settings.js +80 -0
  197. package/dist/common/icons/share.d.ts +9 -0
  198. package/dist/common/icons/share.js +78 -0
  199. package/dist/common/icons/split.d.ts +9 -0
  200. package/dist/common/icons/split.js +106 -0
  201. package/dist/common/icons/square-select.d.ts +9 -0
  202. package/dist/common/icons/square-select.js +80 -0
  203. package/dist/common/icons/trash.d.ts +9 -0
  204. package/dist/common/icons/trash.js +80 -0
  205. package/dist/common/icons/vert-dots.d.ts +9 -0
  206. package/dist/common/icons/vert-dots.js +116 -0
  207. package/dist/common/icons/vert-three-dots.d.ts +9 -0
  208. package/dist/common/icons/vert-three-dots.js +91 -0
  209. package/dist/common/icons/warning-sign.d.ts +15 -0
  210. package/dist/common/icons/warning-sign.js +100 -0
  211. package/dist/common/icons/warning.d.ts +10 -0
  212. package/dist/common/icons/warning.js +93 -0
  213. package/dist/common/image-preview.d.ts +15 -0
  214. package/dist/common/image-preview.js +91 -0
  215. package/dist/common/index.d.ts +3 -0
  216. package/dist/common/index.js +287 -0
  217. package/dist/common/info-helper.d.ts +10 -0
  218. package/dist/common/info-helper.js +95 -0
  219. package/dist/common/item-selector/accessor.d.ts +7 -0
  220. package/dist/common/item-selector/accessor.js +56 -0
  221. package/dist/common/item-selector/chickleted-input.d.ts +21 -0
  222. package/dist/common/item-selector/chickleted-input.js +116 -0
  223. package/dist/common/item-selector/dropdown-list.d.ts +50 -0
  224. package/dist/common/item-selector/dropdown-list.js +191 -0
  225. package/dist/common/item-selector/item-selector.d.ts +45 -0
  226. package/dist/common/item-selector/item-selector.js +359 -0
  227. package/dist/common/item-selector/typeahead.d.ts +113 -0
  228. package/dist/common/item-selector/typeahead.js +507 -0
  229. package/dist/common/line-chart.d.ts +34 -0
  230. package/dist/common/line-chart.js +146 -0
  231. package/dist/common/loading-spinner.d.ts +9 -0
  232. package/dist/common/loading-spinner.js +76 -0
  233. package/dist/common/logo.d.ts +8 -0
  234. package/dist/common/logo.js +102 -0
  235. package/dist/common/map-layer-selector.d.ts +13 -0
  236. package/dist/common/map-layer-selector.js +69 -0
  237. package/dist/common/modal.d.ts +51 -0
  238. package/dist/common/modal.js +211 -0
  239. package/dist/common/portaled.d.ts +54 -0
  240. package/dist/common/portaled.js +360 -0
  241. package/dist/common/progress-bar.d.ts +12 -0
  242. package/dist/common/progress-bar.js +74 -0
  243. package/dist/common/range-brush.d.ts +19 -0
  244. package/dist/common/range-brush.js +346 -0
  245. package/dist/common/range-plot.d.ts +35 -0
  246. package/dist/common/range-plot.js +156 -0
  247. package/dist/common/range-slider.d.ts +30 -0
  248. package/dist/common/range-slider.js +343 -0
  249. package/dist/common/slider/mouse-event.d.ts +27 -0
  250. package/dist/common/slider/mouse-event.js +145 -0
  251. package/dist/common/slider/slider-bar-handle.d.ts +29 -0
  252. package/dist/common/slider/slider-bar-handle.js +135 -0
  253. package/dist/common/slider/slider-handle.d.ts +33 -0
  254. package/dist/common/slider/slider-handle.js +182 -0
  255. package/dist/common/slider/slider.d.ts +70 -0
  256. package/dist/common/slider/slider.js +264 -0
  257. package/dist/common/styled-components.d.ts +123 -0
  258. package/dist/common/styled-components.js +438 -0
  259. package/dist/common/switch.d.ts +15 -0
  260. package/dist/common/switch.js +50 -0
  261. package/dist/common/time-range-slider-time-title.d.ts +9 -0
  262. package/dist/common/time-range-slider-time-title.js +94 -0
  263. package/dist/common/time-range-slider.d.ts +32 -0
  264. package/dist/common/time-range-slider.js +132 -0
  265. package/dist/common/time-slider-marker.d.ts +21 -0
  266. package/dist/common/time-slider-marker.js +161 -0
  267. package/dist/common/tippy-tooltip.d.ts +4 -0
  268. package/dist/common/tippy-tooltip.js +142 -0
  269. package/dist/common/toolbar-item.d.ts +14 -0
  270. package/dist/common/toolbar-item.js +91 -0
  271. package/dist/common/toolbar.d.ts +5 -0
  272. package/dist/common/toolbar.js +53 -0
  273. package/dist/common/vertical-toolbar.d.ts +3 -0
  274. package/dist/common/vertical-toolbar.js +42 -0
  275. package/dist/connect/keplergl-connect.d.ts +5 -0
  276. package/dist/connect/keplergl-connect.js +67 -0
  277. package/dist/connect/with-local-selector.d.ts +6 -0
  278. package/dist/connect/with-local-selector.js +130 -0
  279. package/dist/container.d.ts +39 -0
  280. package/dist/container.js +242 -0
  281. package/dist/context.d.ts +16 -0
  282. package/dist/context.js +53 -0
  283. package/dist/editor/constants.d.ts +17 -0
  284. package/dist/editor/constants.js +47 -0
  285. package/dist/editor/editor.d.ts +30 -0
  286. package/dist/editor/editor.js +279 -0
  287. package/dist/editor/feature-action-panel.d.ts +30 -0
  288. package/dist/editor/feature-action-panel.js +169 -0
  289. package/dist/editor/feature-styles.d.ts +37 -0
  290. package/dist/editor/feature-styles.js +92 -0
  291. package/dist/editor/handle-style.d.ts +42 -0
  292. package/dist/editor/handle-style.js +100 -0
  293. package/dist/filters/components.d.ts +3 -0
  294. package/dist/filters/components.js +40 -0
  295. package/dist/filters/filter-panels/filter-panel-with-field-select.d.ts +10 -0
  296. package/dist/filters/filter-panels/filter-panel-with-field-select.js +106 -0
  297. package/dist/filters/filter-panels/multi-select-filter-panel.d.ts +9 -0
  298. package/dist/filters/filter-panels/multi-select-filter-panel.js +72 -0
  299. package/dist/filters/filter-panels/new-filter-panel.d.ts +12 -0
  300. package/dist/filters/filter-panels/new-filter-panel.js +94 -0
  301. package/dist/filters/filter-panels/polygon-filter-panel.d.ts +9 -0
  302. package/dist/filters/filter-panels/polygon-filter-panel.js +96 -0
  303. package/dist/filters/filter-panels/range-filter-panel.d.ts +9 -0
  304. package/dist/filters/filter-panels/range-filter-panel.js +72 -0
  305. package/dist/filters/filter-panels/single-select-filter-panel.d.ts +9 -0
  306. package/dist/filters/filter-panels/single-select-filter-panel.js +72 -0
  307. package/dist/filters/filter-panels/time-range-filter-panel.d.ts +8 -0
  308. package/dist/filters/filter-panels/time-range-filter-panel.js +87 -0
  309. package/dist/filters/filter-panels/types.d.ts +35 -0
  310. package/dist/filters/filter-panels/types.js +26 -0
  311. package/dist/filters/index.d.ts +5 -0
  312. package/dist/filters/index.js +68 -0
  313. package/dist/filters/multi-select-filter.d.ts +3 -0
  314. package/dist/filters/multi-select-filter.js +53 -0
  315. package/dist/filters/polygon-filter.d.ts +4 -0
  316. package/dist/filters/polygon-filter.js +94 -0
  317. package/dist/filters/range-filter.d.ts +8 -0
  318. package/dist/filters/range-filter.js +52 -0
  319. package/dist/filters/single-select-filter.d.ts +3 -0
  320. package/dist/filters/single-select-filter.js +62 -0
  321. package/dist/filters/time-range-filter.d.ts +28 -0
  322. package/dist/filters/time-range-filter.js +84 -0
  323. package/dist/filters/time-widget.d.ts +14 -0
  324. package/dist/filters/time-widget.js +192 -0
  325. package/dist/filters/types.d.ts +54 -0
  326. package/dist/filters/types.js +26 -0
  327. package/dist/geocoder/geocoder.d.ts +33 -0
  328. package/dist/geocoder/geocoder.js +336 -0
  329. package/dist/geocoder-panel.d.ts +25 -0
  330. package/dist/geocoder-panel.js +241 -0
  331. package/dist/hooks/useFeatureFlags.d.ts +2 -0
  332. package/dist/hooks/useFeatureFlags.js +38 -0
  333. package/dist/index.d.ts +176 -0
  334. package/dist/index.js +1935 -0
  335. package/dist/injector.d.ts +29 -0
  336. package/dist/injector.js +198 -0
  337. package/dist/kepler-gl.d.ts +281 -0
  338. package/dist/kepler-gl.js +568 -0
  339. package/dist/map/coordinate-info.d.ts +7 -0
  340. package/dist/map/coordinate-info.js +67 -0
  341. package/dist/map/layer-hover-info.d.ts +13 -0
  342. package/dist/map/layer-hover-info.js +228 -0
  343. package/dist/map/layer-selector-panel.d.ts +21 -0
  344. package/dist/map/layer-selector-panel.js +114 -0
  345. package/dist/map/lazy-tippy.d.ts +7 -0
  346. package/dist/map/lazy-tippy.js +94 -0
  347. package/dist/map/locale-panel.d.ts +16 -0
  348. package/dist/map/locale-panel.js +107 -0
  349. package/dist/map/map-control-panel.d.ts +13 -0
  350. package/dist/map/map-control-panel.js +116 -0
  351. package/dist/map/map-control-toolbar.d.ts +2 -0
  352. package/dist/map/map-control-toolbar.js +45 -0
  353. package/dist/map/map-control-tooltip.d.ts +8 -0
  354. package/dist/map/map-control-tooltip.js +57 -0
  355. package/dist/map/map-control.d.ts +45 -0
  356. package/dist/map/map-control.js +101 -0
  357. package/dist/map/map-draw-panel.d.ts +20 -0
  358. package/dist/map/map-draw-panel.js +137 -0
  359. package/dist/map/map-legend-panel.d.ts +24 -0
  360. package/dist/map/map-legend-panel.js +181 -0
  361. package/dist/map/map-legend.d.ts +55 -0
  362. package/dist/map/map-legend.js +274 -0
  363. package/dist/map/map-popover.d.ts +36 -0
  364. package/dist/map/map-popover.js +217 -0
  365. package/dist/map/split-map-button.d.ts +20 -0
  366. package/dist/map/split-map-button.js +92 -0
  367. package/dist/map/toggle-3d-button.d.ts +17 -0
  368. package/dist/map/toggle-3d-button.js +81 -0
  369. package/dist/map-container.d.ts +48 -0
  370. package/dist/map-container.js +653 -0
  371. package/dist/maps-layout.d.ts +9 -0
  372. package/dist/maps-layout.js +80 -0
  373. package/dist/modal-container.d.ts +63 -0
  374. package/dist/modal-container.js +530 -0
  375. package/dist/modals/add-map-style-modal.d.ts +18 -0
  376. package/dist/modals/add-map-style-modal.js +300 -0
  377. package/dist/modals/cloud-tile.d.ts +15 -0
  378. package/dist/modals/cloud-tile.js +144 -0
  379. package/dist/modals/data-table-modal.d.ts +28 -0
  380. package/dist/modals/data-table-modal.js +285 -0
  381. package/dist/modals/delete-data-modal.d.ts +10 -0
  382. package/dist/modals/delete-data-modal.js +74 -0
  383. package/dist/modals/error-display.d.ts +6 -0
  384. package/dist/modals/error-display.js +50 -0
  385. package/dist/modals/export-data-modal.d.ts +25 -0
  386. package/dist/modals/export-data-modal.js +232 -0
  387. package/dist/modals/export-image-modal.d.ts +18 -0
  388. package/dist/modals/export-image-modal.js +156 -0
  389. package/dist/modals/export-map-modal/components.d.ts +8 -0
  390. package/dist/modals/export-map-modal/components.js +71 -0
  391. package/dist/modals/export-map-modal/export-html-map.d.ts +12 -0
  392. package/dist/modals/export-map-modal/export-html-map.js +158 -0
  393. package/dist/modals/export-map-modal/export-json-map.d.ts +9 -0
  394. package/dist/modals/export-map-modal/export-json-map.js +120 -0
  395. package/dist/modals/export-map-modal/export-map-modal.d.ts +27 -0
  396. package/dist/modals/export-map-modal/export-map-modal.js +119 -0
  397. package/dist/modals/image-modal-container.d.ts +17 -0
  398. package/dist/modals/image-modal-container.js +86 -0
  399. package/dist/modals/load-data-modal.d.ts +41 -0
  400. package/dist/modals/load-data-modal.js +118 -0
  401. package/dist/modals/load-storage-map.d.ts +26 -0
  402. package/dist/modals/load-storage-map.js +308 -0
  403. package/dist/modals/loading-dialog.d.ts +7 -0
  404. package/dist/modals/loading-dialog.js +68 -0
  405. package/dist/modals/modal-dialog.d.ts +2 -0
  406. package/dist/modals/modal-dialog.js +36 -0
  407. package/dist/modals/modal-tabs.d.ts +27 -0
  408. package/dist/modals/modal-tabs.js +119 -0
  409. package/dist/modals/overwrite-map-modal.d.ts +16 -0
  410. package/dist/modals/overwrite-map-modal.js +100 -0
  411. package/dist/modals/provider-modal-container.d.ts +22 -0
  412. package/dist/modals/provider-modal-container.js +101 -0
  413. package/dist/modals/save-map-modal.d.ts +30 -0
  414. package/dist/modals/save-map-modal.js +226 -0
  415. package/dist/modals/share-map-modal.d.ts +30 -0
  416. package/dist/modals/share-map-modal.js +219 -0
  417. package/dist/modals/status-panel.d.ts +13 -0
  418. package/dist/modals/status-panel.js +103 -0
  419. package/dist/modals/storage-map-viewer.d.ts +21 -0
  420. package/dist/modals/storage-map-viewer.js +147 -0
  421. package/dist/notification-panel/notification-item.d.ts +70 -0
  422. package/dist/notification-panel/notification-item.js +173 -0
  423. package/dist/notification-panel.d.ts +13 -0
  424. package/dist/notification-panel.js +106 -0
  425. package/dist/plot-container.d.ts +24 -0
  426. package/dist/plot-container.js +276 -0
  427. package/dist/side-panel/cloud-storage-dropdown.d.ts +6 -0
  428. package/dist/side-panel/cloud-storage-dropdown.js +62 -0
  429. package/dist/side-panel/common/dataset-info.d.ts +3 -0
  430. package/dist/side-panel/common/dataset-info.js +63 -0
  431. package/dist/side-panel/common/dataset-tag.d.ts +3 -0
  432. package/dist/side-panel/common/dataset-tag.js +89 -0
  433. package/dist/side-panel/common/dataset-title.d.ts +8 -0
  434. package/dist/side-panel/common/dataset-title.js +225 -0
  435. package/dist/side-panel/common/source-data-catalog.d.ts +9 -0
  436. package/dist/side-panel/common/source-data-catalog.js +82 -0
  437. package/dist/side-panel/common/source-data-selector.d.ts +8 -0
  438. package/dist/side-panel/common/source-data-selector.js +96 -0
  439. package/dist/side-panel/common/types.d.ts +63 -0
  440. package/dist/side-panel/common/types.js +26 -0
  441. package/dist/side-panel/custom-panel.d.ts +9 -0
  442. package/dist/side-panel/custom-panel.js +59 -0
  443. package/dist/side-panel/filter-manager.d.ts +20 -0
  444. package/dist/side-panel/filter-manager.js +132 -0
  445. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +21 -0
  446. package/dist/side-panel/filter-panel/filter-panel-header.js +87 -0
  447. package/dist/side-panel/filter-panel/filter-panel.d.ts +23 -0
  448. package/dist/side-panel/filter-panel/filter-panel.js +151 -0
  449. package/dist/side-panel/interaction-manager.d.ts +15 -0
  450. package/dist/side-panel/interaction-manager.js +57 -0
  451. package/dist/side-panel/interaction-panel/brush-config.d.ts +15 -0
  452. package/dist/side-panel/interaction-panel/brush-config.js +74 -0
  453. package/dist/side-panel/interaction-panel/interaction-panel.d.ts +18 -0
  454. package/dist/side-panel/interaction-panel/interaction-panel.js +156 -0
  455. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +28 -0
  456. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +264 -0
  457. package/dist/side-panel/interaction-panel/tooltip-config.d.ts +38 -0
  458. package/dist/side-panel/interaction-panel/tooltip-config.js +185 -0
  459. package/dist/side-panel/layer-manager.d.ts +39 -0
  460. package/dist/side-panel/layer-manager.js +225 -0
  461. package/dist/side-panel/layer-panel/add-layer-button.d.ts +10 -0
  462. package/dist/side-panel/layer-panel/add-layer-button.js +176 -0
  463. package/dist/side-panel/layer-panel/color-palette.d.ts +11 -0
  464. package/dist/side-panel/layer-panel/color-palette.js +91 -0
  465. package/dist/side-panel/layer-panel/color-range-selector.d.ts +47 -0
  466. package/dist/side-panel/layer-panel/color-range-selector.js +290 -0
  467. package/dist/side-panel/layer-panel/color-selector.d.ts +42 -0
  468. package/dist/side-panel/layer-panel/color-selector.js +225 -0
  469. package/dist/side-panel/layer-panel/column-selector.d.ts +22 -0
  470. package/dist/side-panel/layer-panel/column-selector.js +85 -0
  471. package/dist/side-panel/layer-panel/custom-palette.d.ts +38 -0
  472. package/dist/side-panel/layer-panel/custom-palette.js +312 -0
  473. package/dist/side-panel/layer-panel/custom-picker.d.ts +51 -0
  474. package/dist/side-panel/layer-panel/custom-picker.js +136 -0
  475. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +22 -0
  476. package/dist/side-panel/layer-panel/dataset-layer-group.js +86 -0
  477. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +23 -0
  478. package/dist/side-panel/layer-panel/dataset-layer-section.js +89 -0
  479. package/dist/side-panel/layer-panel/dataset-section.d.ts +24 -0
  480. package/dist/side-panel/layer-panel/dataset-section.js +112 -0
  481. package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +10 -0
  482. package/dist/side-panel/layer-panel/dimension-scale-selector.js +60 -0
  483. package/dist/side-panel/layer-panel/how-to-button.d.ts +6 -0
  484. package/dist/side-panel/layer-panel/how-to-button.js +58 -0
  485. package/dist/side-panel/layer-panel/layer-column-config.d.ts +19 -0
  486. package/dist/side-panel/layer-panel/layer-column-config.js +107 -0
  487. package/dist/side-panel/layer-panel/layer-config-group.d.ts +35 -0
  488. package/dist/side-panel/layer-panel/layer-config-group.js +188 -0
  489. package/dist/side-panel/layer-panel/layer-configurator.d.ts +100 -0
  490. package/dist/side-panel/layer-panel/layer-configurator.js +792 -0
  491. package/dist/side-panel/layer-panel/layer-list.d.ts +19 -0
  492. package/dist/side-panel/layer-panel/layer-list.js +188 -0
  493. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +63 -0
  494. package/dist/side-panel/layer-panel/layer-panel-header.js +291 -0
  495. package/dist/side-panel/layer-panel/layer-panel.d.ts +36 -0
  496. package/dist/side-panel/layer-panel/layer-panel.js +201 -0
  497. package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +22 -0
  498. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +109 -0
  499. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +13 -0
  500. package/dist/side-panel/layer-panel/layer-type-list-item.js +89 -0
  501. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +21 -0
  502. package/dist/side-panel/layer-panel/layer-type-selector.js +91 -0
  503. package/dist/side-panel/layer-panel/panel-view-list-toggle.d.ts +36 -0
  504. package/dist/side-panel/layer-panel/panel-view-list-toggle.js +143 -0
  505. package/dist/side-panel/layer-panel/single-color-palette.d.ts +9 -0
  506. package/dist/side-panel/layer-panel/single-color-palette.js +81 -0
  507. package/dist/side-panel/layer-panel/text-label-panel.d.ts +15 -0
  508. package/dist/side-panel/layer-panel/text-label-panel.js +171 -0
  509. package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +29 -0
  510. package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +137 -0
  511. package/dist/side-panel/layer-panel/vis-config-slider.d.ts +20 -0
  512. package/dist/side-panel/layer-panel/vis-config-slider.js +210 -0
  513. package/dist/side-panel/layer-panel/vis-config-switch.d.ts +16 -0
  514. package/dist/side-panel/layer-panel/vis-config-switch.js +91 -0
  515. package/dist/side-panel/map-manager.d.ts +20 -0
  516. package/dist/side-panel/map-manager.js +168 -0
  517. package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +19 -0
  518. package/dist/side-panel/map-style-panel/map-layer-selector.js +128 -0
  519. package/dist/side-panel/map-style-panel/map-style-selector.d.ts +16 -0
  520. package/dist/side-panel/map-style-panel/map-style-selector.js +98 -0
  521. package/dist/side-panel/panel-dropdown.d.ts +17 -0
  522. package/dist/side-panel/panel-dropdown.js +99 -0
  523. package/dist/side-panel/panel-header-action.d.ts +20 -0
  524. package/dist/side-panel/panel-header-action.js +100 -0
  525. package/dist/side-panel/panel-header.d.ts +79 -0
  526. package/dist/side-panel/panel-header.js +360 -0
  527. package/dist/side-panel/panel-tab.d.ts +20 -0
  528. package/dist/side-panel/panel-tab.js +88 -0
  529. package/dist/side-panel/panel-title.d.ts +4 -0
  530. package/dist/side-panel/panel-title.js +54 -0
  531. package/dist/side-panel/panel-toggle.d.ts +13 -0
  532. package/dist/side-panel/panel-toggle.js +80 -0
  533. package/dist/side-panel/side-bar.d.ts +79 -0
  534. package/dist/side-panel/side-bar.js +177 -0
  535. package/dist/side-panel.d.ts +134 -0
  536. package/dist/side-panel.js +274 -0
  537. package/dist/types.d.ts +42 -0
  538. package/dist/types.js +26 -0
  539. package/package.json +136 -0
@@ -0,0 +1,158 @@
1
+ // Copyright (c) 2022 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
+ "use strict";
22
+
23
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
24
+
25
+ Object.defineProperty(exports, "__esModule", {
26
+ value: true
27
+ });
28
+ exports["default"] = void 0;
29
+
30
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
31
+
32
+ var _react = _interopRequireDefault(require("react"));
33
+
34
+ var _styledComponents = require("../../common/styled-components");
35
+
36
+ var _components = require("./components");
37
+
38
+ var _constants = require("@kepler.gl/constants");
39
+
40
+ var _styledComponents2 = _interopRequireDefault(require("styled-components"));
41
+
42
+ var _reactIntl = require("react-intl");
43
+
44
+ var _localization = require("@kepler.gl/localization");
45
+
46
+ var _templateObject, _templateObject2, _templateObject3;
47
+
48
+ var ExportMapStyledExportSection = (0, _styledComponents2["default"])(_styledComponents.StyledExportSection)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n .disclaimer {\n font-size: ", ";\n color: ", ";\n margin-top: 12px;\n }\n"])), function (props) {
49
+ return props.theme.inputFontSize;
50
+ }, function (props) {
51
+ return props.theme.inputColor;
52
+ });
53
+
54
+ var StyledInput = _styledComponents2["default"].input(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n padding: ", ";\n color: ", ";\n height: ", ";\n outline: 0;\n font-size: ", ";\n\n :active,\n :focus,\n &.focus,\n &.active {\n outline: 0;\n }\n"])), function (props) {
55
+ return props.theme.inputPadding;
56
+ }, function (props) {
57
+ return props.error ? 'red' : props.theme.titleColorLT;
58
+ }, function (props) {
59
+ return props.theme.inputBoxHeight;
60
+ }, function (props) {
61
+ return props.theme.inputFontSize;
62
+ });
63
+
64
+ var BigStyledTile = (0, _styledComponents2["default"])(_styledComponents.StyledType)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n height: unset;\n width: unset;\n img {\n width: 180px;\n height: 120px;\n }\n"])));
65
+
66
+ function ExportHtmlMapFactory() {
67
+ /** @type {typeof import('./export-html-map').ExportHtmlMap} */
68
+ var ExportHtmlMap = function ExportHtmlMap(_ref) {
69
+ var _ref$onChangeExportMa = _ref.onChangeExportMapHTMLMode,
70
+ onChangeExportMapHTMLMode = _ref$onChangeExportMa === void 0 ? function (mode) {} : _ref$onChangeExportMa,
71
+ _ref$onEditUserMapbox = _ref.onEditUserMapboxAccessToken,
72
+ onEditUserMapboxAccessToken = _ref$onEditUserMapbox === void 0 ? function (token) {} : _ref$onEditUserMapbox,
73
+ _ref$options = _ref.options,
74
+ options = _ref$options === void 0 ? {} : _ref$options,
75
+ intl = _ref.intl;
76
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_components.StyledExportMapSection, null, /*#__PURE__*/_react["default"].createElement("div", {
77
+ className: "description"
78
+ }), /*#__PURE__*/_react["default"].createElement("div", {
79
+ className: "selection"
80
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
81
+ id: 'modal.exportMap.html.selection'
82
+ }))), /*#__PURE__*/_react["default"].createElement(ExportMapStyledExportSection, {
83
+ className: "export-map-modal__html-options"
84
+ }, /*#__PURE__*/_react["default"].createElement("div", {
85
+ className: "description"
86
+ }, /*#__PURE__*/_react["default"].createElement("div", {
87
+ className: "title"
88
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
89
+ id: 'modal.exportMap.html.tokenTitle'
90
+ })), /*#__PURE__*/_react["default"].createElement("div", {
91
+ className: "subtitle"
92
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
93
+ id: 'modal.exportMap.html.tokenSubtitle'
94
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
95
+ className: "selection"
96
+ }, /*#__PURE__*/_react["default"].createElement(StyledInput, {
97
+ onChange: function onChange(e) {
98
+ return onEditUserMapboxAccessToken(e.target.value);
99
+ },
100
+ type: "text",
101
+ placeholder: intl.formatMessage({
102
+ id: 'modal.exportMap.html.tokenPlaceholder'
103
+ }),
104
+ value: options ? options.userMapboxToken : ''
105
+ }), /*#__PURE__*/_react["default"].createElement("div", {
106
+ className: "disclaimer"
107
+ }, /*#__PURE__*/_react["default"].createElement(_components.StyledWarning, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
108
+ id: 'modal.exportMap.html.tokenMisuseWarning'
109
+ })), /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
110
+ id: 'modal.exportMap.html.tokenDisclaimer'
111
+ }), /*#__PURE__*/_react["default"].createElement(_components.ExportMapLink, {
112
+ href: _constants.EXPORT_HTML_MAP_DOC
113
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
114
+ id: 'modal.exportMap.html.tokenUpdate'
115
+ }))))), /*#__PURE__*/_react["default"].createElement(ExportMapStyledExportSection, null, /*#__PURE__*/_react["default"].createElement("div", {
116
+ className: "description"
117
+ }, /*#__PURE__*/_react["default"].createElement("div", {
118
+ className: "title"
119
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
120
+ id: 'modal.exportMap.html.modeTitle'
121
+ })), /*#__PURE__*/_react["default"].createElement("div", {
122
+ className: "subtitle"
123
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
124
+ id: 'modal.exportMap.html.modeSubtitle1'
125
+ }), /*#__PURE__*/_react["default"].createElement("a", {
126
+ href: _constants.EXPORT_HTML_MAP_MODES_DOC
127
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
128
+ id: 'modal.exportMap.html.modeSubtitle2'
129
+ })))), /*#__PURE__*/_react["default"].createElement("div", {
130
+ className: "selection"
131
+ }, _constants.EXPORT_HTML_MAP_MODE_OPTIONS.map(function (mode) {
132
+ return /*#__PURE__*/_react["default"].createElement(BigStyledTile, {
133
+ key: mode.id,
134
+ selected: options.mode === mode.id,
135
+ onClick: function onClick() {
136
+ return mode.available && onChangeExportMapHTMLMode(mode.id);
137
+ }
138
+ }, /*#__PURE__*/_react["default"].createElement("img", {
139
+ src: mode.url,
140
+ alt: ""
141
+ }), /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
142
+ id: 'modal.exportMap.html.modeDescription',
143
+ values: {
144
+ mode: intl.formatMessage({
145
+ id: mode.label
146
+ })
147
+ }
148
+ })), options.mode === mode.id && /*#__PURE__*/_react["default"].createElement(_styledComponents.CheckMark, null));
149
+ }))));
150
+ };
151
+
152
+ ExportHtmlMap.displayName = 'ExportHtmlMap';
153
+ return (0, _reactIntl.injectIntl)(ExportHtmlMap);
154
+ }
155
+
156
+ var _default = ExportHtmlMapFactory;
157
+ exports["default"] = _default;
158
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RhbHMvZXhwb3J0LW1hcC1tb2RhbC9leHBvcnQtaHRtbC1tYXAudHN4Il0sIm5hbWVzIjpbIkV4cG9ydE1hcFN0eWxlZEV4cG9ydFNlY3Rpb24iLCJTdHlsZWRFeHBvcnRTZWN0aW9uIiwicHJvcHMiLCJ0aGVtZSIsImlucHV0Rm9udFNpemUiLCJpbnB1dENvbG9yIiwiU3R5bGVkSW5wdXQiLCJzdHlsZWQiLCJpbnB1dCIsImlucHV0UGFkZGluZyIsImVycm9yIiwidGl0bGVDb2xvckxUIiwiaW5wdXRCb3hIZWlnaHQiLCJCaWdTdHlsZWRUaWxlIiwiU3R5bGVkVHlwZSIsIkV4cG9ydEh0bWxNYXBGYWN0b3J5IiwiRXhwb3J0SHRtbE1hcCIsIm9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGUiLCJtb2RlIiwib25FZGl0VXNlck1hcGJveEFjY2Vzc1Rva2VuIiwidG9rZW4iLCJvcHRpb25zIiwiaW50bCIsImUiLCJ0YXJnZXQiLCJ2YWx1ZSIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsInVzZXJNYXBib3hUb2tlbiIsIkVYUE9SVF9IVE1MX01BUF9ET0MiLCJFWFBPUlRfSFRNTF9NQVBfTU9ERVNfRE9DIiwiRVhQT1JUX0hUTUxfTUFQX01PREVfT1BUSU9OUyIsIm1hcCIsImF2YWlsYWJsZSIsInVybCIsImxhYmVsIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUtBOztBQUNBOztBQUNBOzs7O0FBU0EsSUFBTUEsNEJBQTRCLEdBQUcsbUNBQU9DLHFDQUFQLENBQUgsOEtBRWpCLFVBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUMsYUFBaEI7QUFBQSxDQUZZLEVBR3JCLFVBQUFGLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUUsVUFBaEI7QUFBQSxDQUhnQixDQUFsQzs7QUFZQSxJQUFNQyxXQUFXLEdBQUdDLDhCQUFPQyxLQUFWLDBRQUVKLFVBQUFOLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWU0sWUFBaEI7QUFBQSxDQUZELEVBR04sVUFBQVAsS0FBSztBQUFBLFNBQUtBLEtBQUssQ0FBQ1EsS0FBTixHQUFjLEtBQWQsR0FBc0JSLEtBQUssQ0FBQ0MsS0FBTixDQUFZUSxZQUF2QztBQUFBLENBSEMsRUFJTCxVQUFBVCxLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxLQUFOLENBQVlTLGNBQWhCO0FBQUEsQ0FKQSxFQU1GLFVBQUFWLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUMsYUFBaEI7QUFBQSxDQU5ILENBQWpCOztBQWdCQSxJQUFNUyxhQUFhLEdBQUcsbUNBQU9DLDRCQUFQLENBQUgsa0xBQW5COztBQXNCQSxTQUFTQyxvQkFBVCxHQUF5RTtBQUN2RTtBQUNBLE1BQU1DLGFBQXVELEdBQUcsU0FBMURBLGFBQTBEO0FBQUEscUNBQzlEQyx5QkFEOEQ7QUFBQSxRQUM5REEseUJBRDhELHNDQUNsQyxVQUFBQyxJQUFJLEVBQUksQ0FBRSxDQUR3QjtBQUFBLHFDQUU5REMsMkJBRjhEO0FBQUEsUUFFOURBLDJCQUY4RCxzQ0FFaEMsVUFBQUMsS0FBSyxFQUFJLENBQUUsQ0FGcUI7QUFBQSw0QkFHOURDLE9BSDhEO0FBQUEsUUFHOURBLE9BSDhELDZCQUdwRCxFQUhvRDtBQUFBLFFBSTlEQyxJQUo4RCxRQUk5REEsSUFKOEQ7QUFBQSx3QkFNOUQsMERBQ0UsZ0NBQUMsa0NBQUQscUJBQ0U7QUFBSyxNQUFBLFNBQVMsRUFBQztBQUFmLE1BREYsZUFFRTtBQUFLLE1BQUEsU0FBUyxFQUFDO0FBQWYsb0JBQ0UsZ0NBQUMsOEJBQUQ7QUFBa0IsTUFBQSxFQUFFLEVBQUU7QUFBdEIsTUFERixDQUZGLENBREYsZUFPRSxnQ0FBQyw0QkFBRDtBQUE4QixNQUFBLFNBQVMsRUFBQztBQUF4QyxvQkFDRTtBQUFLLE1BQUEsU0FBUyxFQUFDO0FBQWYsb0JBQ0U7QUFBSyxNQUFBLFNBQVMsRUFBQztBQUFmLG9CQUNFLGdDQUFDLDhCQUFEO0FBQWtCLE1BQUEsRUFBRSxFQUFFO0FBQXRCLE1BREYsQ0FERixlQUlFO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixvQkFDRSxnQ0FBQyw4QkFBRDtBQUFrQixNQUFBLEVBQUUsRUFBRTtBQUF0QixNQURGLENBSkYsQ0FERixlQVNFO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixvQkFDRSxnQ0FBQyxXQUFEO0FBQ0UsTUFBQSxRQUFRLEVBQUUsa0JBQUFDLENBQUM7QUFBQSxlQUFJSiwyQkFBMkIsQ0FBQ0ksQ0FBQyxDQUFDQyxNQUFGLENBQVNDLEtBQVYsQ0FBL0I7QUFBQSxPQURiO0FBRUUsTUFBQSxJQUFJLEVBQUMsTUFGUDtBQUdFLE1BQUEsV0FBVyxFQUFFSCxJQUFJLENBQUNJLGFBQUwsQ0FBbUI7QUFBQ0MsUUFBQUEsRUFBRSxFQUFFO0FBQUwsT0FBbkIsQ0FIZjtBQUlFLE1BQUEsS0FBSyxFQUFFTixPQUFPLEdBQUdBLE9BQU8sQ0FBQ08sZUFBWCxHQUE2QjtBQUo3QyxNQURGLGVBT0U7QUFBSyxNQUFBLFNBQVMsRUFBQztBQUFmLG9CQUNFLGdDQUFDLHlCQUFELHFCQUNFLGdDQUFDLDhCQUFEO0FBQWtCLE1BQUEsRUFBRSxFQUFFO0FBQXRCLE1BREYsQ0FERixlQUlFLGdDQUFDLDhCQUFEO0FBQWtCLE1BQUEsRUFBRSxFQUFFO0FBQXRCLE1BSkYsZUFLRSxnQ0FBQyx5QkFBRDtBQUFlLE1BQUEsSUFBSSxFQUFFQztBQUFyQixvQkFDRSxnQ0FBQyw4QkFBRDtBQUFrQixNQUFBLEVBQUUsRUFBRTtBQUF0QixNQURGLENBTEYsQ0FQRixDQVRGLENBUEYsZUFrQ0UsZ0NBQUMsNEJBQUQscUJBQ0U7QUFBSyxNQUFBLFNBQVMsRUFBQztBQUFmLG9CQUNFO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixvQkFDRSxnQ0FBQyw4QkFBRDtBQUFrQixNQUFBLEVBQUUsRUFBRTtBQUF0QixNQURGLENBREYsZUFJRTtBQUFLLE1BQUEsU0FBUyxFQUFDO0FBQWYsb0JBQ0UsZ0NBQUMsOEJBQUQ7QUFBa0IsTUFBQSxFQUFFLEVBQUU7QUFBdEIsTUFERixlQUVFO0FBQUcsTUFBQSxJQUFJLEVBQUVDO0FBQVQsb0JBQ0UsZ0NBQUMsOEJBQUQ7QUFBa0IsTUFBQSxFQUFFLEVBQUU7QUFBdEIsTUFERixDQUZGLENBSkYsQ0FERixlQVlFO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixPQUNHQyx3Q0FBNkJDLEdBQTdCLENBQWlDLFVBQUFkLElBQUk7QUFBQSwwQkFDcEMsZ0NBQUMsYUFBRDtBQUNFLFFBQUEsR0FBRyxFQUFFQSxJQUFJLENBQUNTLEVBRFo7QUFFRSxRQUFBLFFBQVEsRUFBRU4sT0FBTyxDQUFDSCxJQUFSLEtBQWlCQSxJQUFJLENBQUNTLEVBRmxDO0FBR0UsUUFBQSxPQUFPLEVBQUU7QUFBQSxpQkFBTVQsSUFBSSxDQUFDZSxTQUFMLElBQWtCaEIseUJBQXlCLENBQUNDLElBQUksQ0FBQ1MsRUFBTixDQUFqRDtBQUFBO0FBSFgsc0JBS0U7QUFBSyxRQUFBLEdBQUcsRUFBRVQsSUFBSSxDQUFDZ0IsR0FBZjtBQUFvQixRQUFBLEdBQUcsRUFBQztBQUF4QixRQUxGLGVBTUUsd0RBQ0UsZ0NBQUMsOEJBQUQ7QUFDRSxRQUFBLEVBQUUsRUFBRSxzQ0FETjtBQUVFLFFBQUEsTUFBTSxFQUFFO0FBQUNoQixVQUFBQSxJQUFJLEVBQUVJLElBQUksQ0FBQ0ksYUFBTCxDQUFtQjtBQUFDQyxZQUFBQSxFQUFFLEVBQUVULElBQUksQ0FBQ2lCO0FBQVYsV0FBbkI7QUFBUDtBQUZWLFFBREYsQ0FORixFQVlHZCxPQUFPLENBQUNILElBQVIsS0FBaUJBLElBQUksQ0FBQ1MsRUFBdEIsaUJBQTRCLGdDQUFDLDJCQUFELE9BWi9CLENBRG9DO0FBQUEsS0FBckMsQ0FESCxDQVpGLENBbENGLENBTjhEO0FBQUEsR0FBaEU7O0FBMEVBWCxFQUFBQSxhQUFhLENBQUNvQixXQUFkLEdBQTRCLGVBQTVCO0FBRUEsU0FBTywyQkFBV3BCLGFBQVgsQ0FBUDtBQUNEOztlQUVjRCxvQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1N0eWxlZEV4cG9ydFNlY3Rpb24sIFN0eWxlZFR5cGUsIENoZWNrTWFya30gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7U3R5bGVkRXhwb3J0TWFwU2VjdGlvbiwgU3R5bGVkV2FybmluZywgRXhwb3J0TWFwTGlua30gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEVYUE9SVF9IVE1MX01BUF9NT0RFX09QVElPTlMsXG4gIEVYUE9SVF9IVE1MX01BUF9ET0MsXG4gIEVYUE9SVF9IVE1MX01BUF9NT0RFU19ET0Ncbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2luamVjdEludGx9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge0ludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5cbmltcG9ydCB7XG4gIHNldFVzZXJNYXBib3hBY2Nlc3NUb2tlbixcbiAgc2V0RXhwb3J0SFRNTE1hcE1vZGUsXG4gIEFjdGlvbkhhbmRsZXJcbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcblxuY29uc3QgRXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbiA9IHN0eWxlZChTdHlsZWRFeHBvcnRTZWN0aW9uKWBcbiAgLmRpc2NsYWltZXIge1xuICAgIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dEZvbnRTaXplfTtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dENvbG9yfTtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgU3R5bGVkSW5wdXRQcm9wcyB7XG4gIGVycm9yPzogYm9vbGVhbjtcbn1cblxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQuaW5wdXQ8U3R5bGVkSW5wdXRQcm9wcz5gXG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0UGFkZGluZ307XG4gIGNvbG9yOiAke3Byb3BzID0+IChwcm9wcy5lcnJvciA/ICdyZWQnIDogcHJvcHMudGhlbWUudGl0bGVDb2xvckxUKX07XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dEJveEhlaWdodH07XG4gIG91dGxpbmU6IDA7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dEZvbnRTaXplfTtcblxuICA6YWN0aXZlLFxuICA6Zm9jdXMsXG4gICYuZm9jdXMsXG4gICYuYWN0aXZlIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5gO1xuXG5jb25zdCBCaWdTdHlsZWRUaWxlID0gc3R5bGVkKFN0eWxlZFR5cGUpYFxuICBoZWlnaHQ6IHVuc2V0O1xuICB3aWR0aDogdW5zZXQ7XG4gIGltZyB7XG4gICAgd2lkdGg6IDE4MHB4O1xuICAgIGhlaWdodDogMTIwcHg7XG4gIH1cbmA7XG5cbnR5cGUgRXhwb3J0SHRtbE1hcFByb3BzID0ge1xuICBvbkNoYW5nZUV4cG9ydE1hcEhUTUxNb2RlOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBzZXRFeHBvcnRIVE1MTWFwTW9kZT47XG4gIG9uRWRpdFVzZXJNYXBib3hBY2Nlc3NUb2tlbjogQWN0aW9uSGFuZGxlcjx0eXBlb2Ygc2V0VXNlck1hcGJveEFjY2Vzc1Rva2VuPjtcbiAgb3B0aW9uczoge1xuICAgIHVzZXJNYXBib3hUb2tlbj86IHN0cmluZztcbiAgICBtb2RlPzogc3RyaW5nO1xuICB9O1xufTtcblxudHlwZSBJbnRsUHJvcHMgPSB7XG4gIGludGw6IEludGxTaGFwZTtcbn07XG5cbmZ1bmN0aW9uIEV4cG9ydEh0bWxNYXBGYWN0b3J5KCk6IFJlYWN0LkNvbXBvbmVudFR5cGU8RXhwb3J0SHRtbE1hcFByb3BzPiB7XG4gIC8qKiBAdHlwZSB7dHlwZW9mIGltcG9ydCgnLi9leHBvcnQtaHRtbC1tYXAnKS5FeHBvcnRIdG1sTWFwfSAqL1xuICBjb25zdCBFeHBvcnRIdG1sTWFwOiBSZWFjdC5GQzxFeHBvcnRIdG1sTWFwUHJvcHMgJiBJbnRsUHJvcHM+ID0gKHtcbiAgICBvbkNoYW5nZUV4cG9ydE1hcEhUTUxNb2RlID0gbW9kZSA9PiB7fSxcbiAgICBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4gPSB0b2tlbiA9PiB7fSxcbiAgICBvcHRpb25zID0ge30sXG4gICAgaW50bFxuICB9KSA9PiAoXG4gICAgPGRpdj5cbiAgICAgIDxTdHlsZWRFeHBvcnRNYXBTZWN0aW9uPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCIgLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWxlY3Rpb25cIj5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydE1hcC5odG1sLnNlbGVjdGlvbid9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9TdHlsZWRFeHBvcnRNYXBTZWN0aW9uPlxuICAgICAgPEV4cG9ydE1hcFN0eWxlZEV4cG9ydFNlY3Rpb24gY2xhc3NOYW1lPVwiZXhwb3J0LW1hcC1tb2RhbF9faHRtbC1vcHRpb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydE1hcC5odG1sLnRva2VuVGl0bGUnfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3VidGl0bGVcIj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5TdWJ0aXRsZSd9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvblwiPlxuICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gb25FZGl0VXNlck1hcGJveEFjY2Vzc1Rva2VuKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5QbGFjZWhvbGRlcid9KX1cbiAgICAgICAgICAgIHZhbHVlPXtvcHRpb25zID8gb3B0aW9ucy51c2VyTWFwYm94VG9rZW4gOiAnJ31cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGlzY2xhaW1lclwiPlxuICAgICAgICAgICAgPFN0eWxlZFdhcm5pbmc+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5NaXN1c2VXYXJuaW5nJ30gLz5cbiAgICAgICAgICAgIDwvU3R5bGVkV2FybmluZz5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5EaXNjbGFpbWVyJ30gLz5cbiAgICAgICAgICAgIDxFeHBvcnRNYXBMaW5rIGhyZWY9e0VYUE9SVF9IVE1MX01BUF9ET0N9PlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydE1hcC5odG1sLnRva2VuVXBkYXRlJ30gLz5cbiAgICAgICAgICAgIDwvRXhwb3J0TWFwTGluaz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0V4cG9ydE1hcFN0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgICA8RXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwubW9kZVRpdGxlJ30gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN1YnRpdGxlXCI+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydE1hcC5odG1sLm1vZGVTdWJ0aXRsZTEnfSAvPlxuICAgICAgICAgICAgPGEgaHJlZj17RVhQT1JUX0hUTUxfTUFQX01PREVTX0RPQ30+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwubW9kZVN1YnRpdGxlMid9IC8+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvblwiPlxuICAgICAgICAgIHtFWFBPUlRfSFRNTF9NQVBfTU9ERV9PUFRJT05TLm1hcChtb2RlID0+IChcbiAgICAgICAgICAgIDxCaWdTdHlsZWRUaWxlXG4gICAgICAgICAgICAgIGtleT17bW9kZS5pZH1cbiAgICAgICAgICAgICAgc2VsZWN0ZWQ9e29wdGlvbnMubW9kZSA9PT0gbW9kZS5pZH1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gbW9kZS5hdmFpbGFibGUgJiYgb25DaGFuZ2VFeHBvcnRNYXBIVE1MTW9kZShtb2RlLmlkKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGltZyBzcmM9e21vZGUudXJsfSBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC5tb2RlRGVzY3JpcHRpb24nfVxuICAgICAgICAgICAgICAgICAgdmFsdWVzPXt7bW9kZTogaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogbW9kZS5sYWJlbH0pfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIHtvcHRpb25zLm1vZGUgPT09IG1vZGUuaWQgJiYgPENoZWNrTWFyayAvPn1cbiAgICAgICAgICAgIDwvQmlnU3R5bGVkVGlsZT5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0V4cG9ydE1hcFN0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgPC9kaXY+XG4gICk7XG5cbiAgRXhwb3J0SHRtbE1hcC5kaXNwbGF5TmFtZSA9ICdFeHBvcnRIdG1sTWFwJztcblxuICByZXR1cm4gaW5qZWN0SW50bChFeHBvcnRIdG1sTWFwKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRXhwb3J0SHRtbE1hcEZhY3Rvcnk7XG4iXX0=
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ declare type ExportJsonPropTypes = {
3
+ config: any;
4
+ };
5
+ declare const ExportJsonMapFactory: () => React.MemoExoticComponent<{
6
+ ({ config }: ExportJsonPropTypes): JSX.Element;
7
+ displayName: string;
8
+ }>;
9
+ export default ExportJsonMapFactory;
@@ -0,0 +1,120 @@
1
+ // Copyright (c) 2022 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
+ "use strict";
22
+
23
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
24
+
25
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
26
+
27
+ Object.defineProperty(exports, "__esModule", {
28
+ value: true
29
+ });
30
+ exports["default"] = void 0;
31
+
32
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
33
+
34
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
35
+
36
+ var _react = _interopRequireWildcard(require("react"));
37
+
38
+ var _reactJsonPretty = _interopRequireDefault(require("react-json-pretty"));
39
+
40
+ var _constants = require("@kepler.gl/constants");
41
+
42
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
43
+
44
+ var _styledComponents2 = require("../../common/styled-components");
45
+
46
+ var _components = require("./components");
47
+
48
+ var _localization = require("@kepler.gl/localization");
49
+
50
+ var _reactCopyToClipboard = require("react-copy-to-clipboard");
51
+
52
+ var _templateObject;
53
+
54
+ var StyledJsonExportSection = (0, _styledComponents["default"])(_styledComponents2.StyledExportSection)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n .note {\n color: ", ";\n font-size: 11px;\n }\n\n .viewer {\n position: relative;\n border: 1px solid ", ";\n background-color: white;\n border-radius: 2px;\n display: inline-block;\n font: inherit;\n line-height: 1.5em;\n padding: 0.5em 3.5em 0.5em 1em;\n margin: 0;\n box-sizing: border-box;\n height: 180px;\n width: 100%;\n overflow-y: scroll;\n overflow-x: auto;\n white-space: pre-wrap;\n word-wrap: break-word;\n max-width: 600px;\n }\n\n .copy-button {\n margin: 1em 1em 0 0;\n position: absolute;\n top: 0;\n right: 0;\n }\n"])), function (props) {
55
+ return props.theme.errorColor;
56
+ }, function (props) {
57
+ return props.theme.selectBorderColorLT;
58
+ });
59
+
60
+ var ExportJsonMapUnmemoized = function ExportJsonMapUnmemoized(_ref) {
61
+ var _ref$config = _ref.config,
62
+ config = _ref$config === void 0 ? {} : _ref$config;
63
+
64
+ var _useState = (0, _react.useState)(false),
65
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
66
+ copied = _useState2[0],
67
+ setCopy = _useState2[1];
68
+
69
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_components.StyledExportMapSection, null, /*#__PURE__*/_react["default"].createElement("div", {
70
+ className: "description"
71
+ }), /*#__PURE__*/_react["default"].createElement("div", {
72
+ className: "selection"
73
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
74
+ id: 'modal.exportMap.json.selection'
75
+ }))), /*#__PURE__*/_react["default"].createElement(StyledJsonExportSection, {
76
+ className: "export-map-modal__json-options"
77
+ }, /*#__PURE__*/_react["default"].createElement("div", {
78
+ className: "description"
79
+ }, /*#__PURE__*/_react["default"].createElement("div", {
80
+ className: "title"
81
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
82
+ id: 'modal.exportMap.json.configTitle'
83
+ })), /*#__PURE__*/_react["default"].createElement("div", {
84
+ className: "subtitle"
85
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
86
+ id: 'modal.exportMap.json.configDisclaimer'
87
+ }), /*#__PURE__*/_react["default"].createElement(_components.ExportMapLink, {
88
+ href: _constants.ADD_DATA_TO_MAP_DOC
89
+ }, "addDataToMap"), ".")), /*#__PURE__*/_react["default"].createElement("div", {
90
+ className: "selection"
91
+ }, /*#__PURE__*/_react["default"].createElement("div", {
92
+ className: "viewer"
93
+ }, /*#__PURE__*/_react["default"].createElement(_reactJsonPretty["default"], {
94
+ id: "json-pretty",
95
+ json: config
96
+ }), /*#__PURE__*/_react["default"].createElement(_reactCopyToClipboard.CopyToClipboard, {
97
+ text: JSON.stringify(config),
98
+ onCopy: function onCopy() {
99
+ return setCopy(true);
100
+ }
101
+ }, /*#__PURE__*/_react["default"].createElement(_styledComponents2.Button, {
102
+ width: "80px"
103
+ }, copied ? 'Copied!' : 'Copy'))), /*#__PURE__*/_react["default"].createElement("div", {
104
+ className: "disclaimer"
105
+ }, /*#__PURE__*/_react["default"].createElement(_components.StyledWarning, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
106
+ id: 'modal.exportMap.json.disclaimer'
107
+ }))))));
108
+ };
109
+
110
+ ExportJsonMapUnmemoized.displayName = 'ExportJsonMap';
111
+
112
+ var ExportJsonMap = /*#__PURE__*/_react["default"].memo(ExportJsonMapUnmemoized);
113
+
114
+ var ExportJsonMapFactory = function ExportJsonMapFactory() {
115
+ return ExportJsonMap;
116
+ };
117
+
118
+ var _default = ExportJsonMapFactory;
119
+ exports["default"] = _default;
120
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RhbHMvZXhwb3J0LW1hcC1tb2RhbC9leHBvcnQtanNvbi1tYXAudHN4Il0sIm5hbWVzIjpbIlN0eWxlZEpzb25FeHBvcnRTZWN0aW9uIiwiU3R5bGVkRXhwb3J0U2VjdGlvbiIsInByb3BzIiwidGhlbWUiLCJlcnJvckNvbG9yIiwic2VsZWN0Qm9yZGVyQ29sb3JMVCIsIkV4cG9ydEpzb25NYXBVbm1lbW9pemVkIiwiY29uZmlnIiwiY29waWVkIiwic2V0Q29weSIsIkFERF9EQVRBX1RPX01BUF9ET0MiLCJKU09OIiwic3RyaW5naWZ5IiwiZGlzcGxheU5hbWUiLCJFeHBvcnRKc29uTWFwIiwiUmVhY3QiLCJtZW1vIiwiRXhwb3J0SnNvbk1hcEZhY3RvcnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBLElBQU1BLHVCQUF1QixHQUFHLGtDQUFPQyxzQ0FBUCxDQUFILDByQkFFaEIsVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsS0FBTixDQUFZQyxVQUFoQjtBQUFBLENBRlcsRUFRTCxVQUFBRixLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxLQUFOLENBQVlFLG1CQUFoQjtBQUFBLENBUkEsQ0FBN0I7O0FBc0NBLElBQU1DLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBMEIsT0FBd0M7QUFBQSx5QkFBdENDLE1BQXNDO0FBQUEsTUFBdENBLE1BQXNDLDRCQUE3QixFQUE2Qjs7QUFBQSxrQkFDNUMscUJBQVMsS0FBVCxDQUQ0QztBQUFBO0FBQUEsTUFDL0RDLE1BRCtEO0FBQUEsTUFDdkRDLE9BRHVEOztBQUV0RSxzQkFDRSwwREFDRSxnQ0FBQyxrQ0FBRCxxQkFDRTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsSUFERixlQUVFO0FBQUssSUFBQSxTQUFTLEVBQUM7QUFBZixrQkFDRSxnQ0FBQyw4QkFBRDtBQUFrQixJQUFBLEVBQUUsRUFBRTtBQUF0QixJQURGLENBRkYsQ0FERixlQU9FLGdDQUFDLHVCQUFEO0FBQXlCLElBQUEsU0FBUyxFQUFDO0FBQW5DLGtCQUNFO0FBQUssSUFBQSxTQUFTLEVBQUM7QUFBZixrQkFDRTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsa0JBQ0UsZ0NBQUMsOEJBQUQ7QUFBa0IsSUFBQSxFQUFFLEVBQUU7QUFBdEIsSUFERixDQURGLGVBSUU7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLGtCQUNFLGdDQUFDLDhCQUFEO0FBQWtCLElBQUEsRUFBRSxFQUFFO0FBQXRCLElBREYsZUFFRSxnQ0FBQyx5QkFBRDtBQUFlLElBQUEsSUFBSSxFQUFFQztBQUFyQixvQkFGRixNQUpGLENBREYsZUFVRTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsa0JBQ0U7QUFBSyxJQUFBLFNBQVMsRUFBQztBQUFmLGtCQUNFLGdDQUFDLDJCQUFEO0FBQVksSUFBQSxFQUFFLEVBQUMsYUFBZjtBQUE2QixJQUFBLElBQUksRUFBRUg7QUFBbkMsSUFERixlQUVFLGdDQUFDLHFDQUFEO0FBQWlCLElBQUEsSUFBSSxFQUFFSSxJQUFJLENBQUNDLFNBQUwsQ0FBZUwsTUFBZixDQUF2QjtBQUErQyxJQUFBLE1BQU0sRUFBRTtBQUFBLGFBQU1FLE9BQU8sQ0FBQyxJQUFELENBQWI7QUFBQTtBQUF2RCxrQkFDRSxnQ0FBQyx5QkFBRDtBQUFRLElBQUEsS0FBSyxFQUFDO0FBQWQsS0FBc0JELE1BQU0sR0FBRyxTQUFILEdBQWUsTUFBM0MsQ0FERixDQUZGLENBREYsZUFPRTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsa0JBQ0UsZ0NBQUMseUJBQUQscUJBQ0UsZ0NBQUMsOEJBQUQ7QUFBa0IsSUFBQSxFQUFFLEVBQUU7QUFBdEIsSUFERixDQURGLENBUEYsQ0FWRixDQVBGLENBREY7QUFrQ0QsQ0FwQ0Q7O0FBc0NBRix1QkFBdUIsQ0FBQ08sV0FBeEIsR0FBc0MsZUFBdEM7O0FBRUEsSUFBTUMsYUFBYSxnQkFBR0Msa0JBQU1DLElBQU4sQ0FBV1YsdUJBQVgsQ0FBdEI7O0FBRUEsSUFBTVcsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUF1QjtBQUFBLFNBQU1ILGFBQU47QUFBQSxDQUE3Qjs7ZUFFZUcsb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEpTT05QcmV0dHkgZnJvbSAncmVhY3QtanNvbi1wcmV0dHknO1xuaW1wb3J0IHtBRERfREFUQV9UT19NQVBfRE9DfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7U3R5bGVkRXhwb3J0U2VjdGlvbiwgQnV0dG9ufSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtTdHlsZWRFeHBvcnRNYXBTZWN0aW9uLCBTdHlsZWRXYXJuaW5nLCBFeHBvcnRNYXBMaW5rfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge0NvcHlUb0NsaXBib2FyZH0gZnJvbSAncmVhY3QtY29weS10by1jbGlwYm9hcmQnO1xuXG5jb25zdCBTdHlsZWRKc29uRXhwb3J0U2VjdGlvbiA9IHN0eWxlZChTdHlsZWRFeHBvcnRTZWN0aW9uKWBcbiAgLm5vdGUge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVycm9yQ29sb3J9O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgfVxuXG4gIC52aWV3ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNlbGVjdEJvcmRlckNvbG9yTFR9O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgcGFkZGluZzogMC41ZW0gMy41ZW0gMC41ZW0gMWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogMTgwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICB9XG5cbiAgLmNvcHktYnV0dG9uIHtcbiAgICBtYXJnaW46IDFlbSAxZW0gMCAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbmA7XG5cbnR5cGUgRXhwb3J0SnNvblByb3BUeXBlcyA9IHtcbiAgY29uZmlnOiBhbnk7XG59O1xuXG5jb25zdCBFeHBvcnRKc29uTWFwVW5tZW1vaXplZCA9ICh7Y29uZmlnID0ge319OiBFeHBvcnRKc29uUHJvcFR5cGVzKSA9PiB7XG4gIGNvbnN0IFtjb3BpZWQsIHNldENvcHldID0gdXNlU3RhdGUoZmFsc2UpO1xuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8U3R5bGVkRXhwb3J0TWFwU2VjdGlvbj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiIC8+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuanNvbi5zZWxlY3Rpb24nfSAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvU3R5bGVkRXhwb3J0TWFwU2VjdGlvbj5cbiAgICAgIDxTdHlsZWRKc29uRXhwb3J0U2VjdGlvbiBjbGFzc05hbWU9XCJleHBvcnQtbWFwLW1vZGFsX19qc29uLW9wdGlvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmpzb24uY29uZmlnVGl0bGUnfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3VidGl0bGVcIj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmpzb24uY29uZmlnRGlzY2xhaW1lcid9IC8+XG4gICAgICAgICAgICA8RXhwb3J0TWFwTGluayBocmVmPXtBRERfREFUQV9UT19NQVBfRE9DfT5hZGREYXRhVG9NYXA8L0V4cG9ydE1hcExpbms+LlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWxlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInZpZXdlclwiPlxuICAgICAgICAgICAgPEpTT05QcmV0dHkgaWQ9XCJqc29uLXByZXR0eVwiIGpzb249e2NvbmZpZ30gLz5cbiAgICAgICAgICAgIDxDb3B5VG9DbGlwYm9hcmQgdGV4dD17SlNPTi5zdHJpbmdpZnkoY29uZmlnKX0gb25Db3B5PXsoKSA9PiBzZXRDb3B5KHRydWUpfT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB3aWR0aD1cIjgwcHhcIj57Y29waWVkID8gJ0NvcGllZCEnIDogJ0NvcHknfTwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Db3B5VG9DbGlwYm9hcmQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaXNjbGFpbWVyXCI+XG4gICAgICAgICAgICA8U3R5bGVkV2FybmluZz5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuanNvbi5kaXNjbGFpbWVyJ30gLz5cbiAgICAgICAgICAgIDwvU3R5bGVkV2FybmluZz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1N0eWxlZEpzb25FeHBvcnRTZWN0aW9uPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuRXhwb3J0SnNvbk1hcFVubWVtb2l6ZWQuZGlzcGxheU5hbWUgPSAnRXhwb3J0SnNvbk1hcCc7XG5cbmNvbnN0IEV4cG9ydEpzb25NYXAgPSBSZWFjdC5tZW1vKEV4cG9ydEpzb25NYXBVbm1lbW9pemVkKTtcblxuY29uc3QgRXhwb3J0SnNvbk1hcEZhY3RvcnkgPSAoKSA9PiBFeHBvcnRKc29uTWFwO1xuXG5leHBvcnQgZGVmYXVsdCBFeHBvcnRKc29uTWFwRmFjdG9yeTtcbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import ExportHtmlMapFactory from './export-html-map';
3
+ import ExportJsonMapFactory from './export-json-map';
4
+ import { ActionHandler, setExportHTMLMapMode, setUserMapboxAccessToken } from '@kepler.gl/actions';
5
+ interface ExportMapModalFactoryProps {
6
+ options?: {
7
+ format: string;
8
+ };
9
+ config: any;
10
+ onEditUserMapboxAccessToken: ActionHandler<typeof setUserMapboxAccessToken>;
11
+ onChangeExportMapHTMLMode?: ActionHandler<typeof setExportHTMLMapMode>;
12
+ onChangeExportMapFormat?: (format: string) => any;
13
+ mapFormat?: string;
14
+ }
15
+ declare function ExportMapModalFactory(ExportHtmlMap: ReturnType<typeof ExportHtmlMapFactory>, ExportJsonMap: ReturnType<typeof ExportJsonMapFactory>): React.MemoExoticComponent<{
16
+ ({ config, onChangeExportMapFormat, onChangeExportMapHTMLMode, onEditUserMapboxAccessToken, options }: ExportMapModalFactoryProps): JSX.Element;
17
+ displayName: string;
18
+ }>;
19
+ declare namespace ExportMapModalFactory {
20
+ var deps: ((() => React.MemoExoticComponent<{
21
+ ({ config }: {
22
+ config: any;
23
+ }): JSX.Element;
24
+ displayName: string;
25
+ }>) | typeof ExportHtmlMapFactory)[];
26
+ }
27
+ export default ExportMapModalFactory;
@@ -0,0 +1,119 @@
1
+ // Copyright (c) 2022 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
+ "use strict";
22
+
23
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
24
+
25
+ Object.defineProperty(exports, "__esModule", {
26
+ value: true
27
+ });
28
+ exports["default"] = void 0;
29
+
30
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
31
+
32
+ var _react = _interopRequireDefault(require("react"));
33
+
34
+ var _icons = require("../../common/icons");
35
+
36
+ var _styledComponents = require("../../common/styled-components");
37
+
38
+ var _constants = require("@kepler.gl/constants");
39
+
40
+ var _components = require("./components");
41
+
42
+ var _exportHtmlMap = _interopRequireDefault(require("./export-html-map"));
43
+
44
+ var _exportJsonMap = _interopRequireDefault(require("./export-json-map"));
45
+
46
+ var _localization = require("@kepler.gl/localization");var style = {
47
+ width: '100%'
48
+ };
49
+
50
+ var NO_OP = function NO_OP() {
51
+ return {};
52
+ };
53
+
54
+ ExportMapModalFactory.deps = [_exportHtmlMap["default"], _exportJsonMap["default"]];
55
+
56
+ function ExportMapModalFactory(ExportHtmlMap, ExportJsonMap) {
57
+ var ExportMapModalUnmemoized = function ExportMapModalUnmemoized(_ref) {
58
+ var _EXPORT_MAP_FORMATS$H;
59
+
60
+ var _ref$config = _ref.config,
61
+ config = _ref$config === void 0 ? {} : _ref$config,
62
+ _ref$onChangeExportMa = _ref.onChangeExportMapFormat,
63
+ onChangeExportMapFormat = _ref$onChangeExportMa === void 0 ? NO_OP : _ref$onChangeExportMa,
64
+ _ref$onChangeExportMa2 = _ref.onChangeExportMapHTMLMode,
65
+ onChangeExportMapHTMLMode = _ref$onChangeExportMa2 === void 0 ? NO_OP : _ref$onChangeExportMa2,
66
+ _ref$onEditUserMapbox = _ref.onEditUserMapboxAccessToken,
67
+ onEditUserMapboxAccessToken = _ref$onEditUserMapbox === void 0 ? NO_OP : _ref$onEditUserMapbox,
68
+ _ref$options = _ref.options,
69
+ options = _ref$options === void 0 ? {
70
+ format: ''
71
+ } : _ref$options;
72
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledModalContent, {
73
+ className: "export-map-modal"
74
+ }, /*#__PURE__*/_react["default"].createElement("div", {
75
+ style: style
76
+ }, /*#__PURE__*/_react["default"].createElement(_components.StyledExportMapSection, null, /*#__PURE__*/_react["default"].createElement("div", {
77
+ className: "description"
78
+ }, /*#__PURE__*/_react["default"].createElement("div", {
79
+ className: "title"
80
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
81
+ id: 'modal.exportMap.formatTitle'
82
+ })), /*#__PURE__*/_react["default"].createElement("div", {
83
+ className: "subtitle"
84
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
85
+ id: 'modal.exportMap.formatSubtitle'
86
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
87
+ className: "selection"
88
+ }, _constants.EXPORT_MAP_FORMAT_OPTIONS.map(function (op) {
89
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledType, {
90
+ key: op.id,
91
+ selected: options.format === op.id,
92
+ onClick: function onClick() {
93
+ return op.available && onChangeExportMapFormat(op.id);
94
+ }
95
+ }, /*#__PURE__*/_react["default"].createElement(_icons.FileType, {
96
+ ext: op.label,
97
+ height: "80px",
98
+ fontSize: "11px"
99
+ }), options.format === op.id && /*#__PURE__*/_react["default"].createElement(_styledComponents.CheckMark, null));
100
+ }))), (_EXPORT_MAP_FORMATS$H = {}, (0, _defineProperty2["default"])(_EXPORT_MAP_FORMATS$H, _constants.EXPORT_MAP_FORMATS.HTML, /*#__PURE__*/_react["default"].createElement(ExportHtmlMap, {
101
+ onChangeExportMapHTMLMode: onChangeExportMapHTMLMode,
102
+ onEditUserMapboxAccessToken: onEditUserMapboxAccessToken,
103
+ options: options[options.format]
104
+ })), (0, _defineProperty2["default"])(_EXPORT_MAP_FORMATS$H, _constants.EXPORT_MAP_FORMATS.JSON, /*#__PURE__*/_react["default"].createElement(ExportJsonMap, {
105
+ config: config
106
+ })), _EXPORT_MAP_FORMATS$H)[// @ts-ignore
107
+ options.format]));
108
+ };
109
+
110
+ ExportMapModalUnmemoized.displayName = 'ExportMapModal';
111
+
112
+ var ExportMapModal = /*#__PURE__*/_react["default"].memo(ExportMapModalUnmemoized);
113
+
114
+ return ExportMapModal;
115
+ }
116
+
117
+ var _default = ExportMapModalFactory;
118
+ exports["default"] = _default;
119
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RhbHMvZXhwb3J0LW1hcC1tb2RhbC9leHBvcnQtbWFwLW1vZGFsLnRzeCJdLCJuYW1lcyI6WyJzdHlsZSIsIndpZHRoIiwiTk9fT1AiLCJFeHBvcnRNYXBNb2RhbEZhY3RvcnkiLCJkZXBzIiwiRXhwb3J0SHRtbE1hcEZhY3RvcnkiLCJFeHBvcnRKc29uTWFwRmFjdG9yeSIsIkV4cG9ydEh0bWxNYXAiLCJFeHBvcnRKc29uTWFwIiwiRXhwb3J0TWFwTW9kYWxVbm1lbW9pemVkIiwiY29uZmlnIiwib25DaGFuZ2VFeHBvcnRNYXBGb3JtYXQiLCJvbkNoYW5nZUV4cG9ydE1hcEhUTUxNb2RlIiwib25FZGl0VXNlck1hcGJveEFjY2Vzc1Rva2VuIiwib3B0aW9ucyIsImZvcm1hdCIsIkVYUE9SVF9NQVBfRk9STUFUX09QVElPTlMiLCJtYXAiLCJvcCIsImlkIiwiYXZhaWxhYmxlIiwibGFiZWwiLCJFWFBPUlRfTUFQX0ZPUk1BVFMiLCJIVE1MIiwiSlNPTiIsImRpc3BsYXlOYW1lIiwiRXhwb3J0TWFwTW9kYWwiLCJSZWFjdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQTVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTBCQSxJQUFNQSxLQUFLLEdBQUc7QUFBQ0MsRUFBQUEsS0FBSyxFQUFFO0FBQVIsQ0FBZDs7QUFFQSxJQUFNQyxLQUFLLEdBQUcsU0FBUkEsS0FBUTtBQUFBLFNBQXFCLEVBQXJCO0FBQUEsQ0FBZDs7QUFFQUMscUJBQXFCLENBQUNDLElBQXRCLEdBQTZCLENBQUNDLHlCQUFELEVBQXVCQyx5QkFBdkIsQ0FBN0I7O0FBRUEsU0FBU0gscUJBQVQsQ0FDRUksYUFERixFQUVFQyxhQUZGLEVBR0U7QUFDQSxNQUFNQyx3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQTJCO0FBQUE7O0FBQUEsMkJBQy9CQyxNQUQrQjtBQUFBLFFBQy9CQSxNQUQrQiw0QkFDdEIsRUFEc0I7QUFBQSxxQ0FFL0JDLHVCQUYrQjtBQUFBLFFBRS9CQSx1QkFGK0Isc0NBRUxULEtBRks7QUFBQSxzQ0FHL0JVLHlCQUgrQjtBQUFBLFFBRy9CQSx5QkFIK0IsdUNBR0hWLEtBSEc7QUFBQSxxQ0FJL0JXLDJCQUorQjtBQUFBLFFBSS9CQSwyQkFKK0Isc0NBSURYLEtBSkM7QUFBQSw0QkFLL0JZLE9BTCtCO0FBQUEsUUFLL0JBLE9BTCtCLDZCQUtyQjtBQUFDQyxNQUFBQSxNQUFNLEVBQUU7QUFBVCxLQUxxQjtBQUFBLHdCQU8vQixnQ0FBQyxvQ0FBRDtBQUFvQixNQUFBLFNBQVMsRUFBQztBQUE5QixvQkFDRTtBQUFLLE1BQUEsS0FBSyxFQUFFZjtBQUFaLG9CQUNFLGdDQUFDLGtDQUFELHFCQUNFO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixvQkFDRTtBQUFLLE1BQUEsU0FBUyxFQUFDO0FBQWYsb0JBQ0UsZ0NBQUMsOEJBQUQ7QUFBa0IsTUFBQSxFQUFFLEVBQUU7QUFBdEIsTUFERixDQURGLGVBSUU7QUFBSyxNQUFBLFNBQVMsRUFBQztBQUFmLG9CQUNFLGdDQUFDLDhCQUFEO0FBQWtCLE1BQUEsRUFBRSxFQUFFO0FBQXRCLE1BREYsQ0FKRixDQURGLGVBU0U7QUFBSyxNQUFBLFNBQVMsRUFBQztBQUFmLE9BQ0dnQixxQ0FBMEJDLEdBQTFCLENBQThCLFVBQUFDLEVBQUU7QUFBQSwwQkFDL0IsZ0NBQUMsNEJBQUQ7QUFDRSxRQUFBLEdBQUcsRUFBRUEsRUFBRSxDQUFDQyxFQURWO0FBRUUsUUFBQSxRQUFRLEVBQUVMLE9BQU8sQ0FBQ0MsTUFBUixLQUFtQkcsRUFBRSxDQUFDQyxFQUZsQztBQUdFLFFBQUEsT0FBTyxFQUFFO0FBQUEsaUJBQU1ELEVBQUUsQ0FBQ0UsU0FBSCxJQUFnQlQsdUJBQXVCLENBQUNPLEVBQUUsQ0FBQ0MsRUFBSixDQUE3QztBQUFBO0FBSFgsc0JBS0UsZ0NBQUMsZUFBRDtBQUFVLFFBQUEsR0FBRyxFQUFFRCxFQUFFLENBQUNHLEtBQWxCO0FBQXlCLFFBQUEsTUFBTSxFQUFDLE1BQWhDO0FBQXVDLFFBQUEsUUFBUSxFQUFDO0FBQWhELFFBTEYsRUFPR1AsT0FBTyxDQUFDQyxNQUFSLEtBQW1CRyxFQUFFLENBQUNDLEVBQXRCLGlCQUE0QixnQ0FBQywyQkFBRCxPQVAvQixDQUQrQjtBQUFBLEtBQWhDLENBREgsQ0FURixDQURGLEVBeUJJLHFGQUNHRyw4QkFBbUJDLElBRHRCLGVBRUksZ0NBQUMsYUFBRDtBQUNFLE1BQUEseUJBQXlCLEVBQUVYLHlCQUQ3QjtBQUVFLE1BQUEsMkJBQTJCLEVBQUVDLDJCQUYvQjtBQUdFLE1BQUEsT0FBTyxFQUFFQyxPQUFPLENBQUNBLE9BQU8sQ0FBQ0MsTUFBVDtBQUhsQixNQUZKLDJEQVFHTyw4QkFBbUJFLElBUnRCLGVBUTZCLGdDQUFDLGFBQUQ7QUFBZSxNQUFBLE1BQU0sRUFBRWQ7QUFBdkIsTUFSN0IsMEJBVUU7QUFDQUksSUFBQUEsT0FBTyxDQUFDQyxNQVhWLENBekJKLENBREYsQ0FQK0I7QUFBQSxHQUFqQzs7QUFtREFOLEVBQUFBLHdCQUF3QixDQUFDZ0IsV0FBekIsR0FBdUMsZ0JBQXZDOztBQUVBLE1BQU1DLGNBQWMsZ0JBQUdDLGtCQUFNQyxJQUFOLENBQVduQix3QkFBWCxDQUF2Qjs7QUFFQSxTQUFPaUIsY0FBUDtBQUNEOztlQUVjdkIscUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge0ZpbGVUeXBlfSBmcm9tICcuLi8uLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtTdHlsZWRNb2RhbENvbnRlbnQsIFN0eWxlZFR5cGUsIENoZWNrTWFya30gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7RVhQT1JUX01BUF9GT1JNQVRTLCBFWFBPUlRfTUFQX0ZPUk1BVF9PUFRJT05TfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge1N0eWxlZEV4cG9ydE1hcFNlY3Rpb259IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgRXhwb3J0SHRtbE1hcEZhY3RvcnkgZnJvbSAnLi9leHBvcnQtaHRtbC1tYXAnO1xuaW1wb3J0IEV4cG9ydEpzb25NYXBGYWN0b3J5IGZyb20gJy4vZXhwb3J0LWpzb24tbWFwJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtcbiAgQWN0aW9uSGFuZGxlcixcbiAgc2V0RXhwb3J0SFRNTE1hcE1vZGUsXG4gIHNldFVzZXJNYXBib3hBY2Nlc3NUb2tlblxufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuXG5pbnRlcmZhY2UgRXhwb3J0TWFwTW9kYWxGYWN0b3J5UHJvcHMge1xuICBvcHRpb25zPzoge2Zvcm1hdDogc3RyaW5nfTtcbiAgY29uZmlnOiBhbnk7XG4gIG9uRWRpdFVzZXJNYXBib3hBY2Nlc3NUb2tlbjogQWN0aW9uSGFuZGxlcjx0eXBlb2Ygc2V0VXNlck1hcGJveEFjY2Vzc1Rva2VuPjtcbiAgb25DaGFuZ2VFeHBvcnRNYXBIVE1MTW9kZT86IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHNldEV4cG9ydEhUTUxNYXBNb2RlPjtcbiAgb25DaGFuZ2VFeHBvcnRNYXBGb3JtYXQ/OiAoZm9ybWF0OiBzdHJpbmcpID0+IGFueTtcbiAgbWFwRm9ybWF0Pzogc3RyaW5nO1xufVxuXG5jb25zdCBzdHlsZSA9IHt3aWR0aDogJzEwMCUnfTtcblxuY29uc3QgTk9fT1AgPSAoLi4uYXJnczogYW55W10pID0+ICh7fSBhcyBhbnkpO1xuXG5FeHBvcnRNYXBNb2RhbEZhY3RvcnkuZGVwcyA9IFtFeHBvcnRIdG1sTWFwRmFjdG9yeSwgRXhwb3J0SnNvbk1hcEZhY3RvcnldO1xuXG5mdW5jdGlvbiBFeHBvcnRNYXBNb2RhbEZhY3RvcnkoXG4gIEV4cG9ydEh0bWxNYXA6IFJldHVyblR5cGU8dHlwZW9mIEV4cG9ydEh0bWxNYXBGYWN0b3J5PixcbiAgRXhwb3J0SnNvbk1hcDogUmV0dXJuVHlwZTx0eXBlb2YgRXhwb3J0SnNvbk1hcEZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgRXhwb3J0TWFwTW9kYWxVbm1lbW9pemVkID0gKHtcbiAgICBjb25maWcgPSB7fSxcbiAgICBvbkNoYW5nZUV4cG9ydE1hcEZvcm1hdCA9IE5PX09QLFxuICAgIG9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGUgPSBOT19PUCxcbiAgICBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4gPSBOT19PUCxcbiAgICBvcHRpb25zID0ge2Zvcm1hdDogJyd9XG4gIH06IEV4cG9ydE1hcE1vZGFsRmFjdG9yeVByb3BzKSA9PiAoXG4gICAgPFN0eWxlZE1vZGFsQ29udGVudCBjbGFzc05hbWU9XCJleHBvcnQtbWFwLW1vZGFsXCI+XG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZX0+XG4gICAgICAgIDxTdHlsZWRFeHBvcnRNYXBTZWN0aW9uPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuZm9ybWF0VGl0bGUnfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmZvcm1hdFN1YnRpdGxlJ30gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAgICB7RVhQT1JUX01BUF9GT1JNQVRfT1BUSU9OUy5tYXAob3AgPT4gKFxuICAgICAgICAgICAgICA8U3R5bGVkVHlwZVxuICAgICAgICAgICAgICAgIGtleT17b3AuaWR9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e29wdGlvbnMuZm9ybWF0ID09PSBvcC5pZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvcC5hdmFpbGFibGUgJiYgb25DaGFuZ2VFeHBvcnRNYXBGb3JtYXQob3AuaWQpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEZpbGVUeXBlIGV4dD17b3AubGFiZWx9IGhlaWdodD1cIjgwcHhcIiBmb250U2l6ZT1cIjExcHhcIiAvPlxuXG4gICAgICAgICAgICAgICAge29wdGlvbnMuZm9ybWF0ID09PSBvcC5pZCAmJiA8Q2hlY2tNYXJrIC8+fVxuICAgICAgICAgICAgICA8L1N0eWxlZFR5cGU+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9TdHlsZWRFeHBvcnRNYXBTZWN0aW9uPlxuICAgICAgICB7XG4gICAgICAgICAge1xuICAgICAgICAgICAgW0VYUE9SVF9NQVBfRk9STUFUUy5IVE1MXTogKFxuICAgICAgICAgICAgICA8RXhwb3J0SHRtbE1hcFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGU9e29uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGV9XG4gICAgICAgICAgICAgICAgb25FZGl0VXNlck1hcGJveEFjY2Vzc1Rva2VuPXtvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW59XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc1tvcHRpb25zLmZvcm1hdF19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgW0VYUE9SVF9NQVBfRk9STUFUUy5KU09OXTogPEV4cG9ydEpzb25NYXAgY29uZmlnPXtjb25maWd9IC8+XG4gICAgICAgICAgfVtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIG9wdGlvbnMuZm9ybWF0XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L1N0eWxlZE1vZGFsQ29udGVudD5cbiAgKTtcblxuICBFeHBvcnRNYXBNb2RhbFVubWVtb2l6ZWQuZGlzcGxheU5hbWUgPSAnRXhwb3J0TWFwTW9kYWwnO1xuXG4gIGNvbnN0IEV4cG9ydE1hcE1vZGFsID0gUmVhY3QubWVtbyhFeHBvcnRNYXBNb2RhbFVubWVtb2l6ZWQpO1xuXG4gIHJldHVybiBFeHBvcnRNYXBNb2RhbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRXhwb3J0TWFwTW9kYWxGYWN0b3J5O1xuIl19
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { SetExportImageSettingUpdaterAction } from '@kepler.gl/actions';
3
+ import { Provider } from '@kepler.gl/cloud-providers';
4
+ /** @typedef {import('./image-modal-container').ImageModalContainerProps} ImageModalContainerProps */
5
+ export declare type ImageModalContainerProps = {
6
+ cloudProviders?: Provider[];
7
+ currentProvider?: string | null;
8
+ onUpdateImageSetting: (newSetting: SetExportImageSettingUpdaterAction['payload']) => void;
9
+ cleanupExportImage: () => void;
10
+ };
11
+ /**
12
+ * A wrapper component in modals contain a image preview of the map with cloud providers
13
+ * It sets export image size based on provider thumbnail size
14
+ * @type {React.FunctionComponent<ImageModalContainerProps>}
15
+ */
16
+ declare const ImageModalContainer: React.FC<ImageModalContainerProps>;
17
+ export default ImageModalContainer;
@@ -0,0 +1,86 @@
1
+ // Copyright (c) 2022 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
+ "use strict";
22
+
23
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
24
+
25
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
26
+
27
+ Object.defineProperty(exports, "__esModule", {
28
+ value: true
29
+ });
30
+ exports["default"] = void 0;
31
+
32
+ var _react = _interopRequireWildcard(require("react"));
33
+
34
+ var _lodash = _interopRequireDefault(require("lodash.get"));
35
+
36
+ var _constants = require("@kepler.gl/constants");/**
37
+ * A wrapper component in modals contain a image preview of the map with cloud providers
38
+ * It sets export image size based on provider thumbnail size
39
+ * @type {React.FunctionComponent<ImageModalContainerProps>}
40
+ */
41
+ var ImageModalContainer = function ImageModalContainer(_ref) {
42
+ var onUpdateImageSetting = _ref.onUpdateImageSetting,
43
+ cleanupExportImage = _ref.cleanupExportImage,
44
+ cloudProviders = _ref.cloudProviders,
45
+ currentProvider = _ref.currentProvider,
46
+ children = _ref.children;
47
+ (0, _react.useEffect)(function () {
48
+ onUpdateImageSetting({
49
+ exporting: true
50
+ });
51
+ return function () {
52
+ cleanupExportImage();
53
+ };
54
+ }, [onUpdateImageSetting, cleanupExportImage]);
55
+ (0, _react.useEffect)(function () {
56
+ if (currentProvider && cloudProviders && cloudProviders.length) {
57
+ var provider = cloudProviders.find(function (p) {
58
+ return p.name === currentProvider;
59
+ });
60
+
61
+ if (provider && provider.thumbnail) {
62
+ onUpdateImageSetting({
63
+ mapW: (0, _lodash["default"])(provider, ['thumbnail', 'width']) || _constants.MAP_THUMBNAIL_DIMENSION.width,
64
+ mapH: (0, _lodash["default"])(provider, ['thumbnail', 'height']) || _constants.MAP_THUMBNAIL_DIMENSION.height,
65
+ ratio: _constants.EXPORT_IMG_RATIOS.CUSTOM,
66
+ legend: false
67
+ });
68
+ }
69
+ } else {
70
+ onUpdateImageSetting({
71
+ mapW: _constants.MAP_THUMBNAIL_DIMENSION.width,
72
+ mapH: _constants.MAP_THUMBNAIL_DIMENSION.height,
73
+ ratio: _constants.EXPORT_IMG_RATIOS.CUSTOM,
74
+ legend: false
75
+ });
76
+ }
77
+ }, [currentProvider, cloudProviders, onUpdateImageSetting]);
78
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children);
79
+ };
80
+
81
+ ImageModalContainer.defaultProps = {
82
+ cloudProviders: []
83
+ };
84
+ var _default = ImageModalContainer;
85
+ exports["default"] = _default;
86
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvaW1hZ2UtbW9kYWwtY29udGFpbmVyLnRzeCJdLCJuYW1lcyI6WyJJbWFnZU1vZGFsQ29udGFpbmVyIiwib25VcGRhdGVJbWFnZVNldHRpbmciLCJjbGVhbnVwRXhwb3J0SW1hZ2UiLCJjbG91ZFByb3ZpZGVycyIsImN1cnJlbnRQcm92aWRlciIsImNoaWxkcmVuIiwiZXhwb3J0aW5nIiwibGVuZ3RoIiwicHJvdmlkZXIiLCJmaW5kIiwicCIsIm5hbWUiLCJ0aHVtYm5haWwiLCJtYXBXIiwiTUFQX1RIVU1CTkFJTF9ESU1FTlNJT04iLCJ3aWR0aCIsIm1hcEgiLCJoZWlnaHQiLCJyYXRpbyIsIkVYUE9SVF9JTUdfUkFUSU9TIiwiQ1VTVE9NIiwibGVnZW5kIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFFQTs7QUF2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQSxtQkFBdUQsR0FBRyxTQUExREEsbUJBQTBELE9BTTFEO0FBQUEsTUFMSkMsb0JBS0ksUUFMSkEsb0JBS0k7QUFBQSxNQUpKQyxrQkFJSSxRQUpKQSxrQkFJSTtBQUFBLE1BSEpDLGNBR0ksUUFISkEsY0FHSTtBQUFBLE1BRkpDLGVBRUksUUFGSkEsZUFFSTtBQUFBLE1BREpDLFFBQ0ksUUFESkEsUUFDSTtBQUNKLHdCQUFVLFlBQU07QUFDZEosSUFBQUEsb0JBQW9CLENBQUM7QUFBQ0ssTUFBQUEsU0FBUyxFQUFFO0FBQVosS0FBRCxDQUFwQjtBQUNBLFdBQU8sWUFBTTtBQUNYSixNQUFBQSxrQkFBa0I7QUFDbkIsS0FGRDtBQUdELEdBTEQsRUFLRyxDQUFDRCxvQkFBRCxFQUF1QkMsa0JBQXZCLENBTEg7QUFPQSx3QkFBVSxZQUFNO0FBQ2QsUUFBSUUsZUFBZSxJQUFJRCxjQUFuQixJQUFxQ0EsY0FBYyxDQUFDSSxNQUF4RCxFQUFnRTtBQUM5RCxVQUFNQyxRQUFRLEdBQUdMLGNBQWMsQ0FBQ00sSUFBZixDQUFvQixVQUFBQyxDQUFDO0FBQUEsZUFBSUEsQ0FBQyxDQUFDQyxJQUFGLEtBQVdQLGVBQWY7QUFBQSxPQUFyQixDQUFqQjs7QUFFQSxVQUFJSSxRQUFRLElBQUlBLFFBQVEsQ0FBQ0ksU0FBekIsRUFBb0M7QUFDbENYLFFBQUFBLG9CQUFvQixDQUFDO0FBQ25CWSxVQUFBQSxJQUFJLEVBQUUsd0JBQUlMLFFBQUosRUFBYyxDQUFDLFdBQUQsRUFBYyxPQUFkLENBQWQsS0FBeUNNLG1DQUF3QkMsS0FEcEQ7QUFFbkJDLFVBQUFBLElBQUksRUFBRSx3QkFBSVIsUUFBSixFQUFjLENBQUMsV0FBRCxFQUFjLFFBQWQsQ0FBZCxLQUEwQ00sbUNBQXdCRyxNQUZyRDtBQUduQkMsVUFBQUEsS0FBSyxFQUFFQyw2QkFBa0JDLE1BSE47QUFJbkJDLFVBQUFBLE1BQU0sRUFBRTtBQUpXLFNBQUQsQ0FBcEI7QUFNRDtBQUNGLEtBWEQsTUFXTztBQUNMcEIsTUFBQUEsb0JBQW9CLENBQUM7QUFDbkJZLFFBQUFBLElBQUksRUFBRUMsbUNBQXdCQyxLQURYO0FBRW5CQyxRQUFBQSxJQUFJLEVBQUVGLG1DQUF3QkcsTUFGWDtBQUduQkMsUUFBQUEsS0FBSyxFQUFFQyw2QkFBa0JDLE1BSE47QUFJbkJDLFFBQUFBLE1BQU0sRUFBRTtBQUpXLE9BQUQsQ0FBcEI7QUFNRDtBQUNGLEdBcEJELEVBb0JHLENBQUNqQixlQUFELEVBQWtCRCxjQUFsQixFQUFrQ0Ysb0JBQWxDLENBcEJIO0FBc0JBLHNCQUFPLGtFQUFHSSxRQUFILENBQVA7QUFDRCxDQXJDRDs7QUF1Q0FMLG1CQUFtQixDQUFDc0IsWUFBcEIsR0FBbUM7QUFDakNuQixFQUFBQSxjQUFjLEVBQUU7QUFEaUIsQ0FBbkM7ZUFJZUgsbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3R9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLmdldCc7XG5cbmltcG9ydCB7TUFQX1RIVU1CTkFJTF9ESU1FTlNJT04sIEVYUE9SVF9JTUdfUkFUSU9TfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge1NldEV4cG9ydEltYWdlU2V0dGluZ1VwZGF0ZXJBY3Rpb259IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge1Byb3ZpZGVyfSBmcm9tICdAa2VwbGVyLmdsL2Nsb3VkLXByb3ZpZGVycyc7XG5cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2ltYWdlLW1vZGFsLWNvbnRhaW5lcicpLkltYWdlTW9kYWxDb250YWluZXJQcm9wc30gSW1hZ2VNb2RhbENvbnRhaW5lclByb3BzICovXG5cbmV4cG9ydCB0eXBlIEltYWdlTW9kYWxDb250YWluZXJQcm9wcyA9IHtcbiAgY2xvdWRQcm92aWRlcnM/OiBQcm92aWRlcltdO1xuICBjdXJyZW50UHJvdmlkZXI/OiBzdHJpbmcgfCBudWxsO1xuICBvblVwZGF0ZUltYWdlU2V0dGluZzogKG5ld1NldHRpbmc6IFNldEV4cG9ydEltYWdlU2V0dGluZ1VwZGF0ZXJBY3Rpb25bJ3BheWxvYWQnXSkgPT4gdm9pZDtcbiAgY2xlYW51cEV4cG9ydEltYWdlOiAoKSA9PiB2b2lkO1xufTtcblxuLyoqXG4gKiBBIHdyYXBwZXIgY29tcG9uZW50IGluIG1vZGFscyBjb250YWluIGEgaW1hZ2UgcHJldmlldyBvZiB0aGUgbWFwIHdpdGggY2xvdWQgcHJvdmlkZXJzXG4gKiBJdCBzZXRzIGV4cG9ydCBpbWFnZSBzaXplIGJhc2VkIG9uIHByb3ZpZGVyIHRodW1ibmFpbCBzaXplXG4gKiBAdHlwZSB7UmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8SW1hZ2VNb2RhbENvbnRhaW5lclByb3BzPn1cbiAqL1xuY29uc3QgSW1hZ2VNb2RhbENvbnRhaW5lcjogUmVhY3QuRkM8SW1hZ2VNb2RhbENvbnRhaW5lclByb3BzPiA9ICh7XG4gIG9uVXBkYXRlSW1hZ2VTZXR0aW5nLFxuICBjbGVhbnVwRXhwb3J0SW1hZ2UsXG4gIGNsb3VkUHJvdmlkZXJzLFxuICBjdXJyZW50UHJvdmlkZXIsXG4gIGNoaWxkcmVuXG59KSA9PiB7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgb25VcGRhdGVJbWFnZVNldHRpbmcoe2V4cG9ydGluZzogdHJ1ZX0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbGVhbnVwRXhwb3J0SW1hZ2UoKTtcbiAgICB9O1xuICB9LCBbb25VcGRhdGVJbWFnZVNldHRpbmcsIGNsZWFudXBFeHBvcnRJbWFnZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGN1cnJlbnRQcm92aWRlciAmJiBjbG91ZFByb3ZpZGVycyAmJiBjbG91ZFByb3ZpZGVycy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHByb3ZpZGVyID0gY2xvdWRQcm92aWRlcnMuZmluZChwID0+IHAubmFtZSA9PT0gY3VycmVudFByb3ZpZGVyKTtcblxuICAgICAgaWYgKHByb3ZpZGVyICYmIHByb3ZpZGVyLnRodW1ibmFpbCkge1xuICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZyh7XG4gICAgICAgICAgbWFwVzogZ2V0KHByb3ZpZGVyLCBbJ3RodW1ibmFpbCcsICd3aWR0aCddKSB8fCBNQVBfVEhVTUJOQUlMX0RJTUVOU0lPTi53aWR0aCxcbiAgICAgICAgICBtYXBIOiBnZXQocHJvdmlkZXIsIFsndGh1bWJuYWlsJywgJ2hlaWdodCddKSB8fCBNQVBfVEhVTUJOQUlMX0RJTUVOU0lPTi5oZWlnaHQsXG4gICAgICAgICAgcmF0aW86IEVYUE9SVF9JTUdfUkFUSU9TLkNVU1RPTSxcbiAgICAgICAgICBsZWdlbmQ6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvblVwZGF0ZUltYWdlU2V0dGluZyh7XG4gICAgICAgIG1hcFc6IE1BUF9USFVNQk5BSUxfRElNRU5TSU9OLndpZHRoLFxuICAgICAgICBtYXBIOiBNQVBfVEhVTUJOQUlMX0RJTUVOU0lPTi5oZWlnaHQsXG4gICAgICAgIHJhdGlvOiBFWFBPUlRfSU1HX1JBVElPUy5DVVNUT00sXG4gICAgICAgIGxlZ2VuZDogZmFsc2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2N1cnJlbnRQcm92aWRlciwgY2xvdWRQcm92aWRlcnMsIG9uVXBkYXRlSW1hZ2VTZXR0aW5nXSk7XG5cbiAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcbn07XG5cbkltYWdlTW9kYWxDb250YWluZXIuZGVmYXVsdFByb3BzID0ge1xuICBjbG91ZFByb3ZpZGVyczogW11cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlTW9kYWxDb250YWluZXI7XG4iXX0=