@webiny/lexical-editor 0.0.0-unstable.d65ec29d44
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/LICENSE +21 -0
- package/README.md +17 -0
- package/components/AddRichTextEditorNodeType.d.ts +6 -0
- package/components/AddRichTextEditorNodeType.js +28 -0
- package/components/AddRichTextEditorNodeType.js.map +1 -0
- package/components/AddRichTextEditorPlugin.d.ts +10 -0
- package/components/AddRichTextEditorPlugin.js +31 -0
- package/components/AddRichTextEditorPlugin.js.map +1 -0
- package/components/AddToolbarAction.d.ts +7 -0
- package/components/AddToolbarAction.js +33 -0
- package/components/AddToolbarAction.js.map +1 -0
- package/components/Editor/HeadingEditor.d.ts +7 -0
- package/components/Editor/HeadingEditor.js +28 -0
- package/components/Editor/HeadingEditor.js.map +1 -0
- package/components/Editor/ParagraphEditor.d.ts +7 -0
- package/components/Editor/ParagraphEditor.js +30 -0
- package/components/Editor/ParagraphEditor.js.map +1 -0
- package/components/Editor/RichTextEditor.d.ts +23 -0
- package/components/Editor/RichTextEditor.js +107 -0
- package/components/Editor/RichTextEditor.js.map +1 -0
- package/components/LexicalHtmlRenderer.d.ts +9 -0
- package/components/LexicalHtmlRenderer.js +44 -0
- package/components/LexicalHtmlRenderer.js.map +1 -0
- package/components/Toolbar/HeadingToolbar.d.ts +12 -0
- package/components/Toolbar/HeadingToolbar.js +23 -0
- package/components/Toolbar/HeadingToolbar.js.map +1 -0
- package/components/Toolbar/ParagraphToolbar.d.ts +12 -0
- package/components/Toolbar/ParagraphToolbar.js +23 -0
- package/components/Toolbar/ParagraphToolbar.js.map +1 -0
- package/components/Toolbar/Toolbar.css +414 -0
- package/components/Toolbar/Toolbar.d.ts +13 -0
- package/components/Toolbar/Toolbar.js +161 -0
- package/components/Toolbar/Toolbar.js.map +1 -0
- package/components/ToolbarActions/BoldAction.d.ts +5 -0
- package/components/ToolbarActions/BoldAction.js +38 -0
- package/components/ToolbarActions/BoldAction.js.map +1 -0
- package/components/ToolbarActions/BulletListAction.d.ts +5 -0
- package/components/ToolbarActions/BulletListAction.js +89 -0
- package/components/ToolbarActions/BulletListAction.js.map +1 -0
- package/components/ToolbarActions/CodeHighlightAction.d.ts +6 -0
- package/components/ToolbarActions/CodeHighlightAction.js +39 -0
- package/components/ToolbarActions/CodeHighlightAction.js.map +1 -0
- package/components/ToolbarActions/FontSizeAction.d.ts +2 -0
- package/components/ToolbarActions/FontSizeAction.js +104 -0
- package/components/ToolbarActions/FontSizeAction.js.map +1 -0
- package/components/ToolbarActions/ItalicAction.d.ts +5 -0
- package/components/ToolbarActions/ItalicAction.js +38 -0
- package/components/ToolbarActions/ItalicAction.js.map +1 -0
- package/components/ToolbarActions/LinkAction.d.ts +7 -0
- package/components/ToolbarActions/LinkAction.js +69 -0
- package/components/ToolbarActions/LinkAction.js.map +1 -0
- package/components/ToolbarActions/NumberedListAction.d.ts +5 -0
- package/components/ToolbarActions/NumberedListAction.js +89 -0
- package/components/ToolbarActions/NumberedListAction.js.map +1 -0
- package/components/ToolbarActions/QuoteAction.d.ts +4 -0
- package/components/ToolbarActions/QuoteAction.js +66 -0
- package/components/ToolbarActions/QuoteAction.js.map +1 -0
- package/components/ToolbarActions/UnderlineAction.d.ts +5 -0
- package/components/ToolbarActions/UnderlineAction.js +38 -0
- package/components/ToolbarActions/UnderlineAction.js.map +1 -0
- package/components/ToolbarPresets/HeadingToolbarPreset.d.ts +2 -0
- package/components/ToolbarPresets/HeadingToolbarPreset.js +44 -0
- package/components/ToolbarPresets/HeadingToolbarPreset.js.map +1 -0
- package/components/ToolbarPresets/ParagraphToolbarPreset.d.ts +2 -0
- package/components/ToolbarPresets/ParagraphToolbarPreset.js +59 -0
- package/components/ToolbarPresets/ParagraphToolbarPreset.js.map +1 -0
- package/context/RichTextEditorContext.d.ts +11 -0
- package/context/RichTextEditorContext.js +29 -0
- package/context/RichTextEditorContext.js.map +1 -0
- package/hooks/useRichTextEditor.d.ts +2 -0
- package/hooks/useRichTextEditor.js +15 -0
- package/hooks/useRichTextEditor.js.map +1 -0
- package/images/icons/LICENSE.md +5 -0
- package/images/icons/chat-square-quote.svg +1 -0
- package/images/icons/chevron-down.svg +1 -0
- package/images/icons/code.svg +1 -0
- package/images/icons/link.svg +1 -0
- package/images/icons/list-ol.svg +1 -0
- package/images/icons/list-ul.svg +1 -0
- package/images/icons/pencil-fill.svg +1 -0
- package/images/icons/text-center.svg +1 -0
- package/images/icons/text-left.svg +1 -0
- package/images/icons/text-paragraph.svg +1 -0
- package/images/icons/text-right.svg +1 -0
- package/images/icons/type-bold.svg +1 -0
- package/images/icons/type-h1.svg +1 -0
- package/images/icons/type-h2.svg +1 -0
- package/images/icons/type-h3.svg +1 -0
- package/images/icons/type-h4.svg +1 -0
- package/images/icons/type-h5.svg +1 -0
- package/images/icons/type-h6.svg +1 -0
- package/images/icons/type-italic.svg +1 -0
- package/images/icons/type-strikethrough.svg +1 -0
- package/images/icons/type-underline.svg +1 -0
- package/images/icons/unlink_icon.svg +1 -0
- package/index.d.ts +34 -0
- package/index.js +239 -0
- package/index.js.map +1 -0
- package/nodes/webinyNodes.d.ts +2 -0
- package/nodes/webinyNodes.js +15 -0
- package/nodes/webinyNodes.js.map +1 -0
- package/package.json +38 -0
- package/plugins/AutoLinkPlugin/AutoLinkPlugin.d.ts +11 -0
- package/plugins/AutoLinkPlugin/AutoLinkPlugin.js +46 -0
- package/plugins/AutoLinkPlugin/AutoLinkPlugin.js.map +1 -0
- package/plugins/AutoLinkPlugin/index.d.ts +1 -0
- package/plugins/AutoLinkPlugin/index.js +16 -0
- package/plugins/AutoLinkPlugin/index.js.map +1 -0
- package/plugins/BlurEventPlugin/BlurEventPlugin.d.ts +7 -0
- package/plugins/BlurEventPlugin/BlurEventPlugin.js +28 -0
- package/plugins/BlurEventPlugin/BlurEventPlugin.js.map +1 -0
- package/plugins/ClickableLinkPlugin/ClickableLinkPlugin.d.ts +17 -0
- package/plugins/ClickableLinkPlugin/ClickableLinkPlugin.js +88 -0
- package/plugins/ClickableLinkPlugin/ClickableLinkPlugin.js.map +1 -0
- package/plugins/ClickableLinkPlugin/index.d.ts +1 -0
- package/plugins/ClickableLinkPlugin/index.js +16 -0
- package/plugins/ClickableLinkPlugin/index.js.map +1 -0
- package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.d.ts +1 -0
- package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js +20 -0
- package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js.map +1 -0
- package/plugins/CodeHighlightPlugin/index.d.ts +1 -0
- package/plugins/CodeHighlightPlugin/index.js +16 -0
- package/plugins/CodeHighlightPlugin/index.js.map +1 -0
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.css +118 -0
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.d.ts +7 -0
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js +222 -0
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js.map +1 -0
- package/plugins/FloatingLinkEditorPlugin/index.d.ts +1 -0
- package/plugins/FloatingLinkEditorPlugin/index.js +16 -0
- package/plugins/FloatingLinkEditorPlugin/index.js.map +1 -0
- package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.d.ts +8 -0
- package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.js +34 -0
- package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.js.map +1 -0
- package/plugins/LexicalUpdateStatePlugin/index.d.ts +1 -0
- package/plugins/LexicalUpdateStatePlugin/index.js +16 -0
- package/plugins/LexicalUpdateStatePlugin/index.js.map +1 -0
- package/themes/webinyLexicalTheme.css +422 -0
- package/themes/webinyLexicalTheme.d.ts +10 -0
- package/themes/webinyLexicalTheme.js +107 -0
- package/themes/webinyLexicalTheme.js.map +1 -0
- package/types.d.ts +2 -0
- package/types.js +5 -0
- package/types.js.map +1 -0
- package/ui/Divider.d.ts +2 -0
- package/ui/Divider.js +13 -0
- package/ui/Divider.js.map +1 -0
- package/ui/DropDown.d.ts +25 -0
- package/ui/DropDown.js +168 -0
- package/ui/DropDown.js.map +1 -0
- package/ui/Input.css +32 -0
- package/ui/LinkPreview.css +69 -0
- package/ui/LinkPreview.d.ts +12 -0
- package/ui/LinkPreview.js +101 -0
- package/ui/LinkPreview.js.map +1 -0
- package/ui/Placeholder.css +23 -0
- package/ui/Placeholder.d.ts +13 -0
- package/ui/Placeholder.js +24 -0
- package/ui/Placeholder.js.map +1 -0
- package/ui/TextInput.d.ts +18 -0
- package/ui/TextInput.js +39 -0
- package/ui/TextInput.js.map +1 -0
- package/utils/generateInitialLexicalValue.d.ts +5 -0
- package/utils/generateInitialLexicalValue.js +29 -0
- package/utils/generateInitialLexicalValue.js.map +1 -0
- package/utils/getDOMRangeRect.d.ts +10 -0
- package/utils/getDOMRangeRect.js +27 -0
- package/utils/getDOMRangeRect.js.map +1 -0
- package/utils/getSelectedNode.d.ts +2 -0
- package/utils/getSelectedNode.js +30 -0
- package/utils/getSelectedNode.js.map +1 -0
- package/utils/isValidJSON.d.ts +1 -0
- package/utils/isValidJSON.js +18 -0
- package/utils/isValidJSON.js.map +1 -0
- package/utils/isValidLexicalData.d.ts +2 -0
- package/utils/isValidLexicalData.js +24 -0
- package/utils/isValidLexicalData.js.map +1 -0
- package/utils/point.d.ts +21 -0
- package/utils/point.js +77 -0
- package/utils/point.js.map +1 -0
- package/utils/rect.d.ts +47 -0
- package/utils/rect.js +169 -0
- package/utils/rect.js.map +1 -0
- package/utils/sanitizeUrl.d.ts +8 -0
- package/utils/sanitizeUrl.js +27 -0
- package/utils/sanitizeUrl.js.map +1 -0
- package/utils/setFloatingElemPosition.d.ts +3 -0
- package/utils/setFloatingElemPosition.js +40 -0
- package/utils/setFloatingElemPosition.js.map +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Webiny
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# @webiny/lexical-editor
|
|
2
|
+
[](https://www.npmjs.com/package/@webiny/lexical-editor)
|
|
3
|
+
[](https://www.npmjs.com/package/@webiny/lexical-editor)
|
|
4
|
+
[](https://github.com/prettier/prettier)
|
|
5
|
+
[](http://makeapullrequest.com)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## About
|
|
9
|
+
|
|
10
|
+
This package provides a web text editor with rich text editing features. It's built on top of the Lexical framework.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
To find more about the Lexical framework go to their website [lexical.dev](https://lexical.dev/)
|
|
14
|
+
|
|
15
|
+
## Where is it used?
|
|
16
|
+
|
|
17
|
+
Currently, this packaged is used in [@webiny/app-pagebuilder](../app-page-builder).
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.AddRichTextEditorNodeType = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
var _reactComposition = require("@webiny/react-composition");
|
|
12
|
+
var _RichTextEditor = require("./Editor/RichTextEditor");
|
|
13
|
+
var _excluded = ["nodes", "children"];
|
|
14
|
+
var AddRichTextEditorNodeType = function AddRichTextEditorNodeType(_ref) {
|
|
15
|
+
var type = _ref.type;
|
|
16
|
+
var NodePlugin = (0, _reactComposition.createComponentPlugin)(_RichTextEditor.RichTextEditor, function (Original) {
|
|
17
|
+
return function RichTextEditor(_ref2) {
|
|
18
|
+
var nodes = _ref2.nodes,
|
|
19
|
+
children = _ref2.children,
|
|
20
|
+
rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
|
|
21
|
+
return /*#__PURE__*/_react.default.createElement(Original, Object.assign({}, rest, {
|
|
22
|
+
nodes: [].concat((0, _toConsumableArray2.default)(nodes || []), [type])
|
|
23
|
+
}), children);
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
return /*#__PURE__*/_react.default.createElement(NodePlugin, null);
|
|
27
|
+
};
|
|
28
|
+
exports.AddRichTextEditorNodeType = AddRichTextEditorNodeType;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactComposition","_RichTextEditor","_excluded","AddRichTextEditorNodeType","_ref","type","NodePlugin","createComponentPlugin","RichTextEditor","Original","_ref2","nodes","children","rest","_objectWithoutProperties2","default","createElement","Object","assign","concat","_toConsumableArray2","exports"],"sources":["AddRichTextEditorNodeType.tsx"],"sourcesContent":["import React, { FC } from \"react\";\nimport { Klass, LexicalNode } from \"lexical\";\nimport { createComponentPlugin } from \"@webiny/react-composition\";\nimport { RichTextEditor } from \"~/components/Editor/RichTextEditor\";\n\nexport interface AddRichTextEditorNodeTypeProps {\n type: Klass<LexicalNode>;\n}\n\nexport const AddRichTextEditorNodeType: FC<AddRichTextEditorNodeTypeProps> = ({ type }) => {\n const NodePlugin = createComponentPlugin(RichTextEditor, Original => {\n return function RichTextEditor({ nodes, children, ...rest }): JSX.Element {\n return (\n <Original {...rest} nodes={[...(nodes || []), type]}>\n {children}\n </Original>\n );\n };\n });\n\n return <NodePlugin />;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAAoE,IAAAG,SAAA;AAM7D,IAAMC,yBAA6D,GAAG,SAAhEA,yBAA6DA,CAAAC,IAAA,EAAiB;EAAA,IAAXC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EAChF,IAAMC,UAAU,GAAG,IAAAC,uCAAqB,EAACC,8BAAc,EAAE,UAAAC,QAAQ,EAAI;IACjE,OAAO,SAASD,cAAcA,CAAAE,KAAA,EAA4C;MAAA,IAAzCC,KAAK,GAAAD,KAAA,CAALC,KAAK;QAAEC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;QAAKC,IAAI,OAAAC,yBAAA,CAAAC,OAAA,EAAAL,KAAA,EAAAR,SAAA;MACrD,oBACIL,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACP,QAAQ,EAAAQ,MAAA,CAAAC,MAAA,KAAKL,IAAI;QAAEF,KAAK,KAAAQ,MAAA,KAAAC,mBAAA,CAAAL,OAAA,EAAOJ,KAAK,IAAI,EAAE,IAAGN,IAAI;MAAE,IAC/CO,QAAQ,CACF;IAEnB,CAAC;EACL,CAAC,CAAC;EAEF,oBAAOf,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACV,UAAU,OAAG;AACzB,CAAC;AAACe,OAAA,CAAAlB,yBAAA,GAAAA,yBAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React, { FC } from "react";
|
|
2
|
+
import { LexicalValue } from "../types";
|
|
3
|
+
interface AddRichTextEditorProps {
|
|
4
|
+
toolbar: React.ReactNode;
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
value: LexicalValue;
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export declare const AddRichTextEditorPlugin: FC<AddRichTextEditorProps>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.AddRichTextEditorPlugin = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactComposition = require("@webiny/react-composition");
|
|
10
|
+
var _RichTextEditor = require("./Editor/RichTextEditor");
|
|
11
|
+
var AddRichTextEditorPlugin = function AddRichTextEditorPlugin(_ref) {
|
|
12
|
+
var toolbar = _ref.toolbar,
|
|
13
|
+
placeholder = _ref.placeholder,
|
|
14
|
+
children = _ref.children;
|
|
15
|
+
var RichTextEditorPlugin = /*#__PURE__*/_react.default.memo((0, _reactComposition.createComponentPlugin)(_RichTextEditor.RichTextEditor, function (Original) {
|
|
16
|
+
return function RichTextEditorElem(_ref2) {
|
|
17
|
+
var tag = _ref2.tag,
|
|
18
|
+
value = _ref2.value,
|
|
19
|
+
onChange = _ref2.onChange;
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement(Original, {
|
|
21
|
+
toolbar: toolbar,
|
|
22
|
+
tag: tag,
|
|
23
|
+
placeholder: placeholder,
|
|
24
|
+
value: value,
|
|
25
|
+
onChange: onChange
|
|
26
|
+
}, children);
|
|
27
|
+
};
|
|
28
|
+
}));
|
|
29
|
+
return /*#__PURE__*/_react.default.createElement(RichTextEditorPlugin, null);
|
|
30
|
+
};
|
|
31
|
+
exports.AddRichTextEditorPlugin = AddRichTextEditorPlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactComposition","_RichTextEditor","AddRichTextEditorPlugin","_ref","toolbar","placeholder","children","RichTextEditorPlugin","React","memo","createComponentPlugin","RichTextEditor","Original","RichTextEditorElem","_ref2","tag","value","onChange","default","createElement","exports"],"sources":["AddRichTextEditorPlugin.tsx"],"sourcesContent":["import React, { FC } from \"react\";\nimport { createComponentPlugin } from \"@webiny/react-composition\";\nimport { RichTextEditor } from \"~/components/Editor/RichTextEditor\";\nimport { LexicalValue } from \"~/types\";\n\ninterface AddRichTextEditorProps {\n toolbar: React.ReactNode;\n placeholder?: string;\n value: LexicalValue;\n children?: React.ReactNode;\n}\n\nexport const AddRichTextEditorPlugin: FC<AddRichTextEditorProps> = ({\n toolbar,\n placeholder,\n children\n}) => {\n const RichTextEditorPlugin = React.memo(\n createComponentPlugin(RichTextEditor, Original => {\n return function RichTextEditorElem({ tag, value, onChange }): JSX.Element {\n return (\n <Original\n toolbar={toolbar}\n tag={tag}\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n >\n {children}\n </Original>\n );\n };\n })\n );\n\n return <RichTextEditorPlugin />;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAUO,IAAMG,uBAAmD,GAAG,SAAtDA,uBAAmDA,CAAAC,IAAA,EAI1D;EAAA,IAHFC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPC,WAAW,GAAAF,IAAA,CAAXE,WAAW;IACXC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;EAER,IAAMC,oBAAoB,gBAAGC,cAAK,CAACC,IAAI,CACnC,IAAAC,uCAAqB,EAACC,8BAAc,EAAE,UAAAC,QAAQ,EAAI;IAC9C,OAAO,SAASC,kBAAkBA,CAAAC,KAAA,EAAwC;MAAA,IAArCC,GAAG,GAAAD,KAAA,CAAHC,GAAG;QAAEC,KAAK,GAAAF,KAAA,CAALE,KAAK;QAAEC,QAAQ,GAAAH,KAAA,CAARG,QAAQ;MACrD,oBACIpB,MAAA,CAAAqB,OAAA,CAAAC,aAAA,CAACP,QAAQ;QACLR,OAAO,EAAEA,OAAQ;QACjBW,GAAG,EAAEA,GAAI;QACTV,WAAW,EAAEA,WAAY;QACzBW,KAAK,EAAEA,KAAM;QACbC,QAAQ,EAAEA;MAAS,GAElBX,QAAQ,CACF;IAEnB,CAAC;EACL,CAAC,CAAC,CACL;EAED,oBAAOT,MAAA,CAAAqB,OAAA,CAAAC,aAAA,CAACZ,oBAAoB,OAAG;AACnC,CAAC;AAACa,OAAA,CAAAlB,uBAAA,GAAAA,uBAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.AddToolbarAction = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactComposition = require("@webiny/react-composition");
|
|
10
|
+
var _Toolbar = require("./Toolbar/Toolbar");
|
|
11
|
+
var AddToolbarAction = function AddToolbarAction(_ref) {
|
|
12
|
+
var element = _ref.element,
|
|
13
|
+
targetType = _ref.type;
|
|
14
|
+
var ToolbarPlugin = /*#__PURE__*/_react.default.memo((0, _reactComposition.createComponentPlugin)(_Toolbar.Toolbar, function (Original) {
|
|
15
|
+
return function Toolbar(_ref2) {
|
|
16
|
+
var type = _ref2.type,
|
|
17
|
+
children = _ref2.children,
|
|
18
|
+
anchorElem = _ref2.anchorElem;
|
|
19
|
+
if (!targetType || targetType === type) {
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement(Original, {
|
|
21
|
+
type: type,
|
|
22
|
+
anchorElem: anchorElem
|
|
23
|
+
}, element, children);
|
|
24
|
+
}
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement(Original, {
|
|
26
|
+
anchorElem: anchorElem,
|
|
27
|
+
type: type
|
|
28
|
+
}, children);
|
|
29
|
+
};
|
|
30
|
+
}));
|
|
31
|
+
return /*#__PURE__*/_react.default.createElement(ToolbarPlugin, null);
|
|
32
|
+
};
|
|
33
|
+
exports.AddToolbarAction = AddToolbarAction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactComposition","_Toolbar","AddToolbarAction","_ref","element","targetType","type","ToolbarPlugin","React","memo","createComponentPlugin","Toolbar","Original","_ref2","children","anchorElem","default","createElement","exports"],"sources":["AddToolbarAction.tsx"],"sourcesContent":["import React, { FC } from \"react\";\nimport { createComponentPlugin } from \"@webiny/react-composition\";\nimport { Toolbar } from \"~/components/Toolbar/Toolbar\";\ninterface AddToolbarActionProps {\n type?: \"heading\" | \"paragraph\" | string;\n element: JSX.Element;\n}\n\nexport const AddToolbarAction: FC<AddToolbarActionProps> = ({ element, type: targetType }) => {\n const ToolbarPlugin = React.memo(\n createComponentPlugin(Toolbar, Original => {\n return function Toolbar({ type, children, anchorElem }): JSX.Element {\n if (!targetType || targetType === type) {\n return (\n <Original type={type} anchorElem={anchorElem}>\n {element}\n {children}\n </Original>\n );\n }\n\n return (\n <Original anchorElem={anchorElem} type={type}>\n {children}\n </Original>\n );\n };\n })\n );\n\n return <ToolbarPlugin />;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAMO,IAAMG,gBAA2C,GAAG,SAA9CA,gBAA2CA,CAAAC,IAAA,EAAsC;EAAA,IAAhCC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAQC,UAAU,GAAAF,IAAA,CAAhBG,IAAI;EACvE,IAAMC,aAAa,gBAAGC,cAAK,CAACC,IAAI,CAC5B,IAAAC,uCAAqB,EAACC,gBAAO,EAAE,UAAAC,QAAQ,EAAI;IACvC,OAAO,SAASD,OAAOA,CAAAE,KAAA,EAA8C;MAAA,IAA3CP,IAAI,GAAAO,KAAA,CAAJP,IAAI;QAAEQ,QAAQ,GAAAD,KAAA,CAARC,QAAQ;QAAEC,UAAU,GAAAF,KAAA,CAAVE,UAAU;MAChD,IAAI,CAACV,UAAU,IAAIA,UAAU,KAAKC,IAAI,EAAE;QACpC,oBACIT,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACL,QAAQ;UAACN,IAAI,EAAEA,IAAK;UAACS,UAAU,EAAEA;QAAW,GACxCX,OAAO,EACPU,QAAQ,CACF;MAEnB;MAEA,oBACIjB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACL,QAAQ;QAACG,UAAU,EAAEA,UAAW;QAACT,IAAI,EAAEA;MAAK,GACxCQ,QAAQ,CACF;IAEnB,CAAC;EACL,CAAC,CAAC,CACL;EAED,oBAAOjB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACV,aAAa,OAAG;AAC5B,CAAC;AAACW,OAAA,CAAAhB,gBAAA,GAAAA,gBAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { RichTextEditorProps } from "./RichTextEditor";
|
|
3
|
+
interface HeadingEditorProps extends RichTextEditorProps {
|
|
4
|
+
tag?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
5
|
+
}
|
|
6
|
+
export declare const HeadingEditor: React.FC<HeadingEditorProps>;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.HeadingEditor = void 0;
|
|
8
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _LexicalLinkPlugin = require("@lexical/react/LexicalLinkPlugin");
|
|
11
|
+
var _ClickableLinkPlugin = require("../../plugins/ClickableLinkPlugin/ClickableLinkPlugin");
|
|
12
|
+
var _FloatingLinkEditorPlugin = require("../../plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin");
|
|
13
|
+
var _HeadingToolbar = require("../Toolbar/HeadingToolbar");
|
|
14
|
+
var _RichTextEditor = require("./RichTextEditor");
|
|
15
|
+
var _excluded = ["tag", "placeholder"];
|
|
16
|
+
var HeadingEditor = function HeadingEditor(_ref) {
|
|
17
|
+
var tag = _ref.tag,
|
|
18
|
+
placeholder = _ref.placeholder,
|
|
19
|
+
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement(_RichTextEditor.RichTextEditor, Object.assign({
|
|
21
|
+
toolbar: /*#__PURE__*/_react.default.createElement(_HeadingToolbar.HeadingToolbar, null),
|
|
22
|
+
tag: tag !== null && tag !== void 0 ? tag : "h1",
|
|
23
|
+
placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : "Enter your heading text here..."
|
|
24
|
+
}, rest), /*#__PURE__*/_react.default.createElement(_LexicalLinkPlugin.LinkPlugin, null), /*#__PURE__*/_react.default.createElement(_ClickableLinkPlugin.ClickableLinkPlugin, null), /*#__PURE__*/_react.default.createElement(_FloatingLinkEditorPlugin.FloatingLinkEditorPlugin, {
|
|
25
|
+
anchorElem: document.body
|
|
26
|
+
}));
|
|
27
|
+
};
|
|
28
|
+
exports.HeadingEditor = HeadingEditor;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_LexicalLinkPlugin","_ClickableLinkPlugin","_FloatingLinkEditorPlugin","_HeadingToolbar","_RichTextEditor","_excluded","HeadingEditor","_ref","tag","placeholder","rest","_objectWithoutProperties2","default","createElement","RichTextEditor","Object","assign","toolbar","HeadingToolbar","LinkPlugin","ClickableLinkPlugin","FloatingLinkEditorPlugin","anchorElem","document","body","exports"],"sources":["HeadingEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { LinkPlugin } from \"@lexical/react/LexicalLinkPlugin\";\nimport { ClickableLinkPlugin } from \"~/plugins/ClickableLinkPlugin/ClickableLinkPlugin\";\nimport { FloatingLinkEditorPlugin } from \"~/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin\";\nimport { HeadingToolbar } from \"~/components/Toolbar/HeadingToolbar\";\nimport { RichTextEditor, RichTextEditorProps } from \"~/components/Editor/RichTextEditor\";\n\ninterface HeadingEditorProps extends RichTextEditorProps {\n tag?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n}\n\nexport const HeadingEditor: React.FC<HeadingEditorProps> = ({ tag, placeholder, ...rest }) => {\n return (\n <RichTextEditor\n toolbar={<HeadingToolbar />}\n tag={tag ?? \"h1\"}\n placeholder={placeholder ?? \"Enter your heading text here...\"}\n {...rest}\n >\n <LinkPlugin />\n <ClickableLinkPlugin />\n <FloatingLinkEditorPlugin anchorElem={document.body} />\n </RichTextEditor>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,yBAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAAyF,IAAAM,SAAA;AAMlF,IAAMC,aAA2C,GAAG,SAA9CA,aAA2CA,CAAAC,IAAA,EAAsC;EAAA,IAAhCC,GAAG,GAAAD,IAAA,CAAHC,GAAG;IAAEC,WAAW,GAAAF,IAAA,CAAXE,WAAW;IAAKC,IAAI,OAAAC,yBAAA,CAAAC,OAAA,EAAAL,IAAA,EAAAF,SAAA;EACnF,oBACIR,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACT,eAAA,CAAAU,cAAc,EAAAC,MAAA,CAAAC,MAAA;IACXC,OAAO,eAAEpB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACV,eAAA,CAAAe,cAAc,OAAI;IAC5BV,GAAG,EAAEA,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI,IAAK;IACjBC,WAAW,EAAEA,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI;EAAkC,GAC1DC,IAAI,gBAERb,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACb,kBAAA,CAAAmB,UAAU,OAAG,eACdtB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACZ,oBAAA,CAAAmB,mBAAmB,OAAG,eACvBvB,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACX,yBAAA,CAAAmB,wBAAwB;IAACC,UAAU,EAAEC,QAAQ,CAACC;EAAK,EAAG,CAC1C;AAEzB,CAAC;AAACC,OAAA,CAAAnB,aAAA,GAAAA,aAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { RichTextEditorProps } from "./RichTextEditor";
|
|
3
|
+
interface ParagraphLexicalEditorProps extends RichTextEditorProps {
|
|
4
|
+
tag?: "p";
|
|
5
|
+
}
|
|
6
|
+
declare const ParagraphEditor: React.FC<ParagraphLexicalEditorProps>;
|
|
7
|
+
export { ParagraphEditor };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ParagraphEditor = void 0;
|
|
8
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _LexicalListPlugin = require("@lexical/react/LexicalListPlugin");
|
|
11
|
+
var _CodeHighlightPlugin = require("../../plugins/CodeHighlightPlugin/CodeHighlightPlugin");
|
|
12
|
+
var _LexicalLinkPlugin = require("@lexical/react/LexicalLinkPlugin");
|
|
13
|
+
var _FloatingLinkEditorPlugin = require("../../plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin");
|
|
14
|
+
var _ClickableLinkPlugin = require("../../plugins/ClickableLinkPlugin/ClickableLinkPlugin");
|
|
15
|
+
var _ParagraphToolbar = require("../Toolbar/ParagraphToolbar");
|
|
16
|
+
var _RichTextEditor = require("./RichTextEditor");
|
|
17
|
+
var _excluded = ["placeholder", "tag"];
|
|
18
|
+
var ParagraphEditor = function ParagraphEditor(_ref) {
|
|
19
|
+
var placeholder = _ref.placeholder,
|
|
20
|
+
tag = _ref.tag,
|
|
21
|
+
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
22
|
+
return /*#__PURE__*/_react.default.createElement(_RichTextEditor.RichTextEditor, Object.assign({
|
|
23
|
+
toolbar: /*#__PURE__*/_react.default.createElement(_ParagraphToolbar.ParagraphToolbar, null),
|
|
24
|
+
tag: tag !== null && tag !== void 0 ? tag : "p",
|
|
25
|
+
placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : "Enter your text here..."
|
|
26
|
+
}, rest), /*#__PURE__*/_react.default.createElement(_LexicalLinkPlugin.LinkPlugin, null), /*#__PURE__*/_react.default.createElement(_CodeHighlightPlugin.CodeHighlightPlugin, null), /*#__PURE__*/_react.default.createElement(_ClickableLinkPlugin.ClickableLinkPlugin, null), /*#__PURE__*/_react.default.createElement(_FloatingLinkEditorPlugin.FloatingLinkEditorPlugin, {
|
|
27
|
+
anchorElem: document.body
|
|
28
|
+
}), /*#__PURE__*/_react.default.createElement(_LexicalListPlugin.ListPlugin, null));
|
|
29
|
+
};
|
|
30
|
+
exports.ParagraphEditor = ParagraphEditor;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_LexicalListPlugin","_CodeHighlightPlugin","_LexicalLinkPlugin","_FloatingLinkEditorPlugin","_ClickableLinkPlugin","_ParagraphToolbar","_RichTextEditor","_excluded","ParagraphEditor","_ref","placeholder","tag","rest","_objectWithoutProperties2","default","createElement","RichTextEditor","Object","assign","toolbar","ParagraphToolbar","LinkPlugin","CodeHighlightPlugin","ClickableLinkPlugin","FloatingLinkEditorPlugin","anchorElem","document","body","ListPlugin","exports"],"sources":["ParagraphEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { ListPlugin } from \"@lexical/react/LexicalListPlugin\";\nimport { CodeHighlightPlugin } from \"~/plugins/CodeHighlightPlugin/CodeHighlightPlugin\";\nimport { LinkPlugin } from \"@lexical/react/LexicalLinkPlugin\";\nimport { FloatingLinkEditorPlugin } from \"~/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin\";\nimport { ClickableLinkPlugin } from \"~/plugins/ClickableLinkPlugin/ClickableLinkPlugin\";\nimport { ParagraphToolbar } from \"~/components/Toolbar/ParagraphToolbar\";\nimport { RichTextEditor, RichTextEditorProps } from \"~/components/Editor/RichTextEditor\";\n\ninterface ParagraphLexicalEditorProps extends RichTextEditorProps {\n tag?: \"p\";\n}\n\nconst ParagraphEditor: React.FC<ParagraphLexicalEditorProps> = ({ placeholder, tag, ...rest }) => {\n return (\n <RichTextEditor\n toolbar={<ParagraphToolbar />}\n tag={tag ?? \"p\"}\n placeholder={placeholder ?? \"Enter your text here...\"}\n {...rest}\n >\n <LinkPlugin />\n <CodeHighlightPlugin />\n <ClickableLinkPlugin />\n <FloatingLinkEditorPlugin anchorElem={document.body} />\n <ListPlugin />\n </RichTextEditor>\n );\n};\n\nexport { ParagraphEditor };\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,yBAAA,GAAAJ,OAAA;AACA,IAAAK,oBAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AAAyF,IAAAQ,SAAA;AAMzF,IAAMC,eAAsD,GAAG,SAAzDA,eAAsDA,CAAAC,IAAA,EAAsC;EAAA,IAAhCC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAEC,GAAG,GAAAF,IAAA,CAAHE,GAAG;IAAKC,IAAI,OAAAC,yBAAA,CAAAC,OAAA,EAAAL,IAAA,EAAAF,SAAA;EACvF,oBACIV,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACT,eAAA,CAAAU,cAAc,EAAAC,MAAA,CAAAC,MAAA;IACXC,OAAO,eAAEtB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACV,iBAAA,CAAAe,gBAAgB,OAAI;IAC9BT,GAAG,EAAEA,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI,GAAI;IAChBD,WAAW,EAAEA,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI;EAA0B,GAClDE,IAAI,gBAERf,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACb,kBAAA,CAAAmB,UAAU,OAAG,eACdxB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACd,oBAAA,CAAAqB,mBAAmB,OAAG,eACvBzB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACX,oBAAA,CAAAmB,mBAAmB,OAAG,eACvB1B,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACZ,yBAAA,CAAAqB,wBAAwB;IAACC,UAAU,EAAEC,QAAQ,CAACC;EAAK,EAAG,eACvD9B,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACf,kBAAA,CAAA4B,UAAU,OAAG,CACD;AAEzB,CAAC;AAACC,OAAA,CAAArB,eAAA,GAAAA,eAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { LexicalValue } from "../../types";
|
|
3
|
+
import { Klass, LexicalNode } from "lexical";
|
|
4
|
+
export interface RichTextEditorProps {
|
|
5
|
+
toolbar?: React.ReactNode;
|
|
6
|
+
tag?: string;
|
|
7
|
+
onChange?: (json: LexicalValue) => void;
|
|
8
|
+
value: LexicalValue | null;
|
|
9
|
+
focus?: boolean;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
nodes?: Klass<LexicalNode>[];
|
|
12
|
+
/**
|
|
13
|
+
* @description Lexical plugins
|
|
14
|
+
*/
|
|
15
|
+
children?: React.ReactNode | React.ReactNode[];
|
|
16
|
+
onBlur?: (editorState: LexicalValue) => void;
|
|
17
|
+
height?: number | string;
|
|
18
|
+
width?: number | string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @description Main editor container
|
|
22
|
+
*/
|
|
23
|
+
export declare const RichTextEditor: import("@webiny/react-composition").ComposableFC<RichTextEditorProps>;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.RichTextEditor = void 0;
|
|
9
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _Placeholder = require("../../ui/Placeholder");
|
|
14
|
+
var _generateInitialLexicalValue = require("../../utils/generateInitialLexicalValue");
|
|
15
|
+
var _webinyNodes = require("../../nodes/webinyNodes");
|
|
16
|
+
var _webinyLexicalTheme = require("../../themes/webinyLexicalTheme");
|
|
17
|
+
var _LexicalComposer = require("@lexical/react/LexicalComposer");
|
|
18
|
+
var _LexicalOnChangePlugin = require("@lexical/react/LexicalOnChangePlugin");
|
|
19
|
+
var _LexicalAutoFocusPlugin = require("@lexical/react/LexicalAutoFocusPlugin");
|
|
20
|
+
var _LexicalClearEditorPlugin = require("@lexical/react/LexicalClearEditorPlugin");
|
|
21
|
+
var _LexicalRichTextPlugin = require("@lexical/react/LexicalRichTextPlugin");
|
|
22
|
+
var _LexicalErrorBoundary = _interopRequireDefault(require("@lexical/react/LexicalErrorBoundary"));
|
|
23
|
+
var _reactComposition = require("@webiny/react-composition");
|
|
24
|
+
var _LexicalContentEditable = require("@lexical/react/LexicalContentEditable");
|
|
25
|
+
var _RichTextEditorContext = require("../../context/RichTextEditorContext");
|
|
26
|
+
var _isValidLexicalData = require("../../utils/isValidLexicalData");
|
|
27
|
+
var _LexicalUpdateStatePlugin = require("../../plugins/LexicalUpdateStatePlugin");
|
|
28
|
+
var _BlurEventPlugin = require("../../plugins/BlurEventPlugin/BlurEventPlugin");
|
|
29
|
+
var BaseRichTextEditor = function BaseRichTextEditor(_ref) {
|
|
30
|
+
var toolbar = _ref.toolbar,
|
|
31
|
+
onChange = _ref.onChange,
|
|
32
|
+
value = _ref.value,
|
|
33
|
+
nodes = _ref.nodes,
|
|
34
|
+
placeholder = _ref.placeholder,
|
|
35
|
+
children = _ref.children,
|
|
36
|
+
onBlur = _ref.onBlur,
|
|
37
|
+
focus = _ref.focus,
|
|
38
|
+
width = _ref.width,
|
|
39
|
+
height = _ref.height;
|
|
40
|
+
var placeholderElem = /*#__PURE__*/_react.default.createElement(_Placeholder.Placeholder, null, placeholder || "Enter text...");
|
|
41
|
+
var scrollRef = (0, _react.useRef)(null);
|
|
42
|
+
var _useState = (0, _react.useState)(undefined),
|
|
43
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
44
|
+
floatingAnchorElem = _useState2[0],
|
|
45
|
+
setFloatingAnchorElem = _useState2[1];
|
|
46
|
+
var onRef = function onRef(_floatingAnchorElem) {
|
|
47
|
+
if (_floatingAnchorElem !== null) {
|
|
48
|
+
setFloatingAnchorElem(_floatingAnchorElem);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
var sizeStyle = {
|
|
52
|
+
height: height || "",
|
|
53
|
+
width: width || ""
|
|
54
|
+
};
|
|
55
|
+
var initialConfig = {
|
|
56
|
+
editorState: (0, _isValidLexicalData.isValidLexicalData)(value) ? value : (0, _generateInitialLexicalValue.generateInitialLexicalValue)(),
|
|
57
|
+
namespace: "webiny",
|
|
58
|
+
onError: function onError(error) {
|
|
59
|
+
throw error;
|
|
60
|
+
},
|
|
61
|
+
nodes: [].concat((0, _toConsumableArray2.default)(_webinyNodes.WebinyNodes), (0, _toConsumableArray2.default)(nodes || [])),
|
|
62
|
+
theme: _webinyLexicalTheme.theme
|
|
63
|
+
};
|
|
64
|
+
function handleOnChange(editorState, editor) {
|
|
65
|
+
editorState.read(function () {
|
|
66
|
+
if (typeof onChange === "function") {
|
|
67
|
+
var _editorState = editor.getEditorState();
|
|
68
|
+
onChange(JSON.stringify(_editorState.toJSON()));
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return /*#__PURE__*/_react.default.createElement(_LexicalComposer.LexicalComposer, {
|
|
73
|
+
initialConfig: initialConfig
|
|
74
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
75
|
+
ref: scrollRef,
|
|
76
|
+
style: (0, _objectSpread2.default)({}, sizeStyle)
|
|
77
|
+
}, /*#__PURE__*/_react.default.createElement(_LexicalOnChangePlugin.OnChangePlugin, {
|
|
78
|
+
onChange: handleOnChange
|
|
79
|
+
}), value && /*#__PURE__*/_react.default.createElement(_LexicalUpdateStatePlugin.LexicalUpdateStatePlugin, {
|
|
80
|
+
value: value
|
|
81
|
+
}), /*#__PURE__*/_react.default.createElement(_LexicalClearEditorPlugin.ClearEditorPlugin, null), onBlur && /*#__PURE__*/_react.default.createElement(_BlurEventPlugin.BlurEventPlugin, {
|
|
82
|
+
onBlur: onBlur
|
|
83
|
+
}), focus && /*#__PURE__*/_react.default.createElement(_LexicalAutoFocusPlugin.AutoFocusPlugin, null), children, /*#__PURE__*/_react.default.createElement(_LexicalRichTextPlugin.RichTextPlugin, {
|
|
84
|
+
contentEditable: /*#__PURE__*/_react.default.createElement("div", {
|
|
85
|
+
className: "editor-scroller",
|
|
86
|
+
style: (0, _objectSpread2.default)({}, sizeStyle)
|
|
87
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
88
|
+
className: "editor",
|
|
89
|
+
ref: onRef,
|
|
90
|
+
style: (0, _objectSpread2.default)({}, sizeStyle)
|
|
91
|
+
}, /*#__PURE__*/_react.default.createElement(_LexicalContentEditable.ContentEditable, {
|
|
92
|
+
style: (0, _objectSpread2.default)({
|
|
93
|
+
outline: 0
|
|
94
|
+
}, sizeStyle)
|
|
95
|
+
}))),
|
|
96
|
+
placeholder: placeholderElem,
|
|
97
|
+
ErrorBoundary: _LexicalErrorBoundary.default
|
|
98
|
+
}), floatingAnchorElem && toolbar));
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* @description Main editor container
|
|
103
|
+
*/
|
|
104
|
+
var RichTextEditor = (0, _reactComposition.makeComposable)("RichTextEditor", function (props) {
|
|
105
|
+
return /*#__PURE__*/_react.default.createElement(_RichTextEditorContext.RichTextEditorProvider, null, /*#__PURE__*/_react.default.createElement(BaseRichTextEditor, props));
|
|
106
|
+
});
|
|
107
|
+
exports.RichTextEditor = RichTextEditor;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_Placeholder","_generateInitialLexicalValue","_webinyNodes","_webinyLexicalTheme","_LexicalComposer","_LexicalOnChangePlugin","_LexicalAutoFocusPlugin","_LexicalClearEditorPlugin","_LexicalRichTextPlugin","_LexicalErrorBoundary","_interopRequireDefault","_reactComposition","_LexicalContentEditable","_RichTextEditorContext","_isValidLexicalData","_LexicalUpdateStatePlugin","_BlurEventPlugin","BaseRichTextEditor","_ref","toolbar","onChange","value","nodes","placeholder","children","onBlur","focus","width","height","placeholderElem","default","createElement","Placeholder","scrollRef","useRef","_useState","useState","undefined","_useState2","_slicedToArray2","floatingAnchorElem","setFloatingAnchorElem","onRef","_floatingAnchorElem","sizeStyle","initialConfig","editorState","isValidLexicalData","generateInitialLexicalValue","namespace","onError","error","concat","_toConsumableArray2","WebinyNodes","theme","handleOnChange","editor","read","getEditorState","JSON","stringify","toJSON","LexicalComposer","ref","style","_objectSpread2","OnChangePlugin","LexicalUpdateStatePlugin","ClearEditorPlugin","BlurEventPlugin","AutoFocusPlugin","RichTextPlugin","contentEditable","className","ContentEditable","outline","ErrorBoundary","LexicalErrorBoundary","RichTextEditor","makeComposable","props","RichTextEditorProvider","exports"],"sources":["RichTextEditor.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\";\nimport { LexicalValue } from \"~/types\";\nimport { Placeholder } from \"~/ui/Placeholder\";\nimport { generateInitialLexicalValue } from \"~/utils/generateInitialLexicalValue\";\nimport { WebinyNodes } from \"~/nodes/webinyNodes\";\nimport { theme } from \"~/themes/webinyLexicalTheme\";\nimport { EditorState } from \"lexical/LexicalEditorState\";\nimport { Klass, LexicalEditor, LexicalNode } from \"lexical\";\nimport { LexicalComposer } from \"@lexical/react/LexicalComposer\";\nimport { OnChangePlugin } from \"@lexical/react/LexicalOnChangePlugin\";\nimport { AutoFocusPlugin } from \"@lexical/react/LexicalAutoFocusPlugin\";\nimport { ClearEditorPlugin } from \"@lexical/react/LexicalClearEditorPlugin\";\nimport { RichTextPlugin } from \"@lexical/react/LexicalRichTextPlugin\";\nimport LexicalErrorBoundary from \"@lexical/react/LexicalErrorBoundary\";\nimport { makeComposable } from \"@webiny/react-composition\";\nimport { ContentEditable } from \"@lexical/react/LexicalContentEditable\";\nimport { RichTextEditorProvider } from \"~/context/RichTextEditorContext\";\nimport { isValidLexicalData } from \"~/utils/isValidLexicalData\";\nimport { LexicalUpdateStatePlugin } from \"~/plugins/LexicalUpdateStatePlugin\";\nimport { BlurEventPlugin } from \"~/plugins/BlurEventPlugin/BlurEventPlugin\";\n\nexport interface RichTextEditorProps {\n toolbar?: React.ReactNode;\n tag?: string;\n onChange?: (json: LexicalValue) => void;\n value: LexicalValue | null;\n focus?: boolean;\n placeholder?: string;\n nodes?: Klass<LexicalNode>[];\n /**\n * @description Lexical plugins\n */\n children?: React.ReactNode | React.ReactNode[];\n onBlur?: (editorState: LexicalValue) => void;\n height?: number | string;\n width?: number | string;\n}\n\nconst BaseRichTextEditor: React.FC<RichTextEditorProps> = ({\n toolbar,\n onChange,\n value,\n nodes,\n placeholder,\n children,\n onBlur,\n focus,\n width,\n height\n}: RichTextEditorProps) => {\n const placeholderElem = <Placeholder>{placeholder || \"Enter text...\"}</Placeholder>;\n const scrollRef = useRef(null);\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLElement | undefined>(\n undefined\n );\n\n const onRef = (_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem);\n }\n };\n\n const sizeStyle = {\n height: height || \"\",\n width: width || \"\"\n };\n\n const initialConfig = {\n editorState: isValidLexicalData(value) ? value : generateInitialLexicalValue(),\n namespace: \"webiny\",\n onError: (error: Error) => {\n throw error;\n },\n nodes: [...WebinyNodes, ...(nodes || [])],\n theme: theme\n };\n\n function handleOnChange(editorState: EditorState, editor: LexicalEditor) {\n editorState.read(() => {\n if (typeof onChange === \"function\") {\n const editorState = editor.getEditorState();\n onChange(JSON.stringify(editorState.toJSON()));\n }\n });\n }\n\n return (\n <LexicalComposer initialConfig={initialConfig}>\n <div ref={scrollRef} style={{ ...sizeStyle }}>\n {/* data */}\n <OnChangePlugin onChange={handleOnChange} />\n {value && <LexicalUpdateStatePlugin value={value} />}\n <ClearEditorPlugin />\n {/* Events */}\n {onBlur && <BlurEventPlugin onBlur={onBlur} />}\n {focus && <AutoFocusPlugin />}\n {/* External plugins and components */}\n {children}\n <RichTextPlugin\n contentEditable={\n <div className=\"editor-scroller\" style={{ ...sizeStyle }}>\n <div className=\"editor\" ref={onRef} style={{ ...sizeStyle }}>\n <ContentEditable style={{ outline: 0, ...sizeStyle }} />\n </div>\n </div>\n }\n placeholder={placeholderElem}\n ErrorBoundary={LexicalErrorBoundary}\n />\n {/* Toolbar */}\n {floatingAnchorElem && toolbar}\n </div>\n </LexicalComposer>\n );\n};\n\n/**\n * @description Main editor container\n */\nexport const RichTextEditor = makeComposable<RichTextEditorProps>(\"RichTextEditor\", props => {\n return (\n <RichTextEditorProvider>\n <BaseRichTextEditor {...props} />\n </RichTextEditorProvider>\n );\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { LexicalValue } from "../types";
|
|
3
|
+
import { Klass, LexicalNode } from "lexical";
|
|
4
|
+
interface LexicalHtmlRendererProps {
|
|
5
|
+
nodes?: Klass<LexicalNode>[];
|
|
6
|
+
value: LexicalValue | null;
|
|
7
|
+
}
|
|
8
|
+
export declare const LexicalHtmlRenderer: React.FC<LexicalHtmlRendererProps>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.LexicalHtmlRenderer = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _isValidLexicalData = require("../utils/isValidLexicalData");
|
|
11
|
+
var _generateInitialLexicalValue = require("../utils/generateInitialLexicalValue");
|
|
12
|
+
var _webinyNodes = require("../nodes/webinyNodes");
|
|
13
|
+
var _webinyLexicalTheme = require("../themes/webinyLexicalTheme");
|
|
14
|
+
var _LexicalComposer = require("@lexical/react/LexicalComposer");
|
|
15
|
+
var _LexicalRichTextPlugin = require("@lexical/react/LexicalRichTextPlugin");
|
|
16
|
+
var _LexicalContentEditable = require("@lexical/react/LexicalContentEditable");
|
|
17
|
+
var _LexicalErrorBoundary = _interopRequireDefault(require("@lexical/react/LexicalErrorBoundary"));
|
|
18
|
+
var _LexicalUpdateStatePlugin = require("../plugins/LexicalUpdateStatePlugin");
|
|
19
|
+
var LexicalHtmlRenderer = function LexicalHtmlRenderer(_ref) {
|
|
20
|
+
var nodes = _ref.nodes,
|
|
21
|
+
value = _ref.value;
|
|
22
|
+
var initialConfig = {
|
|
23
|
+
editorState: (0, _isValidLexicalData.isValidLexicalData)(value) ? value : (0, _generateInitialLexicalValue.generateInitialLexicalValue)(),
|
|
24
|
+
namespace: "webiny",
|
|
25
|
+
onError: function onError(error) {
|
|
26
|
+
throw error;
|
|
27
|
+
},
|
|
28
|
+
editable: false,
|
|
29
|
+
nodes: [].concat((0, _toConsumableArray2.default)(_webinyNodes.WebinyNodes), (0, _toConsumableArray2.default)(nodes || [])),
|
|
30
|
+
theme: _webinyLexicalTheme.theme
|
|
31
|
+
};
|
|
32
|
+
return /*#__PURE__*/_react.default.createElement(_LexicalComposer.LexicalComposer, {
|
|
33
|
+
initialConfig: initialConfig
|
|
34
|
+
}, /*#__PURE__*/_react.default.createElement(_LexicalRichTextPlugin.RichTextPlugin, {
|
|
35
|
+
contentEditable: /*#__PURE__*/_react.default.createElement("div", {
|
|
36
|
+
className: "editor"
|
|
37
|
+
}, /*#__PURE__*/_react.default.createElement(_LexicalContentEditable.ContentEditable, null)),
|
|
38
|
+
ErrorBoundary: _LexicalErrorBoundary.default,
|
|
39
|
+
placeholder: null
|
|
40
|
+
}), /*#__PURE__*/_react.default.createElement(_LexicalUpdateStatePlugin.LexicalUpdateStatePlugin, {
|
|
41
|
+
value: value
|
|
42
|
+
}));
|
|
43
|
+
};
|
|
44
|
+
exports.LexicalHtmlRenderer = LexicalHtmlRenderer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_isValidLexicalData","_generateInitialLexicalValue","_webinyNodes","_webinyLexicalTheme","_LexicalComposer","_LexicalRichTextPlugin","_LexicalContentEditable","_LexicalErrorBoundary","_LexicalUpdateStatePlugin","LexicalHtmlRenderer","_ref","nodes","value","initialConfig","editorState","isValidLexicalData","generateInitialLexicalValue","namespace","onError","error","editable","concat","_toConsumableArray2","default","WebinyNodes","theme","createElement","LexicalComposer","RichTextPlugin","contentEditable","className","ContentEditable","ErrorBoundary","LexicalErrorBoundary","placeholder","LexicalUpdateStatePlugin","exports"],"sources":["LexicalHtmlRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { LexicalValue } from \"~/types\";\nimport { isValidLexicalData } from \"~/utils/isValidLexicalData\";\nimport { generateInitialLexicalValue } from \"~/utils/generateInitialLexicalValue\";\nimport { WebinyNodes } from \"~/nodes/webinyNodes\";\nimport { theme } from \"~/themes/webinyLexicalTheme\";\nimport { LexicalComposer } from \"@lexical/react/LexicalComposer\";\nimport { RichTextPlugin } from \"@lexical/react/LexicalRichTextPlugin\";\nimport { ContentEditable } from \"@lexical/react/LexicalContentEditable\";\nimport LexicalErrorBoundary from \"@lexical/react/LexicalErrorBoundary\";\nimport { LexicalUpdateStatePlugin } from \"~/plugins/LexicalUpdateStatePlugin\";\nimport { Klass, LexicalNode } from \"lexical\";\n\ninterface LexicalHtmlRendererProps {\n nodes?: Klass<LexicalNode>[];\n value: LexicalValue | null;\n}\n\nexport const LexicalHtmlRenderer: React.FC<LexicalHtmlRendererProps> = ({ nodes, value }) => {\n const initialConfig = {\n editorState: isValidLexicalData(value) ? value : generateInitialLexicalValue(),\n namespace: \"webiny\",\n onError: (error: Error) => {\n throw error;\n },\n editable: false,\n nodes: [...WebinyNodes, ...(nodes || [])],\n theme: theme\n };\n\n return (\n <LexicalComposer initialConfig={initialConfig}>\n <RichTextPlugin\n contentEditable={\n <div className=\"editor\">\n <ContentEditable />\n </div>\n }\n ErrorBoundary={LexicalErrorBoundary}\n placeholder={null}\n />\n <LexicalUpdateStatePlugin value={value} />\n </LexicalComposer>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,4BAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,sBAAA,GAAAN,OAAA;AACA,IAAAO,uBAAA,GAAAP,OAAA;AACA,IAAAQ,qBAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,yBAAA,GAAAT,OAAA;AAQO,IAAMU,mBAAuD,GAAG,SAA1DA,mBAAuDA,CAAAC,IAAA,EAAyB;EAAA,IAAnBC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;EAClF,IAAMC,aAAa,GAAG;IAClBC,WAAW,EAAE,IAAAC,sCAAkB,EAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,IAAAI,wDAA2B,GAAE;IAC9EC,SAAS,EAAE,QAAQ;IACnBC,OAAO,EAAE,SAAAA,QAACC,KAAY,EAAK;MACvB,MAAMA,KAAK;IACf,CAAC;IACDC,QAAQ,EAAE,KAAK;IACfT,KAAK,KAAAU,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAAMC,wBAAW,OAAAF,mBAAA,CAAAC,OAAA,EAAMZ,KAAK,IAAI,EAAE,EAAE;IACzCc,KAAK,EAAEA;EACX,CAAC;EAED,oBACI5B,MAAA,CAAA0B,OAAA,CAAAG,aAAA,CAACtB,gBAAA,CAAAuB,eAAe;IAACd,aAAa,EAAEA;EAAc,gBAC1ChB,MAAA,CAAA0B,OAAA,CAAAG,aAAA,CAACrB,sBAAA,CAAAuB,cAAc;IACXC,eAAe,eACXhC,MAAA,CAAA0B,OAAA,CAAAG,aAAA;MAAKI,SAAS,EAAC;IAAQ,gBACnBjC,MAAA,CAAA0B,OAAA,CAAAG,aAAA,CAACpB,uBAAA,CAAAyB,eAAe,OAAG,CAE1B;IACDC,aAAa,EAAEC,6BAAqB;IACpCC,WAAW,EAAE;EAAK,EACpB,eACFrC,MAAA,CAAA0B,OAAA,CAAAG,aAAA,CAAClB,yBAAA,CAAA2B,wBAAwB;IAACvB,KAAK,EAAEA;EAAM,EAAG,CAC5B;AAE1B,CAAC;AAACwB,OAAA,CAAA3B,mBAAA,GAAAA,mBAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="web" />
|
|
2
|
+
import { FC } from "react";
|
|
3
|
+
interface HeadingToolbarProps {
|
|
4
|
+
anchorElem?: HTMLElement;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Toolbar with actions specific for the heading elements from H1-H6.
|
|
8
|
+
* @param anchorElem
|
|
9
|
+
* @constructor
|
|
10
|
+
*/
|
|
11
|
+
export declare const HeadingToolbar: FC<HeadingToolbarProps>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.HeadingToolbar = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _Toolbar = require("./Toolbar");
|
|
10
|
+
/**
|
|
11
|
+
* Toolbar with actions specific for the heading elements from H1-H6.
|
|
12
|
+
* @param anchorElem
|
|
13
|
+
* @constructor
|
|
14
|
+
*/
|
|
15
|
+
var HeadingToolbar = function HeadingToolbar(_ref) {
|
|
16
|
+
var _ref$anchorElem = _ref.anchorElem,
|
|
17
|
+
anchorElem = _ref$anchorElem === void 0 ? document.body : _ref$anchorElem;
|
|
18
|
+
return /*#__PURE__*/_react.default.createElement(_Toolbar.Toolbar, {
|
|
19
|
+
type: "heading",
|
|
20
|
+
anchorElem: anchorElem
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
exports.HeadingToolbar = HeadingToolbar;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_Toolbar","HeadingToolbar","_ref","_ref$anchorElem","anchorElem","document","body","default","createElement","Toolbar","type","exports"],"sources":["HeadingToolbar.tsx"],"sourcesContent":["import React, { FC } from \"react\";\nimport { Toolbar } from \"~/components/Toolbar/Toolbar\";\n\ninterface HeadingToolbarProps {\n anchorElem?: HTMLElement;\n}\n\n/**\n * Toolbar with actions specific for the heading elements from H1-H6.\n * @param anchorElem\n * @constructor\n */\nexport const HeadingToolbar: FC<HeadingToolbarProps> = ({ anchorElem = document.body }) => {\n return <Toolbar type={\"heading\"} anchorElem={anchorElem} />;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAMA;AACA;AACA;AACA;AACA;AACO,IAAME,cAAuC,GAAG,SAA1CA,cAAuCA,CAAAC,IAAA,EAAuC;EAAA,IAAAC,eAAA,GAAAD,IAAA,CAAjCE,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAGE,QAAQ,CAACC,IAAI,GAAAH,eAAA;EAChF,oBAAON,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACR,QAAA,CAAAS,OAAO;IAACC,IAAI,EAAE,SAAU;IAACN,UAAU,EAAEA;EAAW,EAAG;AAC/D,CAAC;AAACO,OAAA,CAAAV,cAAA,GAAAA,cAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="web" />
|
|
2
|
+
import { FC } from "react";
|
|
3
|
+
interface ParagraphToolbarProps {
|
|
4
|
+
anchorElem?: HTMLElement;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Toolbar with actions for rich text editing specific for the paragraph element <p>.
|
|
8
|
+
* @param anchorElem
|
|
9
|
+
* @constructor
|
|
10
|
+
*/
|
|
11
|
+
export declare const ParagraphToolbar: FC<ParagraphToolbarProps>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ParagraphToolbar = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _Toolbar = require("./Toolbar");
|
|
10
|
+
/**
|
|
11
|
+
* Toolbar with actions for rich text editing specific for the paragraph element <p>.
|
|
12
|
+
* @param anchorElem
|
|
13
|
+
* @constructor
|
|
14
|
+
*/
|
|
15
|
+
var ParagraphToolbar = function ParagraphToolbar(_ref) {
|
|
16
|
+
var _ref$anchorElem = _ref.anchorElem,
|
|
17
|
+
anchorElem = _ref$anchorElem === void 0 ? document.body : _ref$anchorElem;
|
|
18
|
+
return /*#__PURE__*/_react.default.createElement(_Toolbar.Toolbar, {
|
|
19
|
+
type: "paragraph",
|
|
20
|
+
anchorElem: anchorElem
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
exports.ParagraphToolbar = ParagraphToolbar;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_Toolbar","ParagraphToolbar","_ref","_ref$anchorElem","anchorElem","document","body","default","createElement","Toolbar","type","exports"],"sources":["ParagraphToolbar.tsx"],"sourcesContent":["import React, { FC } from \"react\";\nimport { Toolbar } from \"~/components/Toolbar/Toolbar\";\n\ninterface ParagraphToolbarProps {\n anchorElem?: HTMLElement;\n}\n\n/**\n * Toolbar with actions for rich text editing specific for the paragraph element <p>.\n * @param anchorElem\n * @constructor\n */\nexport const ParagraphToolbar: FC<ParagraphToolbarProps> = ({ anchorElem = document.body }) => {\n return <Toolbar type={\"paragraph\"} anchorElem={anchorElem} />;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAMA;AACA;AACA;AACA;AACA;AACO,IAAME,gBAA2C,GAAG,SAA9CA,gBAA2CA,CAAAC,IAAA,EAAuC;EAAA,IAAAC,eAAA,GAAAD,IAAA,CAAjCE,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAGE,QAAQ,CAACC,IAAI,GAAAH,eAAA;EACpF,oBAAON,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACR,QAAA,CAAAS,OAAO;IAACC,IAAI,EAAE,WAAY;IAACN,UAAU,EAAEA;EAAW,EAAG;AACjE,CAAC;AAACO,OAAA,CAAAV,gBAAA,GAAAA,gBAAA"}
|