@kepler.gl/components 3.1.0-alpha.2 → 3.1.0-alpha.4

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 (203) hide show
  1. package/dist/bottom-widget.d.ts +7 -1
  2. package/dist/bottom-widget.js +2 -8
  3. package/dist/common/action-panel.d.ts +5 -6
  4. package/dist/common/action-panel.js +3 -5
  5. package/dist/common/animation-control/animation-control.d.ts +2 -1
  6. package/dist/common/animation-control/animation-control.js +4 -2
  7. package/dist/common/animation-control/animation-speed-slider.js +21 -7
  8. package/dist/common/animation-control/floating-time-display.js +1 -1
  9. package/dist/common/animation-control/play-control.js +11 -13
  10. package/dist/common/animation-control/playback-controls.d.ts +11 -20
  11. package/dist/common/animation-control/playback-controls.js +6 -4
  12. package/dist/common/animation-control/reset-control.js +11 -13
  13. package/dist/common/animation-control/speed-control.js +10 -12
  14. package/dist/common/color-legend.d.ts +4 -5
  15. package/dist/common/color-legend.js +16 -5
  16. package/dist/common/column-stats-chart.d.ts +9 -3
  17. package/dist/common/column-stats-chart.js +17 -63
  18. package/dist/common/data-table/canvas.d.ts +2 -1
  19. package/dist/common/data-table/index.d.ts +7 -7
  20. package/dist/common/data-table/index.js +4 -5
  21. package/dist/common/file-uploader/file-upload-progress.d.ts +4 -4
  22. package/dist/common/file-uploader/file-upload-progress.js +1 -2
  23. package/dist/common/file-uploader/file-upload.d.ts +1 -1
  24. package/dist/common/file-uploader/upload-button.js +2 -2
  25. package/dist/common/flex-container.d.ts +8 -3
  26. package/dist/common/histogram-plot.js +4 -2
  27. package/dist/common/icon-button.d.ts +7 -4
  28. package/dist/common/icons/draggable-dots.d.ts +14 -0
  29. package/dist/common/icons/draggable-dots.js +85 -0
  30. package/dist/common/icons/horizontal-resize-handle.d.ts +14 -0
  31. package/dist/common/icons/horizontal-resize-handle.js +59 -0
  32. package/dist/common/icons/index.d.ts +2 -0
  33. package/dist/common/icons/index.js +15 -1
  34. package/dist/common/icons/pin.js +1 -1
  35. package/dist/common/info-helper.js +2 -2
  36. package/dist/common/item-selector/chickleted-input.d.ts +21 -17
  37. package/dist/common/item-selector/chickleted-input.js +3 -3
  38. package/dist/common/item-selector/dropdown-list.d.ts +12 -12
  39. package/dist/common/item-selector/dropdown-list.js +1 -2
  40. package/dist/common/item-selector/dropdown-select.d.ts +8 -4
  41. package/dist/common/item-selector/dropdown-select.js +2 -2
  42. package/dist/common/item-selector/item-selector.d.ts +5 -9
  43. package/dist/common/item-selector/item-selector.js +1 -1
  44. package/dist/common/item-selector/typeahead.d.ts +20 -6
  45. package/dist/common/item-selector/typeahead.js +3 -3
  46. package/dist/common/loading-spinner.d.ts +8 -4
  47. package/dist/common/loading-spinner.js +1 -1
  48. package/dist/common/modal.d.ts +12 -12
  49. package/dist/common/modal.js +3 -3
  50. package/dist/common/portaled.d.ts +22 -486
  51. package/dist/common/portaled.js +6 -3
  52. package/dist/common/range-plot.d.ts +23 -28
  53. package/dist/common/range-plot.js +38 -29
  54. package/dist/common/range-slider-timeline.js +1 -2
  55. package/dist/common/slider/slider-bar-handle.d.ts +5 -0
  56. package/dist/common/slider/slider-bar-handle.js +2 -2
  57. package/dist/common/slider/slider-handle.d.ts +9 -0
  58. package/dist/common/slider/slider-handle.js +3 -3
  59. package/dist/common/slider/slider.d.ts +2 -2
  60. package/dist/common/styled-components.d.ts +444 -92
  61. package/dist/common/styled-components.js +15 -11
  62. package/dist/common/sync-timeline-control.js +2 -2
  63. package/dist/common/time-range-slider-time-title.d.ts +4 -0
  64. package/dist/common/time-range-slider-time-title.js +1 -1
  65. package/dist/common/time-range-slider.d.ts +7 -3
  66. package/dist/common/time-range-slider.js +1 -1
  67. package/dist/common/timeline-slider.d.ts +2 -0
  68. package/dist/common/timeline-slider.js +1 -1
  69. package/dist/common/toolbar-item.js +2 -2
  70. package/dist/common/toolbar.d.ts +5 -3
  71. package/dist/common/toolbar.js +1 -1
  72. package/dist/common/vertical-toolbar.d.ts +6 -1
  73. package/dist/container.js +2 -2
  74. package/dist/dnd-context.d.ts +1 -1
  75. package/dist/effects/compact-color-picker.d.ts +1 -1
  76. package/dist/effects/effect-configurator.d.ts +4 -4
  77. package/dist/effects/effect-manager.js +4 -2
  78. package/dist/effects/effect-panel-header.js +5 -5
  79. package/dist/effects/effect-time-configurator.js +2 -2
  80. package/dist/effects/effect-time-selector.d.ts +1 -6
  81. package/dist/effects/effect-time-selector.js +3 -3
  82. package/dist/effects/effect-type-dropdown-list.js +2 -2
  83. package/dist/effects/effect-type-list-item.d.ts +1 -10
  84. package/dist/effects/effect-type-list-item.js +2 -2
  85. package/dist/effects/effect-type-selector.d.ts +1 -12
  86. package/dist/effects/effect-type-selector.js +2 -2
  87. package/dist/effects/timezone-selector.d.ts +1 -9
  88. package/dist/effects/timezone-selector.js +1 -1
  89. package/dist/filters/components.d.ts +6 -3
  90. package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +3 -4
  91. package/dist/filters/time-widget-top.js +2 -2
  92. package/dist/filters/types.d.ts +4 -2
  93. package/dist/filters/types.js +1 -1
  94. package/dist/geocoder/geocoder.js +2 -2
  95. package/dist/geocoder-panel.d.ts +6 -0
  96. package/dist/geocoder-panel.js +1 -1
  97. package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +3 -2
  98. package/dist/hooks/use-fetch-vector-tile-metadata.js +33 -18
  99. package/dist/hooks/use-legend-position.d.ts +36 -0
  100. package/dist/hooks/use-legend-position.js +147 -0
  101. package/dist/index.d.ts +2 -1
  102. package/dist/index.js +18 -3
  103. package/dist/kepler-gl.d.ts +44 -5
  104. package/dist/kepler-gl.js +77 -4
  105. package/dist/map/layer-hover-info.d.ts +3 -1
  106. package/dist/map/layer-hover-info.js +2 -2
  107. package/dist/map/map-control-panel.js +4 -3
  108. package/dist/map/map-control-toolbar.d.ts +15 -1
  109. package/dist/map/map-control-toolbar.js +1 -1
  110. package/dist/map/map-legend-panel.d.ts +10 -35
  111. package/dist/map/map-legend-panel.js +242 -127
  112. package/dist/map/map-legend.d.ts +3 -2
  113. package/dist/map/map-legend.js +7 -10
  114. package/dist/map/map-popover.js +16 -11
  115. package/dist/map-container.d.ts +10 -8
  116. package/dist/map-container.js +86 -55
  117. package/dist/modal-container.d.ts +2 -1
  118. package/dist/modal-container.js +4 -3
  119. package/dist/modals/add-map-style-modal.d.ts +3 -0
  120. package/dist/modals/add-map-style-modal.js +58 -10
  121. package/dist/modals/cloud-components/cloud-item.js +2 -2
  122. package/dist/modals/cloud-tile.d.ts +6 -1
  123. package/dist/modals/cloud-tile.js +2 -2
  124. package/dist/modals/data-table-modal.d.ts +5 -3
  125. package/dist/modals/data-table-modal.js +3 -3
  126. package/dist/modals/export-data-modal.js +4 -5
  127. package/dist/modals/export-map-modal/components.d.ts +5 -3
  128. package/dist/modals/export-map-modal/export-html-map.js +2 -2
  129. package/dist/modals/export-map-modal/export-json-map.js +3 -2
  130. package/dist/modals/modal-dialog.d.ts +3 -1
  131. package/dist/modals/modal-tabs.js +2 -2
  132. package/dist/modals/share-map-modal.d.ts +4 -4
  133. package/dist/modals/storage-map-viewer.js +3 -3
  134. package/dist/modals/tilesets-modals/common.d.ts +1 -1
  135. package/dist/modals/tilesets-modals/common.js +1 -1
  136. package/dist/modals/tilesets-modals/load-data-footer.d.ts +3 -3
  137. package/dist/modals/tilesets-modals/load-data-footer.js +16 -7
  138. package/dist/modals/tilesets-modals/load-tileset.js +5 -4
  139. package/dist/modals/tilesets-modals/tileset-vector-form.js +28 -14
  140. package/dist/plot-container.js +3 -3
  141. package/dist/side-panel/add-by-dataset-button.js +4 -1
  142. package/dist/side-panel/common/dataset-info.js +3 -3
  143. package/dist/side-panel/common/dataset-title.d.ts +1 -0
  144. package/dist/side-panel/common/dataset-title.js +5 -4
  145. package/dist/side-panel/filter-manager.d.ts +2 -2
  146. package/dist/side-panel/filter-manager.js +1 -1
  147. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +9 -1
  148. package/dist/side-panel/filter-panel/filter-panel-header.js +24 -9
  149. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +10 -1
  150. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +5 -3
  151. package/dist/side-panel/layer-panel/aggr-scale-selector.d.ts +2 -1
  152. package/dist/side-panel/layer-panel/aggr-scale-selector.js +3 -1
  153. package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +2 -4
  154. package/dist/side-panel/layer-panel/channel-by-value-selector.js +9 -5
  155. package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +15 -7
  156. package/dist/side-panel/layer-panel/color-breaks-panel.js +52 -20
  157. package/dist/side-panel/layer-panel/color-palette-preset.js +2 -2
  158. package/dist/side-panel/layer-panel/color-palette.d.ts +9 -4
  159. package/dist/side-panel/layer-panel/color-palette.js +13 -7
  160. package/dist/side-panel/layer-panel/color-range-selector.d.ts +2 -2
  161. package/dist/side-panel/layer-panel/color-range-selector.js +2 -2
  162. package/dist/side-panel/layer-panel/color-scale-selector.d.ts +5 -4
  163. package/dist/side-panel/layer-panel/color-scale-selector.js +93 -43
  164. package/dist/side-panel/layer-panel/color-selector.d.ts +7 -7
  165. package/dist/side-panel/layer-panel/color-selector.js +52 -36
  166. package/dist/side-panel/layer-panel/custom-palette.d.ts +44 -15
  167. package/dist/side-panel/layer-panel/custom-palette.js +342 -39
  168. package/dist/side-panel/layer-panel/custom-picker.d.ts +9 -5
  169. package/dist/side-panel/layer-panel/custom-picker.js +2 -2
  170. package/dist/side-panel/layer-panel/dimension-scale-selector.js +5 -3
  171. package/dist/side-panel/layer-panel/layer-color-selector.d.ts +1 -1
  172. package/dist/side-panel/layer-panel/layer-color-selector.js +1 -1
  173. package/dist/side-panel/layer-panel/layer-column-mode-config.js +1 -1
  174. package/dist/side-panel/layer-panel/layer-config-group.d.ts +11 -11
  175. package/dist/side-panel/layer-panel/layer-config-group.js +2 -2
  176. package/dist/side-panel/layer-panel/layer-configurator.d.ts +7 -7
  177. package/dist/side-panel/layer-panel/layer-configurator.js +10 -10
  178. package/dist/side-panel/layer-panel/layer-list.d.ts +2 -0
  179. package/dist/side-panel/layer-panel/layer-list.js +7 -4
  180. package/dist/side-panel/layer-panel/layer-panel-header.js +5 -5
  181. package/dist/side-panel/layer-panel/layer-panel.d.ts +3 -0
  182. package/dist/side-panel/layer-panel/layer-panel.js +8 -8
  183. package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +2 -2
  184. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +1 -10
  185. package/dist/side-panel/layer-panel/layer-type-list-item.js +2 -2
  186. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +1 -8
  187. package/dist/side-panel/layer-panel/layer-type-selector.js +1 -1
  188. package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -2
  189. package/dist/side-panel/layer-panel/single-color-palette.js +2 -2
  190. package/dist/side-panel/layer-panel/text-label-panel.js +1 -1
  191. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +6 -3
  192. package/dist/side-panel/map-style-panel/map-style-selector.js +2 -2
  193. package/dist/side-panel/panel-header-action.js +2 -2
  194. package/dist/side-panel/panel-header.js +2 -2
  195. package/dist/side-panel/panel-tab.d.ts +3 -3
  196. package/dist/side-panel/panel-tab.js +2 -2
  197. package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
  198. package/dist/side-panel/panel-view-list-toggle.js +2 -2
  199. package/dist/side-panel/side-bar.js +2 -2
  200. package/dist/side-panel.d.ts +1 -1
  201. package/dist/types.d.ts +6 -7
  202. package/dist/types.js +1 -1
  203. package/package.json +26 -22
@@ -9,12 +9,11 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _localization = require("@kepler.gl/localization");
12
- var _styledComponents = require("../styled-components");
13
12
  var _iconButton = _interopRequireDefault(require("../icon-button"));
13
+ var _tippyTooltip = _interopRequireDefault(require("../tippy-tooltip"));
14
14
  // SPDX-License-Identifier: MIT
15
15
  // Copyright contributors to the kepler.gl project
16
16
 
17
- var DELAY_SHOW = 500;
18
17
  function PlayControlFactory() {
19
18
  var PlayControl = function PlayControl(_ref) {
20
19
  var showAnimationWindowControl = _ref.showAnimationWindowControl,
@@ -25,9 +24,15 @@ function PlayControlFactory() {
25
24
  btnStyle = _ref.btnStyle,
26
25
  playbackIcons = _ref.playbackIcons,
27
26
  buttonHeight = _ref.buttonHeight;
28
- return showAnimationWindowControl ? null : /*#__PURE__*/_react["default"].createElement(_iconButton["default"], (0, _extends2["default"])({
29
- "data-tip": true,
30
- "data-for": "animate-play-pause",
27
+ return showAnimationWindowControl ? null : /*#__PURE__*/_react["default"].createElement(_tippyTooltip["default"], {
28
+ placement: "top",
29
+ delay: [500, 0],
30
+ render: function render() {
31
+ return /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
32
+ id: isAnimating ? 'tooltip.pause' : 'tooltip.play'
33
+ });
34
+ }
35
+ }, /*#__PURE__*/_react["default"].createElement(_iconButton["default"], (0, _extends2["default"])({
31
36
  className: (0, _classnames["default"])('playback-control-button', {
32
37
  active: isAnimating
33
38
  }),
@@ -37,16 +42,9 @@ function PlayControlFactory() {
37
42
  height: buttonHeight
38
43
  }) : /*#__PURE__*/_react["default"].createElement(playbackIcons.play, {
39
44
  height: buttonHeight
40
- }), /*#__PURE__*/_react["default"].createElement(_styledComponents.Tooltip, {
41
- id: "animate-play-pause",
42
- place: "top",
43
- delayShow: DELAY_SHOW,
44
- effect: "solid"
45
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
46
- id: isAnimating ? 'tooltip.pause' : 'tooltip.play'
47
45
  })));
48
46
  };
49
47
  return PlayControl;
50
48
  }
51
49
  var _default = exports["default"] = PlayControlFactory;
52
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbGFzc25hbWVzIiwiX2xvY2FsaXphdGlvbiIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2ljb25CdXR0b24iLCJERUxBWV9TSE9XIiwiUGxheUNvbnRyb2xGYWN0b3J5IiwiUGxheUNvbnRyb2wiLCJfcmVmIiwic2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wiLCJpc0FuaW1hdGluZyIsInBhdXNlQW5pbWF0aW9uIiwic3RhcnRBbmltYXRpb24iLCJpc1NwZWVkQ29udHJvbFZpc2libGUiLCJidG5TdHlsZSIsInBsYXliYWNrSWNvbnMiLCJidXR0b25IZWlnaHQiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsImFjdGl2ZSIsIm9uQ2xpY2siLCJoaWRlIiwicGF1c2UiLCJoZWlnaHQiLCJwbGF5IiwiVG9vbHRpcCIsImlkIiwicGxhY2UiLCJkZWxheVNob3ciLCJlZmZlY3QiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9hbmltYXRpb24tY29udHJvbC9wbGF5LWNvbnRyb2wudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtUb29sdGlwfSBmcm9tICcuLi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICcuLi9pY29uLWJ1dHRvbic7XG5cbmNvbnN0IERFTEFZX1NIT1cgPSA1MDA7XG5cbmZ1bmN0aW9uIFBsYXlDb250cm9sRmFjdG9yeSgpIHtcbiAgY29uc3QgUGxheUNvbnRyb2wgPSAoe1xuICAgIHNob3dBbmltYXRpb25XaW5kb3dDb250cm9sLFxuICAgIGlzQW5pbWF0aW5nLFxuICAgIHBhdXNlQW5pbWF0aW9uLFxuICAgIHN0YXJ0QW5pbWF0aW9uLFxuICAgIGlzU3BlZWRDb250cm9sVmlzaWJsZSxcbiAgICBidG5TdHlsZSxcbiAgICBwbGF5YmFja0ljb25zLFxuICAgIGJ1dHRvbkhlaWdodFxuICB9KSA9PiB7XG4gICAgcmV0dXJuIHNob3dBbmltYXRpb25XaW5kb3dDb250cm9sID8gbnVsbCA6IChcbiAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgIGRhdGEtdGlwXG4gICAgICAgIGRhdGEtZm9yPVwiYW5pbWF0ZS1wbGF5LXBhdXNlXCJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdwbGF5YmFjay1jb250cm9sLWJ1dHRvbicsIHthY3RpdmU6IGlzQW5pbWF0aW5nfSl9XG4gICAgICAgIG9uQ2xpY2s9e2lzQW5pbWF0aW5nID8gcGF1c2VBbmltYXRpb24gOiBzdGFydEFuaW1hdGlvbn1cbiAgICAgICAgaGlkZT17aXNTcGVlZENvbnRyb2xWaXNpYmxlfVxuICAgICAgICB7Li4uYnRuU3R5bGV9XG4gICAgICA+XG4gICAgICAgIHtpc0FuaW1hdGluZyA/IChcbiAgICAgICAgICA8cGxheWJhY2tJY29ucy5wYXVzZSBoZWlnaHQ9e2J1dHRvbkhlaWdodH0gLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8cGxheWJhY2tJY29ucy5wbGF5IGhlaWdodD17YnV0dG9uSGVpZ2h0fSAvPlxuICAgICAgICApfVxuICAgICAgICA8VG9vbHRpcCBpZD1cImFuaW1hdGUtcGxheS1wYXVzZVwiIHBsYWNlPVwidG9wXCIgZGVsYXlTaG93PXtERUxBWV9TSE9XfSBlZmZlY3Q9XCJzb2xpZFwiPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtpc0FuaW1hdGluZyA/ICd0b29sdGlwLnBhdXNlJyA6ICd0b29sdGlwLnBsYXknfSAvPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICA8L0ljb25CdXR0b24+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUGxheUNvbnRyb2w7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBsYXlDb250cm9sRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxhQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxpQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBUEE7QUFDQTs7QUFRQSxJQUFNSyxVQUFVLEdBQUcsR0FBRztBQUV0QixTQUFTQyxrQkFBa0JBLENBQUEsRUFBRztFQUM1QixJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQUMsSUFBQSxFQVNYO0lBQUEsSUFSSkMsMEJBQTBCLEdBQUFELElBQUEsQ0FBMUJDLDBCQUEwQjtNQUMxQkMsV0FBVyxHQUFBRixJQUFBLENBQVhFLFdBQVc7TUFDWEMsY0FBYyxHQUFBSCxJQUFBLENBQWRHLGNBQWM7TUFDZEMsY0FBYyxHQUFBSixJQUFBLENBQWRJLGNBQWM7TUFDZEMscUJBQXFCLEdBQUFMLElBQUEsQ0FBckJLLHFCQUFxQjtNQUNyQkMsUUFBUSxHQUFBTixJQUFBLENBQVJNLFFBQVE7TUFDUkMsYUFBYSxHQUFBUCxJQUFBLENBQWJPLGFBQWE7TUFDYkMsWUFBWSxHQUFBUixJQUFBLENBQVpRLFlBQVk7SUFFWixPQUFPUCwwQkFBMEIsR0FBRyxJQUFJLGdCQUN0Q1gsTUFBQSxZQUFBbUIsYUFBQSxDQUFDYixXQUFBLFdBQVUsTUFBQWMsU0FBQTtNQUNULGdCQUFRO01BQ1IsWUFBUyxvQkFBb0I7TUFDN0JDLFNBQVMsRUFBRSxJQUFBQyxzQkFBVSxFQUFDLHlCQUF5QixFQUFFO1FBQUNDLE1BQU0sRUFBRVg7TUFBVyxDQUFDLENBQUU7TUFDeEVZLE9BQU8sRUFBRVosV0FBVyxHQUFHQyxjQUFjLEdBQUdDLGNBQWU7TUFDdkRXLElBQUksRUFBRVY7SUFBc0IsR0FDeEJDLFFBQVEsR0FFWEosV0FBVyxnQkFDVlosTUFBQSxZQUFBbUIsYUFBQSxDQUFDRixhQUFhLENBQUNTLEtBQUs7TUFBQ0MsTUFBTSxFQUFFVDtJQUFhLENBQUUsQ0FBQyxnQkFFN0NsQixNQUFBLFlBQUFtQixhQUFBLENBQUNGLGFBQWEsQ0FBQ1csSUFBSTtNQUFDRCxNQUFNLEVBQUVUO0lBQWEsQ0FBRSxDQUM1QyxlQUNEbEIsTUFBQSxZQUFBbUIsYUFBQSxDQUFDZCxpQkFBQSxDQUFBd0IsT0FBTztNQUFDQyxFQUFFLEVBQUMsb0JBQW9CO01BQUNDLEtBQUssRUFBQyxLQUFLO01BQUNDLFNBQVMsRUFBRXpCLFVBQVc7TUFBQzBCLE1BQU0sRUFBQztJQUFPLGdCQUNoRmpDLE1BQUEsWUFBQW1CLGFBQUEsQ0FBQ2YsYUFBQSxDQUFBOEIsZ0JBQWdCO01BQUNKLEVBQUUsRUFBRWxCLFdBQVcsR0FBRyxlQUFlLEdBQUc7SUFBZSxDQUFFLENBQ2hFLENBQ0MsQ0FDYjtFQUNILENBQUM7RUFFRCxPQUFPSCxXQUFXO0FBQ3BCO0FBQUMsSUFBQTBCLFFBQUEsR0FBQUMsT0FBQSxjQUVjNUIsa0JBQWtCIiwiaWdub3JlTGlzdCI6W119
50
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbGFzc25hbWVzIiwiX2xvY2FsaXphdGlvbiIsIl9pY29uQnV0dG9uIiwiX3RpcHB5VG9vbHRpcCIsIlBsYXlDb250cm9sRmFjdG9yeSIsIlBsYXlDb250cm9sIiwiX3JlZiIsInNob3dBbmltYXRpb25XaW5kb3dDb250cm9sIiwiaXNBbmltYXRpbmciLCJwYXVzZUFuaW1hdGlvbiIsInN0YXJ0QW5pbWF0aW9uIiwiaXNTcGVlZENvbnRyb2xWaXNpYmxlIiwiYnRuU3R5bGUiLCJwbGF5YmFja0ljb25zIiwiYnV0dG9uSGVpZ2h0IiwiY3JlYXRlRWxlbWVudCIsInBsYWNlbWVudCIsImRlbGF5IiwicmVuZGVyIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiX2V4dGVuZHMyIiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsImFjdGl2ZSIsIm9uQ2xpY2siLCJoaWRlIiwicGF1c2UiLCJoZWlnaHQiLCJwbGF5IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9hbmltYXRpb24tY29udHJvbC9wbGF5LWNvbnRyb2wudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnLi4vaWNvbi1idXR0b24nO1xuaW1wb3J0IFRpcHB5VG9vbHRpcCBmcm9tICcuLi90aXBweS10b29sdGlwJztcblxuZnVuY3Rpb24gUGxheUNvbnRyb2xGYWN0b3J5KCkge1xuICBjb25zdCBQbGF5Q29udHJvbCA9ICh7XG4gICAgc2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wsXG4gICAgaXNBbmltYXRpbmcsXG4gICAgcGF1c2VBbmltYXRpb24sXG4gICAgc3RhcnRBbmltYXRpb24sXG4gICAgaXNTcGVlZENvbnRyb2xWaXNpYmxlLFxuICAgIGJ0blN0eWxlLFxuICAgIHBsYXliYWNrSWNvbnMsXG4gICAgYnV0dG9uSGVpZ2h0XG4gIH0pID0+IHtcbiAgICByZXR1cm4gc2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wgPyBudWxsIDogKFxuICAgICAgPFRpcHB5VG9vbHRpcFxuICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgICBkZWxheT17WzUwMCwgMF19XG4gICAgICAgIHJlbmRlcj17KCkgPT4gPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e2lzQW5pbWF0aW5nID8gJ3Rvb2x0aXAucGF1c2UnIDogJ3Rvb2x0aXAucGxheSd9IC8+fVxuICAgICAgPlxuICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygncGxheWJhY2stY29udHJvbC1idXR0b24nLCB7YWN0aXZlOiBpc0FuaW1hdGluZ30pfVxuICAgICAgICAgIG9uQ2xpY2s9e2lzQW5pbWF0aW5nID8gcGF1c2VBbmltYXRpb24gOiBzdGFydEFuaW1hdGlvbn1cbiAgICAgICAgICBoaWRlPXtpc1NwZWVkQ29udHJvbFZpc2libGV9XG4gICAgICAgICAgey4uLmJ0blN0eWxlfVxuICAgICAgICA+XG4gICAgICAgICAge2lzQW5pbWF0aW5nID8gKFxuICAgICAgICAgICAgPHBsYXliYWNrSWNvbnMucGF1c2UgaGVpZ2h0PXtidXR0b25IZWlnaHR9IC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxwbGF5YmFja0ljb25zLnBsYXkgaGVpZ2h0PXtidXR0b25IZWlnaHR9IC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgPC9UaXBweVRvb2x0aXA+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUGxheUNvbnRyb2w7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBsYXlDb250cm9sRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxhQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxhQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFQQTtBQUNBOztBQVFBLFNBQVNLLGtCQUFrQkEsQ0FBQSxFQUFHO0VBQzVCLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBQyxJQUFBLEVBU1g7SUFBQSxJQVJKQywwQkFBMEIsR0FBQUQsSUFBQSxDQUExQkMsMEJBQTBCO01BQzFCQyxXQUFXLEdBQUFGLElBQUEsQ0FBWEUsV0FBVztNQUNYQyxjQUFjLEdBQUFILElBQUEsQ0FBZEcsY0FBYztNQUNkQyxjQUFjLEdBQUFKLElBQUEsQ0FBZEksY0FBYztNQUNkQyxxQkFBcUIsR0FBQUwsSUFBQSxDQUFyQksscUJBQXFCO01BQ3JCQyxRQUFRLEdBQUFOLElBQUEsQ0FBUk0sUUFBUTtNQUNSQyxhQUFhLEdBQUFQLElBQUEsQ0FBYk8sYUFBYTtNQUNiQyxZQUFZLEdBQUFSLElBQUEsQ0FBWlEsWUFBWTtJQUVaLE9BQU9QLDBCQUEwQixHQUFHLElBQUksZ0JBQ3RDVixNQUFBLFlBQUFrQixhQUFBLENBQUNaLGFBQUEsV0FBWTtNQUNYYSxTQUFTLEVBQUMsS0FBSztNQUNmQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFFO01BQ2hCQyxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBQTtRQUFBLG9CQUFRckIsTUFBQSxZQUFBa0IsYUFBQSxDQUFDZCxhQUFBLENBQUFrQixnQkFBZ0I7VUFBQ0MsRUFBRSxFQUFFWixXQUFXLEdBQUcsZUFBZSxHQUFHO1FBQWUsQ0FBRSxDQUFDO01BQUE7SUFBQyxnQkFFdkZYLE1BQUEsWUFBQWtCLGFBQUEsQ0FBQ2IsV0FBQSxXQUFVLE1BQUFtQixTQUFBO01BQ1RDLFNBQVMsRUFBRSxJQUFBQyxzQkFBVSxFQUFDLHlCQUF5QixFQUFFO1FBQUNDLE1BQU0sRUFBRWhCO01BQVcsQ0FBQyxDQUFFO01BQ3hFaUIsT0FBTyxFQUFFakIsV0FBVyxHQUFHQyxjQUFjLEdBQUdDLGNBQWU7TUFDdkRnQixJQUFJLEVBQUVmO0lBQXNCLEdBQ3hCQyxRQUFRLEdBRVhKLFdBQVcsZ0JBQ1ZYLE1BQUEsWUFBQWtCLGFBQUEsQ0FBQ0YsYUFBYSxDQUFDYyxLQUFLO01BQUNDLE1BQU0sRUFBRWQ7SUFBYSxDQUFFLENBQUMsZ0JBRTdDakIsTUFBQSxZQUFBa0IsYUFBQSxDQUFDRixhQUFhLENBQUNnQixJQUFJO01BQUNELE1BQU0sRUFBRWQ7SUFBYSxDQUFFLENBRW5DLENBQ0EsQ0FDZjtFQUNILENBQUM7RUFFRCxPQUFPVCxXQUFXO0FBQ3BCO0FBQUMsSUFBQXlCLFFBQUEsR0FBQUMsT0FBQSxjQUVjM0Isa0JBQWtCIiwiaWdub3JlTGlzdCI6W119
@@ -1,44 +1,35 @@
1
1
  import React from 'react';
2
- import { Rocket } from '../icons';
2
+ import { Filter, TimeRangeFilter } from '@kepler.gl/types';
3
3
  import AnimationSpeedSliderFactory from './animation-speed-slider';
4
4
  import WindowActionControlFactory from './window-action-control';
5
5
  import AnimationWindowControlFactory, { AnimationItem } from './animation-window-control';
6
6
  import ResetControlFactory from './reset-control';
7
7
  import PlayControlFactory from './play-control';
8
- declare const DEFAULT_ICONS: {
9
- reset: () => React.JSX.Element;
10
- play: () => React.JSX.Element;
11
- pause: () => React.JSX.Element;
12
- export: () => React.JSX.Element;
13
- speed: typeof Rocket;
14
- animationFree: ({ height, viewBox, predefinedClassName, ...restProps }: Partial<import("../icons").BaseProps>) => React.JSX.Element;
15
- animationIncremental: {
16
- (props: Partial<import("../icons").BaseProps>): React.JSX.Element;
17
- defaultProps: {
18
- height: string;
19
- viewBox: string;
20
- predefinedClassName: string;
21
- };
22
- };
8
+ import { BaseComponentProps } from '../../types';
9
+ export declare type StyledAnimationControlsProps = BaseComponentProps & {
10
+ width?: number;
23
11
  };
24
12
  export interface PlaybackControlsProps {
13
+ filter?: Filter;
25
14
  isAnimatable?: boolean;
26
15
  isAnimating?: boolean;
27
16
  width?: number;
28
17
  speed: number;
29
- animationWindow?: string;
18
+ animationWindow?: null | TimeRangeFilter['animationWindow'];
30
19
  setFilterAnimationWindow?: (id: string) => void;
31
- updateAnimationSpeed?: (val: number) => void;
20
+ updateAnimationSpeed?: (idx: number, speed: number) => void;
32
21
  pauseAnimation?: () => void;
33
22
  resetAnimation?: () => void;
34
23
  startAnimation: () => void;
35
- playbackIcons?: typeof DEFAULT_ICONS;
24
+ playbackIcons?: Record<string, React.FC<{
25
+ height: number;
26
+ }>>;
36
27
  animationItems?: {
37
28
  [key: string]: AnimationItem;
38
29
  };
39
30
  buttonStyle?: string;
40
31
  buttonHeight?: string;
41
- playbackActionItems?: any[];
32
+ playbackActionItems?: React.FC[];
42
33
  className?: string;
43
34
  }
44
35
  declare function PlaybackControlsFactory(AnimationSpeedSlider: ReturnType<typeof AnimationSpeedSliderFactory>, WindowActionControl: any, AnimationWindowControl: any, ResetControl: any, PlayControl: any): React.FC<PlaybackControlsProps>;
@@ -75,9 +75,10 @@ function PlaybackControlsFactory(AnimationSpeedSlider, WindowActionControl, Anim
75
75
 
76
76
  // eslint-disable-next-line complexity
77
77
  var PlaybackControls = function PlaybackControls(_ref) {
78
- var isAnimatable = _ref.isAnimatable,
79
- _ref$isAnimating = _ref.isAnimating,
80
- isAnimating = _ref$isAnimating === void 0 ? true : _ref$isAnimating,
78
+ var filter = _ref.filter,
79
+ _ref$isAnimatable = _ref.isAnimatable,
80
+ isAnimatable = _ref$isAnimatable === void 0 ? true : _ref$isAnimatable,
81
+ isAnimating = _ref.isAnimating,
81
82
  width = _ref.width,
82
83
  speed = _ref.speed,
83
84
  _ref$animationWindow = _ref.animationWindow,
@@ -138,6 +139,7 @@ function PlaybackControlsFactory(AnimationSpeedSlider, WindowActionControl, Anim
138
139
  animationItems: animationItems,
139
140
  animationWindow: animationWindow,
140
141
  buttonHeight: buttonHeight,
142
+ filter: filter,
141
143
  setFilterAnimationWindow: setFilterAnimationWindow,
142
144
  updateAnimationSpeed: updateAnimationSpeed,
143
145
  isAnimating: isAnimating,
@@ -153,4 +155,4 @@ function PlaybackControlsFactory(AnimationSpeedSlider, WindowActionControl, Anim
153
155
  return PlaybackControls;
154
156
  }
155
157
  var _default = exports["default"] = PlaybackControlsFactory;
156
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9pY29ucyIsIl9jb25zdGFudHMiLCJfYW5pbWF0aW9uU3BlZWRTbGlkZXIiLCJfd2luZG93QWN0aW9uQ29udHJvbCIsIl9hbmltYXRpb25XaW5kb3dDb250cm9sIiwiX3Jlc2V0Q29udHJvbCIsIl9wbGF5Q29udHJvbCIsIl9zcGVlZENvbnRyb2wiLCJfdGVtcGxhdGVPYmplY3QiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJERUZBVUxUX0JVVFRPTl9IRUlHSFQiLCJTdHlsZWRBbmltYXRpb25Db250cm9scyIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ3aWR0aCIsIkRFRkFVTFRfSUNPTlMiLCJyZXNldCIsImNyZWF0ZUVsZW1lbnQiLCJSZXNldCIsImhlaWdodCIsInBsYXkiLCJQbGF5IiwicGF1c2UiLCJQYXVzZSIsImV4cG9ydCIsIlNhdmUiLCJzcGVlZCIsIlJvY2tldCIsImFuaW1hdGlvbkZyZWUiLCJGcmVlV2luZG93IiwiYW5pbWF0aW9uSW5jcmVtZW50YWwiLCJBbmNob3JXaW5kb3ciLCJub3AiLCJERUZBVUxUX0FOSU1BVEVfSVRFTVMiLCJfZGVmaW5lUHJvcGVydHkyIiwiQU5JTUFUSU9OX1dJTkRPVyIsImZyZWUiLCJpZCIsImljb24iLCJ0b29sdGlwIiwiaW5jcmVtZW50YWwiLCJQbGF5YmFja0NvbnRyb2xzRmFjdG9yeSIsImRlcHMiLCJBbmltYXRpb25TcGVlZFNsaWRlckZhY3RvcnkiLCJXaW5kb3dBY3Rpb25Db250cm9sRmFjdG9yeSIsIkFuaW1hdGlvbldpbmRvd0NvbnRyb2xGYWN0b3J5IiwiUmVzZXRDb250cm9sRmFjdG9yeSIsIlBsYXlDb250cm9sRmFjdG9yeSIsIkFuaW1hdGlvblNwZWVkU2xpZGVyIiwiV2luZG93QWN0aW9uQ29udHJvbCIsIkFuaW1hdGlvbldpbmRvd0NvbnRyb2wiLCJSZXNldENvbnRyb2wiLCJQbGF5Q29udHJvbCIsIlBMQVlCQUNLX0NPTlRST0xTX0RFRkFVTFRfQUNUSU9OX0NPTVBPTkVOVFMiLCJTcGVlZENvbnRyb2xGYWN0b3J5IiwiUGxheWJhY2tDb250cm9scyIsIl9yZWYiLCJpc0FuaW1hdGFibGUiLCJfcmVmJGlzQW5pbWF0aW5nIiwiaXNBbmltYXRpbmciLCJfcmVmJGFuaW1hdGlvbldpbmRvdyIsImFuaW1hdGlvbldpbmRvdyIsInNldEZpbHRlckFuaW1hdGlvbldpbmRvdyIsInVwZGF0ZUFuaW1hdGlvblNwZWVkIiwiX3JlZiRwYXVzZUFuaW1hdGlvbiIsInBhdXNlQW5pbWF0aW9uIiwiX3JlZiRyZXNldEFuaW1hdGlvbiIsInJlc2V0QW5pbWF0aW9uIiwiX3JlZiRzdGFydEFuaW1hdGlvbiIsInN0YXJ0QW5pbWF0aW9uIiwiX3JlZiRwbGF5YmFja0ljb25zIiwicGxheWJhY2tJY29ucyIsIl9yZWYkYW5pbWF0aW9uSXRlbXMiLCJhbmltYXRpb25JdGVtcyIsIl9yZWYkYnV0dG9uU3R5bGUiLCJidXR0b25TdHlsZSIsIl9yZWYkYnV0dG9uSGVpZ2h0IiwiYnV0dG9uSGVpZ2h0IiwiX3JlZiRwbGF5YmFja0FjdGlvbkl0IiwicGxheWJhY2tBY3Rpb25JdGVtcyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlzU3BlZWRDb250cm9sVmlzaWJsZSIsInRvZ2dsZVNwZWVkQ29udHJvbCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wiLCJzZXRTaG93QW5pbWF0aW9uV2luZG93Q29udHJvbCIsInRvZ2dsZUFuaW1hdGlvbldpbmRvd0NvbnRyb2wiLCJ1c2VDYWxsYmFjayIsImJ0blN0eWxlIiwiaGlkZUFuZFNob3dTcGVlZENvbnRyb2wiLCJ3aW5kb3ciLCJzZXRUaW1lb3V0IiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsImRpc2FibGVkIiwibWFwIiwiQWN0aW9uQ29tcG9uZW50IiwiaW5kZXgiLCJrZXkiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL3BsYXliYWNrLWNvbnRyb2xzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZSwgdXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge1Jlc2V0LCBQbGF5LCBQYXVzZSwgU2F2ZSwgUm9ja2V0LCBBbmNob3JXaW5kb3csIEZyZWVXaW5kb3d9IGZyb20gJy4uL2ljb25zJztcbmltcG9ydCB7QU5JTUFUSU9OX1dJTkRPV30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IEFuaW1hdGlvblNwZWVkU2xpZGVyRmFjdG9yeSBmcm9tICcuL2FuaW1hdGlvbi1zcGVlZC1zbGlkZXInO1xuaW1wb3J0IFdpbmRvd0FjdGlvbkNvbnRyb2xGYWN0b3J5IGZyb20gJy4vd2luZG93LWFjdGlvbi1jb250cm9sJztcbmltcG9ydCBBbmltYXRpb25XaW5kb3dDb250cm9sRmFjdG9yeSwge0FuaW1hdGlvbkl0ZW19IGZyb20gJy4vYW5pbWF0aW9uLXdpbmRvdy1jb250cm9sJztcbmltcG9ydCBSZXNldENvbnRyb2xGYWN0b3J5IGZyb20gJy4vcmVzZXQtY29udHJvbCc7XG5pbXBvcnQgUGxheUNvbnRyb2xGYWN0b3J5IGZyb20gJy4vcGxheS1jb250cm9sJztcbmltcG9ydCBTcGVlZENvbnRyb2xGYWN0b3J5IGZyb20gJy4vc3BlZWQtY29udHJvbCc7XG5cbmNvbnN0IERFRkFVTFRfQlVUVE9OX0hFSUdIVCA9ICcyMHB4JztcblxuaW50ZXJmYWNlIFN0eWxlZEFuaW1hdGlvbkNvbnRyb2xzUHJvcHMge1xuICB3aWR0aD86IG51bWJlcjtcbn1cblxuY29uc3QgU3R5bGVkQW5pbWF0aW9uQ29udHJvbHMgPSBzdHlsZWQuZGl2PFN0eWxlZEFuaW1hdGlvbkNvbnRyb2xzUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuICAmLmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbmA7XG5cbmNvbnN0IERFRkFVTFRfSUNPTlMgPSB7XG4gIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Rpc3BsYXktbmFtZSAqL1xuICByZXNldDogKCkgPT4gPFJlc2V0IGhlaWdodD1cIjE4cHhcIiAvPixcbiAgcGxheTogKCkgPT4gPFBsYXkgaGVpZ2h0PVwiMThweFwiIC8+LFxuICBwYXVzZTogKCkgPT4gPFBhdXNlIGhlaWdodD1cIjE4cHhcIiAvPixcbiAgZXhwb3J0OiAoKSA9PiA8U2F2ZSBoZWlnaHQ9XCIxOHB4XCIgLz4sXG4gIC8qIGVzbGludC1lbmFibGUgcmVhY3QvZGlzcGxheS1uYW1lICovXG4gIHNwZWVkOiBSb2NrZXQsXG4gIGFuaW1hdGlvbkZyZWU6IEZyZWVXaW5kb3csXG4gIGFuaW1hdGlvbkluY3JlbWVudGFsOiBBbmNob3JXaW5kb3dcbn07XG5cbmZ1bmN0aW9uIG5vcCgpIHtcbiAgcmV0dXJuO1xufVxuXG5jb25zdCBERUZBVUxUX0FOSU1BVEVfSVRFTVMgPSB7XG4gIFtBTklNQVRJT05fV0lORE9XLmZyZWVdOiB7XG4gICAgaWQ6IEFOSU1BVElPTl9XSU5ET1cuZnJlZSxcbiAgICBpY29uOiBERUZBVUxUX0lDT05TLmFuaW1hdGlvbkZyZWUsXG4gICAgdG9vbHRpcDogJ3Rvb2x0aXAuYW5pbWF0aW9uQnlXaW5kb3cnXG4gIH0sXG4gIFtBTklNQVRJT05fV0lORE9XLmluY3JlbWVudGFsXToge1xuICAgIGlkOiBBTklNQVRJT05fV0lORE9XLmluY3JlbWVudGFsLFxuICAgIGljb246IERFRkFVTFRfSUNPTlMuYW5pbWF0aW9uSW5jcmVtZW50YWwsXG4gICAgdG9vbHRpcDogJ3Rvb2x0aXAuYW5pbWF0aW9uQnlJbmNyZW1lbnRhbCdcbiAgfVxufTtcbmV4cG9ydCBpbnRlcmZhY2UgUGxheWJhY2tDb250cm9sc1Byb3BzIHtcbiAgaXNBbmltYXRhYmxlPzogYm9vbGVhbjtcbiAgaXNBbmltYXRpbmc/OiBib29sZWFuO1xuICB3aWR0aD86IG51bWJlcjtcbiAgc3BlZWQ6IG51bWJlcjtcbiAgYW5pbWF0aW9uV2luZG93Pzogc3RyaW5nO1xuICBzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3c/OiAoaWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgdXBkYXRlQW5pbWF0aW9uU3BlZWQ/OiAodmFsOiBudW1iZXIpID0+IHZvaWQ7XG4gIHBhdXNlQW5pbWF0aW9uPzogKCkgPT4gdm9pZDtcbiAgcmVzZXRBbmltYXRpb24/OiAoKSA9PiB2b2lkO1xuICBzdGFydEFuaW1hdGlvbjogKCkgPT4gdm9pZDtcbiAgcGxheWJhY2tJY29ucz86IHR5cGVvZiBERUZBVUxUX0lDT05TO1xuICBhbmltYXRpb25JdGVtcz86IHtba2V5OiBzdHJpbmddOiBBbmltYXRpb25JdGVtfTtcbiAgYnV0dG9uU3R5bGU/OiBzdHJpbmc7XG4gIGJ1dHRvbkhlaWdodD86IHN0cmluZztcbiAgcGxheWJhY2tBY3Rpb25JdGVtcz86IGFueVtdO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59XG5cblBsYXliYWNrQ29udHJvbHNGYWN0b3J5LmRlcHMgPSBbXG4gIC8vIGtlZXBpbmcgdGhpcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgYnV0IHdlIGNhbiBkZWNpZGUgdG8gZHJvcCBpdCBsYXRlclxuICBBbmltYXRpb25TcGVlZFNsaWRlckZhY3RvcnksXG4gIFdpbmRvd0FjdGlvbkNvbnRyb2xGYWN0b3J5LFxuICBBbmltYXRpb25XaW5kb3dDb250cm9sRmFjdG9yeSxcbiAgUmVzZXRDb250cm9sRmFjdG9yeSxcbiAgUGxheUNvbnRyb2xGYWN0b3J5XG5dO1xuXG5mdW5jdGlvbiBQbGF5YmFja0NvbnRyb2xzRmFjdG9yeShcbiAgQW5pbWF0aW9uU3BlZWRTbGlkZXI6IFJldHVyblR5cGU8dHlwZW9mIEFuaW1hdGlvblNwZWVkU2xpZGVyRmFjdG9yeT4sXG4gIFdpbmRvd0FjdGlvbkNvbnRyb2wsXG4gIEFuaW1hdGlvbldpbmRvd0NvbnRyb2wsXG4gIFJlc2V0Q29udHJvbCxcbiAgUGxheUNvbnRyb2xcbikge1xuICBjb25zdCBQTEFZQkFDS19DT05UUk9MU19ERUZBVUxUX0FDVElPTl9DT01QT05FTlRTID0gW1xuICAgIFBsYXlDb250cm9sLFxuICAgIFNwZWVkQ29udHJvbEZhY3RvcnkoQW5pbWF0aW9uU3BlZWRTbGlkZXIpLFxuICAgIFJlc2V0Q29udHJvbCxcbiAgICBXaW5kb3dBY3Rpb25Db250cm9sLFxuICAgIEFuaW1hdGlvbldpbmRvd0NvbnRyb2xcbiAgXTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuICBjb25zdCBQbGF5YmFja0NvbnRyb2xzOiBSZWFjdC5GQzxQbGF5YmFja0NvbnRyb2xzUHJvcHM+ID0gKHtcbiAgICBpc0FuaW1hdGFibGUsXG4gICAgaXNBbmltYXRpbmcgPSB0cnVlLFxuICAgIHdpZHRoLFxuICAgIHNwZWVkLFxuICAgIGFuaW1hdGlvbldpbmRvdyA9IEFOSU1BVElPTl9XSU5ET1cuZnJlZSxcbiAgICBzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3csXG4gICAgdXBkYXRlQW5pbWF0aW9uU3BlZWQsXG4gICAgcGF1c2VBbmltYXRpb24gPSBub3AsXG4gICAgcmVzZXRBbmltYXRpb24gPSBub3AsXG4gICAgc3RhcnRBbmltYXRpb24gPSBub3AsXG4gICAgcGxheWJhY2tJY29ucyA9IERFRkFVTFRfSUNPTlMsXG4gICAgYW5pbWF0aW9uSXRlbXMgPSBERUZBVUxUX0FOSU1BVEVfSVRFTVMsXG4gICAgYnV0dG9uU3R5bGUgPSAnc2Vjb25kYXJ5JyxcbiAgICBidXR0b25IZWlnaHQgPSBERUZBVUxUX0JVVFRPTl9IRUlHSFQsXG4gICAgcGxheWJhY2tBY3Rpb25JdGVtcyA9IFBMQVlCQUNLX0NPTlRST0xTX0RFRkFVTFRfQUNUSU9OX0NPTVBPTkVOVFNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IFtpc1NwZWVkQ29udHJvbFZpc2libGUsIHRvZ2dsZVNwZWVkQ29udHJvbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3Nob3dBbmltYXRpb25XaW5kb3dDb250cm9sLCBzZXRTaG93QW5pbWF0aW9uV2luZG93Q29udHJvbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgICBjb25zdCB0b2dnbGVBbmltYXRpb25XaW5kb3dDb250cm9sID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0U2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2woIXNob3dBbmltYXRpb25XaW5kb3dDb250cm9sKTtcbiAgICB9LCBbc2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wsIHNldFNob3dBbmltYXRpb25XaW5kb3dDb250cm9sXSk7XG4gICAgY29uc3QgYnRuU3R5bGUgPSBidXR0b25TdHlsZSA/IHtbYnV0dG9uU3R5bGVdOiB0cnVlfSA6IHt9O1xuXG4gICAgY29uc3QgaGlkZUFuZFNob3dTcGVlZENvbnRyb2wgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoIWlzU3BlZWRDb250cm9sVmlzaWJsZSkge1xuICAgICAgICB0b2dnbGVTcGVlZENvbnRyb2wodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUT0RPOiBBIEhBQ0sgdG8gYWxsb3cgaW5wdXQgb25ibHVyIGdldCB0cmlnZ2VyZWQgYmVmb3JlIHRoZSBpbnB1dCBpcyB1bm1vdW50ZWRcbiAgICAgICAgLy8gQSBiZXR0ZXIgc29sdXRpb24gc2hvdWxkIGJlIGludmVzdGVkLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMjM2M1xuICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0b2dnbGVTcGVlZENvbnRyb2woZmFsc2UpLCAyMDApO1xuICAgICAgfVxuICAgIH0sIFtpc1NwZWVkQ29udHJvbFZpc2libGUsIHRvZ2dsZVNwZWVkQ29udHJvbF0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRBbmltYXRpb25Db250cm9sc1xuICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ3BsYXliYWNrLWNvbnRyb2xzJywge1xuICAgICAgICAgIGRpc2FibGVkOiAhaXNBbmltYXRhYmxlXG4gICAgICAgIH0pfVxuICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICA+XG4gICAgICAgIHsvKiogV2luZG93ICovfVxuICAgICAgICB7cGxheWJhY2tBY3Rpb25JdGVtcy5tYXAoKEFjdGlvbkNvbXBvbmVudCwgaW5kZXgpID0+IChcbiAgICAgICAgICA8QWN0aW9uQ29tcG9uZW50XG4gICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgdG9nZ2xlQW5pbWF0aW9uV2luZG93Q29udHJvbD17dG9nZ2xlQW5pbWF0aW9uV2luZG93Q29udHJvbH1cbiAgICAgICAgICAgIHNob3dBbmltYXRpb25XaW5kb3dDb250cm9sPXtzaG93QW5pbWF0aW9uV2luZG93Q29udHJvbH1cbiAgICAgICAgICAgIGJ0blN0eWxlPXtidG5TdHlsZX1cbiAgICAgICAgICAgIGhpZGVBbmRTaG93U3BlZWRDb250cm9sPXtoaWRlQW5kU2hvd1NwZWVkQ29udHJvbH1cbiAgICAgICAgICAgIGFuaW1hdGlvbkl0ZW1zPXthbmltYXRpb25JdGVtc31cbiAgICAgICAgICAgIGFuaW1hdGlvbldpbmRvdz17YW5pbWF0aW9uV2luZG93fVxuICAgICAgICAgICAgYnV0dG9uSGVpZ2h0PXtidXR0b25IZWlnaHR9XG4gICAgICAgICAgICBzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3c9e3NldEZpbHRlckFuaW1hdGlvbldpbmRvd31cbiAgICAgICAgICAgIHVwZGF0ZUFuaW1hdGlvblNwZWVkPXt1cGRhdGVBbmltYXRpb25TcGVlZH1cbiAgICAgICAgICAgIGlzQW5pbWF0aW5nPXtpc0FuaW1hdGluZ31cbiAgICAgICAgICAgIHBhdXNlQW5pbWF0aW9uPXtwYXVzZUFuaW1hdGlvbn1cbiAgICAgICAgICAgIHJlc2V0QW5pbWF0aW9uPXtyZXNldEFuaW1hdGlvbn1cbiAgICAgICAgICAgIHN0YXJ0QW5pbWF0aW9uPXtzdGFydEFuaW1hdGlvbn1cbiAgICAgICAgICAgIHBsYXliYWNrSWNvbnM9e3BsYXliYWNrSWNvbnN9XG4gICAgICAgICAgICBpc1NwZWVkQ29udHJvbFZpc2libGU9e2lzU3BlZWRDb250cm9sVmlzaWJsZX1cbiAgICAgICAgICAgIHNwZWVkPXtzcGVlZH1cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgIDwvU3R5bGVkQW5pbWF0aW9uQ29udHJvbHM+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUGxheWJhY2tDb250cm9scztcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGxheWJhY2tDb250cm9sc0ZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEs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
158
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9pY29ucyIsIl9jb25zdGFudHMiLCJfYW5pbWF0aW9uU3BlZWRTbGlkZXIiLCJfd2luZG93QWN0aW9uQ29udHJvbCIsIl9hbmltYXRpb25XaW5kb3dDb250cm9sIiwiX3Jlc2V0Q29udHJvbCIsIl9wbGF5Q29udHJvbCIsIl9zcGVlZENvbnRyb2wiLCJfdGVtcGxhdGVPYmplY3QiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJERUZBVUxUX0JVVFRPTl9IRUlHSFQiLCJTdHlsZWRBbmltYXRpb25Db250cm9scyIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ3aWR0aCIsIkRFRkFVTFRfSUNPTlMiLCJyZXNldCIsImNyZWF0ZUVsZW1lbnQiLCJSZXNldCIsImhlaWdodCIsInBsYXkiLCJQbGF5IiwicGF1c2UiLCJQYXVzZSIsImV4cG9ydCIsIlNhdmUiLCJzcGVlZCIsIlJvY2tldCIsImFuaW1hdGlvbkZyZWUiLCJGcmVlV2luZG93IiwiYW5pbWF0aW9uSW5jcmVtZW50YWwiLCJBbmNob3JXaW5kb3ciLCJub3AiLCJERUZBVUxUX0FOSU1BVEVfSVRFTVMiLCJfZGVmaW5lUHJvcGVydHkyIiwiQU5JTUFUSU9OX1dJTkRPVyIsImZyZWUiLCJpZCIsImljb24iLCJ0b29sdGlwIiwiaW5jcmVtZW50YWwiLCJQbGF5YmFja0NvbnRyb2xzRmFjdG9yeSIsImRlcHMiLCJBbmltYXRpb25TcGVlZFNsaWRlckZhY3RvcnkiLCJXaW5kb3dBY3Rpb25Db250cm9sRmFjdG9yeSIsIkFuaW1hdGlvbldpbmRvd0NvbnRyb2xGYWN0b3J5IiwiUmVzZXRDb250cm9sRmFjdG9yeSIsIlBsYXlDb250cm9sRmFjdG9yeSIsIkFuaW1hdGlvblNwZWVkU2xpZGVyIiwiV2luZG93QWN0aW9uQ29udHJvbCIsIkFuaW1hdGlvbldpbmRvd0NvbnRyb2wiLCJSZXNldENvbnRyb2wiLCJQbGF5Q29udHJvbCIsIlBMQVlCQUNLX0NPTlRST0xTX0RFRkFVTFRfQUNUSU9OX0NPTVBPTkVOVFMiLCJTcGVlZENvbnRyb2xGYWN0b3J5IiwiUGxheWJhY2tDb250cm9scyIsIl9yZWYiLCJmaWx0ZXIiLCJfcmVmJGlzQW5pbWF0YWJsZSIsImlzQW5pbWF0YWJsZSIsImlzQW5pbWF0aW5nIiwiX3JlZiRhbmltYXRpb25XaW5kb3ciLCJhbmltYXRpb25XaW5kb3ciLCJzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3ciLCJ1cGRhdGVBbmltYXRpb25TcGVlZCIsIl9yZWYkcGF1c2VBbmltYXRpb24iLCJwYXVzZUFuaW1hdGlvbiIsIl9yZWYkcmVzZXRBbmltYXRpb24iLCJyZXNldEFuaW1hdGlvbiIsIl9yZWYkc3RhcnRBbmltYXRpb24iLCJzdGFydEFuaW1hdGlvbiIsIl9yZWYkcGxheWJhY2tJY29ucyIsInBsYXliYWNrSWNvbnMiLCJfcmVmJGFuaW1hdGlvbkl0ZW1zIiwiYW5pbWF0aW9uSXRlbXMiLCJfcmVmJGJ1dHRvblN0eWxlIiwiYnV0dG9uU3R5bGUiLCJfcmVmJGJ1dHRvbkhlaWdodCIsImJ1dHRvbkhlaWdodCIsIl9yZWYkcGxheWJhY2tBY3Rpb25JdCIsInBsYXliYWNrQWN0aW9uSXRlbXMiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpc1NwZWVkQ29udHJvbFZpc2libGUiLCJ0b2dnbGVTcGVlZENvbnRyb2wiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dBbmltYXRpb25XaW5kb3dDb250cm9sIiwic2V0U2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wiLCJ0b2dnbGVBbmltYXRpb25XaW5kb3dDb250cm9sIiwidXNlQ2FsbGJhY2siLCJidG5TdHlsZSIsImhpZGVBbmRTaG93U3BlZWRDb250cm9sIiwid2luZG93Iiwic2V0VGltZW91dCIsImNsYXNzTmFtZSIsImNsYXNzbmFtZXMiLCJkaXNhYmxlZCIsIm1hcCIsIkFjdGlvbkNvbXBvbmVudCIsImluZGV4Iiwia2V5IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9hbmltYXRpb24tY29udHJvbC9wbGF5YmFjay1jb250cm9scy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGUsIHVzZUNhbGxiYWNrfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7SVN0eWxlZENvbXBvbmVudH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge1Jlc2V0LCBQbGF5LCBQYXVzZSwgU2F2ZSwgUm9ja2V0LCBBbmNob3JXaW5kb3csIEZyZWVXaW5kb3d9IGZyb20gJy4uL2ljb25zJztcbmltcG9ydCB7QU5JTUFUSU9OX1dJTkRPV30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtGaWx0ZXIsIFRpbWVSYW5nZUZpbHRlcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQgQW5pbWF0aW9uU3BlZWRTbGlkZXJGYWN0b3J5IGZyb20gJy4vYW5pbWF0aW9uLXNwZWVkLXNsaWRlcic7XG5pbXBvcnQgV2luZG93QWN0aW9uQ29udHJvbEZhY3RvcnkgZnJvbSAnLi93aW5kb3ctYWN0aW9uLWNvbnRyb2wnO1xuaW1wb3J0IEFuaW1hdGlvbldpbmRvd0NvbnRyb2xGYWN0b3J5LCB7QW5pbWF0aW9uSXRlbX0gZnJvbSAnLi9hbmltYXRpb24td2luZG93LWNvbnRyb2wnO1xuaW1wb3J0IFJlc2V0Q29udHJvbEZhY3RvcnkgZnJvbSAnLi9yZXNldC1jb250cm9sJztcbmltcG9ydCBQbGF5Q29udHJvbEZhY3RvcnkgZnJvbSAnLi9wbGF5LWNvbnRyb2wnO1xuaW1wb3J0IFNwZWVkQ29udHJvbEZhY3RvcnkgZnJvbSAnLi9zcGVlZC1jb250cm9sJztcbmltcG9ydCB7QmFzZUNvbXBvbmVudFByb3BzfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmNvbnN0IERFRkFVTFRfQlVUVE9OX0hFSUdIVCA9ICcyMHB4JztcblxuZXhwb3J0IHR5cGUgU3R5bGVkQW5pbWF0aW9uQ29udHJvbHNQcm9wcyA9IEJhc2VDb21wb25lbnRQcm9wcyAmIHtcbiAgd2lkdGg/OiBudW1iZXI7XG59O1xuXG5jb25zdCBTdHlsZWRBbmltYXRpb25Db250cm9sczogSVN0eWxlZENvbXBvbmVudDxcbiAgJ3dlYicsXG4gIFN0eWxlZEFuaW1hdGlvbkNvbnRyb2xzUHJvcHNcbj4gPSBzdHlsZWQuZGl2PFN0eWxlZEFuaW1hdGlvbkNvbnRyb2xzUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuICAmLmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbmA7XG5cbmNvbnN0IERFRkFVTFRfSUNPTlMgPSB7XG4gIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Rpc3BsYXktbmFtZSAqL1xuICByZXNldDogKCkgPT4gPFJlc2V0IGhlaWdodD1cIjE4cHhcIiAvPixcbiAgcGxheTogKCkgPT4gPFBsYXkgaGVpZ2h0PVwiMThweFwiIC8+LFxuICBwYXVzZTogKCkgPT4gPFBhdXNlIGhlaWdodD1cIjE4cHhcIiAvPixcbiAgZXhwb3J0OiAoKSA9PiA8U2F2ZSBoZWlnaHQ9XCIxOHB4XCIgLz4sXG4gIC8qIGVzbGludC1lbmFibGUgcmVhY3QvZGlzcGxheS1uYW1lICovXG4gIHNwZWVkOiBSb2NrZXQsXG4gIGFuaW1hdGlvbkZyZWU6IEZyZWVXaW5kb3csXG4gIGFuaW1hdGlvbkluY3JlbWVudGFsOiBBbmNob3JXaW5kb3dcbn07XG5cbmZ1bmN0aW9uIG5vcCgpIHtcbiAgcmV0dXJuO1xufVxuXG5jb25zdCBERUZBVUxUX0FOSU1BVEVfSVRFTVMgPSB7XG4gIFtBTklNQVRJT05fV0lORE9XLmZyZWVdOiB7XG4gICAgaWQ6IEFOSU1BVElPTl9XSU5ET1cuZnJlZSxcbiAgICBpY29uOiBERUZBVUxUX0lDT05TLmFuaW1hdGlvbkZyZWUsXG4gICAgdG9vbHRpcDogJ3Rvb2x0aXAuYW5pbWF0aW9uQnlXaW5kb3cnXG4gIH0sXG4gIFtBTklNQVRJT05fV0lORE9XLmluY3JlbWVudGFsXToge1xuICAgIGlkOiBBTklNQVRJT05fV0lORE9XLmluY3JlbWVudGFsLFxuICAgIGljb246IERFRkFVTFRfSUNPTlMuYW5pbWF0aW9uSW5jcmVtZW50YWwsXG4gICAgdG9vbHRpcDogJ3Rvb2x0aXAuYW5pbWF0aW9uQnlJbmNyZW1lbnRhbCdcbiAgfVxufTtcbmV4cG9ydCBpbnRlcmZhY2UgUGxheWJhY2tDb250cm9sc1Byb3BzIHtcbiAgZmlsdGVyPzogRmlsdGVyO1xuICBpc0FuaW1hdGFibGU/OiBib29sZWFuO1xuICBpc0FuaW1hdGluZz86IGJvb2xlYW47XG4gIHdpZHRoPzogbnVtYmVyO1xuICBzcGVlZDogbnVtYmVyO1xuICBhbmltYXRpb25XaW5kb3c/OiBudWxsIHwgVGltZVJhbmdlRmlsdGVyWydhbmltYXRpb25XaW5kb3cnXTtcbiAgc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93PzogKGlkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHVwZGF0ZUFuaW1hdGlvblNwZWVkPzogKGlkeDogbnVtYmVyLCBzcGVlZDogbnVtYmVyKSA9PiB2b2lkO1xuICBwYXVzZUFuaW1hdGlvbj86ICgpID0+IHZvaWQ7XG4gIHJlc2V0QW5pbWF0aW9uPzogKCkgPT4gdm9pZDtcbiAgc3RhcnRBbmltYXRpb246ICgpID0+IHZvaWQ7XG4gIHBsYXliYWNrSWNvbnM/OiBSZWNvcmQ8c3RyaW5nLCBSZWFjdC5GQzx7aGVpZ2h0OiBudW1iZXJ9Pj47XG4gIGFuaW1hdGlvbkl0ZW1zPzoge1trZXk6IHN0cmluZ106IEFuaW1hdGlvbkl0ZW19O1xuICBidXR0b25TdHlsZT86IHN0cmluZztcbiAgYnV0dG9uSGVpZ2h0Pzogc3RyaW5nO1xuICBwbGF5YmFja0FjdGlvbkl0ZW1zPzogUmVhY3QuRkNbXTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xufVxuXG5QbGF5YmFja0NvbnRyb2xzRmFjdG9yeS5kZXBzID0gW1xuICAvLyBrZWVwaW5nIHRoaXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGJ1dCB3ZSBjYW4gZGVjaWRlIHRvIGRyb3AgaXQgbGF0ZXJcbiAgQW5pbWF0aW9uU3BlZWRTbGlkZXJGYWN0b3J5LFxuICBXaW5kb3dBY3Rpb25Db250cm9sRmFjdG9yeSxcbiAgQW5pbWF0aW9uV2luZG93Q29udHJvbEZhY3RvcnksXG4gIFJlc2V0Q29udHJvbEZhY3RvcnksXG4gIFBsYXlDb250cm9sRmFjdG9yeVxuXTtcblxuZnVuY3Rpb24gUGxheWJhY2tDb250cm9sc0ZhY3RvcnkoXG4gIEFuaW1hdGlvblNwZWVkU2xpZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBBbmltYXRpb25TcGVlZFNsaWRlckZhY3Rvcnk+LFxuICBXaW5kb3dBY3Rpb25Db250cm9sLFxuICBBbmltYXRpb25XaW5kb3dDb250cm9sLFxuICBSZXNldENvbnRyb2wsXG4gIFBsYXlDb250cm9sXG4pIHtcbiAgY29uc3QgUExBWUJBQ0tfQ09OVFJPTFNfREVGQVVMVF9BQ1RJT05fQ09NUE9ORU5UUyA9IFtcbiAgICBQbGF5Q29udHJvbCxcbiAgICBTcGVlZENvbnRyb2xGYWN0b3J5KEFuaW1hdGlvblNwZWVkU2xpZGVyKSxcbiAgICBSZXNldENvbnRyb2wsXG4gICAgV2luZG93QWN0aW9uQ29udHJvbCxcbiAgICBBbmltYXRpb25XaW5kb3dDb250cm9sXG4gIF07XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgY29uc3QgUGxheWJhY2tDb250cm9sczogUmVhY3QuRkM8UGxheWJhY2tDb250cm9sc1Byb3BzPiA9ICh7XG4gICAgZmlsdGVyLFxuICAgIGlzQW5pbWF0YWJsZSA9IHRydWUsXG4gICAgaXNBbmltYXRpbmcsXG4gICAgd2lkdGgsXG4gICAgc3BlZWQsXG4gICAgYW5pbWF0aW9uV2luZG93ID0gQU5JTUFUSU9OX1dJTkRPVy5mcmVlLFxuICAgIHNldEZpbHRlckFuaW1hdGlvbldpbmRvdyxcbiAgICB1cGRhdGVBbmltYXRpb25TcGVlZCxcbiAgICBwYXVzZUFuaW1hdGlvbiA9IG5vcCxcbiAgICByZXNldEFuaW1hdGlvbiA9IG5vcCxcbiAgICBzdGFydEFuaW1hdGlvbiA9IG5vcCxcbiAgICBwbGF5YmFja0ljb25zID0gREVGQVVMVF9JQ09OUyxcbiAgICBhbmltYXRpb25JdGVtcyA9IERFRkFVTFRfQU5JTUFURV9JVEVNUyxcbiAgICBidXR0b25TdHlsZSA9ICdzZWNvbmRhcnknLFxuICAgIGJ1dHRvbkhlaWdodCA9IERFRkFVTFRfQlVUVE9OX0hFSUdIVCxcbiAgICBwbGF5YmFja0FjdGlvbkl0ZW1zID0gUExBWUJBQ0tfQ09OVFJPTFNfREVGQVVMVF9BQ1RJT05fQ09NUE9ORU5UU1xuICB9KSA9PiB7XG4gICAgY29uc3QgW2lzU3BlZWRDb250cm9sVmlzaWJsZSwgdG9nZ2xlU3BlZWRDb250cm9sXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wsIHNldFNob3dBbmltYXRpb25XaW5kb3dDb250cm9sXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgIGNvbnN0IHRvZ2dsZUFuaW1hdGlvbldpbmRvd0NvbnRyb2wgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRTaG93QW5pbWF0aW9uV2luZG93Q29udHJvbCghc2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wpO1xuICAgIH0sIFtzaG93QW5pbWF0aW9uV2luZG93Q29udHJvbCwgc2V0U2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2xdKTtcbiAgICBjb25zdCBidG5TdHlsZSA9IGJ1dHRvblN0eWxlID8ge1tidXR0b25TdHlsZV06IHRydWV9IDoge307XG5cbiAgICBjb25zdCBoaWRlQW5kU2hvd1NwZWVkQ29udHJvbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmICghaXNTcGVlZENvbnRyb2xWaXNpYmxlKSB7XG4gICAgICAgIHRvZ2dsZVNwZWVkQ29udHJvbCh0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRPRE86IEEgSEFDSyB0byBhbGxvdyBpbnB1dCBvbmJsdXIgZ2V0IHRyaWdnZXJlZCBiZWZvcmUgdGhlIGlucHV0IGlzIHVubW91bnRlZFxuICAgICAgICAvLyBBIGJldHRlciBzb2x1dGlvbiBzaG91bGQgYmUgaW52ZXN0ZWQsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEyMzYzXG4gICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRvZ2dsZVNwZWVkQ29udHJvbChmYWxzZSksIDIwMCk7XG4gICAgICB9XG4gICAgfSwgW2lzU3BlZWRDb250cm9sVmlzaWJsZSwgdG9nZ2xlU3BlZWRDb250cm9sXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEFuaW1hdGlvbkNvbnRyb2xzXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygncGxheWJhY2stY29udHJvbHMnLCB7XG4gICAgICAgICAgZGlzYWJsZWQ6ICFpc0FuaW1hdGFibGVcbiAgICAgICAgfSl9XG4gICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgID5cbiAgICAgICAgey8qKiBXaW5kb3cgKi99XG4gICAgICAgIHtwbGF5YmFja0FjdGlvbkl0ZW1zLm1hcCgoQWN0aW9uQ29tcG9uZW50LCBpbmRleCkgPT4gKFxuICAgICAgICAgIDxBY3Rpb25Db21wb25lbnRcbiAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICB0b2dnbGVBbmltYXRpb25XaW5kb3dDb250cm9sPXt0b2dnbGVBbmltYXRpb25XaW5kb3dDb250cm9sfVxuICAgICAgICAgICAgc2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2w9e3Nob3dBbmltYXRpb25XaW5kb3dDb250cm9sfVxuICAgICAgICAgICAgYnRuU3R5bGU9e2J0blN0eWxlfVxuICAgICAgICAgICAgaGlkZUFuZFNob3dTcGVlZENvbnRyb2w9e2hpZGVBbmRTaG93U3BlZWRDb250cm9sfVxuICAgICAgICAgICAgYW5pbWF0aW9uSXRlbXM9e2FuaW1hdGlvbkl0ZW1zfVxuICAgICAgICAgICAgYW5pbWF0aW9uV2luZG93PXthbmltYXRpb25XaW5kb3d9XG4gICAgICAgICAgICBidXR0b25IZWlnaHQ9e2J1dHRvbkhlaWdodH1cbiAgICAgICAgICAgIGZpbHRlcj17ZmlsdGVyfVxuICAgICAgICAgICAgc2V0RmlsdGVyQW5pbWF0aW9uV2luZG93PXtzZXRGaWx0ZXJBbmltYXRpb25XaW5kb3d9XG4gICAgICAgICAgICB1cGRhdGVBbmltYXRpb25TcGVlZD17dXBkYXRlQW5pbWF0aW9uU3BlZWR9XG4gICAgICAgICAgICBpc0FuaW1hdGluZz17aXNBbmltYXRpbmd9XG4gICAgICAgICAgICBwYXVzZUFuaW1hdGlvbj17cGF1c2VBbmltYXRpb259XG4gICAgICAgICAgICByZXNldEFuaW1hdGlvbj17cmVzZXRBbmltYXRpb259XG4gICAgICAgICAgICBzdGFydEFuaW1hdGlvbj17c3RhcnRBbmltYXRpb259XG4gICAgICAgICAgICBwbGF5YmFja0ljb25zPXtwbGF5YmFja0ljb25zfVxuICAgICAgICAgICAgaXNTcGVlZENvbnRyb2xWaXNpYmxlPXtpc1NwZWVkQ29udHJvbFZpc2libGV9XG4gICAgICAgICAgICBzcGVlZD17c3BlZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgICA8L1N0eWxlZEFuaW1hdGlvbkNvbnRyb2xzPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIFBsYXliYWNrQ29udHJvbHM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBsYXliYWNrQ29udHJvbHNGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFFQSxJQUFBTSxxQkFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sb0JBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLHVCQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUyxhQUFBLEdBQUFQLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVSxZQUFBLEdBQUFSLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVyxhQUFBLEdBQUFULHNCQUFBLENBQUFGLE9BQUE7QUFBa0QsSUFBQVksZUFBQSxFQWRsRDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFm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
@@ -8,12 +8,11 @@ exports["default"] = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _localization = require("@kepler.gl/localization");
11
- var _styledComponents = require("../styled-components");
12
11
  var _iconButton = _interopRequireDefault(require("../icon-button"));
12
+ var _tippyTooltip = _interopRequireDefault(require("../tippy-tooltip"));
13
13
  // SPDX-License-Identifier: MIT
14
14
  // Copyright contributors to the kepler.gl project
15
15
 
16
- var DELAY_SHOW = 500;
17
16
  function ResetControlFactory() {
18
17
  var ResetControl = function ResetControl(_ref) {
19
18
  var showAnimationWindowControl = _ref.showAnimationWindowControl,
@@ -21,23 +20,22 @@ function ResetControlFactory() {
21
20
  btnStyle = _ref.btnStyle,
22
21
  playbackIcons = _ref.playbackIcons,
23
22
  buttonHeight = _ref.buttonHeight;
24
- return showAnimationWindowControl ? null : /*#__PURE__*/_react["default"].createElement(_iconButton["default"], (0, _extends2["default"])({
25
- "data-tip": true,
26
- "data-for": "animate-reset",
23
+ return showAnimationWindowControl ? null : /*#__PURE__*/_react["default"].createElement(_tippyTooltip["default"], {
24
+ placement: "top",
25
+ delay: [500, 0],
26
+ render: function render() {
27
+ return /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
28
+ id: "tooltip.reset"
29
+ });
30
+ }
31
+ }, /*#__PURE__*/_react["default"].createElement(_iconButton["default"], (0, _extends2["default"])({
27
32
  className: "playback-control-button",
28
33
  onClick: resetAnimation
29
34
  }, btnStyle), /*#__PURE__*/_react["default"].createElement(playbackIcons.reset, {
30
35
  height: buttonHeight
31
- }), /*#__PURE__*/_react["default"].createElement(_styledComponents.Tooltip, {
32
- id: "animate-reset",
33
- place: "top",
34
- delayShow: DELAY_SHOW,
35
- effect: "solid"
36
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
37
- id: "tooltip.reset"
38
36
  })));
39
37
  };
40
38
  return ResetControl;
41
39
  }
42
40
  var _default = exports["default"] = ResetControlFactory;
43
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2NhbGl6YXRpb24iLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pY29uQnV0dG9uIiwiREVMQVlfU0hPVyIsIlJlc2V0Q29udHJvbEZhY3RvcnkiLCJSZXNldENvbnRyb2wiLCJfcmVmIiwic2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wiLCJyZXNldEFuaW1hdGlvbiIsImJ0blN0eWxlIiwicGxheWJhY2tJY29ucyIsImJ1dHRvbkhlaWdodCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwicmVzZXQiLCJoZWlnaHQiLCJUb29sdGlwIiwiaWQiLCJwbGFjZSIsImRlbGF5U2hvdyIsImVmZmVjdCIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL3Jlc2V0LWNvbnRyb2wudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7VG9vbHRpcH0gZnJvbSAnLi4vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnLi4vaWNvbi1idXR0b24nO1xuXG5jb25zdCBERUxBWV9TSE9XID0gNTAwO1xuXG5mdW5jdGlvbiBSZXNldENvbnRyb2xGYWN0b3J5KCkge1xuICBjb25zdCBSZXNldENvbnRyb2wgPSAoe1xuICAgIHNob3dBbmltYXRpb25XaW5kb3dDb250cm9sLFxuICAgIHJlc2V0QW5pbWF0aW9uLFxuICAgIGJ0blN0eWxlLFxuICAgIHBsYXliYWNrSWNvbnMsXG4gICAgYnV0dG9uSGVpZ2h0XG4gIH0pID0+IHtcbiAgICByZXR1cm4gc2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wgPyBudWxsIDogKFxuICAgICAgPEljb25CdXR0b25cbiAgICAgICAgZGF0YS10aXBcbiAgICAgICAgZGF0YS1mb3I9XCJhbmltYXRlLXJlc2V0XCJcbiAgICAgICAgY2xhc3NOYW1lPVwicGxheWJhY2stY29udHJvbC1idXR0b25cIlxuICAgICAgICBvbkNsaWNrPXtyZXNldEFuaW1hdGlvbn1cbiAgICAgICAgey4uLmJ0blN0eWxlfVxuICAgICAgPlxuICAgICAgICA8cGxheWJhY2tJY29ucy5yZXNldCBoZWlnaHQ9e2J1dHRvbkhlaWdodH0gLz5cbiAgICAgICAgPFRvb2x0aXAgaWQ9XCJhbmltYXRlLXJlc2V0XCIgcGxhY2U9XCJ0b3BcIiBkZWxheVNob3c9e0RFTEFZX1NIT1d9IGVmZmVjdD1cInNvbGlkXCI+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJ0b29sdGlwLnJlc2V0XCIgLz5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgPC9JY29uQnV0dG9uPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIFJlc2V0Q29udHJvbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVzZXRDb250cm9sRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxhQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxpQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBTkE7QUFDQTs7QUFPQSxJQUFNSSxVQUFVLEdBQUcsR0FBRztBQUV0QixTQUFTQyxtQkFBbUJBLENBQUEsRUFBRztFQUM3QixJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQUMsSUFBQSxFQU1aO0lBQUEsSUFMSkMsMEJBQTBCLEdBQUFELElBQUEsQ0FBMUJDLDBCQUEwQjtNQUMxQkMsY0FBYyxHQUFBRixJQUFBLENBQWRFLGNBQWM7TUFDZEMsUUFBUSxHQUFBSCxJQUFBLENBQVJHLFFBQVE7TUFDUkMsYUFBYSxHQUFBSixJQUFBLENBQWJJLGFBQWE7TUFDYkMsWUFBWSxHQUFBTCxJQUFBLENBQVpLLFlBQVk7SUFFWixPQUFPSiwwQkFBMEIsR0FBRyxJQUFJLGdCQUN0Q1YsTUFBQSxZQUFBZSxhQUFBLENBQUNWLFdBQUEsV0FBVSxNQUFBVyxTQUFBO01BQ1QsZ0JBQVE7TUFDUixZQUFTLGVBQWU7TUFDeEJDLFNBQVMsRUFBQyx5QkFBeUI7TUFDbkNDLE9BQU8sRUFBRVA7SUFBZSxHQUNwQkMsUUFBUSxnQkFFWlosTUFBQSxZQUFBZSxhQUFBLENBQUNGLGFBQWEsQ0FBQ00sS0FBSztNQUFDQyxNQUFNLEVBQUVOO0lBQWEsQ0FBRSxDQUFDLGVBQzdDZCxNQUFBLFlBQUFlLGFBQUEsQ0FBQ1gsaUJBQUEsQ0FBQWlCLE9BQU87TUFBQ0MsRUFBRSxFQUFDLGVBQWU7TUFBQ0MsS0FBSyxFQUFDLEtBQUs7TUFBQ0MsU0FBUyxFQUFFbEIsVUFBVztNQUFDbUIsTUFBTSxFQUFDO0lBQU8sZ0JBQzNFekIsTUFBQSxZQUFBZSxhQUFBLENBQUNaLGFBQUEsQ0FBQXVCLGdCQUFnQjtNQUFDSixFQUFFLEVBQUM7SUFBZSxDQUFFLENBQy9CLENBQ0MsQ0FDYjtFQUNILENBQUM7RUFFRCxPQUFPZCxZQUFZO0FBQ3JCO0FBQUMsSUFBQW1CLFFBQUEsR0FBQUMsT0FBQSxjQUVjckIsbUJBQW1CIiwiaWdub3JlTGlzdCI6W119
41
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2NhbGl6YXRpb24iLCJfaWNvbkJ1dHRvbiIsIl90aXBweVRvb2x0aXAiLCJSZXNldENvbnRyb2xGYWN0b3J5IiwiUmVzZXRDb250cm9sIiwiX3JlZiIsInNob3dBbmltYXRpb25XaW5kb3dDb250cm9sIiwicmVzZXRBbmltYXRpb24iLCJidG5TdHlsZSIsInBsYXliYWNrSWNvbnMiLCJidXR0b25IZWlnaHQiLCJjcmVhdGVFbGVtZW50IiwicGxhY2VtZW50IiwiZGVsYXkiLCJyZW5kZXIiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiaWQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwicmVzZXQiLCJoZWlnaHQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2FuaW1hdGlvbi1jb250cm9sL3Jlc2V0LWNvbnRyb2wudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJy4uL2ljb24tYnV0dG9uJztcbmltcG9ydCBUaXBweVRvb2x0aXAgZnJvbSAnLi4vdGlwcHktdG9vbHRpcCc7XG5cbmZ1bmN0aW9uIFJlc2V0Q29udHJvbEZhY3RvcnkoKSB7XG4gIGNvbnN0IFJlc2V0Q29udHJvbCA9ICh7XG4gICAgc2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wsXG4gICAgcmVzZXRBbmltYXRpb24sXG4gICAgYnRuU3R5bGUsXG4gICAgcGxheWJhY2tJY29ucyxcbiAgICBidXR0b25IZWlnaHRcbiAgfSkgPT4ge1xuICAgIHJldHVybiBzaG93QW5pbWF0aW9uV2luZG93Q29udHJvbCA/IG51bGwgOiAoXG4gICAgICA8VGlwcHlUb29sdGlwXG4gICAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgIGRlbGF5PXtbNTAwLCAwXX1cbiAgICAgICAgcmVuZGVyPXsoKSA9PiA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cInRvb2x0aXAucmVzZXRcIiAvPn1cbiAgICAgID5cbiAgICAgICAgPEljb25CdXR0b24gY2xhc3NOYW1lPVwicGxheWJhY2stY29udHJvbC1idXR0b25cIiBvbkNsaWNrPXtyZXNldEFuaW1hdGlvbn0gey4uLmJ0blN0eWxlfT5cbiAgICAgICAgICA8cGxheWJhY2tJY29ucy5yZXNldCBoZWlnaHQ9e2J1dHRvbkhlaWdodH0gLz5cbiAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgPC9UaXBweVRvb2x0aXA+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUmVzZXRDb250cm9sO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSZXNldENvbnRyb2xGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQU5BO0FBQ0E7O0FBT0EsU0FBU0ksbUJBQW1CQSxDQUFBLEVBQUc7RUFDN0IsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUFDLElBQUEsRUFNWjtJQUFBLElBTEpDLDBCQUEwQixHQUFBRCxJQUFBLENBQTFCQywwQkFBMEI7TUFDMUJDLGNBQWMsR0FBQUYsSUFBQSxDQUFkRSxjQUFjO01BQ2RDLFFBQVEsR0FBQUgsSUFBQSxDQUFSRyxRQUFRO01BQ1JDLGFBQWEsR0FBQUosSUFBQSxDQUFiSSxhQUFhO01BQ2JDLFlBQVksR0FBQUwsSUFBQSxDQUFaSyxZQUFZO0lBRVosT0FBT0osMEJBQTBCLEdBQUcsSUFBSSxnQkFDdENULE1BQUEsWUFBQWMsYUFBQSxDQUFDVCxhQUFBLFdBQVk7TUFDWFUsU0FBUyxFQUFDLEtBQUs7TUFDZkMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBRTtNQUNoQkMsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUE7UUFBQSxvQkFBUWpCLE1BQUEsWUFBQWMsYUFBQSxDQUFDWCxhQUFBLENBQUFlLGdCQUFnQjtVQUFDQyxFQUFFLEVBQUM7UUFBZSxDQUFFLENBQUM7TUFBQTtJQUFDLGdCQUV0RG5CLE1BQUEsWUFBQWMsYUFBQSxDQUFDVixXQUFBLFdBQVUsTUFBQWdCLFNBQUE7TUFBQ0MsU0FBUyxFQUFDLHlCQUF5QjtNQUFDQyxPQUFPLEVBQUVaO0lBQWUsR0FBS0MsUUFBUSxnQkFDbkZYLE1BQUEsWUFBQWMsYUFBQSxDQUFDRixhQUFhLENBQUNXLEtBQUs7TUFBQ0MsTUFBTSxFQUFFWDtJQUFhLENBQUUsQ0FDbEMsQ0FDQSxDQUNmO0VBQ0gsQ0FBQztFQUVELE9BQU9OLFlBQVk7QUFDckI7QUFBQyxJQUFBa0IsUUFBQSxHQUFBQyxPQUFBLGNBRWNwQixtQkFBbUIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -9,14 +9,13 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
  var _styledComponents = _interopRequireDefault(require("styled-components"));
12
- var _styledComponents2 = require("../styled-components");
13
12
  var _iconButton = _interopRequireDefault(require("../icon-button"));
14
13
  var _styles = require("@kepler.gl/styles");
15
14
  var _utils = require("@kepler.gl/utils");
15
+ var _tippyTooltip = _interopRequireDefault(require("../tippy-tooltip"));
16
16
  var _templateObject, _templateObject2; // SPDX-License-Identifier: MIT
17
17
  // Copyright contributors to the kepler.gl project
18
18
  var StyledSpeedControl = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n\n .animation-control__speed-slider {\n left: 0;\n ", "\n }\n"])), _styles.media.palm(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n left: 60px;\n "]))));
19
- var DELAY_SHOW = 500;
20
19
  var PRECISE_SPEED_ROUND = 1;
21
20
  function SpeedControlFactory(AnimationSpeedSlider) {
22
21
  var SpeedControl = function SpeedControl(_ref) {
@@ -28,20 +27,19 @@ function SpeedControlFactory(AnimationSpeedSlider) {
28
27
  playbackIcons = _ref.playbackIcons,
29
28
  speed = _ref.speed,
30
29
  isSpeedControlVisible = _ref.isSpeedControlVisible;
31
- return showAnimationWindowControl || !updateAnimationSpeed ? null : /*#__PURE__*/_react["default"].createElement(StyledSpeedControl, null, /*#__PURE__*/_react["default"].createElement(_iconButton["default"], (0, _extends2["default"])({
32
- "data-tip": true,
33
- "data-for": "animate-speed",
30
+ return showAnimationWindowControl || !updateAnimationSpeed ? null : /*#__PURE__*/_react["default"].createElement(StyledSpeedControl, null, /*#__PURE__*/_react["default"].createElement(_tippyTooltip["default"], {
31
+ placement: "top",
32
+ delay: [500, 0],
33
+ render: function render() {
34
+ return /*#__PURE__*/_react["default"].createElement("span", null, (0, _utils.preciseRound)(speed, PRECISE_SPEED_ROUND), "x");
35
+ }
36
+ }, /*#__PURE__*/_react["default"].createElement(_iconButton["default"], (0, _extends2["default"])({
34
37
  className: "playback-control-button"
35
38
  }, btnStyle, {
36
39
  onClick: hideAndShowSpeedControl
37
40
  }), /*#__PURE__*/_react["default"].createElement(playbackIcons.speed, {
38
41
  height: buttonHeight
39
- }), /*#__PURE__*/_react["default"].createElement(_styledComponents2.Tooltip, {
40
- id: "animate-speed",
41
- place: "top",
42
- delayShow: DELAY_SHOW,
43
- effect: "solid"
44
- }, /*#__PURE__*/_react["default"].createElement("span", null, (0, _utils.preciseRound)(speed, PRECISE_SPEED_ROUND), "x"))), isSpeedControlVisible ? /*#__PURE__*/_react["default"].createElement(AnimationSpeedSlider, {
42
+ }))), isSpeedControlVisible ? /*#__PURE__*/_react["default"].createElement(AnimationSpeedSlider, {
45
43
  onHide: hideAndShowSpeedControl,
46
44
  updateAnimationSpeed: updateAnimationSpeed,
47
45
  speed: speed
@@ -50,4 +48,4 @@ function SpeedControlFactory(AnimationSpeedSlider) {
50
48
  return SpeedControl;
51
49
  }
52
50
  var _default = exports["default"] = SpeedControlFactory;
53
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX2ljb25CdXR0b24iLCJfc3R5bGVzIiwiX3V0aWxzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIlN0eWxlZFNwZWVkQ29udHJvbCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwibWVkaWEiLCJwYWxtIiwiREVMQVlfU0hPVyIsIlBSRUNJU0VfU1BFRURfUk9VTkQiLCJTcGVlZENvbnRyb2xGYWN0b3J5IiwiQW5pbWF0aW9uU3BlZWRTbGlkZXIiLCJTcGVlZENvbnRyb2wiLCJfcmVmIiwic2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wiLCJ1cGRhdGVBbmltYXRpb25TcGVlZCIsImJ0blN0eWxlIiwiaGlkZUFuZFNob3dTcGVlZENvbnRyb2wiLCJidXR0b25IZWlnaHQiLCJwbGF5YmFja0ljb25zIiwic3BlZWQiLCJpc1NwZWVkQ29udHJvbFZpc2libGUiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiY2xhc3NOYW1lIiwib25DbGljayIsImhlaWdodCIsIlRvb2x0aXAiLCJpZCIsInBsYWNlIiwiZGVsYXlTaG93IiwiZWZmZWN0IiwicHJlY2lzZVJvdW5kIiwib25IaWRlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9hbmltYXRpb24tY29udHJvbC9zcGVlZC1jb250cm9sLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge1Rvb2x0aXB9IGZyb20gJy4uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJy4uL2ljb24tYnV0dG9uJztcbmltcG9ydCB7bWVkaWF9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCB7cHJlY2lzZVJvdW5kfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuY29uc3QgU3R5bGVkU3BlZWRDb250cm9sID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAuYW5pbWF0aW9uLWNvbnRyb2xfX3NwZWVkLXNsaWRlciB7XG4gICAgbGVmdDogMDtcbiAgICAke21lZGlhLnBhbG1gXG4gICAgICBsZWZ0OiA2MHB4O1xuICAgIGB9XG4gIH1cbmA7XG5cbmNvbnN0IERFTEFZX1NIT1cgPSA1MDA7XG5jb25zdCBQUkVDSVNFX1NQRUVEX1JPVU5EID0gMTtcblxuZnVuY3Rpb24gU3BlZWRDb250cm9sRmFjdG9yeShBbmltYXRpb25TcGVlZFNsaWRlcikge1xuICBjb25zdCBTcGVlZENvbnRyb2wgPSAoe1xuICAgIHNob3dBbmltYXRpb25XaW5kb3dDb250cm9sLFxuICAgIHVwZGF0ZUFuaW1hdGlvblNwZWVkLFxuICAgIGJ0blN0eWxlLFxuICAgIGhpZGVBbmRTaG93U3BlZWRDb250cm9sLFxuICAgIGJ1dHRvbkhlaWdodCxcbiAgICBwbGF5YmFja0ljb25zLFxuICAgIHNwZWVkLFxuICAgIGlzU3BlZWRDb250cm9sVmlzaWJsZVxuICB9KSA9PiB7XG4gICAgcmV0dXJuIHNob3dBbmltYXRpb25XaW5kb3dDb250cm9sIHx8ICF1cGRhdGVBbmltYXRpb25TcGVlZCA/IG51bGwgOiAoXG4gICAgICA8U3R5bGVkU3BlZWRDb250cm9sPlxuICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgIGRhdGEtdGlwXG4gICAgICAgICAgZGF0YS1mb3I9XCJhbmltYXRlLXNwZWVkXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJwbGF5YmFjay1jb250cm9sLWJ1dHRvblwiXG4gICAgICAgICAgey4uLmJ0blN0eWxlfVxuICAgICAgICAgIG9uQ2xpY2s9e2hpZGVBbmRTaG93U3BlZWRDb250cm9sfVxuICAgICAgICA+XG4gICAgICAgICAgPHBsYXliYWNrSWNvbnMuc3BlZWQgaGVpZ2h0PXtidXR0b25IZWlnaHR9IC8+XG4gICAgICAgICAgPFRvb2x0aXAgaWQ9XCJhbmltYXRlLXNwZWVkXCIgcGxhY2U9XCJ0b3BcIiBkZWxheVNob3c9e0RFTEFZX1NIT1d9IGVmZmVjdD1cInNvbGlkXCI+XG4gICAgICAgICAgICA8c3Bhbj57cHJlY2lzZVJvdW5kKHNwZWVkLCBQUkVDSVNFX1NQRUVEX1JPVU5EKX14PC9zcGFuPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICB7aXNTcGVlZENvbnRyb2xWaXNpYmxlID8gKFxuICAgICAgICAgIDxBbmltYXRpb25TcGVlZFNsaWRlclxuICAgICAgICAgICAgb25IaWRlPXtoaWRlQW5kU2hvd1NwZWVkQ29udHJvbH1cbiAgICAgICAgICAgIHVwZGF0ZUFuaW1hdGlvblNwZWVkPXt1cGRhdGVBbmltYXRpb25TcGVlZH1cbiAgICAgICAgICAgIHNwZWVkPXtzcGVlZH1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU3R5bGVkU3BlZWRDb250cm9sPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIFNwZWVkQ29udHJvbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgU3BlZWRDb250cm9sRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLGtCQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFBOEMsSUFBQU0sZUFBQSxFQUFBQyxnQkFBQSxFQVI5QztBQUNBO0FBU0EsSUFBTUMsa0JBQWtCLEdBQUdDLDRCQUFNLENBQUNDLEdBQUcsQ0FBQUosZUFBQSxLQUFBQSxlQUFBLE9BQUFLLHVCQUFBLHNJQU0vQkMsYUFBSyxDQUFDQyxJQUFJLENBQUFOLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUFJLHVCQUFBLDhDQUlmO0FBRUQsSUFBTUcsVUFBVSxHQUFHLEdBQUc7QUFDdEIsSUFBTUMsbUJBQW1CLEdBQUcsQ0FBQztBQUU3QixTQUFTQyxtQkFBbUJBLENBQUNDLG9CQUFvQixFQUFFO0VBQ2pELElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBQyxJQUFBLEVBU1o7SUFBQSxJQVJKQywwQkFBMEIsR0FBQUQsSUFBQSxDQUExQkMsMEJBQTBCO01BQzFCQyxvQkFBb0IsR0FBQUYsSUFBQSxDQUFwQkUsb0JBQW9CO01BQ3BCQyxRQUFRLEdBQUFILElBQUEsQ0FBUkcsUUFBUTtNQUNSQyx1QkFBdUIsR0FBQUosSUFBQSxDQUF2QkksdUJBQXVCO01BQ3ZCQyxZQUFZLEdBQUFMLElBQUEsQ0FBWkssWUFBWTtNQUNaQyxhQUFhLEdBQUFOLElBQUEsQ0FBYk0sYUFBYTtNQUNiQyxLQUFLLEdBQUFQLElBQUEsQ0FBTE8sS0FBSztNQUNMQyxxQkFBcUIsR0FBQVIsSUFBQSxDQUFyQlEscUJBQXFCO0lBRXJCLE9BQU9QLDBCQUEwQixJQUFJLENBQUNDLG9CQUFvQixHQUFHLElBQUksZ0JBQy9EdkIsTUFBQSxZQUFBOEIsYUFBQSxDQUFDcEIsa0JBQWtCLHFCQUNqQlYsTUFBQSxZQUFBOEIsYUFBQSxDQUFDekIsV0FBQSxXQUFVLE1BQUEwQixTQUFBO01BQ1QsZ0JBQVE7TUFDUixZQUFTLGVBQWU7TUFDeEJDLFNBQVMsRUFBQztJQUF5QixHQUMvQlIsUUFBUTtNQUNaUyxPQUFPLEVBQUVSO0lBQXdCLGlCQUVqQ3pCLE1BQUEsWUFBQThCLGFBQUEsQ0FBQ0gsYUFBYSxDQUFDQyxLQUFLO01BQUNNLE1BQU0sRUFBRVI7SUFBYSxDQUFFLENBQUMsZUFDN0MxQixNQUFBLFlBQUE4QixhQUFBLENBQUMxQixrQkFBQSxDQUFBK0IsT0FBTztNQUFDQyxFQUFFLEVBQUMsZUFBZTtNQUFDQyxLQUFLLEVBQUMsS0FBSztNQUFDQyxTQUFTLEVBQUV0QixVQUFXO01BQUN1QixNQUFNLEVBQUM7SUFBTyxnQkFDM0V2QyxNQUFBLFlBQUE4QixhQUFBLGVBQU8sSUFBQVUsbUJBQVksRUFBQ1osS0FBSyxFQUFFWCxtQkFBbUIsQ0FBQyxFQUFDLEdBQU8sQ0FDaEQsQ0FDQyxDQUFDLEVBQ1pZLHFCQUFxQixnQkFDcEI3QixNQUFBLFlBQUE4QixhQUFBLENBQUNYLG9CQUFvQjtNQUNuQnNCLE1BQU0sRUFBRWhCLHVCQUF3QjtNQUNoQ0Ysb0JBQW9CLEVBQUVBLG9CQUFxQjtNQUMzQ0ssS0FBSyxFQUFFQTtJQUFNLENBQ2QsQ0FBQyxHQUNBLElBQ2MsQ0FDckI7RUFDSCxDQUFDO0VBRUQsT0FBT1IsWUFBWTtBQUNyQjtBQUFDLElBQUFzQixRQUFBLEdBQUFDLE9BQUEsY0FFY3pCLG1CQUFtQiIsImlnbm9yZUxpc3QiOltdfQ==
51
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2ljb25CdXR0b24iLCJfc3R5bGVzIiwiX3V0aWxzIiwiX3RpcHB5VG9vbHRpcCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJTdHlsZWRTcGVlZENvbnRyb2wiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIm1lZGlhIiwicGFsbSIsIlBSRUNJU0VfU1BFRURfUk9VTkQiLCJTcGVlZENvbnRyb2xGYWN0b3J5IiwiQW5pbWF0aW9uU3BlZWRTbGlkZXIiLCJTcGVlZENvbnRyb2wiLCJfcmVmIiwic2hvd0FuaW1hdGlvbldpbmRvd0NvbnRyb2wiLCJ1cGRhdGVBbmltYXRpb25TcGVlZCIsImJ0blN0eWxlIiwiaGlkZUFuZFNob3dTcGVlZENvbnRyb2wiLCJidXR0b25IZWlnaHQiLCJwbGF5YmFja0ljb25zIiwic3BlZWQiLCJpc1NwZWVkQ29udHJvbFZpc2libGUiLCJjcmVhdGVFbGVtZW50IiwicGxhY2VtZW50IiwiZGVsYXkiLCJyZW5kZXIiLCJwcmVjaXNlUm91bmQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwiaGVpZ2h0Iiwib25IaWRlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9hbmltYXRpb24tY29udHJvbC9zcGVlZC1jb250cm9sLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICcuLi9pY29uLWJ1dHRvbic7XG5pbXBvcnQge21lZGlhfSBmcm9tICdAa2VwbGVyLmdsL3N0eWxlcyc7XG5pbXBvcnQge3ByZWNpc2VSb3VuZH0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQgVGlwcHlUb29sdGlwIGZyb20gJy4uL3RpcHB5LXRvb2x0aXAnO1xuXG5jb25zdCBTdHlsZWRTcGVlZENvbnRyb2wgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIC5hbmltYXRpb24tY29udHJvbF9fc3BlZWQtc2xpZGVyIHtcbiAgICBsZWZ0OiAwO1xuICAgICR7bWVkaWEucGFsbWBcbiAgICAgIGxlZnQ6IDYwcHg7XG4gICAgYH1cbiAgfVxuYDtcblxuY29uc3QgUFJFQ0lTRV9TUEVFRF9ST1VORCA9IDE7XG5cbmZ1bmN0aW9uIFNwZWVkQ29udHJvbEZhY3RvcnkoQW5pbWF0aW9uU3BlZWRTbGlkZXIpIHtcbiAgY29uc3QgU3BlZWRDb250cm9sID0gKHtcbiAgICBzaG93QW5pbWF0aW9uV2luZG93Q29udHJvbCxcbiAgICB1cGRhdGVBbmltYXRpb25TcGVlZCxcbiAgICBidG5TdHlsZSxcbiAgICBoaWRlQW5kU2hvd1NwZWVkQ29udHJvbCxcbiAgICBidXR0b25IZWlnaHQsXG4gICAgcGxheWJhY2tJY29ucyxcbiAgICBzcGVlZCxcbiAgICBpc1NwZWVkQ29udHJvbFZpc2libGVcbiAgfSkgPT4ge1xuICAgIHJldHVybiBzaG93QW5pbWF0aW9uV2luZG93Q29udHJvbCB8fCAhdXBkYXRlQW5pbWF0aW9uU3BlZWQgPyBudWxsIDogKFxuICAgICAgPFN0eWxlZFNwZWVkQ29udHJvbD5cbiAgICAgICAgPFRpcHB5VG9vbHRpcFxuICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgICAgZGVsYXk9e1s1MDAsIDBdfVxuICAgICAgICAgIHJlbmRlcj17KCkgPT4gPHNwYW4+e3ByZWNpc2VSb3VuZChzcGVlZCwgUFJFQ0lTRV9TUEVFRF9ST1VORCl9eDwvc3Bhbj59XG4gICAgICAgID5cbiAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicGxheWJhY2stY29udHJvbC1idXR0b25cIlxuICAgICAgICAgICAgey4uLmJ0blN0eWxlfVxuICAgICAgICAgICAgb25DbGljaz17aGlkZUFuZFNob3dTcGVlZENvbnRyb2x9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBsYXliYWNrSWNvbnMuc3BlZWQgaGVpZ2h0PXtidXR0b25IZWlnaHR9IC8+XG4gICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICA8L1RpcHB5VG9vbHRpcD5cbiAgICAgICAge2lzU3BlZWRDb250cm9sVmlzaWJsZSA/IChcbiAgICAgICAgICA8QW5pbWF0aW9uU3BlZWRTbGlkZXJcbiAgICAgICAgICAgIG9uSGlkZT17aGlkZUFuZFNob3dTcGVlZENvbnRyb2x9XG4gICAgICAgICAgICB1cGRhdGVBbmltYXRpb25TcGVlZD17dXBkYXRlQW5pbWF0aW9uU3BlZWR9XG4gICAgICAgICAgICBzcGVlZD17c3BlZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1N0eWxlZFNwZWVkQ29udHJvbD5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBTcGVlZENvbnRyb2w7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNwZWVkQ29udHJvbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxhQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFBNEMsSUFBQU0sZUFBQSxFQUFBQyxnQkFBQSxFQVI1QztBQUNBO0FBU0EsSUFBTUMsa0JBQWtCLEdBQUdDLDRCQUFNLENBQUNDLEdBQUcsQ0FBQUosZUFBQSxLQUFBQSxlQUFBLE9BQUFLLHVCQUFBLHNJQU0vQkMsYUFBSyxDQUFDQyxJQUFJLENBQUFOLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUFJLHVCQUFBLDhDQUlmO0FBRUQsSUFBTUcsbUJBQW1CLEdBQUcsQ0FBQztBQUU3QixTQUFTQyxtQkFBbUJBLENBQUNDLG9CQUFvQixFQUFFO0VBQ2pELElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBQyxJQUFBLEVBU1o7SUFBQSxJQVJKQywwQkFBMEIsR0FBQUQsSUFBQSxDQUExQkMsMEJBQTBCO01BQzFCQyxvQkFBb0IsR0FBQUYsSUFBQSxDQUFwQkUsb0JBQW9CO01BQ3BCQyxRQUFRLEdBQUFILElBQUEsQ0FBUkcsUUFBUTtNQUNSQyx1QkFBdUIsR0FBQUosSUFBQSxDQUF2QkksdUJBQXVCO01BQ3ZCQyxZQUFZLEdBQUFMLElBQUEsQ0FBWkssWUFBWTtNQUNaQyxhQUFhLEdBQUFOLElBQUEsQ0FBYk0sYUFBYTtNQUNiQyxLQUFLLEdBQUFQLElBQUEsQ0FBTE8sS0FBSztNQUNMQyxxQkFBcUIsR0FBQVIsSUFBQSxDQUFyQlEscUJBQXFCO0lBRXJCLE9BQU9QLDBCQUEwQixJQUFJLENBQUNDLG9CQUFvQixHQUFHLElBQUksZ0JBQy9EdEIsTUFBQSxZQUFBNkIsYUFBQSxDQUFDbkIsa0JBQWtCLHFCQUNqQlYsTUFBQSxZQUFBNkIsYUFBQSxDQUFDdEIsYUFBQSxXQUFZO01BQ1h1QixTQUFTLEVBQUMsS0FBSztNQUNmQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFFO01BQ2hCQyxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBQTtRQUFBLG9CQUFRaEMsTUFBQSxZQUFBNkIsYUFBQSxlQUFPLElBQUFJLG1CQUFZLEVBQUNOLEtBQUssRUFBRVgsbUJBQW1CLENBQUMsRUFBQyxHQUFPLENBQUM7TUFBQTtJQUFDLGdCQUV2RWhCLE1BQUEsWUFBQTZCLGFBQUEsQ0FBQ3pCLFdBQUEsV0FBVSxNQUFBOEIsU0FBQTtNQUNUQyxTQUFTLEVBQUM7SUFBeUIsR0FDL0JaLFFBQVE7TUFDWmEsT0FBTyxFQUFFWjtJQUF3QixpQkFFakN4QixNQUFBLFlBQUE2QixhQUFBLENBQUNILGFBQWEsQ0FBQ0MsS0FBSztNQUFDVSxNQUFNLEVBQUVaO0lBQWEsQ0FBRSxDQUNsQyxDQUNBLENBQUMsRUFDZEcscUJBQXFCLGdCQUNwQjVCLE1BQUEsWUFBQTZCLGFBQUEsQ0FBQ1gsb0JBQW9CO01BQ25Cb0IsTUFBTSxFQUFFZCx1QkFBd0I7TUFDaENGLG9CQUFvQixFQUFFQSxvQkFBcUI7TUFDM0NLLEtBQUssRUFBRUE7SUFBTSxDQUNkLENBQUMsR0FDQSxJQUNjLENBQ3JCO0VBQ0gsQ0FBQztFQUVELE9BQU9SLFlBQVk7QUFDckI7QUFBQyxJQUFBb0IsUUFBQSxHQUFBQyxPQUFBLGNBRWN2QixtQkFBbUIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,9 +1,8 @@
1
- import { ColorRange } from '@kepler.gl/constants';
2
- import { Layer } from '@kepler.gl/layers';
3
- import { HexColor, MapState } from '@kepler.gl/types';
4
1
  import React from 'react';
2
+ import { Layer } from '@kepler.gl/layers';
3
+ import { ColorRange, HexColor, MapState } from '@kepler.gl/types';
5
4
  import { Reset } from './icons';
6
- export declare function ResetColorLabelFactory(): import("styled-components").StyledComponent<typeof Reset, any, {}, never>;
5
+ export declare function ResetColorLabelFactory(): import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<Partial<import("./icons").BaseProps> & React.RefAttributes<Reset>, never>> & Omit<typeof Reset, keyof React.Component<any, {}, any>>;
7
6
  export declare type LegendRowEditorProps = {
8
7
  color: string;
9
8
  label: string;
@@ -26,7 +25,7 @@ export declare type LegendRowProps = {
26
25
  };
27
26
  export declare function LegendRowFactory(LegendColorDisplay: ReturnType<typeof LegendColorDisplayFactory>, LegendRowEditor: ReturnType<typeof LegendRowEditorFactory>, ResetColorLabel: ReturnType<typeof ResetColorLabelFactory>): React.FC<LegendRowProps>;
28
27
  export declare namespace LegendRowFactory {
29
- var deps: (typeof LegendColorDisplayFactory | typeof LegendRowEditorFactory | typeof ResetColorLabelFactory)[];
28
+ var deps: (typeof ResetColorLabelFactory | typeof LegendColorDisplayFactory | typeof LegendRowEditorFactory)[];
30
29
  }
31
30
  export declare function useLayerColorLegends(layer: ColorLegendProps['layer'], scaleType: ColorLegendProps['scaleType'], domain: ColorLegendProps['domain'], range: ColorLegendProps['range'], isFixed: ColorLegendProps['isFixed'], fieldType: ColorLegendProps['fieldType'], labelFormat: ColorLegendProps['labelFormat'], mapState: ColorLegendProps['mapState']): Legend[];
32
31
  export declare type ColorLegendProps = {
@@ -15,9 +15,10 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
15
15
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
17
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
18
- var _utils = require("@kepler.gl/utils");
19
18
  var _react = _interopRequireWildcard(require("react"));
20
19
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
20
+ var _constants = require("@kepler.gl/constants");
21
+ var _utils = require("@kepler.gl/utils");
21
22
  var _icons = require("./icons");
22
23
  var _styledComponents2 = require("./styled-components");
23
24
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6; // SPDX-License-Identifier: MIT
@@ -44,7 +45,7 @@ var StyledLegend = _styledComponents["default"].div(_templateObject2 || (_templa
44
45
  });
45
46
  var StyledLegendRow = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n height: 20px;\n"])));
46
47
  function ResetColorLabelFactory() {
47
- return (0, _styledComponents["default"])(_icons.Reset)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n cursor: pointer;\n\n :hover {\n color: ", ";\n }\n "])), function (props) {
48
+ return (0, _styledComponents["default"])(_icons.Reset)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n cursor: pointer;\n\n &:hover {\n color: ", ";\n }\n "])), function (props) {
48
49
  return props.theme.labelColorLT;
49
50
  }, function (props) {
50
51
  return props.theme.panelHeaderIconHover;
@@ -192,20 +193,29 @@ function useLayerColorLegends(layer, scaleType, domain, range, isFixed, fieldTyp
192
193
  });
193
194
  }, [scale, layer, mapState]);
194
195
  var currentLegends = (0, _react.useMemo)(function () {
196
+ if (scaleType === _constants.SCALE_TYPES.customOrdinal && range !== null && range !== void 0 && range.colorMap) {
197
+ var colorBreaks = (0, _utils.colorMapToCategoricalColorBreaks)(range.colorMap);
198
+ return colorBreaks === null || colorBreaks === void 0 ? void 0 : colorBreaks.map(function (cb) {
199
+ return {
200
+ data: cb.data,
201
+ label: Array.isArray(cb.label) ? cb.label.length > 5 ? "".concat(cb.label.length, " selected") : cb.label : cb.label || ''
202
+ };
203
+ });
204
+ }
195
205
  return (0, _utils.getLegendOfScale)({
196
206
  scale: scaleByZoom,
197
207
  scaleType: scaleType,
198
208
  labelFormat: labelFormat,
199
209
  fieldType: fieldType
200
210
  });
201
- }, [scaleByZoom, scaleType, labelFormat, fieldType]);
211
+ }, [range, scaleByZoom, scaleType, labelFormat, fieldType]);
202
212
  var LegendsWithCustomLegends = (0, _react.useMemo)(function () {
203
213
  return overrideByCustomLegend({
204
214
  colorLegends: range === null || range === void 0 ? void 0 : range.colorLegends,
205
215
  currentLegends: currentLegends
206
216
  });
207
217
  }, [range === null || range === void 0 ? void 0 : range.colorLegends, currentLegends]);
208
- return LegendsWithCustomLegends;
218
+ return LegendsWithCustomLegends || [];
209
219
  }
210
220
  ColorLegendFactory.deps = [LegendRowFactory];
211
221
  function ColorLegendFactory(LegendRow) {
@@ -243,6 +253,7 @@ function ColorLegendFactory(LegendRow) {
243
253
  /* eslint-enable no-unused-vars */
244
254
  }, [onUpdateColorLegend, colorLegends]);
245
255
  return /*#__PURE__*/_react["default"].createElement(StyledLegend, {
256
+ className: "styled-color-legend",
246
257
  disableEdit: disableEdit,
247
258
  isExpanded: isExpanded
248
259
  }, legends.map(function (legend, i) {
@@ -259,4 +270,4 @@ function ColorLegendFactory(LegendRow) {
259
270
  return /*#__PURE__*/_react["default"].memo(ColorLegend);
260
271
  }
261
272
  var _default = exports["default"] = ColorLegendFactory;
262
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXRpbHMiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pY29ucyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlJPV19IIiwiR0FQIiwiUkVDVF9XIiwic3RvcENsaWNrUHJvcGFnYXRpb24iLCJzdG9wUHJvcGFnYXRpb24iLCJpbnB1dENzcyIsImNzcyIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiU3R5bGVkTGVnZW5kIiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsInNpZGVQYW5lbFNjcm9sbEJhciIsImlzRXhwYW5kZWQiLCJkaXNhYmxlRWRpdCIsIlN0eWxlZExlZ2VuZFJvdyIsIlJlc2V0Q29sb3JMYWJlbEZhY3RvcnkiLCJSZXNldCIsImxhYmVsQ29sb3JMVCIsInBhbmVsSGVhZGVySWNvbkhvdmVyIiwiU3R5bGVJbmxpbmVJbnB1dCIsIklubGluZUlucHV0IiwidGV4dENvbG9yIiwiTGVnZW5kUm93RWRpdG9yRmFjdG9yeSIsIkxlZ2VuZFJvd0VkaXRvciIsIl9yZWYiLCJjb2xvciIsImxhYmVsIiwib25FZGl0IiwiX3JlZiRkaXNhYmxlZCIsImRpc2FibGVkIiwib25DaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImV2ZW50IiwidGFyZ2V0IiwidmFsdWUiLCJjcmVhdGVFbGVtZW50IiwidHlwZSIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJpZCIsImNvbmNhdCIsImRpc3BsYXlOYW1lIiwiTGVnZW5kUm93U3R5bGUiLCJ3aWR0aCIsImhlaWdodCIsIkxlZ2VuZENvbG9yRGlzcGxheUZhY3RvcnkiLCJMZWdlbmRDb2xvckRpc3BsYXkiLCJfcmVmMiIsInN0eWxlIiwidXNlTWVtbyIsImJhY2tncm91bmRDb2xvciIsIm1hcmdpblJpZ2h0IiwiU3R5bGVkTGFiZWwiLCJMZWdlbmRSb3dGYWN0b3J5IiwiZGVwcyIsIlJlc2V0Q29sb3JMYWJlbCIsIkxlZ2VuZFJvdyIsIl9yZWYzIiwiX3JlZjMkbGFiZWwiLCJkaXNwbGF5TGFiZWwiLCJvblVwZGF0ZUxhYmVsIiwib25SZXNldExhYmVsIiwibmV3TGFiZWwiLCJvblJlc2V0IiwidG9TdHJpbmciLCJvdmVycmlkZUNvbG9yTGVnZW5kcyIsImNvbG9yTGVnZW5kcyIsIm92ZXJyaWRlcyIsImRhdGEiLCJsYWJlbHMiLCJuZXdDb2xvckxlZ2VuZHMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZGF0dW0iLCJpbmRleCIsImN1cnJlbnRJbmRleCIsImZpbmRJbmRleCIsImQiLCJvdmVycmlkZSIsIm92ZXJyaWRlQnlDdXN0b21MZWdlbmQiLCJfcmVmNCIsImN1cnJlbnRMZWdlbmRzIiwiaXNPYmplY3QiLCJ2YWx1ZXMiLCJ1c2VMYXllckNvbG9yTGVnZW5kcyIsImxheWVyIiwic2NhbGVUeXBlIiwiZG9tYWluIiwicmFuZ2UiLCJpc0ZpeGVkIiwiZmllbGRUeXBlIiwibGFiZWxGb3JtYXQiLCJtYXBTdGF0ZSIsInNjYWxlIiwiZ2V0TGF5ZXJDb2xvclNjYWxlIiwic2NhbGVCeVpvb20iLCJnZXRWaXN1YWxDaGFubmVsU2NhbGVCeVpvb20iLCJnZXRMZWdlbmRPZlNjYWxlIiwiTGVnZW5kc1dpdGhDdXN0b21MZWdlbmRzIiwiQ29sb3JMZWdlbmRGYWN0b3J5IiwiQ29sb3JMZWdlbmQiLCJfcmVmNSIsIm9uVXBkYXRlQ29sb3JMZWdlbmQiLCJfcmVmNSRkaXNwbGF5TGFiZWwiLCJfcmVmNSRkaXNhYmxlRWRpdCIsIl9yZWY2IiwibGVnZW5kcyIsIm5ld1ZhbHVlIiwiXyIsInJlc3QiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwibWFwIiwibGVnZW5kIiwia2V5IiwidW5kZWZpbmVkIiwiUmVhY3QiLCJtZW1vIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9jb2xvci1sZWdlbmQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7Q29sb3JSYW5nZX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtIZXhDb2xvciwgTWFwU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtcbiAgZ2V0TGF5ZXJDb2xvclNjYWxlLFxuICBnZXRMZWdlbmRPZlNjYWxlLFxuICBnZXRWaXN1YWxDaGFubmVsU2NhbGVCeVpvb20sXG4gIGlzT2JqZWN0XG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQsIHtjc3N9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7UmVzZXR9IGZyb20gJy4vaWNvbnMnO1xuaW1wb3J0IHtJbmxpbmVJbnB1dH0gZnJvbSAnLi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmNvbnN0IFJPV19IID0gMTU7XG5jb25zdCBHQVAgPSAyO1xuY29uc3QgUkVDVF9XID0gMjA7XG5cbmNvbnN0IHN0b3BDbGlja1Byb3BhZ2F0aW9uID0gZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpO1xuXG5jb25zdCBpbnB1dENzcyA9IGNzc2BcbiAgaW5wdXQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5gO1xuY29uc3QgU3R5bGVkTGVnZW5kID0gc3R5bGVkLmRpdjx7ZGlzYWJsZUVkaXQ6IGJvb2xlYW47IGlzRXhwYW5kZWQ/OiBib29sZWFufT5gXG4gICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2lkZVBhbmVsU2Nyb2xsQmFyfTtcbiAgJHtwcm9wcyA9PiAocHJvcHMuaXNFeHBhbmRlZCA/ICcnIDogYG1heC1oZWlnaHQ6IDE1NnB4O2ApfTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206ICR7R0FQfXB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXJvdy1nYXA6ICR7R0FQfXB4O1xuICBwYWRkaW5nOiAycHggMDtcblxuICAke3Byb3BzID0+IChwcm9wcy5kaXNhYmxlRWRpdCA/IGlucHV0Q3NzIDogJycpfVxuYDtcblxuY29uc3QgU3R5bGVkTGVnZW5kUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAyMHB4O1xuYDtcblxuZXhwb3J0IGZ1bmN0aW9uIFJlc2V0Q29sb3JMYWJlbEZhY3RvcnkoKSB7XG4gIHJldHVybiBzdHlsZWQoUmVzZXQpYFxuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3JMVH07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsSGVhZGVySWNvbkhvdmVyfTtcbiAgICB9XG4gIGA7XG59XG5cbmNvbnN0IFN0eWxlSW5saW5lSW5wdXQgPSBzdHlsZWQoSW5saW5lSW5wdXQpYFxuICBmb250LXNpemU6IDkuNXB4O1xuICBsaW5lLWhlaWdodDogJHtST1dfSH1weDtcbiAgaGVpZ2h0OiAke1JPV19IfXB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICB3aWR0aDogdW5zZXQ7XG4gIHBhZGRpbmc6IDJweDtcbiAgZmxleDogMTtcbiAgbWFyZ2luOiAwICR7R0FQfXB4O1xuICA6aG92ZXIge1xuICAgIGhlaWdodDogJHtST1dfSH1weDtcbiAgfVxuYDtcblxuZXhwb3J0IHR5cGUgTGVnZW5kUm93RWRpdG9yUHJvcHMgPSB7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGN1c3RvbUxhYmVsPzogc3RyaW5nO1xuICBvbkVkaXQ6IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59O1xuZXhwb3J0IGZ1bmN0aW9uIExlZ2VuZFJvd0VkaXRvckZhY3RvcnkoKSB7XG4gIGNvbnN0IExlZ2VuZFJvd0VkaXRvcjogUmVhY3QuRkM8TGVnZW5kUm93RWRpdG9yUHJvcHM+ID0gKHtcbiAgICBjb2xvcixcbiAgICBsYWJlbCxcbiAgICBvbkVkaXQsXG4gICAgZGlzYWJsZWQgPSBmYWxzZVxuICB9KSA9PiB7XG4gICAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhldmVudCA9PiBvbkVkaXQoZXZlbnQudGFyZ2V0LnZhbHVlKSwgW29uRWRpdF0pO1xuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVJbmxpbmVJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGNsYXNzTmFtZT1cImxlZ2VuZF9fbGFiZWxfX3RpdGxlX19lZGl0b3JcIlxuICAgICAgICB2YWx1ZT17bGFiZWx9XG4gICAgICAgIG9uQ2xpY2s9e3N0b3BDbGlja1Byb3BhZ2F0aW9ufVxuICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgaWQ9e2Ake2NvbG9yfTppbnB1dC1sZWdlbmQtbGFiZWxgfVxuICAgICAgLz5cbiAgICApO1xuICB9O1xuXG4gIExlZ2VuZFJvd0VkaXRvci5kaXNwbGF5TmFtZSA9ICdMZWdlbmRSb3dFZGl0b3InO1xuICByZXR1cm4gTGVnZW5kUm93RWRpdG9yO1xufVxuXG5jb25zdCBMZWdlbmRSb3dTdHlsZSA9IHtcbiAgd2lkdGg6IGAke1JFQ1RfV31weGAsXG4gIGhlaWdodDogYCR7Uk9XX0h9cHhgXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gTGVnZW5kQ29sb3JEaXNwbGF5RmFjdG9yeSgpIHtcbiAgY29uc3QgTGVnZW5kQ29sb3JEaXNwbGF5ID0gKHtjb2xvcn0pID0+IHtcbiAgICBjb25zdCBzdHlsZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoey4uLkxlZ2VuZFJvd1N0eWxlLCBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLCBtYXJnaW5SaWdodDogYCR7R0FQfXB4YH0pLFxuICAgICAgW2NvbG9yXVxuICAgICk7XG4gICAgcmV0dXJuIDxkaXYgc3R5bGU9e3N0eWxlfSBjbGFzc05hbWU9XCJsZWdlbmQtcm93LWNvbG9yXCIgLz47XG4gIH07XG5cbiAgcmV0dXJuIExlZ2VuZENvbG9yRGlzcGxheTtcbn1cblxuY29uc3QgU3R5bGVkTGFiZWwgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIHBhZGRpbmctbGVmdDogMnB4O1xuYDtcblxuZXhwb3J0IHR5cGUgTGVnZW5kUm93UHJvcHMgPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGN1c3RvbUxhYmVsPzogc3RyaW5nO1xuICBkaXNwbGF5TGFiZWw/OiBib29sZWFuO1xuICBjb2xvcjogc3RyaW5nO1xuICBvblVwZGF0ZUxhYmVsPzogKHNlbGVjdGVkQ29sb3I6IHN0cmluZywgbmV3TGFiZWw6IHN0cmluZykgPT4gdm9pZDtcbiAgb25SZXNldExhYmVsPzogKGNvbG9yOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbn07XG5cbkxlZ2VuZFJvd0ZhY3RvcnkuZGVwcyA9IFtMZWdlbmRDb2xvckRpc3BsYXlGYWN0b3J5LCBMZWdlbmRSb3dFZGl0b3JGYWN0b3J5LCBSZXNldENvbG9yTGFiZWxGYWN0b3J5XTtcbmV4cG9ydCBmdW5jdGlvbiBMZWdlbmRSb3dGYWN0b3J5KFxuICBMZWdlbmRDb2xvckRpc3BsYXk6IFJldHVyblR5cGU8dHlwZW9mIExlZ2VuZENvbG9yRGlzcGxheUZhY3Rvcnk+LFxuICBMZWdlbmRSb3dFZGl0b3I6IFJldHVyblR5cGU8dHlwZW9mIExlZ2VuZFJvd0VkaXRvckZhY3Rvcnk+LFxuICBSZXNldENvbG9yTGFiZWw6IFJldHVyblR5cGU8dHlwZW9mIFJlc2V0Q29sb3JMYWJlbEZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTGVnZW5kUm93OiBSZWFjdC5GQzxMZWdlbmRSb3dQcm9wcz4gPSAoe1xuICAgIGxhYmVsID0gJycsXG4gICAgZGlzcGxheUxhYmVsLFxuICAgIGNvbG9yLFxuICAgIG9uVXBkYXRlTGFiZWwsXG4gICAgb25SZXNldExhYmVsXG4gIH0pID0+IHtcbiAgICBjb25zdCBvbkVkaXQgPSB1c2VDYWxsYmFjayhcbiAgICAgIG5ld0xhYmVsID0+IG9uVXBkYXRlTGFiZWwgJiYgb25VcGRhdGVMYWJlbChjb2xvciwgbmV3TGFiZWwpLFxuICAgICAgW2NvbG9yLCBvblVwZGF0ZUxhYmVsXVxuICAgICk7XG4gICAgY29uc3Qgb25SZXNldCA9IHVzZUNhbGxiYWNrKCgpID0+IG9uUmVzZXRMYWJlbCAmJiBvblJlc2V0TGFiZWwoY29sb3IpLCBbY29sb3IsIG9uUmVzZXRMYWJlbF0pO1xuICAgIGNvbnN0IHZhbHVlID0gZGlzcGxheUxhYmVsID8gbGFiZWwudG9TdHJpbmcoKSA6ICcnO1xuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTGVnZW5kUm93PlxuICAgICAgICA8TGVnZW5kQ29sb3JEaXNwbGF5IGNvbG9yPXtjb2xvcn0gLz5cbiAgICAgICAge29uVXBkYXRlTGFiZWwgPyAoXG4gICAgICAgICAgPExlZ2VuZFJvd0VkaXRvciBkaXNhYmxlZD17IW9uVXBkYXRlTGFiZWx9IGxhYmVsPXt2YWx1ZX0gY29sb3I9e2NvbG9yfSBvbkVkaXQ9e29uRWRpdH0gLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8U3R5bGVkTGFiZWw+e3ZhbHVlfTwvU3R5bGVkTGFiZWw+XG4gICAgICAgICl9XG4gICAgICAgIHtvblJlc2V0TGFiZWwgPyA8UmVzZXRDb2xvckxhYmVsIG9uQ2xpY2s9e29uUmVzZXR9IGhlaWdodD1cIjE2cHhcIiAvPiA6IG51bGx9XG4gICAgICA8L1N0eWxlZExlZ2VuZFJvdz5cbiAgICApO1xuICB9O1xuICBMZWdlbmRSb3cuZGlzcGxheU5hbWUgPSAnTGVnZW5kUm93JztcbiAgcmV0dXJuIExlZ2VuZFJvdztcbn1cblxuY29uc3Qgb3ZlcnJpZGVDb2xvckxlZ2VuZHMgPSAoY29sb3JMZWdlbmRzLCBvdmVycmlkZXMpID0+IHtcbiAgY29uc3Qge2RhdGEsIGxhYmVsc30gPSBvdmVycmlkZXM7XG5cbiAgY29uc3QgbmV3Q29sb3JMZWdlbmRzID0gWy4uLmNvbG9yTGVnZW5kc107XG5cbiAgZGF0YS5mb3JFYWNoKChkYXR1bSwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSBjb2xvckxlZ2VuZHMuZmluZEluZGV4KGQgPT4gZC5kYXRhID09PSBkYXR1bSk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCAhPT0gLTEpIHtcbiAgICAgIG5ld0NvbG9yTGVnZW5kc1tjdXJyZW50SW5kZXhdID0ge1xuICAgICAgICBsYWJlbDogbGFiZWxzW2luZGV4XSxcbiAgICAgICAgZGF0YTogZGF0dW0sXG4gICAgICAgIG92ZXJyaWRlOiB0cnVlXG4gICAgICB9O1xuICAgICAgbmV3Q29sb3JMZWdlbmRzW2N1cnJlbnRJbmRleF0ubGFiZWwgPSBsYWJlbHNbaW5kZXhdO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdDb2xvckxlZ2VuZHMucHVzaCh7XG4gICAgICAgIGRhdGE6IGRhdHVtLFxuICAgICAgICBsYWJlbDogbGFiZWxzW2luZGV4XSxcbiAgICAgICAgb3ZlcnJpZGU6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG5ld0NvbG9yTGVnZW5kcztcbn07XG5cbnR5cGUgT3ZlcnJpZGVCeUN1c3RvbUxlZ2VuZE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBMZWdlbmQgcGFyYW1ldGVycyB0byBvdmVycmlkZVxuICAgKi9cbiAgY29sb3JMZWdlbmRzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIE9yaWdpbmFsIExlZ2VuZHNcbiAgICovXG4gIGN1cnJlbnRMZWdlbmRzOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRMZWdlbmRPZlNjYWxlPjtcbn07XG5cbi8qKlxuICogT3ZlcnJpZGVzIGxlZ2VuZCBsYWJlbHMgd2l0aCBjb2xvciBsZWdlbmRzLlxuICogQHBhcmFtIHBhcmFtMCBMZWdlbmQgaW5mbyBhbmQgb3ZlcnJpZGUgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIE9yaWdpbmFsIG9yIG92ZXJyaWRlbiBsZW5lbmRzLlxuICovXG5mdW5jdGlvbiBvdmVycmlkZUJ5Q3VzdG9tTGVnZW5kKHtjb2xvckxlZ2VuZHMsIGN1cnJlbnRMZWdlbmRzfTogT3ZlcnJpZGVCeUN1c3RvbUxlZ2VuZE9wdGlvbnMpIHtcbiAgaWYgKGNvbG9yTGVnZW5kcyAmJiBpc09iamVjdChjb2xvckxlZ2VuZHMpKSB7XG4gICAgLy8gb3ZlcnJpZGUgbGFiZWxzIHdpdGggY29sb3IgbGVnZW5kc1xuICAgIGNvbnN0IGRhdGEgPSBPYmplY3Qua2V5cyhjb2xvckxlZ2VuZHMpO1xuICAgIGNvbnN0IGxhYmVscyA9IE9iamVjdC52YWx1ZXMoY29sb3JMZWdlbmRzKTtcblxuICAgIHJldHVybiBvdmVycmlkZUNvbG9yTGVnZW5kcyhjdXJyZW50TGVnZW5kcywge2RhdGEsIGxhYmVsc30pO1xuICB9XG5cbiAgcmV0dXJuIGN1cnJlbnRMZWdlbmRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlTGF5ZXJDb2xvckxlZ2VuZHMoXG4gIGxheWVyOiBDb2xvckxlZ2VuZFByb3BzWydsYXllciddLFxuICBzY2FsZVR5cGU6IENvbG9yTGVnZW5kUHJvcHNbJ3NjYWxlVHlwZSddLFxuICBkb21haW46IENvbG9yTGVnZW5kUHJvcHNbJ2RvbWFpbiddLFxuICByYW5nZTogQ29sb3JMZWdlbmRQcm9wc1sncmFuZ2UnXSxcbiAgaXNGaXhlZDogQ29sb3JMZWdlbmRQcm9wc1snaXNGaXhlZCddLFxuICBmaWVsZFR5cGU6IENvbG9yTGVnZW5kUHJvcHNbJ2ZpZWxkVHlwZSddLFxuICBsYWJlbEZvcm1hdDogQ29sb3JMZWdlbmRQcm9wc1snbGFiZWxGb3JtYXQnXSxcbiAgbWFwU3RhdGU6IENvbG9yTGVnZW5kUHJvcHNbJ21hcFN0YXRlJ11cbik6IExlZ2VuZFtdIHtcbiAgY29uc3Qgc2NhbGUgPSB1c2VNZW1vKFxuICAgICgpID0+IGdldExheWVyQ29sb3JTY2FsZSh7cmFuZ2UsIGRvbWFpbiwgc2NhbGVUeXBlLCBpc0ZpeGVkLCBsYXllcn0pLFxuICAgIFtyYW5nZSwgZG9tYWluLCBzY2FsZVR5cGUsIGlzRml4ZWQsIGxheWVyXVxuICApO1xuXG4gIGNvbnN0IHNjYWxlQnlab29tID0gdXNlTWVtbyhcbiAgICAoKSA9PiBnZXRWaXN1YWxDaGFubmVsU2NhbGVCeVpvb20oe3NjYWxlLCBsYXllciwgbWFwU3RhdGV9KSxcbiAgICBbc2NhbGUsIGxheWVyLCBtYXBTdGF0ZV1cbiAgKTtcblxuICBjb25zdCBjdXJyZW50TGVnZW5kcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZ2V0TGVnZW5kT2ZTY2FsZSh7c2NhbGU6IHNjYWxlQnlab29tLCBzY2FsZVR5cGUsIGxhYmVsRm9ybWF0LCBmaWVsZFR5cGV9KSxcbiAgICBbc2NhbGVCeVpvb20sIHNjYWxlVHlwZSwgbGFiZWxGb3JtYXQsIGZpZWxkVHlwZV1cbiAgKTtcblxuICBjb25zdCBMZWdlbmRzV2l0aEN1c3RvbUxlZ2VuZHMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBvdmVycmlkZUJ5Q3VzdG9tTGVnZW5kKHtcbiAgICAgICAgY29sb3JMZWdlbmRzOiByYW5nZT8uY29sb3JMZWdlbmRzLFxuICAgICAgICBjdXJyZW50TGVnZW5kc1xuICAgICAgfSksXG4gICAgW3JhbmdlPy5jb2xvckxlZ2VuZHMsIGN1cnJlbnRMZWdlbmRzXVxuICApO1xuXG4gIHJldHVybiBMZWdlbmRzV2l0aEN1c3RvbUxlZ2VuZHM7XG59XG5cbmV4cG9ydCB0eXBlIENvbG9yTGVnZW5kUHJvcHMgPSB7XG4gIGxheWVyOiBMYXllcjtcbiAgc2NhbGVUeXBlOiBzdHJpbmc7XG4gIGRvbWFpbjogbnVtYmVyW10gfCBzdHJpbmdbXTtcbiAgZmllbGRUeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgcmFuZ2U/OiBDb2xvclJhbmdlIHwgbnVsbDtcbiAgbGFiZWxGb3JtYXQ/OiAobjogYW55KSA9PiBzdHJpbmc7XG4gIGRpc3BsYXlMYWJlbD86IGJvb2xlYW47XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbiAgaXNGaXhlZD86IGJvb2xlYW47XG4gIGlzRXhwYW5kZWQ/OiBib29sZWFuO1xuICBvblVwZGF0ZUNvbG9yTGVnZW5kPzogKGNvbG9yTGVnZW5kczoge1trZXk6IEhleENvbG9yXTogc3RyaW5nfSkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIExlZ2VuZCA9IHtcbiAgZGF0YTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBvdmVycmlkZT86IGJvb2xlYW47XG59O1xuXG5Db2xvckxlZ2VuZEZhY3RvcnkuZGVwcyA9IFtMZWdlbmRSb3dGYWN0b3J5XTtcbmZ1bmN0aW9uIENvbG9yTGVnZW5kRmFjdG9yeShMZWdlbmRSb3c6IFJldHVyblR5cGU8dHlwZW9mIExlZ2VuZFJvd0ZhY3Rvcnk+KSB7XG4gIGNvbnN0IENvbG9yTGVnZW5kOiBSZWFjdC5GQzxDb2xvckxlZ2VuZFByb3BzPiA9ICh7XG4gICAgbGF5ZXIsXG4gICAgaXNGaXhlZCxcbiAgICBpc0V4cGFuZGVkLFxuICAgIGRvbWFpbixcbiAgICByYW5nZSxcbiAgICBsYWJlbEZvcm1hdCxcbiAgICBzY2FsZVR5cGUsXG4gICAgZmllbGRUeXBlLFxuICAgIG1hcFN0YXRlLFxuICAgIG9uVXBkYXRlQ29sb3JMZWdlbmQsXG4gICAgZGlzcGxheUxhYmVsID0gdHJ1ZSxcbiAgICBkaXNhYmxlRWRpdCA9IGZhbHNlXG4gIH0pID0+IHtcbiAgICBjb25zdCB7Y29sb3JMZWdlbmRzfSA9IHJhbmdlIHx8IHt9O1xuXG4gICAgY29uc3QgbGVnZW5kcyA9IHVzZUxheWVyQ29sb3JMZWdlbmRzKFxuICAgICAgbGF5ZXIsXG4gICAgICBzY2FsZVR5cGUsXG4gICAgICBkb21haW4sXG4gICAgICByYW5nZSxcbiAgICAgIGlzRml4ZWQsXG4gICAgICBmaWVsZFR5cGUsXG4gICAgICBsYWJlbEZvcm1hdCxcbiAgICAgIG1hcFN0YXRlXG4gICAgKTtcblxuICAgIGNvbnN0IG9uVXBkYXRlTGFiZWwgPSB1c2VDYWxsYmFjayhcbiAgICAgIChjb2xvciwgbmV3VmFsdWUpID0+IHtcbiAgICAgICAgaWYgKG9uVXBkYXRlQ29sb3JMZWdlbmQpIHtcbiAgICAgICAgICBvblVwZGF0ZUNvbG9yTGVnZW5kKHtcbiAgICAgICAgICAgIC4uLmNvbG9yTGVnZW5kcyxcbiAgICAgICAgICAgIFtjb2xvcl06IG5ld1ZhbHVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbb25VcGRhdGVDb2xvckxlZ2VuZCwgY29sb3JMZWdlbmRzXVxuICAgICk7XG5cbiAgICBjb25zdCBvblJlc2V0TGFiZWwgPSB1c2VDYWxsYmFjayhcbiAgICAgIGNvbG9yID0+IHtcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCB7W2NvbG9yXTogXywgLi4ucmVzdH0gPSBjb2xvckxlZ2VuZHM7XG4gICAgICAgIGlmIChvblVwZGF0ZUNvbG9yTGVnZW5kICYmIHJlc3QpIHtcbiAgICAgICAgICBvblVwZGF0ZUNvbG9yTGVnZW5kKHJlc3QpO1xuICAgICAgICB9XG4gICAgICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMgKi9cbiAgICAgIH0sXG4gICAgICBbb25VcGRhdGVDb2xvckxlZ2VuZCwgY29sb3JMZWdlbmRzXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZExlZ2VuZCBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXR9IGlzRXhwYW5kZWQ9e2lzRXhwYW5kZWR9PlxuICAgICAgICB7bGVnZW5kcy5tYXAoKGxlZ2VuZCwgaSkgPT4gKFxuICAgICAgICAgIDxMZWdlbmRSb3dcbiAgICAgICAgICAgIGtleT17YCR7bGVnZW5kLmRhdGF9LSR7aX1gfVxuICAgICAgICAgICAgbGFiZWw9e2xlZ2VuZC5sYWJlbH1cbiAgICAgICAgICAgIGRpc3BsYXlMYWJlbD17ZGlzcGxheUxhYmVsfVxuICAgICAgICAgICAgY29sb3I9e2xlZ2VuZC5kYXRhfVxuICAgICAgICAgICAgb25VcGRhdGVMYWJlbD17IWRpc2FibGVFZGl0ID8gb25VcGRhdGVMYWJlbCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIG9uUmVzZXRMYWJlbD17bGVnZW5kLm92ZXJyaWRlICYmICFkaXNhYmxlRWRpdCA/IG9uUmVzZXRMYWJlbCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgIDwvU3R5bGVkTGVnZW5kPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oQ29sb3JMZWdlbmQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb2xvckxlZ2VuZEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBTUEsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUQsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGtCQUFBLEdBQUFMLE9BQUE7QUFBZ0QsSUFBQU0sZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQWZoRDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFYLHdCQUFBVyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEs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
273
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJfaWNvbnMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfdGVtcGxhdGVPYmplY3Q1IiwiX3RlbXBsYXRlT2JqZWN0NiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJST1dfSCIsIkdBUCIsIlJFQ1RfVyIsInN0b3BDbGlja1Byb3BhZ2F0aW9uIiwic3RvcFByb3BhZ2F0aW9uIiwiaW5wdXRDc3MiLCJjc3MiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIlN0eWxlZExlZ2VuZCIsInN0eWxlZCIsImRpdiIsInByb3BzIiwidGhlbWUiLCJzaWRlUGFuZWxTY3JvbGxCYXIiLCJpc0V4cGFuZGVkIiwiZGlzYWJsZUVkaXQiLCJTdHlsZWRMZWdlbmRSb3ciLCJSZXNldENvbG9yTGFiZWxGYWN0b3J5IiwiUmVzZXQiLCJsYWJlbENvbG9yTFQiLCJwYW5lbEhlYWRlckljb25Ib3ZlciIsIlN0eWxlSW5saW5lSW5wdXQiLCJJbmxpbmVJbnB1dCIsInRleHRDb2xvciIsIkxlZ2VuZFJvd0VkaXRvckZhY3RvcnkiLCJMZWdlbmRSb3dFZGl0b3IiLCJfcmVmIiwiY29sb3IiLCJsYWJlbCIsIm9uRWRpdCIsIl9yZWYkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIm9uQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJldmVudCIsInRhcmdldCIsInZhbHVlIiwiY3JlYXRlRWxlbWVudCIsInR5cGUiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwiaWQiLCJjb25jYXQiLCJkaXNwbGF5TmFtZSIsIkxlZ2VuZFJvd1N0eWxlIiwid2lkdGgiLCJoZWlnaHQiLCJMZWdlbmRDb2xvckRpc3BsYXlGYWN0b3J5IiwiTGVnZW5kQ29sb3JEaXNwbGF5IiwiX3JlZjIiLCJzdHlsZSIsInVzZU1lbW8iLCJiYWNrZ3JvdW5kQ29sb3IiLCJtYXJnaW5SaWdodCIsIlN0eWxlZExhYmVsIiwiTGVnZW5kUm93RmFjdG9yeSIsImRlcHMiLCJSZXNldENvbG9yTGFiZWwiLCJMZWdlbmRSb3ciLCJfcmVmMyIsIl9yZWYzJGxhYmVsIiwiZGlzcGxheUxhYmVsIiwib25VcGRhdGVMYWJlbCIsIm9uUmVzZXRMYWJlbCIsIm5ld0xhYmVsIiwib25SZXNldCIsInRvU3RyaW5nIiwib3ZlcnJpZGVDb2xvckxlZ2VuZHMiLCJjb2xvckxlZ2VuZHMiLCJvdmVycmlkZXMiLCJkYXRhIiwibGFiZWxzIiwibmV3Q29sb3JMZWdlbmRzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRhdHVtIiwiaW5kZXgiLCJjdXJyZW50SW5kZXgiLCJmaW5kSW5kZXgiLCJkIiwib3ZlcnJpZGUiLCJvdmVycmlkZUJ5Q3VzdG9tTGVnZW5kIiwiX3JlZjQiLCJjdXJyZW50TGVnZW5kcyIsImlzT2JqZWN0IiwidmFsdWVzIiwidXNlTGF5ZXJDb2xvckxlZ2VuZHMiLCJsYXllciIsInNjYWxlVHlwZSIsImRvbWFpbiIsInJhbmdlIiwiaXNGaXhlZCIsImZpZWxkVHlwZSIsImxhYmVsRm9ybWF0IiwibWFwU3RhdGUiLCJzY2FsZSIsImdldExheWVyQ29sb3JTY2FsZSIsInNjYWxlQnlab29tIiwiZ2V0VmlzdWFsQ2hhbm5lbFNjYWxlQnlab29tIiwiU0NBTEVfVFlQRVMiLCJjdXN0b21PcmRpbmFsIiwiY29sb3JNYXAiLCJjb2xvckJyZWFrcyIsImNvbG9yTWFwVG9DYXRlZ29yaWNhbENvbG9yQnJlYWtzIiwibWFwIiwiY2IiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRMZWdlbmRPZlNjYWxlIiwiTGVnZW5kc1dpdGhDdXN0b21MZWdlbmRzIiwiQ29sb3JMZWdlbmRGYWN0b3J5IiwiQ29sb3JMZWdlbmQiLCJfcmVmNSIsIm9uVXBkYXRlQ29sb3JMZWdlbmQiLCJfcmVmNSRkaXNwbGF5TGFiZWwiLCJfcmVmNSRkaXNhYmxlRWRpdCIsIl9yZWY2IiwibGVnZW5kcyIsIm5ld1ZhbHVlIiwiXyIsInJlc3QiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwibGVnZW5kIiwia2V5IiwidW5kZWZpbmVkIiwiUmVhY3QiLCJtZW1vIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9jb2xvci1sZWdlbmQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7Y3NzfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7U0NBTEVfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7Q29sb3JSYW5nZSwgSGV4Q29sb3IsIE1hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIGdldExheWVyQ29sb3JTY2FsZSxcbiAgZ2V0TGVnZW5kT2ZTY2FsZSxcbiAgZ2V0VmlzdWFsQ2hhbm5lbFNjYWxlQnlab29tLFxuICBjb2xvck1hcFRvQ2F0ZWdvcmljYWxDb2xvckJyZWFrcyxcbiAgaXNPYmplY3Rcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCB7UmVzZXR9IGZyb20gJy4vaWNvbnMnO1xuaW1wb3J0IHtJbmxpbmVJbnB1dH0gZnJvbSAnLi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmNvbnN0IFJPV19IID0gMTU7XG5jb25zdCBHQVAgPSAyO1xuY29uc3QgUkVDVF9XID0gMjA7XG5cbmNvbnN0IHN0b3BDbGlja1Byb3BhZ2F0aW9uID0gZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpO1xuXG5jb25zdCBpbnB1dENzcyA9IGNzc2BcbiAgaW5wdXQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5gO1xuY29uc3QgU3R5bGVkTGVnZW5kID0gc3R5bGVkLmRpdjx7ZGlzYWJsZUVkaXQ6IGJvb2xlYW47IGlzRXhwYW5kZWQ/OiBib29sZWFufT5gXG4gICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2lkZVBhbmVsU2Nyb2xsQmFyfTtcbiAgJHtwcm9wcyA9PiAocHJvcHMuaXNFeHBhbmRlZCA/ICcnIDogYG1heC1oZWlnaHQ6IDE1NnB4O2ApfTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206ICR7R0FQfXB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXJvdy1nYXA6ICR7R0FQfXB4O1xuICBwYWRkaW5nOiAycHggMDtcblxuICAke3Byb3BzID0+IChwcm9wcy5kaXNhYmxlRWRpdCA/IGlucHV0Q3NzIDogJycpfVxuYDtcblxuY29uc3QgU3R5bGVkTGVnZW5kUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAyMHB4O1xuYDtcblxuZXhwb3J0IGZ1bmN0aW9uIFJlc2V0Q29sb3JMYWJlbEZhY3RvcnkoKSB7XG4gIHJldHVybiBzdHlsZWQoUmVzZXQpYFxuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3JMVH07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEhlYWRlckljb25Ib3Zlcn07XG4gICAgfVxuICBgO1xufVxuXG5jb25zdCBTdHlsZUlubGluZUlucHV0ID0gc3R5bGVkKElubGluZUlucHV0KWBcbiAgZm9udC1zaXplOiA5LjVweDtcbiAgbGluZS1oZWlnaHQ6ICR7Uk9XX0h9cHg7XG4gIGhlaWdodDogJHtST1dfSH1weDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgd2lkdGg6IHVuc2V0O1xuICBwYWRkaW5nOiAycHg7XG4gIGZsZXg6IDE7XG4gIG1hcmdpbjogMCAke0dBUH1weDtcbiAgOmhvdmVyIHtcbiAgICBoZWlnaHQ6ICR7Uk9XX0h9cHg7XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIExlZ2VuZFJvd0VkaXRvclByb3BzID0ge1xuICBjb2xvcjogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBjdXN0b21MYWJlbD86IHN0cmluZztcbiAgb25FZGl0OiAobmV3VmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBMZWdlbmRSb3dFZGl0b3JGYWN0b3J5KCkge1xuICBjb25zdCBMZWdlbmRSb3dFZGl0b3I6IFJlYWN0LkZDPExlZ2VuZFJvd0VkaXRvclByb3BzPiA9ICh7XG4gICAgY29sb3IsXG4gICAgbGFiZWwsXG4gICAgb25FZGl0LFxuICAgIGRpc2FibGVkID0gZmFsc2VcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soZXZlbnQgPT4gb25FZGl0KGV2ZW50LnRhcmdldC52YWx1ZSksIFtvbkVkaXRdKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlSW5saW5lSW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBjbGFzc05hbWU9XCJsZWdlbmRfX2xhYmVsX190aXRsZV9fZWRpdG9yXCJcbiAgICAgICAgdmFsdWU9e2xhYmVsfVxuICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGlkPXtgJHtjb2xvcn06aW5wdXQtbGVnZW5kLWxhYmVsYH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICBMZWdlbmRSb3dFZGl0b3IuZGlzcGxheU5hbWUgPSAnTGVnZW5kUm93RWRpdG9yJztcbiAgcmV0dXJuIExlZ2VuZFJvd0VkaXRvcjtcbn1cblxuY29uc3QgTGVnZW5kUm93U3R5bGUgPSB7XG4gIHdpZHRoOiBgJHtSRUNUX1d9cHhgLFxuICBoZWlnaHQ6IGAke1JPV19IfXB4YFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIExlZ2VuZENvbG9yRGlzcGxheUZhY3RvcnkoKSB7XG4gIGNvbnN0IExlZ2VuZENvbG9yRGlzcGxheSA9ICh7Y29sb3J9KSA9PiB7XG4gICAgY29uc3Qgc3R5bGUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHsuLi5MZWdlbmRSb3dTdHlsZSwgYmFja2dyb3VuZENvbG9yOiBjb2xvciwgbWFyZ2luUmlnaHQ6IGAke0dBUH1weGB9KSxcbiAgICAgIFtjb2xvcl1cbiAgICApO1xuICAgIHJldHVybiA8ZGl2IHN0eWxlPXtzdHlsZX0gY2xhc3NOYW1lPVwibGVnZW5kLXJvdy1jb2xvclwiIC8+O1xuICB9O1xuXG4gIHJldHVybiBMZWdlbmRDb2xvckRpc3BsYXk7XG59XG5cbmNvbnN0IFN0eWxlZExhYmVsID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICBwYWRkaW5nLWxlZnQ6IDJweDtcbmA7XG5cbmV4cG9ydCB0eXBlIExlZ2VuZFJvd1Byb3BzID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBjdXN0b21MYWJlbD86IHN0cmluZztcbiAgZGlzcGxheUxhYmVsPzogYm9vbGVhbjtcbiAgY29sb3I6IHN0cmluZztcbiAgb25VcGRhdGVMYWJlbD86IChzZWxlY3RlZENvbG9yOiBzdHJpbmcsIG5ld0xhYmVsOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uUmVzZXRMYWJlbD86IChjb2xvcjogc3RyaW5nKSA9PiB2b2lkO1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG59O1xuXG5MZWdlbmRSb3dGYWN0b3J5LmRlcHMgPSBbTGVnZW5kQ29sb3JEaXNwbGF5RmFjdG9yeSwgTGVnZW5kUm93RWRpdG9yRmFjdG9yeSwgUmVzZXRDb2xvckxhYmVsRmFjdG9yeV07XG5leHBvcnQgZnVuY3Rpb24gTGVnZW5kUm93RmFjdG9yeShcbiAgTGVnZW5kQ29sb3JEaXNwbGF5OiBSZXR1cm5UeXBlPHR5cGVvZiBMZWdlbmRDb2xvckRpc3BsYXlGYWN0b3J5PixcbiAgTGVnZW5kUm93RWRpdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBMZWdlbmRSb3dFZGl0b3JGYWN0b3J5PixcbiAgUmVzZXRDb2xvckxhYmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBSZXNldENvbG9yTGFiZWxGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExlZ2VuZFJvdzogUmVhY3QuRkM8TGVnZW5kUm93UHJvcHM+ID0gKHtcbiAgICBsYWJlbCA9ICcnLFxuICAgIGRpc3BsYXlMYWJlbCxcbiAgICBjb2xvcixcbiAgICBvblVwZGF0ZUxhYmVsLFxuICAgIG9uUmVzZXRMYWJlbFxuICB9KSA9PiB7XG4gICAgY29uc3Qgb25FZGl0ID0gdXNlQ2FsbGJhY2soXG4gICAgICBuZXdMYWJlbCA9PiBvblVwZGF0ZUxhYmVsICYmIG9uVXBkYXRlTGFiZWwoY29sb3IsIG5ld0xhYmVsKSxcbiAgICAgIFtjb2xvciwgb25VcGRhdGVMYWJlbF1cbiAgICApO1xuICAgIGNvbnN0IG9uUmVzZXQgPSB1c2VDYWxsYmFjaygoKSA9PiBvblJlc2V0TGFiZWwgJiYgb25SZXNldExhYmVsKGNvbG9yKSwgW2NvbG9yLCBvblJlc2V0TGFiZWxdKTtcbiAgICBjb25zdCB2YWx1ZSA9IGRpc3BsYXlMYWJlbCA/IGxhYmVsLnRvU3RyaW5nKCkgOiAnJztcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZExlZ2VuZFJvdz5cbiAgICAgICAgPExlZ2VuZENvbG9yRGlzcGxheSBjb2xvcj17Y29sb3J9IC8+XG4gICAgICAgIHtvblVwZGF0ZUxhYmVsID8gKFxuICAgICAgICAgIDxMZWdlbmRSb3dFZGl0b3IgZGlzYWJsZWQ9eyFvblVwZGF0ZUxhYmVsfSBsYWJlbD17dmFsdWV9IGNvbG9yPXtjb2xvcn0gb25FZGl0PXtvbkVkaXR9IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFN0eWxlZExhYmVsPnt2YWx1ZX08L1N0eWxlZExhYmVsPlxuICAgICAgICApfVxuICAgICAgICB7b25SZXNldExhYmVsID8gPFJlc2V0Q29sb3JMYWJlbCBvbkNsaWNrPXtvblJlc2V0fSBoZWlnaHQ9XCIxNnB4XCIgLz4gOiBudWxsfVxuICAgICAgPC9TdHlsZWRMZWdlbmRSb3c+XG4gICAgKTtcbiAgfTtcbiAgTGVnZW5kUm93LmRpc3BsYXlOYW1lID0gJ0xlZ2VuZFJvdyc7XG4gIHJldHVybiBMZWdlbmRSb3c7XG59XG5cbmNvbnN0IG92ZXJyaWRlQ29sb3JMZWdlbmRzID0gKGNvbG9yTGVnZW5kcywgb3ZlcnJpZGVzKSA9PiB7XG4gIGNvbnN0IHtkYXRhLCBsYWJlbHN9ID0gb3ZlcnJpZGVzO1xuXG4gIGNvbnN0IG5ld0NvbG9yTGVnZW5kcyA9IFsuLi5jb2xvckxlZ2VuZHNdO1xuXG4gIGRhdGEuZm9yRWFjaCgoZGF0dW0sIGluZGV4KSA9PiB7XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gY29sb3JMZWdlbmRzLmZpbmRJbmRleChkID0+IGQuZGF0YSA9PT0gZGF0dW0pO1xuICAgIGlmIChjdXJyZW50SW5kZXggIT09IC0xKSB7XG4gICAgICBuZXdDb2xvckxlZ2VuZHNbY3VycmVudEluZGV4XSA9IHtcbiAgICAgICAgbGFiZWw6IGxhYmVsc1tpbmRleF0sXG4gICAgICAgIGRhdGE6IGRhdHVtLFxuICAgICAgICBvdmVycmlkZTogdHJ1ZVxuICAgICAgfTtcbiAgICAgIG5ld0NvbG9yTGVnZW5kc1tjdXJyZW50SW5kZXhdLmxhYmVsID0gbGFiZWxzW2luZGV4XTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3Q29sb3JMZWdlbmRzLnB1c2goe1xuICAgICAgICBkYXRhOiBkYXR1bSxcbiAgICAgICAgbGFiZWw6IGxhYmVsc1tpbmRleF0sXG4gICAgICAgIG92ZXJyaWRlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBuZXdDb2xvckxlZ2VuZHM7XG59O1xuXG50eXBlIE92ZXJyaWRlQnlDdXN0b21MZWdlbmRPcHRpb25zID0ge1xuICAvKipcbiAgICogTGVnZW5kIHBhcmFtZXRlcnMgdG8gb3ZlcnJpZGVcbiAgICovXG4gIGNvbG9yTGVnZW5kcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIC8qKlxuICAgKiBPcmlnaW5hbCBMZWdlbmRzXG4gICAqL1xuICBjdXJyZW50TGVnZW5kcz86IFJldHVyblR5cGU8dHlwZW9mIGdldExlZ2VuZE9mU2NhbGU+O1xufTtcblxuLyoqXG4gKiBPdmVycmlkZXMgbGVnZW5kIGxhYmVscyB3aXRoIGNvbG9yIGxlZ2VuZHMuXG4gKiBAcGFyYW0gcGFyYW0wIExlZ2VuZCBpbmZvIGFuZCBvdmVycmlkZSBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgT3JpZ2luYWwgb3Igb3ZlcnJpZGVuIGxlbmVuZHMuXG4gKi9cbmZ1bmN0aW9uIG92ZXJyaWRlQnlDdXN0b21MZWdlbmQoe2NvbG9yTGVnZW5kcywgY3VycmVudExlZ2VuZHN9OiBPdmVycmlkZUJ5Q3VzdG9tTGVnZW5kT3B0aW9ucykge1xuICBpZiAoY29sb3JMZWdlbmRzICYmIGlzT2JqZWN0KGNvbG9yTGVnZW5kcykpIHtcbiAgICAvLyBvdmVycmlkZSBsYWJlbHMgd2l0aCBjb2xvciBsZWdlbmRzXG4gICAgY29uc3QgZGF0YSA9IE9iamVjdC5rZXlzKGNvbG9yTGVnZW5kcyk7XG4gICAgY29uc3QgbGFiZWxzID0gT2JqZWN0LnZhbHVlcyhjb2xvckxlZ2VuZHMpO1xuXG4gICAgcmV0dXJuIG92ZXJyaWRlQ29sb3JMZWdlbmRzKGN1cnJlbnRMZWdlbmRzLCB7ZGF0YSwgbGFiZWxzfSk7XG4gIH1cblxuICByZXR1cm4gY3VycmVudExlZ2VuZHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VMYXllckNvbG9yTGVnZW5kcyhcbiAgbGF5ZXI6IENvbG9yTGVnZW5kUHJvcHNbJ2xheWVyJ10sXG4gIHNjYWxlVHlwZTogQ29sb3JMZWdlbmRQcm9wc1snc2NhbGVUeXBlJ10sXG4gIGRvbWFpbjogQ29sb3JMZWdlbmRQcm9wc1snZG9tYWluJ10sXG4gIHJhbmdlOiBDb2xvckxlZ2VuZFByb3BzWydyYW5nZSddLFxuICBpc0ZpeGVkOiBDb2xvckxlZ2VuZFByb3BzWydpc0ZpeGVkJ10sXG4gIGZpZWxkVHlwZTogQ29sb3JMZWdlbmRQcm9wc1snZmllbGRUeXBlJ10sXG4gIGxhYmVsRm9ybWF0OiBDb2xvckxlZ2VuZFByb3BzWydsYWJlbEZvcm1hdCddLFxuICBtYXBTdGF0ZTogQ29sb3JMZWdlbmRQcm9wc1snbWFwU3RhdGUnXVxuKTogTGVnZW5kW10ge1xuICBjb25zdCBzY2FsZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZ2V0TGF5ZXJDb2xvclNjYWxlKHtyYW5nZSwgZG9tYWluLCBzY2FsZVR5cGUsIGlzRml4ZWQsIGxheWVyfSksXG4gICAgW3JhbmdlLCBkb21haW4sIHNjYWxlVHlwZSwgaXNGaXhlZCwgbGF5ZXJdXG4gICk7XG5cbiAgY29uc3Qgc2NhbGVCeVpvb20gPSB1c2VNZW1vKFxuICAgICgpID0+IGdldFZpc3VhbENoYW5uZWxTY2FsZUJ5Wm9vbSh7c2NhbGUsIGxheWVyLCBtYXBTdGF0ZX0pLFxuICAgIFtzY2FsZSwgbGF5ZXIsIG1hcFN0YXRlXVxuICApO1xuXG4gIGNvbnN0IGN1cnJlbnRMZWdlbmRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHNjYWxlVHlwZSA9PT0gU0NBTEVfVFlQRVMuY3VzdG9tT3JkaW5hbCAmJiByYW5nZT8uY29sb3JNYXApIHtcbiAgICAgIGNvbnN0IGNvbG9yQnJlYWtzID0gY29sb3JNYXBUb0NhdGVnb3JpY2FsQ29sb3JCcmVha3MocmFuZ2UuY29sb3JNYXApO1xuICAgICAgcmV0dXJuIGNvbG9yQnJlYWtzPy5tYXAoY2IgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IGNiLmRhdGEsXG4gICAgICAgICAgbGFiZWw6IEFycmF5LmlzQXJyYXkoY2IubGFiZWwpXG4gICAgICAgICAgICA/IGNiLmxhYmVsLmxlbmd0aCA+IDVcbiAgICAgICAgICAgICAgPyBgJHtjYi5sYWJlbC5sZW5ndGh9IHNlbGVjdGVkYFxuICAgICAgICAgICAgICA6IGNiLmxhYmVsXG4gICAgICAgICAgICA6IGNiLmxhYmVsIHx8ICcnXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGdldExlZ2VuZE9mU2NhbGUoe3NjYWxlOiBzY2FsZUJ5Wm9vbSwgc2NhbGVUeXBlLCBsYWJlbEZvcm1hdCwgZmllbGRUeXBlfSk7XG4gIH0sIFtyYW5nZSwgc2NhbGVCeVpvb20sIHNjYWxlVHlwZSwgbGFiZWxGb3JtYXQsIGZpZWxkVHlwZV0pO1xuXG4gIGNvbnN0IExlZ2VuZHNXaXRoQ3VzdG9tTGVnZW5kcyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG92ZXJyaWRlQnlDdXN0b21MZWdlbmQoe1xuICAgICAgICBjb2xvckxlZ2VuZHM6IHJhbmdlPy5jb2xvckxlZ2VuZHMsXG4gICAgICAgIGN1cnJlbnRMZWdlbmRzXG4gICAgICB9KSxcbiAgICBbcmFuZ2U/LmNvbG9yTGVnZW5kcywgY3VycmVudExlZ2VuZHNdXG4gICk7XG5cbiAgcmV0dXJuIExlZ2VuZHNXaXRoQ3VzdG9tTGVnZW5kcyB8fCBbXTtcbn1cblxuZXhwb3J0IHR5cGUgQ29sb3JMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBzY2FsZVR5cGU6IHN0cmluZztcbiAgZG9tYWluOiBudW1iZXJbXSB8IHN0cmluZ1tdO1xuICBmaWVsZFR5cGU/OiBzdHJpbmcgfCBudWxsO1xuICByYW5nZT86IENvbG9yUmFuZ2UgfCBudWxsO1xuICBsYWJlbEZvcm1hdD86IChuOiBhbnkpID0+IHN0cmluZztcbiAgZGlzcGxheUxhYmVsPzogYm9vbGVhbjtcbiAgZGlzYWJsZUVkaXQ/OiBib29sZWFuO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBpc0ZpeGVkPzogYm9vbGVhbjtcbiAgaXNFeHBhbmRlZD86IGJvb2xlYW47XG4gIG9uVXBkYXRlQ29sb3JMZWdlbmQ/OiAoY29sb3JMZWdlbmRzOiB7W2tleTogSGV4Q29sb3JdOiBzdHJpbmd9KSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTGVnZW5kID0ge1xuICBkYXRhOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG92ZXJyaWRlPzogYm9vbGVhbjtcbn07XG5cbkNvbG9yTGVnZW5kRmFjdG9yeS5kZXBzID0gW0xlZ2VuZFJvd0ZhY3RvcnldO1xuZnVuY3Rpb24gQ29sb3JMZWdlbmRGYWN0b3J5KExlZ2VuZFJvdzogUmV0dXJuVHlwZTx0eXBlb2YgTGVnZW5kUm93RmFjdG9yeT4pIHtcbiAgY29uc3QgQ29sb3JMZWdlbmQ6IFJlYWN0LkZDPENvbG9yTGVnZW5kUHJvcHM+ID0gKHtcbiAgICBsYXllcixcbiAgICBpc0ZpeGVkLFxuICAgIGlzRXhwYW5kZWQsXG4gICAgZG9tYWluLFxuICAgIHJhbmdlLFxuICAgIGxhYmVsRm9ybWF0LFxuICAgIHNjYWxlVHlwZSxcbiAgICBmaWVsZFR5cGUsXG4gICAgbWFwU3RhdGUsXG4gICAgb25VcGRhdGVDb2xvckxlZ2VuZCxcbiAgICBkaXNwbGF5TGFiZWwgPSB0cnVlLFxuICAgIGRpc2FibGVFZGl0ID0gZmFsc2VcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtjb2xvckxlZ2VuZHN9ID0gcmFuZ2UgfHwge307XG5cbiAgICBjb25zdCBsZWdlbmRzID0gdXNlTGF5ZXJDb2xvckxlZ2VuZHMoXG4gICAgICBsYXllcixcbiAgICAgIHNjYWxlVHlwZSxcbiAgICAgIGRvbWFpbixcbiAgICAgIHJhbmdlLFxuICAgICAgaXNGaXhlZCxcbiAgICAgIGZpZWxkVHlwZSxcbiAgICAgIGxhYmVsRm9ybWF0LFxuICAgICAgbWFwU3RhdGVcbiAgICApO1xuXG4gICAgY29uc3Qgb25VcGRhdGVMYWJlbCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGNvbG9yLCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICBpZiAob25VcGRhdGVDb2xvckxlZ2VuZCkge1xuICAgICAgICAgIG9uVXBkYXRlQ29sb3JMZWdlbmQoe1xuICAgICAgICAgICAgLi4uY29sb3JMZWdlbmRzLFxuICAgICAgICAgICAgW2NvbG9yXTogbmV3VmFsdWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtvblVwZGF0ZUNvbG9yTGVnZW5kLCBjb2xvckxlZ2VuZHNdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uUmVzZXRMYWJlbCA9IHVzZUNhbGxiYWNrKFxuICAgICAgY29sb3IgPT4ge1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IHtbY29sb3JdOiBfLCAuLi5yZXN0fSA9IGNvbG9yTGVnZW5kcztcbiAgICAgICAgaWYgKG9uVXBkYXRlQ29sb3JMZWdlbmQgJiYgcmVzdCkge1xuICAgICAgICAgIG9uVXBkYXRlQ29sb3JMZWdlbmQocmVzdCk7XG4gICAgICAgIH1cbiAgICAgICAgLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtdmFycyAqL1xuICAgICAgfSxcbiAgICAgIFtvblVwZGF0ZUNvbG9yTGVnZW5kLCBjb2xvckxlZ2VuZHNdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTGVnZW5kXG4gICAgICAgIGNsYXNzTmFtZT1cInN0eWxlZC1jb2xvci1sZWdlbmRcIlxuICAgICAgICBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXR9XG4gICAgICAgIGlzRXhwYW5kZWQ9e2lzRXhwYW5kZWR9XG4gICAgICA+XG4gICAgICAgIHtsZWdlbmRzLm1hcCgobGVnZW5kLCBpKSA9PiAoXG4gICAgICAgICAgPExlZ2VuZFJvd1xuICAgICAgICAgICAga2V5PXtgJHtsZWdlbmQuZGF0YX0tJHtpfWB9XG4gICAgICAgICAgICBsYWJlbD17bGVnZW5kLmxhYmVsfVxuICAgICAgICAgICAgZGlzcGxheUxhYmVsPXtkaXNwbGF5TGFiZWx9XG4gICAgICAgICAgICBjb2xvcj17bGVnZW5kLmRhdGF9XG4gICAgICAgICAgICBvblVwZGF0ZUxhYmVsPXshZGlzYWJsZUVkaXQgPyBvblVwZGF0ZUxhYmVsIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgb25SZXNldExhYmVsPXtsZWdlbmQub3ZlcnJpZGUgJiYgIWRpc2FibGVFZGl0ID8gb25SZXNldExhYmVsIDogdW5kZWZpbmVkfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9TdHlsZWRMZWdlbmQ+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUmVhY3QubWVtbyhDb2xvckxlZ2VuZCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbG9yTGVnZW5kRmFjdG9yeTtcbiJdLCJt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