@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,150 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
14
+ var _core = require("@dnd-kit/core");
15
+ var _constants = require("@kepler.gl/constants");
16
+ var _annotationUtils = require("./annotation-utils");
17
+ var _lexicalEditor = require("./lexical-editor");
18
+ var _templateObject, _templateObject2; // SPDX-License-Identifier: MIT
19
+ // Copyright contributors to the kepler.gl project
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _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; }
22
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24
+ var StyledAnnotationText = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n color: #fff;\n transition: border-color 0.2s;\n border: 2px solid transparent;\n padding: 4px 8px;\n white-space: pre-wrap;\n word-break: break-word;\n &:focus {\n outline: none;\n }\n ", "\n ", "\n .editor-inner {\n justify-content: ", ";\n }\n"])), function (props) {
25
+ return props.$isEditing ? "\n border-color: ".concat(props.$isSelected ? 'rgba(255,255,255,0.8)' : 'rgba(255,255,255,0.2)', ";\n &:hover {\n border-color: rgba(255,255,255,0.6);\n }\n cursor: move;\n pointer-events: all;\n ") : "\n pointer-events: none;\n a {\n pointer-events: all;\n cursor: pointer;\n }\n ";
26
+ }, function (props) {
27
+ return props.$isEditingText ? "\n .editor-inner {\n cursor: text;\n }\n " : '';
28
+ }, function (props) {
29
+ return props.$textVerticalAlign === 'top' ? 'flex-start' : props.$textVerticalAlign === 'middle' ? 'center' : 'flex-end';
30
+ });
31
+ var StyledToolbarWrapper = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n bottom: 100%;\n left: 0;\n background-color: rgba(30, 33, 40, 0.95);\n border-radius: 5px;\n width: max-content;\n padding: 2px 5px;\n margin-bottom: 4px;\n z-index: 1;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);\n"])));
32
+ var AnnotationText = function AnnotationText(_ref) {
33
+ var annotation = _ref.annotation,
34
+ viewport = _ref.viewport,
35
+ isEditing = _ref.isEditing,
36
+ isSelected = _ref.isSelected,
37
+ isEditingText = _ref.isEditingText,
38
+ onSelect = _ref.onSelect,
39
+ onChangeText = _ref.onChangeText,
40
+ onUpdateAnnotation = _ref.onUpdateAnnotation;
41
+ var _useDraggable = (0, _core.useDraggable)({
42
+ id: "".concat(annotation.id, ":MOVE_TEXT")
43
+ }),
44
+ attributes = _useDraggable.attributes,
45
+ listeners = _useDraggable.listeners,
46
+ setNodeRef = _useDraggable.setNodeRef;
47
+ var textWidth = annotation.textWidth,
48
+ textHeight = annotation.textHeight,
49
+ lineColor = annotation.lineColor,
50
+ lineWidth = annotation.lineWidth,
51
+ textVerticalAlign = annotation.textVerticalAlign,
52
+ autoSize = annotation.autoSize,
53
+ kind = annotation.kind;
54
+ var _makeMarker = (0, _annotationUtils.makeMarker)(annotation, viewport),
55
+ x = _makeMarker.x,
56
+ y = _makeMarker.y,
57
+ tx = _makeMarker.tx,
58
+ ty = _makeMarker.ty;
59
+ var isArm = 'armLength' in annotation;
60
+ var isLeft = isArm && (0, _annotationUtils.isLeftOriented)(annotation.angle);
61
+ var style = (0, _react.useMemo)(function () {
62
+ return _objectSpread(_objectSpread({}, autoSize ? {
63
+ minWidth: 80
64
+ } : {
65
+ width: textWidth || 120
66
+ }), {}, {
67
+ bottom: viewport.height - (y + ty),
68
+ borderBottom: kind !== _constants.AnnotationKind.TEXT ? "".concat(lineWidth, "px solid ").concat(lineColor) : undefined
69
+ }, kind === _constants.AnnotationKind.TEXT ? {
70
+ left: x + tx - (textWidth || 80) / 2
71
+ } : isLeft ? {
72
+ right: viewport.width - x - tx
73
+ } : {
74
+ left: x + tx
75
+ });
76
+ }, [autoSize, kind, textWidth, tx, ty, viewport.width, viewport.height, x, y, isLeft, lineWidth, lineColor]);
77
+ var handleEditorChange = (0, _react.useCallback)(function (change) {
78
+ onChangeText(change.text, change.editorState);
79
+ }, [onChangeText]);
80
+ (0, _react.useEffect)(function () {
81
+ if (!isEditingText || !isSelected || !isEditing) {
82
+ var _window$getSelection;
83
+ (_window$getSelection = window.getSelection()) === null || _window$getSelection === void 0 || _window$getSelection.removeAllRanges();
84
+ }
85
+ }, [isEditingText, isSelected, isEditing]);
86
+ return /*#__PURE__*/_react["default"].createElement(StyledAnnotationText, (0, _extends2["default"])({
87
+ ref: setNodeRef,
88
+ $isEditing: isEditing,
89
+ $isEditingText: isEditingText,
90
+ $isSelected: isSelected,
91
+ $textVerticalAlign: textVerticalAlign,
92
+ style: style
93
+ }, isEditing ? _objectSpread(_objectSpread(_objectSpread({}, attributes), listeners), {}, {
94
+ onPointerDown: function onPointerDown(evt) {
95
+ var _listeners$onPointerD2;
96
+ var target = evt.target;
97
+ if (target instanceof Element && target.closest('.lexical-toolbar')) {
98
+ return;
99
+ }
100
+ if (isEditingText) {
101
+ var _listeners$onPointerD;
102
+ if (target instanceof Element && target.closest('.editor-inner')) {
103
+ return;
104
+ }
105
+ listeners === null || listeners === void 0 || (_listeners$onPointerD = listeners.onPointerDown) === null || _listeners$onPointerD === void 0 || _listeners$onPointerD.call(listeners, evt);
106
+ return;
107
+ }
108
+ listeners === null || listeners === void 0 || (_listeners$onPointerD2 = listeners.onPointerDown) === null || _listeners$onPointerD2 === void 0 || _listeners$onPointerD2.call(listeners, evt);
109
+ if (!isSelected) {
110
+ onSelect(false);
111
+ }
112
+ }
113
+ }) : {}, {
114
+ onClick: function onClick(evt) {
115
+ if (!isEditing) return;
116
+ var target = evt.target;
117
+ if (target instanceof Element && target.closest('.lexical-toolbar')) {
118
+ return;
119
+ }
120
+ evt.stopPropagation();
121
+ if (!isEditingText) {
122
+ onSelect(true);
123
+ }
124
+ },
125
+ onDoubleClick: function onDoubleClick() {
126
+ if (!isEditing) {
127
+ onSelect(true);
128
+ }
129
+ }
130
+ }), /*#__PURE__*/_react["default"].createElement(_lexicalEditor.LexicalRichTextEditor, (0, _extends2["default"])({}, isEditingText && annotation.autoSize ? {} : {
131
+ width: textWidth || undefined
132
+ }, isEditingText && annotation.autoSizeY ? {} : {
133
+ height: textHeight || undefined
134
+ }, {
135
+ isEditable: isEditing && isEditingText,
136
+ editorState: annotation.editorState,
137
+ initialText: annotation.label,
138
+ onChange: handleEditorChange
139
+ }), isEditing && isSelected ? /*#__PURE__*/_react["default"].createElement(StyledToolbarWrapper, null, /*#__PURE__*/_react["default"].createElement(_lexicalEditor.LexicalToolbar, {
140
+ isEditingText: isEditingText,
141
+ textVerticalAlign: textVerticalAlign,
142
+ onChangeTextVerticalAlign: function onChangeTextVerticalAlign(value) {
143
+ onUpdateAnnotation({
144
+ textVerticalAlign: value
145
+ });
146
+ }
147
+ })) : null));
148
+ };
149
+ var _default = exports["default"] = AnnotationText;
150
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29yZSIsIl9jb25zdGFudHMiLCJfYW5ub3RhdGlvblV0aWxzIiwiX2xleGljYWxFZGl0b3IiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU3R5bGVkQW5ub3RhdGlvblRleHQiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwiJGlzRWRpdGluZyIsImNvbmNhdCIsIiRpc1NlbGVjdGVkIiwiJGlzRWRpdGluZ1RleHQiLCIkdGV4dFZlcnRpY2FsQWxpZ24iLCJTdHlsZWRUb29sYmFyV3JhcHBlciIsIkFubm90YXRpb25UZXh0IiwiX3JlZiIsImFubm90YXRpb24iLCJ2aWV3cG9ydCIsImlzRWRpdGluZyIsImlzU2VsZWN0ZWQiLCJpc0VkaXRpbmdUZXh0Iiwib25TZWxlY3QiLCJvbkNoYW5nZVRleHQiLCJvblVwZGF0ZUFubm90YXRpb24iLCJfdXNlRHJhZ2dhYmxlIiwidXNlRHJhZ2dhYmxlIiwiaWQiLCJhdHRyaWJ1dGVzIiwibGlzdGVuZXJzIiwic2V0Tm9kZVJlZiIsInRleHRXaWR0aCIsInRleHRIZWlnaHQiLCJsaW5lQ29sb3IiLCJsaW5lV2lkdGgiLCJ0ZXh0VmVydGljYWxBbGlnbiIsImF1dG9TaXplIiwia2luZCIsIl9tYWtlTWFya2VyIiwibWFrZU1hcmtlciIsIngiLCJ5IiwidHgiLCJ0eSIsImlzQXJtIiwiaXNMZWZ0IiwiaXNMZWZ0T3JpZW50ZWQiLCJhbmdsZSIsInN0eWxlIiwidXNlTWVtbyIsIm1pbldpZHRoIiwid2lkdGgiLCJib3R0b20iLCJoZWlnaHQiLCJib3JkZXJCb3R0b20iLCJBbm5vdGF0aW9uS2luZCIsIlRFWFQiLCJ1bmRlZmluZWQiLCJsZWZ0IiwicmlnaHQiLCJoYW5kbGVFZGl0b3JDaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImNoYW5nZSIsInRleHQiLCJlZGl0b3JTdGF0ZSIsInVzZUVmZmVjdCIsIl93aW5kb3ckZ2V0U2VsZWN0aW9uIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwicmVtb3ZlQWxsUmFuZ2VzIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsInJlZiIsIm9uUG9pbnRlckRvd24iLCJldnQiLCJfbGlzdGVuZXJzJG9uUG9pbnRlckQyIiwidGFyZ2V0IiwiRWxlbWVudCIsImNsb3Nlc3QiLCJfbGlzdGVuZXJzJG9uUG9pbnRlckQiLCJvbkNsaWNrIiwic3RvcFByb3BhZ2F0aW9uIiwib25Eb3VibGVDbGljayIsIkxleGljYWxSaWNoVGV4dEVkaXRvciIsImF1dG9TaXplWSIsImlzRWRpdGFibGUiLCJpbml0aWFsVGV4dCIsImxhYmVsIiwib25DaGFuZ2UiLCJMZXhpY2FsVG9vbGJhciIsIm9uQ2hhbmdlVGV4dFZlcnRpY2FsQWxpZ24iLCJ2YWx1ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0ZDLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7dXNlRHJhZ2dhYmxlfSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7QW5ub3RhdGlvbiwgQW5ub3RhdGlvbldpdGhBcm19IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtBbm5vdGF0aW9uS2luZH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHttYWtlTWFya2VyLCBpc0xlZnRPcmllbnRlZCwgTWFwVmlld3BvcnR9IGZyb20gJy4vYW5ub3RhdGlvbi11dGlscyc7XG5pbXBvcnQge0xleGljYWxSaWNoVGV4dEVkaXRvciwgTGV4aWNhbFRvb2xiYXJ9IGZyb20gJy4vbGV4aWNhbC1lZGl0b3InO1xuaW1wb3J0IHtTZXJpYWxpemVkRWRpdG9yU3RhdGV9IGZyb20gJ2xleGljYWwnO1xuXG50eXBlIFN0eWxlZEFubm90YXRpb25UZXh0UHJvcHMgPSB7XG4gICRpc0VkaXRpbmc/OiBib29sZWFuO1xuICAkaXNTZWxlY3RlZD86IGJvb2xlYW47XG4gICRpc0VkaXRpbmdUZXh0PzogYm9vbGVhbjtcbiAgJHRleHRWZXJ0aWNhbEFsaWduPzogc3RyaW5nO1xufTtcblxuY29uc3QgU3R5bGVkQW5ub3RhdGlvblRleHQgPSBzdHlsZWQuZGl2PFN0eWxlZEFubm90YXRpb25UZXh0UHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAjZmZmO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycztcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICAke3Byb3BzID0+XG4gICAgcHJvcHMuJGlzRWRpdGluZ1xuICAgICAgPyBgXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcy4kaXNTZWxlY3RlZCA/ICdyZ2JhKDI1NSwyNTUsMjU1LDAuOCknIDogJ3JnYmEoMjU1LDI1NSwyNTUsMC4yKSd9O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcbiAgICAgICAgfVxuICAgICAgICBjdXJzb3I6IG1vdmU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICBgXG4gICAgICA6IGBcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGEge1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG4gICAgICBgfVxuICAke3Byb3BzID0+XG4gICAgcHJvcHMuJGlzRWRpdGluZ1RleHRcbiAgICAgID8gYFxuICAgIC5lZGl0b3ItaW5uZXIge1xuICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgIH1cbiAgYFxuICAgICAgOiAnJ31cbiAgLmVkaXRvci1pbm5lciB7XG4gICAganVzdGlmeS1jb250ZW50OiAke3Byb3BzID0+XG4gICAgICBwcm9wcy4kdGV4dFZlcnRpY2FsQWxpZ24gPT09ICd0b3AnXG4gICAgICAgID8gJ2ZsZXgtc3RhcnQnXG4gICAgICAgIDogcHJvcHMuJHRleHRWZXJ0aWNhbEFsaWduID09PSAnbWlkZGxlJ1xuICAgICAgICA/ICdjZW50ZXInXG4gICAgICAgIDogJ2ZsZXgtZW5kJ307XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFRvb2xiYXJXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzAsIDMzLCA0MCwgMC45NSk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBwYWRkaW5nOiAycHggNXB4O1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIHotaW5kZXg6IDE7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG5gO1xuXG5leHBvcnQgdHlwZSBBbm5vdGF0aW9uVGV4dFByb3BzID0ge1xuICBhbm5vdGF0aW9uOiBBbm5vdGF0aW9uO1xuICB2aWV3cG9ydDogTWFwVmlld3BvcnQ7XG4gIGlzRWRpdGluZzogYm9vbGVhbjtcbiAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgaXNFZGl0aW5nVGV4dDogYm9vbGVhbjtcbiAgb25TZWxlY3Q6IChpc0VkaXRpbmdUZXh0OiBib29sZWFuKSA9PiB2b2lkO1xuICBvbkNoYW5nZVRleHQ6ICh0ZXh0OiBzdHJpbmcsIGVkaXRvclN0YXRlPzogU2VyaWFsaXplZEVkaXRvclN0YXRlKSA9PiB2b2lkO1xuICBvblVwZGF0ZUFubm90YXRpb246IChjb25maWc6IFBhcnRpYWw8QW5ub3RhdGlvbj4pID0+IHZvaWQ7XG59O1xuXG5jb25zdCBBbm5vdGF0aW9uVGV4dDogRkM8QW5ub3RhdGlvblRleHRQcm9wcz4gPSAoe1xuICBhbm5vdGF0aW9uLFxuICB2aWV3cG9ydCxcbiAgaXNFZGl0aW5nLFxuICBpc1NlbGVjdGVkLFxuICBpc0VkaXRpbmdUZXh0LFxuICBvblNlbGVjdCxcbiAgb25DaGFuZ2VUZXh0LFxuICBvblVwZGF0ZUFubm90YXRpb25cbn0pID0+IHtcbiAgY29uc3Qge2F0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZn0gPSB1c2VEcmFnZ2FibGUoe1xuICAgIGlkOiBgJHthbm5vdGF0aW9uLmlkfTpNT1ZFX1RFWFRgXG4gIH0pO1xuXG4gIGNvbnN0IHt0ZXh0V2lkdGgsIHRleHRIZWlnaHQsIGxpbmVDb2xvciwgbGluZVdpZHRoLCB0ZXh0VmVydGljYWxBbGlnbiwgYXV0b1NpemUsIGtpbmR9ID1cbiAgICBhbm5vdGF0aW9uO1xuICBjb25zdCB7eCwgeSwgdHgsIHR5fSA9IG1ha2VNYXJrZXIoYW5ub3RhdGlvbiwgdmlld3BvcnQpO1xuXG4gIGNvbnN0IGlzQXJtID0gJ2FybUxlbmd0aCcgaW4gYW5ub3RhdGlvbjtcbiAgY29uc3QgaXNMZWZ0ID0gaXNBcm0gJiYgaXNMZWZ0T3JpZW50ZWQoKGFubm90YXRpb24gYXMgQW5ub3RhdGlvbldpdGhBcm0pLmFuZ2xlKTtcblxuICBjb25zdCBzdHlsZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIC4uLihhdXRvU2l6ZSA/IHttaW5XaWR0aDogODB9IDoge3dpZHRoOiB0ZXh0V2lkdGggfHwgMTIwfSksXG4gICAgICBib3R0b206IHZpZXdwb3J0LmhlaWdodCAtICh5ICsgdHkpLFxuICAgICAgYm9yZGVyQm90dG9tOlxuICAgICAgICBraW5kICE9PSBBbm5vdGF0aW9uS2luZC5URVhUID8gYCR7bGluZVdpZHRofXB4IHNvbGlkICR7bGluZUNvbG9yfWAgOiB1bmRlZmluZWQsXG4gICAgICAuLi4oa2luZCA9PT0gQW5ub3RhdGlvbktpbmQuVEVYVFxuICAgICAgICA/IHtsZWZ0OiB4ICsgdHggLSAodGV4dFdpZHRoIHx8IDgwKSAvIDJ9XG4gICAgICAgIDogaXNMZWZ0XG4gICAgICAgID8ge3JpZ2h0OiB2aWV3cG9ydC53aWR0aCAtIHggLSB0eH1cbiAgICAgICAgOiB7bGVmdDogeCArIHR4fSlcbiAgICB9KSxcbiAgICBbYXV0b1NpemUsIGtpbmQsIHRleHRXaWR0aCwgdHgsIHR5LCB2aWV3cG9ydC53aWR0aCwgdmlld3BvcnQuaGVpZ2h0LCB4LCB5LCBpc0xlZnQsIGxpbmVXaWR0aCwgbGluZUNvbG9yXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXRvckNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChjaGFuZ2U6IHt0ZXh0OiBzdHJpbmc7IGVkaXRvclN0YXRlOiBTZXJpYWxpemVkRWRpdG9yU3RhdGV9KSA9PiB7XG4gICAgICBvbkNoYW5nZVRleHQoY2hhbmdlLnRleHQsIGNoYW5nZS5lZGl0b3JTdGF0ZSk7XG4gICAgfSxcbiAgICBbb25DaGFuZ2VUZXh0XVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0VkaXRpbmdUZXh0IHx8ICFpc1NlbGVjdGVkIHx8ICFpc0VkaXRpbmcpIHtcbiAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgfVxuICB9LCBbaXNFZGl0aW5nVGV4dCwgaXNTZWxlY3RlZCwgaXNFZGl0aW5nXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQW5ub3RhdGlvblRleHRcbiAgICAgIHJlZj17c2V0Tm9kZVJlZn1cbiAgICAgICRpc0VkaXRpbmc9e2lzRWRpdGluZ31cbiAgICAgICRpc0VkaXRpbmdUZXh0PXtpc0VkaXRpbmdUZXh0fVxuICAgICAgJGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAkdGV4dFZlcnRpY2FsQWxpZ249e3RleHRWZXJ0aWNhbEFsaWdufVxuICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgey4uLihpc0VkaXRpbmdcbiAgICAgICAgPyB7XG4gICAgICAgICAgICAuLi5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgLi4ubGlzdGVuZXJzLFxuICAgICAgICAgICAgb25Qb2ludGVyRG93bjogKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHt0YXJnZXR9ID0gZXZ0O1xuICAgICAgICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCAmJiB0YXJnZXQuY2xvc2VzdCgnLmxleGljYWwtdG9vbGJhcicpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChpc0VkaXRpbmdUZXh0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgdGFyZ2V0LmNsb3Nlc3QoJy5lZGl0b3ItaW5uZXInKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsaXN0ZW5lcnM/Lm9uUG9pbnRlckRvd24/LihldnQgYXMgYW55KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgbGlzdGVuZXJzPy5vblBvaW50ZXJEb3duPy4oZXZ0IGFzIGFueSk7XG4gICAgICAgICAgICAgIGlmICghaXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIG9uU2VsZWN0KGZhbHNlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgOiB7fSl9XG4gICAgICBvbkNsaWNrPXtldnQgPT4ge1xuICAgICAgICBpZiAoIWlzRWRpdGluZykgcmV0dXJuO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0O1xuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCAmJiB0YXJnZXQuY2xvc2VzdCgnLmxleGljYWwtdG9vbGJhcicpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKCFpc0VkaXRpbmdUZXh0KSB7XG4gICAgICAgICAgb25TZWxlY3QodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgICBvbkRvdWJsZUNsaWNrPXsoKSA9PiB7XG4gICAgICAgIGlmICghaXNFZGl0aW5nKSB7XG4gICAgICAgICAgb25TZWxlY3QodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgPlxuICAgICAgPExleGljYWxSaWNoVGV4dEVkaXRvclxuICAgICAgICB7Li4uKGlzRWRpdGluZ1RleHQgJiYgYW5ub3RhdGlvbi5hdXRvU2l6ZSA/IHt9IDoge3dpZHRoOiB0ZXh0V2lkdGggfHwgdW5kZWZpbmVkfSl9XG4gICAgICAgIHsuLi4oaXNFZGl0aW5nVGV4dCAmJiBhbm5vdGF0aW9uLmF1dG9TaXplWSA/IHt9IDoge2hlaWdodDogdGV4dEhlaWdodCB8fCB1bmRlZmluZWR9KX1cbiAgICAgICAgaXNFZGl0YWJsZT17aXNFZGl0aW5nICYmIGlzRWRpdGluZ1RleHR9XG4gICAgICAgIGVkaXRvclN0YXRlPXthbm5vdGF0aW9uLmVkaXRvclN0YXRlIGFzIFNlcmlhbGl6ZWRFZGl0b3JTdGF0ZSB8IHVuZGVmaW5lZH1cbiAgICAgICAgaW5pdGlhbFRleHQ9e2Fubm90YXRpb24ubGFiZWx9XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVFZGl0b3JDaGFuZ2V9XG4gICAgICA+XG4gICAgICAgIHtpc0VkaXRpbmcgJiYgaXNTZWxlY3RlZCA/IChcbiAgICAgICAgICA8U3R5bGVkVG9vbGJhcldyYXBwZXI+XG4gICAgICAgICAgICA8TGV4aWNhbFRvb2xiYXJcbiAgICAgICAgICAgICAgaXNFZGl0aW5nVGV4dD17aXNFZGl0aW5nVGV4dH1cbiAgICAgICAgICAgICAgdGV4dFZlcnRpY2FsQWxpZ249e3RleHRWZXJ0aWNhbEFsaWdufVxuICAgICAgICAgICAgICBvbkNoYW5nZVRleHRWZXJ0aWNhbEFsaWduPXt2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgb25VcGRhdGVBbm5vdGF0aW9uKHt0ZXh0VmVydGljYWxBbGlnbjogdmFsdWV9KTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRUb29sYmFyV3JhcHBlcj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L0xleGljYWxSaWNoVGV4dEVkaXRvcj5cbiAgICA8L1N0eWxlZEFubm90YXRp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
@@ -0,0 +1,39 @@
1
+ import { Annotation } from '@kepler.gl/types';
2
+ import { AnnotationKind } from '@kepler.gl/constants';
3
+ export type MapViewport = {
4
+ project: (lngLat: [number, number]) => [number, number];
5
+ unproject: (xy: [number, number]) => [number, number];
6
+ longitude: number;
7
+ latitude: number;
8
+ width: number;
9
+ height: number;
10
+ zoom: number;
11
+ };
12
+ export type BaseAnnotationMarker = {
13
+ kind: AnnotationKind;
14
+ x: number;
15
+ y: number;
16
+ tx: number;
17
+ ty: number;
18
+ };
19
+ export type CircleAnnotationMarker = BaseAnnotationMarker & {
20
+ kind: AnnotationKind.CIRCLE;
21
+ ax: number;
22
+ ay: number;
23
+ r: number;
24
+ };
25
+ export type AnnotationMarker = BaseAnnotationMarker | CircleAnnotationMarker;
26
+ export declare function makeMarker(annotation: Annotation, viewport: MapViewport): AnnotationMarker;
27
+ export declare function isLeftOriented(angle: number): boolean;
28
+ export declare function movePoint(annotation: Annotation, delta: {
29
+ x: number;
30
+ y: number;
31
+ }, viewport: MapViewport): Partial<Annotation>;
32
+ export declare function moveText(annotation: Annotation, delta: {
33
+ x: number;
34
+ y: number;
35
+ }, viewport: MapViewport): Partial<Annotation>;
36
+ export declare function resizeCircle(annotation: Annotation, delta: {
37
+ x: number;
38
+ y: number;
39
+ }, viewport: MapViewport): Partial<Annotation>;
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isLeftOriented = isLeftOriented;
8
+ exports.makeMarker = makeMarker;
9
+ exports.movePoint = movePoint;
10
+ exports.moveText = moveText;
11
+ exports.resizeCircle = resizeCircle;
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _webMercator = require("@math.gl/web-mercator");
14
+ var _constants = require("@kepler.gl/constants");
15
+ // SPDX-License-Identifier: MIT
16
+ // Copyright contributors to the kepler.gl project
17
+
18
+ function degreesToRadians(degree) {
19
+ return degree * (Math.PI / 180);
20
+ }
21
+ function calcRadius(viewport, point, radiusInMeters) {
22
+ var _viewport$project = viewport.project(point),
23
+ _viewport$project2 = (0, _slicedToArray2["default"])(_viewport$project, 2),
24
+ x = _viewport$project2[0],
25
+ y = _viewport$project2[1];
26
+ var shifted = (0, _webMercator.addMetersToLngLat)(point, [radiusInMeters, 0, 0]);
27
+ var _viewport$project3 = viewport.project(shifted),
28
+ _viewport$project4 = (0, _slicedToArray2["default"])(_viewport$project3, 2),
29
+ x1 = _viewport$project4[0],
30
+ y1 = _viewport$project4[1];
31
+ var dx = x1 - x;
32
+ var dy = y1 - y;
33
+ return Math.sqrt(dx * dx + dy * dy);
34
+ }
35
+ function makeMarker(annotation, viewport) {
36
+ var kind = annotation.kind,
37
+ anchorPoint = annotation.anchorPoint;
38
+ var angle = (0, _constants.isAnnotationWithArm)(annotation) ? degreesToRadians(annotation.angle) : 0;
39
+ var _viewport$project5 = viewport.project(anchorPoint),
40
+ _viewport$project6 = (0, _slicedToArray2["default"])(_viewport$project5, 2),
41
+ x = _viewport$project6[0],
42
+ y = _viewport$project6[1];
43
+ switch (kind) {
44
+ case _constants.AnnotationKind.CIRCLE:
45
+ {
46
+ var armLength = annotation.armLength,
47
+ radiusInMeters = annotation.radiusInMeters;
48
+ var r = calcRadius(viewport, anchorPoint, radiusInMeters);
49
+ var ax = Math.cos(angle) * r,
50
+ ay = Math.sin(angle) * r;
51
+ var tx = Math.cos(angle) * (r + armLength),
52
+ ty = Math.sin(angle) * (r + armLength);
53
+ return {
54
+ kind: kind,
55
+ x: x,
56
+ y: y,
57
+ ax: ax,
58
+ ay: ay,
59
+ tx: tx,
60
+ ty: ty,
61
+ r: r
62
+ };
63
+ }
64
+ case _constants.AnnotationKind.ARROW:
65
+ case _constants.AnnotationKind.POINT:
66
+ {
67
+ var _armLength = annotation.armLength;
68
+ var _tx = Math.cos(angle) * _armLength,
69
+ _ty = Math.sin(angle) * _armLength;
70
+ return {
71
+ kind: kind,
72
+ x: x,
73
+ y: y,
74
+ tx: _tx,
75
+ ty: _ty
76
+ };
77
+ }
78
+ case _constants.AnnotationKind.TEXT:
79
+ default:
80
+ return {
81
+ kind: kind,
82
+ x: x,
83
+ y: y,
84
+ tx: 0,
85
+ ty: 0
86
+ };
87
+ }
88
+ }
89
+ function isLeftOriented(angle) {
90
+ return angle > 90 || angle < -90;
91
+ }
92
+ function movePoint(annotation, delta, viewport) {
93
+ var anchorPoint = annotation.anchorPoint;
94
+ var _viewport$project7 = viewport.project(anchorPoint),
95
+ _viewport$project8 = (0, _slicedToArray2["default"])(_viewport$project7, 2),
96
+ px = _viewport$project8[0],
97
+ py = _viewport$project8[1];
98
+ var _viewport$unproject = viewport.unproject([px + delta.x, py + delta.y]),
99
+ _viewport$unproject2 = (0, _slicedToArray2["default"])(_viewport$unproject, 2),
100
+ lon = _viewport$unproject2[0],
101
+ lat = _viewport$unproject2[1];
102
+ return {
103
+ anchorPoint: [lon, lat]
104
+ };
105
+ }
106
+ function moveText(annotation, delta, viewport) {
107
+ var marker = makeMarker(annotation, viewport);
108
+ var kind = marker.kind,
109
+ tx = marker.tx,
110
+ ty = marker.ty;
111
+ if (kind === _constants.AnnotationKind.TEXT) {
112
+ return movePoint(annotation, delta, viewport);
113
+ }
114
+ if (!(0, _constants.isAnnotationWithArm)(annotation)) {
115
+ return {};
116
+ }
117
+ var tx1 = tx + delta.x,
118
+ ty1 = ty + delta.y;
119
+ var nextAngle = radiansToDegrees(Math.atan2(ty1, tx1));
120
+ var nextArm;
121
+ switch (kind) {
122
+ case _constants.AnnotationKind.ARROW:
123
+ case _constants.AnnotationKind.POINT:
124
+ nextArm = Math.sqrt(tx1 * tx1 + ty1 * ty1);
125
+ break;
126
+ case _constants.AnnotationKind.CIRCLE:
127
+ nextArm = Math.sqrt(tx1 * tx1 + ty1 * ty1) - marker.r;
128
+ break;
129
+ default:
130
+ nextArm = annotation.armLength;
131
+ }
132
+ return {
133
+ angle: nextAngle,
134
+ armLength: nextArm
135
+ };
136
+ }
137
+ function resizeCircle(annotation, delta, viewport) {
138
+ if (annotation.kind !== _constants.AnnotationKind.CIRCLE) return {};
139
+ var anchorPoint = annotation.anchorPoint,
140
+ radiusInMeters = annotation.radiusInMeters;
141
+ var shifted = (0, _webMercator.addMetersToLngLat)(anchorPoint, [radiusInMeters, 0, 0]);
142
+ var _viewport$project9 = viewport.project(shifted),
143
+ _viewport$project10 = (0, _slicedToArray2["default"])(_viewport$project9, 1),
144
+ x = _viewport$project10[0];
145
+ var newPoint = viewport.unproject([x + delta.x, viewport.project(anchorPoint)[1]]);
146
+ var dx = newPoint[0] - anchorPoint[0];
147
+ var currentRadius = shifted[0] - anchorPoint[0];
148
+ var ratio = currentRadius !== 0 ? (currentRadius + dx) / currentRadius : 1;
149
+ return {
150
+ radiusInMeters: Math.max(0, radiusInMeters * ratio)
151
+ };
152
+ }
153
+ function radiansToDegrees(radians) {
154
+ return radians * (180 / Math.PI);
155
+ }
156
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2ViTWVyY2F0b3IiLCJyZXF1aXJlIiwiX2NvbnN0YW50cyIsImRlZ3JlZXNUb1JhZGlhbnMiLCJkZWdyZWUiLCJNYXRoIiwiUEkiLCJjYWxjUmFkaXVzIiwidmlld3BvcnQiLCJwb2ludCIsInJhZGl1c0luTWV0ZXJzIiwiX3ZpZXdwb3J0JHByb2plY3QiLCJwcm9qZWN0IiwiX3ZpZXdwb3J0JHByb2plY3QyIiwiX3NsaWNlZFRvQXJyYXkyIiwieCIsInkiLCJzaGlmdGVkIiwiYWRkTWV0ZXJzVG9MbmdMYXQiLCJfdmlld3BvcnQkcHJvamVjdDMiLCJfdmlld3BvcnQkcHJvamVjdDQiLCJ4MSIsInkxIiwiZHgiLCJkeSIsInNxcnQiLCJtYWtlTWFya2VyIiwiYW5ub3RhdGlvbiIsImtpbmQiLCJhbmNob3JQb2ludCIsImFuZ2xlIiwiaXNBbm5vdGF0aW9uV2l0aEFybSIsIl92aWV3cG9ydCRwcm9qZWN0NSIsIl92aWV3cG9ydCRwcm9qZWN0NiIsIkFubm90YXRpb25LaW5kIiwiQ0lSQ0xFIiwiYXJtTGVuZ3RoIiwiciIsImF4IiwiY29zIiwiYXkiLCJzaW4iLCJ0eCIsInR5IiwiQVJST1ciLCJQT0lOVCIsIlRFWFQiLCJpc0xlZnRPcmllbnRlZCIsIm1vdmVQb2ludCIsImRlbHRhIiwiX3ZpZXdwb3J0JHByb2plY3Q3IiwiX3ZpZXdwb3J0JHByb2plY3Q4IiwicHgiLCJweSIsIl92aWV3cG9ydCR1bnByb2plY3QiLCJ1bnByb2plY3QiLCJfdmlld3BvcnQkdW5wcm9qZWN0MiIsImxvbiIsImxhdCIsIm1vdmVUZXh0IiwibWFya2VyIiwidHgxIiwidHkxIiwibmV4dEFuZ2xlIiwicmFkaWFuc1RvRGVncmVlcyIsImF0YW4yIiwibmV4dEFybSIsInJlc2l6ZUNpcmNsZSIsIl92aWV3cG9ydCRwcm9qZWN0OSIsIl92aWV3cG9ydCRwcm9qZWN0MTAiLCJuZXdQb2ludCIsImN1cnJlbnRSYWRpdXMiLCJyYXRpbyIsIm1heCIsInJhZGlhbnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge2FkZE1ldGVyc1RvTG5nTGF0fSBmcm9tICdAbWF0aC5nbC93ZWItbWVyY2F0b3InO1xuaW1wb3J0IHtBbm5vdGF0aW9uLCBBbm5vdGF0aW9uV2l0aEFybX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0Fubm90YXRpb25LaW5kLCBpc0Fubm90YXRpb25XaXRoQXJtfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmV4cG9ydCB0eXBlIE1hcFZpZXdwb3J0ID0ge1xuICBwcm9qZWN0OiAobG5nTGF0OiBbbnVtYmVyLCBudW1iZXJdKSA9PiBbbnVtYmVyLCBudW1iZXJdO1xuICB1bnByb2plY3Q6ICh4eTogW251bWJlciwgbnVtYmVyXSkgPT4gW251bWJlciwgbnVtYmVyXTtcbiAgbG9uZ2l0dWRlOiBudW1iZXI7XG4gIGxhdGl0dWRlOiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICB6b29tOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBCYXNlQW5ub3RhdGlvbk1hcmtlciA9IHtcbiAga2luZDogQW5ub3RhdGlvbktpbmQ7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB0eDogbnVtYmVyO1xuICB0eTogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQ2lyY2xlQW5ub3RhdGlvbk1hcmtlciA9IEJhc2VBbm5vdGF0aW9uTWFya2VyICYge1xuICBraW5kOiBBbm5vdGF0aW9uS2luZC5DSVJDTEU7XG4gIGF4OiBudW1iZXI7XG4gIGF5OiBudW1iZXI7XG4gIHI6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEFubm90YXRpb25NYXJrZXIgPSBCYXNlQW5ub3RhdGlvbk1hcmtlciB8IENpcmNsZUFubm90YXRpb25NYXJrZXI7XG5cbmZ1bmN0aW9uIGRlZ3JlZXNUb1JhZGlhbnMoZGVncmVlOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gZGVncmVlICogKE1hdGguUEkgLyAxODApO1xufVxuXG5mdW5jdGlvbiBjYWxjUmFkaXVzKFxuICB2aWV3cG9ydDogTWFwVmlld3BvcnQsXG4gIHBvaW50OiBbbnVtYmVyLCBudW1iZXJdLFxuICByYWRpdXNJbk1ldGVyczogbnVtYmVyXG4pOiBudW1iZXIge1xuICBjb25zdCBbeCwgeV0gPSB2aWV3cG9ydC5wcm9qZWN0KHBvaW50KTtcbiAgY29uc3Qgc2hpZnRlZCA9IGFkZE1ldGVyc1RvTG5nTGF0KHBvaW50LCBbcmFkaXVzSW5NZXRlcnMsIDAsIDBdKSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuICBjb25zdCBbeDEsIHkxXSA9IHZpZXdwb3J0LnByb2plY3Qoc2hpZnRlZCk7XG4gIGNvbnN0IGR4ID0geDEgLSB4O1xuICBjb25zdCBkeSA9IHkxIC0geTtcbiAgcmV0dXJuIE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlTWFya2VyKGFubm90YXRpb246IEFubm90YXRpb24sIHZpZXdwb3J0OiBNYXBWaWV3cG9ydCk6IEFubm90YXRpb25NYXJrZXIge1xuICBjb25zdCB7a2luZCwgYW5jaG9yUG9pbnR9ID0gYW5ub3RhdGlvbjtcbiAgY29uc3QgYW5nbGUgPSBpc0Fubm90YXRpb25XaXRoQXJtKGFubm90YXRpb24pID8gZGVncmVlc1RvUmFkaWFucyhhbm5vdGF0aW9uLmFuZ2xlKSA6IDA7XG4gIGNvbnN0IFt4LCB5XSA9IHZpZXdwb3J0LnByb2plY3QoYW5jaG9yUG9pbnQpO1xuXG4gIHN3aXRjaCAoa2luZCkge1xuICAgIGNhc2UgQW5ub3RhdGlvbktpbmQuQ0lSQ0xFOiB7XG4gICAgICBjb25zdCB7YXJtTGVuZ3RoLCByYWRpdXNJbk1ldGVyc30gPSBhbm5vdGF0aW9uO1xuICAgICAgY29uc3QgciA9IGNhbGNSYWRpdXModmlld3BvcnQsIGFuY2hvclBvaW50LCByYWRpdXNJbk1ldGVycyk7XG4gICAgICBjb25zdCBbYXgsIGF5XSA9IFtNYXRoLmNvcyhhbmdsZSkgKiByLCBNYXRoLnNpbihhbmdsZSkgKiByXTtcbiAgICAgIGNvbnN0IFt0eCwgdHldID0gW01hdGguY29zKGFuZ2xlKSAqIChyICsgYXJtTGVuZ3RoKSwgTWF0aC5zaW4oYW5nbGUpICogKHIgKyBhcm1MZW5ndGgpXTtcbiAgICAgIHJldHVybiB7a2luZCwgeCwgeSwgYXgsIGF5LCB0eCwgdHksIHJ9IGFzIENpcmNsZUFubm90YXRpb25NYXJrZXI7XG4gICAgfVxuICAgIGNhc2UgQW5ub3RhdGlvbktpbmQuQVJST1c6XG4gICAgY2FzZSBBbm5vdGF0aW9uS2luZC5QT0lOVDoge1xuICAgICAgY29uc3Qge2FybUxlbmd0aH0gPSBhbm5vdGF0aW9uO1xuICAgICAgY29uc3QgW3R4LCB0eV0gPSBbTWF0aC5jb3MoYW5nbGUpICogYXJtTGVuZ3RoLCBNYXRoLnNpbihhbmdsZSkgKiBhcm1MZW5ndGhdO1xuICAgICAgcmV0dXJuIHtraW5kLCB4LCB5LCB0eCwgdHl9O1xuICAgIH1cbiAgICBjYXNlIEFubm90YXRpb25LaW5kLlRFWFQ6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB7a2luZCwgeCwgeSwgdHg6IDAsIHR5OiAwfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMZWZ0T3JpZW50ZWQoYW5nbGU6IG51bWJlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gYW5nbGUgPiA5MCB8fCBhbmdsZSA8IC05MDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVQb2ludChcbiAgYW5ub3RhdGlvbjogQW5ub3RhdGlvbixcbiAgZGVsdGE6IHt4OiBudW1iZXI7IHk6IG51bWJlcn0sXG4gIHZpZXdwb3J0OiBNYXBWaWV3cG9ydFxuKTogUGFydGlhbDxBbm5vdGF0aW9uPiB7XG4gIGNvbnN0IHthbmNob3JQb2ludH0gPSBhbm5vdGF0aW9uO1xuICBjb25zdCBbcHgsIHB5XSA9IHZpZXdwb3J0LnByb2plY3QoYW5jaG9yUG9pbnQpO1xuICBjb25zdCBbbG9uLCBsYXRdID0gdmlld3BvcnQudW5wcm9qZWN0KFtweCArIGRlbHRhLngsIHB5ICsgZGVsdGEueV0pO1xuICByZXR1cm4ge2FuY2hvclBvaW50OiBbbG9uLCBsYXRdfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVUZXh0KFxuICBhbm5vdGF0aW9uOiBBbm5vdGF0aW9uLFxuICBkZWx0YToge3g6IG51bWJlcjsgeTogbnVtYmVyfSxcbiAgdmlld3BvcnQ6IE1hcFZpZXdwb3J0XG4pOiBQYXJ0aWFsPEFubm90YXRpb24+IHtcbiAgY29uc3QgbWFya2VyID0gbWFrZU1hcmtlcihhbm5vdGF0aW9uLCB2aWV3cG9ydCk7XG4gIGNvbnN0IHtraW5kLCB0eCwgdHl9ID0gbWFya2VyO1xuXG4gIGlmIChraW5kID09PSBBbm5vdGF0aW9uS2luZC5URVhUKSB7XG4gICAgcmV0dXJuIG1vdmVQb2ludChhbm5vdGF0aW9uLCBkZWx0YSwgdmlld3BvcnQpO1xuICB9XG4gIGlmICghaXNBbm5vdGF0aW9uV2l0aEFybShhbm5vdGF0aW9uKSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGNvbnN0IFt0eDEsIHR5MV0gPSBbdHggKyBkZWx0YS54LCB0eSArIGRlbHRhLnldO1xuICBjb25zdCBuZXh0QW5nbGUgPSByYWRpYW5zVG9EZWdyZWVzKE1hdGguYXRhbjIodHkxLCB0eDEpKTtcbiAgbGV0IG5leHRBcm06IG51bWJlcjtcblxuICBzd2l0Y2ggKGtpbmQpIHtcbiAgICBjYXNlIEFubm90YXRpb25LaW5kLkFSUk9XOlxuICAgIGNhc2UgQW5ub3RhdGlvbktpbmQuUE9JTlQ6XG4gICAgICBuZXh0QXJtID0gTWF0aC5zcXJ0KHR4MSAqIHR4MSArIHR5MSAqIHR5MSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFubm90YXRpb25LaW5kLkNJUkNMRTpcbiAgICAgIG5leHRBcm0gPSBNYXRoLnNxcnQodHgxICogdHgxICsgdHkxICogdHkxKSAtIChtYXJrZXIgYXMgQ2lyY2xlQW5ub3RhdGlvbk1hcmtlcikucjtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBuZXh0QXJtID0gKGFubm90YXRpb24gYXMgQW5ub3RhdGlvbldpdGhBcm0pLmFybUxlbmd0aDtcbiAgfVxuICByZXR1cm4ge2FuZ2xlOiBuZXh0QW5nbGUsIGFybUxlbmd0aDogbmV4dEFybX07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNpemVDaXJjbGUoXG4gIGFubm90YXRpb246IEFubm90YXRpb24sXG4gIGRlbHRhOiB7eDogbnVtYmVyOyB5OiBudW1iZXJ9LFxuICB2aWV3cG9ydDogTWFwVmlld3BvcnRcbik6IFBhcnRpYWw8QW5ub3RhdGlvbj4ge1xuICBpZiAoYW5ub3RhdGlvbi5raW5kICE9PSBBbm5vdGF0aW9uS2luZC5DSVJDTEUpIHJldHVybiB7fTtcbiAgY29uc3Qge2FuY2hvclBvaW50LCByYWRpdXNJbk1ldGVyc30gPSBhbm5vdGF0aW9uO1xuICBjb25zdCBzaGlmdGVkID0gYWRkTWV0ZXJzVG9MbmdMYXQoYW5jaG9yUG9pbnQsIFtyYWRpdXNJbk1ldGVycywgMCwgMF0pIGFzIFtudW1iZXIsIG51bWJlcl07XG4gIGNvbnN0IFt4XSA9IHZpZXdwb3J0LnByb2plY3Qoc2hpZnRlZCk7XG4gIGNvbnN0IG5ld1BvaW50ID0gdmlld3BvcnQudW5wcm9qZWN0KFt4ICsgZGVsdGEueCwgdmlld3BvcnQucHJvamVjdChhbmNob3JQb2ludClbMV1dKTtcbiAgY29uc3QgZHggPSBuZXdQb2ludFswXSAtIGFuY2hvclBvaW50WzBdO1xuICBjb25zdCBjdXJyZW50UmFkaXVzID0gc2hpZnRlZFswXSAtIGFuY2hvclBvaW50WzBdO1xuICBjb25zdCByYXRpbyA9IGN1cnJlbnRSYWRpdXMgIT09IDAgPyAoY3VycmVudFJhZGl1cyArIGR4KSAvIGN1cnJlbnRSYWRpdXMgOiAxO1xuICByZXR1cm4ge3JhZGl1c0luTWV0ZXJzOiBNYXRoLm1heCgwLCByYWRpdXNJbk1ldGVycyAqIHJhdGlvKX07XG59XG5cbmZ1bmN0aW9uIHJhZGlhbnNUb0RlZ3JlZXMocmFkaWFuczogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHJhZGlhbnMgKiAoMTgwIC8gTWF0aC5QSSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLFlBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUxBO0FBQ0E7O0FBaUNBLFNBQVNFLGdCQUFnQkEsQ0FBQ0MsTUFBYyxFQUFVO0VBQ2hELE9BQU9BLE1BQU0sSUFBSUMsSUFBSSxDQUFDQyxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ2pDO0FBRUEsU0FBU0MsVUFBVUEsQ0FDakJDLFFBQXFCLEVBQ3JCQyxLQUF1QixFQUN2QkMsY0FBc0IsRUFDZDtFQUNSLElBQUFDLGlCQUFBLEdBQWVILFFBQVEsQ0FBQ0ksT0FBTyxDQUFDSCxLQUFLLENBQUM7SUFBQUksa0JBQUEsT0FBQUMsZUFBQSxhQUFBSCxpQkFBQTtJQUEvQkksQ0FBQyxHQUFBRixrQkFBQTtJQUFFRyxDQUFDLEdBQUFILGtCQUFBO0VBQ1gsSUFBTUksT0FBTyxHQUFHLElBQUFDLDhCQUFpQixFQUFDVCxLQUFLLEVBQUUsQ0FBQ0MsY0FBYyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBcUI7RUFDcEYsSUFBQVMsa0JBQUEsR0FBaUJYLFFBQVEsQ0FBQ0ksT0FBTyxDQUFDSyxPQUFPLENBQUM7SUFBQUcsa0JBQUEsT0FBQU4sZUFBQSxhQUFBSyxrQkFBQTtJQUFuQ0UsRUFBRSxHQUFBRCxrQkFBQTtJQUFFRSxFQUFFLEdBQUFGLGtCQUFBO0VBQ2IsSUFBTUcsRUFBRSxHQUFHRixFQUFFLEdBQUdOLENBQUM7RUFDakIsSUFBTVMsRUFBRSxHQUFHRixFQUFFLEdBQUdOLENBQUM7RUFDakIsT0FBT1gsSUFBSSxDQUFDb0IsSUFB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
@@ -0,0 +1,7 @@
1
+ export { default as AnnotationOverlay } from './annotation-overlay';
2
+ export { default as AnnotationNode } from './annotation-node';
3
+ export { default as AnnotationText } from './annotation-text';
4
+ export { default as AnnotationManagerFactory } from './annotation-panel';
5
+ export * from './annotation-utils';
6
+ export type { AnnotationOverlayProps } from './annotation-overlay';
7
+ export type { AnnotationManagerProps } from './annotation-panel';
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ var _exportNames = {
8
+ AnnotationOverlay: true,
9
+ AnnotationNode: true,
10
+ AnnotationText: true,
11
+ AnnotationManagerFactory: true
12
+ };
13
+ Object.defineProperty(exports, "AnnotationManagerFactory", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _annotationPanel["default"];
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "AnnotationNode", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _annotationNode["default"];
23
+ }
24
+ });
25
+ Object.defineProperty(exports, "AnnotationOverlay", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _annotationOverlay["default"];
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "AnnotationText", {
32
+ enumerable: true,
33
+ get: function get() {
34
+ return _annotationText["default"];
35
+ }
36
+ });
37
+ var _annotationOverlay = _interopRequireDefault(require("./annotation-overlay"));
38
+ var _annotationNode = _interopRequireDefault(require("./annotation-node"));
39
+ var _annotationText = _interopRequireDefault(require("./annotation-text"));
40
+ var _annotationPanel = _interopRequireDefault(require("./annotation-panel"));
41
+ var _annotationUtils = require("./annotation-utils");
42
+ Object.keys(_annotationUtils).forEach(function (key) {
43
+ if (key === "default" || key === "__esModule") return;
44
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
45
+ if (key in exports && exports[key] === _annotationUtils[key]) return;
46
+ Object.defineProperty(exports, key, {
47
+ enumerable: true,
48
+ get: function get() {
49
+ return _annotationUtils[key];
50
+ }
51
+ });
52
+ });
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYW5ub3RhdGlvbk92ZXJsYXkiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9hbm5vdGF0aW9uTm9kZSIsIl9hbm5vdGF0aW9uVGV4dCIsIl9hbm5vdGF0aW9uUGFuZWwiLCJfYW5ub3RhdGlvblV0aWxzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfZXhwb3J0TmFtZXMiLCJleHBvcnRzIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Fubm90YXRpb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBBbm5vdGF0aW9uT3ZlcmxheX0gZnJvbSAnLi9hbm5vdGF0aW9uLW92ZXJsYXknO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEFubm90YXRpb25Ob2RlfSBmcm9tICcuL2Fubm90YXRpb24tbm9kZSc7XG5leHBvcnQge2RlZmF1bHQgYXMgQW5ub3RhdGlvblRleHR9IGZyb20gJy4vYW5ub3RhdGlvbi10ZXh0JztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBBbm5vdGF0aW9uTWFuYWdlckZhY3Rvcnl9IGZyb20gJy4vYW5ub3RhdGlvbi1wYW5lbCc7XG5leHBvcnQgKiBmcm9tICcuL2Fubm90YXRpb24tdXRpbHMnO1xuZXhwb3J0IHR5cGUge0Fubm90YXRpb25PdmVybGF5UHJvcHN9IGZyb20gJy4vYW5ub3RhdGlvbi1vdmVybGF5JztcbmV4cG9ydCB0eXBlIHtBbm5vdGF0aW9uTWFuYWdlclByb3BzfSBmcm9tICcuL2Fubm90YXRpb24tcGFuZWwnO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxrQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsZ0JBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLGdCQUFBLEdBQUFKLE9BQUE7QUFBQUssTUFBQSxDQUFBQyxJQUFBLENBQUFGLGdCQUFBLEVBQUFHLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFDLFlBQUEsRUFBQUosR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUssT0FBQSxJQUFBQSxPQUFBLENBQUFMLEdBQUEsTUFBQUosZ0JBQUEsQ0FBQUksR0FBQTtFQUFBSCxNQUFBLENBQUFTLGNBQUEsQ0FBQUQsT0FBQSxFQUFBTCxHQUFBO0lBQUFPLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQVosZ0JBQUEsQ0FBQUksR0FBQTtJQUFBO0VBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,3 @@
1
+ export default function ClickableLinkPlugin({ newTab }: {
2
+ newTab?: boolean;
3
+ }): JSX.Element | null;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = ClickableLinkPlugin;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
10
+ var _lexical = require("lexical");
11
+ var _react = require("react");
12
+ // SPDX-License-Identifier: MIT
13
+ // Copyright contributors to the kepler.gl project
14
+
15
+ function ClickableLinkPlugin(_ref) {
16
+ var _ref$newTab = _ref.newTab,
17
+ newTab = _ref$newTab === void 0 ? true : _ref$newTab;
18
+ var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
19
+ _useLexicalComposerCo2 = (0, _slicedToArray2["default"])(_useLexicalComposerCo, 1),
20
+ editor = _useLexicalComposerCo2[0];
21
+ (0, _react.useEffect)(function () {
22
+ function onClick(e) {
23
+ if (editor.isEditable()) {
24
+ return;
25
+ }
26
+ var evt = e;
27
+ var linkDomNode = getLinkDomNode(evt, editor);
28
+ if (!linkDomNode) {
29
+ return;
30
+ }
31
+ var href = linkDomNode.getAttribute('href');
32
+ if (linkDomNode.getAttribute('contenteditable') === 'false' || href == null) {
33
+ return;
34
+ }
35
+ var selection = editor.getEditorState().read(_lexical.$getSelection);
36
+ if ((0, _lexical.$isRangeSelection)(selection) && !selection.isCollapsed()) {
37
+ return;
38
+ }
39
+ if (href && newTab) {
40
+ window.open(href, '_blank', 'noopener,noreferrer');
41
+ } else if (href) {
42
+ window.location.href = href;
43
+ }
44
+ }
45
+ return editor.registerRootListener(function (rootElement, prevRootElement) {
46
+ if (prevRootElement !== null) {
47
+ prevRootElement.removeEventListener('click', onClick);
48
+ }
49
+ if (rootElement !== null) {
50
+ rootElement.addEventListener('click', onClick);
51
+ }
52
+ });
53
+ }, [editor, newTab]);
54
+ return null;
55
+ }
56
+ function isLinkDomNode(domNode) {
57
+ return domNode.nodeName.toLowerCase() === 'a';
58
+ }
59
+ function getLinkDomNode(event, editor) {
60
+ return editor.getEditorState().read(function () {
61
+ var domNode = event.target;
62
+ if (isLinkDomNode(domNode)) {
63
+ return domNode;
64
+ }
65
+ if (domNode.parentNode && isLinkDomNode(domNode.parentNode)) {
66
+ return domNode.parentNode;
67
+ }
68
+ return null;
69
+ });
70
+ }
71
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsInJlcXVpcmUiLCJfbGV4aWNhbCIsIl9yZWFjdCIsIkNsaWNrYWJsZUxpbmtQbHVnaW4iLCJfcmVmIiwiX3JlZiRuZXdUYWIiLCJuZXdUYWIiLCJfdXNlTGV4aWNhbENvbXBvc2VyQ28iLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiX3VzZUxleGljYWxDb21wb3NlckNvMiIsIl9zbGljZWRUb0FycmF5MiIsImVkaXRvciIsInVzZUVmZmVjdCIsIm9uQ2xpY2siLCJlIiwiaXNFZGl0YWJsZSIsImV2dCIsImxpbmtEb21Ob2RlIiwiZ2V0TGlua0RvbU5vZGUiLCJocmVmIiwiZ2V0QXR0cmlidXRlIiwic2VsZWN0aW9uIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiJGdldFNlbGVjdGlvbiIsIiRpc1JhbmdlU2VsZWN0aW9uIiwiaXNDb2xsYXBzZWQiLCJ3aW5kb3ciLCJvcGVuIiwibG9jYXRpb24iLCJyZWdpc3RlclJvb3RMaXN0ZW5lciIsInJvb3RFbGVtZW50IiwicHJldlJvb3RFbGVtZW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImFkZEV2ZW50TGlzdGVuZXIiLCJpc0xpbmtEb21Ob2RlIiwiZG9tTm9kZSIsIm5vZGVOYW1lIiwidG9Mb3dlckNhc2UiLCJldmVudCIsInRhcmdldCIsInBhcmVudE5vZGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYW5ub3RhdGlvbnMvbGV4aWNhbC1lZGl0b3IvY2xpY2thYmxlLWxpbmstcGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7dXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCc7XG5pbXBvcnQgeyRnZXRTZWxlY3Rpb24sICRpc1JhbmdlU2VsZWN0aW9ufSBmcm9tICdsZXhpY2FsJztcbmltcG9ydCB7dXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHtMZXhpY2FsRWRpdG9yfSBmcm9tICdsZXhpY2FsJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ2xpY2thYmxlTGlua1BsdWdpbih7XG4gIG5ld1RhYiA9IHRydWVcbn06IHtcbiAgbmV3VGFiPzogYm9vbGVhbjtcbn0pOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmdW5jdGlvbiBvbkNsaWNrKGU6IEV2ZW50KSB7XG4gICAgICBpZiAoZWRpdG9yLmlzRWRpdGFibGUoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV2dCA9IGUgYXMgTW91c2VFdmVudDtcbiAgICAgIGNvbnN0IGxpbmtEb21Ob2RlID0gZ2V0TGlua0RvbU5vZGUoZXZ0LCBlZGl0b3IpO1xuICAgICAgaWYgKCFsaW5rRG9tTm9kZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBocmVmID0gbGlua0RvbU5vZGUuZ2V0QXR0cmlidXRlKCdocmVmJyk7XG4gICAgICBpZiAobGlua0RvbU5vZGUuZ2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKSA9PT0gJ2ZhbHNlJyB8fCBocmVmID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgkZ2V0U2VsZWN0aW9uKTtcbiAgICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pICYmICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChocmVmICYmIG5ld1RhYikge1xuICAgICAgICB3aW5kb3cub3BlbihocmVmLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcbiAgICAgIH0gZWxzZSBpZiAoaHJlZikge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGhyZWY7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlZGl0b3IucmVnaXN0ZXJSb290TGlzdGVuZXIoXG4gICAgICAocm9vdEVsZW1lbnQ6IG51bGwgfCBIVE1MRWxlbWVudCwgcHJldlJvb3RFbGVtZW50OiBudWxsIHwgSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKHByZXZSb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHByZXZSb290RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIG9uQ2xpY2spO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb290RWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25DbGljayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9LCBbZWRpdG9yLCBuZXdUYWJdKTtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzTGlua0RvbU5vZGUoZG9tTm9kZTogTm9kZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gZG9tTm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYSc7XG59XG5cbmZ1bmN0aW9uIGdldExpbmtEb21Ob2RlKGV2ZW50OiBNb3VzZUV2ZW50LCBlZGl0b3I6IExleGljYWxFZGl0b3IpOiBIVE1MQW5jaG9yRWxlbWVudCB8IG51bGwge1xuICByZXR1cm4gZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgY29uc3QgZG9tTm9kZSA9IGV2ZW50LnRhcmdldCBhcyBOb2RlO1xuICAgIGlmIChpc0xpbmtEb21Ob2RlKGRvbU5vZGUpKSB7XG4gICAgICByZXR1cm4gZG9tTm9kZSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcbiAgICB9XG4gICAgaWYgKGRvbU5vZGUucGFyZW50Tm9kZSAmJiBpc0xpbmtEb21Ob2RlKGRvbU5vZGUucGFyZW50Tm9kZSkpIHtcbiAgICAgIHJldHVybiBkb21Ob2RlLnBhcmVudE5vZGUgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSx1QkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBTEE7QUFDQTs7QUFRZSxTQUFTRyxtQkFBbUJBLENBQUFDLElBQUEsRUFJcEI7RUFBQSxJQUFBQyxXQUFBLEdBQUFELElBQUEsQ0FIckJFLE1BQU07SUFBTkEsTUFBTSxHQUFBRCxXQUFBLGNBQUcsSUFBSSxHQUFBQSxXQUFBO0VBSWIsSUFBQUUscUJBQUEsR0FBaUIsSUFBQUMsaURBQXlCLEVBQUMsQ0FBQztJQUFBQyxzQkFBQSxPQUFBQyxlQUFBLGFBQUFILHFCQUFBO0lBQXJDSSxNQUFNLEdBQUFGLHNCQUFBO0VBQ2IsSUFBQUcsZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsU0FBU0MsT0FBT0EsQ0FBQ0MsQ0FBUSxFQUFFO01BQ3pCLElBQUlILE1BQU0sQ0FBQ0ksVUFBVSxDQUFDLENBQUMsRUFBRTtRQUN2QjtNQUNGO01BRUEsSUFBTUMsR0FBRyxHQUFHRixDQUFlO01BQzNCLElBQU1HLFdBQVcsR0FBR0MsY0FBYyxDQUFDRixHQUFHLEVBQUVMLE1BQU0sQ0FBQztNQUMvQyxJQUFJLENBQUNNLFdBQVcsRUFBRTtRQUNoQjtNQUNGO01BQ0EsSUFBTUUsSUFBSSxHQUFHRixXQUFXLENBQUNHLFlBQVksQ0FBQyxNQUFNLENBQUM7TUFDN0MsSUFBSUgsV0FBVyxDQUFDRyxZQUFZLENBQUMsaUJBQWlCLENBQUMsS0FBSyxPQUFPLElBQUlELElBQUksSUFBSSxJQUFJLEVBQUU7UUFDM0U7TUFDRjtNQUNBLElBQU1FLFNBQVMsR0FBR1YsTUFBTSxDQUFDVyxjQUFjLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUNDLHNCQUFhLENBQUM7TUFDN0QsSUFBSSxJQUFBQywwQkFBaUIsRUFBQ0osU0FBUyxDQUFDLElBQUksQ0FBQ0EsU0FBUyxDQUFDSyxXQUFXLENBQUMsQ0FBQyxFQUFFO1FBQzVEO01BQ0Y7TUFFQSxJQUFJUCxJQUFJLElBQUliLE1BQU0sRUFBRTtRQUNsQnFCLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVCxJQUFJLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixDQUFDO01BQ3BELENBQUMsTUFBTSxJQUFJQSxJQUFJLEVBQUU7UUFDZlEsTUFBTSxDQUFDRSxRQUFRLENBQUNWLElBQUksR0FBR0EsSUFBSTtNQUM3QjtJQUNGO0lBQ0EsT0FBT1IsTUFBTSxDQUFDbUIsb0JBQW9CLENBQ2hDLFVBQUNDLFdBQStCLEVBQUVDLGVBQW1DLEVBQUs7TUFDeEUsSUFBSUEsZUFBZSxLQUFLLElBQUksRUFBRTtRQUM1QkEsZUFBZSxDQUFDQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUVwQixPQUFPLENBQUM7TUFDdkQ7TUFDQSxJQUFJa0IsV0FBVyxLQUFLLElBQUksRUFBRTtRQUN4QkEsV0FBVyxDQUFDRyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUVyQixPQUFPLENBQUM7TUFDaEQ7SUFDRixDQUNGLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ0YsTUFBTSxFQUFFTCxNQUFNLENBQUMsQ0FBQztFQUNwQixPQUFPLElBQUk7QUFDYjtBQUVBLFNBQVM2QixhQUFhQSxDQUFDQyxPQUFhLEVBQVc7RUFDN0MsT0FBT0EsT0FBTyxDQUFDQyxRQUFRLENBQUNDLFdBQVcsQ0FBQyxDQUFDLEtBQUssR0FBRztBQUMvQztBQUVBLFNBQVNwQixjQUFjQSxDQUFDcUIsS0FBaUIsRUFBRTVCLE1BQXFCLEVBQTRCO0VBQzFGLE9BQU9BLE1BQU0sQ0FBQ1csY0FBYyxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLFlBQU07SUFDeEMsSUFBTWEsT0FBTyxHQUFHRyxLQUFLLENBQUNDLE1BQWM7SUFDcEMsSUFBSUwsYUFBYSxDQUFDQyxPQUFPLENBQUMsRUFBRTtNQUMxQixPQUFPQSxPQUFPO0lBQ2hCO0lBQ0EsSUFBSUEsT0FBTyxDQUFDSyxVQUFVLElBQUlOLGFBQWEsQ0FBQ0MsT0FBTyxDQUFDSyxVQUFVLENBQUMsRUFBRTtNQUMzRCxPQUFPTCxPQUFPLENBQUNLLFVBQVU7SUFDM0I7SUFDQSxPQUFPLElBQUk7RUFDYixDQUFDLENBQUM7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1 @@
1
+ export default function FloatingLinkEditorPlugin(): JSX.Element | null;