@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.
- package/dist/annotations/annotation-node.d.ts +11 -0
- package/dist/annotations/annotation-node.js +145 -0
- package/dist/annotations/annotation-overlay.d.ts +16 -0
- package/dist/annotations/annotation-overlay.js +166 -0
- package/dist/annotations/annotation-panel.d.ts +24 -0
- package/dist/annotations/annotation-panel.js +362 -0
- package/dist/annotations/annotation-text.d.ts +16 -0
- package/dist/annotations/annotation-text.js +150 -0
- package/dist/annotations/annotation-utils.d.ts +39 -0
- package/dist/annotations/annotation-utils.js +156 -0
- package/dist/annotations/index.d.ts +7 -0
- package/dist/annotations/index.js +53 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.d.ts +3 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.js +71 -0
- package/dist/annotations/lexical-editor/floating-link-editor.d.ts +1 -0
- package/dist/annotations/lexical-editor/floating-link-editor.js +194 -0
- package/dist/annotations/lexical-editor/index.d.ts +7 -0
- package/dist/annotations/lexical-editor/index.js +78 -0
- package/dist/annotations/lexical-editor/lexical-constants.d.ts +12 -0
- package/dist/annotations/lexical-editor/lexical-constants.js +22 -0
- package/dist/annotations/lexical-editor/lexical-nodes.d.ts +3 -0
- package/dist/annotations/lexical-editor/lexical-nodes.js +13 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +122 -0
- package/dist/annotations/lexical-editor/lexical-theme.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-theme.js +25 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.d.ts +7 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.js +293 -0
- package/dist/annotations/lexical-editor/lexical-utils.d.ts +4 -0
- package/dist/annotations/lexical-editor/lexical-utils.js +45 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.d.ts +36 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
- package/dist/bottom-widget.d.ts +1 -1
- package/dist/bottom-widget.js +12 -6
- package/dist/common/action-panel.js +1 -1
- package/dist/common/animation-control/animation-control.d.ts +1 -0
- package/dist/common/animation-control/animation-control.js +3 -1
- package/dist/common/animation-control/animation-controller.js +8 -6
- package/dist/common/animation-control/export-video-control.d.ts +9 -0
- package/dist/common/animation-control/export-video-control.js +43 -0
- package/dist/common/animation-control/playback-controls.d.ts +4 -2
- package/dist/common/animation-control/playback-controls.js +7 -4
- package/dist/common/checkbox.d.ts +5 -21
- package/dist/common/checkbox.js +58 -70
- package/dist/common/color-legend.d.ts +1 -1
- package/dist/common/color-legend.js +3 -3
- package/dist/common/data-table/canvas.d.ts +1 -1
- package/dist/common/data-table/index.d.ts +2 -2
- package/dist/common/data-table/index.js +3 -3
- package/dist/common/dnd-layer-items.d.ts +4 -0
- package/dist/common/dnd-layer-items.js +6 -2
- package/dist/common/error-boundary.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.js +4 -4
- package/dist/common/flex-container.d.ts +15 -7
- package/dist/common/histogram-plot.js +102 -53
- package/dist/common/icon-button.d.ts +53 -6
- package/dist/common/icons/3d-models/airplane.d.ts +14 -0
- package/dist/common/icons/3d-models/airplane.js +104 -0
- package/dist/common/icons/3d-models/bicycle.d.ts +14 -0
- package/dist/common/icons/3d-models/bicycle.js +426 -0
- package/dist/common/icons/3d-models/boeing.d.ts +14 -0
- package/dist/common/icons/3d-models/boeing.js +119 -0
- package/dist/common/icons/3d-models/car.d.ts +14 -0
- package/dist/common/icons/3d-models/car.js +110 -0
- package/dist/common/icons/3d-models/cargoship.d.ts +14 -0
- package/dist/common/icons/3d-models/cargoship.js +246 -0
- package/dist/common/icons/3d-models/evtol.d.ts +14 -0
- package/dist/common/icons/3d-models/evtol.js +134 -0
- package/dist/common/icons/3d-models/glider.d.ts +14 -0
- package/dist/common/icons/3d-models/glider.js +62 -0
- package/dist/common/icons/3d-models/helicopter.d.ts +14 -0
- package/dist/common/icons/3d-models/helicopter.js +110 -0
- package/dist/common/icons/3d-models/scooter.d.ts +14 -0
- package/dist/common/icons/3d-models/scooter.js +159 -0
- package/dist/common/icons/3d-models/semitruck.d.ts +14 -0
- package/dist/common/icons/3d-models/semitruck.js +177 -0
- package/dist/common/icons/3d-models/truck.d.ts +14 -0
- package/dist/common/icons/3d-models/truck.js +122 -0
- package/dist/common/icons/anchor_window.d.ts +1 -8
- package/dist/common/icons/anchor_window.js +17 -10
- package/dist/common/icons/annotation-text.d.ts +9 -0
- package/dist/common/icons/annotation-text.js +56 -0
- package/dist/common/icons/arrow-down-full.d.ts +2 -1
- package/dist/common/icons/arrow-down-full.js +1 -1
- package/dist/common/icons/folder.d.ts +10 -0
- package/dist/common/icons/folder.js +51 -0
- package/dist/common/icons/index.d.ts +2 -0
- package/dist/common/icons/index.js +15 -1
- package/dist/common/icons/timeline-marker.d.ts +2 -1
- package/dist/common/icons/timeline-marker.js +1 -1
- package/dist/common/item-selector/chickleted-input.d.ts +1 -1
- package/dist/common/item-selector/chickleted-input.js +5 -5
- package/dist/common/item-selector/dropdown-list.d.ts +1 -1
- package/dist/common/item-selector/dropdown-list.js +1 -1
- package/dist/common/item-selector/dropdown-select.d.ts +13 -7
- package/dist/common/item-selector/item-selector.d.ts +1 -1
- package/dist/common/item-selector/item-selector.js +1 -1
- package/dist/common/item-selector/typeahead.d.ts +4 -4
- package/dist/common/item-selector/typeahead.js +1 -3
- package/dist/common/layout-splitter.d.ts +45 -0
- package/dist/common/layout-splitter.js +231 -0
- package/dist/common/line-chart.d.ts +10 -3
- package/dist/common/line-chart.js +219 -52
- package/dist/common/modal.d.ts +11 -5
- package/dist/common/modal.js +1 -1
- package/dist/common/portaled.d.ts +17 -17
- package/dist/common/range-plot.js +4 -2
- package/dist/common/range-slider.d.ts +2 -0
- package/dist/common/range-slider.js +108 -45
- package/dist/common/slider/mouse-event.d.ts +1 -1
- package/dist/common/slider/mouse-event.js +1 -2
- package/dist/common/slider/slider-bar-handle.d.ts +1 -1
- package/dist/common/slider/slider-bar-handle.js +1 -1
- package/dist/common/slider/slider-handle.d.ts +3 -3
- package/dist/common/slider/slider-handle.js +1 -1
- package/dist/common/slider/slider.d.ts +8 -4
- package/dist/common/slider/slider.js +78 -35
- package/dist/common/styled-components.d.ts +628 -178
- package/dist/common/styled-components.js +2 -2
- package/dist/common/time-range-slider-time-title.d.ts +1 -1
- package/dist/common/time-range-slider-time-title.js +5 -5
- package/dist/common/time-range-slider.d.ts +2 -1
- package/dist/common/time-range-slider.js +19 -7
- package/dist/common/timeline-helpers.d.ts +3 -0
- package/dist/common/timeline-helpers.js +57 -0
- package/dist/common/timeline-slider.js +21 -12
- package/dist/common/toolbar-item.js +5 -5
- package/dist/common/toolbar.d.ts +1 -1
- package/dist/common/toolbar.js +4 -4
- package/dist/common/vertical-toolbar.d.ts +13 -3
- package/dist/container.d.ts +3 -2
- package/dist/container.js +2 -2
- package/dist/context.d.ts +1 -1
- package/dist/context.js +1 -1
- package/dist/dnd-context.d.ts +4 -3
- package/dist/dnd-context.js +64 -9
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +5 -6
- package/dist/effects/effect-configurator.js +213 -52
- package/dist/effects/effect-manager.js +3 -3
- package/dist/effects/effect-panel-header.js +34 -17
- package/dist/effects/effect-panel.d.ts +4 -4
- package/dist/effects/effect-panel.js +61 -86
- package/dist/effects/effect-time-configurator.js +10 -10
- package/dist/effects/effect-type-dropdown-list.d.ts +1 -0
- package/dist/effects/effect-type-dropdown-list.js +1 -1
- package/dist/effects/effect-type-list-item.d.ts +2 -1
- package/dist/effects/effect-type-list-item.js +23 -7
- package/dist/effects/effect-type-selector.d.ts +1 -0
- package/dist/effects/effect-type-selector.js +2 -2
- package/dist/effects/surface-fog-section.d.ts +14 -0
- package/dist/effects/surface-fog-section.js +263 -0
- package/dist/filters/components.d.ts +7 -5
- package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +6 -2
- package/dist/filters/index.d.ts +1 -0
- package/dist/filters/index.js +8 -1
- package/dist/filters/polygon-filter.js +2 -2
- package/dist/filters/time-range-filter.js +3 -1
- package/dist/filters/time-widget-settings.d.ts +14 -0
- package/dist/filters/time-widget-settings.js +312 -0
- package/dist/filters/time-widget-top.d.ts +2 -3
- package/dist/filters/time-widget-top.js +32 -39
- package/dist/filters/time-widget.d.ts +3 -2
- package/dist/filters/time-widget.js +285 -9
- package/dist/filters/types.d.ts +3 -3
- package/dist/filters/types.js +1 -1
- package/dist/geocoder/geocoder.d.ts +4 -1
- package/dist/geocoder/geocoder.js +61 -14
- package/dist/geocoder-panel.d.ts +3 -2
- package/dist/geocoder-panel.js +11 -8
- package/dist/hooks/use-dnd-layers.d.ts +4 -3
- package/dist/hooks/use-dnd-layers.js +103 -42
- package/dist/index.d.ts +17 -2
- package/dist/index.js +161 -9
- package/dist/injector.d.ts +1 -1
- package/dist/kepler-gl.d.ts +179 -27
- package/dist/kepler-gl.js +91 -12
- package/dist/loading-indicator.d.ts +3 -1
- package/dist/loading-indicator.js +6 -3
- package/dist/map/annotations/annotation-control.d.ts +16 -0
- package/dist/map/annotations/annotation-control.js +56 -0
- package/dist/map/layer-hover-info.d.ts +7 -3
- package/dist/map/layer-hover-info.js +124 -55
- package/dist/map/locale-panel.d.ts +1 -1
- package/dist/map/locale-panel.js +2 -2
- package/dist/map/map-control-panel.js +3 -2
- package/dist/map/map-control-toolbar.d.ts +33 -8
- package/dist/map/map-control.d.ts +14 -4
- package/dist/map/map-control.js +18 -8
- package/dist/map/map-draw-panel.d.ts +1 -1
- package/dist/map/map-draw-panel.js +7 -4
- package/dist/map/map-legend-panel.d.ts +11 -2
- package/dist/map/map-legend-panel.js +25 -8
- package/dist/map/map-legend.d.ts +20 -3
- package/dist/map/map-legend.js +145 -31
- package/dist/map/map-navigation-control.d.ts +13 -0
- package/dist/map/map-navigation-control.js +143 -0
- package/dist/map/map-popover.js +2 -2
- package/dist/map/split-map-button.d.ts +6 -1
- package/dist/map/split-map-button.js +113 -19
- package/dist/map-container.d.ts +13 -3
- package/dist/map-container.js +269 -59
- package/dist/map-view-state-context.d.ts +1 -0
- package/dist/map-view-state-context.js +1 -1
- package/dist/maps-layout.d.ts +3 -0
- package/dist/maps-layout.js +86 -26
- package/dist/modal-container.d.ts +3 -2
- package/dist/modal-container.js +28 -6
- package/dist/modals/add-map-style-modal.js +173 -200
- package/dist/modals/cloud-tile.d.ts +1 -2
- package/dist/modals/data-table-modal.d.ts +1 -1
- package/dist/modals/data-table-modal.js +146 -194
- package/dist/modals/export-data-modal.js +117 -139
- package/dist/modals/export-map-modal/components.d.ts +9 -5
- package/dist/modals/export-video-modal.d.ts +28 -0
- package/dist/modals/export-video-modal.js +371 -0
- package/dist/modals/export-video-modal.spec.d.ts +1 -0
- package/dist/modals/export-video-modal.spec.js +686 -0
- package/dist/modals/fog-height-animation.d.ts +8 -0
- package/dist/modals/fog-height-animation.js +97 -0
- package/dist/modals/hubble-utils.d.ts +41 -0
- package/dist/modals/hubble-utils.js +294 -0
- package/dist/modals/hubble-utils.spec.d.ts +1 -0
- package/dist/modals/hubble-utils.spec.js +397 -0
- package/dist/modals/modal-dialog.d.ts +1 -1
- package/dist/modals/share-map-modal.d.ts +2 -4
- package/dist/modals/swipe-composite-utils.d.ts +10 -0
- package/dist/modals/swipe-composite-utils.js +108 -0
- package/dist/modals/swipe-export-settings.d.ts +24 -0
- package/dist/modals/swipe-export-settings.js +370 -0
- package/dist/modals/swipe-export-video-container.d.ts +122 -0
- package/dist/modals/swipe-export-video-container.js +630 -0
- package/dist/modals/swipe-export-video-preview.d.ts +68 -0
- package/dist/modals/swipe-export-video-preview.js +339 -0
- package/dist/modals/tilesets-modals/load-data-footer.js +2 -2
- package/dist/modals/tilesets-modals/load-tileset.js +21 -10
- package/dist/modals/tilesets-modals/tileset-bitmap-form.d.ts +14 -0
- package/dist/modals/tilesets-modals/tileset-bitmap-form.js +284 -0
- package/dist/modals/tilesets-modals/tileset-raster-form.js +90 -11
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +3 -2
- package/dist/modals/tilesets-modals/tileset-vector-form.js +58 -4
- package/dist/modals/tilesets-modals/tileset-wms-form.js +4 -3
- package/dist/notification-panel/notification-item.d.ts +1 -53
- package/dist/notification-panel/notification-item.js +47 -75
- package/dist/notification-panel.d.ts +1 -1
- package/dist/notification-panel.js +20 -42
- package/dist/plot-container.js +7 -6
- package/dist/side-panel/add-by-dataset-button.js +3 -3
- package/dist/side-panel/common/dataset-info.js +2 -2
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +7 -3
- package/dist/side-panel/interaction-panel/geocoder-config.d.ts +11 -0
- package/dist/side-panel/interaction-panel/geocoder-config.js +45 -0
- package/dist/side-panel/interaction-panel/interaction-panel.d.ts +3 -2
- package/dist/side-panel/interaction-panel/interaction-panel.js +10 -3
- package/dist/side-panel/layer-manager.d.ts +5 -4
- package/dist/side-panel/layer-manager.js +26 -6
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-scale-selector.js +1 -1
- package/dist/side-panel/layer-panel/color-selector.d.ts +6 -4
- package/dist/side-panel/layer-panel/custom-palette.d.ts +3 -5
- package/dist/side-panel/layer-panel/custom-palette.js +5 -5
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.js +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.js +19 -3
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -11
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +4 -2
- package/dist/side-panel/layer-panel/layer-configurator.js +450 -76
- package/dist/side-panel/layer-panel/layer-group-header.d.ts +15 -0
- package/dist/side-panel/layer-panel/layer-group-header.js +179 -0
- package/dist/side-panel/layer-panel/layer-list.d.ts +9 -4
- package/dist/side-panel/layer-panel/layer-list.js +197 -40
- package/dist/side-panel/layer-panel/layer-panel-header.js +2 -2
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +127 -27
- package/dist/side-panel/layer-panel/scenegraph-model-selector.d.ts +24 -0
- package/dist/side-panel/layer-panel/scenegraph-model-selector.js +123 -0
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +1 -1
- package/dist/side-panel/layer-panel/text-label-panel.js +11 -2
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +2 -10
- package/dist/side-panel/layer-panel/vis-config-slider.d.ts +2 -0
- package/dist/side-panel/layer-panel/vis-config-slider.js +7 -3
- package/dist/side-panel/panel-header.d.ts +1 -0
- package/dist/side-panel/panel-header.js +9 -2
- package/dist/side-panel/panel-tab.d.ts +2 -4
- package/dist/side-panel/panel-tab.js +4 -4
- package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
- package/dist/side-panel/side-bar.d.ts +1 -6
- package/dist/side-panel.d.ts +1 -1
- package/dist/side-panel.js +5 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.js +1 -1
- package/package.json +53 -48
- package/dist/map/layer-selector-panel.d.ts +0 -21
- package/dist/map/layer-selector-panel.js +0 -85
- package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +0 -11
- 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 {};
|