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

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 (530) hide show
  1. package/dist/bottom-widget.d.ts +11 -38
  2. package/dist/bottom-widget.js +43 -99
  3. package/dist/common/action-panel.d.ts +2 -2
  4. package/dist/common/action-panel.js +4 -4
  5. package/dist/common/animation-control/animation-control.d.ts +19 -18
  6. package/dist/common/animation-control/animation-control.js +59 -81
  7. package/dist/common/animation-control/animation-controller.d.ts +6 -2
  8. package/dist/common/animation-control/animation-controller.js +50 -36
  9. package/dist/common/animation-control/animation-speed-slider.js +2 -2
  10. package/dist/common/animation-control/animation-window-control.js +1 -1
  11. package/dist/common/animation-control/floating-time-display.d.ts +2 -2
  12. package/dist/common/animation-control/floating-time-display.js +2 -2
  13. package/dist/common/animation-control/play-control.d.ts +2 -2
  14. package/dist/common/animation-control/play-control.js +1 -1
  15. package/dist/common/animation-control/playback-controls.d.ts +7 -7
  16. package/dist/common/animation-control/playback-controls.js +6 -6
  17. package/dist/common/animation-control/reset-control.d.ts +2 -2
  18. package/dist/common/animation-control/reset-control.js +1 -1
  19. package/dist/common/animation-control/speed-control.d.ts +2 -2
  20. package/dist/common/animation-control/speed-control.js +2 -2
  21. package/dist/common/animation-control/window-action-control.d.ts +2 -2
  22. package/dist/common/animation-control/window-action-control.js +1 -1
  23. package/dist/common/checkbox.d.ts +2 -2
  24. package/dist/common/checkbox.js +3 -3
  25. package/dist/common/color-legend.d.ts +3 -3
  26. package/dist/common/color-legend.js +11 -17
  27. package/dist/common/data-table/button.d.ts +1 -1
  28. package/dist/common/data-table/button.js +2 -2
  29. package/dist/common/data-table/canvas.js +2 -2
  30. package/dist/common/data-table/cell-size.js +44 -13
  31. package/dist/common/data-table/display-format.d.ts +25 -0
  32. package/dist/common/data-table/display-format.js +169 -0
  33. package/dist/common/data-table/grid.d.ts +5 -2
  34. package/dist/common/data-table/grid.js +45 -5
  35. package/dist/common/data-table/header-cell.d.ts +4 -1
  36. package/dist/common/data-table/header-cell.js +66 -29
  37. package/dist/common/data-table/index.d.ts +27 -34
  38. package/dist/common/data-table/index.js +148 -62
  39. package/dist/common/data-table/option-dropdown.d.ts +17 -3
  40. package/dist/common/data-table/option-dropdown.js +86 -13
  41. package/dist/common/dataset-label.d.ts +2 -2
  42. package/dist/common/dataset-label.js +3 -3
  43. package/dist/common/error-boundary.d.ts +6 -2
  44. package/dist/common/error-boundary.js +2 -2
  45. package/dist/common/field-selector.d.ts +9 -3
  46. package/dist/common/field-selector.js +3 -3
  47. package/dist/common/field-token.d.ts +8 -0
  48. package/dist/common/field-token.js +7 -3
  49. package/dist/common/file-uploader/file-drop.d.ts +3 -2
  50. package/dist/common/file-uploader/file-drop.js +2 -2
  51. package/dist/common/file-uploader/file-upload-progress.js +2 -2
  52. package/dist/common/file-uploader/file-upload.d.ts +2 -6
  53. package/dist/common/file-uploader/file-upload.js +2 -2
  54. package/dist/common/file-uploader/upload-button.d.ts +1 -0
  55. package/dist/common/file-uploader/upload-button.js +2 -2
  56. package/dist/common/histogram-plot.d.ts +2 -2
  57. package/dist/common/histogram-plot.js +18 -12
  58. package/dist/common/icon-button.d.ts +2 -1
  59. package/dist/common/icon-button.js +2 -2
  60. package/dist/common/icons/add.d.ts +2 -2
  61. package/dist/common/icons/add.js +2 -2
  62. package/dist/common/icons/anchor_window.d.ts +2 -2
  63. package/dist/common/icons/anchor_window.js +2 -2
  64. package/dist/common/icons/arrow-down-alt.d.ts +2 -2
  65. package/dist/common/icons/arrow-down-alt.js +2 -2
  66. package/dist/common/icons/arrow-down-solid.d.ts +2 -2
  67. package/dist/common/icons/arrow-down-solid.js +2 -2
  68. package/dist/common/icons/arrow-down.d.ts +2 -2
  69. package/dist/common/icons/arrow-down.js +2 -2
  70. package/dist/common/icons/arrow-left.d.ts +2 -2
  71. package/dist/common/icons/arrow-left.js +2 -2
  72. package/dist/common/icons/arrow-right.d.ts +2 -2
  73. package/dist/common/icons/arrow-right.js +2 -2
  74. package/dist/common/icons/arrow-up-alt.d.ts +2 -2
  75. package/dist/common/icons/arrow-up-alt.js +2 -2
  76. package/dist/common/icons/arrow-up-solid.d.ts +2 -2
  77. package/dist/common/icons/arrow-up-solid.js +2 -2
  78. package/dist/common/icons/arrow-up.d.ts +2 -2
  79. package/dist/common/icons/arrow-up.js +2 -2
  80. package/dist/common/icons/base.d.ts +1 -1
  81. package/dist/common/icons/base.js +2 -2
  82. package/dist/common/icons/bug.d.ts +2 -2
  83. package/dist/common/icons/bug.js +2 -2
  84. package/dist/common/icons/cancel.d.ts +2 -2
  85. package/dist/common/icons/cancel.js +2 -2
  86. package/dist/common/icons/checkmark.d.ts +2 -2
  87. package/dist/common/icons/checkmark.js +2 -2
  88. package/dist/common/icons/clipboard.d.ts +2 -2
  89. package/dist/common/icons/clipboard.js +2 -2
  90. package/dist/common/icons/clock.d.ts +2 -2
  91. package/dist/common/icons/clock.js +2 -2
  92. package/dist/common/icons/close.d.ts +2 -2
  93. package/dist/common/icons/close.js +2 -2
  94. package/dist/common/icons/code-alt.d.ts +2 -2
  95. package/dist/common/icons/code-alt.js +2 -2
  96. package/dist/common/icons/copy.d.ts +2 -2
  97. package/dist/common/icons/copy.js +2 -2
  98. package/dist/common/icons/crosshairs.d.ts +2 -2
  99. package/dist/common/icons/crosshairs.js +2 -2
  100. package/dist/common/icons/cube-3d.d.ts +2 -2
  101. package/dist/common/icons/cube-3d.js +2 -2
  102. package/dist/common/icons/cursor-click.d.ts +2 -2
  103. package/dist/common/icons/cursor-click.js +2 -2
  104. package/dist/common/icons/cursor-point.d.ts +14 -0
  105. package/dist/common/icons/cursor-point.js +89 -0
  106. package/dist/common/icons/data-table.d.ts +2 -2
  107. package/dist/common/icons/data-table.js +2 -2
  108. package/dist/common/icons/db.d.ts +2 -2
  109. package/dist/common/icons/db.js +2 -2
  110. package/dist/common/icons/delete.d.ts +2 -2
  111. package/dist/common/icons/delete.js +2 -2
  112. package/dist/common/icons/docs.d.ts +2 -2
  113. package/dist/common/icons/docs.js +2 -2
  114. package/dist/common/icons/drag-n-drop.d.ts +2 -2
  115. package/dist/common/icons/drag-n-drop.js +2 -2
  116. package/dist/common/icons/draw-polygon.d.ts +2 -2
  117. package/dist/common/icons/draw-polygon.js +2 -2
  118. package/dist/common/icons/email.d.ts +2 -2
  119. package/dist/common/icons/email.js +2 -2
  120. package/dist/common/icons/expand.d.ts +2 -2
  121. package/dist/common/icons/expand.js +2 -2
  122. package/dist/common/icons/eye-seen.d.ts +2 -2
  123. package/dist/common/icons/eye-seen.js +2 -2
  124. package/dist/common/icons/eye-unseen.d.ts +2 -2
  125. package/dist/common/icons/eye-unseen.js +2 -2
  126. package/dist/common/icons/file-type.d.ts +2 -2
  127. package/dist/common/icons/file-type.js +2 -2
  128. package/dist/common/icons/file.d.ts +2 -2
  129. package/dist/common/icons/file.js +2 -2
  130. package/dist/common/icons/files.d.ts +1 -1
  131. package/dist/common/icons/files.js +2 -2
  132. package/dist/common/icons/filter-funnel.d.ts +2 -2
  133. package/dist/common/icons/filter-funnel.js +2 -2
  134. package/dist/common/icons/free-window.d.ts +2 -2
  135. package/dist/common/icons/free-window.js +2 -2
  136. package/dist/common/icons/gear.d.ts +2 -2
  137. package/dist/common/icons/gear.js +2 -2
  138. package/dist/common/icons/hash.d.ts +2 -2
  139. package/dist/common/icons/hash.js +2 -2
  140. package/dist/common/icons/histogram.d.ts +1 -1
  141. package/dist/common/icons/histogram.js +2 -2
  142. package/dist/common/icons/index.d.ts +1 -0
  143. package/dist/common/icons/index.js +10 -2
  144. package/dist/common/icons/info.d.ts +2 -2
  145. package/dist/common/icons/info.js +2 -2
  146. package/dist/common/icons/layers.d.ts +2 -2
  147. package/dist/common/icons/layers.js +2 -2
  148. package/dist/common/icons/left-arrow.d.ts +2 -2
  149. package/dist/common/icons/left-arrow.js +2 -2
  150. package/dist/common/icons/legend.d.ts +2 -2
  151. package/dist/common/icons/legend.js +2 -2
  152. package/dist/common/icons/line-chart.d.ts +2 -2
  153. package/dist/common/icons/line-chart.js +2 -2
  154. package/dist/common/icons/login.d.ts +2 -2
  155. package/dist/common/icons/login.js +2 -2
  156. package/dist/common/icons/logout.d.ts +2 -2
  157. package/dist/common/icons/logout.js +2 -2
  158. package/dist/common/icons/map-icon.d.ts +2 -2
  159. package/dist/common/icons/map-icon.js +2 -2
  160. package/dist/common/icons/map.d.ts +2 -2
  161. package/dist/common/icons/map.js +2 -2
  162. package/dist/common/icons/messages.d.ts +2 -2
  163. package/dist/common/icons/messages.js +2 -2
  164. package/dist/common/icons/minus.d.ts +2 -2
  165. package/dist/common/icons/minus.js +2 -2
  166. package/dist/common/icons/order-by-dataset.d.ts +2 -2
  167. package/dist/common/icons/order-by-dataset.js +2 -2
  168. package/dist/common/icons/order-by-list.d.ts +2 -2
  169. package/dist/common/icons/order-by-list.js +2 -2
  170. package/dist/common/icons/pause.d.ts +2 -2
  171. package/dist/common/icons/pause.js +2 -2
  172. package/dist/common/icons/picture.d.ts +1 -1
  173. package/dist/common/icons/picture.js +2 -2
  174. package/dist/common/icons/pin.d.ts +2 -2
  175. package/dist/common/icons/pin.js +2 -2
  176. package/dist/common/icons/play.d.ts +2 -2
  177. package/dist/common/icons/play.js +2 -2
  178. package/dist/common/icons/polygon.d.ts +2 -2
  179. package/dist/common/icons/polygon.js +2 -2
  180. package/dist/common/icons/rectangle.d.ts +2 -2
  181. package/dist/common/icons/rectangle.js +2 -2
  182. package/dist/common/icons/reduce.d.ts +2 -2
  183. package/dist/common/icons/reduce.js +2 -2
  184. package/dist/common/icons/reset.d.ts +2 -2
  185. package/dist/common/icons/reset.js +2 -2
  186. package/dist/common/icons/rocket.d.ts +2 -2
  187. package/dist/common/icons/rocket.js +2 -2
  188. package/dist/common/icons/save.d.ts +2 -2
  189. package/dist/common/icons/save.js +2 -2
  190. package/dist/common/icons/save2.d.ts +2 -2
  191. package/dist/common/icons/save2.js +2 -2
  192. package/dist/common/icons/search.d.ts +2 -2
  193. package/dist/common/icons/search.js +2 -2
  194. package/dist/common/icons/settings.d.ts +2 -2
  195. package/dist/common/icons/settings.js +2 -2
  196. package/dist/common/icons/share.d.ts +2 -2
  197. package/dist/common/icons/share.js +2 -2
  198. package/dist/common/icons/split.d.ts +2 -2
  199. package/dist/common/icons/split.js +2 -2
  200. package/dist/common/icons/square-select.d.ts +2 -2
  201. package/dist/common/icons/square-select.js +2 -2
  202. package/dist/common/icons/trash.d.ts +2 -2
  203. package/dist/common/icons/trash.js +2 -2
  204. package/dist/common/icons/vert-dots.d.ts +2 -2
  205. package/dist/common/icons/vert-dots.js +2 -2
  206. package/dist/common/icons/vert-three-dots.d.ts +2 -2
  207. package/dist/common/icons/vert-three-dots.js +2 -2
  208. package/dist/common/icons/warning-sign.d.ts +2 -2
  209. package/dist/common/icons/warning-sign.js +2 -2
  210. package/dist/common/icons/warning.d.ts +2 -2
  211. package/dist/common/icons/warning.js +2 -2
  212. package/dist/common/image-preview.d.ts +2 -2
  213. package/dist/common/image-preview.js +2 -2
  214. package/dist/common/index.d.ts +1 -1
  215. package/dist/common/index.js +8 -2
  216. package/dist/common/info-helper.d.ts +2 -2
  217. package/dist/common/info-helper.js +2 -2
  218. package/dist/common/item-selector/accessor.js +2 -2
  219. package/dist/common/item-selector/chickleted-input.js +2 -2
  220. package/dist/common/item-selector/dropdown-list.d.ts +28 -8
  221. package/dist/common/item-selector/dropdown-list.js +144 -25
  222. package/dist/common/item-selector/item-selector.d.ts +2 -3
  223. package/dist/common/item-selector/item-selector.js +7 -3
  224. package/dist/common/item-selector/typeahead.d.ts +16 -12
  225. package/dist/common/item-selector/typeahead.js +24 -13
  226. package/dist/common/line-chart.d.ts +2 -2
  227. package/dist/common/line-chart.js +2 -2
  228. package/dist/common/loading-spinner.js +2 -2
  229. package/dist/common/logo.d.ts +2 -2
  230. package/dist/common/logo.js +2 -2
  231. package/dist/common/map-layer-selector.d.ts +2 -2
  232. package/dist/common/map-layer-selector.js +3 -4
  233. package/dist/common/modal.d.ts +24 -11
  234. package/dist/common/modal.js +2 -2
  235. package/dist/common/portaled.d.ts +513 -2
  236. package/dist/common/portaled.js +2 -2
  237. package/dist/common/progress-bar.d.ts +2 -2
  238. package/dist/common/progress-bar.js +2 -2
  239. package/dist/common/range-brush.js +2 -2
  240. package/dist/common/range-plot.d.ts +6 -2
  241. package/dist/common/range-plot.js +4 -3
  242. package/dist/common/range-slider.d.ts +5 -1
  243. package/dist/common/range-slider.js +9 -3
  244. package/dist/common/slider/mouse-event.js +2 -2
  245. package/dist/common/slider/slider-bar-handle.d.ts +2 -2
  246. package/dist/common/slider/slider-bar-handle.js +2 -2
  247. package/dist/common/slider/slider-handle.d.ts +1 -1
  248. package/dist/common/slider/slider-handle.js +2 -2
  249. package/dist/common/slider/slider.d.ts +7 -5
  250. package/dist/common/slider/slider.js +8 -5
  251. package/dist/common/styled-components.d.ts +5 -0
  252. package/dist/common/styled-components.js +161 -47
  253. package/dist/common/switch.d.ts +3 -2
  254. package/dist/common/switch.js +2 -2
  255. package/dist/common/time-range-slider-time-title.d.ts +2 -2
  256. package/dist/common/time-range-slider-time-title.js +2 -2
  257. package/dist/common/time-range-slider.d.ts +6 -3
  258. package/dist/common/time-range-slider.js +33 -14
  259. package/dist/common/time-slider-marker.d.ts +1 -1
  260. package/dist/common/time-slider-marker.js +3 -3
  261. package/dist/common/timeline-slider.d.ts +13 -0
  262. package/dist/common/timeline-slider.js +173 -0
  263. package/dist/common/tippy-tooltip.d.ts +4 -2
  264. package/dist/common/tippy-tooltip.js +23 -11
  265. package/dist/common/toolbar-item.d.ts +1 -1
  266. package/dist/common/toolbar-item.js +6 -4
  267. package/dist/common/toolbar.js +2 -2
  268. package/dist/common/vertical-toolbar.js +2 -2
  269. package/dist/connect/keplergl-connect.d.ts +5 -1
  270. package/dist/connect/keplergl-connect.js +2 -2
  271. package/dist/connect/with-local-selector.js +2 -2
  272. package/dist/container.js +2 -2
  273. package/dist/context.js +4 -3
  274. package/dist/dnd-context.d.ts +13 -0
  275. package/dist/dnd-context.js +252 -0
  276. package/dist/editor/editor.d.ts +11 -10
  277. package/dist/editor/editor.js +97 -103
  278. package/dist/editor/feature-action-panel.d.ts +8 -6
  279. package/dist/editor/feature-action-panel.js +75 -22
  280. package/dist/effects/effect-configurator.d.ts +18 -0
  281. package/dist/effects/effect-configurator.js +237 -0
  282. package/dist/effects/effect-list.d.ts +15 -0
  283. package/dist/effects/effect-list.js +173 -0
  284. package/dist/effects/effect-manager.d.ts +21 -0
  285. package/dist/effects/effect-manager.js +129 -0
  286. package/dist/effects/effect-panel-header.d.ts +33 -0
  287. package/dist/effects/effect-panel-header.js +174 -0
  288. package/dist/effects/effect-panel.d.ts +24 -0
  289. package/dist/effects/effect-panel.js +162 -0
  290. package/dist/effects/effect-time-configurator.d.ts +13 -0
  291. package/dist/effects/effect-time-configurator.js +191 -0
  292. package/dist/effects/effect-type-selector.d.ts +11 -0
  293. package/dist/effects/effect-type-selector.js +117 -0
  294. package/dist/effects/side-panel-title.d.ts +7 -0
  295. package/dist/effects/side-panel-title.js +67 -0
  296. package/dist/filter-animation-controller.d.ts +17 -0
  297. package/dist/filter-animation-controller.js +91 -0
  298. package/dist/filters/components.js +2 -2
  299. package/dist/filters/filter-panels/filter-panel-with-field-select.js +3 -3
  300. package/dist/filters/filter-panels/multi-select-filter-panel.js +3 -3
  301. package/dist/filters/filter-panels/new-filter-panel.js +2 -2
  302. package/dist/filters/filter-panels/polygon-filter-panel.js +3 -3
  303. package/dist/filters/filter-panels/range-filter-panel.js +3 -3
  304. package/dist/filters/filter-panels/single-select-filter-panel.js +3 -3
  305. package/dist/filters/filter-panels/time-range-filter-panel.js +25 -8
  306. package/dist/filters/filter-panels/types.d.ts +2 -1
  307. package/dist/filters/filter-panels/types.js +1 -1
  308. package/dist/filters/index.d.ts +2 -0
  309. package/dist/filters/index.js +18 -2
  310. package/dist/filters/multi-select-filter.js +2 -2
  311. package/dist/filters/polygon-filter.js +14 -4
  312. package/dist/filters/range-filter.js +6 -4
  313. package/dist/filters/single-select-filter.js +2 -2
  314. package/dist/filters/time-range-filter.d.ts +2 -1
  315. package/dist/filters/time-range-filter.js +10 -7
  316. package/dist/filters/time-widget-top.d.ts +8 -0
  317. package/dist/filters/time-widget-top.js +123 -0
  318. package/dist/filters/time-widget.d.ts +3 -7
  319. package/dist/filters/time-widget.js +35 -92
  320. package/dist/filters/types.d.ts +7 -3
  321. package/dist/filters/types.js +1 -1
  322. package/dist/geocoder/geocoder.d.ts +1 -3
  323. package/dist/geocoder/geocoder.js +2 -2
  324. package/dist/geocoder-panel.d.ts +9 -3
  325. package/dist/geocoder-panel.js +30 -19
  326. package/dist/hooks/useFeatureFlags.js +1 -1
  327. package/dist/index.d.ts +68 -20
  328. package/dist/index.js +599 -99
  329. package/dist/injector.d.ts +4 -4
  330. package/dist/injector.js +2 -2
  331. package/dist/kepler-gl.d.ts +58 -17
  332. package/dist/kepler-gl.js +78 -31
  333. package/dist/layer-animation-controller.d.ts +13 -0
  334. package/dist/layer-animation-controller.js +76 -0
  335. package/dist/map/coordinate-info.js +2 -2
  336. package/dist/map/effects/effect-control.d.ts +16 -0
  337. package/dist/map/effects/effect-control.js +81 -0
  338. package/dist/map/layer-hover-info.d.ts +2 -2
  339. package/dist/map/layer-hover-info.js +26 -10
  340. package/dist/map/layer-selector-panel.js +2 -2
  341. package/dist/map/lazy-tippy.js +1 -1
  342. package/dist/map/locale-panel.d.ts +1 -1
  343. package/dist/map/locale-panel.js +2 -2
  344. package/dist/map/map-control-panel.d.ts +6 -0
  345. package/dist/map/map-control-panel.js +65 -9
  346. package/dist/map/map-control-toolbar.js +3 -3
  347. package/dist/map/map-control-tooltip.js +2 -2
  348. package/dist/map/map-control.d.ts +15 -7
  349. package/dist/map/map-control.js +6 -7
  350. package/dist/map/map-draw-panel.d.ts +2 -2
  351. package/dist/map/map-draw-panel.js +2 -9
  352. package/dist/map/map-legend-panel.d.ts +12 -1
  353. package/dist/map/map-legend-panel.js +27 -14
  354. package/dist/map/map-legend.d.ts +1 -1
  355. package/dist/map/map-legend.js +2 -2
  356. package/dist/map/map-popover-content.d.ts +28 -0
  357. package/dist/map/map-popover-content.js +51 -0
  358. package/dist/map/map-popover.d.ts +11 -14
  359. package/dist/map/map-popover.js +94 -15
  360. package/dist/map/split-map-button.js +2 -2
  361. package/dist/map/toggle-3d-button.js +2 -2
  362. package/dist/map-container.d.ts +33 -9
  363. package/dist/map-container.js +530 -161
  364. package/dist/map-view-state-context.d.ts +12 -0
  365. package/dist/map-view-state-context.js +116 -0
  366. package/dist/maps-layout.d.ts +5 -2
  367. package/dist/maps-layout.js +7 -3
  368. package/dist/modal-container.d.ts +2 -6
  369. package/dist/modal-container.js +8 -6
  370. package/dist/modals/add-map-style-modal.d.ts +1 -3
  371. package/dist/modals/add-map-style-modal.js +12 -6
  372. package/dist/modals/cloud-tile.js +2 -2
  373. package/dist/modals/data-table-modal.d.ts +11 -2
  374. package/dist/modals/data-table-modal.js +75 -24
  375. package/dist/modals/delete-data-modal.js +2 -2
  376. package/dist/modals/error-display.js +2 -2
  377. package/dist/modals/export-data-modal.d.ts +1 -3
  378. package/dist/modals/export-data-modal.js +2 -2
  379. package/dist/modals/export-image-modal.d.ts +1 -3
  380. package/dist/modals/export-image-modal.js +2 -2
  381. package/dist/modals/export-map-modal/components.d.ts +2 -2
  382. package/dist/modals/export-map-modal/components.js +2 -2
  383. package/dist/modals/export-map-modal/export-html-map.js +2 -2
  384. package/dist/modals/export-map-modal/export-json-map.d.ts +1 -1
  385. package/dist/modals/export-map-modal/export-json-map.js +2 -2
  386. package/dist/modals/export-map-modal/export-map-modal.d.ts +2 -2
  387. package/dist/modals/export-map-modal/export-map-modal.js +2 -2
  388. package/dist/modals/image-modal-container.d.ts +1 -0
  389. package/dist/modals/image-modal-container.js +2 -2
  390. package/dist/modals/load-data-modal.js +2 -2
  391. package/dist/modals/load-storage-map.js +2 -2
  392. package/dist/modals/loading-dialog.js +2 -2
  393. package/dist/modals/modal-dialog.js +2 -2
  394. package/dist/modals/modal-tabs.d.ts +1 -1
  395. package/dist/modals/modal-tabs.js +2 -2
  396. package/dist/modals/overwrite-map-modal.js +2 -2
  397. package/dist/modals/provider-modal-container.d.ts +3 -2
  398. package/dist/modals/provider-modal-container.js +2 -2
  399. package/dist/modals/save-map-modal.js +2 -2
  400. package/dist/modals/share-map-modal.js +2 -2
  401. package/dist/modals/status-panel.js +2 -2
  402. package/dist/modals/storage-map-viewer.d.ts +1 -1
  403. package/dist/modals/storage-map-viewer.js +2 -2
  404. package/dist/notification-panel/notification-item.d.ts +7 -10
  405. package/dist/notification-panel/notification-item.js +45 -13
  406. package/dist/notification-panel.js +2 -2
  407. package/dist/plot-container.js +20 -8
  408. package/dist/side-panel/add-by-dataset-button.d.ts +12 -0
  409. package/dist/side-panel/add-by-dataset-button.js +173 -0
  410. package/dist/side-panel/cloud-storage-dropdown.d.ts +2 -2
  411. package/dist/side-panel/cloud-storage-dropdown.js +2 -2
  412. package/dist/side-panel/common/dataset-info.d.ts +10 -3
  413. package/dist/side-panel/common/dataset-info.js +2 -2
  414. package/dist/side-panel/common/dataset-tag.d.ts +15 -1
  415. package/dist/side-panel/common/dataset-tag.js +14 -11
  416. package/dist/side-panel/common/dataset-title.d.ts +16 -2
  417. package/dist/side-panel/common/dataset-title.js +71 -105
  418. package/dist/side-panel/common/source-data-catalog.d.ts +22 -3
  419. package/dist/side-panel/common/source-data-catalog.js +2 -2
  420. package/dist/side-panel/common/source-data-selector.js +2 -2
  421. package/dist/side-panel/common/types.d.ts +7 -27
  422. package/dist/side-panel/common/types.js +1 -1
  423. package/dist/side-panel/custom-panel.d.ts +6 -7
  424. package/dist/side-panel/custom-panel.js +2 -2
  425. package/dist/side-panel/filter-manager.d.ts +18 -6
  426. package/dist/side-panel/filter-manager.js +176 -65
  427. package/dist/side-panel/filter-panel/add-filter-button.d.ts +8 -0
  428. package/dist/side-panel/filter-panel/add-filter-button.js +50 -0
  429. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +6 -3
  430. package/dist/side-panel/filter-panel/filter-panel-header.js +4 -4
  431. package/dist/side-panel/filter-panel/filter-panel.js +2 -2
  432. package/dist/side-panel/interaction-manager.d.ts +6 -3
  433. package/dist/side-panel/interaction-manager.js +21 -8
  434. package/dist/side-panel/interaction-panel/brush-config.d.ts +2 -2
  435. package/dist/side-panel/interaction-panel/brush-config.js +2 -2
  436. package/dist/side-panel/interaction-panel/interaction-panel.d.ts +5 -2
  437. package/dist/side-panel/interaction-panel/interaction-panel.js +12 -5
  438. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -9
  439. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +25 -42
  440. package/dist/side-panel/interaction-panel/tooltip-config.d.ts +2 -3
  441. package/dist/side-panel/interaction-panel/tooltip-config.js +9 -7
  442. package/dist/side-panel/layer-manager.d.ts +8 -10
  443. package/dist/side-panel/layer-manager.js +71 -37
  444. package/dist/side-panel/layer-panel/add-layer-button.d.ts +3 -5
  445. package/dist/side-panel/layer-panel/add-layer-button.js +13 -139
  446. package/dist/side-panel/layer-panel/color-palette.js +2 -2
  447. package/dist/side-panel/layer-panel/color-range-selector.d.ts +1 -1
  448. package/dist/side-panel/layer-panel/color-range-selector.js +2 -2
  449. package/dist/side-panel/layer-panel/color-selector.d.ts +15 -24
  450. package/dist/side-panel/layer-panel/color-selector.js +175 -127
  451. package/dist/side-panel/layer-panel/column-selector.js +2 -2
  452. package/dist/side-panel/layer-panel/custom-palette.d.ts +7 -2
  453. package/dist/side-panel/layer-panel/custom-palette.js +6 -5
  454. package/dist/side-panel/layer-panel/custom-picker.d.ts +9 -36
  455. package/dist/side-panel/layer-panel/custom-picker.js +2 -2
  456. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +1 -1
  457. package/dist/side-panel/layer-panel/dataset-layer-group.js +3 -2
  458. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +3 -2
  459. package/dist/side-panel/layer-panel/dataset-layer-section.js +5 -4
  460. package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -3
  461. package/dist/side-panel/layer-panel/dataset-section.js +6 -7
  462. package/dist/side-panel/layer-panel/dimension-scale-selector.js +2 -2
  463. package/dist/side-panel/layer-panel/how-to-button.js +2 -2
  464. package/dist/side-panel/layer-panel/layer-color-selector.d.ts +42 -0
  465. package/dist/side-panel/layer-panel/layer-color-selector.js +134 -0
  466. package/dist/side-panel/layer-panel/layer-column-config.d.ts +15 -9
  467. package/dist/side-panel/layer-panel/layer-column-config.js +35 -13
  468. package/dist/side-panel/layer-panel/layer-config-group.d.ts +11 -2
  469. package/dist/side-panel/layer-panel/layer-config-group.js +19 -11
  470. package/dist/side-panel/layer-panel/layer-configurator.d.ts +10 -35
  471. package/dist/side-panel/layer-panel/layer-configurator.js +61 -110
  472. package/dist/side-panel/layer-panel/layer-error-message.d.ts +6 -0
  473. package/dist/side-panel/layer-panel/layer-error-message.js +58 -0
  474. package/dist/side-panel/layer-panel/layer-list.d.ts +4 -3
  475. package/dist/side-panel/layer-panel/layer-list.js +112 -89
  476. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +22 -10
  477. package/dist/side-panel/layer-panel/layer-panel-header.js +106 -67
  478. package/dist/side-panel/layer-panel/layer-panel.d.ts +3 -1
  479. package/dist/side-panel/layer-panel/layer-panel.js +24 -11
  480. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +2 -2
  481. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +12 -3
  482. package/dist/side-panel/layer-panel/layer-type-list-item.js +12 -4
  483. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +2 -1
  484. package/dist/side-panel/layer-panel/layer-type-selector.js +5 -3
  485. package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -1
  486. package/dist/side-panel/layer-panel/single-color-palette.js +2 -2
  487. package/dist/side-panel/layer-panel/text-label-panel.d.ts +4 -2
  488. package/dist/side-panel/layer-panel/text-label-panel.js +62 -15
  489. package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +1 -3
  490. package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +2 -2
  491. package/dist/side-panel/layer-panel/vis-config-slider.js +2 -2
  492. package/dist/side-panel/layer-panel/vis-config-switch.js +2 -2
  493. package/dist/side-panel/map-manager.d.ts +13 -6
  494. package/dist/side-panel/map-manager.js +56 -45
  495. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +14 -0
  496. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +116 -0
  497. package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +29 -0
  498. package/dist/side-panel/map-style-panel/map-layer-group-item.js +131 -0
  499. package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +16 -12
  500. package/dist/side-panel/map-style-panel/map-layer-selector.js +34 -51
  501. package/dist/side-panel/map-style-panel/map-style-selector.d.ts +11 -4
  502. package/dist/side-panel/map-style-panel/map-style-selector.js +54 -20
  503. package/dist/side-panel/panel-dropdown.d.ts +3 -2
  504. package/dist/side-panel/panel-dropdown.js +2 -2
  505. package/dist/side-panel/panel-header-action.d.ts +4 -2
  506. package/dist/side-panel/panel-header-action.js +11 -4
  507. package/dist/side-panel/panel-header.d.ts +13 -8
  508. package/dist/side-panel/panel-header.js +2 -2
  509. package/dist/side-panel/panel-tab.d.ts +2 -2
  510. package/dist/side-panel/panel-tab.js +2 -2
  511. package/dist/side-panel/panel-title.d.ts +6 -3
  512. package/dist/side-panel/panel-title.js +31 -14
  513. package/dist/side-panel/panel-toggle.d.ts +1 -1
  514. package/dist/side-panel/panel-toggle.js +2 -2
  515. package/dist/side-panel/{layer-panel/panel-view-list-toggle.d.ts → panel-view-list-toggle.d.ts} +19 -8
  516. package/dist/side-panel/panel-view-list-toggle.js +143 -0
  517. package/dist/side-panel/side-bar.d.ts +15 -16
  518. package/dist/side-panel/side-bar.js +8 -6
  519. package/dist/side-panel.d.ts +2 -117
  520. package/dist/side-panel.js +14 -20
  521. package/dist/types.d.ts +16 -9
  522. package/dist/types.js +1 -1
  523. package/package.json +41 -34
  524. package/dist/editor/constants.d.ts +0 -17
  525. package/dist/editor/constants.js +0 -47
  526. package/dist/editor/feature-styles.d.ts +0 -37
  527. package/dist/editor/feature-styles.js +0 -92
  528. package/dist/editor/handle-style.d.ts +0 -42
  529. package/dist/editor/handle-style.js +0 -100
  530. package/dist/side-panel/layer-panel/panel-view-list-toggle.js +0 -143
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
1
+ // Copyright (c) 2023 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -27,11 +27,12 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
27
27
  Object.defineProperty(exports, "__esModule", {
28
28
  value: true
29
29
  });
30
- exports.TimeWidgetTopFactory = TimeWidgetTopFactory;
31
30
  exports["default"] = void 0;
32
31
 
33
32
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
34
33
 
34
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
35
+
35
36
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
36
37
 
37
38
  var _react = _interopRequireWildcard(require("react"));
@@ -40,102 +41,40 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
40
41
 
41
42
  var _styledComponents2 = require("../common/styled-components");
42
43
 
43
- var _icons = require("../common/icons");
44
-
45
44
  var _timeRangeSlider = _interopRequireDefault(require("../common/time-range-slider"));
46
45
 
47
- var _fieldSelector = _interopRequireDefault(require("../common/field-selector"));
48
-
49
46
  var _floatingTimeDisplay = _interopRequireDefault(require("../common/animation-control/floating-time-display"));
50
47
 
51
48
  var _timeRangeFilter = require("./time-range-filter");
52
49
 
53
- var _templateObject, _templateObject2, _templateObject3;
54
-
55
- var TOP_SECTION_HEIGHT = '36px';
56
- var TimeBottomWidgetInner = (0, _styledComponents["default"])(_styledComponents2.BottomWidgetInner)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 6px 32px 24px 32px;\n"])));
50
+ var _timeWidgetTop = _interopRequireDefault(require("./time-widget-top"));
57
51
 
58
- var TopSectionWrapper = _styledComponents["default"].div.attrs({
59
- className: 'time-widget--top'
60
- })(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n width: 100%;\n color: ", ";\n height: ", ";\n\n .bottom-widget__y-axis {\n flex-grow: 1;\n margin-left: 20px;\n }\n\n .bottom-widget__field-select {\n width: 160px;\n display: inline-block;\n\n .item-selector__dropdown {\n background: transparent;\n padding: 4px 10px 4px 4px;\n border-color: transparent;\n\n :active,\n :focus,\n &.focus,\n &.active {\n background: transparent;\n border-color: transparent;\n }\n }\n\n .item-selector__dropdown:hover {\n background: transparent;\n border-color: transparent;\n\n .item-selector__dropdown__value {\n color: ", ";\n }\n }\n }\n\n .animation-control__speed-control {\n margin-right: -12px;\n\n .animation-control__speed-slider {\n right: calc(0% - 48px);\n }\n }\n"])), function (props) {
61
- return props.theme.labelColor;
62
- }, TOP_SECTION_HEIGHT, function (props) {
63
- return props.hoverColor ? props.theme[props.hoverColor] : props.theme.textColorHl;
64
- });
52
+ var _templateObject;
65
53
 
66
- var StyledTitle = (0, _styledComponents["default"])(_styledComponents2.CenterFlexbox)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n flex-grow: 0;\n color: ", ";\n margin-right: 10px;\n\n .bottom-widget__icon {\n margin-right: 6px;\n }\n .bottom-widget__icon.speed {\n margin-right: 0;\n }\n"])), function (props) {
67
- return props.theme.textColor;
68
- });
69
- TimeWidgetTopFactory.deps = [_fieldSelector["default"]];
54
+ var TimeBottomWidgetInner = (0, _styledComponents["default"])(_styledComponents2.BottomWidgetInner)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 6px 32px 24px 32px;\n"])));
55
+ TimeWidgetFactory.deps = [_timeRangeSlider["default"], _floatingTimeDisplay["default"], _timeWidgetTop["default"]];
70
56
 
71
- function TimeWidgetTopFactory(FieldSelector) {
72
- var TimeWidgetTop = function TimeWidgetTop(_ref) {
73
- var filter = _ref.filter,
57
+ function TimeWidgetFactory(TimeRangeSlider, FloatingTimeDisplay, TimeWidgetTop) {
58
+ var TimeWidget = function TimeWidget(_ref) {
59
+ var datasets = _ref.datasets,
60
+ filter = _ref.filter,
61
+ index = _ref.index,
74
62
  readOnly = _ref.readOnly,
75
- datasets = _ref.datasets,
63
+ showTimeDisplay = _ref.showTimeDisplay,
64
+ setFilterAnimationTime = _ref.setFilterAnimationTime,
65
+ onClose = _ref.onClose,
66
+ resetAnimation = _ref.resetAnimation,
67
+ isAnimatable = _ref.isAnimatable,
68
+ updateAnimationSpeed = _ref.updateAnimationSpeed,
69
+ toggleAnimation = _ref.toggleAnimation,
76
70
  setFilterPlot = _ref.setFilterPlot,
77
- index = _ref.index,
78
- onClose = _ref.onClose;
79
- var yAxisFields = (0, _react.useMemo)(function () {
80
- return ((datasets[filter.dataId[0]] || {}).fields || []).filter(function (f) {
81
- return f.type === 'integer' || f.type === 'real';
82
- });
83
- }, [datasets, filter.dataId]);
84
-
85
- var _setFilterPlotYAxis = (0, _react.useCallback)(function (value) {
86
- return setFilterPlot(index, {
87
- yAxis: value
88
- });
89
- }, [setFilterPlot, index]);
90
-
91
- return /*#__PURE__*/_react["default"].createElement(TopSectionWrapper, null, /*#__PURE__*/_react["default"].createElement(StyledTitle, {
92
- className: "bottom-widget__field"
93
- }, /*#__PURE__*/_react["default"].createElement(_styledComponents2.CenterFlexbox, {
94
- className: "bottom-widget__icon"
95
- }, /*#__PURE__*/_react["default"].createElement(_icons.Clock, {
96
- height: "15px"
97
- })), /*#__PURE__*/_react["default"].createElement(_styledComponents2.SelectTextBold, null, filter.name)), /*#__PURE__*/_react["default"].createElement(StyledTitle, {
98
- className: "bottom-widget__y-axis"
99
- }, /*#__PURE__*/_react["default"].createElement(_styledComponents2.CenterFlexbox, {
100
- className: "bottom-widget__icon"
101
- }, /*#__PURE__*/_react["default"].createElement(_icons.LineChart, {
102
- height: "15px"
103
- })), /*#__PURE__*/_react["default"].createElement("div", {
104
- className: "bottom-widget__field-select"
105
- }, /*#__PURE__*/_react["default"].createElement(FieldSelector, {
106
- fields: yAxisFields,
107
- placement: "top",
108
- value: filter.yAxis ? filter.yAxis.name : null,
109
- onSelect: _setFilterPlotYAxis,
110
- placeholder: "placeholder.yAxis",
111
- erasable: true,
112
- showToken: false
113
- }))), !readOnly ? /*#__PURE__*/_react["default"].createElement(_styledComponents2.CenterFlexbox, null, /*#__PURE__*/_react["default"].createElement(_styledComponents2.IconRoundSmall, null, /*#__PURE__*/_react["default"].createElement(_icons.Close, {
114
- height: "12px",
115
- onClick: onClose
116
- }))) : null);
117
- };
71
+ setFilterAnimationWindow = _ref.setFilterAnimationWindow,
72
+ timeline = _ref.timeline;
118
73
 
119
- return TimeWidgetTop;
120
- }
121
-
122
- TimeWidgetFactory.deps = [_timeRangeSlider["default"], _floatingTimeDisplay["default"], TimeWidgetTopFactory];
123
-
124
- function TimeWidgetFactory(TimeRangeSlider, FloatingTimeDisplay, TimeWidgetTop) {
125
- var TimeWidget = function TimeWidget(_ref2) {
126
- var datasets = _ref2.datasets,
127
- filter = _ref2.filter,
128
- index = _ref2.index,
129
- readOnly = _ref2.readOnly,
130
- showTimeDisplay = _ref2.showTimeDisplay,
131
- setFilterAnimationTime = _ref2.setFilterAnimationTime,
132
- resetAnimation = _ref2.resetAnimation,
133
- isAnimatable = _ref2.isAnimatable,
134
- updateAnimationSpeed = _ref2.updateAnimationSpeed,
135
- toggleAnimation = _ref2.toggleAnimation,
136
- enlargeFilter = _ref2.enlargeFilter,
137
- setFilterPlot = _ref2.setFilterPlot,
138
- setFilterAnimationWindow = _ref2.setFilterAnimationWindow;
74
+ var _useState = (0, _react.useState)(false),
75
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
76
+ isMinified = _useState2[0],
77
+ setMinified = _useState2[1];
139
78
 
140
79
  var _updateAnimationSpeed = (0, _react.useCallback)(function (speed) {
141
80
  return updateAnimationSpeed(index, speed);
@@ -145,9 +84,9 @@ function TimeWidgetFactory(TimeRangeSlider, FloatingTimeDisplay, TimeWidgetTop)
145
84
  return toggleAnimation(index);
146
85
  }, [toggleAnimation, index]);
147
86
 
148
- var _onClose = (0, _react.useCallback)(function () {
149
- return enlargeFilter(index);
150
- }, [enlargeFilter, index]);
87
+ var _onToggleMinify = (0, _react.useCallback)(function () {
88
+ return setMinified(!isMinified);
89
+ }, [setMinified, isMinified]);
151
90
 
152
91
  var _setFilterAnimationWindow = (0, _react.useCallback)(function (animationWindow) {
153
92
  return setFilterAnimationWindow({
@@ -167,7 +106,9 @@ function TimeWidgetFactory(TimeRangeSlider, FloatingTimeDisplay, TimeWidgetTop)
167
106
  datasets: datasets,
168
107
  setFilterPlot: setFilterPlot,
169
108
  index: index,
170
- onClose: _onClose
109
+ onClose: onClose,
110
+ onToggleMinify: _onToggleMinify,
111
+ isMinified: isMinified
171
112
  }), /*#__PURE__*/_react["default"].createElement(TimeRangeSlider, (0, _extends2["default"])({}, (0, _timeRangeFilter.timeRangeSliderFieldsSelector)(filter), {
172
113
  onChange: timeSliderOnChange,
173
114
  toggleAnimation: _toggleAnimation,
@@ -175,7 +116,9 @@ function TimeWidgetFactory(TimeRangeSlider, FloatingTimeDisplay, TimeWidgetTop)
175
116
  setFilterAnimationWindow: _setFilterAnimationWindow,
176
117
  hideTimeTitle: showTimeDisplay,
177
118
  resetAnimation: resetAnimation,
178
- isAnimatable: isAnimatable
119
+ isAnimatable: isAnimatable,
120
+ isMinified: isMinified,
121
+ timeline: timeline
179
122
  })), showTimeDisplay ? /*#__PURE__*/_react["default"].createElement(FloatingTimeDisplay, {
180
123
  currentTime: filter.value,
181
124
  defaultTimeFormat: filter.defaultTimeFormat,
@@ -189,4 +132,4 @@ function TimeWidgetFactory(TimeRangeSlider, FloatingTimeDisplay, TimeWidgetTop)
189
132
 
190
133
  var _default = TimeWidgetFactory;
191
134
  exports["default"] = _default;
192
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWx0ZXJzL3RpbWUtd2lkZ2V0LnRzeCJdLCJuYW1lcyI6WyJUT1BfU0VDVElPTl9IRUlHSFQiLCJUaW1lQm90dG9tV2lkZ2V0SW5uZXIiLCJCb3R0b21XaWRnZXRJbm5lciIsIlRvcFNlY3Rpb25XcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJwcm9wcyIsInRoZW1lIiwibGFiZWxDb2xvciIsImhvdmVyQ29sb3IiLCJ0ZXh0Q29sb3JIbCIsIlN0eWxlZFRpdGxlIiwiQ2VudGVyRmxleGJveCIsInRleHRDb2xvciIsIlRpbWVXaWRnZXRUb3BGYWN0b3J5IiwiZGVwcyIsIkZpZWxkU2VsZWN0b3JGYWN0b3J5IiwiRmllbGRTZWxlY3RvciIsIlRpbWVXaWRnZXRUb3AiLCJmaWx0ZXIiLCJyZWFkT25seSIsImRhdGFzZXRzIiwic2V0RmlsdGVyUGxvdCIsImluZGV4Iiwib25DbG9zZSIsInlBeGlzRmllbGRzIiwiZGF0YUlkIiwiZmllbGRzIiwiZiIsInR5cGUiLCJfc2V0RmlsdGVyUGxvdFlBeGlzIiwidmFsdWUiLCJ5QXhpcyIsIm5hbWUiLCJUaW1lV2lkZ2V0RmFjdG9yeSIsIlRpbWVSYW5nZVNsaWRlckZhY3RvcnkiLCJGbG9hdGluZ1RpbWVEaXNwbGF5RmFjdG9yeSIsIlRpbWVSYW5nZVNsaWRlciIsIkZsb2F0aW5nVGltZURpc3BsYXkiLCJUaW1lV2lkZ2V0Iiwic2hvd1RpbWVEaXNwbGF5Iiwic2V0RmlsdGVyQW5pbWF0aW9uVGltZSIsInJlc2V0QW5pbWF0aW9uIiwiaXNBbmltYXRhYmxlIiwidXBkYXRlQW5pbWF0aW9uU3BlZWQiLCJ0b2dnbGVBbmltYXRpb24iLCJlbmxhcmdlRmlsdGVyIiwic2V0RmlsdGVyQW5pbWF0aW9uV2luZG93IiwiX3VwZGF0ZUFuaW1hdGlvblNwZWVkIiwic3BlZWQiLCJfdG9nZ2xlQW5pbWF0aW9uIiwiX29uQ2xvc2UiLCJfc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93IiwiYW5pbWF0aW9uV2luZG93IiwiaWQiLCJ0aW1lU2xpZGVyT25DaGFuZ2UiLCJkZWZhdWx0VGltZUZvcm1hdCIsInRpbWVGb3JtYXQiLCJ0aW1lem9uZSIsIlJlYWN0IiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFNQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7OztBQUdBLElBQU1BLGtCQUFrQixHQUFHLE1BQTNCO0FBRUEsSUFBTUMscUJBQXFCLEdBQUcsa0NBQU9DLG9DQUFQLENBQUgsd0hBQTNCOztBQUdBLElBQU1DLGlCQUFpQixHQUFHQyw2QkFBT0MsR0FBUCxDQUFXQyxLQUFYLENBQWlCO0FBQ3pDQyxFQUFBQSxTQUFTLEVBQUU7QUFEOEIsQ0FBakIsQ0FBSCx5OUJBTVosVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsS0FBTixDQUFZQyxVQUFoQjtBQUFBLENBTk8sRUFPWFYsa0JBUFcsRUFxQ04sVUFBQVEsS0FBSztBQUFBLFNBQ1pBLEtBQUssQ0FBQ0csVUFBTixHQUFtQkgsS0FBSyxDQUFDQyxLQUFOLENBQVlELEtBQUssQ0FBQ0csVUFBbEIsQ0FBbkIsR0FBbURILEtBQUssQ0FBQ0MsS0FBTixDQUFZRyxXQURuRDtBQUFBLENBckNDLENBQXZCOztBQW9EQSxJQUFNQyxXQUFXLEdBQUcsa0NBQU9DLGdDQUFQLENBQUgsdVFBRU4sVUFBQU4sS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsS0FBTixDQUFZTSxTQUFoQjtBQUFBLENBRkMsQ0FBakI7QUFhQUMsb0JBQW9CLENBQUNDLElBQXJCLEdBQTRCLENBQUNDLHlCQUFELENBQTVCOztBQUNPLFNBQVNGLG9CQUFULENBQThCRyxhQUE5QixFQUFzRjtBQUMzRixNQUFNQyxhQUEyQyxHQUFHLFNBQTlDQSxhQUE4QyxPQU85QztBQUFBLFFBTkpDLE1BTUksUUFOSkEsTUFNSTtBQUFBLFFBTEpDLFFBS0ksUUFMSkEsUUFLSTtBQUFBLFFBSkpDLFFBSUksUUFKSkEsUUFJSTtBQUFBLFFBSEpDLGFBR0ksUUFISkEsYUFHSTtBQUFBLFFBRkpDLEtBRUksUUFGSkEsS0FFSTtBQUFBLFFBREpDLE9BQ0ksUUFESkEsT0FDSTtBQUNKLFFBQU1DLFdBQVcsR0FBRyxvQkFDbEI7QUFBQSxhQUNFLENBQUMsQ0FBQ0osUUFBUSxDQUFDRixNQUFNLENBQUNPLE1BQVAsQ0FBYyxDQUFkLENBQUQsQ0FBUixJQUE4QixFQUEvQixFQUFtQ0MsTUFBbkMsSUFBNkMsRUFBOUMsRUFBa0RSLE1BQWxELENBQ0UsVUFBQ1MsQ0FBRDtBQUFBLGVBQWNBLENBQUMsQ0FBQ0MsSUFBRixLQUFXLFNBQVgsSUFBd0JELENBQUMsQ0FBQ0MsSUFBRixLQUFXLE1BQWpEO0FBQUEsT0FERixDQURGO0FBQUEsS0FEa0IsRUFLbEIsQ0FBQ1IsUUFBRCxFQUFXRixNQUFNLENBQUNPLE1BQWxCLENBTGtCLENBQXBCOztBQU9BLFFBQU1JLG1CQUFtQixHQUFHLHdCQUFZLFVBQUFDLEtBQUs7QUFBQSxhQUFJVCxhQUFhLENBQUNDLEtBQUQsRUFBUTtBQUFDUyxRQUFBQSxLQUFLLEVBQUVEO0FBQVIsT0FBUixDQUFqQjtBQUFBLEtBQWpCLEVBQTJELENBQ3JGVCxhQURxRixFQUVyRkMsS0FGcUYsQ0FBM0QsQ0FBNUI7O0FBSUEsd0JBQ0UsZ0NBQUMsaUJBQUQscUJBQ0UsZ0NBQUMsV0FBRDtBQUFhLE1BQUEsU0FBUyxFQUFDO0FBQXZCLG9CQUNFLGdDQUFDLGdDQUFEO0FBQWUsTUFBQSxTQUFTLEVBQUM7QUFBekIsb0JBQ0UsZ0NBQUMsWUFBRDtBQUFPLE1BQUEsTUFBTSxFQUFDO0FBQWQsTUFERixDQURGLGVBSUUsZ0NBQUMsaUNBQUQsUUFBaUJKLE1BQU0sQ0FBQ2MsSUFBeEIsQ0FKRixDQURGLGVBT0UsZ0NBQUMsV0FBRDtBQUFhLE1BQUEsU0FBUyxFQUFDO0FBQXZCLG9CQUNFLGdDQUFDLGdDQUFEO0FBQWUsTUFBQSxTQUFTLEVBQUM7QUFBekIsb0JBQ0UsZ0NBQUMsZ0JBQUQ7QUFBVyxNQUFBLE1BQU0sRUFBQztBQUFsQixNQURGLENBREYsZUFJRTtBQUFLLE1BQUEsU0FBUyxFQUFDO0FBQWYsb0JBQ0UsZ0NBQUMsYUFBRDtBQUNFLE1BQUEsTUFBTSxFQUFFUixXQURWO0FBRUUsTUFBQSxTQUFTLEVBQUMsS0FGWjtBQUdFLE1BQUEsS0FBSyxFQUFFTixNQUFNLENBQUNhLEtBQVAsR0FBZWIsTUFBTSxDQUFDYSxLQUFQLENBQWFDLElBQTVCLEdBQW1DLElBSDVDO0FBSUUsTUFBQSxRQUFRLEVBQUVILG1CQUpaO0FBS0UsTUFBQSxXQUFXLEVBQUMsbUJBTGQ7QUFNRSxNQUFBLFFBQVEsTUFOVjtBQU9FLE1BQUEsU0FBUyxFQUFFO0FBUGIsTUFERixDQUpGLENBUEYsRUF1QkcsQ0FBQ1YsUUFBRCxnQkFDQyxnQ0FBQyxnQ0FBRCxxQkFDRSxnQ0FBQyxpQ0FBRCxxQkFDRSxnQ0FBQyxZQUFEO0FBQU8sTUFBQSxNQUFNLEVBQUMsTUFBZDtBQUFxQixNQUFBLE9BQU8sRUFBRUk7QUFBOUIsTUFERixDQURGLENBREQsR0FNRyxJQTdCTixDQURGO0FBaUNELEdBcEREOztBQXFEQSxTQUFPTixhQUFQO0FBQ0Q7O0FBRURnQixpQkFBaUIsQ0FBQ25CLElBQWxCLEdBQXlCLENBQUNvQiwyQkFBRCxFQUF5QkMsK0JBQXpCLEVBQXFEdEIsb0JBQXJELENBQXpCOztBQUNBLFNBQVNvQixpQkFBVCxDQUNFRyxlQURGLEVBRUVDLG1CQUZGLEVBR0VwQixhQUhGLEVBSUU7QUFDQSxNQUFNcUIsVUFBcUMsR0FBRyxTQUF4Q0EsVUFBd0MsUUFjdkI7QUFBQSxRQWJyQmxCLFFBYXFCLFNBYnJCQSxRQWFxQjtBQUFBLFFBWnJCRixNQVlxQixTQVpyQkEsTUFZcUI7QUFBQSxRQVhyQkksS0FXcUIsU0FYckJBLEtBV3FCO0FBQUEsUUFWckJILFFBVXFCLFNBVnJCQSxRQVVxQjtBQUFBLFFBVHJCb0IsZUFTcUIsU0FUckJBLGVBU3FCO0FBQUEsUUFSckJDLHNCQVFxQixTQVJyQkEsc0JBUXFCO0FBQUEsUUFQckJDLGNBT3FCLFNBUHJCQSxjQU9xQjtBQUFBLFFBTnJCQyxZQU1xQixTQU5yQkEsWUFNcUI7QUFBQSxRQUxyQkMsb0JBS3FCLFNBTHJCQSxvQkFLcUI7QUFBQSxRQUpyQkMsZUFJcUIsU0FKckJBLGVBSXFCO0FBQUEsUUFIckJDLGFBR3FCLFNBSHJCQSxhQUdxQjtBQUFBLFFBRnJCeEIsYUFFcUIsU0FGckJBLGFBRXFCO0FBQUEsUUFEckJ5Qix3QkFDcUIsU0FEckJBLHdCQUNxQjs7QUFDckIsUUFBTUMscUJBQXFCLEdBQUcsd0JBQVksVUFBQUMsS0FBSztBQUFBLGFBQUlMLG9CQUFvQixDQUFDckIsS0FBRCxFQUFRMEIsS0FBUixDQUF4QjtBQUFBLEtBQWpCLEVBQXlELENBQ3JGTCxvQkFEcUYsRUFFckZyQixLQUZxRixDQUF6RCxDQUE5Qjs7QUFLQSxRQUFNMkIsZ0JBQWdCLEdBQUcsd0JBQVk7QUFBQSxhQUFNTCxlQUFlLENBQUN0QixLQUFELENBQXJCO0FBQUEsS0FBWixFQUEwQyxDQUFDc0IsZUFBRCxFQUFrQnRCLEtBQWxCLENBQTFDLENBQXpCOztBQUVBLFFBQU00QixRQUFRLEdBQUcsd0JBQVk7QUFBQSxhQUFNTCxhQUFhLENBQUN2QixLQUFELENBQW5CO0FBQUEsS0FBWixFQUF3QyxDQUFDdUIsYUFBRCxFQUFnQnZCLEtBQWhCLENBQXhDLENBQWpCOztBQUVBLFFBQU02Qix5QkFBeUIsR0FBRyx3QkFDaEMsVUFBQUMsZUFBZTtBQUFBLGFBQUlOLHdCQUF3QixDQUFDO0FBQUNPLFFBQUFBLEVBQUUsRUFBRW5DLE1BQU0sQ0FBQ21DLEVBQVo7QUFBZ0JELFFBQUFBLGVBQWUsRUFBZkE7QUFBaEIsT0FBRCxDQUE1QjtBQUFBLEtBRGlCLEVBRWhDLENBQUNOLHdCQUFELEVBQTJCNUIsTUFBTSxDQUFDbUMsRUFBbEMsQ0FGZ0MsQ0FBbEM7O0FBS0EsUUFBTUMsa0JBQWtCLEdBQUcsd0JBQVksVUFBQXhCLEtBQUs7QUFBQSxhQUFJVSxzQkFBc0IsQ0FBQ2xCLEtBQUQsRUFBUSxPQUFSLEVBQWlCUSxLQUFqQixDQUExQjtBQUFBLEtBQWpCLEVBQW9FLENBQzdGVSxzQkFENkYsRUFFN0ZsQixLQUY2RixDQUFwRSxDQUEzQjtBQUtBLHdCQUNFLGdDQUFDLHFCQUFEO0FBQXVCLE1BQUEsU0FBUyxFQUFDO0FBQWpDLG9CQUNFLGdDQUFDLGFBQUQ7QUFDRSxNQUFBLE1BQU0sRUFBRUosTUFEVjtBQUVFLE1BQUEsUUFBUSxFQUFFQyxRQUZaO0FBR0UsTUFBQSxRQUFRLEVBQUVDLFFBSFo7QUFJRSxNQUFBLGFBQWEsRUFBRUMsYUFKakI7QUFLRSxNQUFBLEtBQUssRUFBRUMsS0FMVDtBQU1FLE1BQUEsT0FBTyxFQUFFNEI7QUFOWCxNQURGLGVBU0UsZ0NBQUMsZUFBRCxnQ0FDTSxvREFBOEJoQyxNQUE5QixDQUROO0FBRUUsTUFBQSxRQUFRLEVBQUVvQyxrQkFGWjtBQUdFLE1BQUEsZUFBZSxFQUFFTCxnQkFIbkI7QUFJRSxNQUFBLG9CQUFvQixFQUFFRixxQkFKeEI7QUFLRSxNQUFBLHdCQUF3QixFQUFFSSx5QkFMNUI7QUFNRSxNQUFBLGFBQWEsRUFBRVosZUFOakI7QUFPRSxNQUFBLGNBQWMsRUFBRUUsY0FQbEI7QUFRRSxNQUFBLFlBQVksRUFBRUM7QUFSaEIsT0FURixFQW1CR0gsZUFBZSxnQkFDZCxnQ0FBQyxtQkFBRDtBQUNFLE1BQUEsV0FBVyxFQUFFckIsTUFBTSxDQUFDWSxLQUR0QjtBQUVFLE1BQUEsaUJBQWlCLEVBQUVaLE1BQU0sQ0FBQ3FDLGlCQUY1QjtBQUdFLE1BQUEsVUFBVSxFQUFFckMsTUFBTSxDQUFDc0MsVUFIckI7QUFJRSxNQUFBLFFBQVEsRUFBRXRDLE1BQU0sQ0FBQ3VDO0FBSm5CLE1BRGMsR0FPWixJQTFCTixDQURGO0FBOEJELEdBaEVEOztBQWtFQSxzQkFBT0Msa0JBQU1DLElBQU4sQ0FBV3JCLFVBQVgsQ0FBUDtBQUNEOztlQUVjTCxpQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIENlbnRlckZsZXhib3gsXG4gIFNlbGVjdFRleHRCb2xkLFxuICBJY29uUm91bmRTbWFsbCxcbiAgQm90dG9tV2lkZ2V0SW5uZXJcbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Q2xvc2UsIENsb2NrLCBMaW5lQ2hhcnR9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgVGltZVJhbmdlU2xpZGVyRmFjdG9yeSBmcm9tICcuLi9jb21tb24vdGltZS1yYW5nZS1zbGlkZXInO1xuaW1wb3J0IEZpZWxkU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4uL2NvbW1vbi9maWVsZC1zZWxlY3Rvcic7XG5pbXBvcnQgRmxvYXRpbmdUaW1lRGlzcGxheUZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL2Zsb2F0aW5nLXRpbWUtZGlzcGxheSc7XG5pbXBvcnQge0ZpZWxkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7dGltZVJhbmdlU2xpZGVyRmllbGRzU2VsZWN0b3J9IGZyb20gJy4vdGltZS1yYW5nZS1maWx0ZXInO1xuaW1wb3J0IHtUaW1lV2lkZ2V0UHJvcHMsIFRpbWVXaWRnZXRUb3BQcm9wcywgVG9wU2VjdGlvbldyYXBwZXJQcm9wc30gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IFRPUF9TRUNUSU9OX0hFSUdIVCA9ICczNnB4JztcblxuY29uc3QgVGltZUJvdHRvbVdpZGdldElubmVyID0gc3R5bGVkKEJvdHRvbVdpZGdldElubmVyKWBcbiAgcGFkZGluZzogNnB4IDMycHggMjRweCAzMnB4O1xuYDtcbmNvbnN0IFRvcFNlY3Rpb25XcmFwcGVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3RpbWUtd2lkZ2V0LS10b3AnXG59KTxUb3BTZWN0aW9uV3JhcHBlclByb3BzPmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG4gIGhlaWdodDogJHtUT1BfU0VDVElPTl9IRUlHSFR9O1xuXG4gIC5ib3R0b20td2lkZ2V0X195LWF4aXMge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgfVxuXG4gIC5ib3R0b20td2lkZ2V0X19maWVsZC1zZWxlY3Qge1xuICAgIHdpZHRoOiAxNjBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAuaXRlbS1zZWxlY3Rvcl9fZHJvcGRvd24ge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBwYWRkaW5nOiA0cHggMTBweCA0cHggNHB4O1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgOmFjdGl2ZSxcbiAgICAgIDpmb2N1cyxcbiAgICAgICYuZm9jdXMsXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pdGVtLXNlbGVjdG9yX19kcm9wZG93bjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgIC5pdGVtLXNlbGVjdG9yX19kcm9wZG93bl9fdmFsdWUge1xuICAgICAgICBjb2xvcjogJHtwcm9wcyA9PlxuICAgICAgICAgIHByb3BzLmhvdmVyQ29sb3IgPyBwcm9wcy50aGVtZVtwcm9wcy5ob3ZlckNvbG9yXSA6IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYW5pbWF0aW9uLWNvbnRyb2xfX3NwZWVkLWNvbnRyb2wge1xuICAgIG1hcmdpbi1yaWdodDogLTEycHg7XG5cbiAgICAuYW5pbWF0aW9uLWNvbnRyb2xfX3NwZWVkLXNsaWRlciB7XG4gICAgICByaWdodDogY2FsYygwJSAtIDQ4cHgpO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkVGl0bGUgPSBzdHlsZWQoQ2VudGVyRmxleGJveClgXG4gIGZsZXgtZ3JvdzogMDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuXG4gIC5ib3R0b20td2lkZ2V0X19pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuICAuYm90dG9tLXdpZGdldF9faWNvbi5zcGVlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG5gO1xuXG5UaW1lV2lkZ2V0VG9wRmFjdG9yeS5kZXBzID0gW0ZpZWxkU2VsZWN0b3JGYWN0b3J5XTtcbmV4cG9ydCBmdW5jdGlvbiBUaW1lV2lkZ2V0VG9wRmFjdG9yeShGaWVsZFNlbGVjdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBGaWVsZFNlbGVjdG9yRmFjdG9yeT4pIHtcbiAgY29uc3QgVGltZVdpZGdldFRvcDogUmVhY3QuRkM8VGltZVdpZGdldFRvcFByb3BzPiA9ICh7XG4gICAgZmlsdGVyLFxuICAgIHJlYWRPbmx5LFxuICAgIGRhdGFzZXRzLFxuICAgIHNldEZpbHRlclBsb3QsXG4gICAgaW5kZXgsXG4gICAgb25DbG9zZVxuICB9KSA9PiB7XG4gICAgY29uc3QgeUF4aXNGaWVsZHMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgKChkYXRhc2V0c1tmaWx0ZXIuZGF0YUlkWzBdXSB8fCB7fSkuZmllbGRzIHx8IFtdKS5maWx0ZXIoXG4gICAgICAgICAgKGY6IEZpZWxkKSA9PiBmLnR5cGUgPT09ICdpbnRlZ2VyJyB8fCBmLnR5cGUgPT09ICdyZWFsJ1xuICAgICAgICApLFxuICAgICAgW2RhdGFzZXRzLCBmaWx0ZXIuZGF0YUlkXVxuICAgICk7XG4gICAgY29uc3QgX3NldEZpbHRlclBsb3RZQXhpcyA9IHVzZUNhbGxiYWNrKHZhbHVlID0+IHNldEZpbHRlclBsb3QoaW5kZXgsIHt5QXhpczogdmFsdWV9KSwgW1xuICAgICAgc2V0RmlsdGVyUGxvdCxcbiAgICAgIGluZGV4XG4gICAgXSk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUb3BTZWN0aW9uV3JhcHBlcj5cbiAgICAgICAgPFN0eWxlZFRpdGxlIGNsYXNzTmFtZT1cImJvdHRvbS13aWRnZXRfX2ZpZWxkXCI+XG4gICAgICAgICAgPENlbnRlckZsZXhib3ggY2xhc3NOYW1lPVwiYm90dG9tLXdpZGdldF9faWNvblwiPlxuICAgICAgICAgICAgPENsb2NrIGhlaWdodD1cIjE1cHhcIiAvPlxuICAgICAgICAgIDwvQ2VudGVyRmxleGJveD5cbiAgICAgICAgICA8U2VsZWN0VGV4dEJvbGQ+e2ZpbHRlci5uYW1lfTwvU2VsZWN0VGV4dEJvbGQ+XG4gICAgICAgIDwvU3R5bGVkVGl0bGU+XG4gICAgICAgIDxTdHlsZWRUaXRsZSBjbGFzc05hbWU9XCJib3R0b20td2lkZ2V0X195LWF4aXNcIj5cbiAgICAgICAgICA8Q2VudGVyRmxleGJveCBjbGFzc05hbWU9XCJib3R0b20td2lkZ2V0X19pY29uXCI+XG4gICAgICAgICAgICA8TGluZUNoYXJ0IGhlaWdodD1cIjE1cHhcIiAvPlxuICAgICAgICAgIDwvQ2VudGVyRmxleGJveD5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJvdHRvbS13aWRnZXRfX2ZpZWxkLXNlbGVjdFwiPlxuICAgICAgICAgICAgPEZpZWxkU2VsZWN0b3JcbiAgICAgICAgICAgICAgZmllbGRzPXt5QXhpc0ZpZWxkc31cbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgICAgICAgdmFsdWU9e2ZpbHRlci55QXhpcyA/IGZpbHRlci55QXhpcy5uYW1lIDogbnVsbH1cbiAgICAgICAgICAgICAgb25TZWxlY3Q9e19zZXRGaWx0ZXJQbG90WUF4aXN9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwicGxhY2Vob2xkZXIueUF4aXNcIlxuICAgICAgICAgICAgICBlcmFzYWJsZVxuICAgICAgICAgICAgICBzaG93VG9rZW49e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9TdHlsZWRUaXRsZT5cbiAgICAgICAgeyFyZWFkT25seSA/IChcbiAgICAgICAgICA8Q2VudGVyRmxleGJveD5cbiAgICAgICAgICAgIDxJY29uUm91bmRTbWFsbD5cbiAgICAgICAgICAgICAgPENsb3NlIGhlaWdodD1cIjEycHhcIiBvbkNsaWNrPXtvbkNsb3NlfSAvPlxuICAgICAgICAgICAgPC9JY29uUm91bmRTbWFsbD5cbiAgICAgICAgICA8L0NlbnRlckZsZXhib3g+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9Ub3BTZWN0aW9uV3JhcHBlcj5cbiAgICApO1xuICB9O1xuICByZXR1cm4gVGltZVdpZGdldFRvcDtcbn1cblxuVGltZVdpZGdldEZhY3RvcnkuZGVwcyA9IFtUaW1lUmFuZ2VTbGlkZXJGYWN0b3J5LCBGbG9hdGluZ1RpbWVEaXNwbGF5RmFjdG9yeSwgVGltZVdpZGdldFRvcEZhY3RvcnldO1xuZnVuY3Rpb24gVGltZVdpZGdldEZhY3RvcnkoXG4gIFRpbWVSYW5nZVNsaWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgVGltZVJhbmdlU2xpZGVyRmFjdG9yeT4sXG4gIEZsb2F0aW5nVGltZURpc3BsYXk6IFJldHVyblR5cGU8dHlwZW9mIEZsb2F0aW5nVGltZURpc3BsYXlGYWN0b3J5PixcbiAgVGltZVdpZGdldFRvcDogUmV0dXJuVHlwZTx0eXBlb2YgVGltZVdpZGdldFRvcEZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgVGltZVdpZGdldDogUmVhY3QuRkM8VGltZVdpZGdldFByb3BzPiA9ICh7XG4gICAgZGF0YXNldHMsXG4gICAgZmlsdGVyLFxuICAgIGluZGV4LFxuICAgIHJlYWRPbmx5LFxuICAgIHNob3dUaW1lRGlzcGxheSxcbiAgICBzZXRGaWx0ZXJBbmltYXRpb25UaW1lLFxuICAgIHJlc2V0QW5pbWF0aW9uLFxuICAgIGlzQW5pbWF0YWJsZSxcbiAgICB1cGRhdGVBbmltYXRpb25TcGVlZCxcbiAgICB0b2dnbGVBbmltYXRpb24sXG4gICAgZW5sYXJnZUZpbHRlcixcbiAgICBzZXRGaWx0ZXJQbG90LFxuICAgIHNldEZpbHRlckFuaW1hdGlvbldpbmRvd1xuICB9OiBUaW1lV2lkZ2V0UHJvcHMpID0+IHtcbiAgICBjb25zdCBfdXBkYXRlQW5pbWF0aW9uU3BlZWQgPSB1c2VDYWxsYmFjayhzcGVlZCA9PiB1cGRhdGVBbmltYXRpb25TcGVlZChpbmRleCwgc3BlZWQpLCBbXG4gICAgICB1cGRhdGVBbmltYXRpb25TcGVlZCxcbiAgICAgIGluZGV4XG4gICAgXSk7XG5cbiAgICBjb25zdCBfdG9nZ2xlQW5pbWF0aW9uID0gdXNlQ2FsbGJhY2soKCkgPT4gdG9nZ2xlQW5pbWF0aW9uKGluZGV4KSwgW3RvZ2dsZUFuaW1hdGlvbiwgaW5kZXhdKTtcblxuICAgIGNvbnN0IF9vbkNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4gZW5sYXJnZUZpbHRlcihpbmRleCksIFtlbmxhcmdlRmlsdGVyLCBpbmRleF0pO1xuXG4gICAgY29uc3QgX3NldEZpbHRlckFuaW1hdGlvbldpbmRvdyA9IHVzZUNhbGxiYWNrKFxuICAgICAgYW5pbWF0aW9uV2luZG93ID0+IHNldEZpbHRlckFuaW1hdGlvbldpbmRvdyh7aWQ6IGZpbHRlci5pZCwgYW5pbWF0aW9uV2luZG93fSksXG4gICAgICBbc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93LCBmaWx0ZXIuaWRdXG4gICAgKTtcblxuICAgIGNvbnN0IHRpbWVTbGlkZXJPbkNoYW5nZSA9IHVzZUNhbGxiYWNrKHZhbHVlID0+IHNldEZpbHRlckFuaW1hdGlvblRpbWUoaW5kZXgsICd2YWx1ZScsIHZhbHVlKSwgW1xuICAgICAgc2V0RmlsdGVyQW5pbWF0aW9uVGltZSxcbiAgICAgIGluZGV4XG4gICAgXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFRpbWVCb3R0b21XaWRnZXRJbm5lciBjbGFzc05hbWU9XCJib3R0b20td2lkZ2V0LS1pbm5lclwiPlxuICAgICAgICA8VGltZVdpZGdldFRvcFxuICAgICAgICAgIGZpbHRlcj17ZmlsdGVyfVxuICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgc2V0RmlsdGVyUGxvdD17c2V0RmlsdGVyUGxvdH1cbiAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgb25DbG9zZT17X29uQ2xvc2V9XG4gICAgICAgIC8+XG4gICAgICAgIDxUaW1lUmFuZ2VTbGlkZXJcbiAgICAgICAgICB7Li4udGltZVJhbmdlU2xpZGVyRmllbGRzU2VsZWN0b3IoZmlsdGVyKX1cbiAgICAgICAgICBvbkNoYW5nZT17dGltZVNsaWRlck9uQ2hhbmdlfVxuICAgICAgICAgIHRvZ2dsZUFuaW1hdGlvbj17X3RvZ2dsZUFuaW1hdGlvbn1cbiAgICAgICAgICB1cGRhdGVBbmltYXRpb25TcGVlZD17X3VwZGF0ZUFuaW1hdGlvblNwZWVkfVxuICAgICAgICAgIHNldEZpbHRlckFuaW1hdGlvbldpbmRvdz17X3NldEZpbHRlckFuaW1hdGlvbldpbmRvd31cbiAgICAgICAgICBoaWRlVGltZVRpdGxlPXtzaG93VGltZURpc3BsYXl9XG4gICAgICAgICAgcmVzZXRBbmltYXRpb249e3Jlc2V0QW5pbWF0aW9ufVxuICAgICAgICAgIGlzQW5pbWF0YWJsZT17aXNBbmltYXRhYmxlfVxuICAgICAgICAvPlxuICAgICAgICB7c2hvd1RpbWVEaXNwbGF5ID8gKFxuICAgICAgICAgIDxGbG9hdGluZ1RpbWVEaXNwbGF5XG4gICAgICAgICAgICBjdXJyZW50VGltZT17ZmlsdGVyLnZhbHVlfVxuICAgICAgICAgICAgZGVmYXVsdFRpbWVGb3JtYXQ9e2ZpbHRlci5kZWZhdWx0VGltZUZvcm1hdH1cbiAgICAgICAgICAgIHRpbWVGb3JtYXQ9e2ZpbHRlci50aW1lRm9ybWF0fVxuICAgICAgICAgICAgdGltZXpvbmU9e2ZpbHRlci50aW1lem9uZX1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVGltZUJvdHRvbVdpZGdldElubmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oVGltZVdpZGdldCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRpbWVXaWRnZXRGYWN0b3J5O1xuIl19
135
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWx0ZXJzL3RpbWUtd2lkZ2V0LnRzeCJdLCJuYW1lcyI6WyJUaW1lQm90dG9tV2lkZ2V0SW5uZXIiLCJCb3R0b21XaWRnZXRJbm5lciIsIlRpbWVXaWRnZXRGYWN0b3J5IiwiZGVwcyIsIlRpbWVSYW5nZVNsaWRlckZhY3RvcnkiLCJGbG9hdGluZ1RpbWVEaXNwbGF5RmFjdG9yeSIsIlRpbWVXaWRnZXRUb3BGYWN0b3J5IiwiVGltZVJhbmdlU2xpZGVyIiwiRmxvYXRpbmdUaW1lRGlzcGxheSIsIlRpbWVXaWRnZXRUb3AiLCJUaW1lV2lkZ2V0IiwiZGF0YXNldHMiLCJmaWx0ZXIiLCJpbmRleCIsInJlYWRPbmx5Iiwic2hvd1RpbWVEaXNwbGF5Iiwic2V0RmlsdGVyQW5pbWF0aW9uVGltZSIsIm9uQ2xvc2UiLCJyZXNldEFuaW1hdGlvbiIsImlzQW5pbWF0YWJsZSIsInVwZGF0ZUFuaW1hdGlvblNwZWVkIiwidG9nZ2xlQW5pbWF0aW9uIiwic2V0RmlsdGVyUGxvdCIsInNldEZpbHRlckFuaW1hdGlvbldpbmRvdyIsInRpbWVsaW5lIiwiaXNNaW5pZmllZCIsInNldE1pbmlmaWVkIiwiX3VwZGF0ZUFuaW1hdGlvblNwZWVkIiwic3BlZWQiLCJfdG9nZ2xlQW5pbWF0aW9uIiwiX29uVG9nZ2xlTWluaWZ5IiwiX3NldEZpbHRlckFuaW1hdGlvbldpbmRvdyIsImFuaW1hdGlvbldpbmRvdyIsImlkIiwidGltZVNsaWRlck9uQ2hhbmdlIiwidmFsdWUiLCJkZWZhdWx0VGltZUZvcm1hdCIsInRpbWVGb3JtYXQiLCJ0aW1lem9uZSIsIlJlYWN0IiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7QUFFQSxJQUFNQSxxQkFBcUIsR0FBRyxrQ0FBT0Msb0NBQVAsQ0FBSCx3SEFBM0I7QUFJQUMsaUJBQWlCLENBQUNDLElBQWxCLEdBQXlCLENBQUND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O0FBS0UsTUFBQSx3QkFBd0IsRUFBRUkseUJBTDVCO0FBTUUsTUFBQSxhQUFhLEVBQUVoQixlQU5qQjtBQU9FLE1BQUEsY0FBYyxFQUFFRyxjQVBsQjtBQVFFLE1BQUEsWUFBWSxFQUFFQyxZQVJoQjtBQVNFLE1BQUEsVUFBVSxFQUFFTSxVQVRkO0FBVUUsTUFBQSxRQUFRLEVBQUVEO0FBVlosT0FiRixFQXlCR1QsZUFBZSxnQkFDZCxnQ0FBQyxtQkFBRDtBQUNFLE1BQUEsV0FBVyxFQUFFSCxNQUFNLENBQUN1QixLQUR0QjtBQUVFLE1BQUEsaUJBQWlCLEVBQUV2QixNQUFNLENBQUN3QixpQkFGNUI7QUFHRSxNQUFBLFVBQVUsRUFBRXhCLE1BQU0sQ0FBQ3lCLFVBSHJCO0FBSUUsTUFBQSxRQUFRLEVBQUV6QixNQUFNLENBQUMwQjtBQUpuQixNQURjLEdBT1osSUFoQ04sQ0FERjtBQW9DRCxHQXpFRDs7QUEyRUEsc0JBQU9DLGtCQUFNQyxJQUFOLENBQVc5QixVQUFYLENBQVA7QUFDRDs7ZUFFY1IsaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtCb3R0b21XaWRnZXRJbm5lcn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBUaW1lUmFuZ2VTbGlkZXJGYWN0b3J5IGZyb20gJy4uL2NvbW1vbi90aW1lLXJhbmdlLXNsaWRlcic7XG5pbXBvcnQgRmxvYXRpbmdUaW1lRGlzcGxheUZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL2Zsb2F0aW5nLXRpbWUtZGlzcGxheSc7XG5pbXBvcnQge3RpbWVSYW5nZVNsaWRlckZpZWxkc1NlbGVjdG9yfSBmcm9tICcuL3RpbWUtcmFuZ2UtZmlsdGVyJztcbmltcG9ydCB7VGltZVdpZGdldFByb3BzfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBUaW1lV2lkZ2V0VG9wRmFjdG9yeSBmcm9tICcuL3RpbWUtd2lkZ2V0LXRvcCc7XG5cbmNvbnN0IFRpbWVCb3R0b21XaWRnZXRJbm5lciA9IHN0eWxlZChCb3R0b21XaWRnZXRJbm5lcilgXG4gIHBhZGRpbmc6IDZweCAzMnB4IDI0cHggMzJweDtcbmA7XG5cblRpbWVXaWRnZXRGYWN0b3J5LmRlcHMgPSBbVGltZVJhbmdlU2xpZGVyRmFjdG9yeSwgRmxvYXRpbmdUaW1lRGlzcGxheUZhY3RvcnksIFRpbWVXaWRnZXRUb3BGYWN0b3J5XTtcblxuZnVuY3Rpb24gVGltZVdpZGdldEZhY3RvcnkoXG4gIFRpbWVSYW5nZVNsaWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgVGltZVJhbmdlU2xpZGVyRmFjdG9yeT4sXG4gIEZsb2F0aW5nVGltZURpc3BsYXk6IFJldHVyblR5cGU8dHlwZW9mIEZsb2F0aW5nVGltZURpc3BsYXlGYWN0b3J5PixcbiAgVGltZVdpZGdldFRvcDogUmV0dXJuVHlwZTx0eXBlb2YgVGltZVdpZGdldFRvcEZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgVGltZVdpZGdldDogUmVhY3QuRkM8VGltZVdpZGdldFByb3BzPiA9ICh7XG4gICAgZGF0YXNldHMsXG4gICAgZmlsdGVyLFxuICAgIGluZGV4LFxuICAgIHJlYWRPbmx5LFxuICAgIHNob3dUaW1lRGlzcGxheSxcbiAgICBzZXRGaWx0ZXJBbmltYXRpb25UaW1lLFxuICAgIG9uQ2xvc2UsXG4gICAgcmVzZXRBbmltYXRpb24sXG4gICAgaXNBbmltYXRhYmxlLFxuICAgIHVwZGF0ZUFuaW1hdGlvblNwZWVkLFxuICAgIHRvZ2dsZUFuaW1hdGlvbixcbiAgICBzZXRGaWx0ZXJQbG90LFxuICAgIHNldEZpbHRlckFuaW1hdGlvbldpbmRvdyxcbiAgICB0aW1lbGluZVxuICB9OiBUaW1lV2lkZ2V0UHJvcHMpID0+IHtcbiAgICBjb25zdCBbaXNNaW5pZmllZCwgc2V0TWluaWZpZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgY29uc3QgX3VwZGF0ZUFuaW1hdGlvblNwZWVkID0gdXNlQ2FsbGJhY2soc3BlZWQgPT4gdXBkYXRlQW5pbWF0aW9uU3BlZWQoaW5kZXgsIHNwZWVkKSwgW1xuICAgICAgdXBkYXRlQW5pbWF0aW9uU3BlZWQsXG4gICAgICBpbmRleFxuICAgIF0pO1xuXG4gICAgY29uc3QgX3RvZ2dsZUFuaW1hdGlvbiA9IHVzZUNhbGxiYWNrKCgpID0+IHRvZ2dsZUFuaW1hdGlvbihpbmRleCksIFt0b2dnbGVBbmltYXRpb24sIGluZGV4XSk7XG5cbiAgICBjb25zdCBfb25Ub2dnbGVNaW5pZnkgPSB1c2VDYWxsYmFjaygoKSA9PiBzZXRNaW5pZmllZCghaXNNaW5pZmllZCksIFtzZXRNaW5pZmllZCwgaXNNaW5pZmllZF0pO1xuXG4gICAgY29uc3QgX3NldEZpbHRlckFuaW1hdGlvbldpbmRvdyA9IHVzZUNhbGxiYWNrKFxuICAgICAgYW5pbWF0aW9uV2luZG93ID0+IHNldEZpbHRlckFuaW1hdGlvbldpbmRvdyh7aWQ6IGZpbHRlci5pZCwgYW5pbWF0aW9uV2luZG93fSksXG4gICAgICBbc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93LCBmaWx0ZXIuaWRdXG4gICAgKTtcblxuICAgIGNvbnN0IHRpbWVTbGlkZXJPbkNoYW5nZSA9IHVzZUNhbGxiYWNrKHZhbHVlID0+IHNldEZpbHRlckFuaW1hdGlvblRpbWUoaW5kZXgsICd2YWx1ZScsIHZhbHVlKSwgW1xuICAgICAgc2V0RmlsdGVyQW5pbWF0aW9uVGltZSxcbiAgICAgIGluZGV4XG4gICAgXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFRpbWVCb3R0b21XaWRnZXRJbm5lciBjbGFzc05hbWU9XCJib3R0b20td2lkZ2V0LS1pbm5lclwiPlxuICAgICAgICA8VGltZVdpZGdldFRvcFxuICAgICAgICAgIGZpbHRlcj17ZmlsdGVyfVxuICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgc2V0RmlsdGVyUGxvdD17c2V0RmlsdGVyUGxvdH1cbiAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgb25DbG9zZT17b25DbG9zZX1cbiAgICAgICAgICBvblRvZ2dsZU1pbmlmeT17X29uVG9nZ2xlTWluaWZ5fVxuICAgICAgICAgIGlzTWluaWZpZWQ9e2lzTWluaWZpZWR9XG4gICAgICAgIC8+XG4gICAgICAgIHsvKiBPbmNlIEFuaW1hdGlvbkNvbnRyb2wgaXMgYWJsZSB0byBkaXNwbGF5IGxhcmdlIHRpbWVsaW5lKi99XG4gICAgICAgIHsvKiB3ZSBjYW4gcmVwbGFjZSBUaW1lUmFuZ2VTbGlkZXIgd2l0aCBBbmltYXRpb25Db250cm9sKi99XG4gICAgICAgIDxUaW1lUmFuZ2VTbGlkZXJcbiAgICAgICAgICB7Li4udGltZVJhbmdlU2xpZGVyRmllbGRzU2VsZWN0b3IoZmlsdGVyKX1cbiAgICAgICAgICBvbkNoYW5nZT17dGltZVNsaWRlck9uQ2hhbmdlfVxuICAgICAgICAgIHRvZ2dsZUFuaW1hdGlvbj17X3RvZ2dsZUFuaW1hdGlvbn1cbiAgICAgICAgICB1cGRhdGVBbmltYXRpb25TcGVlZD17X3VwZGF0ZUFuaW1hdGlvblNwZWVkfVxuICAgICAgICAgIHNldEZpbHRlckFuaW1hdGlvbldpbmRvdz17X3NldEZpbHRlckFuaW1hdGlvbldpbmRvd31cbiAgICAgICAgICBoaWRlVGltZVRpdGxlPXtzaG93VGltZURpc3BsYXl9XG4gICAgICAgICAgcmVzZXRBbmltYXRpb249e3Jlc2V0QW5pbWF0aW9ufVxuICAgICAgICAgIGlzQW5pbWF0YWJsZT17aXNBbmltYXRhYmxlfVxuICAgICAgICAgIGlzTWluaWZpZWQ9e2lzTWluaWZpZWR9XG4gICAgICAgICAgdGltZWxpbmU9e3RpbWVsaW5lfVxuICAgICAgICAvPlxuICAgICAgICB7c2hvd1RpbWVEaXNwbGF5ID8gKFxuICAgICAgICAgIDxGbG9hdGluZ1RpbWVEaXNwbGF5XG4gICAgICAgICAgICBjdXJyZW50VGltZT17ZmlsdGVyLnZhbHVlfVxuICAgICAgICAgICAgZGVmYXVsdFRpbWVGb3JtYXQ9e2ZpbHRlci5kZWZhdWx0VGltZUZvcm1hdH1cbiAgICAgICAgICAgIHRpbWVGb3JtYXQ9e2ZpbHRlci50aW1lRm9ybWF0fVxuICAgICAgICAgICAgdGltZXpvbmU9e2ZpbHRlci50aW1lem9uZX1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvVGltZUJvdHRvbVdpZGdldElubmVyPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oVGltZVdpZGdldCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRpbWVXaWRnZXRGYWN0b3J5O1xuIl19
@@ -1,6 +1,6 @@
1
- import { Filter, MultiSelectFilter, RangeFilter, SelectFilter, TimeRangeFilter } from '@kepler.gl/types';
1
+ import { Filter, MultiSelectFilter, RangeFilter, SelectFilter, TimeRangeFilter, Timeline } from '@kepler.gl/types';
2
2
  import { Layer } from '@kepler.gl/layers';
3
- import { ActionHandler, enlargeFilter, setFilterAnimationTime, setFilterAnimationWindow, setFilterPlot, toggleFilterAnimation, updateFilterAnimationSpeed } from '@kepler.gl/actions';
3
+ import { ActionHandler, setFilterAnimationTime, setFilterAnimationWindow, setFilterPlot, toggleFilterAnimation, updateFilterAnimationSpeed } from '@kepler.gl/actions';
4
4
  import { Datasets } from '@kepler.gl/table';
5
5
  export declare type PolygonFilterProps = {
6
6
  filter: Filter;
@@ -20,6 +20,7 @@ export declare type TimeRangeFilterProps = {
20
20
  hideTimeTitle: boolean;
21
21
  setFilter: (v: number[]) => void;
22
22
  toggleAnimation: () => void;
23
+ timeline: Timeline;
23
24
  };
24
25
  export declare type SingleSelectFilterProps = {
25
26
  filter: SelectFilter;
@@ -36,6 +37,8 @@ export declare type TimeWidgetTopProps = {
36
37
  setFilterPlot: ActionHandler<typeof setFilterPlot>;
37
38
  index: number;
38
39
  onClose: () => void;
40
+ onToggleMinify: () => void;
41
+ isMinified: boolean;
39
42
  };
40
43
  export declare type TimeWidgetProps = {
41
44
  datasets: Datasets;
@@ -45,10 +48,11 @@ export declare type TimeWidgetProps = {
45
48
  showTimeDisplay: boolean;
46
49
  isAnimatable: boolean;
47
50
  resetAnimation: () => void;
51
+ onClose: () => void;
48
52
  setFilterAnimationTime: ActionHandler<typeof setFilterAnimationTime>;
49
53
  updateAnimationSpeed: ActionHandler<typeof updateFilterAnimationSpeed>;
50
54
  toggleAnimation: ActionHandler<typeof toggleFilterAnimation>;
51
- enlargeFilter: ActionHandler<typeof enlargeFilter>;
52
55
  setFilterPlot: ActionHandler<typeof setFilterPlot>;
53
56
  setFilterAnimationWindow: ActionHandler<typeof setFilterAnimationWindow>;
57
+ timeline: Timeline;
54
58
  };
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
1
+ // Copyright (c) 2023 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -25,9 +25,7 @@ declare type GeocoderProps = {
25
25
  declare type IntlProps = {
26
26
  intl: IntlShape;
27
27
  };
28
- declare const _default: React.ForwardRefExoticComponent<import("react-intl").Omit<GeocoderProps & IntlProps, "intl"> & {
29
- forwardedRef?: React.Ref<any> | undefined;
30
- } & React.RefAttributes<any>> & {
28
+ declare const _default: React.FC<import("react-intl").WithIntlProps<GeocoderProps & IntlProps>> & {
31
29
  WrappedComponent: React.ComponentType<GeocoderProps & IntlProps>;
32
30
  };
33
31
  export default _default;
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
1
+ // Copyright (c) 2023 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -333,4 +333,4 @@ var GeoCoder = function GeoCoder(_ref) {
333
333
  var _default = (0, _reactIntl.injectIntl)(GeoCoder);
334
334
 
335
335
  exports["default"] = _default;
336
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW9jb2Rlci9nZW9jb2Rlci50c3giXSwibmFtZXMiOlsiQ09PUkRJTkFURV9SRUdFWF9TVFJJTkciLCJDT09SRElOQVRFX1JFR0VYIiwiUmVnRXhwIiwiUExBQ0VIT0xERVIiLCJkZWJvdW5jZVRpbWVvdXQiLCJ0ZXN0Rm9yQ29vcmRpbmF0ZXMiLCJxdWVyeSIsImlzVmFsaWQiLCJ0ZXN0IiwidHJpbSIsInRva2VucyIsInNwbGl0IiwiTnVtYmVyIiwiU3R5bGVkQ29udGFpbmVyIiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsInRleHRDb2xvciIsImJveFNoYWRvdyIsImdlb2NvZGVySW5wdXRIZWlnaHQiLCJzdWJ0ZXh0Q29sb3IiLCJwYW5lbEJhY2tncm91bmQiLCJpc0Zpbml0ZSIsIndpZHRoIiwiZ2VvY29kZXJXaWR0aCIsImRyb3Bkb3duV2FwcGVyTWFyZ2luIiwiZHJvcGRvd25MaXN0SXRlbSIsInRleHRUcnVuY2F0ZSIsImRyb3Bkb3duTGlzdEhpZ2hsaWdodEJnIiwidGV4dENvbG9ySGwiLCJHZW9Db2RlciIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwiY2xhc3NOYW1lIiwibGltaXQiLCJ0aW1lb3V0IiwiZm9ybWF0SXRlbSIsIml0ZW0iLCJwbGFjZV9uYW1lIiwidmlld3BvcnQiLCJvblNlbGVjdGVkIiwib25EZWxldGVNYXJrZXIiLCJ0cmFuc2l0aW9uRHVyYXRpb24iLCJwb2ludFpvb20iLCJpbnRsIiwiaW5wdXRWYWx1ZSIsInNldElucHV0VmFsdWUiLCJzaG93UmVzdWx0cyIsInNldFNob3dSZXN1bHRzIiwic2hvd0RlbGV0ZSIsInNldFNob3dEZWxldGUiLCJpbml0aWFsUmVzdWx0cyIsInJlc3VsdHMiLCJzZXRSZXN1bHRzIiwic2VsZWN0ZWRJbmRleCIsInNldFNlbGVjdGVkSW5kZXgiLCJjbGllbnQiLCJNYXBib3hDbGllbnQiLCJvbkNoYW5nZSIsImV2ZW50IiwicXVlcnlTdHJpbmciLCJ0YXJnZXQiLCJ2YWx1ZSIsInJlc3VsdENvb3JkaW5hdGVzIiwiXyIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiY2VudGVyIiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsIkJvb2xlYW4iLCJnZW9jb2RlRm9yd2FyZCIsInJlc3BvbnNlIiwiZW50aXR5IiwiZmVhdHVyZXMiLCJjb25zb2xlIiwibG9nIiwib25CbHVyIiwib25Gb2N1cyIsIm9uSXRlbVNlbGVjdGVkIiwibmV3Vmlld3BvcnQiLCJXZWJNZXJjYXRvclZpZXdwb3J0IiwiYmJveCIsImdvdG9WaWV3cG9ydCIsImZpdEJvdW5kcyIsInpvb20iLCJvbk1hcmtEZWxldGVkIiwib25LZXlEb3duIiwiZSIsImxlbmd0aCIsImtleUNvZGUiLCJLZXlFdmVudCIsIkRPTV9WS19VUCIsIkRPTV9WS19ET1dOIiwiRE9NX1ZLX0VOVEVSIiwiRE9NX1ZLX1JFVFVSTiIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsImRlZmF1bHRNZXNzYWdlIiwibWFwIiwiaW5kZXgiLCJhY3RpdmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFPQTtBQUNBLElBQU1BLHVCQUF1QixHQUMzQixtR0FERjtBQUVBLElBQU1DLGdCQUFnQixHQUFHQyxNQUFNLENBQUNGLHVCQUFELENBQS9CO0FBRUEsSUFBTUcsV0FBVyxHQUFHLG1EQUFwQjtBQUVBLElBQUlDLGVBQXNDLEdBQUcsSUFBN0M7O0FBRU8sSUFBTUMsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFxQixDQUFDQyxLQUFELEVBQTZEO0FBQzdGLE1BQU1DLE9BQU8sR0FBR04sZ0JBQWdCLENBQUNPLElBQWpCLENBQXNCRixLQUFLLENBQUNHLElBQU4sRUFBdEIsQ0FBaEI7O0FBRUEsTUFBSSxDQUFDRixPQUFMLEVBQWM7QUFDWixXQUFPLENBQUNBLE9BQUQsRUFBVUQsS0FBVixDQUFQO0FBQ0Q7O0FBRUQs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LFFBQUFBLE1BQU0sRUFBRS9DLGFBQWEsS0FBSzhDO0FBQTNCLE9BQTVCLENBRmI7QUFHRSxNQUFBLE9BQU8sRUFBRTtBQUFBLGVBQU1yQixjQUFjLENBQUMxQyxJQUFELENBQXBCO0FBQUE7QUFIWCxPQUtHRCxVQUFVLENBQUNDLElBQUQsQ0FMYixDQURXO0FBQUEsR0FBWixDQURILENBRFUsR0FZUixJQXJDTixDQURGO0FBeUNELENBbktEOztlQXFLZSwyQkFBV04sUUFBWCxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IE1hcGJveENsaWVudCBmcm9tICdtYXBib3gnO1xuaW1wb3J0IHtpbmplY3RJbnRsLCBJbnRsU2hhcGV9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcbmltcG9ydCB7S2V5RXZlbnR9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7SW5wdXR9IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge1NlYXJjaCwgRGVsZXRlfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtWaWV3cG9ydH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSB7XG4gIHdpZHRoPzogbnVtYmVyO1xufTtcblxuLy8gbWF0Y2hlcyBvbmx5IHZhbGlkIGNvb3JkaW5hdGVzXG5jb25zdCBDT09SRElOQVRFX1JFR0VYX1NUUklORyA9XG4gICdeWy0rXT8oWzEtOF0/XFxcXGQoXFxcXC5cXFxcZCspP3w5MChcXFxcLjArKT8pLFxcXFxzKlstK10/KDE4MChcXFxcLjArKT98KCgxWzAtN11cXFxcZCl8KFsxLTldP1xcXFxkKSkoXFxcXC5cXFxcZCspPyknO1xuY29uc3QgQ09PUkRJTkFURV9SRUdFWCA9IFJlZ0V4cChDT09SRElOQVRFX1JFR0VYX1NUUklORyk7XG5cbmNvbnN0IFBMQUNFSE9MREVSID0gJ0VudGVyIGFuIGFkZHJlc3Mgb3IgY29vcmRpbmF0ZXMsIGV4IDM3Ljc5LC0xMjIuNDAnO1xuXG5sZXQgZGVib3VuY2VUaW1lb3V0OiBOb2RlSlMuVGltZW91dCB8IG51bGwgPSBudWxsO1xuXG5leHBvcnQgY29uc3QgdGVzdEZvckNvb3JkaW5hdGVzID0gKHF1ZXJ5OiBzdHJpbmcpOiBbdHJ1ZSwgbnVtYmVyLCBudW1iZXJdIHwgW2ZhbHNlLCBzdHJpbmddID0+IHtcbiAgY29uc3QgaXNWYWxpZCA9IENPT1JESU5BVEVfUkVHRVgudGVzdChxdWVyeS50cmltKCkpO1xuXG4gIGlmICghaXNWYWxpZCkge1xuICAgIHJldHVybiBbaXNWYWxpZCwgcXVlcnldO1xuICB9XG5cbiAgY29uc3QgdG9rZW5zID0gcXVlcnkudHJpbSgpLnNwbGl0KCcsJyk7XG5cbiAgcmV0dXJuIFtpc1ZhbGlkLCBOdW1iZXIodG9rZW5zWzBdKSwgTnVtYmVyKHRva2Vuc1sxXSldO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcblxuICAuZ2VvY29kZXItaW5wdXQge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcblxuICAgIC5nZW9jb2Rlci1pbnB1dF9fc2VhcmNoIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5nZW9jb2RlcklucHV0SGVpZ2h0fXB4O1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHBhZGRpbmc6IDRweCAzNnB4O1xuICAgICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmdlb2NvZGVySW5wdXRIZWlnaHR9cHg7XG4gICAgICBjYXJldC1jb2xvcjogdW5zZXQ7XG4gICAgfVxuICB9XG5cbiAgLmdlb2NvZGVyLXJlc3VsdHMge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZH07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAke3Byb3BzID0+IChOdW1iZXIuaXNGaW5pdGUocHJvcHMud2lkdGgpID8gcHJvcHMud2lkdGggOiBwcm9wcy50aGVtZS5nZW9jb2RlcldpZHRoKX1weDtcbiAgICBtYXJnaW4tdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV2FwcGVyTWFyZ2lufXB4O1xuICB9XG5cbiAgLmdlb2NvZGVyLWl0ZW0ge1xuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0SXRlbX07XG4gICAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0VHJ1bmNhdGV9O1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RIaWdobGlnaHRCZ307XG4gICAgfVxuICB9XG5cbiAgLnJlbW92ZS1yZXN1bHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTZweDtcbiAgICB0b3A6IDBweDtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZ2VvY29kZXJJbnB1dEhlaWdodH1weDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICA6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBSZXN1bHQge1xuICBjZW50ZXI6IFtudW1iZXIsIG51bWJlcl07XG4gIHBsYWNlX25hbWU6IHN0cmluZztcbiAgYmJveD86IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuICB0ZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBSZXN1bHRzID0gUmVhZG9ubHlBcnJheTxSZXN1bHQ+O1xuXG50eXBlIEdlb2NvZGVyUHJvcHMgPSB7XG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgbGltaXQ/OiBudW1iZXI7XG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIGZvcm1hdEl0ZW0/OiAoaXRlbTogUmVzdWx0KSA9PiBzdHJpbmc7XG4gIHZpZXdwb3J0PzogVmlld3BvcnQ7XG4gIG9uU2VsZWN0ZWQ6ICh2aWV3cG9ydDogVmlld3BvcnQgfCBudWxsLCBpdGVtOiBSZXN1bHQpID0+IHZvaWQ7XG4gIG9uRGVsZXRlTWFya2VyPzogKCkgPT4gdm9pZDtcbiAgdHJhbnNpdGlvbkR1cmF0aW9uPzogbnVtYmVyO1xuICBwb2ludFpvb20/OiBudW1iZXI7XG4gIHdpZHRoPzogbnVtYmVyO1xufTtcblxudHlwZSBJbnRsUHJvcHMgPSB7XG4gIGludGw6IEludGxTaGFwZTtcbn07XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2dlb2NvZGVyJykuR2VvY29kZXJDb21wb25lbnR9ICovXG5jb25zdCBHZW9Db2RlcjogUmVhY3QuRkM8R2VvY29kZXJQcm9wcyAmIEludGxQcm9wcz4gPSAoe1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgY2xhc3NOYW1lID0gJycsXG4gIGxpbWl0ID0gNSxcbiAgdGltZW91dCA9IDMwMCxcbiAgZm9ybWF0SXRlbSA9IGl0ZW0gPT4gaXRlbS5wbGFjZV9uYW1lLFxuICB2aWV3cG9ydCxcbiAgb25TZWxlY3RlZCxcbiAgb25EZWxldGVNYXJrZXIsXG4gIHRyYW5zaXRpb25EdXJhdGlvbixcbiAgcG9pbnRab29tLFxuICB3aWR0aCxcbiAgaW50bFxufSkgPT4ge1xuICBjb25zdCBbaW5wdXRWYWx1ZSwgc2V0SW5wdXRWYWx1ZV0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtzaG93UmVzdWx0cywgc2V0U2hvd1Jlc3VsdHNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd0RlbGV0ZSwgc2V0U2hvd0RlbGV0ZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIC8qKiBAdHlwZSB7aW1wb3J0KCcuL2dlb2NvZGVyJykuUmVzdWx0c30gKi9cbiAgY29uc3QgaW5pdGlhbFJlc3VsdHM6IFJlc3VsdFtdID0gW107XG4gIGNvbnN0IFtyZXN1bHRzLCBzZXRSZXN1bHRzXSA9IHVzZVN0YXRlKGluaXRpYWxSZXN1bHRzKTtcbiAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoMCk7XG5cbiAgY29uc3QgY2xpZW50ID0gdXNlTWVtbygoKSA9PiBuZXcgTWFwYm94Q2xpZW50KG1hcGJveEFwaUFjY2Vzc1Rva2VuKSwgW21hcGJveEFwaUFjY2Vzc1Rva2VuXSk7XG5cbiAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICBldmVudCA9PiB7XG4gICAgICBjb25zdCBxdWVyeVN0cmluZyA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIHNldElucHV0VmFsdWUocXVlcnlTdHJpbmcpO1xuICAgICAgY29uc3QgcmVzdWx0Q29vcmRpbmF0ZXMgPSB0ZXN0Rm9yQ29vcmRpbmF0ZXMocXVlcnlTdHJpbmcpO1xuICAgICAgaWYgKHJlc3VsdENvb3JkaW5hdGVzWzBdKSB7XG4gICAgICAgIGNvbnN0IFtfLCBsYXRpdHVkZSwgbG9uZ2l0dWRlXSA9IHJlc3VsdENvb3JkaW5hdGVzO1xuICAgICAgICBzZXRSZXN1bHRzKFt7Y2VudGVyOiBbbGF0aXR1ZGUsIGxvbmdpdHVkZV0sIHBsYWNlX25hbWU6IHF1ZXJ5U3RyaW5nfV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGRlYm91bmNlVGltZW91dCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgICAgIGRlYm91bmNlVGltZW91dCA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGlmIChsaW1pdCA+IDAgJiYgQm9vbGVhbihxdWVyeVN0cmluZykpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50Lmdlb2NvZGVGb3J3YXJkKHF1ZXJ5U3RyaW5nLCB7bGltaXR9KTtcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmVudGl0eS5mZWF0dXJlcykge1xuICAgICAgICAgICAgICAgIHNldFNob3dSZXN1bHRzKHRydWUpO1xuICAgICAgICAgICAgICAgIHNldFJlc3VsdHMocmVzcG9uc2UuZW50aXR5LmZlYXR1cmVzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAvLyBUT0RPOiBzaG93IGdlb2NvZGUgZXJyb3JcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LCB0aW1lb3V0KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtjbGllbnQsIGxpbWl0LCB0aW1lb3V0LCBzZXRSZXN1bHRzLCBzZXRTaG93UmVzdWx0c11cbiAgKTtcblxuICBjb25zdCBvbkJsdXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRTaG93UmVzdWx0cyhmYWxzZSk7XG4gICAgfSwgdGltZW91dCk7XG4gIH0sIFtzZXRTaG93UmVzdWx0cywgdGltZW91dF0pO1xuXG4gIGNvbnN0IG9uRm9jdXMgPSB1c2VDYWxsYmFjaygoKSA9PiBzZXRTaG93UmVzdWx0cyh0cnVlKSwgW3NldFNob3dSZXN1bHRzXSk7XG5cbiAgY29uc3Qgb25JdGVtU2VsZWN0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICBpdGVtID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZpZXdwb3J0ID0gbmV3IFdlYk1lcmNhdG9yVmlld3BvcnQodmlld3BvcnQpO1xuICAgICAgY29uc3Qge2Jib3gsIGNlbnRlcn0gPSBpdGVtO1xuXG4gICAgICBjb25zdCBnb3RvVmlld3BvcnQgPSBiYm94XG4gICAgICAgID8gbmV3Vmlld3BvcnQuZml0Qm91bmRzKFtcbiAgICAgICAgICAgIFtiYm94WzBdLCBiYm94WzFdXSxcbiAgICAgICAgICAgIFtiYm94WzJdLCBiYm94WzNdXVxuICAgICAgICAgIF0pXG4gICAgICAgIDoge1xuICAgICAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXJbMF0sXG4gICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyWzFdLFxuICAgICAgICAgICAgem9vbTogcG9pbnRab29tXG4gICAgICAgICAgfTtcblxuICAgICAgY29uc3Qge2xvbmdpdHVkZSwgbGF0aXR1ZGUsIHpvb219ID0gZ290b1ZpZXdwb3J0O1xuXG4gICAgICBvblNlbGVjdGVkKHsuLi52aWV3cG9ydCwgLi4ue2xvbmdpdHVkZSwgbGF0aXR1ZGUsIHpvb20sIHRyYW5zaXRpb25EdXJhdGlvbn19LCBpdGVtKTtcblxuICAgICAgc2V0U2hvd1Jlc3VsdHMoZmFsc2UpO1xuICAgICAgc2V0SW5wdXRWYWx1ZShmb3JtYXRJdGVtKGl0ZW0pKTtcbiAgICAgIHNldFNob3dEZWxldGUodHJ1ZSk7XG4gICAgfSxcbiAgICBbdmlld3BvcnQsIG9uU2VsZWN0ZWQsIHRyYW5zaXRpb25EdXJhdGlvbiwgcG9pbnRab29tLCBmb3JtYXRJdGVtXVxuICApO1xuXG4gIGNvbnN0IG9uTWFya0RlbGV0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0U2hvd0RlbGV0ZShmYWxzZSk7XG4gICAgc2V0SW5wdXRWYWx1ZSgnJyk7XG4gICAgb25EZWxldGVNYXJrZXI/LigpO1xuICB9LCBbb25EZWxldGVNYXJrZXJdKTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICBlID0+IHtcbiAgICAgIGlmICghcmVzdWx0cyB8fCByZXN1bHRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKGUua2V5Q29kZSkge1xuICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19VUDpcbiAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4KHNlbGVjdGVkSW5kZXggPiAwID8gc2VsZWN0ZWRJbmRleCAtIDEgOiBzZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfRE9XTjpcbiAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4KHNlbGVjdGVkSW5kZXggPCByZXN1bHRzLmxlbmd0aCAtIDEgPyBzZWxlY3RlZEluZGV4ICsgMSA6IHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19FTlRFUjpcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfUkVUVVJOOlxuICAgICAgICAgIGlmIChyZXN1bHRzW3NlbGVjdGVkSW5kZXhdKSB7XG4gICAgICAgICAgICBvbkl0ZW1TZWxlY3RlZChyZXN1bHRzW3NlbGVjdGVkSW5kZXhdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSxcbiAgICBbcmVzdWx0cywgc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleCwgb25JdGVtU2VsZWN0ZWRdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ29udGFpbmVyIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSB3aWR0aD17d2lkdGh9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJnZW9jb2Rlci1pbnB1dFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdlb2NvZGVyLWlucHV0X19zZWFyY2hcIj5cbiAgICAgICAgICA8U2VhcmNoIGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPElucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAgIHZhbHVlPXtpbnB1dFZhbHVlfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtcbiAgICAgICAgICAgIGludGxcbiAgICAgICAgICAgICAgPyBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnZ2VvY29kZXIudGl0bGUnLCBkZWZhdWx0TWVzc2FnZTogUExBQ0VIT0xERVJ9KVxuICAgICAgICAgICAgICA6IFBMQUNFSE9MREVSXG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbW92ZS1yZXN1bHRcIj5cbiAgICAgICAgICAgIDxEZWxldGUgaGVpZ2h0PVwiMTJweFwiIG9uQ2xpY2s9e29uTWFya0RlbGV0ZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtzaG93UmVzdWx0cyA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnZW9jb2Rlci1yZXN1bHRzXCI+XG4gICAgICAgICAge3Jlc3VsdHMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2dlb2NvZGVyLWl0ZW0nLCB7YWN0aXZlOiBzZWxlY3RlZEluZGV4ID09PSBpbmRleH0pfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkl0ZW1TZWxlY3RlZChpdGVtKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2Zvcm1hdEl0ZW0oaXRlbSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApIDogbnVsbH1cbiAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGluamVjdEludGwoR2VvQ29kZXIpO1xuIl19
336
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW9jb2Rlci9nZW9jb2Rlci50c3giXSwibmFtZXMiOlsiQ09PUkRJTkFURV9SRUdFWF9TVFJJTkciLCJDT09SRElOQVRFX1JFR0VYIiwiUmVnRXhwIiwiUExBQ0VIT0xERVIiLCJkZWJvdW5jZVRpbWVvdXQiLCJ0ZXN0Rm9yQ29vcmRpbmF0ZXMiLCJxdWVyeSIsImlzVmFsaWQiLCJ0ZXN0IiwidHJpbSIsInRva2VucyIsInNwbGl0IiwiTnVtYmVyIiwiU3R5bGVkQ29udGFpbmVyIiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsInRleHRDb2xvciIsImJveFNoYWRvdyIsImdlb2NvZGVySW5wdXRIZWlnaHQiLCJzdWJ0ZXh0Q29sb3IiLCJwYW5lbEJhY2tncm91bmQiLCJpc0Zpbml0ZSIsIndpZHRoIiwiZ2VvY29kZXJXaWR0aCIsImRyb3Bkb3duV2FwcGVyTWFyZ2luIiwiZHJvcGRvd25MaXN0SXRlbSIsInRleHRUcnVuY2F0ZSIsImRyb3Bkb3duTGlzdEhpZ2hsaWdodEJnIiwidGV4dENvbG9ySGwiLCJHZW9Db2RlciIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwiY2xhc3NOYW1lIiwibGltaXQiLCJ0aW1lb3V0IiwiZm9ybWF0SXRlbSIsIml0ZW0iLCJwbGFjZV9uYW1lIiwidmlld3BvcnQiLCJvblNlbGVjdGVkIiwib25EZWxldGVNYXJrZXIiLCJ0cmFuc2l0aW9uRHVyYXRpb24iLCJwb2ludFpvb20iLCJpbnRsIiwiaW5wdXRWYWx1ZSIsInNldElucHV0VmFsdWUiLCJzaG93UmVzdWx0cyIsInNldFNob3dSZXN1bHRzIiwic2hvd0RlbGV0ZSIsInNldFNob3dEZWxldGUiLCJpbml0aWFsUmVzdWx0cyIsInJlc3VsdHMiLCJzZXRSZXN1bHRzIiwic2VsZWN0ZWRJbmRleCIsInNldFNlbGVjdGVkSW5kZXgiLCJjbGllbnQiLCJNYXBib3hDbGllbnQiLCJvbkNoYW5nZSIsImV2ZW50IiwicXVlcnlTdHJpbmciLCJ0YXJnZXQiLCJ2YWx1ZSIsInJlc3VsdENvb3JkaW5hdGVzIiwiXyIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiY2VudGVyIiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsIkJvb2xlYW4iLCJnZW9jb2RlRm9yd2FyZCIsInJlc3BvbnNlIiwiZW50aXR5IiwiZmVhdHVyZXMiLCJjb25zb2xlIiwibG9nIiwib25CbHVyIiwib25Gb2N1cyIsIm9uSXRlbVNlbGVjdGVkIiwibmV3Vmlld3BvcnQiLCJXZWJNZXJjYXRvclZpZXdwb3J0IiwiYmJveCIsImdvdG9WaWV3cG9ydCIsImZpdEJvdW5kcyIsInpvb20iLCJvbk1hcmtEZWxldGVkIiwib25LZXlEb3duIiwiZSIsImxlbmd0aCIsImtleUNvZGUiLCJLZXlFdmVudCIsIkRPTV9WS19VUCIsIkRPTV9WS19ET1dOIiwiRE9NX1ZLX0VOVEVSIiwiRE9NX1ZLX1JFVFVSTiIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsImRlZmF1bHRNZXNzYWdlIiwibWFwIiwiaW5kZXgiLCJhY3RpdmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFPQTtBQUNBLElBQU1BLHVCQUF1QixHQUMzQixtR0FERjtBQUVBLElBQU1DLGdCQUFnQixHQUFHQyxNQUFNLENBQUNGLHVCQUFELENBQS9CO0FBRUEsSUFBTUcsV0FBVyxHQUFHLG1EQUFwQjtBQUVBLElBQUlDLGVBQXNDLEdBQUcsSUFBN0M7O0FBRU8sSUFBTUMsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFxQixDQUFDQyxLQUFELEVBQTZEO0FBQzdGLE1BQU1DLE9BQU8sR0FBR04sZ0JBQWdCLENBQUNPLElBQWpCLENBQXNCRixLQUFLLENBQUNHLElBQU4sRUFBdEIsQ0FBaEI7O0FBRUEsTUFBSSxDQUFDRixPQUFMLEVBQWM7QUFDWixXQUFPLENBQUNBLE9BQUQsRUFBVUQsS0FBVixDQUFQO0FBQ0Q7O0FBRUQs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LFFBQUFBLE1BQU0sRUFBRS9DLGFBQWEsS0FBSzhDO0FBQTNCLE9BQTVCLENBRmI7QUFHRSxNQUFBLE9BQU8sRUFBRTtBQUFBLGVBQU1yQixjQUFjLENBQUMxQyxJQUFELENBQXBCO0FBQUE7QUFIWCxPQUtHRCxVQUFVLENBQUNDLElBQUQsQ0FMYixDQURXO0FBQUEsR0FBWixDQURILENBRFUsR0FZUixJQXJDTixDQURGO0FBeUNELENBbktEOztlQXFLZSwyQkFBV04sUUFBWCxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IE1hcGJveENsaWVudCBmcm9tICdtYXBib3gnO1xuaW1wb3J0IHtpbmplY3RJbnRsLCBJbnRsU2hhcGV9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcbmltcG9ydCB7S2V5RXZlbnR9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7SW5wdXR9IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge1NlYXJjaCwgRGVsZXRlfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtWaWV3cG9ydH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbnR5cGUgU3R5bGVkQ29udGFpbmVyUHJvcHMgPSB7XG4gIHdpZHRoPzogbnVtYmVyO1xufTtcblxuLy8gbWF0Y2hlcyBvbmx5IHZhbGlkIGNvb3JkaW5hdGVzXG5jb25zdCBDT09SRElOQVRFX1JFR0VYX1NUUklORyA9XG4gICdeWy0rXT8oWzEtOF0/XFxcXGQoXFxcXC5cXFxcZCspP3w5MChcXFxcLjArKT8pLFxcXFxzKlstK10/KDE4MChcXFxcLjArKT98KCgxWzAtN11cXFxcZCl8KFsxLTldP1xcXFxkKSkoXFxcXC5cXFxcZCspPyknO1xuY29uc3QgQ09PUkRJTkFURV9SRUdFWCA9IFJlZ0V4cChDT09SRElOQVRFX1JFR0VYX1NUUklORyk7XG5cbmNvbnN0IFBMQUNFSE9MREVSID0gJ0VudGVyIGFuIGFkZHJlc3Mgb3IgY29vcmRpbmF0ZXMsIGV4IDM3Ljc5LC0xMjIuNDAnO1xuXG5sZXQgZGVib3VuY2VUaW1lb3V0OiBOb2RlSlMuVGltZW91dCB8IG51bGwgPSBudWxsO1xuXG5leHBvcnQgY29uc3QgdGVzdEZvckNvb3JkaW5hdGVzID0gKHF1ZXJ5OiBzdHJpbmcpOiBbdHJ1ZSwgbnVtYmVyLCBudW1iZXJdIHwgW2ZhbHNlLCBzdHJpbmddID0+IHtcbiAgY29uc3QgaXNWYWxpZCA9IENPT1JESU5BVEVfUkVHRVgudGVzdChxdWVyeS50cmltKCkpO1xuXG4gIGlmICghaXNWYWxpZCkge1xuICAgIHJldHVybiBbaXNWYWxpZCwgcXVlcnldO1xuICB9XG5cbiAgY29uc3QgdG9rZW5zID0gcXVlcnkudHJpbSgpLnNwbGl0KCcsJyk7XG5cbiAgcmV0dXJuIFtpc1ZhbGlkLCBOdW1iZXIodG9rZW5zWzBdKSwgTnVtYmVyKHRva2Vuc1sxXSldO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcblxuICAuZ2VvY29kZXItaW5wdXQge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcblxuICAgIC5nZW9jb2Rlci1pbnB1dF9fc2VhcmNoIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5nZW9jb2RlcklucHV0SGVpZ2h0fXB4O1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHBhZGRpbmc6IDRweCAzNnB4O1xuICAgICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmdlb2NvZGVySW5wdXRIZWlnaHR9cHg7XG4gICAgICBjYXJldC1jb2xvcjogdW5zZXQ7XG4gICAgfVxuICB9XG5cbiAgLmdlb2NvZGVyLXJlc3VsdHMge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZH07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAke3Byb3BzID0+IChOdW1iZXIuaXNGaW5pdGUocHJvcHMud2lkdGgpID8gcHJvcHMud2lkdGggOiBwcm9wcy50aGVtZS5nZW9jb2RlcldpZHRoKX1weDtcbiAgICBtYXJnaW4tdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV2FwcGVyTWFyZ2lufXB4O1xuICB9XG5cbiAgLmdlb2NvZGVyLWl0ZW0ge1xuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0SXRlbX07XG4gICAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0VHJ1bmNhdGV9O1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RIaWdobGlnaHRCZ307XG4gICAgfVxuICB9XG5cbiAgLnJlbW92ZS1yZXN1bHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTZweDtcbiAgICB0b3A6IDBweDtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZ2VvY29kZXJJbnB1dEhlaWdodH1weDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICA6aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBSZXN1bHQge1xuICBjZW50ZXI6IFtudW1iZXIsIG51bWJlcl07XG4gIHBsYWNlX25hbWU6IHN0cmluZztcbiAgYmJveD86IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuICB0ZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBSZXN1bHRzID0gUmVhZG9ubHlBcnJheTxSZXN1bHQ+O1xuXG50eXBlIEdlb2NvZGVyUHJvcHMgPSB7XG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgbGltaXQ/OiBudW1iZXI7XG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIGZvcm1hdEl0ZW0/OiAoaXRlbTogUmVzdWx0KSA9PiBzdHJpbmc7XG4gIHZpZXdwb3J0PzogVmlld3BvcnQ7XG4gIG9uU2VsZWN0ZWQ6ICh2aWV3cG9ydDogVmlld3BvcnQgfCBudWxsLCBpdGVtOiBSZXN1bHQpID0+IHZvaWQ7XG4gIG9uRGVsZXRlTWFya2VyPzogKCkgPT4gdm9pZDtcbiAgdHJhbnNpdGlvbkR1cmF0aW9uPzogbnVtYmVyO1xuICBwb2ludFpvb20/OiBudW1iZXI7XG4gIHdpZHRoPzogbnVtYmVyO1xufTtcblxudHlwZSBJbnRsUHJvcHMgPSB7XG4gIGludGw6IEludGxTaGFwZTtcbn07XG5cbi8qKiBAdHlwZSB7aW1wb3J0KCcuL2dlb2NvZGVyJykuR2VvY29kZXJDb21wb25lbnR9ICovXG5jb25zdCBHZW9Db2RlcjogUmVhY3QuRkM8R2VvY29kZXJQcm9wcyAmIEludGxQcm9wcz4gPSAoe1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgY2xhc3NOYW1lID0gJycsXG4gIGxpbWl0ID0gNSxcbiAgdGltZW91dCA9IDMwMCxcbiAgZm9ybWF0SXRlbSA9IGl0ZW0gPT4gaXRlbS5wbGFjZV9uYW1lLFxuICB2aWV3cG9ydCxcbiAgb25TZWxlY3RlZCxcbiAgb25EZWxldGVNYXJrZXIsXG4gIHRyYW5zaXRpb25EdXJhdGlvbixcbiAgcG9pbnRab29tLFxuICB3aWR0aCxcbiAgaW50bFxufSkgPT4ge1xuICBjb25zdCBbaW5wdXRWYWx1ZSwgc2V0SW5wdXRWYWx1ZV0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtzaG93UmVzdWx0cywgc2V0U2hvd1Jlc3VsdHNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd0RlbGV0ZSwgc2V0U2hvd0RlbGV0ZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIC8qKiBAdHlwZSB7aW1wb3J0KCcuL2dlb2NvZGVyJykuUmVzdWx0c30gKi9cbiAgY29uc3QgaW5pdGlhbFJlc3VsdHM6IFJlc3VsdFtdID0gW107XG4gIGNvbnN0IFtyZXN1bHRzLCBzZXRSZXN1bHRzXSA9IHVzZVN0YXRlKGluaXRpYWxSZXN1bHRzKTtcbiAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoMCk7XG5cbiAgY29uc3QgY2xpZW50ID0gdXNlTWVtbygoKSA9PiBuZXcgTWFwYm94Q2xpZW50KG1hcGJveEFwaUFjY2Vzc1Rva2VuKSwgW21hcGJveEFwaUFjY2Vzc1Rva2VuXSk7XG5cbiAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICBldmVudCA9PiB7XG4gICAgICBjb25zdCBxdWVyeVN0cmluZyA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIHNldElucHV0VmFsdWUocXVlcnlTdHJpbmcpO1xuICAgICAgY29uc3QgcmVzdWx0Q29vcmRpbmF0ZXMgPSB0ZXN0Rm9yQ29vcmRpbmF0ZXMocXVlcnlTdHJpbmcpO1xuICAgICAgaWYgKHJlc3VsdENvb3JkaW5hdGVzWzBdKSB7XG4gICAgICAgIGNvbnN0IFtfLCBsYXRpdHVkZSwgbG9uZ2l0dWRlXSA9IHJlc3VsdENvb3JkaW5hdGVzO1xuICAgICAgICBzZXRSZXN1bHRzKFt7Y2VudGVyOiBbbGF0aXR1ZGUsIGxvbmdpdHVkZV0sIHBsYWNlX25hbWU6IHF1ZXJ5U3RyaW5nfV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGRlYm91bmNlVGltZW91dCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgICAgIGRlYm91bmNlVGltZW91dCA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGlmIChsaW1pdCA+IDAgJiYgQm9vbGVhbihxdWVyeVN0cmluZykpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50Lmdlb2NvZGVGb3J3YXJkKHF1ZXJ5U3RyaW5nLCB7bGltaXR9KTtcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmVudGl0eS5mZWF0dXJlcykge1xuICAgICAgICAgICAgICAgIHNldFNob3dSZXN1bHRzKHRydWUpO1xuICAgICAgICAgICAgICAgIHNldFJlc3VsdHMocmVzcG9uc2UuZW50aXR5LmZlYXR1cmVzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAvLyBUT0RPOiBzaG93IGdlb2NvZGUgZXJyb3JcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LCB0aW1lb3V0KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtjbGllbnQsIGxpbWl0LCB0aW1lb3V0LCBzZXRSZXN1bHRzLCBzZXRTaG93UmVzdWx0c11cbiAgKTtcblxuICBjb25zdCBvbkJsdXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRTaG93UmVzdWx0cyhmYWxzZSk7XG4gICAgfSwgdGltZW91dCk7XG4gIH0sIFtzZXRTaG93UmVzdWx0cywgdGltZW91dF0pO1xuXG4gIGNvbnN0IG9uRm9jdXMgPSB1c2VDYWxsYmFjaygoKSA9PiBzZXRTaG93UmVzdWx0cyh0cnVlKSwgW3NldFNob3dSZXN1bHRzXSk7XG5cbiAgY29uc3Qgb25JdGVtU2VsZWN0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICBpdGVtID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZpZXdwb3J0ID0gbmV3IFdlYk1lcmNhdG9yVmlld3BvcnQodmlld3BvcnQpO1xuICAgICAgY29uc3Qge2Jib3gsIGNlbnRlcn0gPSBpdGVtO1xuXG4gICAgICBjb25zdCBnb3RvVmlld3BvcnQgPSBiYm94XG4gICAgICAgID8gbmV3Vmlld3BvcnQuZml0Qm91bmRzKFtcbiAgICAgICAgICAgIFtiYm94WzBdLCBiYm94WzFdXSxcbiAgICAgICAgICAgIFtiYm94WzJdLCBiYm94WzNdXVxuICAgICAgICAgIF0pXG4gICAgICAgIDoge1xuICAgICAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXJbMF0sXG4gICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyWzFdLFxuICAgICAgICAgICAgem9vbTogcG9pbnRab29tXG4gICAgICAgICAgfTtcblxuICAgICAgY29uc3Qge2xvbmdpdHVkZSwgbGF0aXR1ZGUsIHpvb219ID0gZ290b1ZpZXdwb3J0O1xuXG4gICAgICBvblNlbGVjdGVkKHsuLi52aWV3cG9ydCwgLi4ue2xvbmdpdHVkZSwgbGF0aXR1ZGUsIHpvb20sIHRyYW5zaXRpb25EdXJhdGlvbn19LCBpdGVtKTtcblxuICAgICAgc2V0U2hvd1Jlc3VsdHMoZmFsc2UpO1xuICAgICAgc2V0SW5wdXRWYWx1ZShmb3JtYXRJdGVtKGl0ZW0pKTtcbiAgICAgIHNldFNob3dEZWxldGUodHJ1ZSk7XG4gICAgfSxcbiAgICBbdmlld3BvcnQsIG9uU2VsZWN0ZWQsIHRyYW5zaXRpb25EdXJhdGlvbiwgcG9pbnRab29tLCBmb3JtYXRJdGVtXVxuICApO1xuXG4gIGNvbnN0IG9uTWFya0RlbGV0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0U2hvd0RlbGV0ZShmYWxzZSk7XG4gICAgc2V0SW5wdXRWYWx1ZSgnJyk7XG4gICAgb25EZWxldGVNYXJrZXI/LigpO1xuICB9LCBbb25EZWxldGVNYXJrZXJdKTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICBlID0+IHtcbiAgICAgIGlmICghcmVzdWx0cyB8fCByZXN1bHRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKGUua2V5Q29kZSkge1xuICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19VUDpcbiAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4KHNlbGVjdGVkSW5kZXggPiAwID8gc2VsZWN0ZWRJbmRleCAtIDEgOiBzZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfRE9XTjpcbiAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4KHNlbGVjdGVkSW5kZXggPCByZXN1bHRzLmxlbmd0aCAtIDEgPyBzZWxlY3RlZEluZGV4ICsgMSA6IHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19FTlRFUjpcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfUkVUVVJOOlxuICAgICAgICAgIGlmIChyZXN1bHRzW3NlbGVjdGVkSW5kZXhdKSB7XG4gICAgICAgICAgICBvbkl0ZW1TZWxlY3RlZChyZXN1bHRzW3NlbGVjdGVkSW5kZXhdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSxcbiAgICBbcmVzdWx0cywgc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleCwgb25JdGVtU2VsZWN0ZWRdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ29udGFpbmVyIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSB3aWR0aD17d2lkdGh9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJnZW9jb2Rlci1pbnB1dFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdlb2NvZGVyLWlucHV0X19zZWFyY2hcIj5cbiAgICAgICAgICA8U2VhcmNoIGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPElucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAgIHZhbHVlPXtpbnB1dFZhbHVlfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtcbiAgICAgICAgICAgIGludGxcbiAgICAgICAgICAgICAgPyBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnZ2VvY29kZXIudGl0bGUnLCBkZWZhdWx0TWVzc2FnZTogUExBQ0VIT0xERVJ9KVxuICAgICAgICAgICAgICA6IFBMQUNFSE9MREVSXG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbW92ZS1yZXN1bHRcIj5cbiAgICAgICAgICAgIDxEZWxldGUgaGVpZ2h0PVwiMTJweFwiIG9uQ2xpY2s9e29uTWFya0RlbGV0ZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtzaG93UmVzdWx0cyA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnZW9jb2Rlci1yZXN1bHRzXCI+XG4gICAgICAgICAge3Jlc3VsdHMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2dlb2NvZGVyLWl0ZW0nLCB7YWN0aXZlOiBzZWxlY3RlZEluZGV4ID09PSBpbmRleH0pfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkl0ZW1TZWxlY3RlZChpdGVtKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2Zvcm1hdEl0ZW0oaXRlbSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApIDogbnVsbH1cbiAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGluamVjdEludGwoR2VvQ29kZXIpO1xuIl19
@@ -1,6 +1,6 @@
1
1
  import { ComponentType } from 'react';
2
- import { MapState } from '@kepler.gl/types';
3
- export declare function getUpdateVisDataPayload(lat: any, lon: any, text: any): (import("@kepler.gl/schemas").ParsedConfig | {
2
+ import { MapState, UiState } from '@kepler.gl/types';
3
+ export declare function getUpdateVisDataPayload(lat: any, lon: any, text: any): ({
4
4
  data: import("@kepler.gl/types").ProcessorResult;
5
5
  id: string;
6
6
  info: {
@@ -10,16 +10,22 @@ export declare function getUpdateVisDataPayload(lat: any, lon: any, text: any):
10
10
  };
11
11
  }[] | {
12
12
  keepExistingConfig: boolean;
13
- } | null)[];
13
+ })[];
14
14
  interface GeocoderPanelProps {
15
15
  isGeocoderEnabled: boolean;
16
16
  mapState: MapState;
17
+ uiState: UiState;
17
18
  mapboxApiAccessToken: string;
18
19
  updateVisData: Function;
19
20
  removeDataset: Function;
20
21
  updateMap: Function;
22
+ layerOrder: string[];
21
23
  transitionDuration?: number;
22
24
  width?: number;
25
+ appWidth: number;
26
+ className?: string;
27
+ index: number;
28
+ unsyncedViewports: boolean;
23
29
  }
24
30
  export default function GeocoderPanelFactory(): ComponentType<GeocoderPanelProps>;
25
31
  export {};