@kepler.gl/components 3.2.6 → 3.3.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/dist/annotations/annotation-node.d.ts +11 -0
  2. package/dist/annotations/annotation-node.js +145 -0
  3. package/dist/annotations/annotation-overlay.d.ts +16 -0
  4. package/dist/annotations/annotation-overlay.js +166 -0
  5. package/dist/annotations/annotation-panel.d.ts +24 -0
  6. package/dist/annotations/annotation-panel.js +362 -0
  7. package/dist/annotations/annotation-text.d.ts +16 -0
  8. package/dist/annotations/annotation-text.js +150 -0
  9. package/dist/annotations/annotation-utils.d.ts +39 -0
  10. package/dist/annotations/annotation-utils.js +156 -0
  11. package/dist/annotations/index.d.ts +7 -0
  12. package/dist/annotations/index.js +53 -0
  13. package/dist/annotations/lexical-editor/clickable-link-plugin.d.ts +3 -0
  14. package/dist/annotations/lexical-editor/clickable-link-plugin.js +71 -0
  15. package/dist/annotations/lexical-editor/floating-link-editor.d.ts +1 -0
  16. package/dist/annotations/lexical-editor/floating-link-editor.js +194 -0
  17. package/dist/annotations/lexical-editor/index.d.ts +7 -0
  18. package/dist/annotations/lexical-editor/index.js +78 -0
  19. package/dist/annotations/lexical-editor/lexical-constants.d.ts +12 -0
  20. package/dist/annotations/lexical-editor/lexical-constants.js +22 -0
  21. package/dist/annotations/lexical-editor/lexical-nodes.d.ts +3 -0
  22. package/dist/annotations/lexical-editor/lexical-nodes.js +13 -0
  23. package/dist/annotations/lexical-editor/lexical-rich-text-editor.d.ts +15 -0
  24. package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +122 -0
  25. package/dist/annotations/lexical-editor/lexical-theme.d.ts +15 -0
  26. package/dist/annotations/lexical-editor/lexical-theme.js +25 -0
  27. package/dist/annotations/lexical-editor/lexical-toolbar.d.ts +7 -0
  28. package/dist/annotations/lexical-editor/lexical-toolbar.js +293 -0
  29. package/dist/annotations/lexical-editor/lexical-utils.d.ts +4 -0
  30. package/dist/annotations/lexical-editor/lexical-utils.js +45 -0
  31. package/dist/annotations/lexical-editor/use-lexical-toolbar.d.ts +36 -0
  32. package/dist/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
  33. package/dist/bottom-widget.d.ts +5 -5
  34. package/dist/bottom-widget.js +12 -6
  35. package/dist/common/action-panel.d.ts +3 -3
  36. package/dist/common/animation-control/animation-control.d.ts +2 -1
  37. package/dist/common/animation-control/animation-control.js +3 -1
  38. package/dist/common/animation-control/animation-controller.js +8 -6
  39. package/dist/common/animation-control/export-video-control.d.ts +9 -0
  40. package/dist/common/animation-control/export-video-control.js +43 -0
  41. package/dist/common/animation-control/playback-controls.d.ts +5 -3
  42. package/dist/common/animation-control/playback-controls.js +7 -4
  43. package/dist/common/checkbox.d.ts +5 -21
  44. package/dist/common/checkbox.js +58 -70
  45. package/dist/common/color-legend.d.ts +4 -4
  46. package/dist/common/color-legend.js +3 -3
  47. package/dist/common/column-stats-chart.d.ts +3 -3
  48. package/dist/common/data-table/button.d.ts +1 -1
  49. package/dist/common/data-table/canvas.d.ts +0 -1
  50. package/dist/common/data-table/cell-size.d.ts +2 -2
  51. package/dist/common/data-table/display-format.d.ts +1 -1
  52. package/dist/common/data-table/header-cell.d.ts +2 -2
  53. package/dist/common/data-table/index.d.ts +8 -10
  54. package/dist/common/data-table/index.js +3 -3
  55. package/dist/common/data-table/option-dropdown.d.ts +1 -1
  56. package/dist/common/field-selector.d.ts +5 -5
  57. package/dist/common/field-token.d.ts +1 -1
  58. package/dist/common/file-uploader/file-drop.d.ts +1 -1
  59. package/dist/common/file-uploader/file-upload-progress.d.ts +1 -1
  60. package/dist/common/file-uploader/file-upload.d.ts +1 -1
  61. package/dist/common/file-uploader/file-upload.js +4 -4
  62. package/dist/common/flex-container.d.ts +2 -3
  63. package/dist/common/histogram-plot.d.ts +1 -1
  64. package/dist/common/histogram-plot.js +102 -53
  65. package/dist/common/icon-button.d.ts +16 -16
  66. package/dist/common/icons/3d-models/airplane.d.ts +14 -0
  67. package/dist/common/icons/3d-models/airplane.js +104 -0
  68. package/dist/common/icons/3d-models/bicycle.d.ts +14 -0
  69. package/dist/common/icons/3d-models/bicycle.js +426 -0
  70. package/dist/common/icons/3d-models/boeing.d.ts +14 -0
  71. package/dist/common/icons/3d-models/boeing.js +119 -0
  72. package/dist/common/icons/3d-models/car.d.ts +14 -0
  73. package/dist/common/icons/3d-models/car.js +110 -0
  74. package/dist/common/icons/3d-models/cargoship.d.ts +14 -0
  75. package/dist/common/icons/3d-models/cargoship.js +246 -0
  76. package/dist/common/icons/3d-models/evtol.d.ts +14 -0
  77. package/dist/common/icons/3d-models/evtol.js +134 -0
  78. package/dist/common/icons/3d-models/glider.d.ts +14 -0
  79. package/dist/common/icons/3d-models/glider.js +62 -0
  80. package/dist/common/icons/3d-models/helicopter.d.ts +14 -0
  81. package/dist/common/icons/3d-models/helicopter.js +110 -0
  82. package/dist/common/icons/3d-models/scooter.d.ts +14 -0
  83. package/dist/common/icons/3d-models/scooter.js +159 -0
  84. package/dist/common/icons/3d-models/semitruck.d.ts +14 -0
  85. package/dist/common/icons/3d-models/semitruck.js +177 -0
  86. package/dist/common/icons/3d-models/truck.d.ts +14 -0
  87. package/dist/common/icons/3d-models/truck.js +122 -0
  88. package/dist/common/icons/anchor_window.d.ts +1 -8
  89. package/dist/common/icons/anchor_window.js +17 -10
  90. package/dist/common/icons/annotation-text.d.ts +9 -0
  91. package/dist/common/icons/annotation-text.js +56 -0
  92. package/dist/common/icons/base.d.ts +1 -1
  93. package/dist/common/icons/close.js +1 -1
  94. package/dist/common/icons/effects/distance-fog.d.ts +14 -0
  95. package/dist/common/icons/effects/distance-fog.js +79 -0
  96. package/dist/common/icons/effects/surface-fog.d.ts +14 -0
  97. package/dist/common/icons/effects/surface-fog.js +86 -0
  98. package/dist/common/icons/index.d.ts +3 -0
  99. package/dist/common/icons/index.js +22 -1
  100. package/dist/common/item-selector/chickleted-input.d.ts +5 -5
  101. package/dist/common/item-selector/chickleted-input.js +5 -5
  102. package/dist/common/item-selector/dropdown-list.d.ts +3 -3
  103. package/dist/common/item-selector/dropdown-select.d.ts +7 -7
  104. package/dist/common/item-selector/item-selector.d.ts +2 -2
  105. package/dist/common/item-selector/typeahead.d.ts +3 -3
  106. package/dist/common/line-chart.d.ts +4 -1
  107. package/dist/common/line-chart.js +59 -12
  108. package/dist/common/loading-spinner.d.ts +2 -2
  109. package/dist/common/modal.d.ts +5 -5
  110. package/dist/common/portaled.d.ts +8 -25
  111. package/dist/common/progress-bar.d.ts +1 -1
  112. package/dist/common/radius-legend.d.ts +1 -1
  113. package/dist/common/range-brush.d.ts +1 -1
  114. package/dist/common/range-plot.d.ts +1 -1
  115. package/dist/common/range-plot.js +4 -2
  116. package/dist/common/range-slider.d.ts +2 -0
  117. package/dist/common/range-slider.js +108 -43
  118. package/dist/common/slider/mouse-event.d.ts +1 -1
  119. package/dist/common/slider/slider-bar-handle.d.ts +2 -2
  120. package/dist/common/slider/slider-handle.d.ts +3 -3
  121. package/dist/common/slider/slider.d.ts +6 -2
  122. package/dist/common/slider/slider.js +78 -35
  123. package/dist/common/styled-components.d.ts +158 -159
  124. package/dist/common/styled-components.js +2 -2
  125. package/dist/common/sync-timeline-control.d.ts +3 -3
  126. package/dist/common/time-range-slider-time-title.d.ts +2 -2
  127. package/dist/common/time-range-slider-time-title.js +5 -5
  128. package/dist/common/time-range-slider.d.ts +4 -3
  129. package/dist/common/time-range-slider.js +19 -7
  130. package/dist/common/timeline-helpers.d.ts +3 -0
  131. package/dist/common/timeline-helpers.js +57 -0
  132. package/dist/common/timeline-slider.d.ts +1 -1
  133. package/dist/common/timeline-slider.js +21 -12
  134. package/dist/common/tippy-tooltip.d.ts +1 -1
  135. package/dist/common/toolbar-item.d.ts +1 -1
  136. package/dist/common/toolbar-item.js +5 -5
  137. package/dist/common/toolbar.d.ts +2 -2
  138. package/dist/common/toolbar.js +4 -4
  139. package/dist/common/vertical-toolbar.d.ts +2 -3
  140. package/dist/container.d.ts +6 -6
  141. package/dist/context.d.ts +3 -3
  142. package/dist/dnd-context.d.ts +2 -2
  143. package/dist/editor/editor.d.ts +1 -1
  144. package/dist/editor/editor.js +1 -1
  145. package/dist/editor/feature-action-panel.d.ts +1 -1
  146. package/dist/editor/feature-action-panel.js +1 -1
  147. package/dist/effects/compact-color-picker.d.ts +1 -1
  148. package/dist/effects/effect-configurator.d.ts +5 -4
  149. package/dist/effects/effect-configurator.js +243 -44
  150. package/dist/effects/effect-list.d.ts +1 -1
  151. package/dist/effects/effect-manager.d.ts +3 -3
  152. package/dist/effects/effect-manager.js +11 -4
  153. package/dist/effects/effect-panel-header.d.ts +2 -2
  154. package/dist/effects/effect-panel-header.js +35 -18
  155. package/dist/effects/effect-panel.d.ts +6 -6
  156. package/dist/effects/effect-panel.js +61 -86
  157. package/dist/effects/effect-time-configurator.d.ts +1 -1
  158. package/dist/effects/effect-time-configurator.js +10 -10
  159. package/dist/effects/effect-time-selector.d.ts +1 -1
  160. package/dist/effects/effect-time-slider.d.ts +3 -3
  161. package/dist/effects/effect-type-dropdown-list.d.ts +3 -2
  162. package/dist/effects/effect-type-dropdown-list.js +1 -1
  163. package/dist/effects/effect-type-list-item.d.ts +2 -1
  164. package/dist/effects/effect-type-list-item.js +23 -7
  165. package/dist/effects/effect-type-selector.d.ts +3 -2
  166. package/dist/effects/effect-type-selector.js +2 -2
  167. package/dist/effects/side-panel-title.d.ts +1 -1
  168. package/dist/effects/surface-fog-section.d.ts +14 -0
  169. package/dist/effects/surface-fog-section.js +263 -0
  170. package/dist/effects/timezone-selector.d.ts +1 -1
  171. package/dist/filters/components.d.ts +2 -3
  172. package/dist/filters/filter-panels/types.d.ts +4 -4
  173. package/dist/filters/index.d.ts +1 -0
  174. package/dist/filters/index.js +8 -1
  175. package/dist/filters/polygon-filter.js +2 -2
  176. package/dist/filters/time-range-filter.js +3 -1
  177. package/dist/filters/time-widget-settings.d.ts +14 -0
  178. package/dist/filters/time-widget-settings.js +312 -0
  179. package/dist/filters/time-widget-top.d.ts +2 -3
  180. package/dist/filters/time-widget-top.js +32 -39
  181. package/dist/filters/time-widget.d.ts +3 -2
  182. package/dist/filters/time-widget.js +285 -9
  183. package/dist/filters/types.d.ts +11 -11
  184. package/dist/filters/types.js +1 -1
  185. package/dist/geocoder/geocoder.d.ts +7 -4
  186. package/dist/geocoder/geocoder.js +65 -14
  187. package/dist/geocoder-panel.d.ts +11 -2
  188. package/dist/geocoder-panel.js +8 -4
  189. package/dist/hooks/use-cloud-list-provider.d.ts +1 -1
  190. package/dist/hooks/use-dnd-effects.d.ts +1 -1
  191. package/dist/hooks/use-dnd-layers.d.ts +1 -1
  192. package/dist/hooks/use-feature-flags.d.ts +1 -1
  193. package/dist/hooks/use-fetch-raster-tile-metadata.d.ts +3 -3
  194. package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +2 -2
  195. package/dist/hooks/use-legend-position.d.ts +4 -5
  196. package/dist/index.d.ts +14 -0
  197. package/dist/index.js +124 -1
  198. package/dist/injector.d.ts +5 -5
  199. package/dist/kepler-gl.d.ts +70 -67
  200. package/dist/kepler-gl.js +89 -11
  201. package/dist/loading-indicator.d.ts +6 -4
  202. package/dist/loading-indicator.js +6 -3
  203. package/dist/map/annotations/annotation-control.d.ts +16 -0
  204. package/dist/map/annotations/annotation-control.js +56 -0
  205. package/dist/map/effects/effect-control.d.ts +1 -1
  206. package/dist/map/layer-hover-info.d.ts +3 -3
  207. package/dist/map/layer-hover-info.js +69 -36
  208. package/dist/map/layer-selector-panel.d.ts +2 -2
  209. package/dist/map/lazy-tippy.js +3 -3
  210. package/dist/map/locale-panel.d.ts +2 -2
  211. package/dist/map/locale-panel.js +2 -2
  212. package/dist/map/map-control-panel.d.ts +1 -1
  213. package/dist/map/map-control-toolbar.d.ts +7 -8
  214. package/dist/map/map-control-tooltip.d.ts +1 -1
  215. package/dist/map/map-control.d.ts +8 -4
  216. package/dist/map/map-control.js +16 -7
  217. package/dist/map/map-draw-panel.d.ts +2 -2
  218. package/dist/map/map-draw-panel.js +7 -4
  219. package/dist/map/map-legend-panel.d.ts +5 -4
  220. package/dist/map/map-legend-panel.js +10 -8
  221. package/dist/map/map-legend.d.ts +11 -9
  222. package/dist/map/map-legend.js +39 -9
  223. package/dist/map/map-navigation-control.d.ts +13 -0
  224. package/dist/map/map-navigation-control.js +143 -0
  225. package/dist/map/map-popover-content.d.ts +2 -2
  226. package/dist/map/map-popover.d.ts +2 -2
  227. package/dist/map/map-popover.js +2 -2
  228. package/dist/map/split-map-button.d.ts +1 -1
  229. package/dist/map/toggle-3d-button.d.ts +1 -1
  230. package/dist/map-container.d.ts +15 -5
  231. package/dist/map-container.js +286 -73
  232. package/dist/map-view-state-context.d.ts +10 -2
  233. package/dist/map-view-state-context.js +1 -1
  234. package/dist/modal-container.d.ts +6 -8
  235. package/dist/modal-container.js +28 -6
  236. package/dist/modals/add-map-style-modal.js +173 -200
  237. package/dist/modals/cloud-components/cloud-header.d.ts +1 -1
  238. package/dist/modals/cloud-components/provider-select.d.ts +1 -1
  239. package/dist/modals/cloud-tile.d.ts +1 -1
  240. package/dist/modals/data-table-modal.d.ts +2 -2
  241. package/dist/modals/data-table-modal.js +146 -194
  242. package/dist/modals/export-data-modal.js +117 -139
  243. package/dist/modals/export-image-modal.js +1 -1
  244. package/dist/modals/export-map-modal/components.d.ts +1 -1
  245. package/dist/modals/export-map-modal/export-html-map.d.ts +1 -1
  246. package/dist/modals/export-map-modal/export-json-map.d.ts +1 -1
  247. package/dist/modals/export-video-modal.d.ts +25 -0
  248. package/dist/modals/export-video-modal.js +338 -0
  249. package/dist/modals/export-video-modal.spec.d.ts +1 -0
  250. package/dist/modals/export-video-modal.spec.js +686 -0
  251. package/dist/modals/fog-height-animation.d.ts +8 -0
  252. package/dist/modals/fog-height-animation.js +97 -0
  253. package/dist/modals/hubble-utils.d.ts +25 -0
  254. package/dist/modals/hubble-utils.js +197 -0
  255. package/dist/modals/hubble-utils.spec.d.ts +1 -0
  256. package/dist/modals/hubble-utils.spec.js +397 -0
  257. package/dist/modals/image-modal-container.d.ts +1 -1
  258. package/dist/modals/load-data-modal.d.ts +2 -2
  259. package/dist/modals/modal-dialog.d.ts +0 -2
  260. package/dist/modals/overwrite-map-modal.d.ts +1 -1
  261. package/dist/modals/save-map-modal.d.ts +3 -3
  262. package/dist/modals/share-map-modal.d.ts +1 -1
  263. package/dist/modals/tilesets-modals/common.d.ts +3 -3
  264. package/dist/modals/tilesets-modals/common.js +1 -1
  265. package/dist/modals/tilesets-modals/load-data-footer.d.ts +1 -1
  266. package/dist/modals/tilesets-modals/load-data-footer.js +2 -2
  267. package/dist/modals/tilesets-modals/load-tileset.d.ts +1 -1
  268. package/dist/modals/tilesets-modals/load-tileset.js +27 -10
  269. package/dist/modals/tilesets-modals/tileset-bitmap-form.d.ts +14 -0
  270. package/dist/modals/tilesets-modals/tileset-bitmap-form.js +284 -0
  271. package/dist/modals/tilesets-modals/tileset-icon.d.ts +1 -1
  272. package/dist/modals/tilesets-modals/tileset-raster-form.d.ts +2 -2
  273. package/dist/modals/tilesets-modals/tileset-raster-form.js +94 -11
  274. package/dist/modals/tilesets-modals/tileset-tile3d-form.d.ts +12 -0
  275. package/dist/modals/tilesets-modals/tileset-tile3d-form.js +389 -0
  276. package/dist/modals/tilesets-modals/tileset-vector-form.d.ts +3 -3
  277. package/dist/modals/tilesets-modals/tileset-vector-form.js +58 -4
  278. package/dist/modals/tilesets-modals/tileset-wms-form.d.ts +1 -1
  279. package/dist/modals/tilesets-modals/tileset-wms-form.js +55 -11
  280. package/dist/notification-panel/notification-item.d.ts +1 -53
  281. package/dist/notification-panel/notification-item.js +47 -75
  282. package/dist/notification-panel.d.ts +1 -1
  283. package/dist/notification-panel.js +20 -42
  284. package/dist/plot-container.js +55 -14
  285. package/dist/side-panel/add-by-dataset-button.d.ts +1 -1
  286. package/dist/side-panel/add-by-dataset-button.js +3 -3
  287. package/dist/side-panel/common/dataset-info.d.ts +2 -2
  288. package/dist/side-panel/common/dataset-info.js +2 -2
  289. package/dist/side-panel/common/dataset-tag.d.ts +2 -2
  290. package/dist/side-panel/common/dataset-title.d.ts +2 -2
  291. package/dist/side-panel/common/source-data-catalog.d.ts +3 -3
  292. package/dist/side-panel/common/types.d.ts +8 -8
  293. package/dist/side-panel/custom-panel.d.ts +2 -2
  294. package/dist/side-panel/filter-manager.d.ts +3 -3
  295. package/dist/side-panel/filter-panel/add-filter-button.d.ts +1 -1
  296. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +2 -2
  297. package/dist/side-panel/interaction-manager.d.ts +1 -1
  298. package/dist/side-panel/interaction-panel/brush-config.d.ts +1 -1
  299. package/dist/side-panel/interaction-panel/geocoder-config.d.ts +11 -0
  300. package/dist/side-panel/interaction-panel/geocoder-config.js +45 -0
  301. package/dist/side-panel/interaction-panel/interaction-panel.d.ts +3 -2
  302. package/dist/side-panel/interaction-panel/interaction-panel.js +10 -3
  303. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -3
  304. package/dist/side-panel/interaction-panel/tooltip-config.d.ts +1 -1
  305. package/dist/side-panel/layer-manager.d.ts +2 -2
  306. package/dist/side-panel/layer-manager.js +11 -3
  307. package/dist/side-panel/layer-panel/add-layer-button.d.ts +1 -1
  308. package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +1 -1
  309. package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +4 -4
  310. package/dist/side-panel/layer-panel/color-palette-preset.d.ts +1 -1
  311. package/dist/side-panel/layer-panel/color-palette.d.ts +2 -2
  312. package/dist/side-panel/layer-panel/color-range-selector.d.ts +3 -3
  313. package/dist/side-panel/layer-panel/color-scale-selector.d.ts +5 -5
  314. package/dist/side-panel/layer-panel/color-scale-selector.js +1 -1
  315. package/dist/side-panel/layer-panel/color-selector.d.ts +3 -3
  316. package/dist/side-panel/layer-panel/column-selector.d.ts +1 -1
  317. package/dist/side-panel/layer-panel/custom-palette.d.ts +10 -10
  318. package/dist/side-panel/layer-panel/custom-palette.js +5 -5
  319. package/dist/side-panel/layer-panel/custom-picker.d.ts +1 -1
  320. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +1 -1
  321. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +1 -1
  322. package/dist/side-panel/layer-panel/dataset-layer-section.js +19 -3
  323. package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -2
  324. package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +1 -1
  325. package/dist/side-panel/layer-panel/how-to-button.d.ts +1 -1
  326. package/dist/side-panel/layer-panel/layer-color-selector.d.ts +3 -3
  327. package/dist/side-panel/layer-panel/layer-column-config.d.ts +1 -1
  328. package/dist/side-panel/layer-panel/layer-column-mode-config.d.ts +3 -3
  329. package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -5
  330. package/dist/side-panel/layer-panel/layer-configurator.d.ts +6 -4
  331. package/dist/side-panel/layer-panel/layer-configurator.js +408 -72
  332. package/dist/side-panel/layer-panel/layer-error-message.d.ts +1 -1
  333. package/dist/side-panel/layer-panel/layer-list.d.ts +2 -2
  334. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +5 -5
  335. package/dist/side-panel/layer-panel/layer-panel-header.js +2 -2
  336. package/dist/side-panel/layer-panel/layer-panel.d.ts +1 -1
  337. package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +2 -2
  338. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +2 -2
  339. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +1 -1
  340. package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +1 -1
  341. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +2 -2
  342. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +127 -27
  343. package/dist/side-panel/layer-panel/scenegraph-model-selector.d.ts +24 -0
  344. package/dist/side-panel/layer-panel/scenegraph-model-selector.js +123 -0
  345. package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -1
  346. package/dist/side-panel/layer-panel/text-label-panel.d.ts +2 -2
  347. package/dist/side-panel/layer-panel/text-label-panel.js +11 -2
  348. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -3
  349. package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +1 -1
  350. package/dist/side-panel/layer-panel/vis-config-slider.d.ts +3 -1
  351. package/dist/side-panel/layer-panel/vis-config-slider.js +7 -3
  352. package/dist/side-panel/layer-panel/vis-config-switch.d.ts +1 -1
  353. package/dist/side-panel/map-manager.d.ts +1 -1
  354. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +1 -1
  355. package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +2 -2
  356. package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +1 -1
  357. package/dist/side-panel/map-style-panel/map-style-selector.d.ts +1 -1
  358. package/dist/side-panel/panel-header-action.d.ts +1 -1
  359. package/dist/side-panel/panel-header.d.ts +13 -12
  360. package/dist/side-panel/panel-header.js +9 -2
  361. package/dist/side-panel/panel-tab.d.ts +5 -5
  362. package/dist/side-panel/panel-tab.js +4 -4
  363. package/dist/side-panel/panel-title.d.ts +1 -1
  364. package/dist/side-panel/panel-toggle.d.ts +1 -1
  365. package/dist/side-panel/panel-view-list-toggle.d.ts +3 -3
  366. package/dist/side-panel/side-bar.d.ts +2 -2
  367. package/dist/side-panel.d.ts +1 -1
  368. package/dist/side-panel.js +5 -1
  369. package/dist/types.d.ts +3 -3
  370. package/package.json +41 -29
@@ -28,7 +28,7 @@ var _localization = require("@kepler.gl/localization");
28
28
  var _viewportMercatorProject = require("viewport-mercator-project");
29
29
  var _icons = require("../common/icons");
30
30
  var _panelHeaderAction = _interopRequireDefault(require("../side-panel/panel-header-action"));
31
- var _templateObject; // SPDX-License-Identifier: MIT
31
+ var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
32
32
  // Copyright contributors to the kepler.gl project
33
33
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
34
34
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
@@ -43,7 +43,7 @@ var StyledMapControlLegend = exports.StyledMapControlLegend = _styledComponents[
43
43
  }, function (props) {
44
44
  return props.theme.panelBorderColor;
45
45
  }, function (props) {
46
- return props.last ? 0 : '1px';
46
+ return props.$last ? 0 : '1px';
47
47
  }, function (props) {
48
48
  return props.width;
49
49
  }, function (props) {
@@ -61,6 +61,14 @@ var StyledMapControlLegend = exports.StyledMapControlLegend = _styledComponents[
61
61
  }, function (props) {
62
62
  return props.theme.textColorHl;
63
63
  });
64
+ var StyledLegendHeaderRow = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n"])));
65
+ var StyledVisibilityToggle = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n color: ", ";\n display: flex;\n align-items: center;\n margin-left: 8px;\n opacity: ", ";\n\n &:hover {\n color: ", ";\n opacity: 1;\n }\n"])), function (props) {
66
+ return props.$isVisible ? props.theme.textColor : props.theme.subtextColor;
67
+ }, function (props) {
68
+ return props.$isVisible ? 1 : 0.5;
69
+ }, function (props) {
70
+ return props.theme.textColorHl;
71
+ });
64
72
  var VisualChannelMetric = exports.VisualChannelMetric = function VisualChannelMetric(_ref) {
65
73
  var name = _ref.name;
66
74
  return /*#__PURE__*/_react["default"].createElement("div", {
@@ -241,10 +249,30 @@ var isRadiusChannel = function isRadiusChannel(visualChannel) {
241
249
  function LayerLegendHeaderFactory() {
242
250
  var LayerLegendHeader = function LayerLegendHeader(_ref6) {
243
251
  var options = _ref6.options,
244
- layer = _ref6.layer;
245
- return (options === null || options === void 0 ? void 0 : options.showLayerName) !== false ? /*#__PURE__*/_react["default"].createElement("div", {
246
- className: "legend--layer_name"
247
- }, layer.config.label) : null;
252
+ layer = _ref6.layer,
253
+ onToggleLayerVisibility = _ref6.onToggleLayerVisibility;
254
+ var isVisible = layer.config.isVisible;
255
+ var onToggle = (0, _react.useCallback)(function () {
256
+ if (onToggleLayerVisibility) {
257
+ onToggleLayerVisibility(layer);
258
+ }
259
+ }, [layer, onToggleLayerVisibility]);
260
+ if ((options === null || options === void 0 ? void 0 : options.showLayerName) === false) {
261
+ return null;
262
+ }
263
+ return /*#__PURE__*/_react["default"].createElement(StyledLegendHeaderRow, null, /*#__PURE__*/_react["default"].createElement("div", {
264
+ className: "legend--layer_name",
265
+ style: {
266
+ opacity: isVisible ? 1 : 0.5
267
+ }
268
+ }, layer.config.label), onToggleLayerVisibility ? /*#__PURE__*/_react["default"].createElement(StyledVisibilityToggle, {
269
+ $isVisible: isVisible,
270
+ onClick: onToggle
271
+ }, isVisible ? /*#__PURE__*/_react["default"].createElement(_icons.EyeSeen, {
272
+ height: "12px"
273
+ }) : /*#__PURE__*/_react["default"].createElement(_icons.EyeUnseen, {
274
+ height: "12px"
275
+ })) : null);
248
276
  };
249
277
  return LayerLegendHeader;
250
278
  }
@@ -330,6 +358,7 @@ function MapLegendFactory(LayerLegendHeader, LayerLegendContent) {
330
358
  disableEdit = _ref8.disableEdit,
331
359
  isExport = _ref8.isExport,
332
360
  onLayerVisConfigChange = _ref8.onLayerVisConfigChange,
361
+ onToggleLayerVisibility = _ref8.onToggleLayerVisibility,
333
362
  _ref8$actionIcons = _ref8.actionIcons,
334
363
  actionIcons = _ref8$actionIcons === void 0 ? defaultActionIcons : _ref8$actionIcons;
335
364
  return /*#__PURE__*/_react["default"].createElement("div", {
@@ -341,13 +370,14 @@ function MapLegendFactory(LayerLegendHeader, LayerLegendContent) {
341
370
  var containerW = width || _constants.DIMENSIONS.mapControl.width;
342
371
  return /*#__PURE__*/_react["default"].createElement(StyledMapControlLegend, {
343
372
  className: "legend--layer",
344
- last: index === layers.length - 1,
373
+ $last: index === layers.length - 1,
345
374
  key: index,
346
375
  width: containerW
347
376
  }, /*#__PURE__*/_react["default"].createElement(LayerLegendHeader, {
348
377
  isExport: isExport,
349
378
  options: options,
350
- layer: layer
379
+ layer: layer,
380
+ onToggleLayerVisibility: onToggleLayerVisibility
351
381
  }), /*#__PURE__*/_react["default"].createElement(LayerLegendContent, {
352
382
  containerW: containerW,
353
383
  layer: layer,
@@ -363,4 +393,4 @@ function MapLegendFactory(LayerLegendHeader, LayerLegendContent) {
363
393
  return MapLegend;
364
394
  }
365
395
  var _default = exports["default"] = MapLegendFactory;
366
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZDNDb2xvciIsIl9kM0Zvcm1hdCIsIl9yZWFjdEludGwiLCJfY29sb3JMZWdlbmQiLCJfcmFkaXVzTGVnZW5kIiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfdmlld3BvcnRNZXJjYXRvclByb2plY3QiLCJfaWNvbnMiLCJfcGFuZWxIZWFkZXJBY3Rpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJTdHlsZWRNYXBDb250cm9sTGVnZW5kIiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsIm1hcENvbnRyb2wiLCJwYWRkaW5nIiwiZm9udEZhbWlseSIsInBhbmVsQm9yZGVyQ29sb3IiLCJsYXN0Iiwid2lkdGgiLCJ0ZXh0Q29sb3IiLCJzdWJ0ZXh0Q29sb3IiLCJ0ZXh0Q29sb3JIbCIsIlZpc3VhbENoYW5uZWxNZXRyaWMiLCJfcmVmIiwibmFtZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiaWQiLCJMYXllckRlZmF1bHRMZWdlbmQiLCJfcmVmMiIsImxhYmVsIiwiU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5IiwiZGVwcyIsIkxlZ2VuZFJvd0ZhY3RvcnkiLCJMZWdlbmRSb3ciLCJTaW5nbGVDb2xvckxlZ2VuZCIsIl9yZWYzIiwiY29sb3IiLCJkaXNwbGF5TGFiZWwiLCJCb29sZWFuIiwiQXJyYXkiLCJpc0FycmF5IiwicmdiIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInRvU3RyaW5nIiwiZGlzcGxheU5hbWUiLCJSZWFjdCIsIm1lbW8iLCJMYXllckNvbG9yTGVnZW5kRmFjdG9yeSIsIkNvbG9yTGVnZW5kRmFjdG9yeSIsIlBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSIsIkNvbG9yTGVnZW5kIiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJMYXllckNvbG9yTGVnZW5kIiwiX3JlZjQiLCJkZXNjcmlwdGlvbiIsImNvbmZpZyIsImxheWVyIiwiY29sb3JDaGFubmVsIiwiZGlzYWJsZUVkaXQiLCJvbkxheWVyVmlzQ29uZmlnQ2hhbmdlIiwiaXNFeHBvcnQiLCJtYXBTdGF0ZSIsImFjdGlvbkljb25zIiwiaW50bCIsInVzZUludGwiLCJlbmFibGVDb2xvckJ5IiwibWVhc3VyZSIsInNjYWxlIiwiZmllbGQiLCJkb21haW4iLCJyYW5nZSIsInByb3BlcnR5IiwiZml4ZWQiLCJfbWFwIiwibWFwIiwiayIsIl9tYXAyIiwiX3NsaWNlZFRvQXJyYXkyIiwiY29sb3JTY2FsZSIsImNvbG9yRmllbGQiLCJjb2xvckRvbWFpbiIsImlzRml4ZWQiLCJ2aXNDb25maWciLCJjb2xvclJhbmdlIiwib25VcGRhdGVDb2xvckxlZ2VuZCIsInVzZUNhbGxiYWNrIiwiY29sb3JMZWdlbmRzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJoYW5kbGVUb2dnbGVFeHBhbmRlZCIsIm9uQ2xpY2siLCJJY29uQ29tcG9uZW50IiwiZXhwYW5kZWQiLCJjb2xsYXBzZWQiLCJzY2FsZVR5cGUiLCJmaWVsZFR5cGUiLCJ0eXBlIiwibGFiZWxGb3JtYXQiLCJkaXNwbGF5Rm9ybWF0IiwiZDNGb3JtYXQiLCJmb3JtYXRNZXNzYWdlIiwiY29uY2F0Iiwia2V5IiwiZGVmYXVsdE1lc3NhZ2UiLCJnZXRMYXllclJhZGl1c1NjYWxlTWV0ZXJzVG9QaXhlbHNNdWx0aXBsaWVyIiwiX2dldERpc3RhbmNlU2NhbGVzIiwiZ2V0RGlzdGFuY2VTY2FsZXMiLCJtZXRlcnNQZXJQaXhlbCIsImZpeGVkUmFkaXVzIiwic2l6ZUZpZWxkIiwiZ2V0UmFkaXVzU2NhbGVCeVpvb20iLCJMYXllclJhZGl1c0xlZ2VuZCIsIl9yZWY1IiwidmlzdWFsQ2hhbm5lbCIsImdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbiIsImVuYWJsZVNpemVCeSIsIl9tYXAzIiwiX21hcDQiLCJzaXplU2NhbGUiLCJzaXplRG9tYWluIiwic2l6ZVJhbmdlIiwicmFkaXVzTXVsdGlwbGllciIsInYiLCJpc0NvbG9yQ2hhbm5lbCIsIkNIQU5ORUxfU0NBTEVTIiwiY29sb3JBZ2dyIiwiaW5jbHVkZXMiLCJjaGFubmVsU2NhbGVUeXBlIiwiaXNSYWRpdXNDaGFubmVsIiwicmFkaXVzIiwiTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5IiwiTGF5ZXJMZWdlbmRIZWFkZXIiLCJfcmVmNiIsIm9wdGlvbnMiLCJzaG93TGF5ZXJOYW1lIiwiZGVmYXVsdEFjdGlvbkljb25zIiwiQXJyb3dEb3duIiwiQXJyb3dSaWdodCIsIkxheWVyTGVnZW5kQ29udGVudEZhY3RvcnkiLCJMYXllckxlZ2VuZENvbnRlbnQiLCJfcmVmNyIsImNvbnRhaW5lclciLCJ2aXN1YWxDaGFubmVscyIsImdldExlZ2VuZFZpc3VhbENoYW5uZWxzIiwiY2hhbm5lbEtleXMiLCJ2YWx1ZXMiLCJjb2xvckNoYW5uZWxzIiwibm9uQ29sb3JDaGFubmVscyIsInZjIiwiRElNRU5TSU9OUyIsImNvbG9yQ2hhbm5lbFRvUmVuZGVyIiwiY2MiLCJfbGF5ZXIkZ2V0VmlzdWFsQ2hhbm4iLCJjb25kaXRpb24iLCJGcmFnbWVudCIsIm1hdGNoQ29uZGl0aW9uIiwiZW5hYmxlZCIsImRlZmF1bHRNZWFzdXJlIiwiTWFwTGVnZW5kRmFjdG9yeSIsIk1hcExlZ2VuZCIsIl9yZWY4IiwiX3JlZjgkbGF5ZXJzIiwibGF5ZXJzIiwiX3JlZjgkYWN0aW9uSWNvbnMiLCJpbmRleCIsImlzVmFsaWRUb1NhdmUiLCJoaWRkZW4iLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLWxlZ2VuZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7RkMsIHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSwgQ29tcG9uZW50VHlwZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3JnYn0gZnJvbSAnZDMtY29sb3InO1xuaW1wb3J0IHtmb3JtYXQgYXMgZDNGb3JtYXR9IGZyb20gJ2QzLWZvcm1hdCc7XG5pbXBvcnQge3VzZUludGx9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IENvbG9yTGVnZW5kRmFjdG9yeSwge0xlZ2VuZFJvd0ZhY3Rvcnl9IGZyb20gJy4uL2NvbW1vbi9jb2xvci1sZWdlbmQnO1xuaW1wb3J0IFJhZGl1c0xlZ2VuZCBmcm9tICcuLi9jb21tb24vcmFkaXVzLWxlZ2VuZCc7XG5pbXBvcnQge0NIQU5ORUxfU0NBTEVTLCBESU1FTlNJT05TfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7TGF5ZXIsIExheWVyQmFzZUNvbmZpZywgVmlzdWFsQ2hhbm5lbCwgVmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9ufSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0xheWVyVmlzQ29uZmlnLCBNYXBTdGF0ZSwgUkdCQ29sb3J9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtnZXREaXN0YW5jZVNjYWxlc30gZnJvbSAndmlld3BvcnQtbWVyY2F0b3ItcHJvamVjdCc7XG5pbXBvcnQge0Fycm93RG93biwgQXJyb3dSaWdodH0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkgZnJvbSAnLi4vc2lkZS1wYW5lbC9wYW5lbC1oZWFkZXItYWN0aW9uJztcblxuaW50ZXJmYWNlIFN0eWxlZE1hcENvbnRyb2xMZWdlbmRQcm9wcyB7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBsYXN0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1hcENvbnRyb2xMZWdlbmQgPSBzdHlsZWQuZGl2PFN0eWxlZE1hcENvbnRyb2xMZWdlbmRQcm9wcz5gXG4gIHBhZGRpbmc6IDEwcHggJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHggMTBweFxuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQm9yZGVyQ29sb3J9O1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogJHtwcm9wcyA9PiAocHJvcHMubGFzdCA/IDAgOiAnMXB4Jyl9O1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy53aWR0aH1weDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAubGVnZW5kLS1sYXllcl9uYW1lIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHg7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG4gIC5sZWdlbmQtLWxheWVyX3R5cGUge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHg7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9zaXplLXRpdGxlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX190aXRsZSB7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9faXRlbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgfVxuICAubGVnZW5kLS1sYXllcl9ieSB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9jb2xvcl9maWVsZCB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9jb2xvci1sZWdlbmQge1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFZpc3VhbENoYW5uZWxNZXRyaWMgPSAoe25hbWV9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX190aXRsZVwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9jb2xvcl9maWVsZFwiPlxuICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17bmFtZX0gLz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyU2l6ZUxlZ2VuZFByb3BzID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5ZXJEZWZhdWx0TGVnZW5kOiBSZWFjdC5GQzxMYXllclNpemVMZWdlbmRQcm9wcz4gPSAoe2xhYmVsLCBuYW1lfSkgPT5cbiAgbGFiZWwgPyAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX3NpemUtc2NoZW1hXCI+XG4gICAgICA8cD5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9ieVwiPntsYWJlbCA/IDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtsYWJlbH0gLz4gOiBudWxsfTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9ieVwiPiBieSA8L3NwYW4+XG4gICAgICA8L3A+XG4gICAgICB7bmFtZSAmJiA8VmlzdWFsQ2hhbm5lbE1ldHJpYyBuYW1lPXtuYW1lfSAvPn1cbiAgICA8L2Rpdj5cbiAgKSA6IG51bGw7XG5cbmV4cG9ydCB0eXBlIFNpbmdsZUNvbG9yTGVnZW5kUHJvcHMgPSB7XG4gIGNvbG9yOiBSR0JDb2xvcjtcbiAgbGFiZWw/OiBzdHJpbmc7XG59O1xuXG5TaW5nbGVDb2xvckxlZ2VuZEZhY3RvcnkuZGVwcyA9IFtMZWdlbmRSb3dGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIFNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeShMZWdlbmRSb3c6IFJldHVyblR5cGU8dHlwZW9mIExlZ2VuZFJvd0ZhY3Rvcnk+KSB7XG4gIGNvbnN0IFNpbmdsZUNvbG9yTGVnZW5kOiBSZWFjdC5GQzxTaW5nbGVDb2xvckxlZ2VuZFByb3BzPiA9ICh7Y29sb3IsIGxhYmVsfSkgPT4gKFxuICAgIDxMZWdlbmRSb3dcbiAgICAgIGxhYmVsPXtsYWJlbCA/PyAnJ31cbiAgICAgIGRpc3BsYXlMYWJlbD17Qm9vbGVhbihsYWJlbCl9XG4gICAgICBjb2xvcj17QXJyYXkuaXNBcnJheShjb2xvcikgPyByZ2IoLi4uY29sb3IpLnRvU3RyaW5nKCkgOiBjb2xvcn1cbiAgICAvPlxuICApO1xuXG4gIFNpbmdsZUNvbG9yTGVnZW5kLmRpc3BsYXlOYW1lID0gJ1NpbmdsZUNvbG9yTGVnZW5kJztcblxuICByZXR1cm4gUmVhY3QubWVtbyhTaW5nbGVDb2xvckxlZ2VuZCk7XG59XG5cbmV4cG9ydCB0eXBlIExheWVyQ29sb3JMZWdlbmRQcm9wcyA9IHtcbiAgZGVzY3JpcHRpb246IFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbjtcbiAgY29uZmlnOiBMYXllckJhc2VDb25maWc7XG4gIGNvbG9yQ2hhbm5lbDogVmlzdWFsQ2hhbm5lbDtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIGxheWVyOiBMYXllcjtcbiAgZGlzYWJsZUVkaXQ/OiBib29sZWFuO1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRJY29ucztcbn07XG5cbkxheWVyQ29sb3JMZWdlbmRGYWN0b3J5LmRlcHMgPSBbXG4gIENvbG9yTGVnZW5kRmFjdG9yeSxcbiAgU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5LFxuICBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnlcbl07XG5leHBvcnQgZnVuY3Rpb24gTGF5ZXJDb2xvckxlZ2VuZEZhY3RvcnkoXG4gIENvbG9yTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBDb2xvckxlZ2VuZEZhY3Rvcnk+LFxuICBTaW5nbGVDb2xvckxlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5PixcbiAgUGFuZWxIZWFkZXJBY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeT5cbikge1xuICBjb25zdCBMYXllckNvbG9yTGVnZW5kOiBSZWFjdC5GQzxMYXllckNvbG9yTGVnZW5kUHJvcHM+ID0gKHtcbiAgICBkZXNjcmlwdGlvbixcbiAgICBjb25maWcsXG4gICAgbGF5ZXIsXG4gICAgY29sb3JDaGFubmVsLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgaXNFeHBvcnQsXG4gICAgbWFwU3RhdGUsXG4gICAgYWN0aW9uSWNvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gICAgY29uc3QgZW5hYmxlQ29sb3JCeSA9IGRlc2NyaXB0aW9uLm1lYXN1cmU7XG4gICAgY29uc3Qge3NjYWxlLCBmaWVsZCwgZG9tYWluLCByYW5nZSwgcHJvcGVydHksIGZpeGVkfSA9IGNvbG9yQ2hhbm5lbDtcbiAgICBjb25zdCBbY29sb3JTY2FsZSwgY29sb3JGaWVsZCwgY29sb3JEb21haW5dID0gW3NjYWxlLCBmaWVsZCwgZG9tYWluXS5tYXAoayA9PiBjb25maWdba10pO1xuICAgIGNvbnN0IGlzRml4ZWQgPSBmaXhlZCAmJiBjb25maWcudmlzQ29uZmlnW2ZpeGVkXTtcblxuICAgIGNvbnN0IGNvbG9yUmFuZ2UgPSBjb25maWcudmlzQ29uZmlnW3JhbmdlXTtcbiAgICBjb25zdCBvblVwZGF0ZUNvbG9yTGVnZW5kID0gdXNlQ2FsbGJhY2soXG4gICAgICBjb2xvckxlZ2VuZHMgPT4ge1xuICAgICAgICBpZiAob25MYXllclZpc0NvbmZpZ0NoYW5nZSkge1xuICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UobGF5ZXIsIHtcbiAgICAgICAgICAgIFtyYW5nZV06IHtcbiAgICAgICAgICAgICAgLi4uY29sb3JSYW5nZSxcbiAgICAgICAgICAgICAgY29sb3JMZWdlbmRzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbbGF5ZXIsIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsIGNvbG9yUmFuZ2UsIHJhbmdlXVxuICAgICk7XG4gICAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUoaXNFeHBvcnQpO1xuICAgIGNvbnN0IGhhbmRsZVRvZ2dsZUV4cGFuZGVkID0gKCkgPT4gc2V0SXNFeHBhbmRlZCghaXNFeHBhbmRlZCk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9faXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3Itc2NoZW1hXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtlbmFibGVDb2xvckJ5ID8gKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS10aXRsZS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8VmlzdWFsQ2hhbm5lbE1ldHJpYyBuYW1lPXtlbmFibGVDb2xvckJ5fSAvPlxuICAgICAgICAgICAgICAgIHshaXNFeHBvcnQgPyAoXG4gICAgICAgICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJsZWdlbmQtY29sbGFwc2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlVG9nZ2xlRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e2lzRXhwYW5kZWQgPyBhY3Rpb25JY29ucy5leHBhbmRlZCA6IGFjdGlvbkljb25zLmNvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3ItbGVnZW5kXCI+XG4gICAgICAgICAgICAgIHtlbmFibGVDb2xvckJ5ID8gKFxuICAgICAgICAgICAgICAgIDxDb2xvckxlZ2VuZFxuICAgICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgICAgaXNFeHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICAgIHNjYWxlVHlwZT17Y29sb3JTY2FsZX1cbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlMYWJlbFxuICAgICAgICAgICAgICAgICAgZG9tYWluPXtjb2xvckRvbWFpbn1cbiAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZT17KGNvbG9yRmllbGQgJiYgY29sb3JGaWVsZC50eXBlKSB8fCAncmVhbCd9XG4gICAgICAgICAgICAgICAgICByYW5nZT17Y29sb3JSYW5nZX1cbiAgICAgICAgICAgICAgICAgIG9uVXBkYXRlQ29sb3JMZWdlbmQ9e29uVXBkYXRlQ29sb3JMZWdlbmR9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXQgfHwgQm9vbGVhbihpc0V4cG9ydCl9XG4gICAgICAgICAgICAgICAgICBpc0ZpeGVkPXtpc0ZpeGVkfVxuICAgICAgICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgICAgICAgbGFiZWxGb3JtYXQ9e1xuICAgICAgICAgICAgICAgICAgICBjb2xvckZpZWxkPy5kaXNwbGF5Rm9ybWF0ID8gZDNGb3JtYXQoY29sb3JGaWVsZD8uZGlzcGxheUZvcm1hdCkgOiBudWxsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8U2luZ2xlQ29sb3JMZWdlbmRcbiAgICAgICAgICAgICAgICAgIGNvbG9yPXtjb25maWcudmlzQ29uZmlnW3Byb3BlcnR5XSB8fCBjb25maWdbcHJvcGVydHldIHx8IGNvbmZpZy5jb2xvcn1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICBpZDogYG1hcExlZ2VuZC5sYXllcnMuJHtsYXllci50eXBlfS5zaW5nbGVDb2xvci4ke2NvbG9yQ2hhbm5lbC5rZXl9YCxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6IGludGwuZm9ybWF0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IGBtYXBMZWdlbmQubGF5ZXJzLmRlZmF1bHQuc2luZ2xlQ29sb3IuJHtjb2xvckNoYW5uZWwua2V5fWAsXG4gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6ICcgJyAvLyBtdXN0bid0IGJlIGVtcHR5IHN0cmluZyBvciBpZCB3aWxsIGJlIHVzZWRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIExheWVyQ29sb3JMZWdlbmQuZGlzcGxheU5hbWUgPSAnTGF5ZXJDb2xvckxlZ2VuZCc7XG4gIHJldHVybiBSZWFjdC5tZW1vKExheWVyQ29sb3JMZWdlbmQpO1xufVxuXG5mdW5jdGlvbiBnZXRMYXllclJhZGl1c1NjYWxlTWV0ZXJzVG9QaXhlbHNNdWx0aXBsaWVyKGxheWVyLCBtYXBTdGF0ZSkge1xuICAvLyBAdHMtaWdub3JlIHRoaXMgYWN0dWFsbHkgZXhpc3RcbiAgY29uc3Qge21ldGVyc1BlclBpeGVsfSA9IGdldERpc3RhbmNlU2NhbGVzKG1hcFN0YXRlKTtcbiAgLy8gaWYgbm8gZmllbGQgc2l6ZSBpcyBkZWZpbmVkIHdlIG5lZWQgdG8gcGFzcyBmaXhlZCByYWRpdXMgPSBmYWxzZVxuICBjb25zdCBmaXhlZFJhZGl1cyA9IGxheWVyLmNvbmZpZy52aXNDb25maWcuZml4ZWRSYWRpdXMgJiYgQm9vbGVhbihsYXllci5jb25maWcuc2l6ZUZpZWxkKTtcbiAgcmV0dXJuIGxheWVyLmdldFJhZGl1c1NjYWxlQnlab29tKG1hcFN0YXRlLCBmaXhlZFJhZGl1cykgLyBtZXRlcnNQZXJQaXhlbFswXTtcbn1cblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kSWNvbnMgPSB7XG4gIGV4cGFuZGVkOiBDb21wb25lbnRUeXBlPGFueT47XG4gIGNvbGxhcHNlZDogQ29tcG9uZW50VHlwZTxhbnk+O1xufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJSYWRpdXNMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICB3aWR0aDogbnVtYmVyO1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIHZpc3VhbENoYW5uZWw6IFZpc3VhbENoYW5uZWw7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5ZXJSYWRpdXNMZWdlbmQ6IEZDPExheWVyUmFkaXVzTGVnZW5kUHJvcHM+ID0gUmVhY3QubWVtbyhcbiAgKHtsYXllciwgd2lkdGgsIHZpc3VhbENoYW5uZWwsIG1hcFN0YXRlfSkgPT4ge1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKHZpc3VhbENoYW5uZWwua2V5KTtcbiAgICBjb25zdCBjb25maWcgPSBsYXllci5jb25maWc7XG5cbiAgICBjb25zdCBlbmFibGVTaXplQnkgPSBkZXNjcmlwdGlvbi5tZWFzdXJlO1xuICAgIGNvbnN0IHtzY2FsZSwgZmllbGQsIGRvbWFpbiwgcmFuZ2V9ID0gdmlzdWFsQ2hhbm5lbDtcbiAgICBjb25zdCBbc2l6ZVNjYWxlLCBzaXplRmllbGQsIHNpemVEb21haW5dID0gW3NjYWxlLCBmaWVsZCwgZG9tYWluXS5tYXAoayA9PiBjb25maWdba10pO1xuICAgIGxldCBzaXplUmFuZ2UgPSBjb25maWcudmlzQ29uZmlnW3JhbmdlXTtcblxuICAgIGlmIChtYXBTdGF0ZSkge1xuICAgICAgY29uc3QgcmFkaXVzTXVsdGlwbGllciA9IGdldExheWVyUmFkaXVzU2NhbGVNZXRlcnNUb1BpeGVsc011bHRpcGxpZXIobGF5ZXIsIG1hcFN0YXRlKTtcbiAgICAgIHNpemVSYW5nZSA9IHNpemVSYW5nZS5tYXAodiA9PiB2ICogcmFkaXVzTXVsdGlwbGllcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9zaXplLXNjaGVtYVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7ZW5hYmxlU2l6ZUJ5ID8gPFZpc3VhbENoYW5uZWxNZXRyaWMgbmFtZT17ZW5hYmxlU2l6ZUJ5fSAvPiA6IG51bGx9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS1sZWdlbmRcIj5cbiAgICAgICAgICAgICAge2VuYWJsZVNpemVCeSA/IChcbiAgICAgICAgICAgICAgICA8UmFkaXVzTGVnZW5kXG4gICAgICAgICAgICAgICAgICBzY2FsZVR5cGU9e3NpemVTY2FsZX1cbiAgICAgICAgICAgICAgICAgIGRvbWFpbj17c2l6ZURvbWFpbn1cbiAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZT17KHNpemVGaWVsZCAmJiBzaXplRmllbGQudHlwZSkgfHwgJ3JlYWwnfVxuICAgICAgICAgICAgICAgICAgcmFuZ2U9e3NpemVSYW5nZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IGlzQ29sb3JDaGFubmVsID0gdmlzdWFsQ2hhbm5lbCA9PlxuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3IsIENIQU5ORUxfU0NBTEVTLmNvbG9yQWdncl0uaW5jbHVkZXModmlzdWFsQ2hhbm5lbC5jaGFubmVsU2NhbGVUeXBlKTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJMZWdlbmRIZWFkZXJQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBvcHRpb25zPzoge1xuICAgIHNob3dMYXllck5hbWU/OiBib29sZWFuO1xuICB9O1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG59O1xuXG5jb25zdCBpc1JhZGl1c0NoYW5uZWwgPSB2aXN1YWxDaGFubmVsID0+XG4gIFtDSEFOTkVMX1NDQUxFUy5yYWRpdXNdLmluY2x1ZGVzKHZpc3VhbENoYW5uZWwuY2hhbm5lbFNjYWxlVHlwZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBMYXllckxlZ2VuZEhlYWRlckZhY3RvcnkoKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kSGVhZGVyOiBSZWFjdC5GQzxMYXllckxlZ2VuZEhlYWRlclByb3BzPiA9ICh7b3B0aW9ucywgbGF5ZXJ9KSA9PiB7XG4gICAgcmV0dXJuIG9wdGlvbnM/LnNob3dMYXllck5hbWUgIT09IGZhbHNlID8gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX25hbWVcIj57bGF5ZXIuY29uZmlnLmxhYmVsfTwvZGl2PlxuICAgICkgOiBudWxsO1xuICB9O1xuICByZXR1cm4gTGF5ZXJMZWdlbmRIZWFkZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgZXhwYW5kZWQ6IEFycm93RG93bixcbiAgY29sbGFwc2VkOiBBcnJvd1JpZ2h0XG59O1xuXG5leHBvcnQgdHlwZSBMYXllckxlZ2VuZENvbnRlbnRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBjb250YWluZXJXOiBudW1iZXI7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPzogKG9sZExheWVyOiBMYXllciwgbmV3VmlzQ29uZmlnOiBQYXJ0aWFsPExheWVyVmlzQ29uZmlnPikgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM6IE1hcExlZ2VuZEljb25zO1xufTtcblxuTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeS5kZXBzID0gW0xheWVyQ29sb3JMZWdlbmRGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIExheWVyTGVnZW5kQ29udGVudEZhY3RvcnkoXG4gIExheWVyQ29sb3JMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQ29sb3JMZWdlbmRGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kQ29udGVudDogUmVhY3QuRkM8TGF5ZXJMZWdlbmRDb250ZW50UHJvcHM+ID0gKHtcbiAgICBsYXllcixcbiAgICBjb250YWluZXJXLFxuICAgIG1hcFN0YXRlLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIGlzRXhwb3J0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgYWN0aW9uSWNvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHZpc3VhbENoYW5uZWxzID0gbGF5ZXIuZ2V0TGVnZW5kVmlzdWFsQ2hhbm5lbHMoKTtcbiAgICBjb25zdCBjaGFubmVsS2V5cyA9IE9iamVjdC52YWx1ZXModmlzdWFsQ2hhbm5lbHMpO1xuICAgIGNvbnN0IGNvbG9yQ2hhbm5lbHMgPSBjaGFubmVsS2V5cy5maWx0ZXIoaXNDb2xvckNoYW5uZWwpIGFzIFZpc3VhbENoYW5uZWxbXTtcbiAgICBjb25zdCBub25Db2xvckNoYW5uZWxzID0gY2hhbm5lbEtleXMuZmlsdGVyKHZjID0+ICFpc0NvbG9yQ2hhbm5lbCh2YykpO1xuICAgIGNvbnN0IHdpZHRoID0gY29udGFpbmVyVyAtIDIgKiBESU1FTlNJT05TLm1hcENvbnRyb2wucGFkZGluZztcblxuICAgIC8vIHJlbmRlciBjb2xvciBieSBjaGFuZWwgb25seVxuICAgIGxldCBjb2xvckNoYW5uZWxUb1JlbmRlciA9IGNvbG9yQ2hhbm5lbHMuZmlsdGVyKFxuICAgICAgY2MgPT5cbiAgICAgICAgKCFjYy5jb25kaXRpb24gfHwgY2MuY29uZGl0aW9uKGxheWVyLmNvbmZpZykpICYmXG4gICAgICAgIGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbihjYy5rZXkpPy5tZWFzdXJlXG4gICAgKTtcbiAgICAvLyBpZiBubyBjb2xvciBieSBjaGFuZWwsIHJlbmRlciByZXN0XG4gICAgaWYgKCFjb2xvckNoYW5uZWxUb1JlbmRlci5sZW5ndGgpIHtcbiAgICAgIGNvbG9yQ2hhbm5lbFRvUmVuZGVyID0gY29sb3JDaGFubmVscy5maWx0ZXIoXG4gICAgICAgIGNjID0+ICFjYy5jb25kaXRpb24gfHwgY2MuY29uZGl0aW9uKGxheWVyLmNvbmZpZylcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7Y29sb3JDaGFubmVsVG9SZW5kZXIubWFwKGNvbG9yQ2hhbm5lbCA9PiAoXG4gICAgICAgICAgPExheWVyQ29sb3JMZWdlbmRcbiAgICAgICAgICAgIGtleT17Y29sb3JDaGFubmVsLmtleX1cbiAgICAgICAgICAgIGNvbG9yQ2hhbm5lbD17Y29sb3JDaGFubmVsfVxuICAgICAgICAgICAgY29uZmlnPXtsYXllci5jb25maWd9XG4gICAgICAgICAgICBkZXNjcmlwdGlvbj17bGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKGNvbG9yQ2hhbm5lbC5rZXkpfVxuICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT17b25MYXllclZpc0NvbmZpZ0NoYW5nZX1cbiAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgICAge25vbkNvbG9yQ2hhbm5lbHMubWFwKCh2aXN1YWxDaGFubmVsOiBWaXN1YWxDaGFubmVsKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWF0Y2hDb25kaXRpb24gPSAhdmlzdWFsQ2hhbm5lbC5jb25kaXRpb24gfHwgdmlzdWFsQ2hhbm5lbC5jb25kaXRpb24obGF5ZXIuY29uZmlnKTtcbiAgICAgICAgICBjb25zdCBlbmFibGVkID0gbGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWwuZmllbGRdIHx8IHZpc3VhbENoYW5uZWwuZGVmYXVsdE1lYXN1cmU7XG5cbiAgICAgICAgICBpZiAobWF0Y2hDb25kaXRpb24gJiYgZW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24odmlzdWFsQ2hhbm5lbC5rZXkpO1xuICAgICAgICAgICAgaWYgKGlzUmFkaXVzQ2hhbm5lbCh2aXN1YWxDaGFubmVsKSkge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxMYXllclJhZGl1c0xlZ2VuZFxuICAgICAgICAgICAgICAgICAga2V5PXt2aXN1YWxDaGFubmVsLmtleX1cbiAgICAgICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAgIHZpc3VhbENoYW5uZWw9e3Zpc3VhbENoYW5uZWx9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxMYXllckRlZmF1bHRMZWdlbmRcbiAgICAgICAgICAgICAgICBrZXk9e3Zpc3VhbENoYW5uZWwua2V5fVxuICAgICAgICAgICAgICAgIGxhYmVsPXtkZXNjcmlwdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICBuYW1lPXtkZXNjcmlwdGlvbi5tZWFzdXJlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gTGF5ZXJMZWdlbmRDb250ZW50O1xufVxuXG5leHBvcnQgdHlwZSBNYXBMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXJzPzogUmVhZG9ubHlBcnJheTxMYXllcj47XG4gIHdpZHRoPzogbnVtYmVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBvcHRpb25zPzoge1xuICAgIHNob3dMYXllck5hbWU/OiBib29sZWFuO1xuICB9O1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIGFjdGlvbkljb25zPzogTWFwTGVnZW5kSWNvbnM7XG59O1xuXG5NYXBMZWdlbmRGYWN0b3J5LmRlcHMgPSBbTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5LCBMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5XTtcblxuZnVuY3Rpb24gTWFwTGVnZW5kRmFjdG9yeShcbiAgTGF5ZXJMZWdlbmRIZWFkZXI6IFJldHVyblR5cGU8dHlwZW9mIExheWVyTGVnZW5kSGVhZGVyRmFjdG9yeT4sXG4gIExheWVyTGVnZW5kQ29udGVudDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeT5cbikge1xuICBjb25zdCBNYXBMZWdlbmQ6IFJlYWN0LkZDPE1hcExlZ2VuZFByb3BzPiA9ICh7XG4gICAgbGF5ZXJzID0gW10sXG4gICAgd2lkdGgsXG4gICAgbWFwU3RhdGUsXG4gICAgb3B0aW9ucyxcbiAgICBkaXNhYmxlRWRpdCxcbiAgICBpc0V4cG9ydCxcbiAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICAgIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zXG4gIH0pID0+IChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hcC1sZWdlbmRcIj5cbiAgICAgIHtsYXllcnMubWFwKChsYXllciwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFsYXllci5pc1ZhbGlkVG9TYXZlKCkgfHwgbGF5ZXIuY29uZmlnLmhpZGRlbikge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclcgPSB3aWR0aCB8fCBESU1FTlNJT05TLm1hcENvbnRyb2wud2lkdGg7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U3R5bGVkTWFwQ29udHJvbExlZ2VuZFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllclwiXG4gICAgICAgICAgICBsYXN0PXtpbmRleCA9PT0gbGF5ZXJzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgd2lkdGg9e2NvbnRhaW5lcld9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kSGVhZGVyIGlzRXhwb3J0PXtpc0V4cG9ydH0gb3B0aW9ucz17b3B0aW9uc30gbGF5ZXI9e2xheWVyfSAvPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kQ29udGVudFxuICAgICAgICAgICAgICBjb250YWluZXJXPXtjb250YWluZXJXfVxuICAgICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U9e29uTGF5ZXJWaXNDb25maWdDaGFuZ2V9XG4gICAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRNYXBDb250cm9sTGVnZW5kPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG5cbiAgTWFwTGVnZW5kLmRpc3BsYXlOYW1lID0gJ01hcExlZ2VuZCc7XG5cbiAgcmV0dXJuIE1hcExlZ2VuZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwTGVnZW5kRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQVAsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQVQsT0FBQTtB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
396
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZDNDb2xvciIsIl9kM0Zvcm1hdCIsIl9yZWFjdEludGwiLCJfY29sb3JMZWdlbmQiLCJfcmFkaXVzTGVnZW5kIiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfdmlld3BvcnRNZXJjYXRvclByb2plY3QiLCJfaWNvbnMiLCJfcGFuZWxIZWFkZXJBY3Rpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlN0eWxlZE1hcENvbnRyb2xMZWdlbmQiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwibWFwQ29udHJvbCIsInBhZGRpbmciLCJmb250RmFtaWx5IiwicGFuZWxCb3JkZXJDb2xvciIsIiRsYXN0Iiwid2lkdGgiLCJ0ZXh0Q29sb3IiLCJzdWJ0ZXh0Q29sb3IiLCJ0ZXh0Q29sb3JIbCIsIlN0eWxlZExlZ2VuZEhlYWRlclJvdyIsIlN0eWxlZFZpc2liaWxpdHlUb2dnbGUiLCIkaXNWaXNpYmxlIiwiVmlzdWFsQ2hhbm5lbE1ldHJpYyIsIl9yZWYiLCJuYW1lIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJpZCIsIkxheWVyRGVmYXVsdExlZ2VuZCIsIl9yZWYyIiwibGFiZWwiLCJTaW5nbGVDb2xvckxlZ2VuZEZhY3RvcnkiLCJkZXBzIiwiTGVnZW5kUm93RmFjdG9yeSIsIkxlZ2VuZFJvdyIsIlNpbmdsZUNvbG9yTGVnZW5kIiwiX3JlZjMiLCJjb2xvciIsImRpc3BsYXlMYWJlbCIsIkJvb2xlYW4iLCJBcnJheSIsImlzQXJyYXkiLCJyZ2IiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwidG9TdHJpbmciLCJkaXNwbGF5TmFtZSIsIlJlYWN0IiwibWVtbyIsIkxheWVyQ29sb3JMZWdlbmRGYWN0b3J5IiwiQ29sb3JMZWdlbmRGYWN0b3J5IiwiUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IiwiQ29sb3JMZWdlbmQiLCJQYW5lbEhlYWRlckFjdGlvbiIsIkxheWVyQ29sb3JMZWdlbmQiLCJfcmVmNCIsImRlc2NyaXB0aW9uIiwiY29uZmlnIiwibGF5ZXIiLCJjb2xvckNoYW5uZWwiLCJkaXNhYmxlRWRpdCIsIm9uTGF5ZXJWaXNDb25maWdDaGFuZ2UiLCJpc0V4cG9ydCIsIm1hcFN0YXRlIiwiYWN0aW9uSWNvbnMiLCJpbnRsIiwidXNlSW50bCIsImVuYWJsZUNvbG9yQnkiLCJtZWFzdXJlIiwic2NhbGUiLCJmaWVsZCIsImRvbWFpbiIsInJhbmdlIiwicHJvcGVydHkiLCJmaXhlZCIsIl9tYXAiLCJtYXAiLCJrIiwiX21hcDIiLCJfc2xpY2VkVG9BcnJheTIiLCJjb2xvclNjYWxlIiwiY29sb3JGaWVsZCIsImNvbG9yRG9tYWluIiwiaXNGaXhlZCIsInZpc0NvbmZpZyIsImNvbG9yUmFuZ2UiLCJvblVwZGF0ZUNvbG9yTGVnZW5kIiwidXNlQ2FsbGJhY2siLCJjb2xvckxlZ2VuZHMiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJpc0V4cGFuZGVkIiwic2V0SXNFeHBhbmRlZCIsImhhbmRsZVRvZ2dsZUV4cGFuZGVkIiwib25DbGljayIsIkljb25Db21wb25lbnQiLCJleHBhbmRlZCIsImNvbGxhcHNlZCIsInNjYWxlVHlwZSIsImZpZWxkVHlwZSIsInR5cGUiLCJsYWJlbEZvcm1hdCIsImRpc3BsYXlGb3JtYXQiLCJkM0Zvcm1hdCIsImZvcm1hdE1lc3NhZ2UiLCJjb25jYXQiLCJrZXkiLCJkZWZhdWx0TWVzc2FnZSIsImdldExheWVyUmFkaXVzU2NhbGVNZXRlcnNUb1BpeGVsc011bHRpcGxpZXIiLCJfZ2V0RGlzdGFuY2VTY2FsZXMiLCJnZXREaXN0YW5jZVNjYWxlcyIsIm1ldGVyc1BlclBpeGVsIiwiZml4ZWRSYWRpdXMiLCJzaXplRmllbGQiLCJnZXRSYWRpdXNTY2FsZUJ5Wm9vbSIsIkxheWVyUmFkaXVzTGVnZW5kIiwiX3JlZjUiLCJ2aXN1YWxDaGFubmVsIiwiZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uIiwiZW5hYmxlU2l6ZUJ5IiwiX21hcDMiLCJfbWFwNCIsInNpemVTY2FsZSIsInNpemVEb21haW4iLCJzaXplUmFuZ2UiLCJyYWRpdXNNdWx0aXBsaWVyIiwidiIsImlzQ29sb3JDaGFubmVsIiwiQ0hBTk5FTF9TQ0FMRVMiLCJjb2xvckFnZ3IiLCJpbmNsdWRlcyIsImNoYW5uZWxTY2FsZVR5cGUiLCJpc1JhZGl1c0NoYW5uZWwiLCJyYWRpdXMiLCJMYXllckxlZ2VuZEhlYWRlckZhY3RvcnkiLCJMYXllckxlZ2VuZEhlYWRlciIsIl9yZWY2Iiwib3B0aW9ucyIsIm9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5IiwiaXNWaXNpYmxlIiwib25Ub2dnbGUiLCJzaG93TGF5ZXJOYW1lIiwic3R5bGUiLCJvcGFjaXR5IiwiRXllU2VlbiIsImhlaWdodCIsIkV5ZVVuc2VlbiIsImRlZmF1bHRBY3Rpb25JY29ucyIsIkFycm93RG93biIsIkFycm93UmlnaHQiLCJMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5IiwiTGF5ZXJMZWdlbmRDb250ZW50IiwiX3JlZjciLCJjb250YWluZXJXIiwidmlzdWFsQ2hhbm5lbHMiLCJnZXRMZWdlbmRWaXN1YWxDaGFubmVscyIsImNoYW5uZWxLZXlzIiwidmFsdWVzIiwiY29sb3JDaGFubmVscyIsIm5vbkNvbG9yQ2hhbm5lbHMiLCJ2YyIsIkRJTUVOU0lPTlMiLCJjb2xvckNoYW5uZWxUb1JlbmRlciIsImNjIiwiX2xheWVyJGdldFZpc3VhbENoYW5uIiwiY29uZGl0aW9uIiwiRnJhZ21lbnQiLCJtYXRjaENvbmRpdGlvbiIsImVuYWJsZWQiLCJkZWZhdWx0TWVhc3VyZSIsIk1hcExlZ2VuZEZhY3RvcnkiLCJNYXBMZWdlbmQiLCJfcmVmOCIsIl9yZWY4JGxheWVycyIsImxheWVycyIsIl9yZWY4JGFjdGlvbkljb25zIiwiaW5kZXgiLCJpc1ZhbGlkVG9TYXZlIiwiaGlkZGVuIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwL21hcC1sZWdlbmQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0ZDLCB1c2VDYWxsYmFjaywgdXNlU3RhdGUsIENvbXBvbmVudFR5cGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtyZ2J9IGZyb20gJ2QzLWNvbG9yJztcbmltcG9ydCB7Zm9ybWF0IGFzIGQzRm9ybWF0fSBmcm9tICdkMy1mb3JtYXQnO1xuaW1wb3J0IHt1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCBDb2xvckxlZ2VuZEZhY3RvcnksIHtMZWdlbmRSb3dGYWN0b3J5fSBmcm9tICcuLi9jb21tb24vY29sb3ItbGVnZW5kJztcbmltcG9ydCBSYWRpdXNMZWdlbmQgZnJvbSAnLi4vY29tbW9uL3JhZGl1cy1sZWdlbmQnO1xuaW1wb3J0IHtDSEFOTkVMX1NDQUxFUywgRElNRU5TSU9OU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge0xheWVyLCBMYXllckJhc2VDb25maWcsIFZpc3VhbENoYW5uZWwsIFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtMYXllclZpc0NvbmZpZywgTWFwU3RhdGUsIFJHQkNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7Z2V0RGlzdGFuY2VTY2FsZXN9IGZyb20gJ3ZpZXdwb3J0LW1lcmNhdG9yLXByb2plY3QnO1xuaW1wb3J0IHtBcnJvd0Rvd24sIEFycm93UmlnaHQsIEV5ZVNlZW4sIEV5ZVVuc2Vlbn0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkgZnJvbSAnLi4vc2lkZS1wYW5lbC9wYW5lbC1oZWFkZXItYWN0aW9uJztcblxuaW50ZXJmYWNlIFN0eWxlZE1hcENvbnRyb2xMZWdlbmRQcm9wcyB7XG4gIHdpZHRoPzogbnVtYmVyO1xuICAkbGFzdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNYXBDb250cm9sTGVnZW5kID0gc3R5bGVkLmRpdjxTdHlsZWRNYXBDb250cm9sTGVnZW5kUHJvcHM+YFxuICBwYWRkaW5nOiAxMHB4ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4IDEwcHhcbiAgICAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5fTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJvcmRlckNvbG9yfTtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLiRsYXN0ID8gMCA6ICcxcHgnKX07XG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gIC5sZWdlbmQtLWxheWVyX25hbWUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cbiAgLmxlZ2VuZC0tbGF5ZXJfdHlwZSB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX3NpemUtdGl0bGUtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfX3RpdGxlIHtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX19pdGVtIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICB9XG4gIC5sZWdlbmQtLWxheWVyX2J5IHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX2NvbG9yX2ZpZWxkIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX2NvbG9yLWxlZ2VuZCB7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRMZWdlbmRIZWFkZXJSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5gO1xuXG5jb25zdCBTdHlsZWRWaXNpYmlsaXR5VG9nZ2xlID0gc3R5bGVkLmRpdjx7JGlzVmlzaWJsZTogYm9vbGVhbn0+YFxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke3Byb3BzID0+IChwcm9wcy4kaXNWaXNpYmxlID8gcHJvcHMudGhlbWUudGV4dENvbG9yIDogcHJvcHMudGhlbWUuc3VidGV4dENvbG9yKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIG9wYWNpdHk6ICR7cHJvcHMgPT4gKHByb3BzLiRpc1Zpc2libGUgPyAxIDogMC41KX07XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBWaXN1YWxDaGFubmVsTWV0cmljID0gKHtuYW1lfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9fdGl0bGVcIj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3JfZmllbGRcIj5cbiAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e25hbWV9IC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBMYXllclNpemVMZWdlbmRQcm9wcyA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IExheWVyRGVmYXVsdExlZ2VuZDogUmVhY3QuRkM8TGF5ZXJTaXplTGVnZW5kUHJvcHM+ID0gKHtsYWJlbCwgbmFtZX0pID0+XG4gIGxhYmVsID8gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9zaXplLXNjaGVtYVwiPlxuICAgICAgPHA+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfYnlcIj57bGFiZWwgPyA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17bGFiZWx9IC8+IDogbnVsbH08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfYnlcIj4gYnkgPC9zcGFuPlxuICAgICAgPC9wPlxuICAgICAge25hbWUgJiYgPFZpc3VhbENoYW5uZWxNZXRyaWMgbmFtZT17bmFtZX0gLz59XG4gICAgPC9kaXY+XG4gICkgOiBudWxsO1xuXG5leHBvcnQgdHlwZSBTaW5nbGVDb2xvckxlZ2VuZFByb3BzID0ge1xuICBjb2xvcjogUkdCQ29sb3I7XG4gIGxhYmVsPzogc3RyaW5nO1xufTtcblxuU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5LmRlcHMgPSBbTGVnZW5kUm93RmFjdG9yeV07XG5cbmV4cG9ydCBmdW5jdGlvbiBTaW5nbGVDb2xvckxlZ2VuZEZhY3RvcnkoTGVnZW5kUm93OiBSZXR1cm5UeXBlPHR5cGVvZiBMZWdlbmRSb3dGYWN0b3J5Pikge1xuICBjb25zdCBTaW5nbGVDb2xvckxlZ2VuZDogUmVhY3QuRkM8U2luZ2xlQ29sb3JMZWdlbmRQcm9wcz4gPSAoe2NvbG9yLCBsYWJlbH0pID0+IChcbiAgICA8TGVnZW5kUm93XG4gICAgICBsYWJlbD17bGFiZWwgPz8gJyd9XG4gICAgICBkaXNwbGF5TGFiZWw9e0Jvb2xlYW4obGFiZWwpfVxuICAgICAgY29sb3I9e0FycmF5LmlzQXJyYXkoY29sb3IpID8gcmdiKC4uLmNvbG9yKS50b1N0cmluZygpIDogY29sb3J9XG4gICAgLz5cbiAgKTtcblxuICBTaW5nbGVDb2xvckxlZ2VuZC5kaXNwbGF5TmFtZSA9ICdTaW5nbGVDb2xvckxlZ2VuZCc7XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oU2luZ2xlQ29sb3JMZWdlbmQpO1xufVxuXG5leHBvcnQgdHlwZSBMYXllckNvbG9yTGVnZW5kUHJvcHMgPSB7XG4gIGRlc2NyaXB0aW9uOiBWaXN1YWxDaGFubmVsRGVzY3JpcHRpb247XG4gIGNvbmZpZzogTGF5ZXJCYXNlQ29uZmlnO1xuICBjb2xvckNoYW5uZWw6IFZpc3VhbENoYW5uZWw7XG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U/OiAob2xkTGF5ZXI6IExheWVyLCBuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICBsYXllcjogTGF5ZXI7XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBhY3Rpb25JY29uczogTWFwTGVnZW5kSWNvbnM7XG59O1xuXG5MYXllckNvbG9yTGVnZW5kRmFjdG9yeS5kZXBzID0gW1xuICBDb2xvckxlZ2VuZEZhY3RvcnksXG4gIFNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeSxcbiAgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5XG5dO1xuZXhwb3J0IGZ1bmN0aW9uIExheWVyQ29sb3JMZWdlbmRGYWN0b3J5KFxuICBDb2xvckxlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgQ29sb3JMZWdlbmRGYWN0b3J5PixcbiAgU2luZ2xlQ29sb3JMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIFNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeT4sXG4gIFBhbmVsSGVhZGVyQWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTGF5ZXJDb2xvckxlZ2VuZDogUmVhY3QuRkM8TGF5ZXJDb2xvckxlZ2VuZFByb3BzPiA9ICh7XG4gICAgZGVzY3JpcHRpb24sXG4gICAgY29uZmlnLFxuICAgIGxheWVyLFxuICAgIGNvbG9yQ2hhbm5lbCxcbiAgICBkaXNhYmxlRWRpdCxcbiAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICAgIGlzRXhwb3J0LFxuICAgIG1hcFN0YXRlLFxuICAgIGFjdGlvbkljb25zXG4gIH0pID0+IHtcbiAgICBjb25zdCBpbnRsID0gdXNlSW50bCgpO1xuICAgIGNvbnN0IGVuYWJsZUNvbG9yQnkgPSBkZXNjcmlwdGlvbi5tZWFzdXJlO1xuICAgIGNvbnN0IHtzY2FsZSwgZmllbGQsIGRvbWFpbiwgcmFuZ2UsIHByb3BlcnR5LCBmaXhlZH0gPSBjb2xvckNoYW5uZWw7XG4gICAgY29uc3QgW2NvbG9yU2NhbGUsIGNvbG9yRmllbGQsIGNvbG9yRG9tYWluXSA9IFtzY2FsZSwgZmllbGQsIGRvbWFpbl0ubWFwKGsgPT4gY29uZmlnW2tdKTtcbiAgICBjb25zdCBpc0ZpeGVkID0gZml4ZWQgJiYgY29uZmlnLnZpc0NvbmZpZ1tmaXhlZF07XG5cbiAgICBjb25zdCBjb2xvclJhbmdlID0gY29uZmlnLnZpc0NvbmZpZ1tyYW5nZV07XG4gICAgY29uc3Qgb25VcGRhdGVDb2xvckxlZ2VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgY29sb3JMZWdlbmRzID0+IHtcbiAgICAgICAgaWYgKG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UpIHtcbiAgICAgICAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlKGxheWVyLCB7XG4gICAgICAgICAgICBbcmFuZ2VdOiB7XG4gICAgICAgICAgICAgIC4uLmNvbG9yUmFuZ2UsXG4gICAgICAgICAgICAgIGNvbG9yTGVnZW5kc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2xheWVyLCBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLCBjb2xvclJhbmdlLCByYW5nZV1cbiAgICApO1xuICAgIGNvbnN0IFtpc0V4cGFuZGVkLCBzZXRJc0V4cGFuZGVkXSA9IHVzZVN0YXRlKGlzRXhwb3J0KTtcbiAgICBjb25zdCBoYW5kbGVUb2dnbGVFeHBhbmRlZCA9ICgpID0+IHNldElzRXhwYW5kZWQoIWlzRXhwYW5kZWQpO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfX2l0ZW1cIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX2NvbG9yLXNjaGVtYVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7ZW5hYmxlQ29sb3JCeSA/IChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX3NpemUtdGl0bGUtcm93XCI+XG4gICAgICAgICAgICAgICAgPFZpc3VhbENoYW5uZWxNZXRyaWMgbmFtZT17ZW5hYmxlQ29sb3JCeX0gLz5cbiAgICAgICAgICAgICAgICB7IWlzRXhwb3J0ID8gKFxuICAgICAgICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwibGVnZW5kLWNvbGxhcHNlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZUV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBJY29uQ29tcG9uZW50PXtpc0V4cGFuZGVkID8gYWN0aW9uSWNvbnMuZXhwYW5kZWQgOiBhY3Rpb25JY29ucy5jb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX2NvbG9yLWxlZ2VuZFwiPlxuICAgICAgICAgICAgICB7ZW5hYmxlQ29sb3JCeSA/IChcbiAgICAgICAgICAgICAgICA8Q29sb3JMZWdlbmRcbiAgICAgICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgICAgIGlzRXhwYW5kZWQ9e2lzRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBzY2FsZVR5cGU9e2NvbG9yU2NhbGV9XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5TGFiZWxcbiAgICAgICAgICAgICAgICAgIGRvbWFpbj17Y29sb3JEb21haW59XG4gICAgICAgICAgICAgICAgICBmaWVsZFR5cGU9eyhjb2xvckZpZWxkICYmIGNvbG9yRmllbGQudHlwZSkgfHwgJ3JlYWwnfVxuICAgICAgICAgICAgICAgICAgcmFuZ2U9e2NvbG9yUmFuZ2V9XG4gICAgICAgICAgICAgICAgICBvblVwZGF0ZUNvbG9yTGVnZW5kPXtvblVwZGF0ZUNvbG9yTGVnZW5kfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0IHx8IEJvb2xlYW4oaXNFeHBvcnQpfVxuICAgICAgICAgICAgICAgICAgaXNGaXhlZD17aXNGaXhlZH1cbiAgICAgICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgIGxhYmVsRm9ybWF0PXtcbiAgICAgICAgICAgICAgICAgICAgY29sb3JGaWVsZD8uZGlzcGxheUZvcm1hdCA/IGQzRm9ybWF0KGNvbG9yRmllbGQ/LmRpc3BsYXlGb3JtYXQpIDogbnVsbFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFNpbmdsZUNvbG9yTGVnZW5kXG4gICAgICAgICAgICAgICAgICBjb2xvcj17Y29uZmlnLnZpc0NvbmZpZ1twcm9wZXJ0eV0gfHwgY29uZmlnW3Byb3BlcnR5XSB8fCBjb25maWcuY29sb3J9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGBtYXBMZWdlbmQubGF5ZXJzLiR7bGF5ZXIudHlwZX0uc2luZ2xlQ29sb3IuJHtjb2xvckNoYW5uZWwua2V5fWAsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlOiBpbnRsLmZvcm1hdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiBgbWFwTGVnZW5kLmxheWVycy5kZWZhdWx0LnNpbmdsZUNvbG9yLiR7Y29sb3JDaGFubmVsLmtleX1gLFxuICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlOiAnICcgLy8gbXVzdG4ndCBiZSBlbXB0eSBzdHJpbmcgb3IgaWQgd2lsbCBiZSB1c2VkXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICBMYXllckNvbG9yTGVnZW5kLmRpc3BsYXlOYW1lID0gJ0xheWVyQ29sb3JMZWdlbmQnO1xuICByZXR1cm4gUmVhY3QubWVtbyhMYXllckNvbG9yTGVnZW5kKTtcbn1cblxuZnVuY3Rpb24gZ2V0TGF5ZXJSYWRpdXNTY2FsZU1ldGVyc1RvUGl4ZWxzTXVsdGlwbGllcihsYXllciwgbWFwU3RhdGUpIHtcbiAgLy8gQHRzLWlnbm9yZSB0aGlzIGFjdHVhbGx5IGV4aXN0XG4gIGNvbnN0IHttZXRlcnNQZXJQaXhlbH0gPSBnZXREaXN0YW5jZVNjYWxlcyhtYXBTdGF0ZSk7XG4gIC8vIGlmIG5vIGZpZWxkIHNpemUgaXMgZGVmaW5lZCB3ZSBuZWVkIHRvIHBhc3MgZml4ZWQgcmFkaXVzID0gZmFsc2VcbiAgY29uc3QgZml4ZWRSYWRpdXMgPSBsYXllci5jb25maWcudmlzQ29uZmlnLmZpeGVkUmFkaXVzICYmIEJvb2xlYW4obGF5ZXIuY29uZmlnLnNpemVGaWVsZCk7XG4gIHJldHVybiBsYXllci5nZXRSYWRpdXNTY2FsZUJ5Wm9vbShtYXBTdGF0ZSwgZml4ZWRSYWRpdXMpIC8gbWV0ZXJzUGVyUGl4ZWxbMF07XG59XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZEljb25zID0ge1xuICBleHBhbmRlZDogQ29tcG9uZW50VHlwZTxhbnk+O1xuICBjb2xsYXBzZWQ6IENvbXBvbmVudFR5cGU8YW55Pjtcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyUmFkaXVzTGVnZW5kUHJvcHMgPSB7XG4gIGxheWVyOiBMYXllcjtcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICB2aXN1YWxDaGFubmVsOiBWaXN1YWxDaGFubmVsO1xufTtcblxuZXhwb3J0IGNvbnN0IExheWVyUmFkaXVzTGVnZW5kOiBGQzxMYXllclJhZGl1c0xlZ2VuZFByb3BzPiA9IFJlYWN0Lm1lbW8oXG4gICh7bGF5ZXIsIHdpZHRoLCB2aXN1YWxDaGFubmVsLCBtYXBTdGF0ZX0pID0+IHtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbih2aXN1YWxDaGFubmVsLmtleSk7XG4gICAgY29uc3QgY29uZmlnID0gbGF5ZXIuY29uZmlnO1xuXG4gICAgY29uc3QgZW5hYmxlU2l6ZUJ5ID0gZGVzY3JpcHRpb24ubWVhc3VyZTtcbiAgICBjb25zdCB7c2NhbGUsIGZpZWxkLCBkb21haW4sIHJhbmdlfSA9IHZpc3VhbENoYW5uZWw7XG4gICAgY29uc3QgW3NpemVTY2FsZSwgc2l6ZUZpZWxkLCBzaXplRG9tYWluXSA9IFtzY2FsZSwgZmllbGQsIGRvbWFpbl0ubWFwKGsgPT4gY29uZmlnW2tdKTtcbiAgICBsZXQgc2l6ZVJhbmdlID0gY29uZmlnLnZpc0NvbmZpZ1tyYW5nZV07XG5cbiAgICBpZiAobWFwU3RhdGUpIHtcbiAgICAgIGNvbnN0IHJhZGl1c011bHRpcGxpZXIgPSBnZXRMYXllclJhZGl1c1NjYWxlTWV0ZXJzVG9QaXhlbHNNdWx0aXBsaWVyKGxheWVyLCBtYXBTdGF0ZSk7XG4gICAgICBzaXplUmFuZ2UgPSBzaXplUmFuZ2UubWFwKHYgPT4gdiAqIHJhZGl1c011bHRpcGxpZXIpO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS1zY2hlbWFcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAge2VuYWJsZVNpemVCeSA/IDxWaXN1YWxDaGFubmVsTWV0cmljIG5hbWU9e2VuYWJsZVNpemVCeX0gLz4gOiBudWxsfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX3NpemUtbGVnZW5kXCI+XG4gICAgICAgICAgICAgIHtlbmFibGVTaXplQnkgPyAoXG4gICAgICAgICAgICAgICAgPFJhZGl1c0xlZ2VuZFxuICAgICAgICAgICAgICAgICAgc2NhbGVUeXBlPXtzaXplU2NhbGV9XG4gICAgICAgICAgICAgICAgICBkb21haW49e3NpemVEb21haW59XG4gICAgICAgICAgICAgICAgICBmaWVsZFR5cGU9eyhzaXplRmllbGQgJiYgc2l6ZUZpZWxkLnR5cGUpIHx8ICdyZWFsJ31cbiAgICAgICAgICAgICAgICAgIHJhbmdlPXtzaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBpc0NvbG9yQ2hhbm5lbCA9IHZpc3VhbENoYW5uZWwgPT5cbiAgW0NIQU5ORUxfU0NBTEVTLmNvbG9yLCBDSEFOTkVMX1NDQUxFUy5jb2xvckFnZ3JdLmluY2x1ZGVzKHZpc3VhbENoYW5uZWwuY2hhbm5lbFNjYWxlVHlwZSk7XG5cbmV4cG9ydCB0eXBlIExheWVyTGVnZW5kSGVhZGVyUHJvcHMgPSB7XG4gIGxheWVyOiBMYXllcjtcbiAgb3B0aW9ucz86IHtcbiAgICBzaG93TGF5ZXJOYW1lPzogYm9vbGVhbjtcbiAgfTtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT86IChsYXllcjogTGF5ZXIpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBpc1JhZGl1c0NoYW5uZWwgPSB2aXN1YWxDaGFubmVsID0+XG4gIFtDSEFOTkVMX1NDQUxFUy5yYWRpdXNdLmluY2x1ZGVzKHZpc3VhbENoYW5uZWwuY2hhbm5lbFNjYWxlVHlwZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBMYXllckxlZ2VuZEhlYWRlckZhY3RvcnkoKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kSGVhZGVyOiBSZWFjdC5GQzxMYXllckxlZ2VuZEhlYWRlclByb3BzPiA9ICh7XG4gICAgb3B0aW9ucyxcbiAgICBsYXllcixcbiAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eVxuICB9KSA9PiB7XG4gICAgY29uc3QgaXNWaXNpYmxlID0gbGF5ZXIuY29uZmlnLmlzVmlzaWJsZTtcbiAgICBjb25zdCBvblRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChvblRvZ2dsZUxheWVyVmlzaWJpbGl0eSkge1xuICAgICAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eShsYXllcik7XG4gICAgICB9XG4gICAgfSwgW2xheWVyLCBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eV0pO1xuXG4gICAgaWYgKG9wdGlvbnM/LnNob3dMYXllck5hbWUgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZExlZ2VuZEhlYWRlclJvdz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX25hbWVcIiBzdHlsZT17e29wYWNpdHk6IGlzVmlzaWJsZSA/IDEgOiAwLjV9fT5cbiAgICAgICAgICB7bGF5ZXIuY29uZmlnLmxhYmVsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge29uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5ID8gKFxuICAgICAgICAgIDxTdHlsZWRWaXNpYmlsaXR5VG9nZ2xlICRpc1Zpc2libGU9e2lzVmlzaWJsZX0gb25DbGljaz17b25Ub2dnbGV9PlxuICAgICAgICAgICAge2lzVmlzaWJsZSA/IDxFeWVTZWVuIGhlaWdodD1cIjEycHhcIiAvPiA6IDxFeWVVbnNlZW4gaGVpZ2h0PVwiMTJweFwiIC8+fVxuICAgICAgICAgIDwvU3R5bGVkVmlzaWJpbGl0eVRvZ2dsZT5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1N0eWxlZExlZ2VuZEhlYWRlclJvdz5cbiAgICApO1xuICB9O1xuICByZXR1cm4gTGF5ZXJMZWdlbmRIZWFkZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgZXhwYW5kZWQ6IEFycm93RG93bixcbiAgY29sbGFwc2VkOiBBcnJvd1JpZ2h0XG59O1xuXG5leHBvcnQgdHlwZSBMYXllckxlZ2VuZENvbnRlbnRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBjb250YWluZXJXOiBudW1iZXI7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPzogKG9sZExheWVyOiBMYXllciwgbmV3VmlzQ29uZmlnOiBQYXJ0aWFsPExheWVyVmlzQ29uZmlnPikgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM6IE1hcExlZ2VuZEljb25zO1xufTtcblxuTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeS5kZXBzID0gW0xheWVyQ29sb3JMZWdlbmRGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIExheWVyTGVnZW5kQ29udGVudEZhY3RvcnkoXG4gIExheWVyQ29sb3JMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQ29sb3JMZWdlbmRGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kQ29udGVudDogUmVhY3QuRkM8TGF5ZXJMZWdlbmRDb250ZW50UHJvcHM+ID0gKHtcbiAgICBsYXllcixcbiAgICBjb250YWluZXJXLFxuICAgIG1hcFN0YXRlLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIGlzRXhwb3J0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgYWN0aW9uSWNvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHZpc3VhbENoYW5uZWxzID0gbGF5ZXIuZ2V0TGVnZW5kVmlzdWFsQ2hhbm5lbHMoKTtcbiAgICBjb25zdCBjaGFubmVsS2V5cyA9IE9iamVjdC52YWx1ZXModmlzdWFsQ2hhbm5lbHMpO1xuICAgIGNvbnN0IGNvbG9yQ2hhbm5lbHMgPSBjaGFubmVsS2V5cy5maWx0ZXIoaXNDb2xvckNoYW5uZWwpIGFzIFZpc3VhbENoYW5uZWxbXTtcbiAgICBjb25zdCBub25Db2xvckNoYW5uZWxzID0gY2hhbm5lbEtleXMuZmlsdGVyKHZjID0+ICFpc0NvbG9yQ2hhbm5lbCh2YykpO1xuICAgIGNvbnN0IHdpZHRoID0gY29udGFpbmVyVyAtIDIgKiBESU1FTlNJT05TLm1hcENvbnRyb2wucGFkZGluZztcblxuICAgIC8vIHJlbmRlciBjb2xvciBieSBjaGFuZWwgb25seVxuICAgIGxldCBjb2xvckNoYW5uZWxUb1JlbmRlciA9IGNvbG9yQ2hhbm5lbHMuZmlsdGVyKFxuICAgICAgY2MgPT5cbiAgICAgICAgKCFjYy5jb25kaXRpb24gfHwgY2MuY29uZGl0aW9uKGxheWVyLmNvbmZpZykpICYmXG4gICAgICAgIGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbihjYy5rZXkpPy5tZWFzdXJlXG4gICAgKTtcbiAgICAvLyBpZiBubyBjb2xvciBieSBjaGFuZWwsIHJlbmRlciByZXN0XG4gICAgaWYgKCFjb2xvckNoYW5uZWxUb1JlbmRlci5sZW5ndGgpIHtcbiAgICAgIGNvbG9yQ2hhbm5lbFRvUmVuZGVyID0gY29sb3JDaGFubmVscy5maWx0ZXIoXG4gICAgICAgIGNjID0+ICFjYy5jb25kaXRpb24gfHwgY2MuY29uZGl0aW9uKGxheWVyLmNvbmZpZylcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7Y29sb3JDaGFubmVsVG9SZW5kZXIubWFwKGNvbG9yQ2hhbm5lbCA9PiAoXG4gICAgICAgICAgPExheWVyQ29sb3JMZWdlbmRcbiAgICAgICAgICAgIGtleT17Y29sb3JDaGFubmVsLmtleX1cbiAgICAgICAgICAgIGNvbG9yQ2hhbm5lbD17Y29sb3JDaGFubmVsfVxuICAgICAgICAgICAgY29uZmlnPXtsYXllci5jb25maWd9XG4gICAgICAgICAgICBkZXNjcmlwdGlvbj17bGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKGNvbG9yQ2hhbm5lbC5rZXkpfVxuICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT17b25MYXllclZpc0NvbmZpZ0NoYW5nZX1cbiAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgICAge25vbkNvbG9yQ2hhbm5lbHMubWFwKCh2aXN1YWxDaGFubmVsOiBWaXN1YWxDaGFubmVsKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWF0Y2hDb25kaXRpb24gPSAhdmlzdWFsQ2hhbm5lbC5jb25kaXRpb24gfHwgdmlzdWFsQ2hhbm5lbC5jb25kaXRpb24obGF5ZXIuY29uZmlnKTtcbiAgICAgICAgICBjb25zdCBlbmFibGVkID0gbGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWwuZmllbGRdIHx8IHZpc3VhbENoYW5uZWwuZGVmYXVsdE1lYXN1cmU7XG5cbiAgICAgICAgICBpZiAobWF0Y2hDb25kaXRpb24gJiYgZW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24odmlzdWFsQ2hhbm5lbC5rZXkpO1xuICAgICAgICAgICAgaWYgKGlzUmFkaXVzQ2hhbm5lbCh2aXN1YWxDaGFubmVsKSkge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxMYXllclJhZGl1c0xlZ2VuZFxuICAgICAgICAgICAgICAgICAga2V5PXt2aXN1YWxDaGFubmVsLmtleX1cbiAgICAgICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAgIHZpc3VhbENoYW5uZWw9e3Zpc3VhbENoYW5uZWx9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxMYXllckRlZmF1bHRMZWdlbmRcbiAgICAgICAgICAgICAgICBrZXk9e3Zpc3VhbENoYW5uZWwua2V5fVxuICAgICAgICAgICAgICAgIGxhYmVsPXtkZXNjcmlwdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICBuYW1lPXtkZXNjcmlwdGlvbi5tZWFzdXJlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gTGF5ZXJMZWdlbmRDb250ZW50O1xufVxuXG5leHBvcnQgdHlwZSBNYXBMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXJzPzogUmVhZG9ubHlBcnJheTxMYXllcj47XG4gIHdpZHRoPzogbnVtYmVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBvcHRpb25zPzoge1xuICAgIHNob3dMYXllck5hbWU/OiBib29sZWFuO1xuICB9O1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5PzogKGxheWVyOiBMYXllcikgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM/OiBNYXBMZWdlbmRJY29ucztcbn07XG5cbk1hcExlZ2VuZEZhY3RvcnkuZGVwcyA9IFtMYXllckxlZ2VuZEhlYWRlckZhY3RvcnksIExheWVyTGVnZW5kQ29udGVudEZhY3RvcnldO1xuXG5mdW5jdGlvbiBNYXBMZWdlbmRGYWN0b3J5KFxuICBMYXllckxlZ2VuZEhlYWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5PixcbiAgTGF5ZXJMZWdlbmRDb250ZW50OiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IE1hcExlZ2VuZDogUmVhY3QuRkM8TWFwTGVnZW5kUHJvcHM+ID0gKHtcbiAgICBsYXllcnMgPSBbXSxcbiAgICB3aWR0aCxcbiAgICBtYXBTdGF0ZSxcbiAgICBvcHRpb25zLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIGlzRXhwb3J0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgb25Ub2dnbGVMYXllclZpc2liaWxpdHksXG4gICAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnNcbiAgfSkgPT4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibWFwLWxlZ2VuZFwiPlxuICAgICAge2xheWVycy5tYXAoKGxheWVyLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWxheWVyLmlzVmFsaWRUb1NhdmUoKSB8fCBsYXllci5jb25maWcuaGlkZGVuKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGFpbmVyVyA9IHdpZHRoIHx8IERJTUVOU0lPTlMubWFwQ29udHJvbC53aWR0aDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTdHlsZWRNYXBDb250cm9sTGVnZW5kXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyXCJcbiAgICAgICAgICAgICRsYXN0PXtpbmRleCA9PT0gbGF5ZXJzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgd2lkdGg9e2NvbnRhaW5lcld9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kSGVhZGVyXG4gICAgICAgICAgICAgIGlzRXhwb3J0PXtpc0V4cG9ydH1cbiAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT17b25Ub2dnbGVMYXllclZpc2liaWxpdHl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kQ29udGVudFxuICAgICAgICAgICAgICBjb250YWluZXJXPXtjb250YWluZXJXfVxuICAgICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U9e29uTGF5ZXJWaXNDb25maWdDaGFuZ2V9XG4gICAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRNYXBDb250cm9sTGVnZW5kPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG5cbiAgTWFwTGVnZW5kLmRpc3BsYXlOYW1lID0gJ01hcExlZ2VuZCc7XG5cbiAgcmV0dXJuIE1hcExlZ2VuZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwTGVnZW5kRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQVAsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQVQsT0FBQTtBQUdBLElBQUFVLHdCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxNQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxrQkFBQSxHQUFBVixzQkFBQSxDQUFBRixPQUFBO0FBQXlFLElBQUFhLGVBQUEsRUFBQUMsZ0JB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
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { MapState } from '@kepler.gl/types';
3
+ import { MapStateActions } from '@kepler.gl/actions';
4
+ export type MapNavigationControlProps = {
5
+ mapState: MapState;
6
+ mapIndex: number;
7
+ mapStateActions: typeof MapStateActions;
8
+ };
9
+ declare function MapNavigationControlFactory(): React.NamedExoticComponent<MapNavigationControlProps>;
10
+ declare namespace MapNavigationControlFactory {
11
+ var deps: any[];
12
+ }
13
+ export default MapNavigationControlFactory;
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = MapNavigationControlFactory;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
12
+ var _mapViewStateContext = require("../map-view-state-context");
13
+ var _styledComponents2 = require("../common/styled-components");
14
+ var _utils = require("@kepler.gl/utils");
15
+ var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
16
+ // Copyright contributors to the kepler.gl project
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
19
+ var StyledMapNavigationControl = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 8px;\n flex-direction: column;\n align-items: flex-end;\n margin-top: 12px;\n"])));
20
+ var NavButtonGroup = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n gap: 0;\n overflow: hidden;\n box-shadow: 0 6px 12px 0 rgba(0, 0, 0, 0.16);\n"])));
21
+ var NavButton = (0, _styledComponents["default"])(_styledComponents2.MapControlButton)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n box-shadow: none;\n border-top: ", ";\n"])), function (props) {
22
+ return props.$isFirst ? 'none' : "1px solid ".concat(props.theme.panelBorderColor);
23
+ });
24
+ MapNavigationControlFactory.deps = [];
25
+ function MapNavigationControlFactory() {
26
+ var MapNavigationControl = function MapNavigationControl(_ref) {
27
+ var _theme$notificationCo;
28
+ var mapState = _ref.mapState,
29
+ mapIndex = _ref.mapIndex,
30
+ mapStateActions = _ref.mapStateActions;
31
+ var _useContext = (0, _react.useContext)(_mapViewStateContext.MapViewStateContext),
32
+ getInternalViewState = _useContext.getInternalViewState;
33
+ var viewState = getInternalViewState(mapIndex);
34
+ var theme = (0, _styledComponents.useTheme)();
35
+ var isEnabled = (0, _utils.getApplicationConfig)().enableMapNavigationControl;
36
+ var handleZoomIn = (0, _react.useCallback)(function () {
37
+ var _viewState$zoom;
38
+ var currentZoom = (_viewState$zoom = viewState === null || viewState === void 0 ? void 0 : viewState.zoom) !== null && _viewState$zoom !== void 0 ? _viewState$zoom : mapState.zoom;
39
+ var nextZoom = currentZoom + 1;
40
+ if (mapState.maxZoom != null) {
41
+ nextZoom = Math.min(mapState.maxZoom, nextZoom);
42
+ }
43
+ mapStateActions.updateMap({
44
+ zoom: nextZoom
45
+ }, mapIndex);
46
+ }, [viewState, mapState, mapStateActions, mapIndex]);
47
+ var handleZoomOut = (0, _react.useCallback)(function () {
48
+ var _viewState$zoom2;
49
+ var currentZoom = (_viewState$zoom2 = viewState === null || viewState === void 0 ? void 0 : viewState.zoom) !== null && _viewState$zoom2 !== void 0 ? _viewState$zoom2 : mapState.zoom;
50
+ var nextZoom = currentZoom - 1;
51
+ if (mapState.minZoom != null) {
52
+ nextZoom = Math.max(mapState.minZoom, nextZoom);
53
+ }
54
+ mapStateActions.updateMap({
55
+ zoom: nextZoom
56
+ }, mapIndex);
57
+ }, [viewState, mapState, mapStateActions, mapIndex]);
58
+ var handleCompassClick = (0, _react.useCallback)(function () {
59
+ var _viewState$bearing, _viewState$pitch;
60
+ var currentBearing = (_viewState$bearing = viewState === null || viewState === void 0 ? void 0 : viewState.bearing) !== null && _viewState$bearing !== void 0 ? _viewState$bearing : mapState.bearing;
61
+ var currentPitch = (_viewState$pitch = viewState === null || viewState === void 0 ? void 0 : viewState.pitch) !== null && _viewState$pitch !== void 0 ? _viewState$pitch : mapState.pitch;
62
+ if (currentBearing === 0 && currentPitch === 0) {
63
+ return;
64
+ }
65
+ if (currentBearing !== 0) {
66
+ mapStateActions.updateMap({
67
+ bearing: 0
68
+ }, mapIndex);
69
+ } else {
70
+ mapStateActions.updateMap({
71
+ bearing: 0,
72
+ pitch: 0
73
+ }, mapIndex);
74
+ }
75
+ }, [viewState, mapState, mapStateActions, mapIndex]);
76
+ var rotation = (0, _react.useMemo)(function () {
77
+ var _ref2, _viewState$bearing2, _ref3, _viewState$pitch2;
78
+ var bearing = -((_ref2 = (_viewState$bearing2 = viewState === null || viewState === void 0 ? void 0 : viewState.bearing) !== null && _viewState$bearing2 !== void 0 ? _viewState$bearing2 : mapState.bearing) !== null && _ref2 !== void 0 ? _ref2 : 0);
79
+ var pitch = (_ref3 = (_viewState$pitch2 = viewState === null || viewState === void 0 ? void 0 : viewState.pitch) !== null && _viewState$pitch2 !== void 0 ? _viewState$pitch2 : mapState.pitch) !== null && _ref3 !== void 0 ? _ref3 : 0;
80
+ return {
81
+ bearing: bearing,
82
+ pitch: pitch
83
+ };
84
+ }, [viewState, mapState]);
85
+ if (!isEnabled) {
86
+ return null;
87
+ }
88
+ return /*#__PURE__*/_react["default"].createElement(StyledMapNavigationControl, {
89
+ className: "map-navigation-control"
90
+ }, /*#__PURE__*/_react["default"].createElement(NavButtonGroup, null, /*#__PURE__*/_react["default"].createElement(NavButton, {
91
+ $isFirst: true,
92
+ onClick: handleZoomIn,
93
+ title: "Zoom in",
94
+ className: "map-navigation-control__zoom-in"
95
+ }, /*#__PURE__*/_react["default"].createElement("svg", {
96
+ fill: "none",
97
+ width: "18",
98
+ height: "18",
99
+ viewBox: "0 0 24 24",
100
+ strokeWidth: "2",
101
+ stroke: "currentColor"
102
+ }, /*#__PURE__*/_react["default"].createElement("path", {
103
+ d: "M12 4.5v15m7.5-7.5h-15"
104
+ }))), /*#__PURE__*/_react["default"].createElement(NavButton, {
105
+ onClick: handleZoomOut,
106
+ title: "Zoom out",
107
+ className: "map-navigation-control__zoom-out"
108
+ }, /*#__PURE__*/_react["default"].createElement("svg", {
109
+ fill: "none",
110
+ width: "18",
111
+ height: "18",
112
+ viewBox: "0 0 24 24",
113
+ strokeWidth: "2",
114
+ stroke: "currentColor"
115
+ }, /*#__PURE__*/_react["default"].createElement("path", {
116
+ d: "M19.5 12h-15"
117
+ })))), mapState.dragRotate ? /*#__PURE__*/_react["default"].createElement(_styledComponents2.MapControlButton, {
118
+ onClick: handleCompassClick,
119
+ title: "Reset bearing/pitch",
120
+ className: "map-navigation-control__compass"
121
+ }, /*#__PURE__*/_react["default"].createElement("div", {
122
+ style: {
123
+ transform: "rotateX(".concat(rotation.pitch, "deg)")
124
+ }
125
+ }, /*#__PURE__*/_react["default"].createElement("svg", {
126
+ fill: "none",
127
+ width: "18",
128
+ height: "18",
129
+ viewBox: "0 0 16 16"
130
+ }, /*#__PURE__*/_react["default"].createElement("g", {
131
+ transform: "rotate(".concat(rotation.bearing, ",8,8)")
132
+ }, /*#__PURE__*/_react["default"].createElement("path", {
133
+ d: "M5 8.00006L7.99987 0L10.9997 8.00006H5Z",
134
+ fill: ((_theme$notificationCo = theme.notificationColors) === null || _theme$notificationCo === void 0 ? void 0 : _theme$notificationCo.error) || '#F05C44'
135
+ }), /*#__PURE__*/_react["default"].createElement("path", {
136
+ d: "M11.0002 7.99994L8.00038 16L5.00051 7.99994L11.0002 7.99994Z",
137
+ fill: "currentColor"
138
+ }))))) : null);
139
+ };
140
+ MapNavigationControl.displayName = 'MapNavigationControl';
141
+ return /*#__PURE__*/_react["default"].memo(MapNavigationControl);
142
+ }
143
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX3V0aWxzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJTdHlsZWRNYXBOYXZpZ2F0aW9uQ29udHJvbCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiTmF2QnV0dG9uR3JvdXAiLCJOYXZCdXR0b24iLCJNYXBDb250cm9sQnV0dG9uIiwicHJvcHMiLCIkaXNGaXJzdCIsImNvbmNhdCIsInRoZW1lIiwicGFuZWxCb3JkZXJDb2xvciIsIk1hcE5hdmlnYXRpb25Db250cm9sRmFjdG9yeSIsImRlcHMiLCJNYXBOYXZpZ2F0aW9uQ29udHJvbCIsIl9yZWYiLCJfdGhlbWUkbm90aWZpY2F0aW9uQ28iLCJtYXBTdGF0ZSIsIm1hcEluZGV4IiwibWFwU3RhdGVBY3Rpb25zIiwiX3VzZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwiTWFwVmlld1N0YXRlQ29udGV4dCIsImdldEludGVybmFsVmlld1N0YXRlIiwidmlld1N0YXRlIiwidXNlVGhlbWUiLCJpc0VuYWJsZWQiLCJnZXRBcHBsaWNhdGlvbkNvbmZpZyIsImVuYWJsZU1hcE5hdmlnYXRpb25Db250cm9sIiwiaGFuZGxlWm9vbUluIiwidXNlQ2FsbGJhY2siLCJfdmlld1N0YXRlJHpvb20iLCJjdXJyZW50Wm9vbSIsInpvb20iLCJuZXh0Wm9vbSIsIm1heFpvb20iLCJNYXRoIiwibWluIiwidXBkYXRlTWFwIiwiaGFuZGxlWm9vbU91dCIsIl92aWV3U3RhdGUkem9vbTIiLCJtaW5ab29tIiwibWF4IiwiaGFuZGxlQ29tcGFzc0NsaWNrIiwiX3ZpZXdTdGF0ZSRiZWFyaW5nIiwiX3ZpZXdTdGF0ZSRwaXRjaCIsImN1cnJlbnRCZWFyaW5nIiwiYmVhcmluZyIsImN1cnJlbnRQaXRjaCIsInBpdGNoIiwicm90YXRpb24iLCJ1c2VNZW1vIiwiX3JlZjIiLCJfdmlld1N0YXRlJGJlYXJpbmcyIiwiX3JlZjMiLCJfdmlld1N0YXRlJHBpdGNoMiIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwidGl0bGUiLCJmaWxsIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94Iiwic3Ryb2tlV2lkdGgiLCJzdHJva2UiLCJkIiwiZHJhZ1JvdGF0ZSIsInN0eWxlIiwidHJhbnNmb3JtIiwibm90aWZpY2F0aW9uQ29sb3JzIiwiZXJyb3IiLCJkaXNwbGF5TmFtZSIsIlJlYWN0IiwibWVtbyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLW5hdmlnYXRpb24tY29udHJvbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQsIHt1c2VUaGVtZX0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtNYXBWaWV3U3RhdGVDb250ZXh0LCBNYXBWaWV3U3RhdGVDb250ZXh0VHlwZX0gZnJvbSAnLi4vbWFwLXZpZXctc3RhdGUtY29udGV4dCc7XG5pbXBvcnQge01hcENvbnRyb2xCdXR0b259IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge01hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7TWFwU3RhdGVBY3Rpb25zfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtnZXRBcHBsaWNhdGlvbkNvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmV4cG9ydCB0eXBlIE1hcE5hdmlnYXRpb25Db250cm9sUHJvcHMgPSB7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgbWFwSW5kZXg6IG51bWJlcjtcbiAgbWFwU3RhdGVBY3Rpb25zOiB0eXBlb2YgTWFwU3RhdGVBY3Rpb25zO1xufTtcblxuY29uc3QgU3R5bGVkTWFwTmF2aWdhdGlvbkNvbnRyb2wgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuYDtcblxuY29uc3QgTmF2QnV0dG9uR3JvdXAgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IDAgNnB4IDEycHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xuYDtcblxuaW50ZXJmYWNlIE5hdkJ1dHRvblByb3BzIHtcbiAgJGlzRmlyc3Q/OiBib29sZWFuO1xufVxuXG5jb25zdCBOYXZCdXR0b24gPSBzdHlsZWQoTWFwQ29udHJvbEJ1dHRvbik8TmF2QnV0dG9uUHJvcHM+YFxuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItdG9wOiAke3Byb3BzID0+IChwcm9wcy4kaXNGaXJzdCA/ICdub25lJyA6IGAxcHggc29saWQgJHtwcm9wcy50aGVtZS5wYW5lbEJvcmRlckNvbG9yfWApfTtcbmA7XG5cbk1hcE5hdmlnYXRpb25Db250cm9sRmFjdG9yeS5kZXBzID0gW107XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1hcE5hdmlnYXRpb25Db250cm9sRmFjdG9yeSgpIHtcbiAgY29uc3QgTWFwTmF2aWdhdGlvbkNvbnRyb2w6IFJlYWN0LkZDPE1hcE5hdmlnYXRpb25Db250cm9sUHJvcHM+ID0gKHtcbiAgICBtYXBTdGF0ZSxcbiAgICBtYXBJbmRleCxcbiAgICBtYXBTdGF0ZUFjdGlvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtnZXRJbnRlcm5hbFZpZXdTdGF0ZX0gPSB1c2VDb250ZXh0PE1hcFZpZXdTdGF0ZUNvbnRleHRUeXBlPihNYXBWaWV3U3RhdGVDb250ZXh0KTtcbiAgICBjb25zdCB2aWV3U3RhdGUgPSBnZXRJbnRlcm5hbFZpZXdTdGF0ZShtYXBJbmRleCk7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuXG4gICAgY29uc3QgaXNFbmFibGVkID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVNYXBOYXZpZ2F0aW9uQ29udHJvbDtcblxuICAgIGNvbnN0IGhhbmRsZVpvb21JbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRab29tID0gdmlld1N0YXRlPy56b29tID8/IG1hcFN0YXRlLnpvb207XG4gICAgICBsZXQgbmV4dFpvb20gPSBjdXJyZW50Wm9vbSArIDE7XG4gICAgICBpZiAobWFwU3RhdGUubWF4Wm9vbSAhPSBudWxsKSB7XG4gICAgICAgIG5leHRab29tID0gTWF0aC5taW4obWFwU3RhdGUubWF4Wm9vbSwgbmV4dFpvb20pO1xuICAgICAgfVxuICAgICAgbWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcCh7em9vbTogbmV4dFpvb219LCBtYXBJbmRleCk7XG4gICAgfSwgW3ZpZXdTdGF0ZSwgbWFwU3RhdGUsIG1hcFN0YXRlQWN0aW9ucywgbWFwSW5kZXhdKTtcblxuICAgIGNvbnN0IGhhbmRsZVpvb21PdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50Wm9vbSA9IHZpZXdTdGF0ZT8uem9vbSA/PyBtYXBTdGF0ZS56b29tO1xuICAgICAgbGV0IG5leHRab29tID0gY3VycmVudFpvb20gLSAxO1xuICAgICAgaWYgKG1hcFN0YXRlLm1pblpvb20gIT0gbnVsbCkge1xuICAgICAgICBuZXh0Wm9vbSA9IE1hdGgubWF4KG1hcFN0YXRlLm1pblpvb20sIG5leHRab29tKTtcbiAgICAgIH1cbiAgICAgIG1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAoe3pvb206IG5leHRab29tfSwgbWFwSW5kZXgpO1xuICAgIH0sIFt2aWV3U3RhdGUsIG1hcFN0YXRlLCBtYXBTdGF0ZUFjdGlvbnMsIG1hcEluZGV4XSk7XG5cbiAgICBjb25zdCBoYW5kbGVDb21wYXNzQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50QmVhcmluZyA9IHZpZXdTdGF0ZT8uYmVhcmluZyA/PyBtYXBTdGF0ZS5iZWFyaW5nO1xuICAgICAgY29uc3QgY3VycmVudFBpdGNoID0gdmlld1N0YXRlPy5waXRjaCA/PyBtYXBTdGF0ZS5waXRjaDtcbiAgICAgIGlmIChjdXJyZW50QmVhcmluZyA9PT0gMCAmJiBjdXJyZW50UGl0Y2ggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnRCZWFyaW5nICE9PSAwKSB7XG4gICAgICAgIG1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAoe2JlYXJpbmc6IDB9LCBtYXBJbmRleCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtYXBTdGF0ZUFjdGlvbnMudXBkYXRlTWFwKHtiZWFyaW5nOiAwLCBwaXRjaDogMH0sIG1hcEluZGV4KTtcbiAgICAgIH1cbiAgICB9LCBbdmlld1N0YXRlLCBtYXBTdGF0ZSwgbWFwU3RhdGVBY3Rpb25zLCBtYXBJbmRleF0pO1xuXG4gICAgY29uc3Qgcm90YXRpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGJlYXJpbmcgPSAtKHZpZXdTdGF0ZT8uYmVhcmluZyA/PyBtYXBTdGF0ZS5iZWFyaW5nID8/IDApO1xuICAgICAgY29uc3QgcGl0Y2ggPSB2aWV3U3RhdGU/LnBpdGNoID8/IG1hcFN0YXRlLnBpdGNoID8/IDA7XG4gICAgICByZXR1cm4ge2JlYXJpbmcsIHBpdGNofTtcbiAgICB9LCBbdmlld1N0YXRlLCBtYXBTdGF0ZV0pO1xuXG4gICAgaWYgKCFpc0VuYWJsZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTWFwTmF2aWdhdGlvbkNvbnRyb2wgY2xhc3NOYW1lPVwibWFwLW5hdmlnYXRpb24tY29udHJvbFwiPlxuICAgICAgICA8TmF2QnV0dG9uR3JvdXA+XG4gICAgICAgICAgPE5hdkJ1dHRvblxuICAgICAgICAgICAgJGlzRmlyc3RcbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVpvb21Jbn1cbiAgICAgICAgICAgIHRpdGxlPVwiWm9vbSBpblwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJtYXAtbmF2aWdhdGlvbi1jb250cm9sX196b29tLWluXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxOFwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjE4XCJcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgIHN0cm9rZVdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgNC41djE1bTcuNS03LjVoLTE1XCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvTmF2QnV0dG9uPlxuICAgICAgICAgIDxOYXZCdXR0b25cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVpvb21PdXR9XG4gICAgICAgICAgICB0aXRsZT1cIlpvb20gb3V0XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1hcC1uYXZpZ2F0aW9uLWNvbnRyb2xfX3pvb20tb3V0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxOFwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjE4XCJcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgIHN0cm9rZVdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkuNSAxMmgtMTVcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9OYXZCdXR0b24+XG4gICAgICAgIDwvTmF2QnV0dG9uR3JvdXA+XG4gICAgICAgIHttYXBTdGF0ZS5kcmFnUm90YXRlID8gKFxuICAgICAgICAgIDxNYXBDb250cm9sQnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDb21wYXNzQ2xpY2t9XG4gICAgICAgICAgICB0aXRsZT1cIlJlc2V0IGJlYXJpbmcvcGl0Y2hcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibWFwLW5hdmlnYXRpb24tY29udHJvbF9fY29tcGFzc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17e3RyYW5zZm9ybTogYHJvdGF0ZVgoJHtyb3RhdGlvbi5waXRjaH1kZWcpYH19PlxuICAgICAgICAgICAgICA8c3ZnIGZpbGw9XCJub25lXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxuICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT17YHJvdGF0ZSgke3JvdGF0aW9uLmJlYXJpbmd9LDgsOClgfT5cbiAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNSA4LjAwMDA2TDcuOTk5ODcgMEwxMC45OTk3IDguMDAwMDZINVpcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPXt0aGVtZS5ub3RpZmljYXRpb25Db2xvcnM/LmVycm9yIHx8ICcjRjA1QzQ0J31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjAwMDIgNy45OTk5NEw4LjAwMDM4IDE2TDUuMDAwNTEgNy45OTk5NEwxMS4wMDAyIDcuOTk5OTRaXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L01hcENvbnRyb2xCdXR0b24+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TdHlsZWRNYXBOYXZpZ2F0aW9uQ29udHJvbD5cbiAgICApO1xuICB9O1xuXG4gIE1hcE5hdmlnYXRpb25Db250cm9sLmRpc3BsYXlOYW1lID0gJ01hcE5hdmlnYXRpb25Db250cm9sJztcbiAgcmV0dXJuIFJlYWN0Lm1lbW8oTWFwTmF2aWdhdGlvbkNvbnRyb2wpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRix1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsb0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGtCQUFBLEdBQUFILE9BQUE7QUFHQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFBc0QsSUFBQUssZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVR0RDtBQUNB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LEVBQUMsVUFBVTtNQUNoQkYsU0FBUyxFQUFDO0lBQWtDLGdCQUU1Q3ZGLE1BQUEsWUFBQXNGLGFBQUE7TUFDRUksSUFBSSxFQUFDLE1BQU07TUFDWEMsS0FBSyxFQUFDLElBQUk7TUFDVkMsTUFBTSxFQUFDLElBQUk7TUFDWEMsT0FBTyxFQUFDLFdBQVc7TUFDbkJDLFdBQVcsRUFBQyxHQUFHO01BQ2ZDLE1BQU0sRUFBQztJQUFjLGdCQUVyQi9GLE1BQUEsWUFBQXNGLGFBQUE7TUFBTVUsQ0FBQyxFQUFDO0lBQWMsQ0FBRSxDQUNyQixDQUNJLENBQ0csQ0FBQyxFQUNoQmpELFFBQVEsQ0FBQ2tELFVBQVUsZ0JBQ2xCakcsTUFBQSxZQUFBc0YsYUFBQSxDQUFDakYsa0JBQUEsQ0FBQStCLGdCQUFnQjtNQUNmb0QsT0FBTyxFQUFFZixrQkFBbUI7TUFDNUJnQixLQUFLLEVBQUMscUJBQXFCO01BQzNCRixTQUFTLEVBQUM7SUFBaUMsZ0JBRTNDdkYsTUFBQSxZQUFBc0YsYUFBQTtNQUFLWSxLQUFLLEVBQUU7UUFBQ0MsU0FBUyxhQUFBNUQsTUFBQSxDQUFheUMsUUFBUSxDQUFDRCxLQUFLO01BQU07SUFBRSxnQkFDdkQvRSxNQUFBLFlBQUFzRixhQUFBO01BQUtJLElBQUksRUFBQyxNQUFNO01BQUNDLEtBQUssRUFBQyxJQUFJO01BQUNDLE1BQU0sRUFBQyxJQUFJO01BQUNDLE9BQU8sRUFBQztJQUFXLGdCQUN6RDdGLE1BQUEsWUFBQXNGLGFBQUE7TUFBR2EsU0FBUyxZQUFBNUQsTUFBQSxDQUFZeUMsUUFBUSxDQUFDSCxPQUFPO0lBQVEsZ0JBQzlDN0UsTUFBQSxZQUFBc0YsYUFBQTtNQUNFVSxDQUFDLEVBQUMseUNBQXlDO01BQzNDTixJQUFJLEVBQUUsRUFBQTVDLHFCQUFBLEdBQUFOLEtBQUssQ0FBQzRELGtCQUFrQixjQUFBdEQscUJBQUEsdUJBQXhCQSxxQkFBQSxDQUEwQnVELEtBQUssS0FBSTtJQUFVLENBQ3BELENBQUMsZUFDRnJHLE1BQUEsWUFBQXNGLGFBQUE7TUFDRVUsQ0FBQyxFQUFDLDhEQUE4RDtNQUNoRU4sSUFBSSxFQUFDO0lBQWMsQ0FDcEIsQ0FDQSxDQUNBLENBQ0YsQ0FDVyxDQUFDLEdBQ2pCLElBQ3NCLENBQUM7RUFFakMsQ0FBQztFQUVEOUMsb0JBQW9CLENBQUMwRCxXQUFXLEdBQUcsc0JBQXNCO0VBQ3pELG9CQUFPQyxpQkFBSyxDQUFDQyxJQUFJLENBQUM1RCxvQkFBb0IsQ0FBQztBQUN6QyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -3,12 +3,12 @@ import { IntlShape } from 'react-intl';
3
3
  import { LayerHoverProp } from '@kepler.gl/reducers';
4
4
  import LayerHoverInfoFactory from './layer-hover-info';
5
5
  import CoordinateInfoFactory from './coordinate-info';
6
- declare type MapPopoverContentProps = {
6
+ type MapPopoverContentProps = {
7
7
  coordinate: [number, number] | boolean;
8
8
  layerHoverProp: LayerHoverProp | null;
9
9
  zoom: number;
10
10
  };
11
- declare type IntlProps = {
11
+ type IntlProps = {
12
12
  intl: IntlShape;
13
13
  };
14
14
  declare function MapPopoverContentFactory(LayerHoverInfo: ReturnType<typeof LayerHoverInfoFactory>, CoordinateInfo: ReturnType<typeof CoordinateInfoFactory>): React.FC<import("react-intl").WithIntlProps<MapPopoverContentProps & IntlProps>> & {
@@ -4,7 +4,7 @@ import { IntlShape } from 'react-intl';
4
4
  import { LayerHoverProp } from '@kepler.gl/reducers';
5
5
  import { Feature, FeatureSelectionContext } from '@kepler.gl/types';
6
6
  export declare function getSelectedFeature(layerHoverProp: LayerHoverProp | null): Feature | null;
7
- export declare type MapPopoverProps = {
7
+ export type MapPopoverProps = {
8
8
  x: number;
9
9
  y: number;
10
10
  frozen?: boolean;
@@ -21,7 +21,7 @@ export declare type MapPopoverProps = {
21
21
  features: Feature[];
22
22
  };
23
23
  };
24
- declare type IntlProps = {
24
+ type IntlProps = {
25
25
  intl: IntlShape;
26
26
  };
27
27
  declare function MapPopoverFactory(MapPopoverContent: ReturnType<typeof MapPopoverContentFactory>): React.FC<import("react-intl").WithIntlProps<MapPopoverProps & IntlProps>> & {