@kepler.gl/components 3.3.0-alpha.0 → 3.3.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/dist/annotations/annotation-node.d.ts +11 -0
  2. package/dist/annotations/annotation-node.js +145 -0
  3. package/dist/annotations/annotation-overlay.d.ts +16 -0
  4. package/dist/annotations/annotation-overlay.js +166 -0
  5. package/dist/annotations/annotation-panel.d.ts +24 -0
  6. package/dist/annotations/annotation-panel.js +362 -0
  7. package/dist/annotations/annotation-text.d.ts +16 -0
  8. package/dist/annotations/annotation-text.js +150 -0
  9. package/dist/annotations/annotation-utils.d.ts +39 -0
  10. package/dist/annotations/annotation-utils.js +156 -0
  11. package/dist/annotations/index.d.ts +7 -0
  12. package/dist/annotations/index.js +53 -0
  13. package/dist/annotations/lexical-editor/clickable-link-plugin.d.ts +3 -0
  14. package/dist/annotations/lexical-editor/clickable-link-plugin.js +71 -0
  15. package/dist/annotations/lexical-editor/floating-link-editor.d.ts +1 -0
  16. package/dist/annotations/lexical-editor/floating-link-editor.js +194 -0
  17. package/dist/annotations/lexical-editor/index.d.ts +7 -0
  18. package/dist/annotations/lexical-editor/index.js +78 -0
  19. package/dist/annotations/lexical-editor/lexical-constants.d.ts +12 -0
  20. package/dist/annotations/lexical-editor/lexical-constants.js +22 -0
  21. package/dist/annotations/lexical-editor/lexical-nodes.d.ts +3 -0
  22. package/dist/annotations/lexical-editor/lexical-nodes.js +13 -0
  23. package/dist/annotations/lexical-editor/lexical-rich-text-editor.d.ts +15 -0
  24. package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +122 -0
  25. package/dist/annotations/lexical-editor/lexical-theme.d.ts +15 -0
  26. package/dist/annotations/lexical-editor/lexical-theme.js +25 -0
  27. package/dist/annotations/lexical-editor/lexical-toolbar.d.ts +7 -0
  28. package/dist/annotations/lexical-editor/lexical-toolbar.js +293 -0
  29. package/dist/annotations/lexical-editor/lexical-utils.d.ts +4 -0
  30. package/dist/annotations/lexical-editor/lexical-utils.js +45 -0
  31. package/dist/annotations/lexical-editor/use-lexical-toolbar.d.ts +36 -0
  32. package/dist/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
  33. package/dist/bottom-widget.d.ts +1 -1
  34. package/dist/bottom-widget.js +12 -6
  35. package/dist/common/action-panel.js +1 -1
  36. package/dist/common/animation-control/animation-control.d.ts +1 -0
  37. package/dist/common/animation-control/animation-control.js +3 -1
  38. package/dist/common/animation-control/animation-controller.js +8 -6
  39. package/dist/common/animation-control/export-video-control.d.ts +9 -0
  40. package/dist/common/animation-control/export-video-control.js +43 -0
  41. package/dist/common/animation-control/playback-controls.d.ts +4 -2
  42. package/dist/common/animation-control/playback-controls.js +7 -4
  43. package/dist/common/checkbox.d.ts +5 -21
  44. package/dist/common/checkbox.js +58 -70
  45. package/dist/common/color-legend.d.ts +1 -1
  46. package/dist/common/color-legend.js +3 -3
  47. package/dist/common/data-table/canvas.d.ts +1 -1
  48. package/dist/common/data-table/index.d.ts +2 -2
  49. package/dist/common/data-table/index.js +3 -3
  50. package/dist/common/dnd-layer-items.d.ts +4 -0
  51. package/dist/common/dnd-layer-items.js +6 -2
  52. package/dist/common/error-boundary.d.ts +1 -1
  53. package/dist/common/file-uploader/file-upload.d.ts +1 -1
  54. package/dist/common/file-uploader/file-upload.js +4 -4
  55. package/dist/common/flex-container.d.ts +15 -7
  56. package/dist/common/histogram-plot.js +102 -53
  57. package/dist/common/icon-button.d.ts +53 -6
  58. package/dist/common/icons/3d-models/airplane.d.ts +14 -0
  59. package/dist/common/icons/3d-models/airplane.js +104 -0
  60. package/dist/common/icons/3d-models/bicycle.d.ts +14 -0
  61. package/dist/common/icons/3d-models/bicycle.js +426 -0
  62. package/dist/common/icons/3d-models/boeing.d.ts +14 -0
  63. package/dist/common/icons/3d-models/boeing.js +119 -0
  64. package/dist/common/icons/3d-models/car.d.ts +14 -0
  65. package/dist/common/icons/3d-models/car.js +110 -0
  66. package/dist/common/icons/3d-models/cargoship.d.ts +14 -0
  67. package/dist/common/icons/3d-models/cargoship.js +246 -0
  68. package/dist/common/icons/3d-models/evtol.d.ts +14 -0
  69. package/dist/common/icons/3d-models/evtol.js +134 -0
  70. package/dist/common/icons/3d-models/glider.d.ts +14 -0
  71. package/dist/common/icons/3d-models/glider.js +62 -0
  72. package/dist/common/icons/3d-models/helicopter.d.ts +14 -0
  73. package/dist/common/icons/3d-models/helicopter.js +110 -0
  74. package/dist/common/icons/3d-models/scooter.d.ts +14 -0
  75. package/dist/common/icons/3d-models/scooter.js +159 -0
  76. package/dist/common/icons/3d-models/semitruck.d.ts +14 -0
  77. package/dist/common/icons/3d-models/semitruck.js +177 -0
  78. package/dist/common/icons/3d-models/truck.d.ts +14 -0
  79. package/dist/common/icons/3d-models/truck.js +122 -0
  80. package/dist/common/icons/anchor_window.d.ts +1 -8
  81. package/dist/common/icons/anchor_window.js +17 -10
  82. package/dist/common/icons/annotation-text.d.ts +9 -0
  83. package/dist/common/icons/annotation-text.js +56 -0
  84. package/dist/common/icons/arrow-down-full.d.ts +2 -1
  85. package/dist/common/icons/arrow-down-full.js +1 -1
  86. package/dist/common/icons/folder.d.ts +10 -0
  87. package/dist/common/icons/folder.js +51 -0
  88. package/dist/common/icons/index.d.ts +2 -0
  89. package/dist/common/icons/index.js +15 -1
  90. package/dist/common/icons/timeline-marker.d.ts +2 -1
  91. package/dist/common/icons/timeline-marker.js +1 -1
  92. package/dist/common/item-selector/chickleted-input.d.ts +1 -1
  93. package/dist/common/item-selector/chickleted-input.js +5 -5
  94. package/dist/common/item-selector/dropdown-list.d.ts +1 -1
  95. package/dist/common/item-selector/dropdown-list.js +1 -1
  96. package/dist/common/item-selector/dropdown-select.d.ts +13 -7
  97. package/dist/common/item-selector/item-selector.d.ts +1 -1
  98. package/dist/common/item-selector/item-selector.js +1 -1
  99. package/dist/common/item-selector/typeahead.d.ts +4 -4
  100. package/dist/common/item-selector/typeahead.js +1 -3
  101. package/dist/common/layout-splitter.d.ts +45 -0
  102. package/dist/common/layout-splitter.js +231 -0
  103. package/dist/common/line-chart.d.ts +10 -3
  104. package/dist/common/line-chart.js +219 -52
  105. package/dist/common/modal.d.ts +11 -5
  106. package/dist/common/modal.js +1 -1
  107. package/dist/common/portaled.d.ts +17 -17
  108. package/dist/common/range-plot.js +4 -2
  109. package/dist/common/range-slider.d.ts +2 -0
  110. package/dist/common/range-slider.js +108 -45
  111. package/dist/common/slider/mouse-event.d.ts +1 -1
  112. package/dist/common/slider/mouse-event.js +1 -2
  113. package/dist/common/slider/slider-bar-handle.d.ts +1 -1
  114. package/dist/common/slider/slider-bar-handle.js +1 -1
  115. package/dist/common/slider/slider-handle.d.ts +3 -3
  116. package/dist/common/slider/slider-handle.js +1 -1
  117. package/dist/common/slider/slider.d.ts +8 -4
  118. package/dist/common/slider/slider.js +78 -35
  119. package/dist/common/styled-components.d.ts +628 -178
  120. package/dist/common/styled-components.js +2 -2
  121. package/dist/common/time-range-slider-time-title.d.ts +1 -1
  122. package/dist/common/time-range-slider-time-title.js +5 -5
  123. package/dist/common/time-range-slider.d.ts +2 -1
  124. package/dist/common/time-range-slider.js +19 -7
  125. package/dist/common/timeline-helpers.d.ts +3 -0
  126. package/dist/common/timeline-helpers.js +57 -0
  127. package/dist/common/timeline-slider.js +21 -12
  128. package/dist/common/toolbar-item.js +5 -5
  129. package/dist/common/toolbar.d.ts +1 -1
  130. package/dist/common/toolbar.js +4 -4
  131. package/dist/common/vertical-toolbar.d.ts +13 -3
  132. package/dist/container.d.ts +3 -2
  133. package/dist/container.js +2 -2
  134. package/dist/context.d.ts +1 -1
  135. package/dist/context.js +1 -1
  136. package/dist/dnd-context.d.ts +4 -3
  137. package/dist/dnd-context.js +64 -9
  138. package/dist/effects/compact-color-picker.d.ts +1 -1
  139. package/dist/effects/effect-configurator.d.ts +5 -6
  140. package/dist/effects/effect-configurator.js +213 -52
  141. package/dist/effects/effect-manager.js +3 -3
  142. package/dist/effects/effect-panel-header.js +34 -17
  143. package/dist/effects/effect-panel.d.ts +4 -4
  144. package/dist/effects/effect-panel.js +61 -86
  145. package/dist/effects/effect-time-configurator.js +10 -10
  146. package/dist/effects/effect-type-dropdown-list.d.ts +1 -0
  147. package/dist/effects/effect-type-dropdown-list.js +1 -1
  148. package/dist/effects/effect-type-list-item.d.ts +2 -1
  149. package/dist/effects/effect-type-list-item.js +23 -7
  150. package/dist/effects/effect-type-selector.d.ts +1 -0
  151. package/dist/effects/effect-type-selector.js +2 -2
  152. package/dist/effects/surface-fog-section.d.ts +14 -0
  153. package/dist/effects/surface-fog-section.js +263 -0
  154. package/dist/filters/components.d.ts +7 -5
  155. package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +6 -2
  156. package/dist/filters/index.d.ts +1 -0
  157. package/dist/filters/index.js +8 -1
  158. package/dist/filters/polygon-filter.js +2 -2
  159. package/dist/filters/time-range-filter.js +3 -1
  160. package/dist/filters/time-widget-settings.d.ts +14 -0
  161. package/dist/filters/time-widget-settings.js +312 -0
  162. package/dist/filters/time-widget-top.d.ts +2 -3
  163. package/dist/filters/time-widget-top.js +32 -39
  164. package/dist/filters/time-widget.d.ts +3 -2
  165. package/dist/filters/time-widget.js +285 -9
  166. package/dist/filters/types.d.ts +3 -3
  167. package/dist/filters/types.js +1 -1
  168. package/dist/geocoder/geocoder.d.ts +4 -1
  169. package/dist/geocoder/geocoder.js +61 -14
  170. package/dist/geocoder-panel.d.ts +3 -2
  171. package/dist/geocoder-panel.js +11 -8
  172. package/dist/hooks/use-dnd-layers.d.ts +4 -3
  173. package/dist/hooks/use-dnd-layers.js +103 -42
  174. package/dist/index.d.ts +17 -2
  175. package/dist/index.js +161 -9
  176. package/dist/injector.d.ts +1 -1
  177. package/dist/kepler-gl.d.ts +179 -27
  178. package/dist/kepler-gl.js +91 -12
  179. package/dist/loading-indicator.d.ts +3 -1
  180. package/dist/loading-indicator.js +6 -3
  181. package/dist/map/annotations/annotation-control.d.ts +16 -0
  182. package/dist/map/annotations/annotation-control.js +56 -0
  183. package/dist/map/layer-hover-info.d.ts +7 -3
  184. package/dist/map/layer-hover-info.js +124 -55
  185. package/dist/map/locale-panel.d.ts +1 -1
  186. package/dist/map/locale-panel.js +2 -2
  187. package/dist/map/map-control-panel.js +3 -2
  188. package/dist/map/map-control-toolbar.d.ts +33 -8
  189. package/dist/map/map-control.d.ts +14 -4
  190. package/dist/map/map-control.js +18 -8
  191. package/dist/map/map-draw-panel.d.ts +1 -1
  192. package/dist/map/map-draw-panel.js +7 -4
  193. package/dist/map/map-legend-panel.d.ts +11 -2
  194. package/dist/map/map-legend-panel.js +25 -8
  195. package/dist/map/map-legend.d.ts +20 -3
  196. package/dist/map/map-legend.js +145 -31
  197. package/dist/map/map-navigation-control.d.ts +13 -0
  198. package/dist/map/map-navigation-control.js +143 -0
  199. package/dist/map/map-popover.js +2 -2
  200. package/dist/map/split-map-button.d.ts +6 -1
  201. package/dist/map/split-map-button.js +113 -19
  202. package/dist/map-container.d.ts +13 -3
  203. package/dist/map-container.js +269 -59
  204. package/dist/map-view-state-context.d.ts +1 -0
  205. package/dist/map-view-state-context.js +1 -1
  206. package/dist/maps-layout.d.ts +3 -0
  207. package/dist/maps-layout.js +86 -26
  208. package/dist/modal-container.d.ts +3 -2
  209. package/dist/modal-container.js +28 -6
  210. package/dist/modals/add-map-style-modal.js +173 -200
  211. package/dist/modals/cloud-tile.d.ts +1 -2
  212. package/dist/modals/data-table-modal.d.ts +1 -1
  213. package/dist/modals/data-table-modal.js +146 -194
  214. package/dist/modals/export-data-modal.js +117 -139
  215. package/dist/modals/export-map-modal/components.d.ts +9 -5
  216. package/dist/modals/export-video-modal.d.ts +28 -0
  217. package/dist/modals/export-video-modal.js +371 -0
  218. package/dist/modals/export-video-modal.spec.d.ts +1 -0
  219. package/dist/modals/export-video-modal.spec.js +686 -0
  220. package/dist/modals/fog-height-animation.d.ts +8 -0
  221. package/dist/modals/fog-height-animation.js +97 -0
  222. package/dist/modals/hubble-utils.d.ts +41 -0
  223. package/dist/modals/hubble-utils.js +294 -0
  224. package/dist/modals/hubble-utils.spec.d.ts +1 -0
  225. package/dist/modals/hubble-utils.spec.js +397 -0
  226. package/dist/modals/modal-dialog.d.ts +1 -1
  227. package/dist/modals/share-map-modal.d.ts +2 -4
  228. package/dist/modals/swipe-composite-utils.d.ts +10 -0
  229. package/dist/modals/swipe-composite-utils.js +108 -0
  230. package/dist/modals/swipe-export-settings.d.ts +24 -0
  231. package/dist/modals/swipe-export-settings.js +370 -0
  232. package/dist/modals/swipe-export-video-container.d.ts +122 -0
  233. package/dist/modals/swipe-export-video-container.js +630 -0
  234. package/dist/modals/swipe-export-video-preview.d.ts +68 -0
  235. package/dist/modals/swipe-export-video-preview.js +339 -0
  236. package/dist/modals/tilesets-modals/load-data-footer.js +2 -2
  237. package/dist/modals/tilesets-modals/load-tileset.js +21 -10
  238. package/dist/modals/tilesets-modals/tileset-bitmap-form.d.ts +14 -0
  239. package/dist/modals/tilesets-modals/tileset-bitmap-form.js +284 -0
  240. package/dist/modals/tilesets-modals/tileset-raster-form.js +90 -11
  241. package/dist/modals/tilesets-modals/tileset-tile3d-form.js +3 -2
  242. package/dist/modals/tilesets-modals/tileset-vector-form.js +58 -4
  243. package/dist/modals/tilesets-modals/tileset-wms-form.js +4 -3
  244. package/dist/notification-panel/notification-item.d.ts +1 -53
  245. package/dist/notification-panel/notification-item.js +47 -75
  246. package/dist/notification-panel.d.ts +1 -1
  247. package/dist/notification-panel.js +20 -42
  248. package/dist/plot-container.js +7 -6
  249. package/dist/side-panel/add-by-dataset-button.js +3 -3
  250. package/dist/side-panel/common/dataset-info.js +2 -2
  251. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +7 -3
  252. package/dist/side-panel/interaction-panel/geocoder-config.d.ts +11 -0
  253. package/dist/side-panel/interaction-panel/geocoder-config.js +45 -0
  254. package/dist/side-panel/interaction-panel/interaction-panel.d.ts +3 -2
  255. package/dist/side-panel/interaction-panel/interaction-panel.js +10 -3
  256. package/dist/side-panel/layer-manager.d.ts +5 -4
  257. package/dist/side-panel/layer-manager.js +26 -6
  258. package/dist/side-panel/layer-panel/color-scale-selector.d.ts +1 -1
  259. package/dist/side-panel/layer-panel/color-scale-selector.js +1 -1
  260. package/dist/side-panel/layer-panel/color-selector.d.ts +6 -4
  261. package/dist/side-panel/layer-panel/custom-palette.d.ts +3 -5
  262. package/dist/side-panel/layer-panel/custom-palette.js +5 -5
  263. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +2 -1
  264. package/dist/side-panel/layer-panel/dataset-layer-group.js +1 -1
  265. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +2 -1
  266. package/dist/side-panel/layer-panel/dataset-layer-section.js +19 -3
  267. package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -11
  268. package/dist/side-panel/layer-panel/layer-configurator.d.ts +4 -2
  269. package/dist/side-panel/layer-panel/layer-configurator.js +450 -76
  270. package/dist/side-panel/layer-panel/layer-group-header.d.ts +15 -0
  271. package/dist/side-panel/layer-panel/layer-group-header.js +179 -0
  272. package/dist/side-panel/layer-panel/layer-list.d.ts +9 -4
  273. package/dist/side-panel/layer-panel/layer-list.js +197 -40
  274. package/dist/side-panel/layer-panel/layer-panel-header.js +2 -2
  275. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +1 -1
  276. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +127 -27
  277. package/dist/side-panel/layer-panel/scenegraph-model-selector.d.ts +24 -0
  278. package/dist/side-panel/layer-panel/scenegraph-model-selector.js +123 -0
  279. package/dist/side-panel/layer-panel/text-label-panel.d.ts +1 -1
  280. package/dist/side-panel/layer-panel/text-label-panel.js +11 -2
  281. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +1 -1
  282. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +2 -10
  283. package/dist/side-panel/layer-panel/vis-config-slider.d.ts +2 -0
  284. package/dist/side-panel/layer-panel/vis-config-slider.js +7 -3
  285. package/dist/side-panel/panel-header.d.ts +1 -0
  286. package/dist/side-panel/panel-header.js +9 -2
  287. package/dist/side-panel/panel-tab.d.ts +2 -4
  288. package/dist/side-panel/panel-tab.js +4 -4
  289. package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
  290. package/dist/side-panel/side-bar.d.ts +1 -6
  291. package/dist/side-panel.d.ts +1 -1
  292. package/dist/side-panel.js +5 -1
  293. package/dist/types.d.ts +2 -2
  294. package/dist/types.js +1 -1
  295. package/package.json +53 -48
  296. package/dist/map/layer-selector-panel.d.ts +0 -21
  297. package/dist/map/layer-selector-panel.js +0 -85
  298. package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +0 -11
  299. package/dist/side-panel/layer-panel/radius-by-zoom-input.js +0 -220
@@ -0,0 +1,293 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.LexicalToolbar = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
+ var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
14
+ var _lexicalConstants = require("./lexical-constants");
15
+ var _useLexicalToolbar = require("./use-lexical-toolbar");
16
+ var _singleColorPalette = _interopRequireDefault(require("../../side-panel/layer-panel/single-color-palette"));
17
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12; // SPDX-License-Identifier: MIT
18
+ // Copyright contributors to the kepler.gl project
19
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
21
+ var ToolbarContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 4px 0;\n"])));
22
+ var ToolbarRow = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n gap: 2px;\n flex-wrap: wrap;\n"])));
23
+ var ToolbarDivider = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n height: 20px;\n width: 0;\n border-left: 1px solid rgba(255, 255, 255, 0.3);\n margin: 0 4px;\n"])));
24
+ var ToolbarSelect = _styledComponents["default"].select(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n background: rgba(255, 255, 255, 0.1);\n color: #fff;\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 3px;\n padding: 2px 4px;\n font-size: 11px;\n cursor: pointer;\n max-width: 90px;\n &:focus {\n outline: none;\n border-color: rgba(255, 255, 255, 0.5);\n }\n"])));
25
+ var ToolbarButton = _styledComponents["default"].button(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n background: ", ";\n color: #fff;\n border: none;\n border-radius: 3px;\n padding: 3px 6px;\n font-size: 12px;\n cursor: pointer;\n min-width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n &:hover {\n background: rgba(255, 255, 255, 0.15);\n }\n &:disabled {\n opacity: 0.4;\n cursor: default;\n &:hover {\n background: transparent;\n }\n }\n"])), function (props) {
26
+ return props.$active ? 'rgba(255,255,255,0.2)' : 'transparent';
27
+ });
28
+ var ColorSwatch = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n width: 14px;\n height: 14px;\n border-radius: 2px;\n background-color: ", ";\n border: 1px solid rgba(255, 255, 255, 0.3);\n"])), function (props) {
29
+ return props.$color;
30
+ });
31
+ var ColorPickerPopover = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: 4px;\n background: rgba(30, 33, 40, 0.98);\n border-radius: 6px;\n padding: 8px;\n z-index: 20;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 120px;\n"])));
32
+ var ColorPresetRow = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 4px 4px;\n border-radius: 3px;\n cursor: pointer;\n font-size: 11px;\n color: #fff;\n &:hover {\n background: rgba(255, 255, 255, 0.1);\n }\n"])));
33
+ var ColorPresetSwatch = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n height: 16px;\n border-radius: 3px;\n background: ", ";\n border: 1.5px solid ", ";\n flex-shrink: 0;\n"])), function (props) {
34
+ return props.$color;
35
+ }, function (props) {
36
+ return props.$isSelected ? '#fff' : 'rgba(255,255,255,0.3)';
37
+ });
38
+ var CustomPickerWrapper = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n border-top: 1px solid rgba(255, 255, 255, 0.15);\n padding-top: 4px;\n margin-top: 2px;\n"])));
39
+ var SingleColorPaletteWrapper = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: 4px;\n z-index: 30;\n background: ", ";\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);\n border-radius: 6px;\n overflow: hidden;\n width: 220px;\n"])), function (props) {
40
+ return props.theme.panelBackground || 'rgba(30, 33, 40, 0.98)';
41
+ });
42
+ var ColorPickerWrapper = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n"])));
43
+ var ColorPickerButton = function ColorPickerButton(_ref) {
44
+ var color = _ref.color,
45
+ presets = _ref.presets,
46
+ title = _ref.title,
47
+ label = _ref.label,
48
+ renderIcon = _ref.renderIcon,
49
+ onSelectColor = _ref.onSelectColor;
50
+ var _useState = (0, _react.useState)(false),
51
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
52
+ isOpen = _useState2[0],
53
+ setIsOpen = _useState2[1];
54
+ var _useState3 = (0, _react.useState)(false),
55
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
56
+ showCustom = _useState4[0],
57
+ setShowCustom = _useState4[1];
58
+ var wrapperRef = (0, _react.useRef)(null);
59
+ (0, _react.useEffect)(function () {
60
+ if (!isOpen) return;
61
+ var handleClickOutside = function handleClickOutside(e) {
62
+ if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {
63
+ setIsOpen(false);
64
+ setShowCustom(false);
65
+ }
66
+ };
67
+ document.addEventListener('mousedown', handleClickOutside);
68
+ return function () {
69
+ return document.removeEventListener('mousedown', handleClickOutside);
70
+ };
71
+ }, [isOpen]);
72
+ var handleToggle = (0, _react.useCallback)(function () {
73
+ setIsOpen(function (prev) {
74
+ return !prev;
75
+ });
76
+ setShowCustom(false);
77
+ }, []);
78
+ var handlePresetSelect = (0, _react.useCallback)(function (c) {
79
+ onSelectColor(c);
80
+ setIsOpen(false);
81
+ setShowCustom(false);
82
+ }, [onSelectColor]);
83
+ var handleCustomSelect = (0, _react.useCallback)(function (color) {
84
+ if (Array.isArray(color)) {
85
+ var hex = "#".concat(color.map(function (v) {
86
+ return v.toString(16).padStart(2, '0');
87
+ }).join(''));
88
+ onSelectColor(hex);
89
+ }
90
+ setIsOpen(false);
91
+ setShowCustom(false);
92
+ }, [onSelectColor]);
93
+ return /*#__PURE__*/_react["default"].createElement(ColorPickerWrapper, {
94
+ ref: wrapperRef
95
+ }, /*#__PURE__*/_react["default"].createElement(ToolbarButton, {
96
+ onClick: handleToggle,
97
+ title: title
98
+ }, renderIcon ? renderIcon() : /*#__PURE__*/_react["default"].createElement("span", {
99
+ style: {
100
+ fontSize: '10px'
101
+ }
102
+ }, label), /*#__PURE__*/_react["default"].createElement(ColorSwatch, {
103
+ $color: color === 'transparent' ? 'rgba(255,255,255,0.1)' : color,
104
+ style: {
105
+ marginLeft: 4
106
+ }
107
+ })), isOpen && !showCustom && /*#__PURE__*/_react["default"].createElement(ColorPickerPopover, {
108
+ onMouseDown: function onMouseDown(e) {
109
+ return e.preventDefault();
110
+ }
111
+ }, presets.map(function (p) {
112
+ return /*#__PURE__*/_react["default"].createElement(ColorPresetRow, {
113
+ key: p.color,
114
+ onClick: function onClick() {
115
+ return handlePresetSelect(p.color);
116
+ }
117
+ }, /*#__PURE__*/_react["default"].createElement(ColorPresetSwatch, {
118
+ $color: p.color === 'transparent' ? 'repeating-conic-gradient(#808080 0% 25%, transparent 0% 50%) 50% / 8px 8px' : p.color,
119
+ $isSelected: color === p.color,
120
+ style: p.color === 'transparent' ? {
121
+ background: 'repeating-conic-gradient(#606060 0% 25%, #404040 0% 50%) 50% / 8px 8px'
122
+ } : undefined
123
+ }), p.label);
124
+ }), /*#__PURE__*/_react["default"].createElement(CustomPickerWrapper, null, /*#__PURE__*/_react["default"].createElement(ColorPresetRow, {
125
+ onClick: function onClick() {
126
+ return setShowCustom(true);
127
+ }
128
+ }, /*#__PURE__*/_react["default"].createElement(ColorPresetSwatch, {
129
+ $color: "linear-gradient(135deg, #f00, #0f0, #00f)",
130
+ style: {
131
+ background: 'linear-gradient(135deg, #f44, #4f4, #44f)'
132
+ }
133
+ }), "Custom..."))), isOpen && showCustom && /*#__PURE__*/_react["default"].createElement(SingleColorPaletteWrapper, {
134
+ onMouseDown: function onMouseDown(e) {
135
+ return e.preventDefault();
136
+ }
137
+ }, /*#__PURE__*/_react["default"].createElement(_singleColorPalette["default"], {
138
+ selectedColor: color === 'transparent' ? '#000000' : color,
139
+ onSelectColor: handleCustomSelect
140
+ })));
141
+ };
142
+ var FONT_COLOR_PRESETS = [{
143
+ color: '#FFFFFF',
144
+ label: 'White'
145
+ }, {
146
+ color: '#000000',
147
+ label: 'Black'
148
+ }];
149
+ var BG_COLOR_PRESETS = [{
150
+ color: 'transparent',
151
+ label: 'No fill'
152
+ }, {
153
+ color: '#000000',
154
+ label: 'Black'
155
+ }, {
156
+ color: '#FFFFFF',
157
+ label: 'White'
158
+ }];
159
+ var LexicalToolbar = exports.LexicalToolbar = function LexicalToolbar(_ref2) {
160
+ var isEditingText = _ref2.isEditingText,
161
+ textVerticalAlign = _ref2.textVerticalAlign,
162
+ onChangeTextVerticalAlign = _ref2.onChangeTextVerticalAlign;
163
+ var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
164
+ _useLexicalComposerCo2 = (0, _slicedToArray2["default"])(_useLexicalComposerCo, 1),
165
+ editor = _useLexicalComposerCo2[0];
166
+ var _useLexicalTextStyle = (0, _useLexicalToolbar.useLexicalTextStyle)({
167
+ editor: editor,
168
+ isEditingText: Boolean(isEditingText)
169
+ }),
170
+ fontSize = _useLexicalTextStyle.fontSize,
171
+ fontFamily = _useLexicalTextStyle.fontFamily,
172
+ fontColor = _useLexicalTextStyle.fontColor,
173
+ bgColor = _useLexicalTextStyle.bgColor,
174
+ handleChangeStyle = _useLexicalTextStyle.handleChangeStyle;
175
+ var _useLexicalTextFormat = (0, _useLexicalToolbar.useLexicalTextFormat)({
176
+ editor: editor,
177
+ isEditingText: Boolean(isEditingText)
178
+ }),
179
+ isBold = _useLexicalTextFormat.isBold,
180
+ isItalic = _useLexicalTextFormat.isItalic,
181
+ isUnderline = _useLexicalTextFormat.isUnderline,
182
+ handleToggleTextFormat = _useLexicalTextFormat.handleToggleTextFormat;
183
+ var _useInsertLexicalLink = (0, _useLexicalToolbar.useInsertLexicalLink)({
184
+ editor: editor,
185
+ isEditingText: Boolean(isEditingText)
186
+ }),
187
+ isLink = _useInsertLexicalLink.isLink,
188
+ insertLink = _useInsertLexicalLink.insertLink;
189
+ return /*#__PURE__*/_react["default"].createElement(ToolbarContainer, {
190
+ className: "lexical-toolbar",
191
+ onMouseDown: function onMouseDown(e) {
192
+ if (e.target instanceof HTMLSelectElement) return;
193
+ e.preventDefault();
194
+ }
195
+ }, /*#__PURE__*/_react["default"].createElement(ToolbarRow, null, /*#__PURE__*/_react["default"].createElement(ToolbarSelect, {
196
+ value: fontFamily,
197
+ onChange: function onChange(e) {
198
+ return handleChangeStyle('font-family', e.target.value);
199
+ },
200
+ style: {
201
+ marginRight: 2
202
+ }
203
+ }, _lexicalConstants.FONT_FAMILY_OPTIONS.map(function (f) {
204
+ return /*#__PURE__*/_react["default"].createElement("option", {
205
+ key: f,
206
+ value: f
207
+ }, f);
208
+ })), /*#__PURE__*/_react["default"].createElement(ToolbarSelect, {
209
+ value: fontSize,
210
+ onChange: function onChange(e) {
211
+ return handleChangeStyle('font-size', e.target.value);
212
+ }
213
+ }, _lexicalConstants.FONT_SIZE_OPTIONS.map(function (s) {
214
+ return /*#__PURE__*/_react["default"].createElement("option", {
215
+ key: s,
216
+ value: s
217
+ }, s);
218
+ })), /*#__PURE__*/_react["default"].createElement(ToolbarDivider, null), /*#__PURE__*/_react["default"].createElement(ToolbarButton, {
219
+ $active: isBold,
220
+ onClick: function onClick() {
221
+ return handleToggleTextFormat('bold');
222
+ },
223
+ title: "Bold"
224
+ }, /*#__PURE__*/_react["default"].createElement("strong", null, "B")), /*#__PURE__*/_react["default"].createElement(ToolbarButton, {
225
+ $active: isItalic,
226
+ onClick: function onClick() {
227
+ return handleToggleTextFormat('italic');
228
+ },
229
+ title: "Italic"
230
+ }, /*#__PURE__*/_react["default"].createElement("em", null, "I")), /*#__PURE__*/_react["default"].createElement(ToolbarButton, {
231
+ $active: isUnderline,
232
+ onClick: function onClick() {
233
+ return handleToggleTextFormat('underline');
234
+ },
235
+ title: "Underline"
236
+ }, /*#__PURE__*/_react["default"].createElement("u", null, "U")), /*#__PURE__*/_react["default"].createElement(ToolbarDivider, null), /*#__PURE__*/_react["default"].createElement(ColorPickerButton, {
237
+ color: fontColor,
238
+ presets: FONT_COLOR_PRESETS,
239
+ title: "Text Color",
240
+ label: "A",
241
+ onSelectColor: function onSelectColor(c) {
242
+ return handleChangeStyle('color', c);
243
+ }
244
+ }), /*#__PURE__*/_react["default"].createElement(ColorPickerButton, {
245
+ color: bgColor,
246
+ presets: BG_COLOR_PRESETS,
247
+ title: "Background Color",
248
+ label: "",
249
+ renderIcon: function renderIcon() {
250
+ return /*#__PURE__*/_react["default"].createElement("svg", {
251
+ viewBox: "0 0 16 16",
252
+ width: "12",
253
+ height: "12",
254
+ style: {
255
+ fill: 'none',
256
+ stroke: 'currentColor',
257
+ strokeWidth: 1.5
258
+ }
259
+ }, /*#__PURE__*/_react["default"].createElement("rect", {
260
+ x: "2",
261
+ y: "2",
262
+ width: "12",
263
+ height: "12",
264
+ rx: "1",
265
+ strokeDasharray: "2 1.5"
266
+ }), /*#__PURE__*/_react["default"].createElement("line", {
267
+ x1: "4",
268
+ y1: "14",
269
+ x2: "14",
270
+ y2: "4"
271
+ }), /*#__PURE__*/_react["default"].createElement("line", {
272
+ x1: "4",
273
+ y1: "10",
274
+ x2: "10",
275
+ y2: "4"
276
+ }), /*#__PURE__*/_react["default"].createElement("line", {
277
+ x1: "4",
278
+ y1: "6",
279
+ x2: "6",
280
+ y2: "4"
281
+ }));
282
+ },
283
+ onSelectColor: function onSelectColor(c) {
284
+ return handleChangeStyle('background-color', c);
285
+ }
286
+ }), /*#__PURE__*/_react["default"].createElement(ToolbarDivider, null), /*#__PURE__*/_react["default"].createElement(ToolbarButton, {
287
+ $active: isLink,
288
+ onClick: insertLink,
289
+ disabled: !isEditingText,
290
+ title: "Insert Link"
291
+ }, "\uD83D\uDD17")));
292
+ };
293
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsIl9sZXhpY2FsQ29uc3RhbnRzIiwiX3VzZUxleGljYWxUb29sYmFyIiwiX3NpbmdsZUNvbG9yUGFsZXR0ZSIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfdGVtcGxhdGVPYmplY3Q5IiwiX3RlbXBsYXRlT2JqZWN0MTAiLCJfdGVtcGxhdGVPYmplY3QxMSIsIl90ZW1wbGF0ZU9iamVjdDEyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiVG9vbGJhckNvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiVG9vbGJhclJvdyIsIlRvb2xiYXJEaXZpZGVyIiwiVG9vbGJhclNlbGVjdCIsInNlbGVjdCIsIlRvb2xiYXJCdXR0b24iLCJidXR0b24iLCJwcm9wcyIsIiRhY3RpdmUiLCJDb2xvclN3YXRjaCIsIiRjb2xvciIsIkNvbG9yUGlja2VyUG9wb3ZlciIsIkNvbG9yUHJlc2V0Um93IiwiQ29sb3JQcmVzZXRTd2F0Y2giLCIkaXNTZWxlY3RlZCIsIkN1c3RvbVBpY2tlcldyYXBwZXIiLCJTaW5nbGVDb2xvclBhbGV0dGVXcmFwcGVyIiwidGhlbWUiLCJwYW5lbEJhY2tncm91bmQiLCJDb2xvclBpY2tlcldyYXBwZXIiLCJDb2xvclBpY2tlckJ1dHRvbiIsIl9yZWYiLCJjb2xvciIsInByZXNldHMiLCJ0aXRsZSIsImxhYmVsIiwicmVuZGVySWNvbiIsIm9uU2VsZWN0Q29sb3IiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dDdXN0b20iLCJzZXRTaG93Q3VzdG9tIiwid3JhcHBlclJlZiIsInVzZVJlZiIsInVzZUVmZmVjdCIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImN1cnJlbnQiLCJjb250YWlucyIsInRhcmdldCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVUb2dnbGUiLCJ1c2VDYWxsYmFjayIsInByZXYiLCJoYW5kbGVQcmVzZXRTZWxlY3QiLCJjIiwiaGFuZGxlQ3VzdG9tU2VsZWN0IiwiQXJyYXkiLCJpc0FycmF5IiwiaGV4IiwiY29uY2F0IiwibWFwIiwidiIsInRvU3RyaW5nIiwicGFkU3RhcnQiLCJqb2luIiwiY3JlYXRlRWxlbWVudCIsInJlZiIsIm9uQ2xpY2siLCJzdHlsZSIsImZvbnRTaXplIiwibWFyZ2luTGVmdCIsIm9uTW91c2VEb3duIiwicHJldmVudERlZmF1bHQiLCJwIiwia2V5IiwiYmFja2dyb3VuZCIsInVuZGVmaW5lZCIsInNlbGVjdGVkQ29sb3IiLCJGT05UX0NPTE9SX1BSRVNFVFMiLCJCR19DT0xPUl9QUkVTRVRTIiwiTGV4aWNhbFRvb2xiYXIiLCJleHBvcnRzIiwiX3JlZjIiLCJpc0VkaXRpbmdUZXh0IiwidGV4dFZlcnRpY2FsQWxpZ24iLCJvbkNoYW5nZVRleHRWZXJ0aWNhbEFsaWduIiwiX3VzZUxleGljYWxDb21wb3NlckNvIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsIl91c2VMZXhpY2FsQ29tcG9zZXJDbzIiLCJlZGl0b3IiLCJfdXNlTGV4aWNhbFRleHRTdHlsZSIsInVzZUxleGljYWxUZXh0U3R5bGUiLCJCb29sZWFuIiwiZm9udEZhbWlseSIsImZvbnRDb2xvciIsImJnQ29sb3IiLCJoYW5kbGVDaGFuZ2VTdHlsZSIsIl91c2VMZXhpY2FsVGV4dEZvcm1hdCIsInVzZUxleGljYWxUZXh0Rm9ybWF0IiwiaXNCb2xkIiwiaXNJdGFsaWMiLCJpc1VuZGVybGluZSIsImhhbmRsZVRvZ2dsZVRleHRGb3JtYXQiLCJfdXNlSW5zZXJ0TGV4aWNhbExpbmsiLCJ1c2VJbnNlcnRMZXhpY2FsTGluayIsImlzTGluayIsImluc2VydExpbmsiLCJjbGFzc05hbWUiLCJIVE1MU2VsZWN0RWxlbWVudCIsInZhbHVlIiwib25DaGFuZ2UiLCJtYXJnaW5SaWdodCIsIkZPTlRfRkFNSUxZX09QVElPTlMiLCJmIiwiRk9OVF9TSVpFX09QVElPTlMiLCJzIiwidmlld0JveCIsIndpZHRoIiwiaGVpZ2h0IiwiZmlsbCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwieCIsInkiLCJyeCIsInN0cm9rZURhc2hhcnJheSIsIngxIiwieTEiLCJ4MiIsInkyIiwiZGlzYWJsZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYW5ub3RhdGlvbnMvbGV4aWNhbC1lZGl0b3IvbGV4aWNhbC10b29sYmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtGQywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3VzZUxleGljYWxDb21wb3NlckNvbnRleHR9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnO1xuXG5pbXBvcnQge0ZPTlRfRkFNSUxZX09QVElPTlMsIEZPTlRfU0laRV9PUFRJT05TfSBmcm9tICcuL2xleGljYWwtY29uc3RhbnRzJztcbmltcG9ydCB7dXNlTGV4aWNhbFRleHRTdHlsZSwgdXNlTGV4aWNhbFRleHRGb3JtYXQsIHVzZUluc2VydExleGljYWxMaW5rfSBmcm9tICcuL3VzZS1sZXhpY2FsLXRvb2xiYXInO1xuaW1wb3J0IFNpbmdsZUNvbG9yUGFsZXR0ZSBmcm9tICcuLi8uLi9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL3NpbmdsZS1jb2xvci1wYWxldHRlJztcblxuZXhwb3J0IHR5cGUgTGV4aWNhbFRvb2xiYXJQcm9wcyA9IHtcbiAgaXNFZGl0aW5nVGV4dD86IGJvb2xlYW47XG4gIHRleHRWZXJ0aWNhbEFsaWduPzogJ3RvcCcgfCAnYm90dG9tJyB8ICdtaWRkbGUnO1xuICBvbkNoYW5nZVRleHRWZXJ0aWNhbEFsaWduPzogKHZhbHVlOiAndG9wJyB8ICdib3R0b20nIHwgJ21pZGRsZScpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBUb29sYmFyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDRweCAwO1xuYDtcblxuY29uc3QgVG9vbGJhclJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5gO1xuXG5jb25zdCBUb29sYmFyRGl2aWRlciA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICBtYXJnaW46IDAgNHB4O1xuYDtcblxuY29uc3QgVG9vbGJhclNlbGVjdCA9IHN0eWxlZC5zZWxlY3RgXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWF4LXdpZHRoOiA5MHB4O1xuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICB9XG5gO1xuXG5jb25zdCBUb29sYmFyQnV0dG9uID0gc3R5bGVkLmJ1dHRvbjx7JGFjdGl2ZT86IGJvb2xlYW59PmBcbiAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiAocHJvcHMuJGFjdGl2ZSA/ICdyZ2JhKDI1NSwyNTUsMjU1LDAuMiknIDogJ3RyYW5zcGFyZW50Jyl9O1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtaW4td2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIH1cbiAgJjpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC40O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgQ29sb3JTd2F0Y2ggPSBzdHlsZWQuZGl2PHskY29sb3I6IHN0cmluZ30+YFxuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuJGNvbG9yfTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuYDtcblxuY29uc3QgQ29sb3JQaWNrZXJQb3BvdmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgYmFja2dyb3VuZDogcmdiYSgzMCwgMzMsIDQwLCAwLjk4KTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIHotaW5kZXg6IDIwO1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0cHg7XG4gIG1pbi13aWR0aDogMTIwcHg7XG5gO1xuXG5jb25zdCBDb2xvclByZXNldFJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiA0cHggNHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogI2ZmZjtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB9XG5gO1xuXG5jb25zdCBDb2xvclByZXNldFN3YXRjaCA9IHN0eWxlZC5kaXY8eyRjb2xvcjogc3RyaW5nOyAkaXNTZWxlY3RlZD86IGJvb2xlYW59PmBcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IHByb3BzLiRjb2xvcn07XG4gIGJvcmRlcjogMS41cHggc29saWQgJHtwcm9wcyA9PiAocHJvcHMuJGlzU2VsZWN0ZWQgPyAnI2ZmZicgOiAncmdiYSgyNTUsMjU1LDI1NSwwLjMpJyl9O1xuICBmbGV4LXNocmluazogMDtcbmA7XG5cbmNvbnN0IEN1c3RvbVBpY2tlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbiAgcGFkZGluZy10b3A6IDRweDtcbiAgbWFyZ2luLXRvcDogMnB4O1xuYDtcblxuY29uc3QgU2luZ2xlQ29sb3JQYWxldHRlV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIHotaW5kZXg6IDMwO1xuICBiYWNrZ3JvdW5kOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZCB8fCAncmdiYSgzMCwgMzMsIDQwLCAwLjk4KSd9O1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMjIwcHg7XG5gO1xuXG50eXBlIENvbG9yUGlja2VyQnV0dG9uUHJvcHMgPSB7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIHByZXNldHM6IEFycmF5PHtjb2xvcjogc3RyaW5nOyBsYWJlbDogc3RyaW5nfT47XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICByZW5kZXJJY29uPzogKCkgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBvblNlbGVjdENvbG9yOiAoY29sb3I6IHN0cmluZykgPT4gdm9pZDtcbn07XG5cbmNvbnN0IENvbG9yUGlja2VyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IENvbG9yUGlja2VyQnV0dG9uOiBGQzxDb2xvclBpY2tlckJ1dHRvblByb3BzPiA9ICh7Y29sb3IsIHByZXNldHMsIHRpdGxlLCBsYWJlbCwgcmVuZGVySWNvbiwgb25TZWxlY3RDb2xvcn0pID0+IHtcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3Nob3dDdXN0b20sIHNldFNob3dDdXN0b21dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCB3cmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNPcGVuKSByZXR1cm47XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmICh3cmFwcGVyUmVmLmN1cnJlbnQgJiYgIXdyYXBwZXJSZWYuY3VycmVudC5jb250YWlucyhlLnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICBzZXRJc09wZW4oZmFsc2UpO1xuICAgICAgICBzZXRTaG93Q3VzdG9tKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH0sIFtpc09wZW5dKTtcblxuICBjb25zdCBoYW5kbGVUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNPcGVuKHByZXYgPT4gIXByZXYpO1xuICAgIHNldFNob3dDdXN0b20oZmFsc2UpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlUHJlc2V0U2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGM6IHN0cmluZykgPT4ge1xuICAgICAgb25TZWxlY3RDb2xvcihjKTtcbiAgICAgIHNldElzT3BlbihmYWxzZSk7XG4gICAgICBzZXRTaG93Q3VzdG9tKGZhbHNlKTtcbiAgICB9LFxuICAgIFtvblNlbGVjdENvbG9yXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUN1c3RvbVNlbGVjdCA9IHVzZUNhbGxiYWNrKFxuICAgIChjb2xvcjogW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHwge2NvbG9yczogc3RyaW5nW119KSA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb2xvcikpIHtcbiAgICAgICAgY29uc3QgaGV4ID0gYCMke2NvbG9yLm1hcCh2ID0+IHYudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykpLmpvaW4oJycpfWA7XG4gICAgICAgIG9uU2VsZWN0Q29sb3IoaGV4KTtcbiAgICAgIH1cbiAgICAgIHNldElzT3BlbihmYWxzZSk7XG4gICAgICBzZXRTaG93Q3VzdG9tKGZhbHNlKTtcbiAgICB9LFxuICAgIFtvblNlbGVjdENvbG9yXVxuICApIGFzIChjb2xvcjogYW55LCBlPzogYW55KSA9PiB2b2lkO1xuXG4gIHJldHVybiAoXG4gICAgPENvbG9yUGlja2VyV3JhcHBlciByZWY9e3dyYXBwZXJSZWZ9PlxuICAgICAgPFRvb2xiYXJCdXR0b24gb25DbGljaz17aGFuZGxlVG9nZ2xlfSB0aXRsZT17dGl0bGV9PlxuICAgICAgICB7cmVuZGVySWNvbiA/IHJlbmRlckljb24oKSA6IDxzcGFuIHN0eWxlPXt7Zm9udFNpemU6ICcxMHB4J319PntsYWJlbH08L3NwYW4+fVxuICAgICAgICA8Q29sb3JTd2F0Y2ggJGNvbG9yPXtjb2xvciA9PT0gJ3RyYW5zcGFyZW50JyA/ICdyZ2JhKDI1NSwyNTUsMjU1LDAuMSknIDogY29sb3J9IHN0eWxlPXt7bWFyZ2luTGVmdDogNH19IC8+XG4gICAgICA8L1Rvb2xiYXJCdXR0b24+XG4gICAgICB7aXNPcGVuICYmICFzaG93Q3VzdG9tICYmIChcbiAgICAgICAgPENvbG9yUGlja2VyUG9wb3ZlciBvbk1vdXNlRG93bj17ZSA9PiBlLnByZXZlbnREZWZhdWx0KCl9PlxuICAgICAgICAgIHtwcmVzZXRzLm1hcChwID0+IChcbiAgICAgICAgICAgIDxDb2xvclByZXNldFJvdyBrZXk9e3AuY29sb3J9IG9uQ2xpY2s9eygpID0+IGhhbmRsZVByZXNldFNlbGVjdChwLmNvbG9yKX0+XG4gICAgICAgICAgICAgIDxDb2xvclByZXNldFN3YXRjaFxuICAgICAgICAgICAgICAgICRjb2xvcj17cC5jb2xvciA9PT0gJ3RyYW5zcGFyZW50JyA/ICdyZXBlYXRpbmctY29uaWMtZ3JhZGllbnQoIzgwODA4MCAwJSAyNSUsIHRyYW5zcGFyZW50IDAlIDUwJSkgNTAlIC8gOHB4IDhweCcgOiBwLmNvbG9yfVxuICAgICAgICAgICAgICAgICRpc1NlbGVjdGVkPXtjb2xvciA9PT0gcC5jb2xvcn1cbiAgICAgICAgICAgICAgICBzdHlsZT17cC5jb2xvciA9PT0gJ3RyYW5zcGFyZW50JyA/IHtiYWNrZ3JvdW5kOiAncmVwZWF0aW5nLWNvbmljLWdyYWRpZW50KCM2MDYwNjAgMCUgMjUlLCAjNDA0MDQwIDAlIDUwJSkgNTAlIC8gOHB4IDhweCd9IDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB7cC5sYWJlbH1cbiAgICAgICAgICAgIDwvQ29sb3JQcmVzZXRSb3c+XG4gICAgICAgICAgKSl9XG4gICAgICAgICAgPEN1c3RvbVBpY2tlcldyYXBwZXI+XG4gICAgICAgICAgICA8Q29sb3JQcmVzZXRSb3cgb25DbGljaz17KCkgPT4gc2V0U2hvd0N1c3RvbSh0cnVlKX0+XG4gICAgICAgICAgICAgIDxDb2xvclByZXNldFN3YXRjaFxuICAgICAgICAgICAgICAgICRjb2xvcj1cImxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmMDAsICMwZjAsICMwMGYpXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e2JhY2tncm91bmQ6ICdsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjQ0LCAjNGY0LCAjNDRmKSd9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICBDdXN0b20uLi5cbiAgICAgICAgICAgIDwvQ29sb3JQcmVzZXRSb3c+XG4gICAgICAgICAgPC9DdXN0b21QaWNrZXJXcmFwcGVyPlxuICAgICAgICA8L0NvbG9yUGlja2VyUG9wb3Zlcj5cbiAgICAgICl9XG4gICAgICB7aXNPcGVuICYmIHNob3dDdXN0b20gJiYgKFxuICAgICAgICA8U2luZ2xlQ29sb3JQYWxldHRlV3JhcHBlciBvbk1vdXNlRG93bj17ZSA9PiBlLnByZXZlbnREZWZhdWx0KCl9PlxuICAgICAgICAgIDxTaW5nbGVDb2xvclBhbGV0dGVcbiAgICAgICAgICAgIHNlbGVjdGVkQ29sb3I9e2NvbG9yID09PSAndHJhbnNwYXJlbnQnID8gJyMwMDAwMDAnIDogY29sb3J9XG4gICAgICAgICAgICBvblNlbGVjdENvbG9yPXtoYW5kbGVDdXN0b21TZWxlY3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TaW5nbGVDb2xvclBhbGV0dGVXcmFwcGVyPlxuICAgICAgKX1cbiAgICA8L0NvbG9yUGlja2VyV3JhcHBlcj5cbiAgKTtcbn07XG5cbmNvbnN0IEZPTlRfQ09MT1JfUFJFU0VUUyA9IFtcbiAge2NvbG9yOiAnI0ZGRkZGRicsIGxhYmVsOiAnV2hpdGUnfSxcbiAge2NvbG9yOiAnIzAwMDAwMCcsIGxhYmVsOiAnQmxhY2snfVxuXTtcblxuY29uc3QgQkdfQ09MT1JfUFJFU0VUUyA9IFtcbiAge2NvbG9yOiAndHJhbnNwYXJlbnQnLCBsYWJlbDogJ05vIGZpbGwnfSxcbiAge2NvbG9yOiAnIzAwMDAwMCcsIGxhYmVsOiAnQmxhY2snfSxcbiAge2NvbG9yOiAnI0ZGRkZGRicsIGxhYmVsOiAnV2hpdGUnfVxuXTtcblxuZXhwb3J0IGNvbnN0IExleGljYWxUb29sYmFyOiBGQzxMZXhpY2FsVG9vbGJhclByb3BzPiA9ICh7XG4gIGlzRWRpdGluZ1RleHQsXG4gIHRleHRWZXJ0aWNhbEFsaWduLFxuICBvbkNoYW5nZVRleHRWZXJ0aWNhbEFsaWduXG59KSA9PiB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpO1xuICBjb25zdCB7Zm9udFNpemUsIGZvbnRGYW1pbHksIGZvbnRDb2xvciwgYmdDb2xvciwgaGFuZGxlQ2hhbmdlU3R5bGV9ID1cbiAgICB1c2VMZXhpY2FsVGV4dFN0eWxlKHtcbiAgICAgIGVkaXRvcixcbiAgICAgIGlzRWRpdGluZ1RleHQ6IEJvb2xlYW4oaXNFZGl0aW5nVGV4dClcbiAgICB9KTtcbiAgY29uc3Qge2lzQm9sZCwgaXNJdGFsaWMsIGlzVW5kZXJsaW5lLCBoYW5kbGVUb2dnbGVUZXh0Rm9ybWF0fSA9IHVzZUxleGljYWxUZXh0Rm9ybWF0KHtcbiAgICBlZGl0b3IsXG4gICAgaXNFZGl0aW5nVGV4dDogQm9vbGVhbihpc0VkaXRpbmdUZXh0KVxuICB9KTtcbiAgY29uc3Qge2lzTGluaywgaW5zZXJ0TGlua30gPSB1c2VJbnNlcnRMZXhpY2FsTGluayh7XG4gICAgZWRpdG9yLFxuICAgIGlzRWRpdGluZ1RleHQ6IEJvb2xlYW4oaXNFZGl0aW5nVGV4dClcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8VG9vbGJhckNvbnRhaW5lciBjbGFzc05hbWU9XCJsZXhpY2FsLXRvb2xiYXJcIiBvbk1vdXNlRG93bj17ZSA9PiB7XG4gICAgICBpZiAoZS50YXJnZXQgaW5zdGFuY2VvZiBIVE1MU2VsZWN0RWxlbWVudCkgcmV0dXJuO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH19PlxuICAgICAgPFRvb2xiYXJSb3c+XG4gICAgICAgIDxUb29sYmFyU2VsZWN0XG4gICAgICAgICAgdmFsdWU9e2ZvbnRGYW1pbHl9XG4gICAgICAgICAgb25DaGFuZ2U9e2UgPT4gaGFuZGxlQ2hhbmdlU3R5bGUoJ2ZvbnQtZmFtaWx5JywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIHN0eWxlPXt7bWFyZ2luUmlnaHQ6IDJ9fVxuICAgICAgICA+XG4gICAgICAgICAge0ZPTlRfRkFNSUxZX09QVElPTlMubWFwKGYgPT4gKFxuICAgICAgICAgICAgPG9wdGlvbiBrZXk9e2Z9IHZhbHVlPXtmfT5cbiAgICAgICAgICAgICAge2Z9XG4gICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9Ub29sYmFyU2VsZWN0PlxuICAgICAgICA8VG9vbGJhclNlbGVjdFxuICAgICAgICAgIHZhbHVlPXtmb250U2l6ZX1cbiAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBoYW5kbGVDaGFuZ2VTdHlsZSgnZm9udC1zaXplJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICA+XG4gICAgICAgICAge0ZPTlRfU0laRV9PUFRJT05TLm1hcChzID0+IChcbiAgICAgICAgICAgIDxvcHRpb24ga2V5PXtzfSB2YWx1ZT17c30+XG4gICAgICAgICAgICAgIHtzfVxuICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvVG9vbGJhclNlbGVjdD5cbiAgICAgICAgPFRvb2xiYXJEaXZpZGVyIC8+XG4gICAgICAgIDxUb29sYmFyQnV0dG9uICRhY3RpdmU9e2lzQm9sZH0gb25DbGljaz17KCkgPT4gaGFuZGxlVG9nZ2xlVGV4dEZvcm1hdCgnYm9sZCcpfSB0aXRsZT1cIkJvbGRcIj5cbiAgICAgICAgICA8c3Ryb25nPkI8L3N0cm9uZz5cbiAgICAgICAgPC9Ub29sYmFyQnV0dG9uPlxuICAgICAgICA8VG9vbGJhckJ1dHRvblxuICAgICAgICAgICRhY3RpdmU9e2lzSXRhbGljfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVRvZ2dsZVRleHRGb3JtYXQoJ2l0YWxpYycpfVxuICAgICAgICAgIHRpdGxlPVwiSXRhbGljXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxlbT5JPC9lbT5cbiAgICAgICAgPC9Ub29sYmFyQnV0dG9uPlxuICAgICAgICA8VG9vbGJhckJ1dHRvblxuICAgICAgICAgICRhY3RpdmU9e2lzVW5kZXJsaW5lfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVRvZ2dsZVRleHRGb3JtYXQoJ3VuZGVybGluZScpfVxuICAgICAgICAgIHRpdGxlPVwiVW5kZXJsaW5lXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx1PlU8L3U+XG4gICAgICAgIDwvVG9vbGJhckJ1dHRvbj5cbiAgICAgICAgPFRvb2xiYXJEaXZpZGVyIC8+XG4gICAgICAgIDxDb2xvclBpY2tlckJ1dHRvblxuICAgICAgICAgIGNvbG9yPXtmb250Q29sb3J9XG4gICAgICAgICAgcHJlc2V0cz17Rk9OVF9DT0xPUl9QUkVTRVRTfVxuICAgICAgICAgIHRpdGxlPVwiVGV4dCBDb2xvclwiXG4gICAgICAgICAgbGFiZWw9XCJBXCJcbiAgICAgICAgICBvblNlbGVjdENvbG9yPXtjID0+IGhhbmRsZUNoYW5nZVN0eWxlKCdjb2xvcicsIGMpfVxuICAgICAgICAvPlxuICAgICAgICA8Q29sb3JQaWNrZXJCdXR0b25cbiAgICAgICAgICBjb2xvcj17YmdDb2xvcn1cbiAgICAgICAgICBwcmVzZXRzPXtCR19DT0xPUl9QUkVTRVRTfVxuICAgICAgICAgIHRpdGxlPVwiQmFja2dyb3VuZCBDb2xvclwiXG4gICAgICAgICAgbGFiZWw9XCJcIlxuICAgICAgICAgIHJlbmRlckljb249eygpID0+IChcbiAgICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHN0eWxlPXt7ZmlsbDogJ25vbmUnLCBzdHJva2U6ICdjdXJyZW50Q29sb3InLCBzdHJva2VXaWR0aDogMS41fX0+XG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiByeD1cIjFcIiBzdHJva2VEYXNoYXJyYXk9XCIyIDEuNVwiIC8+XG4gICAgICAgICAgICAgIDxsaW5lIHgxPVwiNFwiIHkxPVwiMTRcIiB4Mj1cIjE0XCIgeTI9XCI0XCIgLz5cbiAgICAgICAgICAgICAgPGxpbmUgeDE9XCI0XCIgeTE9XCIxMFwiIHgyPVwiMTBcIiB5Mj1cIjRcIiAvPlxuICAgICAgICAgICAgICA8bGluZSB4MT1cIjRcIiB5MT1cIjZcIiB4Mj1cIjZcIiB5Mj1cIjRcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgKX1cbiAgICAgICAgICBvblNlbGVjdENvbG9yPXtjID0+IGhhbmRsZUNoYW5nZVN0eWxlKCdiYWNrZ3JvdW5kLWNvbG9yJywgYyl9XG4gICAgICAgIC8+XG4gICAgICAgIDxUb29sYmFyRGl2aWRlciAvPlxuICAgICAgICA8VG9vbGJhckJ1dHRvblxuICAgICAgICAgICRhY3RpdmU9e2lzTGlua31cbiAgICAgICAgICBvbkNsaWNrPXtpbnNlcnRMaW5rfVxuICAgICAgICAgIGRpc2FibGVkPXshaXNFZGl0aW5nVGV4dH1cbiAgICAgICAgICB0aXRsZT1cIkluc2VydCBMaW5rXCJcbiAgICAgICAgPlxuICAgICAgICAgIPCflJdcbiAgICAgICAgPC9Ub29sYmFyQnV0dG9uPlxuICAgICAgPC9Ub29sYmFyUm93PlxuICAgIDwvVG9vbGJhckNvbnRhaW5lcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsdUJBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLGlCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxrQkFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sbUJBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUFtRixJQUFBTyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFD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
@@ -0,0 +1,4 @@
1
+ import { ElementNode, LexicalEditor, RangeSelection, SerializedEditorState, TextNode } from 'lexical';
2
+ export declare function getSelectedNode(selection: RangeSelection): TextNode | ElementNode;
3
+ export declare function updateEditorState(editor: LexicalEditor, editorState: SerializedEditorState | undefined): void;
4
+ export declare function sanitizeUrl(url: string): string;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getSelectedNode = getSelectedNode;
7
+ exports.sanitizeUrl = sanitizeUrl;
8
+ exports.updateEditorState = updateEditorState;
9
+ var _selection = require("@lexical/selection");
10
+ // SPDX-License-Identifier: MIT
11
+ // Copyright contributors to the kepler.gl project
12
+
13
+ function getSelectedNode(selection) {
14
+ var anchor = selection.anchor;
15
+ var focus = selection.focus;
16
+ var anchorNode = selection.anchor.getNode();
17
+ var focusNode = selection.focus.getNode();
18
+ if (anchorNode === focusNode) {
19
+ return anchorNode;
20
+ }
21
+ var isBackward = selection.isBackward();
22
+ if (isBackward) {
23
+ return (0, _selection.$isAtNodeEnd)(focus) ? anchorNode : focusNode;
24
+ } else {
25
+ return (0, _selection.$isAtNodeEnd)(anchor) ? focusNode : anchorNode;
26
+ }
27
+ }
28
+ function updateEditorState(editor, editorState) {
29
+ try {
30
+ if (editorState) {
31
+ editor.setEditorState(editor.parseEditorState(editorState));
32
+ }
33
+ } catch (e) {
34
+ // eslint-disable-next-line no-console
35
+ console.error(e);
36
+ }
37
+ }
38
+ function sanitizeUrl(url) {
39
+ var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi;
40
+ var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
41
+ url = String(url).trim();
42
+ if (url.match(SAFE_URL_PATTERN) || url.match(DATA_URL_PATTERN)) return url;
43
+ return 'https://';
44
+ }
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2VsZWN0aW9uIiwicmVxdWlyZSIsImdldFNlbGVjdGVkTm9kZSIsInNlbGVjdGlvbiIsImFuY2hvciIsImZvY3VzIiwiYW5jaG9yTm9kZSIsImdldE5vZGUiLCJmb2N1c05vZGUiLCJpc0JhY2t3YXJkIiwiJGlzQXROb2RlRW5kIiwidXBkYXRlRWRpdG9yU3RhdGUiLCJlZGl0b3IiLCJlZGl0b3JTdGF0ZSIsInNldEVkaXRvclN0YXRlIiwicGFyc2VFZGl0b3JTdGF0ZSIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJzYW5pdGl6ZVVybCIsInVybCIsIlNBRkVfVVJMX1BBVFRFUk4iLCJEQVRBX1VSTF9QQVRURVJOIiwiU3RyaW5nIiwidHJpbSIsIm1hdGNoIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Fubm90YXRpb25zL2xleGljYWwtZWRpdG9yL2xleGljYWwtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHskaXNBdE5vZGVFbmR9IGZyb20gJ0BsZXhpY2FsL3NlbGVjdGlvbic7XG5pbXBvcnQge0VsZW1lbnROb2RlLCBMZXhpY2FsRWRpdG9yLCBSYW5nZVNlbGVjdGlvbiwgU2VyaWFsaXplZEVkaXRvclN0YXRlLCBUZXh0Tm9kZX0gZnJvbSAnbGV4aWNhbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3RlZE5vZGUoc2VsZWN0aW9uOiBSYW5nZVNlbGVjdGlvbik6IFRleHROb2RlIHwgRWxlbWVudE5vZGUge1xuICBjb25zdCBhbmNob3IgPSBzZWxlY3Rpb24uYW5jaG9yO1xuICBjb25zdCBmb2N1cyA9IHNlbGVjdGlvbi5mb2N1cztcbiAgY29uc3QgYW5jaG9yTm9kZSA9IHNlbGVjdGlvbi5hbmNob3IuZ2V0Tm9kZSgpO1xuICBjb25zdCBmb2N1c05vZGUgPSBzZWxlY3Rpb24uZm9jdXMuZ2V0Tm9kZSgpO1xuICBpZiAoYW5jaG9yTm9kZSA9PT0gZm9jdXNOb2RlKSB7XG4gICAgcmV0dXJuIGFuY2hvck5vZGU7XG4gIH1cbiAgY29uc3QgaXNCYWNrd2FyZCA9IHNlbGVjdGlvbi5pc0JhY2t3YXJkKCk7XG4gIGlmIChpc0JhY2t3YXJkKSB7XG4gICAgcmV0dXJuICRpc0F0Tm9kZUVuZChmb2N1cykgPyBhbmNob3JOb2RlIDogZm9jdXNOb2RlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAkaXNBdE5vZGVFbmQoYW5jaG9yKSA/IGZvY3VzTm9kZSA6IGFuY2hvck5vZGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUVkaXRvclN0YXRlKFxuICBlZGl0b3I6IExleGljYWxFZGl0b3IsXG4gIGVkaXRvclN0YXRlOiBTZXJpYWxpemVkRWRpdG9yU3RhdGUgfCB1bmRlZmluZWRcbik6IHZvaWQge1xuICB0cnkge1xuICAgIGlmIChlZGl0b3JTdGF0ZSkge1xuICAgICAgZWRpdG9yLnNldEVkaXRvclN0YXRlKGVkaXRvci5wYXJzZUVkaXRvclN0YXRlKGVkaXRvclN0YXRlKSk7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IFNBRkVfVVJMX1BBVFRFUk4gPSAvXig/Oig/Omh0dHBzP3xtYWlsdG98ZnRwfHRlbHxmaWxlfHNtcyk6fFteJjovPyNdKig/OlsvPyNdfCQpKS9naTtcbiAgY29uc3QgREFUQV9VUkxfUEFUVEVSTiA9XG4gICAgL15kYXRhOig/OmltYWdlXFwvKD86Ym1wfGdpZnxqcGVnfGpwZ3xwbmd8dGlmZnx3ZWJwKXx2aWRlb1xcLyg/Om1wZWd8bXA0fG9nZ3x3ZWJtKXxhdWRpb1xcLyg/Om1wM3xvZ2F8b2dnfG9wdXMpKTtiYXNlNjQsW2EtejAtOSsvXSs9KiQvaTtcblxuICB1cmwgPSBTdHJpbmcodXJsKS50cmltKCk7XG4gIGlmICh1cmwubWF0Y2goU0FGRV9VUkxfUEFUVEVSTikgfHwgdXJsLm1hdGNoKERBVEFfVVJMX1BBVFRFUk4pKSByZXR1cm4gdXJsO1xuICByZXR1cm4gJ2h0dHBzOi8vJztcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFIQTtBQUNBOztBQUtPLFNBQVNDLGVBQWVBLENBQUNDLFNBQXlCLEVBQTBCO0VBQ2pGLElBQU1DLE1BQU0sR0FBR0QsU0FBUyxDQUFDQyxNQUFNO0VBQy9CLElBQU1DLEtBQUssR0FBR0YsU0FBUyxDQUFDRSxLQUFLO0VBQzdCLElBQU1DLFVBQVUsR0FBR0gsU0FBUyxDQUFDQyxNQUFNLENBQUNHLE9BQU8sQ0FBQyxDQUFDO0VBQzdDLElBQU1DLFNBQVMsR0FBR0wsU0FBUyxDQUFDRSxLQUFLLENBQUNFLE9BQU8sQ0FBQyxDQUFDO0VBQzNDLElBQUlELFVBQVUsS0FBS0UsU0FBUyxFQUFFO0lBQzVCLE9BQU9GLFVBQVU7RUFDbkI7RUFDQSxJQUFNRyxVQUFVLEdBQUdOLFNBQVMsQ0FBQ00sVUFBVSxDQUFDLENBQUM7RUFDekMsSUFBSUEsVUFBVSxFQUFFO0lBQ2QsT0FBTyxJQUFBQyx1QkFBWSxFQUFDTCxLQUFLLENBQUMsR0FBR0MsVUFBVSxHQUFHRSxTQUFTO0VBQ3JELENBQUMsTUFBTTtJQUNMLE9BQU8sSUFBQUUsdUJBQVksRUFBQ04sTUFBTSxDQUFDLEdBQUdJLFNBQVMsR0FBR0YsVUFBVTtFQUN0RDtBQUNGO0FBRU8sU0FBU0ssaUJBQWlCQSxDQUMvQkMsTUFBcUIsRUFDckJDLFdBQThDLEVBQ3hDO0VBQ04sSUFBSTtJQUNGLElBQUlBLFdBQVcsRUFBRTtNQUNmRCxNQUFNLENBQUNFLGNBQWMsQ0FBQ0YsTUFBTSxDQUFDRyxnQkFBZ0IsQ0FBQ0YsV0FBVyxDQUFDLENBQUM7SUFDN0Q7RUFDRixDQUFDLENBQUMsT0FBT0csQ0FBQyxFQUFFO0lBQ1Y7SUFDQUMsT0FBTyxDQUFDQyxLQUFLLENBQUNGLENBQUMsQ0FBQztFQUNsQjtBQUNGO0FBRU8sU0FBU0csV0FBV0EsQ0FBQ0MsR0FBVyxFQUFVO0VBQy9DLElBQU1DLGdCQUFnQixHQUFHLGlFQUFpRTtFQUMxRixJQUFNQyxnQkFBZ0IsR0FDcEIscUlBQXFJO0VBRXZJRixHQUFHLEdBQUdHLE1BQU0sQ0FBQ0gsR0FBRyxDQUFDLENBQUNJLElBQUksQ0FBQyxDQUFDO0VBQ3hCLElBQUlKLEdBQUcsQ0FBQ0ssS0FBSyxDQUFDSixnQkFBZ0IsQ0FBQyxJQUFJRCxHQUFHLENBQUNLLEtBQUssQ0FBQ0gsZ0JBQWdCLENBQUMsRUFBRSxPQUFPRixHQUFHO0VBQzFFLE9BQU8sVUFBVTtBQUNuQiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,36 @@
1
+ import { LexicalEditor } from 'lexical';
2
+ type UseLexicalToolbarProps = {
3
+ isEditingText?: boolean;
4
+ editor: LexicalEditor;
5
+ };
6
+ export type UseLexicalTextFormatReturn = {
7
+ isBold: boolean;
8
+ isItalic: boolean;
9
+ isUnderline: boolean;
10
+ handleToggleTextFormat: (format: string) => void;
11
+ };
12
+ export declare const useLexicalTextFormat: ({ isEditingText, editor }: UseLexicalToolbarProps) => UseLexicalTextFormatReturn;
13
+ export type UseLexicalTextStyleReturn = {
14
+ fontSize: string;
15
+ fontColor: string;
16
+ bgColor: string;
17
+ fontFamily: string;
18
+ handleChangeStyle: (style: string, value: string) => void;
19
+ handleAlignHorizontal: (alignment: 'left' | 'right' | 'center' | 'justify') => void;
20
+ };
21
+ export declare const useLexicalTextStyle: ({ editor, isEditingText, defaultSettings }: {
22
+ editor: LexicalEditor;
23
+ isEditingText: boolean;
24
+ defaultSettings?: Partial<{
25
+ fontSize: string;
26
+ fontColor: string;
27
+ bgColor: string;
28
+ fontFamily: string;
29
+ }>;
30
+ }) => UseLexicalTextStyleReturn;
31
+ export type UseInsertLexicalLinkReturn = {
32
+ isLink: boolean;
33
+ insertLink: () => void;
34
+ };
35
+ export declare const useInsertLexicalLink: ({ isEditingText, editor }: UseLexicalToolbarProps) => UseInsertLexicalLinkReturn;
36
+ export {};