@carto/kepler.gl 0.0.74 → 0.0.75-alpha.deckv9.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 (416) hide show
  1. package/dist/actions/action-wrapper.js +20 -48
  2. package/dist/actions/actions.js +10 -19
  3. package/dist/actions/identity-actions.js +8 -17
  4. package/dist/actions/index.js +7 -24
  5. package/dist/actions/map-state-actions.js +10 -19
  6. package/dist/actions/map-style-actions.js +20 -35
  7. package/dist/actions/provider-actions.js +26 -42
  8. package/dist/actions/ui-state-actions.js +42 -70
  9. package/dist/actions/vis-state-actions.js +102 -162
  10. package/dist/cloud-providers/index.js +8 -8
  11. package/dist/cloud-providers/provider.js +55 -94
  12. package/dist/components/bottom-widget.js +47 -48
  13. package/dist/components/common/action-panel.js +39 -38
  14. package/dist/components/common/animation-control/animation-control.js +40 -38
  15. package/dist/components/common/animation-control/animation-controller.js +47 -70
  16. package/dist/components/common/animation-control/animation-speed-slider.js +28 -38
  17. package/dist/components/common/animation-control/floating-time-display.js +56 -67
  18. package/dist/components/common/animation-control/playback-controls.js +64 -80
  19. package/dist/components/common/animation-control/speed-control.js +26 -24
  20. package/dist/components/common/checkbox.js +31 -52
  21. package/dist/components/common/color-legend.js +40 -72
  22. package/dist/components/common/data-table/button.js +29 -22
  23. package/dist/components/common/data-table/canvas.js +21 -10
  24. package/dist/components/common/data-table/cell-size.js +54 -58
  25. package/dist/components/common/data-table/grid.js +30 -31
  26. package/dist/components/common/data-table/index.js +91 -133
  27. package/dist/components/common/data-table/option-dropdown.js +29 -33
  28. package/dist/components/common/dataset-label.js +21 -13
  29. package/dist/components/common/error-boundary.js +25 -30
  30. package/dist/components/common/field-selector.js +35 -69
  31. package/dist/components/common/field-token.js +21 -16
  32. package/dist/components/common/file-uploader/file-drop.js +40 -55
  33. package/dist/components/common/file-uploader/file-upload-progress.js +32 -30
  34. package/dist/components/common/file-uploader/file-upload.js +52 -91
  35. package/dist/components/common/file-uploader/upload-button.js +31 -42
  36. package/dist/components/common/histogram-plot.js +32 -27
  37. package/dist/components/common/icons/add.js +27 -27
  38. package/dist/components/common/icons/anchor_window.js +3 -9
  39. package/dist/components/common/icons/arrow-down-alt.js +27 -27
  40. package/dist/components/common/icons/arrow-down-solid .js +27 -27
  41. package/dist/components/common/icons/arrow-down.js +27 -27
  42. package/dist/components/common/icons/arrow-left.js +27 -27
  43. package/dist/components/common/icons/arrow-right.js +27 -27
  44. package/dist/components/common/icons/arrow-up-alt.js +27 -27
  45. package/dist/components/common/icons/arrow-up-solid.js +27 -27
  46. package/dist/components/common/icons/arrow-up.js +27 -27
  47. package/dist/components/common/icons/base.js +38 -42
  48. package/dist/components/common/icons/bug.js +27 -27
  49. package/dist/components/common/icons/cancel.js +27 -27
  50. package/dist/components/common/icons/checkmark.js +27 -28
  51. package/dist/components/common/icons/chevron-right.js +27 -27
  52. package/dist/components/common/icons/clipboard.js +27 -27
  53. package/dist/components/common/icons/clock.js +27 -27
  54. package/dist/components/common/icons/close.js +27 -27
  55. package/dist/components/common/icons/code-alt.js +27 -28
  56. package/dist/components/common/icons/copy.js +27 -28
  57. package/dist/components/common/icons/crosshairs.js +27 -28
  58. package/dist/components/common/icons/cube-3d.js +27 -27
  59. package/dist/components/common/icons/cursor-click.js +27 -27
  60. package/dist/components/common/icons/data-table.js +27 -27
  61. package/dist/components/common/icons/db.js +27 -27
  62. package/dist/components/common/icons/delete.js +27 -27
  63. package/dist/components/common/icons/docs.js +27 -27
  64. package/dist/components/common/icons/drag-n-drop.js +27 -27
  65. package/dist/components/common/icons/draw-polygon.js +27 -27
  66. package/dist/components/common/icons/email.js +27 -27
  67. package/dist/components/common/icons/expand.js +27 -27
  68. package/dist/components/common/icons/eye-seen.js +27 -27
  69. package/dist/components/common/icons/eye-unseen.js +27 -27
  70. package/dist/components/common/icons/file-type.js +23 -16
  71. package/dist/components/common/icons/file.js +27 -27
  72. package/dist/components/common/icons/files.js +24 -26
  73. package/dist/components/common/icons/filter-funnel.js +27 -27
  74. package/dist/components/common/icons/free-window.js +3 -9
  75. package/dist/components/common/icons/gear.js +27 -27
  76. package/dist/components/common/icons/hash.js +27 -27
  77. package/dist/components/common/icons/histogram.js +24 -25
  78. package/dist/components/common/icons/index.js +63 -138
  79. package/dist/components/common/icons/info.js +27 -28
  80. package/dist/components/common/icons/layers.js +27 -27
  81. package/dist/components/common/icons/left-arrow.js +27 -28
  82. package/dist/components/common/icons/legend.js +27 -27
  83. package/dist/components/common/icons/line-chart.js +27 -27
  84. package/dist/components/common/icons/login.js +27 -27
  85. package/dist/components/common/icons/logout.js +27 -27
  86. package/dist/components/common/icons/map-icon.js +27 -28
  87. package/dist/components/common/icons/map.js +27 -28
  88. package/dist/components/common/icons/messages.js +27 -27
  89. package/dist/components/common/icons/minus.js +27 -27
  90. package/dist/components/common/icons/pause.js +27 -27
  91. package/dist/components/common/icons/picture.js +24 -26
  92. package/dist/components/common/icons/pin.js +27 -27
  93. package/dist/components/common/icons/play.js +27 -27
  94. package/dist/components/common/icons/polygon.js +27 -27
  95. package/dist/components/common/icons/rectangle.js +27 -27
  96. package/dist/components/common/icons/reduce.js +27 -27
  97. package/dist/components/common/icons/reset.js +27 -27
  98. package/dist/components/common/icons/rocket.js +27 -27
  99. package/dist/components/common/icons/save.js +27 -27
  100. package/dist/components/common/icons/save2.js +27 -27
  101. package/dist/components/common/icons/search.js +27 -27
  102. package/dist/components/common/icons/settings.js +27 -27
  103. package/dist/components/common/icons/share.js +27 -27
  104. package/dist/components/common/icons/split.js +27 -27
  105. package/dist/components/common/icons/square-select.js +27 -27
  106. package/dist/components/common/icons/swap-horizontal.js +27 -28
  107. package/dist/components/common/icons/table.js +27 -27
  108. package/dist/components/common/icons/trash.js +27 -27
  109. package/dist/components/common/icons/upload.js +27 -27
  110. package/dist/components/common/icons/vert-dots.js +27 -27
  111. package/dist/components/common/icons/vert-three-dots.js +27 -27
  112. package/dist/components/common/icons/warning.js +27 -28
  113. package/dist/components/common/image-preview.js +36 -29
  114. package/dist/components/common/info-helper.js +26 -25
  115. package/dist/components/common/item-selector/accessor.js +3 -5
  116. package/dist/components/common/item-selector/chickleted-input.js +41 -43
  117. package/dist/components/common/item-selector/dropdown-list.js +44 -74
  118. package/dist/components/common/item-selector/item-selector-submenu.js +29 -38
  119. package/dist/components/common/item-selector/item-selector.js +36 -84
  120. package/dist/components/common/item-selector/typeahead.js +37 -83
  121. package/dist/components/common/line-chart.js +39 -36
  122. package/dist/components/common/loading-spinner.js +33 -25
  123. package/dist/components/common/logo.js +24 -22
  124. package/dist/components/common/map-layer-selector.js +23 -16
  125. package/dist/components/common/modal.js +36 -61
  126. package/dist/components/common/portaled.js +56 -97
  127. package/dist/components/common/progress-bar.js +29 -20
  128. package/dist/components/common/range-brush.js +63 -104
  129. package/dist/components/common/range-plot.js +47 -52
  130. package/dist/components/common/range-slider.js +52 -78
  131. package/dist/components/common/slider/mouse-event.js +11 -37
  132. package/dist/components/common/slider/slider-bar-handle.js +31 -39
  133. package/dist/components/common/slider/slider-handle.js +35 -44
  134. package/dist/components/common/slider/slider.js +55 -82
  135. package/dist/components/common/styled-components.js +64 -169
  136. package/dist/components/common/switch.js +22 -16
  137. package/dist/components/common/time-range-slider-time-title.js +24 -19
  138. package/dist/components/common/time-range-slider.js +41 -38
  139. package/dist/components/common/time-slider-marker.js +36 -41
  140. package/dist/components/common/toolbar-item.js +22 -16
  141. package/dist/components/common/toolbar.js +21 -10
  142. package/dist/components/common/vertical-toolbar.js +21 -10
  143. package/dist/components/container.js +49 -70
  144. package/dist/components/context.js +6 -10
  145. package/dist/components/editor/constants.js +6 -8
  146. package/dist/components/editor/editor.js +40 -72
  147. package/dist/components/editor/feature-action-panel.js +35 -43
  148. package/dist/components/editor/feature-styles.js +35 -40
  149. package/dist/components/editor/handle-style.js +35 -37
  150. package/dist/components/filters/components.js +21 -10
  151. package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +14 -25
  152. package/dist/components/filters/filter-panels/multi-select-filter-panel.js +14 -21
  153. package/dist/components/filters/filter-panels/new-filter-panel.js +13 -23
  154. package/dist/components/filters/filter-panels/polygon-filter-panel.js +13 -25
  155. package/dist/components/filters/filter-panels/range-filter-panel.js +14 -21
  156. package/dist/components/filters/filter-panels/single-select-filter-panel.js +14 -21
  157. package/dist/components/filters/filter-panels/time-range-filter-panel.js +14 -23
  158. package/dist/components/filters/index.js +11 -17
  159. package/dist/components/filters/multi-select-filter.js +3 -9
  160. package/dist/components/filters/polygon-filter.js +8 -18
  161. package/dist/components/filters/range-filter.js +3 -8
  162. package/dist/components/filters/single-select-filter.js +3 -9
  163. package/dist/components/filters/time-range-filter.js +7 -18
  164. package/dist/components/filters/time-widget.js +41 -51
  165. package/dist/components/geocoder/geocoder.js +95 -128
  166. package/dist/components/geocoder-panel.js +37 -62
  167. package/dist/components/index.js +356 -498
  168. package/dist/components/injector.js +42 -58
  169. package/dist/components/kepler-gl.js +65 -158
  170. package/dist/components/map/coordinate-info.js +4 -13
  171. package/dist/components/map/layer-hover-info.js +40 -48
  172. package/dist/components/map/layer-selector-panel.js +17 -30
  173. package/dist/components/map/locale-panel.js +13 -27
  174. package/dist/components/map/map-control-panel.js +27 -24
  175. package/dist/components/map/map-control-toolbar.js +21 -11
  176. package/dist/components/map/map-control-tooltip.js +4 -11
  177. package/dist/components/map/map-control.js +26 -27
  178. package/dist/components/map/map-draw-panel.js +12 -29
  179. package/dist/components/map/map-legend-panel.js +17 -34
  180. package/dist/components/map/map-legend.js +52 -70
  181. package/dist/components/map/map-popover.js +41 -57
  182. package/dist/components/map/split-map-button.js +13 -25
  183. package/dist/components/map/toggle-3d-button.js +10 -21
  184. package/dist/components/map-container.js +98 -145
  185. package/dist/components/maps-layout.js +24 -26
  186. package/dist/components/modal-container.js +60 -112
  187. package/dist/components/modals/add-map-style-modal.js +37 -67
  188. package/dist/components/modals/cloud-tile.js +36 -36
  189. package/dist/components/modals/data-table-modal.js +51 -81
  190. package/dist/components/modals/delete-data-modal.js +24 -20
  191. package/dist/components/modals/error-display.js +3 -10
  192. package/dist/components/modals/export-data-modal.js +37 -54
  193. package/dist/components/modals/export-image-modal.js +31 -28
  194. package/dist/components/modals/export-map-modal/components.js +27 -27
  195. package/dist/components/modals/export-map-modal/export-html-map.js +27 -27
  196. package/dist/components/modals/export-map-modal/export-json-map.js +22 -22
  197. package/dist/components/modals/export-map-modal/export-map-modal.js +20 -40
  198. package/dist/components/modals/image-modal-container.js +9 -16
  199. package/dist/components/modals/load-data-modal.js +29 -33
  200. package/dist/components/modals/load-storage-map.js +42 -77
  201. package/dist/components/modals/loading-dialog.js +24 -18
  202. package/dist/components/modals/modal-dialog.js +3 -7
  203. package/dist/components/modals/modal-tabs.js +29 -29
  204. package/dist/components/modals/overwrite-map-modal.js +29 -28
  205. package/dist/components/modals/provider-modal-container.js +27 -27
  206. package/dist/components/modals/save-map-modal.js +43 -48
  207. package/dist/components/modals/share-map-modal.js +42 -53
  208. package/dist/components/modals/status-panel.js +24 -25
  209. package/dist/components/modals/storage-map-viewer.js +30 -43
  210. package/dist/components/notification-panel/notification-item.js +33 -47
  211. package/dist/components/notification-panel.js +30 -36
  212. package/dist/components/performance.js +11 -36
  213. package/dist/components/plot-container.js +42 -72
  214. package/dist/components/side-panel/cloud-storage-dropdown.js +4 -10
  215. package/dist/components/side-panel/common/dataset-info.js +20 -13
  216. package/dist/components/side-panel/common/dataset-tag.js +21 -12
  217. package/dist/components/side-panel/common/dataset-title.js +37 -52
  218. package/dist/components/side-panel/common/source-data-catalog.js +26 -22
  219. package/dist/components/side-panel/common/source-data-selector.js +34 -40
  220. package/dist/components/side-panel/custom-panel.js +5 -9
  221. package/dist/components/side-panel/filter-manager.js +18 -29
  222. package/dist/components/side-panel/filter-panel/filter-panel-header.js +30 -30
  223. package/dist/components/side-panel/filter-panel/filter-panel.js +36 -55
  224. package/dist/components/side-panel/interaction-manager.js +5 -12
  225. package/dist/components/side-panel/interaction-panel/brush-config.js +23 -19
  226. package/dist/components/side-panel/interaction-panel/interaction-panel.js +36 -59
  227. package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +34 -74
  228. package/dist/components/side-panel/interaction-panel/tooltip-config.js +28 -40
  229. package/dist/components/side-panel/layer-manager.js +51 -82
  230. package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +3 -10
  231. package/dist/components/side-panel/layer-panel/color-palette.js +27 -23
  232. package/dist/components/side-panel/layer-panel/color-range-selector.js +52 -98
  233. package/dist/components/side-panel/layer-panel/color-selector.js +36 -67
  234. package/dist/components/side-panel/layer-panel/column-selector.js +26 -25
  235. package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +2 -6
  236. package/dist/components/side-panel/layer-panel/custom-palette.js +37 -71
  237. package/dist/components/side-panel/layer-panel/custom-picker.js +32 -45
  238. package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +8 -16
  239. package/dist/components/side-panel/layer-panel/hex-column-config.js +12 -34
  240. package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +2 -10
  241. package/dist/components/side-panel/layer-panel/layer-column-config.js +31 -27
  242. package/dist/components/side-panel/layer-panel/layer-config-group.js +46 -80
  243. package/dist/components/side-panel/layer-panel/layer-configurator.js +158 -249
  244. package/dist/components/side-panel/layer-panel/layer-panel-header.js +52 -66
  245. package/dist/components/side-panel/layer-panel/layer-panel.js +33 -54
  246. package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +28 -22
  247. package/dist/components/side-panel/layer-panel/layer-type-list-item.js +22 -18
  248. package/dist/components/side-panel/layer-panel/layer-type-selector.js +29 -32
  249. package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +35 -40
  250. package/dist/components/side-panel/layer-panel/single-color-palette.js +32 -42
  251. package/dist/components/side-panel/layer-panel/text-label-panel.js +31 -42
  252. package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +39 -52
  253. package/dist/components/side-panel/layer-panel/vis-config-slider.js +10 -19
  254. package/dist/components/side-panel/layer-panel/vis-config-switch.js +28 -29
  255. package/dist/components/side-panel/map-manager.js +32 -46
  256. package/dist/components/side-panel/map-style-panel/map-layer-selector.js +28 -31
  257. package/dist/components/side-panel/map-style-panel/map-style-selector.js +26 -24
  258. package/dist/components/side-panel/panel-dropdown.js +28 -35
  259. package/dist/components/side-panel/panel-header-action.js +38 -43
  260. package/dist/components/side-panel/panel-header.js +54 -92
  261. package/dist/components/side-panel/panel-tab.js +24 -20
  262. package/dist/components/side-panel/panel-title.js +21 -10
  263. package/dist/components/side-panel/panel-toggle.js +26 -23
  264. package/dist/components/side-panel/side-bar.js +37 -53
  265. package/dist/components/side-panel.js +56 -65
  266. package/dist/connect/keplergl-connect.js +5 -14
  267. package/dist/connect/with-local-selector.js +33 -38
  268. package/dist/constants/action-types.js +5 -6
  269. package/dist/constants/color-palette.js +12 -23
  270. package/dist/constants/color-ranges.js +32 -31
  271. package/dist/constants/custom-color-ranges.js +9 -14
  272. package/dist/constants/default-settings.js +154 -239
  273. package/dist/constants/index.js +95 -103
  274. package/dist/constants/keyevent.js +3 -7
  275. package/dist/constants/tooltip.js +7 -10
  276. package/dist/constants/user-feedbacks.js +5 -6
  277. package/dist/constants/user-guides.js +12 -20
  278. package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +29 -32
  279. package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +10 -43
  280. package/dist/deckgl-layers/cluster-layer/cluster-layer.js +54 -75
  281. package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +29 -32
  282. package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +29 -30
  283. package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +29 -30
  284. package/dist/deckgl-layers/layer-utils/cluster-utils.js +10 -21
  285. package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +75 -132
  286. package/dist/deckgl-layers/layer-utils/shader-utils.js +1 -5
  287. package/dist/deckgl-layers/line-layer/line-layer.js +27 -34
  288. package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +26 -30
  289. package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +33 -39
  290. package/dist/index.js +4 -23
  291. package/dist/layers/aggregation-layer.js +63 -97
  292. package/dist/layers/arc-layer/arc-layer-icon.js +27 -27
  293. package/dist/layers/arc-layer/arc-layer.js +48 -73
  294. package/dist/layers/base-layer.js +255 -406
  295. package/dist/layers/cluster-layer/cluster-layer-icon.js +27 -27
  296. package/dist/layers/cluster-layer/cluster-layer.js +33 -44
  297. package/dist/layers/default-layer-icon.js +27 -27
  298. package/dist/layers/geojson-layer/geojson-layer-icon.js +27 -27
  299. package/dist/layers/geojson-layer/geojson-layer.js +54 -87
  300. package/dist/layers/geojson-layer/geojson-utils.js +35 -47
  301. package/dist/layers/grid-layer/grid-layer-icon.js +27 -27
  302. package/dist/layers/grid-layer/grid-layer.js +30 -41
  303. package/dist/layers/grid-layer/grid-utils.js +6 -9
  304. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +27 -27
  305. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +48 -80
  306. package/dist/layers/h3-hexagon-layer/h3-utils.js +10 -21
  307. package/dist/layers/heatmap-layer/heatmap-layer-icon.js +27 -27
  308. package/dist/layers/heatmap-layer/heatmap-layer.js +45 -72
  309. package/dist/layers/hexagon-layer/hexagon-layer-icon.js +27 -27
  310. package/dist/layers/hexagon-layer/hexagon-layer.js +30 -42
  311. package/dist/layers/hexagon-layer/hexagon-utils.js +3 -15
  312. package/dist/layers/icon-layer/icon-info-modal.js +23 -26
  313. package/dist/layers/icon-layer/icon-layer-icon.js +27 -27
  314. package/dist/layers/icon-layer/icon-layer.js +59 -97
  315. package/dist/layers/index.js +38 -39
  316. package/dist/layers/layer-factory.js +38 -42
  317. package/dist/layers/layer-text-label.js +7 -17
  318. package/dist/layers/layer-update.js +3 -14
  319. package/dist/layers/line-layer/line-layer-icon.js +27 -27
  320. package/dist/layers/line-layer/line-layer.js +46 -66
  321. package/dist/layers/mapbox-utils.js +38 -51
  322. package/dist/layers/mapboxgl-layer.js +43 -58
  323. package/dist/layers/point-layer/point-layer-icon.js +27 -27
  324. package/dist/layers/point-layer/point-layer.js +57 -90
  325. package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +41 -73
  326. package/dist/layers/s2-geometry-layer/s2-layer-icon.js +27 -27
  327. package/dist/layers/s2-geometry-layer/s2-utils.js +5 -11
  328. package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +21 -15
  329. package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +27 -27
  330. package/dist/layers/scenegraph-layer/scenegraph-layer.js +52 -75
  331. package/dist/layers/trip-layer/trip-info-modal.js +21 -16
  332. package/dist/layers/trip-layer/trip-layer-icon.js +27 -27
  333. package/dist/layers/trip-layer/trip-layer.js +51 -93
  334. package/dist/layers/trip-layer/trip-utils.js +16 -39
  335. package/dist/layers/types.js +3 -6
  336. package/dist/localization/en.js +22 -11
  337. package/dist/localization/formatted-message.js +5 -10
  338. package/dist/localization/index.js +7 -13
  339. package/dist/localization/locales.js +7 -12
  340. package/dist/middleware/index.js +2 -5
  341. package/dist/processors/data-processor.js +113 -177
  342. package/dist/processors/file-handler.js +200 -276
  343. package/dist/processors/index.js +33 -35
  344. package/dist/reducers/combined-updaters.js +35 -46
  345. package/dist/reducers/composer-helpers.js +28 -27
  346. package/dist/reducers/composers.js +25 -12
  347. package/dist/reducers/core.js +13 -46
  348. package/dist/reducers/index.js +24 -38
  349. package/dist/reducers/map-state-updaters.js +53 -65
  350. package/dist/reducers/map-state.js +31 -26
  351. package/dist/reducers/map-style-updaters.js +92 -136
  352. package/dist/reducers/map-style.js +31 -26
  353. package/dist/reducers/provider-state-updaters.js +92 -167
  354. package/dist/reducers/provider-state.js +32 -25
  355. package/dist/reducers/root.js +44 -50
  356. package/dist/reducers/ui-state-updaters.js +102 -202
  357. package/dist/reducers/ui-state.js +32 -26
  358. package/dist/reducers/vis-state-merger.js +102 -166
  359. package/dist/reducers/vis-state-selectors.js +5 -10
  360. package/dist/reducers/vis-state-updaters.js +386 -663
  361. package/dist/reducers/vis-state.js +32 -25
  362. package/dist/schemas/dataset-schema.js +36 -56
  363. package/dist/schemas/index.js +38 -45
  364. package/dist/schemas/map-state-schema.js +28 -24
  365. package/dist/schemas/map-style-schema.js +34 -48
  366. package/dist/schemas/schema-manager.js +44 -62
  367. package/dist/schemas/schema-utils.js +11 -15
  368. package/dist/schemas/schema.js +32 -27
  369. package/dist/schemas/versions.js +5 -9
  370. package/dist/schemas/vis-state-schema.js +109 -309
  371. package/dist/styles/base.js +367 -640
  372. package/dist/styles/index.js +1 -5
  373. package/dist/styles/media-breakpoints.js +21 -9
  374. package/dist/tasks/tasks.js +22 -50
  375. package/dist/templates/export-map-html.js +3 -6
  376. package/dist/utils/aggregate-utils.js +23 -27
  377. package/dist/utils/color-utils.js +36 -38
  378. package/dist/utils/custom-scales.js +1 -7
  379. package/dist/utils/data-scale-utils.js +11 -20
  380. package/dist/utils/data-utils.js +78 -137
  381. package/dist/utils/dataset-utils.js +71 -88
  382. package/dist/utils/dom-to-image.js +15 -93
  383. package/dist/utils/dom-utils.js +34 -116
  384. package/dist/utils/export-utils.js +65 -102
  385. package/dist/utils/filter-utils.js +170 -320
  386. package/dist/utils/gl-utils.js +39 -23
  387. package/dist/utils/gpu-filter-utils.js +46 -59
  388. package/dist/utils/index.js +68 -80
  389. package/dist/utils/interaction-utils.js +26 -50
  390. package/dist/utils/layer-utils.js +58 -63
  391. package/dist/utils/locale-utils.js +23 -21
  392. package/dist/utils/map-info-utils.js +2 -3
  393. package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +72 -71
  394. package/dist/utils/map-style-utils/mapbox-utils.js +3 -5
  395. package/dist/utils/mapbox-utils.js +2 -5
  396. package/dist/utils/notifications-utils.js +36 -35
  397. package/dist/utils/observe-dimensions.js +36 -41
  398. package/dist/utils/projection-utils.js +9 -20
  399. package/dist/utils/searcher-utils.js +1 -4
  400. package/dist/utils/split-map-utils.js +36 -32
  401. package/dist/utils/table-utils/data-container-utils.js +27 -23
  402. package/dist/utils/table-utils/data-row.js +2 -13
  403. package/dist/utils/table-utils/index.js +1 -2
  404. package/dist/utils/table-utils/indexed-data-container.js +65 -84
  405. package/dist/utils/table-utils/kepler-table.js +83 -126
  406. package/dist/utils/table-utils/row-data-container.js +62 -87
  407. package/dist/utils/utils.js +51 -69
  408. package/package.json +4 -3
  409. package/src/components/kepler-gl.d.ts +0 -1
  410. package/src/components/kepler-gl.js +0 -7
  411. package/src/components/map-container.js +0 -3
  412. package/src/components/modal-container.d.ts +0 -1
  413. package/src/components/modal-container.js +0 -2
  414. package/src/components/modals/add-map-style-modal.js +0 -3
  415. package/src/utils/gl-utils.js +16 -15
  416. package/CHANGELOG.md +0 -954
@@ -1,88 +1,78 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
- exports["default"] = exports.getChildPos = void 0;
11
-
8
+ exports.getChildPos = exports["default"] = void 0;
12
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
-
14
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
26
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
17
  var _react = _interopRequireWildcard(require("react"));
29
-
30
18
  var _lodash = _interopRequireDefault(require("lodash.debounce"));
31
-
32
19
  var _lodash2 = _interopRequireDefault(require("lodash.isequal"));
33
-
34
20
  var _exenv = require("exenv");
35
-
36
21
  var _styledComponents = require("styled-components");
37
-
38
22
  var _context = require("../context");
39
-
40
23
  var _reactModal = _interopRequireDefault(require("react-modal"));
41
-
42
24
  var _window = _interopRequireDefault(require("global/window"));
43
-
44
25
  var _base = require("../../styles/base");
45
-
46
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
47
-
48
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
49
-
50
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
51
-
52
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
53
-
26
+ 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); }
27
+ 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 && Object.prototype.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; }
28
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
29
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
30
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
31
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // Copyright (c) 2022 Uber Technologies, Inc.
32
+ //
33
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
34
+ // of this software and associated documentation files (the "Software"), to deal
35
+ // in the Software without restriction, including without limitation the rights
36
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
37
+ // copies of the Software, and to permit persons to whom the Software is
38
+ // furnished to do so, subject to the following conditions:
39
+ //
40
+ // The above copyright notice and this permission notice shall be included in
41
+ // all copies or substantial portions of the Software.
42
+ //
43
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
44
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
45
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
46
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
47
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
48
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
49
+ // THE SOFTWARE.
54
50
  var listeners = {};
55
-
56
51
  var startListening = function startListening() {
57
52
  return Object.keys(listeners).forEach(function (key) {
58
53
  return listeners[key]();
59
54
  });
60
55
  };
61
-
62
56
  var getPageOffset = function getPageOffset() {
63
57
  return {
64
58
  x: _window["default"].pageXOffset !== undefined ? _window["default"].pageXOffset : (document.documentElement || document.body.parentNode || document.body).scrollLeft,
65
59
  y: _window["default"].pageYOffset !== undefined ? _window["default"].pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop
66
60
  };
67
61
  };
68
-
69
62
  var addEventListeners = function addEventListeners() {
70
63
  if (document && document.body) document.body.addEventListener('mousewheel', (0, _lodash["default"])(startListening, 100, true));
71
-
72
64
  _window["default"].addEventListener('resize', (0, _lodash["default"])(startListening, 50, true));
73
65
  };
74
-
75
- var getChildPos = function getChildPos(_ref) {
66
+ var getChildPos = exports.getChildPos = function getChildPos(_ref) {
76
67
  var offsets = _ref.offsets,
77
- rect = _ref.rect,
78
- childRect = _ref.childRect,
79
- pageOffset = _ref.pageOffset,
80
- padding = _ref.padding;
68
+ rect = _ref.rect,
69
+ childRect = _ref.childRect,
70
+ pageOffset = _ref.pageOffset,
71
+ padding = _ref.padding;
81
72
  var topOffset = offsets.topOffset,
82
- leftOffset = offsets.leftOffset,
83
- rightOffset = offsets.rightOffset;
73
+ leftOffset = offsets.leftOffset,
74
+ rightOffset = offsets.rightOffset;
84
75
  var anchorLeft = leftOffset !== undefined;
85
-
86
76
  var pos = _objectSpread({
87
77
  top: pageOffset.y + rect.top + (topOffset || 0)
88
78
  }, anchorLeft ? {
@@ -90,26 +80,19 @@ var getChildPos = function getChildPos(_ref) {
90
80
  } : {
91
81
  right: _window["default"].innerWidth - rect.right - pageOffset.x + (rightOffset || 0)
92
82
  });
93
-
94
83
  var leftOrRight = anchorLeft ? 'left' : 'right';
95
-
96
84
  if (pos[leftOrRight] && pos[leftOrRight] < 0) {
97
85
  pos[leftOrRight] = padding;
98
86
  } else if (pos[leftOrRight] && pos[leftOrRight] + childRect.width > _window["default"].innerWidth) {
99
87
  pos[leftOrRight] = _window["default"].innerWidth - childRect.width - padding;
100
88
  }
101
-
102
89
  if (pos.top < 0) {
103
90
  pos.top = padding;
104
91
  } else if (pos.top + childRect.height > _window["default"].innerHeight) {
105
92
  pos.top = _window["default"].innerHeight - childRect.height - padding;
106
93
  }
107
-
108
94
  return pos;
109
95
  };
110
-
111
- exports.getChildPos = getChildPos;
112
-
113
96
  if (_exenv.canUseDOM) {
114
97
  if (document.body) {
115
98
  addEventListeners();
@@ -117,9 +100,7 @@ if (_exenv.canUseDOM) {
117
100
  document.addEventListener('DOMContentLoaded', addEventListeners);
118
101
  }
119
102
  }
120
-
121
103
  var listenerIdCounter = 0;
122
-
123
104
  function subscribe(fn) {
124
105
  listenerIdCounter += 1;
125
106
  var id = listenerIdCounter;
@@ -128,7 +109,6 @@ function subscribe(fn) {
128
109
  return delete listeners[id];
129
110
  };
130
111
  }
131
-
132
112
  var defaultModalStyle = {
133
113
  content: {
134
114
  top: 0,
@@ -147,41 +127,32 @@ var defaultModalStyle = {
147
127
  }
148
128
  };
149
129
  var WINDOW_PAD = 20;
150
-
151
130
  var noop = function noop() {};
152
-
153
131
  var Portaled = /*#__PURE__*/function (_Component) {
154
132
  (0, _inherits2["default"])(Portaled, _Component);
155
-
156
- var _super = _createSuper(Portaled);
157
-
158
133
  function Portaled() {
159
134
  var _this;
160
-
161
135
  (0, _classCallCheck2["default"])(this, Portaled);
162
-
163
136
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
164
137
  args[_key] = arguments[_key];
165
138
  }
166
-
167
- _this = _super.call.apply(_super, [this].concat(args));
139
+ _this = _callSuper(this, Portaled, [].concat(args));
168
140
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
169
141
  pos: null,
170
142
  isVisible: false
171
143
  });
172
144
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "element", /*#__PURE__*/(0, _react.createRef)());
173
145
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "child", /*#__PURE__*/(0, _react.createRef)());
146
+ // eslint-disable-next-line complexity
174
147
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleScroll", function () {
175
148
  if (_this.child.current) {
176
149
  var rect = _this.element.current.getBoundingClientRect();
177
-
178
150
  var childRect = _this.child.current && _this.child.current.getBoundingClientRect();
179
-
180
151
  var pageOffset = getPageOffset();
181
152
  var _this$props = _this.props,
182
- topOffset = _this$props.top,
183
- leftOffset = _this$props.left,
184
- rightOffset = _this$props.right;
153
+ topOffset = _this$props.top,
154
+ leftOffset = _this$props.left,
155
+ rightOffset = _this$props.right;
185
156
  var pos = getChildPos({
186
157
  offsets: {
187
158
  topOffset: topOffset,
@@ -193,7 +164,6 @@ var Portaled = /*#__PURE__*/function (_Component) {
193
164
  pageOffset: pageOffset,
194
165
  padding: WINDOW_PAD
195
166
  });
196
-
197
167
  if (!(0, _lodash2["default"])(pos, _this.state.pos)) {
198
168
  _this.setState({
199
169
  pos: pos
@@ -203,7 +173,6 @@ var Portaled = /*#__PURE__*/function (_Component) {
203
173
  });
204
174
  return _this;
205
175
  }
206
-
207
176
  (0, _createClass2["default"])(Portaled, [{
208
177
  key: "componentDidMount",
209
178
  value: function componentDidMount() {
@@ -215,47 +184,41 @@ var Portaled = /*#__PURE__*/function (_Component) {
215
184
  key: "componentDidUpdate",
216
185
  value: function componentDidUpdate(prevProps) {
217
186
  var _this2 = this;
218
-
219
187
  var didOpen = this.props.isOpened && !prevProps.isOpened;
220
188
  var didClose = !this.props.isOpened && prevProps.isOpened;
221
-
222
189
  if (didOpen || didClose) {
223
190
  _window["default"].requestAnimationFrame(function () {
224
191
  if (_this2._unmounted) return;
225
-
226
192
  _this2.setState({
227
193
  isVisible: didOpen
228
194
  });
229
195
  });
230
196
  }
231
-
232
197
  this.handleScroll();
233
198
  }
234
199
  }, {
235
200
  key: "componentWillUnmount",
236
201
  value: function componentWillUnmount() {
237
- this._unmounted = true; // @ts-ignore
238
-
202
+ this._unmounted = true;
203
+ // @ts-ignore
239
204
  this.unsubscribe();
240
205
  }
241
206
  }, {
242
207
  key: "render",
243
208
  value: function render() {
244
209
  var _this3 = this;
245
-
246
210
  var _this$props2 = this.props,
247
- Comp = _this$props2.component,
248
- overlayZIndex = _this$props2.overlayZIndex,
249
- isOpened = _this$props2.isOpened,
250
- onClose = _this$props2.onClose,
251
- children = _this$props2.children,
252
- modalProps = _this$props2.modalProps,
253
- _this$props2$modalSty = _this$props2.modalStyle,
254
- modalStyle = _this$props2$modalSty === void 0 ? {} : _this$props2$modalSty;
211
+ Comp = _this$props2.component,
212
+ overlayZIndex = _this$props2.overlayZIndex,
213
+ isOpened = _this$props2.isOpened,
214
+ onClose = _this$props2.onClose,
215
+ children = _this$props2.children,
216
+ modalProps = _this$props2.modalProps,
217
+ _this$props2$modalSty = _this$props2.modalStyle,
218
+ modalStyle = _this$props2$modalSty === void 0 ? {} : _this$props2$modalSty;
255
219
  var _this$state = this.state,
256
- isVisible = _this$state.isVisible,
257
- pos = _this$state.pos;
258
-
220
+ isVisible = _this$state.isVisible,
221
+ pos = _this$state.pos;
259
222
  var newModalStyle = _objectSpread(_objectSpread({}, defaultModalStyle), {}, {
260
223
  content: _objectSpread({}, modalStyle.content || {}),
261
224
  overlay: _objectSpread(_objectSpread(_objectSpread({}, defaultModalStyle.overlay), modalStyle.overlay || {}), {}, {
@@ -263,7 +226,6 @@ var Portaled = /*#__PURE__*/function (_Component) {
263
226
  zIndex: overlayZIndex || 9999
264
227
  })
265
228
  });
266
-
267
229
  return /*#__PURE__*/_react["default"].createElement(_context.RootContext.Consumer, null, function (context) {
268
230
  return /*#__PURE__*/_react["default"].createElement(Comp, {
269
231
  ref: _this3.element
@@ -276,7 +238,8 @@ var Portaled = /*#__PURE__*/function (_Component) {
276
238
  parentSelector: function parentSelector() {
277
239
  // React modal issue: https://github.com/reactjs/react-modal/issues/769
278
240
  // failed to execute removeChild on parent node when it is already unmounted
279
- return (// @ts-ignore
241
+ return (
242
+ // @ts-ignore
280
243
  context && context.current || {
281
244
  removeChild: function removeChild() {},
282
245
  appendChild: function appendChild() {}
@@ -304,14 +267,10 @@ var Portaled = /*#__PURE__*/function (_Component) {
304
267
  }]);
305
268
  return Portaled;
306
269
  }(_react.Component);
307
-
308
270
  (0, _defineProperty2["default"])(Portaled, "defaultProps", {
309
271
  component: 'div',
310
272
  onClose: noop,
311
273
  theme: _base.theme
312
274
  });
313
-
314
- var _default = (0, _styledComponents.withTheme)(Portaled);
315
-
316
- exports["default"] = _default;
317
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9wb3J0YWxlZC5qcyJdLCJuYW1lcyI6WyJsaXN0ZW5lcnMiLCJzdGFydExpc3RlbmluZyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwiZ2V0UGFnZU9mZnNldCIsIngiLCJ3aW5kb3ciLCJwYWdlWE9mZnNldCIsInVuZGVmaW5lZCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiYm9keSIsInBhcmVudE5vZGUiLCJzY3JvbGxMZWZ0IiwieSIsInBhZ2VZT2Zmc2V0Iiwic2Nyb2xsVG9wIiwiYWRkRXZlbnRMaXN0ZW5lcnMiLCJhZGRFdmVudExpc3RlbmVyIiwiZ2V0Q2hpbGRQb3MiLCJvZmZzZXRzIiwicmVjdCIsImNoaWxkUmVjdCIsInBhZ2VPZmZzZXQiLCJwYWRkaW5nIiwidG9wT2Zmc2V0IiwibGVmdE9mZnNldCIsInJpZ2h0T2Zmc2V0IiwiYW5jaG9yTGVmdCIsInBvcyIsInRvcCIsImxlZnQiLCJyaWdodCIsImlubmVyV2lkdGgiLCJsZWZ0T3JSaWdodCIsIndpZHRoIiwiaGVpZ2h0IiwiaW5uZXJIZWlnaHQiLCJjYW5Vc2VET00iLCJsaXN0ZW5lcklkQ291bnRlciIsInN1YnNjcmliZSIsImZuIiwiaWQiLCJkZWZhdWx0TW9kYWxTdHlsZSIsImNvbnRlbnQiLCJib3JkZXIiLCJib3R0b20iLCJvdmVybGF5IiwiYmFja2dyb3VuZENvbG9yIiwiV0lORE9XX1BBRCIsIm5vb3AiLCJQb3J0YWxlZCIsImlzVmlzaWJsZSIsImNoaWxkIiwiY3VycmVudCIsImVsZW1lbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJwcm9wcyIsInN0YXRlIiwic2V0U3RhdGUiLCJ1bnN1YnNjcmliZSIsImhhbmRsZVNjcm9sbCIsInByZXZQcm9wcyIsImRpZE9wZW4iLCJpc09wZW5lZCIsImRpZENsb3NlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiX3VubW91bnRlZCIsIkNvbXAiLCJjb21wb25lbnQiLCJvdmVybGF5WkluZGV4Iiwib25DbG9zZSIsImNoaWxkcmVuIiwibW9kYWxQcm9wcyIsIm1vZGFsU3R5bGUiLCJuZXdNb2RhbFN0eWxlIiwiekluZGV4IiwiY29udGV4dCIsInJlbW92ZUNoaWxkIiwiYXBwZW5kQ2hpbGQiLCJwb3NpdGlvbiIsIm9wYWNpdHkiLCJtYXJnaW5Ub3AiLCJDb21wb25lbnQiLCJ0aGVtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsSUFBTUEsU0FBUyxHQUFHLEVBQWxCOztBQUVBLElBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUI7QUFBQSxTQUFNQyxNQUFNLENBQUNDLElBQVAsQ0FBWUgsU0FBWixFQUF1QkksT0FBdkIsQ0FBK0IsVUFBQUMsR0FBRztBQUFBLFdBQUlMLFNBQVMsQ0FBQ0ssR0FBRCxDQUFULEVBQUo7QUFBQSxHQUFsQyxDQUFOO0FBQUEsQ0FBdkI7O0FBRUEsSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQjtBQUFBLFNBQU87QUFDM0JDLElBQUFBLENBQUMsRUFDQ0MsbUJBQU9DLFdBQVAsS0FBdUJDLFNBQXZCLEdBQ0lGLG1CQUFPQyxXQURYLEdBRUksQ0FBQ0UsUUFBUSxDQUFDQyxlQUFULElBQTRCRCxRQUFRLENBQUNFLElBQVQsQ0FBY0MsVUFBMUMsSUFBd0RILFFBQVEsQ0FBQ0UsSUFBbEUsRUFBd0VFLFVBSm5EO0FBSzNCQyxJQUFBQSxDQUFDLEVBQ0NSLG1CQUFPUyxXQUFQLEtBQXVCUCxTQUF2QixHQUNJRixtQkFBT1MsV0FEWCxHQUVJLENBQUNOLFFBQVEsQ0FBQ0MsZUFBVCxJQUE0QkQsUUFBUSxDQUFDRSxJQUFULENBQWNDLFVBQTFDLElBQXdESCxRQUFRLENBQUNFLElBQWxFLEVBQXdFSztBQVJuRCxHQUFQO0FBQUEsQ0FBdEI7O0FBV0EsSUFBTUMsaUJBQWlCLEdB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SUEzQ04sQ0FETTtBQUFBLE9BRFYsQ0FERjtBQW1ERDs7O0VBOUlvQlcsZ0I7O2lDQUFqQmhDLFEsa0JBQ2tCO0FBQ3BCa0IsRUFBQUEsU0FBUyxFQUFFLEtBRFM7QUFFcEJFLEVBQUFBLE9BQU8sRUFBRXJCLElBRlc7QUFHcEJrQyxFQUFBQSxLQUFLLEVBQUxBO0FBSG9CLEM7O2VBZ0pULGlDQUFVakMsUUFBVixDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2guZGVib3VuY2UnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoLmlzZXF1YWwnO1xuXG5pbXBvcnQge2NhblVzZURPTX0gZnJvbSAnZXhlbnYnO1xuaW1wb3J0IHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJ2NvbXBvbmVudHMvY29udGV4dCc7XG5pbXBvcnQgTW9kYWwgZnJvbSAncmVhY3QtbW9kYWwnO1xuaW1wb3J0IHdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcbmltcG9ydCB7dGhlbWV9IGZyb20gJ3N0eWxlcy9iYXNlJztcblxuY29uc3QgbGlzdGVuZXJzID0ge307XG5cbmNvbnN0IHN0YXJ0TGlzdGVuaW5nID0gKCkgPT4gT2JqZWN0LmtleXMobGlzdGVuZXJzKS5mb3JFYWNoKGtleSA9PiBsaXN0ZW5lcnNba2V5XSgpKTtcblxuY29uc3QgZ2V0UGFnZU9mZnNldCA9ICgpID0+ICh7XG4gIHg6XG4gICAgd2luZG93LnBhZ2VYT2Zmc2V0ICE9PSB1bmRlZmluZWRcbiAgICAgID8gd2luZG93LnBhZ2VYT2Zmc2V0XG4gICAgICA6IChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgfHwgZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlIHx8IGRvY3VtZW50LmJvZHkpLnNjcm9sbExlZnQsXG4gIHk6XG4gICAgd2luZG93LnBhZ2VZT2Zmc2V0ICE9PSB1bmRlZmluZWRcbiAgICAgID8gd2luZG93LnBhZ2VZT2Zmc2V0XG4gICAgICA6IChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgfHwgZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlIHx8IGRvY3VtZW50LmJvZHkpLnNjcm9sbFRvcFxufSk7XG5cbmNvbnN0IGFkZEV2ZW50TGlzdGVuZXJzID0gKCkgPT4ge1xuICBpZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQuYm9keSlcbiAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCBkZWJvdW5jZShzdGFydExpc3RlbmluZywgMTAwLCB0cnVlKSk7XG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBkZWJvdW5jZShzdGFydExpc3RlbmluZywgNTAsIHRydWUpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDaGlsZFBvcyA9ICh7b2Zmc2V0cywgcmVjdCwgY2hpbGRSZWN0LCBwYWdlT2Zmc2V0LCBwYWRkaW5nfSkgPT4ge1xuICBjb25zdCB7dG9wT2Zmc2V0LCBsZWZ0T2Zmc2V0LCByaWdodE9mZnNldH0gPSBvZmZzZXRzO1xuXG4gIGNvbnN0IGFuY2hvckxlZnQgPSBsZWZ0T2Zmc2V0ICE9PSB1bmRlZmluZWQ7XG4gIGNvbnN0IHBvcyA9IHtcbiAgICB0b3A6IHBhZ2VPZmZzZXQueSArIHJlY3QudG9wICsgKHRvcE9mZnNldCB8fCAwKSxcbiAgICAuLi4oYW5jaG9yTGVmdFxuICAgICAgPyB7bGVmdDogcGFnZU9mZnNldC54ICsgcmVjdC5sZWZ0ICsgbGVmdE9mZnNldH1cbiAgICAgIDoge3JpZ2h0OiB3aW5kb3cuaW5uZXJXaWR0aCAtIHJlY3QucmlnaHQgLSBwYWdlT2Zmc2V0LnggKyAocmlnaHRPZmZzZXQgfHwgMCl9KVxuICB9O1xuXG4gIGNvbnN0IGxlZnRPclJpZ2h0ID0gYW5jaG9yTGVmdCA/ICdsZWZ0JyA6ICdyaWdodCc7XG5cbiAgaWYgKHBvc1tsZWZ0T3JSaWdodF0gJiYgcG9zW2xlZnRPclJpZ2h0XSA8IDApIHtcbiAgICBwb3NbbGVmdE9yUmlnaHRdID0gcGFkZGluZztcbiAgfSBlbHNlIGlmIChwb3NbbGVmdE9yUmlnaHRdICYmIHBvc1tsZWZ0T3JSaWdodF0gKyBjaGlsZFJlY3Qud2lkdGggPiB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgIHBvc1tsZWZ0T3JSaWdodF0gPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGNoaWxkUmVjdC53aWR0aCAtIHBhZGRpbmc7XG4gIH1cblxuICBpZiAocG9zLnRvcCA8IDApIHtcbiAgICBwb3MudG9wID0gcGFkZGluZztcbiAgfSBlbHNlIGlmIChwb3MudG9wICsgY2hpbGRSZWN0LmhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgIHBvcy50b3AgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBjaGlsZFJlY3QuaGVpZ2h0IC0gcGFkZGluZztcbiAgfVxuXG4gIHJldHVybiBwb3M7XG59O1xuXG5pZiAoY2FuVXNlRE9NKSB7XG4gIGlmIChkb2N1bWVudC5ib2R5KSB7XG4gICAgYWRkRXZlbnRMaXN0ZW5lcnMoKTtcbiAgfSBlbHNlIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgYWRkRXZlbnRMaXN0ZW5lcnMpO1xuICB9XG59XG5cbmxldCBsaXN0ZW5lcklkQ291bnRlciA9IDA7XG5mdW5jdGlvbiBzdWJzY3JpYmUoZm4pIHtcbiAgbGlzdGVuZXJJZENvdW50ZXIgKz0gMTtcbiAgY29uc3QgaWQgPSBsaXN0ZW5lcklkQ291bnRlcjtcbiAgbGlzdGVuZXJzW2lkXSA9IGZuO1xuICByZXR1cm4gKCkgPT4gZGVsZXRlIGxpc3RlbmVyc1tpZF07XG59XG5cbmNvbnN0IGRlZmF1bHRNb2RhbFN0eWxlID0ge1xuICBjb250ZW50OiB7XG4gICAgdG9wOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgYm9yZGVyOiAwLFxuICAgIHJpZ2h0OiAnYXV0bycsXG4gICAgYm90dG9tOiAnYXV0bycsXG4gICAgcGFkZGluZzogJzBweCAwcHggMHB4IDBweCdcbiAgfSxcbiAgb3ZlcmxheToge1xuICAgIHJpZ2h0OiAnYXV0bycsXG4gICAgYm90dG9tOiAnYXV0bycsXG4gICAgd2lkdGg6ICcxMDB2dycsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMCknXG4gIH1cbn07XG5cbmNvbnN0IFdJTkRPV19QQUQgPSAyMDtcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuXG5jbGFzcyBQb3J0YWxlZCBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY29tcG9uZW50OiAnZGl2JyxcbiAgICBvbkNsb3NlOiBub29wLFxuICAgIHRoZW1lXG4gIH07XG5cbiAgc3RhdGUgPSB7XG4gICAgcG9zOiBudWxsLFxuICAgIGlzVmlzaWJsZTogZmFsc2VcbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAvLyByZWxhdGl2ZVxuICAgIHRoaXMudW5zdWJzY3JpYmUgPSBzdWJzY3JpYmUodGhpcy5oYW5kbGVTY3JvbGwpO1xuICAgIHRoaXMuaGFuZGxlU2Nyb2xsKCk7XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgZGlkT3BlbiA9IHRoaXMucHJvcHMuaXNPcGVuZWQgJiYgIXByZXZQcm9wcy5pc09wZW5lZDtcbiAgICBjb25zdCBkaWRDbG9zZSA9ICF0aGlzLnByb3BzLmlzT3BlbmVkICYmIHByZXZQcm9wcy5pc09wZW5lZDtcbiAgICBpZiAoZGlkT3BlbiB8fCBkaWRDbG9zZSkge1xuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl91bm1vdW50ZWQpIHJldHVybjtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7aXNWaXNpYmxlOiBkaWRPcGVufSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZVNjcm9sbCgpO1xuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5fdW5tb3VudGVkID0gdHJ1ZTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZWxlbWVudCA9IGNyZWF0ZVJlZigpO1xuICBjaGlsZCA9IGNyZWF0ZVJlZigpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gIGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5jaGlsZC5jdXJyZW50KSB7XG4gICAgICBjb25zdCByZWN0ID0gdGhpcy5lbGVtZW50LmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBjaGlsZFJlY3QgPSB0aGlzLmNoaWxkLmN1cnJlbnQgJiYgdGhpcy5jaGlsZC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgcGFnZU9mZnNldCA9IGdldFBhZ2VPZmZzZXQoKTtcbiAgICAgIGNvbnN0IHt0b3A6IHRvcE9mZnNldCwgbGVmdDogbGVmdE9mZnNldCwgcmlnaHQ6IHJpZ2h0T2Zmc2V0fSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGNvbnN0IHBvcyA9IGdldENoaWxkUG9zKHtcbiAgICAgICAgb2Zmc2V0czoge3RvcE9mZnNldCwgbGVmdE9mZnNldCwgcmlnaHRPZmZzZXR9LFxuICAgICAgICByZWN0LFxuICAgICAgICBjaGlsZFJlY3QsXG4gICAgICAgIHBhZ2VPZmZzZXQsXG4gICAgICAgIHBhZGRpbmc6IFdJTkRPV19QQURcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIWlzRXF1YWwocG9zLCB0aGlzLnN0YXRlLnBvcykpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7cG9zfSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICAvLyByZWxhdGl2ZVxuICAgICAgY29tcG9uZW50OiBDb21wLFxuICAgICAgb3ZlcmxheVpJbmRleCxcbiAgICAgIGlzT3BlbmVkLFxuICAgICAgb25DbG9zZSxcblxuICAgICAgLy8gTW9kYWxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgbW9kYWxQcm9wcyxcbiAgICAgIG1vZGFsU3R5bGUgPSB7fVxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qge2lzVmlzaWJsZSwgcG9zfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBjb25zdCBuZXdNb2RhbFN0eWxlID0ge1xuICAgICAgLi4uZGVmYXVsdE1vZGFsU3R5bGUsXG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIC4uLihtb2RhbFN0eWxlLmNvbnRlbnQgfHwge30pXG4gICAgICB9LFxuICAgICAgb3ZlcmxheToge1xuICAgICAgICAuLi5kZWZhdWx0TW9kYWxTdHlsZS5vdmVybGF5LFxuICAgICAgICAuLi4obW9kYWxTdHlsZS5vdmVybGF5IHx8IHt9KSxcbiAgICAgICAgLy8gbmVlZHMgdG8gYmUgb24gdG9wIG9mIGV4aXN0aW5nIG1vZGFsXG4gICAgICAgIHpJbmRleDogb3ZlcmxheVpJbmRleCB8fCA5OTk5XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Um9vdENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgIHtjb250ZXh0ID0+IChcbiAgICAgICAgICA8Q29tcCByZWY9e3RoaXMuZWxlbWVudH0+XG4gICAgICAgICAgICB7aXNPcGVuZWQgPyAoXG4gICAgICAgICAgICAgIDxNb2RhbFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1vZGFsLXBvcnRhbFwiXG4gICAgICAgICAgICAgICAgey4uLm1vZGFsUHJvcHN9XG4gICAgICAgICAgICAgICAgYXJpYUhpZGVBcHA9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIGlzT3BlblxuICAgICAgICAgICAgICAgIHN0eWxlPXtuZXdNb2RhbFN0eWxlfVxuICAgICAgICAgICAgICAgIHBhcmVudFNlbGVjdG9yPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBSZWFjdCBtb2RhbCBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0anMvcmVhY3QtbW9kYWwvaXNzdWVzLzc2OVxuICAgICAgICAgICAgICAgICAgLy8gZmFpbGVkIHRvIGV4ZWN1dGUgcmVtb3ZlQ2hpbGQgb24gcGFyZW50IG5vZGUgd2hlbiBpdCBpcyBhbHJlYWR5IHVubW91bnRlZFxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAoY29udGV4dCAmJiBjb250ZXh0LmN1cnJlbnQpIHx8IHtcbiAgICAgICAgICAgICAgICAgICAgICByZW1vdmVDaGlsZDogKCkgPT4ge30sXG4gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQ6ICgpID0+IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInBvcnRhbGVkLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAga2V5PVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogaXNWaXNpYmxlID8gMSA6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRvcDogdGhpcy5zdGF0ZS50b3AsXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogaXNWaXNpYmxlID8gJzBweCcgOiAnMTRweCcsXG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgLi4ucG9zXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLmNoaWxkfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogb3ZlcmxheVpJbmRleCA/IG92ZXJsYXlaSW5kZXggKyAxIDogMTAwMDBcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvTW9kYWw+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L0NvbXA+XG4gICAgICAgICl9XG4gICAgICA8L1Jvb3RDb250ZXh0LkNvbnN1bWVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFRoZW1lKFBvcnRhbGVkKTtcbiJdfQ==
275
+ var _default = exports["default"] = (0, _styledComponents.withTheme)(Portaled);
276
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9sb2Rhc2gyIiwiX2V4ZW52IiwiX3N0eWxlZENvbXBvbmVudHMiLCJfY29udGV4dCIsIl9yZWFjdE1vZGFsIiwiX3dpbmRvdyIsIl9iYXNlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInZhbHVlT2YiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJsaXN0ZW5lcnMiLCJzdGFydExpc3RlbmluZyIsImtleSIsImdldFBhZ2VPZmZzZXQiLCJ4Iiwid2luZG93IiwicGFnZVhPZmZzZXQiLCJ1bmRlZmluZWQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImJvZHkiLCJwYXJlbnROb2RlIiwic2Nyb2xsTGVmdCIsInkiLCJwYWdlWU9mZnNldCIsInNjcm9sbFRvcCIsImFkZEV2ZW50TGlzdGVuZXJzIiwiYWRkRXZlbnRMaXN0ZW5lciIsImRlYm91bmNlIiwiZ2V0Q2hpbGRQb3MiLCJleHBvcnRzIiwiX3JlZiIsIm9mZnNldHMiLCJyZWN0IiwiY2hpbGRSZWN0IiwicGFnZU9mZnNldCIsInBhZGRpbmciLCJ0b3BPZmZzZXQiLCJsZWZ0T2Zmc2V0IiwicmlnaHRPZmZzZXQiLCJhbmNob3JMZWZ0IiwicG9zIiwidG9wIiwibGVmdCIsInJpZ2h0IiwiaW5uZXJXaWR0aCIsImxlZnRPclJpZ2h0Iiwid2lkdGgiLCJoZWlnaHQiLCJpbm5lckhlaWdodCIsImNhblVzZURPTSIsImxpc3RlbmVySWRDb3VudGVyIiwic3Vic2NyaWJlIiwiZm4iLCJpZCIsImRlZmF1bHRNb2RhbFN0eWxlIiwiY29udGVudCIsImJvcmRlciIsImJvdHRvbSIsIm92ZXJsYXkiLCJiYWNrZ3JvdW5kQ29sb3IiLCJXSU5ET1dfUEFEIiwibm9vcCIsIlBvcnRhbGVkIiwiX0NvbXBvbmVudCIsIl9pbmhlcml0czIiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQyIiwiaXNWaXNpYmxlIiwiY3JlYXRlUmVmIiwiY2hpbGQiLCJjdXJyZW50IiwiZWxlbWVudCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIl90aGlzJHByb3BzIiwicHJvcHMiLCJpc0VxdWFsIiwic3RhdGUiLCJzZXRTdGF0ZSIsIl9jcmVhdGVDbGFzczIiLCJ2YWx1ZSIsImNvbXBvbmVudERpZE1vdW50IiwidW5zdWJzY3JpYmUiLCJoYW5kbGVTY3JvbGwiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJfdGhpczIiLCJkaWRPcGVuIiwiaXNPcGVuZWQiLCJkaWRDbG9zZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIl91bm1vdW50ZWQiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbmRlciIsIl90aGlzMyIsIl90aGlzJHByb3BzMiIsIkNvbXAiLCJjb21wb25lbnQiLCJvdmVybGF5WkluZGV4Iiwib25DbG9zZSIsImNoaWxkcmVuIiwibW9kYWxQcm9wcyIsIl90aGlzJHByb3BzMiRtb2RhbFN0eSIsIm1vZGFsU3R5bGUiLCJfdGhpcyRzdGF0ZSIsIm5ld01vZGFsU3R5bGUiLCJ6SW5kZXgiLCJjcmVhdGVFbGVtZW50IiwiUm9vdENvbnRleHQiLCJDb25zdW1lciIsImNvbnRleHQiLCJyZWYiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJhcmlhSGlkZUFwcCIsImlzT3BlbiIsInN0eWxlIiwicGFyZW50U2VsZWN0b3IiLCJyZW1vdmVDaGlsZCIsImFwcGVuZENoaWxkIiwicG9zaXRpb24iLCJvcGFjaXR5IiwibWFyZ2luVG9wIiwiQ29tcG9uZW50IiwidGhlbWUiLCJfZGVmYXVsdCIsIndpdGhUaGVtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9wb3J0YWxlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIGNyZWF0ZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2xvZGFzaC5kZWJvdW5jZSc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2guaXNlcXVhbCc7XG5cbmltcG9ydCB7Y2FuVXNlRE9NfSBmcm9tICdleGVudic7XG5pbXBvcnQge3dpdGhUaGVtZX0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtSb290Q29udGV4dH0gZnJvbSAnY29tcG9uZW50cy9jb250ZXh0JztcbmltcG9ydCBNb2RhbCBmcm9tICdyZWFjdC1tb2RhbCc7XG5pbXBvcnQgd2luZG93IGZyb20gJ2dsb2JhbC93aW5kb3cnO1xuaW1wb3J0IHt0aGVtZX0gZnJvbSAnc3R5bGVzL2Jhc2UnO1xuXG5jb25zdCBsaXN0ZW5lcnMgPSB7fTtcblxuY29uc3Qgc3RhcnRMaXN0ZW5pbmcgPSAoKSA9PiBPYmplY3Qua2V5cyhsaXN0ZW5lcnMpLmZvckVhY2goa2V5ID0+IGxpc3RlbmVyc1trZXldKCkpO1xuXG5jb25zdCBnZXRQYWdlT2Zmc2V0ID0gKCkgPT4gKHtcbiAgeDpcbiAgICB3aW5kb3cucGFnZVhPZmZzZXQgIT09IHVuZGVmaW5lZFxuICAgICAgPyB3aW5kb3cucGFnZVhPZmZzZXRcbiAgICAgIDogKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCB8fCBkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUgfHwgZG9jdW1lbnQuYm9keSkuc2Nyb2xsTGVmdCxcbiAgeTpcbiAgICB3aW5kb3cucGFnZVlPZmZzZXQgIT09IHVuZGVmaW5lZFxuICAgICAgPyB3aW5kb3cucGFnZVlPZmZzZXRcbiAgICAgIDogKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCB8fCBkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUgfHwgZG9jdW1lbnQuYm9keSkuc2Nyb2xsVG9wXG59KTtcblxuY29uc3QgYWRkRXZlbnRMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5ib2R5KVxuICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V3aGVlbCcsIGRlYm91bmNlKHN0YXJ0TGlzdGVuaW5nLCAxMDAsIHRydWUpKTtcbiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGRlYm91bmNlKHN0YXJ0TGlzdGVuaW5nLCA1MCwgdHJ1ZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENoaWxkUG9zID0gKHtvZmZzZXRzLCByZWN0LCBjaGlsZFJlY3QsIHBhZ2VPZmZzZXQsIHBhZGRpbmd9KSA9PiB7XG4gIGNvbnN0IHt0b3BPZmZzZXQsIGxlZnRPZmZzZXQsIHJpZ2h0T2Zmc2V0fSA9IG9mZnNldHM7XG5cbiAgY29uc3QgYW5jaG9yTGVmdCA9IGxlZnRPZmZzZXQgIT09IHVuZGVmaW5lZDtcbiAgY29uc3QgcG9zID0ge1xuICAgIHRvcDogcGFnZU9mZnNldC55ICsgcmVjdC50b3AgKyAodG9wT2Zmc2V0IHx8IDApLFxuICAgIC4uLihhbmNob3JMZWZ0XG4gICAgICA/IHtsZWZ0OiBwYWdlT2Zmc2V0LnggKyByZWN0LmxlZnQgKyBsZWZ0T2Zmc2V0fVxuICAgICAgOiB7cmlnaHQ6IHdpbmRvdy5pbm5lcldpZHRoIC0gcmVjdC5yaWdodCAtIHBhZ2VPZmZzZXQueCArIChyaWdodE9mZnNldCB8fCAwKX0pXG4gIH07XG5cbiAgY29uc3QgbGVmdE9yUmlnaHQgPSBhbmNob3JMZWZ0ID8gJ2xlZnQnIDogJ3JpZ2h0JztcblxuICBpZiAocG9zW2xlZnRPclJpZ2h0XSAmJiBwb3NbbGVmdE9yUmlnaHRdIDwgMCkge1xuICAgIHBvc1tsZWZ0T3JSaWdodF0gPSBwYWRkaW5nO1xuICB9IGVsc2UgaWYgKHBvc1tsZWZ0T3JSaWdodF0gJiYgcG9zW2xlZnRPclJpZ2h0XSArIGNoaWxkUmVjdC53aWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoKSB7XG4gICAgcG9zW2xlZnRPclJpZ2h0XSA9IHdpbmRvdy5pbm5lcldpZHRoIC0gY2hpbGRSZWN0LndpZHRoIC0gcGFkZGluZztcbiAgfVxuXG4gIGlmIChwb3MudG9wIDwgMCkge1xuICAgIHBvcy50b3AgPSBwYWRkaW5nO1xuICB9IGVsc2UgaWYgKHBvcy50b3AgKyBjaGlsZFJlY3QuaGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgcG9zLnRvcCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGNoaWxkUmVjdC5oZWlnaHQgLSBwYWRkaW5nO1xuICB9XG5cbiAgcmV0dXJuIHBvcztcbn07XG5cbmlmIChjYW5Vc2VET00pIHtcbiAgaWYgKGRvY3VtZW50LmJvZHkpIHtcbiAgICBhZGRFdmVudExpc3RlbmVycygpO1xuICB9IGVsc2Uge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBhZGRFdmVudExpc3RlbmVycyk7XG4gIH1cbn1cblxubGV0IGxpc3RlbmVySWRDb3VudGVyID0gMDtcbmZ1bmN0aW9uIHN1YnNjcmliZShmbikge1xuICBsaXN0ZW5lcklkQ291bnRlciArPSAxO1xuICBjb25zdCBpZCA9IGxpc3RlbmVySWRDb3VudGVyO1xuICBsaXN0ZW5lcnNbaWRdID0gZm47XG4gIHJldHVybiAoKSA9PiBkZWxldGUgbGlzdGVuZXJzW2lkXTtcbn1cblxuY29uc3QgZGVmYXVsdE1vZGFsU3R5bGUgPSB7XG4gIGNvbnRlbnQ6IHtcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICBib3JkZXI6IDAsXG4gICAgcmlnaHQ6ICdhdXRvJyxcbiAgICBib3R0b206ICdhdXRvJyxcbiAgICBwYWRkaW5nOiAnMHB4IDBweCAwcHggMHB4J1xuICB9LFxuICBvdmVybGF5OiB7XG4gICAgcmlnaHQ6ICdhdXRvJyxcbiAgICBib3R0b206ICdhdXRvJyxcbiAgICB3aWR0aDogJzEwMHZ3JyxcbiAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLCAwLCAwLCAwKSdcbiAgfVxufTtcblxuY29uc3QgV0lORE9XX1BBRCA9IDIwO1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbmNsYXNzIFBvcnRhbGVkIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjb21wb25lbnQ6ICdkaXYnLFxuICAgIG9uQ2xvc2U6IG5vb3AsXG4gICAgdGhlbWVcbiAgfTtcblxuICBzdGF0ZSA9IHtcbiAgICBwb3M6IG51bGwsXG4gICAgaXNWaXNpYmxlOiBmYWxzZVxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIC8vIHJlbGF0aXZlXG4gICAgdGhpcy51bnN1YnNjcmliZSA9IHN1YnNjcmliZSh0aGlzLmhhbmRsZVNjcm9sbCk7XG4gICAgdGhpcy5oYW5kbGVTY3JvbGwoKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCBkaWRPcGVuID0gdGhpcy5wcm9wcy5pc09wZW5lZCAmJiAhcHJldlByb3BzLmlzT3BlbmVkO1xuICAgIGNvbnN0IGRpZENsb3NlID0gIXRoaXMucHJvcHMuaXNPcGVuZWQgJiYgcHJldlByb3BzLmlzT3BlbmVkO1xuICAgIGlmIChkaWRPcGVuIHx8IGRpZENsb3NlKSB7XG4gICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3VubW91bnRlZCkgcmV0dXJuO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtpc1Zpc2libGU6IGRpZE9wZW59KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlU2Nyb2xsKCk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLl91bm1vdW50ZWQgPSB0cnVlO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBlbGVtZW50ID0gY3JlYXRlUmVmKCk7XG4gIGNoaWxkID0gY3JlYXRlUmVmKCk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLmNoaWxkLmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLmVsZW1lbnQuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGNoaWxkUmVjdCA9IHRoaXMuY2hpbGQuY3VycmVudCAmJiB0aGlzLmNoaWxkLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBwYWdlT2Zmc2V0ID0gZ2V0UGFnZU9mZnNldCgpO1xuICAgICAgY29uc3Qge3RvcDogdG9wT2Zmc2V0LCBsZWZ0OiBsZWZ0T2Zmc2V0LCByaWdodDogcmlnaHRPZmZzZXR9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgcG9zID0gZ2V0Q2hpbGRQb3Moe1xuICAgICAgICBvZmZzZXRzOiB7dG9wT2Zmc2V0LCBsZWZ0T2Zmc2V0LCByaWdodE9mZnNldH0sXG4gICAgICAgIHJlY3QsXG4gICAgICAgIGNoaWxkUmVjdCxcbiAgICAgICAgcGFnZU9mZnNldCxcbiAgICAgICAgcGFkZGluZzogV0lORE9XX1BBRFxuICAgICAgfSk7XG5cbiAgICAgIGlmICghaXNFcXVhbChwb3MsIHRoaXMuc3RhdGUucG9zKSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtwb3N9KTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIC8vIHJlbGF0aXZlXG4gICAgICBjb21wb25lbnQ6IENvbXAsXG4gICAgICBvdmVybGF5WkluZGV4LFxuICAgICAgaXNPcGVuZWQsXG4gICAgICBvbkNsb3NlLFxuXG4gICAgICAvLyBNb2RhbFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBtb2RhbFByb3BzLFxuICAgICAgbW9kYWxTdHlsZSA9IHt9XG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCB7aXNWaXNpYmxlLCBwb3N9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGNvbnN0IG5ld01vZGFsU3R5bGUgPSB7XG4gICAgICAuLi5kZWZhdWx0TW9kYWxTdHlsZSxcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgLi4uKG1vZGFsU3R5bGUuY29udGVudCB8fCB7fSlcbiAgICAgIH0sXG4gICAgICBvdmVybGF5OiB7XG4gICAgICAgIC4uLmRlZmF1bHRNb2RhbFN0eWxlLm92ZXJsYXksXG4gICAgICAgIC4uLihtb2RhbFN0eWxlLm92ZXJsYXkgfHwge30pLFxuICAgICAgICAvLyBuZWVkcyB0byBiZSBvbiB0b3Agb2YgZXhpc3RpbmcgbW9kYWxcbiAgICAgICAgekluZGV4OiBvdmVybGF5WkluZGV4IHx8IDk5OTlcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxSb290Q29udGV4dC5Db25zdW1lcj5cbiAgICAgICAge2NvbnRleHQgPT4gKFxuICAgICAgICAgIDxDb21wIHJlZj17dGhpcy5lbGVtZW50fT5cbiAgICAgICAgICAgIHtpc09wZW5lZCA/IChcbiAgICAgICAgICAgICAgPE1vZGFsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibW9kYWwtcG9ydGFsXCJcbiAgICAgICAgICAgICAgICB7Li4ubW9kYWxQcm9wc31cbiAgICAgICAgICAgICAgICBhcmlhSGlkZUFwcD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgaXNPcGVuXG4gICAgICAgICAgICAgICAgc3R5bGU9e25ld01vZGFsU3R5bGV9XG4gICAgICAgICAgICAgICAgcGFyZW50U2VsZWN0b3I9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIC8vIFJlYWN0IG1vZGFsIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcmVhY3Rqcy9yZWFjdC1tb2RhbC9pc3N1ZXMvNzY5XG4gICAgICAgICAgICAgICAgICAvLyBmYWlsZWQgdG8gZXhlY3V0ZSByZW1vdmVDaGlsZCBvbiBwYXJlbnQgbm9kZSB3aGVuIGl0IGlzIGFscmVhZHkgdW5tb3VudGVkXG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICAgIChjb250ZXh0ICYmIGNvbnRleHQuY3VycmVudCkgfHwge1xuICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUNoaWxkOiAoKSA9PiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZDogKCkgPT4ge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicG9ydGFsZWQtY29udGVudFwiXG4gICAgICAgICAgICAgICAgICBrZXk9XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiBpc1Zpc2libGUgPyAxIDogMCxcbiAgICAgICAgICAgICAgICAgICAgdG9wOiB0aGlzLnN0YXRlLnRvcCxcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiBpc1Zpc2libGUgPyAnMHB4JyA6ICcxNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAuLi5wb3NcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICByZWY9e3RoaXMuY2hpbGR9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgekluZGV4OiBvdmVybGF5WkluZGV4ID8gb3ZlcmxheVpJbmRleCArIDEgOiAxMDAwMFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9Nb2RhbD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvQ29tcD5cbiAgICAgICAgKX1cbiAgICAgIDwvUm9vdENvbnRleHQuQ29uc3VtZXI+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoVGhlbWUoUG9ydGFsZWQpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGlCQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxXQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUSxPQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUyxLQUFBLEdBQUFULE9BQUE7QUFBa0MsU0FBQVUseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFaLHdCQUFBWSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJ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
@@ -1,43 +1,54 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
-
12
9
  var _react = _interopRequireDefault(require("react"));
13
-
14
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
15
-
16
- var _templateObject, _templateObject2;
17
-
11
+ var _templateObject, _templateObject2; // Copyright (c) 2022 Uber Technologies, Inc.
12
+ //
13
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ // of this software and associated documentation files (the "Software"), to deal
15
+ // in the Software without restriction, including without limitation the rights
16
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ // copies of the Software, and to permit persons to whom the Software is
18
+ // furnished to do so, subject to the following conditions:
19
+ //
20
+ // The above copyright notice and this permission notice shall be included in
21
+ // all copies or substantial portions of the Software.
22
+ //
23
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
29
+ // THE SOFTWARE.
18
30
  /** @typedef {import('./progress-bar').ProgressBarProps} ProgressBarProps */
31
+
19
32
  var StyledBar = _styledComponents["default"].span.attrs({
20
33
  className: 'progress-bar__bar'
21
34
  })(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n /* transition: width 200ms; */\n display: block;\n"])), function (props) {
22
35
  return props.barColor || props.theme.progressBarColor;
23
36
  });
24
-
25
37
  var StyledTrack = _styledComponents["default"].div.attrs({
26
38
  className: 'progress-bar'
27
39
  })(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n"])), function (props) {
28
40
  return props.trackColor || props.theme.progressBarTrackColor;
29
41
  });
30
- /** @type {React.FunctionComponent<ProgressBarProps>} */
31
-
32
42
 
43
+ /** @type {React.FunctionComponent<ProgressBarProps>} */
33
44
  var ProgressBar = function ProgressBar(_ref) {
34
45
  var percent = _ref.percent,
35
- _ref$height = _ref.height,
36
- height = _ref$height === void 0 ? 4 : _ref$height,
37
- isLoading = _ref.isLoading,
38
- barColor = _ref.barColor,
39
- trackColor = _ref.trackColor,
40
- theme = _ref.theme;
46
+ _ref$height = _ref.height,
47
+ height = _ref$height === void 0 ? 4 : _ref$height,
48
+ isLoading = _ref.isLoading,
49
+ barColor = _ref.barColor,
50
+ trackColor = _ref.trackColor,
51
+ theme = _ref.theme;
41
52
  return /*#__PURE__*/_react["default"].createElement(StyledTrack, {
42
53
  trackColor: trackColor,
43
54
  theme: theme
@@ -50,7 +61,5 @@ var ProgressBar = function ProgressBar(_ref) {
50
61
  }
51
62
  }));
52
63
  };
53
-
54
- var _default = ProgressBar;
55
- exports["default"] = _default;
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9wcm9ncmVzcy1iYXIuanMiXSwibmFtZXMiOlsiU3R5bGVkQmFyIiwic3R5bGVkIiwic3BhbiIsImF0dHJzIiwiY2xhc3NOYW1lIiwicHJvcHMiLCJiYXJDb2xvciIsInRoZW1lIiwicHJvZ3Jlc3NCYXJDb2xvciIsIlN0eWxlZFRyYWNrIiwiZGl2IiwidHJhY2tDb2xvciIsInByb2dyZXNzQmFyVHJhY2tDb2xvciIsIlByb2dyZXNzQmFyIiwicGVyY2VudCIsImhlaWdodCIsImlzTG9hZGluZyIsIndpZHRoIiwib3BhY2l0eSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7Ozs7QUFFQTtBQUVBLElBQU1BLFNBQVMsR0FBR0MsNkJBQU9DLElBQVAsQ0FBWUMsS0FBWixDQUFrQjtBQUNsQ0MsRUFBQUEsU0FBUyxFQUFFO0FBRHVCLENBQWxCLENBQUgseUtBR08sVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsUUFBTixJQUFrQkQsS0FBSyxDQUFDRSxLQUFOLENBQVlDLGdCQUFsQztBQUFBLENBSFosQ0FBZjs7QUFPQSxJQUFNQyxXQUFXLEdBQUdSLDZCQUFPUyxHQUFQLENBQVdQLEtBQVgsQ0FBaUI7QUFDbkNDLEVBQUFBLFNBQVMsRUFBRTtBQUR3QixDQUFqQixDQUFILHNIQUdLLFVBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNNLFVBQU4sSUFBb0JOLEtBQUssQ0FBQ0UsS0FBTixDQUFZSyxxQkFBcEM7QUFBQSxDQUhWLENBQWpCO0FBTUE7OztBQUNBLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjO0FBQUEsTUFBRUMsT0FBRixRQUFFQSxPQUFGO0FBQUEseUJBQVdDLE1BQVg7QUFBQSxNQUFXQSxNQUFYLDRCQUFvQixDQUFwQjtBQUFBLE1BQXVCQyxTQUF2QixRQUF1QkEsU0FBdkI7QUFBQSxNQUFrQ1YsUUFBbEMsUUFBa0NBLFFBQWxDO0FBQUEsTUFBNENLLFVBQTVDLFFBQTRDQSxVQUE1QztBQUFBLE1BQXdESixLQUF4RCxRQUF3REEsS0FBeEQ7QUFBQSxzQkFDbEIsZ0NBQUMsV0FBRDtBQUFhLElBQUEsVUFBVSxFQUFFSSxVQUF6QjtBQUFxQyxJQUFBLEtBQUssRUFBRUo7QUFBNUMsa0JBQ0UsZ0NBQUMsU0FBRDtBQUNFLElBQUEsUUFBUSxFQUFFRCxRQURaO0FBRUUsSUFBQSxLQUFLLEVBQUU7QUFBQ1csTUFBQUEsS0FBSyxFQUFFSCxPQUFSO0FBQWlCQyxNQUFBQSxNQUFNLFlBQUtBLE1BQUwsT0FBdkI7QUFBd0NHLE1BQUFBLE9BQU8sRUFBRUYsU0FBUyxHQUFHLENBQUgsR0FBTztBQUFqRTtBQUZULElBREYsQ0FEa0I7QUFBQSxDQUFwQjs7ZUFTZUgsVyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuLyoqIEB0eXBlZGVmIHtpbXBvcnQoJy4vcHJvZ3Jlc3MtYmFyJykuUHJvZ3Jlc3NCYXJQcm9wc30gUHJvZ3Jlc3NCYXJQcm9wcyAqL1xuXG5jb25zdCBTdHlsZWRCYXIgPSBzdHlsZWQuc3Bhbi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3Byb2dyZXNzLWJhcl9fYmFyJ1xufSlgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuYmFyQ29sb3IgfHwgcHJvcHMudGhlbWUucHJvZ3Jlc3NCYXJDb2xvcn07XG4gIC8qIHRyYW5zaXRpb246IHdpZHRoIDIwMG1zOyAqL1xuICBkaXNwbGF5OiBibG9jaztcbmA7XG5jb25zdCBTdHlsZWRUcmFjayA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdwcm9ncmVzcy1iYXInXG59KWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50cmFja0NvbG9yIHx8IHByb3BzLnRoZW1lLnByb2dyZXNzQmFyVHJhY2tDb2xvcn07XG5gO1xuXG4vKiogQHR5cGUge1JlYWN0LkZ1bmN0aW9uQ29tcG9uZW50PFByb2dyZXNzQmFyUHJvcHM+fSAqL1xuY29uc3QgUHJvZ3Jlc3NCYXIgPSAoe3BlcmNlbnQsIGhlaWdodCA9IDQsIGlzTG9hZGluZywgYmFyQ29sb3IsIHRyYWNrQ29sb3IsIHRoZW1lfSkgPT4gKFxuICA8U3R5bGVkVHJhY2sgdHJhY2tDb2xvcj17dHJhY2tDb2xvcn0gdGhlbWU9e3RoZW1lfT5cbiAgICA8U3R5bGVkQmFyXG4gICAgICBiYXJDb2xvcj17YmFyQ29sb3J9XG4gICAgICBzdHlsZT17e3dpZHRoOiBwZXJjZW50LCBoZWlnaHQ6IGAke2hlaWdodH1weGAsIG9wYWNpdHk6IGlzTG9hZGluZyA/IDEgOiAwfX1cbiAgICAvPlxuICA8L1N0eWxlZFRyYWNrPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgUHJvZ3Jlc3NCYXI7XG4iXX0=
64
+ var _default = exports["default"] = ProgressBar;
65
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIlN0eWxlZEJhciIsInN0eWxlZCIsInNwYW4iLCJhdHRycyIsImNsYXNzTmFtZSIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJiYXJDb2xvciIsInRoZW1lIiwicHJvZ3Jlc3NCYXJDb2xvciIsIlN0eWxlZFRyYWNrIiwiZGl2IiwidHJhY2tDb2xvciIsInByb2dyZXNzQmFyVHJhY2tDb2xvciIsIlByb2dyZXNzQmFyIiwiX3JlZiIsInBlcmNlbnQiLCJfcmVmJGhlaWdodCIsImhlaWdodCIsImlzTG9hZGluZyIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsIndpZHRoIiwiY29uY2F0Iiwib3BhY2l0eSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9wcm9ncmVzcy1iYXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG4vKiogQHR5cGVkZWYge2ltcG9ydCgnLi9wcm9ncmVzcy1iYXInKS5Qcm9ncmVzc0JhclByb3BzfSBQcm9ncmVzc0JhclByb3BzICovXG5cbmNvbnN0IFN0eWxlZEJhciA9IHN0eWxlZC5zcGFuLmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAncHJvZ3Jlc3MtYmFyX19iYXInXG59KWBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5iYXJDb2xvciB8fCBwcm9wcy50aGVtZS5wcm9ncmVzc0JhckNvbG9yfTtcbiAgLyogdHJhbnNpdGlvbjogd2lkdGggMjAwbXM7ICovXG4gIGRpc3BsYXk6IGJsb2NrO1xuYDtcbmNvbnN0IFN0eWxlZFRyYWNrID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3Byb2dyZXNzLWJhcidcbn0pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRyYWNrQ29sb3IgfHwgcHJvcHMudGhlbWUucHJvZ3Jlc3NCYXJUcmFja0NvbG9yfTtcbmA7XG5cbi8qKiBAdHlwZSB7UmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8UHJvZ3Jlc3NCYXJQcm9wcz59ICovXG5jb25zdCBQcm9ncmVzc0JhciA9ICh7cGVyY2VudCwgaGVpZ2h0ID0gNCwgaXNMb2FkaW5nLCBiYXJDb2xvciwgdHJhY2tDb2xvciwgdGhlbWV9KSA9PiAoXG4gIDxTdHlsZWRUcmFjayB0cmFja0NvbG9yPXt0cmFja0NvbG9yfSB0aGVtZT17dGhlbWV9PlxuICAgIDxTdHlsZWRCYXJcbiAgICAgIGJhckNvbG9yPXtiYXJDb2xvcn1cbiAgICAgIHN0eWxlPXt7d2lkdGg6IHBlcmNlbnQsIGhlaWdodDogYCR7aGVpZ2h0fXB4YCwgb3BhY2l0eTogaXNMb2FkaW5nID8gMSA6IDB9fVxuICAgIC8+XG4gIDwvU3R5bGVkVHJhY2s+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBQcm9ncmVzc0JhcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFvQkEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUF1QyxJQUFBRSxlQUFBLEVBQUFDLGdCQUFBLEVBckJ2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtBOztBQUVBLElBQU1DLFNBQVMsR0FBR0MsNEJBQU0sQ0FBQ0MsSUFBSSxDQUFDQyxLQUFLLENBQUM7RUFDbENDLFNBQVMsRUFBRTtBQUNiLENBQUMsQ0FBQyxDQUFBTixlQUFBLEtBQUFBLGVBQUEsT0FBQU8sdUJBQUEsdUdBQ29CLFVBQUFDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLFFBQVEsSUFBSUQsS0FBSyxDQUFDRSxLQUFLLENBQUNDLGdCQUFnQjtBQUFBLEVBRzVFO0FBQ0QsSUFBTUMsV0FBVyxHQUFHVCw0QkFBTSxDQUFDVSxHQUFHLENBQUNSLEtBQUssQ0FBQztFQUNuQ0MsU0FBUyxFQUFFO0FBQ2IsQ0FBQyxDQUFDLENBQUFMLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUFNLHVCQUFBLGtEQUNvQixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDTSxVQUFVLElBQUlOLEtBQUssQ0FBQ0UsS0FBSyxDQUFDSyxxQkFBcUI7QUFBQSxFQUNuRjs7QUFFRDtBQUNBLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBQyxJQUFBO0VBQUEsSUFBS0MsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87SUFBQUMsV0FBQSxHQUFBRixJQUFBLENBQUVHLE1BQU07SUFBTkEsTUFBTSxHQUFBRCxXQUFBLGNBQUcsQ0FBQyxHQUFBQSxXQUFBO0lBQUVFLFNBQVMsR0FBQUosSUFBQSxDQUFUSSxTQUFTO0lBQUVaLFFBQVEsR0FBQVEsSUFBQSxDQUFSUixRQUFRO0lBQUVLLFVBQVUsR0FBQUcsSUFBQSxDQUFWSCxVQUFVO0lBQUVKLEtBQUssR0FBQU8sSUFBQSxDQUFMUCxLQUFLO0VBQUEsb0JBQy9FZCxNQUFBLFlBQUEwQixhQUFBLENBQUNWLFdBQVc7SUFBQ0UsVUFBVSxFQUFFQSxVQUFXO0lBQUNKLEtBQUssRUFBRUE7RUFBTSxnQkFDaERkLE1BQUEsWUFBQTBCLGFBQUEsQ0FBQ3BCLFNBQVM7SUFDUk8sUUFBUSxFQUFFQSxRQUFTO0lBQ25CYyxLQUFLLEVBQUU7TUFBQ0MsS0FBSyxFQUFFTixPQUFPO01BQUVFLE1BQU0sS0FBQUssTUFBQSxDQUFLTCxNQUFNLE9BQUk7TUFBRU0sT0FBTyxFQUFFTCxTQUFTLEdBQUcsQ0FBQyxHQUFHO0lBQUM7RUFBRSxDQUM1RSxDQUNVLENBQUM7QUFBQSxDQUNmO0FBQUMsSUFBQU0sUUFBQSxHQUFBQyxPQUFBLGNBRWFaLFdBQVcifQ==