@carto/kepler.gl 0.0.86-alpha.deck9.1 → 0.0.86

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 (423) hide show
  1. package/dist/actions/action-wrapper.js +41 -36
  2. package/dist/actions/actions.js +21 -15
  3. package/dist/actions/identity-actions.js +20 -14
  4. package/dist/actions/index.js +16 -16
  5. package/dist/actions/map-state-actions.js +18 -12
  6. package/dist/actions/map-style-actions.js +46 -30
  7. package/dist/actions/provider-actions.js +73 -49
  8. package/dist/actions/ui-state-actions.js +113 -73
  9. package/dist/actions/vis-state-actions.js +148 -152
  10. package/dist/cloud-providers/index.js +7 -6
  11. package/dist/cloud-providers/provider.js +279 -189
  12. package/dist/components/bottom-widget.js +117 -105
  13. package/dist/components/common/action-panel.js +74 -122
  14. package/dist/components/common/animation-control/animation-control.js +54 -69
  15. package/dist/components/common/animation-control/animation-controller.js +160 -134
  16. package/dist/components/common/animation-control/animation-speed-slider.js +54 -47
  17. package/dist/components/common/animation-control/floating-time-display.js +100 -120
  18. package/dist/components/common/animation-control/playback-controls.js +144 -147
  19. package/dist/components/common/animation-control/speed-control.js +23 -31
  20. package/dist/components/common/checkbox.js +70 -56
  21. package/dist/components/common/color-legend.js +110 -83
  22. package/dist/components/common/data-table/button.js +23 -31
  23. package/dist/components/common/data-table/canvas.js +5 -11
  24. package/dist/components/common/data-table/cell-size.js +61 -51
  25. package/dist/components/common/data-table/grid.js +59 -40
  26. package/dist/components/common/data-table/index.js +348 -464
  27. package/dist/components/common/data-table/option-dropdown.js +33 -50
  28. package/dist/components/common/dataset-label.js +13 -17
  29. package/dist/components/common/error-boundary.js +45 -27
  30. package/dist/components/common/field-selector.js +139 -99
  31. package/dist/components/common/field-token.js +9 -24
  32. package/dist/components/common/file-uploader/file-drop.js +115 -96
  33. package/dist/components/common/file-uploader/file-upload-progress.js +45 -68
  34. package/dist/components/common/file-uploader/file-upload.js +187 -215
  35. package/dist/components/common/file-uploader/upload-button.js +22 -35
  36. package/dist/components/common/histogram-plot.js +58 -47
  37. package/dist/components/common/icons/add.js +27 -14
  38. package/dist/components/common/icons/anchor_window.js +18 -16
  39. package/dist/components/common/icons/arrow-down-alt.js +27 -14
  40. package/dist/components/common/icons/arrow-down-solid.js +27 -14
  41. package/dist/components/common/icons/arrow-down.js +27 -14
  42. package/dist/components/common/icons/arrow-left.js +30 -17
  43. package/dist/components/common/icons/arrow-right.js +27 -14
  44. package/dist/components/common/icons/arrow-up-alt.js +28 -15
  45. package/dist/components/common/icons/arrow-up-solid.js +27 -14
  46. package/dist/components/common/icons/arrow-up.js +27 -14
  47. package/dist/components/common/icons/base.js +57 -39
  48. package/dist/components/common/icons/bug.js +29 -16
  49. package/dist/components/common/icons/cancel.js +27 -14
  50. package/dist/components/common/icons/checkmark.js +31 -18
  51. package/dist/components/common/icons/chevron-right.js +33 -20
  52. package/dist/components/common/icons/clipboard.js +28 -15
  53. package/dist/components/common/icons/clock.js +29 -16
  54. package/dist/components/common/icons/close.js +32 -19
  55. package/dist/components/common/icons/code-alt.js +29 -16
  56. package/dist/components/common/icons/copy.js +31 -18
  57. package/dist/components/common/icons/crosshairs.js +29 -16
  58. package/dist/components/common/icons/cube-3d.js +31 -18
  59. package/dist/components/common/icons/cursor-click.js +31 -18
  60. package/dist/components/common/icons/data-table.js +28 -15
  61. package/dist/components/common/icons/db.js +28 -15
  62. package/dist/components/common/icons/delete.js +29 -16
  63. package/dist/components/common/icons/docs.js +43 -30
  64. package/dist/components/common/icons/drag-n-drop.js +29 -16
  65. package/dist/components/common/icons/draw-polygon.js +46 -33
  66. package/dist/components/common/icons/email.js +31 -18
  67. package/dist/components/common/icons/expand.js +29 -16
  68. package/dist/components/common/icons/eye-seen.js +29 -16
  69. package/dist/components/common/icons/eye-unseen.js +29 -16
  70. package/dist/components/common/icons/file-type.js +19 -35
  71. package/dist/components/common/icons/file.js +27 -14
  72. package/dist/components/common/icons/files.js +26 -14
  73. package/dist/components/common/icons/filter-funnel.js +27 -14
  74. package/dist/components/common/icons/free-window.js +18 -16
  75. package/dist/components/common/icons/gear.js +29 -16
  76. package/dist/components/common/icons/hash.js +27 -14
  77. package/dist/components/common/icons/histogram.js +27 -15
  78. package/dist/components/common/icons/index.js +156 -156
  79. package/dist/components/common/icons/info.js +38 -25
  80. package/dist/components/common/icons/layers.js +27 -14
  81. package/dist/components/common/icons/left-arrow.js +29 -16
  82. package/dist/components/common/icons/legend.js +27 -14
  83. package/dist/components/common/icons/line-chart.js +27 -14
  84. package/dist/components/common/icons/login.js +30 -17
  85. package/dist/components/common/icons/logout.js +29 -16
  86. package/dist/components/common/icons/map-icon.js +32 -18
  87. package/dist/components/common/icons/map.js +32 -18
  88. package/dist/components/common/icons/messages.js +27 -14
  89. package/dist/components/common/icons/minus.js +27 -14
  90. package/dist/components/common/icons/order-by-dataset.js +17 -15
  91. package/dist/components/common/icons/order-by-list.js +9 -7
  92. package/dist/components/common/icons/pause.js +27 -14
  93. package/dist/components/common/icons/picture.js +26 -14
  94. package/dist/components/common/icons/pin.js +30 -17
  95. package/dist/components/common/icons/play.js +27 -14
  96. package/dist/components/common/icons/polygon.js +48 -35
  97. package/dist/components/common/icons/rectangle.js +49 -36
  98. package/dist/components/common/icons/reduce.js +30 -17
  99. package/dist/components/common/icons/reset.js +27 -14
  100. package/dist/components/common/icons/rocket.js +27 -14
  101. package/dist/components/common/icons/save.js +29 -16
  102. package/dist/components/common/icons/save2.js +33 -20
  103. package/dist/components/common/icons/search.js +29 -16
  104. package/dist/components/common/icons/settings.js +29 -16
  105. package/dist/components/common/icons/share.js +27 -14
  106. package/dist/components/common/icons/split.js +55 -42
  107. package/dist/components/common/icons/square-select.js +29 -16
  108. package/dist/components/common/icons/swap-horizontal.js +31 -18
  109. package/dist/components/common/icons/table.js +27 -14
  110. package/dist/components/common/icons/trash.js +29 -16
  111. package/dist/components/common/icons/upload.js +27 -14
  112. package/dist/components/common/icons/vert-dots.js +65 -52
  113. package/dist/components/common/icons/vert-three-dots.js +40 -27
  114. package/dist/components/common/icons/warning.js +39 -26
  115. package/dist/components/common/image-preview.js +33 -71
  116. package/dist/components/common/info-helper.js +29 -36
  117. package/dist/components/common/item-selector/accessor.js +13 -7
  118. package/dist/components/common/item-selector/chickleted-input.js +56 -72
  119. package/dist/components/common/item-selector/dropdown-list.js +214 -182
  120. package/dist/components/common/item-selector/item-selector-submenu.js +55 -34
  121. package/dist/components/common/item-selector/item-selector.js +194 -183
  122. package/dist/components/common/item-selector/typeahead.js +248 -236
  123. package/dist/components/common/line-chart.js +58 -80
  124. package/dist/components/common/loading-spinner.js +31 -46
  125. package/dist/components/common/logo.js +48 -61
  126. package/dist/components/common/map-layer-selector.js +25 -31
  127. package/dist/components/common/modal.js +106 -167
  128. package/dist/components/common/portaled.js +189 -169
  129. package/dist/components/common/progress-bar.js +24 -27
  130. package/dist/components/common/range-brush.js +215 -176
  131. package/dist/components/common/range-plot.js +63 -52
  132. package/dist/components/common/range-slider.js +231 -206
  133. package/dist/components/common/slider/mouse-event.js +66 -59
  134. package/dist/components/common/slider/slider-bar-handle.js +61 -51
  135. package/dist/components/common/slider/slider-handle.js +102 -127
  136. package/dist/components/common/slider/slider.js +162 -143
  137. package/dist/components/common/styled-components.js +256 -518
  138. package/dist/components/common/switch.js +11 -11
  139. package/dist/components/common/time-range-slider-time-title.js +32 -49
  140. package/dist/components/common/time-range-slider.js +45 -56
  141. package/dist/components/common/time-slider-marker.js +52 -71
  142. package/dist/components/common/tippy-tooltip.js +59 -89
  143. package/dist/components/common/toolbar-item.js +45 -53
  144. package/dist/components/common/toolbar.js +18 -24
  145. package/dist/components/common/vertical-toolbar.js +6 -13
  146. package/dist/components/container.js +119 -87
  147. package/dist/components/context.js +8 -6
  148. package/dist/components/editor/constants.js +4 -4
  149. package/dist/components/editor/editor.js +157 -122
  150. package/dist/components/editor/feature-action-panel.js +59 -52
  151. package/dist/components/editor/feature-styles.js +29 -46
  152. package/dist/components/editor/handle-style.js +29 -38
  153. package/dist/components/filters/components.js +4 -8
  154. package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +43 -33
  155. package/dist/components/filters/filter-panels/multi-select-filter-panel.js +21 -20
  156. package/dist/components/filters/filter-panels/new-filter-panel.js +31 -24
  157. package/dist/components/filters/filter-panels/polygon-filter-panel.js +31 -26
  158. package/dist/components/filters/filter-panels/range-filter-panel.js +21 -20
  159. package/dist/components/filters/filter-panels/single-select-filter-panel.js +21 -20
  160. package/dist/components/filters/filter-panels/time-range-filter-panel.js +31 -28
  161. package/dist/components/filters/index.js +10 -10
  162. package/dist/components/filters/multi-select-filter.js +9 -11
  163. package/dist/components/filters/polygon-filter.js +41 -26
  164. package/dist/components/filters/range-filter.js +7 -9
  165. package/dist/components/filters/single-select-filter.js +13 -11
  166. package/dist/components/filters/time-range-filter.js +14 -16
  167. package/dist/components/filters/time-widget.js +84 -125
  168. package/dist/components/geocoder/geocoder.js +177 -158
  169. package/dist/components/geocoder-panel.js +87 -66
  170. package/dist/components/index.js +329 -328
  171. package/dist/components/injector.js +63 -44
  172. package/dist/components/kepler-gl.js +361 -325
  173. package/dist/components/map/coordinate-info.js +16 -18
  174. package/dist/components/map/layer-hover-info.js +86 -108
  175. package/dist/components/map/layer-selector-panel.js +48 -50
  176. package/dist/components/map/locale-panel.js +44 -38
  177. package/dist/components/map/map-control-panel.js +47 -70
  178. package/dist/components/map/map-control-toolbar.js +6 -9
  179. package/dist/components/map/map-control-tooltip.js +8 -10
  180. package/dist/components/map/map-control.js +27 -35
  181. package/dist/components/map/map-draw-panel.js +48 -38
  182. package/dist/components/map/map-legend-panel.js +50 -47
  183. package/dist/components/map/map-legend.js +116 -133
  184. package/dist/components/map/map-popover.js +100 -155
  185. package/dist/components/map/split-map-button.js +34 -30
  186. package/dist/components/map/toggle-3d-button.js +27 -25
  187. package/dist/components/map-container.js +359 -313
  188. package/dist/components/maps-layout.js +26 -16
  189. package/dist/components/modal-container.js +355 -359
  190. package/dist/components/modals/add-map-style-modal.js +194 -233
  191. package/dist/components/modals/cloud-tile.js +67 -96
  192. package/dist/components/modals/data-table-modal.js +152 -155
  193. package/dist/components/modals/delete-data-modal.js +20 -20
  194. package/dist/components/modals/error-display.js +7 -9
  195. package/dist/components/modals/export-data-modal.js +140 -118
  196. package/dist/components/modals/export-image-modal.js +69 -82
  197. package/dist/components/modals/export-map-modal/components.js +18 -20
  198. package/dist/components/modals/export-map-modal/export-html-map.js +74 -82
  199. package/dist/components/modals/export-map-modal/export-json-map.js +45 -65
  200. package/dist/components/modals/export-map-modal/export-map-modal.js +47 -42
  201. package/dist/components/modals/image-modal-container.js +21 -20
  202. package/dist/components/modals/load-data-modal.js +30 -28
  203. package/dist/components/modals/load-storage-map.js +178 -277
  204. package/dist/components/modals/loading-dialog.js +19 -41
  205. package/dist/components/modals/modal-dialog.js +6 -4
  206. package/dist/components/modals/modal-tabs.js +48 -83
  207. package/dist/components/modals/overwrite-map-modal.js +30 -41
  208. package/dist/components/modals/provider-modal-container.js +42 -23
  209. package/dist/components/modals/save-map-modal.js +83 -107
  210. package/dist/components/modals/share-map-modal.js +95 -101
  211. package/dist/components/modals/status-panel.js +43 -63
  212. package/dist/components/modals/storage-map-viewer.js +70 -133
  213. package/dist/components/notification-panel/notification-item.js +97 -94
  214. package/dist/components/notification-panel.js +43 -35
  215. package/dist/components/performance.js +53 -49
  216. package/dist/components/plot-container.js +169 -151
  217. package/dist/components/side-panel/cloud-storage-dropdown.js +15 -13
  218. package/dist/components/side-panel/common/dataset-info.js +12 -16
  219. package/dist/components/side-panel/common/dataset-tag.js +27 -48
  220. package/dist/components/side-panel/common/dataset-title.js +116 -119
  221. package/dist/components/side-panel/common/source-data-catalog.js +32 -31
  222. package/dist/components/side-panel/common/source-data-selector.js +77 -52
  223. package/dist/components/side-panel/custom-panel.js +8 -6
  224. package/dist/components/side-panel/filter-manager.js +62 -48
  225. package/dist/components/side-panel/filter-panel/filter-panel-header.js +25 -35
  226. package/dist/components/side-panel/filter-panel/filter-panel.js +64 -46
  227. package/dist/components/side-panel/interaction-manager.js +18 -20
  228. package/dist/components/side-panel/interaction-panel/brush-config.js +17 -17
  229. package/dist/components/side-panel/interaction-panel/interaction-panel.js +95 -76
  230. package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +143 -118
  231. package/dist/components/side-panel/interaction-panel/tooltip-config.js +76 -95
  232. package/dist/components/side-panel/layer-manager.js +115 -105
  233. package/dist/components/side-panel/layer-panel/add-layer-button.js +54 -92
  234. package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +5 -5
  235. package/dist/components/side-panel/layer-panel/color-palette.js +37 -50
  236. package/dist/components/side-panel/layer-panel/color-range-selector.js +207 -196
  237. package/dist/components/side-panel/layer-panel/color-selector.js +110 -104
  238. package/dist/components/side-panel/layer-panel/column-selector.js +22 -34
  239. package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +4 -4
  240. package/dist/components/side-panel/layer-panel/custom-palette.js +205 -248
  241. package/dist/components/side-panel/layer-panel/custom-picker.js +69 -51
  242. package/dist/components/side-panel/layer-panel/dataset-layer-group.js +42 -37
  243. package/dist/components/side-panel/layer-panel/dataset-layer-section.js +27 -31
  244. package/dist/components/side-panel/layer-panel/dataset-section.js +35 -45
  245. package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +13 -14
  246. package/dist/components/side-panel/layer-panel/hex-column-config.js +55 -32
  247. package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +5 -5
  248. package/dist/components/side-panel/layer-panel/layer-column-config.js +46 -42
  249. package/dist/components/side-panel/layer-panel/layer-config-group.js +144 -178
  250. package/dist/components/side-panel/layer-panel/layer-configurator.js +830 -826
  251. package/dist/components/side-panel/layer-panel/layer-list.js +94 -101
  252. package/dist/components/side-panel/layer-panel/layer-panel-header.js +82 -124
  253. package/dist/components/side-panel/layer-panel/layer-panel.js +105 -111
  254. package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +58 -67
  255. package/dist/components/side-panel/layer-panel/layer-type-list-item.js +32 -47
  256. package/dist/components/side-panel/layer-panel/layer-type-selector.js +41 -30
  257. package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +43 -42
  258. package/dist/components/side-panel/layer-panel/panel-view-list-toggle.js +57 -55
  259. package/dist/components/side-panel/layer-panel/single-color-palette.js +33 -48
  260. package/dist/components/side-panel/layer-panel/text-label-panel.js +116 -81
  261. package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +102 -88
  262. package/dist/components/side-panel/layer-panel/vis-config-slider.js +85 -99
  263. package/dist/components/side-panel/layer-panel/vis-config-switch.js +29 -38
  264. package/dist/components/side-panel/map-manager.js +89 -70
  265. package/dist/components/side-panel/map-style-panel/map-layer-selector.js +60 -72
  266. package/dist/components/side-panel/map-style-panel/map-style-selector.js +42 -64
  267. package/dist/components/side-panel/panel-dropdown.js +37 -21
  268. package/dist/components/side-panel/panel-header-action.js +65 -60
  269. package/dist/components/side-panel/panel-header.js +184 -165
  270. package/dist/components/side-panel/panel-tab.js +29 -35
  271. package/dist/components/side-panel/panel-title.js +18 -15
  272. package/dist/components/side-panel/panel-toggle.js +31 -30
  273. package/dist/components/side-panel/side-bar.js +91 -100
  274. package/dist/components/side-panel.js +123 -108
  275. package/dist/connect/keplergl-connect.js +26 -17
  276. package/dist/connect/with-local-selector.js +63 -31
  277. package/dist/constants/action-types.js +115 -113
  278. package/dist/constants/color-palette.js +16 -14
  279. package/dist/constants/color-ranges.js +28 -23
  280. package/dist/constants/custom-color-ranges.js +12 -12
  281. package/dist/constants/default-settings.js +254 -323
  282. package/dist/constants/index.js +63 -63
  283. package/dist/constants/keyevent.js +4 -4
  284. package/dist/constants/tooltip.js +5 -5
  285. package/dist/constants/user-feedbacks.js +5 -9
  286. package/dist/constants/user-guides.js +10 -10
  287. package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +63 -37
  288. package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +56 -52
  289. package/dist/deckgl-layers/cluster-layer/cluster-layer.js +168 -165
  290. package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +43 -24
  291. package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +40 -27
  292. package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +40 -27
  293. package/dist/deckgl-layers/layer-utils/cluster-utils.js +68 -60
  294. package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +282 -276
  295. package/dist/deckgl-layers/layer-utils/shader-utils.js +2 -2
  296. package/dist/deckgl-layers/line-layer/line-layer.js +70 -62
  297. package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +51 -37
  298. package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +85 -65
  299. package/dist/index.js +16 -15
  300. package/dist/layers/aggregation-layer.js +331 -299
  301. package/dist/layers/arc-layer/arc-layer-icon.js +41 -27
  302. package/dist/layers/arc-layer/arc-layer.js +201 -174
  303. package/dist/layers/base-layer.js +1544 -1371
  304. package/dist/layers/cluster-layer/cluster-layer-icon.js +44 -30
  305. package/dist/layers/cluster-layer/cluster-layer.js +103 -89
  306. package/dist/layers/default-layer-icon.js +53 -39
  307. package/dist/layers/geojson-layer/geojson-layer-icon.js +55 -42
  308. package/dist/layers/geojson-layer/geojson-layer.js +353 -292
  309. package/dist/layers/geojson-layer/geojson-utils.js +36 -31
  310. package/dist/layers/grid-layer/grid-layer-icon.js +100 -87
  311. package/dist/layers/grid-layer/grid-layer.js +61 -51
  312. package/dist/layers/grid-layer/grid-utils.js +9 -13
  313. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +35 -21
  314. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +260 -225
  315. package/dist/layers/h3-hexagon-layer/h3-utils.js +16 -16
  316. package/dist/layers/heatmap-layer/heatmap-layer-icon.js +52 -39
  317. package/dist/layers/heatmap-layer/heatmap-layer.js +171 -140
  318. package/dist/layers/hexagon-layer/hexagon-layer-icon.js +64 -51
  319. package/dist/layers/hexagon-layer/hexagon-layer.js +63 -49
  320. package/dist/layers/hexagon-layer/hexagon-utils.js +14 -15
  321. package/dist/layers/icon-layer/icon-info-modal.js +75 -82
  322. package/dist/layers/icon-layer/icon-layer-icon.js +37 -24
  323. package/dist/layers/icon-layer/icon-layer.js +303 -274
  324. package/dist/layers/index.js +29 -43
  325. package/dist/layers/layer-factory.js +41 -25
  326. package/dist/layers/layer-text-label.js +23 -21
  327. package/dist/layers/layer-update.js +18 -16
  328. package/dist/layers/line-layer/line-layer-icon.js +43 -30
  329. package/dist/layers/line-layer/line-layer.js +142 -123
  330. package/dist/layers/mapbox-utils.js +62 -61
  331. package/dist/layers/mapboxgl-layer.js +169 -124
  332. package/dist/layers/point-layer/point-layer-icon.js +59 -45
  333. package/dist/layers/point-layer/point-layer.js +386 -355
  334. package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +238 -208
  335. package/dist/layers/s2-geometry-layer/s2-layer-icon.js +35 -21
  336. package/dist/layers/s2-geometry-layer/s2-utils.js +8 -9
  337. package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +25 -24
  338. package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +115 -102
  339. package/dist/layers/scenegraph-layer/scenegraph-layer.js +172 -148
  340. package/dist/layers/trip-layer/trip-info-modal.js +30 -50
  341. package/dist/layers/trip-layer/trip-layer-icon.js +53 -40
  342. package/dist/layers/trip-layer/trip-layer.js +307 -239
  343. package/dist/layers/trip-layer/trip-utils.js +50 -34
  344. package/dist/layers/types.js +2 -2
  345. package/dist/localization/formatted-message.js +10 -8
  346. package/dist/localization/index.js +7 -7
  347. package/dist/localization/locales.js +9 -6
  348. package/dist/localization/messages.js +10 -13
  349. package/dist/localization/translations/ca.js +13 -11
  350. package/dist/localization/translations/cn.js +13 -11
  351. package/dist/localization/translations/en.js +13 -11
  352. package/dist/localization/translations/es.js +13 -11
  353. package/dist/localization/translations/fi.js +13 -11
  354. package/dist/localization/translations/ja.js +13 -11
  355. package/dist/localization/translations/pt.js +13 -11
  356. package/dist/localization/translations/ru.js +13 -11
  357. package/dist/middleware/index.js +5 -3
  358. package/dist/processors/data-processor.js +201 -164
  359. package/dist/processors/file-handler.js +233 -111
  360. package/dist/processors/index.js +4 -4
  361. package/dist/reducers/combined-updaters.js +41 -41
  362. package/dist/reducers/composer-helpers.js +45 -20
  363. package/dist/reducers/composers.js +8 -9
  364. package/dist/reducers/core.js +35 -31
  365. package/dist/reducers/index.js +22 -21
  366. package/dist/reducers/map-state-updaters.js +47 -65
  367. package/dist/reducers/map-state.js +15 -23
  368. package/dist/reducers/map-style-updaters.js +159 -233
  369. package/dist/reducers/map-style.js +16 -30
  370. package/dist/reducers/provider-state-updaters.js +229 -217
  371. package/dist/reducers/provider-state.js +17 -29
  372. package/dist/reducers/root.js +58 -86
  373. package/dist/reducers/ui-state-updaters.js +218 -337
  374. package/dist/reducers/ui-state.js +16 -45
  375. package/dist/reducers/vis-state-merger.js +209 -205
  376. package/dist/reducers/vis-state-selectors.js +19 -5
  377. package/dist/reducers/vis-state-updaters.js +876 -1003
  378. package/dist/reducers/vis-state.js +16 -75
  379. package/dist/schemas/dataset-schema.js +108 -84
  380. package/dist/schemas/index.js +29 -28
  381. package/dist/schemas/map-state-schema.js +18 -21
  382. package/dist/schemas/map-style-schema.js +55 -47
  383. package/dist/schemas/schema-manager.js +161 -147
  384. package/dist/schemas/schema-utils.js +9 -8
  385. package/dist/schemas/schema.js +87 -72
  386. package/dist/schemas/versions.js +3 -3
  387. package/dist/schemas/vis-state-schema.js +583 -441
  388. package/dist/styles/base.js +1021 -1217
  389. package/dist/styles/index.js +3 -3
  390. package/dist/styles/media-breakpoints.js +18 -23
  391. package/dist/tasks/tasks.js +39 -36
  392. package/dist/templates/export-map-html.js +4 -233
  393. package/dist/utils/aggregate-utils.js +16 -13
  394. package/dist/utils/color-utils.js +37 -29
  395. package/dist/utils/custom-scales.js +3 -3
  396. package/dist/utils/data-scale-utils.js +13 -6
  397. package/dist/utils/data-utils.js +83 -60
  398. package/dist/utils/dataset-utils.js +77 -48
  399. package/dist/utils/dom-to-image.js +163 -108
  400. package/dist/utils/dom-utils.js +105 -88
  401. package/dist/utils/export-utils.js +103 -116
  402. package/dist/utils/filter-utils.js +374 -379
  403. package/dist/utils/gl-utils.js +15 -16
  404. package/dist/utils/gpu-filter-utils.js +73 -54
  405. package/dist/utils/index.js +48 -47
  406. package/dist/utils/interaction-utils.js +46 -53
  407. package/dist/utils/layer-utils.js +78 -89
  408. package/dist/utils/locale-utils.js +16 -24
  409. package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +76 -67
  410. package/dist/utils/map-style-utils/mapbox-utils.js +3 -4
  411. package/dist/utils/mapbox-utils.js +4 -3
  412. package/dist/utils/notifications-utils.js +38 -33
  413. package/dist/utils/observe-dimensions.js +54 -42
  414. package/dist/utils/projection-utils.js +11 -14
  415. package/dist/utils/split-map-utils.js +33 -30
  416. package/dist/utils/table-utils/data-container-utils.js +14 -15
  417. package/dist/utils/table-utils/data-row.js +65 -58
  418. package/dist/utils/table-utils/index.js +2 -2
  419. package/dist/utils/table-utils/indexed-data-container.js +173 -105
  420. package/dist/utils/table-utils/kepler-table.js +386 -362
  421. package/dist/utils/table-utils/row-data-container.js +164 -99
  422. package/dist/utils/utils.js +30 -29
  423. package/package.json +1 -1
@@ -1,21 +1,22 @@
1
1
  "use strict";
2
2
 
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  Object.defineProperty(exports, "FILE_CONFLICT_MSG", {
7
8
  enumerable: true,
8
- get: function () {
9
+ get: function get() {
9
10
  return _provider.FILE_CONFLICT_MSG;
10
11
  }
11
12
  });
12
13
  Object.defineProperty(exports, "Provider", {
13
14
  enumerable: true,
14
- get: function () {
15
- return _provider.default;
15
+ get: function get() {
16
+ return _provider["default"];
16
17
  }
17
18
  });
18
19
  var _provider = _interopRequireWildcard(require("./provider"));
19
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcHJvdmlkZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xvdWQtcHJvdmlkZXJzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBQcm92aWRlciwgRklMRV9DT05GTElDVF9NU0d9IGZyb20gJy4vcHJvdmlkZXInO1xuZXhwb3J0IHR5cGUge01hcExpc3RJdGVtLCBNaWxsaXNlY29uZCwgVGh1bWJuYWlsLCBQcm92aWRlclByb3BzfSBmcm9tICcuL3Byb3ZpZGVyJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsU0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQWtFLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFILHdCQUFBRyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsV0FBQUssT0FBQSxFQUFBTCxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsQ0FBQUgsT0FBQSxHQUFBTCxDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcHJvdmlkZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xvdWQtcHJvdmlkZXJzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBQcm92aWRlciwgRklMRV9DT05GTElDVF9NU0d9IGZyb20gJy4vcHJvdmlkZXInO1xuZXhwb3J0IHR5cGUge01hcExpc3RJdGVtLCBNaWxsaXNlY29uZCwgVGh1bWJuYWlsLCBQcm92aWRlclByb3BzfSBmcm9tICcuL3Byb3ZpZGVyJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQUFBLFNBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUFrRSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUgsd0JBQUFHLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -4,8 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = exports.FILE_CONFLICT_MSG = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ exports["default"] = exports.FILE_CONFLICT_MSG = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
9
12
  var _icons = require("../components/common/icons");
10
13
  // Copyright (c) 2022 Uber Technologies, Inc.
11
14
  //
@@ -27,14 +30,14 @@ var _icons = require("../components/common/icons");
27
30
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
28
31
  // THE SOFTWARE.
29
32
 
30
- const NAME = 'cloud-provider';
31
- const DISPLAY_NAME = 'Cloud Provider';
32
- const THUMBNAIL = {
33
+ var NAME = 'cloud-provider';
34
+ var DISPLAY_NAME = 'Cloud Provider';
35
+ var THUMBNAIL = {
33
36
  width: 300,
34
37
  height: 200
35
38
  };
36
- const ICON = _icons.Upload;
37
- const FILE_CONFLICT_MSG = exports.FILE_CONFLICT_MSG = 'file_conflict';
39
+ var ICON = _icons.Upload;
40
+ var FILE_CONFLICT_MSG = exports.FILE_CONFLICT_MSG = 'file_conflict';
38
41
  /**
39
42
  * The default provider class
40
43
  * @param {object} props
@@ -54,13 +57,9 @@ const FILE_CONFLICT_MSG = exports.FILE_CONFLICT_MSG = 'file_conflict';
54
57
  * thumbnail: {width: 300, height: 200}
55
58
  * })
56
59
  */
57
- class Provider {
58
- constructor(props) {
59
- (0, _defineProperty2.default)(this, "name", void 0);
60
- (0, _defineProperty2.default)(this, "displayName", void 0);
61
- (0, _defineProperty2.default)(this, "icon", void 0);
62
- (0, _defineProperty2.default)(this, "thumbnail", void 0);
63
- (0, _defineProperty2.default)(this, "getManagementUrl", void 0);
60
+ var Provider = exports["default"] = /*#__PURE__*/function () {
61
+ function Provider(props) {
62
+ (0, _classCallCheck2["default"])(this, Provider);
64
63
  this.name = props.name || NAME;
65
64
  this.displayName = props.displayName || DISPLAY_NAME;
66
65
  this.icon = props.icon || ICON;
@@ -72,185 +71,276 @@ class Provider {
72
71
  * @returns
73
72
  * @public
74
73
  */
75
- hasPrivateStorage() {
76
- return true;
77
- }
74
+ return (0, _createClass2["default"])(Provider, [{
75
+ key: "hasPrivateStorage",
76
+ value: function hasPrivateStorage() {
77
+ return true;
78
+ }
78
79
 
79
- /**
80
- * Whether this provider support share map via a public url, if truthy, user will be displayed with a share map via url under the export map option on the top right of the side bar
81
- * @returns
82
- * @public
83
- */
84
- hasSharingUrl() {
85
- return true;
86
- }
80
+ /**
81
+ * Whether this provider support share map via a public url, if truthy, user will be displayed with a share map via url under the export map option on the top right of the side bar
82
+ * @returns
83
+ * @public
84
+ */
85
+ }, {
86
+ key: "hasSharingUrl",
87
+ value: function hasSharingUrl() {
88
+ return true;
89
+ }
87
90
 
88
- /**
89
- * This method is called after user share a map, to display the share url.
90
- * @param fullUrl - Whether to return the full url with domain, or just the location
91
- * @returns shareUrl
92
- * @public
93
- */
94
- getShareUrl() {
95
- let fullUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
96
- return '';
97
- }
91
+ /**
92
+ * This method is called after user share a map, to display the share url.
93
+ * @param fullUrl - Whether to return the full url with domain, or just the location
94
+ * @returns shareUrl
95
+ * @public
96
+ */
97
+ }, {
98
+ key: "getShareUrl",
99
+ value: function getShareUrl() {
100
+ var fullUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
101
+ return '';
102
+ }
98
103
 
99
- /**
100
- * This method is called by kepler.gl demo app to pushes a new location to history, becoming the current location.
101
- * @param fullURL - Whether to return the full url with domain, or just the location
102
- * @returns mapUrl
103
- * @public
104
- */
105
- getMapUrl() {
106
- let fullURL = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
107
- return '';
108
- }
104
+ /**
105
+ * This method is called by kepler.gl demo app to pushes a new location to history, becoming the current location.
106
+ * @param fullURL - Whether to return the full url with domain, or just the location
107
+ * @returns mapUrl
108
+ * @public
109
+ */
110
+ }, {
111
+ key: "getMapUrl",
112
+ value: function getMapUrl() {
113
+ var fullURL = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
114
+ return '';
115
+ }
109
116
 
110
- /**
111
- * This method is called to determine whether user already logged in to this provider
112
- * @public
113
- * @returns true if a user already logged in
114
- */
115
- getAccessToken() {
116
- return true;
117
- }
117
+ /**
118
+ * This method is called to determine whether user already logged in to this provider
119
+ * @public
120
+ * @returns true if a user already logged in
121
+ */
122
+ }, {
123
+ key: "getAccessToken",
124
+ value: function getAccessToken() {
125
+ return true;
126
+ }
118
127
 
119
- /**
120
- * This method is called to get the user name of the current user. It will be displayed in the cloud provider tile.
121
- * @public
122
- * @returns true if a user already logged in
123
- */
124
- getUserName() {
125
- return '';
126
- }
128
+ /**
129
+ * This method is called to get the user name of the current user. It will be displayed in the cloud provider tile.
130
+ * @public
131
+ * @returns true if a user already logged in
132
+ */
133
+ }, {
134
+ key: "getUserName",
135
+ value: function getUserName() {
136
+ return '';
137
+ }
127
138
 
128
- /**
129
- * This return a standard error that will trigger the overwrite map modal
130
- */
131
- getFileConflictError() {
132
- return new Error(FILE_CONFLICT_MSG);
133
- }
139
+ /**
140
+ * This return a standard error that will trigger the overwrite map modal
141
+ */
142
+ }, {
143
+ key: "getFileConflictError",
144
+ value: function getFileConflictError() {
145
+ return new Error(FILE_CONFLICT_MSG);
146
+ }
134
147
 
135
- /**
136
- * This method will be called when user click the login button in the cloud provider tile.
137
- * Upon login success, `onCloudLoginSuccess` has to be called to notify kepler.gl UI
138
- * @param {function} onCloudLoginSuccess - callbacks to be called after login success
139
- * @public
140
- */
141
- async login(onCloudLoginSuccess) {
142
- onCloudLoginSuccess();
143
- return;
144
- }
145
-
146
- /**
147
- * This method will be called when user click the logout button under the cloud provider tile.
148
- * Upon login success, `onCloudLoginSuccess` has to be called to notify kepler.gl UI
149
- * @param {function} onCloudLogoutSuccess - callbacks to be called after logout success
150
- * @public
151
- */
152
- async logout(onCloudLogoutSuccess) {
153
- onCloudLogoutSuccess();
154
- return;
155
- }
156
-
157
- /**
158
- * This method will be called to upload map for saving and sharing. Kepler.gl will package map data, config, title, description and thumbnail for upload to storage.
159
- * With the option to overwrite already saved map, and upload as private or public map.
160
- *
161
- * @param {Object} param
162
- * @param {Object} param.mapData - the map object
163
- * @param {Object} param.mapData.map - {datasets. config, info: {title, description}}
164
- * @param {Blob} param.mapData.thumbnail - A thumbnail of current map. thumbnail size can be defined by provider by this.thumbnail
165
- * @param {object} [param.options]
166
- * @param {boolean} [param.options.overwrite] - whether user choose to overwrite already saved map under the same name
167
- * @param {boolean} [param.options.isPublic] - whether user wish to share the map with others. if isPublic is truthy, kepler will call this.getShareUrl() to display an URL they can share with others
168
- * @public
169
- */
170
- async uploadMap(_ref) {
171
- let {
172
- mapData,
173
- options = {}
174
- } = _ref;
175
- return;
176
- }
177
-
178
- /**
179
- * This method is called to get a list of maps saved by the current logged in user.
180
- * @returns visualizations an array of Viz objects
181
- * @public
182
- * @example
183
- * async listMaps() {
184
- * return [
185
- * {
186
- * id: 'a',
187
- * title: 'My map',
188
- * description: 'My first kepler map',
189
- * imageUrl: 'http://',
190
- * lastModification: 1582677787000,
191
- * privateMap: false,
192
- * loadParams: {}
193
- * }
194
- * ];
195
- * }
196
- */
197
- async listMaps() {
198
- return [];
199
- }
200
-
201
- /**
202
- * This method will be called when user select a map to load from the storage map viewer
203
- * @param {*} loadParams - the loadParams property of each visualization object
204
- * @returns mapResponse - the map object containing dataset config info and format option
205
- * @public
206
- * @example
207
- * async downloadMap(loadParams) {
208
- * const mockResponse = {
209
- * map: {
210
- * datasets: [],
211
- * config: {},
212
- * info: {
213
- * app: 'kepler.gl',
214
- * created_at: ''
215
- * title: 'test map',
216
- * description: 'Hello this is my test dropbox map'
217
- * }
218
- * },
219
- * // pass csv here if your provider currently only support save / load file as csv
220
- * format: 'keplergl'
221
- * };
222
- *
223
- * return downloadMap;
224
- * }
225
- */
226
- async downloadMap(loadParams) {
227
- return;
228
- }
229
-
230
- /**
231
- * @typedef {Object} Viz
232
- * @property {string} id - An unique id
233
- * @property {string} title - The title of the map
234
- * @property {string} description - The description of the map
235
- * @property {string} imageUrl - The imageUrl of the map
236
- * @property {number} lastModification - An epoch timestamp in milliseconds
237
- * @property {boolean} privateMap - Optional, whether if this map is private to the user, or can be accessed by others via URL
238
- * @property {*} loadParams - A property to be passed to `downloadMap`
239
- * @public
240
- */
241
-
242
- /**
243
- * The returned object of `downloadMap`. The response object should contain: datasets: [], config: {}, and info: {}
244
- * each dataset object should be {info: {id, label}, data: {...}}
245
- * to inform how kepler should process your data object, pass in `format`
246
- * @typedef {Object} MapResponse
247
- * @property {Object} map
248
- * @property {Array<Object>} map.datasets
249
- * @property {Object} map.config
250
- * @property {Object} map.info
251
- * @property {string} format - one of 'csv': csv file string, 'geojson': geojson object, 'row': row object, 'keplergl': datasets array saved using KeplerGlSchema.save
252
- * @public
253
- */
254
- }
255
- exports.default = Provider;
256
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaWNvbnMiLCJyZXF1aXJlIiwiTkFNRSIsIkRJU1BMQVlfTkFNRSIsIlRIVU1CTkFJTCIsIndpZHRoIiwiaGVpZ2h0IiwiSUNPTiIsIlVwbG9hZCIsIkZJTEVfQ09ORkxJQ1RfTVNHIiwiZXhwb3J0cyIsIlByb3ZpZGVyIiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwibmFtZSIsImRpc3BsYXlOYW1lIiwiaWNvbiIsInRodW1ibmFpbCIsImhhc1ByaXZhdGVTdG9yYWdlIiwiaGFzU2hhcmluZ1VybCIsImdldFNoYXJlVXJsIiwiZnVsbFVybCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImdldE1hcFVybCIsImZ1bGxVUkwiLCJnZXRBY2Nlc3NUb2tlbiIsImdldFVzZXJOYW1lIiwiZ2V0RmlsZUNvbmZsaWN0RXJyb3IiLCJFcnJvciIsImxvZ2luIiwib25DbG91ZExvZ2luU3VjY2VzcyIsImxvZ291dCIsIm9uQ2xvdWRMb2dvdXRTdWNjZXNzIiwidXBsb2FkTWFwIiwiX3JlZiIsIm1hcERhdGEiLCJvcHRpb25zIiwibGlzdE1hcHMiLCJkb3dubG9hZE1hcCIsImxvYWRQYXJhbXMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xvdWQtcHJvdmlkZXJzL3Byb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7VXBsb2FkfSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge01hcERhdGEsIEV4cG9ydEZpbGVPcHRpb25zfSBmcm9tICdhY3Rpb25zL3Byb3ZpZGVyLWFjdGlvbnMnO1xuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCB0eXBlIE1pbGxpc2Vjb25kID0gbnVtYmVyO1xuXG5leHBvcnQgdHlwZSBNYXBMaXN0SXRlbSA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbG9hZFBhcmFtczogYW55O1xuICBpbWFnZVVybD86IHN0cmluZztcbiAgbGFzdE1vZGlmaWNhdGlvbj86IE1pbGxpc2Vjb25kO1xuICBwcml2YXRlTWFwPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRodW1ibmFpbCA9IHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBQcm92aWRlclByb3BzID0ge1xuICBuYW1lPzogc3RyaW5nO1xuICBkaXNwbGF5TmFtZT86IHN0cmluZztcbiAgaWNvbj86IENvbXBvbmVudFR5cGU8SWNvblByb3BzPjtcbiAgdGh1bWJuYWlsPzogVGh1bWJuYWlsO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJY29uUHJvcHMge1xuICBoZWlnaHQ/OiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xufVxuXG5jb25zdCBOQU1FID0gJ2Nsb3VkLXByb3ZpZGVyJztcbmNvbnN0IERJU1BMQVlfTkFNRSA9ICdDbG91ZCBQcm92aWRlcic7XG5jb25zdCBUSFVNQk5BSUwgPSB7d2lkdGg6IDMwMCwgaGVpZ2h0OiAyMDB9O1xuY29uc3QgSUNPTiA9IFVwbG9hZDtcbmV4cG9ydCBjb25zdCBGSUxFX0NPTkZMSUNUX01TRyA9ICdmaWxlX2NvbmZsaWN0Jztcbi8qKlxuICogVGhlIGRlZmF1bHQgcHJvdmlkZXIgY2xhc3NcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLm5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5kaXNwbGF5TmFtZVxuICogQHBhcmFtIHtSZWFjdC5Db21wb25lbnR9IHByb3BzLmljb24gLSBSZWFjdCBlbGVtZW50XG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHMudGh1bWJuYWlsIC0gdGh1bWJuYWlsIHNpemUgb2JqZWN0XG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMudGh1bWJuYWlsLndpZHRoIC0gdGh1bWJuYWlsIHdpZHRoIGluIHBpeGVsc1xuICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLnRodW1ibmFpbC5oZWlnaHQgLSB0aHVtYm5haWwgaGVpZ2h0IGluIHBpeGVsc1xuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqXG4gKiBjb25zdCBteVByb3ZpZGVyID0gbmV3IFByb3ZpZGVyKHtcbiAqICBuYW1lOiAnZm9vJyxcbiAqICBkaXNwbGF5TmFtZTogJ0ZvbyBTdG9yYWdlJ1xuICogIGljb246IEljb24sXG4gKiAgdGh1bWJuYWlsOiB7d2lkdGg6IDMwMCwgaGVpZ2h0OiAyMDB9XG4gKiB9KVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm92aWRlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgaWNvbjogQ29tcG9uZW50VHlwZTxJY29uUHJvcHM+O1xuICB0aHVtYm5haWw6IFRodW1ibmFpbDtcbiAgZ2V0TWFuYWdlbWVudFVybD86ICgpID0+IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogUHJvdmlkZXJQcm9wcykge1xuICAgIHRoaXMubmFtZSA9IHByb3BzLm5hbWUgfHwgTkFNRTtcbiAgICB0aGlzLmRpc3BsYXlOYW1lID0gcHJvcHMuZGlzcGxheU5hbWUgfHwgRElTUExBWV9OQU1FO1xuICAgIHRoaXMuaWNvbiA9IHByb3BzLmljb24gfHwgSUNPTjtcbiAgICB0aGlzLnRodW1ibmFpbCA9IHByb3BzLnRodW1ibmFpbCB8fCBUSFVNQk5BSUw7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIHByb3ZpZGVyIHN1cHBvcnQgdXBsb2FkIG1hcCB0byBhIHByaXZhdGUgc3RvcmFnZS4gSWYgdHJ1dGh5LCB1c2VyIHdpbGwgYmUgZGlzcGxheWVkIHdpdGggdGhlIHN0b3JhZ2Ugc2F2ZSBpY29uIG9uIHRoZSB0b3AgcmlnaHQgb2YgdGhlIHNpZGUgYmFyLlxuICAgKiBAcmV0dXJuc1xuICAgKiBAcHVibGljXG4gICAqL1xuICBoYXNQcml2YXRlU3RvcmFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgcHJvdmlkZXIgc3VwcG9ydCBzaGFyZSBtYXAgdmlhIGEgcHVibGljIHVybCwgaWYgdHJ1dGh5LCB1c2VyIHdpbGwgYmUgZGlzcGxheWVkIHdpdGggYSBzaGFyZSBtYXAgdmlhIHVybCB1bmRlciB0aGUgZXhwb3J0IG1hcCBvcHRpb24gb24gdGhlIHRvcCByaWdodCBvZiB0aGUgc2lkZSBiYXJcbiAgICogQHJldHVybnNcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgaGFzU2hhcmluZ1VybCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYWZ0ZXIgdXNlciBzaGFyZSBhIG1hcCwgdG8gZGlzcGxheSB0aGUgc2hhcmUgdXJsLlxuICAgKiBAcGFyYW0gZnVsbFVybCAtIFdoZXRoZXIgdG8gcmV0dXJuIHRoZSBmdWxsIHVybCB3aXRoIGRvbWFpbiwgb3IganVzdCB0aGUgbG9jYXRpb25cbiAgICogQHJldHVybnMgc2hhcmVVcmxcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgZ2V0U2hhcmVVcmwoZnVsbFVybDogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5IGtlcGxlci5nbCBkZW1vIGFwcCB0byBwdXNoZXMgYSBuZXcgbG9jYXRpb24gdG8gaGlzdG9yeSwgYmVjb21pbmcgdGhlIGN1cnJlbnQgbG9jYXRpb24uXG4gICAqIEBwYXJhbSBmdWxsVVJMIC0gV2hldGhlciB0byByZXR1cm4gdGhlIGZ1bGwgdXJsIHdpdGggZG9tYWluLCBvciBqdXN0IHRoZSBsb2NhdGlvblxuICAgKiBAcmV0dXJucyBtYXBVcmxcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgZ2V0TWFwVXJsKGZ1bGxVUkw6IGJvb2xlYW4gPSB0cnVlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIHRvIGRldGVybWluZSB3aGV0aGVyIHVzZXIgYWxyZWFkeSBsb2dnZWQgaW4gdG8gdGhpcyBwcm92aWRlclxuICAgKiBAcHVibGljXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYSB1c2VyIGFscmVhZHkgbG9nZ2VkIGluXG4gICAqL1xuICBnZXRBY2Nlc3NUb2tlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgdG8gZ2V0IHRoZSB1c2VyIG5hbWUgb2YgdGhlIGN1cnJlbnQgdXNlci4gSXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGNsb3VkIHByb3ZpZGVyIHRpbGUuXG4gICAqIEBwdWJsaWNcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBhIHVzZXIgYWxyZWFkeSBsb2dnZWQgaW5cbiAgICovXG4gIGdldFVzZXJOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgcmV0dXJuIGEgc3RhbmRhcmQgZXJyb3IgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIG92ZXJ3cml0ZSBtYXAgbW9kYWxcbiAgICovXG4gIGdldEZpbGVDb25mbGljdEVycm9yKCkge1xuICAgIHJldHVybiBuZXcgRXJyb3IoRklMRV9DT05GTElDVF9NU0cpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIHdoZW4gdXNlciBjbGljayB0aGUgbG9naW4gYnV0dG9uIGluIHRoZSBjbG91ZCBwcm92aWRlciB0aWxlLlxuICAgKiBVcG9uIGxvZ2luIHN1Y2Nlc3MsIGBvbkNsb3VkTG9naW5TdWNjZXNzYCBoYXMgdG8gYmUgY2FsbGVkIHRvIG5vdGlmeSBrZXBsZXIuZ2wgVUlcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gb25DbG91ZExvZ2luU3VjY2VzcyAtIGNhbGxiYWNrcyB0byBiZSBjYWxsZWQgYWZ0ZXIgbG9naW4gc3VjY2Vzc1xuICAgKiBAcHVibGljXG4gICAqL1xuICBhc3luYyBsb2dpbihvbkNsb3VkTG9naW5TdWNjZXNzKSB7XG4gICAgb25DbG91ZExvZ2luU3VjY2VzcygpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCB3aGVuIHVzZXIgY2xpY2sgdGhlIGxvZ291dCBidXR0b24gdW5kZXIgdGhlIGNsb3VkIHByb3ZpZGVyIHRpbGUuXG4gICAqIFVwb24gbG9naW4gc3VjY2VzcywgYG9uQ2xvdWRMb2dpblN1Y2Nlc3NgIGhhcyB0byBiZSBjYWxsZWQgdG8gbm90aWZ5IGtlcGxlci5nbCBVSVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvbkNsb3VkTG9nb3V0U3VjY2VzcyAtIGNhbGxiYWNrcyB0byBiZSBjYWxsZWQgYWZ0ZXIgbG9nb3V0IHN1Y2Nlc3NcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgYXN5bmMgbG9nb3V0KG9uQ2xvdWRMb2dvdXRTdWNjZXNzOiAoKSA9PiB2b2lkKSB7XG4gICAgb25DbG91ZExvZ291dFN1Y2Nlc3MoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgdG8gdXBsb2FkIG1hcCBmb3Igc2F2aW5nIGFuZCBzaGFyaW5nLiBLZXBsZXIuZ2wgd2lsbCBwYWNrYWdlIG1hcCBkYXRhLCBjb25maWcsIHRpdGxlLCBkZXNjcmlwdGlvbiBhbmQgdGh1bWJuYWlsIGZvciB1cGxvYWQgdG8gc3RvcmFnZS5cbiAgICogV2l0aCB0aGUgb3B0aW9uIHRvIG92ZXJ3cml0ZSBhbHJlYWR5IHNhdmVkIG1hcCwgYW5kIHVwbG9hZCBhcyBwcml2YXRlIG9yIHB1YmxpYyBtYXAuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbVxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW0ubWFwRGF0YSAtIHRoZSBtYXAgb2JqZWN0XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbS5tYXBEYXRhLm1hcCAtIHtkYXRhc2V0cy4gY29uZmlnLCBpbmZvOiB7dGl0bGUsIGRlc2NyaXB0aW9ufX1cbiAgICogQHBhcmFtIHtCbG9ifSBwYXJhbS5tYXBEYXRhLnRodW1ibmFpbCAtIEEgdGh1bWJuYWlsIG9mIGN1cnJlbnQgbWFwLiB0aHVtYm5haWwgc2l6ZSBjYW4gYmUgZGVmaW5lZCBieSBwcm92aWRlciBieSB0aGlzLnRodW1ibmFpbFxuICAgKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtLm9wdGlvbnNdXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3BhcmFtLm9wdGlvbnMub3ZlcndyaXRlXSAtIHdoZXRoZXIgdXNlciBjaG9vc2UgdG8gb3ZlcndyaXRlIGFscmVhZHkgc2F2ZWQgbWFwIHVuZGVyIHRoZSBzYW1lIG5hbWVcbiAgICogQHBhcmFtIHtib29sZWFufSBbcGFyYW0ub3B0aW9ucy5pc1B1YmxpY10gLSB3aGV0aGVyIHVzZXIgd2lzaCB0byBzaGFyZSB0aGUgbWFwIHdpdGggb3RoZXJzLiBpZiBpc1B1YmxpYyBpcyB0cnV0aHksIGtlcGxlciB3aWxsIGNhbGwgdGhpcy5nZXRTaGFyZVVybCgpIHRvIGRpc3BsYXkgYW4gVVJMIHRoZXkgY2FuIHNoYXJlIHdpdGggb3RoZXJzXG4gICAqIEBwdWJsaWNcbiAgICovXG4gIGFzeW5jIHVwbG9hZE1hcCh7XG4gICAgbWFwRGF0YSxcbiAgICBvcHRpb25zID0ge31cbiAgfToge1xuICAgIG1hcERhdGE6IE1hcERhdGE7XG4gICAgb3B0aW9uczogRXhwb3J0RmlsZU9wdGlvbnM7XG4gIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgdG8gZ2V0IGEgbGlzdCBvZiBtYXBzIHNhdmVkIGJ5IHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1c2VyLlxuICAgKiBAcmV0dXJucyB2aXN1YWxpemF0aW9ucyBhbiBhcnJheSBvZiBWaXogb2JqZWN0c1xuICAgKiBAcHVibGljXG4gICAqIEBleGFtcGxlXG4gICAqICBhc3luYyBsaXN0TWFwcygpIHtcbiAgICogICAgcmV0dXJuIFtcbiAgICogICAgICB7XG4gICAqICAgICAgICBpZDogJ2EnLFxuICAgKiAgICAgICAgdGl0bGU6ICdNeSBtYXAnLFxuICAgKiAgICAgICAgZGVzY3JpcHRpb246ICdNeSBmaXJzdCBrZXBsZXIgbWFwJyxcbiAgICogICAgICAgIGltYWdlVXJsOiAnaHR0cDovLycsXG4gICAqICAgICAgICBsYXN0TW9kaWZpY2F0aW9uOiAxNTgyNjc3Nzg3MDAwLFxuICAgKiAgICAgICAgcHJpdmF0ZU1hcDogZmFsc2UsXG4gICAqICAgICAgICBsb2FkUGFyYW1zOiB7fVxuICAgKiAgICAgIH1cbiAgICogICAgXTtcbiAgICogIH1cbiAgICovXG4gIGFzeW5jIGxpc3RNYXBzKCk6IFByb21pc2U8TWFwTGlzdEl0ZW1bXT4ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCB3aGVuIHVzZXIgc2VsZWN0IGEgbWFwIHRvIGxvYWQgZnJvbSB0aGUgc3RvcmFnZSBtYXAgdmlld2VyXG4gICAqIEBwYXJhbSB7Kn0gbG9hZFBhcmFtcyAtIHRoZSBsb2FkUGFyYW1zIHByb3BlcnR5IG9mIGVhY2ggdmlzdWFsaXphdGlvbiBvYmplY3RcbiAgICogQHJldHVybnMgbWFwUmVzcG9uc2UgLSB0aGUgbWFwIG9iamVjdCBjb250YWluaW5nIGRhdGFzZXQgY29uZmlnIGluZm8gYW5kIGZvcm1hdCBvcHRpb25cbiAgICogQHB1YmxpY1xuICAgKiBAZXhhbXBsZVxuICAgKiBhc3luYyBkb3dubG9hZE1hcChsb2FkUGFyYW1zKSB7XG4gICAqICBjb25zdCBtb2NrUmVzcG9uc2UgPSB7XG4gICAqICAgIG1hcDoge1xuICAgKiAgICAgIGRhdGFzZXRzOiBbXSxcbiAgICogICAgICBjb25maWc6IHt9LFxuICAgKiAgICAgIGluZm86IHtcbiAgICogICAgICAgIGFwcDogJ2tlcGxlci5nbCcsXG4gICAqICAgICAgICBjcmVhdGVkX2F0OiAnJ1xuICAgKiAgICAgICAgdGl0bGU6ICd0ZXN0IG1hcCcsXG4gICAqICAgICAgICBkZXNjcmlwdGlvbjogJ0hlbGxvIHRoaXMgaXMgbXkgdGVzdCBkcm9wYm94IG1hcCdcbiAgICogICAgICB9XG4gICAqICAgIH0sXG4gICAqICAgIC8vIHBhc3MgY3N2IGhlcmUgaWYgeW91ciBwcm92aWRlciBjdXJyZW50bHkgb25seSBzdXBwb3J0IHNhdmUgLyBsb2FkIGZpbGUgYXMgY3N2XG4gICAqICAgIGZvcm1hdDogJ2tlcGxlcmdsJ1xuICAgKiAgfTtcbiAgICpcbiAgICogIHJldHVybiBkb3dubG9hZE1hcDtcbiAgICogfVxuICAgKi9cbiAgYXN5bmMgZG93bmxvYWRNYXAobG9hZFBhcmFtcyk6IFByb21pc2U8e21hcDogTWFwRGF0YTsgZm9ybWF0OiBzdHJpbmd9PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0eXBlZGVmIHtPYmplY3R9IFZpelxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gaWQgLSBBbiB1bmlxdWUgaWRcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IHRpdGxlIC0gVGhlIHRpdGxlIG9mIHRoZSBtYXBcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGRlc2NyaXB0aW9uIC0gVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBtYXBcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGltYWdlVXJsIC0gVGhlIGltYWdlVXJsIG9mIHRoZSBtYXBcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGxhc3RNb2RpZmljYXRpb24gLSBBbiBlcG9jaCB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzXG4gICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gcHJpdmF0ZU1hcCAtIE9wdGlvbmFsLCB3aGV0aGVyIGlmIHRoaXMgbWFwIGlzIHByaXZhdGUgdG8gdGhlIHVzZXIsIG9yIGNhbiBiZSBhY2Nlc3NlZCBieSBvdGhlcnMgdmlhIFVSTFxuICAgKiBAcHJvcGVydHkgeyp9IGxvYWRQYXJhbXMgLSBBIHByb3BlcnR5IHRvIGJlIHBhc3NlZCB0byBgZG93bmxvYWRNYXBgXG4gICAqIEBwdWJsaWNcbiAgICovXG5cbiAgLyoqXG4gICAqIFRoZSByZXR1cm5lZCBvYmplY3Qgb2YgYGRvd25sb2FkTWFwYC4gVGhlIHJlc3BvbnNlIG9iamVjdCBzaG91bGQgY29udGFpbjogZGF0YXNldHM6IFtdLCBjb25maWc6IHt9LCBhbmQgaW5mbzoge31cbiAgICogZWFjaCBkYXRhc2V0IG9iamVjdCBzaG91bGQgYmUge2luZm86IHtpZCwgbGFiZWx9LCBkYXRhOiB7Li4ufX1cbiAgICogdG8gaW5mb3JtIGhvdyBrZXBsZXIgc2hvdWxkIHByb2Nlc3MgeW91ciBkYXRhIG9iamVjdCwgcGFzcyBpbiBgZm9ybWF0YFxuICAgKiBAdHlwZWRlZiB7T2JqZWN0fSBNYXBSZXNwb25zZVxuICAgKiBAcHJvcGVydHkge09iamVjdH0gbWFwXG4gICAqIEBwcm9wZXJ0eSB7QXJyYXk8T2JqZWN0Pn0gbWFwLmRhdGFzZXRzXG4gICAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBtYXAuY29uZmlnXG4gICAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBtYXAuaW5mb1xuICAgKiBAcHJvcGVydHkge3N0cmluZ30gZm9ybWF0IC0gb25lIG9mICdjc3YnOiBjc3YgZmlsZSBzdHJpbmcsICdnZW9qc29uJzogZ2VvanNvbiBvYmplY3QsICdyb3cnOiByb3cgb2JqZWN0LCAna2VwbGVyZ2wnOiBkYXRhc2V0cyBhcnJheSBzYXZlZCB1c2luZyBLZXBsZXJHbFNjaGVtYS5zYXZlXG4gICAqIEBwdWJsaWNcbiAgICovXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBb0JBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQXBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFtQ0EsTUFBTUMsSUFBSSxHQUFHLGdCQUFnQjtBQUM3QixNQUFNQyxZQUFZLEdBQUcsZ0JBQWdCO0FBQ3JDLE1BQU1DLFNBQVMsR0FBRztFQUFDQyxLQUFLLEVBQUUsR0FBRztFQUFFQyxNQUFNLEVBQUU7QUFBRyxDQUFDO0FBQzNDLE1BQU1DLElBQUksR0FBR0MsYUFBTTtBQUNaLE1BQU1DLGlCQUFpQixHQUFBQyxPQUFBLENBQUFELGlCQUFBLEdBQUcsZUFBZTtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNlLE1BQU1FLFFBQVEsQ0FBQztFQU81QkMsV0FBV0EsQ0FBQ0MsS0FBb0IsRUFBRTtJQUFBLElBQUFDLGdCQUFBLENBQUFDLE9BQUE7SUFBQSxJQUFBRCxnQkFBQSxDQUFBQyxPQUFBO0lBQUEsSUFBQUQsZ0JBQUEsQ0FBQUMsT0FBQTtJQUFBLElBQUFELGdCQUFBLENBQUFDLE9BQUE7SUFBQSxJQUFBRCxnQkFBQSxDQUFBQyxPQUFBO0lBQ2hDLElBQUksQ0FBQ0MsSUFBSSxHQUFHSCxLQUFLLENBQUNHLElBQUksSUFBSWQsSUFBSTtJQUM5QixJQUFJLENBQUNlLFdBQVcsR0FBR0osS0FBSyxDQUFDSSxXQUFXLElBQUlkLFlBQVk7SUFDcEQsSUFBSSxDQUFDZSxJ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
148
+ /**
149
+ * This method will be called when user click the login button in the cloud provider tile.
150
+ * Upon login success, `onCloudLoginSuccess` has to be called to notify kepler.gl UI
151
+ * @param {function} onCloudLoginSuccess - callbacks to be called after login success
152
+ * @public
153
+ */
154
+ }, {
155
+ key: "login",
156
+ value: (function () {
157
+ var _login = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(onCloudLoginSuccess) {
158
+ return _regenerator["default"].wrap(function _callee$(_context) {
159
+ while (1) switch (_context.prev = _context.next) {
160
+ case 0:
161
+ onCloudLoginSuccess();
162
+ return _context.abrupt("return");
163
+ case 2:
164
+ case "end":
165
+ return _context.stop();
166
+ }
167
+ }, _callee);
168
+ }));
169
+ function login(_x) {
170
+ return _login.apply(this, arguments);
171
+ }
172
+ return login;
173
+ }()
174
+ /**
175
+ * This method will be called when user click the logout button under the cloud provider tile.
176
+ * Upon login success, `onCloudLoginSuccess` has to be called to notify kepler.gl UI
177
+ * @param {function} onCloudLogoutSuccess - callbacks to be called after logout success
178
+ * @public
179
+ */
180
+ )
181
+ }, {
182
+ key: "logout",
183
+ value: (function () {
184
+ var _logout = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(onCloudLogoutSuccess) {
185
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
186
+ while (1) switch (_context2.prev = _context2.next) {
187
+ case 0:
188
+ onCloudLogoutSuccess();
189
+ return _context2.abrupt("return");
190
+ case 2:
191
+ case "end":
192
+ return _context2.stop();
193
+ }
194
+ }, _callee2);
195
+ }));
196
+ function logout(_x2) {
197
+ return _logout.apply(this, arguments);
198
+ }
199
+ return logout;
200
+ }()
201
+ /**
202
+ * This method will be called to upload map for saving and sharing. Kepler.gl will package map data, config, title, description and thumbnail for upload to storage.
203
+ * With the option to overwrite already saved map, and upload as private or public map.
204
+ *
205
+ * @param {Object} param
206
+ * @param {Object} param.mapData - the map object
207
+ * @param {Object} param.mapData.map - {datasets. config, info: {title, description}}
208
+ * @param {Blob} param.mapData.thumbnail - A thumbnail of current map. thumbnail size can be defined by provider by this.thumbnail
209
+ * @param {object} [param.options]
210
+ * @param {boolean} [param.options.overwrite] - whether user choose to overwrite already saved map under the same name
211
+ * @param {boolean} [param.options.isPublic] - whether user wish to share the map with others. if isPublic is truthy, kepler will call this.getShareUrl() to display an URL they can share with others
212
+ * @public
213
+ */
214
+ )
215
+ }, {
216
+ key: "uploadMap",
217
+ value: (function () {
218
+ var _uploadMap = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(_ref) {
219
+ var mapData, _ref$options, options;
220
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
221
+ while (1) switch (_context3.prev = _context3.next) {
222
+ case 0:
223
+ mapData = _ref.mapData, _ref$options = _ref.options, options = _ref$options === void 0 ? {} : _ref$options;
224
+ return _context3.abrupt("return");
225
+ case 2:
226
+ case "end":
227
+ return _context3.stop();
228
+ }
229
+ }, _callee3);
230
+ }));
231
+ function uploadMap(_x3) {
232
+ return _uploadMap.apply(this, arguments);
233
+ }
234
+ return uploadMap;
235
+ }()
236
+ /**
237
+ * This method is called to get a list of maps saved by the current logged in user.
238
+ * @returns visualizations an array of Viz objects
239
+ * @public
240
+ * @example
241
+ * async listMaps() {
242
+ * return [
243
+ * {
244
+ * id: 'a',
245
+ * title: 'My map',
246
+ * description: 'My first kepler map',
247
+ * imageUrl: 'http://',
248
+ * lastModification: 1582677787000,
249
+ * privateMap: false,
250
+ * loadParams: {}
251
+ * }
252
+ * ];
253
+ * }
254
+ */
255
+ )
256
+ }, {
257
+ key: "listMaps",
258
+ value: (function () {
259
+ var _listMaps = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
260
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
261
+ while (1) switch (_context4.prev = _context4.next) {
262
+ case 0:
263
+ return _context4.abrupt("return", []);
264
+ case 1:
265
+ case "end":
266
+ return _context4.stop();
267
+ }
268
+ }, _callee4);
269
+ }));
270
+ function listMaps() {
271
+ return _listMaps.apply(this, arguments);
272
+ }
273
+ return listMaps;
274
+ }()
275
+ /**
276
+ * This method will be called when user select a map to load from the storage map viewer
277
+ * @param {*} loadParams - the loadParams property of each visualization object
278
+ * @returns mapResponse - the map object containing dataset config info and format option
279
+ * @public
280
+ * @example
281
+ * async downloadMap(loadParams) {
282
+ * const mockResponse = {
283
+ * map: {
284
+ * datasets: [],
285
+ * config: {},
286
+ * info: {
287
+ * app: 'kepler.gl',
288
+ * created_at: ''
289
+ * title: 'test map',
290
+ * description: 'Hello this is my test dropbox map'
291
+ * }
292
+ * },
293
+ * // pass csv here if your provider currently only support save / load file as csv
294
+ * format: 'keplergl'
295
+ * };
296
+ *
297
+ * return downloadMap;
298
+ * }
299
+ */
300
+ )
301
+ }, {
302
+ key: "downloadMap",
303
+ value: (function () {
304
+ var _downloadMap = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(loadParams) {
305
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
306
+ while (1) switch (_context5.prev = _context5.next) {
307
+ case 0:
308
+ return _context5.abrupt("return");
309
+ case 1:
310
+ case "end":
311
+ return _context5.stop();
312
+ }
313
+ }, _callee5);
314
+ }));
315
+ function downloadMap(_x4) {
316
+ return _downloadMap.apply(this, arguments);
317
+ }
318
+ return downloadMap;
319
+ }()
320
+ /**
321
+ * @typedef {Object} Viz
322
+ * @property {string} id - An unique id
323
+ * @property {string} title - The title of the map
324
+ * @property {string} description - The description of the map
325
+ * @property {string} imageUrl - The imageUrl of the map
326
+ * @property {number} lastModification - An epoch timestamp in milliseconds
327
+ * @property {boolean} privateMap - Optional, whether if this map is private to the user, or can be accessed by others via URL
328
+ * @property {*} loadParams - A property to be passed to `downloadMap`
329
+ * @public
330
+ */
331
+ /**
332
+ * The returned object of `downloadMap`. The response object should contain: datasets: [], config: {}, and info: {}
333
+ * each dataset object should be {info: {id, label}, data: {...}}
334
+ * to inform how kepler should process your data object, pass in `format`
335
+ * @typedef {Object} MapResponse
336
+ * @property {Object} map
337
+ * @property {Array<Object>} map.datasets
338
+ * @property {Object} map.config
339
+ * @property {Object} map.info
340
+ * @property {string} format - one of 'csv': csv file string, 'geojson': geojson object, 'row': row object, 'keplergl': datasets array saved using KeplerGlSchema.save
341
+ * @public
342
+ */
343
+ )
344
+ }]);
345
+ }();
346
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaWNvbnMiLCJyZXF1aXJlIiwiTkFNRSIsIkRJU1BMQVlfTkFNRSIsIlRIVU1CTkFJTCIsIndpZHRoIiwiaGVpZ2h0IiwiSUNPTiIsIlVwbG9hZCIsIkZJTEVfQ09ORkxJQ1RfTVNHIiwiZXhwb3J0cyIsIlByb3ZpZGVyIiwicHJvcHMiLCJfY2xhc3NDYWxsQ2hlY2syIiwibmFtZSIsImRpc3BsYXlOYW1lIiwiaWNvbiIsInRodW1ibmFpbCIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsImhhc1ByaXZhdGVTdG9yYWdlIiwiaGFzU2hhcmluZ1VybCIsImdldFNoYXJlVXJsIiwiZnVsbFVybCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImdldE1hcFVybCIsImZ1bGxVUkwiLCJnZXRBY2Nlc3NUb2tlbiIsImdldFVzZXJOYW1lIiwiZ2V0RmlsZUNvbmZsaWN0RXJyb3IiLCJFcnJvciIsIl9sb2dpbiIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwib25DbG91ZExvZ2luU3VjY2VzcyIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJhYnJ1cHQiLCJzdG9wIiwibG9naW4iLCJfeCIsImFwcGx5IiwiX2xvZ291dCIsIl9jYWxsZWUyIiwib25DbG91ZExvZ291dFN1Y2Nlc3MiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJsb2dvdXQiLCJfeDIiLCJfdXBsb2FkTWFwIiwiX2NhbGxlZTMiLCJfcmVmIiwibWFwRGF0YSIsIl9yZWYkb3B0aW9ucyIsIm9wdGlvbnMiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJ1cGxvYWRNYXAiLCJfeDMiLCJfbGlzdE1hcHMiLCJfY2FsbGVlNCIsIl9jYWxsZWU0JCIsIl9jb250ZXh0NCIsImxpc3RNYXBzIiwiX2Rvd25sb2FkTWFwIiwiX2NhbGxlZTUiLCJsb2FkUGFyYW1zIiwiX2NhbGxlZTUkIiwiX2NvbnRleHQ1IiwiZG93bmxvYWRNYXAiLCJfeDQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xvdWQtcHJvdmlkZXJzL3Byb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7VXBsb2FkfSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge01hcERhdGEsIEV4cG9ydEZpbGVPcHRpb25zfSBmcm9tICdhY3Rpb25zL3Byb3ZpZGVyLWFjdGlvbnMnO1xuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCB0eXBlIE1pbGxpc2Vjb25kID0gbnVtYmVyO1xuXG5leHBvcnQgdHlwZSBNYXBMaXN0SXRlbSA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbG9hZFBhcmFtczogYW55O1xuICBpbWFnZVVybD86IHN0cmluZztcbiAgbGFzdE1vZGlmaWNhdGlvbj86IE1pbGxpc2Vjb25kO1xuICBwcml2YXRlTWFwPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRodW1ibmFpbCA9IHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBQcm92aWRlclByb3BzID0ge1xuICBuYW1lPzogc3RyaW5nO1xuICBkaXNwbGF5TmFtZT86IHN0cmluZztcbiAgaWNvbj86IENvbXBvbmVudFR5cGU8SWNvblByb3BzPjtcbiAgdGh1bWJuYWlsPzogVGh1bWJuYWlsO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJY29uUHJvcHMge1xuICBoZWlnaHQ/OiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xufVxuXG5jb25zdCBOQU1FID0gJ2Nsb3VkLXByb3ZpZGVyJztcbmNvbnN0IERJU1BMQVlfTkFNRSA9ICdDbG91ZCBQcm92aWRlcic7XG5jb25zdCBUSFVNQk5BSUwgPSB7d2lkdGg6IDMwMCwgaGVpZ2h0OiAyMDB9O1xuY29uc3QgSUNPTiA9IFVwbG9hZDtcbmV4cG9ydCBjb25zdCBGSUxFX0NPTkZMSUNUX01TRyA9ICdmaWxlX2NvbmZsaWN0Jztcbi8qKlxuICogVGhlIGRlZmF1bHQgcHJvdmlkZXIgY2xhc3NcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLm5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5kaXNwbGF5TmFtZVxuICogQHBhcmFtIHtSZWFjdC5Db21wb25lbnR9IHByb3BzLmljb24gLSBSZWFjdCBlbGVtZW50XG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHMudGh1bWJuYWlsIC0gdGh1bWJuYWlsIHNpemUgb2JqZWN0XG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMudGh1bWJuYWlsLndpZHRoIC0gdGh1bWJuYWlsIHdpZHRoIGluIHBpeGVsc1xuICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLnRodW1ibmFpbC5oZWlnaHQgLSB0aHVtYm5haWwgaGVpZ2h0IGluIHBpeGVsc1xuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqXG4gKiBjb25zdCBteVByb3ZpZGVyID0gbmV3IFByb3ZpZGVyKHtcbiAqICBuYW1lOiAnZm9vJyxcbiAqICBkaXNwbGF5TmFtZTogJ0ZvbyBTdG9yYWdlJ1xuICogIGljb246IEljb24sXG4gKiAgdGh1bWJuYWlsOiB7d2lkdGg6IDMwMCwgaGVpZ2h0OiAyMDB9XG4gKiB9KVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm92aWRlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgaWNvbjogQ29tcG9uZW50VHlwZTxJY29uUHJvcHM+O1xuICB0aHVtYm5haWw6IFRodW1ibmFpbDtcbiAgZ2V0TWFuYWdlbWVudFVybD86ICgpID0+IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogUHJvdmlkZXJQcm9wcykge1xuICAgIHRoaXMubmFtZSA9IHByb3BzLm5hbWUgfHwgTkFNRTtcbiAgICB0aGlzLmRpc3BsYXlOYW1lID0gcHJvcHMuZGlzcGxheU5hbWUgfHwgRElTUExBWV9OQU1FO1xuICAgIHRoaXMuaWNvbiA9IHByb3BzLmljb24gfHwgSUNPTjtcbiAgICB0aGlzLnRodW1ibmFpbCA9IHByb3BzLnRodW1ibmFpbCB8fCBUSFVNQk5BSUw7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIHByb3ZpZGVyIHN1cHBvcnQgdXBsb2FkIG1hcCB0byBhIHByaXZhdGUgc3RvcmFnZS4gSWYgdHJ1dGh5LCB1c2VyIHdpbGwgYmUgZGlzcGxheWVkIHdpdGggdGhlIHN0b3JhZ2Ugc2F2ZSBpY29uIG9uIHRoZSB0b3AgcmlnaHQgb2YgdGhlIHNpZGUgYmFyLlxuICAgKiBAcmV0dXJuc1xuICAgKiBAcHVibGljXG4gICAqL1xuICBoYXNQcml2YXRlU3RvcmFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgcHJvdmlkZXIgc3VwcG9ydCBzaGFyZSBtYXAgdmlhIGEgcHVibGljIHVybCwgaWYgdHJ1dGh5LCB1c2VyIHdpbGwgYmUgZGlzcGxheWVkIHdpdGggYSBzaGFyZSBtYXAgdmlhIHVybCB1bmRlciB0aGUgZXhwb3J0IG1hcCBvcHRpb24gb24gdGhlIHRvcCByaWdodCBvZiB0aGUgc2lkZSBiYXJcbiAgICogQHJldHVybnNcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgaGFzU2hhcmluZ1VybCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYWZ0ZXIgdXNlciBzaGFyZSBhIG1hcCwgdG8gZGlzcGxheSB0aGUgc2hhcmUgdXJsLlxuICAgKiBAcGFyYW0gZnVsbFVybCAtIFdoZXRoZXIgdG8gcmV0dXJuIHRoZSBmdWxsIHVybCB3aXRoIGRvbWFpbiwgb3IganVzdCB0aGUgbG9jYXRpb25cbiAgICogQHJldHVybnMgc2hhcmVVcmxcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgZ2V0U2hhcmVVcmwoZnVsbFVybDogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5IGtlcGxlci5nbCBkZW1vIGFwcCB0byBwdXNoZXMgYSBuZXcgbG9jYXRpb24gdG8gaGlzdG9yeSwgYmVjb21pbmcgdGhlIGN1cnJlbnQgbG9jYXRpb24uXG4gICAqIEBwYXJhbSBmdWxsVVJMIC0gV2hldGhlciB0byByZXR1cm4gdGhlIGZ1bGwgdXJsIHdpdGggZG9tYWluLCBvciBqdXN0IHRoZSBsb2NhdGlvblxuICAgKiBAcmV0dXJucyBtYXBVcmxcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgZ2V0TWFwVXJsKGZ1bGxVUkw6IGJvb2xlYW4gPSB0cnVlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIHRvIGRldGVybWluZSB3aGV0aGVyIHVzZXIgYWxyZWFkeSBsb2dnZWQgaW4gdG8gdGhpcyBwcm92aWRlclxuICAgKiBAcHVibGljXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYSB1c2VyIGFscmVhZHkgbG9nZ2VkIGluXG4gICAqL1xuICBnZXRBY2Nlc3NUb2tlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgdG8gZ2V0IHRoZSB1c2VyIG5hbWUgb2YgdGhlIGN1cnJlbnQgdXNlci4gSXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGNsb3VkIHByb3ZpZGVyIHRpbGUuXG4gICAqIEBwdWJsaWNcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBhIHVzZXIgYWxyZWFkeSBsb2dnZWQgaW5cbiAgICovXG4gIGdldFVzZXJOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgcmV0dXJuIGEgc3RhbmRhcmQgZXJyb3IgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIG92ZXJ3cml0ZSBtYXAgbW9kYWxcbiAgICovXG4gIGdldEZpbGVDb25mbGljdEVycm9yKCkge1xuICAgIHJldHVybiBuZXcgRXJyb3IoRklMRV9DT05GTElDVF9NU0cpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIHdoZW4gdXNlciBjbGljayB0aGUgbG9naW4gYnV0dG9uIGluIHRoZSBjbG91ZCBwcm92aWRlciB0aWxlLlxuICAgKiBVcG9uIGxvZ2luIHN1Y2Nlc3MsIGBvbkNsb3VkTG9naW5TdWNjZXNzYCBoYXMgdG8gYmUgY2FsbGVkIHRvIG5vdGlmeSBrZXBsZXIuZ2wgVUlcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gb25DbG91ZExvZ2luU3VjY2VzcyAtIGNhbGxiYWNrcyB0byBiZSBjYWxsZWQgYWZ0ZXIgbG9naW4gc3VjY2Vzc1xuICAgKiBAcHVibGljXG4gICAqL1xuICBhc3luYyBsb2dpbihvbkNsb3VkTG9naW5TdWNjZXNzKSB7XG4gICAgb25DbG91ZExvZ2luU3VjY2VzcygpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCB3aGVuIHVzZXIgY2xpY2sgdGhlIGxvZ291dCBidXR0b24gdW5kZXIgdGhlIGNsb3VkIHByb3ZpZGVyIHRpbGUuXG4gICAqIFVwb24gbG9naW4gc3VjY2VzcywgYG9uQ2xvdWRMb2dpblN1Y2Nlc3NgIGhhcyB0byBiZSBjYWxsZWQgdG8gbm90aWZ5IGtlcGxlci5nbCBVSVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvbkNsb3VkTG9nb3V0U3VjY2VzcyAtIGNhbGxiYWNrcyB0byBiZSBjYWxsZWQgYWZ0ZXIgbG9nb3V0IHN1Y2Nlc3NcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgYXN5bmMgbG9nb3V0KG9uQ2xvdWRMb2dvdXRTdWNjZXNzOiAoKSA9PiB2b2lkKSB7XG4gICAgb25DbG91ZExvZ291dFN1Y2Nlc3MoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgdG8gdXBsb2FkIG1hcCBmb3Igc2F2aW5nIGFuZCBzaGFyaW5nLiBLZXBsZXIuZ2wgd2lsbCBwYWNrYWdlIG1hcCBkYXRhLCBjb25maWcsIHRpdGxlLCBkZXNjcmlwdGlvbiBhbmQgdGh1bWJuYWlsIGZvciB1cGxvYWQgdG8gc3RvcmFnZS5cbiAgICogV2l0aCB0aGUgb3B0aW9uIHRvIG92ZXJ3cml0ZSBhbHJlYWR5IHNhdmVkIG1hcCwgYW5kIHVwbG9hZCBhcyBwcml2YXRlIG9yIHB1YmxpYyBtYXAuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbVxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW0ubWFwRGF0YSAtIHRoZSBtYXAgb2JqZWN0XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbS5tYXBEYXRhLm1hcCAtIHtkYXRhc2V0cy4gY29uZmlnLCBpbmZvOiB7dGl0bGUsIGRlc2NyaXB0aW9ufX1cbiAgICogQHBhcmFtIHtCbG9ifSBwYXJhbS5tYXBEYXRhLnRodW1ibmFpbCAtIEEgdGh1bWJuYWlsIG9mIGN1cnJlbnQgbWFwLiB0aHVtYm5haWwgc2l6ZSBjYW4gYmUgZGVmaW5lZCBieSBwcm92aWRlciBieSB0aGlzLnRodW1ibmFpbFxuICAgKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtLm9wdGlvbnNdXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3BhcmFtLm9wdGlvbnMub3ZlcndyaXRlXSAtIHdoZXRoZXIgdXNlciBjaG9vc2UgdG8gb3ZlcndyaXRlIGFscmVhZHkgc2F2ZWQgbWFwIHVuZGVyIHRoZSBzYW1lIG5hbWVcbiAgICogQHBhcmFtIHtib29sZWFufSBbcGFyYW0ub3B0aW9ucy5pc1B1YmxpY10gLSB3aGV0aGVyIHVzZXIgd2lzaCB0byBzaGFyZSB0aGUgbWFwIHdpdGggb3RoZXJzLiBpZiBpc1B1YmxpYyBpcyB0cnV0aHksIGtlcGxlciB3aWxsIGNhbGwgdGhpcy5nZXRTaGFyZVVybCgpIHRvIGRpc3BsYXkgYW4gVVJMIHRoZXkgY2FuIHNoYXJlIHdpdGggb3RoZXJzXG4gICAqIEBwdWJsaWNcbiAgICovXG4gIGFzeW5jIHVwbG9hZE1hcCh7XG4gICAgbWFwRGF0YSxcbiAgICBvcHRpb25zID0ge31cbiAgfToge1xuICAgIG1hcERhdGE6IE1hcERhdGE7XG4gICAgb3B0aW9uczogRXhwb3J0RmlsZU9wdGlvbnM7XG4gIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgdG8gZ2V0IGEgbGlzdCBvZiBtYXBzIHNhdmVkIGJ5IHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1c2VyLlxuICAgKiBAcmV0dXJucyB2aXN1YWxpemF0aW9ucyBhbiBhcnJheSBvZiBWaXogb2JqZWN0c1xuICAgKiBAcHVibGljXG4gICAqIEBleGFtcGxlXG4gICAqICBhc3luYyBsaXN0TWFwcygpIHtcbiAgICogICAgcmV0dXJuIFtcbiAgICogICAgICB7XG4gICAqICAgICAgICBpZDogJ2EnLFxuICAgKiAgICAgICAgdGl0bGU6ICdNeSBtYXAnLFxuICAgKiAgICAgICAgZGVzY3JpcHRpb246ICdNeSBmaXJzdCBrZXBsZXIgbWFwJyxcbiAgICogICAgICAgIGltYWdlVXJsOiAnaHR0cDovLycsXG4gICAqICAgICAgICBsYXN0TW9kaWZpY2F0aW9uOiAxNTgyNjc3Nzg3MDAwLFxuICAgKiAgICAgICAgcHJpdmF0ZU1hcDogZmFsc2UsXG4gICAqICAgICAgICBsb2FkUGFyYW1zOiB7fVxuICAgKiAgICAgIH1cbiAgICogICAgXTtcbiAgICogIH1cbiAgICovXG4gIGFzeW5jIGxpc3RNYXBzKCk6IFByb21pc2U8TWFwTGlzdEl0ZW1bXT4ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCB3aGVuIHVzZXIgc2VsZWN0IGEgbWFwIHRvIGxvYWQgZnJvbSB0aGUgc3RvcmFnZSBtYXAgdmlld2VyXG4gICAqIEBwYXJhbSB7Kn0gbG9hZFBhcmFtcyAtIHRoZSBsb2FkUGFyYW1zIHByb3BlcnR5IG9mIGVhY2ggdmlzdWFsaXphdGlvbiBvYmplY3RcbiAgICogQHJldHVybnMgbWFwUmVzcG9uc2UgLSB0aGUgbWFwIG9iamVjdCBjb250YWluaW5nIGRhdGFzZXQgY29uZmlnIGluZm8gYW5kIGZvcm1hdCBvcHRpb25cbiAgICogQHB1YmxpY1xuICAgKiBAZXhhbXBsZVxuICAgKiBhc3luYyBkb3dubG9hZE1hcChsb2FkUGFyYW1zKSB7XG4gICAqICBjb25zdCBtb2NrUmVzcG9uc2UgPSB7XG4gICAqICAgIG1hcDoge1xuICAgKiAgICAgIGRhdGFzZXRzOiBbXSxcbiAgICogICAgICBjb25maWc6IHt9LFxuICAgKiAgICAgIGluZm86IHtcbiAgICogICAgICAgIGFwcDogJ2tlcGxlci5nbCcsXG4gICAqICAgICAgICBjcmVhdGVkX2F0OiAnJ1xuICAgKiAgICAgICAgdGl0bGU6ICd0ZXN0IG1hcCcsXG4gICAqICAgICAgICBkZXNjcmlwdGlvbjogJ0hlbGxvIHRoaXMgaXMgbXkgdGVzdCBkcm9wYm94IG1hcCdcbiAgICogICAgICB9XG4gICAqICAgIH0sXG4gICAqICAgIC8vIHBhc3MgY3N2IGhlcmUgaWYgeW91ciBwcm92aWRlciBjdXJyZW50bHkgb25seSBzdXBwb3J0IHNhdmUgLyBsb2FkIGZpbGUgYXMgY3N2XG4gICAqICAgIGZvcm1hdDogJ2tlcGxlcmdsJ1xuICAgKiAgfTtcbiAgICpcbiAgICogIHJldHVybiBkb3dubG9hZE1hcDtcbiAgICogfVxuICAgKi9cbiAgYXN5bmMgZG93bmxvYWRNYXAobG9hZFBhcmFtcyk6IFByb21pc2U8e21hcDogTWFwRGF0YTsgZm9ybWF0OiBzdHJpbmd9PiB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0eXBlZGVmIHtPYmplY3R9IFZpelxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gaWQgLSBBbiB1bmlxdWUgaWRcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IHRpdGxlIC0gVGhlIHRpdGxlIG9mIHRoZSBtYXBcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGRlc2NyaXB0aW9uIC0gVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBtYXBcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGltYWdlVXJsIC0gVGhlIGltYWdlVXJsIG9mIHRoZSBtYXBcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGxhc3RNb2RpZmljYXRpb24gLSBBbiBlcG9jaCB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzXG4gICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gcHJpdmF0ZU1hcCAtIE9wdGlvbmFsLCB3aGV0aGVyIGlmIHRoaXMgbWFwIGlzIHByaXZhdGUgdG8gdGhlIHVzZXIsIG9yIGNhbiBiZSBhY2Nlc3NlZCBieSBvdGhlcnMgdmlhIFVSTFxuICAgKiBAcHJvcGVydHkgeyp9IGxvYWRQYXJhbXMgLSBBIHByb3BlcnR5IHRvIGJlIHBhc3NlZCB0byBgZG93bmxvYWRNYXBgXG4gICAqIEBwdWJsaWNcbiAgICovXG5cbiAgLyoqXG4gICAqIFRoZSByZXR1cm5lZCBvYmplY3Qgb2YgYGRvd25sb2FkTWFwYC4gVGhlIHJlc3BvbnNlIG9iamVjdCBzaG91bGQgY29udGFpbjogZGF0YXNldHM6IFtdLCBjb25maWc6IHt9LCBhbmQgaW5mbzoge31cbiAgICogZWFjaCBkYXRhc2V0IG9iamVjdCBzaG91bGQgYmUge2luZm86IHtpZCwgbGFiZWx9LCBkYXRhOiB7Li4ufX1cbiAgICogdG8gaW5mb3JtIGhvdyBrZXBsZXIgc2hvdWxkIHByb2Nlc3MgeW91ciBkYXRhIG9iamVjdCwgcGFzcyBpbiBgZm9ybWF0YFxuICAgKiBAdHlwZWRlZiB7T2JqZWN0fSBNYXBSZXNwb25zZVxuICAgKiBAcHJvcGVydHkge09iamVjdH0gbWFwXG4gICAqIEBwcm9wZXJ0eSB7QXJyYXk8T2JqZWN0Pn0gbWFwLmRhdGFzZXRzXG4gICAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBtYXAuY29uZmlnXG4gICAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBtYXAuaW5mb1xuICAgKiBAcHJvcGVydHkge3N0cmluZ30gZm9ybWF0IC0gb25lIG9mICdjc3YnOiBjc3YgZmlsZSBzdHJpbmcsICdnZW9qc29uJzogZ2VvanNvbiBvYmplY3QsICdyb3cnOiByb3cgb2JqZWN0LCAna2VwbGVyZ2wnOiBkYXRhc2V0cyBhcnJheSBzYXZlZCB1c2luZyBLZXBsZXJHbFNjaGVtYS5zYXZlXG4gICAqIEBwdWJsaWNcbiAgICovXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQXBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFtQ0EsSUFBTUMsSUFBSSxHQUFHLGdCQUFnQjtBQUM3QixJQUFNQyxZQUFZLEdBQUcsZ0JBQWdCO0FBQ3JDLElBQU1DLFNBQVMsR0FBRztFQUFDQyxLQUFLLEVBQUUsR0FBRztFQUFFQyxNQUFNLEVBQUU7QUFBRyxDQUFDO0FBQzNDLElBQU1DLElBQUksR0FBR0MsYUFBTTtBQUNaLElBQU1DLGlCQUFpQixHQUFBQyxPQUFBLENBQUFELGlCQUFBLEdBQUcsZUFBZTtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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