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

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 (418) hide show
  1. package/dist/bottom-widget.js +1 -21
  2. package/dist/common/action-panel.js +1 -21
  3. package/dist/common/animation-control/animation-control.js +1 -21
  4. package/dist/common/animation-control/animation-controller.js +1 -21
  5. package/dist/common/animation-control/animation-speed-slider.js +1 -21
  6. package/dist/common/animation-control/animation-window-control.js +3 -21
  7. package/dist/common/animation-control/floating-time-display.js +1 -21
  8. package/dist/common/animation-control/play-control.js +3 -21
  9. package/dist/common/animation-control/playback-controls.js +1 -21
  10. package/dist/common/animation-control/reset-control.js +3 -21
  11. package/dist/common/animation-control/speed-control.js +1 -21
  12. package/dist/common/animation-control/window-action-control.js +3 -21
  13. package/dist/common/checkbox.js +1 -21
  14. package/dist/common/color-legend.js +1 -21
  15. package/dist/common/data-table/button.js +1 -21
  16. package/dist/common/data-table/canvas.js +1 -21
  17. package/dist/common/data-table/cell-size.js +1 -21
  18. package/dist/common/data-table/display-format.js +1 -21
  19. package/dist/common/data-table/grid.js +1 -21
  20. package/dist/common/data-table/header-cell.js +1 -21
  21. package/dist/common/data-table/index.js +1 -21
  22. package/dist/common/data-table/option-dropdown.js +1 -21
  23. package/dist/common/dataset-label.js +1 -21
  24. package/dist/common/error-boundary.js +1 -21
  25. package/dist/common/field-selector.d.ts +1 -0
  26. package/dist/common/field-selector.js +3 -21
  27. package/dist/common/field-token.d.ts +4 -0
  28. package/dist/common/field-token.js +1 -21
  29. package/dist/common/file-uploader/file-drop.js +1 -21
  30. package/dist/common/file-uploader/file-upload-progress.js +1 -21
  31. package/dist/common/file-uploader/file-upload.js +1 -21
  32. package/dist/common/file-uploader/upload-button.js +1 -21
  33. package/dist/common/flex-container.d.ts +3 -0
  34. package/dist/common/flex-container.js +23 -0
  35. package/dist/common/histogram-plot.js +1 -21
  36. package/dist/common/icon-button.d.ts +1 -1
  37. package/dist/common/icon-button.js +1 -21
  38. package/dist/common/icons/add.js +1 -21
  39. package/dist/common/icons/anchor_window.js +6 -22
  40. package/dist/common/icons/arrow-down-alt.js +1 -21
  41. package/dist/common/icons/arrow-down-small.d.ts +14 -0
  42. package/dist/common/icons/arrow-down-small.js +72 -0
  43. package/dist/common/icons/arrow-down-solid.js +1 -21
  44. package/dist/common/icons/arrow-down.js +1 -21
  45. package/dist/common/icons/arrow-left.js +1 -21
  46. package/dist/common/icons/arrow-right.js +1 -21
  47. package/dist/common/icons/arrow-up-alt.js +1 -21
  48. package/dist/common/icons/arrow-up-solid.js +1 -21
  49. package/dist/common/icons/arrow-up.js +1 -21
  50. package/dist/common/icons/base.js +1 -21
  51. package/dist/common/icons/bug.js +1 -21
  52. package/dist/common/icons/calendar.d.ts +10 -0
  53. package/dist/common/icons/calendar.js +66 -0
  54. package/dist/common/icons/cancel.js +1 -21
  55. package/dist/common/icons/checkmark.js +1 -21
  56. package/dist/common/icons/clipboard.js +1 -21
  57. package/dist/common/icons/clock.js +1 -21
  58. package/dist/common/icons/close.js +1 -21
  59. package/dist/common/icons/code-alt.js +1 -21
  60. package/dist/common/icons/copy.js +1 -21
  61. package/dist/common/icons/crosshairs.js +1 -21
  62. package/dist/common/icons/cube-3d.js +1 -21
  63. package/dist/common/icons/cursor-click.js +1 -21
  64. package/dist/common/icons/cursor-point.js +1 -21
  65. package/dist/common/icons/data-table.js +1 -21
  66. package/dist/common/icons/db.js +1 -21
  67. package/dist/common/icons/delete.js +1 -21
  68. package/dist/common/icons/docs.js +1 -21
  69. package/dist/common/icons/drag-n-drop.js +1 -21
  70. package/dist/common/icons/draw-polygon.js +1 -21
  71. package/dist/common/icons/effects/brightness-contrast.d.ts +14 -0
  72. package/dist/common/icons/effects/brightness-contrast.js +88 -0
  73. package/dist/common/icons/effects/color-halftone.d.ts +14 -0
  74. package/dist/common/icons/effects/color-halftone.js +127 -0
  75. package/dist/common/icons/effects/dot-screen.d.ts +14 -0
  76. package/dist/common/icons/effects/dot-screen.js +122 -0
  77. package/dist/common/icons/effects/edge-work.d.ts +14 -0
  78. package/dist/common/icons/effects/edge-work.js +81 -0
  79. package/dist/common/icons/effects/hexagonal-pixelate.d.ts +14 -0
  80. package/dist/common/icons/effects/hexagonal-pixelate.js +148 -0
  81. package/dist/common/icons/effects/hue-saturation.d.ts +14 -0
  82. package/dist/common/icons/effects/hue-saturation.js +79 -0
  83. package/dist/common/icons/effects/ink.d.ts +14 -0
  84. package/dist/common/icons/effects/ink.js +78 -0
  85. package/dist/common/icons/effects/light-and-shadow.d.ts +14 -0
  86. package/dist/common/icons/effects/light-and-shadow.js +67 -0
  87. package/dist/common/icons/effects/magic-wand.d.ts +14 -0
  88. package/dist/common/icons/effects/magic-wand.js +79 -0
  89. package/dist/common/icons/effects/magnify.d.ts +14 -0
  90. package/dist/common/icons/effects/magnify.js +86 -0
  91. package/dist/common/icons/effects/noise.d.ts +14 -0
  92. package/dist/common/icons/effects/noise.js +132 -0
  93. package/dist/common/icons/effects/sepia.d.ts +14 -0
  94. package/dist/common/icons/effects/sepia.js +79 -0
  95. package/dist/common/icons/effects/tilt-shift.d.ts +14 -0
  96. package/dist/common/icons/effects/tilt-shift.js +88 -0
  97. package/dist/common/icons/effects/triangle-blur.d.ts +14 -0
  98. package/dist/common/icons/effects/triangle-blur.js +83 -0
  99. package/dist/common/icons/effects/vibrance.d.ts +14 -0
  100. package/dist/common/icons/effects/vibrance.js +79 -0
  101. package/dist/common/icons/effects/vignette.d.ts +14 -0
  102. package/dist/common/icons/effects/vignette.js +72 -0
  103. package/dist/common/icons/effects/zoom-blur.d.ts +14 -0
  104. package/dist/common/icons/effects/zoom-blur.js +107 -0
  105. package/dist/common/icons/email.js +1 -21
  106. package/dist/common/icons/expand.js +1 -21
  107. package/dist/common/icons/eye-seen.js +1 -21
  108. package/dist/common/icons/eye-unseen.js +1 -21
  109. package/dist/common/icons/file-type.js +1 -21
  110. package/dist/common/icons/file.js +1 -21
  111. package/dist/common/icons/files.js +1 -21
  112. package/dist/common/icons/filter-funnel.js +1 -21
  113. package/dist/common/icons/free-window.js +6 -22
  114. package/dist/common/icons/gear.js +1 -21
  115. package/dist/common/icons/globe.d.ts +15 -0
  116. package/dist/common/icons/globe.js +72 -0
  117. package/dist/common/icons/hash.js +1 -21
  118. package/dist/common/icons/histogram.js +1 -21
  119. package/dist/common/icons/index.d.ts +25 -0
  120. package/dist/common/icons/index.js +201 -21
  121. package/dist/common/icons/info.js +1 -21
  122. package/dist/common/icons/layers.js +1 -21
  123. package/dist/common/icons/left-arrow.js +1 -21
  124. package/dist/common/icons/legend.js +1 -21
  125. package/dist/common/icons/line-chart.js +1 -21
  126. package/dist/common/icons/location-marker.d.ts +14 -0
  127. package/dist/common/icons/location-marker.js +77 -0
  128. package/dist/common/icons/login.js +1 -21
  129. package/dist/common/icons/logout.js +1 -21
  130. package/dist/common/icons/map-icon.js +1 -21
  131. package/dist/common/icons/map.js +1 -21
  132. package/dist/common/icons/messages.js +1 -21
  133. package/dist/common/icons/minus.js +1 -21
  134. package/dist/common/icons/moon.d.ts +14 -0
  135. package/dist/common/icons/moon.js +77 -0
  136. package/dist/common/icons/order-by-dataset.js +6 -22
  137. package/dist/common/icons/order-by-list.js +6 -22
  138. package/dist/common/icons/pause.js +1 -21
  139. package/dist/common/icons/picture.js +1 -21
  140. package/dist/common/icons/pin.js +1 -21
  141. package/dist/common/icons/play.js +1 -21
  142. package/dist/common/icons/polygon.js +1 -21
  143. package/dist/common/icons/rectangle.js +1 -21
  144. package/dist/common/icons/reduce.js +1 -21
  145. package/dist/common/icons/reset.js +1 -21
  146. package/dist/common/icons/rocket.js +1 -21
  147. package/dist/common/icons/save.js +1 -21
  148. package/dist/common/icons/save2.js +1 -21
  149. package/dist/common/icons/search.js +1 -21
  150. package/dist/common/icons/settings.js +1 -21
  151. package/dist/common/icons/share.js +1 -21
  152. package/dist/common/icons/split.js +1 -21
  153. package/dist/common/icons/square-select.js +1 -21
  154. package/dist/common/icons/sun.d.ts +14 -0
  155. package/dist/common/icons/sun.js +93 -0
  156. package/dist/common/icons/sunrise.d.ts +14 -0
  157. package/dist/common/icons/sunrise.js +89 -0
  158. package/dist/common/icons/sunset.d.ts +14 -0
  159. package/dist/common/icons/sunset.js +89 -0
  160. package/dist/common/icons/trash.js +1 -21
  161. package/dist/common/icons/vert-dots.js +1 -21
  162. package/dist/common/icons/vert-three-dots.js +1 -21
  163. package/dist/common/icons/warning-sign.js +1 -21
  164. package/dist/common/icons/warning.js +1 -21
  165. package/dist/common/image-preview.js +1 -21
  166. package/dist/common/index.js +1 -21
  167. package/dist/common/info-helper.js +1 -21
  168. package/dist/common/item-selector/accessor.js +5 -22
  169. package/dist/common/item-selector/chickleted-input.d.ts +1 -0
  170. package/dist/common/item-selector/chickleted-input.js +104 -44
  171. package/dist/common/item-selector/dropdown-list.d.ts +2 -0
  172. package/dist/common/item-selector/dropdown-list.js +10 -25
  173. package/dist/common/item-selector/item-selector.d.ts +3 -0
  174. package/dist/common/item-selector/item-selector.js +11 -23
  175. package/dist/common/item-selector/typeahead.js +1 -21
  176. package/dist/common/line-chart.js +1 -21
  177. package/dist/common/loading-spinner.js +1 -21
  178. package/dist/common/logo.js +1 -21
  179. package/dist/common/map-layer-selector.js +1 -21
  180. package/dist/common/modal.js +25 -28
  181. package/dist/common/portaled.d.ts +15 -2
  182. package/dist/common/portaled.js +1 -21
  183. package/dist/common/progress-bar.js +1 -21
  184. package/dist/common/range-brush.js +1 -21
  185. package/dist/common/range-plot.js +1 -21
  186. package/dist/common/range-slider.d.ts +1 -1
  187. package/dist/common/range-slider.js +1 -21
  188. package/dist/common/slider/mouse-event.js +6 -22
  189. package/dist/common/slider/slider-bar-handle.js +1 -21
  190. package/dist/common/slider/slider-handle.js +1 -21
  191. package/dist/common/slider/slider.js +1 -21
  192. package/dist/common/styled-components.d.ts +3 -3
  193. package/dist/common/styled-components.js +26 -47
  194. package/dist/common/switch.js +1 -21
  195. package/dist/common/time-range-slider-time-title.js +1 -21
  196. package/dist/common/time-range-slider.js +1 -21
  197. package/dist/common/time-slider-marker.js +1 -21
  198. package/dist/common/timeline-slider.js +1 -21
  199. package/dist/common/tippy-tooltip.js +1 -21
  200. package/dist/common/toolbar-item.js +1 -21
  201. package/dist/common/toolbar.js +1 -21
  202. package/dist/common/vertical-toolbar.js +1 -21
  203. package/dist/connect/keplergl-connect.js +6 -22
  204. package/dist/connect/with-local-selector.js +1 -21
  205. package/dist/container.js +1 -21
  206. package/dist/context.d.ts +11 -0
  207. package/dist/context.js +18 -23
  208. package/dist/dnd-context.d.ts +1 -1
  209. package/dist/dnd-context.js +32 -127
  210. package/dist/editor/editor.js +1 -21
  211. package/dist/editor/feature-action-panel.js +28 -79
  212. package/dist/effects/compact-color-picker.d.ts +10 -0
  213. package/dist/effects/compact-color-picker.js +130 -0
  214. package/dist/effects/effect-configurator.d.ts +4 -5
  215. package/dist/effects/effect-configurator.js +183 -118
  216. package/dist/effects/effect-list.js +2 -22
  217. package/dist/effects/effect-manager.d.ts +2 -1
  218. package/dist/effects/effect-manager.js +43 -30
  219. package/dist/effects/effect-panel-header.d.ts +14 -2
  220. package/dist/effects/effect-panel-header.js +82 -50
  221. package/dist/effects/effect-panel.js +30 -43
  222. package/dist/effects/effect-time-configurator.d.ts +14 -7
  223. package/dist/effects/effect-time-configurator.js +258 -109
  224. package/dist/effects/effect-time-selector.d.ts +16 -0
  225. package/dist/effects/effect-time-selector.js +181 -0
  226. package/dist/effects/effect-time-slider.d.ts +34 -0
  227. package/dist/effects/effect-time-slider.js +220 -0
  228. package/dist/effects/effect-type-dropdown-list.d.ts +18 -0
  229. package/dist/effects/effect-type-dropdown-list.js +77 -0
  230. package/dist/effects/effect-type-list-item.d.ts +22 -0
  231. package/dist/effects/effect-type-list-item.js +105 -0
  232. package/dist/effects/effect-type-selector.d.ts +22 -3
  233. package/dist/effects/effect-type-selector.js +58 -83
  234. package/dist/effects/side-panel-title.js +1 -21
  235. package/dist/effects/timezone-selector.d.ts +19 -0
  236. package/dist/effects/timezone-selector.js +71 -0
  237. package/dist/filter-animation-controller.js +3 -21
  238. package/dist/filters/components.js +1 -21
  239. package/dist/filters/filter-panels/filter-panel-with-field-select.js +6 -22
  240. package/dist/filters/filter-panels/multi-select-filter-panel.js +6 -22
  241. package/dist/filters/filter-panels/new-filter-panel.js +6 -22
  242. package/dist/filters/filter-panels/polygon-filter-panel.js +6 -22
  243. package/dist/filters/filter-panels/range-filter-panel.js +6 -22
  244. package/dist/filters/filter-panels/single-select-filter-panel.js +6 -22
  245. package/dist/filters/filter-panels/time-range-filter-panel.js +1 -21
  246. package/dist/filters/filter-panels/types.js +0 -20
  247. package/dist/filters/index.js +1 -21
  248. package/dist/filters/multi-select-filter.js +6 -22
  249. package/dist/filters/polygon-filter.js +6 -22
  250. package/dist/filters/range-filter.js +6 -22
  251. package/dist/filters/single-select-filter.js +6 -22
  252. package/dist/filters/time-range-filter.js +7 -22
  253. package/dist/filters/time-widget-top.js +1 -21
  254. package/dist/filters/time-widget.js +1 -21
  255. package/dist/filters/types.js +0 -20
  256. package/dist/geocoder/geocoder.js +10 -27
  257. package/dist/geocoder-panel.js +1 -21
  258. package/dist/hooks/use-cloud-list-provider.d.ts +11 -0
  259. package/dist/hooks/use-cloud-list-provider.js +57 -0
  260. package/dist/hooks/use-dnd-effects.d.ts +9 -0
  261. package/dist/hooks/use-dnd-effects.js +88 -0
  262. package/dist/hooks/use-dnd-layers.d.ts +9 -0
  263. package/dist/hooks/use-dnd-layers.js +95 -0
  264. package/dist/hooks/use-feature-flags.d.ts +5 -0
  265. package/dist/hooks/use-feature-flags.js +21 -0
  266. package/dist/index.d.ts +10 -1
  267. package/dist/index.js +103 -24
  268. package/dist/injector.js +1 -21
  269. package/dist/kepler-gl.d.ts +2 -1
  270. package/dist/kepler-gl.js +13 -25
  271. package/dist/layer-animation-controller.js +3 -21
  272. package/dist/map/coordinate-info.js +6 -22
  273. package/dist/map/effects/effect-control.d.ts +1 -1
  274. package/dist/map/effects/effect-control.js +5 -23
  275. package/dist/map/layer-hover-info.js +2 -22
  276. package/dist/map/layer-selector-panel.js +6 -22
  277. package/dist/map/lazy-tippy.js +1 -21
  278. package/dist/map/locale-panel.js +6 -22
  279. package/dist/map/map-control-panel.js +1 -21
  280. package/dist/map/map-control-toolbar.js +1 -21
  281. package/dist/map/map-control-tooltip.js +6 -22
  282. package/dist/map/map-control.js +1 -21
  283. package/dist/map/map-draw-panel.js +6 -22
  284. package/dist/map/map-legend-panel.js +6 -22
  285. package/dist/map/map-legend.js +1 -21
  286. package/dist/map/map-popover-content.js +6 -22
  287. package/dist/map/map-popover.js +1 -21
  288. package/dist/map/split-map-button.js +6 -22
  289. package/dist/map/toggle-3d-button.js +6 -22
  290. package/dist/map-container.d.ts +1 -1
  291. package/dist/map-container.js +33 -52
  292. package/dist/map-view-state-context.d.ts +6 -1
  293. package/dist/map-view-state-context.js +34 -33
  294. package/dist/maps-layout.js +1 -21
  295. package/dist/modal-container.d.ts +2 -2
  296. package/dist/modal-container.js +13 -72
  297. package/dist/modals/add-map-style-modal.js +8 -72
  298. package/dist/modals/cloud-components/cloud-header.d.ts +8 -0
  299. package/dist/modals/cloud-components/cloud-header.js +65 -0
  300. package/dist/modals/cloud-components/cloud-item.d.ts +5 -0
  301. package/dist/modals/cloud-components/cloud-item.js +72 -0
  302. package/dist/modals/cloud-components/cloud-item.spec.d.ts +1 -0
  303. package/dist/modals/cloud-components/cloud-item.spec.js +105 -0
  304. package/dist/modals/cloud-components/cloud-maps.d.ts +8 -0
  305. package/dist/modals/cloud-components/cloud-maps.js +63 -0
  306. package/dist/modals/cloud-components/cloud-maps.spec.d.ts +1 -0
  307. package/dist/modals/cloud-components/cloud-maps.spec.js +112 -0
  308. package/dist/modals/cloud-components/provider-loading.d.ts +2 -0
  309. package/dist/modals/cloud-components/provider-loading.js +29 -0
  310. package/dist/modals/cloud-components/provider-select.d.ts +7 -0
  311. package/dist/modals/cloud-components/provider-select.js +40 -0
  312. package/dist/modals/cloud-tile.d.ts +8 -8
  313. package/dist/modals/cloud-tile.js +184 -75
  314. package/dist/modals/data-table-modal.js +1 -21
  315. package/dist/modals/delete-data-modal.js +1 -21
  316. package/dist/modals/error-display.js +15 -26
  317. package/dist/modals/export-data-modal.js +1 -21
  318. package/dist/modals/export-image-modal.js +1 -21
  319. package/dist/modals/export-map-modal/components.js +1 -21
  320. package/dist/modals/export-map-modal/export-html-map.js +1 -21
  321. package/dist/modals/export-map-modal/export-json-map.js +1 -21
  322. package/dist/modals/export-map-modal/export-map-modal.js +6 -22
  323. package/dist/modals/image-modal-container.d.ts +1 -3
  324. package/dist/modals/image-modal-container.js +12 -34
  325. package/dist/modals/load-data-modal.d.ts +0 -5
  326. package/dist/modals/load-data-modal.js +1 -21
  327. package/dist/modals/load-storage-map.d.ts +3 -24
  328. package/dist/modals/load-storage-map.js +69 -282
  329. package/dist/modals/load-storage-map.spec.d.ts +1 -0
  330. package/dist/modals/load-storage-map.spec.js +237 -0
  331. package/dist/modals/loading-dialog.js +1 -21
  332. package/dist/modals/modal-dialog.js +6 -22
  333. package/dist/modals/modal-tabs.js +1 -21
  334. package/dist/modals/overwrite-map-modal.d.ts +2 -2
  335. package/dist/modals/overwrite-map-modal.js +39 -32
  336. package/dist/modals/save-map-modal.d.ts +3 -5
  337. package/dist/modals/save-map-modal.js +99 -119
  338. package/dist/modals/save-map-modal.spec.d.ts +1 -0
  339. package/dist/modals/save-map-modal.spec.js +218 -0
  340. package/dist/modals/share-map-modal.d.ts +1 -5
  341. package/dist/modals/share-map-modal.js +57 -81
  342. package/dist/modals/share-map-modal.spec.d.ts +1 -0
  343. package/dist/modals/share-map-modal.spec.js +202 -0
  344. package/dist/modals/status-panel.js +1 -21
  345. package/dist/modals/storage-map-viewer.js +1 -21
  346. package/dist/notification-panel/notification-item.js +1 -21
  347. package/dist/notification-panel.js +1 -21
  348. package/dist/plot-container.js +7 -27
  349. package/dist/side-panel/add-by-dataset-button.js +1 -21
  350. package/dist/side-panel/cloud-storage-dropdown.js +6 -22
  351. package/dist/side-panel/common/dataset-info.js +1 -21
  352. package/dist/side-panel/common/dataset-tag.js +1 -21
  353. package/dist/side-panel/common/dataset-title.js +1 -21
  354. package/dist/side-panel/common/source-data-catalog.js +1 -21
  355. package/dist/side-panel/common/source-data-selector.js +6 -22
  356. package/dist/side-panel/common/types.js +0 -20
  357. package/dist/side-panel/custom-panel.js +6 -22
  358. package/dist/side-panel/filter-manager.js +1 -21
  359. package/dist/side-panel/filter-panel/add-filter-button.js +6 -22
  360. package/dist/side-panel/filter-panel/filter-panel-header.js +2 -22
  361. package/dist/side-panel/filter-panel/filter-panel.js +1 -21
  362. package/dist/side-panel/interaction-manager.js +6 -22
  363. package/dist/side-panel/interaction-panel/brush-config.js +1 -21
  364. package/dist/side-panel/interaction-panel/interaction-panel.js +1 -21
  365. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +8 -0
  366. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +46 -27
  367. package/dist/side-panel/interaction-panel/tooltip-config.js +41 -52
  368. package/dist/side-panel/layer-manager.d.ts +5 -0
  369. package/dist/side-panel/layer-manager.js +3 -22
  370. package/dist/side-panel/layer-panel/add-layer-button.js +6 -22
  371. package/dist/side-panel/layer-panel/color-palette.js +1 -21
  372. package/dist/side-panel/layer-panel/color-range-selector.js +1 -21
  373. package/dist/side-panel/layer-panel/color-selector.js +1 -21
  374. package/dist/side-panel/layer-panel/column-selector.js +1 -21
  375. package/dist/side-panel/layer-panel/custom-palette.js +1 -21
  376. package/dist/side-panel/layer-panel/custom-picker.js +1 -21
  377. package/dist/side-panel/layer-panel/dataset-layer-group.js +6 -22
  378. package/dist/side-panel/layer-panel/dataset-layer-section.js +1 -21
  379. package/dist/side-panel/layer-panel/dataset-section.js +1 -21
  380. package/dist/side-panel/layer-panel/dimension-scale-selector.js +6 -22
  381. package/dist/side-panel/layer-panel/how-to-button.js +1 -21
  382. package/dist/side-panel/layer-panel/layer-color-selector.js +6 -22
  383. package/dist/side-panel/layer-panel/layer-column-config.js +1 -21
  384. package/dist/side-panel/layer-panel/layer-config-group.js +1 -21
  385. package/dist/side-panel/layer-panel/layer-configurator.js +16 -24
  386. package/dist/side-panel/layer-panel/layer-error-message.js +1 -21
  387. package/dist/side-panel/layer-panel/layer-list.js +1 -21
  388. package/dist/side-panel/layer-panel/layer-panel-header.js +1 -21
  389. package/dist/side-panel/layer-panel/layer-panel.js +1 -21
  390. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +1 -21
  391. package/dist/side-panel/layer-panel/layer-type-list-item.js +1 -21
  392. package/dist/side-panel/layer-panel/layer-type-selector.js +1 -21
  393. package/dist/side-panel/layer-panel/single-color-palette.js +1 -21
  394. package/dist/side-panel/layer-panel/text-label-panel.js +1 -21
  395. package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +1 -21
  396. package/dist/side-panel/layer-panel/vis-config-slider.js +1 -21
  397. package/dist/side-panel/layer-panel/vis-config-switch.js +1 -21
  398. package/dist/side-panel/map-manager.js +1 -21
  399. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +1 -21
  400. package/dist/side-panel/map-style-panel/map-layer-group-item.js +1 -21
  401. package/dist/side-panel/map-style-panel/map-layer-selector.js +1 -21
  402. package/dist/side-panel/map-style-panel/map-style-selector.js +1 -21
  403. package/dist/side-panel/panel-dropdown.js +1 -21
  404. package/dist/side-panel/panel-header-action.js +1 -21
  405. package/dist/side-panel/panel-header.js +2 -21
  406. package/dist/side-panel/panel-tab.js +1 -21
  407. package/dist/side-panel/panel-title.js +1 -21
  408. package/dist/side-panel/panel-toggle.js +1 -21
  409. package/dist/side-panel/panel-view-list-toggle.js +1 -21
  410. package/dist/side-panel/side-bar.js +1 -21
  411. package/dist/side-panel.js +7 -36
  412. package/dist/types.d.ts +2 -4
  413. package/dist/types.js +0 -20
  414. package/package.json +27 -24
  415. package/dist/hooks/useFeatureFlags.d.ts +0 -2
  416. package/dist/hooks/useFeatureFlags.js +0 -38
  417. package/dist/modals/provider-modal-container.d.ts +0 -23
  418. package/dist/modals/provider-modal-container.js +0 -101
package/dist/container.js CHANGED
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2023 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
1
  "use strict";
22
2
 
23
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
@@ -239,4 +219,4 @@ function injectComponents() {
239
219
  var InjectedContainer = appInjector.get(ContainerFactory);
240
220
  var _default = InjectedContainer;
241
221
  exports["default"] = _default;
242
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250YWluZXIudHN4Il0sIm5hbWVzIjpbIkVSUk9SX01TRyIsIm5vU3RhdGUiLCJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsInByb3BzIiwiZGlzcGF0Y2hUb1Byb3BzIiwiZGlzcGF0Y2giLCJjb25uZWN0b3IiLCJDb250YWluZXJGYWN0b3J5IiwiZGVwcyIsIktlcGxlckdsRmFjdG9yeSIsIktlcGxlckdsIiwiQ29udGFpbmVyIiwiaWQiLCJnZXRTdGF0ZSIsIkNvbnNvbGUiLCJlcnJvciIsIm1pbnQiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIm1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0IiwiaW5pdGlhbFVpU3RhdGUiLCJwcmV2UHJvcHMiLCJzZWxlY3RvciIsImdldFNlbGVjdG9yIiwiZ2V0RGlzcGF0Y2giLCJDb21wb25lbnQiLCJrZXBsZXJHbCIsImFsbERlcGVuZGVuY2llcyIsImFwcEluamVjdG9yIiwicmVkdWNlIiwiaW5qIiwiZmFjdG9yeSIsInByb3ZpZGUiLCJpbmplY3RDb21wb25lbnRzIiwicmVjaXBlcyIsImdldCIsIkluamVjdGVkQ29udGFpbmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7Ozs7Ozs7OztBQUdPLElBQU1BLFNBQVMsR0FBRztBQUN2QkMsRUFBQUEsT0FBTyxFQUNMO0FBRnFCLENBQWxCOzs7QUFPUCxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLEtBQUQsRUFBYUMsS0FBYjtBQUFBO0FBQXlDRCxJQUFBQSxLQUFLLEVBQUxBO0FBQXpDLEtBQW1EQyxLQUFuRDtBQUFBLENBQXhCOztBQUNBLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ0MsUUFBRDtBQUFBLFNBQThCO0FBQUNBLElBQUFBLFFBQVEsRUFBUkE7QUFBRCxHQUE5QjtBQUFBLENBQXhCOztBQUNBLElBQU1DLFNBQVMsR0FBRyx5QkFBUUwsZUFBUixFQUF5QkcsZUFBekIsQ0FBbEI7QUFlQUcsZ0JBQWdCLENBQUNDLElBQWpCLEdBQXdCLENBQUNDLG9CQUFELENBQXhCOztBQUVPLFNBQVNGLGdCQUFULENBQ0xHLFFBREssRUFFMEI7QUFDL0I7O0FBQ0E7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUExQmlDLE1BNkJ6QkMsU0E3QnlCO0FBQUE7O0FBQUE7O0FBQUE7QUFBQTs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSxzR0E4RWYsd0JBQVEsVUFBQ0MsRUFBRCxFQUFLQyxRQUFMO0FBQUEsZUFBa0IsVUFBQVgsS0FBSyxFQUFJO0FBQy9DLGNBQUksQ0FBQ1csUUFBUSxDQUFDWCxLQUFELENBQWIsRUFBc0I7QUFDcEI7QUFDQVksNEJBQVFDLEtBQVIsQ0FBY2hCLFNBQVMsQ0FBQ0MsT0FBeEI7O0FBRUEsbUJBQU8sSUFBUDtBQUNEOztBQUNELGlCQUFPYSxRQUFRLENBQUNYLEtBQUQsQ0FBUixDQUFnQlUsRUFBaEIsQ0FBUDtBQUNELFNBUnFCO0FBQUEsT0FBUixDQTlFZTtBQUFBLHNHQXVGZix3QkFBUSxVQUFDQSxFQUFELEVBQUtQLFFBQUw7QUFBQSxlQUFrQix3QkFBVU8sRUFBVixFQUFjUCxRQUFkLENBQWxCO0FBQUEsT0FBUixDQXZGZTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBLGFBcUM3Qiw2QkFBb0I7QUFBQSwwQkFRZCxLQUFLRixLQVJTO0FBQUEsWUFFaEJTLEVBRmdCLGVBRWhCQSxFQUZnQjtBQUFBLFlBR2hCSSxJQUhnQixlQUdoQkEsSUFIZ0I7QUFBQSxZQUloQkMsb0JBSmdCLGVBSWhCQSxvQkFKZ0I7QUFBQSxZQUtoQkMsWUFMZ0IsZUFLaEJBLFlBTGdCO0FBQUEsWUFNaEJDLHVCQU5nQixlQU1oQkEsdUJBTmdCO0FBQUEsWUFPaEJDLGNBUGdCLGVBT2hCQSxjQVBnQixFQVVsQjs7QUFDQSxhQUFLakIsS0FBTCxDQUFXRSxRQUFYLENBQ0UsNEJBQWM7QUFDWk8sVUFBQUEsRUFBRSxFQUFGQSxFQURZO0FBRVpJLFVBQUFBLElBQUksRUFBSkEsSUFGWTtBQUdaQyxVQUFBQSxvQkFBb0IsRUFBcEJBLG9CQUhZO0FBSVpDLFVBQUFBLFlBQVksRUFBWkEsWUFKWTtBQUtaQyxVQUFBQSx1QkFBdUIsRUFBdkJBLHVCQUxZO0FBTVpDLFVBQUFBLGNBQWMsRUFBZEE7QUFOWSxTQUFkLENBREY7QUFVRDtBQTFENEI7QUFBQTtBQUFBLGFBNEQ3Qiw0QkFBbUJDLFNBQW5CLEVBQThCO0FBQzVCO0FBQ0EsWUFDRSwrQkFBbUJBLFNBQVMsQ0FBQ1QsRUFBN0IsS0FDQSwrQkFBbUIsS0FBS1QsS0FBTCxDQUFXUyxFQUE5QixDQURBLElBRUFTLFNBQVMsQ0FBQ1QsRUFBVixLQUFpQixLQUFLVCxLQUFMLENBQVdTLEVBSDlCLEVBSUU7QUFDQSxlQUFLVCxLQUFMLENBQVdFLFFBQVgsQ0FBb0IsMEJBQVlnQixTQUFTLENBQUNULEVBQXRCLEVBQTBCLEtBQUtULEtBQUwsQ0FBV1MsRUFBckMsQ0FBcEI7QUFDRDtBQUNGO0FBckU0QjtBQUFBO0FBQUEsYUF1RTdCLGdDQUF1QjtBQUNyQixZQUFJLEtBQUtULEtBQUwsQ0FBV2EsSUFBWCxLQUFvQixLQUF4QixFQUErQjtBQUM3QjtBQUNBLGVBQUtiLEtBQUwsQ0FBV0UsUUFBWCxDQUFvQiwwQkFBWSxLQUFLRixLQUFMLENBQVdTLEVBQXZCLENBQXBCO0FBQ0Q7QUFDRjtBQTVFNEI7QUFBQTtBQUFBLGFBeUY3QixrQkFBUztBQUFBLDJCQUNpQyxLQUFLVCxLQUR0QztBQUFBLFlBQ0FTLEVBREEsZ0JBQ0FBLEVBREE7QUFBQSxZQUNJQyxRQURKLGdCQUNJQSxRQURKO0FBQUEsWUFDY1IsUUFEZCxnQkFDY0EsUUFEZDtBQUFBLFlBQ3dCSCxLQUR4QixnQkFDd0JBLEtBRHhCO0FBRVAsWUFBTW9CLFFBQVEsR0FBRyxLQUFLQyxXQUFMLENBQWlCWCxFQUFqQixFQUFxQkMsUUFBckIsQ0FBakI7O0FBRUEsWUFBSSxDQUFDUyxRQUFELElBQWEsQ0FBQ0EsUUFBUSxDQUFDcEIsS0FBRCxDQUExQixFQUFtQztBQUNqQztBQUNBLDhCQUFPLDRDQUFQO0FBQ0Q7O0FBRUQsNEJBQ0UsZ0NBQUMsUUFBRCxnQ0FDTSxLQUFLQyxLQURYO0FBRUUsVUFBQSxFQUFFLEVBQUVTLEVBRk47QUFHRSxVQUFBLFFBQVEsRUFBRVUsUUFIWjtBQUlFLFVBQUEsUUFBUSxFQUFFLEtBQUtFLFdBQUwsQ0FBaUJaLEVBQWpCLEVBQXFCUCxRQUFyQjtBQUpaLFdBREY7QUFRRDtBQTFHNEI7QUFBQTtBQUFBLElBNkJQb0IsZ0JBN0JPOztBQUFBLG1DQTZCekJkLFNBN0J5QixrQkErQlA7QUFDcEJDLElBQUFBLEVBQUUsRUFBRSxLQURnQjtBQUVwQkMsSUFBQUEsUUFBUSxFQUFFLGtCQUFBWCxLQUFLO0FBQUEsYUFBSUEsS0FBSyxDQUFDd0IsUUFBVjtBQUFBLEtBRks7QUFHcEJWLElBQUFBLElBQUksRUFBRTtBQUhjLEdBL0JPO0FBNkcvQixTQUFPVixTQUFTLENBQUNLLFNBQUQsQ0FBaEI7QUFDRDs7QUFFRCxJQUFNZ0IsZUFBZSxHQUFHLDJCQUFZLEVBQVosRUFBZ0JwQixnQkFBaEIsQ0FBeEIsQyxDQUVBOztBQUNPLElBQU1xQixXQUFXLEdBQUdELGVBQWUsQ0FBQ0UsTUFBaEIsQ0FDekIsVUFBQ0MsR0FBRCxFQUFNQyxPQUFOO0FBQUEsU0FBa0JELEdBQUcsQ0FBQ0UsT0FBSixDQUFZRCxPQUFaLEVBQXFCQSxPQUFyQixDQUFsQjtBQUFBLENBRHlCLEVBRXpCLHlCQUZ5QixDQUFwQixDLENBS1A7Ozs7QUFDTyxTQUFTRSxnQkFBVCxHQUF3QztBQUFBLE1BQWRDLE9BQWMsdUVBQUosRUFBSTtBQUM3QyxTQUFPLHdDQUF5QkEsT0FBekIsRUFBa0NOLFdBQWxDLEVBQStDTyxHQUEvQyxDQUFtRDVCLGdCQUFuRCxDQUFQO0FBQ0Q7O0FBRUQsSUFBTTZCLGlCQUFpQixHQUFHUixXQUFXLENBQUNPLEdBQVosQ0FBZ0I1QixnQkFBaEIsQ0FBMUI7ZUFFZTZCLGlCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBDb21wb25lbnRUeXBlLCBEaXNwYXRjaH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtjb25uZWN0LCBDb25uZWN0ZWRQcm9wc30gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnbG9kYXNoLm1lbW9pemUnO1xuaW1wb3J0IHtjb25zb2xlIGFzIENvbnNvbGV9IGZyb20gJ2dsb2JhbC93aW5kb3cnO1xuaW1wb3J0IHtpbmplY3RvciwgcHJvdmlkZVJlY2lwZXNUb0luamVjdG9yLCBmbGF0dGVuRGVwc30gZnJvbSAnLi9pbmplY3Rvcic7XG5pbXBvcnQgS2VwbGVyR2xGYWN0b3J5IGZyb20gJy4va2VwbGVyLWdsJztcblxuaW1wb3J0IHtyZWdpc3RlckVudHJ5LCBkZWxldGVFbnRyeSwgcmVuYW1lRW50cnksIGZvcndhcmRUb30gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7bm90TnVsbG9yVW5kZWZpbmVkfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7S2VwbGVyR2xTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5cbmV4cG9ydCBjb25zdCBFUlJPUl9NU0cgPSB7XG4gIG5vU3RhdGU6XG4gICAgYGtlcGxlci5nbCBzdGF0ZSBkb2VzIG5vdCBleGlzdC4gYCArXG4gICAgYFlvdSBtaWdodCBmb3JnZXQgdG8gbW91bnQga2VwbGVyR2xSZWR1Y2VyIGluIHlvdXIgcm9vdCByZWR1Y2VyLmAgK1xuICAgIGBJZiBpdCBpcyBub3QgbW91bnRlZCBhcyBzdGF0ZS5rZXBsZXJHbCBieSBkZWZhdWx0LCB5b3UgbmVlZCB0byBwcm92aWRlIGdldFN0YXRlIGFzIGEgcHJvcGBcbn07XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZTogYW55LCBwcm9wczogQ29udGFpbmVyUHJvcHMpID0+ICh7c3RhdGUsIC4uLnByb3BzfSk7XG5jb25zdCBkaXNwYXRjaFRvUHJvcHMgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPGFueT4pID0+ICh7ZGlzcGF0Y2h9KTtcbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBkaXNwYXRjaFRvUHJvcHMpO1xuXG50eXBlIENvbnRhaW5lclByb3BzID0ge1xuICBpZDogc3RyaW5nO1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0PzogYm9vbGVhbjtcbiAgaW5pdGlhbFVpU3RhdGU/OiBvYmplY3Q7XG4gIHdpZHRoOiBudW1iZXI7XG4gIG1pbnQ/OiBib29sZWFuO1xuICBnZXRTdGF0ZTogKHN0YXRlOiBhbnkpID0+IEtlcGxlckdsU3RhdGU7XG59O1xuXG50eXBlIFByb3BzRnJvbVJlZHV4ID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiBDb250YWluZXJQcm9wcztcblxuQ29udGFpbmVyRmFjdG9yeS5kZXBzID0gW0tlcGxlckdsRmFjdG9yeV07XG5cbmV4cG9ydCBmdW5jdGlvbiBDb250YWluZXJGYWN0b3J5KFxuICBLZXBsZXJHbDogUmV0dXJuVHlwZTx0eXBlb2YgS2VwbGVyR2xGYWN0b3J5PlxuKTogQ29tcG9uZW50VHlwZTxQcm9wc0Zyb21SZWR1eD4ge1xuICAvKiogQGxlbmRzIEtlcGxlckdsICovXG4gIC8qKlxuICAgICogTWFpbiBLZXBsZXIuZ2wgQ29tcG9uZW50XG4gICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHNcbiAgICAqXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcHMuaWQgLSBfcmVxdWlyZWRfXG4gICAgKlxuICAgICogLSBEZWZhdWx0OiBgbWFwYFxuICAgICogVGhlIGlkIG9mIHRoaXMgS2VwbGVyR2wgaW5zdGFuY2UuIGBpZGAgaXMgcmVxdWlyZWQgaWYgeW91IGhhdmUgbXVsdGlwbGVcbiAgICAqIEtlcGxlckdsIGluc3RhbmNlcyBpbiB5b3VyIGFwcC4gSXQgZGVmaW5lcyB0aGUgcHJvcCBuYW1lIG9mIHRoZSBLZXBsZXJHbCBzdGF0ZSB0aGF0IGlzXG4gICAgKiBzdG9yZWQgaW4gdGhlIEtlcGxlckdsIHJlZHVjZXIuIEZvciBleGFtcGxlLCB0aGUgc3RhdGUgb2YgdGhlIEtlcGxlckdsIGNvbXBvbmVudCB3aXRoIGlkIGBmb29gIGlzXG4gICAgKiBzdG9yZWQgaW4gYHN0YXRlLmtlcGxlckdsLmZvb2AuXG4gICAgKlxuICAgICogSW4gY2FzZSB5b3UgY3JlYXRlIG11bHRpcGxlIGtlcGxlci5nbCBpbnN0YW5jZXMgdXNpbmcgdGhlIHNhbWUgaWQsIHRoZSBrZXBsZXIuZ2wgc3RhdGUgZGVmaW5lZCBieSB0aGUgZW50cnkgd2lsbCBiZVxuICAgICogb3ZlcnJpZGRlbiBieSB0aGUgbGF0ZXN0IGluc3RhbmNlIGFuZCByZXNldCB0byBhIGJsYW5rIHN0YXRlLlxuICAgICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VuIC0gX3JlcXVpcmVkX1xuICAgICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLm1hcGJveEFwaVVybCAtIF9vcHRpb25hbF9cbiAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gcHJvcHMubWFwU3R5bGVzUmVwbGFjZURlZmF1bHQgLSBfb3B0aW9uYWxfXG4gICAgKiBAcGFyYW0ge29iamVjdH0gcHJvcHMuaW5pdGlhbFVpU3RhdGUgLSBfb3B0aW9uYWxfXG5cbiAgICAqIFlvdSBjYW4gY3JlYXRlIGEgZnJlZSBhY2NvdW50IGF0IFt3d3cubWFwYm94LmNvbV0od3d3Lm1hcGJveC5jb20pIGFuZCBjcmVhdGUgYSB0b2tlbiBhdFxuICAgICogW3d3dy5tYXBib3guY29tL2FjY291bnQvYWNjZXNzLXRva2Vuc10od3d3Lm1hcGJveC5jb20vYWNjb3VudC9hY2Nlc3MtdG9rZW5zKVxuICAgICpcbiAgICAqXG4gICAgKiBAcGFyYW0ge051bWJlcn0gcHJvcHMud2lkdGggLSBfcmVxdWlyZWRfIFdpZHRoIG9mIHRoZSBLZXBsZXJHbCBVSS5cbiAgICAqIEBwdWJsaWNcbiAgICovXG5cbiAgY2xhc3MgQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50PFByb3BzRnJvbVJlZHV4PiB7XG4gICAgLy8gZGVmYXVsdCBpZCBhbmQgYWRkcmVzcyBpZiBub3QgcHJvdmlkZWRcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgaWQ6ICdtYXAnLFxuICAgICAgZ2V0U3RhdGU6IHN0YXRlID0+IHN0YXRlLmtlcGxlckdsLFxuICAgICAgbWludDogdHJ1ZVxuICAgIH07XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIG1pbnQsXG4gICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICBtYXBib3hBcGlVcmwsXG4gICAgICAgIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0LFxuICAgICAgICBpbml0aWFsVWlTdGF0ZVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIC8vIGFkZCBhIG5ldyBlbnRyeSB0byByZWR1Y2VyXG4gICAgICB0aGlzLnByb3BzLmRpc3BhdGNoKFxuICAgICAgICByZWdpc3RlckVudHJ5KHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBtaW50LFxuICAgICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgICBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCxcbiAgICAgICAgICBpbml0aWFsVWlTdGF0ZVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICAvLyBjaGVjayBpZiBpZCBoYXMgY2hhbmdlZCwgaWYgdHJ1ZSwgY29weSBzdGF0ZSBvdmVyXG4gICAgICBpZiAoXG4gICAgICAgIG5vdE51bGxvclVuZGVmaW5lZChwcmV2UHJvcHMuaWQpICYmXG4gICAgICAgIG5vdE51bGxvclVuZGVmaW5lZCh0aGlzLnByb3BzLmlkKSAmJlxuICAgICAgICBwcmV2UHJvcHMuaWQgIT09IHRoaXMucHJvcHMuaWRcbiAgICAgICkge1xuICAgICAgICB0aGlzLnByb3BzLmRpc3BhdGNoKHJlbmFtZUVudHJ5KHByZXZQcm9wcy5pZCwgdGhpcy5wcm9wcy5pZCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMucHJvcHMubWludCAhPT0gZmFsc2UpIHtcbiAgICAgICAgLy8gZGVsZXRlIGVudHJ5IGluIHJlZHVjZXJcbiAgICAgICAgdGhpcy5wcm9wcy5kaXNwYXRjaChkZWxldGVFbnRyeSh0aGlzLnByb3BzLmlkKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0b3IgPSBtZW1vaXplKChpZCwgZ2V0U3RhdGUpID0+IHN0YXRlID0+IHtcbiAgICAgIGlmICghZ2V0U3RhdGUoc3RhdGUpKSB7XG4gICAgICAgIC8vIGxvZyBlcnJvclxuICAgICAgICBDb25zb2xlLmVycm9yKEVSUk9SX01TRy5ub1N0YXRlKTtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBnZXRTdGF0ZShzdGF0ZSlbaWRdO1xuICAgIH0pO1xuICAgIGdldERpc3BhdGNoID0gbWVtb2l6ZSgoaWQsIGRpc3BhdGNoKSA9PiBmb3J3YXJkVG8oaWQsIGRpc3BhdGNoKSk7XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7aWQsIGdldFN0YXRlLCBkaXNwYXRjaCwgc3RhdGV9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHNlbGVjdG9yID0gdGhpcy5nZXRTZWxlY3RvcihpZCwgZ2V0U3RhdGUpO1xuXG4gICAgICBpZiAoIXNlbGVjdG9yIHx8ICFzZWxlY3RvcihzdGF0ZSkpIHtcbiAgICAgICAgLy8gaW5zdGFuY2Ugc3RhdGUgaGFzbid0IGJlZW4gbW91bnRlZCB5ZXRcbiAgICAgICAgcmV0dXJuIDxkaXYgLz47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxLZXBsZXJHbFxuICAgICAgICAgIHsuLi50aGlzLnByb3BzfVxuICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICBzZWxlY3Rvcj17c2VsZWN0b3J9XG4gICAgICAgICAgZGlzcGF0Y2g9e3RoaXMuZ2V0RGlzcGF0Y2goaWQsIGRpc3BhdGNoKX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbm5lY3RvcihDb250YWluZXIpO1xufVxuXG5jb25zdCBhbGxEZXBlbmRlbmNpZXMgPSBmbGF0dGVuRGVwcyhbXSwgQ29udGFpbmVyRmFjdG9yeSk7XG5cbi8vIHByb3ZpZGUgYWxsIGRlcGVuZGVuY2llcyB0byBhcHBJbmplY3RvclxuZXhwb3J0IGNvbnN0IGFwcEluamVjdG9yID0gYWxsRGVwZW5kZW5jaWVzLnJlZHVjZShcbiAgKGluaiwgZmFjdG9yeSkgPT4gaW5qLnByb3ZpZGUoZmFjdG9yeSwgZmFjdG9yeSksXG4gIGluamVjdG9yKClcbik7XG5cbi8vIEhlbHBlciB0byBpbmplY3QgY3VzdG9tIGNvbXBvbmVudHMgYW5kIHJldHVybiBrZXBsZXIuZ2wgY29udGFpbmVyXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Q29tcG9uZW50cyhyZWNpcGVzID0gW10pIHtcbiAgcmV0dXJuIHByb3ZpZGVSZWNpcGVzVG9JbmplY3RvcihyZWNpcGVzLCBhcHBJbmplY3RvcikuZ2V0KENvbnRhaW5lckZhY3RvcnkpO1xufVxuXG5jb25zdCBJbmplY3RlZENvbnRhaW5lciA9IGFwcEluamVjdG9yLmdldChDb250YWluZXJGYWN0b3J5KTtcblxuZXhwb3J0IGRlZmF1bHQgSW5qZWN0ZWRDb250YWluZXI7XG4iXX0=
222
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250YWluZXIudHN4Il0sIm5hbWVzIjpbIkVSUk9SX01TRyIsIm5vU3RhdGUiLCJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsInByb3BzIiwiZGlzcGF0Y2hUb1Byb3BzIiwiZGlzcGF0Y2giLCJjb25uZWN0b3IiLCJDb250YWluZXJGYWN0b3J5IiwiZGVwcyIsIktlcGxlckdsRmFjdG9yeSIsIktlcGxlckdsIiwiQ29udGFpbmVyIiwiaWQiLCJnZXRTdGF0ZSIsIkNvbnNvbGUiLCJlcnJvciIsIm1pbnQiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIm1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0IiwiaW5pdGlhbFVpU3RhdGUiLCJwcmV2UHJvcHMiLCJzZWxlY3RvciIsImdldFNlbGVjdG9yIiwiZ2V0RGlzcGF0Y2giLCJDb21wb25lbnQiLCJrZXBsZXJHbCIsImFsbERlcGVuZGVuY2llcyIsImFwcEluamVjdG9yIiwicmVkdWNlIiwiaW5qIiwiZmFjdG9yeSIsInByb3ZpZGUiLCJpbmplY3RDb21wb25lbnRzIiwicmVjaXBlcyIsImdldCIsIkluamVjdGVkQ29udGFpbmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOzs7Ozs7Ozs7O0FBR08sSUFBTUEsU0FBUyxHQUFHO0FBQ3ZCQyxFQUFBQSxPQUFPLEVBQ0w7QUFGcUIsQ0FBbEI7OztBQU9QLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ0MsS0FBRCxFQUFhQyxLQUFiO0FBQUE7QUFBeUNELElBQUFBLEtBQUssRUFBTEE7QUFBekMsS0FBbURDLEtBQW5EO0FBQUEsQ0FBeEI7O0FBQ0EsSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxRQUFEO0FBQUEsU0FBOEI7QUFBQ0EsSUFBQUEsUUFBUSxFQUFSQTtBQUFELEdBQTlC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QS9DLENBQW1ENUIsZ0JBQW5ELENBQVA7QUFDRDs7QUFFRCxJQUFNNkIsaUJBQWlCLEdBQUdSLFdBQVcsQ0FBQ08sR0FBWixDQUFnQjVCLGdCQUFoQixDQUExQjtlQUVlNkIsaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIENvbXBvbmVudFR5cGUsIERpc3BhdGNofSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nvbm5lY3QsIENvbm5lY3RlZFByb3BzfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdsb2Rhc2gubWVtb2l6ZSc7XG5pbXBvcnQge2NvbnNvbGUgYXMgQ29uc29sZX0gZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5pbXBvcnQge2luamVjdG9yLCBwcm92aWRlUmVjaXBlc1RvSW5qZWN0b3IsIGZsYXR0ZW5EZXBzfSBmcm9tICcuL2luamVjdG9yJztcbmltcG9ydCBLZXBsZXJHbEZhY3RvcnkgZnJvbSAnLi9rZXBsZXItZ2wnO1xuXG5pbXBvcnQge3JlZ2lzdGVyRW50cnksIGRlbGV0ZUVudHJ5LCByZW5hbWVFbnRyeSwgZm9yd2FyZFRvfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtub3ROdWxsb3JVbmRlZmluZWR9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtLZXBsZXJHbFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcblxuZXhwb3J0IGNvbnN0IEVSUk9SX01TRyA9IHtcbiAgbm9TdGF0ZTpcbiAgICBga2VwbGVyLmdsIHN0YXRlIGRvZXMgbm90IGV4aXN0LiBgICtcbiAgICBgWW91IG1pZ2h0IGZvcmdldCB0byBtb3VudCBrZXBsZXJHbFJlZHVjZXIgaW4geW91ciByb290IHJlZHVjZXIuYCArXG4gICAgYElmIGl0IGlzIG5vdCBtb3VudGVkIGFzIHN0YXRlLmtlcGxlckdsIGJ5IGRlZmF1bHQsIHlvdSBuZWVkIHRvIHByb3ZpZGUgZ2V0U3RhdGUgYXMgYSBwcm9wYFxufTtcblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKHN0YXRlOiBhbnksIHByb3BzOiBDb250YWluZXJQcm9wcykgPT4gKHtzdGF0ZSwgLi4ucHJvcHN9KTtcbmNvbnN0IGRpc3BhdGNoVG9Qcm9wcyA9IChkaXNwYXRjaDogRGlzcGF0Y2g8YW55PikgPT4gKHtkaXNwYXRjaH0pO1xuY29uc3QgY29ubmVjdG9yID0gY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMsIGRpc3BhdGNoVG9Qcm9wcyk7XG5cbnR5cGUgQ29udGFpbmVyUHJvcHMgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIG1hcGJveEFwaVVybD86IHN0cmluZztcbiAgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQ/OiBib29sZWFuO1xuICBpbml0aWFsVWlTdGF0ZT86IG9iamVjdDtcbiAgd2lkdGg6IG51bWJlcjtcbiAgbWludD86IGJvb2xlYW47XG4gIGdldFN0YXRlOiAoc3RhdGU6IGFueSkgPT4gS2VwbGVyR2xTdGF0ZTtcbn07XG5cbnR5cGUgUHJvcHNGcm9tUmVkdXggPSBDb25uZWN0ZWRQcm9wczx0eXBlb2YgY29ubmVjdG9yPiAmIENvbnRhaW5lclByb3BzO1xuXG5Db250YWluZXJGYWN0b3J5LmRlcHMgPSBbS2VwbGVyR2xGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbnRhaW5lckZhY3RvcnkoXG4gIEtlcGxlckdsOiBSZXR1cm5UeXBlPHR5cGVvZiBLZXBsZXJHbEZhY3Rvcnk+XG4pOiBDb21wb25lbnRUeXBlPFByb3BzRnJvbVJlZHV4PiB7XG4gIC8qKiBAbGVuZHMgS2VwbGVyR2wgKi9cbiAgLyoqXG4gICAgKiBNYWluIEtlcGxlci5nbCBDb21wb25lbnRcbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wc1xuICAgICpcbiAgICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5pZCAtIF9yZXF1aXJlZF9cbiAgICAqXG4gICAgKiAtIERlZmF1bHQ6IGBtYXBgXG4gICAgKiBUaGUgaWQgb2YgdGhpcyBLZXBsZXJHbCBpbnN0YW5jZS4gYGlkYCBpcyByZXF1aXJlZCBpZiB5b3UgaGF2ZSBtdWx0aXBsZVxuICAgICogS2VwbGVyR2wgaW5zdGFuY2VzIGluIHlvdXIgYXBwLiBJdCBkZWZpbmVzIHRoZSBwcm9wIG5hbWUgb2YgdGhlIEtlcGxlckdsIHN0YXRlIHRoYXQgaXNcbiAgICAqIHN0b3JlZCBpbiB0aGUgS2VwbGVyR2wgcmVkdWNlci4gRm9yIGV4YW1wbGUsIHRoZSBzdGF0ZSBvZiB0aGUgS2VwbGVyR2wgY29tcG9uZW50IHdpdGggaWQgYGZvb2AgaXNcbiAgICAqIHN0b3JlZCBpbiBgc3RhdGUua2VwbGVyR2wuZm9vYC5cbiAgICAqXG4gICAgKiBJbiBjYXNlIHlvdSBjcmVhdGUgbXVsdGlwbGUga2VwbGVyLmdsIGluc3RhbmNlcyB1c2luZyB0aGUgc2FtZSBpZCwgdGhlIGtlcGxlci5nbCBzdGF0ZSBkZWZpbmVkIGJ5IHRoZSBlbnRyeSB3aWxsIGJlXG4gICAgKiBvdmVycmlkZGVuIGJ5IHRoZSBsYXRlc3QgaW5zdGFuY2UgYW5kIHJlc2V0IHRvIGEgYmxhbmsgc3RhdGUuXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcHMubWFwYm94QXBpQWNjZXNzVG9rZW4gLSBfcmVxdWlyZWRfXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcHMubWFwYm94QXBpVXJsIC0gX29wdGlvbmFsX1xuICAgICogQHBhcmFtIHtCb29sZWFufSBwcm9wcy5tYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCAtIF9vcHRpb25hbF9cbiAgICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcy5pbml0aWFsVWlTdGF0ZSAtIF9vcHRpb25hbF9cblxuICAgICogWW91IGNhbiBjcmVhdGUgYSBmcmVlIGFjY291bnQgYXQgW3d3dy5tYXBib3guY29tXSh3d3cubWFwYm94LmNvbSkgYW5kIGNyZWF0ZSBhIHRva2VuIGF0XG4gICAgKiBbd3d3Lm1hcGJveC5jb20vYWNjb3VudC9hY2Nlc3MtdG9rZW5zXSh3d3cubWFwYm94LmNvbS9hY2NvdW50L2FjY2Vzcy10b2tlbnMpXG4gICAgKlxuICAgICpcbiAgICAqIEBwYXJhbSB7TnVtYmVyfSBwcm9wcy53aWR0aCAtIF9yZXF1aXJlZF8gV2lkdGggb2YgdGhlIEtlcGxlckdsIFVJLlxuICAgICogQHB1YmxpY1xuICAgKi9cblxuICBjbGFzcyBDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnQ8UHJvcHNGcm9tUmVkdXg+IHtcbiAgICAvLyBkZWZhdWx0IGlkIGFuZCBhZGRyZXNzIGlmIG5vdCBwcm92aWRlZFxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBpZDogJ21hcCcsXG4gICAgICBnZXRTdGF0ZTogc3RhdGUgPT4gc3RhdGUua2VwbGVyR2wsXG4gICAgICBtaW50OiB0cnVlXG4gICAgfTtcblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBpZCxcbiAgICAgICAgbWludCxcbiAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQsXG4gICAgICAgIGluaXRpYWxVaVN0YXRlXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgLy8gYWRkIGEgbmV3IGVudHJ5IHRvIHJlZHVjZXJcbiAgICAgIHRoaXMucHJvcHMuZGlzcGF0Y2goXG4gICAgICAgIHJlZ2lzdGVyRW50cnkoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG1pbnQsXG4gICAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgICAgbWFwYm94QXBpVXJsLFxuICAgICAgICAgIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0LFxuICAgICAgICAgIGluaXRpYWxVaVN0YXRlXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICAgIC8vIGNoZWNrIGlmIGlkIGhhcyBjaGFuZ2VkLCBpZiB0cnVlLCBjb3B5IHN0YXRlIG92ZXJcbiAgICAgIGlmIChcbiAgICAgICAgbm90TnVsbG9yVW5kZWZpbmVkKHByZXZQcm9wcy5pZCkgJiZcbiAgICAgICAgbm90TnVsbG9yVW5kZWZpbmVkKHRoaXMucHJvcHMuaWQpICYmXG4gICAgICAgIHByZXZQcm9wcy5pZCAhPT0gdGhpcy5wcm9wcy5pZFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMucHJvcHMuZGlzcGF0Y2gocmVuYW1lRW50cnkocHJldlByb3BzLmlkLCB0aGlzLnByb3BzLmlkKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5taW50ICE9PSBmYWxzZSkge1xuICAgICAgICAvLyBkZWxldGUgZW50cnkgaW4gcmVkdWNlclxuICAgICAgICB0aGlzLnByb3BzLmRpc3BhdGNoKGRlbGV0ZUVudHJ5KHRoaXMucHJvcHMuaWQpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRTZWxlY3RvciA9IG1lbW9pemUoKGlkLCBnZXRTdGF0ZSkgPT4gc3RhdGUgPT4ge1xuICAgICAgaWYgKCFnZXRTdGF0ZShzdGF0ZSkpIHtcbiAgICAgICAgLy8gbG9nIGVycm9yXG4gICAgICAgIENvbnNvbGUuZXJyb3IoRVJST1JfTVNHLm5vU3RhdGUpO1xuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGdldFN0YXRlKHN0YXRlKVtpZF07XG4gICAgfSk7XG4gICAgZ2V0RGlzcGF0Y2ggPSBtZW1vaXplKChpZCwgZGlzcGF0Y2gpID0+IGZvcndhcmRUbyhpZCwgZGlzcGF0Y2gpKTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtpZCwgZ2V0U3RhdGUsIGRpc3BhdGNoLCBzdGF0ZX0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qgc2VsZWN0b3IgPSB0aGlzLmdldFNlbGVjdG9yKGlkLCBnZXRTdGF0ZSk7XG5cbiAgICAgIGlmICghc2VsZWN0b3IgfHwgIXNlbGVjdG9yKHN0YXRlKSkge1xuICAgICAgICAvLyBpbnN0YW5jZSBzdGF0ZSBoYXNuJ3QgYmVlbiBtb3VudGVkIHlldFxuICAgICAgICByZXR1cm4gPGRpdiAvPjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEtlcGxlckdsXG4gICAgICAgICAgey4uLnRoaXMucHJvcHN9XG4gICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgIHNlbGVjdG9yPXtzZWxlY3Rvcn1cbiAgICAgICAgICBkaXNwYXRjaD17dGhpcy5nZXREaXNwYXRjaChpZCwgZGlzcGF0Y2gpfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29ubmVjdG9yKENvbnRhaW5lcik7XG59XG5cbmNvbnN0IGFsbERlcGVuZGVuY2llcyA9IGZsYXR0ZW5EZXBzKFtdLCBDb250YWluZXJGYWN0b3J5KTtcblxuLy8gcHJvdmlkZSBhbGwgZGVwZW5kZW5jaWVzIHRvIGFwcEluamVjdG9yXG5leHBvcnQgY29uc3QgYXBwSW5qZWN0b3IgPSBhbGxEZXBlbmRlbmNpZXMucmVkdWNlKFxuICAoaW5qLCBmYWN0b3J5KSA9PiBpbmoucHJvdmlkZShmYWN0b3J5LCBmYWN0b3J5KSxcbiAgaW5qZWN0b3IoKVxuKTtcblxuLy8gSGVscGVyIHRvIGluamVjdCBjdXN0b20gY29tcG9uZW50cyBhbmQgcmV0dXJuIGtlcGxlci5nbCBjb250YWluZXJcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RDb21wb25lbnRzKHJlY2lwZXMgPSBbXSkge1xuICByZXR1cm4gcHJvdmlkZVJlY2lwZXNUb0luamVjdG9yKHJlY2lwZXMsIGFwcEluamVjdG9yKS5nZXQoQ29udGFpbmVyRmFjdG9yeSk7XG59XG5cbmNvbnN0IEluamVjdGVkQ29udGFpbmVyID0gYXBwSW5qZWN0b3IuZ2V0KENvbnRhaW5lckZhY3RvcnkpO1xuXG5leHBvcnQgZGVmYXVsdCBJbmplY3RlZENvbnRhaW5lcjtcbiJdfQ==
package/dist/context.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import React, { ReactNode, ReactElement } from 'react';
2
+ import { Provider } from '@kepler.gl/cloud-providers';
2
3
  declare const KeplerGlContext: React.Context<{
3
4
  selector: (state: any) => any;
4
5
  id: string;
@@ -11,6 +12,16 @@ export declare type FeatureFlagsContextProviderProps = {
11
12
  children: ReactNode;
12
13
  featureFlags?: FeatureFlags;
13
14
  };
15
+ export declare type CloudProviderContextType = {
16
+ provider: Provider | null;
17
+ setProvider: (provider: Provider | null) => void;
18
+ cloudProviders: Provider[];
19
+ };
14
20
  export declare const FeatureFlagsContextProvider: (props: FeatureFlagsContextProviderProps) => ReactElement;
21
+ /**
22
+ * This provides keeps track of the ist cloud providers
23
+ * and the current selected one
24
+ */
25
+ export declare const CloudProviderContext: React.Context<CloudProviderContextType>;
15
26
  export declare const RootContext: React.Context<React.RefObject<HTMLDivElement> | null>;
16
27
  export default KeplerGlContext;
package/dist/context.js CHANGED
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2023 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
1
  "use strict";
22
2
 
23
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
@@ -25,9 +5,13 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
25
5
  Object.defineProperty(exports, "__esModule", {
26
6
  value: true
27
7
  });
28
- exports["default"] = exports.RootContext = exports.FeatureFlagsContextProvider = exports.FeatureFlagsContext = void 0;
8
+ exports["default"] = exports.RootContext = exports.CloudProviderContext = exports.FeatureFlagsContextProvider = exports.FeatureFlagsContext = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
29
11
 
30
- var _react = _interopRequireWildcard(require("react"));var identity = function identity(state) {
12
+ // SPDX-License-Identifier: MIT
13
+ // Copyright contributors to the kepler.gl project
14
+ var identity = function identity(state) {
31
15
  return state;
32
16
  }; // New Context API only supported after 16.3
33
17
 
@@ -45,10 +29,21 @@ var FeatureFlagsContextProvider = function FeatureFlagsContextProvider(props) {
45
29
  value: props.featureFlags || null
46
30
  }, props.children);
47
31
  };
32
+ /**
33
+ * This provides keeps track of the ist cloud providers
34
+ * and the current selected one
35
+ */
36
+
48
37
 
49
38
  exports.FeatureFlagsContextProvider = FeatureFlagsContextProvider;
39
+ var CloudProviderContext = /*#__PURE__*/(0, _react.createContext)({
40
+ provider: null,
41
+ setProvider: function setProvider() {},
42
+ cloudProviders: []
43
+ });
44
+ exports.CloudProviderContext = CloudProviderContext;
50
45
  var RootContext = /*#__PURE__*/(0, _react.createContext)(null);
51
46
  exports.RootContext = RootContext;
52
47
  var _default = KeplerGlContext;
53
48
  exports["default"] = _default;
54
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0LnRzeCJdLCJuYW1lcyI6WyJpZGVudGl0eSIsInN0YXRlIiwiS2VwbGVyR2xDb250ZXh0Iiwic2VsZWN0b3IiLCJpZCIsIkZlYXR1cmVGbGFnc0NvbnRleHQiLCJGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXIiLCJwcm9wcyIsImZlYXR1cmVGbGFncyIsImNoaWxkcmVuIiwiUm9vdENvbnRleHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQW9CQTs7QUFwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQSxJQUFNQSxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFBQyxLQUFLO0FBQUEsU0FBSUEsS0FBSjtBQUFBLENBQXRCLEMsQ0FDQTs7O0FBQ0EsSUFBTUMsZUFBZSxnQkFBRywwQkFBYztBQUNwQ0MsRUFBQUEsUUFBUSxFQUFFSCxRQUQwQjtBQUVwQ0ksRUFBQUEsRUFBRSxFQUFFO0FBRmdDLENBQWQsQ0FBeEIsQyxDQUtBOztBQUNPLElBQU1DLG1CQUFtQixnQkFBRywwQkFBNkIsRUFBN0IsQ0FBNUI7OztBQVNBLElBQU1DLDJCQUEyQixHQUFHLFNBQTlCQSwyQkFBOEIsQ0FDekNDLEtBRHlDO0FBQUEsc0JBR3pDLGdDQUFDLG1CQUFELENBQXFCLFFBQXJCO0FBQThCLElBQUEsS0FBSyxFQUFFQSxLQUFLLENBQUNDLFlBQU4sSUFBc0I7QUFBM0QsS0FDR0QsS0FBSyxDQUFDRSxRQURULENBSHlDO0FBQUEsQ0FBcEM7OztBQVFBLElBQU1DLFdBQVcsZ0JBQUcsMEJBQWdELElBQWhELENBQXBCOztlQUVRUixlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Y3JlYXRlQ29udGV4dCwgUmVmT2JqZWN0LCBSZWFjdE5vZGUsIFJlYWN0RWxlbWVudH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBpZGVudGl0eSA9IHN0YXRlID0+IHN0YXRlO1xuLy8gTmV3IENvbnRleHQgQVBJIG9ubHkgc3VwcG9ydGVkIGFmdGVyIDE2LjNcbmNvbnN0IEtlcGxlckdsQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe1xuICBzZWxlY3RvcjogaWRlbnRpdHksXG4gIGlkOiAnbWFwJ1xufSk7XG5cbi8vIFRPRE86IGJyZWFrZG93biB0aGlzIGZpbGUgaW50byBtdWx0aXBsZSBmaWxlc1xuZXhwb3J0IGNvbnN0IEZlYXR1cmVGbGFnc0NvbnRleHQgPSBjcmVhdGVDb250ZXh0PG9iamVjdCB8IG51bGw+KHt9KTtcblxuZXhwb3J0IHR5cGUgRmVhdHVyZUZsYWdzID0ge1trZXk6IHN0cmluZ106IHN0cmluZyB8IGJvb2xlYW59O1xuXG5leHBvcnQgdHlwZSBGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXJQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZmVhdHVyZUZsYWdzPzogRmVhdHVyZUZsYWdzO1xufTtcblxuZXhwb3J0IGNvbnN0IEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlciA9IChcbiAgcHJvcHM6IEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlclByb3BzXG4pOiBSZWFjdEVsZW1lbnQgPT4gKFxuICA8RmVhdHVyZUZsYWdzQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cHJvcHMuZmVhdHVyZUZsYWdzIHx8IG51bGx9PlxuICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgPC9GZWF0dXJlRmxhZ3NDb250ZXh0LlByb3ZpZGVyPlxuKTtcblxuZXhwb3J0IGNvbnN0IFJvb3RDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+IHwgbnVsbD4obnVsbCk7XG5cbmV4cG9ydCBkZWZhdWx0IEtlcGxlckdsQ29udGV4dDtcbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0LnRzeCJdLCJuYW1lcyI6WyJpZGVudGl0eSIsInN0YXRlIiwiS2VwbGVyR2xDb250ZXh0Iiwic2VsZWN0b3IiLCJpZCIsIkZlYXR1cmVGbGFnc0NvbnRleHQiLCJGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXIiLCJwcm9wcyIsImZlYXR1cmVGbGFncyIsImNoaWxkcmVuIiwiQ2xvdWRQcm92aWRlckNvbnRleHQiLCJwcm92aWRlciIsInNldFByb3ZpZGVyIiwiY2xvdWRQcm92aWRlcnMiLCJSb290Q29udGV4dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0E7O0FBSEE7QUFDQTtBQUtBLElBQU1BLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFKO0FBQUEsQ0FBdEIsQyxDQUNBOzs7QUFDQSxJQUFNQyxlQUFlLGdCQUFHLDBCQUFjO0FBQ3BDQyxFQUFBQSxRQUFRLEVBQUVILFFBRDBCO0FBRXBDSSxFQUFBQSxFQUFFLEVBQUU7QUFGZ0MsQ0FBZCxDQUF4QixDLENBS0E7O0FBQ08sSUFBTUMsbUJBQW1CLGdCQUFHLDBCQUE2QixFQUE3QixDQUE1Qjs7O0FBZUEsSUFBTUMsMkJBQTJCLEdBQUcsU0FBOUJBLDJCQUE4QixDQUN6Q0MsS0FEeUM7QUFBQSxzQkFHekMsZ0NBQUMsbUJBQUQsQ0FBcUIsUUFBckI7QUFBOEIsSUFBQSxLQUFLLEVBQUVBLEtBQUssQ0FBQ0MsWUFBTixJQUFzQjtBQUEzRCxLQUNHRCxLQUFLLENBQUNFLFFBRFQsQ0FIeUM7QUFBQSxDQUFwQztBQVFQO0FBQ0E7QUFDQTtBQUNBOzs7O0FBQ08sSUFBTUMsb0JBQW9CLGdCQUFHLDBCQUF3QztBQUMxRUMsRUFBQUEsUUFBUSxFQUFFLElBRGdFO0FBRTFFQyxFQUFBQSxXQUFXLEVBQUUsdUJBQU0sQ0FBRSxDQUZxRDtBQUcxRUMsRUFBQUEsY0FBYyxFQUFFO0FBSDBELENBQXhDLENBQTdCOztBQU1BLElBQU1DLFdBQVcsZ0JBQUcsMEJBQWdELElBQWhELENBQXBCOztlQUVRWixlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Y3JlYXRlQ29udGV4dCwgUmVmT2JqZWN0LCBSZWFjdE5vZGUsIFJlYWN0RWxlbWVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtQcm92aWRlcn0gZnJvbSAnQGtlcGxlci5nbC9jbG91ZC1wcm92aWRlcnMnO1xuXG5jb25zdCBpZGVudGl0eSA9IHN0YXRlID0+IHN0YXRlO1xuLy8gTmV3IENvbnRleHQgQVBJIG9ubHkgc3VwcG9ydGVkIGFmdGVyIDE2LjNcbmNvbnN0IEtlcGxlckdsQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe1xuICBzZWxlY3RvcjogaWRlbnRpdHksXG4gIGlkOiAnbWFwJ1xufSk7XG5cbi8vIFRPRE86IGJyZWFrZG93biB0aGlzIGZpbGUgaW50byBtdWx0aXBsZSBmaWxlc1xuZXhwb3J0IGNvbnN0IEZlYXR1cmVGbGFnc0NvbnRleHQgPSBjcmVhdGVDb250ZXh0PG9iamVjdCB8IG51bGw+KHt9KTtcblxuZXhwb3J0IHR5cGUgRmVhdHVyZUZsYWdzID0ge1trZXk6IHN0cmluZ106IHN0cmluZyB8IGJvb2xlYW59O1xuXG5leHBvcnQgdHlwZSBGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXJQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZmVhdHVyZUZsYWdzPzogRmVhdHVyZUZsYWdzO1xufTtcblxuZXhwb3J0IHR5cGUgQ2xvdWRQcm92aWRlckNvbnRleHRUeXBlID0ge1xuICBwcm92aWRlcjogUHJvdmlkZXIgfCBudWxsO1xuICBzZXRQcm92aWRlcjogKHByb3ZpZGVyOiBQcm92aWRlciB8IG51bGwpID0+IHZvaWQ7XG4gIGNsb3VkUHJvdmlkZXJzOiBQcm92aWRlcltdO1xufTtcblxuZXhwb3J0IGNvbnN0IEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlciA9IChcbiAgcHJvcHM6IEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlclByb3BzXG4pOiBSZWFjdEVsZW1lbnQgPT4gKFxuICA8RmVhdHVyZUZsYWdzQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cHJvcHMuZmVhdHVyZUZsYWdzIHx8IG51bGx9PlxuICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgPC9GZWF0dXJlRmxhZ3NDb250ZXh0LlByb3ZpZGVyPlxuKTtcblxuLyoqXG4gKiBUaGlzIHByb3ZpZGVzIGtlZXBzIHRyYWNrIG9mIHRoZSBpc3QgY2xvdWQgcHJvdmlkZXJzXG4gKiBhbmQgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgb25lXG4gKi9cbmV4cG9ydCBjb25zdCBDbG91ZFByb3ZpZGVyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8Q2xvdWRQcm92aWRlckNvbnRleHRUeXBlPih7XG4gIHByb3ZpZGVyOiBudWxsLFxuICBzZXRQcm92aWRlcjogKCkgPT4ge30sXG4gIGNsb3VkUHJvdmlkZXJzOiBbXVxufSk7XG5cbmV4cG9ydCBjb25zdCBSb290Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8UmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PiB8IG51bGw+KG51bGwpO1xuXG5leHBvcnQgZGVmYXVsdCBLZXBsZXJHbENvbnRleHQ7XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import React, { PropsWithChildren } from 'react';
2
- import LayerPanelHeaderFactory from './side-panel/layer-panel/layer-panel-header';
3
2
  import { VisState } from '@kepler.gl/schemas';
3
+ import LayerPanelHeaderFactory from './side-panel/layer-panel/layer-panel-header';
4
4
  export declare type DndContextProps = PropsWithChildren<{
5
5
  visState: VisState;
6
6
  }>;
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2023 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
1
  "use strict";
22
2
 
23
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -29,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
29
9
  });
30
10
  exports["default"] = exports.DragItem = void 0;
31
11
 
32
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
33
-
34
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
35
13
 
36
14
  var _react = _interopRequireWildcard(require("react"));
@@ -39,19 +17,19 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
39
17
 
40
18
  var _core = require("@dnd-kit/core");
41
19
 
42
- var _reactRedux = require("react-redux");
20
+ var _console = _interopRequireDefault(require("global/console"));
43
21
 
44
22
  var _constants = require("@kepler.gl/constants");
45
23
 
46
- var _actions = require("@kepler.gl/actions");
24
+ var _reducers = require("@kepler.gl/reducers");
47
25
 
48
26
  var _layerPanelHeader = _interopRequireDefault(require("./side-panel/layer-panel/layer-panel-header"));
49
27
 
50
28
  var _injector = require("./injector");
51
29
 
52
- var _reducers = require("@kepler.gl/reducers");
30
+ var _useDndLayers2 = _interopRequireDefault(require("./hooks/use-dnd-layers"));
53
31
 
54
- var _utils = require("@kepler.gl/utils");
32
+ var _useDndEffects2 = _interopRequireDefault(require("./hooks/use-dnd-effects"));
55
33
 
56
34
  var _templateObject;
57
35
 
@@ -103,132 +81,59 @@ function DndContextFactory(LayerPanelHeader) {
103
81
  effectOrder = visState.effectOrder,
104
82
  splitMaps = visState.splitMaps;
105
83
 
106
- var _useState = (0, _react.useState)(),
107
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
108
- activeLayer = _useState2[0],
109
- setActiveLayer = _useState2[1];
84
+ var _useDndLayers = (0, _useDndLayers2["default"])(layers, layerOrder),
85
+ activeLayer = _useDndLayers.activeLayer,
86
+ onLayerDragStart = _useDndLayers.onDragStart,
87
+ onLayerDragEnd = _useDndLayers.onDragEnd;
110
88
 
111
- var _useState3 = (0, _react.useState)(),
112
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
113
- activeEffect = _useState4[0],
114
- setActiveEffect = _useState4[1];
89
+ var _useDndEffects = (0, _useDndEffects2["default"])(effects, effectOrder),
90
+ onEffectDragStart = _useDndEffects.onDragStart,
91
+ onEffectDragEnd = _useDndEffects.onDragEnd;
115
92
 
116
- var dispatch = (0, _reactRedux.useDispatch)();
117
93
  var isSplit = (0, _react.useMemo)(function () {
118
94
  return (splitMaps === null || splitMaps === void 0 ? void 0 : splitMaps.length) > 1;
119
95
  }, [splitMaps]);
120
96
  var dndModifiers = (0, _react.useMemo)(function () {
121
97
  return isSplit ? _constants.DND_EMPTY_MODIFIERS : _constants.DND_MODIFIERS;
122
98
  }, [isSplit]);
123
- var onLayerDragStart = (0, _react.useCallback)(function (event) {
124
- var active = event.active;
125
- var newActiveLayer = layers.find(function (layer) {
126
- return layer.id === active.id;
127
- });
128
-
129
- if (newActiveLayer) {
130
- setActiveLayer(newActiveLayer);
131
-
132
- if (newActiveLayer !== null && newActiveLayer !== void 0 && newActiveLayer.config.isConfigActive) {
133
- dispatch((0, _actions.layerConfigChange)(newActiveLayer, {
134
- isConfigActive: false
135
- }));
136
- }
137
- }
138
- }, [dispatch, layers]);
139
- var onEffectDragStart = (0, _react.useCallback)(function (event) {
140
- var active = event.active;
141
- var newActiveEffect = effects.find(function (effect) {
142
- return effect.id === active.id;
143
- });
144
-
145
- if (newActiveEffect) {
146
- setActiveEffect(newActiveEffect);
147
-
148
- if (newActiveEffect.config.isConfigActive) {
149
- dispatch((0, _actions.updateEffect)(newActiveEffect.id, {
150
- isConfigActive: false
151
- }));
152
- }
153
- }
154
- }, [dispatch, effects]);
155
99
  var onDragStart = (0, _react.useCallback)(function (event) {
156
- onLayerDragStart(event);
157
- onEffectDragStart(event);
158
- }, [onLayerDragStart, onEffectDragStart]);
159
- var onLayerDragEnd = (0, _react.useCallback)(function (event) {
160
- var _over$data$current, _over$data$current$in, _over$data$current2;
100
+ var _event$active$data, _event$active$data$cu;
161
101
 
162
- var active = event.active,
163
- over = event.over;
164
- var activeLayerId = active.id;
165
- var overType = over === null || over === void 0 ? void 0 : (_over$data$current = over.data.current) === null || _over$data$current === void 0 ? void 0 : _over$data$current.type;
166
-
167
- if (!overType) {
168
- setActiveLayer(undefined);
169
- return;
170
- }
171
-
172
- switch (overType) {
173
- // moving layers into maps
174
- case _constants.DROPPABLE_MAP_CONTAINER_TYPE:
175
- var mapIndex = (_over$data$current$in = (_over$data$current2 = over.data.current) === null || _over$data$current2 === void 0 ? void 0 : _over$data$current2.index) !== null && _over$data$current$in !== void 0 ? _over$data$current$in : 0;
176
- dispatch((0, _actions.toggleLayerForMap)(mapIndex, activeLayerId));
177
- break;
178
- // swaping layers
102
+ var activeType = (_event$active$data = event.active.data) === null || _event$active$data === void 0 ? void 0 : (_event$active$data$cu = _event$active$data.current) === null || _event$active$data$cu === void 0 ? void 0 : _event$active$data$cu.type;
179
103
 
104
+ switch (activeType) {
180
105
  case _constants.SORTABLE_LAYER_TYPE:
181
- var newLayerOrder = (0, _reducers.reorderLayerOrder)(layerOrder, activeLayerId, over.id);
182
- dispatch((0, _actions.reorderLayer)(newLayerOrder));
106
+ onLayerDragStart(event);
183
107
  break;
184
- // moving layers within side panel
185
108
 
186
- case _constants.SORTABLE_SIDE_PANEL_TYPE:
187
- // move layer to the end of the list
188
- dispatch((0, _actions.reorderLayer)((0, _reducers.reorderLayerOrder)(layerOrder, activeLayerId, layerOrder[layerOrder.length - 1])));
109
+ case _constants.SORTABLE_EFFECT_TYPE:
110
+ onEffectDragStart(event);
189
111
  break;
190
112
 
191
113
  default:
192
- break;
193
- }
194
-
195
- setActiveLayer(undefined);
196
- }, [dispatch, layerOrder]);
197
- var onEffectDragEnd = (0, _react.useCallback)(function (event) {
198
- var _over$data$current3;
114
+ _console["default"].log("activeType ".concat(activeType, " unknown"));
199
115
 
200
- var active = event.active,
201
- over = event.over;
202
- var activeEffectId = active.id;
203
- var overType = over === null || over === void 0 ? void 0 : (_over$data$current3 = over.data.current) === null || _over$data$current3 === void 0 ? void 0 : _over$data$current3.type;
204
-
205
- if (!overType) {
206
- setActiveEffect(undefined);
207
- return;
208
116
  }
117
+ }, [onLayerDragStart, onEffectDragStart]);
118
+ var onDragEnd = (0, _react.useCallback)(function (event) {
119
+ var _event$active$data2, _event$active$data2$c;
209
120
 
210
- switch (overType) {
211
- // swaping effects
212
- case _constants.SORTABLE_EFFECT_TYPE:
213
- dispatch((0, _actions.reorderEffect)((0, _utils.reorderEffectOrder)(effectOrder, activeEffectId, over.id)));
121
+ var activeType = (_event$active$data2 = event.active.data) === null || _event$active$data2 === void 0 ? void 0 : (_event$active$data2$c = _event$active$data2.current) === null || _event$active$data2$c === void 0 ? void 0 : _event$active$data2$c.type;
122
+
123
+ switch (activeType) {
124
+ case _constants.SORTABLE_LAYER_TYPE:
125
+ onLayerDragEnd(event);
214
126
  break;
215
- // moving effects within side panel
216
127
 
217
- case _constants.SORTABLE_EFFECT_PANEL_TYPE:
218
- // move effect to the end of the list
219
- dispatch((0, _actions.reorderEffect)((0, _utils.reorderEffectOrder)(effectOrder, activeEffectId, effectOrder[effectOrder.length - 1])));
128
+ case _constants.SORTABLE_EFFECT_TYPE:
129
+ onEffectDragEnd(event);
220
130
  break;
221
131
 
222
132
  default:
223
- break;
224
- }
133
+ _console["default"].log("activeType ".concat(activeType, " unknown"));
225
134
 
226
- setActiveEffect(undefined);
227
- }, [dispatch, effectOrder]);
228
- var onDragEnd = (0, _react.useCallback)(function (event) {
229
- if (activeLayer) onLayerDragEnd(event);
230
- if (activeEffect) onEffectDragEnd(event);
231
- }, [activeLayer, activeEffect, onLayerDragEnd, onEffectDragEnd]);
135
+ }
136
+ }, [onLayerDragEnd, onEffectDragEnd]);
232
137
  return /*#__PURE__*/_react["default"].createElement(_core.DndContext, {
233
138
  onDragStart: onDragStart,
234
139
  onDragEnd: onDragEnd,
@@ -249,4 +154,4 @@ function DndContextFactory(LayerPanelHeader) {
249
154
 
250
155
  var _default = DndContextFactory;
251
156
  exports["default"] = _default;
252
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kbmQtY29udGV4dC50c3giXSwibmFtZXMiOlsiRHJhZ0l0ZW0iLCJzdHlsZWQiLCJkaXYiLCJwcm9wcyIsInRoZW1lIiwidGV4dENvbG9ySGwiLCJyYWRpb0J1dHRvblJhZGl1cyIsIm5vcCIsInVuZGVmaW5lZCIsIkRuZENvbnRleHRGYWN0b3J5IiwiZGVwcyIsIkxheWVyUGFuZWxIZWFkZXJGYWN0b3J5IiwiTGF5ZXJQYW5lbEhlYWRlciIsIkxheWVyUGFuZWxPdmVybGF5IiwibGF5ZXIiLCJkYXRhc2V0cyIsImNvbG9yIiwiY29uZmlnIiwiZGF0YUlkIiwiaWQiLCJsYWJlbCIsInR5cGUiLCJEbmRDb250ZXh0IiwiY2hpbGRyZW4iLCJ2aXNTdGF0ZSIsImxheWVyT3JkZXIiLCJsYXllcnMiLCJlZmZlY3RzIiwiZWZmZWN0T3JkZXIiLCJzcGxpdE1hcHMiLCJhY3RpdmVMYXllciIsInNldEFjdGl2ZUxheWVyIiwiYWN0aXZlRWZmZWN0Iiwic2V0QWN0aXZlRWZmZWN0IiwiZGlzcGF0Y2giLCJpc1NwbGl0IiwibGVuZ3RoIiwiZG5kTW9kaWZpZXJzIiwiRE5EX0VNUFRZX01PRElGSUVSUyIsIkRORF9NT0RJRklFUlMiLCJvbkxheWVyRHJhZ1N0YXJ0IiwiZXZlbnQiLCJhY3RpdmUiLCJuZXdBY3RpdmVMYXllciIsImZpbmQiLCJpc0NvbmZpZ0FjdGl2ZSIsIm9uRWZmZWN0RHJhZ1N0YXJ0IiwibmV3QWN0aXZlRWZmZWN0IiwiZWZmZWN0Iiwib25EcmFnU3RhcnQiLCJvbkxheWVyRHJhZ0VuZCIsIm92ZXIiLCJhY3RpdmVMYXllcklkIiwib3ZlclR5cGUiLCJkYXRhIiwiY3VycmVudCIsIkRST1BQQUJMRV9NQVBfQ09OVEFJTkVSX1RZUEUiLCJtYXBJbmRleCIsImluZGV4IiwiU09SVEFCTEVfTEFZRVJfVFlQRSIsIm5ld0xheWVyT3JkZXIiLCJTT1JUQUJMRV9TSURFX1BBTkVMX1RZUEUiLCJvbkVmZmVjdERyYWdFbmQiLCJhY3RpdmVFZmZlY3RJZCIsIlNPUlRBQkxFX0VGRkVDVF9UWVBFIiwiU09SVEFCTEVfRUZGRUNUX1BBTkVMX1RZUEUiLCJvbkRyYWdFbmQiLCJ2aXNTdGF0ZUxlbnMiLCJzdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBU0E7O0FBT0E7O0FBQ0E7O0FBQ0E7O0FBS0E7Ozs7QUFRTyxJQUFNQSxRQUFRLEdBQUdDLDZCQUFPQyxHQUFWLDZLQUNWLFVBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUMsV0FBaEI7QUFBQSxDQURLLEVBRUYsVUFBQUYsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsS0FBTixDQUFZRSxpQkFBaEI7QUFBQSxDQUZILENBQWQ7Ozs7QUFPUCxJQUFNQyxHQUFHLEdBQUcsU0FBTkEsR0FBTTtBQUFBLFNBQU1DLFNBQU47QUFBQSxDQUFaOztBQUVBQyxpQkFBaUIsQ0FBQ0MsSUFBbEIsR0FBeUIsQ0FBQ0MsNEJBQUQsQ0FBekI7O0FBRUEsU0FBU0YsaUJBQVQsQ0FDRUcsZ0JBREYsRUFFK0I7QUFDN0IsTUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFvQixPQUF1QjtBQUFBLFFBQXJCQyxLQUFxQixRQUFyQkEsS0FBcUI7QUFBQSxRQUFkQyxRQUFjLFFBQWRBLFFBQWM7QUFDL0MsUUFBTUMsS0FBSyxHQUNURixLQUFLLENBQUNHLE1BQU4sQ0FBYUMsTUFBYixJQUF1QkgsUUFBUSxDQUFDRCxLQUFLLENBQUNHLE1BQU4sQ0FBYUMsTUFBZCxDQUEvQixHQUNJSCxRQUFRLENBQUNELEtBQUssQ0FBQ0csTUFBTixDQUFhQyxNQUFkLENBQVIsQ0FBOEJGLEtBRGxDLEdBRUksSUFITjtBQUlBLHdCQUNFLGdDQUFDLGdCQUFEO0FBQ0UsTUFBQSxjQUFjLEVBQUUsS0FEbEI7QUFFRSxNQUFBLE9BQU8sRUFBRUYsS0FBSyxDQUFDSyxFQUZqQjtBQUdFLE1BQUEsU0FBUyxFQUFFLElBSGI7QUFJRSxNQUFBLE9B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QXJKRDs7QUF1SkEsU0FBTyx5QkFBVSxDQUFDb0Qsc0JBQUQsQ0FBVixFQUEwQixVQUFBQyxLQUFLO0FBQUEsV0FBSUEsS0FBSjtBQUFBLEdBQS9CLEVBQTBDOUMsVUFBMUMsQ0FBUDtBQUNEOztlQUVjYixpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSwgUHJvcHNXaXRoQ2hpbGRyZW59IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtEbmRDb250ZXh0IGFzIERuZEtpdENvbnRleHQsIERyYWdPdmVybGF5fSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7dXNlRGlzcGF0Y2h9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7XG4gIERORF9FTVBUWV9NT0RJRklFUlMsXG4gIERORF9NT0RJRklFUlMsXG4gIERST1BQQUJMRV9NQVBfQ09OVEFJTkVSX1RZUEUsXG4gIFNPUlRBQkxFX0xBWUVSX1RZUEUsXG4gIFNPUlRBQkxFX1NJREVfUEFORUxfVFlQRSxcbiAgU09SVEFCTEVfRUZGRUNUX1RZUEUsXG4gIFNPUlRBQkxFX0VGRkVDVF9QQU5FTF9UWVBFXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIGxheWVyQ29uZmlnQ2hhbmdlLFxuICByZW9yZGVyTGF5ZXIsXG4gIHRvZ2dsZUxheWVyRm9yTWFwLFxuICB1cGRhdGVFZmZlY3QsXG4gIHJlb3JkZXJFZmZlY3Rcbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCBMYXllclBhbmVsSGVhZGVyRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItcGFuZWwtaGVhZGVyJztcbmltcG9ydCB7d2l0aFN0YXRlfSBmcm9tICcuL2luamVjdG9yJztcbmltcG9ydCB7dmlzU3RhdGVMZW5zfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCB7cmVvcmRlckxheWVyT3JkZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuaW1wb3J0IHtWaXNTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9zY2hlbWFzJztcbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7RWZmZWN0fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7cmVvcmRlckVmZmVjdE9yZGVyfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgRG5kQ29udGV4dFByb3BzID0gUHJvcHNXaXRoQ2hpbGRyZW48e1xuICB2aXNTdGF0ZTogVmlzU3RhdGU7XG59PjtcblxuZXhwb3J0IHR5cGUgRG5kQ29udGV4dENvbXBvbmVudCA9IFJlYWN0LkZDPERuZENvbnRleHRQcm9wcz47XG5cbmV4cG9ydCBjb25zdCBEcmFnSXRlbSA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5yYWRpb0J1dHRvblJhZGl1c31weDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZTtcbmA7XG5cbmNvbnN0IG5vcCA9ICgpID0+IHVuZGVmaW5lZDtcblxuRG5kQ29udGV4dEZhY3RvcnkuZGVwcyA9IFtMYXllclBhbmVsSGVhZGVyRmFjdG9yeV07XG5cbmZ1bmN0aW9uIERuZENvbnRleHRGYWN0b3J5KFxuICBMYXllclBhbmVsSGVhZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllclBhbmVsSGVhZGVyRmFjdG9yeT5cbik6IFJlYWN0LkZDPFByb3BzV2l0aENoaWxkcmVuPiB7XG4gIGNvbnN0IExheWVyUGFuZWxPdmVybGF5ID0gKHtsYXllciwgZGF0YXNldHN9KSA9PiB7XG4gICAgY29uc3QgY29sb3IgPVxuICAgICAgbGF5ZXIuY29uZmlnLmRhdGFJZCAmJiBkYXRhc2V0c1tsYXllci5jb25maWcuZGF0YUlkXVxuICAgICAgICA/IGRhdGFzZXRzW2xheWVyLmNvbmZpZy5kYXRhSWRdLmNvbG9yXG4gICAgICAgIDogbnVsbDtcbiAgICByZXR1cm4gKFxuICAgICAgPExheWVyUGFuZWxIZWFkZXJcbiAgICAgICAgaXNDb25maWdBY3RpdmU9e2ZhbHNlfVxuICAgICAgICBsYXllcklkPXtsYXllci5pZH1cbiAgICAgICAgaXNWaXNpYmxlPXt0cnVlfVxuICAgICAgICBpc1ZhbGlkPXt0cnVlfVxuICAgICAgICBsYWJlbD17bGF5ZXIuY29uZmlnLmxhYmVsfVxuICAgICAgICBsYWJlbFJDR0NvbG9yVmFsdWVzPXtjb2xvcn1cbiAgICAgICAgb25Ub2dnbGVWaXNpYmlsaXR5PXtub3B9XG4gICAgICAgIG9uUmVzZXRJc1ZhbGlkPXtub3B9XG4gICAgICAgIG9uVXBkYXRlTGF5ZXJMYWJlbD17bm9wfVxuICAgICAgICBvblRvZ2dsZUVuYWJsZUNvbmZpZz17bm9wfVxuICAgICAgICBvbkR1cGxpY2F0ZUxheWVyPXtub3B9XG4gICAgICAgIG9uUmVtb3ZlTGF5ZXI9e25vcH1cbiAgICAgICAgbGF5ZXJUeXBlPXtsYXllci50eXBlfVxuICAgICAgICBhbGxvd0R1cGxpY2F0ZT17ZmFsc2V9XG4gICAgICAgIGlzRHJhZ05Ecm9wRW5hYmxlZD17ZmFsc2V9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgRG5kQ29udGV4dCA9ICh7Y2hpbGRyZW4sIHZpc1N0YXRlfTogRG5kQ29udGV4dFByb3BzKSA9PiB7XG4gICAgY29uc3Qge2RhdGFzZXRzLCBsYXllck9yZGVyLCBsYXllcnMsIGVmZmVjdHMsIGVmZmVjdE9yZGVyLCBzcGxpdE1hcHN9ID0gdmlzU3RhdGU7XG5cbiAgICBjb25zdCBbYWN0aXZlTGF5ZXIsIHNldEFjdGl2ZUxheWVyXTogW1xuICAgICAgTGF5ZXIgfCB1bmRlZmluZWQsXG4gICAgICAobDogTGF5ZXIgfCB1bmRlZmluZWQpID0+IHZvaWRcbiAgICBdID0gdXNlU3RhdGUoKTtcblxuICAgIGNvbnN0IFthY3RpdmVFZmZlY3QsIHNldEFjdGl2ZUVmZmVjdF06IFtcbiAgICAgIEVmZmVjdCB8IHVuZGVmaW5lZCxcbiAgICAgIChsOiBFZmZlY3QgfCB1bmRlZmluZWQpID0+IHZvaWRcbiAgICBdID0gdXNlU3RhdGUoKTtcblxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgICBjb25zdCBpc1NwbGl0ID0gdXNlTWVtbygoKSA9PiBzcGxpdE1hcHM/Lmxlbmd0aCA+IDEsIFtzcGxpdE1hcHNdKTtcbiAgICBjb25zdCBkbmRNb2RpZmllcnMgPSB1c2VNZW1vKCgpID0+IChpc1NwbGl0ID8gRE5EX0VNUFRZX01PRElGSUVSUyA6IERORF9NT0RJRklFUlMpLCBbaXNTcGxpdF0pO1xuXG4gICAgY29uc3Qgb25MYXllckRyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCB7YWN0aXZlfSA9IGV2ZW50O1xuICAgICAgICBjb25zdCBuZXdBY3RpdmVMYXllciA9IGxheWVycy5maW5kKGxheWVyID0+IGxheWVyLmlkID09PSBhY3RpdmUuaWQpO1xuICAgICAgICBpZiAobmV3QWN0aXZlTGF5ZXIpIHtcbiAgICAgICAgICBzZXRBY3RpdmVMYXllcihuZXdBY3RpdmVMYXllcik7XG4gICAgICAgICAgaWYgKG5ld0FjdGl2ZUxheWVyPy5jb25maWcuaXNDb25maWdBY3RpdmUpIHtcbiAgICAgICAgICAgIGRpc3BhdGNoKGxheWVyQ29uZmlnQ2hhbmdlKG5ld0FjdGl2ZUxheWVyLCB7aXNDb25maWdBY3RpdmU6IGZhbHNlfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtkaXNwYXRjaCwgbGF5ZXJzXVxuICAgICk7XG5cbiAgICBjb25zdCBvbkVmZmVjdERyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCB7YWN0aXZlfSA9IGV2ZW50O1xuICAgICAgICBjb25zdCBuZXdBY3RpdmVFZmZlY3QgPSBlZmZlY3RzLmZpbmQoZWZmZWN0ID0+IGVmZmVjdC5pZCA9PT0gYWN0aXZlLmlkKTtcbiAgICAgICAgaWYgKG5ld0FjdGl2ZUVmZmVjdCkge1xuICAgICAgICAgIHNldEFjdGl2ZUVmZmVjdChuZXdBY3RpdmVFZmZlY3QpO1xuICAgICAgICAgIGlmIChuZXdBY3RpdmVFZmZlY3QuY29uZmlnLmlzQ29uZmlnQWN0aXZlKSB7XG4gICAgICAgICAgICBkaXNwYXRjaCh1cGRhdGVFZmZlY3QobmV3QWN0aXZlRWZmZWN0LmlkLCB7aXNDb25maWdBY3RpdmU6IGZhbHNlfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtkaXNwYXRjaCwgZWZmZWN0c11cbiAgICApO1xuXG4gICAgY29uc3Qgb25EcmFnU3RhcnQgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgb25MYXllckRyYWdTdGFydChldmVudCk7XG4gICAgICAgIG9uRWZmZWN0RHJhZ1N0YXJ0KGV2ZW50KTtcbiAgICAgIH0sXG4gICAgICBbb25MYXllckRyYWdTdGFydCwgb25FZmZlY3REcmFnU3RhcnRdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uTGF5ZXJEcmFnRW5kID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIGNvbnN0IHthY3RpdmUsIG92ZXJ9ID0gZXZlbnQ7XG5cbiAgICAgICAgY29uc3Qge2lkOiBhY3RpdmVMYXllcklkfSA9IGFjdGl2ZTtcbiAgICAgICAgY29uc3Qgb3ZlclR5cGUgPSBvdmVyPy5kYXRhLmN1cnJlbnQ/LnR5cGU7XG5cbiAgICAgICAgaWYgKCFvdmVyVHlwZSkge1xuICAgICAgICAgIHNldEFjdGl2ZUxheWVyKHVuZGVmaW5lZCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChvdmVyVHlwZSkge1xuICAgICAgICAgIC8vIG1vdmluZyBsYXllcnMgaW50byBtYXBzXG4gICAgICAgICAgY2FzZSBEUk9QUEFCTEVfTUFQX0NPTlRBSU5FUl9UWVBFOlxuICAgICAgICAgICAgY29uc3QgbWFwSW5kZXggPSBvdmVyLmRhdGEuY3VycmVudD8uaW5kZXggPz8gMDtcbiAgICAgICAgICAgIGRpc3BhdGNoKHRvZ2dsZUxheWVyRm9yTWFwKG1hcEluZGV4LCBhY3RpdmVMYXllcklkKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAvLyBzd2FwaW5nIGxheWVyc1xuICAgICAgICAgIGNhc2UgU09SVEFCTEVfTEFZRVJfVFlQRTpcbiAgICAgICAgICAgIGNvbnN0IG5ld0xheWVyT3JkZXIgPSByZW9yZGVyTGF5ZXJPcmRlcihsYXllck9yZGVyLCBhY3RpdmVMYXllcklkLCBvdmVyLmlkKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKHJlb3JkZXJMYXllcihuZXdMYXllck9yZGVyKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAvLyAgbW92aW5nIGxheWVycyB3aXRoaW4gc2lkZSBwYW5lbFxuICAgICAgICAgIGNhc2UgU09SVEFCTEVfU0lERV9QQU5FTF9UWVBFOlxuICAgICAgICAgICAgLy8gbW92ZSBsYXllciB0byB0aGUgZW5kIG9mIHRoZSBsaXN0XG4gICAgICAgICAgICBkaXNwYXRjaChcbiAgICAgICAgICAgICAgcmVvcmRlckxheWVyKFxuICAgICAgICAgICAgICAgIHJlb3JkZXJMYXllck9yZGVyKGxheWVyT3JkZXIsIGFjdGl2ZUxheWVySWQsIGxheWVyT3JkZXJbbGF5ZXJPcmRlci5sZW5ndGggLSAxXSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHNldEFjdGl2ZUxheWVyKHVuZGVmaW5lZCk7XG4gICAgICB9LFxuICAgICAgW2Rpc3BhdGNoLCBsYXllck9yZGVyXVxuICAgICk7XG5cbiAgICBjb25zdCBvbkVmZmVjdERyYWdFbmQgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgY29uc3Qge2FjdGl2ZSwgb3Zlcn0gPSBldmVudDtcblxuICAgICAgICBjb25zdCB7aWQ6IGFjdGl2ZUVmZmVjdElkfSA9IGFjdGl2ZTtcbiAgICAgICAgY29uc3Qgb3ZlclR5cGUgPSBvdmVyPy5kYXRhLmN1cnJlbnQ/LnR5cGU7XG5cbiAgICAgICAgaWYgKCFvdmVyVHlwZSkge1xuICAgICAgICAgIHNldEFjdGl2ZUVmZmVjdCh1bmRlZmluZWQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAob3ZlclR5cGUpIHtcbiAgICAgICAgICAvLyBzd2FwaW5nIGVmZmVjdHNcbiAgICAgICAgICBjYXNlIFNPUlRBQkxFX0VGRkVDVF9UWVBFOlxuICAgICAgICAgICAgZGlzcGF0Y2gocmVvcmRlckVmZmVjdChyZW9yZGVyRWZmZWN0T3JkZXIoZWZmZWN0T3JkZXIsIGFjdGl2ZUVmZmVjdElkLCBvdmVyLmlkKSkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgLy8gIG1vdmluZyBlZmZlY3RzIHdpdGhpbiBzaWRlIHBhbmVsXG4gICAgICAgICAgY2FzZSBTT1JUQUJMRV9FRkZFQ1RfUEFORUxfVFlQRTpcbiAgICAgICAgICAgIC8vIG1vdmUgZWZmZWN0IHRvIHRoZSBlbmQgb2YgdGhlIGxpc3RcbiAgICAgICAgICAgIGRpc3BhdGNoKFxuICAgICAgICAgICAgICByZW9yZGVyRWZmZWN0KFxuICAgICAgICAgICAgICAgIHJlb3JkZXJFZmZlY3RPcmRlcihlZmZlY3RPcmRlciwgYWN0aXZlRWZmZWN0SWQsIGVmZmVjdE9yZGVyW2VmZmVjdE9yZGVyLmxlbmd0aCAtIDFdKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0QWN0aXZlRWZmZWN0KHVuZGVmaW5lZCk7XG4gICAgICB9LFxuICAgICAgW2Rpc3BhdGNoLCBlZmZlY3RPcmRlcl1cbiAgICApO1xuXG4gICAgY29uc3Qgb25EcmFnRW5kID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIGlmIChhY3RpdmVMYXllcikgb25MYXllckRyYWdFbmQoZXZlbnQpO1xuICAgICAgICBpZiAoYWN0aXZlRWZmZWN0KSBvbkVmZmVjdERyYWdFbmQoZXZlbnQpO1xuICAgICAgfSxcbiAgICAgIFthY3RpdmVMYXllciwgYWN0aXZlRWZmZWN0LCBvbkxheWVyRHJhZ0VuZCwgb25FZmZlY3REcmFnRW5kXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERuZEtpdENvbnRleHQgb25EcmFnU3RhcnQ9e29uRHJhZ1N0YXJ0fSBvbkRyYWdFbmQ9e29uRHJhZ0VuZH0gbW9kaWZpZXJzPXtkbmRNb2RpZmllcnN9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHthY3RpdmVMYXllciA/IChcbiAgICAgICAgICA8RHJhZ092ZXJsYXkgbW9kaWZpZXJzPXtkbmRNb2RpZmllcnN9IGRyb3BBbmltYXRpb249e251bGx9PlxuICAgICAgICAgICAgPERyYWdJdGVtPlxuICAgICAgICAgICAgICA8TGF5ZXJQYW5lbE92ZXJsYXkgbGF5ZXI9e2FjdGl2ZUxheWVyfSBkYXRhc2V0cz17ZGF0YXNldHN9IC8+XG4gICAgICAgICAgICA8L0RyYWdJdGVtPlxuICAgICAgICAgIDwvRHJhZ092ZXJsYXk+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9EbmRLaXRDb250ZXh0PlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIHdpdGhTdGF0ZShbdmlzU3RhdGVMZW5zXSwgc3RhdGUgPT4gc3RhdGUpKERuZENvbnRleHQpIGFzIFJlYWN0LkZDPFByb3BzV2l0aENoaWxkcmVuPjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRG5kQ29udGV4dEZhY3Rvcnk7XG4iXX0=
157
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kbmQtY29udGV4dC50c3giXSwibmFtZXMiOlsiRHJhZ0l0ZW0iLCJzdHlsZWQiLCJkaXYiLCJwcm9wcyIsInRoZW1lIiwidGV4dENvbG9ySGwiLCJyYWRpb0J1dHRvblJhZGl1cyIsIm5vcCIsInVuZGVmaW5lZCIsIkRuZENvbnRleHRGYWN0b3J5IiwiZGVwcyIsIkxheWVyUGFuZWxIZWFkZXJGYWN0b3J5IiwiTGF5ZXJQYW5lbEhlYWRlciIsIkxheWVyUGFuZWxPdmVybGF5IiwibGF5ZXIiLCJkYXRhc2V0cyIsImNvbG9yIiwiY29uZmlnIiwiZGF0YUlkIiwiaWQiLCJsYWJlbCIsInR5cGUiLCJEbmRDb250ZXh0IiwiY2hpbGRyZW4iLCJ2aXNTdGF0ZSIsImxheWVyT3JkZXIiLCJsYXllcnMiLCJlZmZlY3RzIiwiZWZmZWN0T3JkZXIiLCJzcGxpdE1hcHMiLCJhY3RpdmVMYXllciIsIm9uTGF5ZXJEcmFnU3RhcnQiLCJvbkRyYWdTdGFydCIsIm9uTGF5ZXJEcmFnRW5kIiwib25EcmFnRW5kIiwib25FZmZlY3REcmFnU3RhcnQiLCJvbkVmZmVjdERyYWdFbmQiLCJpc1NwbGl0IiwibGVuZ3RoIiwiZG5kTW9kaWZpZXJzIiwiRE5EX0VNUFRZX01PRElGSUVSUyIsIkRORF9NT0RJRklFUlMiLCJldmVudCIsImFjdGl2ZVR5cGUiLCJhY3RpdmUiLCJkYXRhIiwiY3VycmVudCIsIlNPUlRBQkxFX0xBWUVSX1RZUEUiLCJTT1JUQUJMRV9FRkZFQ1RfVFlQRSIsIkNvbnNvbGUiLCJsb2ciLCJ2aXNTdGF0ZUxlbnMiLCJzdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQU1BOztBQUdBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBUU8sSUFBTUEsUUFBUSxHQUFHQyw2QkFBT0MsR0FBViw2S0FDVixVQUFBQyxLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxLQUFOLENBQVlDLFdBQWhCO0FB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REgsRUFFR08sV0FBVyxnQkFDVixnQ0FBQyxpQkFBRDtBQUFhLE1BQUEsU0FBUyxFQUFFUyxZQUF4QjtBQUFzQyxNQUFBLGFBQWEsRUFBRTtBQUFyRCxvQkFDRSxnQ0FBQyxRQUFELHFCQUNFLGdDQUFDLGlCQUFEO0FBQW1CLE1BQUEsS0FBSyxFQUFFVCxXQUExQjtBQUF1QyxNQUFBLFFBQVEsRUFBRWY7QUFBakQsTUFERixDQURGLENBRFUsR0FNUixJQVJOLENBREY7QUFZRCxHQTdERDs7QUErREEsU0FBTyx5QkFBVSxDQUFDb0Msc0JBQUQsQ0FBVixFQUEwQixVQUFBQyxLQUFLO0FBQUEsV0FBSUEsS0FBSjtBQUFBLEdBQS9CLEVBQTBDOUIsVUFBMUMsQ0FBUDtBQUNEOztlQUVjYixpQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCBQcm9wc1dpdGhDaGlsZHJlbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0RuZENvbnRleHQgYXMgRG5kS2l0Q29udGV4dCwgRHJhZ092ZXJsYXl9IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IENvbnNvbGUgZnJvbSAnZ2xvYmFsL2NvbnNvbGUnO1xuXG5pbXBvcnQge1xuICBETkRfRU1QVFlfTU9ESUZJRVJTLFxuICBETkRfTU9ESUZJRVJTLFxuICBTT1JUQUJMRV9MQVlFUl9UWVBFLFxuICBTT1JUQUJMRV9FRkZFQ1RfVFlQRVxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge3Zpc1N0YXRlTGVuc30gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge1Zpc1N0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3NjaGVtYXMnO1xuXG5pbXBvcnQgTGF5ZXJQYW5lbEhlYWRlckZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2xheWVyLXBhbmVsLWhlYWRlcic7XG5pbXBvcnQge3dpdGhTdGF0ZX0gZnJvbSAnLi9pbmplY3Rvcic7XG5pbXBvcnQgdXNlRG5kTGF5ZXJzIGZyb20gJy4vaG9va3MvdXNlLWRuZC1sYXllcnMnO1xuaW1wb3J0IHVzZURuZEVmZmVjdHMgZnJvbSAnLi9ob29rcy91c2UtZG5kLWVmZmVjdHMnO1xuXG5leHBvcnQgdHlwZSBEbmRDb250ZXh0UHJvcHMgPSBQcm9wc1dpdGhDaGlsZHJlbjx7XG4gIHZpc1N0YXRlOiBWaXNTdGF0ZTtcbn0+O1xuXG5leHBvcnQgdHlwZSBEbmRDb250ZXh0Q29tcG9uZW50ID0gUmVhY3QuRkM8RG5kQ29udGV4dFByb3BzPjtcblxuZXhwb3J0IGNvbnN0IERyYWdJdGVtID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnJhZGlvQnV0dG9uUmFkaXVzfXB4O1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZGlzcGxheTogaW5saW5lO1xuYDtcblxuY29uc3Qgbm9wID0gKCkgPT4gdW5kZWZpbmVkO1xuXG5EbmRDb250ZXh0RmFjdG9yeS5kZXBzID0gW0xheWVyUGFuZWxIZWFkZXJGYWN0b3J5XTtcblxuZnVuY3Rpb24gRG5kQ29udGV4dEZhY3RvcnkoXG4gIExheWVyUGFuZWxIZWFkZXI6IFJldHVyblR5cGU8dHlwZW9mIExheWVyUGFuZWxIZWFkZXJGYWN0b3J5PlxuKTogUmVhY3QuRkM8UHJvcHNXaXRoQ2hpbGRyZW4+IHtcbiAgY29uc3QgTGF5ZXJQYW5lbE92ZXJsYXkgPSAoe2xheWVyLCBkYXRhc2V0c30pID0+IHtcbiAgICBjb25zdCBjb2xvciA9XG4gICAgICBsYXllci5jb25maWcuZGF0YUlkICYmIGRhdGFzZXRzW2xheWVyLmNvbmZpZy5kYXRhSWRdXG4gICAgICAgID8gZGF0YXNldHNbbGF5ZXIuY29uZmlnLmRhdGFJZF0uY29sb3JcbiAgICAgICAgOiBudWxsO1xuICAgIHJldHVybiAoXG4gICAgICA8TGF5ZXJQYW5lbEhlYWRlclxuICAgICAgICBpc0NvbmZpZ0FjdGl2ZT17ZmFsc2V9XG4gICAgICAgIGxheWVySWQ9e2xheWVyLmlkfVxuICAgICAgICBpc1Zpc2libGU9e3RydWV9XG4gICAgICAgIGlzVmFsaWQ9e3RydWV9XG4gICAgICAgIGxhYmVsPXtsYXllci5jb25maWcubGFiZWx9XG4gICAgICAgIGxhYmVsUkNHQ29sb3JWYWx1ZXM9e2NvbG9yfVxuICAgICAgICBvblRvZ2dsZVZpc2liaWxpdHk9e25vcH1cbiAgICAgICAgb25SZXNldElzVmFsaWQ9e25vcH1cbiAgICAgICAgb25VcGRhdGVMYXllckxhYmVsPXtub3B9XG4gICAgICAgIG9uVG9nZ2xlRW5hYmxlQ29uZmlnPXtub3B9XG4gICAgICAgIG9uRHVwbGljYXRlTGF5ZXI9e25vcH1cbiAgICAgICAgb25SZW1vdmVMYXllcj17bm9wfVxuICAgICAgICBsYXllclR5cGU9e2xheWVyLnR5cGV9XG4gICAgICAgIGFsbG93RHVwbGljYXRlPXtmYWxzZX1cbiAgICAgICAgaXNEcmFnTkRyb3BFbmFibGVkPXtmYWxzZX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBEbmRDb250ZXh0ID0gKHtjaGlsZHJlbiwgdmlzU3RhdGV9OiBEbmRDb250ZXh0UHJvcHMpID0+IHtcbiAgICBjb25zdCB7ZGF0YXNldHMsIGxheWVyT3JkZXIsIGxheWVycywgZWZmZWN0cywgZWZmZWN0T3JkZXIsIHNwbGl0TWFwc30gPSB2aXNTdGF0ZTtcblxuICAgIGNvbnN0IHthY3RpdmVMYXllciwgb25EcmFnU3RhcnQ6IG9uTGF5ZXJEcmFnU3RhcnQsIG9uRHJhZ0VuZDogb25MYXllckRyYWdFbmR9ID0gdXNlRG5kTGF5ZXJzKFxuICAgICAgbGF5ZXJzLFxuICAgICAgbGF5ZXJPcmRlclxuICAgICk7XG4gICAgY29uc3Qge29uRHJhZ1N0YXJ0OiBvbkVmZmVjdERyYWdTdGFydCwgb25EcmFnRW5kOiBvbkVmZmVjdERyYWdFbmR9ID0gdXNlRG5kRWZmZWN0cyhcbiAgICAgIGVmZmVjdHMsXG4gICAgICBlZmZlY3RPcmRlclxuICAgICk7XG5cbiAgICBjb25zdCBpc1NwbGl0ID0gdXNlTWVtbygoKSA9PiBzcGxpdE1hcHM/Lmxlbmd0aCA+IDEsIFtzcGxpdE1hcHNdKTtcbiAgICBjb25zdCBkbmRNb2RpZmllcnMgPSB1c2VNZW1vKCgpID0+IChpc1NwbGl0ID8gRE5EX0VNUFRZX01PRElGSUVSUyA6IERORF9NT0RJRklFUlMpLCBbaXNTcGxpdF0pO1xuXG4gICAgY29uc3Qgb25EcmFnU3RhcnQgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgY29uc3QgYWN0aXZlVHlwZSA9IGV2ZW50LmFjdGl2ZS5kYXRhPy5jdXJyZW50Py50eXBlO1xuICAgICAgICBzd2l0Y2ggKGFjdGl2ZVR5cGUpIHtcbiAgICAgICAgICBjYXNlIFNPUlRBQkxFX0xBWUVSX1RZUEU6XG4gICAgICAgICAgICBvbkxheWVyRHJhZ1N0YXJ0KGV2ZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU09SVEFCTEVfRUZGRUNUX1RZUEU6XG4gICAgICAgICAgICBvbkVmZmVjdERyYWdTdGFydChldmVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgQ29uc29sZS5sb2coYGFjdGl2ZVR5cGUgJHthY3RpdmVUeXBlfSB1bmtub3duYCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbb25MYXllckRyYWdTdGFydCwgb25FZmZlY3REcmFnU3RhcnRdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCBhY3RpdmVUeXBlID0gZXZlbnQuYWN0aXZlLmRhdGE/LmN1cnJlbnQ/LnR5cGU7XG4gICAgICAgIHN3aXRjaCAoYWN0aXZlVHlwZSkge1xuICAgICAgICAgIGNhc2UgU09SVEFCTEVfTEFZRVJfVFlQRTpcbiAgICAgICAgICAgIG9uTGF5ZXJEcmFnRW5kKGV2ZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU09SVEFCTEVfRUZGRUNUX1RZUEU6XG4gICAgICAgICAgICBvbkVmZmVjdERyYWdFbmQoZXZlbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIENvbnNvbGUubG9nKGBhY3RpdmVUeXBlICR7YWN0aXZlVHlwZX0gdW5rbm93bmApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW29uTGF5ZXJEcmFnRW5kLCBvbkVmZmVjdERyYWdFbmRdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RG5kS2l0Q29udGV4dCBvbkRyYWdTdGFydD17b25EcmFnU3RhcnR9IG9uRHJhZ0VuZD17b25EcmFnRW5kfSBtb2RpZmllcnM9e2RuZE1vZGlmaWVyc30+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2FjdGl2ZUxheWVyID8gKFxuICAgICAgICAgIDxEcmFnT3ZlcmxheSBtb2RpZmllcnM9e2RuZE1vZGlmaWVyc30gZHJvcEFuaW1hdGlvbj17bnVsbH0+XG4gICAgICAgICAgICA8RHJhZ0l0ZW0+XG4gICAgICAgICAgICAgIDxMYXllclBhbmVsT3ZlcmxheSBsYXllcj17YWN0aXZlTGF5ZXJ9IGRhdGFzZXRzPXtkYXRhc2V0c30gLz5cbiAgICAgICAgICAgIDwvRHJhZ0l0ZW0+XG4gICAgICAgICAgPC9EcmFnT3ZlcmxheT5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L0RuZEtpdENvbnRleHQ+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gd2l0aFN0YXRlKFt2aXNTdGF0ZUxlbnNdLCBzdGF0ZSA9PiBzdGF0ZSkoRG5kQ29udGV4dCkgYXMgUmVhY3QuRkM8UHJvcHNXaXRoQ2hpbGRyZW4+O1xufVxuXG5leHBvcnQgZGVmYXVsdCBEbmRDb250ZXh0RmFjdG9yeTtcbiJdfQ==
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2023 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
1
  "use strict";
22
2
 
23
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -270,4 +250,4 @@ function EditorFactory(FeatureActionPanel) {
270
250
  Editor.displayName = 'Editor';
271
251
  return Editor;
272
252
  }
273
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lZGl0b3IvZWRpdG9yLnRzeCJdLCJuYW1lcyI6WyJERUNLR0xfUkVOREVSX0xBWUVSIiwiU3R5bGVkV3JhcHBlciIsInN0eWxlZCIsImRpdiIsImVkaXRvckxheWVyRmlsdGVyIiwibGF5ZXIiLCJFRElUT1JfQVZBSUxBQkxFX0xBWUVSUyIsImluY2x1ZGVzIiwidHlwZSIsIkVkaXRvckZhY3RvcnkiLCJkZXBzIiwiRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeSIsIkZlYXR1cmVBY3Rpb25QYW5lbCIsIlBvcnRhbEVkaXRvciIsInZpc2libGVQYW5lbCIsImNsYXNzTmFtZSIsInN0eWxlIiwic2VsZWN0ZWRGZWF0dXJlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJjdXJyZW50RmlsdGVyIiwib25DbG9zZSIsIm9uRGVsZXRlRmVhdHVyZSIsIm9uVG9nZ2xlTGF5ZXIiLCJwb3NpdGlvbiIsImNvbnRleHQiLCJjdXJyZW50IiwiZG9jdW1lbnQiLCJib2R5IiwiRWRpdG9yVW5tZW1vaXplZCIsInByb3BzIiwiZmlsdGVycyIsImZpbHRlclNlbGVjdG9yIiwic2VsZWN0ZWRGZWF0dXJlSWRTZWxlY3RvciIsInNlbGVjdGVkRmVhdHVyZUlkIiwiZmluZCIsImYiLCJ2YWx1ZSIsImlkIiwibGF5ZXJTZWxlY3RvciIsImZpbHRlciIsImNvbmZpZyIsImlzVmlzaWJsZSIsIkdFT0NPREVSX0xBWUVSX0lEIiwiZWRpdG9yRmVhdHVyZVNlbGVjdG9yIiwiZWRpdG9yRmVhdHVyZXMiLCJGSUxURVJfVFlQRVMiLCJwb2x5Z29uIiwibWFwIiwiY29uY2F0IiwiYWN0aXZlRWxlbWVudCIsImV2ZW50IiwiaXNJbkZvY3VzIiwia2V5Q29kZSIsIktleUV2ZW50IiwiRE9NX1ZLX0RFTEVURSIsIkRPTV9WS19CQUNLX1NQQUNFIiwiX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlIiwiRE9NX1ZLX0VTQ0FQRSIsIkVkaXRvckxheWVyVXRpbHMiLCJpc0RyYXdpbmdBY3RpdmUiLCJlZGl0b3IiLCJtb2RlIiwib25TZXRFZGl0b3JNb2RlIiwiRURJVE9SX01PREVTIiwiRURJVCIsIm9uU2VsZWN0Iiwib25Ub2dnbGVQb2x5Z29uRmlsdGVyIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9vbktleVByZXNzZWQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaW5kZXgiLCJzZWxlY3Rpb25Db250ZXh0IiwiY3VycmVudEZpbHRlclNlbGVjdG9yIiwiYXZhaWxhYmxlTGF5ZXJzIiwiYXZhaWxhYmxlTGF5ZXJzU2VsZWN0b3IiLCJyaWdodENsaWNrIiwibWFwSW5kZXgiLCJCb29sZWFuIiwiX2Nsb3NlRmVhdHVyZUFjdGlvbiIsIl90b2dnbGVQb2x5Z29uRmlsdGVyIiwiQ29tcG9uZW50IiwiRWRpdG9yIiwiUmVhY3QiLCJtZW1vIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFLQTs7Ozs7Ozs7QUFFQSxJQUFNQSxtQkFBbUIsR0FBRyxnQ0FBNUI7O0FBRUEsSUFBTUMsYUFBYSxHQUFHQyw2QkFBT0MsR0FBViwrR0FBbkI7O0FBSUEsSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFvQixDQUFDQyxLQUFEO0FBQUEsU0FBa0JDLG1DQUF3QkMsUUFBeEIsQ0FBaUNGLEtBQUssQ0FBQ0csSUFBdkMsQ0FBbEI7QUFBQSxDQUExQjs7QUFFQUMsYUFBYSxDQUFDQyxJQUFkLEdBQXFCLENBQUNDLDhCQUFELENBQXJCOztBQXFCZSxTQUFTRixhQUFULENBQ2JHLGtCQURhLEVBRXNCO0FBQ25DLE1BQU1DLFlBQXlDLEdBQUcsU0FBNUNBLFlBQTRDLE9BWTVDO0FBQUEsUUFYSkMsWUFXSSxRQVhKQSxZQVdJO0FBQUEsUUFWSkMsU0FVSSxRQVZKQSxTQVVJO0FBQUEsUUFUSkMsS0FTSSxRQVRKQSxLQVNJO0FBQUEsUUFS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QUFJLEVBTnREO0FBQUEsWUFNQUksVUFOQSxTQU1BQSxVQU5BO0FBQUEsWUFNWXJELFFBTlosU0FNWUEsUUFOWjtBQUFBLFlBTXNCc0QsUUFOdEIsU0FNc0JBLFFBTnRCOztBQVFQLDRCQUNFLGdDQUFDLFlBQUQ7QUFDRSxVQUFBLGVBQWUsRUFBRTdELGVBRG5CO0FBRUUsVUFBQSxZQUFZLEVBQUU4RCxPQUFPLENBQUNGLFVBQUQsQ0FBUCxJQUF1QjVELGVBQXZCLElBQTBDdUQsS0FBSyxLQUFLTSxRQUZwRTtBQUdFLFVBQUEsUUFBUSxFQUFFNUQsUUFIWjtBQUlFLFVBQUEsTUFBTSxFQUFFeUQsZUFKVjtBQUtFLFVBQUEsYUFBYSxFQUFFdkQsYUFMakI7QUFNRSxVQUFBLE9BQU8sRUFBRSxLQUFLNEQsbUJBTmhCO0FBT0UsVUFBQSxlQUFlLEVBQUUsS0FBS3ZCLHdCQVB4QjtBQVFFLFVBQUEsYUFBYSxFQUFFLEtBQUt3QixvQkFSdEI7QUFTRSxVQUFBLFFBQVEsRUFBRXpELFFBQVEsSUFBSSxJQVR4QjtBQVVFLFVBQUEsU0FBUyxFQUFFVCxTQVZiO0FBV0UsVUFBQSxLQUFLLEVBQUVDO0FBWFQsVUFERjtBQWVEO0FBdEpnQztBQUFBO0FBQUEsSUF3Q0prRSxnQkF4Q0k7O0FBQUEsbUNBd0M3QnJELGdCQXhDNkIsa0JBeUNYLEVBekNXO0FBQUEsbUNBd0M3QkEsZ0JBeEM2QixpQkEyQ1osUUEzQ1k7O0FBeUpuQyxNQUFNc0QsTUFBTSxnQkFBSUMsa0JBQU1DLElBQU4sQ0FBV3hELGdCQUFYLENBQWhCOztBQUNBc0QsRUFBQUEsTUFBTSxDQUFDRyxXQUFQLEdBQXFCLFFBQXJCO0FBQ0EsU0FBT0gsTUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBDU1NQcm9wZXJ0aWVzLCBLZXlib2FyZEV2ZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2NyZWF0ZVBvcnRhbH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2guZ2V0JztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCBGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5LCB7RmVhdHVyZUFjdGlvblBhbmVsUHJvcHN9IGZyb20gJy4vZmVhdHVyZS1hY3Rpb24tcGFuZWwnO1xuaW1wb3J0IHtcbiAgRURJVE9SX0FWQUlMQUJMRV9MQVlFUlMsXG4gIEZJTFRFUl9UWVBFUyxcbiAgRURJVE9SX01PREVTLFxuICBHRU9DT0RFUl9MQVlFUl9JRCxcbiAgS2V5RXZlbnRcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtMYXllciwgRWRpdG9yTGF5ZXJVdGlsc30gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtGaWx0ZXIsIEZlYXR1cmVTZWxlY3Rpb25Db250ZXh0LCBGZWF0dXJlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7RmVhdHVyZU9mLCBQb2x5Z29ufSBmcm9tICdAbmVidWxhLmdsL2VkaXQtbW9kZXMnO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5cbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJy4uL2NvbnRleHQnO1xuXG5jb25zdCBERUNLR0xfUkVOREVSX0xBWUVSID0gJ2RlZmF1bHQtZGVja2dsLW92ZXJsYXktd3JhcHBlcic7XG5cbmNvbnN0IFN0eWxlZFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG5jb25zdCBlZGl0b3JMYXllckZpbHRlciA9IChsYXllcjogTGF5ZXIpID0+IEVESVRPUl9BVkFJTEFCTEVfTEFZRVJTLmluY2x1ZGVzKGxheWVyLnR5cGUhKTtcblxuRWRpdG9yRmFjdG9yeS5kZXBzID0gW0ZlYXR1cmVBY3Rpb25QYW5lbEZhY3RvcnldO1xuXG5pbnRlcmZhY2UgRWRpdG9yUHJvcHMge1xuICBmaWx0ZXJzOiBGaWx0ZXJbXTtcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIGVkaXRvcjoge3NlbGVjdGVkRmVhdHVyZTogRmVhdHVyZTsgbW9kZTogc3RyaW5nOyBzZWxlY3Rpb25Db250ZXh0PzogRmVhdHVyZVNlbGVjdGlvbkNvbnRleHR9O1xuICBpbmRleDogbnVtYmVyO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHN0eWxlOiBDU1NQcm9wZXJ0aWVzO1xuICBvblNlbGVjdDogKGY6IEZlYXR1cmUgfCBudWxsKSA9PiBhbnk7XG4gIG9uU2V0RWRpdG9yTW9kZTogKG06IGFueSkgPT4gdm9pZDtcbiAgb25EZWxldGVGZWF0dXJlOiAoZjogRmVhdHVyZSkgPT4gYW55O1xuICBvblRvZ2dsZVBvbHlnb25GaWx0ZXI6IChsOiBMYXllciwgZjogRmVhdHVyZSkgPT4gYW55O1xufVxuXG5leHBvcnQgdHlwZSBQb3J0YWxFZGl0b3JQcm9wcyA9IEZlYXR1cmVBY3Rpb25QYW5lbFByb3BzICYge1xuICB2aXNpYmxlUGFuZWw6IGJvb2xlYW47XG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEVkaXRvckZhY3RvcnkoXG4gIEZlYXR1cmVBY3Rpb25QYW5lbDogUmVhY3QuRkM8RmVhdHVyZUFjdGlvblBhbmVsUHJvcHM+XG4pOiBSZWFjdC5Db21wb25lbnRDbGFzczxFZGl0b3JQcm9wcz4ge1xuICBjb25zdCBQb3J0YWxFZGl0b3I6IFJlYWN0LkZDPFBvcnRhbEVkaXRvclByb3BzPiA9ICh7XG4gICAgdmlzaWJsZVBhbmVsLFxuICAgIGNsYXNzTmFtZSxcbiAgICBzdHlsZSxcbiAgICBzZWxlY3RlZEZlYXR1cmUsXG4gICAgZGF0YXNldHMsXG4gICAgbGF5ZXJzLFxuICAgIGN1cnJlbnRGaWx0ZXIsXG4gICAgb25DbG9zZSxcbiAgICBvbkRlbGV0ZUZlYXR1cmUsXG4gICAgb25Ub2dnbGVMYXllcixcbiAgICBwb3NpdGlvblxuICB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxSb290Q29udGV4dC5Db25zdW1lcj5cbiAgICAgICAge2NvbnRleHQgPT4gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7Y3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgICA8U3R5bGVkV3JhcHBlciBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2VkaXRvcicsIGNsYXNzTmFtZSl9IHN0eWxlPXtzdHlsZX0+XG4gICAgICAgICAgICAgICAge3Zpc2libGVQYW5lbCA/IChcbiAgICAgICAgICAgICAgICAgIDxGZWF0dXJlQWN0aW9uUGFuZWxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRGZWF0dXJlPXtzZWxlY3RlZEZlYXR1cmUgYXMgRmVhdHVyZU9mPFBvbHlnb24+fVxuICAgICAgICAgICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICAgICAgICAgIGxheWVycz17bGF5ZXJzfVxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmlsdGVyPXtjdXJyZW50RmlsdGVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNsb3NlPXtvbkNsb3NlfVxuICAgICAgICAgICAgICAgICAgICBvbkRlbGV0ZUZlYXR1cmU9e29uRGVsZXRlRmVhdHVyZX1cbiAgICAgICAgICAgICAgICAgICAgb25Ub2dnbGVMYXllcj17b25Ub2dnbGVMYXllcn1cbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249e3Bvc2l0aW9uIHx8IG51bGx9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0eWxlZFdyYXBwZXI+LFxuICAgICAgICAgICAgICBjb250ZXh0Py5jdXJyZW50ID8/IGRvY3VtZW50LmJvZHlcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L1Jvb3RDb250ZXh0LkNvbnN1bWVyPlxuICAgICk7XG4gIH07XG4gIGNsYXNzIEVkaXRvclVubWVtb2l6ZWQgZXh0ZW5kcyBDb21wb25lbnQ8RWRpdG9yUHJvcHM+IHtcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge307XG5cbiAgICBzdGF0aWMgZGlzcGxheU5hbWUgPSAnRWRpdG9yJztcblxuICAgIHN0YXRlID0ge307XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fb25LZXlQcmVzc2VkKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fb25LZXlQcmVzc2VkKTtcbiAgICB9XG5cbiAgICBsYXllclNlbGVjdG9yID0gKHByb3BzOiBFZGl0b3JQcm9wcykgPT4gcHJvcHMubGF5ZXJzO1xuICAgIGZpbHRlclNlbGVjdG9yID0gKHByb3BzOiBFZGl0b3JQcm9wcykgPT4gcHJvcHMuZmlsdGVycztcbiAgICBzZWxlY3RlZEZlYXR1cmVJZFNlbGVjdG9yID0gKHByb3BzOiBFZGl0b3JQcm9wcykgPT5cbiAgICAgIGdldChwcm9wcywgWydlZGl0b3InLCAnc2VsZWN0ZWRGZWF0dXJlJywgJ2lkJ10pO1xuICAgIGVkaXRvckZlYXR1cmVTZWxlY3RvciA9IChwcm9wczogRWRpdG9yUHJvcHMpID0+IGdldChwcm9wcywgWydlZGl0b3InLCAnZmVhdHVyZXMnXSk7XG5cbiAgICBjdXJyZW50RmlsdGVyU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMuZmlsdGVyU2VsZWN0b3IsXG4gICAgICB0aGlzLnNlbGVjdGVkRmVhdHVyZUlkU2VsZWN0b3IsXG4gICAgICAoZmlsdGVycywgc2VsZWN0ZWRGZWF0dXJlSWQpID0+IGZpbHRlcnMuZmluZChmID0+IGYudmFsdWUgJiYgZi52YWx1ZS5pZCA9PT0gc2VsZWN0ZWRGZWF0dXJlSWQpXG4gICAgKTtcblxuICAgIGF2YWlsYWJsZUxheWVyc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IodGhpcy5sYXllclNlbGVjdG9yLCBsYXllcnMgPT5cbiAgICAgIGxheWVyc1xuICAgICAgICAuZmlsdGVyKGVkaXRvckxheWVyRmlsdGVyKVxuICAgICAgICAuZmlsdGVyKGxheWVyID0+IGxheWVyLmNvbmZpZz8uaXNWaXNpYmxlICYmIGxheWVyLmlkICE9PSBHRU9DT0RFUl9MQVlFUl9JRClcbiAgICApO1xuXG4gICAgYWxsRmVhdHVyZXNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5maWx0ZXJTZWxlY3RvcixcbiAgICAgIHRoaXMuZWRpdG9yRmVhdHVyZVNlbGVjdG9yLFxuICAgICAgKGZpbHRlcnMsIGVkaXRvckZlYXR1cmVzKSA9PlxuICAgICAgICBmaWx0ZXJzXG4gICAgICAgICAgLmZpbHRlcihmID0+IGYudHlwZSA9PT0gRklMVEVSX1RZUEVTLnBvbHlnb24pXG4gICAgICAgICAgLm1hcChmID0+IGYudmFsdWUpXG4gICAgICAgICAgLmNvbmNhdChlZGl0b3JGZWF0dXJlcylcbiAgICApO1xuXG4gICAgaXNJbkZvY3VzID0gKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uaWQgPT09IERFQ0tHTF9SRU5ERVJfTEFZRVI7XG5cbiAgICBfb25LZXlQcmVzc2VkID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0luRm9jdXMoKSkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19ERUxFVEU6XG4gICAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfQkFDS19TUEFDRTpcbiAgICAgICAgICAgIHRoaXMuX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19FU0NBUEU6XG4gICAgICAgICAgICAvLyByZXNldCBhY3RpdmUgZHJhd2luZ1xuICAgICAgICAgICAgaWYgKEVkaXRvckxheWVyVXRpbHMuaXNEcmF3aW5nQWN0aXZlKHRydWUsIHRoaXMucHJvcHMuZWRpdG9yLm1vZGUpKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJvcHMub25TZXRFZGl0b3JNb2RlKEVESVRPUl9NT0RFUy5FRElUKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdChudWxsKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBfb25EZWxldGVTZWxlY3RlZEZlYXR1cmUgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7ZWRpdG9yfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7c2VsZWN0ZWRGZWF0dXJlfSA9IGVkaXRvcjtcbiAgICAgIGlmIChzZWxlY3RlZEZlYXR1cmUpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkRlbGV0ZUZlYXR1cmUoc2VsZWN0ZWRGZWF0dXJlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX2Nsb3NlRmVhdHVyZUFjdGlvbiA9ICgpID0+IHtcbiAgICAgIC8vIHJlc2V0IHNlbGVjdGlvbiBjb250ZXh0XG4gICAgICBjb25zdCB7c2VsZWN0ZWRGZWF0dXJlfSA9IHRoaXMucHJvcHMuZWRpdG9yO1xuICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdChzZWxlY3RlZEZlYXR1cmUpO1xuICAgIH07XG5cbiAgICBfdG9nZ2xlUG9seWdvbkZpbHRlciA9IChsYXllcjogTGF5ZXIpID0+IHtcbiAgICAgIGNvbnN0IHtzZWxlY3RlZEZlYXR1cmV9ID0gdGhpcy5wcm9wcy5lZGl0b3I7XG4gICAgICBpZiAoc2VsZWN0ZWRGZWF0dXJlKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25Ub2dnbGVQb2x5Z29uRmlsdGVyKGxheWVyLCBzZWxlY3RlZEZlYXR1cmUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7Y2xhc3NOYW1lLCBkYXRhc2V0cywgZWRpdG9yLCBzdHlsZSwgaW5kZXh9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtzZWxlY3RlZEZlYXR1cmUsIHNlbGVjdGlvbkNvbnRleHR9ID0gZWRpdG9yO1xuICAgICAgY29uc3QgY3VycmVudEZpbHRlciA9IHRoaXMuY3VycmVudEZpbHRlclNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgYXZhaWxhYmxlTGF5ZXJzID0gdGhpcy5hdmFpbGFibGVMYXllcnNTZWxlY3Rvcih0aGlzLnByb3BzKTtcblxuICAgICAgY29uc3Qge3JpZ2h0Q2xpY2ssIHBvc2l0aW9uLCBtYXBJbmRleH0gPSBzZWxlY3Rpb25Db250ZXh0IHx8IHt9O1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8UG9ydGFsRWRpdG9yXG4gICAgICAgICAgc2VsZWN0ZWRGZWF0dXJlPXtzZWxlY3RlZEZlYXR1cmUgYXMgRmVhdHVyZU9mPFBvbHlnb24+fVxuICAgICAgICAgIHZpc2libGVQYW5lbD17Qm9vbGVhbihyaWdodENsaWNrKSAmJiBzZWxlY3RlZEZlYXR1cmUgJiYgaW5kZXggPT09IG1hcEluZGV4fVxuICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICBsYXllcnM9e2F2YWlsYWJsZUxheWVyc31cbiAgICAgICAgICBjdXJyZW50RmlsdGVyPXtjdXJyZW50RmlsdGVyfVxuICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuX2Nsb3NlRmVhdHVyZUFjdGlvbn1cbiAgICAgICAgICBvbkRlbGV0ZUZlYXR1cmU9e3RoaXMuX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlfVxuICAgICAgICAgIG9uVG9nZ2xlTGF5ZXI9e3RoaXMuX3RvZ2dsZVBvbHlnb25GaWx0ZXJ9XG4gICAgICAgICAgcG9zaXRpb249e3Bvc2l0aW9uIHx8IG51bGx9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBFZGl0b3IgPSAoUmVhY3QubWVtbyhFZGl0b3JVbm1lbW9pemVkKSBhcyB1bmtub3duKSBhcyB0eXBlb2YgRWRpdG9yVW5tZW1vaXplZDtcbiAgRWRpdG9yLmRpc3BsYXlOYW1lID0gJ0VkaXRvcic7XG4gIHJldHVybiBFZGl0b3I7XG59XG4iXX0=
253
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lZGl0b3IvZWRpdG9yLnRzeCJdLCJuYW1lcyI6WyJERUNLR0xfUkVOREVSX0xBWUVSIiwiU3R5bGVkV3JhcHBlciIsInN0eWxlZCIsImRpdiIsImVkaXRvckxheWVyRmlsdGVyIiwibGF5ZXIiLCJFRElUT1JfQVZBSUxBQkxFX0xBWUVSUyIsImluY2x1ZGVzIiwidHlwZSIsIkVkaXRvckZhY3RvcnkiLCJkZXBzIiwiRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeSIsIkZlYXR1cmVBY3Rpb25QYW5lbCIsIlBvcnRhbEVkaXRvciIsInZpc2libGVQYW5lbCIsImNsYXNzTmFtZSIsInN0eWxlIiwic2VsZWN0ZWRGZWF0dXJlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJjdXJyZW50RmlsdGVyIiwib25DbG9zZSIsIm9uRGVsZXRlRmVhdHVyZSIsIm9uVG9nZ2xlTGF5ZXIiLCJwb3NpdGlvbiIsImNvbnRleHQiLCJjdXJyZW50IiwiZG9jdW1lbnQiLCJib2R5IiwiRWRpdG9yVW5tZW1vaXplZCIsInByb3BzIiwiZmlsdGVycyIsImZpbHRlclNlbGVjdG9yIiwic2VsZWN0ZWRGZWF0dXJlSWRTZWxlY3RvciIsInNlbGVjdGVkRmVhdHVyZUlkIiwiZmluZCIsImYiLCJ2YWx1ZSIsImlkIiwibGF5ZXJTZWxlY3RvciIsImZpbHRlciIsImNvbmZpZyIsImlzVmlzaWJsZSIsIkdFT0NPREVSX0xBWUVSX0lEIiwiZWRpdG9yRmVhdHVyZVNlbGVjdG9yIiwiZWRpdG9yRmVhdHVyZXMiLCJGSUxURVJfVFlQRVMiLCJwb2x5Z29uIiwibWFwIiwiY29uY2F0IiwiYWN0aXZlRWxlbWVudCIsImV2ZW50IiwiaXNJbkZvY3VzIiwia2V5Q29kZSIsIktleUV2ZW50IiwiRE9NX1ZLX0RFTEVURSIsIkRPTV9WS19CQUNLX1NQQUNFIiwiX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlIiwiRE9NX1ZLX0VTQ0FQRSIsIkVkaXRvckxheWVyVXRpbHMiLCJpc0RyYXdpbmdBY3RpdmUiLCJlZGl0b3IiLCJtb2RlIiwib25TZXRFZGl0b3JNb2RlIiwiRURJVE9SX01PREVTIiwiRURJVCIsIm9uU2VsZWN0Iiwib25Ub2dnbGVQb2x5Z29uRmlsdGVyIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9vbktleVByZXNzZWQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaW5kZXgiLCJzZWxlY3Rpb25Db250ZXh0IiwiY3VycmVudEZpbHRlclNlbGVjdG9yIiwiYXZhaWxhYmxlTGF5ZXJzIiwiYXZhaWxhYmxlTGF5ZXJzU2VsZWN0b3IiLCJyaWdodENsaWNrIiwibWFwSW5kZXgiLCJCb29sZWFuIiwiX2Nsb3NlRmVhdHVyZUFjdGlvbiIsIl90b2dnbGVQb2x5Z29uRmlsdGVyIiwiQ29tcG9uZW50IiwiRWRpdG9yIiwiUmVhY3QiLCJtZW1vIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQU9BOztBQUtBOzs7Ozs7OztBQUVBLElBQU1BLG1CQUFtQixHQUFHLGdDQUE1Qjs7QUFFQSxJQUFNQyxhQUFhLEdBQUdDLDZCQUFPQyxHQUFWLCtHQUFuQjs7QUFJQSxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLENBQUNDLEtBQUQ7QUFBQSxTQUFrQkMsbUNBQXdCQyxRQUF4QixDQUFpQ0YsS0FBSyxDQUFDRyxJQUF2QyxDQUFsQjtBQUFBLENBQTFCOztBQUVBQyxhQUFhLENBQUNDLElBQWQsR0FBcUIsQ0FBQ0MsOEJBQUQsQ0FBckI7O0FBcUJlLFNBQVNGLGFBQVQsQ0FDYkcsa0JBRGEsRUFFc0I7QUFDbkMsTUFBTUMsWUFBeUMsR0FBRyxTQUE1Q0EsWUFBNEMsT0FZNUM7QUFBQSxRQVhKQyxZQVdJLFFBWEpBLFlBV0k7QUFBQSxRQVZKQyxTQVVJLFFBVkpBLFNBVUk7QUFBQSxRQVRKQyxLQVNJLFFBVEpBLEtBU0k7QUFBQSxRQVJK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QUksRUFOdEQ7QUFBQSxZQU1BSSxVQU5BLFNBTUFBLFVBTkE7QUFBQSxZQU1ZckQsUUFOWixTQU1ZQSxRQU5aO0FBQUEsWUFNc0JzRCxRQU50QixTQU1zQkEsUUFOdEI7O0FBUVAsNEJBQ0UsZ0NBQUMsWUFBRDtBQUNFLFVBQUEsZUFBZSxFQUFFN0QsZUFEbkI7QUFFRSxVQUFBLFlBQVksRUFBRThELE9BQU8sQ0FBQ0YsVUFBRCxDQUFQLElBQXVCNUQsZUFBdkIsSUFBMEN1RCxLQUFLLEtBQUtNLFFBRnBFO0FBR0UsVUFBQSxRQUFRLEVBQUU1RCxRQUhaO0FBSUUsVUFBQSxNQUFNLEVBQUV5RCxlQUpWO0FBS0UsVUFBQSxhQUFhLEVBQUV2RCxhQUxqQjtBQU1FLFVBQUEsT0FBTyxFQUFFLEtBQUs0RCxtQkFOaEI7QUFPRSxVQUFBLGVBQWUsRUFBRSxLQUFLdkIsd0JBUHhCO0FBUUUsVUFBQSxhQUFhLEVBQUUsS0FBS3dCLG9CQVJ0QjtBQVNFLFVBQUEsUUFBUSxFQUFFekQsUUFBUSxJQUFJLElBVHhCO0FBVUUsVUFBQSxTQUFTLEVBQUVULFNBVmI7QUFXRSxVQUFBLEtBQUssRUFBRUM7QUFYVCxVQURGO0FBZUQ7QUF0SmdDO0FBQUE7QUFBQSxJQXdDSmtFLGdCQXhDSTs7QUFBQSxtQ0F3QzdCckQsZ0JBeEM2QixrQkF5Q1gsRUF6Q1c7QUFBQSxtQ0F3QzdCQSxnQkF4QzZCLGlCQTJDWixRQTNDWTs7QUF5Sm5DLE1BQU1zRCxNQUFNLGdCQUFJQyxrQkFBTUMsSUFBTixDQUFXeEQsZ0JBQVgsQ0FBaEI7O0FBQ0FzRCxFQUFBQSxNQUFNLENBQUNHLFdBQVAsR0FBcUIsUUFBckI7QUFDQSxTQUFPSCxNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIENTU1Byb3BlcnRpZXMsIEtleWJvYXJkRXZlbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Y3JlYXRlUG9ydGFsfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgd2luZG93IGZyb20gJ2dsb2JhbC93aW5kb3cnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC5nZXQnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IEZlYXR1cmVBY3Rpb25QYW5lbEZhY3RvcnksIHtGZWF0dXJlQWN0aW9uUGFuZWxQcm9wc30gZnJvbSAnLi9mZWF0dXJlLWFjdGlvbi1wYW5lbCc7XG5pbXBvcnQge1xuICBFRElUT1JfQVZBSUxBQkxFX0xBWUVSUyxcbiAgRklMVEVSX1RZUEVTLFxuICBFRElUT1JfTU9ERVMsXG4gIEdFT0NPREVSX0xBWUVSX0lELFxuICBLZXlFdmVudFxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0xheWVyLCBFZGl0b3JMYXllclV0aWxzfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0ZpbHRlciwgRmVhdHVyZVNlbGVjdGlvbkNvbnRleHQsIEZlYXR1cmV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtGZWF0dXJlT2YsIFBvbHlnb259IGZyb20gJ0BuZWJ1bGEuZ2wvZWRpdC1tb2Rlcyc7XG5pbXBvcnQge0RhdGFzZXRzfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcblxuaW1wb3J0IHtSb290Q29udGV4dH0gZnJvbSAnLi4vY29udGV4dCc7XG5cbmNvbnN0IERFQ0tHTF9SRU5ERVJfTEFZRVIgPSAnZGVmYXVsdC1kZWNrZ2wtb3ZlcmxheS13cmFwcGVyJztcblxuY29uc3QgU3R5bGVkV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IGVkaXRvckxheWVyRmlsdGVyID0gKGxheWVyOiBMYXllcikgPT4gRURJVE9SX0FWQUlMQUJMRV9MQVlFUlMuaW5jbHVkZXMobGF5ZXIudHlwZSEpO1xuXG5FZGl0b3JGYWN0b3J5LmRlcHMgPSBbRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeV07XG5cbmludGVyZmFjZSBFZGl0b3JQcm9wcyB7XG4gIGZpbHRlcnM6IEZpbHRlcltdO1xuICBsYXllcnM6IExheWVyW107XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgZWRpdG9yOiB7c2VsZWN0ZWRGZWF0dXJlOiBGZWF0dXJlOyBtb2RlOiBzdHJpbmc7IHNlbGVjdGlvbkNvbnRleHQ/OiBGZWF0dXJlU2VsZWN0aW9uQ29udGV4dH07XG4gIGluZGV4OiBudW1iZXI7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgc3R5bGU6IENTU1Byb3BlcnRpZXM7XG4gIG9uU2VsZWN0OiAoZjogRmVhdHVyZSB8IG51bGwpID0+IGFueTtcbiAgb25TZXRFZGl0b3JNb2RlOiAobTogYW55KSA9PiB2b2lkO1xuICBvbkRlbGV0ZUZlYXR1cmU6IChmOiBGZWF0dXJlKSA9PiBhbnk7XG4gIG9uVG9nZ2xlUG9seWdvbkZpbHRlcjogKGw6IExheWVyLCBmOiBGZWF0dXJlKSA9PiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFBvcnRhbEVkaXRvclByb3BzID0gRmVhdHVyZUFjdGlvblBhbmVsUHJvcHMgJiB7XG4gIHZpc2libGVQYW5lbDogYm9vbGVhbjtcbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRWRpdG9yRmFjdG9yeShcbiAgRmVhdHVyZUFjdGlvblBhbmVsOiBSZWFjdC5GQzxGZWF0dXJlQWN0aW9uUGFuZWxQcm9wcz5cbik6IFJlYWN0LkNvbXBvbmVudENsYXNzPEVkaXRvclByb3BzPiB7XG4gIGNvbnN0IFBvcnRhbEVkaXRvcjogUmVhY3QuRkM8UG9ydGFsRWRpdG9yUHJvcHM+ID0gKHtcbiAgICB2aXNpYmxlUGFuZWwsXG4gICAgY2xhc3NOYW1lLFxuICAgIHN0eWxlLFxuICAgIHNlbGVjdGVkRmVhdHVyZSxcbiAgICBkYXRhc2V0cyxcbiAgICBsYXllcnMsXG4gICAgY3VycmVudEZpbHRlcixcbiAgICBvbkNsb3NlLFxuICAgIG9uRGVsZXRlRmVhdHVyZSxcbiAgICBvblRvZ2dsZUxheWVyLFxuICAgIHBvc2l0aW9uXG4gIH0pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPFJvb3RDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICB7Y29udGV4dCA9PiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHtjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICAgIDxTdHlsZWRXcmFwcGVyIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZWRpdG9yJywgY2xhc3NOYW1lKX0gc3R5bGU9e3N0eWxlfT5cbiAgICAgICAgICAgICAgICB7dmlzaWJsZVBhbmVsID8gKFxuICAgICAgICAgICAgICAgICAgPEZlYXR1cmVBY3Rpb25QYW5lbFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEZlYXR1cmU9e3NlbGVjdGVkRmVhdHVyZSBhcyBGZWF0dXJlT2Y8UG9seWdvbj59XG4gICAgICAgICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaWx0ZXI9e2N1cnJlbnRGaWx0ZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U9e29uQ2xvc2V9XG4gICAgICAgICAgICAgICAgICAgIG9uRGVsZXRlRmVhdHVyZT17b25EZWxldGVGZWF0dXJlfVxuICAgICAgICAgICAgICAgICAgICBvblRvZ2dsZUxheWVyPXtvblRvZ2dsZUxheWVyfVxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj17cG9zaXRpb24gfHwgbnVsbH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvU3R5bGVkV3JhcHBlcj4sXG4gICAgICAgICAgICAgIGNvbnRleHQ/LmN1cnJlbnQgPz8gZG9jdW1lbnQuYm9keVxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvUm9vdENvbnRleHQuQ29uc3VtZXI+XG4gICAgKTtcbiAgfTtcbiAgY2xhc3MgRWRpdG9yVW5tZW1vaXplZCBleHRlbmRzIENvbXBvbmVudDxFZGl0b3JQcm9wcz4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7fTtcblxuICAgIHN0YXRpYyBkaXNwbGF5TmFtZSA9ICdFZGl0b3InO1xuXG4gICAgc3RhdGUgPSB7fTtcblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleVByZXNzZWQpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleVByZXNzZWQpO1xuICAgIH1cblxuICAgIGxheWVyU2VsZWN0b3IgPSAocHJvcHM6IEVkaXRvclByb3BzKSA9PiBwcm9wcy5sYXllcnM7XG4gICAgZmlsdGVyU2VsZWN0b3IgPSAocHJvcHM6IEVkaXRvclByb3BzKSA9PiBwcm9wcy5maWx0ZXJzO1xuICAgIHNlbGVjdGVkRmVhdHVyZUlkU2VsZWN0b3IgPSAocHJvcHM6IEVkaXRvclByb3BzKSA9PlxuICAgICAgZ2V0KHByb3BzLCBbJ2VkaXRvcicsICdzZWxlY3RlZEZlYXR1cmUnLCAnaWQnXSk7XG4gICAgZWRpdG9yRmVhdHVyZVNlbGVjdG9yID0gKHByb3BzOiBFZGl0b3JQcm9wcykgPT4gZ2V0KHByb3BzLCBbJ2VkaXRvcicsICdmZWF0dXJlcyddKTtcblxuICAgIGN1cnJlbnRGaWx0ZXJTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5maWx0ZXJTZWxlY3RvcixcbiAgICAgIHRoaXMuc2VsZWN0ZWRGZWF0dXJlSWRTZWxlY3RvcixcbiAgICAgIChmaWx0ZXJzLCBzZWxlY3RlZEZlYXR1cmVJZCkgPT4gZmlsdGVycy5maW5kKGYgPT4gZi52YWx1ZSAmJiBmLnZhbHVlLmlkID09PSBzZWxlY3RlZEZlYXR1cmVJZClcbiAgICApO1xuXG4gICAgYXZhaWxhYmxlTGF5ZXJzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3Rvcih0aGlzLmxheWVyU2VsZWN0b3IsIGxheWVycyA9PlxuICAgICAgbGF5ZXJzXG4gICAgICAgIC5maWx0ZXIoZWRpdG9yTGF5ZXJGaWx0ZXIpXG4gICAgICAgIC5maWx0ZXIobGF5ZXIgPT4gbGF5ZXIuY29uZmlnPy5pc1Zpc2libGUgJiYgbGF5ZXIuaWQgIT09IEdFT0NPREVSX0xBWUVSX0lEKVxuICAgICk7XG5cbiAgICBhbGxGZWF0dXJlc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmZpbHRlclNlbGVjdG9yLFxuICAgICAgdGhpcy5lZGl0b3JGZWF0dXJlU2VsZWN0b3IsXG4gICAgICAoZmlsdGVycywgZWRpdG9yRmVhdHVyZXMpID0+XG4gICAgICAgIGZpbHRlcnNcbiAgICAgICAgICAuZmlsdGVyKGYgPT4gZi50eXBlID09PSBGSUxURVJfVFlQRVMucG9seWdvbilcbiAgICAgICAgICAubWFwKGYgPT4gZi52YWx1ZSlcbiAgICAgICAgICAuY29uY2F0KGVkaXRvckZlYXR1cmVzKVxuICAgICk7XG5cbiAgICBpc0luRm9jdXMgPSAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5pZCA9PT0gREVDS0dMX1JFTkRFUl9MQVlFUjtcblxuICAgIF9vbktleVByZXNzZWQgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzSW5Gb2N1cygpKSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgICAgIGNhc2UgS2V5RXZlbnQuRE9NX1ZLX0RFTEVURTpcbiAgICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19CQUNLX1NQQUNFOlxuICAgICAgICAgICAgdGhpcy5fb25EZWxldGVTZWxlY3RlZEZlYXR1cmUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgS2V5RXZlbnQuRE9NX1ZLX0VTQ0FQRTpcbiAgICAgICAgICAgIC8vIHJlc2V0IGFjdGl2ZSBkcmF3aW5nXG4gICAgICAgICAgICBpZiAoRWRpdG9yTGF5ZXJVdGlscy5pc0RyYXdpbmdBY3RpdmUodHJ1ZSwgdGhpcy5wcm9wcy5lZGl0b3IubW9kZSkpIHtcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblNldEVkaXRvck1vZGUoRURJVE9SX01PREVTLkVESVQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KG51bGwpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9vbkRlbGV0ZVNlbGVjdGVkRmVhdHVyZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHtlZGl0b3J9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtzZWxlY3RlZEZlYXR1cmV9ID0gZWRpdG9yO1xuICAgICAgaWYgKHNlbGVjdGVkRmVhdHVyZSkge1xuICAgICAgICB0aGlzLnByb3BzLm9uRGVsZXRlRmVhdHVyZShzZWxlY3RlZEZlYXR1cmUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfY2xvc2VGZWF0dXJlQWN0aW9uID0gKCkgPT4ge1xuICAgICAgLy8gcmVzZXQgc2VsZWN0aW9uIGNvbnRleHRcbiAgICAgIGNvbnN0IHtzZWxlY3RlZEZlYXR1cmV9ID0gdGhpcy5wcm9wcy5lZGl0b3I7XG4gICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KHNlbGVjdGVkRmVhdHVyZSk7XG4gICAgfTtcblxuICAgIF90b2dnbGVQb2x5Z29uRmlsdGVyID0gKGxheWVyOiBMYXllcikgPT4ge1xuICAgICAgY29uc3Qge3NlbGVjdGVkRmVhdHVyZX0gPSB0aGlzLnByb3BzLmVkaXRvcjtcbiAgICAgIGlmIChzZWxlY3RlZEZlYXR1cmUpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblRvZ2dsZVBvbHlnb25GaWx0ZXIobGF5ZXIsIHNlbGVjdGVkRmVhdHVyZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtjbGFzc05hbWUsIGRhdGFzZXRzLCBlZGl0b3IsIHN0eWxlLCBpbmRleH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge3NlbGVjdGVkRmVhdHVyZSwgc2VsZWN0aW9uQ29udGV4dH0gPSBlZGl0b3I7XG4gICAgICBjb25zdCBjdXJyZW50RmlsdGVyID0gdGhpcy5jdXJyZW50RmlsdGVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBhdmFpbGFibGVMYXllcnMgPSB0aGlzLmF2YWlsYWJsZUxheWVyc1NlbGVjdG9yKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCB7cmlnaHRDbGljaywgcG9zaXRpb24sIG1hcEluZGV4fSA9IHNlbGVjdGlvbkNvbnRleHQgfHwge307XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxQb3J0YWxFZGl0b3JcbiAgICAgICAgICBzZWxlY3RlZEZlYXR1cmU9e3NlbGVjdGVkRmVhdHVyZSBhcyBGZWF0dXJlT2Y8UG9seWdvbj59XG4gICAgICAgICAgdmlzaWJsZVBhbmVsPXtCb29sZWFuKHJpZ2h0Q2xpY2spICYmIHNlbGVjdGVkRmVhdHVyZSAmJiBpbmRleCA9PT0gbWFwSW5kZXh9XG4gICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgIGxheWVycz17YXZhaWxhYmxlTGF5ZXJzfVxuICAgICAgICAgIGN1cnJlbnRGaWx0ZXI9e2N1cnJlbnRGaWx0ZXJ9XG4gICAgICAgICAgb25DbG9zZT17dGhpcy5fY2xvc2VGZWF0dXJlQWN0aW9ufVxuICAgICAgICAgIG9uRGVsZXRlRmVhdHVyZT17dGhpcy5fb25EZWxldGVTZWxlY3RlZEZlYXR1cmV9XG4gICAgICAgICAgb25Ub2dnbGVMYXllcj17dGhpcy5fdG9nZ2xlUG9seWdvbkZpbHRlcn1cbiAgICAgICAgICBwb3NpdGlvbj17cG9zaXRpb24gfHwgbnVsbH1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IEVkaXRvciA9IChSZWFjdC5tZW1vKEVkaXRvclVubWVtb2l6ZWQpIGFzIHVua25vd24pIGFzIHR5cGVvZiBFZGl0b3JVbm1lbW9pemVkO1xuICBFZGl0b3IuZGlzcGxheU5hbWUgPSAnRWRpdG9yJztcbiAgcmV0dXJuIEVkaXRvcjtcbn1cbiJdfQ==