@kepler.gl/components 3.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/dist/bottom-widget.d.ts +46 -0
  2. package/dist/bottom-widget.js +242 -0
  3. package/dist/common/action-panel.d.ts +27 -0
  4. package/dist/common/action-panel.js +152 -0
  5. package/dist/common/animation-control/animation-control.d.ts +24 -0
  6. package/dist/common/animation-control/animation-control.js +155 -0
  7. package/dist/common/animation-control/animation-controller.d.ts +15 -0
  8. package/dist/common/animation-control/animation-controller.js +324 -0
  9. package/dist/common/animation-control/animation-speed-slider.d.ts +12 -0
  10. package/dist/common/animation-control/animation-speed-slider.js +120 -0
  11. package/dist/common/animation-control/animation-window-control.d.ts +20 -0
  12. package/dist/common/animation-control/animation-window-control.js +86 -0
  13. package/dist/common/animation-control/floating-time-display.d.ts +9 -0
  14. package/dist/common/animation-control/floating-time-display.js +181 -0
  15. package/dist/common/animation-control/play-control.d.ts +12 -0
  16. package/dist/common/animation-control/play-control.js +81 -0
  17. package/dist/common/animation-control/playback-controls.d.ts +55 -0
  18. package/dist/common/animation-control/playback-controls.js +202 -0
  19. package/dist/common/animation-control/reset-control.d.ts +9 -0
  20. package/dist/common/animation-control/reset-control.js +71 -0
  21. package/dist/common/animation-control/speed-control.d.ts +12 -0
  22. package/dist/common/animation-control/speed-control.js +88 -0
  23. package/dist/common/animation-control/window-action-control.d.ts +11 -0
  24. package/dist/common/animation-control/window-action-control.js +87 -0
  25. package/dist/common/checkbox.d.ts +35 -0
  26. package/dist/common/checkbox.js +159 -0
  27. package/dist/common/color-legend.d.ts +39 -0
  28. package/dist/common/color-legend.js +257 -0
  29. package/dist/common/data-table/button.d.ts +8 -0
  30. package/dist/common/data-table/button.js +66 -0
  31. package/dist/common/data-table/canvas.d.ts +2 -0
  32. package/dist/common/data-table/canvas.js +52 -0
  33. package/dist/common/data-table/cell-size.d.ts +43 -0
  34. package/dist/common/data-table/cell-size.js +195 -0
  35. package/dist/common/data-table/grid.d.ts +7 -0
  36. package/dist/common/data-table/grid.js +119 -0
  37. package/dist/common/data-table/header-cell.d.ts +25 -0
  38. package/dist/common/data-table/header-cell.js +152 -0
  39. package/dist/common/data-table/index.d.ts +108 -0
  40. package/dist/common/data-table/index.js +457 -0
  41. package/dist/common/data-table/option-dropdown.d.ts +14 -0
  42. package/dist/common/data-table/option-dropdown.js +142 -0
  43. package/dist/common/dataset-label.d.ts +10 -0
  44. package/dist/common/dataset-label.js +56 -0
  45. package/dist/common/error-boundary.d.ts +12 -0
  46. package/dist/common/error-boundary.js +103 -0
  47. package/dist/common/field-selector.d.ts +43 -0
  48. package/dist/common/field-selector.js +220 -0
  49. package/dist/common/field-token.d.ts +46 -0
  50. package/dist/common/field-token.js +70 -0
  51. package/dist/common/file-uploader/file-drop.d.ts +53 -0
  52. package/dist/common/file-uploader/file-drop.js +252 -0
  53. package/dist/common/file-uploader/file-upload-progress.d.ts +8 -0
  54. package/dist/common/file-uploader/file-upload-progress.js +123 -0
  55. package/dist/common/file-uploader/file-upload.d.ts +27 -0
  56. package/dist/common/file-uploader/file-upload.js +324 -0
  57. package/dist/common/file-uploader/upload-button.d.ts +7 -0
  58. package/dist/common/file-uploader/upload-button.js +94 -0
  59. package/dist/common/histogram-plot.d.ts +3 -0
  60. package/dist/common/histogram-plot.js +134 -0
  61. package/dist/common/icon-button.d.ts +12 -0
  62. package/dist/common/icon-button.js +52 -0
  63. package/dist/common/icons/add.d.ts +9 -0
  64. package/dist/common/icons/add.js +78 -0
  65. package/dist/common/icons/anchor_window.d.ts +11 -0
  66. package/dist/common/icons/anchor_window.js +55 -0
  67. package/dist/common/icons/arrow-down-alt.d.ts +9 -0
  68. package/dist/common/icons/arrow-down-alt.js +78 -0
  69. package/dist/common/icons/arrow-down-solid.d.ts +9 -0
  70. package/dist/common/icons/arrow-down-solid.js +78 -0
  71. package/dist/common/icons/arrow-down.d.ts +9 -0
  72. package/dist/common/icons/arrow-down.js +78 -0
  73. package/dist/common/icons/arrow-left.d.ts +9 -0
  74. package/dist/common/icons/arrow-left.js +81 -0
  75. package/dist/common/icons/arrow-right.d.ts +9 -0
  76. package/dist/common/icons/arrow-right.js +78 -0
  77. package/dist/common/icons/arrow-up-alt.d.ts +9 -0
  78. package/dist/common/icons/arrow-up-alt.js +79 -0
  79. package/dist/common/icons/arrow-up-solid.d.ts +9 -0
  80. package/dist/common/icons/arrow-up-solid.js +78 -0
  81. package/dist/common/icons/arrow-up.d.ts +9 -0
  82. package/dist/common/icons/arrow-up.js +78 -0
  83. package/dist/common/icons/base.d.ts +29 -0
  84. package/dist/common/icons/base.js +116 -0
  85. package/dist/common/icons/bug.d.ts +9 -0
  86. package/dist/common/icons/bug.js +80 -0
  87. package/dist/common/icons/cancel.d.ts +9 -0
  88. package/dist/common/icons/cancel.js +78 -0
  89. package/dist/common/icons/checkmark.d.ts +10 -0
  90. package/dist/common/icons/checkmark.js +85 -0
  91. package/dist/common/icons/clipboard.d.ts +9 -0
  92. package/dist/common/icons/clipboard.js +79 -0
  93. package/dist/common/icons/clock.d.ts +9 -0
  94. package/dist/common/icons/clock.js +80 -0
  95. package/dist/common/icons/close.d.ts +9 -0
  96. package/dist/common/icons/close.js +83 -0
  97. package/dist/common/icons/code-alt.d.ts +9 -0
  98. package/dist/common/icons/code-alt.js +82 -0
  99. package/dist/common/icons/copy.d.ts +9 -0
  100. package/dist/common/icons/copy.js +84 -0
  101. package/dist/common/icons/crosshairs.d.ts +9 -0
  102. package/dist/common/icons/crosshairs.js +82 -0
  103. package/dist/common/icons/cube-3d.d.ts +9 -0
  104. package/dist/common/icons/cube-3d.js +82 -0
  105. package/dist/common/icons/cursor-click.d.ts +9 -0
  106. package/dist/common/icons/cursor-click.js +82 -0
  107. package/dist/common/icons/data-table.d.ts +10 -0
  108. package/dist/common/icons/data-table.js +79 -0
  109. package/dist/common/icons/db.d.ts +10 -0
  110. package/dist/common/icons/db.js +79 -0
  111. package/dist/common/icons/delete.d.ts +9 -0
  112. package/dist/common/icons/delete.js +80 -0
  113. package/dist/common/icons/docs.d.ts +9 -0
  114. package/dist/common/icons/docs.js +94 -0
  115. package/dist/common/icons/drag-n-drop.d.ts +9 -0
  116. package/dist/common/icons/drag-n-drop.js +80 -0
  117. package/dist/common/icons/draw-polygon.d.ts +10 -0
  118. package/dist/common/icons/draw-polygon.js +98 -0
  119. package/dist/common/icons/email.d.ts +9 -0
  120. package/dist/common/icons/email.js +82 -0
  121. package/dist/common/icons/expand.d.ts +9 -0
  122. package/dist/common/icons/expand.js +80 -0
  123. package/dist/common/icons/eye-seen.d.ts +9 -0
  124. package/dist/common/icons/eye-seen.js +80 -0
  125. package/dist/common/icons/eye-unseen.d.ts +9 -0
  126. package/dist/common/icons/eye-unseen.js +80 -0
  127. package/dist/common/icons/file-type.d.ts +8 -0
  128. package/dist/common/icons/file-type.js +65 -0
  129. package/dist/common/icons/file.d.ts +9 -0
  130. package/dist/common/icons/file.js +78 -0
  131. package/dist/common/icons/files.d.ts +9 -0
  132. package/dist/common/icons/files.js +80 -0
  133. package/dist/common/icons/filter-funnel.d.ts +9 -0
  134. package/dist/common/icons/filter-funnel.js +78 -0
  135. package/dist/common/icons/free-window.d.ts +11 -0
  136. package/dist/common/icons/free-window.js +55 -0
  137. package/dist/common/icons/gear.d.ts +9 -0
  138. package/dist/common/icons/gear.js +80 -0
  139. package/dist/common/icons/hash.d.ts +9 -0
  140. package/dist/common/icons/hash.js +78 -0
  141. package/dist/common/icons/histogram.d.ts +9 -0
  142. package/dist/common/icons/histogram.js +79 -0
  143. package/dist/common/icons/index.d.ts +76 -0
  144. package/dist/common/icons/index.js +624 -0
  145. package/dist/common/icons/info.d.ts +12 -0
  146. package/dist/common/icons/info.js +92 -0
  147. package/dist/common/icons/layers.d.ts +9 -0
  148. package/dist/common/icons/layers.js +78 -0
  149. package/dist/common/icons/left-arrow.d.ts +9 -0
  150. package/dist/common/icons/left-arrow.js +82 -0
  151. package/dist/common/icons/legend.d.ts +9 -0
  152. package/dist/common/icons/legend.js +78 -0
  153. package/dist/common/icons/line-chart.d.ts +9 -0
  154. package/dist/common/icons/line-chart.js +78 -0
  155. package/dist/common/icons/login.d.ts +9 -0
  156. package/dist/common/icons/login.js +81 -0
  157. package/dist/common/icons/logout.d.ts +9 -0
  158. package/dist/common/icons/logout.js +80 -0
  159. package/dist/common/icons/map-icon.d.ts +11 -0
  160. package/dist/common/icons/map-icon.js +86 -0
  161. package/dist/common/icons/map.d.ts +11 -0
  162. package/dist/common/icons/map.js +86 -0
  163. package/dist/common/icons/messages.d.ts +9 -0
  164. package/dist/common/icons/messages.js +78 -0
  165. package/dist/common/icons/minus.d.ts +9 -0
  166. package/dist/common/icons/minus.js +78 -0
  167. package/dist/common/icons/order-by-dataset.d.ts +12 -0
  168. package/dist/common/icons/order-by-dataset.js +55 -0
  169. package/dist/common/icons/order-by-list.d.ts +12 -0
  170. package/dist/common/icons/order-by-list.js +47 -0
  171. package/dist/common/icons/pause.d.ts +9 -0
  172. package/dist/common/icons/pause.js +78 -0
  173. package/dist/common/icons/picture.d.ts +9 -0
  174. package/dist/common/icons/picture.js +80 -0
  175. package/dist/common/icons/pin.d.ts +9 -0
  176. package/dist/common/icons/pin.js +86 -0
  177. package/dist/common/icons/play.d.ts +9 -0
  178. package/dist/common/icons/play.js +78 -0
  179. package/dist/common/icons/polygon.d.ts +10 -0
  180. package/dist/common/icons/polygon.js +100 -0
  181. package/dist/common/icons/rectangle.d.ts +10 -0
  182. package/dist/common/icons/rectangle.js +101 -0
  183. package/dist/common/icons/reduce.d.ts +9 -0
  184. package/dist/common/icons/reduce.js +81 -0
  185. package/dist/common/icons/reset.d.ts +9 -0
  186. package/dist/common/icons/reset.js +78 -0
  187. package/dist/common/icons/rocket.d.ts +9 -0
  188. package/dist/common/icons/rocket.js +78 -0
  189. package/dist/common/icons/save.d.ts +9 -0
  190. package/dist/common/icons/save.js +80 -0
  191. package/dist/common/icons/save2.d.ts +9 -0
  192. package/dist/common/icons/save2.js +84 -0
  193. package/dist/common/icons/search.d.ts +9 -0
  194. package/dist/common/icons/search.js +80 -0
  195. package/dist/common/icons/settings.d.ts +9 -0
  196. package/dist/common/icons/settings.js +80 -0
  197. package/dist/common/icons/share.d.ts +9 -0
  198. package/dist/common/icons/share.js +78 -0
  199. package/dist/common/icons/split.d.ts +9 -0
  200. package/dist/common/icons/split.js +106 -0
  201. package/dist/common/icons/square-select.d.ts +9 -0
  202. package/dist/common/icons/square-select.js +80 -0
  203. package/dist/common/icons/trash.d.ts +9 -0
  204. package/dist/common/icons/trash.js +80 -0
  205. package/dist/common/icons/vert-dots.d.ts +9 -0
  206. package/dist/common/icons/vert-dots.js +116 -0
  207. package/dist/common/icons/vert-three-dots.d.ts +9 -0
  208. package/dist/common/icons/vert-three-dots.js +91 -0
  209. package/dist/common/icons/warning-sign.d.ts +15 -0
  210. package/dist/common/icons/warning-sign.js +100 -0
  211. package/dist/common/icons/warning.d.ts +10 -0
  212. package/dist/common/icons/warning.js +93 -0
  213. package/dist/common/image-preview.d.ts +15 -0
  214. package/dist/common/image-preview.js +91 -0
  215. package/dist/common/index.d.ts +3 -0
  216. package/dist/common/index.js +287 -0
  217. package/dist/common/info-helper.d.ts +10 -0
  218. package/dist/common/info-helper.js +95 -0
  219. package/dist/common/item-selector/accessor.d.ts +7 -0
  220. package/dist/common/item-selector/accessor.js +56 -0
  221. package/dist/common/item-selector/chickleted-input.d.ts +21 -0
  222. package/dist/common/item-selector/chickleted-input.js +116 -0
  223. package/dist/common/item-selector/dropdown-list.d.ts +50 -0
  224. package/dist/common/item-selector/dropdown-list.js +191 -0
  225. package/dist/common/item-selector/item-selector.d.ts +45 -0
  226. package/dist/common/item-selector/item-selector.js +359 -0
  227. package/dist/common/item-selector/typeahead.d.ts +113 -0
  228. package/dist/common/item-selector/typeahead.js +507 -0
  229. package/dist/common/line-chart.d.ts +34 -0
  230. package/dist/common/line-chart.js +146 -0
  231. package/dist/common/loading-spinner.d.ts +9 -0
  232. package/dist/common/loading-spinner.js +76 -0
  233. package/dist/common/logo.d.ts +8 -0
  234. package/dist/common/logo.js +102 -0
  235. package/dist/common/map-layer-selector.d.ts +13 -0
  236. package/dist/common/map-layer-selector.js +69 -0
  237. package/dist/common/modal.d.ts +51 -0
  238. package/dist/common/modal.js +211 -0
  239. package/dist/common/portaled.d.ts +54 -0
  240. package/dist/common/portaled.js +360 -0
  241. package/dist/common/progress-bar.d.ts +12 -0
  242. package/dist/common/progress-bar.js +74 -0
  243. package/dist/common/range-brush.d.ts +19 -0
  244. package/dist/common/range-brush.js +346 -0
  245. package/dist/common/range-plot.d.ts +35 -0
  246. package/dist/common/range-plot.js +156 -0
  247. package/dist/common/range-slider.d.ts +30 -0
  248. package/dist/common/range-slider.js +343 -0
  249. package/dist/common/slider/mouse-event.d.ts +27 -0
  250. package/dist/common/slider/mouse-event.js +145 -0
  251. package/dist/common/slider/slider-bar-handle.d.ts +29 -0
  252. package/dist/common/slider/slider-bar-handle.js +135 -0
  253. package/dist/common/slider/slider-handle.d.ts +33 -0
  254. package/dist/common/slider/slider-handle.js +182 -0
  255. package/dist/common/slider/slider.d.ts +70 -0
  256. package/dist/common/slider/slider.js +264 -0
  257. package/dist/common/styled-components.d.ts +123 -0
  258. package/dist/common/styled-components.js +438 -0
  259. package/dist/common/switch.d.ts +15 -0
  260. package/dist/common/switch.js +50 -0
  261. package/dist/common/time-range-slider-time-title.d.ts +9 -0
  262. package/dist/common/time-range-slider-time-title.js +94 -0
  263. package/dist/common/time-range-slider.d.ts +32 -0
  264. package/dist/common/time-range-slider.js +132 -0
  265. package/dist/common/time-slider-marker.d.ts +21 -0
  266. package/dist/common/time-slider-marker.js +161 -0
  267. package/dist/common/tippy-tooltip.d.ts +4 -0
  268. package/dist/common/tippy-tooltip.js +142 -0
  269. package/dist/common/toolbar-item.d.ts +14 -0
  270. package/dist/common/toolbar-item.js +91 -0
  271. package/dist/common/toolbar.d.ts +5 -0
  272. package/dist/common/toolbar.js +53 -0
  273. package/dist/common/vertical-toolbar.d.ts +3 -0
  274. package/dist/common/vertical-toolbar.js +42 -0
  275. package/dist/connect/keplergl-connect.d.ts +5 -0
  276. package/dist/connect/keplergl-connect.js +67 -0
  277. package/dist/connect/with-local-selector.d.ts +6 -0
  278. package/dist/connect/with-local-selector.js +130 -0
  279. package/dist/container.d.ts +39 -0
  280. package/dist/container.js +242 -0
  281. package/dist/context.d.ts +16 -0
  282. package/dist/context.js +53 -0
  283. package/dist/editor/constants.d.ts +17 -0
  284. package/dist/editor/constants.js +47 -0
  285. package/dist/editor/editor.d.ts +30 -0
  286. package/dist/editor/editor.js +279 -0
  287. package/dist/editor/feature-action-panel.d.ts +30 -0
  288. package/dist/editor/feature-action-panel.js +169 -0
  289. package/dist/editor/feature-styles.d.ts +37 -0
  290. package/dist/editor/feature-styles.js +92 -0
  291. package/dist/editor/handle-style.d.ts +42 -0
  292. package/dist/editor/handle-style.js +100 -0
  293. package/dist/filters/components.d.ts +3 -0
  294. package/dist/filters/components.js +40 -0
  295. package/dist/filters/filter-panels/filter-panel-with-field-select.d.ts +10 -0
  296. package/dist/filters/filter-panels/filter-panel-with-field-select.js +106 -0
  297. package/dist/filters/filter-panels/multi-select-filter-panel.d.ts +9 -0
  298. package/dist/filters/filter-panels/multi-select-filter-panel.js +72 -0
  299. package/dist/filters/filter-panels/new-filter-panel.d.ts +12 -0
  300. package/dist/filters/filter-panels/new-filter-panel.js +94 -0
  301. package/dist/filters/filter-panels/polygon-filter-panel.d.ts +9 -0
  302. package/dist/filters/filter-panels/polygon-filter-panel.js +96 -0
  303. package/dist/filters/filter-panels/range-filter-panel.d.ts +9 -0
  304. package/dist/filters/filter-panels/range-filter-panel.js +72 -0
  305. package/dist/filters/filter-panels/single-select-filter-panel.d.ts +9 -0
  306. package/dist/filters/filter-panels/single-select-filter-panel.js +72 -0
  307. package/dist/filters/filter-panels/time-range-filter-panel.d.ts +8 -0
  308. package/dist/filters/filter-panels/time-range-filter-panel.js +87 -0
  309. package/dist/filters/filter-panels/types.d.ts +35 -0
  310. package/dist/filters/filter-panels/types.js +26 -0
  311. package/dist/filters/index.d.ts +5 -0
  312. package/dist/filters/index.js +68 -0
  313. package/dist/filters/multi-select-filter.d.ts +3 -0
  314. package/dist/filters/multi-select-filter.js +53 -0
  315. package/dist/filters/polygon-filter.d.ts +4 -0
  316. package/dist/filters/polygon-filter.js +94 -0
  317. package/dist/filters/range-filter.d.ts +8 -0
  318. package/dist/filters/range-filter.js +52 -0
  319. package/dist/filters/single-select-filter.d.ts +3 -0
  320. package/dist/filters/single-select-filter.js +62 -0
  321. package/dist/filters/time-range-filter.d.ts +28 -0
  322. package/dist/filters/time-range-filter.js +84 -0
  323. package/dist/filters/time-widget.d.ts +14 -0
  324. package/dist/filters/time-widget.js +192 -0
  325. package/dist/filters/types.d.ts +54 -0
  326. package/dist/filters/types.js +26 -0
  327. package/dist/geocoder/geocoder.d.ts +33 -0
  328. package/dist/geocoder/geocoder.js +336 -0
  329. package/dist/geocoder-panel.d.ts +25 -0
  330. package/dist/geocoder-panel.js +241 -0
  331. package/dist/hooks/useFeatureFlags.d.ts +2 -0
  332. package/dist/hooks/useFeatureFlags.js +38 -0
  333. package/dist/index.d.ts +176 -0
  334. package/dist/index.js +1935 -0
  335. package/dist/injector.d.ts +29 -0
  336. package/dist/injector.js +198 -0
  337. package/dist/kepler-gl.d.ts +281 -0
  338. package/dist/kepler-gl.js +568 -0
  339. package/dist/map/coordinate-info.d.ts +7 -0
  340. package/dist/map/coordinate-info.js +67 -0
  341. package/dist/map/layer-hover-info.d.ts +13 -0
  342. package/dist/map/layer-hover-info.js +228 -0
  343. package/dist/map/layer-selector-panel.d.ts +21 -0
  344. package/dist/map/layer-selector-panel.js +114 -0
  345. package/dist/map/lazy-tippy.d.ts +7 -0
  346. package/dist/map/lazy-tippy.js +94 -0
  347. package/dist/map/locale-panel.d.ts +16 -0
  348. package/dist/map/locale-panel.js +107 -0
  349. package/dist/map/map-control-panel.d.ts +13 -0
  350. package/dist/map/map-control-panel.js +116 -0
  351. package/dist/map/map-control-toolbar.d.ts +2 -0
  352. package/dist/map/map-control-toolbar.js +45 -0
  353. package/dist/map/map-control-tooltip.d.ts +8 -0
  354. package/dist/map/map-control-tooltip.js +57 -0
  355. package/dist/map/map-control.d.ts +45 -0
  356. package/dist/map/map-control.js +101 -0
  357. package/dist/map/map-draw-panel.d.ts +20 -0
  358. package/dist/map/map-draw-panel.js +137 -0
  359. package/dist/map/map-legend-panel.d.ts +24 -0
  360. package/dist/map/map-legend-panel.js +181 -0
  361. package/dist/map/map-legend.d.ts +55 -0
  362. package/dist/map/map-legend.js +274 -0
  363. package/dist/map/map-popover.d.ts +36 -0
  364. package/dist/map/map-popover.js +217 -0
  365. package/dist/map/split-map-button.d.ts +20 -0
  366. package/dist/map/split-map-button.js +92 -0
  367. package/dist/map/toggle-3d-button.d.ts +17 -0
  368. package/dist/map/toggle-3d-button.js +81 -0
  369. package/dist/map-container.d.ts +48 -0
  370. package/dist/map-container.js +653 -0
  371. package/dist/maps-layout.d.ts +9 -0
  372. package/dist/maps-layout.js +80 -0
  373. package/dist/modal-container.d.ts +63 -0
  374. package/dist/modal-container.js +530 -0
  375. package/dist/modals/add-map-style-modal.d.ts +18 -0
  376. package/dist/modals/add-map-style-modal.js +300 -0
  377. package/dist/modals/cloud-tile.d.ts +15 -0
  378. package/dist/modals/cloud-tile.js +144 -0
  379. package/dist/modals/data-table-modal.d.ts +28 -0
  380. package/dist/modals/data-table-modal.js +285 -0
  381. package/dist/modals/delete-data-modal.d.ts +10 -0
  382. package/dist/modals/delete-data-modal.js +74 -0
  383. package/dist/modals/error-display.d.ts +6 -0
  384. package/dist/modals/error-display.js +50 -0
  385. package/dist/modals/export-data-modal.d.ts +25 -0
  386. package/dist/modals/export-data-modal.js +232 -0
  387. package/dist/modals/export-image-modal.d.ts +18 -0
  388. package/dist/modals/export-image-modal.js +156 -0
  389. package/dist/modals/export-map-modal/components.d.ts +8 -0
  390. package/dist/modals/export-map-modal/components.js +71 -0
  391. package/dist/modals/export-map-modal/export-html-map.d.ts +12 -0
  392. package/dist/modals/export-map-modal/export-html-map.js +158 -0
  393. package/dist/modals/export-map-modal/export-json-map.d.ts +9 -0
  394. package/dist/modals/export-map-modal/export-json-map.js +120 -0
  395. package/dist/modals/export-map-modal/export-map-modal.d.ts +27 -0
  396. package/dist/modals/export-map-modal/export-map-modal.js +119 -0
  397. package/dist/modals/image-modal-container.d.ts +17 -0
  398. package/dist/modals/image-modal-container.js +86 -0
  399. package/dist/modals/load-data-modal.d.ts +41 -0
  400. package/dist/modals/load-data-modal.js +118 -0
  401. package/dist/modals/load-storage-map.d.ts +26 -0
  402. package/dist/modals/load-storage-map.js +308 -0
  403. package/dist/modals/loading-dialog.d.ts +7 -0
  404. package/dist/modals/loading-dialog.js +68 -0
  405. package/dist/modals/modal-dialog.d.ts +2 -0
  406. package/dist/modals/modal-dialog.js +36 -0
  407. package/dist/modals/modal-tabs.d.ts +27 -0
  408. package/dist/modals/modal-tabs.js +119 -0
  409. package/dist/modals/overwrite-map-modal.d.ts +16 -0
  410. package/dist/modals/overwrite-map-modal.js +100 -0
  411. package/dist/modals/provider-modal-container.d.ts +22 -0
  412. package/dist/modals/provider-modal-container.js +101 -0
  413. package/dist/modals/save-map-modal.d.ts +30 -0
  414. package/dist/modals/save-map-modal.js +226 -0
  415. package/dist/modals/share-map-modal.d.ts +30 -0
  416. package/dist/modals/share-map-modal.js +219 -0
  417. package/dist/modals/status-panel.d.ts +13 -0
  418. package/dist/modals/status-panel.js +103 -0
  419. package/dist/modals/storage-map-viewer.d.ts +21 -0
  420. package/dist/modals/storage-map-viewer.js +147 -0
  421. package/dist/notification-panel/notification-item.d.ts +70 -0
  422. package/dist/notification-panel/notification-item.js +173 -0
  423. package/dist/notification-panel.d.ts +13 -0
  424. package/dist/notification-panel.js +106 -0
  425. package/dist/plot-container.d.ts +24 -0
  426. package/dist/plot-container.js +276 -0
  427. package/dist/side-panel/cloud-storage-dropdown.d.ts +6 -0
  428. package/dist/side-panel/cloud-storage-dropdown.js +62 -0
  429. package/dist/side-panel/common/dataset-info.d.ts +3 -0
  430. package/dist/side-panel/common/dataset-info.js +63 -0
  431. package/dist/side-panel/common/dataset-tag.d.ts +3 -0
  432. package/dist/side-panel/common/dataset-tag.js +89 -0
  433. package/dist/side-panel/common/dataset-title.d.ts +8 -0
  434. package/dist/side-panel/common/dataset-title.js +225 -0
  435. package/dist/side-panel/common/source-data-catalog.d.ts +9 -0
  436. package/dist/side-panel/common/source-data-catalog.js +82 -0
  437. package/dist/side-panel/common/source-data-selector.d.ts +8 -0
  438. package/dist/side-panel/common/source-data-selector.js +96 -0
  439. package/dist/side-panel/common/types.d.ts +63 -0
  440. package/dist/side-panel/common/types.js +26 -0
  441. package/dist/side-panel/custom-panel.d.ts +9 -0
  442. package/dist/side-panel/custom-panel.js +59 -0
  443. package/dist/side-panel/filter-manager.d.ts +20 -0
  444. package/dist/side-panel/filter-manager.js +132 -0
  445. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +21 -0
  446. package/dist/side-panel/filter-panel/filter-panel-header.js +87 -0
  447. package/dist/side-panel/filter-panel/filter-panel.d.ts +23 -0
  448. package/dist/side-panel/filter-panel/filter-panel.js +151 -0
  449. package/dist/side-panel/interaction-manager.d.ts +15 -0
  450. package/dist/side-panel/interaction-manager.js +57 -0
  451. package/dist/side-panel/interaction-panel/brush-config.d.ts +15 -0
  452. package/dist/side-panel/interaction-panel/brush-config.js +74 -0
  453. package/dist/side-panel/interaction-panel/interaction-panel.d.ts +18 -0
  454. package/dist/side-panel/interaction-panel/interaction-panel.js +156 -0
  455. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +28 -0
  456. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +264 -0
  457. package/dist/side-panel/interaction-panel/tooltip-config.d.ts +38 -0
  458. package/dist/side-panel/interaction-panel/tooltip-config.js +185 -0
  459. package/dist/side-panel/layer-manager.d.ts +39 -0
  460. package/dist/side-panel/layer-manager.js +225 -0
  461. package/dist/side-panel/layer-panel/add-layer-button.d.ts +10 -0
  462. package/dist/side-panel/layer-panel/add-layer-button.js +176 -0
  463. package/dist/side-panel/layer-panel/color-palette.d.ts +11 -0
  464. package/dist/side-panel/layer-panel/color-palette.js +91 -0
  465. package/dist/side-panel/layer-panel/color-range-selector.d.ts +47 -0
  466. package/dist/side-panel/layer-panel/color-range-selector.js +290 -0
  467. package/dist/side-panel/layer-panel/color-selector.d.ts +42 -0
  468. package/dist/side-panel/layer-panel/color-selector.js +225 -0
  469. package/dist/side-panel/layer-panel/column-selector.d.ts +22 -0
  470. package/dist/side-panel/layer-panel/column-selector.js +85 -0
  471. package/dist/side-panel/layer-panel/custom-palette.d.ts +38 -0
  472. package/dist/side-panel/layer-panel/custom-palette.js +312 -0
  473. package/dist/side-panel/layer-panel/custom-picker.d.ts +51 -0
  474. package/dist/side-panel/layer-panel/custom-picker.js +136 -0
  475. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +22 -0
  476. package/dist/side-panel/layer-panel/dataset-layer-group.js +86 -0
  477. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +23 -0
  478. package/dist/side-panel/layer-panel/dataset-layer-section.js +89 -0
  479. package/dist/side-panel/layer-panel/dataset-section.d.ts +24 -0
  480. package/dist/side-panel/layer-panel/dataset-section.js +112 -0
  481. package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +10 -0
  482. package/dist/side-panel/layer-panel/dimension-scale-selector.js +60 -0
  483. package/dist/side-panel/layer-panel/how-to-button.d.ts +6 -0
  484. package/dist/side-panel/layer-panel/how-to-button.js +58 -0
  485. package/dist/side-panel/layer-panel/layer-column-config.d.ts +19 -0
  486. package/dist/side-panel/layer-panel/layer-column-config.js +107 -0
  487. package/dist/side-panel/layer-panel/layer-config-group.d.ts +35 -0
  488. package/dist/side-panel/layer-panel/layer-config-group.js +188 -0
  489. package/dist/side-panel/layer-panel/layer-configurator.d.ts +100 -0
  490. package/dist/side-panel/layer-panel/layer-configurator.js +792 -0
  491. package/dist/side-panel/layer-panel/layer-list.d.ts +19 -0
  492. package/dist/side-panel/layer-panel/layer-list.js +188 -0
  493. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +63 -0
  494. package/dist/side-panel/layer-panel/layer-panel-header.js +291 -0
  495. package/dist/side-panel/layer-panel/layer-panel.d.ts +36 -0
  496. package/dist/side-panel/layer-panel/layer-panel.js +201 -0
  497. package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +22 -0
  498. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +109 -0
  499. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +13 -0
  500. package/dist/side-panel/layer-panel/layer-type-list-item.js +89 -0
  501. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +21 -0
  502. package/dist/side-panel/layer-panel/layer-type-selector.js +91 -0
  503. package/dist/side-panel/layer-panel/panel-view-list-toggle.d.ts +36 -0
  504. package/dist/side-panel/layer-panel/panel-view-list-toggle.js +143 -0
  505. package/dist/side-panel/layer-panel/single-color-palette.d.ts +9 -0
  506. package/dist/side-panel/layer-panel/single-color-palette.js +81 -0
  507. package/dist/side-panel/layer-panel/text-label-panel.d.ts +15 -0
  508. package/dist/side-panel/layer-panel/text-label-panel.js +171 -0
  509. package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +29 -0
  510. package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +137 -0
  511. package/dist/side-panel/layer-panel/vis-config-slider.d.ts +20 -0
  512. package/dist/side-panel/layer-panel/vis-config-slider.js +210 -0
  513. package/dist/side-panel/layer-panel/vis-config-switch.d.ts +16 -0
  514. package/dist/side-panel/layer-panel/vis-config-switch.js +91 -0
  515. package/dist/side-panel/map-manager.d.ts +20 -0
  516. package/dist/side-panel/map-manager.js +168 -0
  517. package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +19 -0
  518. package/dist/side-panel/map-style-panel/map-layer-selector.js +128 -0
  519. package/dist/side-panel/map-style-panel/map-style-selector.d.ts +16 -0
  520. package/dist/side-panel/map-style-panel/map-style-selector.js +98 -0
  521. package/dist/side-panel/panel-dropdown.d.ts +17 -0
  522. package/dist/side-panel/panel-dropdown.js +99 -0
  523. package/dist/side-panel/panel-header-action.d.ts +20 -0
  524. package/dist/side-panel/panel-header-action.js +100 -0
  525. package/dist/side-panel/panel-header.d.ts +79 -0
  526. package/dist/side-panel/panel-header.js +360 -0
  527. package/dist/side-panel/panel-tab.d.ts +20 -0
  528. package/dist/side-panel/panel-tab.js +88 -0
  529. package/dist/side-panel/panel-title.d.ts +4 -0
  530. package/dist/side-panel/panel-title.js +54 -0
  531. package/dist/side-panel/panel-toggle.d.ts +13 -0
  532. package/dist/side-panel/panel-toggle.js +80 -0
  533. package/dist/side-panel/side-bar.d.ts +79 -0
  534. package/dist/side-panel/side-bar.js +177 -0
  535. package/dist/side-panel.d.ts +134 -0
  536. package/dist/side-panel.js +274 -0
  537. package/dist/types.d.ts +42 -0
  538. package/dist/types.js +26 -0
  539. package/package.json +136 -0
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+ import TimeWidgetFactory from './filters/time-widget';
3
+ import AnimationControlFactory from './common/animation-control/animation-control';
4
+ import AnimationControllerFactory from './common/animation-control/animation-controller';
5
+ import { AnimationConfig, TimeRangeFilter } from '@kepler.gl/types';
6
+ interface FilterAnimationControllerProps {
7
+ filter: TimeRangeFilter & {
8
+ animationWindow?: string;
9
+ };
10
+ filterIdx: number;
11
+ setFilterAnimationTime: (idx: number, value: string, a: any[]) => void;
12
+ }
13
+ export declare function FilterAnimationControllerFactory(AnimationController: ReturnType<typeof AnimationControllerFactory>): React.FC<FilterAnimationControllerProps>;
14
+ export declare namespace FilterAnimationControllerFactory {
15
+ var deps: (typeof AnimationControllerFactory)[];
16
+ }
17
+ interface LayerAnimationControllerProps {
18
+ animationConfig: AnimationConfig & {
19
+ timeSteps?: number[] | null;
20
+ };
21
+ setLayerAnimationTime: (x: number) => void;
22
+ }
23
+ export declare function LayerAnimationControllerFactory(AnimationController: ReturnType<typeof AnimationControllerFactory>): React.FC<LayerAnimationControllerProps>;
24
+ export declare namespace LayerAnimationControllerFactory {
25
+ var deps: (typeof AnimationControllerFactory)[];
26
+ }
27
+ declare function BottomWidgetFactory(TimeWidget: ReturnType<typeof TimeWidgetFactory>, AnimationControl: ReturnType<typeof AnimationControlFactory>, FilterAnimationController: ReturnType<typeof FilterAnimationControllerFactory>, LayerAnimationController: ReturnType<typeof LayerAnimationControllerFactory>): React.ForwardRefExoticComponent<{
28
+ rootRef: React.ForwardedRef<HTMLDivElement>;
29
+ containerW: number;
30
+ } & {
31
+ filters: import("@kepler.gl/types").Filter[];
32
+ datasets: import("@kepler.gl/table").Datasets;
33
+ uiState: import("@kepler.gl/types").UiState;
34
+ layers: import("@kepler.gl/layers/dist/base-layer").default[];
35
+ animationConfig: AnimationConfig;
36
+ visStateActions: typeof import("@kepler.gl/actions/dist/vis-state-actions");
37
+ toggleModal: (id: string | null) => {
38
+ payload: string | null;
39
+ type: "@@kepler.gl/TOGGLE_MODAL";
40
+ };
41
+ sidePanelWidth: any;
42
+ } & React.RefAttributes<unknown>>;
43
+ declare namespace BottomWidgetFactory {
44
+ var deps: (typeof TimeWidgetFactory | typeof AnimationControlFactory | typeof LayerAnimationControllerFactory | typeof FilterAnimationControllerFactory)[];
45
+ }
46
+ export default BottomWidgetFactory;
@@ -0,0 +1,242 @@
1
+ // Copyright (c) 2022 Uber Technologies, Inc.
2
+ //
3
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ // of this software and associated documentation files (the "Software"), to deal
5
+ // in the Software without restriction, including without limitation the rights
6
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ // copies of the Software, and to permit persons to whom the Software is
8
+ // furnished to do so, subject to the following conditions:
9
+ //
10
+ // The above copyright notice and this permission notice shall be included in
11
+ // all copies or substantial portions of the Software.
12
+ //
13
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ // THE SOFTWARE.
20
+
21
+ "use strict";
22
+
23
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
24
+
25
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
26
+
27
+ Object.defineProperty(exports, "__esModule", {
28
+ value: true
29
+ });
30
+ exports.FilterAnimationControllerFactory = FilterAnimationControllerFactory;
31
+ exports.LayerAnimationControllerFactory = LayerAnimationControllerFactory;
32
+ exports["default"] = BottomWidgetFactory;
33
+
34
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
35
+
36
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
37
+
38
+ var _react = _interopRequireWildcard(require("react"));
39
+
40
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
41
+
42
+ var _timeWidget = _interopRequireDefault(require("./filters/time-widget"));
43
+
44
+ var _animationControl = _interopRequireDefault(require("./common/animation-control/animation-control"));
45
+
46
+ var _animationController = _interopRequireDefault(require("./common/animation-control/animation-controller"));
47
+
48
+ var _constants = require("@kepler.gl/constants");
49
+
50
+ var _utils = require("@kepler.gl/utils");
51
+
52
+ var _styles = require("@kepler.gl/styles");
53
+
54
+ var _templateObject, _templateObject2;
55
+
56
+ var maxWidth = 1080;
57
+
58
+ var BottomWidgetContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n padding-top: ", "px;\n padding-right: ", "px;\n padding-bottom: ", "px;\n padding-left: ", "px;\n pointer-events: none !important; /* prevent padding from blocking input */\n & > * {\n /* all children should allow input */\n pointer-events: all;\n }\n width: ", "px;\n z-index: 1;\n ", "\n"])), function (props) {
59
+ return props.hasPadding ? props.theme.bottomWidgetPaddingTop : 0;
60
+ }, function (props) {
61
+ return props.hasPadding ? props.theme.bottomWidgetPaddingRight : 0;
62
+ }, function (props) {
63
+ return props.hasPadding ? props.theme.bottomWidgetPaddingBottom : 0;
64
+ }, function (props) {
65
+ return props.hasPadding ? props.theme.bottomWidgetPaddingLeft : 0;
66
+ }, function (props) {
67
+ return props.width;
68
+ }, _styles.media.portable(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["padding: 0;"]))));
69
+
70
+ FilterAnimationControllerFactory.deps = [_animationController["default"]];
71
+
72
+ function FilterAnimationControllerFactory(AnimationController) {
73
+ var FilterAnimationController = function FilterAnimationController(_ref) {
74
+ var filter = _ref.filter,
75
+ filterIdx = _ref.filterIdx,
76
+ setFilterAnimationTime = _ref.setFilterAnimationTime,
77
+ children = _ref.children;
78
+ var intervalBins = (0, _react.useMemo)(function () {
79
+ return (0, _utils.getIntervalBins)(filter);
80
+ }, [filter]);
81
+ var steps = (0, _react.useMemo)(function () {
82
+ return intervalBins ? intervalBins.map(function (x) {
83
+ return x.x0;
84
+ }) : null;
85
+ }, [intervalBins]);
86
+ var updateAnimation = (0, _react.useCallback)(function (value) {
87
+ switch (filter.animationWindow) {
88
+ case _constants.ANIMATION_WINDOW.interval:
89
+ var _idx = value[1];
90
+ setFilterAnimationTime(filterIdx, 'value', [intervalBins[_idx].x0, intervalBins[_idx].x1 - 1]);
91
+ break;
92
+
93
+ default:
94
+ setFilterAnimationTime(filterIdx, 'value', value);
95
+ break;
96
+ }
97
+ }, [filterIdx, intervalBins, filter.animationWindow, setFilterAnimationTime]);
98
+ return /*#__PURE__*/_react["default"].createElement(AnimationController, {
99
+ key: "filter-control",
100
+ value: filter.value,
101
+ domain: filter.domain,
102
+ speed: filter.speed,
103
+ isAnimating: filter.isAnimating,
104
+ animationWindow: filter.animationWindow,
105
+ steps: steps,
106
+ updateAnimation: updateAnimation,
107
+ children: children
108
+ });
109
+ };
110
+
111
+ return FilterAnimationController;
112
+ }
113
+
114
+ LayerAnimationControllerFactory.deps = [_animationController["default"]];
115
+
116
+ function LayerAnimationControllerFactory(AnimationController) {
117
+ var LayerAnimationController = function LayerAnimationController(_ref2) {
118
+ var animationConfig = _ref2.animationConfig,
119
+ setLayerAnimationTime = _ref2.setLayerAnimationTime,
120
+ children = _ref2.children;
121
+ return /*#__PURE__*/_react["default"].createElement(AnimationController, {
122
+ key: "layer-control",
123
+ value: Number(animationConfig.currentTime),
124
+ domain: animationConfig.domain,
125
+ speed: animationConfig.speed,
126
+ isAnimating: animationConfig.isAnimating,
127
+ updateAnimation: setLayerAnimationTime,
128
+ steps: animationConfig.timeSteps,
129
+ animationWindow: animationConfig.timeSteps ? _constants.ANIMATION_WINDOW.interval : _constants.ANIMATION_WINDOW.point,
130
+ children: children
131
+ });
132
+ };
133
+
134
+ return LayerAnimationController;
135
+ }
136
+
137
+ BottomWidgetFactory.deps = [_timeWidget["default"], _animationControl["default"], FilterAnimationControllerFactory, LayerAnimationControllerFactory];
138
+ /* eslint-disable complexity */
139
+
140
+ function BottomWidgetFactory(TimeWidget, AnimationControl, FilterAnimationController, LayerAnimationController) {
141
+ var BottomWidget = function BottomWidget(props) {
142
+ var _uiState$mapControls, _uiState$mapControls$, _uiState$mapControls2, _uiState$mapControls3;
143
+
144
+ var datasets = props.datasets,
145
+ filters = props.filters,
146
+ animationConfig = props.animationConfig,
147
+ visStateActions = props.visStateActions,
148
+ containerW = props.containerW,
149
+ uiState = props.uiState,
150
+ sidePanelWidth = props.sidePanelWidth,
151
+ layers = props.layers,
152
+ rootRef = props.rootRef;
153
+ var activeSidePanel = uiState.activeSidePanel,
154
+ readOnly = uiState.readOnly;
155
+ var isOpen = Boolean(activeSidePanel);
156
+ var enlargedFilterIdx = (0, _react.useMemo)(function () {
157
+ return filters.findIndex(function (f) {
158
+ return f.enlarged && f.type === _constants.FILTER_TYPES.timeRange;
159
+ });
160
+ }, [filters]);
161
+ var isMobile = (0, _utils.hasPortableWidth)(_styles.breakPointValues);
162
+ var animatedFilterIdx = (0, _react.useMemo)(function () {
163
+ return filters.findIndex(function (f) {
164
+ return f.isAnimating;
165
+ });
166
+ }, [filters]);
167
+ var animatedFilter = animatedFilterIdx > -1 ? filters[animatedFilterIdx] : null;
168
+ var isLegendPinned = ((_uiState$mapControls = uiState.mapControls) === null || _uiState$mapControls === void 0 ? void 0 : (_uiState$mapControls$ = _uiState$mapControls.mapLegend) === null || _uiState$mapControls$ === void 0 ? void 0 : _uiState$mapControls$.show) && ((_uiState$mapControls2 = uiState.mapControls) === null || _uiState$mapControls2 === void 0 ? void 0 : (_uiState$mapControls3 = _uiState$mapControls2.mapLegend) === null || _uiState$mapControls3 === void 0 ? void 0 : _uiState$mapControls3.active);
169
+ var spaceForLegendWidth = isLegendPinned ? _constants.DIMENSIONS.mapControl.width + _constants.DIMENSIONS.mapControl.mapLegend.pinned.right : 0;
170
+ var enlargedFilterWidth = (isOpen && !isMobile ? containerW - sidePanelWidth : containerW) - spaceForLegendWidth; // show playback control if layers contain trip layer & at least one trip layer is visible
171
+
172
+ var animatableLayer = (0, _react.useMemo)(function () {
173
+ return layers.filter(function (l) {
174
+ return l.config.animation && l.config.animation.enabled && l.config.isVisible;
175
+ });
176
+ }, [layers]);
177
+ var readyToAnimation = Array.isArray(animationConfig.domain) && Number.isFinite(animationConfig.currentTime); // if animation control is showing, hide time display in time slider
178
+
179
+ var showFloatingTimeDisplay = !animatableLayer.length;
180
+ var showAnimationControl = animatableLayer.length && readyToAnimation && !animationConfig.hideControl;
181
+ var showTimeWidget = enlargedFilterIdx > -1 && Object.keys(datasets).length > 0; // if filter is not animating, pass in enlarged filter here because
182
+ // animation controller needs to call reset on it
183
+
184
+ var filter = animatedFilter || filters[enlargedFilterIdx];
185
+ return /*#__PURE__*/_react["default"].createElement(BottomWidgetContainer, {
186
+ width: Math.min(maxWidth, enlargedFilterWidth),
187
+ style: {
188
+ marginRight: spaceForLegendWidth
189
+ },
190
+ className: "bottom-widget--container",
191
+ hasPadding: showAnimationControl || showTimeWidget,
192
+ ref: rootRef
193
+ }, /*#__PURE__*/_react["default"].createElement(LayerAnimationController, {
194
+ animationConfig: animationConfig,
195
+ setLayerAnimationTime: visStateActions.setLayerAnimationTime
196
+ }, function (isAnimating, start, pause, reset) {
197
+ return showAnimationControl ? /*#__PURE__*/_react["default"].createElement(AnimationControl, {
198
+ animationConfig: animationConfig,
199
+ setLayerAnimationTime: visStateActions.setLayerAnimationTime,
200
+ updateAnimationSpeed: visStateActions.updateLayerAnimationSpeed,
201
+ toggleAnimation: visStateActions.toggleLayerAnimation,
202
+ isAnimatable: !animatedFilter,
203
+ isAnimating: isAnimating,
204
+ resetAnimation: reset
205
+ }) : null;
206
+ }), filter && /*#__PURE__*/_react["default"].createElement(FilterAnimationController, {
207
+ filter: filter,
208
+ filterIdx: animatedFilterIdx > -1 ? animatedFilterIdx : enlargedFilterIdx,
209
+ setFilterAnimationTime: visStateActions.setFilterAnimationTime
210
+ }, function (isAnimating, start, pause, resetAnimation) {
211
+ return showTimeWidget ? /*#__PURE__*/_react["default"].createElement(TimeWidget // TimeWidget uses React.memo, here we pass width
212
+ // even though it doesnt use it, to force rerender
213
+ , {
214
+ filter: filters[enlargedFilterIdx],
215
+ index: enlargedFilterIdx,
216
+ datasets: datasets,
217
+ readOnly: readOnly,
218
+ showTimeDisplay: showFloatingTimeDisplay,
219
+ setFilterPlot: visStateActions.setFilterPlot,
220
+ setFilterAnimationTime: visStateActions.setFilterAnimationTime,
221
+ setFilterAnimationWindow: visStateActions.setFilterAnimationWindow,
222
+ toggleAnimation: visStateActions.toggleFilterAnimation,
223
+ updateAnimationSpeed: visStateActions.updateFilterAnimationSpeed,
224
+ enlargeFilter: visStateActions.enlargeFilter,
225
+ resetAnimation: resetAnimation,
226
+ isAnimatable: !animationConfig || !animationConfig.isAnimating
227
+ }) : null;
228
+ }));
229
+ };
230
+ /* eslint-disable react/display-name */
231
+ // @ts-ignore
232
+
233
+
234
+ return /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
235
+ return /*#__PURE__*/_react["default"].createElement(BottomWidget, (0, _extends2["default"])({}, props, {
236
+ rootRef: ref
237
+ }));
238
+ });
239
+ /* eslint-enable react/display-name */
240
+ }
241
+ /* eslint-enable complexity */
242
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ib3R0b20td2lkZ2V0LnRzeCJdLCJuYW1lcyI6WyJtYXhXaWR0aCIsIkJvdHRvbVdpZGdldENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsInByb3BzIiwiaGFzUGFkZGluZyIsInRoZW1lIiwiYm90dG9tV2lkZ2V0UGFkZGluZ1RvcCIsImJvdHRvbVdpZGdldFBhZGRpbmdSaWdodCIsImJvdHRvbVdpZGdldFBhZGRpbmdCb3R0b20iLCJib3R0b21XaWRnZXRQYWRkaW5nTGVmdCIsIndpZHRoIiwibWVkaWEiLCJwb3J0YWJsZSIsIkZpbHRlckFuaW1hdGlvbkNvbnRyb2xsZXJGYWN0b3J5IiwiZGVwcyIsIkFuaW1hdGlvbkNvbnRyb2xsZXJGYWN0b3J5IiwiQW5pbWF0aW9uQ29udHJvbGxlciIsIkZpbHRlckFuaW1hdGlvbkNvbnRyb2xsZXIiLCJmaWx0ZXIiLCJmaWx0ZXJJZHgiLCJzZXRGaWx0ZXJBbmltYXRpb25UaW1lIiwiY2hpbGRyZW4iLCJpbnRlcnZhbEJpbnMiLCJzdGVwcyIsIm1hcCIsIngiLCJ4MCIsInVwZGF0ZUFuaW1hdGlvbiIsInZhbHVlIiwiYW5pbWF0aW9uV2luZG93IiwiQU5JTUFUSU9OX1dJTkRPVyIsImludGVydmFsIiwiaWR4IiwieDEiLCJkb21haW4iLCJzcGVlZCIsImlzQW5pbWF0aW5nIiwiTGF5ZXJBbmltYXRpb25Db250cm9sbGVyRmFjdG9yeSIsIkxheWVyQW5pbWF0aW9uQ29udHJvbGxlciIsImFuaW1hdGlvbkNvbmZpZyIsInNldExheWVyQW5pbWF0aW9uVGltZSIsIk51bWJlciIsImN1cnJlbnRUaW1lIiwidGltZVN0ZXBzIiwicG9pbnQiLCJCb3R0b21XaWRnZXRGYWN0b3J5IiwiVGltZVdpZGdldEZhY3RvcnkiLCJBbmltYXRpb25Db250cm9sRmFjdG9yeSIsIlRpbWVXaWRnZXQiLCJBbmltYXRpb25Db250cm9sIiwiQm90dG9tV2lkZ2V0IiwiZGF0YXNldHMiLCJmaWx0ZXJzIiwidmlzU3RhdGVBY3Rpb25zIiwiY29udGFpbmVyVyIsInVpU3RhdGUiLCJzaWRlUGFuZWxXaWR0aCIsImxheWVycyIsInJvb3RSZWYiLCJhY3RpdmVTaWRlUGFuZWwiLCJyZWFkT25seSIsImlzT3BlbiIsIkJvb2xlYW4iLCJlbmxhcmdlZEZpbHRlcklkeCIsImZpbmRJbmRleCIsImYiLCJlbmxhcmdlZCIsInR5cGUiLCJGSUxURVJfVFlQRVMiLCJ0aW1lUmFuZ2UiLCJpc01vYmlsZSIsImJyZWFrUG9pbnRWYWx1ZXMiLCJhbmltYXRlZEZpbHRlcklkeCIsImFuaW1hdGVkRmlsdGVyIiwiaXNMZWdlbmRQaW5uZWQiLCJtYXBDb250cm9scyIsIm1hcExlZ2VuZCIsInNob3ciLCJhY3RpdmUiLCJzcGFjZUZvckxlZ2VuZFdpZHRoIiwiRElNRU5TSU9OUyIsIm1hcENvbnRyb2wiLCJwaW5uZWQiLCJyaWdodCIsImVubGFyZ2VkRmlsdGVyV2lkdGgiLCJhbmltYXRhYmxlTGF5ZXIiLCJsIiwiY29uZmlnIiwiYW5pbWF0aW9uIiwiZW5hYmxlZCIsImlzVmlzaWJsZSIsInJlYWR5VG9BbmltYXRpb24iLCJBcnJheSIsImlzQXJyYXkiLCJpc0Zpbml0ZSIsInNob3dGbG9hdGluZ1RpbWVEaXNwbGF5IiwibGVuZ3RoIiwic2hvd0FuaW1hdGlvbkNvbnRyb2wiLCJoaWRlQ29udHJvbCIsInNob3dUaW1lV2lkZ2V0IiwiT2JqZWN0Iiwia2V5cyIsIk1hdGgiLCJtaW4iLCJtYXJnaW5SaWdodCIsInN0YXJ0IiwicGF1c2UiLCJyZXNldCIsInVwZGF0ZUxheWVyQW5pbWF0aW9uU3BlZWQiLCJ0b2dnbGVMYXllckFuaW1hdGlvbiIsInJlc2V0QW5pbWF0aW9uIiwic2V0RmlsdGVyUGxvdCIsInNldEZpbHRlckFuaW1hdGlvbldpbmRvdyIsInRvZ2dsZUZpbHRlckFuaW1hdGlvbiIsInVwZGF0ZUZpbHRlckFuaW1hdGlvblNwZWVkIiwiZW5sYXJnZUZpbHRlciIsInJlZiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFJQSxJQUFNQSxRQUFRLEdBQUcsSUFBakI7O0FBT0EsSUFBTUMscUJBQXFCLEdBQUdDLDZCQUFPQyxHQUFWLHdiQUdWLFVBQUFDLEtBQUs7QUFBQSxTQUFLQSxLQUFLLENBQUNDLFVBQU4sR0FBbUJELEtBQUssQ0FBQ0UsS0FBTixDQUFZQyxzQkFBL0IsR0FBd0QsQ0FBN0Q7QUFBQSxDQUhLLEVBSVIsVUFBQUgsS0FBSztBQUFBLFNBQUtBLEtBQUssQ0FBQ0MsVUFBTixHQUFtQkQsS0FBSyxDQUFDRSxLQUFOLENBQVlFLHdCQUEvQixHQUEwRCxDQUEvRDtBQUFBLENBSkcsRUFLUCxVQUFBSixLQUFLO0FBQUEsU0FBS0EsS0FBSyxDQUFDQyxVQUFOLEdBQW1CRCxLQUFLLENBQUNFLEtBQU4sQ0FBWUcseUJBQS9CLEdBQTJELENBQWhFO0FBQUEsQ0FMRSxFQU1ULFVBQUFMLEtBQUs7QUFBQSxTQUFLQSxLQUFLLENBQUNDLFVBQU4sR0FBbUJELEtBQUssQ0FBQ0UsS0FBTixDQUFZSSx1QkFBL0IsR0FBeUQsQ0FBOUQ7QUFBQSxDQU5JLEVBWWhCLFVBQUFOLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNPLEtBQVY7QUFBQSxDQVpXLEVBY3ZCQyxjQUFNQyxRQWRpQixvR0FBM0I7O0FBdUJBQyxnQ0FBZ0MsQ0FBQ0MsSUFBakMsR0FBd0MsQ0FBQ0MsK0JBQUQsQ0FBeEM7O0FBQ08sU0FBU0YsZ0NBQVQsQ0FDTEcsbUJBREssRUFFTDtBQUNBLE1BQU1DLHlCQUFtRSxHQUFHLFNBQXRFQSx5QkFBc0UsT0FLdEU7QUFBQSxRQUpKQyxNQUlJLFFBSkpBLE1BSUk7QUFBQSxRQUhKQyxTQUdJLFFBSEpBLFNBR0k7QUFBQSxRQUZKQyxzQkFFSSxRQUZKQSxzQkFFSTtBQUFBLFFBREpDLFFBQ0ksUUFESkEsUUFDSTtBQUNKLFFBQU1DLFlBQVksR0FBRyxvQkFBUTtBQUFBLGFBQU0sNEJBQWdCSixNQUFoQixDQUFOO0FBQUEsS0FBUixFQUF1QyxDQUFDQSxNQUFELENBQXZDLENBQXJCO0FBRUEsUUFBTUssS0FBSyxHQUFHLG9CQUFRO0FBQUEsYUFBT0QsWUFBWSxHQUFHQSxZQUFZLENBQUNFLEdBQWIsQ0FBaUIsVUFBQUMsQ0FBQztBQUFBLGVBQUlBLENBQUMsQ0FBQ0MsRUFBTjtBQUFBLE9BQWxCLENBQUgsR0FBaUMsSUFBcEQ7QUFBQSxLQUFSLEVBQW1FLENBQy9FSixZQUQrRSxDQUFuRSxDQUFkO0FBSUEsUUFBTUssZUFBZSxHQUFHLHdCQUN0QixVQUFBQyxLQUFLLEVBQUk7QUFDUCxjQUFRVixNQUFNLENBQUNXLGVBQWY7QUFDRSxhQUFLQyw0QkFBaUJDLFFBQXRCO0FBQ0UsY0FBTUMsSUFBRyxHQUFHSixLQUFLLENBQUMsQ0FBRCxDQUFqQjtBQUNBUixVQUFBQSxzQkFBc0IsQ0FBQ0QsU0FBRCxFQUFZLE9BQVosRUFBcUIsQ0FDekNHLFlBQVksQ0FBQ1UsSUFBRCxDQUFaLENBQWtCTixFQUR1QixFQUV6Q0osWUFBWSxDQUFDVSxJQUFELENBQVosQ0FBa0JDLEVBQWxCLEdBQXVCLENBRmtCLENBQXJCLENBQXRCO0FBSUE7O0FBQ0Y7QUFDRWIsVUFBQUEsc0JBQXNCLENBQUNELFNBQUQsRUFBWSxPQUFaLEVBQXFCUyxLQUFyQixDQUF0QjtBQUNBO0FBVko7QUFZRCxLQWRxQixFQWV0QixDQUFDVCxTQUFELEVBQVlHLFlBQVosRUFBMEJKLE1BQU0sQ0FBQ1csZUFBakMsRUFBa0RULHNCQUFsRCxDQWZzQixDQUF4QjtBQWtCQSx3QkFDRSxnQ0FBQyxtQkFBRDtBQUNFLE1BQUEsR0FBRyxFQUFDLGdCQUROO0FBRUUsTUFBQSxLQUFLLEVBQUVGLE1BQU0sQ0FBQ1UsS0FGaEI7QUFHRSxNQUFBLE1BQU0sRUFBRVYsTUFBTSxDQUFDZ0IsTUFIakI7QUFJRSxNQUFBLEtBQUssRUFBRWhCLE1BQU0sQ0FBQ2lCLEtBSmhCO0FBS0UsTUFBQSxXQUFXLEVBQUVqQixNQUFNLENBQUNrQixXQUx0QjtBQU1FLE1BQUEsZUFBZSxFQUFFbEIsTUFBTSxDQUFDVyxlQU4xQjtBQU9FLE1BQUEsS0FBSyxFQUFFTixLQVBUO0FBUUUsTUFBQSxlQUFlLEVBQUVJLGVBUm5CO0FBU0UsTUFBQSxRQUFRLEVBQUVOO0FBVFosTUFERjtBQWFELEdBM0NEOztBQTRDQSxTQUFPSix5QkFBUDtBQUNEOztBQU9Eb0IsK0JBQStCLENBQUN2QixJQUFoQyxHQUF1QyxDQUFDQywrQkFBRCxDQUF2Qzs7QUFDTyxTQUFTc0IsK0JBQVQsQ0FDTHJCLG1CQURLLEVBRUw7QUFDQSxNQUFNc0Isd0JBQWlFLEdBQUcsU0FBcEVBLHdCQUFvRTtBQUFBLFFBQ3hFQyxlQUR3RSxTQUN4RUEsZUFEd0U7QUFBQSxRQUV4RUMscUJBRndFLFNBRXhFQSxxQkFGd0U7QUFBQSxRQUd4RW5CLFFBSHdFLFNBR3hFQSxRQUh3RTtBQUFBLHdCQUt4RSxnQ0FBQyxtQkFBRDtBQUNFLE1BQUEsR0FBRyxFQUFDLGVBRE47QUFFRSxNQUFBLEtBQUssRUFBRW9CLE1BQU0sQ0FBQ0YsZUFBZSxDQUFDRyxXQUFqQixDQUZmO0FBR0UsTUFBQSxNQUFNLEVBQUVILGVBQWUsQ0FBQ0wsTUFIMUI7QUFJRSxNQUFBLEtBQUssRUFBRUssZUFBZSxDQUFDSixLQUp6QjtBQUtFLE1BQUEsV0FBVyxFQUFFSSxlQUFlLENBQUNILFdBTC9CO0FBTUUsTUFBQSxlQUFlLEVBQUVJLHFCQU5uQjtBQU9FLE1BQUEsS0FBSyxFQUFFRCxlQUFlLENBQUNJLFNBUHpCO0FBUUUsTUFBQSxlQUFlLEVBQ2JKLGVBQWUsQ0FBQ0ksU0FBaEIsR0FBNEJiLDRCQUFpQkMsUUFBN0MsR0FBd0RELDRCQUFpQmMsS0FUN0U7QUFXRSxNQUFBLFFBQVEsRUFBRXZCO0FBWFosTUFMd0U7QUFBQSxHQUExRTs7QUFtQkEsU0FBT2lCLHdCQUFQO0FBQ0Q7O0FBT0RPLG1CQUFtQixDQUFDL0IsSUFBcEIsR0FBMkIsQ0FDekJnQyxzQkFEeUIsRUFFekJDLDRCQUZ5QixFQUd6QmxDLGdDQUh5QixFQUl6QndCLCtCQUp5QixDQUEzQjtBQU9BOztBQUNlLFNBQVNRLG1CQUFULENBQ2JHLFVBRGEsRUFFYkMsZ0JBRmEsRUFHYmhDLHlCQUhhLEVBSWJxQix3QkFKYSxFQUtiO0FBQ0EsTUFBTVksWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQy9DLEtBQUQsRUFBOEI7QUFBQTs7QUFBQSxRQUUvQ2dELFFBRitDLEdBVzdDaEQsS0FYNkMsQ0FFL0NnRCxRQUYrQztBQUFBLFFBRy9DQyxPQUgrQyxHQVc3Q2pELEtBWDZDLENBRy9DaUQsT0FIK0M7QUFBQSxRQUkvQ2IsZUFKK0MsR0FXN0NwQyxLQVg2QyxDQUkvQ29DLGVBSitDO0FBQUEsUUFLL0NjLGVBTCtDLEdBVzdDbEQsS0FYNkMsQ0FLL0NrRCxlQUwrQztBQUFBLFFBTS9DQyxVQU4rQyxHQVc3Q25ELEtBWDZDLENBTS9DbUQsVUFOK0M7QUFBQSxRQU8vQ0MsT0FQK0MsR0FXN0NwRCxLQVg2QyxDQU8vQ29ELE9BUCtDO0FBQUEsUUFRL0NDLGNBUitDLEdBVzdDckQsS0FYNkMsQ0FRL0NxRCxjQVIrQztBQUFBLFFBUy9DQyxNQVQrQyxHQVc3Q3RELEtBWDZDLENBUy9Dc0QsTUFUK0M7QUFBQSxRQVUvQ0MsT0FWK0MsR0FXN0N2RCxLQVg2QyxDQVUvQ3VELE9BVitDO0FBQUEsUUFhMUNDLGVBYjBDLEdBYWJKLE9BYmEsQ0FhMUNJLGVBYjBDO0FBQUEsUUFhekJDLFFBYnlCLEdBYWJMLE9BYmEsQ0FhekJLLFFBYnlCO0FBY2pELFFBQU1DLE1BQU0sR0FBR0MsT0FBTyxDQUFDSCxlQUFELENBQXRCO0FBRUEsUUFBTUksaUJBQWlCLEdBQUcsb0JBQ3hCO0FBQUEsYUFBTVgsT0FBTyxDQUFDWSxTQUFSLENBQWtCLFVBQUFDLENBQUM7QUFBQSxlQUFJQSxDQUFDLENBQUNDLFFBQUYsSUFBY0QsQ0FBQyxDQUFDRSxJQUFGLEtBQVdDLHdCQUFhQyxTQUExQztBQUFBLE9BQW5CLENBQU47QUFBQSxLQUR3QixFQUV4QixDQUFDakIsT0FBRCxDQUZ3QixDQUExQjtBQUtBLFFBQU1rQixRQUFRLEdBQUcsNkJBQWlCQyx3QkFBakIsQ0FBakI7QUFFQSxRQUFNQyxpQkFBaUIsR0FBRyxvQkFBUTtBQUFBLGFBQU1wQixPQUFPLENBQUNZLFNBQVIsQ0FBa0IsVUFBQUMsQ0FBQztBQUFBLGVBQUlBLENBQUMsQ0FBQzdCLFdBQU47QUFBQSxPQUFuQixDQUFOO0FBQUEsS0FBUixFQUFxRCxDQUFDZ0IsT0FBRCxDQUFyRCxDQUExQjtBQUNBLFFBQU1xQixjQUFjLEdBQUdELGlCQUFpQixHQUFHLENBQUMsQ0FBckIsR0FBeUJwQixPQUFPLENBQUNvQixpQkFBRCxDQUFoQyxHQUFzRCxJQUE3RTtBQUVBLFFBQU1FLGNBQWMsR0FDbEIseUJBQUFuQixPQUFPLENBQUNvQixXQUFSLHVHQUFxQkMsU0FBckIsZ0ZBQWdDQyxJQUFoQywrQkFBd0N0QixPQUFPLENBQUNvQixXQUFoRCxtRkFBd0Msc0JBQXFCQyxTQUE3RCwwREFBd0Msc0JBQWdDRSxNQUF4RSxDQURGO0FBRUEsUUFBTUMsbUJBQW1CLEdBQUdMLGNBQWMsR0FDdENNLHNCQUFXQyxVQUFYLENBQXNCdkUsS0FBdEIsR0FBOEJzRSxzQkFBV0MsVUFBWCxDQUFzQkwsU0FBdEIsQ0FBZ0NNLE1BQWhDLENBQXVDQyxLQUQvQixHQUV0QyxDQUZKO0FBSUEsUUFBTUMsbUJBQW1CLEdBQ3ZCLENBQUN2QixNQUFNLElBQUksQ0FBQ1MsUUFBWCxHQUFzQmhCLFVBQVUsR0FBR0UsY0FBbkMsR0FBb0RGLFVBQXJELElBQW1FeUIsbUJBRHJFLENBaENpRCxDQW1DakQ7O0FBQ0EsUUFBTU0sZUFBZSxHQUFHLG9CQUN0QjtBQUFBLGFBQ0U1QixNQUFNLENBQUN2QyxNQUFQLENBQWMsVUFBQW9FLENBQUM7QUFBQSxlQUFJQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsU0FBVCxJQUFzQkYsQ0FBQyxDQUFDQyxNQUFGLENBQVNDLFNBQVQsQ0FBbUJDLE9BQXpDLElBQW9ESCxDQUFDLENBQUNDLE1BQUYsQ0FBU0csU0FBakU7QUFBQSxPQUFmLENBREY7QUFBQSxLQURzQixFQUd0QixDQUFDakMsTUFBRCxDQUhzQixDQUF4QjtBQU1BLFFBQU1rQyxnQkFBZ0IsR0FDcEJDLEtBQUssQ0FBQ0MsT0FBTixDQUFjdEQsZUFBZSxDQUFDTCxNQUE5QixLQUF5Q08sTUFBTSxDQUFDcUQsUUFBUCxDQUFnQnZELGVBQWUsQ0FBQ0csV0FBaEMsQ0FEM0MsQ0ExQ2lELENBNENqRDs7QUFDQSxRQUFNcUQsdUJBQXVCLEdBQUcsQ0FBQ1YsZUFBZSxDQUFDVyxNQUFqRDtBQUNBLFFBQU1DLG9CQUFvQixHQUN4QlosZUFBZSxDQUFDVyxNQUFoQixJQUEwQkwsZ0JBQTFCLElBQThDLENBQUNwRCxlQUFlLENBQUMyRCxXQURqRTtBQUVBLFFBQU1DLGNBQWMsR0FBR3BDLGlCQUFpQixHQUFHLENBQUMsQ0FBckIsSUFBMEJxQyxNQUFNLENBQUNDLElBQVAsQ0FBWWxELFFBQVosRUFBc0I2QyxNQUF0QixHQUErQixDQUFoRixDQWhEaUQsQ0FrRGpEO0FBQ0E7O0FBQ0EsUUFBTTlFLE1BQU0sR0FBSXVELGNBQUQsSUFBdUNyQixPQUFPLENBQUNXLGlCQUFELENBQTdEO0FBRUEsd0JBQ0UsZ0NBQUMscUJBQUQ7QUFDRSxNQUFBLEtBQUssRUFBRXVDLElBQUksQ0FBQ0MsR0FBTCxDQUFTeEcsUUFBVCxFQUFtQnFGLG1CQUFuQixDQURUO0FBRUUsTUFBQSxLQUFLLEVBQUU7QUFBQ29CLFFBQUFBLFdBQVcsRUFBRXpCO0FBQWQsT0FGVDtBQUdFLE1BQUEsU0FBUyxFQUFDLDBCQUhaO0FBSUUsTUFBQSxVQUFVLEVBQUVrQixvQkFBb0IsSUFBSUUsY0FKdEM7QUFLRSxNQUFBLEdBQUcsRUFBRXpDO0FBTFAsb0JBT0UsZ0NBQUMsd0JBQUQ7QUFDRSxNQUFBLGVBQWUsRUFBRW5CLGVBRG5CO0FBRUUsTUFBQSxxQkFBcUIsRUFBRWMsZUFBZSxDQUFDYjtBQUZ6QyxPQUlHLFVBQUNKLFdBQUQsRUFBY3FFLEtBQWQsRUFBcUJDLEtBQXJCLEVBQTRCQyxLQUE1QjtBQUFBLGFBQ0NWLG9CQUFvQixnQkFDbEIsZ0NBQUMsZ0JBQUQ7QUFDRSxRQUFBLGVBQWUsRUFBRTFELGVBRG5CO0FBRUUsUUFBQSxxQkFBcUIsRUFBRWMsZUFBZSxDQUFDYixxQkFGekM7QUFHRSxRQUFBLG9CQUFvQixFQUFFYSxlQUFlLENBQUN1RCx5QkFIeEM7QUFJRSxRQUFBLGVBQWUsRUFBRXZELGVBQWUsQ0FBQ3dELG9CQUpuQztBQUtFLFFBQUEsWUFBWSxFQUFFLENBQUNwQyxjQUxqQjtBQU1FLFFBQUEsV0FBVyxFQUFFckMsV0FOZjtBQU9FLFFBQUEsY0FBYyxFQUFFdUU7QUFQbEIsUUFEa0IsR0FVaEIsSUFYTDtBQUFBLEtBSkgsQ0FQRixFQXlCR3pGLE1BQU0saUJBQ0wsZ0NBQUMseUJBQUQ7QUFDRSxNQUFBLE1BQU0sRUFBRUEsTUFEVjtBQUVFLE1BQUEsU0FBUyxFQUFFc0QsaUJBQWlCLEdBQUcsQ0FBQyxDQUFyQixHQUF5QkEsaUJBQXpCLEdBQTZDVCxpQkFGMUQ7QUFHRSxNQUFBLHNCQUFzQixFQUFFVixlQUFlLENBQUNqQztBQUgxQyxPQUtHLFVBQUNnQixXQUFELEVBQWNxRSxLQUFkLEVBQXFCQyxLQUFyQixFQUE0QkksY0FBNUI7QUFBQSxhQUNDWCxjQUFjLGdCQUNaLGdDQUFDLFVBQUQsQ0FDRTtBQUNBO0FBRkY7QUFHRSxRQUFBLE1BQU0sRUFBRS9DLE9BQU8sQ0FBQ1csaUJBQUQsQ0FIakI7QUFJRSxRQUFBLEtBQUssRUFBRUEsaUJBSlQ7QUFLRSxRQUFBLFFBQVEsRUFBRVosUUFMWjtBQU1FLFFBQUEsUUFBUSxFQUFFUyxRQU5aO0FBT0UsUUFBQSxlQUFlLEVBQUVtQyx1QkFQbkI7QUFRRSxRQUFBLGFBQWEsRUFBRTFDLGVBQWUsQ0FBQzBELGFBUmpDO0FBU0UsUUFBQSxzQkFBc0IsRUFBRTFELGVBQWUsQ0FBQ2pDLHNCQVQxQztBQVVFLFFBQUEsd0JBQXdCLEVBQUVpQyxlQUFlLENBQUMyRCx3QkFWNUM7QUFXRSxRQUFBLGVBQWUsRUFBRTNELGVBQWUsQ0FBQzRELHFCQVhuQztBQVlFLFFBQUEsb0JBQW9CLEVBQUU1RCxlQUFlLENBQUM2RCwwQkFaeEM7QUFhRSxRQUFBLGFBQWEsRUFBRTdELGVBQWUsQ0FBQzhELGFBYmpDO0FBY0UsUUFBQSxjQUFjLEVBQUVMLGNBZGxCO0FBZUUsUUFBQSxZQUFZLEVBQUUsQ0FBQ3ZFLGVBQUQsSUFBb0IsQ0FBQ0EsZUFBZSxDQUFDSDtBQWZyRCxRQURZLEdBa0JWLElBbkJMO0FBQUEsS0FMSCxDQTFCSixDQURGO0FBeURELEdBL0dEO0FBaUhBO0FBQ0E7OztBQUNBLHNCQUFPLHVCQUFXLFVBQUNqQyxLQUFELEVBQTJCaUgsR0FBM0I7QUFBQSx3QkFBbUMsZ0NBQUMsWUFBRCxnQ0FBa0JqSCxLQUFsQjtBQUF5QixNQUFBLE9BQU8sRUFBRWlIO0FBQWxDLE9BQW5DO0FBQUEsR0FBWCxDQUFQO0FBQ0E7QUFDRDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIGZvcndhcmRSZWYsIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFRpbWVXaWRnZXRGYWN0b3J5IGZyb20gJy4vZmlsdGVycy90aW1lLXdpZGdldCc7XG5pbXBvcnQgQW5pbWF0aW9uQ29udHJvbEZhY3RvcnkgZnJvbSAnLi9jb21tb24vYW5pbWF0aW9uLWNvbnRyb2wvYW5pbWF0aW9uLWNvbnRyb2wnO1xuaW1wb3J0IEFuaW1hdGlvbkNvbnRyb2xsZXJGYWN0b3J5IGZyb20gJy4vY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL2FuaW1hdGlvbi1jb250cm9sbGVyJztcbmltcG9ydCB7QU5JTUFUSU9OX1dJTkRPVywgRElNRU5TSU9OUywgRklMVEVSX1RZUEVTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge2dldEludGVydmFsQmlucywgaGFzUG9ydGFibGVXaWR0aH0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge21lZGlhLCBicmVha1BvaW50VmFsdWVzfSBmcm9tICdAa2VwbGVyLmdsL3N0eWxlcyc7XG5pbXBvcnQge0FuaW1hdGlvbkNvbmZpZywgVGltZVJhbmdlRmlsdGVyfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7Ym90dG9tV2lkZ2V0U2VsZWN0b3J9IGZyb20gJy4va2VwbGVyLWdsJztcblxuY29uc3QgbWF4V2lkdGggPSAxMDgwO1xuXG5pbnRlcmZhY2UgQm90dG9tV2lkZ2V0Q29udGFpbmVyUHJvcHMge1xuICBoYXNQYWRkaW5nPzogYm9vbGVhbjtcbiAgd2lkdGg/OiBudW1iZXI7XG59XG5cbmNvbnN0IEJvdHRvbVdpZGdldENvbnRhaW5lciA9IHN0eWxlZC5kaXY8Qm90dG9tV2lkZ2V0Q29udGFpbmVyUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nLXRvcDogJHtwcm9wcyA9PiAocHJvcHMuaGFzUGFkZGluZyA/IHByb3BzLnRoZW1lLmJvdHRvbVdpZGdldFBhZGRpbmdUb3AgOiAwKX1weDtcbiAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiAocHJvcHMuaGFzUGFkZGluZyA/IHByb3BzLnRoZW1lLmJvdHRvbVdpZGdldFBhZGRpbmdSaWdodCA6IDApfXB4O1xuICBwYWRkaW5nLWJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMuaGFzUGFkZGluZyA/IHByb3BzLnRoZW1lLmJvdHRvbVdpZGdldFBhZGRpbmdCb3R0b20gOiAwKX1weDtcbiAgcGFkZGluZy1sZWZ0OiAke3Byb3BzID0+IChwcm9wcy5oYXNQYWRkaW5nID8gcHJvcHMudGhlbWUuYm90dG9tV2lkZ2V0UGFkZGluZ0xlZnQgOiAwKX1weDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDsgLyogcHJldmVudCBwYWRkaW5nIGZyb20gYmxvY2tpbmcgaW5wdXQgKi9cbiAgJiA+ICoge1xuICAgIC8qIGFsbCBjaGlsZHJlbiBzaG91bGQgYWxsb3cgaW5wdXQgKi9cbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB9XG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuICB6LWluZGV4OiAxO1xuICAke21lZGlhLnBvcnRhYmxlYHBhZGRpbmc6IDA7YH1cbmA7XG5cbmludGVyZmFjZSBGaWx0ZXJBbmltYXRpb25Db250cm9sbGVyUHJvcHMge1xuICBmaWx0ZXI6IFRpbWVSYW5nZUZpbHRlciAmIHthbmltYXRpb25XaW5kb3c/OiBzdHJpbmd9O1xuICBmaWx0ZXJJZHg6IG51bWJlcjtcbiAgc2V0RmlsdGVyQW5pbWF0aW9uVGltZTogKGlkeDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nLCBhOiBhbnlbXSkgPT4gdm9pZDtcbn1cblxuRmlsdGVyQW5pbWF0aW9uQ29udHJvbGxlckZhY3RvcnkuZGVwcyA9IFtBbmltYXRpb25Db250cm9sbGVyRmFjdG9yeV07XG5leHBvcnQgZnVuY3Rpb24gRmlsdGVyQW5pbWF0aW9uQ29udHJvbGxlckZhY3RvcnkoXG4gIEFuaW1hdGlvbkNvbnRyb2xsZXI6IFJldHVyblR5cGU8dHlwZW9mIEFuaW1hdGlvbkNvbnRyb2xsZXJGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IEZpbHRlckFuaW1hdGlvbkNvbnRyb2xsZXI6IFJlYWN0LkZDPEZpbHRlckFuaW1hdGlvbkNvbnRyb2xsZXJQcm9wcz4gPSAoe1xuICAgIGZpbHRlcixcbiAgICBmaWx0ZXJJZHgsXG4gICAgc2V0RmlsdGVyQW5pbWF0aW9uVGltZSxcbiAgICBjaGlsZHJlblxuICB9KSA9PiB7XG4gICAgY29uc3QgaW50ZXJ2YWxCaW5zID0gdXNlTWVtbygoKSA9PiBnZXRJbnRlcnZhbEJpbnMoZmlsdGVyKSwgW2ZpbHRlcl0pO1xuXG4gICAgY29uc3Qgc3RlcHMgPSB1c2VNZW1vKCgpID0+IChpbnRlcnZhbEJpbnMgPyBpbnRlcnZhbEJpbnMubWFwKHggPT4geC54MCkgOiBudWxsKSwgW1xuICAgICAgaW50ZXJ2YWxCaW5zXG4gICAgXSk7XG5cbiAgICBjb25zdCB1cGRhdGVBbmltYXRpb24gPSB1c2VDYWxsYmFjayhcbiAgICAgIHZhbHVlID0+IHtcbiAgICAgICAgc3dpdGNoIChmaWx0ZXIuYW5pbWF0aW9uV2luZG93KSB7XG4gICAgICAgICAgY2FzZSBBTklNQVRJT05fV0lORE9XLmludGVydmFsOlxuICAgICAgICAgICAgY29uc3QgaWR4ID0gdmFsdWVbMV07XG4gICAgICAgICAgICBzZXRGaWx0ZXJBbmltYXRpb25UaW1lKGZpbHRlcklkeCwgJ3ZhbHVlJywgW1xuICAgICAgICAgICAgICBpbnRlcnZhbEJpbnNbaWR4XS54MCxcbiAgICAgICAgICAgICAgaW50ZXJ2YWxCaW5zW2lkeF0ueDEgLSAxXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBzZXRGaWx0ZXJBbmltYXRpb25UaW1lKGZpbHRlcklkeCwgJ3ZhbHVlJywgdmFsdWUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbZmlsdGVySWR4LCBpbnRlcnZhbEJpbnMsIGZpbHRlci5hbmltYXRpb25XaW5kb3csIHNldEZpbHRlckFuaW1hdGlvblRpbWVdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8QW5pbWF0aW9uQ29udHJvbGxlclxuICAgICAgICBrZXk9XCJmaWx0ZXItY29udHJvbFwiXG4gICAgICAgIHZhbHVlPXtmaWx0ZXIudmFsdWV9XG4gICAgICAgIGRvbWFpbj17ZmlsdGVyLmRvbWFpbn1cbiAgICAgICAgc3BlZWQ9e2ZpbHRlci5zcGVlZH1cbiAgICAgICAgaXNBbmltYXRpbmc9e2ZpbHRlci5pc0FuaW1hdGluZ31cbiAgICAgICAgYW5pbWF0aW9uV2luZG93PXtmaWx0ZXIuYW5pbWF0aW9uV2luZG93fVxuICAgICAgICBzdGVwcz17c3RlcHN9XG4gICAgICAgIHVwZGF0ZUFuaW1hdGlvbj17dXBkYXRlQW5pbWF0aW9ufVxuICAgICAgICBjaGlsZHJlbj17Y2hpbGRyZW59XG4gICAgICAvPlxuICAgICk7XG4gIH07XG4gIHJldHVybiBGaWx0ZXJBbmltYXRpb25Db250cm9sbGVyO1xufVxuXG5pbnRlcmZhY2UgTGF5ZXJBbmltYXRpb25Db250cm9sbGVyUHJvcHMge1xuICBhbmltYXRpb25Db25maWc6IEFuaW1hdGlvbkNvbmZpZyAmIHt0aW1lU3RlcHM/OiBudW1iZXJbXSB8IG51bGx9O1xuICBzZXRMYXllckFuaW1hdGlvblRpbWU6ICh4OiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbkxheWVyQW5pbWF0aW9uQ29udHJvbGxlckZhY3RvcnkuZGVwcyA9IFtBbmltYXRpb25Db250cm9sbGVyRmFjdG9yeV07XG5leHBvcnQgZnVuY3Rpb24gTGF5ZXJBbmltYXRpb25Db250cm9sbGVyRmFjdG9yeShcbiAgQW5pbWF0aW9uQ29udHJvbGxlcjogUmV0dXJuVHlwZTx0eXBlb2YgQW5pbWF0aW9uQ29udHJvbGxlckZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOiBSZWFjdC5GQzxMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJQcm9wcz4gPSAoe1xuICAgIGFuaW1hdGlvbkNvbmZpZyxcbiAgICBzZXRMYXllckFuaW1hdGlvblRpbWUsXG4gICAgY2hpbGRyZW5cbiAgfSkgPT4gKFxuICAgIDxBbmltYXRpb25Db250cm9sbGVyPG51bWJlcj5cbiAgICAgIGtleT1cImxheWVyLWNvbnRyb2xcIlxuICAgICAgdmFsdWU9e051bWJlcihhbmltYXRpb25Db25maWcuY3VycmVudFRpbWUpfVxuICAgICAgZG9tYWluPXthbmltYXRpb25Db25maWcuZG9tYWlufVxuICAgICAgc3BlZWQ9e2FuaW1hdGlvbkNvbmZpZy5zcGVlZH1cbiAgICAgIGlzQW5pbWF0aW5nPXthbmltYXRpb25Db25maWcuaXNBbmltYXRpbmd9XG4gICAgICB1cGRhdGVBbmltYXRpb249e3NldExheWVyQW5pbWF0aW9uVGltZX1cbiAgICAgIHN0ZXBzPXthbmltYXRpb25Db25maWcudGltZVN0ZXBzfVxuICAgICAgYW5pbWF0aW9uV2luZG93PXtcbiAgICAgICAgYW5pbWF0aW9uQ29uZmlnLnRpbWVTdGVwcyA/IEFOSU1BVElPTl9XSU5ET1cuaW50ZXJ2YWwgOiBBTklNQVRJT05fV0lORE9XLnBvaW50XG4gICAgICB9XG4gICAgICBjaGlsZHJlbj17Y2hpbGRyZW59XG4gICAgLz5cbiAgKTtcbiAgcmV0dXJuIExheWVyQW5pbWF0aW9uQ29udHJvbGxlcjtcbn1cblxudHlwZSBCb3R0b21XaWRnZXRQcm9wcyA9IHtcbiAgcm9vdFJlZjogUmVhY3QuRm9yd2FyZGVkUmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgY29udGFpbmVyVzogbnVtYmVyO1xufSAmIFJldHVyblR5cGU8dHlwZW9mIGJvdHRvbVdpZGdldFNlbGVjdG9yPjtcblxuQm90dG9tV2lkZ2V0RmFjdG9yeS5kZXBzID0gW1xuICBUaW1lV2lkZ2V0RmFjdG9yeSxcbiAgQW5pbWF0aW9uQ29udHJvbEZhY3RvcnksXG4gIEZpbHRlckFuaW1hdGlvbkNvbnRyb2xsZXJGYWN0b3J5LFxuICBMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJGYWN0b3J5XG5dO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBCb3R0b21XaWRnZXRGYWN0b3J5KFxuICBUaW1lV2lkZ2V0OiBSZXR1cm5UeXBlPHR5cGVvZiBUaW1lV2lkZ2V0RmFjdG9yeT4sXG4gIEFuaW1hdGlvbkNvbnRyb2w6IFJldHVyblR5cGU8dHlwZW9mIEFuaW1hdGlvbkNvbnRyb2xGYWN0b3J5PixcbiAgRmlsdGVyQW5pbWF0aW9uQ29udHJvbGxlcjogUmV0dXJuVHlwZTx0eXBlb2YgRmlsdGVyQW5pbWF0aW9uQ29udHJvbGxlckZhY3Rvcnk+LFxuICBMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQW5pbWF0aW9uQ29udHJvbGxlckZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgQm90dG9tV2lkZ2V0ID0gKHByb3BzOiBCb3R0b21XaWRnZXRQcm9wcykgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGRhdGFzZXRzLFxuICAgICAgZmlsdGVycyxcbiAgICAgIGFuaW1hdGlvbkNvbmZpZyxcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIGNvbnRhaW5lclcsXG4gICAgICB1aVN0YXRlLFxuICAgICAgc2lkZVBhbmVsV2lkdGgsXG4gICAgICBsYXllcnMsXG4gICAgICByb290UmVmXG4gICAgfSA9IHByb3BzO1xuXG4gICAgY29uc3Qge2FjdGl2ZVNpZGVQYW5lbCwgcmVhZE9ubHl9ID0gdWlTdGF0ZTtcbiAgICBjb25zdCBpc09wZW4gPSBCb29sZWFuKGFjdGl2ZVNpZGVQYW5lbCk7XG5cbiAgICBjb25zdCBlbmxhcmdlZEZpbHRlcklkeCA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBmaWx0ZXJzLmZpbmRJbmRleChmID0+IGYuZW5sYXJnZWQgJiYgZi50eXBlID09PSBGSUxURVJfVFlQRVMudGltZVJhbmdlKSxcbiAgICAgIFtmaWx0ZXJzXVxuICAgICk7XG5cbiAgICBjb25zdCBpc01vYmlsZSA9IGhhc1BvcnRhYmxlV2lkdGgoYnJlYWtQb2ludFZhbHVlcyk7XG5cbiAgICBjb25zdCBhbmltYXRlZEZpbHRlcklkeCA9IHVzZU1lbW8oKCkgPT4gZmlsdGVycy5maW5kSW5kZXgoZiA9PiBmLmlzQW5pbWF0aW5nKSwgW2ZpbHRlcnNdKTtcbiAgICBjb25zdCBhbmltYXRlZEZpbHRlciA9IGFuaW1hdGVkRmlsdGVySWR4ID4gLTEgPyBmaWx0ZXJzW2FuaW1hdGVkRmlsdGVySWR4XSA6IG51bGw7XG5cbiAgICBjb25zdCBpc0xlZ2VuZFBpbm5lZCA9XG4gICAgICB1aVN0YXRlLm1hcENvbnRyb2xzPy5tYXBMZWdlbmQ/LnNob3cgJiYgdWlTdGF0ZS5tYXBDb250cm9scz8ubWFwTGVnZW5kPy5hY3RpdmU7XG4gICAgY29uc3Qgc3BhY2VGb3JMZWdlbmRXaWR0aCA9IGlzTGVnZW5kUGlubmVkXG4gICAgICA/IERJTUVOU0lPTlMubWFwQ29udHJvbC53aWR0aCArIERJTUVOU0lPTlMubWFwQ29udHJvbC5tYXBMZWdlbmQucGlubmVkLnJpZ2h0XG4gICAgICA6IDA7XG5cbiAgICBjb25zdCBlbmxhcmdlZEZpbHRlcldpZHRoID1cbiAgICAgIChpc09wZW4gJiYgIWlzTW9iaWxlID8gY29udGFpbmVyVyAtIHNpZGVQYW5lbFdpZHRoIDogY29udGFpbmVyVykgLSBzcGFjZUZvckxlZ2VuZFdpZHRoO1xuXG4gICAgLy8gc2hvdyBwbGF5YmFjayBjb250cm9sIGlmIGxheWVycyBjb250YWluIHRyaXAgbGF5ZXIgJiBhdCBsZWFzdCBvbmUgdHJpcCBsYXllciBpcyB2aXNpYmxlXG4gICAgY29uc3QgYW5pbWF0YWJsZUxheWVyID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGxheWVycy5maWx0ZXIobCA9PiBsLmNvbmZpZy5hbmltYXRpb24gJiYgbC5jb25maWcuYW5pbWF0aW9uLmVuYWJsZWQgJiYgbC5jb25maWcuaXNWaXNpYmxlKSxcbiAgICAgIFtsYXllcnNdXG4gICAgKTtcblxuICAgIGNvbnN0IHJlYWR5VG9BbmltYXRpb24gPVxuICAgICAgQXJyYXkuaXNBcnJheShhbmltYXRpb25Db25maWcuZG9tYWluKSAmJiBOdW1iZXIuaXNGaW5pdGUoYW5pbWF0aW9uQ29uZmlnLmN1cnJlbnRUaW1lKTtcbiAgICAvLyBpZiBhbmltYXRpb24gY29udHJvbCBpcyBzaG93aW5nLCBoaWRlIHRpbWUgZGlzcGxheSBpbiB0aW1lIHNsaWRlclxuICAgIGNvbnN0IHNob3dGbG9hdGluZ1RpbWVEaXNwbGF5ID0gIWFuaW1hdGFibGVMYXllci5sZW5ndGg7XG4gICAgY29uc3Qgc2hvd0FuaW1hdGlvbkNvbnRyb2wgPVxuICAgICAgYW5pbWF0YWJsZUxheWVyLmxlbmd0aCAmJiByZWFkeVRvQW5pbWF0aW9uICYmICFhbmltYXRpb25Db25maWcuaGlkZUNvbnRyb2w7XG4gICAgY29uc3Qgc2hvd1RpbWVXaWRnZXQgPSBlbmxhcmdlZEZpbHRlcklkeCA+IC0xICYmIE9iamVjdC5rZXlzKGRhdGFzZXRzKS5sZW5ndGggPiAwO1xuXG4gICAgLy8gaWYgZmlsdGVyIGlzIG5vdCBhbmltYXRpbmcsIHBhc3MgaW4gZW5sYXJnZWQgZmlsdGVyIGhlcmUgYmVjYXVzZVxuICAgIC8vIGFuaW1hdGlvbiBjb250cm9sbGVyIG5lZWRzIHRvIGNhbGwgcmVzZXQgb24gaXRcbiAgICBjb25zdCBmaWx0ZXIgPSAoYW5pbWF0ZWRGaWx0ZXIgYXMgVGltZVJhbmdlRmlsdGVyKSB8fCBmaWx0ZXJzW2VubGFyZ2VkRmlsdGVySWR4XTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Qm90dG9tV2lkZ2V0Q29udGFpbmVyXG4gICAgICAgIHdpZHRoPXtNYXRoLm1pbihtYXhXaWR0aCwgZW5sYXJnZWRGaWx0ZXJXaWR0aCl9XG4gICAgICAgIHN0eWxlPXt7bWFyZ2luUmlnaHQ6IHNwYWNlRm9yTGVnZW5kV2lkdGh9fVxuICAgICAgICBjbGFzc05hbWU9XCJib3R0b20td2lkZ2V0LS1jb250YWluZXJcIlxuICAgICAgICBoYXNQYWRkaW5nPXtzaG93QW5pbWF0aW9uQ29udHJvbCB8fCBzaG93VGltZVdpZGdldH1cbiAgICAgICAgcmVmPXtyb290UmVmfVxuICAgICAgPlxuICAgICAgICA8TGF5ZXJBbmltYXRpb25Db250cm9sbGVyXG4gICAgICAgICAgYW5pbWF0aW9uQ29uZmlnPXthbmltYXRpb25Db25maWd9XG4gICAgICAgICAgc2V0TGF5ZXJBbmltYXRpb25UaW1lPXt2aXNTdGF0ZUFjdGlvbnMuc2V0TGF5ZXJBbmltYXRpb25UaW1lfVxuICAgICAgICA+XG4gICAgICAgICAgeyhpc0FuaW1hdGluZywgc3RhcnQsIHBhdXNlLCByZXNldCkgPT5cbiAgICAgICAgICAgIHNob3dBbmltYXRpb25Db250cm9sID8gKFxuICAgICAgICAgICAgICA8QW5pbWF0aW9uQ29udHJvbFxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbkNvbmZpZz17YW5pbWF0aW9uQ29uZmlnfVxuICAgICAgICAgICAgICAgIHNldExheWVyQW5pbWF0aW9uVGltZT17dmlzU3RhdGVBY3Rpb25zLnNldExheWVyQW5pbWF0aW9uVGltZX1cbiAgICAgICAgICAgICAgICB1cGRhdGVBbmltYXRpb25TcGVlZD17dmlzU3RhdGVBY3Rpb25zLnVwZGF0ZUxheWVyQW5pbWF0aW9uU3BlZWR9XG4gICAgICAgICAgICAgICAgdG9nZ2xlQW5pbWF0aW9uPXt2aXNTdGF0ZUFjdGlvbnMudG9nZ2xlTGF5ZXJBbmltYXRpb259XG4gICAgICAgICAgICAgICAgaXNBbmltYXRhYmxlPXshYW5pbWF0ZWRGaWx0ZXJ9XG4gICAgICAgICAgICAgICAgaXNBbmltYXRpbmc9e2lzQW5pbWF0aW5nfVxuICAgICAgICAgICAgICAgIHJlc2V0QW5pbWF0aW9uPXtyZXNldH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsXG4gICAgICAgICAgfVxuICAgICAgICA8L0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcj5cbiAgICAgICAge2ZpbHRlciAmJiAoXG4gICAgICAgICAgPEZpbHRlckFuaW1hdGlvbkNvbnRyb2xsZXJcbiAgICAgICAgICAgIGZpbHRlcj17ZmlsdGVyfVxuICAgICAgICAgICAgZmlsdGVySWR4PXthbmltYXRlZEZpbHRlcklkeCA+IC0xID8gYW5pbWF0ZWRGaWx0ZXJJZHggOiBlbmxhcmdlZEZpbHRlcklkeH1cbiAgICAgICAgICAgIHNldEZpbHRlckFuaW1hdGlvblRpbWU9e3Zpc1N0YXRlQWN0aW9ucy5zZXRGaWx0ZXJBbmltYXRpb25UaW1lfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHsoaXNBbmltYXRpbmcsIHN0YXJ0LCBwYXVzZSwgcmVzZXRBbmltYXRpb24pID0+XG4gICAgICAgICAgICAgIHNob3dUaW1lV2lkZ2V0ID8gKFxuICAgICAgICAgICAgICAgIDxUaW1lV2lkZ2V0XG4gICAgICAgICAgICAgICAgICAvLyBUaW1lV2lkZ2V0IHVzZXMgUmVhY3QubWVtbywgaGVyZSB3ZSBwYXNzIHdpZHRoXG4gICAgICAgICAgICAgICAgICAvLyBldmVuIHRob3VnaCBpdCBkb2VzbnQgdXNlIGl0LCB0byBmb3JjZSByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgZmlsdGVyPXtmaWx0ZXJzW2VubGFyZ2VkRmlsdGVySWR4XSBhcyBUaW1lUmFuZ2VGaWx0ZXJ9XG4gICAgICAgICAgICAgICAgICBpbmRleD17ZW5sYXJnZWRGaWx0ZXJJZHh9XG4gICAgICAgICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICAgICAgICBzaG93VGltZURpc3BsYXk9e3Nob3dGbG9hdGluZ1RpbWVEaXNwbGF5fVxuICAgICAgICAgICAgICAgICAgc2V0RmlsdGVyUGxvdD17dmlzU3RhdGVBY3Rpb25zLnNldEZpbHRlclBsb3R9XG4gICAgICAgICAgICAgICAgICBzZXRGaWx0ZXJBbmltYXRpb25UaW1lPXt2aXNTdGF0ZUFjdGlvbnMuc2V0RmlsdGVyQW5pbWF0aW9uVGltZX1cbiAgICAgICAgICAgICAgICAgIHNldEZpbHRlckFuaW1hdGlvbldpbmRvdz17dmlzU3RhdGVBY3Rpb25zLnNldEZpbHRlckFuaW1hdGlvbldpbmRvd31cbiAgICAgICAgICAgICAgICAgIHRvZ2dsZUFuaW1hdGlvbj17dmlzU3RhdGVBY3Rpb25zLnRvZ2dsZUZpbHRlckFuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIHVwZGF0ZUFuaW1hdGlvblNwZWVkPXt2aXNTdGF0ZUFjdGlvbnMudXBkYXRlRmlsdGVyQW5pbWF0aW9uU3BlZWR9XG4gICAgICAgICAgICAgICAgICBlbmxhcmdlRmlsdGVyPXt2aXNTdGF0ZUFjdGlvbnMuZW5sYXJnZUZpbHRlcn1cbiAgICAgICAgICAgICAgICAgIHJlc2V0QW5pbWF0aW9uPXtyZXNldEFuaW1hdGlvbn1cbiAgICAgICAgICAgICAgICAgIGlzQW5pbWF0YWJsZT17IWFuaW1hdGlvbkNvbmZpZyB8fCAhYW5pbWF0aW9uQ29uZmlnLmlzQW5pbWF0aW5nfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9GaWx0ZXJBbmltYXRpb25Db250cm9sbGVyPlxuICAgICAgICApfVxuICAgICAgPC9Cb3R0b21XaWRnZXRDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9kaXNwbGF5LW5hbWUgKi9cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gZm9yd2FyZFJlZigocHJvcHM6IEJvdHRvbVdpZGdldFByb3BzLCByZWYpID0+IDxCb3R0b21XaWRnZXQgey4uLnByb3BzfSByb290UmVmPXtyZWZ9IC8+KTtcbiAgLyogZXNsaW50LWVuYWJsZSByZWFjdC9kaXNwbGF5LW5hbWUgKi9cbn1cbi8qIGVzbGludC1lbmFibGUgY29tcGxleGl0eSAqL1xuIl19
@@ -0,0 +1,27 @@
1
+ import React, { PropsWithChildren, ElementType, CSSProperties } from 'react';
2
+ export declare type ActionPanelProps = PropsWithChildren<{
3
+ color?: string;
4
+ className?: string;
5
+ direction?: string;
6
+ }>;
7
+ export declare type ActionPanelItemProps = PropsWithChildren<{
8
+ color?: string;
9
+ className?: string;
10
+ Icon?: ElementType;
11
+ label: string;
12
+ onClick?: () => void;
13
+ isSelection?: boolean;
14
+ isActive?: boolean;
15
+ style?: CSSProperties;
16
+ }>;
17
+ export interface DirectionProp {
18
+ direction: string;
19
+ }
20
+ /** @type {typeof import('./action-panel').ActionPanelItem} */
21
+ export declare const ActionPanelItem: React.MemoExoticComponent<({ children, color, className, Icon, label, onClick, isSelection, isActive, style }: ActionPanelItemProps) => JSX.Element>;
22
+ /** @type {typeof import('./action-panel').ActionPanel} */
23
+ declare const ActionPanel: {
24
+ ({ children, className, direction }: ActionPanelProps): JSX.Element;
25
+ displayName: string;
26
+ };
27
+ export default ActionPanel;
@@ -0,0 +1,152 @@
1
+ // Copyright (c) 2022 Uber Technologies, Inc.
2
+ //
3
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ // of this software and associated documentation files (the "Software"), to deal
5
+ // in the Software without restriction, including without limitation the rights
6
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ // copies of the Software, and to permit persons to whom the Software is
8
+ // furnished to do so, subject to the following conditions:
9
+ //
10
+ // The above copyright notice and this permission notice shall be included in
11
+ // all copies or substantial portions of the Software.
12
+ //
13
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ // THE SOFTWARE.
20
+
21
+ "use strict";
22
+
23
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
24
+
25
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
26
+
27
+ Object.defineProperty(exports, "__esModule", {
28
+ value: true
29
+ });
30
+ exports["default"] = exports.ActionPanelItem = void 0;
31
+
32
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
33
+
34
+ var _react = _interopRequireWildcard(require("react"));
35
+
36
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
37
+
38
+ var _classnames = _interopRequireDefault(require("classnames"));
39
+
40
+ var _icons = require("./icons");
41
+
42
+ var _switch = _interopRequireDefault(require("./switch"));
43
+
44
+ var _templateObject, _templateObject2, _templateObject3;
45
+
46
+ var StyledItem = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n align-items: center;\n font-size: 12px;\n line-height: 14px;\n padding: 8px;\n min-height: ", "px;\n text-transform: capitalize;\n background-color: ", ";\n max-width: 200px;\n position: relative;\n\n ", " :hover {\n cursor: pointer;\n color: ", ";\n .nested-group {\n display: block;\n }\n }\n\n .label {\n margin-left: 8px;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n .label-icon {\n margin-left: auto;\n }\n\n .nested-group {\n max-width: 200px;\n overflow: hidden;\n display: none;\n color: ", ";\n position: absolute;\n left: 100%;\n top: 0px;\n padding-left: 4px;\n\n label {\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n"])), function (props) {
47
+ return props.theme.actionPanelHeight;
48
+ }, function (props) {
49
+ return props.theme.dropdownListBgd;
50
+ }, function (props) {
51
+ return props.color ? "border-left: 3px solid rgb(".concat(props.color, ");") : '';
52
+ }, function (props) {
53
+ return props.theme.textColorHl;
54
+ }, function (props) {
55
+ return props.theme.textColor;
56
+ });
57
+
58
+ var StyledCheckedbox = (0, _styledComponents["default"])(_switch["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n label {\n margin-bottom: 0;\n color: ", ";\n padding-left: 20px;\n line-height: 12px;\n\n &:before {\n width: 12px;\n height: 12px;\n background-color: ", ";\n }\n &:hover {\n color: ", ";\n }\n }\n"])), function (props) {
59
+ return props.theme.textColor;
60
+ }, function (props) {
61
+ return props.theme.dropdownListBgd;
62
+ }, function (props) {
63
+ return props.theme.textColorHl;
64
+ });
65
+
66
+ var renderChildren = function renderChildren(child, index) {
67
+ return /*#__PURE__*/_react["default"].isValidElement(child) && /*#__PURE__*/_react["default"].cloneElement(child, {
68
+ onClick: function onClick() {
69
+ if (child.props.onClick) {
70
+ child.props.onClick(index);
71
+ }
72
+ },
73
+ className: (0, _classnames["default"])('action-panel-item', child.props.className)
74
+ });
75
+ };
76
+ /** @type {typeof import('./action-panel').ActionPanelItem} */
77
+
78
+
79
+ var ActionPanelItem = /*#__PURE__*/_react["default"].memo(function (_ref) {
80
+ var children = _ref.children,
81
+ color = _ref.color,
82
+ className = _ref.className,
83
+ Icon = _ref.Icon,
84
+ label = _ref.label,
85
+ onClick = _ref.onClick,
86
+ isSelection = _ref.isSelection,
87
+ isActive = _ref.isActive,
88
+ style = _ref.style;
89
+ var onClickCallback = (0, _react.useCallback)(function (event) {
90
+ event.preventDefault();
91
+ event.stopPropagation();
92
+ onClick === null || onClick === void 0 ? void 0 : onClick();
93
+ }, [onClick]);
94
+ return /*#__PURE__*/_react["default"].createElement(StyledItem, {
95
+ className: className,
96
+ onClick: onClickCallback,
97
+ color: color,
98
+ style: style
99
+ }, Icon ? /*#__PURE__*/_react["default"].createElement("div", {
100
+ className: "icon"
101
+ }, /*#__PURE__*/_react["default"].createElement(Icon, {
102
+ height: "16px"
103
+ })) : null, isSelection ? /*#__PURE__*/_react["default"].createElement(StyledCheckedbox, {
104
+ type: "checkbox",
105
+ checked: Boolean(isActive),
106
+ id: "switch-".concat(label),
107
+ secondary: true,
108
+ label: label
109
+ }) : /*#__PURE__*/_react["default"].createElement("span", {
110
+ className: "label"
111
+ }, label), children ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
112
+ className: "label-icon"
113
+ }, /*#__PURE__*/_react["default"].createElement(_icons.ArrowRight, {
114
+ height: "16px"
115
+ })), /*#__PURE__*/_react["default"].createElement("div", {
116
+ className: "nested-group"
117
+ }, _react["default"].Children.map(children, renderChildren))) : null);
118
+ });
119
+
120
+ exports.ActionPanelItem = ActionPanelItem;
121
+ ActionPanelItem.displayName = 'ActionPanelItem';
122
+
123
+ var StyledActionPanel = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n box-shadow: ", ";\n transition: ", ";\n color: ", ";\n\n .action-panel-item {\n ", " &:last-of-type {\n border-bottom: 0;\n }\n }\n"])), function (props) {
124
+ return props.direction;
125
+ }, function (props) {
126
+ return props.theme.dropdownListShadow;
127
+ }, function (props) {
128
+ return props.theme.transitionSlow;
129
+ }, function (props) {
130
+ return props.theme.textColor;
131
+ }, function (props) {
132
+ return props.direction === 'column' ? "border-bottom: 1px solid ".concat(props.theme.panelHeaderIcon) : "border-right: 1px solid ".concat(props.theme.panelHeaderIcon);
133
+ }); // React compound element https://medium.com/@Dane_s/react-js-compound-components-a6e54b5c9992
134
+
135
+ /** @type {typeof import('./action-panel').ActionPanel} */
136
+
137
+
138
+ var ActionPanel = function ActionPanel(_ref2) {
139
+ var children = _ref2.children,
140
+ className = _ref2.className,
141
+ _ref2$direction = _ref2.direction,
142
+ direction = _ref2$direction === void 0 ? 'column' : _ref2$direction;
143
+ return /*#__PURE__*/_react["default"].createElement(StyledActionPanel, {
144
+ className: className,
145
+ direction: direction
146
+ }, _react["default"].Children.map(children, renderChildren));
147
+ };
148
+
149
+ ActionPanel.displayName = 'ActionPanel';
150
+ var _default = ActionPanel;
151
+ exports["default"] = _default;
152
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vYWN0aW9uLXBhbmVsLnRzeCJdLCJuYW1lcyI6WyJTdHlsZWRJdGVtIiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsImFjdGlvblBhbmVsSGVpZ2h0IiwiZHJvcGRvd25MaXN0QmdkIiwiY29sb3IiLCJ0ZXh0Q29sb3JIbCIsInRleHRDb2xvciIsIlN0eWxlZENoZWNrZWRib3giLCJDaGVja2JveCIsInJlbmRlckNoaWxkcmVuIiwiY2hpbGQiLCJpbmRleCIsImlzVmFsaWRFbGVtZW50IiwiUmVhY3QiLCJjbG9uZUVsZW1lbnQiLCJvbkNsaWNrIiwiY2xhc3NOYW1lIiwiQWN0aW9uUGFuZWxJdGVtIiwibWVtbyIsImNoaWxkcmVuIiwiSWNvbiIsImxhYmVsIiwiaXNTZWxlY3Rpb24iLCJpc0FjdGl2ZSIsInN0eWxlIiwib25DbGlja0NhbGxiYWNrIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsIkJvb2xlYW4iLCJDaGlsZHJlbiIsIm1hcCIsImRpc3BsYXlOYW1lIiwiU3R5bGVkQWN0aW9uUGFuZWwiLCJkaXJlY3Rpb24iLCJkcm9wZG93bkxpc3RTaGFkb3ciLCJ0cmFuc2l0aW9uU2xvdyIsInBhbmVsSGVhZGVySWNvbiIsIkFjdGlvblBhbmVsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBdUJBLElBQU1BLFVBQVUsR0FBR0MsNkJBQU9DLEdBQVYseTJCQU9BLFVBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUMsaUJBQWhCO0FBQUEsQ0FQTCxFQVNNLFVBQUFGLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUUsZUFBaEI7QUFBQSxDQVRYLEVBYVosVUFBQUgsS0FBSztBQUFBLFNBQUtBLEtBQUssQ0FBQ0ksS0FBTix3Q0FBNENKLEtBQUssQ0FBQ0ksS0FBbEQsVUFBOEQs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OUI7QUFBeUMsSUFBQSxTQUFTLEVBQUVrQjtBQUFwRCxLQUNHckIsa0JBQU1pQixRQUFOLENBQWVDLEdBQWYsQ0FBbUJaLFFBQW5CLEVBQTZCVixjQUE3QixDQURILENBRGtCO0FBQUEsQ0FBcEI7O0FBTUE2QixXQUFXLENBQUNOLFdBQVosR0FBMEIsYUFBMUI7ZUFFZU0sVyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCBQcm9wc1dpdGhDaGlsZHJlbiwgRWxlbWVudFR5cGUsIENTU1Byb3BlcnRpZXMsIFJlYWN0Tm9kZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7QXJyb3dSaWdodH0gZnJvbSAnLi9pY29ucyc7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnLi9zd2l0Y2gnO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25QYW5lbFByb3BzID0gUHJvcHNXaXRoQ2hpbGRyZW48e1xuICBjb2xvcj86IHN0cmluZztcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBkaXJlY3Rpb24/OiBzdHJpbmc7XG59PjtcblxuZXhwb3J0IHR5cGUgQWN0aW9uUGFuZWxJdGVtUHJvcHMgPSBQcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGNvbG9yPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIEljb24/OiBFbGVtZW50VHlwZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG4gIGlzU2VsZWN0aW9uPzogYm9vbGVhbjtcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBzdHlsZT86IENTU1Byb3BlcnRpZXM7XG59PjtcblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3Rpb25Qcm9wIHtcbiAgZGlyZWN0aW9uOiBzdHJpbmc7XG59XG5cbmNvbnN0IFN0eWxlZEl0ZW0gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIG1pbi1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aW9uUGFuZWxIZWlnaHR9cHg7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZH07XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAke3Byb3BzID0+IChwcm9wcy5jb2xvciA/IGBib3JkZXItbGVmdDogM3B4IHNvbGlkIHJnYigke3Byb3BzLmNvbG9yfSk7YCA6ICcnKX0gOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIC5uZXN0ZWQtZ3JvdXAge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLmxhYmVsIHtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuICAubGFiZWwtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICAubmVzdGVkLWdyb3VwIHtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHRvcDogMHB4O1xuICAgIHBhZGRpbmctbGVmdDogNHB4O1xuXG4gICAgbGFiZWwge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkQ2hlY2tlZGJveCA9IHN0eWxlZChDaGVja2JveClgXG4gIGxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMnB4O1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZH07XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSAoY2hpbGQ6IFJlYWN0Tm9kZSwgaW5kZXg6IG51bWJlcikgPT5cbiAgUmVhY3QuaXNWYWxpZEVsZW1lbnQ8YW55PihjaGlsZCkgJiZcbiAgUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgb25DbGljazogKCkgPT4ge1xuICAgICAgaWYgKGNoaWxkLnByb3BzLm9uQ2xpY2spIHtcbiAgICAgICAgY2hpbGQucHJvcHMub25DbGljayhpbmRleCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBjbGFzc05hbWU6IGNsYXNzbmFtZXMoJ2FjdGlvbi1wYW5lbC1pdGVtJywgY2hpbGQucHJvcHMuY2xhc3NOYW1lKVxuICB9KTtcblxuLyoqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCcuL2FjdGlvbi1wYW5lbCcpLkFjdGlvblBhbmVsSXRlbX0gKi9cbmV4cG9ydCBjb25zdCBBY3Rpb25QYW5lbEl0ZW0gPSBSZWFjdC5tZW1vKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNvbG9yLFxuICAgIGNsYXNzTmFtZSxcbiAgICBJY29uLFxuICAgIGxhYmVsLFxuICAgIG9uQ2xpY2ssXG4gICAgaXNTZWxlY3Rpb24sXG4gICAgaXNBY3RpdmUsXG4gICAgc3R5bGVcbiAgfTogQWN0aW9uUGFuZWxJdGVtUHJvcHMpID0+IHtcbiAgICBjb25zdCBvbkNsaWNrQ2FsbGJhY2sgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIG9uQ2xpY2s/LigpO1xuICAgICAgfSxcbiAgICAgIFtvbkNsaWNrXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEl0ZW0gY2xhc3NOYW1lPXtjbGFzc05hbWV9IG9uQ2xpY2s9e29uQ2xpY2tDYWxsYmFja30gY29sb3I9e2NvbG9yfSBzdHlsZT17c3R5bGV9PlxuICAgICAgICB7SWNvbiA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImljb25cIj5cbiAgICAgICAgICAgIDxJY29uIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2lzU2VsZWN0aW9uID8gKFxuICAgICAgICAgIDxTdHlsZWRDaGVja2VkYm94XG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgY2hlY2tlZD17Qm9vbGVhbihpc0FjdGl2ZSl9XG4gICAgICAgICAgICBpZD17YHN3aXRjaC0ke2xhYmVsfWB9XG4gICAgICAgICAgICBzZWNvbmRhcnlcbiAgICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImxhYmVsXCI+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgKX1cbiAgICAgICAge2NoaWxkcmVuID8gKFxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsLWljb25cIj5cbiAgICAgICAgICAgICAgPEFycm93UmlnaHQgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibmVzdGVkLWdyb3VwXCI+e1JlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgcmVuZGVyQ2hpbGRyZW4pfTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU3R5bGVkSXRlbT5cbiAgICApO1xuICB9XG4pO1xuXG5BY3Rpb25QYW5lbEl0ZW0uZGlzcGxheU5hbWUgPSAnQWN0aW9uUGFuZWxJdGVtJztcblxuY29uc3QgU3R5bGVkQWN0aW9uUGFuZWwgPSBzdHlsZWQuZGl2PERpcmVjdGlvblByb3A+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogJHtwcm9wcyA9PiBwcm9wcy5kaXJlY3Rpb259O1xuICBib3gtc2hhZG93OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdFNoYWRvd307XG4gIHRyYW5zaXRpb246ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudHJhbnNpdGlvblNsb3d9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuXG4gIC5hY3Rpb24tcGFuZWwtaXRlbSB7XG4gICAgJHtwcm9wcyA9PlxuICAgICAgcHJvcHMuZGlyZWN0aW9uID09PSAnY29sdW1uJ1xuICAgICAgICA/IGBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwcm9wcy50aGVtZS5wYW5lbEhlYWRlckljb259YFxuICAgICAgICA6IGBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3Byb3BzLnRoZW1lLnBhbmVsSGVhZGVySWNvbn1gfSAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuYDtcblxuLy8gUmVhY3QgY29tcG91bmQgZWxlbWVudCBodHRwczovL21lZGl1bS5jb20vQERhbmVfcy9yZWFjdC1qcy1jb21wb3VuZC1jb21wb25lbnRzLWE2ZTU0YjVjOTk5MlxuLyoqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCcuL2FjdGlvbi1wYW5lbCcpLkFjdGlvblBhbmVsfSAqL1xuY29uc3QgQWN0aW9uUGFuZWwgPSAoe2NoaWxkcmVuLCBjbGFzc05hbWUsIGRpcmVjdGlvbiA9ICdjb2x1bW4nfTogQWN0aW9uUGFuZWxQcm9wcykgPT4gKFxuICA8U3R5bGVkQWN0aW9uUGFuZWwgY2xhc3NOYW1lPXtjbGFzc05hbWV9IGRpcmVjdGlvbj17ZGlyZWN0aW9ufT5cbiAgICB7UmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCByZW5kZXJDaGlsZHJlbil9XG4gIDwvU3R5bGVkQWN0aW9uUGFuZWw+XG4pO1xuXG5BY3Rpb25QYW5lbC5kaXNwbGF5TmFtZSA9ICdBY3Rpb25QYW5lbCc7XG5cbmV4cG9ydCBkZWZhdWx0IEFjdGlvblBhbmVsO1xuIl19
@@ -0,0 +1,24 @@
1
+ /// <reference types="react" />
2
+ import PlaybackControlsFactory from './playback-controls';
3
+ import FloatingTimeDisplayFactory from './floating-time-display';
4
+ declare function AnimationControlFactory(PlaybackControls: ReturnType<typeof PlaybackControlsFactory>, FloatingTimeDisplay: ReturnType<typeof FloatingTimeDisplayFactory>): {
5
+ ({ isAnimatable, isAnimating, resetAnimation, toggleAnimation, setLayerAnimationTime, updateAnimationSpeed, animationConfig }: {
6
+ isAnimatable: any;
7
+ isAnimating: any;
8
+ resetAnimation: any;
9
+ toggleAnimation: any;
10
+ setLayerAnimationTime: any;
11
+ updateAnimationSpeed: any;
12
+ animationConfig: any;
13
+ }): JSX.Element;
14
+ defaultProps: {
15
+ toggleAnimation: () => void;
16
+ updateAnimationSpeed: () => void;
17
+ animationControlProps: {};
18
+ animationConfig: {};
19
+ };
20
+ };
21
+ declare namespace AnimationControlFactory {
22
+ var deps: (typeof PlaybackControlsFactory | typeof FloatingTimeDisplayFactory)[];
23
+ }
24
+ export default AnimationControlFactory;