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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/dist/bottom-widget.d.ts +11 -38
  2. package/dist/bottom-widget.js +43 -99
  3. package/dist/common/action-panel.d.ts +2 -2
  4. package/dist/common/action-panel.js +4 -4
  5. package/dist/common/animation-control/animation-control.d.ts +19 -18
  6. package/dist/common/animation-control/animation-control.js +59 -81
  7. package/dist/common/animation-control/animation-controller.d.ts +6 -2
  8. package/dist/common/animation-control/animation-controller.js +50 -36
  9. package/dist/common/animation-control/animation-speed-slider.js +2 -2
  10. package/dist/common/animation-control/animation-window-control.js +1 -1
  11. package/dist/common/animation-control/floating-time-display.d.ts +2 -2
  12. package/dist/common/animation-control/floating-time-display.js +2 -2
  13. package/dist/common/animation-control/play-control.d.ts +2 -2
  14. package/dist/common/animation-control/play-control.js +1 -1
  15. package/dist/common/animation-control/playback-controls.d.ts +7 -7
  16. package/dist/common/animation-control/playback-controls.js +6 -6
  17. package/dist/common/animation-control/reset-control.d.ts +2 -2
  18. package/dist/common/animation-control/reset-control.js +1 -1
  19. package/dist/common/animation-control/speed-control.d.ts +2 -2
  20. package/dist/common/animation-control/speed-control.js +2 -2
  21. package/dist/common/animation-control/window-action-control.d.ts +2 -2
  22. package/dist/common/animation-control/window-action-control.js +1 -1
  23. package/dist/common/checkbox.d.ts +2 -2
  24. package/dist/common/checkbox.js +3 -3
  25. package/dist/common/color-legend.d.ts +3 -3
  26. package/dist/common/color-legend.js +11 -17
  27. package/dist/common/data-table/button.d.ts +1 -1
  28. package/dist/common/data-table/button.js +2 -2
  29. package/dist/common/data-table/canvas.js +2 -2
  30. package/dist/common/data-table/cell-size.js +44 -13
  31. package/dist/common/data-table/display-format.d.ts +25 -0
  32. package/dist/common/data-table/display-format.js +169 -0
  33. package/dist/common/data-table/grid.d.ts +5 -2
  34. package/dist/common/data-table/grid.js +45 -5
  35. package/dist/common/data-table/header-cell.d.ts +4 -1
  36. package/dist/common/data-table/header-cell.js +66 -29
  37. package/dist/common/data-table/index.d.ts +27 -34
  38. package/dist/common/data-table/index.js +148 -62
  39. package/dist/common/data-table/option-dropdown.d.ts +17 -3
  40. package/dist/common/data-table/option-dropdown.js +86 -13
  41. package/dist/common/dataset-label.d.ts +2 -2
  42. package/dist/common/dataset-label.js +3 -3
  43. package/dist/common/error-boundary.d.ts +6 -2
  44. package/dist/common/error-boundary.js +2 -2
  45. package/dist/common/field-selector.d.ts +9 -3
  46. package/dist/common/field-selector.js +3 -3
  47. package/dist/common/field-token.d.ts +8 -0
  48. package/dist/common/field-token.js +7 -3
  49. package/dist/common/file-uploader/file-drop.d.ts +3 -2
  50. package/dist/common/file-uploader/file-drop.js +2 -2
  51. package/dist/common/file-uploader/file-upload-progress.js +2 -2
  52. package/dist/common/file-uploader/file-upload.d.ts +2 -6
  53. package/dist/common/file-uploader/file-upload.js +2 -2
  54. package/dist/common/file-uploader/upload-button.d.ts +1 -0
  55. package/dist/common/file-uploader/upload-button.js +2 -2
  56. package/dist/common/histogram-plot.d.ts +2 -2
  57. package/dist/common/histogram-plot.js +18 -12
  58. package/dist/common/icon-button.d.ts +2 -1
  59. package/dist/common/icon-button.js +2 -2
  60. package/dist/common/icons/add.d.ts +2 -2
  61. package/dist/common/icons/add.js +2 -2
  62. package/dist/common/icons/anchor_window.d.ts +2 -2
  63. package/dist/common/icons/anchor_window.js +2 -2
  64. package/dist/common/icons/arrow-down-alt.d.ts +2 -2
  65. package/dist/common/icons/arrow-down-alt.js +2 -2
  66. package/dist/common/icons/arrow-down-solid.d.ts +2 -2
  67. package/dist/common/icons/arrow-down-solid.js +2 -2
  68. package/dist/common/icons/arrow-down.d.ts +2 -2
  69. package/dist/common/icons/arrow-down.js +2 -2
  70. package/dist/common/icons/arrow-left.d.ts +2 -2
  71. package/dist/common/icons/arrow-left.js +2 -2
  72. package/dist/common/icons/arrow-right.d.ts +2 -2
  73. package/dist/common/icons/arrow-right.js +2 -2
  74. package/dist/common/icons/arrow-up-alt.d.ts +2 -2
  75. package/dist/common/icons/arrow-up-alt.js +2 -2
  76. package/dist/common/icons/arrow-up-solid.d.ts +2 -2
  77. package/dist/common/icons/arrow-up-solid.js +2 -2
  78. package/dist/common/icons/arrow-up.d.ts +2 -2
  79. package/dist/common/icons/arrow-up.js +2 -2
  80. package/dist/common/icons/base.d.ts +1 -1
  81. package/dist/common/icons/base.js +2 -2
  82. package/dist/common/icons/bug.d.ts +2 -2
  83. package/dist/common/icons/bug.js +2 -2
  84. package/dist/common/icons/cancel.d.ts +2 -2
  85. package/dist/common/icons/cancel.js +2 -2
  86. package/dist/common/icons/checkmark.d.ts +2 -2
  87. package/dist/common/icons/checkmark.js +2 -2
  88. package/dist/common/icons/clipboard.d.ts +2 -2
  89. package/dist/common/icons/clipboard.js +2 -2
  90. package/dist/common/icons/clock.d.ts +2 -2
  91. package/dist/common/icons/clock.js +2 -2
  92. package/dist/common/icons/close.d.ts +2 -2
  93. package/dist/common/icons/close.js +2 -2
  94. package/dist/common/icons/code-alt.d.ts +2 -2
  95. package/dist/common/icons/code-alt.js +2 -2
  96. package/dist/common/icons/copy.d.ts +2 -2
  97. package/dist/common/icons/copy.js +2 -2
  98. package/dist/common/icons/crosshairs.d.ts +2 -2
  99. package/dist/common/icons/crosshairs.js +2 -2
  100. package/dist/common/icons/cube-3d.d.ts +2 -2
  101. package/dist/common/icons/cube-3d.js +2 -2
  102. package/dist/common/icons/cursor-click.d.ts +2 -2
  103. package/dist/common/icons/cursor-click.js +2 -2
  104. package/dist/common/icons/cursor-point.d.ts +14 -0
  105. package/dist/common/icons/cursor-point.js +89 -0
  106. package/dist/common/icons/data-table.d.ts +2 -2
  107. package/dist/common/icons/data-table.js +2 -2
  108. package/dist/common/icons/db.d.ts +2 -2
  109. package/dist/common/icons/db.js +2 -2
  110. package/dist/common/icons/delete.d.ts +2 -2
  111. package/dist/common/icons/delete.js +2 -2
  112. package/dist/common/icons/docs.d.ts +2 -2
  113. package/dist/common/icons/docs.js +2 -2
  114. package/dist/common/icons/drag-n-drop.d.ts +2 -2
  115. package/dist/common/icons/drag-n-drop.js +2 -2
  116. package/dist/common/icons/draw-polygon.d.ts +2 -2
  117. package/dist/common/icons/draw-polygon.js +2 -2
  118. package/dist/common/icons/email.d.ts +2 -2
  119. package/dist/common/icons/email.js +2 -2
  120. package/dist/common/icons/expand.d.ts +2 -2
  121. package/dist/common/icons/expand.js +2 -2
  122. package/dist/common/icons/eye-seen.d.ts +2 -2
  123. package/dist/common/icons/eye-seen.js +2 -2
  124. package/dist/common/icons/eye-unseen.d.ts +2 -2
  125. package/dist/common/icons/eye-unseen.js +2 -2
  126. package/dist/common/icons/file-type.d.ts +2 -2
  127. package/dist/common/icons/file-type.js +2 -2
  128. package/dist/common/icons/file.d.ts +2 -2
  129. package/dist/common/icons/file.js +2 -2
  130. package/dist/common/icons/files.d.ts +1 -1
  131. package/dist/common/icons/files.js +2 -2
  132. package/dist/common/icons/filter-funnel.d.ts +2 -2
  133. package/dist/common/icons/filter-funnel.js +2 -2
  134. package/dist/common/icons/free-window.d.ts +2 -2
  135. package/dist/common/icons/free-window.js +2 -2
  136. package/dist/common/icons/gear.d.ts +2 -2
  137. package/dist/common/icons/gear.js +2 -2
  138. package/dist/common/icons/hash.d.ts +2 -2
  139. package/dist/common/icons/hash.js +2 -2
  140. package/dist/common/icons/histogram.d.ts +1 -1
  141. package/dist/common/icons/histogram.js +2 -2
  142. package/dist/common/icons/index.d.ts +1 -0
  143. package/dist/common/icons/index.js +10 -2
  144. package/dist/common/icons/info.d.ts +2 -2
  145. package/dist/common/icons/info.js +2 -2
  146. package/dist/common/icons/layers.d.ts +2 -2
  147. package/dist/common/icons/layers.js +2 -2
  148. package/dist/common/icons/left-arrow.d.ts +2 -2
  149. package/dist/common/icons/left-arrow.js +2 -2
  150. package/dist/common/icons/legend.d.ts +2 -2
  151. package/dist/common/icons/legend.js +2 -2
  152. package/dist/common/icons/line-chart.d.ts +2 -2
  153. package/dist/common/icons/line-chart.js +2 -2
  154. package/dist/common/icons/login.d.ts +2 -2
  155. package/dist/common/icons/login.js +2 -2
  156. package/dist/common/icons/logout.d.ts +2 -2
  157. package/dist/common/icons/logout.js +2 -2
  158. package/dist/common/icons/map-icon.d.ts +2 -2
  159. package/dist/common/icons/map-icon.js +2 -2
  160. package/dist/common/icons/map.d.ts +2 -2
  161. package/dist/common/icons/map.js +2 -2
  162. package/dist/common/icons/messages.d.ts +2 -2
  163. package/dist/common/icons/messages.js +2 -2
  164. package/dist/common/icons/minus.d.ts +2 -2
  165. package/dist/common/icons/minus.js +2 -2
  166. package/dist/common/icons/order-by-dataset.d.ts +2 -2
  167. package/dist/common/icons/order-by-dataset.js +2 -2
  168. package/dist/common/icons/order-by-list.d.ts +2 -2
  169. package/dist/common/icons/order-by-list.js +2 -2
  170. package/dist/common/icons/pause.d.ts +2 -2
  171. package/dist/common/icons/pause.js +2 -2
  172. package/dist/common/icons/picture.d.ts +1 -1
  173. package/dist/common/icons/picture.js +2 -2
  174. package/dist/common/icons/pin.d.ts +2 -2
  175. package/dist/common/icons/pin.js +2 -2
  176. package/dist/common/icons/play.d.ts +2 -2
  177. package/dist/common/icons/play.js +2 -2
  178. package/dist/common/icons/polygon.d.ts +2 -2
  179. package/dist/common/icons/polygon.js +2 -2
  180. package/dist/common/icons/rectangle.d.ts +2 -2
  181. package/dist/common/icons/rectangle.js +2 -2
  182. package/dist/common/icons/reduce.d.ts +2 -2
  183. package/dist/common/icons/reduce.js +2 -2
  184. package/dist/common/icons/reset.d.ts +2 -2
  185. package/dist/common/icons/reset.js +2 -2
  186. package/dist/common/icons/rocket.d.ts +2 -2
  187. package/dist/common/icons/rocket.js +2 -2
  188. package/dist/common/icons/save.d.ts +2 -2
  189. package/dist/common/icons/save.js +2 -2
  190. package/dist/common/icons/save2.d.ts +2 -2
  191. package/dist/common/icons/save2.js +2 -2
  192. package/dist/common/icons/search.d.ts +2 -2
  193. package/dist/common/icons/search.js +2 -2
  194. package/dist/common/icons/settings.d.ts +2 -2
  195. package/dist/common/icons/settings.js +2 -2
  196. package/dist/common/icons/share.d.ts +2 -2
  197. package/dist/common/icons/share.js +2 -2
  198. package/dist/common/icons/split.d.ts +2 -2
  199. package/dist/common/icons/split.js +2 -2
  200. package/dist/common/icons/square-select.d.ts +2 -2
  201. package/dist/common/icons/square-select.js +2 -2
  202. package/dist/common/icons/trash.d.ts +2 -2
  203. package/dist/common/icons/trash.js +2 -2
  204. package/dist/common/icons/vert-dots.d.ts +2 -2
  205. package/dist/common/icons/vert-dots.js +2 -2
  206. package/dist/common/icons/vert-three-dots.d.ts +2 -2
  207. package/dist/common/icons/vert-three-dots.js +2 -2
  208. package/dist/common/icons/warning-sign.d.ts +2 -2
  209. package/dist/common/icons/warning-sign.js +2 -2
  210. package/dist/common/icons/warning.d.ts +2 -2
  211. package/dist/common/icons/warning.js +2 -2
  212. package/dist/common/image-preview.d.ts +2 -2
  213. package/dist/common/image-preview.js +2 -2
  214. package/dist/common/index.d.ts +1 -1
  215. package/dist/common/index.js +8 -2
  216. package/dist/common/info-helper.d.ts +2 -2
  217. package/dist/common/info-helper.js +2 -2
  218. package/dist/common/item-selector/accessor.js +2 -2
  219. package/dist/common/item-selector/chickleted-input.js +2 -2
  220. package/dist/common/item-selector/dropdown-list.d.ts +28 -8
  221. package/dist/common/item-selector/dropdown-list.js +144 -25
  222. package/dist/common/item-selector/item-selector.d.ts +2 -3
  223. package/dist/common/item-selector/item-selector.js +7 -3
  224. package/dist/common/item-selector/typeahead.d.ts +16 -12
  225. package/dist/common/item-selector/typeahead.js +24 -13
  226. package/dist/common/line-chart.d.ts +2 -2
  227. package/dist/common/line-chart.js +2 -2
  228. package/dist/common/loading-spinner.js +2 -2
  229. package/dist/common/logo.d.ts +2 -2
  230. package/dist/common/logo.js +2 -2
  231. package/dist/common/map-layer-selector.d.ts +2 -2
  232. package/dist/common/map-layer-selector.js +3 -4
  233. package/dist/common/modal.d.ts +24 -11
  234. package/dist/common/modal.js +2 -2
  235. package/dist/common/portaled.d.ts +513 -2
  236. package/dist/common/portaled.js +2 -2
  237. package/dist/common/progress-bar.d.ts +2 -2
  238. package/dist/common/progress-bar.js +2 -2
  239. package/dist/common/range-brush.js +2 -2
  240. package/dist/common/range-plot.d.ts +6 -2
  241. package/dist/common/range-plot.js +4 -3
  242. package/dist/common/range-slider.d.ts +5 -1
  243. package/dist/common/range-slider.js +9 -3
  244. package/dist/common/slider/mouse-event.js +2 -2
  245. package/dist/common/slider/slider-bar-handle.d.ts +2 -2
  246. package/dist/common/slider/slider-bar-handle.js +2 -2
  247. package/dist/common/slider/slider-handle.d.ts +1 -1
  248. package/dist/common/slider/slider-handle.js +2 -2
  249. package/dist/common/slider/slider.d.ts +7 -5
  250. package/dist/common/slider/slider.js +8 -5
  251. package/dist/common/styled-components.d.ts +5 -0
  252. package/dist/common/styled-components.js +161 -47
  253. package/dist/common/switch.d.ts +3 -2
  254. package/dist/common/switch.js +2 -2
  255. package/dist/common/time-range-slider-time-title.d.ts +2 -2
  256. package/dist/common/time-range-slider-time-title.js +2 -2
  257. package/dist/common/time-range-slider.d.ts +6 -3
  258. package/dist/common/time-range-slider.js +33 -14
  259. package/dist/common/time-slider-marker.d.ts +1 -1
  260. package/dist/common/time-slider-marker.js +3 -3
  261. package/dist/common/timeline-slider.d.ts +13 -0
  262. package/dist/common/timeline-slider.js +173 -0
  263. package/dist/common/tippy-tooltip.d.ts +4 -2
  264. package/dist/common/tippy-tooltip.js +23 -11
  265. package/dist/common/toolbar-item.d.ts +1 -1
  266. package/dist/common/toolbar-item.js +6 -4
  267. package/dist/common/toolbar.js +2 -2
  268. package/dist/common/vertical-toolbar.js +2 -2
  269. package/dist/connect/keplergl-connect.d.ts +5 -1
  270. package/dist/connect/keplergl-connect.js +2 -2
  271. package/dist/connect/with-local-selector.js +2 -2
  272. package/dist/container.js +2 -2
  273. package/dist/context.js +4 -3
  274. package/dist/dnd-context.d.ts +13 -0
  275. package/dist/dnd-context.js +252 -0
  276. package/dist/editor/editor.d.ts +11 -10
  277. package/dist/editor/editor.js +97 -103
  278. package/dist/editor/feature-action-panel.d.ts +8 -6
  279. package/dist/editor/feature-action-panel.js +75 -22
  280. package/dist/effects/effect-configurator.d.ts +18 -0
  281. package/dist/effects/effect-configurator.js +237 -0
  282. package/dist/effects/effect-list.d.ts +15 -0
  283. package/dist/effects/effect-list.js +173 -0
  284. package/dist/effects/effect-manager.d.ts +21 -0
  285. package/dist/effects/effect-manager.js +129 -0
  286. package/dist/effects/effect-panel-header.d.ts +33 -0
  287. package/dist/effects/effect-panel-header.js +174 -0
  288. package/dist/effects/effect-panel.d.ts +24 -0
  289. package/dist/effects/effect-panel.js +162 -0
  290. package/dist/effects/effect-time-configurator.d.ts +13 -0
  291. package/dist/effects/effect-time-configurator.js +191 -0
  292. package/dist/effects/effect-type-selector.d.ts +11 -0
  293. package/dist/effects/effect-type-selector.js +117 -0
  294. package/dist/effects/side-panel-title.d.ts +7 -0
  295. package/dist/effects/side-panel-title.js +67 -0
  296. package/dist/filter-animation-controller.d.ts +17 -0
  297. package/dist/filter-animation-controller.js +91 -0
  298. package/dist/filters/components.js +2 -2
  299. package/dist/filters/filter-panels/filter-panel-with-field-select.js +3 -3
  300. package/dist/filters/filter-panels/multi-select-filter-panel.js +3 -3
  301. package/dist/filters/filter-panels/new-filter-panel.js +2 -2
  302. package/dist/filters/filter-panels/polygon-filter-panel.js +3 -3
  303. package/dist/filters/filter-panels/range-filter-panel.js +3 -3
  304. package/dist/filters/filter-panels/single-select-filter-panel.js +3 -3
  305. package/dist/filters/filter-panels/time-range-filter-panel.js +25 -8
  306. package/dist/filters/filter-panels/types.d.ts +2 -1
  307. package/dist/filters/filter-panels/types.js +1 -1
  308. package/dist/filters/index.d.ts +2 -0
  309. package/dist/filters/index.js +18 -2
  310. package/dist/filters/multi-select-filter.js +2 -2
  311. package/dist/filters/polygon-filter.js +14 -4
  312. package/dist/filters/range-filter.js +6 -4
  313. package/dist/filters/single-select-filter.js +2 -2
  314. package/dist/filters/time-range-filter.d.ts +2 -1
  315. package/dist/filters/time-range-filter.js +10 -7
  316. package/dist/filters/time-widget-top.d.ts +8 -0
  317. package/dist/filters/time-widget-top.js +123 -0
  318. package/dist/filters/time-widget.d.ts +3 -7
  319. package/dist/filters/time-widget.js +35 -92
  320. package/dist/filters/types.d.ts +7 -3
  321. package/dist/filters/types.js +1 -1
  322. package/dist/geocoder/geocoder.d.ts +1 -3
  323. package/dist/geocoder/geocoder.js +2 -2
  324. package/dist/geocoder-panel.d.ts +9 -3
  325. package/dist/geocoder-panel.js +30 -19
  326. package/dist/hooks/useFeatureFlags.js +1 -1
  327. package/dist/index.d.ts +68 -20
  328. package/dist/index.js +599 -99
  329. package/dist/injector.d.ts +4 -4
  330. package/dist/injector.js +2 -2
  331. package/dist/kepler-gl.d.ts +58 -17
  332. package/dist/kepler-gl.js +78 -31
  333. package/dist/layer-animation-controller.d.ts +13 -0
  334. package/dist/layer-animation-controller.js +76 -0
  335. package/dist/map/coordinate-info.js +2 -2
  336. package/dist/map/effects/effect-control.d.ts +16 -0
  337. package/dist/map/effects/effect-control.js +81 -0
  338. package/dist/map/layer-hover-info.d.ts +2 -2
  339. package/dist/map/layer-hover-info.js +26 -10
  340. package/dist/map/layer-selector-panel.js +2 -2
  341. package/dist/map/lazy-tippy.js +1 -1
  342. package/dist/map/locale-panel.d.ts +1 -1
  343. package/dist/map/locale-panel.js +2 -2
  344. package/dist/map/map-control-panel.d.ts +6 -0
  345. package/dist/map/map-control-panel.js +65 -9
  346. package/dist/map/map-control-toolbar.js +3 -3
  347. package/dist/map/map-control-tooltip.js +2 -2
  348. package/dist/map/map-control.d.ts +15 -7
  349. package/dist/map/map-control.js +6 -7
  350. package/dist/map/map-draw-panel.d.ts +2 -2
  351. package/dist/map/map-draw-panel.js +2 -9
  352. package/dist/map/map-legend-panel.d.ts +12 -1
  353. package/dist/map/map-legend-panel.js +27 -14
  354. package/dist/map/map-legend.d.ts +1 -1
  355. package/dist/map/map-legend.js +2 -2
  356. package/dist/map/map-popover-content.d.ts +28 -0
  357. package/dist/map/map-popover-content.js +51 -0
  358. package/dist/map/map-popover.d.ts +11 -14
  359. package/dist/map/map-popover.js +94 -15
  360. package/dist/map/split-map-button.js +2 -2
  361. package/dist/map/toggle-3d-button.js +2 -2
  362. package/dist/map-container.d.ts +33 -9
  363. package/dist/map-container.js +530 -161
  364. package/dist/map-view-state-context.d.ts +12 -0
  365. package/dist/map-view-state-context.js +116 -0
  366. package/dist/maps-layout.d.ts +5 -2
  367. package/dist/maps-layout.js +7 -3
  368. package/dist/modal-container.d.ts +2 -6
  369. package/dist/modal-container.js +8 -6
  370. package/dist/modals/add-map-style-modal.d.ts +1 -3
  371. package/dist/modals/add-map-style-modal.js +12 -6
  372. package/dist/modals/cloud-tile.js +2 -2
  373. package/dist/modals/data-table-modal.d.ts +11 -2
  374. package/dist/modals/data-table-modal.js +75 -24
  375. package/dist/modals/delete-data-modal.js +2 -2
  376. package/dist/modals/error-display.js +2 -2
  377. package/dist/modals/export-data-modal.d.ts +1 -3
  378. package/dist/modals/export-data-modal.js +2 -2
  379. package/dist/modals/export-image-modal.d.ts +1 -3
  380. package/dist/modals/export-image-modal.js +2 -2
  381. package/dist/modals/export-map-modal/components.d.ts +2 -2
  382. package/dist/modals/export-map-modal/components.js +2 -2
  383. package/dist/modals/export-map-modal/export-html-map.js +2 -2
  384. package/dist/modals/export-map-modal/export-json-map.d.ts +1 -1
  385. package/dist/modals/export-map-modal/export-json-map.js +2 -2
  386. package/dist/modals/export-map-modal/export-map-modal.d.ts +2 -2
  387. package/dist/modals/export-map-modal/export-map-modal.js +2 -2
  388. package/dist/modals/image-modal-container.d.ts +1 -0
  389. package/dist/modals/image-modal-container.js +2 -2
  390. package/dist/modals/load-data-modal.js +2 -2
  391. package/dist/modals/load-storage-map.js +2 -2
  392. package/dist/modals/loading-dialog.js +2 -2
  393. package/dist/modals/modal-dialog.js +2 -2
  394. package/dist/modals/modal-tabs.d.ts +1 -1
  395. package/dist/modals/modal-tabs.js +2 -2
  396. package/dist/modals/overwrite-map-modal.js +2 -2
  397. package/dist/modals/provider-modal-container.d.ts +3 -2
  398. package/dist/modals/provider-modal-container.js +2 -2
  399. package/dist/modals/save-map-modal.js +2 -2
  400. package/dist/modals/share-map-modal.js +2 -2
  401. package/dist/modals/status-panel.js +2 -2
  402. package/dist/modals/storage-map-viewer.d.ts +1 -1
  403. package/dist/modals/storage-map-viewer.js +2 -2
  404. package/dist/notification-panel/notification-item.d.ts +7 -10
  405. package/dist/notification-panel/notification-item.js +45 -13
  406. package/dist/notification-panel.js +2 -2
  407. package/dist/plot-container.js +20 -8
  408. package/dist/side-panel/add-by-dataset-button.d.ts +12 -0
  409. package/dist/side-panel/add-by-dataset-button.js +173 -0
  410. package/dist/side-panel/cloud-storage-dropdown.d.ts +2 -2
  411. package/dist/side-panel/cloud-storage-dropdown.js +2 -2
  412. package/dist/side-panel/common/dataset-info.d.ts +10 -3
  413. package/dist/side-panel/common/dataset-info.js +2 -2
  414. package/dist/side-panel/common/dataset-tag.d.ts +15 -1
  415. package/dist/side-panel/common/dataset-tag.js +14 -11
  416. package/dist/side-panel/common/dataset-title.d.ts +16 -2
  417. package/dist/side-panel/common/dataset-title.js +71 -105
  418. package/dist/side-panel/common/source-data-catalog.d.ts +22 -3
  419. package/dist/side-panel/common/source-data-catalog.js +2 -2
  420. package/dist/side-panel/common/source-data-selector.js +2 -2
  421. package/dist/side-panel/common/types.d.ts +7 -27
  422. package/dist/side-panel/common/types.js +1 -1
  423. package/dist/side-panel/custom-panel.d.ts +6 -7
  424. package/dist/side-panel/custom-panel.js +2 -2
  425. package/dist/side-panel/filter-manager.d.ts +18 -6
  426. package/dist/side-panel/filter-manager.js +176 -65
  427. package/dist/side-panel/filter-panel/add-filter-button.d.ts +8 -0
  428. package/dist/side-panel/filter-panel/add-filter-button.js +50 -0
  429. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +6 -3
  430. package/dist/side-panel/filter-panel/filter-panel-header.js +4 -4
  431. package/dist/side-panel/filter-panel/filter-panel.js +2 -2
  432. package/dist/side-panel/interaction-manager.d.ts +6 -3
  433. package/dist/side-panel/interaction-manager.js +21 -8
  434. package/dist/side-panel/interaction-panel/brush-config.d.ts +2 -2
  435. package/dist/side-panel/interaction-panel/brush-config.js +2 -2
  436. package/dist/side-panel/interaction-panel/interaction-panel.d.ts +5 -2
  437. package/dist/side-panel/interaction-panel/interaction-panel.js +12 -5
  438. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -9
  439. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +25 -42
  440. package/dist/side-panel/interaction-panel/tooltip-config.d.ts +2 -3
  441. package/dist/side-panel/interaction-panel/tooltip-config.js +9 -7
  442. package/dist/side-panel/layer-manager.d.ts +8 -10
  443. package/dist/side-panel/layer-manager.js +71 -37
  444. package/dist/side-panel/layer-panel/add-layer-button.d.ts +3 -5
  445. package/dist/side-panel/layer-panel/add-layer-button.js +13 -139
  446. package/dist/side-panel/layer-panel/color-palette.js +2 -2
  447. package/dist/side-panel/layer-panel/color-range-selector.d.ts +1 -1
  448. package/dist/side-panel/layer-panel/color-range-selector.js +2 -2
  449. package/dist/side-panel/layer-panel/color-selector.d.ts +15 -24
  450. package/dist/side-panel/layer-panel/color-selector.js +175 -127
  451. package/dist/side-panel/layer-panel/column-selector.js +2 -2
  452. package/dist/side-panel/layer-panel/custom-palette.d.ts +7 -2
  453. package/dist/side-panel/layer-panel/custom-palette.js +6 -5
  454. package/dist/side-panel/layer-panel/custom-picker.d.ts +9 -36
  455. package/dist/side-panel/layer-panel/custom-picker.js +2 -2
  456. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +1 -1
  457. package/dist/side-panel/layer-panel/dataset-layer-group.js +3 -2
  458. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +3 -2
  459. package/dist/side-panel/layer-panel/dataset-layer-section.js +5 -4
  460. package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -3
  461. package/dist/side-panel/layer-panel/dataset-section.js +6 -7
  462. package/dist/side-panel/layer-panel/dimension-scale-selector.js +2 -2
  463. package/dist/side-panel/layer-panel/how-to-button.js +2 -2
  464. package/dist/side-panel/layer-panel/layer-color-selector.d.ts +42 -0
  465. package/dist/side-panel/layer-panel/layer-color-selector.js +134 -0
  466. package/dist/side-panel/layer-panel/layer-column-config.d.ts +15 -9
  467. package/dist/side-panel/layer-panel/layer-column-config.js +35 -13
  468. package/dist/side-panel/layer-panel/layer-config-group.d.ts +11 -2
  469. package/dist/side-panel/layer-panel/layer-config-group.js +19 -11
  470. package/dist/side-panel/layer-panel/layer-configurator.d.ts +10 -35
  471. package/dist/side-panel/layer-panel/layer-configurator.js +61 -110
  472. package/dist/side-panel/layer-panel/layer-error-message.d.ts +6 -0
  473. package/dist/side-panel/layer-panel/layer-error-message.js +58 -0
  474. package/dist/side-panel/layer-panel/layer-list.d.ts +4 -3
  475. package/dist/side-panel/layer-panel/layer-list.js +112 -89
  476. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +22 -10
  477. package/dist/side-panel/layer-panel/layer-panel-header.js +106 -67
  478. package/dist/side-panel/layer-panel/layer-panel.d.ts +3 -1
  479. package/dist/side-panel/layer-panel/layer-panel.js +24 -11
  480. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +2 -2
  481. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +12 -3
  482. package/dist/side-panel/layer-panel/layer-type-list-item.js +12 -4
  483. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +2 -1
  484. package/dist/side-panel/layer-panel/layer-type-selector.js +5 -3
  485. package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -1
  486. package/dist/side-panel/layer-panel/single-color-palette.js +2 -2
  487. package/dist/side-panel/layer-panel/text-label-panel.d.ts +4 -2
  488. package/dist/side-panel/layer-panel/text-label-panel.js +62 -15
  489. package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +1 -3
  490. package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +2 -2
  491. package/dist/side-panel/layer-panel/vis-config-slider.js +2 -2
  492. package/dist/side-panel/layer-panel/vis-config-switch.js +2 -2
  493. package/dist/side-panel/map-manager.d.ts +13 -6
  494. package/dist/side-panel/map-manager.js +56 -45
  495. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +14 -0
  496. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +116 -0
  497. package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +29 -0
  498. package/dist/side-panel/map-style-panel/map-layer-group-item.js +131 -0
  499. package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +16 -12
  500. package/dist/side-panel/map-style-panel/map-layer-selector.js +34 -51
  501. package/dist/side-panel/map-style-panel/map-style-selector.d.ts +11 -4
  502. package/dist/side-panel/map-style-panel/map-style-selector.js +54 -20
  503. package/dist/side-panel/panel-dropdown.d.ts +3 -2
  504. package/dist/side-panel/panel-dropdown.js +2 -2
  505. package/dist/side-panel/panel-header-action.d.ts +4 -2
  506. package/dist/side-panel/panel-header-action.js +11 -4
  507. package/dist/side-panel/panel-header.d.ts +13 -8
  508. package/dist/side-panel/panel-header.js +2 -2
  509. package/dist/side-panel/panel-tab.d.ts +2 -2
  510. package/dist/side-panel/panel-tab.js +2 -2
  511. package/dist/side-panel/panel-title.d.ts +6 -3
  512. package/dist/side-panel/panel-title.js +31 -14
  513. package/dist/side-panel/panel-toggle.d.ts +1 -1
  514. package/dist/side-panel/panel-toggle.js +2 -2
  515. package/dist/side-panel/{layer-panel/panel-view-list-toggle.d.ts → panel-view-list-toggle.d.ts} +19 -8
  516. package/dist/side-panel/panel-view-list-toggle.js +143 -0
  517. package/dist/side-panel/side-bar.d.ts +15 -16
  518. package/dist/side-panel/side-bar.js +8 -6
  519. package/dist/side-panel.d.ts +2 -117
  520. package/dist/side-panel.js +14 -20
  521. package/dist/types.d.ts +16 -9
  522. package/dist/types.js +1 -1
  523. package/package.json +41 -34
  524. package/dist/editor/constants.d.ts +0 -17
  525. package/dist/editor/constants.js +0 -47
  526. package/dist/editor/feature-styles.d.ts +0 -37
  527. package/dist/editor/feature-styles.js +0 -92
  528. package/dist/editor/handle-style.d.ts +0 -42
  529. package/dist/editor/handle-style.js +0 -100
  530. package/dist/side-panel/layer-panel/panel-view-list-toggle.js +0 -143
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
1
+ // Copyright (c) 2023 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -38,8 +38,6 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
38
38
 
39
39
  var _react = _interopRequireWildcard(require("react"));
40
40
 
41
- var _localization = require("@kepler.gl/localization");
42
-
43
41
  var _constants = require("@kepler.gl/constants");
44
42
 
45
43
  var _icons = require("./common/icons");
@@ -60,8 +58,6 @@ var _mapManager = _interopRequireDefault(require("./side-panel/map-manager"));
60
58
 
61
59
  var _customPanel = _interopRequireDefault(require("./side-panel/custom-panel"));
62
60
 
63
- var _panelTitle = _interopRequireDefault(require("./side-panel/panel-title"));
64
-
65
61
  var _styledComponents = _interopRequireDefault(require("styled-components"));
66
62
 
67
63
  var _lodash = _interopRequireDefault(require("lodash.get"));
@@ -79,12 +75,12 @@ var StyledSidePanelContent = _styledComponents["default"].div(_templateObject ||
79
75
  });
80
76
 
81
77
  exports.StyledSidePanelContent = StyledSidePanelContent;
82
- SidePanelFactory.deps = [_sideBar["default"], _panelHeader["default"], _panelToggle["default"], _panelTitle["default"], _layerManager["default"], _filterManager["default"], _interactionManager["default"], _mapManager["default"], _customPanel["default"]];
78
+ SidePanelFactory.deps = [_sideBar["default"], _panelHeader["default"], _panelToggle["default"], _layerManager["default"], _filterManager["default"], _interactionManager["default"], _mapManager["default"], _customPanel["default"]];
83
79
  /**
84
80
  * Vertical sidebar containing input components for the rendering layers
85
81
  */
86
82
 
87
- function SidePanelFactory(Sidebar, PanelHeader, PanelToggle, PanelTitle, LayerManager, FilterManager, InteractionManager, MapManager, CustomPanels) {
83
+ function SidePanelFactory(Sidebar, PanelHeader, PanelToggle, LayerManager, FilterManager, InteractionManager, MapManager, CustomPanels) {
88
84
  // inject components
89
85
  var SIDEBAR_COMPONENTS = {
90
86
  layer: LayerManager,
@@ -119,10 +115,12 @@ function SidePanelFactory(Sidebar, PanelHeader, PanelToggle, PanelTitle, LayerMa
119
115
  filters = props.filters,
120
116
  layers = props.layers,
121
117
  layerBlending = props.layerBlending,
118
+ overlayBlending = props.overlayBlending,
122
119
  layerClasses = props.layerClasses,
123
120
  layerOrder = props.layerOrder,
124
121
  interactionConfig = props.interactionConfig,
125
- panels = props.panels,
122
+ _props$panels = props.panels,
123
+ panels = _props$panels === void 0 ? fullPanels : _props$panels,
126
124
  mapInfo = props.mapInfo,
127
125
  mapSaved = props.mapSaved,
128
126
  mapStateActions = props.mapStateActions,
@@ -196,7 +194,7 @@ function SidePanelFactory(Sidebar, PanelHeader, PanelToggle, PanelTitle, LayerMa
196
194
  return panels.find(function (_ref) {
197
195
  var id = _ref.id;
198
196
  return id === activeSidePanel;
199
- });
197
+ }) || null;
200
198
  }, [activeSidePanel, panels]);
201
199
  var onShareMap = (0, _react.useMemo)(function () {
202
200
  return hasShare ? onClickShareMap : null;
@@ -208,6 +206,7 @@ function SidePanelFactory(Sidebar, PanelHeader, PanelToggle, PanelTitle, LayerMa
208
206
  return /*#__PURE__*/_react["default"].createElement(Sidebar, {
209
207
  width: width,
210
208
  isOpen: isOpen,
209
+ shouldShowCollapseButton: uiState.isSidePanelCloseButtonVisible,
211
210
  minifiedWidth: 0,
212
211
  onOpenOrClose: _onOpenOrClose
213
212
  }, /*#__PURE__*/_react["default"].createElement(PanelHeader, {
@@ -232,15 +231,14 @@ function SidePanelFactory(Sidebar, PanelHeader, PanelToggle, PanelTitle, LayerMa
232
231
  className: "side-panel__content"
233
232
  }, /*#__PURE__*/_react["default"].createElement("div", {
234
233
  className: "side-panel__content__inner"
235
- }, (currentPanel === null || currentPanel === void 0 ? void 0 : currentPanel.id) !== 'layer' ? /*#__PURE__*/_react["default"].createElement(PanelTitle, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
236
- id: currentPanel === null || currentPanel === void 0 ? void 0 : currentPanel.label
237
- })) : null, PanelComponent ? /*#__PURE__*/_react["default"].createElement(PanelComponent, {
234
+ }, PanelComponent ? /*#__PURE__*/_react["default"].createElement(PanelComponent, {
238
235
  datasets: datasets,
239
236
  filters: filters,
240
237
  layers: layers,
241
238
  layerClasses: layerClasses,
242
239
  layerOrder: layerOrder,
243
240
  layerBlending: layerBlending,
241
+ overlayBlending: overlayBlending,
244
242
  mapStyle: mapStyle,
245
243
  mapStyleActions: mapStyleActions,
246
244
  mapStateActions: mapStateActions,
@@ -253,22 +251,18 @@ function SidePanelFactory(Sidebar, PanelHeader, PanelToggle, PanelTitle, LayerMa
253
251
  uiStateActions: uiStateActions,
254
252
  visStateActions: visStateActions,
255
253
  panelMetadata: currentPanel,
256
- layerPanelListView: (currentPanel === null || currentPanel === void 0 ? void 0 : currentPanel.id) === 'layer' && uiState.layerPanelListView
254
+ panelListView: (currentPanel === null || currentPanel === void 0 ? void 0 : currentPanel.id) === 'layer' ? uiState.layerPanelListView : (currentPanel === null || currentPanel === void 0 ? void 0 : currentPanel.id) === 'filter' ? uiState.filterPanelListView : null
257
255
  }) : null, /*#__PURE__*/_react["default"].createElement(CustomPanels, (0, _extends2["default"])({}, customPanelProps, {
258
- activeSidePanel: activeSidePanel
256
+ activeSidePanel: activeSidePanel,
257
+ updateTableColor: onUpdateTableColor
259
258
  })))));
260
259
  };
261
260
 
262
261
  SidePanel.defaultProps = {
263
262
  panels: fullPanels,
264
- sidebarComponents: SIDEBAR_COMPONENTS,
265
- uiState: {},
266
- visStateActions: {},
267
- mapStyleActions: {},
268
- uiStateActions: {},
269
263
  availableProviders: {},
270
264
  mapInfo: {}
271
265
  };
272
266
  return SidePanel;
273
267
  }
274
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zaWRlLXBhbmVsLnRzeCJdLCJuYW1lcyI6WyJTdHlsZWRTaWRlUGFuZWxDb250ZW50Iiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsInNpZGVQYW5lbFNjcm9sbEJhciIsInNpZGVQYW5lbElubmVyUGFkZGluZyIsIlNpZGVQYW5lbEZhY3RvcnkiLCJkZXBzIiwiU2lkZWJhckZhY3RvcnkiLCJQYW5lbEhlYWRlckZhY3RvcnkiLCJQYW5lbFRvZ2dsZUZhY3RvcnkiLCJQYW5lbFRpdGxlRmFjdG9yeSIsIkxheWVyTWFuYWdlckZhY3RvcnkiLCJGaWx0ZXJNYW5hZ2VyRmFjdG9yeSIsIkludGVyYWN0aW9uTWFuYWdlckZhY3RvcnkiLCJNYXBNYW5hZ2VyRmFjdG9yeSIsIkN1c3RvbVBhbmVsc0ZhY3RvcnkiLCJTaWRlYmFyIiwiUGFuZWxIZWFkZXIiLCJQYW5lbFRvZ2dsZSIsIlBhbmVsVGl0bGUiLCJMYXllck1hbmFnZXIiLCJGaWx0ZXJNYW5hZ2VyIiwiSW50ZXJhY3Rpb25NYW5hZ2VyIiwiTWFwTWFuYWdlciIsIkN1c3RvbVBhbmVscyIsIlNJREVCQVJfQ09NUE9ORU5UUyIsImxheWVyIiwiZmlsdGVyIiwiaW50ZXJhY3Rpb24iLCJtYXAiLCJTSURFQkFSX0lDT05TIiwiTGF5ZXJzIiwiRmlsdGVyRnVubmVsIiwiU2V0dGluZ3MiLCJDdXJzb3JDbGljayIsImZ1bGxQYW5lbHMiLCJTSURFQkFSX1BBTkVMUyIsImNvbXBvbmVudCIsImlkIiwiaWNvbkNvbXBvbmVudCIsImdldEN1c3RvbVBhbmVsUHJvcHMiLCJTaWRlUGFuZWwiLCJhcHBOYW1lIiwiYXBwV2Vic2l0ZSIsImF2YWlsYWJsZVByb3ZpZGVycyIsImRhdGFzZXRzIiwiZmlsdGVycyIsImxheWVycyIsImxheWVyQmxlbmRpbmciLCJsYXllckNsYXNzZXMiLCJsYXllck9yZGVyIiwiaW50ZXJhY3Rpb25Db25maWciLCJwYW5lbHMiLCJtYXBJbmZvIiwibWFwU2F2ZWQiLCJtYXBTdGF0ZUFjdGlvbnMiLCJtYXBTdHlsZSIsIm1hcFN0eWxlQWN0aW9ucyIsIm9uU2F2ZU1hcCIsInVpU3RhdGUiLCJ1aVN0YXRlQWN0aW9ucyIsInZpc1N0YXRlQWN0aW9ucyIsInZlcnNpb24iLCJ3aWR0aCIsIm9wZW5EZWxldGVNb2RhbCIsInRvZ2dsZU1vZGFsIiwidG9nZ2xlU2lkZVBhbmVsIiwiYWN0aXZlU2lkZVBhbmVsIiwic2V0TWFwSW5mbyIsInNob3dEYXRhc2V0VGFibGUiLCJ1cGRhdGVUYWJsZUNvbG9yIiwiaGFzU2hhcmUiLCJoYXNTdG9yYWdlIiwidGl0bGUiLCJpc09wZW4iLCJCb29sZWFuIiwiX29uT3Blbk9yQ2xvc2UiLCJvbkNsaWNrRXhwb3J0SW1hZ2UiLCJFWFBPUlRfSU1BR0VfSUQiLCJvbkNsaWNrRXhwb3J0RGF0YSIsIkVYUE9SVF9EQVRBX0lEIiwib25DbGlja0V4cG9ydE1hcCIsIkVYUE9SVF9NQVBfSUQiLCJvbkNsaWNrU2F2ZVRvU3RvcmFnZSIsIk9WRVJXUklURV9NQVBfSUQiLCJTQVZFX01BUF9JRCIsIm9uQ2xpY2tTYXZlQXNUb1N0b3JhZ2UiLCJvbkNsaWNrU2hhcmVNYXAiLCJTSEFSRV9NQVBfSUQiLCJvblNob3dEYXRhc2V0VGFibGUiLCJkYXRhSWQiLCJvblVwZGF0ZVRhYmxlQ29sb3IiLCJuZXdDb2xvciIsIm9uU2hvd0FkZERhdGFNb2RhbCIsIkFERF9EQVRBX0lEIiwib25TaG93QWRkTWFwU3R5bGVNb2RhbCIsIkFERF9NQVBfU1RZTEVfSUQiLCJvblJlbW92ZURhdGFzZXQiLCJvblNhdmVUb1N0b3JhZ2UiLCJvblNhdmVBc1RvU3RvcmFnZSIsImN1cnJlbnRQYW5lbCIsImZpbmQiLCJvblNoYXJlTWFwIiwiY3VzdG9tUGFuZWxQcm9wcyIsIlBhbmVsQ29tcG9uZW50IiwidmlzaWJsZURyb3Bkb3duIiwic2hvd0V4cG9ydERyb3Bkb3duIiwiaGlkZUV4cG9ydERyb3Bkb3duIiwibGFiZWwiLCJsYXllclBhbmVsTGlzdFZpZXciLCJkZWZhdWx0UHJv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RCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuaW1wb3J0IHtcbiAgRVhQT1JUX0RBVEFfSUQsXG4gIEVYUE9SVF9NQVBfSUQsXG4gIFNIQVJFX01BUF9JRCxcbiAgU0lERUJBUl9QQU5FTFMsXG4gIE9WRVJXUklURV9NQVBfSUQsXG4gIFNBVkVfTUFQX0lELFxuICBFWFBPUlRfSU1BR0VfSUQsXG4gIEFERF9EQVRBX0lELFxuICBBRERfTUFQX1NUWUxFX0lEXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuaW1wb3J0IHtDdXJzb3JDbGljaywgTGF5ZXJzLCBGaWx0ZXJGdW5uZWwsIFNldHRpbmdzfSBmcm9tICcuL2NvbW1vbi9pY29ucyc7XG5cbmltcG9ydCBTaWRlYmFyRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwvc2lkZS1iYXInO1xuaW1wb3J0IFBhbmVsSGVhZGVyRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyJztcbmltcG9ydCBQYW5lbFRvZ2dsZUZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL3BhbmVsLXRvZ2dsZSc7XG5pbXBvcnQgTGF5ZXJNYW5hZ2VyRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItbWFuYWdlcic7XG5pbXBvcnQgRmlsdGVyTWFuYWdlckZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL2ZpbHRlci1tYW5hZ2VyJztcbmltcG9ydCBJbnRlcmFjdGlvbk1hbmFnZXJGYWN0b3J5IGZyb20gJy4vc2lkZS1wYW5lbC9pbnRlcmFjdGlvbi1tYW5hZ2VyJztcbmltcG9ydCBNYXBNYW5hZ2VyRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwvbWFwLW1hbmFnZXInO1xuaW1wb3J0IEN1c3RvbVBhbmVsc0ZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL2N1c3RvbS1wYW5lbCc7XG5pbXBvcnQgUGFuZWxUaXRsZUZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL3BhbmVsLXRpdGxlJztcblxuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC5nZXQnO1xuaW1wb3J0IHtTaWRlUGFuZWxQcm9wc30gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRTaWRlUGFuZWxDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zaWRlUGFuZWxTY3JvbGxCYXJ9O1xuICBmbGV4LWdyb3c6IDE7XG4gIHBhZGRpbmc6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2lkZVBhbmVsSW5uZXJQYWRkaW5nfXB4O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAuc2lkZS1wYW5lbF9fY29udGVudF9faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbmA7XG5cblNpZGVQYW5lbEZhY3RvcnkuZGVwcyA9IFtcbiAgU2lkZWJhckZhY3RvcnksXG4gIFBhbmVsSGVhZGVyRmFjdG9yeSxcbiAgUGFuZWxUb2dnbGVGYWN0b3J5LFxuICBQYW5lbFRpdGxlRmFjdG9yeSxcbiAgTGF5ZXJNYW5hZ2VyRmFjdG9yeSxcbiAgRmlsdGVyTWFuYWdlckZhY3RvcnksXG4gIEludGVyYWN0aW9uTWFuYWdlckZhY3RvcnksXG4gIE1hcE1hbmFnZXJGYWN0b3J5LFxuICBDdXN0b21QYW5lbHNGYWN0b3J5XG5dO1xuXG4vKipcbiAqIFZlcnRpY2FsIHNpZGViYXIgY29udGFpbmluZyBpbnB1dCBjb21wb25lbnRzIGZvciB0aGUgcmVuZGVyaW5nIGxheWVyc1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTaWRlUGFuZWxGYWN0b3J5KFxuICBTaWRlYmFyOiBSZXR1cm5UeXBlPHR5cGVvZiBTaWRlYmFyRmFjdG9yeT4sXG4gIFBhbmVsSGVhZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckZhY3Rvcnk+LFxuICBQYW5lbFRvZ2dsZTogUmV0dXJuVHlwZTx0eXBlb2YgUGFuZWxUb2dnbGVGYWN0b3J5PixcbiAgUGFuZWxUaXRsZTogUmV0dXJuVHlwZTx0eXBlb2YgUGFuZWxUaXRsZUZhY3Rvcnk+LFxuICBMYXllck1hbmFnZXI6IFJldHVyblR5cGU8dHlwZW9mIExheWVyTWFuYWdlckZhY3Rvcnk+LFxuICBGaWx0ZXJNYW5hZ2VyOiBSZXR1cm5UeXBlPHR5cGVvZiBGaWx0ZXJNYW5hZ2VyRmFjdG9yeT4sXG4gIEludGVyYWN0aW9uTWFuYWdlcjogUmV0dXJuVHlwZTx0eXBlb2YgSW50ZXJhY3Rpb25NYW5hZ2VyRmFjdG9yeT4sXG4gIE1hcE1hbmFnZXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcE1hbmFnZXJGYWN0b3J5PixcbiAgQ3VzdG9tUGFuZWxzOiBSZXR1cm5UeXBlPHR5cGVvZiBDdXN0b21QYW5lbHNGYWN0b3J5PlxuKSB7XG4gIC8vIGluamVjdCBjb21wb25lbnRzXG4gIGNvbnN0IFNJREVCQVJfQ09NUE9ORU5UUyA9IHtcbiAgICBsYXllcjogTGF5ZXJNYW5hZ2VyLFxuICAgIGZpbHRlcjogRmlsdGVyTWFuYWdlcixcbiAgICBpbnRlcmFjdGlvbjogSW50ZXJhY3Rpb25NYW5hZ2VyLFxuICAgIG1hcDogTWFwTWFuYWdlclxuICB9O1xuXG4gIGNvbnN0IFNJREVCQVJfSUNPTlMgPSB7XG4gICAgbGF5ZXI6IExheWVycyxcbiAgICBmaWx0ZXI6IEZpbHRlckZ1bm5lbCxcbiAgICBpbnRlcmFjdGlvbjogU2V0dGluZ3MsXG4gICAgbWFwOiBDdXJzb3JDbGlja1xuICB9O1xuXG4gIC8vIFdlIHNob3VsZCBkZWZpbmVkIHNpZGViYXIgcGFuZWxzIGhlcmUgYnV0IGtlZXBpbmcgdGhlbSBmb3IgYmFja3dhcmQgY29tcGF0aWJsZVxuICBjb25zdCBmdWxsUGFuZWxzID0gU0lERUJBUl9QQU5FTFMubWFwKGNvbXBvbmVudCA9PiAoe1xuICAgIC4uLmNvbXBvbmVudCxcbiAgICBjb21wb25lbnQ6IFNJREVCQVJfQ09NUE9ORU5UU1tjb21wb25lbnQuaWRdLFxuICAgIGljb25Db21wb25lbnQ6IFNJREVCQVJfSUNPTlNbY29tcG9uZW50LmlkXVxuICB9KSk7XG5cbiAgY29uc3QgZ2V0Q3VzdG9tUGFuZWxQcm9wcyA9IGdldChDdXN0b21QYW5lbHMsIFsnZGVmYXVsdFByb3BzJywgJ2dldFByb3BzJ10pIHx8ICgoKSA9PiAoe30pKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LXN0YXRlbWVudHNcbiAgY29uc3QgU2lkZVBhbmVsID0gKHByb3BzOiBTaWRlUGFuZWxQcm9wcykgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGFwcE5hbWUsXG4gICAgICBhcHBXZWJzaXRlLFxuICAgICAgYXZhaWxhYmxlUHJvdmlkZXJzLFxuICAgICAgZGF0YXNldHMsXG4gICAgICBmaWx0ZXJzLFxuICAgICAgbGF5ZXJzLFxuICAgICAgbGF5ZXJCbGVuZGluZyxcbiAgICAgIGxheWVyQ2xhc3NlcyxcbiAgICAgIGxheWVyT3JkZXIsXG4gICAgICBpbnRlcmFjdGlvbkNvbmZpZyxcbiAgICAgIHBhbmVscyxcbiAgICAgIG1hcEluZm8sXG4gICAgICBtYXBTYXZlZCxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0eWxlLFxuICAgICAgbWFwU3R5bGVBY3Rpb25zLFxuICAgICAgb25TYXZlTWFwLFxuICAgICAgdWlTdGF0ZSxcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgICAgdmVyc2lvbixcbiAgICAgIHdpZHRoXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IHtvcGVuRGVsZXRlTW9kYWwsIHRvZ2dsZU1vZGFsLCB0b2dnbGVTaWRlUGFuZWx9ID0gdWlTdGF0ZUFjdGlvbnM7XG4gICAgY29uc3Qge2FjdGl2ZVNpZGVQYW5lbH0gPSB1aVN0YXRlO1xuICAgIGNvbnN0IHtzZXRNYXBJbmZvLCBzaG93RGF0YXNldFRhYmxlLCB1cGRhdGVUYWJsZUNvbG9yfSA9IHZpc1N0YXRlQWN0aW9ucztcbiAgICBjb25zdCB7aGFzU2hhcmUsIGhhc1N0b3JhZ2V9ID0gYXZhaWxhYmxlUHJvdmlkZXJzO1xuXG4gICAgY29uc3Qge3RpdGxlfSA9IG1hcEluZm87XG5cbiAgICBjb25zdCBpc09wZW4gPSBCb29sZWFuKGFjdGl2ZVNpZGVQYW5lbCk7XG5cbiAgICBjb25zdCBfb25PcGVuT3JDbG9zZSA9IHVzZUNhbGxiYWNrKCgpID0+IHRvZ2dsZVNpZGVQYW5lbChhY3RpdmVTaWRlUGFuZWwgPyAnJyA6ICdsYXllcicpLCBbXG4gICAgICBhY3RpdmVTaWRlUGFuZWwsXG4gICAgICB0b2dnbGVTaWRlUGFuZWxcbiAgICBdKTtcblxuICAgIGNvbnN0IG9uQ2xpY2tFeHBvcnRJbWFnZSA9IHVzZUNhbGxiYWNrKCgpID0+IHRvZ2dsZU1vZGFsKEVYUE9SVF9JTUFHRV9JRCksIFt0b2dnbGVNb2RhbF0pO1xuICAgIGNvbnN0IG9uQ2xpY2tFeHBvcnREYXRhID0gdXNlQ2FsbGJhY2soKCkgPT4gdG9nZ2xlTW9kYWwoRVhQT1JUX0RBVEFfSUQpLCBbdG9nZ2xlTW9kYWxdKTtcbiAgICBjb25zdCBvbkNsaWNrRXhwb3J0TWFwID0gdXNlQ2FsbGJhY2soKCkgPT4gdG9nZ2xlTW9kYWwoRVhQT1JUX01BUF9JRCksIFt0b2dnbGVNb2RhbF0pO1xuICAgIGNvbnN0IG9uQ2xpY2tTYXZlVG9TdG9yYWdlID0gdXNlQ2FsbGJhY2soXG4gICAgICAoKSA9PiB0b2dnbGVNb2RhbChtYXBTYXZlZCA/IE9WRVJXUklURV9NQVBfSUQgOiBTQVZFX01BUF9JRCksXG4gICAgICBbbWFwU2F2ZWQsIHRvZ2dsZU1vZGFsXVxuICAgICk7XG4gICAgY29uc3Qgb25DbGlja1NhdmVBc1RvU3RvcmFnZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldE1hcEluZm8oe1xuICAgICAgICB0aXRsZTogYCR7dGl0bGUgfHwgJ0tlcGxlci5nbCd9IChDb3B5KWBcbiAgICAgIH0pO1xuXG4gICAgICB0b2dnbGVNb2RhbChTQVZFX01BUF9JRCk7XG4gICAgfSwgW3RpdGxlLCBzZXRNYXBJbmZvLCB0b2dnbGVNb2RhbF0pO1xuICAgIGNvbnN0IG9uQ2xpY2tTaGFyZU1hcCA9IHVzZUNhbGxiYWNrKCgpID0+IHRvZ2dsZU1vZGFsKFNIQVJFX01BUF9JRCksIFt0b2dnbGVNb2RhbF0pO1xuICAgIGNvbnN0IG9uU2hvd0RhdGFzZXRUYWJsZSA9IHVzZUNhbGxiYWNrKGRhdGFJZCA9PiBzaG93RGF0YXNldFRhYmxlKGRhdGFJZCksIFtzaG93RGF0YXNldFRhYmxlXSk7XG4gICAgY29uc3Qgb25VcGRhdGVUYWJsZUNvbG9yID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZGF0YUlkLCBuZXdDb2xvcikgPT4gdXBkYXRlVGFibGVDb2xvcihkYXRhSWQsIG5ld0NvbG9yKSxcbiAgICAgIFt1cGRhdGVUYWJsZUNvbG9yXVxuICAgICk7XG4gICAgY29uc3Qgb25TaG93QWRkRGF0YU1vZGFsID0gdXNlQ2FsbGJhY2soKCkgPT4gdG9nZ2xlTW9kYWwoQUREX0RBVEFfSUQpLCBbdG9nZ2xlTW9kYWxdKTtcbiAgICBjb25zdCBvblNob3dBZGRNYXBTdHlsZU1vZGFsID0gdXNlQ2FsbGJhY2soKCkgPT4gdG9nZ2xlTW9kYWwoQUREX01BUF9TVFlMRV9JRCksIFt0b2dnbGVNb2RhbF0pO1xuICAgIGNvbnN0IG9uUmVtb3ZlRGF0YXNldCA9IHVzZUNhbGxiYWNrKGRhdGFJZCA9PiBvcGVuRGVsZXRlTW9kYWwoZGF0YUlkKSwgW29wZW5EZWxldGVNb2RhbF0pO1xuICAgIGNvbnN0IG9uU2F2ZVRvU3RvcmFnZSA9IHVzZU1lbW8oKCkgPT4gKGhhc1N0b3JhZ2UgPyBvbkNsaWNrU2F2ZVRvU3RvcmFnZSA6IG51bGwpLCBbXG4gICAgICBoYXNTdG9yYWdlLFxuICAgICAgb25DbGlja1NhdmVUb1N0b3JhZ2VcbiAgICBdKTtcbiAgICBjb25zdCBvblNhdmVBc1RvU3RvcmFnZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoaGFzU3RvcmFnZSAmJiBtYXBTYXZlZCA/IG9uQ2xpY2tTYXZlQXNUb1N0b3JhZ2UgOiBudWxsKSxcbiAgICAgIFtoYXNTdG9yYWdlLCBtYXBTYXZlZCwgb25DbGlja1NhdmVBc1RvU3RvcmFnZV1cbiAgICApO1xuICAgIGNvbnN0IGN1cnJlbnRQYW5lbCA9IHVzZU1lbW8oKCkgPT4gcGFuZWxzLmZpbmQoKHtpZH0pID0+IGlkID09PSBhY3RpdmVTaWRlUGFuZWwpLCBbXG4gICAgICBhY3RpdmVTaWRlUGFuZWwsXG4gICAgICBwYW5lbHNcbiAgICBdKTtcbiAgICBjb25zdCBvblNoYXJlTWFwID0gdXNlTWVtbygoKSA9PiAoaGFzU2hhcmUgPyBvbkNsaWNrU2hhcmVNYXAgOiBudWxsKSwgW1xuICAgICAgaGFzU2hhcmUsXG4gICAgICBvbkNsaWNrU2hhcmVNYXBcbiAgICBdKTtcbiAgICBjb25zdCBjdXN0b21QYW5lbFByb3BzID0gdXNlTWVtbygoKSA9PiBnZXRDdXN0b21QYW5lbFByb3BzKHByb3BzKSwgW3Byb3BzXSk7XG5cbiAgICBjb25zdCBQYW5lbENvbXBvbmVudCA9IGN1cnJlbnRQYW5lbD8uY29tcG9uZW50O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTaWRlYmFyIHdpZHRoPXt3aWR0aH0gaXNPcGVuPXtpc09wZW59IG1pbmlmaWVkV2lkdGg9ezB9IG9uT3Blbk9yQ2xvc2U9e19vbk9wZW5PckNsb3NlfT5cbiAgICAgICAgPFBhbmVsSGVhZGVyXG4gICAgICAgICAgYXBwTmFtZT17YXBwTmFtZX1cbiAgICAgICAgICB2ZXJzaW9uPXt2ZXJzaW9ufVxuICAgICAgICAgIGFwcFdlYnNpdGU9e2FwcFdlYnNpdGV9XG4gICAgICAgICAgdmlzaWJsZURyb3Bkb3duPXt1aVN0YXRlLnZpc2libGVEcm9wZG93bn1cbiAgICAgICAgICBzaG93RXhwb3J0RHJvcGRvd249e3VpU3RhdGVBY3Rpb25zLnNob3dFeHBvcnREcm9wZG93bn1cbiAgICAgICAgICBoaWRlRXhwb3J0RHJvcGRvd249e3VpU3RhdGVBY3Rpb25zLmhpZGVFeHBvcnREcm9wZG93bn1cbiAgICAgICAgICBvbkV4cG9ydEltYWdlPXtvbkNsaWNrRXhwb3J0SW1hZ2V9XG4gICAgICAgICAgb25FeHBvcnREYXRhPXtvbkNsaWNrRXhwb3J0RGF0YX1cbiAgICAgICAgICBvbkV4cG9ydE1hcD17b25DbGlja0V4cG9ydE1hcH1cbiAgICAgICAgICBvblNhdmVNYXA9e29uU2F2ZU1hcH1cbiAgICAgICAgICBvblNhdmVUb1N0b3JhZ2U9e29uU2F2ZVRvU3RvcmFnZX1cbiAgICAgICAgICBvblNhdmVBc1RvU3RvcmFnZT17b25TYXZlQXNUb1N0b3JhZ2V9XG4gICAgICAgICAgb25TaGFyZU1hcD17b25TaGFyZU1hcH1cbiAgICAgICAgLz5cbiAgICAgICAgey8qIHRoZSBuZXh0IHR3byBjb21wb25lbnRzIHNob3VsZCBiZSBtb3ZlZCBpbnRvIG9uZSAqL31cbiAgICAgICAgey8qIGJ1dCBpIGFtIGtlZXBpbmcgdGhlbSBiZWNhdXNlIG9mIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgKi99XG4gICAgICAgIDxQYW5lbFRvZ2dsZVxuICAgICAgICAgIHBhbmVscz17cGFuZWxzfVxuICAgICAgICAgIGFjdGl2ZVBhbmVsPXthY3RpdmVTaWRlUGFuZWx9XG4gICAgICAgICAgdG9nZ2xlUGFuZWw9e3VpU3RhdGVBY3Rpb25zLnRvZ2dsZVNpZGVQYW5lbH1cbiAgICAgICAgLz5cbiAgICAgICAgPFN0eWxlZFNpZGVQYW5lbENvbnRlbnQgY2xhc3NOYW1lPVwic2lkZS1wYW5lbF9fY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2lkZS1wYW5lbF9fY29udGVudF9faW5uZXJcIj5cbiAgICAgICAgICAgIHtjdXJyZW50UGFuZWw/LmlkICE9PSAnbGF5ZXInID8gKFxuICAgICAgICAgICAgICA8UGFuZWxUaXRsZT5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17Y3VycmVudFBhbmVsPy5sYWJlbH0gLz5cbiAgICAgICAgICAgICAgPC9QYW5lbFRpdGxlPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7UGFuZWxDb21wb25lbnQgPyAoXG4gICAgICAgICAgICAgIDxQYW5lbENvbXBvbmVudFxuICAgICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgICBmaWx0ZXJzPXtmaWx0ZXJzfVxuICAgICAgICAgICAgICAgIGxheWVycz17bGF5ZXJzfVxuICAgICAgICAgICAgICAgIGxheWVyQ2xhc3Nlcz17bGF5ZXJDbGFzc2VzfVxuICAgICAgICAgICAgICAgIGxheWVyT3JkZXI9e2xheWVyT3JkZXJ9XG4gICAgICAgICAgICAgICAgbGF5ZXJCbGVuZGluZz17bGF5ZXJCbGVuZGluZ31cbiAgICAgICAgICAgICAgICBtYXBTdHlsZT17bWFwU3R5bGV9XG4gICAgICAgICAgICAgICAgbWFwU3R5bGVBY3Rpb25zPXttYXBTdHlsZUFjdGlvbnN9XG4gICAgICAgICAgICAgICAgbWFwU3RhdGVBY3Rpb25zPXttYXBTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgICAgaW50ZXJhY3Rpb25Db25maWc9e2ludGVyYWN0aW9uQ29uZmlnfVxuICAgICAgICAgICAgICAgIHJlbW92ZURhdGFzZXQ9e29uUmVtb3ZlRGF0YXNldH1cbiAgICAgICAgICAgICAgICBzaG93RGF0YXNldFRhYmxlPXtvblNob3dEYXRhc2V0VGFibGV9XG4gICAgICAgICAgICAgICAgdXBkYXRlVGFibGVDb2xvcj17b25VcGRhdGVUYWJsZUNvbG9yfVxuICAgICAgICAgICAgICAgIHNob3dBZGREYXRhTW9kYWw9e29uU2hvd0FkZERhdGFNb2RhbH1cbiAgICAgICAgICAgICAgICBzaG93QWRkTWFwU3R5bGVNb2RhbD17b25TaG93QWRkTWFwU3R5bGVNb2RhbH1cbiAgICAgICAgICAgICAgICB1aVN0YXRlQWN0aW9ucz17dWlTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgICAgdmlzU3RhdGVBY3Rpb25zPXt2aXNTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgICAgcGFuZWxNZXRhZGF0YT17Y3VycmVudFBhbmVsfVxuICAgICAgICAgICAgICAgIGxheWVyUGFuZWxMaXN0Vmlldz17Y3VycmVudFBhbmVsPy5pZCA9PT0gJ2xheWVyJyAmJiB1aVN0YXRlLmxheWVyUGFuZWxMaXN0Vmlld31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPEN1c3RvbVBhbmVscyB7Li4uY3VzdG9tUGFuZWxQcm9wc30gYWN0aXZlU2lkZVBhbmVsPXthY3RpdmVTaWRlUGFuZWx9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvU3R5bGVkU2lkZVBhbmVsQ29udGVudD5cbiAgICAgIDwvU2lkZWJhcj5cbiAgICApO1xuICB9O1xuXG4gIFNpZGVQYW5lbC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgcGFuZWxzOiBmdWxsUGFuZWxzLFxuICAgIHNpZGViYXJDb21wb25lbnRzOiBTSURFQkFSX0NPTVBPTkVOVFMsXG4gICAgdWlTdGF0ZToge30sXG4gICAgdmlzU3RhdGVBY3Rpb25zOiB7fSxcbiAgICBtYXBTdHlsZUFjdGlvbnM6IHt9LFxuICAgIHVpU3RhdGVBY3Rpb25zOiB7fSxcbiAgICBhdmFpbGFibGVQcm92aWRlcnM6IHt9LFxuICAgIG1hcEluZm86IHt9XG4gIH07XG5cbiAgcmV0dXJuIFNpZGVQYW5lbDtcbn1cbiJdfQ==
268
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zaWRlLXBhbmVsLnRzeCJdLCJuYW1lcyI6WyJTdHlsZWRTaWRlUGFuZWxDb250ZW50Iiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsInNpZGVQYW5lbFNjcm9sbEJhciIsInNpZGVQYW5lbElubmVyUGFkZGluZyIsIlNpZGVQYW5lbEZhY3RvcnkiLCJkZXBzIiwiU2lkZWJhckZhY3RvcnkiLCJQYW5lbEhlYWRlckZhY3RvcnkiLCJQYW5lbFRvZ2dsZUZhY3RvcnkiLCJMYXllck1hbmFnZXJGYWN0b3J5IiwiRmlsdGVyTWFuYWdlckZhY3RvcnkiLCJJbnRlcmFjdGlvbk1hbmFnZXJGYWN0b3J5IiwiTWFwTWFuYWdlckZhY3RvcnkiLCJDdXN0b21QYW5lbHNGYWN0b3J5IiwiU2lkZWJhciIsIlBhbmVsSGVhZGVyIiwiUGFuZWxUb2dnbGUiLCJMYXllck1hbmFnZXIiLCJGaWx0ZXJNYW5hZ2VyIiwiSW50ZXJhY3Rpb25NYW5hZ2VyIiwiTWFwTWFuYWdlciIsIkN1c3RvbVBhbmVscyIsIlNJREVCQVJfQ09NUE9ORU5UUyIsImxheWVyIiwiZmlsdGVyIiwiaW50ZXJhY3Rpb24iLCJtYXAiLCJTSURFQkFSX0lDT05TIiwiTGF5ZXJzIiwiRmlsdGVyRnVubmVsIiwiU2V0dGluZ3MiLCJDdXJzb3JDbGljayIsImZ1bGxQYW5lbHMiLCJTSURFQkFSX1BBTkVMUyIsImNvbXBvbmVudCIsImlkIiwiaWNvbkNvbXBvbmVudCIsImdldEN1c3RvbVBhbmVsUHJvcHMiLCJTaWRlUGFuZWwiLCJhcHBOYW1lIiwiYXBwV2Vic2l0ZSIsImF2YWlsYWJsZVByb3ZpZGVycyIsImRhdGFzZXRzIiwiZmlsdGVycyIsImxheWVycyIsImxheWVyQmxlbmRpbmciLCJvdmVybGF5QmxlbmRpbmciLCJsYXllckNsYXNzZXMiLCJsYXllck9yZGVyIiwiaW50ZXJhY3Rpb25Db25maWciLCJwYW5lbHMiLCJtYXBJbmZvIiwibWFwU2F2ZWQiLCJtYXBTdGF0ZUFjdGlvbnMiLCJtYXBTdHlsZSIsIm1hcFN0eWxlQWN0aW9ucyIsIm9uU2F2ZU1hcCIsInVpU3RhdGUiLCJ1aVN0YXRlQWN0aW9ucyIsInZpc1N0YXRlQWN0aW9ucyIsInZlcnNpb24iLCJ3aWR0aCIsIm9wZW5EZWxldGVNb2RhbCIsInRvZ2dsZU1vZGFsIiwidG9nZ2xlU2lkZVBhbmVsIiwiYWN0aXZlU2lkZVBhbmVsIiwic2V0TWFwSW5mbyIsInNob3dEYXRhc2V0VGFibGUiLCJ1cGRhdGVUYWJsZUNvbG9yIiwiaGFzU2hhcmUiLCJoYXNTdG9yYWdlIiwidGl0bGUiLCJpc09wZW4iLCJCb29sZWFuIiwiX29uT3Blbk9yQ2xvc2UiLCJvbkNsaWNrRXhwb3J0SW1hZ2UiLCJFWFBPUlRfSU1BR0VfSUQiLCJvbkNsaWNrRXhwb3J0RGF0YSIsIkVYUE9SVF9EQVRBX0lEIiwib25DbGlja0V4cG9ydE1hcCIsIkVYUE9SVF9NQVBfSUQiLCJvbkNsaWNrU2F2ZVRvU3RvcmFnZSIsIk9WRVJXUklURV9NQVBfSUQiLCJTQVZFX01BUF9JRCIsIm9uQ2xpY2tTYXZlQXNUb1N0b3JhZ2UiLCJvbkNsaWNrU2hhcmVNYXAiLCJTSEFSRV9NQVBfSUQiLCJvblNob3dEYXRhc2V0VGFibGUiLCJkYXRhSWQiLCJvblVwZGF0ZVRhYmxlQ29sb3IiLCJuZXdDb2xvciIsIm9uU2hvd0FkZERhdGFNb2RhbCIsIkFERF9EQVRBX0lEIiwib25TaG93QWRkTWFwU3R5bGVNb2RhbCIsIkFERF9NQVBfU1RZTEVfSUQiLCJvblJlbW92ZURhdGFzZXQiLCJvblNhdmVUb1N0b3JhZ2UiLCJvblNhdmVBc1RvU3RvcmFnZSIsImN1cnJlbnRQYW5lbCIsImZpbmQiLCJvblNoYXJlTWFwIiwiY3VzdG9tUGFuZWxQcm9wcyIsIlBhbmVsQ29tcG9uZW50IiwiaXNTaWRlUGFuZWxDbG9zZUJ1dHRvblZpc2libGUiLCJ2aXNpYmxlRHJvcGRvd24iLCJzaG93RXhwb3J0RHJvcGRvd24iLCJoaWRlRXhwb3J0RHJvcGRvd24iLCJsYXllclBhbmVsTGlzdFZpZXciLCJm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Ly9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7XG4gIEVYUE9SVF9EQVRBX0lELFxuICBFWFBPUlRfTUFQX0lELFxuICBTSEFSRV9NQVBfSUQsXG4gIFNJREVCQVJfUEFORUxTLFxuICBPVkVSV1JJVEVfTUFQX0lELFxuICBTQVZFX01BUF9JRCxcbiAgRVhQT1JUX0lNQUdFX0lELFxuICBBRERfREFUQV9JRCxcbiAgQUREX01BUF9TVFlMRV9JRFxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7Q3Vyc29yQ2xpY2ssIExheWVycywgRmlsdGVyRnVubmVsLCBTZXR0aW5nc30gZnJvbSAnLi9jb21tb24vaWNvbnMnO1xuXG5pbXBvcnQgU2lkZWJhckZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL3NpZGUtYmFyJztcbmltcG9ydCBQYW5lbEhlYWRlckZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL3BhbmVsLWhlYWRlcic7XG5pbXBvcnQgUGFuZWxUb2dnbGVGYWN0b3J5IGZyb20gJy4vc2lkZS1wYW5lbC9wYW5lbC10b2dnbGUnO1xuaW1wb3J0IExheWVyTWFuYWdlckZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLW1hbmFnZXInO1xuaW1wb3J0IEZpbHRlck1hbmFnZXJGYWN0b3J5IGZyb20gJy4vc2lkZS1wYW5lbC9maWx0ZXItbWFuYWdlcic7XG5pbXBvcnQgSW50ZXJhY3Rpb25NYW5hZ2VyRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwvaW50ZXJhY3Rpb24tbWFuYWdlcic7XG5pbXBvcnQgTWFwTWFuYWdlckZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL21hcC1tYW5hZ2VyJztcbmltcG9ydCBDdXN0b21QYW5lbHNGYWN0b3J5IGZyb20gJy4vc2lkZS1wYW5lbC9jdXN0b20tcGFuZWwnO1xuXG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLmdldCc7XG5pbXBvcnQge1NpZGVQYW5lbFByb3BzLCBTaWRlUGFuZWxJdGVtfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFNpZGVQYW5lbENvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNpZGVQYW5lbFNjcm9sbEJhcn07XG4gIGZsZXgtZ3JvdzogMTtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zaWRlUGFuZWxJbm5lclBhZGRpbmd9cHg7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gIC5zaWRlLXBhbmVsX19jb250ZW50X19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuYDtcblxuU2lkZVBhbmVsRmFjdG9yeS5kZXBzID0gW1xuICBTaWRlYmFyRmFjdG9yeSxcbiAgUGFuZWxIZWFkZXJGYWN0b3J5LFxuICBQYW5lbFRvZ2dsZUZhY3RvcnksXG4gIExheWVyTWFuYWdlckZhY3RvcnksXG4gIEZpbHRlck1hbmFnZXJGYWN0b3J5LFxuICBJbnRlcmFjdGlvbk1hbmFnZXJGYWN0b3J5LFxuICBNYXBNYW5hZ2VyRmFjdG9yeSxcbiAgQ3VzdG9tUGFuZWxzRmFjdG9yeVxuXTtcblxuLyoqXG4gKiBWZXJ0aWNhbCBzaWRlYmFyIGNvbnRhaW5pbmcgaW5wdXQgY29tcG9uZW50cyBmb3IgdGhlIHJlbmRlcmluZyBsYXllcnNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2lkZVBhbmVsRmFjdG9yeShcbiAgU2lkZWJhcjogUmV0dXJuVHlwZTx0eXBlb2YgU2lkZWJhckZhY3Rvcnk+LFxuICBQYW5lbEhlYWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgUGFuZWxIZWFkZXJGYWN0b3J5PixcbiAgUGFuZWxUb2dnbGU6IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsVG9nZ2xlRmFjdG9yeT4sXG4gIExheWVyTWFuYWdlcjogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJNYW5hZ2VyRmFjdG9yeT4sXG4gIEZpbHRlck1hbmFnZXI6IFJldHVyblR5cGU8dHlwZW9mIEZpbHRlck1hbmFnZXJGYWN0b3J5PixcbiAgSW50ZXJhY3Rpb25NYW5hZ2VyOiBSZXR1cm5UeXBlPHR5cGVvZiBJbnRlcmFjdGlvbk1hbmFnZXJGYWN0b3J5PixcbiAgTWFwTWFuYWdlcjogUmV0dXJuVHlwZTx0eXBlb2YgTWFwTWFuYWdlckZhY3Rvcnk+LFxuICBDdXN0b21QYW5lbHM6IFJldHVyblR5cGU8dHlwZW9mIEN1c3RvbVBhbmVsc0ZhY3Rvcnk+XG4pIHtcbiAgLy8gaW5qZWN0IGNvbXBvbmVudHNcbiAgY29uc3QgU0lERUJBUl9DT01QT05FTlRTID0ge1xuICAgIGxheWVyOiBMYXllck1hbmFnZXIsXG4gICAgZmlsdGVyOiBGaWx0ZXJNYW5hZ2VyLFxuICAgIGludGVyYWN0aW9uOiBJbnRlcmFjdGlvbk1hbmFnZXIsXG4gICAgbWFwOiBNYXBNYW5hZ2VyXG4gIH07XG5cbiAgY29uc3QgU0lERUJBUl9JQ09OUyA9IHtcbiAgICBsYXllcjogTGF5ZXJzLFxuICAgIGZpbHRlcjogRmlsdGVyRnVubmVsLFxuICAgIGludGVyYWN0aW9uOiBTZXR0aW5ncyxcbiAgICBtYXA6IEN1cnNvckNsaWNrXG4gIH07XG5cbiAgLy8gV2Ugc2hvdWxkIGRlZmluZWQgc2lkZWJhciBwYW5lbHMgaGVyZSBidXQga2VlcGluZyB0aGVtIGZvciBiYWNrd2FyZCBjb21wYXRpYmxlXG4gIGNvbnN0IGZ1bGxQYW5lbHM6IFNpZGVQYW5lbEl0ZW1bXSA9IFNJREVCQVJfUEFORUxTLm1hcChjb21wb25lbnQgPT4gKHtcbiAgICAuLi5jb21wb25lbnQsXG4gICAgY29tcG9uZW50OiBTSURFQkFSX0NPTVBPTkVOVFNbY29tcG9uZW50LmlkXSxcbiAgICBpY29uQ29tcG9uZW50OiBTSURFQkFSX0lDT05TW2NvbXBvbmVudC5pZF1cbiAgfSkpO1xuXG4gIGNvbnN0IGdldEN1c3RvbVBhbmVsUHJvcHMgPSBnZXQoQ3VzdG9tUGFuZWxzLCBbJ2RlZmF1bHRQcm9wcycsICdnZXRQcm9wcyddKSB8fCAoKCkgPT4gKHt9KSk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1zdGF0ZW1lbnRzXG4gIGNvbnN0IFNpZGVQYW5lbDogUmVhY3QuRkM8U2lkZVBhbmVsUHJvcHM+ID0gKHByb3BzOiBTaWRlUGFuZWxQcm9wcykgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGFwcE5hbWUsXG4gICAgICBhcHBXZWJzaXRlLFxuICAgICAgYXZhaWxhYmxlUHJvdmlkZXJzLFxuICAgICAgZGF0YXNldHMsXG4gICAgICBmaWx0ZXJzLFxuICAgICAgbGF5ZXJzLFxuICAgICAgbGF5ZXJCbGVuZGluZyxcbiAgICAgIG92ZXJsYXlCbGVuZGluZyxcbiAgICAgIGxheWVyQ2xhc3NlcyxcbiAgICAgIGxheWVyT3JkZXIsXG4gICAgICBpbnRlcmFjdGlvbkNvbmZpZyxcbiAgICAgIHBhbmVscyA9IGZ1bGxQYW5lbHMsXG4gICAgICBtYXBJbmZvLFxuICAgICAgbWFwU2F2ZWQsXG4gICAgICBtYXBTdGF0ZUFjdGlvbnMsXG4gICAgICBtYXBTdHlsZSxcbiAgICAgIG1hcFN0eWxlQWN0aW9ucyxcbiAgICAgIG9uU2F2ZU1hcCxcbiAgICAgIHVpU3RhdGUsXG4gICAgICB1aVN0YXRlQWN0aW9ucyxcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIHZlcnNpb24sXG4gICAgICB3aWR0aFxuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCB7b3BlbkRlbGV0ZU1vZGFsLCB0b2dnbGVNb2RhbCwgdG9nZ2xlU2lkZVBhbmVsfSA9IHVpU3RhdGVBY3Rpb25zO1xuICAgIGNvbnN0IHthY3RpdmVTaWRlUGFuZWx9ID0gdWlTdGF0ZTtcbiAgICBjb25zdCB7c2V0TWFwSW5mbywgc2hvd0RhdGFzZXRUYWJsZSwgdXBkYXRlVGFibGVDb2xvcn0gPSB2aXNTdGF0ZUFjdGlvbnM7XG4gICAgY29uc3Qge2hhc1NoYXJlLCBoYXNTdG9yYWdlfSA9IGF2YWlsYWJsZVByb3ZpZGVycztcblxuICAgIGNvbnN0IHt0aXRsZX0gPSBtYXBJbmZvO1xuXG4gICAgY29uc3QgaXNPcGVuID0gQm9vbGVhbihhY3RpdmVTaWRlUGFuZWwpO1xuXG4gICAgY29uc3QgX29uT3Blbk9yQ2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB0b2dnbGVTaWRlUGFuZWwoYWN0aXZlU2lkZVBhbmVsID8gJycgOiAnbGF5ZXInKSwgW1xuICAgICAgYWN0aXZlU2lkZVBhbmVsLFxuICAgICAgdG9nZ2xlU2lkZVBhbmVsXG4gICAgXSk7XG5cbiAgICBjb25zdCBvbkNsaWNrRXhwb3J0SW1hZ2UgPSB1c2VDYWxsYmFjaygoKSA9PiB0b2dnbGVNb2RhbChFWFBPUlRfSU1BR0VfSUQpLCBbdG9nZ2xlTW9kYWxdKTtcbiAgICBjb25zdCBvbkNsaWNrRXhwb3J0RGF0YSA9IHVzZUNhbGxiYWNrKCgpID0+IHRvZ2dsZU1vZGFsKEVYUE9SVF9EQVRBX0lEKSwgW3RvZ2dsZU1vZGFsXSk7XG4gICAgY29uc3Qgb25DbGlja0V4cG9ydE1hcCA9IHVzZUNhbGxiYWNrKCgpID0+IHRvZ2dsZU1vZGFsKEVYUE9SVF9NQVBfSUQpLCBbdG9nZ2xlTW9kYWxdKTtcbiAgICBjb25zdCBvbkNsaWNrU2F2ZVRvU3RvcmFnZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgKCkgPT4gdG9nZ2xlTW9kYWwobWFwU2F2ZWQgPyBPVkVSV1JJVEVfTUFQX0lEIDogU0FWRV9NQVBfSUQpLFxuICAgICAgW21hcFNhdmVkLCB0b2dnbGVNb2RhbF1cbiAgICApO1xuICAgIGNvbnN0IG9uQ2xpY2tTYXZlQXNUb1N0b3JhZ2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRNYXBJbmZvKHtcbiAgICAgICAgdGl0bGU6IGAke3RpdGxlIHx8ICdLZXBsZXIuZ2wnfSAoQ29weSlgXG4gICAgICB9KTtcblxuICAgICAgdG9nZ2xlTW9kYWwoU0FWRV9NQVBfSUQpO1xuICAgIH0sIFt0aXRsZSwgc2V0TWFwSW5mbywgdG9nZ2xlTW9kYWxdKTtcbiAgICBjb25zdCBvbkNsaWNrU2hhcmVNYXAgPSB1c2VDYWxsYmFjaygoKSA9PiB0b2dnbGVNb2RhbChTSEFSRV9NQVBfSUQpLCBbdG9nZ2xlTW9kYWxdKTtcbiAgICBjb25zdCBvblNob3dEYXRhc2V0VGFibGUgPSB1c2VDYWxsYmFjayhkYXRhSWQgPT4gc2hvd0RhdGFzZXRUYWJsZShkYXRhSWQpLCBbc2hvd0RhdGFzZXRUYWJsZV0pO1xuICAgIGNvbnN0IG9uVXBkYXRlVGFibGVDb2xvciA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGRhdGFJZCwgbmV3Q29sb3IpID0+IHVwZGF0ZVRhYmxlQ29sb3IoZGF0YUlkLCBuZXdDb2xvciksXG4gICAgICBbdXBkYXRlVGFibGVDb2xvcl1cbiAgICApO1xuICAgIGNvbnN0IG9uU2hvd0FkZERhdGFNb2RhbCA9IHVzZUNhbGxiYWNrKCgpID0+IHRvZ2dsZU1vZGFsKEFERF9EQVRBX0lEKSwgW3RvZ2dsZU1vZGFsXSk7XG4gICAgY29uc3Qgb25TaG93QWRkTWFwU3R5bGVNb2RhbCA9IHVzZUNhbGxiYWNrKCgpID0+IHRvZ2dsZU1vZGFsKEFERF9NQVBfU1RZTEVfSUQpLCBbdG9nZ2xlTW9kYWxdKTtcbiAgICBjb25zdCBvblJlbW92ZURhdGFzZXQgPSB1c2VDYWxsYmFjayhkYXRhSWQgPT4gb3BlbkRlbGV0ZU1vZGFsKGRhdGFJZCksIFtvcGVuRGVsZXRlTW9kYWxdKTtcbiAgICBjb25zdCBvblNhdmVUb1N0b3JhZ2UgPSB1c2VNZW1vKCgpID0+IChoYXNTdG9yYWdlID8gb25DbGlja1NhdmVUb1N0b3JhZ2UgOiBudWxsKSwgW1xuICAgICAgaGFzU3RvcmFnZSxcbiAgICAgIG9uQ2xpY2tTYXZlVG9TdG9yYWdlXG4gICAgXSk7XG4gICAgY29uc3Qgb25TYXZlQXNUb1N0b3JhZ2UgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGhhc1N0b3JhZ2UgJiYgbWFwU2F2ZWQgPyBvbkNsaWNrU2F2ZUFzVG9TdG9yYWdlIDogbnVsbCksXG4gICAgICBbaGFzU3RvcmFnZSwgbWFwU2F2ZWQsIG9uQ2xpY2tTYXZlQXNUb1N0b3JhZ2VdXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50UGFuZWwgPSB1c2VNZW1vKCgpID0+IHBhbmVscy5maW5kKCh7aWR9KSA9PiBpZCA9PT0gYWN0aXZlU2lkZVBhbmVsKSB8fCBudWxsLCBbXG4gICAgICBhY3RpdmVTaWRlUGFuZWwsXG4gICAgICBwYW5lbHNcbiAgICBdKTtcbiAgICBjb25zdCBvblNoYXJlTWFwID0gdXNlTWVtbygoKSA9PiAoaGFzU2hhcmUgPyBvbkNsaWNrU2hhcmVNYXAgOiBudWxsKSwgW1xuICAgICAgaGFzU2hhcmUsXG4gICAgICBvbkNsaWNrU2hhcmVNYXBcbiAgICBdKTtcbiAgICBjb25zdCBjdXN0b21QYW5lbFByb3BzID0gdXNlTWVtbygoKSA9PiBnZXRDdXN0b21QYW5lbFByb3BzKHByb3BzKSwgW3Byb3BzXSk7XG4gICAgY29uc3QgUGFuZWxDb21wb25lbnQgPSBjdXJyZW50UGFuZWw/LmNvbXBvbmVudDtcblxuICAgIHJldHVybiAoXG4gICAgICA8U2lkZWJhclxuICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgIGlzT3Blbj17aXNPcGVufVxuICAgICAgICBzaG91bGRTaG93Q29sbGFwc2VCdXR0b249e3VpU3RhdGUuaXNTaWRlUGFuZWxDbG9zZUJ1dHRvblZpc2libGV9XG4gICAgICAgIG1pbmlmaWVkV2lkdGg9ezB9XG4gICAgICAgIG9uT3Blbk9yQ2xvc2U9e19vbk9wZW5PckNsb3NlfVxuICAgICAgPlxuICAgICAgICA8UGFuZWxIZWFkZXJcbiAgICAgICAgICBhcHBOYW1lPXthcHBOYW1lfVxuICAgICAgICAgIHZlcnNpb249e3ZlcnNpb259XG4gICAgICAgICAgYXBwV2Vic2l0ZT17YXBwV2Vic2l0ZX1cbiAgICAgICAgICB2aXNpYmxlRHJvcGRvd249e3VpU3RhdGUudmlzaWJsZURyb3Bkb3dufVxuICAgICAgICAgIHNob3dFeHBvcnREcm9wZG93bj17dWlTdGF0ZUFjdGlvbnMuc2hvd0V4cG9ydERyb3Bkb3dufVxuICAgICAgICAgIGhpZGVFeHBvcnREcm9wZG93bj17dWlTdGF0ZUFjdGlvbnMuaGlkZUV4cG9ydERyb3Bkb3dufVxuICAgICAgICAgIG9uRXhwb3J0SW1hZ2U9e29uQ2xpY2tFeHBvcnRJbWFnZX1cbiAgICAgICAgICBvbkV4cG9ydERhdGE9e29uQ2xpY2tFeHBvcnREYXRhfVxuICAgICAgICAgIG9uRXhwb3J0TWFwPXtvbkNsaWNrRXhwb3J0TWFwfVxuICAgICAgICAgIG9uU2F2ZU1hcD17b25TYXZlTWFwfVxuICAgICAgICAgIG9uU2F2ZVRvU3RvcmFnZT17b25TYXZlVG9TdG9yYWdlfVxuICAgICAgICAgIG9uU2F2ZUFzVG9TdG9yYWdlPXtvblNhdmVBc1RvU3RvcmFnZX1cbiAgICAgICAgICBvblNoYXJlTWFwPXtvblNoYXJlTWFwfVxuICAgICAgICAvPlxuICAgICAgICB7LyogdGhlIG5leHQgdHdvIGNvbXBvbmVudHMgc2hvdWxkIGJlIG1vdmVkIGludG8gb25lICovfVxuICAgICAgICB7LyogYnV0IGkgYW0ga2VlcGluZyB0aGVtIGJlY2F1c2Ugb2YgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAqL31cbiAgICAgICAgPFBhbmVsVG9nZ2xlXG4gICAgICAgICAgcGFuZWxzPXtwYW5lbHN9XG4gICAgICAgICAgYWN0aXZlUGFuZWw9e2FjdGl2ZVNpZGVQYW5lbH1cbiAgICAgICAgICB0b2dnbGVQYW5lbD17dWlTdGF0ZUFjdGlvbnMudG9nZ2xlU2lkZVBhbmVsfVxuICAgICAgICAvPlxuICAgICAgICA8U3R5bGVkU2lkZVBhbmVsQ29udGVudCBjbGFzc05hbWU9XCJzaWRlLXBhbmVsX19jb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlLXBhbmVsX19jb250ZW50X19pbm5lclwiPlxuICAgICAgICAgICAge1BhbmVsQ29tcG9uZW50ID8gKFxuICAgICAgICAgICAgICA8UGFuZWxDb21wb25lbnRcbiAgICAgICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICAgICAgZmlsdGVycz17ZmlsdGVyc31cbiAgICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgICBsYXllckNsYXNzZXM9e2xheWVyQ2xhc3Nlc31cbiAgICAgICAgICAgICAgICBsYXllck9yZGVyPXtsYXllck9yZGVyfVxuICAgICAgICAgICAgICAgIGxheWVyQmxlbmRpbmc9e2xheWVyQmxlbmRpbmd9XG4gICAgICAgICAgICAgICAgb3ZlcmxheUJsZW5kaW5nPXtvdmVybGF5QmxlbmRpbmd9XG4gICAgICAgICAgICAgICAgbWFwU3R5bGU9e21hcFN0eWxlfVxuICAgICAgICAgICAgICAgIG1hcFN0eWxlQWN0aW9ucz17bWFwU3R5bGVBY3Rpb25zfVxuICAgICAgICAgICAgICAgIG1hcFN0YXRlQWN0aW9ucz17bWFwU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICAgIGludGVyYWN0aW9uQ29uZmlnPXtpbnRlcmFjdGlvbkNvbmZpZ31cbiAgICAgICAgICAgICAgICByZW1vdmVEYXRhc2V0PXtvblJlbW92ZURhdGFzZXR9XG4gICAgICAgICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT17b25TaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgICAgICAgIHVwZGF0ZVRhYmxlQ29sb3I9e29uVXBkYXRlVGFibGVDb2xvcn1cbiAgICAgICAgICAgICAgICBzaG93QWRkRGF0YU1vZGFsPXtvblNob3dBZGREYXRhTW9kYWx9XG4gICAgICAgICAgICAgICAgc2hvd0FkZE1hcFN0eWxlTW9kYWw9e29uU2hvd0FkZE1hcFN0eWxlTW9kYWx9XG4gICAgICAgICAgICAgICAgdWlTdGF0ZUFjdGlvbnM9e3VpU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICAgIHZpc1N0YXRlQWN0aW9ucz17dmlzU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICAgIHBhbmVsTWV0YWRhdGE9e2N1cnJlbnRQYW5lbH1cbiAgICAgICAgICAgICAgICBwYW5lbExpc3RWaWV3PXtcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYW5lbD8uaWQgPT09ICdsYXllcidcbiAgICAgICAgICAgICAgICAgICAgPyB1aVN0YXRlLmxheWVyUGFuZWxMaXN0Vmlld1xuICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnRQYW5lbD8uaWQgPT09ICdmaWx0ZXInXG4gICAgICAgICAgICAgICAgICAgID8gdWlTdGF0ZS5maWx0ZXJQYW5lbExpc3RWaWV3XG4gICAgICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPEN1c3RvbVBhbmVsc1xuICAgICAgICAgICAgICB7Li4uY3VzdG9tUGFuZWxQcm9wc31cbiAgICAgICAgICAgICAgYWN0aXZlU2lkZVBhbmVsPXthY3RpdmVTaWRlUGFuZWx9XG4gICAgICAgICAgICAgIHVwZGF0ZVRhYmxlQ29sb3I9e29uVXBkYXRlVGFibGVDb2xvcn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvU3R5bGVkU2lkZVBhbmVsQ29udGVudD5cbiAgICAgIDwvU2lkZWJhcj5cbiAgICApO1xuICB9O1xuXG4gIFNpZGVQYW5lbC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgcGFuZWxzOiBmdWxsUGFuZWxzLFxuICAgIGF2YWlsYWJsZVByb3ZpZGVyczoge30sXG4gICAgbWFwSW5mbzoge31cbiAgfTtcblxuICByZXR1cm4gU2lkZVBhbmVsO1xufVxuIl19
package/dist/types.d.ts CHANGED
@@ -8,7 +8,7 @@ export declare type SidePanelItem = {
8
8
  id: string;
9
9
  label: string;
10
10
  iconComponent: ComponentType<any>;
11
- component?: ComponentType<any>;
11
+ component: ComponentType<any>;
12
12
  };
13
13
  export declare type SidePanelProps = {
14
14
  appName: string;
@@ -16,16 +16,16 @@ export declare type SidePanelProps = {
16
16
  filters: Filter[];
17
17
  interactionConfig: InteractionConfig;
18
18
  layerBlending: string;
19
+ overlayBlending?: string;
19
20
  layers: Layer[];
20
21
  layerClasses: LayerClassesType;
21
- layerOrder: number[];
22
+ layerOrder: string[];
22
23
  mapStyle: MapStyle;
23
- onSaveMap?: () => void;
24
- width: number;
25
24
  mapInfo: {
26
- title: string;
27
- description: string;
25
+ title?: string;
26
+ description?: string;
28
27
  };
28
+ width: number;
29
29
  datasets: Datasets;
30
30
  uiStateActions: typeof UIStateActions;
31
31
  visStateActions: typeof VisStateActions;
@@ -33,10 +33,17 @@ export declare type SidePanelProps = {
33
33
  mapStyleActions: typeof MapStyleActions;
34
34
  uiState: UiState;
35
35
  availableProviders: {
36
- hasShare: boolean;
37
- hasStorage: boolean;
36
+ [k: string]: {
37
+ hasShare?: boolean;
38
+ hasStorage?: boolean;
39
+ };
38
40
  };
39
41
  mapSaved?: string | null;
40
- panels: SidePanelItem[];
42
+ panels?: SidePanelItem[];
43
+ onSaveMap?: () => void;
41
44
  version: string;
42
45
  };
46
+ export declare type DatasetAttribution = {
47
+ title: string;
48
+ url: string;
49
+ };
package/dist/types.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
1
+ // Copyright (c) 2023 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kepler.gl/components",
3
3
  "author": "Shan He <shan@uber.com>",
4
- "version": "3.0.0-alpha.0",
4
+ "version": "3.0.0-alpha.1",
5
5
  "description": "kepler.gl constants used by kepler.gl components, actions and reducers",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
@@ -30,21 +30,26 @@
30
30
  "umd"
31
31
  ],
32
32
  "dependencies": {
33
- "@deck.gl/core": "^8.6.0",
34
- "@deck.gl/react": "^8.6.0",
35
- "@kepler.gl/actions": "3.0.0-alpha.0",
36
- "@kepler.gl/cloud-providers": "3.0.0-alpha.0",
37
- "@kepler.gl/constants": "3.0.0-alpha.0",
38
- "@kepler.gl/layers": "3.0.0-alpha.0",
39
- "@kepler.gl/localization": "3.0.0-alpha.0",
40
- "@kepler.gl/processors": "3.0.0-alpha.0",
41
- "@kepler.gl/reducers": "3.0.0-alpha.0",
42
- "@kepler.gl/schemas": "3.0.0-alpha.0",
43
- "@kepler.gl/styles": "3.0.0-alpha.0",
44
- "@kepler.gl/table": "3.0.0-alpha.0",
45
- "@kepler.gl/types": "3.0.0-alpha.0",
46
- "@kepler.gl/utils": "3.0.0-alpha.0",
47
- "@nebula.gl/edit-modes": "0.14.0",
33
+ "@deck.gl/core": "^8.9.12",
34
+ "@deck.gl/react": "^8.9.12",
35
+ "@dnd-kit/core": "^6.0.8",
36
+ "@dnd-kit/modifiers": "^6.0.1",
37
+ "@dnd-kit/sortable": "^7.0.2",
38
+ "@dnd-kit/utilities": "^3.2.1",
39
+ "@kepler.gl/actions": "3.0.0-alpha.1",
40
+ "@kepler.gl/cloud-providers": "3.0.0-alpha.1",
41
+ "@kepler.gl/constants": "3.0.0-alpha.1",
42
+ "@kepler.gl/layers": "3.0.0-alpha.1",
43
+ "@kepler.gl/effects": "3.0.0-alpha.1",
44
+ "@kepler.gl/localization": "3.0.0-alpha.1",
45
+ "@kepler.gl/processors": "3.0.0-alpha.1",
46
+ "@kepler.gl/reducers": "3.0.0-alpha.1",
47
+ "@kepler.gl/schemas": "3.0.0-alpha.1",
48
+ "@kepler.gl/styles": "3.0.0-alpha.1",
49
+ "@kepler.gl/table": "3.0.0-alpha.1",
50
+ "@kepler.gl/types": "3.0.0-alpha.1",
51
+ "@kepler.gl/utils": "3.0.0-alpha.1",
52
+ "@nebula.gl/edit-modes": "1.0.2-alpha.1",
48
53
  "@tippyjs/react": "^4.2.0",
49
54
  "@types/classnames": "^2.3.1",
50
55
  "@types/d3-array": "^2.0.0",
@@ -61,14 +66,15 @@
61
66
  "@types/lodash.uniq": "^4.5.7",
62
67
  "@types/lodash.uniqby": "^4.7.7",
63
68
  "@types/react-copy-to-clipboard": "^5.0.2",
64
- "@types/react-dom": "^18.0.0",
69
+ "@types/react": "^18.0.28",
70
+ "@types/react-dom": "^18.0.11",
65
71
  "@types/react-lifecycles-compat": "^3.0.1",
66
- "@types/react-map-gl": "^6.1.2",
72
+ "@types/react-map-gl": "^6.1.3",
67
73
  "@types/react-modal": "^3.13.1",
68
74
  "@types/react-onclickoutside": "^6.7.4",
69
75
  "@types/react-redux": "^7.1.23",
70
- "@types/react-virtualized": "^9.21.20",
71
- "@types/react-vis": "^1.8.0",
76
+ "@types/react-virtualized": "^9.21.23",
77
+ "@types/react-vis": "1.11.7",
72
78
  "@types/styled-components": "^5.1.25",
73
79
  "classnames": "^2.2.1",
74
80
  "copy-to-clipboard": "^3.3.1",
@@ -91,29 +97,30 @@
91
97
  "lodash.uniq": "^4.0.1",
92
98
  "lodash.uniqby": "^4.7.0",
93
99
  "mapbox": "^1.0.0-beta10",
94
- "mapbox-gl": "^1.0.0",
100
+ "mapbox-gl": "1.13.1",
95
101
  "mjolnir.js": "^2.7.0",
96
102
  "moment": "^2.10.6",
97
- "moment-timezone": "^0.5.32",
103
+ "moment-timezone": "^0.5.35",
98
104
  "prop-types": "^15.6.0",
99
- "react": "^16.8.4",
105
+ "react": "^18.2.0",
100
106
  "react-color": "^2.17.3",
101
107
  "react-copy-to-clipboard": "^5.0.2",
102
- "react-dom": "^16.8.4",
103
- "react-intl": "^3.12.0",
108
+ "react-date-picker": "^10.2.0",
109
+ "react-dom": "^18.2.0",
110
+ "react-intl": "^6.3.0",
104
111
  "react-json-pretty": "^2.2.0",
105
112
  "react-lifecycles-compat": "^3.0.4",
106
- "react-map-gl": "^5.0.3",
107
- "react-map-gl-draw": "0.14.8",
113
+ "react-map-gl": "7.0.25",
108
114
  "react-markdown": "^5.0.2",
109
- "react-modal": "^3.8.1",
115
+ "react-modal": "^3.12.1",
110
116
  "react-onclickoutside": "^6.7.1",
111
- "react-redux": "^7.1.3",
117
+ "react-redux": "^8.0.5",
112
118
  "react-sortable-hoc": "^1.8.3",
119
+ "react-time-picker": "^6.2.0",
113
120
  "react-tooltip": "^4.2.17",
114
- "react-virtualized": "^9.21.1",
115
- "react-vis": "^1.8.0",
116
- "redux": "^4.0.5",
121
+ "react-virtualized": "^9.22.4",
122
+ "react-vis": "1.11.7",
123
+ "redux": "^4.2.1",
117
124
  "reselect": "^4.0.0",
118
125
  "styled-components": "^4.1.3",
119
126
  "viewport-mercator-project": "^6.0.0"
@@ -123,14 +130,14 @@
123
130
  "instrument": false
124
131
  },
125
132
  "engines": {
126
- "node": ">=12.0.0"
133
+ "node": ">=14.21.1"
127
134
  },
128
135
  "maintainers": [
129
136
  "Shan He <heshan0131@gmail.com>",
130
137
  "Giuseppe Macri <gmacri@uber.com>"
131
138
  ],
132
139
  "volta": {
133
- "node": "12.22.0",
140
+ "node": "14.21.1",
134
141
  "yarn": "1.22.17"
135
142
  }
136
143
  }
@@ -1,17 +0,0 @@
1
- export declare const RENDER_STATE: {
2
- INACTIVE: string;
3
- UNCOMMITTED: string;
4
- SELECTED: string;
5
- HOVERED: string;
6
- };
7
- export declare const RENDER_TYPE: {
8
- POINT: string;
9
- LINE_STRING: string;
10
- POLYGON: string;
11
- RECTANGLE: string;
12
- };
13
- export declare const COLORS: {
14
- PRIMARY: string;
15
- SECONDARY: string;
16
- TERTIARY: string;
17
- };
@@ -1,47 +0,0 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
- "use strict";
22
-
23
- Object.defineProperty(exports, "__esModule", {
24
- value: true
25
- });
26
- exports.COLORS = exports.RENDER_TYPE = exports.RENDER_STATE = void 0;// Copied from react-map-gl-draw until it gets exported
27
- var RENDER_STATE = {
28
- INACTIVE: 'INACTIVE',
29
- UNCOMMITTED: 'UNCOMMITTED',
30
- SELECTED: 'SELECTED',
31
- HOVERED: 'HOVERED'
32
- };
33
- exports.RENDER_STATE = RENDER_STATE;
34
- var RENDER_TYPE = {
35
- POINT: 'Point',
36
- LINE_STRING: 'LineString',
37
- POLYGON: 'Polygon',
38
- RECTANGLE: 'Rectangle'
39
- };
40
- exports.RENDER_TYPE = RENDER_TYPE;
41
- var COLORS = {
42
- PRIMARY: '#26B5F2',
43
- SECONDARY: '#ffff00',
44
- TERTIARY: '#6c6c6c'
45
- };
46
- exports.COLORS = COLORS;
47
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lZGl0b3IvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbIlJFTkRFUl9TVEFURSIsIklOQUNUSVZFIiwiVU5DT01NSVRURUQiLCJTRUxFQ1RFRCIsIkhPVkVSRUQiLCJSRU5ERVJfVFlQRSIsIlBPSU5UIiwiTElORV9TVFJJTkciLCJQT0xZR09OIiwiUkVDVEFOR0xFIiwiQ09MT1JTIiwiUFJJTUFSWSIsIlNFQ09OREFSWSIsIlRFUlRJQVJZIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ08sSUFBTUEsWUFBWSxHQUFHO0FBQzFCQyxFQUFBQSxRQUFRLEVBQUUsVUFEZ0I7QUFFMUJDLEVBQUFBLFdBQVcsRUFBRSxhQUZhO0FBRzFCQyxFQUFBQSxRQUFRLEVBQUUsVUFIZ0I7QUFJMUJDLEVBQUFBLE9BQU8sRUFBRTtBQUppQixDQUFyQjs7QUFNQSxJQUFNQyxXQUFXLEdBQUc7QUFDekJDLEVBQUFBLEtBQUssRUFBRSxPQURrQjtBQUV6QkMsRUFBQUEsV0FBVyxFQUFFLFlBRlk7QUFHekJDLEVBQUFBLE9BQU8sRUFBRSxTQUhnQjtBQUl6QkMsRUFBQUEsU0FBUyxFQUFFO0FBSmMsQ0FBcEI7O0FBT0EsSUFBTUMsTUFBTSxHQUFHO0FBQ3BCQyxFQUFBQSxPQUFPLEVBQUUsU0FEVztBQUVwQkMsRUFBQUEsU0FBUyxFQUFFLFNBRlM7QUFHcEJDLEVBQUFBLFFBQVEsRUFBRTtBQUhVLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG4vLyBDb3BpZWQgZnJvbSByZWFjdC1tYXAtZ2wtZHJhdyB1bnRpbCBpdCBnZXRzIGV4cG9ydGVkXG5leHBvcnQgY29uc3QgUkVOREVSX1NUQVRFID0ge1xuICBJTkFDVElWRTogJ0lOQUNUSVZFJyxcbiAgVU5DT01NSVRURUQ6ICdVTkNPTU1JVFRFRCcsXG4gIFNFTEVDVEVEOiAnU0VMRUNURUQnLFxuICBIT1ZFUkVEOiAnSE9WRVJFRCdcbn07XG5leHBvcnQgY29uc3QgUkVOREVSX1RZUEUgPSB7XG4gIFBPSU5UOiAnUG9pbnQnLFxuICBMSU5FX1NUUklORzogJ0xpbmVTdHJpbmcnLFxuICBQT0xZR09OOiAnUG9seWdvbicsXG4gIFJFQ1RBTkdMRTogJ1JlY3RhbmdsZSdcbn07XG5cbmV4cG9ydCBjb25zdCBDT0xPUlMgPSB7XG4gIFBSSU1BUlk6ICcjMjZCNUYyJyxcbiAgU0VDT05EQVJZOiAnI2ZmZmYwMCcsXG4gIFRFUlRJQVJZOiAnIzZjNmM2Yydcbn07XG4iXX0=
@@ -1,37 +0,0 @@
1
- export declare const DEFAULT_RADIUS = 5;
2
- export declare const DEFAULT_STATE_STYLE_STROKE: string;
3
- export declare const STATE_STYLES_STROKE: {
4
- [x: number]: string;
5
- };
6
- export declare const DEFAULT_STATE_STYLE_FILL = "#000";
7
- export declare const STATE_STYLES_FILL: {
8
- [x: number]: string;
9
- };
10
- export declare const DEFAULT_STATE_STYLE_OPACITY = 0.1;
11
- export declare const STATE_STYLES_STROKE_WIDTH = 2;
12
- export declare const DEFAULT_STROKE_DASH_ARRAY = "4,2";
13
- export declare const RENDER_TYPE_STYLES: {
14
- [x: number]: (() => {
15
- r: number;
16
- }) | (() => {
17
- fill: string;
18
- });
19
- };
20
- export declare function noOp(): void;
21
- export declare function getStyle({ feature, state }: {
22
- feature: any;
23
- state: any;
24
- }): {
25
- r: number;
26
- strokeDasharray?: string | undefined;
27
- stroke: string;
28
- strokeWidth: number;
29
- fill: string;
30
- fillOpacity: number;
31
- } | {
32
- fill: string;
33
- strokeDasharray?: string | undefined;
34
- stroke: string;
35
- strokeWidth: number;
36
- fillOpacity: number;
37
- };
@@ -1,92 +0,0 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
- "use strict";
22
-
23
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
24
-
25
- Object.defineProperty(exports, "__esModule", {
26
- value: true
27
- });
28
- exports.noOp = noOp;
29
- exports.getStyle = getStyle;
30
- exports.RENDER_TYPE_STYLES = exports.DEFAULT_STROKE_DASH_ARRAY = exports.STATE_STYLES_STROKE_WIDTH = exports.DEFAULT_STATE_STYLE_OPACITY = exports.STATE_STYLES_FILL = exports.DEFAULT_STATE_STYLE_FILL = exports.STATE_STYLES_STROKE = exports.DEFAULT_STATE_STYLE_STROKE = exports.DEFAULT_RADIUS = void 0;
31
-
32
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
33
-
34
- var _reactMapGlDraw = require("react-map-gl-draw");
35
-
36
- var _lodash = _interopRequireDefault(require("lodash.get"));
37
-
38
- var _constants = require("./constants");
39
-
40
- var _STATE_STYLES_STROKE, _STATE_STYLES_FILL, _RENDER_TYPE_STYLES;
41
-
42
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
43
-
44
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
45
-
46
- var DEFAULT_RADIUS = 5;
47
- exports.DEFAULT_RADIUS = DEFAULT_RADIUS;
48
- var DEFAULT_STATE_STYLE_STROKE = _constants.COLORS.PRIMARY;
49
- exports.DEFAULT_STATE_STYLE_STROKE = DEFAULT_STATE_STYLE_STROKE;
50
- var STATE_STYLES_STROKE = (_STATE_STYLES_STROKE = {}, (0, _defineProperty2["default"])(_STATE_STYLES_STROKE, _reactMapGlDraw.RenderStates.INACTIVE, '#26B5F2'), (0, _defineProperty2["default"])(_STATE_STYLES_STROKE, _reactMapGlDraw.RenderStates.UNCOMMITTED, '#a9a9a9'), (0, _defineProperty2["default"])(_STATE_STYLES_STROKE, _reactMapGlDraw.RenderStates.CLOSING, '#a9a9a9'), (0, _defineProperty2["default"])(_STATE_STYLES_STROKE, _reactMapGlDraw.RenderStates.SELECTED, '#26B5F2'), (0, _defineProperty2["default"])(_STATE_STYLES_STROKE, _reactMapGlDraw.RenderStates.HOVERED, '#26B5F2'), _STATE_STYLES_STROKE);
51
- exports.STATE_STYLES_STROKE = STATE_STYLES_STROKE;
52
- var DEFAULT_STATE_STYLE_FILL = '#000';
53
- exports.DEFAULT_STATE_STYLE_FILL = DEFAULT_STATE_STYLE_FILL;
54
- var STATE_STYLES_FILL = (_STATE_STYLES_FILL = {}, (0, _defineProperty2["default"])(_STATE_STYLES_FILL, _reactMapGlDraw.RenderStates.INACTIVE, '#333333'), (0, _defineProperty2["default"])(_STATE_STYLES_FILL, _reactMapGlDraw.RenderStates.HOVERED, '#7ac943'), (0, _defineProperty2["default"])(_STATE_STYLES_FILL, _reactMapGlDraw.RenderStates.SELECTED, '#ffff00'), (0, _defineProperty2["default"])(_STATE_STYLES_FILL, _reactMapGlDraw.RenderStates.UNCOMMITTED, '#a9a9a9'), (0, _defineProperty2["default"])(_STATE_STYLES_FILL, _reactMapGlDraw.RenderStates.CLOSING, '#a9a9a9'), _STATE_STYLES_FILL);
55
- exports.STATE_STYLES_FILL = STATE_STYLES_FILL;
56
- var DEFAULT_STATE_STYLE_OPACITY = 0.1;
57
- exports.DEFAULT_STATE_STYLE_OPACITY = DEFAULT_STATE_STYLE_OPACITY;
58
- var STATE_STYLES_STROKE_WIDTH = 2;
59
- exports.STATE_STYLES_STROKE_WIDTH = STATE_STYLES_STROKE_WIDTH;
60
- var DEFAULT_STROKE_DASH_ARRAY = '4,2';
61
- exports.DEFAULT_STROKE_DASH_ARRAY = DEFAULT_STROKE_DASH_ARRAY;
62
- var RENDER_TYPE_STYLES = (_RENDER_TYPE_STYLES = {}, (0, _defineProperty2["default"])(_RENDER_TYPE_STYLES, _reactMapGlDraw.RenderTypes.POINT, function () {
63
- return {
64
- r: DEFAULT_RADIUS
65
- };
66
- }), (0, _defineProperty2["default"])(_RENDER_TYPE_STYLES, _reactMapGlDraw.RenderTypes.LINE_STRING, function () {
67
- return {
68
- fill: 'none'
69
- };
70
- }), _RENDER_TYPE_STYLES);
71
- exports.RENDER_TYPE_STYLES = RENDER_TYPE_STYLES;
72
-
73
- function noOp() {}
74
-
75
- function getStyle(_ref) {
76
- var feature = _ref.feature,
77
- state = _ref.state;
78
- var isVisible = (0, _lodash["default"])(feature, ['properties', 'isVisible'], true);
79
-
80
- var style = _objectSpread({
81
- stroke: STATE_STYLES_STROKE[state] || DEFAULT_STATE_STYLE_STROKE,
82
- strokeWidth: isVisible ? STATE_STYLES_STROKE_WIDTH : 0,
83
- fill: STATE_STYLES_FILL[state] || DEFAULT_STATE_STYLE_FILL,
84
- fillOpacity: DEFAULT_STATE_STYLE_OPACITY
85
- }, state !== _reactMapGlDraw.RenderStates.SELECTED ? {
86
- strokeDasharray: DEFAULT_STROKE_DASH_ARRAY
87
- } : null);
88
-
89
- var renderType = feature.properties ? feature.properties.renderType : feature.renderType;
90
- return _objectSpread(_objectSpread({}, style), (RENDER_TYPE_STYLES[renderType] || noOp)());
91
- }
92
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lZGl0b3IvZmVhdHVyZS1zdHlsZXMudHMiXSwibmFtZXMiOlsiREVGQVVMVF9SQURJVVMiLCJERUZBVUxUX1NUQVRFX1NUWUxFX1NUUk9LRSIsIkNPTE9SUyIsIlBSSU1BUlkiLCJTVEFURV9TVFlMRVNfU1RST0tFIiwiUmVuZGVyU3RhdGVzIiwiSU5BQ1RJVkUiLCJVTkNPTU1JVFRFRCIsIkNMT1NJTkciLCJTRUxFQ1RFRCIsIkhPVkVSRUQiLCJERUZBVUxUX1NUQVRFX1NUWUxFX0ZJTEwiLCJTVEFURV9TVFlMRVNfRklMTCIsIkRFRkFVTFRfU1RBVEVfU1RZTEVfT1BBQ0lUWSIsIlNUQVRFX1NUWUxFU19TVFJPS0VfV0lEVEgiLCJERUZBVUxUX1NUUk9LRV9EQVNIX0FSUkFZIiwiUkVOREVSX1RZUEVfU1RZTEVTIiwiUmVuZGVyVHlwZXMiLCJQT0lOVCIsInIiLCJMSU5FX1NUUklORyIsImZpbGwiLCJub09wIiwiZ2V0U3R5bGUiLCJmZWF0dXJlIiwic3RhdGUiLCJpc1Zpc2libGUiLCJzdHlsZSIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwiZmlsbE9wYWNpdHkiLCJzdHJva2VEYXNoYXJyYXkiLCJyZW5kZXJUeXBlIiwicHJvcGVydGllcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFFTyxJQUFNQSxjQUFjLEdBQUcsQ0FBdkI7O0FBQ0EsSUFBTUMsMEJBQTBCLEdBQUdDLGtCQUFPQyxPQUExQzs7QUFFQSxJQUFNQyxtQkFBbUIsc0ZBQzdCQyw2QkFBYUMsUUFEZ0IsRUFDTCxTQURLLDBEQUU3QkQsNkJBQWFFLFdBRmdCLEVBRUYsU0FGRSwwREFHN0JGLDZCQUFhRyxPQUhnQixFQUdOLFNBSE0sMERBSTdCSCw2QkFBYUksUUFKZ0IsRUFJTCxTQUpLLDBEQUs3QkosNkJBQWFLLE9BTGdCLEVBS04sU0FMTSx3QkFBekI7O0FBUUEsSUFBTUMsd0JBQXdCLEdBQUcsTUFBakM7O0FBRUEsSUFBTUMsaUJBQWlCLGtGQUMzQlAsNkJBQWFDLFFBRGMsRUFDSCxTQURHLHdEQUUzQkQsNkJBQWFLLE9BRmMsRUFFSixTQUZJLHdEQUczQkwsNkJBQWFJLFFBSGMsRUFHSCxTQUhHLHdEQUkzQkosNkJBQWFFLFdBSmMsRUFJQSxTQUpBLHdEQUszQkYsNkJBQWFHLE9BTGMsRUFLSixTQUxJLHNCQUF2Qjs7QUFRQSxJQUFNSywyQkFBMkIsR0FBRyxHQUFwQzs7QUFFQSxJQUFNQyx5QkFBeUIsR0FBRyxDQUFsQzs7QUFFQSxJQUFNQyx5QkFBeUIsR0FBRyxLQUFsQzs7QUFFQSxJQUFNQyxrQkFBa0Isb0ZBQzVCQyw0QkFBWUMsS0FEZ0IsRUFDUjtBQUFBLFNBQU87QUFBQ0MsSUFBQUEsQ0FBQyxFQUFFbkI7QUFBSixHQUFQO0FBQUEsQ0FEUSx5REFFNUJpQiw0QkFBWUcsV0FGZ0IsRUFFRjtBQUFBLFNBQU87QUFBQ0MsSUFBQUEsSUFBSSxFQUFFO0FBQVAsR0FBUDtBQUFBLENBRkUsdUJBQXhCOzs7QUFLQSxTQUFTQyxJQUFULEdBQWdCLENBQUU7O0FBRWxCLFNBQVNDLFFBQVQsT0FBb0M7QUFBQSxNQUFqQkMsT0FBaUIsUUFBakJBLE9BQWlCO0FBQUEsTUFBUkMsS0FBUSxRQUFSQSxLQUFRO0FBQ3pDLE1BQU1DLFNBQVMsR0FBRyx3QkFBSUYsT0FBSixFQUFhLENBQUMsWUFBRCxFQUFlLFdBQWYsQ0FBYixFQUEwQyxJQUExQyxDQUFsQjs7QUFDQSxNQUFNRyxLQUFLO0FBQ1RDLElBQUFBLE1BQU0sRUFBRXhCLG1CQUFtQixDQUFDcUIsS0FBRCxDQUFuQixJQUE4QnhCLDBCQUQ3QjtBQUVUNEIsSUFBQUEsV0FBVyxFQUFFSCxTQUFTLEdBQUdaLHlCQUFILEdBQStCLENBRjVDO0FBR1RPLElBQUFBLElBQUksRUFBRVQsaUJBQWlCLENBQUNhLEtBQUQsQ0FBakIsSUFBNEJkLHdCQUh6QjtBQUlUbUIsSUFBQUEsV0FBVyxFQUFFakI7QUFKSixLQUtMWSxLQUFLLEtBQUtwQiw2QkFBYUksUUFBdkIsR0FBa0M7QUFBQ3NCLElBQUFBLGVBQWUsRUFBRWhCO0FBQWxCLEdBQWxDLEdBQWlGLElBTDVFLENBQVg7O0FBUUEsTUFBTWlCLFVBQVUsR0FBR1IsT0FBTyxDQUFDUyxVQUFSLEdBQXFCVCxPQUFPLENBQUNTLFVBQVIsQ0FBbUJELFVBQXhDLEdBQXFEUixPQUFPLENBQUNRLFVBQWhGO0FBRUEseUNBQ0tMLEtBREwsR0FFSyxDQUFDWCxrQkFBa0IsQ0FBQ2dCLFVBQUQsQ0FBbEIsSUFBa0NWLElBQW5DLEdBRkw7QUFJRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7UmVuZGVyU3RhdGVzLCBSZW5kZXJUeXBlc30gZnJvbSAncmVhY3QtbWFwLWdsLWRyYXcnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2guZ2V0JztcbmltcG9ydCB7Q09MT1JTfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JBRElVUyA9IDU7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFURV9TVFlMRV9TVFJPS0UgPSBDT0xPUlMuUFJJTUFSWTtcblxuZXhwb3J0IGNvbnN0IFNUQVRFX1NUWUxFU19TVFJPS0UgPSB7XG4gIFtSZW5kZXJTdGF0ZXMuSU5BQ1RJVkVdOiAnIzI2QjVGMicsXG4gIFtSZW5kZXJTdGF0ZXMuVU5DT01NSVRURURdOiAnI2E5YTlhOScsXG4gIFtSZW5kZXJTdGF0ZXMuQ0xPU0lOR106ICcjYTlhOWE5JyxcbiAgW1JlbmRlclN0YXRlcy5TRUxFQ1RFRF06ICcjMjZCNUYyJyxcbiAgW1JlbmRlclN0YXRlcy5IT1ZFUkVEXTogJyMyNkI1RjInXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFURV9TVFlMRV9GSUxMID0gJyMwMDAnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVfU1RZTEVTX0ZJTEwgPSB7XG4gIFtSZW5kZXJTdGF0ZXMuSU5BQ1RJVkVdOiAnIzMzMzMzMycsXG4gIFtSZW5kZXJTdGF0ZXMuSE9WRVJFRF06ICcjN2FjOTQzJyxcbiAgW1JlbmRlclN0YXRlcy5TRUxFQ1RFRF06ICcjZmZmZjAwJyxcbiAgW1JlbmRlclN0YXRlcy5VTkNPTU1JVFRFRF06ICcjYTlhOWE5JyxcbiAgW1JlbmRlclN0YXRlcy5DTE9TSU5HXTogJyNhOWE5YTknXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TVEFURV9TVFlMRV9PUEFDSVRZID0gMC4xO1xuXG5leHBvcnQgY29uc3QgU1RBVEVfU1RZTEVTX1NUUk9LRV9XSURUSCA9IDI7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NUUk9LRV9EQVNIX0FSUkFZID0gJzQsMic7XG5cbmV4cG9ydCBjb25zdCBSRU5ERVJfVFlQRV9TVFlMRVMgPSB7XG4gIFtSZW5kZXJUeXBlcy5QT0lOVF06ICgpID0+ICh7cjogREVGQVVMVF9SQURJVVN9KSxcbiAgW1JlbmRlclR5cGVzLkxJTkVfU1RSSU5HXTogKCkgPT4gKHtmaWxsOiAnbm9uZSd9KVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vT3AoKSB7fVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3R5bGUoe2ZlYXR1cmUsIHN0YXRlfSkge1xuICBjb25zdCBpc1Zpc2libGUgPSBnZXQoZmVhdHVyZSwgWydwcm9wZXJ0aWVzJywgJ2lzVmlzaWJsZSddLCB0cnVlKTtcbiAgY29uc3Qgc3R5bGUgPSB7XG4gICAgc3Ryb2tlOiBTVEFURV9TVFlMRVNfU1RST0tFW3N0YXRlXSB8fCBERUZBVUxUX1NUQVRFX1NUWUxFX1NUUk9LRSxcbiAgICBzdHJva2VXaWR0aDogaXNWaXNpYmxlID8gU1RBVEVfU1RZTEVTX1NUUk9LRV9XSURUSCA6IDAsXG4gICAgZmlsbDogU1RBVEVfU1RZTEVTX0ZJTExbc3RhdGVdIHx8IERFRkFVTFRfU1RBVEVfU1RZTEVfRklMTCxcbiAgICBmaWxsT3BhY2l0eTogREVGQVVMVF9TVEFURV9TVFlMRV9PUEFDSVRZLFxuICAgIC4uLihzdGF0ZSAhPT0gUmVuZGVyU3RhdGVzLlNFTEVDVEVEID8ge3N0cm9rZURhc2hhcnJheTogREVGQVVMVF9TVFJPS0VfREFTSF9BUlJBWX0gOiBudWxsKVxuICB9O1xuXG4gIGNvbnN0IHJlbmRlclR5cGUgPSBmZWF0dXJlLnByb3BlcnRpZXMgPyBmZWF0dXJlLnByb3BlcnRpZXMucmVuZGVyVHlwZSA6IGZlYXR1cmUucmVuZGVyVHlwZTtcblxuICByZXR1cm4ge1xuICAgIC4uLnN0eWxlLFxuICAgIC4uLihSRU5ERVJfVFlQRV9TVFlMRVNbcmVuZGVyVHlwZV0gfHwgbm9PcCkoKVxuICB9O1xufVxuIl19