@kepler.gl/components 3.1.0-alpha.1 → 3.1.0-alpha.3

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 (725) hide show
  1. package/dist/bottom-widget.d.ts +19 -0
  2. package/dist/bottom-widget.js +184 -0
  3. package/dist/common/action-panel.d.ts +29 -0
  4. package/dist/common/action-panel.js +136 -0
  5. package/dist/common/animation-control/animation-control.d.ts +25 -0
  6. package/dist/common/animation-control/animation-control.js +96 -0
  7. package/dist/common/animation-control/animation-controller.d.ts +19 -0
  8. package/dist/common/animation-control/animation-controller.js +269 -0
  9. package/dist/common/animation-control/animation-speed-slider.d.ts +12 -0
  10. package/dist/common/animation-control/animation-speed-slider.js +50 -0
  11. package/dist/common/animation-control/animation-window-control.d.ts +20 -0
  12. package/dist/common/animation-control/animation-window-control.js +60 -0
  13. package/dist/common/animation-control/floating-time-display.d.ts +9 -0
  14. package/dist/common/animation-control/floating-time-display.js +132 -0
  15. package/dist/common/animation-control/play-control.d.ts +12 -0
  16. package/dist/common/animation-control/play-control.js +52 -0
  17. package/dist/common/animation-control/playback-controls.d.ts +48 -0
  18. package/dist/common/animation-control/playback-controls.js +156 -0
  19. package/dist/common/animation-control/reset-control.d.ts +9 -0
  20. package/dist/common/animation-control/reset-control.js +43 -0
  21. package/dist/common/animation-control/speed-control.d.ts +12 -0
  22. package/dist/common/animation-control/speed-control.js +53 -0
  23. package/dist/common/animation-control/window-action-control.d.ts +11 -0
  24. package/dist/common/animation-control/window-action-control.js +58 -0
  25. package/dist/common/checkbox.d.ts +36 -0
  26. package/dist/common/checkbox.js +105 -0
  27. package/dist/common/color-legend.d.ts +57 -0
  28. package/dist/common/color-legend.js +262 -0
  29. package/dist/common/column-stats-chart.d.ts +37 -0
  30. package/dist/common/column-stats-chart.js +359 -0
  31. package/dist/common/data-table/button.d.ts +8 -0
  32. package/dist/common/data-table/button.js +38 -0
  33. package/dist/common/data-table/canvas.d.ts +2 -0
  34. package/dist/common/data-table/canvas.js +26 -0
  35. package/dist/common/data-table/cell-size.d.ts +43 -0
  36. package/dist/common/data-table/cell-size.js +183 -0
  37. package/dist/common/data-table/display-format.d.ts +25 -0
  38. package/dist/common/data-table/display-format.js +126 -0
  39. package/dist/common/data-table/grid.d.ts +10 -0
  40. package/dist/common/data-table/grid.js +107 -0
  41. package/dist/common/data-table/header-cell.d.ts +28 -0
  42. package/dist/common/data-table/header-cell.js +149 -0
  43. package/dist/common/data-table/index.d.ts +101 -0
  44. package/dist/common/data-table/index.js +464 -0
  45. package/dist/common/data-table/option-dropdown.d.ts +28 -0
  46. package/dist/common/data-table/option-dropdown.js +160 -0
  47. package/dist/common/dataset-label.d.ts +10 -0
  48. package/dist/common/dataset-label.js +27 -0
  49. package/dist/common/error-boundary.d.ts +16 -0
  50. package/dist/common/error-boundary.js +59 -0
  51. package/dist/common/field-selector.d.ts +49 -0
  52. package/dist/common/field-selector.js +173 -0
  53. package/dist/common/field-token.d.ts +62 -0
  54. package/dist/common/field-token.js +43 -0
  55. package/dist/common/file-uploader/file-drop.d.ts +54 -0
  56. package/dist/common/file-uploader/file-drop.js +196 -0
  57. package/dist/common/file-uploader/file-upload-progress.d.ts +8 -0
  58. package/dist/common/file-uploader/file-upload-progress.js +86 -0
  59. package/dist/common/file-uploader/file-upload.d.ts +23 -0
  60. package/dist/common/file-uploader/file-upload.js +244 -0
  61. package/dist/common/file-uploader/upload-button.d.ts +8 -0
  62. package/dist/common/file-uploader/upload-button.js +59 -0
  63. package/dist/common/flex-container.d.ts +3 -0
  64. package/dist/common/flex-container.js +15 -0
  65. package/dist/common/histogram-plot.d.ts +13 -0
  66. package/dist/common/histogram-plot.js +232 -0
  67. package/dist/common/icon-button.d.ts +27 -0
  68. package/dist/common/icon-button.js +25 -0
  69. package/dist/common/icons/add.d.ts +9 -0
  70. package/dist/common/icons/add.js +41 -0
  71. package/dist/common/icons/anchor_window.d.ts +11 -0
  72. package/dist/common/icons/anchor_window.js +34 -0
  73. package/dist/common/icons/arrow-down-alt.d.ts +9 -0
  74. package/dist/common/icons/arrow-down-alt.js +41 -0
  75. package/dist/common/icons/arrow-down-full.d.ts +16 -0
  76. package/dist/common/icons/arrow-down-full.js +50 -0
  77. package/dist/common/icons/arrow-down-small.d.ts +14 -0
  78. package/dist/common/icons/arrow-down-small.js +54 -0
  79. package/dist/common/icons/arrow-down-solid.d.ts +9 -0
  80. package/dist/common/icons/arrow-down-solid.js +41 -0
  81. package/dist/common/icons/arrow-down.d.ts +9 -0
  82. package/dist/common/icons/arrow-down.js +41 -0
  83. package/dist/common/icons/arrow-left.d.ts +9 -0
  84. package/dist/common/icons/arrow-left.js +44 -0
  85. package/dist/common/icons/arrow-right.d.ts +9 -0
  86. package/dist/common/icons/arrow-right.js +41 -0
  87. package/dist/common/icons/arrow-up-alt.d.ts +9 -0
  88. package/dist/common/icons/arrow-up-alt.js +42 -0
  89. package/dist/common/icons/arrow-up-solid.d.ts +9 -0
  90. package/dist/common/icons/arrow-up-solid.js +41 -0
  91. package/dist/common/icons/arrow-up.d.ts +9 -0
  92. package/dist/common/icons/arrow-up.js +41 -0
  93. package/dist/common/icons/base.d.ts +29 -0
  94. package/dist/common/icons/base.js +79 -0
  95. package/dist/common/icons/bug.d.ts +9 -0
  96. package/dist/common/icons/bug.js +43 -0
  97. package/dist/common/icons/calendar.d.ts +10 -0
  98. package/dist/common/icons/calendar.js +49 -0
  99. package/dist/common/icons/cancel.d.ts +9 -0
  100. package/dist/common/icons/cancel.js +41 -0
  101. package/dist/common/icons/checkmark.d.ts +10 -0
  102. package/dist/common/icons/checkmark.js +47 -0
  103. package/dist/common/icons/clipboard.d.ts +9 -0
  104. package/dist/common/icons/clipboard.js +42 -0
  105. package/dist/common/icons/clock.d.ts +9 -0
  106. package/dist/common/icons/clock.js +43 -0
  107. package/dist/common/icons/close.d.ts +9 -0
  108. package/dist/common/icons/close.js +46 -0
  109. package/dist/common/icons/code-alt.d.ts +9 -0
  110. package/dist/common/icons/code-alt.js +44 -0
  111. package/dist/common/icons/copy.d.ts +9 -0
  112. package/dist/common/icons/copy.js +46 -0
  113. package/dist/common/icons/crosshairs.d.ts +9 -0
  114. package/dist/common/icons/crosshairs.js +44 -0
  115. package/dist/common/icons/cube-3d.d.ts +9 -0
  116. package/dist/common/icons/cube-3d.js +45 -0
  117. package/dist/common/icons/cursor-click.d.ts +9 -0
  118. package/dist/common/icons/cursor-click.js +45 -0
  119. package/dist/common/icons/cursor-point.d.ts +14 -0
  120. package/dist/common/icons/cursor-point.js +51 -0
  121. package/dist/common/icons/data-table.d.ts +10 -0
  122. package/dist/common/icons/data-table.js +42 -0
  123. package/dist/common/icons/db.d.ts +10 -0
  124. package/dist/common/icons/db.js +42 -0
  125. package/dist/common/icons/delete.d.ts +9 -0
  126. package/dist/common/icons/delete.js +43 -0
  127. package/dist/common/icons/docs.d.ts +9 -0
  128. package/dist/common/icons/docs.js +57 -0
  129. package/dist/common/icons/drag-n-drop.d.ts +9 -0
  130. package/dist/common/icons/drag-n-drop.js +43 -0
  131. package/dist/common/icons/draw-polygon.d.ts +10 -0
  132. package/dist/common/icons/draw-polygon.js +61 -0
  133. package/dist/common/icons/edit.d.ts +14 -0
  134. package/dist/common/icons/edit.js +49 -0
  135. package/dist/common/icons/effects/brightness-contrast.d.ts +14 -0
  136. package/dist/common/icons/effects/brightness-contrast.js +70 -0
  137. package/dist/common/icons/effects/color-halftone.d.ts +14 -0
  138. package/dist/common/icons/effects/color-halftone.js +109 -0
  139. package/dist/common/icons/effects/dot-screen.d.ts +14 -0
  140. package/dist/common/icons/effects/dot-screen.js +104 -0
  141. package/dist/common/icons/effects/edge-work.d.ts +14 -0
  142. package/dist/common/icons/effects/edge-work.js +63 -0
  143. package/dist/common/icons/effects/hexagonal-pixelate.d.ts +14 -0
  144. package/dist/common/icons/effects/hexagonal-pixelate.js +130 -0
  145. package/dist/common/icons/effects/hue-saturation.d.ts +14 -0
  146. package/dist/common/icons/effects/hue-saturation.js +61 -0
  147. package/dist/common/icons/effects/ink.d.ts +14 -0
  148. package/dist/common/icons/effects/ink.js +60 -0
  149. package/dist/common/icons/effects/light-and-shadow.d.ts +14 -0
  150. package/dist/common/icons/effects/light-and-shadow.js +49 -0
  151. package/dist/common/icons/effects/magic-wand.d.ts +14 -0
  152. package/dist/common/icons/effects/magic-wand.js +61 -0
  153. package/dist/common/icons/effects/magnify.d.ts +14 -0
  154. package/dist/common/icons/effects/magnify.js +68 -0
  155. package/dist/common/icons/effects/noise.d.ts +14 -0
  156. package/dist/common/icons/effects/noise.js +114 -0
  157. package/dist/common/icons/effects/sepia.d.ts +14 -0
  158. package/dist/common/icons/effects/sepia.js +61 -0
  159. package/dist/common/icons/effects/tilt-shift.d.ts +14 -0
  160. package/dist/common/icons/effects/tilt-shift.js +70 -0
  161. package/dist/common/icons/effects/triangle-blur.d.ts +14 -0
  162. package/dist/common/icons/effects/triangle-blur.js +65 -0
  163. package/dist/common/icons/effects/vibrance.d.ts +14 -0
  164. package/dist/common/icons/effects/vibrance.js +61 -0
  165. package/dist/common/icons/effects/vignette.d.ts +14 -0
  166. package/dist/common/icons/effects/vignette.js +54 -0
  167. package/dist/common/icons/effects/zoom-blur.d.ts +14 -0
  168. package/dist/common/icons/effects/zoom-blur.js +89 -0
  169. package/dist/common/icons/email.d.ts +9 -0
  170. package/dist/common/icons/email.js +45 -0
  171. package/dist/common/icons/expand.d.ts +9 -0
  172. package/dist/common/icons/expand.js +43 -0
  173. package/dist/common/icons/eye-seen.d.ts +9 -0
  174. package/dist/common/icons/eye-seen.js +43 -0
  175. package/dist/common/icons/eye-unseen.d.ts +9 -0
  176. package/dist/common/icons/eye-unseen.js +43 -0
  177. package/dist/common/icons/file-type.d.ts +8 -0
  178. package/dist/common/icons/file-type.js +35 -0
  179. package/dist/common/icons/file.d.ts +9 -0
  180. package/dist/common/icons/file.js +41 -0
  181. package/dist/common/icons/files.d.ts +9 -0
  182. package/dist/common/icons/files.js +41 -0
  183. package/dist/common/icons/filter-funnel.d.ts +9 -0
  184. package/dist/common/icons/filter-funnel.js +41 -0
  185. package/dist/common/icons/free-window.d.ts +4 -0
  186. package/dist/common/icons/free-window.js +44 -0
  187. package/dist/common/icons/gear.d.ts +9 -0
  188. package/dist/common/icons/gear.js +43 -0
  189. package/dist/common/icons/globe.d.ts +15 -0
  190. package/dist/common/icons/globe.js +54 -0
  191. package/dist/common/icons/hash.d.ts +9 -0
  192. package/dist/common/icons/hash.js +41 -0
  193. package/dist/common/icons/help.d.ts +13 -0
  194. package/dist/common/icons/help.js +51 -0
  195. package/dist/common/icons/histogram.d.ts +9 -0
  196. package/dist/common/icons/histogram.js +41 -0
  197. package/dist/common/icons/index.d.ts +106 -0
  198. package/dist/common/icons/index.js +740 -0
  199. package/dist/common/icons/info.d.ts +12 -0
  200. package/dist/common/icons/info.js +54 -0
  201. package/dist/common/icons/layers.d.ts +9 -0
  202. package/dist/common/icons/layers.js +41 -0
  203. package/dist/common/icons/left-arrow.d.ts +9 -0
  204. package/dist/common/icons/left-arrow.js +44 -0
  205. package/dist/common/icons/legend.d.ts +9 -0
  206. package/dist/common/icons/legend.js +41 -0
  207. package/dist/common/icons/line-chart.d.ts +9 -0
  208. package/dist/common/icons/line-chart.js +41 -0
  209. package/dist/common/icons/location-marker.d.ts +14 -0
  210. package/dist/common/icons/location-marker.js +59 -0
  211. package/dist/common/icons/login.d.ts +9 -0
  212. package/dist/common/icons/login.js +44 -0
  213. package/dist/common/icons/logout.d.ts +9 -0
  214. package/dist/common/icons/logout.js +43 -0
  215. package/dist/common/icons/map-icon.d.ts +11 -0
  216. package/dist/common/icons/map-icon.js +48 -0
  217. package/dist/common/icons/map.d.ts +11 -0
  218. package/dist/common/icons/map.js +48 -0
  219. package/dist/common/icons/messages.d.ts +9 -0
  220. package/dist/common/icons/messages.js +41 -0
  221. package/dist/common/icons/minus.d.ts +9 -0
  222. package/dist/common/icons/minus.js +41 -0
  223. package/dist/common/icons/moon.d.ts +14 -0
  224. package/dist/common/icons/moon.js +59 -0
  225. package/dist/common/icons/order-by-dataset.d.ts +4 -0
  226. package/dist/common/icons/order-by-dataset.js +46 -0
  227. package/dist/common/icons/order-by-list.d.ts +4 -0
  228. package/dist/common/icons/order-by-list.js +38 -0
  229. package/dist/common/icons/pause.d.ts +9 -0
  230. package/dist/common/icons/pause.js +41 -0
  231. package/dist/common/icons/picture.d.ts +9 -0
  232. package/dist/common/icons/picture.js +41 -0
  233. package/dist/common/icons/pin.d.ts +9 -0
  234. package/dist/common/icons/pin.js +45 -0
  235. package/dist/common/icons/play.d.ts +9 -0
  236. package/dist/common/icons/play.js +41 -0
  237. package/dist/common/icons/polygon.d.ts +10 -0
  238. package/dist/common/icons/polygon.js +63 -0
  239. package/dist/common/icons/rectangle.d.ts +10 -0
  240. package/dist/common/icons/rectangle.js +64 -0
  241. package/dist/common/icons/reduce.d.ts +9 -0
  242. package/dist/common/icons/reduce.js +44 -0
  243. package/dist/common/icons/reset.d.ts +9 -0
  244. package/dist/common/icons/reset.js +41 -0
  245. package/dist/common/icons/rocket.d.ts +9 -0
  246. package/dist/common/icons/rocket.js +41 -0
  247. package/dist/common/icons/save.d.ts +9 -0
  248. package/dist/common/icons/save.js +43 -0
  249. package/dist/common/icons/save2.d.ts +9 -0
  250. package/dist/common/icons/save2.js +47 -0
  251. package/dist/common/icons/search.d.ts +9 -0
  252. package/dist/common/icons/search.js +43 -0
  253. package/dist/common/icons/settings.d.ts +9 -0
  254. package/dist/common/icons/settings.js +43 -0
  255. package/dist/common/icons/share.d.ts +9 -0
  256. package/dist/common/icons/share.js +41 -0
  257. package/dist/common/icons/split.d.ts +9 -0
  258. package/dist/common/icons/split.js +69 -0
  259. package/dist/common/icons/square-select.d.ts +9 -0
  260. package/dist/common/icons/square-select.js +43 -0
  261. package/dist/common/icons/sun.d.ts +14 -0
  262. package/dist/common/icons/sun.js +75 -0
  263. package/dist/common/icons/sunrise.d.ts +14 -0
  264. package/dist/common/icons/sunrise.js +71 -0
  265. package/dist/common/icons/sunset.d.ts +14 -0
  266. package/dist/common/icons/sunset.js +71 -0
  267. package/dist/common/icons/timeline-marker.d.ts +17 -0
  268. package/dist/common/icons/timeline-marker.js +56 -0
  269. package/dist/common/icons/trash.d.ts +10 -0
  270. package/dist/common/icons/trash.js +44 -0
  271. package/dist/common/icons/vert-dots.d.ts +9 -0
  272. package/dist/common/icons/vert-dots.js +79 -0
  273. package/dist/common/icons/vert-three-dots.d.ts +9 -0
  274. package/dist/common/icons/vert-three-dots.js +54 -0
  275. package/dist/common/icons/warning-sign.d.ts +15 -0
  276. package/dist/common/icons/warning-sign.js +61 -0
  277. package/dist/common/icons/warning.d.ts +10 -0
  278. package/dist/common/icons/warning.js +55 -0
  279. package/dist/common/image-preview.d.ts +15 -0
  280. package/dist/common/image-preview.js +60 -0
  281. package/dist/common/index.d.ts +4 -0
  282. package/dist/common/index.js +277 -0
  283. package/dist/common/info-helper.d.ts +10 -0
  284. package/dist/common/info-helper.js +61 -0
  285. package/dist/common/item-selector/accessor.d.ts +7 -0
  286. package/dist/common/item-selector/accessor.js +37 -0
  287. package/dist/common/item-selector/chickleted-input.d.ts +23 -0
  288. package/dist/common/item-selector/chickleted-input.js +153 -0
  289. package/dist/common/item-selector/dropdown-list.d.ts +74 -0
  290. package/dist/common/item-selector/dropdown-list.js +260 -0
  291. package/dist/common/item-selector/dropdown-select.d.ts +33 -0
  292. package/dist/common/item-selector/dropdown-select.js +79 -0
  293. package/dist/common/item-selector/item-selector.d.ts +82 -0
  294. package/dist/common/item-selector/item-selector.js +252 -0
  295. package/dist/common/item-selector/typeahead.d.ts +126 -0
  296. package/dist/common/item-selector/typeahead.js +433 -0
  297. package/dist/common/line-chart.d.ts +34 -0
  298. package/dist/common/line-chart.js +120 -0
  299. package/dist/common/loading-spinner.d.ts +10 -0
  300. package/dist/common/loading-spinner.js +51 -0
  301. package/dist/common/logo.d.ts +8 -0
  302. package/dist/common/logo.js +68 -0
  303. package/dist/common/map-layer-selector.d.ts +13 -0
  304. package/dist/common/map-layer-selector.js +38 -0
  305. package/dist/common/modal.d.ts +64 -0
  306. package/dist/common/modal.js +171 -0
  307. package/dist/common/portaled.d.ts +583 -0
  308. package/dist/common/portaled.js +285 -0
  309. package/dist/common/progress-bar.d.ts +12 -0
  310. package/dist/common/progress-bar.js +47 -0
  311. package/dist/common/radius-legend.d.ts +10 -0
  312. package/dist/common/radius-legend.js +132 -0
  313. package/dist/common/range-brush.d.ts +19 -0
  314. package/dist/common/range-brush.js +266 -0
  315. package/dist/common/range-plot.d.ts +41 -0
  316. package/dist/common/range-plot.js +207 -0
  317. package/dist/common/range-slider-timeline-panel.d.ts +11 -0
  318. package/dist/common/range-slider-timeline-panel.js +43 -0
  319. package/dist/common/range-slider-timeline.d.ts +7 -0
  320. package/dist/common/range-slider-timeline.js +114 -0
  321. package/dist/common/range-slider.d.ts +42 -0
  322. package/dist/common/range-slider.js +309 -0
  323. package/dist/common/slider/mouse-event.d.ts +27 -0
  324. package/dist/common/slider/mouse-event.js +105 -0
  325. package/dist/common/slider/slider-bar-handle.d.ts +29 -0
  326. package/dist/common/slider/slider-bar-handle.js +91 -0
  327. package/dist/common/slider/slider-handle.d.ts +33 -0
  328. package/dist/common/slider/slider-handle.js +137 -0
  329. package/dist/common/slider/slider.d.ts +72 -0
  330. package/dist/common/slider/slider.js +209 -0
  331. package/dist/common/styled-components.d.ts +159 -0
  332. package/dist/common/styled-components.js +398 -0
  333. package/dist/common/switch.d.ts +16 -0
  334. package/dist/common/switch.js +21 -0
  335. package/dist/common/sync-timeline-control.d.ts +28 -0
  336. package/dist/common/sync-timeline-control.js +61 -0
  337. package/dist/common/time-range-slider-time-title.d.ts +9 -0
  338. package/dist/common/time-range-slider-time-title.js +62 -0
  339. package/dist/common/time-range-slider.d.ts +42 -0
  340. package/dist/common/time-range-slider.js +132 -0
  341. package/dist/common/time-slider-marker.d.ts +14 -0
  342. package/dist/common/time-slider-marker.js +116 -0
  343. package/dist/common/timeline-slider.d.ts +13 -0
  344. package/dist/common/timeline-slider.js +132 -0
  345. package/dist/common/tippy-tooltip.d.ts +6 -0
  346. package/dist/common/tippy-tooltip.js +135 -0
  347. package/dist/common/toolbar-item.d.ts +14 -0
  348. package/dist/common/toolbar-item.js +60 -0
  349. package/dist/common/toolbar.d.ts +5 -0
  350. package/dist/common/toolbar.js +27 -0
  351. package/dist/common/vertical-toolbar.d.ts +3 -0
  352. package/dist/common/vertical-toolbar.js +16 -0
  353. package/dist/connect/keplergl-connect.d.ts +9 -0
  354. package/dist/connect/keplergl-connect.js +44 -0
  355. package/dist/connect/with-local-selector.d.ts +6 -0
  356. package/dist/connect/with-local-selector.js +86 -0
  357. package/dist/container.d.ts +39 -0
  358. package/dist/container.js +181 -0
  359. package/dist/context.d.ts +27 -0
  360. package/dist/context.js +44 -0
  361. package/dist/dnd-context.d.ts +13 -0
  362. package/dist/dnd-context.js +124 -0
  363. package/dist/editor/editor.d.ts +31 -0
  364. package/dist/editor/editor.js +201 -0
  365. package/dist/editor/feature-action-panel.d.ts +32 -0
  366. package/dist/editor/feature-action-panel.js +148 -0
  367. package/dist/effects/compact-color-picker.d.ts +10 -0
  368. package/dist/effects/compact-color-picker.js +111 -0
  369. package/dist/effects/effect-configurator.d.ts +17 -0
  370. package/dist/effects/effect-configurator.js +275 -0
  371. package/dist/effects/effect-list.d.ts +20 -0
  372. package/dist/effects/effect-list.js +129 -0
  373. package/dist/effects/effect-manager.d.ts +27 -0
  374. package/dist/effects/effect-manager.js +120 -0
  375. package/dist/effects/effect-panel-header.d.ts +45 -0
  376. package/dist/effects/effect-panel-header.js +180 -0
  377. package/dist/effects/effect-panel.d.ts +24 -0
  378. package/dist/effects/effect-panel.js +112 -0
  379. package/dist/effects/effect-time-configurator.d.ts +20 -0
  380. package/dist/effects/effect-time-configurator.js +302 -0
  381. package/dist/effects/effect-time-selector.d.ts +16 -0
  382. package/dist/effects/effect-time-selector.js +153 -0
  383. package/dist/effects/effect-time-slider.d.ts +34 -0
  384. package/dist/effects/effect-time-slider.js +199 -0
  385. package/dist/effects/effect-type-dropdown-list.d.ts +18 -0
  386. package/dist/effects/effect-type-dropdown-list.js +66 -0
  387. package/dist/effects/effect-type-list-item.d.ts +22 -0
  388. package/dist/effects/effect-type-list-item.js +87 -0
  389. package/dist/effects/effect-type-selector.d.ts +30 -0
  390. package/dist/effects/effect-type-selector.js +77 -0
  391. package/dist/effects/side-panel-title.d.ts +7 -0
  392. package/dist/effects/side-panel-title.js +37 -0
  393. package/dist/effects/timezone-selector.d.ts +19 -0
  394. package/dist/effects/timezone-selector.js +58 -0
  395. package/dist/filter-animation-controller.d.ts +17 -0
  396. package/dist/filter-animation-controller.js +77 -0
  397. package/dist/filters/components.d.ts +3 -0
  398. package/dist/filters/components.js +14 -0
  399. package/dist/filters/filter-panels/filter-panel-with-field-select.d.ts +10 -0
  400. package/dist/filters/filter-panels/filter-panel-with-field-select.js +78 -0
  401. package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +54 -0
  402. package/dist/filters/filter-panels/filter-synced-dataset-panel.js +261 -0
  403. package/dist/filters/filter-panels/multi-select-filter-panel.d.ts +9 -0
  404. package/dist/filters/filter-panels/multi-select-filter-panel.js +49 -0
  405. package/dist/filters/filter-panels/new-filter-panel.d.ts +12 -0
  406. package/dist/filters/filter-panels/new-filter-panel.js +67 -0
  407. package/dist/filters/filter-panels/polygon-filter-panel.d.ts +9 -0
  408. package/dist/filters/filter-panels/polygon-filter-panel.js +68 -0
  409. package/dist/filters/filter-panels/range-filter-panel.d.ts +9 -0
  410. package/dist/filters/filter-panels/range-filter-panel.js +54 -0
  411. package/dist/filters/filter-panels/single-select-filter-panel.d.ts +9 -0
  412. package/dist/filters/filter-panels/single-select-filter-panel.js +49 -0
  413. package/dist/filters/filter-panels/time-range-filter-panel.d.ts +12 -0
  414. package/dist/filters/filter-panels/time-range-filter-panel.js +130 -0
  415. package/dist/filters/filter-panels/time-synced-field-selector.d.ts +7 -0
  416. package/dist/filters/filter-panels/time-synced-field-selector.js +28 -0
  417. package/dist/filters/filter-panels/types.d.ts +40 -0
  418. package/dist/filters/filter-panels/types.js +6 -0
  419. package/dist/filters/index.d.ts +7 -0
  420. package/dist/filters/index.js +56 -0
  421. package/dist/filters/multi-select-filter.d.ts +3 -0
  422. package/dist/filters/multi-select-filter.js +31 -0
  423. package/dist/filters/polygon-filter.d.ts +4 -0
  424. package/dist/filters/polygon-filter.js +77 -0
  425. package/dist/filters/range-filter.d.ts +8 -0
  426. package/dist/filters/range-filter.js +35 -0
  427. package/dist/filters/single-select-filter.d.ts +3 -0
  428. package/dist/filters/single-select-filter.js +40 -0
  429. package/dist/filters/time-range-filter.d.ts +35 -0
  430. package/dist/filters/time-range-filter.js +67 -0
  431. package/dist/filters/time-widget-top.d.ts +8 -0
  432. package/dist/filters/time-widget-top.js +88 -0
  433. package/dist/filters/time-widget.d.ts +10 -0
  434. package/dist/filters/time-widget.js +101 -0
  435. package/dist/filters/types.d.ts +67 -0
  436. package/dist/filters/types.js +6 -0
  437. package/dist/geocoder/geocoder.d.ts +31 -0
  438. package/dist/geocoder/geocoder.js +269 -0
  439. package/dist/geocoder-panel.d.ts +22 -0
  440. package/dist/geocoder-panel.js +197 -0
  441. package/dist/hooks/use-cloud-list-provider.d.ts +11 -0
  442. package/dist/hooks/use-cloud-list-provider.js +47 -0
  443. package/dist/hooks/use-dnd-effects.d.ts +9 -0
  444. package/dist/hooks/use-dnd-effects.js +69 -0
  445. package/dist/hooks/use-dnd-layers.d.ts +9 -0
  446. package/dist/hooks/use-dnd-layers.js +80 -0
  447. package/dist/hooks/use-feature-flags.d.ts +5 -0
  448. package/dist/hooks/use-feature-flags.js +17 -0
  449. package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +16 -0
  450. package/dist/hooks/use-fetch-vector-tile-metadata.js +109 -0
  451. package/dist/hooks/use-on-click-outside.d.ts +2 -0
  452. package/dist/hooks/use-on-click-outside.js +36 -0
  453. package/dist/index.d.ts +253 -0
  454. package/dist/index.js +2608 -0
  455. package/dist/injector.d.ts +29 -0
  456. package/dist/injector.js +151 -0
  457. package/dist/kepler-gl.d.ts +325 -0
  458. package/dist/kepler-gl.js +504 -0
  459. package/dist/layer-animation-controller.d.ts +13 -0
  460. package/dist/layer-animation-controller.js +54 -0
  461. package/dist/map/coordinate-info.d.ts +7 -0
  462. package/dist/map/coordinate-info.js +42 -0
  463. package/dist/map/effects/effect-control.d.ts +16 -0
  464. package/dist/map/effects/effect-control.js +52 -0
  465. package/dist/map/layer-hover-info.d.ts +29 -0
  466. package/dist/map/layer-hover-info.js +222 -0
  467. package/dist/map/layer-selector-panel.d.ts +21 -0
  468. package/dist/map/layer-selector-panel.js +85 -0
  469. package/dist/map/lazy-tippy.d.ts +8 -0
  470. package/dist/map/lazy-tippy.js +61 -0
  471. package/dist/map/locale-panel.d.ts +16 -0
  472. package/dist/map/locale-panel.js +77 -0
  473. package/dist/map/map-control-panel.d.ts +20 -0
  474. package/dist/map/map-control-panel.js +139 -0
  475. package/dist/map/map-control-toolbar.d.ts +2 -0
  476. package/dist/map/map-control-toolbar.js +18 -0
  477. package/dist/map/map-control-tooltip.d.ts +8 -0
  478. package/dist/map/map-control-tooltip.js +34 -0
  479. package/dist/map/map-control.d.ts +56 -0
  480. package/dist/map/map-control.js +71 -0
  481. package/dist/map/map-draw-panel.d.ts +20 -0
  482. package/dist/map/map-draw-panel.js +98 -0
  483. package/dist/map/map-legend-panel.d.ts +65 -0
  484. package/dist/map/map-legend-panel.js +155 -0
  485. package/dist/map/map-legend.d.ts +90 -0
  486. package/dist/map/map-legend.js +369 -0
  487. package/dist/map/map-popover-content.d.ts +28 -0
  488. package/dist/map/map-popover-content.js +28 -0
  489. package/dist/map/map-popover.d.ts +33 -0
  490. package/dist/map/map-popover.js +185 -0
  491. package/dist/map/split-map-button.d.ts +20 -0
  492. package/dist/map/split-map-button.js +65 -0
  493. package/dist/map/toggle-3d-button.d.ts +17 -0
  494. package/dist/map/toggle-3d-button.js +55 -0
  495. package/dist/map-container.d.ts +73 -0
  496. package/dist/map-container.js +903 -0
  497. package/dist/map-view-state-context.d.ts +17 -0
  498. package/dist/map-view-state-context.js +99 -0
  499. package/dist/maps-layout.d.ts +12 -0
  500. package/dist/maps-layout.js +43 -0
  501. package/dist/modal-container.d.ts +59 -0
  502. package/dist/modal-container.js +434 -0
  503. package/dist/modals/add-map-style-modal.d.ts +17 -0
  504. package/dist/modals/add-map-style-modal.js +198 -0
  505. package/dist/modals/cloud-components/cloud-header.d.ts +12 -0
  506. package/dist/modals/cloud-components/cloud-header.js +60 -0
  507. package/dist/modals/cloud-components/cloud-item.d.ts +5 -0
  508. package/dist/modals/cloud-components/cloud-item.js +59 -0
  509. package/dist/modals/cloud-components/cloud-item.spec.d.ts +1 -0
  510. package/dist/modals/cloud-components/cloud-item.spec.js +92 -0
  511. package/dist/modals/cloud-components/cloud-maps.d.ts +8 -0
  512. package/dist/modals/cloud-components/cloud-maps.js +47 -0
  513. package/dist/modals/cloud-components/cloud-maps.spec.d.ts +1 -0
  514. package/dist/modals/cloud-components/cloud-maps.spec.js +98 -0
  515. package/dist/modals/cloud-components/provider-loading.d.ts +2 -0
  516. package/dist/modals/cloud-components/provider-loading.js +20 -0
  517. package/dist/modals/cloud-components/provider-select.d.ts +7 -0
  518. package/dist/modals/cloud-components/provider-select.js +30 -0
  519. package/dist/modals/cloud-tile.d.ts +15 -0
  520. package/dist/modals/cloud-tile.js +203 -0
  521. package/dist/modals/data-table-modal.d.ts +37 -0
  522. package/dist/modals/data-table-modal.js +264 -0
  523. package/dist/modals/delete-data-modal.d.ts +10 -0
  524. package/dist/modals/delete-data-modal.js +41 -0
  525. package/dist/modals/error-display.d.ts +6 -0
  526. package/dist/modals/error-display.js +33 -0
  527. package/dist/modals/export-data-modal.d.ts +23 -0
  528. package/dist/modals/export-data-modal.js +187 -0
  529. package/dist/modals/export-image-modal.d.ts +16 -0
  530. package/dist/modals/export-image-modal.js +122 -0
  531. package/dist/modals/export-map-modal/components.d.ts +8 -0
  532. package/dist/modals/export-map-modal/components.js +34 -0
  533. package/dist/modals/export-map-modal/export-html-map.d.ts +12 -0
  534. package/dist/modals/export-map-modal/export-html-map.js +126 -0
  535. package/dist/modals/export-map-modal/export-json-map.d.ts +9 -0
  536. package/dist/modals/export-map-modal/export-json-map.js +81 -0
  537. package/dist/modals/export-map-modal/export-map-modal.d.ts +27 -0
  538. package/dist/modals/export-map-modal/export-map-modal.js +84 -0
  539. package/dist/modals/image-modal-container.d.ts +16 -0
  540. package/dist/modals/image-modal-container.js +58 -0
  541. package/dist/modals/load-data-modal.d.ts +44 -0
  542. package/dist/modals/load-data-modal.js +98 -0
  543. package/dist/modals/load-storage-map.d.ts +9 -0
  544. package/dist/modals/load-storage-map.js +80 -0
  545. package/dist/modals/load-storage-map.spec.d.ts +1 -0
  546. package/dist/modals/load-storage-map.spec.js +216 -0
  547. package/dist/modals/loading-dialog.d.ts +7 -0
  548. package/dist/modals/loading-dialog.js +37 -0
  549. package/dist/modals/modal-dialog.d.ts +2 -0
  550. package/dist/modals/modal-dialog.js +16 -0
  551. package/dist/modals/modal-tabs.d.ts +15 -0
  552. package/dist/modals/modal-tabs.js +75 -0
  553. package/dist/modals/overwrite-map-modal.d.ts +16 -0
  554. package/dist/modals/overwrite-map-modal.js +84 -0
  555. package/dist/modals/save-map-modal.d.ts +28 -0
  556. package/dist/modals/save-map-modal.js +179 -0
  557. package/dist/modals/save-map-modal.spec.d.ts +1 -0
  558. package/dist/modals/save-map-modal.spec.js +195 -0
  559. package/dist/modals/share-map-modal.d.ts +26 -0
  560. package/dist/modals/share-map-modal.js +169 -0
  561. package/dist/modals/share-map-modal.spec.d.ts +1 -0
  562. package/dist/modals/share-map-modal.spec.js +173 -0
  563. package/dist/modals/status-panel.d.ts +13 -0
  564. package/dist/modals/status-panel.js +65 -0
  565. package/dist/modals/storage-map-viewer.d.ts +21 -0
  566. package/dist/modals/storage-map-viewer.js +98 -0
  567. package/dist/modals/tilesets-modals/common.d.ts +12 -0
  568. package/dist/modals/tilesets-modals/common.js +6 -0
  569. package/dist/modals/tilesets-modals/load-data-footer.d.ts +11 -0
  570. package/dist/modals/tilesets-modals/load-data-footer.js +41 -0
  571. package/dist/modals/tilesets-modals/load-tileset.d.ts +16 -0
  572. package/dist/modals/tilesets-modals/load-tileset.js +114 -0
  573. package/dist/modals/tilesets-modals/tileset-icon.d.ts +9 -0
  574. package/dist/modals/tilesets-modals/tileset-icon.js +32 -0
  575. package/dist/modals/tilesets-modals/tileset-vector-form.d.ts +13 -0
  576. package/dist/modals/tilesets-modals/tileset-vector-form.js +165 -0
  577. package/dist/notification-panel/notification-item.d.ts +67 -0
  578. package/dist/notification-panel/notification-item.js +150 -0
  579. package/dist/notification-panel.d.ts +13 -0
  580. package/dist/notification-panel.js +61 -0
  581. package/dist/plot-container.d.ts +24 -0
  582. package/dist/plot-container.js +223 -0
  583. package/dist/side-panel/add-by-dataset-button.d.ts +12 -0
  584. package/dist/side-panel/add-by-dataset-button.js +128 -0
  585. package/dist/side-panel/cloud-storage-dropdown.d.ts +6 -0
  586. package/dist/side-panel/cloud-storage-dropdown.js +40 -0
  587. package/dist/side-panel/common/dataset-info.d.ts +11 -0
  588. package/dist/side-panel/common/dataset-info.js +34 -0
  589. package/dist/side-panel/common/dataset-tag.d.ts +17 -0
  590. package/dist/side-panel/common/dataset-tag.js +62 -0
  591. package/dist/side-panel/common/dataset-title.d.ts +22 -0
  592. package/dist/side-panel/common/dataset-title.js +143 -0
  593. package/dist/side-panel/common/source-data-catalog.d.ts +29 -0
  594. package/dist/side-panel/common/source-data-catalog.js +49 -0
  595. package/dist/side-panel/common/source-data-selector-content.d.ts +8 -0
  596. package/dist/side-panel/common/source-data-selector-content.js +65 -0
  597. package/dist/side-panel/common/source-data-selector.d.ts +8 -0
  598. package/dist/side-panel/common/source-data-selector.js +41 -0
  599. package/dist/side-panel/common/source-selector.d.ts +21 -0
  600. package/dist/side-panel/common/source-selector.js +57 -0
  601. package/dist/side-panel/common/types.d.ts +44 -0
  602. package/dist/side-panel/common/types.js +6 -0
  603. package/dist/side-panel/custom-panel.d.ts +13 -0
  604. package/dist/side-panel/custom-panel.js +39 -0
  605. package/dist/side-panel/filter-manager.d.ts +32 -0
  606. package/dist/side-panel/filter-manager.js +203 -0
  607. package/dist/side-panel/filter-panel/add-filter-button.d.ts +8 -0
  608. package/dist/side-panel/filter-panel/add-filter-button.js +28 -0
  609. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +26 -0
  610. package/dist/side-panel/filter-panel/filter-panel-header.js +53 -0
  611. package/dist/side-panel/filter-panel/filter-panel.d.ts +23 -0
  612. package/dist/side-panel/filter-panel/filter-panel.js +93 -0
  613. package/dist/side-panel/interaction-manager.d.ts +18 -0
  614. package/dist/side-panel/interaction-manager.js +45 -0
  615. package/dist/side-panel/interaction-panel/brush-config.d.ts +15 -0
  616. package/dist/side-panel/interaction-panel/brush-config.js +41 -0
  617. package/dist/side-panel/interaction-panel/interaction-panel.d.ts +20 -0
  618. package/dist/side-panel/interaction-panel/interaction-panel.js +115 -0
  619. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +30 -0
  620. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +162 -0
  621. package/dist/side-panel/interaction-panel/tooltip-config.d.ts +37 -0
  622. package/dist/side-panel/interaction-panel/tooltip-config.js +150 -0
  623. package/dist/side-panel/layer-manager.d.ts +44 -0
  624. package/dist/side-panel/layer-manager.js +200 -0
  625. package/dist/side-panel/layer-panel/add-layer-button.d.ts +8 -0
  626. package/dist/side-panel/layer-panel/add-layer-button.js +28 -0
  627. package/dist/side-panel/layer-panel/aggr-scale-selector.d.ts +13 -0
  628. package/dist/side-panel/layer-panel/aggr-scale-selector.js +35 -0
  629. package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +26 -0
  630. package/dist/side-panel/layer-panel/channel-by-value-selector.js +68 -0
  631. package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +33 -0
  632. package/dist/side-panel/layer-panel/color-breaks-panel.js +153 -0
  633. package/dist/side-panel/layer-panel/color-palette-preset.d.ts +9 -0
  634. package/dist/side-panel/layer-panel/color-palette-preset.js +45 -0
  635. package/dist/side-panel/layer-panel/color-palette.d.ts +12 -0
  636. package/dist/side-panel/layer-panel/color-palette.js +69 -0
  637. package/dist/side-panel/layer-panel/color-range-selector.d.ts +39 -0
  638. package/dist/side-panel/layer-panel/color-range-selector.js +244 -0
  639. package/dist/side-panel/layer-panel/color-scale-selector.d.ts +35 -0
  640. package/dist/side-panel/layer-panel/color-scale-selector.js +191 -0
  641. package/dist/side-panel/layer-panel/color-selector.d.ts +34 -0
  642. package/dist/side-panel/layer-panel/color-selector.js +167 -0
  643. package/dist/side-panel/layer-panel/column-selector.d.ts +18 -0
  644. package/dist/side-panel/layer-panel/column-selector.js +60 -0
  645. package/dist/side-panel/layer-panel/custom-palette.d.ts +77 -0
  646. package/dist/side-panel/layer-panel/custom-palette.js +427 -0
  647. package/dist/side-panel/layer-panel/custom-picker.d.ts +8 -0
  648. package/dist/side-panel/layer-panel/custom-picker.js +71 -0
  649. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +23 -0
  650. package/dist/side-panel/layer-panel/dataset-layer-group.js +67 -0
  651. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +25 -0
  652. package/dist/side-panel/layer-panel/dataset-layer-section.js +60 -0
  653. package/dist/side-panel/layer-panel/dataset-section.d.ts +23 -0
  654. package/dist/side-panel/layer-panel/dataset-section.js +74 -0
  655. package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +23 -0
  656. package/dist/side-panel/layer-panel/dimension-scale-selector.js +90 -0
  657. package/dist/side-panel/layer-panel/how-to-button.d.ts +6 -0
  658. package/dist/side-panel/layer-panel/how-to-button.js +27 -0
  659. package/dist/side-panel/layer-panel/layer-color-selector.d.ts +42 -0
  660. package/dist/side-panel/layer-panel/layer-color-selector.js +106 -0
  661. package/dist/side-panel/layer-panel/layer-column-config.d.ts +24 -0
  662. package/dist/side-panel/layer-panel/layer-column-config.js +86 -0
  663. package/dist/side-panel/layer-panel/layer-column-mode-config.d.ts +47 -0
  664. package/dist/side-panel/layer-panel/layer-column-mode-config.js +193 -0
  665. package/dist/side-panel/layer-panel/layer-config-group.d.ts +44 -0
  666. package/dist/side-panel/layer-panel/layer-config-group.js +141 -0
  667. package/dist/side-panel/layer-panel/layer-configurator.d.ts +67 -0
  668. package/dist/side-panel/layer-panel/layer-configurator.js +644 -0
  669. package/dist/side-panel/layer-panel/layer-error-message.d.ts +6 -0
  670. package/dist/side-panel/layer-panel/layer-error-message.js +29 -0
  671. package/dist/side-panel/layer-panel/layer-list.d.ts +21 -0
  672. package/dist/side-panel/layer-panel/layer-list.js +170 -0
  673. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +73 -0
  674. package/dist/side-panel/layer-panel/layer-panel-header.js +274 -0
  675. package/dist/side-panel/layer-panel/layer-panel.d.ts +39 -0
  676. package/dist/side-panel/layer-panel/layer-panel.js +162 -0
  677. package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +22 -0
  678. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +78 -0
  679. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +22 -0
  680. package/dist/side-panel/layer-panel/layer-type-list-item.js +67 -0
  681. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +22 -0
  682. package/dist/side-panel/layer-panel/layer-type-selector.js +58 -0
  683. package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +11 -0
  684. package/dist/side-panel/layer-panel/radius-by-zoom-input.js +220 -0
  685. package/dist/side-panel/layer-panel/single-color-palette.d.ts +8 -0
  686. package/dist/side-panel/layer-panel/single-color-palette.js +86 -0
  687. package/dist/side-panel/layer-panel/text-label-panel.d.ts +17 -0
  688. package/dist/side-panel/layer-panel/text-label-panel.js +165 -0
  689. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +22 -0
  690. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +86 -0
  691. package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +24 -0
  692. package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +60 -0
  693. package/dist/side-panel/layer-panel/vis-config-slider.d.ts +20 -0
  694. package/dist/side-panel/layer-panel/vis-config-slider.js +159 -0
  695. package/dist/side-panel/layer-panel/vis-config-switch.d.ts +16 -0
  696. package/dist/side-panel/layer-panel/vis-config-switch.js +55 -0
  697. package/dist/side-panel/map-manager.d.ts +27 -0
  698. package/dist/side-panel/map-manager.js +127 -0
  699. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +14 -0
  700. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +77 -0
  701. package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +29 -0
  702. package/dist/side-panel/map-style-panel/map-layer-group-item.js +95 -0
  703. package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +23 -0
  704. package/dist/side-panel/map-style-panel/map-layer-selector.js +74 -0
  705. package/dist/side-panel/map-style-panel/map-style-selector.d.ts +23 -0
  706. package/dist/side-panel/map-style-panel/map-style-selector.js +96 -0
  707. package/dist/side-panel/panel-header-action.d.ts +22 -0
  708. package/dist/side-panel/panel-header-action.js +73 -0
  709. package/dist/side-panel/panel-header.d.ts +91 -0
  710. package/dist/side-panel/panel-header.js +303 -0
  711. package/dist/side-panel/panel-tab.d.ts +20 -0
  712. package/dist/side-panel/panel-tab.js +55 -0
  713. package/dist/side-panel/panel-title.d.ts +7 -0
  714. package/dist/side-panel/panel-title.js +40 -0
  715. package/dist/side-panel/panel-toggle.d.ts +13 -0
  716. package/dist/side-panel/panel-toggle.js +48 -0
  717. package/dist/side-panel/panel-view-list-toggle.d.ts +31 -0
  718. package/dist/side-panel/panel-view-list-toggle.js +98 -0
  719. package/dist/side-panel/side-bar.d.ts +78 -0
  720. package/dist/side-panel/side-bar.js +127 -0
  721. package/dist/side-panel.d.ts +21 -0
  722. package/dist/side-panel.js +214 -0
  723. package/dist/types.d.ts +47 -0
  724. package/dist/types.js +6 -0
  725. package/package.json +19 -16
@@ -0,0 +1,464 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.TableSection = exports.Container = void 0;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
16
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var _react = _interopRequireWildcard(require("react"));
19
+ var _reactVirtualized = require("react-virtualized");
20
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
+ var _classnames2 = _interopRequireDefault(require("classnames"));
22
+ var _reselect = require("reselect");
23
+ var _lodash = _interopRequireDefault(require("lodash.get"));
24
+ var _lodash2 = _interopRequireDefault(require("lodash.debounce"));
25
+ var _icons = require("../icons");
26
+ var _grid = _interopRequireDefault(require("./grid"));
27
+ var _headerCell = _interopRequireDefault(require("./header-cell"));
28
+ var _utils = require("@kepler.gl/utils");
29
+ var _cellSize = require("./cell-size");
30
+ var _constants = require("@kepler.gl/constants");
31
+ var _templateObject, _templateObject2; // SPDX-License-Identifier: MIT
32
+ // Copyright contributors to the kepler.gl project
33
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
34
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
35
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
36
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
37
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
38
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
39
+ var defaultHeaderRowHeight = 55;
40
+ var defaultHeaderStatsControlHeight = 40;
41
+ var defaultRowHeight = 32;
42
+ var overscanColumnCount = 10;
43
+ var overscanRowCount = 10;
44
+ // The default scrollbar width can range anywhere from 12px to 17px
45
+ var browserScrollBarWidth = 17;
46
+ var fieldToAlignRight = (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _constants.ALL_FIELD_TYPES.integer, true), _constants.ALL_FIELD_TYPES.real, true);
47
+ var pinnedClassList = {
48
+ header: 'pinned-columns--header pinned-grid-container',
49
+ rows: 'pinned-columns--rows pinned-grid-container'
50
+ };
51
+ var unpinnedClassList = {
52
+ header: 'unpinned-columns--header unpinned-grid-container',
53
+ rows: 'unpinned-columns--rows unpinned-grid-container'
54
+ };
55
+ var Container = exports.Container = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n font-size: 11px;\n flex-grow: 1;\n color: ", ";\n width: 100%;\n position: relative;\n .ReactVirtualized__Grid:focus,\n .ReactVirtualized__Grid:active {\n outline: 0;\n }\n .body-grid {\n ", "\n }\n\n .cell {\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n *:focus {\n outline: 0;\n }\n\n .results-table-wrapper {\n position: relative;\n min-height: 100%;\n max-height: 100%;\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n overflow: hidden;\n\n .scroll-in-ui-thread.pinned-columns--header {\n overflow: hidden;\n border-bottom: 1px solid ", ";\n padding-bottom: ", "px;\n }\n .scroll-in-ui-thread.unpinned-columns--header {\n width: 100vw;\n overflow: hidden;\n border-bottom: 1px solid ", ";\n // leave room for scrollbar\n padding-bottom: ", "px;\n }\n\n .scroll-in-ui-thread::after {\n content: '';\n height: 100%;\n left: 0;\n position: absolute;\n pointer-events: none;\n top: 0;\n width: 100%;\n }\n\n .grid-row {\n position: relative;\n display: flex;\n flex-direction: row;\n }\n .grid-column {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n }\n .pinned-grid-container {\n flex: 0 0 75px;\n z-index: 10;\n position: absolute;\n left: 0;\n top: 0;\n border-right: 2px solid ", ";\n }\n .even-row {\n background-color: ", ";\n }\n .odd-row {\n background-color: ", ";\n }\n .cell,\n .header-cell {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n text-align: center;\n overflow: hidden;\n // header border is rendered by header container\n border-bottom: 0;\n .n-sort-idx {\n font-size: 9px;\n }\n }\n .cell {\n border-bottom: 1px solid ", ";\n border-right: 1px solid ", ";\n white-space: nowrap;\n overflow: auto;\n padding: 0 ", "px;\n font-size: ", "px;\n\n .result-link {\n text-decoration: none;\n }\n }\n .cell.end-cell,\n .header-cell.end-cell {\n border-right: none;\n padding-right: ", "px;\n }\n .cell.first-cell,\n .header-cell.first-cell {\n padding-left: ", "px;\n }\n .cell.bottom-cell {\n border-bottom: none;\n }\n .cell.align-right {\n align-items: flex-end;\n }\n }\n\n :focus {\n outline: none;\n }\n"])), function (props) {
56
+ return props.theme.dataTableTextColor;
57
+ }, function (props) {
58
+ return props.hasCustomScrollBarStyle && props.theme.modalScrollBar;
59
+ }, function (props) {
60
+ return props.theme.cellBorderColor;
61
+ }, browserScrollBarWidth, function (props) {
62
+ return props.theme.cellBorderColor;
63
+ }, browserScrollBarWidth, function (props) {
64
+ return props.theme.pinnedGridBorderColor;
65
+ }, function (props) {
66
+ return props.theme.evenRowBackground;
67
+ }, function (props) {
68
+ return props.theme.oddRowBackground;
69
+ }, function (props) {
70
+ return props.theme.cellBorderColor;
71
+ }, function (props) {
72
+ return props.theme.cellBorderColor;
73
+ }, function (props) {
74
+ return props.theme.cellPaddingSide;
75
+ }, function (props) {
76
+ return props.theme.cellFontSize;
77
+ }, function (props) {
78
+ return props.theme.cellPaddingSide + props.theme.edgeCellPaddingSide;
79
+ }, function (props) {
80
+ return props.theme.cellPaddingSide + props.theme.edgeCellPaddingSide;
81
+ });
82
+ var defaultColumnWidth = 200;
83
+ var columnWidthFunction = function columnWidthFunction(columns, cellSizeCache, ghost) {
84
+ return function (_ref) {
85
+ var index = _ref.index;
86
+ return (columns[index] || {}).ghost ? ghost : cellSizeCache[columns[index]] || defaultColumnWidth;
87
+ };
88
+ };
89
+ /*
90
+ * This is an accessor method used to generalize getting a cell from a data row
91
+ */
92
+ var defaultGetRowCell = function defaultGetRowCell(_ref2, formatter) {
93
+ var dataContainer = _ref2.dataContainer,
94
+ columns = _ref2.columns,
95
+ column = _ref2.column,
96
+ colMeta = _ref2.colMeta,
97
+ rowIndex = _ref2.rowIndex,
98
+ sortOrder = _ref2.sortOrder;
99
+ var rowIdx = sortOrder && sortOrder.length ? (0, _lodash["default"])(sortOrder, rowIndex) : rowIndex;
100
+ var type = colMeta[column].type;
101
+ var value = dataContainer.valueAt(rowIdx, columns.indexOf(column));
102
+ return value === null || value === undefined || value === '' ? '' : formatter ? formatter(value) : (0, _utils.parseFieldValue)(value, type);
103
+ };
104
+ var StyledStatsControl = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", "px;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: stretch;\n position: absolute;\n top: ", "px;\n font-family: ", "px;\n font-size: 12px;\n color: ", ";\n background-color: ", ";\n :hover {\n cursor: pointer;\n }\n\n > div {\n padding: 0px 24px;\n display: flex;\n align-items: center;\n\n svg {\n margin-left: 12px;\n transition: transform 0.5s ease;\n transform: rotate(", "deg);\n }\n }\n"])), function (props) {
105
+ return props.theme.headerStatsControlHeight;
106
+ }, function (props) {
107
+ return props.top;
108
+ }, function (props) {
109
+ return props.theme.fontFamilyMedium;
110
+ }, function (props) {
111
+ return props.theme.activeColor;
112
+ }, function (props) {
113
+ return props.theme.headerCellStatsControlBackground;
114
+ }, function (props) {
115
+ return props.showStats ? 180 : 0;
116
+ });
117
+ var StatsControl = function StatsControl(_ref3) {
118
+ var top = _ref3.top,
119
+ showStats = _ref3.showStats,
120
+ toggleShowStats = _ref3.toggleShowStats;
121
+ return /*#__PURE__*/_react["default"].createElement(StyledStatsControl, {
122
+ top: top,
123
+ showStats: showStats
124
+ }, /*#__PURE__*/_react["default"].createElement("div", {
125
+ onClick: toggleShowStats
126
+ }, showStats ? 'Hide Column Stats' : 'Show Column Stats', /*#__PURE__*/_react["default"].createElement(_icons.ArrowDown, {
127
+ height: "18px"
128
+ })));
129
+ };
130
+ var TableSection = exports.TableSection = function TableSection(_ref4) {
131
+ var classList = _ref4.classList,
132
+ isPinned = _ref4.isPinned,
133
+ columns = _ref4.columns,
134
+ headerGridProps = _ref4.headerGridProps,
135
+ fixedWidth = _ref4.fixedWidth,
136
+ _ref4$fixedHeight = _ref4.fixedHeight,
137
+ fixedHeight = _ref4$fixedHeight === void 0 ? undefined : _ref4$fixedHeight,
138
+ onScroll = _ref4.onScroll,
139
+ scrollTop = _ref4.scrollTop,
140
+ dataGridProps = _ref4.dataGridProps,
141
+ columnWidth = _ref4.columnWidth,
142
+ _ref4$setGridRef = _ref4.setGridRef,
143
+ setGridRef = _ref4$setGridRef === void 0 ? undefined : _ref4$setGridRef,
144
+ headerCellRender = _ref4.headerCellRender,
145
+ dataCellRender = _ref4.dataCellRender,
146
+ _ref4$scrollLeft = _ref4.scrollLeft,
147
+ scrollLeft = _ref4$scrollLeft === void 0 ? 0 : _ref4$scrollLeft;
148
+ var headerHeight = headerGridProps.height;
149
+ var headerStyle = (0, _react.useMemo)(function () {
150
+ return {
151
+ height: "".concat(headerHeight, "px")
152
+ };
153
+ }, [headerHeight]);
154
+ var contentStyle = (0, _react.useMemo)(function () {
155
+ return {
156
+ top: "".concat(headerHeight, "px")
157
+ };
158
+ }, [headerHeight]);
159
+ return /*#__PURE__*/_react["default"].createElement(_reactVirtualized.AutoSizer, null, function (_ref5) {
160
+ var width = _ref5.width,
161
+ height = _ref5.height;
162
+ var gridDimension = {
163
+ columnCount: columns.length,
164
+ columnWidth: columnWidth,
165
+ width: fixedWidth || width
166
+ };
167
+ var headerGridWidth = fixedWidth || width;
168
+ var dataGridHeight = fixedHeight || height;
169
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
170
+ className: (0, _classnames2["default"])('scroll-in-ui-thread', classList === null || classList === void 0 ? void 0 : classList.header),
171
+ style: headerStyle
172
+ }, /*#__PURE__*/_react["default"].createElement(_grid["default"], (0, _extends2["default"])({
173
+ cellRenderer: headerCellRender
174
+ }, headerGridProps, gridDimension, {
175
+ height: headerGridProps.height + browserScrollBarWidth,
176
+ width: headerGridWidth,
177
+ scrollLeft: scrollLeft,
178
+ onScroll: onScroll
179
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
180
+ className: (0, _classnames2["default"])('scroll-in-ui-thread', classList === null || classList === void 0 ? void 0 : classList.rows),
181
+ style: contentStyle
182
+ }, /*#__PURE__*/_react["default"].createElement(_grid["default"], (0, _extends2["default"])({
183
+ cellRenderer: dataCellRender
184
+ }, dataGridProps, gridDimension, {
185
+ className: isPinned ? 'pinned-grid' : 'body-grid',
186
+ height: dataGridHeight - headerGridProps.height,
187
+ onScroll: onScroll,
188
+ scrollLeft: scrollLeft,
189
+ scrollTop: scrollTop,
190
+ setGridRef: setGridRef
191
+ }))));
192
+ });
193
+ };
194
+ DataTableFactory.deps = [_headerCell["default"]];
195
+ function DataTableFactory(HeaderCell) {
196
+ var DataTable = /*#__PURE__*/function (_Component) {
197
+ function DataTable() {
198
+ var _this;
199
+ (0, _classCallCheck2["default"])(this, DataTable);
200
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
201
+ args[_key] = arguments[_key];
202
+ }
203
+ _this = _callSuper(this, DataTable, [].concat(args));
204
+ (0, _defineProperty2["default"])(_this, "pinnedGrid", null);
205
+ (0, _defineProperty2["default"])(_this, "unpinnedGrid", null);
206
+ (0, _defineProperty2["default"])(_this, "hasMounted", false);
207
+ (0, _defineProperty2["default"])(_this, "state", {
208
+ cellSizeCache: {},
209
+ moreOptionsColumn: null,
210
+ showStats: true
211
+ });
212
+ (0, _defineProperty2["default"])(_this, "root", /*#__PURE__*/(0, _react.createRef)());
213
+ (0, _defineProperty2["default"])(_this, "columns", function (props) {
214
+ return props.columns;
215
+ });
216
+ (0, _defineProperty2["default"])(_this, "pinnedColumns", function (props) {
217
+ return props.pinnedColumns;
218
+ });
219
+ (0, _defineProperty2["default"])(_this, "unpinnedColumns", (0, _reselect.createSelector)(_this.columns, _this.pinnedColumns, function (columns, pinnedColumns) {
220
+ return !Array.isArray(pinnedColumns) ? columns : columns.filter(function (c) {
221
+ return !pinnedColumns.includes(c);
222
+ });
223
+ }));
224
+ (0, _defineProperty2["default"])(_this, "toggleMoreOptions", function (moreOptionsColumn) {
225
+ if (_this.hasMounted) _this.setState({
226
+ moreOptionsColumn: _this.state.moreOptionsColumn === moreOptionsColumn ? null : moreOptionsColumn
227
+ });
228
+ });
229
+ (0, _defineProperty2["default"])(_this, "toggleShowStats", function () {
230
+ if (_this.hasMounted) _this.setState({
231
+ showStats: !_this.state.showStats
232
+ });
233
+ });
234
+ (0, _defineProperty2["default"])(_this, "getCellSizeCache", function () {
235
+ var _this$props = _this.props,
236
+ _this$props$cellSizeC = _this$props.cellSizeCache,
237
+ propsCache = _this$props$cellSizeC === void 0 ? {} : _this$props$cellSizeC,
238
+ fixedWidth = _this$props.fixedWidth,
239
+ _this$props$pinnedCol = _this$props.pinnedColumns,
240
+ pinnedColumns = _this$props$pinnedCol === void 0 ? [] : _this$props$pinnedCol;
241
+ var unpinnedColumns = _this.unpinnedColumns(_this.props);
242
+ var width = fixedWidth ? fixedWidth : _this.root.current ? _this.root.current.clientWidth : 0;
243
+
244
+ // pin column border is 2 pixel vs 1 pixel
245
+ var adjustWidth = pinnedColumns.length ? width - 1 : width;
246
+ var _ref6 = (0, _cellSize.adjustCellsToContainer)(adjustWidth, propsCache, pinnedColumns, unpinnedColumns),
247
+ cellSizeCache = _ref6.cellSizeCache,
248
+ ghost = _ref6.ghost;
249
+ return {
250
+ cellSizeCache: cellSizeCache,
251
+ ghost: ghost
252
+ };
253
+ });
254
+ (0, _defineProperty2["default"])(_this, "doScaleCellsToWidth", function () {
255
+ if (_this.hasMounted) _this.setState(_this.getCellSizeCache());
256
+ });
257
+ (0, _defineProperty2["default"])(_this, "scaleCellsToWidth", (0, _lodash2["default"])(_this.doScaleCellsToWidth, 300));
258
+ (0, _defineProperty2["default"])(_this, "renderDataCell", function (columns, isPinned, props) {
259
+ var _this$props$getRowCel;
260
+ var getRowCell = (_this$props$getRowCel = _this.props.getRowCell) !== null && _this$props$getRowCel !== void 0 ? _this$props$getRowCel : defaultGetRowCell;
261
+ var DataCellRenderer = function DataCellRenderer(cellInfo) {
262
+ var columnIndex = cellInfo.columnIndex,
263
+ key = cellInfo.key,
264
+ style = cellInfo.style,
265
+ rowIndex = cellInfo.rowIndex;
266
+ var dataContainer = props.dataContainer,
267
+ colMeta = props.colMeta;
268
+ var column = columns[columnIndex];
269
+ var isGhost = column.ghost;
270
+ var formatter = isGhost ? null : (0, _utils.getColumnFormatter)(colMeta[column]);
271
+ var rowCell = isGhost ? '' : getRowCell(_objectSpread(_objectSpread({}, props), {}, {
272
+ column: column,
273
+ rowIndex: rowIndex
274
+ }), formatter);
275
+ var type = isGhost ? null : colMeta[column].type;
276
+ var lastRowIndex = dataContainer ? dataContainer.numRows() - 1 : 0;
277
+ var endCell = columnIndex === columns.length - 1;
278
+ var firstCell = columnIndex === 0;
279
+ var bottomCell = rowIndex === lastRowIndex;
280
+ var alignRight = fieldToAlignRight[Number(type)];
281
+ var cell = /*#__PURE__*/_react["default"].createElement("div", {
282
+ className: (0, _classnames2["default"])('cell', (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, rowIndex % 2 === 0 ? 'even-row' : 'odd-row', true), "row-".concat(rowIndex), true), 'pinned-cell', isPinned), 'first-cell', firstCell), 'end-cell', endCell), 'bottom-cell', bottomCell), 'align-right', alignRight)),
283
+ key: key,
284
+ style: style,
285
+ title: isGhost ? undefined : rowCell
286
+ }, "".concat(rowCell).concat(endCell ? '\n' : '\t'));
287
+ return cell;
288
+ };
289
+ return DataCellRenderer;
290
+ });
291
+ return _this;
292
+ }
293
+ (0, _inherits2["default"])(DataTable, _Component);
294
+ return (0, _createClass2["default"])(DataTable, [{
295
+ key: "componentDidMount",
296
+ value: function componentDidMount() {
297
+ this.hasMounted = true;
298
+ window.addEventListener('resize', this.scaleCellsToWidth);
299
+ this.scaleCellsToWidth();
300
+ }
301
+ }, {
302
+ key: "componentDidUpdate",
303
+ value: function componentDidUpdate(prevProps) {
304
+ if (this.props.cellSizeCache !== prevProps.cellSizeCache || this.props.pinnedColumns !== prevProps.pinnedColumns) {
305
+ this.scaleCellsToWidth();
306
+ }
307
+ }
308
+ }, {
309
+ key: "componentWillUnmount",
310
+ value: function componentWillUnmount() {
311
+ this.hasMounted = false;
312
+ window.removeEventListener('resize', this.scaleCellsToWidth);
313
+ // fix Warning: Can't perform a React state update on an unmounted component
314
+ }
315
+ }, {
316
+ key: "renderHeaderCell",
317
+ value: function renderHeaderCell(columns, isPinned, props, toggleMoreOptions, moreOptionsColumn) {
318
+ var _this2 = this;
319
+ var HeaderCellRenderer = function HeaderCellRenderer(cellInfo) {
320
+ return /*#__PURE__*/_react["default"].createElement(HeaderCell, {
321
+ cellInfo: cellInfo,
322
+ key: cellInfo.columnIndex,
323
+ columns: columns,
324
+ isPinned: isPinned,
325
+ showStats: _this2.state.showStats,
326
+ props: props,
327
+ toggleMoreOptions: toggleMoreOptions,
328
+ moreOptionsColumn: moreOptionsColumn
329
+ });
330
+ };
331
+ return HeaderCellRenderer;
332
+ }
333
+ }, {
334
+ key: "render",
335
+ value: function render() {
336
+ var _this3 = this;
337
+ var _this$props2 = this.props,
338
+ dataContainer = _this$props2.dataContainer,
339
+ _this$props2$pinnedCo = _this$props2.pinnedColumns,
340
+ pinnedColumns = _this$props2$pinnedCo === void 0 ? [] : _this$props2$pinnedCo,
341
+ _this$props2$theme = _this$props2.theme,
342
+ theme = _this$props2$theme === void 0 ? {} : _this$props2$theme,
343
+ fixedWidth = _this$props2.fixedWidth,
344
+ _this$props2$fixedHei = _this$props2.fixedHeight,
345
+ fixedHeight = _this$props2$fixedHei === void 0 ? 0 : _this$props2$fixedHei,
346
+ hasStats = _this$props2.hasStats,
347
+ hasCustomScrollBarStyle = _this$props2.hasCustomScrollBarStyle;
348
+ var unpinnedColumns = this.unpinnedColumns(this.props);
349
+ var _this$state = this.state,
350
+ _this$state$cellSizeC = _this$state.cellSizeCache,
351
+ cellSizeCache = _this$state$cellSizeC === void 0 ? {} : _this$state$cellSizeC,
352
+ moreOptionsColumn = _this$state.moreOptionsColumn,
353
+ ghost = _this$state.ghost,
354
+ showStats = _this$state.showStats;
355
+ var unpinnedColumnsGhost = ghost ? [].concat((0, _toConsumableArray2["default"])(unpinnedColumns), [{
356
+ ghost: true
357
+ }]) : unpinnedColumns;
358
+ var pinnedColumnsWidth = pinnedColumns.reduce(function (acc, val) {
359
+ return acc + (0, _lodash["default"])(cellSizeCache, val, 0);
360
+ }, 0);
361
+ var hasPinnedColumns = Boolean(pinnedColumns.length);
362
+ var _theme$headerRowHeigh = theme.headerRowHeight,
363
+ headerRowHeight = _theme$headerRowHeigh === void 0 ? defaultHeaderRowHeight : _theme$headerRowHeigh,
364
+ _theme$headerStatsCon = theme.headerStatsControlHeight,
365
+ headerStatsControlHeight = _theme$headerStatsCon === void 0 ? defaultHeaderStatsControlHeight : _theme$headerStatsCon,
366
+ _theme$headerRowWStat = theme.headerRowWStatsHeight,
367
+ headerRowWStatsHeight = _theme$headerRowWStat === void 0 ? defaultHeaderRowHeight : _theme$headerRowWStat,
368
+ _theme$rowHeight = theme.rowHeight,
369
+ rowHeight = _theme$rowHeight === void 0 ? defaultRowHeight : _theme$rowHeight;
370
+ var headerGridProps = {
371
+ cellSizeCache: cellSizeCache,
372
+ className: 'header-grid',
373
+ height: !hasStats ? headerRowHeight : showStats ? headerRowWStatsHeight : headerRowHeight + headerStatsControlHeight,
374
+ rowCount: 1,
375
+ rowHeight: !hasStats ? headerRowHeight : showStats ? headerRowWStatsHeight : headerRowHeight + headerStatsControlHeight
376
+ };
377
+ var dataGridProps = {
378
+ cellSizeCache: cellSizeCache,
379
+ overscanColumnCount: overscanColumnCount,
380
+ overscanRowCount: overscanRowCount,
381
+ rowCount: dataContainer ? dataContainer.numRows() : 0,
382
+ rowHeight: rowHeight
383
+ };
384
+ return /*#__PURE__*/_react["default"].createElement(Container, {
385
+ className: "data-table-container",
386
+ ref: this.root,
387
+ hasCustomScrollBarStyle: hasCustomScrollBarStyle
388
+ }, Object.keys(cellSizeCache).length ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactVirtualized.ScrollSync, null, function (_ref7) {
389
+ var _onScroll = _ref7.onScroll,
390
+ scrollLeft = _ref7.scrollLeft,
391
+ scrollTop = _ref7.scrollTop;
392
+ return /*#__PURE__*/_react["default"].createElement("div", {
393
+ className: "results-table-wrapper"
394
+ }, hasPinnedColumns && /*#__PURE__*/_react["default"].createElement("div", {
395
+ key: "pinned-columns",
396
+ className: "pinned-columns grid-row"
397
+ }, /*#__PURE__*/_react["default"].createElement(TableSection, {
398
+ classList: pinnedClassList,
399
+ isPinned: true,
400
+ columns: pinnedColumns,
401
+ headerGridProps: headerGridProps,
402
+ fixedWidth: pinnedColumnsWidth,
403
+ onScroll: function onScroll(args) {
404
+ return _onScroll(_objectSpread(_objectSpread({}, args), {}, {
405
+ scrollLeft: scrollLeft
406
+ }));
407
+ },
408
+ scrollTop: scrollTop,
409
+ scrollLeft: scrollLeft,
410
+ dataGridProps: dataGridProps,
411
+ setGridRef: function setGridRef(pinnedGrid) {
412
+ return _this3.pinnedGrid = pinnedGrid;
413
+ },
414
+ columnWidth: columnWidthFunction(pinnedColumns, cellSizeCache),
415
+ headerCellRender: _this3.renderHeaderCell(pinnedColumns, true, _this3.props, _this3.toggleMoreOptions, moreOptionsColumn),
416
+ dataCellRender: _this3.renderDataCell(pinnedColumns, true, _this3.props)
417
+ })), /*#__PURE__*/_react["default"].createElement("div", {
418
+ key: "unpinned-columns",
419
+ style: {
420
+ marginLeft: "".concat(hasPinnedColumns ? "".concat(pinnedColumnsWidth, "px") : '0')
421
+ },
422
+ className: "unpinned-columns grid-column"
423
+ }, /*#__PURE__*/_react["default"].createElement(TableSection, {
424
+ classList: unpinnedClassList,
425
+ isPinned: false,
426
+ columns: unpinnedColumnsGhost,
427
+ headerGridProps: headerGridProps,
428
+ fixedWidth: fixedWidth,
429
+ fixedHeight: fixedHeight,
430
+ onScroll: _onScroll,
431
+ scrollTop: scrollTop,
432
+ scrollLeft: scrollLeft,
433
+ dataGridProps: dataGridProps,
434
+ setGridRef: function setGridRef(unpinnedGrid) {
435
+ return _this3.unpinnedGrid = unpinnedGrid;
436
+ },
437
+ columnWidth: columnWidthFunction(unpinnedColumnsGhost, cellSizeCache, ghost),
438
+ headerCellRender: _this3.renderHeaderCell(unpinnedColumnsGhost, false, _this3.props, _this3.toggleMoreOptions, moreOptionsColumn),
439
+ dataCellRender: _this3.renderDataCell(unpinnedColumnsGhost, false, _this3.props)
440
+ })));
441
+ }), hasStats ? /*#__PURE__*/_react["default"].createElement(StatsControl, {
442
+ top: headerRowHeight,
443
+ showStats: showStats,
444
+ toggleShowStats: this.toggleShowStats
445
+ }) : null) : null);
446
+ }
447
+ }]);
448
+ }(_react.Component);
449
+ (0, _defineProperty2["default"])(DataTable, "defaultProps", {
450
+ dataContainer: null,
451
+ pinnedColumns: [],
452
+ colMeta: {},
453
+ cellSizeCache: {},
454
+ sortColumn: {},
455
+ fixedWidth: null,
456
+ fixedHeight: null,
457
+ theme: {},
458
+ hasStats: false,
459
+ hasCustomScrollBarStyle: true
460
+ });
461
+ return (0, _styledComponents.withTheme)(DataTable);
462
+ }
463
+ var _default = exports["default"] = DataTableFactory;
464
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RWaXJ0dWFsaXplZCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2NsYXNzbmFtZXMyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZXNlbGVjdCIsIl9sb2Rhc2giLCJfbG9kYXNoMiIsIl9pY29ucyIsIl9ncmlkIiwiX2hlYWRlckNlbGwiLCJfdXRpbHMiLCJfY2VsbFNpemUiLCJfY29uc3RhbnRzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiZGVmYXVsdEhlYWRlclJvd0hlaWdodCIsImRlZmF1bHRIZWFkZXJTdGF0c0NvbnRyb2xIZWlnaHQiLCJkZWZhdWx0Um93SGVpZ2h0Iiwib3ZlcnNjYW5Db2x1bW5Db3VudCIsIm92ZXJzY2FuUm93Q291bnQiLCJicm93c2VyU2Nyb2xsQmFyV2lkdGgiLCJmaWVsZFRvQWxpZ25SaWdodCIsIkFMTF9GSUVMRF9UWVBFUyIsImludGVnZXIiLCJyZWFsIiwicGlubmVkQ2xhc3NMaXN0IiwiaGVhZGVyIiwicm93cyIsInVucGlubmVkQ2xhc3NMaXN0IiwiQ29udGFpbmVyIiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImRhdGFUYWJsZVRleHRDb2xvciIsImhhc0N1c3RvbVNjcm9sbEJhclN0eWxlIiwibW9kYWxTY3JvbGxCYXIiLCJjZWxsQm9yZGVyQ29sb3IiLCJwaW5uZWRHcmlkQm9yZGVyQ29sb3IiLCJldmVuUm93QmFja2dyb3VuZCIsIm9kZFJvd0JhY2tncm91bmQiLCJjZWxsUGFkZGluZ1NpZGUiLCJjZWxsRm9udFNpemUiLCJlZGdlQ2VsbFBhZGRpbmdTaWRlIiwiZGVmYXVsdENvbHVtbldpZHRoIiwiY29sdW1uV2lkdGhGdW5jdGlvbiIsImNvbHVtbnMiLCJjZWxsU2l6ZUNhY2hlIiwiZ2hvc3QiLCJfcmVmIiwiaW5kZXgiLCJkZWZhdWx0R2V0Um93Q2VsbCIsIl9yZWYyIiwiZm9ybWF0dGVyIiwiZGF0YUNvbnRhaW5lciIsImNvbHVtbiIsImNvbE1ldGEiLCJyb3dJbmRleCIsInNvcnRPcmRlciIsInJvd0lkeCIsInR5cGUiLCJ2YWx1ZSIsInZhbHVlQXQiLCJpbmRleE9mIiwidW5kZWZpbmVkIiwicGFyc2VGaWVsZFZhbHVlIiwiU3R5bGVkU3RhdHNDb250cm9sIiwiaGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0IiwidG9wIiwiZm9udEZhbWlseU1lZGl1bSIsImFjdGl2ZUNvbG9yIiwiaGVhZGVyQ2VsbFN0YXRzQ29udHJvbEJhY2tncm91bmQiLCJzaG93U3RhdHMiLCJTdGF0c0NvbnRyb2wiLCJfcmVmMyIsInRvZ2dsZVNob3dTdGF0cyIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwiQXJyb3dEb3duIiwiaGVpZ2h0IiwiVGFibGVTZWN0aW9uIiwiX3JlZjQiLCJjbGFzc0xpc3QiLCJpc1Bpbm5lZCIsImhlYWRlckdyaWRQcm9wcyIsImZpeGVkV2lkdGgiLCJfcmVmNCRmaXhlZEhlaWdodCIsImZpeGVkSGVpZ2h0Iiwib25TY3JvbGwiLCJzY3JvbGxUb3AiLCJkYXRhR3JpZFByb3BzIiwiY29sdW1uV2lkdGgiLCJfcmVmNCRzZXRHcmlkUmVmIiwic2V0R3JpZFJlZiIsImhlYWRlckNlbGxSZW5kZXIiLCJkYXRhQ2VsbFJlbmRlciIsIl9yZWY0JHNjcm9sbExlZnQiLCJzY3JvbGxMZWZ0IiwiaGVhZGVySGVpZ2h0IiwiaGVhZGVyU3R5bGUiLCJ1c2VNZW1vIiwiY29uY2F0IiwiY29udGVudFN0eWxlIiwiQXV0b1NpemVyIiwiX3JlZjUiLCJ3aWR0aCIsImdyaWREaW1lbnNpb24iLCJjb2x1bW5Db3VudCIsImhlYWRlckdyaWRXaWR0aCIsImRhdGFHcmlkSGVpZ2h0IiwiRnJhZ21lbnQiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwic3R5bGUiLCJfZXh0ZW5kczIiLCJjZWxsUmVuZGVyZXIiLCJEYXRhVGFibGVGYWN0b3J5IiwiZGVwcyIsIkhlYWRlckNlbGxGYWN0b3J5IiwiSGVhZGVyQ2VsbCIsIkRhdGFUYWJsZSIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsIm1vcmVPcHRpb25zQ29sdW1uIiwiY3JlYXRlUmVmIiwicGlubmVkQ29sdW1ucyIsImNyZWF0ZVNlbGVjdG9yIiwiaXNBcnJheSIsImMiLCJpbmNsdWRlcyIsImhhc01vdW50ZWQiLCJzZXRTdGF0ZSIsInN0YXRlIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRjZWxsU2l6ZUMiLCJwcm9wc0NhY2hlIiwiX3RoaXMkcHJvcHMkcGlubmVkQ29sIiwidW5waW5uZWRDb2x1bW5zIiwicm9vdCIsImN1cnJlbnQiLCJjbGllbnRXaWR0aCIsImFkanVzdFdpZHRoIiwiX3JlZjYiLCJhZGp1c3RDZWxsc1RvQ29udGFpbmVyIiwiZ2V0Q2VsbFNpemVDYWNoZSIsImRlYm91bmNlIiwiZG9TY2FsZUNlbGxzVG9XaWR0aCIsIl90aGlzJHByb3BzJGdldFJvd0NlbCIsImdldFJvd0NlbGwiLCJEYXRhQ2VsbFJlbmRlcmVyIiwiY2VsbEluZm8iLCJjb2x1bW5JbmRleCIsImtleSIsImlzR2hvc3QiLCJnZXRDb2x1bW5Gb3JtYXR0ZXIiLCJyb3dDZWxsIiwibGFzdFJvd0luZGV4IiwibnVtUm93cyIsImVuZENlbGwiLCJmaXJzdENlbGwiLCJib3R0b21DZWxsIiwiYWxpZ25SaWdodCIsIk51bWJlciIsImNlbGwiLCJ0aXRsZSIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwiY29tcG9uZW50RGlkTW91bnQiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwic2NhbGVDZWxsc1RvV2lkdGgiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJIZWFkZXJDZWxsIiwidG9nZ2xlTW9yZU9wdGlvbnMiLCJfdGhpczIiLCJIZWFkZXJDZWxsUmVuZGVyZXIiLCJyZW5kZXIiLCJfdGhpczMiLCJfdGhpcyRwcm9wczIiLCJfdGhpcyRwcm9wczIkcGlubmVkQ28iLCJfdGhpcyRwcm9wczIkdGhlbWUiLCJfdGhpcyRwcm9wczIkZml4ZWRIZWkiLCJoYXNTdGF0cyIsIl90aGlzJHN0YXRlIiwiX3RoaXMkc3RhdGUkY2VsbFNpemVDIiwidW5waW5uZWRDb2x1bW5zR2hvc3QiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwicGlubmVkQ29sdW1uc1dpZHRoIiwicmVkdWNlIiwiYWNjIiwidmFsIiwiaGFzUGlubmVkQ29sdW1ucyIsIl90aGVtZSRoZWFkZXJSb3dIZWlnaCIsImhlYWRlclJvd0hlaWdodCIsIl90aGVtZSRoZWFkZXJTdGF0c0NvbiIsIl90aGVtZSRoZWFkZXJSb3dXU3RhdCIsImhlYWRlclJvd1dTdGF0c0hlaWdodCIsIl90aGVtZSRyb3dIZWlnaHQiLCJyb3dIZWlnaHQiLCJyb3dDb3VudCIsInJlZiIsIlNjcm9sbFN5bmMiLCJfcmVmNyIsInBpbm5lZEdyaWQiLCJyZW5kZXJEYXRhQ2VsbCIsIm1hcmdpbkxlZnQiLCJ1bnBpbm5lZEdyaWQiLCJDb21wb25lbnQiLCJzb3J0Q29sdW1uIiwid2l0aFRoZW1lIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2RhdGEtdGFibGUvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1Njcm9sbFN5bmMsIEF1dG9TaXplciwgT25TY3JvbGxQYXJhbXMsIEdyaWRQcm9wcywgSW5kZXh9IGZyb20gJ3JlYWN0LXZpcnR1YWxpemVkJztcbmltcG9ydCBzdHlsZWQsIHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2guZ2V0JztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2guZGVib3VuY2UnO1xuaW1wb3J0IHtBcnJvd0Rvd259IGZyb20gJy4uL2ljb25zJztcblxuaW1wb3J0IHtDZWxsU2l6ZUNhY2hlfSBmcm9tICcuL2NlbGwtc2l6ZSc7XG5cbmltcG9ydCBHcmlkIGZyb20gJy4vZ3JpZCc7XG5pbXBvcnQgSGVhZGVyQ2VsbEZhY3RvcnkgZnJvbSAnLi9oZWFkZXItY2VsbCc7XG5cbmltcG9ydCB7Q29sTWV0YX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge3BhcnNlRmllbGRWYWx1ZSwgZ2V0Q29sdW1uRm9ybWF0dGVyLCBEYXRhQ29udGFpbmVySW50ZXJmYWNlfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7YWRqdXN0Q2VsbHNUb0NvbnRhaW5lcn0gZnJvbSAnLi9jZWxsLXNpemUnO1xuXG5pbXBvcnQge0FMTF9GSUVMRF9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5jb25zdCBkZWZhdWx0SGVhZGVyUm93SGVpZ2h0ID0gNTU7XG5jb25zdCBkZWZhdWx0SGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0ID0gNDA7XG5jb25zdCBkZWZhdWx0Um93SGVpZ2h0ID0gMzI7XG5jb25zdCBvdmVyc2NhbkNvbHVtbkNvdW50ID0gMTA7XG5jb25zdCBvdmVyc2NhblJvd0NvdW50ID0gMTA7XG4vLyBUaGUgZGVmYXVsdCBzY3JvbGxiYXIgd2lkdGggY2FuIHJhbmdlIGFueXdoZXJlIGZyb20gMTJweCB0byAxN3B4XG5jb25zdCBicm93c2VyU2Nyb2xsQmFyV2lkdGggPSAxNztcbmNvbnN0IGZpZWxkVG9BbGlnblJpZ2h0ID0ge1xuICBbQUxMX0ZJRUxEX1RZUEVTLmludGVnZXJdOiB0cnVlLFxuICBbQUxMX0ZJRUxEX1RZUEVTLnJlYWxdOiB0cnVlXG59O1xuXG5jb25zdCBwaW5uZWRDbGFzc0xpc3QgPSB7XG4gIGhlYWRlcjogJ3Bpbm5lZC1jb2x1bW5zLS1oZWFkZXIgcGlubmVkLWdyaWQtY29udGFpbmVyJyxcbiAgcm93czogJ3Bpbm5lZC1jb2x1bW5zLS1yb3dzIHBpbm5lZC1ncmlkLWNvbnRhaW5lcidcbn07XG5cbmNvbnN0IHVucGlubmVkQ2xhc3NMaXN0ID0ge1xuICBoZWFkZXI6ICd1bnBpbm5lZC1jb2x1bW5zLS1oZWFkZXIgdW5waW5uZWQtZ3JpZC1jb250YWluZXInLFxuICByb3dzOiAndW5waW5uZWQtY29sdW1ucy0tcm93cyB1bnBpbm5lZC1ncmlkLWNvbnRhaW5lcidcbn07XG5cbnR5cGUgQ29udGFpbmVyUHJvcHMgPSB7XG4gIGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBDb250YWluZXIgPSBzdHlsZWQuZGl2PENvbnRhaW5lclByb3BzPmBcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRhdGFUYWJsZVRleHRDb2xvcn07XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC5SZWFjdFZpcnR1YWxpemVkX19HcmlkOmZvY3VzLFxuICAuUmVhY3RWaXJ0dWFsaXplZF9fR3JpZDphY3RpdmUge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbiAgLmJvZHktZ3JpZCB7XG4gICAgJHtwcm9wcyA9PiBwcm9wcy5oYXNDdXN0b21TY3JvbGxCYXJTdHlsZSAmJiBwcm9wcy50aGVtZS5tb2RhbFNjcm9sbEJhcn1cbiAgfVxuXG4gIC5jZWxsIHtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICo6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAucmVzdWx0cy10YWJsZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkLnBpbm5lZC1jb2x1bW5zLS1oZWFkZXIge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHticm93c2VyU2Nyb2xsQmFyV2lkdGh9cHg7XG4gICAgfVxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkLnVucGlubmVkLWNvbHVtbnMtLWhlYWRlciB7XG4gICAgICB3aWR0aDogMTAwdnc7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbEJvcmRlckNvbG9yfTtcbiAgICAgIC8vIGxlYXZlIHJvb20gZm9yIHNjcm9sbGJhclxuICAgICAgcGFkZGluZy1ib3R0b206ICR7YnJvd3NlclNjcm9sbEJhcldpZHRofXB4O1xuICAgIH1cblxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5ncmlkLXJvdyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgLmdyaWQtY29sdW1uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxuICAgIC5waW5uZWQtZ3JpZC1jb250YWluZXIge1xuICAgICAgZmxleDogMCAwIDc1cHg7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBpbm5lZEdyaWRCb3JkZXJDb2xvcn07XG4gICAgfVxuICAgIC5ldmVuLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmV2ZW5Sb3dCYWNrZ3JvdW5kfTtcbiAgICB9XG4gICAgLm9kZC1yb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5vZGRSb3dCYWNrZ3JvdW5kfTtcbiAgICB9XG4gICAgLmNlbGwsXG4gICAgLmhlYWRlci1jZWxsIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIC8vIGhlYWRlciBib3JkZXIgaXMgcmVuZGVyZWQgYnkgaGVhZGVyIGNvbnRhaW5lclxuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIC5uLXNvcnQtaWR4IHtcbiAgICAgICAgZm9udC1zaXplOiA5cHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBwYWRkaW5nOiAwICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgICAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxGb250U2l6ZX1weDtcblxuICAgICAgLnJlc3VsdC1saW5rIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAuY2VsbC5lbmQtY2VsbCxcbiAgICAuaGVhZGVyLWNlbGwuZW5kLWNlbGwge1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5jZWxsUGFkZGluZ1NpZGUgKyBwcm9wcy50aGVtZS5lZGdlQ2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgIH1cbiAgICAuY2VsbC5maXJzdC1jZWxsLFxuICAgIC5oZWFkZXItY2VsbC5maXJzdC1jZWxsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5jZWxsUGFkZGluZ1NpZGUgKyBwcm9wcy50aGVtZS5lZGdlQ2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgIH1cbiAgICAuY2VsbC5ib3R0b20tY2VsbCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgICAuY2VsbC5hbGlnbi1yaWdodCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuICB9XG5cbiAgOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5gO1xuXG5jb25zdCBkZWZhdWx0Q29sdW1uV2lkdGggPSAyMDA7XG5cbmV4cG9ydCB0eXBlIFNvcnRDb2x1bW4gPSB7XG4gIGNvbHVtbj86IHN0cmluZztcbiAgbW9kZT86IHN0cmluZztcbn07XG5cbmNvbnN0IGNvbHVtbldpZHRoRnVuY3Rpb24gPVxuICAoY29sdW1ucywgY2VsbFNpemVDYWNoZSwgZ2hvc3Q/KSA9PlxuICAoe2luZGV4fSkgPT4ge1xuICAgIHJldHVybiAoY29sdW1uc1tpbmRleF0gfHwge30pLmdob3N0XG4gICAgICA/IGdob3N0XG4gICAgICA6IGNlbGxTaXplQ2FjaGVbY29sdW1uc1tpbmRleF1dIHx8IGRlZmF1bHRDb2x1bW5XaWR0aDtcbiAgfTtcblxuaW50ZXJmYWNlIEdldFJvd0NlbGxQcm9wcyB7XG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2U7XG4gIGNvbHVtbnM6IChzdHJpbmcgJiB7Z2hvc3Q/OiBib29sZWFufSlbXTtcbiAgY29sdW1uOiBzdHJpbmc7XG4gIGNvbE1ldGE7XG4gIHJvd0luZGV4OiBudW1iZXI7XG4gIHNvcnRPcmRlcj86IG51bWJlcltdIHwgbnVsbDtcbn1cblxuLypcbiAqIFRoaXMgaXMgYW4gYWNjZXNzb3IgbWV0aG9kIHVzZWQgdG8gZ2VuZXJhbGl6ZSBnZXR0aW5nIGEgY2VsbCBmcm9tIGEgZGF0YSByb3dcbiAqL1xuY29uc3QgZGVmYXVsdEdldFJvd0NlbGwgPSAoXG4gIHtkYXRhQ29udGFpbmVyLCBjb2x1bW5zLCBjb2x1bW4sIGNvbE1ldGEsIHJvd0luZGV4LCBzb3J0T3JkZXJ9OiBHZXRSb3dDZWxsUHJvcHMsXG4gIGZvcm1hdHRlclxuKSA9PiB7XG4gIGNvbnN0IHJvd0lkeCA9IHNvcnRPcmRlciAmJiBzb3J0T3JkZXIubGVuZ3RoID8gZ2V0KHNvcnRPcmRlciwgcm93SW5kZXgpIDogcm93SW5kZXg7XG4gIGNvbnN0IHt0eXBlfSA9IGNvbE1ldGFbY29sdW1uXTtcblxuICBjb25zdCB2YWx1ZSA9IGRhdGFDb250YWluZXIudmFsdWVBdChyb3dJZHgsIGNvbHVtbnMuaW5kZXhPZihjb2x1bW4pKTtcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnXG4gICAgPyAnJ1xuICAgIDogZm9ybWF0dGVyXG4gICAgPyBmb3JtYXR0ZXIodmFsdWUpXG4gICAgOiBwYXJzZUZpZWxkVmFsdWUodmFsdWUsIHR5cGUpO1xufTtcblxudHlwZSBTdGF0c0NvbnRyb2xQcm9wcyA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBTdHlsZWRTdGF0c0NvbnRyb2wgPSBzdHlsZWQuZGl2PFN0YXRzQ29udHJvbFByb3BzPmBcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmhlYWRlclN0YXRzQ29udHJvbEhlaWdodH1weDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICR7cHJvcHMgPT4gcHJvcHMudG9wfXB4O1xuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5TWVkaXVtfXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJDZWxsU3RhdHNDb250cm9sQmFja2dyb3VuZH07XG4gIDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgPiBkaXYge1xuICAgIHBhZGRpbmc6IDBweCAyNHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgke3Byb3BzID0+IChwcm9wcy5zaG93U3RhdHMgPyAxODAgOiAwKX1kZWcpO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgU3RhdHNDb250cm9sID0gKHtcbiAgdG9wLFxuICBzaG93U3RhdHMsXG4gIHRvZ2dsZVNob3dTdGF0c1xufToge1xuICB0b3A6IG51bWJlcjtcbiAgc2hvd1N0YXRzPzogYm9vbGVhbjtcbiAgdG9nZ2xlU2hvd1N0YXRzOiAoKSA9PiB2b2lkO1xufSkgPT4gKFxuICA8U3R5bGVkU3RhdHNDb250cm9sIHRvcD17dG9wfSBzaG93U3RhdHM9e3Nob3dTdGF0c30+XG4gICAgPGRpdiBvbkNsaWNrPXt0b2dnbGVTaG93U3RhdHN9PlxuICAgICAge3Nob3dTdGF0cyA/ICdIaWRlIENvbHVtbiBTdGF0cycgOiAnU2hvdyBDb2x1bW4gU3RhdHMnfVxuICAgICAgPEFycm93RG93biBoZWlnaHQ9XCIxOHB4XCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9TdHlsZWRTdGF0c0NvbnRyb2w+XG4pO1xuXG5pbnRlcmZhY2UgVGFibGVTZWN0aW9uUHJvcHMge1xuICBjbGFzc0xpc3Q/OiB7XG4gICAgaGVhZGVyOiBzdHJpbmc7XG4gICAgcm93czogc3RyaW5nO1xuICB9O1xuICBpc1Bpbm5lZD86IGJvb2xlYW47XG4gIGNvbHVtbnM6IChzdHJpbmcgJiB7Z2hvc3Q/OiBib29sZWFufSlbXTtcbiAgaGVhZGVyR3JpZFByb3BzPztcbiAgZml4ZWRXaWR0aD86IG51bWJlcjtcbiAgZml4ZWRIZWlnaHQ/OiBudW1iZXI7XG4gIG9uU2Nyb2xsPzogKHBhcmFtczogT25TY3JvbGxQYXJhbXMpID0+IHZvaWQ7XG4gIHNjcm9sbFRvcD86IG51bWJlcjtcbiAgZGF0YUdyaWRQcm9wczoge1xuICAgIHJvd0hlaWdodDogbnVtYmVyIHwgKChwYXJhbXM6IEluZGV4KSA9PiBudW1iZXIpO1xuICAgIHJvd0NvdW50OiBudW1iZXI7XG4gIH0gJiBQYXJ0aWFsPEdyaWRQcm9wcz47XG4gIGNvbHVtbldpZHRoPztcbiAgc2V0R3JpZFJlZj86IChyZWY6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcbiAgaGVhZGVyQ2VsbFJlbmRlcj87XG4gIGRhdGFDZWxsUmVuZGVyPztcbiAgc2Nyb2xsTGVmdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFRhYmxlU2VjdGlvbiA9ICh7XG4gIGNsYXNzTGlzdCxcbiAgaXNQaW5uZWQsXG4gIGNvbHVtbnMsXG4gIGhlYWRlckdyaWRQcm9wcyxcbiAgZml4ZWRXaWR0aCxcbiAgZml4ZWRIZWlnaHQgPSB1bmRlZmluZWQsXG4gIG9uU2Nyb2xsLFxuICBzY3JvbGxUb3AsXG4gIGRhdGFHcmlkUHJvcHMsXG4gIGNvbHVtbldpZHRoLFxuICBzZXRHcmlkUmVmID0gdW5kZWZpbmVkLFxuICBoZWFkZXJDZWxsUmVuZGVyLFxuICBkYXRhQ2VsbFJlbmRlcixcbiAgc2Nyb2xsTGVmdCA9IDBcbn06IFRhYmxlU2VjdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IGhlYWRlckhlaWdodCA9IGhlYWRlckdyaWRQcm9wcy5oZWlnaHQ7XG5cbiAgY29uc3QgaGVhZGVyU3R5bGUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBoZWlnaHQ6IGAke2hlYWRlckhlaWdodH1weGBcbiAgICB9KSxcbiAgICBbaGVhZGVySGVpZ2h0XVxuICApO1xuICBjb25zdCBjb250ZW50U3R5bGUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICB0b3A6IGAke2hlYWRlckhlaWdodH1weGBcbiAgICB9KSxcbiAgICBbaGVhZGVySGVpZ2h0XVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEF1dG9TaXplcj5cbiAgICAgIHsoe3dpZHRoLCBoZWlnaHR9KSA9PiB7XG4gICAgICAgIGNvbnN0IGdyaWREaW1lbnNpb24gPSB7XG4gICAgICAgICAgY29sdW1uQ291bnQ6IGNvbHVtbnMubGVuZ3RoLFxuICAgICAgICAgIGNvbHVtbldpZHRoLFxuICAgICAgICAgIHdpZHRoOiBmaXhlZFdpZHRoIHx8IHdpZHRoXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhlYWRlckdyaWRXaWR0aCA9IGZpeGVkV2lkdGggfHwgd2lkdGg7XG4gICAgICAgIGNvbnN0IGRhdGFHcmlkSGVpZ2h0ID0gZml4ZWRIZWlnaHQgfHwgaGVpZ2h0O1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdzY3JvbGwtaW4tdWktdGhyZWFkJywgY2xhc3NMaXN0Py5oZWFkZXIpfVxuICAgICAgICAgICAgICBzdHlsZT17aGVhZGVyU3R5bGV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxHcmlkXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyPXtoZWFkZXJDZWxsUmVuZGVyfVxuICAgICAgICAgICAgICAgIHsuLi5oZWFkZXJHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgey4uLmdyaWREaW1lbnNpb259XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtoZWFkZXJHcmlkUHJvcHMuaGVpZ2h0ICsgYnJvd3NlclNjcm9sbEJhcldpZHRofVxuICAgICAgICAgICAgICAgIHdpZHRoPXtoZWFkZXJHcmlkV2lkdGh9XG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdD17c2Nyb2xsTGVmdH1cbiAgICAgICAgICAgICAgICBvblNjcm9sbD17b25TY3JvbGx9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdzY3JvbGwtaW4tdWktdGhyZWFkJywgY2xhc3NMaXN0Py5yb3dzKX1cbiAgICAgICAgICAgICAgc3R5bGU9e2NvbnRlbnRTdHlsZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEdyaWRcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI9e2RhdGFDZWxsUmVuZGVyfVxuICAgICAgICAgICAgICAgIHsuLi5kYXRhR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgIHsuLi5ncmlkRGltZW5zaW9ufVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17aXNQaW5uZWQgPyAncGlubmVkLWdyaWQnIDogJ2JvZHktZ3JpZCd9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtkYXRhR3JpZEhlaWdodCAtIGhlYWRlckdyaWRQcm9wcy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfVxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ9e3Njcm9sbExlZnR9XG4gICAgICAgICAgICAgICAgc2Nyb2xsVG9wPXtzY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgc2V0R3JpZFJlZj17c2V0R3JpZFJlZn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvPlxuICAgICAgICApO1xuICAgICAgfX1cbiAgICA8L0F1dG9TaXplcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlUHJvcHMge1xuICBkYXRhSWQ/OiBzdHJpbmc7XG4gIGhhc1N0YXRzPzogYm9vbGVhbjtcbiAgY2VsbFNpemVDYWNoZT86IENlbGxTaXplQ2FjaGU7XG4gIHBpbm5lZENvbHVtbnM/OiBzdHJpbmdbXTtcbiAgY29sdW1uczogKHN0cmluZyAmIHtnaG9zdD86IGJvb2xlYW59KVtdO1xuICBmaXhlZFdpZHRoPzogbnVtYmVyO1xuICB0aGVtZT86IGFueTtcbiAgZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZTtcbiAgZml4ZWRIZWlnaHQ/OiBudW1iZXI7XG4gIGNvbE1ldGE6IENvbE1ldGE7XG4gIHNvcnRDb2x1bW46IFNvcnRDb2x1bW47XG4gIHNvcnRUYWJsZUNvbHVtbjogKGNvbHVtbjogc3RyaW5nLCBtb2RlPzogc3RyaW5nKSA9PiB2b2lkO1xuICBwaW5UYWJsZUNvbHVtbjogKGNvbHVtbjogc3RyaW5nKSA9PiB2b2lkO1xuICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0OiAoZm9ybWF0czoge1trZXk6IHN0cmluZ106IHN0cmluZ30pID0+IHZvaWQ7XG4gIGNvcHlUYWJsZUNvbHVtbjogKGNvbHVtbjogc3RyaW5nKSA9PiB2b2lkO1xuICBzb3J0T3JkZXI/OiBudW1iZXJbXSB8IG51bGw7XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG4gIGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlPzogYm9vbGVhbjtcbiAgZ2V0Um93Q2VsbD86IChyZW5kZXJEYXRhQ2VsbFByb3BzOiBHZXRSb3dDZWxsUHJvcHMsIGZvcm1hdHRlcjogYW55KSA9PiBzdHJpbmcgfCBudW1iZXI7XG59XG5cbmludGVyZmFjZSBEYXRhVGFibGVTdGF0ZSB7XG4gIGNlbGxTaXplQ2FjaGU/OiBDZWxsU2l6ZUNhY2hlO1xuICBtb3JlT3B0aW9uc0NvbHVtbj87XG4gIGdob3N0PztcbiAgc2hvd1N0YXRzPzogYm9vbGVhbjtcbn1cblxuRGF0YVRhYmxlRmFjdG9yeS5kZXBzID0gW0hlYWRlckNlbGxGYWN0b3J5XTtcbmZ1bmN0aW9uIERhdGFUYWJsZUZhY3RvcnkoSGVhZGVyQ2VsbDogUmV0dXJuVHlwZTx0eXBlb2YgSGVhZGVyQ2VsbEZhY3Rvcnk+KSB7XG4gIGNsYXNzIERhdGFUYWJsZSBleHRlbmRzIENvbXBvbmVudDxEYXRhVGFibGVQcm9wcywgRGF0YVRhYmxlU3RhdGU+IHtcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgZGF0YUNvbnRhaW5lcjogbnVsbCxcbiAgICAgIHBpbm5lZENvbHVtbnM6IFtdLFxuICAgICAgY29sTWV0YToge30sXG4gICAgICBjZWxsU2l6ZUNhY2hlOiB7fSxcbiAgICAgIHNvcnRDb2x1bW46IHt9LFxuICAgICAgZml4ZWRXaWR0aDogbnVsbCxcbiAgICAgIGZpeGVkSGVpZ2h0OiBudWxsLFxuICAgICAgdGhlbWU6IHt9LFxuICAgICAgaGFzU3RhdHM6IGZhbHNlLFxuICAgICAgaGFzQ3VzdG9tU2Nyb2xsQmFyU3R5bGU6IHRydWVcbiAgICB9O1xuXG4gICAgcGlubmVkR3JpZDogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICB1bnBpbm5lZEdyaWQ6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgaGFzTW91bnRlZCA9IGZhbHNlO1xuXG4gICAgc3RhdGU6IERhdGFUYWJsZVN0YXRlID0ge1xuICAgICAgY2VsbFNpemVDYWNoZToge30sXG4gICAgICBtb3JlT3B0aW9uc0NvbHVtbjogbnVsbCxcbiAgICAgIHNob3dTdGF0czogdHJ1ZVxuICAgIH07XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMuaGFzTW91bnRlZCA9IHRydWU7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5zY2FsZUNlbGxzVG9XaWR0aCk7XG4gICAgICB0aGlzLnNjYWxlQ2VsbHNUb1dpZHRoKCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnByb3BzLmNlbGxTaXplQ2FjaGUgIT09IHByZXZQcm9wcy5jZWxsU2l6ZUNhY2hlIHx8XG4gICAgICAgIHRoaXMucHJvcHMucGlubmVkQ29sdW1ucyAhPT0gcHJldlByb3BzLnBpbm5lZENvbHVtbnNcbiAgICAgICkge1xuICAgICAgICB0aGlzLnNjYWxlQ2VsbHNUb1dpZHRoKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLmhhc01vdW50ZWQgPSBmYWxzZTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnNjYWxlQ2VsbHNUb1dpZHRoKTtcbiAgICAgIC8vIGZpeCBXYXJuaW5nOiBDYW4ndCBwZXJmb3JtIGEgUmVhY3Qgc3RhdGUgdXBkYXRlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnRcbiAgICB9XG5cbiAgICByb290ID0gY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuICAgIGNvbHVtbnMgPSAocHJvcHM6IERhdGFUYWJsZVByb3BzKSA9PiBwcm9wcy5jb2x1bW5zO1xuICAgIHBpbm5lZENvbHVtbnMgPSAocHJvcHM6IERhdGFUYWJsZVByb3BzKSA9PiBwcm9wcy5waW5uZWRDb2x1bW5zO1xuICAgIHVucGlubmVkQ29sdW1ucyA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMuY29sdW1ucywgdGhpcy5waW5uZWRDb2x1bW5zLCAoY29sdW1ucywgcGlubmVkQ29sdW1ucykgPT5cbiAgICAgICFBcnJheS5pc0FycmF5KHBpbm5lZENvbHVtbnMpID8gY29sdW1ucyA6IGNvbHVtbnMuZmlsdGVyKGMgPT4gIXBpbm5lZENvbHVtbnMuaW5jbHVkZXMoYykpXG4gICAgKTtcblxuICAgIHRvZ2dsZU1vcmVPcHRpb25zID0gbW9yZU9wdGlvbnNDb2x1bW4gPT4ge1xuICAgICAgaWYgKHRoaXMuaGFzTW91bnRlZClcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgbW9yZU9wdGlvbnNDb2x1bW46XG4gICAgICAgICAgICB0aGlzLnN0YXRlLm1vcmVPcHRpb25zQ29sdW1uID09PSBtb3JlT3B0aW9uc0NvbHVtbiA/IG51bGwgOiBtb3JlT3B0aW9uc0NvbHVtblxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHRvZ2dsZVNob3dTdGF0cyA9ICgpID0+IHtcbiAgICAgIGlmICh0aGlzLmhhc01vdW50ZWQpIHRoaXMuc2V0U3RhdGUoe3Nob3dTdGF0czogIXRoaXMuc3RhdGUuc2hvd1N0YXRzfSk7XG4gICAgfTtcbiAgICBnZXRDZWxsU2l6ZUNhY2hlID0gKCkgPT4ge1xuICAgICAgY29uc3Qge2NlbGxTaXplQ2FjaGU6IHByb3BzQ2FjaGUgPSB7fSwgZml4ZWRXaWR0aCwgcGlubmVkQ29sdW1ucyA9IFtdfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB1bnBpbm5lZENvbHVtbnMgPSB0aGlzLnVucGlubmVkQ29sdW1ucyh0aGlzLnByb3BzKTtcblxuICAgICAgY29uc3Qgd2lkdGggPSBmaXhlZFdpZHRoID8gZml4ZWRXaWR0aCA6IHRoaXMucm9vdC5jdXJyZW50ID8gdGhpcy5yb290LmN1cnJlbnQuY2xpZW50V2lkdGggOiAwO1xuXG4gICAgICAvLyBwaW4gY29sdW1uIGJvcmRlciBpcyAyIHBpeGVsIHZzIDEgcGl4ZWxcbiAgICAgIGNvbnN0IGFkanVzdFdpZHRoID0gcGlubmVkQ29sdW1ucy5sZW5ndGggPyB3aWR0aCAtIDEgOiB3aWR0aDtcbiAgICAgIGNvbnN0IHtjZWxsU2l6ZUNhY2hlLCBnaG9zdH0gPSBhZGp1c3RDZWxsc1RvQ29udGFpbmVyKFxuICAgICAgICBhZGp1c3RXaWR0aCxcbiAgICAgICAgcHJvcHNDYWNoZSxcbiAgICAgICAgcGlubmVkQ29sdW1ucyxcbiAgICAgICAgdW5waW5uZWRDb2x1bW5zXG4gICAgICApIGFzIHtjZWxsU2l6ZUNhY2hlOiBDZWxsU2l6ZUNhY2hlOyBnaG9zdDogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH07XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNlbGxTaXplQ2FjaGUsXG4gICAgICAgIGdob3N0XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBkb1NjYWxlQ2VsbHNUb1dpZHRoID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaGFzTW91bnRlZCkgdGhpcy5zZXRTdGF0ZSh0aGlzLmdldENlbGxTaXplQ2FjaGUoKSk7XG4gICAgfTtcblxuICAgIHNjYWxlQ2VsbHNUb1dpZHRoID0gZGVib3VuY2UodGhpcy5kb1NjYWxlQ2VsbHNUb1dpZHRoLCAzMDApO1xuXG4gICAgcmVuZGVyRGF0YUNlbGwgPSAoY29sdW1ucywgaXNQaW5uZWQsIHByb3BzOiBEYXRhVGFibGVQcm9wcykgPT4ge1xuICAgICAgY29uc3QgZ2V0Um93Q2VsbCA9IHRoaXMucHJvcHMuZ2V0Um93Q2VsbCA/PyBkZWZhdWx0R2V0Um93Q2VsbDtcbiAgICAgIGNvbnN0IERhdGFDZWxsUmVuZGVyZXIgPSBjZWxsSW5mbyA9PiB7XG4gICAgICAgIGNvbnN0IHtjb2x1bW5JbmRleCwga2V5LCBzdHlsZSwgcm93SW5kZXh9ID0gY2VsbEluZm87XG4gICAgICAgIGNvbnN0IHtkYXRhQ29udGFpbmVyLCBjb2xNZXRhfSA9IHByb3BzO1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zW2NvbHVtbkluZGV4XTtcbiAgICAgICAgY29uc3QgaXNHaG9zdCA9IGNvbHVtbi5naG9zdDtcblxuICAgICAgICBjb25zdCBmb3JtYXR0ZXIgPSBpc0dob3N0ID8gbnVsbCA6IGdldENvbHVtbkZvcm1hdHRlcihjb2xNZXRhW2NvbHVtbl0pO1xuICAgICAgICBjb25zdCByb3dDZWxsID0gaXNHaG9zdCA/ICcnIDogZ2V0Um93Q2VsbCh7Li4ucHJvcHMsIGNvbHVtbiwgcm93SW5kZXh9LCBmb3JtYXR0ZXIpO1xuICAgICAgICBjb25zdCB0eXBlID0gaXNHaG9zdCA/IG51bGwgOiBjb2xNZXRhW2NvbHVtbl0udHlwZTtcblxuICAgICAgICBjb25zdCBsYXN0Um93SW5kZXggPSBkYXRhQ29udGFpbmVyID8gZGF0YUNvbnRhaW5lci5udW1Sb3dzKCkgLSAxIDogMDtcblxuICAgICAgICBjb25zdCBlbmRDZWxsID0gY29sdW1uSW5kZXggPT09IGNvbHVtbnMubGVuZ3RoIC0gMTtcbiAgICAgICAgY29uc3QgZmlyc3RDZWxsID0gY29sdW1uSW5kZXggPT09IDA7XG4gICAgICAgIGNvbnN0IGJvdHRvbUNlbGwgPSByb3dJbmRleCA9PT0gbGFzdFJvd0luZGV4O1xuICAgICAgICBjb25zdCBhbGlnblJpZ2h0ID0gZmllbGRUb0FsaWduUmlnaHRbTnVtYmVyKHR5cGUpXTtcblxuICAgICAgICBjb25zdCBjZWxsID0gKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnY2VsbCcsIHtcbiAgICAgICAgICAgICAgW3Jvd0luZGV4ICUgMiA9PT0gMCA/ICdldmVuLXJvdycgOiAnb2RkLXJvdyddOiB0cnVlLFxuICAgICAgICAgICAgICBbYHJvdy0ke3Jvd0luZGV4fWBdOiB0cnVlLFxuICAgICAgICAgICAgICAncGlubmVkLWNlbGwnOiBpc1Bpbm5lZCxcbiAgICAgICAgICAgICAgJ2ZpcnN0LWNlbGwnOiBmaXJzdENlbGwsXG4gICAgICAgICAgICAgICdlbmQtY2VsbCc6IGVuZENlbGwsXG4gICAgICAgICAgICAgICdib3R0b20tY2VsbCc6IGJvdHRvbUNlbGwsXG4gICAgICAgICAgICAgICdhbGlnbi1yaWdodCc6IGFsaWduUmlnaHRcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAga2V5PXtrZXl9XG4gICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICB0aXRsZT17aXNHaG9zdCA/IHVuZGVmaW5lZCA6IHJvd0NlbGx9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Ake3Jvd0NlbGx9JHtlbmRDZWxsID8gJ1xcbicgOiAnXFx0J31gfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjZWxsO1xuICAgICAgfTtcbiAgICAgIHJldHVybiBEYXRhQ2VsbFJlbmRlcmVyO1xuICAgIH07XG5cbiAgICByZW5kZXJIZWFkZXJDZWxsKGNvbHVtbnMsIGlzUGlubmVkLCBwcm9wcywgdG9nZ2xlTW9yZU9wdGlvbnMsIG1vcmVPcHRpb25zQ29sdW1uKSB7XG4gICAgICBjb25zdCBIZWFkZXJDZWxsUmVuZGVyZXIgPSBjZWxsSW5mbyA9PiAoXG4gICAgICAgIDxIZWFkZXJDZWxsXG4gICAgICAgICAgY2VsbEluZm89e2NlbGxJbmZvfVxuICAgICAgICAgIGtleT17Y2VsbEluZm8uY29sdW1uSW5kZXh9XG4gICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgICBpc1Bpbm5lZD17aXNQaW5uZWR9XG4gICAgICAgICAgc2hvd1N0YXRzPXt0aGlzLnN0YXRlLnNob3dTdGF0c31cbiAgICAgICAgICBwcm9wcz17cHJvcHN9XG4gICAgICAgICAgdG9nZ2xlTW9yZU9wdGlvbnM9e3RvZ2dsZU1vcmVPcHRpb25zfVxuICAgICAgICAgIG1vcmVPcHRpb25zQ29sdW1uPXttb3JlT3B0aW9uc0NvbHVtbn1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgICByZXR1cm4gSGVhZGVyQ2VsbFJlbmRlcmVyO1xuICAgIH1cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGRhdGFDb250YWluZXIsXG4gICAgICAgIHBpbm5lZENvbHVtbnMgPSBbXSxcbiAgICAgICAgdGhlbWUgPSB7fSxcbiAgICAgICAgZml4ZWRXaWR0aCxcbiAgICAgICAgZml4ZWRIZWlnaHQgPSAwLFxuICAgICAgICBoYXNTdGF0cyxcbiAgICAgICAgaGFzQ3VzdG9tU2Nyb2xsQmFyU3R5bGVcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgdW5waW5uZWRDb2x1bW5zID0gdGhpcy51bnBpbm5lZENvbHVtbnModGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IHtjZWxsU2l6ZUNhY2hlID0ge30sIG1vcmVPcHRpb25zQ29sdW1uLCBnaG9zdCwgc2hvd1N0YXRzfSA9IHRoaXMuc3RhdGU7XG4gICAgICBjb25zdCB1bnBpbm5lZENvbHVtbnNHaG9zdCA9IGdob3N0XG4gICAgICAgID8gWy4uLnVucGlubmVkQ29sdW1ucywge2dob3N0OiB0cnVlfSBhcyBzdHJpbmcgJiB7Z2hvc3Q6IGJvb2xlYW59XVxuICAgICAgICA6IHVucGlubmVkQ29sdW1ucztcbiAgICAgIGNvbnN0IHBpbm5lZENvbHVtbnNXaWR0aCA9IHBpbm5lZENvbHVtbnMucmVkdWNlKFxuICAgICAgICAoYWNjLCB2YWwpID0+IGFjYyArIChnZXQoY2VsbFNpemVDYWNoZSwgdmFsLCAwKSBhcyBudW1iZXIpLFxuICAgICAgICAwXG4gICAgICApO1xuXG4gICAgICBjb25zdCBoYXNQaW5uZWRDb2x1bW5zID0gQm9vbGVhbihwaW5uZWRDb2x1bW5zLmxlbmd0aCk7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGhlYWRlclJvd0hlaWdodCA9IGRlZmF1bHRIZWFkZXJSb3dIZWlnaHQsXG4gICAgICAgIGhlYWRlclN0YXRzQ29udHJvbEhlaWdodCA9IGRlZmF1bHRIZWFkZXJTdGF0c0NvbnRyb2xIZWlnaHQsXG4gICAgICAgIGhlYWRlclJvd1dTdGF0c0hlaWdodCA9IGRlZmF1bHRIZWFkZXJSb3dIZWlnaHQsXG4gICAgICAgIHJvd0hlaWdodCA9IGRlZmF1bHRSb3dIZWlnaHRcbiAgICAgIH0gPSB0aGVtZTtcblxuICAgICAgY29uc3QgaGVhZGVyR3JpZFByb3BzID0ge1xuICAgICAgICBjZWxsU2l6ZUNhY2hlLFxuICAgICAgICBjbGFzc05hbWU6ICdoZWFkZXItZ3JpZCcsXG4gICAgICAgIGhlaWdodDogIWhhc1N0YXRzXG4gICAgICAgICAgPyBoZWFkZXJSb3dIZWlnaHRcbiAgICAgICAgICA6IHNob3dTdGF0c1xuICAgICAgICAgID8gaGVhZGVyUm93V1N0YXRzSGVpZ2h0XG4gICAgICAgICAgOiBoZWFkZXJSb3dIZWlnaHQgKyBoZWFkZXJTdGF0c0NvbnRyb2xIZWlnaHQsXG4gICAgICAgIHJvd0NvdW50OiAxLFxuICAgICAgICByb3dIZWlnaHQ6ICFoYXNTdGF0c1xuICAgICAgICAgID8gaGVhZGVyUm93SGVpZ2h0XG4gICAgICAgICAgOiBzaG93U3RhdHNcbiAgICAgICAgICA/IGhlYWRlclJvd1dTdGF0c0hlaWdodFxuICAgICAgICAgIDogaGVhZGVyUm93SGVpZ2h0ICsgaGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBkYXRhR3JpZFByb3BzID0ge1xuICAgICAgICBjZWxsU2l6ZUNhY2hlLFxuICAgICAgICBvdmVyc2NhbkNvbHVtbkNvdW50LFxuICAgICAgICBvdmVyc2NhblJvd0NvdW50LFxuICAgICAgICByb3dDb3VudDogZGF0YUNvbnRhaW5lciA/IGRhdGFDb250YWluZXIubnVtUm93cygpIDogMCxcbiAgICAgICAgcm93SGVpZ2h0XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgY2xhc3NOYW1lPVwiZGF0YS10YWJsZS1jb250YWluZXJcIlxuICAgICAgICAgIHJlZj17dGhpcy5yb290fVxuICAgICAgICAgIGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlPXtoYXNDdXN0b21TY3JvbGxCYXJTdHlsZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtPYmplY3Qua2V5cyhjZWxsU2l6ZUNhY2hlKS5sZW5ndGggPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8U2Nyb2xsU3luYz5cbiAgICAgICAgICAgICAgICB7KHtvblNjcm9sbCwgc2Nyb2xsTGVmdCwgc2Nyb2xsVG9wfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXN1bHRzLXRhYmxlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7aGFzUGlubmVkQ29sdW1ucyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT1cInBpbm5lZC1jb2x1bW5zXCIgY2xhc3NOYW1lPVwicGlubmVkLWNvbHVtbnMgZ3JpZC1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlU2VjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTGlzdD17cGlubmVkQ2xhc3NMaXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGlubmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucz17cGlubmVkQ29sdW1uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJHcmlkUHJvcHM9e2hlYWRlckdyaWRQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlZFdpZHRoPXtwaW5uZWRDb2x1bW5zV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TY3JvbGw9e2FyZ3MgPT4gb25TY3JvbGwoey4uLmFyZ3MsIHNjcm9sbExlZnR9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb3A9e3Njcm9sbFRvcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0PXtzY3JvbGxMZWZ0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFHcmlkUHJvcHM9e2RhdGFHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0R3JpZFJlZj17cGlubmVkR3JpZCA9PiAodGhpcy5waW5uZWRHcmlkID0gcGlubmVkR3JpZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uV2lkdGg9e2NvbHVtbldpZHRoRnVuY3Rpb24ocGlubmVkQ29sdW1ucywgY2VsbFNpemVDYWNoZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyQ2VsbFJlbmRlcj17dGhpcy5yZW5kZXJIZWFkZXJDZWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkQ29sdW1ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVNb3JlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vcmVPcHRpb25zQ29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhQ2VsbFJlbmRlcj17dGhpcy5yZW5kZXJEYXRhQ2VsbChwaW5uZWRDb2x1bW5zLCB0cnVlLCB0aGlzLnByb3BzKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PVwidW5waW5uZWQtY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiBgJHtoYXNQaW5uZWRDb2x1bW5zID8gYCR7cGlubmVkQ29sdW1uc1dpZHRofXB4YCA6ICcwJ31gXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidW5waW5uZWQtY29sdW1ucyBncmlkLWNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFRhYmxlU2VjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc0xpc3Q9e3VucGlubmVkQ2xhc3NMaXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Bpbm5lZD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM9e3VucGlubmVkQ29sdW1uc0dob3N0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJHcmlkUHJvcHM9e2hlYWRlckdyaWRQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZWRXaWR0aD17Zml4ZWRXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZWRIZWlnaHQ9e2ZpeGVkSGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblNjcm9sbD17b25TY3JvbGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvcD17c2Nyb2xsVG9wfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0PXtzY3JvbGxMZWZ0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhR3JpZFByb3BzPXtkYXRhR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRHcmlkUmVmPXt1bnBpbm5lZEdyaWQgPT4gKHRoaXMudW5waW5uZWRHcmlkID0gdW5waW5uZWRHcmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uV2lkdGg9e2NvbHVtbldpZHRoRnVuY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5waW5uZWRDb2x1bW5zR2hvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbFNpemVDYWNoZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaG9zdFxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJDZWxsUmVuZGVyPXt0aGlzLnJlbmRlckhlYWRlckNlbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5waW5uZWRDb2x1bW5zR2hvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZU1vcmVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vcmVPcHRpb25zQ29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFDZWxsUmVuZGVyPXt0aGlzLnJlbmRlckRhdGFDZWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGlubmVkQ29sdW1uc0dob3N0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L1Njcm9sbFN5bmM+XG4gICAgICAgICAgICAgIHtoYXNTdGF0cyA/IChcbiAgICAgICAgICAgICAgICA8U3RhdHNDb250cm9sXG4gICAgICAgICAgICAgICAgICB0b3A9e2hlYWRlclJvd0hlaWdodH1cbiAgICAgICAgICAgICAgICAgIHNob3dTdGF0cz17c2hvd1N0YXRzfVxuICAgICAgICAgICAgICAgICAgdG9nZ2xlU2hvd1N0YXRzPXt0aGlzLnRvZ2dsZVNob3dTdGF0c31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHdpdGhUaGVtZShEYXRhVGFibGUpIGFzIFJlYWN0LkNvbXBvbmVudFR5cGU8RGF0YVRhYmxlUHJvcHM+O1xufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRhVGFibGVGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxpQkFBQSxHQUFBSCx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBRixzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBSCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQVEsTUFBQSxHQUFBUixPQUFBO0FBSUEsSUFBQVMsS0FBQSxHQUFBTCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQVUsV0FBQSxHQUFBTixzQkFBQSxDQUFBSixPQUFBO0FBR0EsSUFBQVcsTUFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksU0FBQSxHQUFBWixPQUFBO0FBRUEsSUFBQWEsVUFBQSxHQUFBYixPQUFBO0FBQXFELElBQUFjLGVBQUEsRUFBQUMsZ0JBQUEsRUFyQnJEO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWxCLHdCQUFBa0IsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFXLFFBQUFuQixDQUFBLEVBQUFFLENBQUEsUUFBQUMsQ0FBQSxHQUFBUSxNQUFBLENBQUFTLElBQUEsQ0FBQXBCLENBQUEsT0FBQVcsTUFBQSxDQUFBVSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFYLE1BQUEsQ0FBQVUscUJBQUEsQ0FBQXJCLENBQUEsR0FBQUUsQ0FBQSxLQUFBb0IsQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQXJCLENBQUEsV0FBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFFLENBQUEsRUFBQXNCLFVBQUEsT0FBQXJCLENBQUEsQ0FBQXNCLElBQUEsQ0FBQUMsS0FBQSxDQUFBdkIsQ0FBQSxFQUFBbUIsQ0FBQSxZQUFBbkIsQ0FBQTtBQUFBLFNBQUF3QixjQUFBM0IsQ0FBQSxhQUFBRSxDQUFBLE1BQUFBLENBQUEsR0FBQTBCLFNBQUEsQ0FBQUMsTUFBQSxFQUFBM0IsQ0FBQSxVQUFBQyxDQUFBLFdBQUF5QixTQUFBLENBQUExQixDQUFBLElBQUEwQixTQUFBLENBQUExQixDQUFBLFFBQUFBLENBQUEsT0FBQWlCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLE9BQUEyQixPQUFBLFdBQUE1QixDQUFBLFFBQUE2QixnQkFBQSxhQUFBL0IsQ0FBQSxFQUFBRSxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBUyxNQUFBLENBQUFxQix5QkFBQSxHQUFBckIsTUFBQSxDQUFBc0IsZ0JBQUEsQ0FBQWpDLENBQUEsRUFBQVcsTUFBQSxDQUFBcUIseUJBQUEsQ0FBQTdCLENBQUEsS0FBQWdCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLEdBQUEyQixPQUFBLFdBQUE1QixDQUFBLElBQUFTLE1BQUEsQ0FBQUMsY0FBQSxDQUFBWixDQUFBLEVBQUFFLENBQUEsRUFBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixDQUFBLEVBQUFELENBQUEsaUJBQUFGLENBQUE7QUFBQSxTQUFBa0MsV0FBQS9CLENBQUEsRUFBQW1CLENBQUEsRUFBQXRCLENBQUEsV0FBQXNCLENBQUEsT0FBQWEsZ0JBQUEsYUFBQWIsQ0FBQSxPQUFBYywyQkFBQSxhQUFBakMsQ0FBQSxFQUFBa0MseUJBQUEsS0FBQUMsT0FBQSxDQUFBQyxTQUFBLENBQUFqQixDQUFBLEVBQUF0QixDQUFBLFlBQUFtQyxnQkFBQSxhQUFBaEMsQ0FBQSxFQUFBcUMsV0FBQSxJQUFBbEIsQ0FBQSxDQUFBSSxLQUFBLENBQUF2QixDQUFBLEVBQUFILENBQUE7QUFBQSxTQUFBcUMsMEJBQUEsY0FBQWxDLENBQUEsSUFBQXNDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBQyxPQUFBLENBQUEzQixJQUFBLENBQUFzQixPQUFBLENBQUFDLFNBQUEsQ0FBQUUsT0FBQSxpQ0FBQXRDLENBQUEsYUFBQWtDLHlCQUFBLFlBQUFBLDBCQUFBLGFBQUFsQyxDQUFBO0FBc0JBLElBQU15QyxzQkFBc0IsR0FBRyxFQUFFO0FBQ2pDLElBQU1DLCtCQUErQixHQUFHLEVBQUU7QUFDMUMsSUFBTUMsZ0JBQWdCLEdBQUcsRUFBRTtBQUMzQixJQUFNQyxtQkFBbUIsR0FBRyxFQUFFO0FBQzlCLElBQU1DLGdCQUFnQixHQUFHLEVBQUU7QUFDM0I7QUFDQSxJQUFNQyxxQkFBcUIsR0FBRyxFQUFFO0FBQ2hDLElBQU1DLGlCQUFpQixPQUFBbkIsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUNwQm9CLDBCQUFlLENBQUNDLE9BQU8sRUFBRyxJQUFJLEdBQzlCRCwwQkFBZSxDQUFDRSxJQUFJLEVBQUcsSUFBSSxDQUM3QjtBQUVELElBQU1DLGVBQWUsR0FBRztFQUN0QkMsTUFBTSxFQUFFLDhDQUE4QztFQUN0REMsSUFBSSxFQUFFO0FBQ1IsQ0FBQztBQUVELElBQU1DLGlCQUFpQixHQUFHO0VBQ3hCRixNQUFNLEVBQUUsa0RBQWtEO0VBQzFEQyxJQUFJLEVBQUU7QUFDUixDQUFDO0FBTU0sSUFBTUUsU0FBUyxHQUFBQyxPQUFBLENBQUFELFNBQUEsR0FBR0UsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFBaEUsZUFBQSxLQUFBQSxlQUFBLE9BQUFpRSx1QkFBQSw2akZBSXhCLFVBQUFDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0Msa0JBQWtCO0FBQUEsR0FRNUMsVUFBQUYsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0csdUJBQXVCLElBQUlILEtBQUssQ0FBQ0MsS0FBSyxDQUFDRyxjQUFjO0FBQUEsR0F3QnpDLFVBQUFKLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ksZUFBZTtBQUFBLEdBQzdDbkIscUJBQXFCLEVBS1osVUFBQWMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDSSxlQUFlO0FBQUEsR0FFN0NuQixxQkFBcUIsRUE2QmIsVUFBQWMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDSyxxQkFBcUI7QUFBQSxHQUdoRCxVQUFBTixLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNNLGlCQUFpQjtBQUFBLEdBR3RDLFVBQUFQLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ08sZ0JBQWdCO0FBQUEsR0FtQjlCLFVBQUFSLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ksZUFBZTtBQUFBLEdBQ3JDLFVBQUFMLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ksZUFBZTtBQUFBLEdBR2pELFVBQUFMLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1EsZUFBZTtBQUFBLEdBQ3BDLFVBQUFULEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1MsWUFBWTtBQUFBLEdBUzdCLFVBQUFWLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1EsZUFBZSxHQUFHVCxLQUFLLENBQUNDLEtBQUssQ0FBQ1UsbUJBQW1CO0FBQUEsR0FJdkUsVUFBQVgsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDUSxlQUFlLEdBQUdULEtBQUssQ0FBQ0MsS0FBSyxDQUFDVSxtQkFBbUI7QUFBQSxFQWEzRjtBQUVELElBQU1DLGtCQUFrQixHQUFHLEdBQUc7QUFPOUIsSUFBTUMsbUJBQW1CLEdBQ3ZCLFNBRElBLG1CQUFtQkEsQ0FDdEJDLE9BQU8sRUFBRUMsYUFBYSxFQUFFQyxLQUFNO0VBQUEsT0FDL0IsVUFBQUMsSUFBQSxFQUFhO0lBQUEsSUFBWEMsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7SUFDTCxPQUFPLENBQUNKLE9BQU8sQ0FBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUVGLEtBQUssR0FDL0JBLEtBQUssR0FDTEQsYUFBYSxDQUFDRCxPQUFPLENBQUNJLEtBQUssQ0FBQyxDQUFDLElBQUlOLGtCQUFrQjtFQUN6RCxDQUFDO0FBQUE7QUFXSDtBQUNBO0FBQ0E7QUFDQSxJQUFNTyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBQyxLQUFBLEVBRXJCQyxTQUFTLEVBQ047RUFBQSxJQUZGQyxhQUFhLEdBQUFGLEtBQUEsQ0FBYkUsYUFBYTtJQUFFUixPQUFPLEdBQUFNLEtBQUEsQ0FBUE4sT0FBTztJQUFFUyxNQUFNLEdBQUFILEtBQUEsQ0FBTkcsTUFBTTtJQUFFQyxPQUFPLEdBQUFKLEtBQUEsQ0FBUEksT0FBTztJQUFFQyxRQUFRLEdBQUFMLEtBQUEsQ0FBUkssUUFBUTtJQUFFQyxTQUFTLEdBQUFOLEtBQUEsQ0FBVE0sU0FBUztFQUc3RCxJQUFNQyxNQUFNLEdBQUdELFNBQVMsSUFBSUEsU0FBUyxDQUFDNUQsTUFBTSxHQUFHLElBQUF0QixrQkFBRyxFQUFDa0YsU0FBUyxFQUFFRCxRQUFRLENBQUMsR0FBR0EsUUFBUTtFQUNsRixJQUFPRyxJQUFJLEdBQUlKLE9BQU8sQ0FBQ0QsTUFBTSxDQUFDLENBQXZCSyxJQUFJO0VBRVgsSUFBTUMsS0FBSyxHQUFHUCxhQUFhLENBQUNRLE9BQU8sQ0FBQ0gsTUFBTSxFQUFFYixPQUFPLENBQUNpQixPQUFPLENBQUNSLE1BQU0sQ0FBQyxDQUFDO0VBQ3BFLE9BQU9NLEtBQUssS0FBSyxJQUFJLElBQUlBLEtBQUssS0FBS0csU0FBUyxJQUFJSCxLQUFLLEtBQUssRUFBRSxHQUN4RCxFQUFFLEdBQ0ZSLFNBQVMsR0FDVEEsU0FBUyxDQUFDUSxLQUFLLENBQUMsR0FDaEIsSUFBQUksc0JBQWUsRUFBQ0osS0FBSyxFQUFFRCxJQUFJLENBQUM7QUFDbEMsQ0FBQztBQU9ELElBQU1NLGtCQUFrQixHQUFHckMsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFBL0QsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQWdFLHVCQUFBLHVmQUN6QixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNrQyx3QkFBd0I7QUFBQSxHQU1oRCxVQUFBbkMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ29DLEdBQUc7QUFBQSxHQUNWLFVBQUFwQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNvQyxnQkFBZ0I7QUFBQSxHQUUzQyxVQUFBckMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDcUMsV0FBVztBQUFBLEdBQ3JCLFVBQUF0QyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNzQyxnQ0FBZ0M7QUFBQSxHQWFqRCxVQUFBdkMsS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQ3dDLFNBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUFBLENBQUMsQ0FHN0Q7QUFFRCxJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQUMsS0FBQTtFQUFBLElBQ2hCTixHQUFHLEdBQUFNLEtBQUEsQ0FBSE4sR0FBRztJQUNISSxTQUFTLEdBQUFFLEtBQUEsQ0FBVEYsU0FBUztJQUNURyxlQUFlLEdBQUFELEtBQUEsQ0FBZkMsZUFBZTtFQUFBLG9CQU1mN0gsTUFBQSxZQUFBOEgsYUFBQSxDQUFDVixrQkFBa0I7SUFBQ0UsR0FBRyxFQUFFQSxHQUFJO0lBQUNJLFNBQVMsRUFBRUE7RUFBVSxnQkFDakQxSCxNQUFBLFlBQUE4SCxhQUFBO0lBQUtDLE9BQU8sRUFBRUY7RUFBZ0IsR0FDM0JILFNBQVMsR0FBRyxtQkFBbUIsR0FBRyxtQkFBbUIsZUFDdEQxSCxNQUFBLFlBQUE4SCxhQUFBLENBQUNwSCxNQUFBLENBQUFzSCxTQUFTO0lBQUNDLE1BQU0sRUFBQztFQUFNLENBQUUsQ0FDdkIsQ0FDYSxDQUFDO0FBQUEsQ0FDdEI7QUF5Qk0sSUFBTUMsWUFBWSxHQUFBcEQsT0FBQSxDQUFBb0QsWUFBQSxHQUFHLFNBQWZBLFlBQVlBLENBQUFDLEtBQUEsRUFlQTtFQUFBLElBZHZCQyxTQUFTLEdBQUFELEtBQUEsQ0FBVEMsU0FBUztJQUNUQyxRQUFRLEdBQUFGLEtBQUEsQ0FBUkUsUUFBUTtJQUNSckMsT0FBTyxHQUFBbUMsS0FBQSxDQUFQbkMsT0FBTztJQUNQc0MsZUFBZSxHQUFBSCxLQUFBLENBQWZHLGVBQWU7SUFDZkMsVUFBVSxHQUFBSixLQUFBLENBQVZJLFVBQVU7SUFBQUMsaUJBQUEsR0FBQUwsS0FBQSxDQUNWTSxXQUFXO0lBQVhBLFdBQVcsR0FBQUQsaUJBQUEsY0FBR3RCLFNBQVMsR0FBQXNCLGlCQUFBO0lBQ3ZCRSxRQUFRLEdBQUFQLEtBQUEsQ0FBUk8sUUFBUTtJQUNSQyxTQUFTLEdBQUFSLEtBQUEsQ0FBVFEsU0FBUztJQUNUQyxhQUFhLEdBQUFULEtBQUEsQ0FBYlMsYUFBYTtJQUNiQyxXQUFXLEdBQUFWLEtBQUEsQ0FBWFUsV0FBVztJQUFBQyxnQkFBQSxHQUFBWCxLQUFBLENBQ1hZLFVBQVU7SUFBVkEsVUFBVSxHQUFBRCxnQkFBQSxjQUFHNUIsU0FBUyxHQUFBNEIsZ0JBQUE7SUFDdEJFLGdCQUFnQixHQUFBYixLQUFBLENBQWhCYSxnQkFBZ0I7SUFDaEJDLGNBQWMsR0FBQWQsS0FBQSxDQUFkYyxjQUFjO0lBQUFDLGdCQUFBLEdBQUFmLEtBQUEsQ0FDZGdCLFVBQVU7SUFBVkEsVUFBVSxHQUFBRCxnQkFBQSxjQUFHLENBQUMsR0FBQUEsZ0JBQUE7RUFFZCxJQUFNRSxZQUFZLEdBQUdkLGVBQWUsQ0FBQ0wsTUFBTTtFQUUzQyxJQUFNb0IsV0FBVyxHQUFHLElBQUFDLGNBQU8sRUFDekI7SUFBQSxPQUFPO01BQ0xyQixNQUFNLEtBQUFzQixNQUFBLENBQUtILFlBQVk7SUFDekIsQ0FBQztFQUFBLENBQUMsRUFDRixDQUFDQSxZQUFZLENBQ2YsQ0FBQztFQUNELElBQU1JLFlBQVksR0FBRyxJQUFBRixjQUFPLEVBQzFCO0lBQUEsT0FBTztNQUNMaEMsR0FBRyxLQUFBaUMsTUFBQSxDQUFLSCxZQUFZO0lBQ3RCLENBQUM7RUFBQSxDQUFDLEVBQ0YsQ0FBQ0EsWUFBWSxDQUNmLENBQUM7RUFFRCxvQkFDRXBKLE1BQUEsWUFBQThILGFBQUEsQ0FBQzNILGlCQUFBLENBQUFzSixTQUFTLFFBQ1AsVUFBQUMsS0FBQSxFQUFxQjtJQUFBLElBQW5CQyxLQUFLLEdBQUFELEtBQUEsQ0FBTEMsS0FBSztNQUFFMUIsTUFBTSxHQUFBeUIsS0FBQSxDQUFOekIsTUFBTTtJQUNkLElBQU0yQixhQUFhLEdBQUc7TUFDcEJDLFdBQVcsRUFBRTdELE9BQU8sQ0FBQ2hELE1BQU07TUFDM0I2RixXQUFXLEVBQVhBLFdBQVc7TUFDWGMsS0FBSyxFQUFFcEIsVUFBVSxJQUFJb0I7SUFDdkIsQ0FBQztJQUNELElBQU1HLGVBQWUsR0FBR3ZCLFVBQVUsSUFBSW9CLEtBQUs7SUFDM0MsSUFBTUksY0FBYyxHQUFHdEIsV0FBVyxJQUFJUixNQUFNO0lBRTVDLG9CQUNFakksTUFBQSxZQUFBOEgsYUFBQSxDQUFBOUgsTUFBQSxZQUFBZ0ssUUFBQSxxQkFDRWhLLE1BQUEsWUFBQThILGFBQUE7TUFDRW1DLFNBQVMsRUFBRSxJQUFBQyx1QkFBVSxFQUFDLHFCQUFxQixFQUFFOUIsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUUxRCxNQUFNLENBQUU7TUFDaEV5RixLQUFLLEVBQUVkO0lBQVksZ0JBRW5CckosTUFBQSxZQUFBOEgsYUFBQSxDQUFDbkgsS0FBQSxXQUFJLE1BQUF5SixTQUFBO01BQ0hDLFlBQVksRUFBRXJCO0lBQWlCLEdBQzNCVixlQUFlLEVBQ2ZzQixhQUFhO01BQ2pCM0IsTUFBTSxFQUFFSyxlQUFlLENBQUNMLE1BQU0sR0FBRzdELHFCQUFzQjtNQUN2RHVGLEtBQUssRUFBRUcsZUFBZ0I7TUFDdkJYLFVBQVUsRUFBRUEsVUFBVztNQUN2QlQsUUFBUSxFQUFFQTtJQUFTLEVBQ3BCLENBQ0UsQ0FBQyxlQUNOMUksTUFBQSxZQUFBOEgsYUFBQTtNQUNFbUMsU0FBUyxFQUFFLElBQUFDLHVCQUFVLEVBQUMscUJBQXFCLEVBQUU5QixTQUFTLGFBQVRBLFNBQVMsdUJBQVRBLFNBQVMsQ0FBRXpELElBQUksQ0FBRTtNQUM5RHdGLEtBQUssRUFBRVg7SUFBYSxnQkFFcEJ4SixNQUFBLFlBQUE4SCxhQUFBLENBQUNuSCxLQUFBLFdBQUksTUFBQXlKLFNBQUE7TUFDSEMsWUFBWSxFQUFFcEI7SUFBZSxHQUN6QkwsYUFBYSxFQUNiZ0IsYUFBYTtNQUNqQkssU0FBUyxFQUFFNUIsUUFBUSxHQUFHLGFBQWEsR0FBRyxXQUFZO01BQ2xESixNQUFNLEVBQUU4QixjQUFjLEdBQUd6QixlQUFlLENBQUNMLE1BQU87TUFDaERTLFFBQVEsRUFBRUEsUUFBUztNQUNuQlMsVUFBVSxFQUFFQSxVQUFXO01BQ3ZCUixTQUFTLEVBQUVBLFNBQVU7TUFDckJJLFVBQVUsRUFBRUE7SUFBVyxFQUN4QixDQUNFLENBQ0wsQ0FBQztFQUVQLENBQ1MsQ0FBQztBQUVoQixDQUFDO0FBK0JEdUIsZ0JBQWdCLENBQUNDLElBQUksR0FBRyxDQUFDQyxzQkFBaUIsQ0FBQztBQUMzQyxTQUFTRixnQkFBZ0JBLENBQUNHLFVBQWdELEVBQUU7RUFBQSxJQUNwRUMsU0FBUywwQkFBQUMsVUFBQTtJQUFBLFNBQUFELFVBQUE7TUFBQSxJQUFBRSxLQUFBO01BQUEsSUFBQUMsZ0JBQUEsbUJBQUFILFNBQUE7TUFBQSxTQUFBSSxJQUFBLEdBQUEvSCxTQUFBLENBQUFDLE1BQUEsRUFBQStILElBQUEsT0FBQUMsS0FBQSxDQUFBRixJQUFBLEdBQUFHLElBQUEsTUFBQUEsSUFBQSxHQUFBSCxJQUFBLEVBQUFHLElBQUE7UUFBQUYsSUFBQSxDQUFBRSxJQUFBLElBQUFsSSxTQUFBLENBQUFrSSxJQUFBO01BQUE7TUFBQUwsS0FBQSxHQUFBdkgsVUFBQSxPQUFBcUgsU0FBQSxLQUFBbkIsTUFBQSxDQUFBd0IsSUFBQTtNQUFBLElBQUE3SCxnQkFBQSxhQUFBMEgsS0FBQSxnQkFjdUIsSUFBSTtNQUFBLElBQUExSCxnQkFBQSxhQUFBMEgsS0FBQSxrQkFDRixJQUFJO01BQUEsSUFBQTFILGdCQUFBLGFBQUEwSCxLQUFBLGdCQUM3QixLQUFLO01BQUEsSUFBQTFILGdCQUFBLGFBQUEwSCxLQUFBLFdBRU07UUFDdEIzRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCaUYsaUJBQWlCLEVBQUUsSUFBSTtRQUN2QnhELFNBQVMsRUFBRTtNQUNiLENBQUM7TUFBQSxJQUFBeEUsZ0JBQUEsYUFBQTBILEtBQUEsdUJBdUJNLElBQUFPLGdCQUFTLEVBQWlCLENBQUM7TUFBQSxJQUFBakksZ0JBQUEsYUFBQTBILEtBQUEsYUFDeEIsVUFBQzFGLEtBQXFCO1FBQUEsT0FBS0EsS0FBSyxDQUFDYyxPQUFPO01BQUE7TUFBQSxJQUFBOUMsZ0JBQUEsYUFBQTBILEtBQUEsbUJBQ2xDLFVBQUMxRixLQUFxQjtRQUFBLE9BQUtBLEtBQUssQ0FBQ2tHLGFBQWE7TUFBQTtNQUFBLElBQUFsSSxnQkFBQSxhQUFBMEgsS0FBQSxxQkFDNUMsSUFBQVMsd0JBQWMsRUFBQ1QsS0FBQSxDQUFLNUUsT0FBTyxFQUFFNEUsS0FBQSxDQUFLUSxhQUFhLEVBQUUsVUFBQ3BGLE9BQU8sRUFBRW9GLGFBQWE7UUFBQSxPQUN4RixDQUFDSixLQUFLLENBQUNNLE9BQU8sQ0FBQ0YsYUFBYSxDQUFDLEdBQUdwRixPQUFPLEdBQUdBLE9BQU8sQ0FBQ3RELE1BQU0sQ0FBQyxVQUFBNkksQ0FBQztVQUFBLE9BQUksQ0FBQ0gsYUFBYSxDQUFDSSxRQUFRLENBQUNELENBQUMsQ0FBQztRQUFBLEVBQUM7TUFBQSxDQUMzRixDQUFDO01BQUEsSUFBQXJJLGdCQUFBLGFBQUEwSCxLQUFBLHVCQUVtQixVQUFBTSxpQkFBaUIsRUFBSTtRQUN2QyxJQUFJTixLQUFBLENBQUthLFVBQVUsRUFDakJiLEtBQUEsQ0FBS2MsUUFBUSxDQUFDO1VBQ1pSLGlCQUFpQixFQUNmTixLQUFBLENBQUtlLEtBQUssQ0FBQ1QsaUJBQWlCLEtBQUtBLGlCQUFpQixHQUFHLElBQUksR0FBR0E7UUFDaEUsQ0FBQyxDQUFDO01BQ04sQ0FBQztNQUFBLElBQUFoSSxnQkFBQSxhQUFBMEgsS0FBQSxxQkFDaUIsWUFBTTtRQUN0QixJQUFJQSxLQUFBLENBQUthLFVBQVUsRUFBRWIsS0FBQSxDQUFLYyxRQUFRLENBQUM7VUFBQ2hFLFNBQVMsRUFBRSxDQUFDa0QsS0FBQSxDQUFLZSxLQUFLLENBQUNqRTtRQUFTLENBQUMsQ0FBQztNQUN4RSxDQUFDO01BQUEsSUFBQXhFLGdCQUFBLGFBQUEwSCxLQUFBLHNCQUNrQixZQUFNO1FBQ3ZCLElBQUFnQixXQUFBLEdBQXlFaEIsS0FBQSxDQUFLMUYsS0FBSztVQUFBMkcscUJBQUEsR0FBQUQsV0FBQSxDQUE1RTNGLGFBQWE7VUFBRTZGLFVBQVUsR0FBQUQscUJBQUEsY0FBRyxDQUFDLENBQUMsR0FBQUEscUJBQUE7VUFBRXRELFVBQVUsR0FBQXFELFdBQUEsQ0FBVnJELFVBQVU7VUFBQXdELHFCQUFBLEdBQUFILFdBQUEsQ0FBRVIsYUFBYTtVQUFiQSxhQUFhLEdBQUFXLHFCQUFBLGNBQUcsRUFBRSxHQUFBQSxxQkFBQTtRQUNyRSxJQUFNQyxlQUFlLEdBQUdwQixLQUFBLENBQUtvQixlQUFlLENBQUNwQixLQUFBLENBQUsxRixLQUFLLENBQUM7UUFFeEQsSUFBTXlFLEtBQUssR0FBR3BCLFVBQVUsR0FBR0EsVUFBVSxHQUFHcUMsS0FBQSxDQUFLcUIsSUFBSSxDQUFDQyxPQUFPLEdBQUd0QixLQUFBLENBQUtxQixJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsV0FBVyxHQUFHLENBQUM7O1FBRTdGO1FBQ0EsSUFBTUMsV0FBVyxHQUFHaEIsYUFBYSxDQUFDcEksTUFBTSxHQUFHMkcsS0FBSyxHQUFHLENBQUMsR0FBR0EsS0FBSztRQUM1RCxJQUFBMEMsS0FBQSxHQUErQixJQUFBQyxnQ0FBc0IsRUFDbkRGLFdBQVcsRUFDWE4sVUFBVSxFQUNWVixhQUFhLEVBQ2JZLGVBQ0YsQ0FBQztVQUxNL0YsYUFBYSxHQUFBb0csS0FBQSxDQUFicEcsYUFBYTtVQUFFQyxLQUFLLEdBQUFtRyxLQUFBLENBQUxuRyxLQUFLO1FBTzNCLE9BQU87VUFDTEQsYUFBYSxFQUFiQSxhQUFhO1VBQ2JDLEtBQUssRUFBTEE7UUFDRixDQUFDO01BQ0gsQ0FBQztNQUFBLElBQUFoRCxnQkFBQSxhQUFBMEgsS0FBQSx5QkFFcUIsWUFBTTtRQUMxQixJQUFJQSxLQUFBLENBQUthLFVBQVUsRUFBRWIsS0FBQSxDQUFLYyxRQUFRLENBQUNkLEtBQUEsQ0FBSzJCLGdCQUFnQixDQUFDLENBQUMsQ0FBQztNQUM3RCxDQUFDO01BQUEsSUFBQXJKLGdCQUFBLGFBQUEwSCxLQUFBLHVCQUVtQixJQUFBNEIsbUJBQVEsRUFBQzVCLEtBQUEsQ0FBSzZCLG1CQUFtQixFQUFFLEdBQUcsQ0FBQztNQUFBLElBQUF2SixnQkFBQSxhQUFBMEgsS0FBQSxvQkFFMUMsVUFBQzVFLE9BQU8sRUFBRXFDLFFBQVEsRUFBRW5ELEtBQXFCLEVBQUs7UUFBQSxJQUFBd0gscUJBQUE7UUFDN0QsSUFBTUMsVUFBVSxJQUFBRCxxQkFBQSxHQUFHOUIsS0FBQSxDQUFLMUYsS0FBSyxDQUFDeUgsVUFBVSxjQUFBRCxxQkFBQSxjQUFBQSxxQkFBQSxHQUFJckcsaUJBQWlCO1FBQzdELElBQU11RyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFHQyxRQUFRLEVBQUk7VUFDbkMsSUFBT0MsV0FBVyxHQUEwQkQsUUFBUSxDQUE3Q0MsV0FBVztZQUFFQyxHQUFHLEdBQXFCRixRQUFRLENBQWhDRSxHQUFHO1lBQUU1QyxLQUFLLEdBQWMwQyxRQUFRLENBQTNCMUMsS0FBSztZQUFFeEQsUUFBUSxHQUFJa0csUUFBUSxDQUFwQmxHLFFBQVE7VUFDeEMsSUFBT0gsYUFBYSxHQUFhdEIsS0FBSyxDQUEvQnNCLGFBQWE7WUFBRUUsT0FBTyxHQUFJeEIsS0FBSyxDQUFoQndCLE9BQU87VUFDN0IsSUFBTUQsTUFBTSxHQUFHVCxPQUFPLENBQUM4RyxXQUFXLENBQUM7VUFDbkMsSUFBTUUsT0FBTyxHQUFHdkcsTUFBTSxDQUFDUCxLQUFLO1VBRTVCLElBQU1LLFNBQVMsR0FBR3lHLE9BQU8sR0FBRyxJQUFJLEdBQUcsSUFBQUMseUJBQWtCLEVBQUN2RyxPQUFPLENBQUNELE1BQU0sQ0FBQyxDQUFDO1VBQ3RFLElBQU15RyxPQUFPLEdBQUdGLE9BQU8sR0FBRyxFQUFFLEdBQUdMLFVBQVUsQ0FBQTdKLGFBQUEsQ0FBQUEsYUFBQSxLQUFLb0MsS0FBSztZQUFFdUIsTUFBTSxFQUFOQSxNQUFNO1lBQUVFLFFBQVEsRUFBUkE7VUFBUSxJQUFHSixTQUFTLENBQUM7VUFDbEYsSUFBTU8sSUFBSSxHQUFHa0csT0FBTyxHQUFHLElBQUksR0FBR3RHLE9BQU8sQ0FBQ0QsTUFBTSxDQUFDLENBQUNLLElBQUk7VUFFbEQsSUFBTXFHLFlBQVksR0FBRzNHLGFBQWEsR0FBR0EsYUFBYSxDQUFDNEcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztVQUVwRSxJQUFNQyxPQUFPLEdBQUdQLFdBQVcsS0FBSzlHLE9BQU8sQ0FBQ2hELE1BQU0sR0FBRyxDQUFDO1VBQ2xELElBQU1zSyxTQUFTLEdBQUdSLFdBQVcsS0FBSyxDQUFDO1VBQ25DLElBQU1TLFVBQVUsR0FBRzVHLFFBQVEsS0FBS3dHLFlBQVk7VUFDNUMsSUFBTUssVUFBVSxHQUFHbkosaUJBQWlCLENBQUNvSixNQUFNLENBQUMzRyxJQUFJLENBQUMsQ0FBQztVQUVsRCxJQUFNNEcsSUFBSSxnQkFDUjFOLE1BQUEsWUFBQThILGFBQUE7WUFDRW1DLFNBQVMsRUFBRSxJQUFBQyx1QkFBVSxFQUFDLE1BQU0sTUFBQWhILGdCQUFBLGlCQUFBQSxnQkFBQSxpQkFBQUEsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUFBQSxnQkFBQSxpQkFBQUEsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUN6QnlELFFBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLFVBQVUsR0FBRyxTQUFTLEVBQUcsSUFBSSxVQUFBNEMsTUFBQSxDQUMzQzVDLFFBQVEsR0FBSyxJQUFJLEdBQ3pCLGFBQWEsRUFBRTBCLFFBQVEsR0FDdkIsWUFBWSxFQUFFaUYsU0FBUyxHQUN2QixVQUFVLEVBQUVELE9BQU8sR0FDbkIsYUFBYSxFQUFFRSxVQUFVLEdBQ3pCLGFBQWEsRUFBRUMsVUFBVSxDQUMxQixDQUFFO1lBQ0hULEdBQUcsRUFBRUEsR0FBSTtZQUNUNUMsS0FBSyxFQUFFQSxLQUFNO1lBQ2J3RCxLQUFLLEVBQUVYLE9BQU8sR0FBRzlGLFNBQVMsR0FBR2dHO1VBQVEsTUFBQTNELE1BQUEsQ0FFakMyRCxPQUFPLEVBQUEzRCxNQUFBLENBQUc4RCxPQUFPLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FDaEMsQ0FDTjtVQUVELE9BQU9LLElBQUk7UUFDYixDQUFDO1FBQ0QsT0FBT2QsZ0JBQWdCO01BQ3pCLENBQUM7TUFBQSxPQUFBaEMsS0FBQTtJQUFBO0lBQUEsSUFBQWdELFVBQUEsYUFBQWxELFNBQUEsRUFBQUMsVUFBQTtJQUFBLFdBQUFrRCxhQUFBLGFBQUFuRCxTQUFBO01BQUFxQyxHQUFBO01BQUFoRyxLQUFBLEVBMUdELFNBQUErRyxpQkFBaUJBLENBQUEsRUFBRztRQUNsQixJQUFJLENBQUNyQyxVQUFVLEdBQUcsSUFBSTtRQUN0QnNDLE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQ0MsaUJBQWlCLENBQUM7UUFDekQsSUFBSSxDQUFDQSxpQkFBaUIsQ0FBQyxDQUFDO01BQzFCO0lBQUM7TUFBQWxCLEdBQUE7TUFBQWhHLEtBQUEsRUFFRCxTQUFBbUgsa0JBQWtCQSxDQUFDQyxTQUFTLEVBQUU7UUFDNUIsSUFDRSxJQUFJLENBQUNqSixLQUFLLENBQUNlLGFBQWEsS0FBS2tJLFNBQVMsQ0FBQ2xJLGFBQWEsSUFDcEQsSUFBSSxDQUFDZixLQUFLLENBQUNrRyxhQUFhLEtBQUsrQyxTQUFTLENBQUMvQyxhQUFhLEVBQ3BEO1VBQ0EsSUFBSSxDQUFDNkMsaUJBQWlCLENBQUMsQ0FBQztRQUMxQjtNQUNGO0lBQUM7TUFBQWxCLEdBQUE7TUFBQWhHLEtBQUEsRUFFRCxTQUFBcUgsb0JBQW9CQSxDQUFBLEVBQUc7UUFDckIsSUFBSSxDQUFDM0MsVUFBVSxHQUFHLEtBQUs7UUFDdkJzQyxNQUFNLENBQUNNLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUNKLGlCQUFpQixDQUFDO1FBQzVEO01BQ0Y7SUFBQztNQUFBbEIsR0FBQTtNQUFBaEcsS0FBQSxFQXlGRCxTQUFBdUgsZ0JBQWdCQSxDQUFDdEksT0FBTyxFQUFFcUMsUUFBUSxFQUFFbkQsS0FBSyxFQUFFcUosaUJBQWlCLEVBQUVyRCxpQkFBaUIsRUFBRTtRQUFBLElBQUFzRCxNQUFBO1FBQy9FLElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUc1QixRQUFRO1VBQUEsb0JBQ2pDN00sTUFBQSxZQUFBOEgsYUFBQSxDQUFDMkMsVUFBVTtZQUNUb0MsUUFBUSxFQUFFQSxRQUFTO1lBQ25CRSxHQUFHLEVBQUVGLFFBQVEsQ0FBQ0MsV0FBWTtZQUMxQjlHLE9BQU8sRUFBRUEsT0FBUTtZQUNqQnFDLFFBQVEsRUFBRUEsUUFBUztZQUNuQlgsU0FBUyxFQUFFOEcsTUFBSSxDQUFDN0MsS0FBSyxDQUFDakUsU0FBVTtZQUNoQ3hDLEtBQUssRUFBRUEsS0FBTTtZQUNicUosaUJBQWlCLEVBQUVBLGlCQUFrQjtZQUNyQ3JELGlCQUFpQixFQUFFQTtVQUFrQixDQUN0QyxDQUFDO1FBQUEsQ0FDSDtRQUNELE9BQU91RCxrQkFBa0I7TUFDM0I7SUFBQztNQUFBMUIsR0FBQTtNQUFBaEcsS0FBQSxFQUNELFNBQUEySCxNQUFNQSxDQUFBLEVBQUc7UUFBQSxJQUFBQyxNQUFBO1FBQ1AsSUFBQUMsWUFBQSxHQVFJLElBQUksQ0FBQzFKLEtBQUs7VUFQWnNCLGFBQWEsR0FBQW9JLFlBQUEsQ0FBYnBJLGFBQWE7VUFBQXFJLHFCQUFBLEdBQUFELFlBQUEsQ0FDYnhELGFBQWE7VUFBYkEsYUFBYSxHQUFBeUQscUJBQUEsY0FBRyxFQUFFLEdBQUFBLHFCQUFBO1VBQUFDLGtCQUFBLEdBQUFGLFlBQUEsQ0FDbEJ6SixLQUFLO1VBQUxBLEtBQUssR0FBQTJKLGtCQUFBLGNBQUcsQ0FBQyxDQUFDLEdBQUFBLGtCQUFBO1VBQ1Z2RyxVQUFVLEdBQUFxRyxZQUFBLENBQVZyRyxVQUFVO1VBQUF3RyxxQkFBQSxHQUFBSCxZQUFBLENBQ1ZuRyxXQUFXO1VBQVhBLFdBQVcsR0FBQXNHLHFCQUFBLGNBQUcsQ0FBQyxHQUFBQSxxQkFBQTtVQUNmQyxRQUFRLEdBQUFKLFlBQUEsQ0FBUkksUUFBUTtVQUNSM0osdUJBQXVCLEdBQUF1SixZQUFBLENBQXZCdkosdUJBQXVCO1FBRXpCLElBQU0yRyxlQUFlLEdBQUcsSUFBSSxDQUFDQSxlQUFlLENBQUMsSUFBSSxDQUFDOUcsS0FBSyxDQUFDO1FBRXhELElBQUErSixXQUFBLEdBQWtFLElBQUksQ0FBQ3RELEtBQUs7VUFBQXVELHFCQUFBLEdBQUFELFdBQUEsQ0FBckVoSixhQUFhO1VBQWJBLGFBQWEsR0FBQWlKLHFCQUFBLGNBQUcsQ0FBQyxDQUFDLEdBQUFBLHFCQUFBO1VBQUVoRSxpQkFBaUIsR0FBQStELFdBQUEsQ0FBakIvRCxpQkFBaUI7VUFBRWhGLEtBQUssR0FBQStJLFdBQUEsQ0FBTC9JLEtBQUs7VUFBRXdCLFNBQVMsR0FBQXVILFdBQUEsQ0FBVHZILFNBQVM7UUFDOUQsSUFBTXlILG9CQUFvQixHQUFHakosS0FBSyxNQUFBcUQsTUFBQSxLQUFBNkYsbUJBQUEsYUFDMUJwRCxlQUFlLElBQUU7VUFBQzlGLEtBQUssRUFBRTtRQUFJLENBQUMsS0FDbEM4RixlQUFlO1FBQ25CLElBQU1xRCxrQkFBa0IsR0FBR2pFLGFBQWEsQ0FBQ2tFLE1BQU0sQ0FDN0MsVUFBQ0MsR0FBRyxFQUFFQyxHQUFHO1VBQUEsT0FBS0QsR0FBRyxHQUFJLElBQUE3TixrQkFBRyxFQUFDdUUsYUFBYSxFQUFFdUosR0FBRyxFQUFFLENBQUMsQ0FBWTtRQUFBLEdBQzFELENBQ0YsQ0FBQztRQUVELElBQU1DLGdCQUFnQixHQUFHN0wsT0FBTyxDQUFDd0gsYUFBYSxDQUFDcEksTUFBTSxDQUFDO1FBQ3RELElBQUEwTSxxQkFBQSxHQUtJdkssS0FBSyxDQUpQd0ssZUFBZTtVQUFmQSxlQUFlLEdBQUFELHFCQUFBLGNBQUczTCxzQkFBc0IsR0FBQTJMLHFCQUFBO1VBQUFFLHFCQUFBLEdBSXRDekssS0FBSyxDQUhQa0Msd0JBQXdCO1VBQXhCQSx3QkFBd0IsR0FBQXVJLHFCQUFBLGNBQUc1TCwrQkFBK0IsR0FBQTRMLHFCQUFBO1VBQUFDLHFCQUFBLEdBR3hEMUssS0FBSyxDQUZQMksscUJBQXFCO1VBQXJCQSxxQkFBcUIsR0FBQUQscUJBQUEsY0FBRzlMLHNCQUFzQixHQUFBOEwscUJBQUE7VUFBQUUsZ0JBQUEsR0FFNUM1SyxLQUFLLENBRFA2SyxTQUFTO1VBQVRBLFNBQVMsR0FBQUQsZ0JBQUEsY0FBRzlMLGdCQUFnQixHQUFBOEwsZ0JBQUE7UUFHOUIsSUFBTXpILGVBQWUsR0FBRztVQUN0QnJDLGFBQWEsRUFBYkEsYUFBYTtVQUNiZ0UsU0FBUyxFQUFFLGFBQWE7VUFDeEJoQyxNQUFNLEVBQUUsQ0FBQytHLFFBQVEsR0FDYlcsZUFBZSxHQUNmakksU0FBUyxHQUNUb0kscUJBQXFCLEdBQ3JCSCxlQUFlLEdBQUd0SSx3QkFBd0I7VUFDOUM0SSxRQUFRLEVBQUUsQ0FBQztVQUNYRCxTQUFTLEVBQUUsQ0FBQ2hCLFFBQVEsR0FDaEJXLGVBQWUsR0FDZmpJLFNBQVMsR0FDVG9JLHFCQUFxQixHQUNyQkgsZUFBZSxHQUFHdEk7UUFDeEIsQ0FBQztRQUVELElBQU11QixhQUFhLEdBQUc7VUFDcEIzQyxhQUFhLEVBQWJBLGFBQWE7VUFDYi9CLG1CQUFtQixFQUFuQkEsbUJBQW1CO1VBQ25CQyxnQkFBZ0IsRUFBaEJBLGdCQUFnQjtVQUNoQjhMLFFBQVEsRUFBRXpKLGFBQWEsR0FBR0EsYUFBYSxDQUFDNEcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDO1VBQ3JENEMsU0FBUyxFQUFUQTtRQUNGLENBQUM7UUFFRCxvQkFDRWhRLE1BQUEsWUFBQThILGFBQUEsQ0FBQ2pELFNBQVM7VUFDUm9GLFNBQVMsRUFBQyxzQkFBc0I7VUFDaENpRyxHQUFHLEVBQUUsSUFBSSxDQUFDakUsSUFBSztVQUNmNUcsdUJBQXVCLEVBQUVBO1FBQXdCLEdBRWhEdkQsTUFBTSxDQUFDUyxJQUFJLENBQUMwRCxhQUFhLENBQUMsQ0FBQ2pELE1BQU0sZ0JBQ2hDaEQsTUFBQSxZQUFBOEgsYUFBQSxDQUFBOUgsTUFBQSxZQUFBZ0ssUUFBQSxxQkFDRWhLLE1BQUEsWUFBQThILGFBQUEsQ0FBQzNILGlCQUFBLENBQUFnUSxVQUFVLFFBQ1IsVUFBQUMsS0FBQSxFQUF1QztVQUFBLElBQXJDMUgsU0FBUSxHQUFBMEgsS0FBQSxDQUFSMUgsUUFBUTtZQUFFUyxVQUFVLEdBQUFpSCxLQUFBLENBQVZqSCxVQUFVO1lBQUVSLFNBQVMsR0FBQXlILEtBQUEsQ0FBVHpILFNBQVM7VUFDaEMsb0JBQ0UzSSxNQUFBLFlBQUE4SCxhQUFBO1lBQUttQyxTQUFTLEVBQUM7VUFBdUIsR0FDbkN3RixnQkFBZ0IsaUJBQ2Z6UCxNQUFBLFlBQUE4SCxhQUFBO1lBQUtpRixHQUFHLEVBQUMsZ0JBQWdCO1lBQUM5QyxTQUFTLEVBQUM7VUFBeUIsZ0JBQzNEakssTUFBQSxZQUFBOEgsYUFBQSxDQUFDSSxZQUFZO1lBQ1hFLFNBQVMsRUFBRTNELGVBQWdCO1lBQzNCNEQsUUFBUTtZQUNSckMsT0FBTyxFQUFFb0YsYUFBYztZQUN2QjlDLGVBQWUsRUFBRUEsZUFBZ0I7WUFDakNDLFVBQVUsRUFBRThHLGtCQUFtQjtZQUMvQjNHLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFFcUMsSUFBSTtjQUFBLE9BQUlyQyxTQUFRLENBQUE1RixhQUFBLENBQUFBLGFBQUEsS0FBS2lJLElBQUk7Z0JBQUU1QixVQUFVLEVBQVZBO2NBQVUsRUFBQyxDQUFDO1lBQUEsQ0FBQztZQUNsRFIsU0FBUyxFQUFFQSxTQUFVO1lBQ3JCUSxVQUFVLEVBQUVBLFVBQVc7WUFDdkJQLGFBQWEsRUFBRUEsYUFBYztZQUM3QkcsVUFBVSxFQUFFLFNBQVpBLFVBQVVBLENBQUVzSCxVQUFVO2NBQUEsT0FBSzFCLE1BQUksQ0FBQzBCLFVBQVUsR0FBR0EsVUFBVTtZQUFBLENBQUU7WUFDekR4SCxXQUFXLEVBQUU5QyxtQkFBbUIsQ0FBQ3FGLGFBQWEsRUFBRW5GLGFBQWEsQ0FBRTtZQUMvRCtDLGdCQUFnQixFQUFFMkYsTUFBSSxDQUFDTCxnQkFBZ0IsQ0FDckNsRCxhQUFhLEVBQ2IsSUFBSSxFQUNKdUQsTUFBSSxDQUFDekosS0FBSyxFQUNWeUosTUFBSSxDQUFDSixpQkFBaUIsRUFDdEJyRCxpQkFDRixDQUFFO1lBQ0ZqQyxjQUFjLEVBQUUwRixNQUFJLENBQUMyQixjQUFjLENBQUNsRixhQUFhLEVBQUUsSUFBSSxFQUFFdUQsTUFBSSxDQUFDekosS0FBSztVQUFFLENBQ3RFLENBQ0UsQ0FDTixlQUNEbEYsTUFBQSxZQUFBOEgsYUFBQTtZQUNFaUYsR0FBRyxFQUFDLGtCQUFrQjtZQUN0QjVDLEtBQUssRUFBRTtjQUNMb0csVUFBVSxLQUFBaEgsTUFBQSxDQUFLa0csZ0JBQWdCLE1BQUFsRyxNQUFBLENBQU04RixrQkFBa0IsVUFBTyxHQUFHO1lBQ25FLENBQUU7WUFDRnBGLFNBQVMsRUFBQztVQUE4QixnQkFFeENqSyxNQUFBLFlBQUE4SCxhQUFBLENBQUNJLFlBQVk7WUFDWEUsU0FBUyxFQUFFeEQsaUJBQWtCO1lBQzdCeUQsUUFBUSxFQUFFLEtBQU07WUFDaEJyQyxPQUFPLEVBQUVtSixvQkFBcUI7WUFDOUI3RyxlQUFlLEVBQUVBLGVBQWdCO1lBQ2pDQyxVQUFVLEVBQUVBLFVBQVc7WUFDdkJFLFdBQVcsRUFBRUEsV0FBWTtZQUN6QkMsUUFBUSxFQUFFQSxTQUFTO1lBQ25CQyxTQUFTLEVBQUVBLFNBQVU7WUFDckJRLFVBQVUsRUFBRUEsVUFBVztZQUN2QlAsYUFBYSxFQUFFQSxhQUFjO1lBQzdCRyxVQUFVLEVBQUUsU0FBWkEsVUFBVUEsQ0FBRXlILFlBQVk7Y0FBQSxPQUFLN0IsTUFBSSxDQUFDNkIsWUFBWSxHQUFHQSxZQUFZO1lBQUEsQ0FBRTtZQUMvRDNILFdBQVcsRUFBRTlDLG1CQUFtQixDQUM5Qm9KLG9CQUFvQixFQUNwQmxKLGFBQWEsRUFDYkMsS0FDRixDQUFFO1lBQ0Y4QyxnQkFBZ0IsRUFBRTJGLE1BQUksQ0FBQ0wsZ0JBQWdCLENBQ3JDYSxvQkFBb0IsRUFDcEIsS0FBSyxFQUNMUixNQUFJLENBQUN6SixLQUFLLEVBQ1Z5SixNQUFJLENBQUNKLGlCQUFpQixFQUN0QnJELGlCQUNGLENBQUU7WUFDRmpDLGNBQWMsRUFBRTBGLE1BQUksQ0FBQzJCLGNBQWMsQ0FDakNuQixvQkFBb0IsRUFDcEIsS0FBSyxFQUNMUixNQUFJLENBQUN6SixLQUNQO1VBQUUsQ0FDSCxDQUNFLENBQ0YsQ0FBQztRQUVWLENBQ1UsQ0FBQyxFQUNaOEosUUFBUSxnQkFDUGhQLE1BQUEsWUFBQThILGFBQUEsQ0FBQ0gsWUFBWTtVQUNYTCxHQUFHLEVBQUVxSSxlQUFnQjtVQUNyQmpJLFNBQVMsRUFBRUEsU0FBVTtVQUNyQkcsZUFBZSxFQUFFLElBQUksQ0FBQ0E7UUFBZ0IsQ0FDdkMsQ0FBQyxHQUNBLElBQ0osQ0FBQyxHQUNELElBQ0ssQ0FBQztNQUVoQjtJQUFDO0VBQUEsRUFsU3FCNEksZ0JBQVM7RUFBQSxJQUFBdk4sZ0JBQUEsYUFBM0J3SCxTQUFTLGtCQUNTO0lBQ3BCbEUsYUFBYSxFQUFFLElBQUk7SUFDbkI0RSxhQUFhLEVBQUUsRUFBRTtJQUNqQjFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDWFQsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNqQnlLLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDZG5JLFVBQVUsRUFBRSxJQUFJO0lBQ2hCRSxXQUFXLEVBQUUsSUFBSTtJQUNqQnRELEtBQUssRUFBRSxDQUFDLENBQUM7SUFDVDZKLFFBQVEsRUFBRSxLQUFLO0lBQ2YzSix1QkFBdUIsRUFBRTtFQUMzQixDQUFDO0VBeVJILE9BQU8sSUFBQXNMLDJCQUFTLEVBQUNqRyxTQUFTLENBQUM7QUFDN0I7QUFBQyxJQUFBa0csUUFBQSxHQUFBOUwsT0FBQSxjQUVjd0YsZ0JBQWdCIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { TooltipFormat } from '@kepler.gl/constants';
3
+ import { ColMeta } from '@kepler.gl/types';
4
+ export declare type FormatterDropdownProps = {
5
+ left: number;
6
+ top: number;
7
+ isOpened: boolean;
8
+ displayFormat?: string;
9
+ setDisplayFormat: (displayFormat: TooltipFormat) => void;
10
+ onClose: () => void;
11
+ formatLabels: TooltipFormat[];
12
+ };
13
+ export declare const FormatterDropdown: React.FC<FormatterDropdownProps>;
14
+ export interface OptionDropdownProps {
15
+ isOpened?: boolean;
16
+ column: string;
17
+ colMeta: ColMeta;
18
+ toggleMoreOptions: (column: string) => void;
19
+ sortTableColumn: (sort: string) => void;
20
+ pinTableColumn: () => void;
21
+ copyTableColumn: () => void;
22
+ setDisplayFormat: (displayFormat: any) => void;
23
+ sortMode?: string;
24
+ isSorted?: string;
25
+ isPinned?: boolean;
26
+ }
27
+ declare const OptionDropdown: (props: OptionDropdownProps) => React.JSX.Element;
28
+ export default OptionDropdown;