@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
@@ -0,0 +1,8 @@
1
+ import { Effect } from '@kepler.gl/types';
2
+ /**
3
+ * Drives the surface fog elevation animation during Hubble video export.
4
+ *
5
+ * Patches DeckSurfaceFogEffect.postRender to interpolate height per-frame
6
+ * using the Hubble adapter's videoCapture.timeMs for precise sync.
7
+ */
8
+ export declare function useFogHeightAnimation(videoEffects: Effect[], hubbleContainerRef: React.RefObject<any>): void;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useFogHeightAnimation = useFogHeightAnimation;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _react = require("react");
10
+ var _constants = require("@kepler.gl/constants");
11
+ // SPDX-License-Identifier: MIT
12
+ // Copyright contributors to the kepler.gl project
13
+
14
+ /**
15
+ * Drives the surface fog elevation animation during Hubble video export.
16
+ *
17
+ * Patches DeckSurfaceFogEffect.postRender to interpolate height per-frame
18
+ * using the Hubble adapter's videoCapture.timeMs for precise sync.
19
+ */
20
+ function useFogHeightAnimation(videoEffects, hubbleContainerRef) {
21
+ var surfaceFogEffect = (0, _react.useMemo)(function () {
22
+ return videoEffects.find(function (e) {
23
+ return e.type === _constants.SURFACE_FOG_TYPE && e.isEnabled;
24
+ });
25
+ }, [videoEffects]);
26
+ var fogHeightAnim = (0, _react.useMemo)(function () {
27
+ var _surfaceFogEffect$par;
28
+ if (!(surfaceFogEffect !== null && surfaceFogEffect !== void 0 && (_surfaceFogEffect$par = surfaceFogEffect.parameters) !== null && _surfaceFogEffect$par !== void 0 && _surfaceFogEffect$par.animateHeight)) return null;
29
+ var params = surfaceFogEffect.parameters;
30
+ return {
31
+ start: params.height,
32
+ end: params.heightEnd,
33
+ linear: Boolean(params.linearEasing)
34
+ };
35
+ }, [surfaceFogEffect]);
36
+ var fogAnimRef = (0, _react.useRef)({
37
+ active: false,
38
+ range: [0, 100],
39
+ originalHeight: 50,
40
+ linear: false
41
+ });
42
+
43
+ // Sync fogAnimRef config with effect parameters (don't start playing yet)
44
+ (0, _react.useEffect)(function () {
45
+ if (fogHeightAnim) {
46
+ fogAnimRef.current.active = true;
47
+ fogAnimRef.current.range = [fogHeightAnim.start, fogHeightAnim.end];
48
+ fogAnimRef.current.originalHeight = fogHeightAnim.start;
49
+ fogAnimRef.current.linear = fogHeightAnim.linear;
50
+ } else {
51
+ if (fogAnimRef.current.active && surfaceFogEffect !== null && surfaceFogEffect !== void 0 && surfaceFogEffect.deckEffect) {
52
+ var _surfaceFogEffect$dec, _surfaceFogEffect$dec2;
53
+ (_surfaceFogEffect$dec = (_surfaceFogEffect$dec2 = surfaceFogEffect.deckEffect).setProps) === null || _surfaceFogEffect$dec === void 0 || _surfaceFogEffect$dec.call(_surfaceFogEffect$dec2, {
54
+ height: fogAnimRef.current.originalHeight
55
+ });
56
+ }
57
+ fogAnimRef.current.active = false;
58
+ }
59
+ }, [fogHeightAnim, surfaceFogEffect]);
60
+
61
+ // Patch DeckSurfaceFogEffect.postRender to drive height animation per-frame.
62
+ // Reads the Hubble adapter's videoCapture.timeMs to derive progress,
63
+ // so our animation stays perfectly in sync with Hubble's own timeline.
64
+ (0, _react.useEffect)(function () {
65
+ var de = surfaceFogEffect === null || surfaceFogEffect === void 0 ? void 0 : surfaceFogEffect.deckEffect;
66
+ if (!de) return;
67
+ var originalPostRender = de.postRender.bind(de);
68
+ de.postRender = function (params) {
69
+ var ref = fogAnimRef.current;
70
+ if (ref.active) {
71
+ var _hubbleContainerRef$c;
72
+ var hubbleState = (_hubbleContainerRef$c = hubbleContainerRef.current) === null || _hubbleContainerRef$c === void 0 ? void 0 : _hubbleContainerRef$c.state;
73
+ var isPlaying = (hubbleState === null || hubbleState === void 0 ? void 0 : hubbleState.previewing) || (hubbleState === null || hubbleState === void 0 ? void 0 : hubbleState.rendering);
74
+ if (isPlaying) {
75
+ var adapter = hubbleState === null || hubbleState === void 0 ? void 0 : hubbleState.adapter;
76
+ var vc = adapter === null || adapter === void 0 ? void 0 : adapter.videoCapture;
77
+ var tc = vc === null || vc === void 0 ? void 0 : vc.timecode;
78
+ if (vc && tc && tc.duration > 0 && Number.isFinite(vc.timeMs) && Number.isFinite(tc.start)) {
79
+ var progress = Math.min(Math.max((vc.timeMs - tc.start) / tc.duration, 0), 1);
80
+ var t = ref.linear ? progress : progress * progress * (3 - 2 * progress);
81
+ var _ref$range = (0, _slicedToArray2["default"])(ref.range, 2),
82
+ s = _ref$range[0],
83
+ e = _ref$range[1];
84
+ this.props.height = s + (e - s) * t;
85
+ }
86
+ } else {
87
+ this.props.height = ref.originalHeight;
88
+ }
89
+ }
90
+ return originalPostRender(params);
91
+ };
92
+ return function () {
93
+ de.postRender = originalPostRender;
94
+ };
95
+ }, [surfaceFogEffect, hubbleContainerRef]);
96
+ }
97
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX2NvbnN0YW50cyIsInVzZUZvZ0hlaWdodEFuaW1hdGlvbiIsInZpZGVvRWZmZWN0cyIsImh1YmJsZUNvbnRhaW5lclJlZiIsInN1cmZhY2VGb2dFZmZlY3QiLCJ1c2VNZW1vIiwiZmluZCIsImUiLCJ0eXBlIiwiU1VSRkFDRV9GT0dfVFlQRSIsImlzRW5hYmxlZCIsImZvZ0hlaWdodEFuaW0iLCJfc3VyZmFjZUZvZ0VmZmVjdCRwYXIiLCJwYXJhbWV0ZXJzIiwiYW5pbWF0ZUhlaWdodCIsInBhcmFtcyIsInN0YXJ0IiwiaGVpZ2h0IiwiZW5kIiwiaGVpZ2h0RW5kIiwibGluZWFyIiwiQm9vbGVhbiIsImxpbmVhckVhc2luZyIsImZvZ0FuaW1SZWYiLCJ1c2VSZWYiLCJhY3RpdmUiLCJyYW5nZSIsIm9yaWdpbmFsSGVpZ2h0IiwidXNlRWZmZWN0IiwiY3VycmVudCIsImRlY2tFZmZlY3QiLCJfc3VyZmFjZUZvZ0VmZmVjdCRkZWMiLCJfc3VyZmFjZUZvZ0VmZmVjdCRkZWMyIiwic2V0UHJvcHMiLCJjYWxsIiwiZGUiLCJvcmlnaW5hbFBvc3RSZW5kZXIiLCJwb3N0UmVuZGVyIiwiYmluZCIsInJlZiIsIl9odWJibGVDb250YWluZXJSZWYkYyIsImh1YmJsZVN0YXRlIiwic3RhdGUiLCJpc1BsYXlpbmciLCJwcmV2aWV3aW5nIiwicmVuZGVyaW5nIiwiYWRhcHRlciIsInZjIiwidmlkZW9DYXB0dXJlIiwidGMiLCJ0aW1lY29kZSIsImR1cmF0aW9uIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJ0aW1lTXMiLCJwcm9ncmVzcyIsIk1hdGgiLCJtaW4iLCJtYXgiLCJ0IiwiX3JlZiRyYW5nZSIsIl9zbGljZWRUb0FycmF5MiIsInMiLCJwcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvZm9nLWhlaWdodC1hbmltYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtTVVJGQUNFX0ZPR19UWVBFfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0VmZmVjdH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbnR5cGUgRm9nQW5pbVN0YXRlID0ge1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xuICBvcmlnaW5hbEhlaWdodDogbnVtYmVyO1xuICBsaW5lYXI6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIERyaXZlcyB0aGUgc3VyZmFjZSBmb2cgZWxldmF0aW9uIGFuaW1hdGlvbiBkdXJpbmcgSHViYmxlIHZpZGVvIGV4cG9ydC5cbiAqXG4gKiBQYXRjaGVzIERlY2tTdXJmYWNlRm9nRWZmZWN0LnBvc3RSZW5kZXIgdG8gaW50ZXJwb2xhdGUgaGVpZ2h0IHBlci1mcmFtZVxuICogdXNpbmcgdGhlIEh1YmJsZSBhZGFwdGVyJ3MgdmlkZW9DYXB0dXJlLnRpbWVNcyBmb3IgcHJlY2lzZSBzeW5jLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRm9nSGVpZ2h0QW5pbWF0aW9uKFxuICB2aWRlb0VmZmVjdHM6IEVmZmVjdFtdLFxuICBodWJibGVDb250YWluZXJSZWY6IFJlYWN0LlJlZk9iamVjdDxhbnk+XG4pOiB2b2lkIHtcbiAgY29uc3Qgc3VyZmFjZUZvZ0VmZmVjdCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gdmlkZW9FZmZlY3RzLmZpbmQoKGU6IEVmZmVjdCkgPT4gZS50eXBlID09PSBTVVJGQUNFX0ZPR19UWVBFICYmIGUuaXNFbmFibGVkKSxcbiAgICBbdmlkZW9FZmZlY3RzXVxuICApO1xuXG4gIGNvbnN0IGZvZ0hlaWdodEFuaW0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIXN1cmZhY2VGb2dFZmZlY3Q/LnBhcmFtZXRlcnM/LmFuaW1hdGVIZWlnaHQpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHBhcmFtcyA9IHN1cmZhY2VGb2dFZmZlY3QucGFyYW1ldGVycztcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6IHBhcmFtcy5oZWlnaHQgYXMgbnVtYmVyLFxuICAgICAgZW5kOiBwYXJhbXMuaGVpZ2h0RW5kIGFzIG51bWJlcixcbiAgICAgIGxpbmVhcjogQm9vbGVhbihwYXJhbXMubGluZWFyRWFzaW5nKVxuICAgIH07XG4gIH0sIFtzdXJmYWNlRm9nRWZmZWN0XSk7XG5cbiAgY29uc3QgZm9nQW5pbVJlZiA9IHVzZVJlZjxGb2dBbmltU3RhdGU+KHtcbiAgICBhY3RpdmU6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBvcmlnaW5hbEhlaWdodDogNTAsXG4gICAgbGluZWFyOiBmYWxzZVxuICB9KTtcblxuICAvLyBTeW5jIGZvZ0FuaW1SZWYgY29uZmlnIHdpdGggZWZmZWN0IHBhcmFtZXRlcnMgKGRvbid0IHN0YXJ0IHBsYXlpbmcgeWV0KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChmb2dIZWlnaHRBbmltKSB7XG4gICAgICBmb2dBbmltUmVmLmN1cnJlbnQuYWN0aXZlID0gdHJ1ZTtcbiAgICAgIGZvZ0FuaW1SZWYuY3VycmVudC5yYW5nZSA9IFtmb2dIZWlnaHRBbmltLnN0YXJ0LCBmb2dIZWlnaHRBbmltLmVuZF07XG4gICAgICBmb2dBbmltUmVmLmN1cnJlbnQub3JpZ2luYWxIZWlnaHQgPSBmb2dIZWlnaHRBbmltLnN0YXJ0O1xuICAgICAgZm9nQW5pbVJlZi5jdXJyZW50LmxpbmVhciA9IGZvZ0hlaWdodEFuaW0ubGluZWFyO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZm9nQW5pbVJlZi5jdXJyZW50LmFjdGl2ZSAmJiBzdXJmYWNlRm9nRWZmZWN0Py5kZWNrRWZmZWN0KSB7XG4gICAgICAgIHN1cmZhY2VGb2dFZmZlY3QuZGVja0VmZmVjdC5zZXRQcm9wcz8uKHtoZWlnaHQ6IGZvZ0FuaW1SZWYuY3VycmVudC5vcmlnaW5hbEhlaWdodH0pO1xuICAgICAgfVxuICAgICAgZm9nQW5pbVJlZi5jdXJyZW50LmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgfSwgW2ZvZ0hlaWdodEFuaW0sIHN1cmZhY2VGb2dFZmZlY3RdKTtcblxuICAvLyBQYXRjaCBEZWNrU3VyZmFjZUZvZ0VmZmVjdC5wb3N0UmVuZGVyIHRvIGRyaXZlIGhlaWdodCBhbmltYXRpb24gcGVyLWZyYW1lLlxuICAvLyBSZWFkcyB0aGUgSHViYmxlIGFkYXB0ZXIncyB2aWRlb0NhcHR1cmUudGltZU1zIHRvIGRlcml2ZSBwcm9ncmVzcyxcbiAgLy8gc28gb3VyIGFuaW1hdGlvbiBzdGF5cyBwZXJmZWN0bHkgaW4gc3luYyB3aXRoIEh1YmJsZSdzIG93biB0aW1lbGluZS5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBkZSA9IHN1cmZhY2VGb2dFZmZlY3Q/LmRlY2tFZmZlY3Q7XG4gICAgaWYgKCFkZSkgcmV0dXJuO1xuICAgIGNvbnN0IG9yaWdpbmFsUG9zdFJlbmRlciA9IGRlLnBvc3RSZW5kZXIuYmluZChkZSk7XG4gICAgZGUucG9zdFJlbmRlciA9IGZ1bmN0aW9uICh0aGlzOiBhbnksIHBhcmFtczogYW55KSB7XG4gICAgICBjb25zdCByZWYgPSBmb2dBbmltUmVmLmN1cnJlbnQ7XG4gICAgICBpZiAocmVmLmFjdGl2ZSkge1xuICAgICAgICBjb25zdCBodWJibGVTdGF0ZSA9IGh1YmJsZUNvbnRhaW5lclJlZi5jdXJyZW50Py5zdGF0ZTtcbiAgICAgICAgY29uc3QgaXNQbGF5aW5nID0gaHViYmxlU3RhdGU/LnByZXZpZXdpbmcgfHwgaHViYmxlU3RhdGU/LnJlbmRlcmluZztcblxuICAgICAgICBpZiAoaXNQbGF5aW5nKSB7XG4gICAgICAgICAgY29uc3QgYWRhcHRlciA9IGh1YmJsZVN0YXRlPy5hZGFwdGVyO1xuICAgICAgICAgIGNvbnN0IHZjID0gYWRhcHRlcj8udmlkZW9DYXB0dXJlO1xuICAgICAgICAgIGNvbnN0IHRjID0gdmM/LnRpbWVjb2RlO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHZjICYmXG4gICAgICAgICAgICB0YyAmJlxuICAgICAgICAgICAgdGMuZHVyYXRpb24gPiAwICYmXG4gICAgICAgICAgICBOdW1iZXIuaXNGaW5pdGUodmMudGltZU1zKSAmJlxuICAgICAgICAgICAgTnVtYmVyLmlzRmluaXRlKHRjLnN0YXJ0KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBNYXRoLm1pbihNYXRoLm1heCgodmMudGltZU1zIC0gdGMuc3RhcnQpIC8gdGMuZHVyYXRpb24sIDApLCAxKTtcbiAgICAgICAgICAgIGNvbnN0IHQgPSByZWYubGluZWFyID8gcHJvZ3Jlc3MgOiBwcm9ncmVzcyAqIHByb2dyZXNzICogKDMgLSAyICogcHJvZ3Jlc3MpO1xuICAgICAgICAgICAgY29uc3QgW3MsIGVdID0gcmVmLnJhbmdlO1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5oZWlnaHQgPSBzICsgKGUgLSBzKSAqIHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucHJvcHMuaGVpZ2h0ID0gcmVmLm9yaWdpbmFsSGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gb3JpZ2luYWxQb3N0UmVuZGVyKHBhcmFtcyk7XG4gICAgfTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZGUucG9zdFJlbmRlciA9IG9yaWdpbmFsUG9zdFJlbmRlcjtcbiAgICB9O1xuICB9LCBbc3VyZmFjZUZvZ0VmZmVjdCwgaHViYmxlQ29udGFpbmVyUmVmXSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBSkE7QUFDQTs7QUFhQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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
@@ -0,0 +1,25 @@
1
+ import { TimeRangeFilter } from '@kepler.gl/types';
2
+ type KeplerState = {
3
+ visState: any;
4
+ mapState: any;
5
+ mapStyle: any;
6
+ };
7
+ type MapboxLayerRef = {
8
+ id: string;
9
+ } & Record<string, any>;
10
+ type TimeRangeFilterKeyframes = {
11
+ keyframes: {
12
+ value: number | [number, number];
13
+ }[];
14
+ easings: (p: number) => number;
15
+ timings?: number[];
16
+ };
17
+ export declare function getTimeRangeFilterKeyframes({ filter, timings }: {
18
+ filter: TimeRangeFilter;
19
+ timings: number[];
20
+ }): TimeRangeFilterKeyframes;
21
+ export declare function getBeforeLayerId(topMapStyle: any, bottomMapStyle: any): MapboxLayerRef | null;
22
+ export declare function getStaticMapProps(keplerState: KeplerState, onViewChange: (viewState: Record<string, any>) => void, mapboxApiAccessToken: string, mapboxApiUrl?: string): Record<string, any>;
23
+ export declare function getHubbleDeckGlProps(keplerState: KeplerState, _mapboxApiAccessToken: string, _mapboxApiUrl?: string): Record<string, any>;
24
+ export declare function getAnimatableFilters(keplerState: KeplerState): TimeRangeFilter[];
25
+ export {};
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getAnimatableFilters = getAnimatableFilters;
9
+ exports.getBeforeLayerId = getBeforeLayerId;
10
+ exports.getHubbleDeckGlProps = getHubbleDeckGlProps;
11
+ exports.getStaticMapProps = getStaticMapProps;
12
+ exports.getTimeRangeFilterKeyframes = getTimeRangeFilterKeyframes;
13
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
14
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _core = require("@deck.gl/core");
17
+ var _constants = require("@kepler.gl/constants");
18
+ var _utils = require("@kepler.gl/utils");
19
+ var _maplibreglMapboxRequestTransformer = require("maplibregl-mapbox-request-transformer");
20
+ 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); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(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; }
22
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
24
+ // Copyright contributors to the kepler.gl project
25
+ var linear = function linear(p) {
26
+ return p;
27
+ };
28
+ var hold = function hold(p) {
29
+ return p === 1 ? 1 : 0;
30
+ };
31
+ function getKeyFramesFree(filter) {
32
+ var delta = filter.value[1] - filter.value[0];
33
+ return {
34
+ keyframes: [{
35
+ value: [filter.domain[0], filter.domain[0] + delta]
36
+ }, {
37
+ value: [filter.domain[1] - delta, filter.domain[1]]
38
+ }],
39
+ easings: linear
40
+ };
41
+ }
42
+ function getTimeRangeFilterKeyframes(_ref) {
43
+ var filter = _ref.filter,
44
+ timings = _ref.timings;
45
+ if (filter.type !== _constants.FILTER_TYPES.timeRange) {
46
+ throw new Error("filter type must be 'timeRange'.");
47
+ }
48
+ var duration = timings[1] - timings[0];
49
+ switch (filter.animationWindow) {
50
+ default:
51
+ case 'free':
52
+ {
53
+ return getKeyFramesFree(filter);
54
+ }
55
+ case 'incremental':
56
+ {
57
+ return {
58
+ keyframes: [{
59
+ value: [filter.value[0], filter.value[0] + 1]
60
+ }, {
61
+ value: [filter.value[0], filter.domain[1]]
62
+ }],
63
+ easings: linear
64
+ };
65
+ }
66
+ case 'point':
67
+ {
68
+ return {
69
+ keyframes: [{
70
+ value: filter.domain[0]
71
+ }, {
72
+ value: filter.domain[1]
73
+ }],
74
+ easings: linear
75
+ };
76
+ }
77
+ case 'interval':
78
+ {
79
+ var _timeBins$dataId$;
80
+ var plotType = filter.plotType,
81
+ timeBins = filter.timeBins,
82
+ dataId = filter.dataId;
83
+ var interval = plotType.interval;
84
+ var bins = timeBins === null || timeBins === void 0 || (_timeBins$dataId$ = timeBins[dataId[0]]) === null || _timeBins$dataId$ === void 0 ? void 0 : _timeBins$dataId$[interval];
85
+ if (!interval || !bins || bins.length === 0) {
86
+ return getKeyFramesFree(filter);
87
+ }
88
+ var delta = Math.round(duration / bins.length);
89
+ return {
90
+ timings: bins.map(function (_, idx) {
91
+ return timings[0] + delta * idx;
92
+ }),
93
+ keyframes: bins.map(function (bin) {
94
+ return {
95
+ value: [bin.x0, bin.x1]
96
+ };
97
+ }),
98
+ easings: hold
99
+ };
100
+ }
101
+ }
102
+ }
103
+ function getBeforeLayerId(topMapStyle, bottomMapStyle) {
104
+ var _topMapStyle$layers, _bottomMapStyle$layer;
105
+ if (topMapStyle !== null && topMapStyle !== void 0 && (_topMapStyle$layers = topMapStyle.layers) !== null && _topMapStyle$layers !== void 0 && _topMapStyle$layers.length && bottomMapStyle !== null && bottomMapStyle !== void 0 && (_bottomMapStyle$layer = bottomMapStyle.layers) !== null && _bottomMapStyle$layer !== void 0 && _bottomMapStyle$layer.length) {
106
+ var firstTopLayer = topMapStyle.layers[0];
107
+ var firstTopLayerIdx = bottomMapStyle.layers.findIndex(function (layer) {
108
+ return layer.id === firstTopLayer.id;
109
+ });
110
+ var beforeIdx = firstTopLayerIdx - 1;
111
+ return beforeIdx > -1 ? bottomMapStyle.layers[beforeIdx] : null;
112
+ }
113
+ return null;
114
+ }
115
+ function getStaticMapProps(keplerState, onViewChange, mapboxApiAccessToken) {
116
+ var _keplerState$mapStyle, _keplerState$mapStyle2, _keplerState$mapStyle3;
117
+ var mapboxApiUrl = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants.DEFAULT_MAPBOX_API_URL;
118
+ var currentStyle = (_keplerState$mapStyle = keplerState.mapStyle) === null || _keplerState$mapStyle === void 0 || (_keplerState$mapStyle = _keplerState$mapStyle.mapStyles) === null || _keplerState$mapStyle === void 0 ? void 0 : _keplerState$mapStyle[keplerState.mapStyle.styleType];
119
+ var accessToken = (currentStyle === null || currentStyle === void 0 ? void 0 : currentStyle.accessToken) || mapboxApiAccessToken;
120
+ var isMapbox = (0, _utils.getBaseMapLibrary)(currentStyle) === 'mapbox';
121
+ var mapboxTransformRequest = function mapboxTransformRequest(url, resourceType) {
122
+ if ((0, _maplibreglMapboxRequestTransformer.isMapboxURL)(url)) {
123
+ return (0, _maplibreglMapboxRequestTransformer.transformMapboxUrl)(url, resourceType, accessToken);
124
+ }
125
+ return {
126
+ url: url
127
+ };
128
+ };
129
+ return _objectSpread(_objectSpread({}, keplerState.mapState), {}, {
130
+ preserveDrawingBuffer: true,
131
+ mapboxApiAccessToken: accessToken,
132
+ mapboxApiUrl: mapboxApiUrl,
133
+ transformRequest: mapboxTransformRequest,
134
+ mapStyle: isMapbox ? convertMapboxStyleUrls((_keplerState$mapStyle2 = keplerState.mapStyle) === null || _keplerState$mapStyle2 === void 0 ? void 0 : _keplerState$mapStyle2.bottomMapStyle, accessToken) : (_keplerState$mapStyle3 = keplerState.mapStyle) === null || _keplerState$mapStyle3 === void 0 ? void 0 : _keplerState$mapStyle3.bottomMapStyle,
135
+ onViewportChange: onViewChange,
136
+ mapLib: Promise.resolve().then(function () {
137
+ return _interopRequireWildcard(require('maplibre-gl'));
138
+ })
139
+ });
140
+ }
141
+
142
+ /**
143
+ * Convert mapbox:// URLs inside a Mapbox style object to HTTPS API URLs
144
+ * so that maplibre-gl can fetch them directly.
145
+ */
146
+ function convertMapboxStyleUrls(style, accessToken) {
147
+ if (!style || (0, _typeof2["default"])(style) !== 'object') return style;
148
+ var converted = _objectSpread({}, style);
149
+ if (typeof converted.sprite === 'string' && (0, _maplibreglMapboxRequestTransformer.isMapboxURL)(converted.sprite)) {
150
+ var _transformMapboxUrl;
151
+ converted.sprite = (_transformMapboxUrl = (0, _maplibreglMapboxRequestTransformer.transformMapboxUrl)(converted.sprite, 'Sprite', accessToken)) === null || _transformMapboxUrl === void 0 ? void 0 : _transformMapboxUrl.url;
152
+ }
153
+ if (typeof converted.glyphs === 'string' && (0, _maplibreglMapboxRequestTransformer.isMapboxURL)(converted.glyphs)) {
154
+ var _transformMapboxUrl2;
155
+ converted.glyphs = (_transformMapboxUrl2 = (0, _maplibreglMapboxRequestTransformer.transformMapboxUrl)(converted.glyphs, 'Glyphs', accessToken)) === null || _transformMapboxUrl2 === void 0 ? void 0 : _transformMapboxUrl2.url;
156
+ }
157
+ if (converted.sources) {
158
+ var newSources = {};
159
+ for (var _i = 0, _Object$entries = Object.entries(converted.sources); _i < _Object$entries.length; _i++) {
160
+ var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
161
+ key = _Object$entries$_i[0],
162
+ source = _Object$entries$_i[1];
163
+ if (source !== null && source !== void 0 && source.url && (0, _maplibreglMapboxRequestTransformer.isMapboxURL)(source.url)) {
164
+ var _transformMapboxUrl3;
165
+ newSources[key] = _objectSpread(_objectSpread({}, source), {}, {
166
+ url: (_transformMapboxUrl3 = (0, _maplibreglMapboxRequestTransformer.transformMapboxUrl)(source.url, 'Source', accessToken)) === null || _transformMapboxUrl3 === void 0 ? void 0 : _transformMapboxUrl3.url
167
+ });
168
+ } else {
169
+ newSources[key] = source;
170
+ }
171
+ }
172
+ converted.sources = newSources;
173
+ }
174
+ return converted;
175
+ }
176
+ function getHubbleParameters(keplerState) {
177
+ return (0, _utils.getLayerBlendingParameters)(keplerState.visState.layerBlending);
178
+ }
179
+ function getHubbleDeckGlProps(keplerState, _mapboxApiAccessToken) {
180
+ var _mapboxApiUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants.DEFAULT_MAPBOX_API_URL;
181
+ return {
182
+ parameters: getHubbleParameters(keplerState),
183
+ controller: true,
184
+ views: new _core.MapView({
185
+ id: 'mapbox',
186
+ farZMultiplier: 1.2
187
+ })
188
+ };
189
+ }
190
+ function getAnimatableFilters(keplerState) {
191
+ var _keplerState$visState;
192
+ var filters = ((_keplerState$visState = keplerState.visState) === null || _keplerState$visState === void 0 ? void 0 : _keplerState$visState.filters) || [];
193
+ return filters.filter(function (f) {
194
+ return f.type === _constants.FILTER_TYPES.timeRange && (f.view === _constants.FILTER_VIEW_TYPES.enlarged || f.syncedWithLayerTimeline);
195
+ });
196
+ }
197
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwiX21hcGxpYnJlZ2xNYXBib3hSZXF1ZXN0VHJhbnNmb3JtZXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJsaW5lYXIiLCJwIiwiaG9sZCIsImdldEtleUZyYW1lc0ZyZWUiLCJkZWx0YSIsInZhbHVlIiwia2V5ZnJhbWVzIiwiZG9tYWluIiwiZWFzaW5ncyIsImdldFRpbWVSYW5nZUZpbHRlcktleWZyYW1lcyIsIl9yZWYiLCJ0aW1pbmdzIiwidHlwZSIsIkZJTFRFUl9UWVBFUyIsInRpbWVSYW5nZSIsIkVycm9yIiwiZHVyYXRpb24iLCJhbmltYXRpb25XaW5kb3ciLCJfdGltZUJpbnMkZGF0YUlkJCIsInBsb3RUeXBlIiwidGltZUJpbnMiLCJkYXRhSWQiLCJpbnRlcnZhbCIsImJpbnMiLCJNYXRoIiwicm91bmQiLCJtYXAiLCJfIiwiaWR4IiwiYmluIiwieDAiLCJ4MSIsImdldEJlZm9yZUxheWVySWQiLCJ0b3BNYXBTdHlsZSIsImJvdHRvbU1hcFN0eWxlIiwiX3RvcE1hcFN0eWxlJGxheWVycyIsIl9ib3R0b21NYXBTdHlsZSRsYXllciIsImxheWVycyIsImZpcnN0VG9wTGF5ZXIiLCJmaXJzdFRvcExheWVySWR4IiwiZmluZEluZGV4IiwibGF5ZXIiLCJpZCIsImJlZm9yZUlkeCIsImdldFN0YXRpY01hcFByb3BzIiwia2VwbGVyU3RhdGUiLCJvblZpZXdDaGFuZ2UiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIl9rZXBsZXJTdGF0ZSRtYXBTdHlsZSIsIl9rZXBsZXJTdGF0ZSRtYXBTdHlsZTIiLCJfa2VwbGVyU3RhdGUkbWFwU3R5bGUzIiwibWFwYm94QXBpVXJsIiwidW5kZWZpbmVkIiwiREVGQVVMVF9NQVBCT1hfQVBJX1VSTCIsImN1cnJlbnRTdHlsZSIsIm1hcFN0eWxlIiwibWFwU3R5bGVzIiwic3R5bGVUeXBlIiwiYWNjZXNzVG9rZW4iLCJpc01hcGJveCIsImdldEJhc2VNYXBMaWJyYXJ5IiwibWFwYm94VHJhbnNmb3JtUmVxdWVzdCIsInVybCIsInJlc291cmNlVHlwZSIsImlzTWFwYm94VVJMIiwidHJhbnNmb3JtTWFwYm94VXJsIiwibWFwU3RhdGUiLCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCJ0cmFuc2Zvcm1SZXF1ZXN0IiwiY29udmVydE1hcGJveFN0eWxlVXJscyIsIm9uVmlld3BvcnRDaGFuZ2UiLCJtYXBMaWIiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJzdHlsZSIsIl90eXBlb2YyIiwiY29udmVydGVkIiwic3ByaXRlIiwiX3RyYW5zZm9ybU1hcGJveFVybCIsImdseXBocyIsIl90cmFuc2Zvcm1NYXBib3hVcmwyIiwic291cmNlcyIsIm5ld1NvdXJjZXMiLCJfaSIsIl9PYmplY3QkZW50cmllcyIsImVudHJpZXMiLCJfT2JqZWN0JGVudHJpZXMkX2kiLCJfc2xpY2VkVG9BcnJheTIiLCJrZXkiLCJzb3VyY2UiLCJfdHJhbnNmb3JtTWFwYm94VXJsMyIsImdldEh1YmJsZVBhcmFtZXRlcnMiLCJnZXRMYXllckJsZW5kaW5nUGFyYW1ldGVycyIsInZpc1N0YXRlIiwibGF5ZXJCbGVuZGluZyIsImdldEh1YmJsZURlY2tHbFByb3BzIiwiX21hcGJveEFwaUFjY2Vzc1Rva2VuIiwiX21hcGJveEFwaVVybCIsInBhcmFtZXRlcnMiLCJjb250cm9sbGVyIiwidmlld3MiLCJNYXBWaWV3IiwiZmFyWk11bHRpcGxpZXIiLCJnZXRBbmltYXRhYmxlRmlsdGVycyIsIl9rZXBsZXJTdGF0ZSR2aXNTdGF0ZSIsImZpbHRlcnMiLCJmIiwidmlldyIsIkZJTFRFUl9WSUVXX1RZUEVTIiwiZW5sYXJnZWQiLCJzeW5jZWRXaXRoTGF5ZXJUaW1lbGluZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvaHViYmxlLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7TWFwVmlld30gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5pbXBvcnQge0RFRkFVTFRfTUFQQk9YX0FQSV9VUkwsIEZJTFRFUl9WSUVXX1RZUEVTLCBGSUxURVJfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Z2V0TGF5ZXJCbGVuZGluZ1BhcmFtZXRlcnMsIGdldEJhc2VNYXBMaWJyYXJ5fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7aXNNYXBib3hVUkwsIHRyYW5zZm9ybU1hcGJveFVybH0gZnJvbSAnbWFwbGlicmVnbC1tYXBib3gtcmVxdWVzdC10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1RpbWVSYW5nZUZpbHRlcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbnR5cGUgS2VwbGVyU3RhdGUgPSB7XG4gIHZpc1N0YXRlOiBhbnk7XG4gIG1hcFN0YXRlOiBhbnk7XG4gIG1hcFN0eWxlOiBhbnk7XG59O1xuXG50eXBlIE1hcGJveExheWVyUmVmID0ge1xuICBpZDogc3RyaW5nO1xufSAmIFJlY29yZDxzdHJpbmcsIGFueT47XG5cbmNvbnN0IGxpbmVhcjogKHA6IG51bWJlcikgPT4gbnVtYmVyID0gcCA9PiBwO1xuY29uc3QgaG9sZDogKHA6IG51bWJlcikgPT4gbnVtYmVyID0gcCA9PiAocCA9PT0gMSA/IDEgOiAwKTtcblxudHlwZSBUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXMgPSB7XG4gIGtleWZyYW1lczoge3ZhbHVlOiBudW1iZXIgfCBbbnVtYmVyLCBudW1iZXJdfVtdO1xuICBlYXNpbmdzOiAocDogbnVtYmVyKSA9PiBudW1iZXI7XG4gIHRpbWluZ3M/OiBudW1iZXJbXTtcbn07XG5cbmZ1bmN0aW9uIGdldEtleUZyYW1lc0ZyZWUoZmlsdGVyOiBUaW1lUmFuZ2VGaWx0ZXIpOiBUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXMge1xuICBjb25zdCBkZWx0YSA9IGZpbHRlci52YWx1ZVsxXSAtIGZpbHRlci52YWx1ZVswXTtcbiAgcmV0dXJuIHtcbiAgICBrZXlmcmFtZXM6IFtcbiAgICAgIHt2YWx1ZTogW2ZpbHRlci5kb21haW5bMF0sIGZpbHRlci5kb21haW5bMF0gKyBkZWx0YV19LFxuICAgICAge3ZhbHVlOiBbZmlsdGVyLmRvbWFpblsxXSAtIGRlbHRhLCBmaWx0ZXIuZG9tYWluWzFdXX1cbiAgICBdLFxuICAgIGVhc2luZ3M6IGxpbmVhclxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZVJhbmdlRmlsdGVyS2V5ZnJhbWVzKHtcbiAgZmlsdGVyLFxuICB0aW1pbmdzXG59OiB7XG4gIGZpbHRlcjogVGltZVJhbmdlRmlsdGVyO1xuICB0aW1pbmdzOiBudW1iZXJbXTtcbn0pOiBUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXMge1xuICBpZiAoZmlsdGVyLnR5cGUgIT09IEZJTFRFUl9UWVBFUy50aW1lUmFuZ2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJmaWx0ZXIgdHlwZSBtdXN0IGJlICd0aW1lUmFuZ2UnLlwiKTtcbiAgfVxuXG4gIGNvbnN0IGR1cmF0aW9uID0gdGltaW5nc1sxXSAtIHRpbWluZ3NbMF07XG5cbiAgc3dpdGNoIChmaWx0ZXIuYW5pbWF0aW9uV2luZG93KSB7XG4gICAgZGVmYXVsdDpcbiAgICBjYXNlICdmcmVlJzoge1xuICAgICAgcmV0dXJuIGdldEtleUZyYW1lc0ZyZWUoZmlsdGVyKTtcbiAgICB9XG4gICAgY2FzZSAnaW5jcmVtZW50YWwnOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXlmcmFtZXM6IFtcbiAgICAgICAgICB7dmFsdWU6IFtmaWx0ZXIudmFsdWVbMF0sIGZpbHRlci52YWx1ZVswXSArIDFdfSxcbiAgICAgICAgICB7dmFsdWU6IFtmaWx0ZXIudmFsdWVbMF0sIGZpbHRlci5kb21haW5bMV1dfVxuICAgICAgICBdLFxuICAgICAgICBlYXNpbmdzOiBsaW5lYXJcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgJ3BvaW50Jzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2V5ZnJhbWVzOiBbe3ZhbHVlOiBmaWx0ZXIuZG9tYWluWzBdfSwge3ZhbHVlOiBmaWx0ZXIuZG9tYWluWzFdfV0sXG4gICAgICAgIGVhc2luZ3M6IGxpbmVhclxuICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSAnaW50ZXJ2YWwnOiB7XG4gICAgICBjb25zdCB7cGxvdFR5cGUsIHRpbWVCaW5zLCBkYXRhSWR9ID0gZmlsdGVyO1xuICAgICAgY29uc3Qge2ludGVydmFsfSA9IHBsb3RUeXBlO1xuXG4gICAgICBjb25zdCBiaW5zID0gdGltZUJpbnM/LltkYXRhSWRbMF1dPy5baW50ZXJ2YWxdO1xuXG4gICAgICBpZiAoIWludGVydmFsIHx8ICFiaW5zIHx8IGJpbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBnZXRLZXlGcmFtZXNGcmVlKGZpbHRlcik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRlbHRhID0gTWF0aC5yb3VuZChkdXJhdGlvbiAvIGJpbnMubGVuZ3RoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGltaW5nczogYmlucy5tYXAoKF8sIGlkeCkgPT4gdGltaW5nc1swXSArIGRlbHRhICogaWR4KSxcbiAgICAgICAga2V5ZnJhbWVzOiBiaW5zLm1hcChiaW4gPT4gKHt2YWx1ZTogW2Jpbi54MCwgYmluLngxXX0pKSxcbiAgICAgICAgZWFzaW5nczogaG9sZFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJlZm9yZUxheWVySWQodG9wTWFwU3R5bGU6IGFueSwgYm90dG9tTWFwU3R5bGU6IGFueSk6IE1hcGJveExheWVyUmVmIHwgbnVsbCB7XG4gIGlmICh0b3BNYXBTdHlsZT8ubGF5ZXJzPy5sZW5ndGggJiYgYm90dG9tTWFwU3R5bGU/LmxheWVycz8ubGVuZ3RoKSB7XG4gICAgY29uc3QgZmlyc3RUb3BMYXllciA9IHRvcE1hcFN0eWxlLmxheWVyc1swXTtcbiAgICBjb25zdCBmaXJzdFRvcExheWVySWR4ID0gYm90dG9tTWFwU3R5bGUubGF5ZXJzLmZpbmRJbmRleChcbiAgICAgIChsYXllcjogTWFwYm94TGF5ZXJSZWYpID0+IGxheWVyLmlkID09PSBmaXJzdFRvcExheWVyLmlkXG4gICAgKTtcbiAgICBjb25zdCBiZWZvcmVJZHggPSBmaXJzdFRvcExheWVySWR4IC0gMTtcbiAgICByZXR1cm4gYmVmb3JlSWR4ID4gLTEgPyBib3R0b21NYXBTdHlsZS5sYXllcnNbYmVmb3JlSWR4XSA6IG51bGw7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGF0aWNNYXBQcm9wcyhcbiAga2VwbGVyU3RhdGU6IEtlcGxlclN0YXRlLFxuICBvblZpZXdDaGFuZ2U6ICh2aWV3U3RhdGU6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IHZvaWQsXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmcsXG4gIG1hcGJveEFwaVVybDogc3RyaW5nID0gREVGQVVMVF9NQVBCT1hfQVBJX1VSTFxuKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIGNvbnN0IGN1cnJlbnRTdHlsZSA9IGtlcGxlclN0YXRlLm1hcFN0eWxlPy5tYXBTdHlsZXM/LltrZXBsZXJTdGF0ZS5tYXBTdHlsZS5zdHlsZVR5cGVdO1xuICBjb25zdCBhY2Nlc3NUb2tlbiA9IGN1cnJlbnRTdHlsZT8uYWNjZXNzVG9rZW4gfHwgbWFwYm94QXBpQWNjZXNzVG9rZW47XG4gIGNvbnN0IGlzTWFwYm94ID0gZ2V0QmFzZU1hcExpYnJhcnkoY3VycmVudFN0eWxlKSA9PT0gJ21hcGJveCc7XG5cbiAgY29uc3QgbWFwYm94VHJhbnNmb3JtUmVxdWVzdCA9ICh1cmw6IHN0cmluZywgcmVzb3VyY2VUeXBlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaXNNYXBib3hVUkwodXJsKSkge1xuICAgICAgcmV0dXJuIHRyYW5zZm9ybU1hcGJveFVybCh1cmwsIHJlc291cmNlVHlwZSwgYWNjZXNzVG9rZW4pO1xuICAgIH1cbiAgICByZXR1cm4ge3VybH07XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5rZXBsZXJTdGF0ZS5tYXBTdGF0ZSxcbiAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUsXG4gICAgbWFwYm94QXBpQWNjZXNzVG9rZW46IGFjY2Vzc1Rva2VuLFxuICAgIG1hcGJveEFwaVVybCxcbiAgICB0cmFuc2Zvcm1SZXF1ZXN0OiBtYXBib3hUcmFuc2Zvcm1SZXF1ZXN0LFxuICAgIG1hcFN0eWxlOiBpc01hcGJveFxuICAgICAgPyBjb252ZXJ0TWFwYm94U3R5bGVVcmxzKGtlcGxlclN0YXRlLm1hcFN0eWxlPy5ib3R0b21NYXBTdHlsZSwgYWNjZXNzVG9rZW4pXG4gICAgICA6IGtlcGxlclN0YXRlLm1hcFN0eWxlPy5ib3R0b21NYXBTdHlsZSxcbiAgICBvblZpZXdwb3J0Q2hhbmdlOiBvblZpZXdDaGFuZ2UsXG4gICAgbWFwTGliOiBpbXBvcnQoJ21hcGxpYnJlLWdsJylcbiAgfTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IG1hcGJveDovLyBVUkxzIGluc2lkZSBhIE1hcGJveCBzdHlsZSBvYmplY3QgdG8gSFRUUFMgQVBJIFVSTHNcbiAqIHNvIHRoYXQgbWFwbGlicmUtZ2wgY2FuIGZldGNoIHRoZW0gZGlyZWN0bHkuXG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnRNYXBib3hTdHlsZVVybHMoc3R5bGU6IGFueSwgYWNjZXNzVG9rZW46IHN0cmluZyk6IGFueSB7XG4gIGlmICghc3R5bGUgfHwgdHlwZW9mIHN0eWxlICE9PSAnb2JqZWN0JykgcmV0dXJuIHN0eWxlO1xuXG4gIGNvbnN0IGNvbnZlcnRlZCA9IHsuLi5zdHlsZX07XG5cbiAgaWYgKHR5cGVvZiBjb252ZXJ0ZWQuc3ByaXRlID09PSAnc3RyaW5nJyAmJiBpc01hcGJveFVSTChjb252ZXJ0ZWQuc3ByaXRlKSkge1xuICAgIGNvbnZlcnRlZC5zcHJpdGUgPSB0cmFuc2Zvcm1NYXBib3hVcmwoY29udmVydGVkLnNwcml0ZSwgJ1Nwcml0ZScsIGFjY2Vzc1Rva2VuKT8udXJsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjb252ZXJ0ZWQuZ2x5cGhzID09PSAnc3RyaW5nJyAmJiBpc01hcGJveFVSTChjb252ZXJ0ZWQuZ2x5cGhzKSkge1xuICAgIGNvbnZlcnRlZC5nbHlwaHMgPSB0cmFuc2Zvcm1NYXBib3hVcmwoY29udmVydGVkLmdseXBocywgJ0dseXBocycsIGFjY2Vzc1Rva2VuKT8udXJsO1xuICB9XG5cbiAgaWYgKGNvbnZlcnRlZC5zb3VyY2VzKSB7XG4gICAgY29uc3QgbmV3U291cmNlczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgc291cmNlXSBvZiBPYmplY3QuZW50cmllczxhbnk+KGNvbnZlcnRlZC5zb3VyY2VzKSkge1xuICAgICAgaWYgKHNvdXJjZT8udXJsICYmIGlzTWFwYm94VVJMKHNvdXJjZS51cmwpKSB7XG4gICAgICAgIG5ld1NvdXJjZXNba2V5XSA9IHtcbiAgICAgICAgICAuLi5zb3VyY2UsXG4gICAgICAgICAgdXJsOiB0cmFuc2Zvcm1NYXBib3hVcmwoc291cmNlLnVybCwgJ1NvdXJjZScsIGFjY2Vzc1Rva2VuKT8udXJsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdTb3VyY2VzW2tleV0gPSBzb3VyY2U7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnZlcnRlZC5zb3VyY2VzID0gbmV3U291cmNlcztcbiAgfVxuXG4gIHJldHVybiBjb252ZXJ0ZWQ7XG59XG5cbmZ1bmN0aW9uIGdldEh1YmJsZVBhcmFtZXRlcnMoa2VwbGVyU3RhdGU6IEtlcGxlclN0YXRlKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIHJldHVybiBnZXRMYXllckJsZW5kaW5nUGFyYW1ldGVycyhrZXBsZXJTdGF0ZS52aXNTdGF0ZS5sYXllckJsZW5kaW5nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEh1YmJsZURlY2tHbFByb3BzKFxuICBrZXBsZXJTdGF0ZTogS2VwbGVyU3RhdGUsXG4gIF9tYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nLFxuICBfbWFwYm94QXBpVXJsOiBzdHJpbmcgPSBERUZBVUxUX01BUEJPWF9BUElfVVJMXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgcmV0dXJuIHtcbiAgICBwYXJhbWV0ZXJzOiBnZXRIdWJibGVQYXJhbWV0ZXJzKGtlcGxlclN0YXRlKSxcbiAgICBjb250cm9sbGVyOiB0cnVlLFxuICAgIHZpZXdzOiBuZXcgTWFwVmlldyh7XG4gICAgICBpZDogJ21hcGJveCcsXG4gICAgICBmYXJaTXVsdGlwbGllcjogMS4yXG4gICAgfSlcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFuaW1hdGFibGVGaWx0ZXJzKGtlcGxlclN0YXRlOiBLZXBsZXJTdGF0ZSk6IFRpbWVSYW5nZUZpbHRlcltdIHtcbiAgY29uc3QgZmlsdGVycyA9IGtlcGxlclN0YXRlLnZpc1N0YXRlPy5maWx0ZXJzIHx8IFtdO1xuICByZXR1cm4gZmlsdGVycy5maWx0ZXIoXG4gICAgKGY6IGFueSkgPT5cbiAgICAgIGYudHlwZSA9PT0gRklMVEVSX1RZUEVTLnRpbWVSYW5nZSAmJlxuICAgICAgKGYudmlldyA9PT0gRklMVEVSX1ZJRVdfVFlQRVMuZW5sYXJnZWQgfHwgZi5zeW5jZWRXaXRoTGF5ZXJUaW1lbGluZSlcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsbUNBQUEsR0FBQUgsT0FBQTtBQUFzRixTQUFBSSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUksd0JBQUFKLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsZUFBQUEsQ0FBQSxnQkFBQU0sUUFBQSxDQUFBTixDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLFVBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBUixDQUFBLE9BQUFTLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWYsQ0FBQSxvQkFBQWUsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWpCLENBQUEsRUFBQWUsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBZCxDQUFBLEVB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
@@ -0,0 +1 @@
1
+ export {};