@webiny/lexical-editor 0.0.0-unstable.1145e7667f
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/commands/webiny-list.d.ts +7 -0
- package/commands/webiny-list.js +13 -0
- package/commands/webiny-list.js.map +1 -0
- package/commands/webiny-quote.d.ts +5 -0
- package/commands/webiny-quote.js +9 -0
- package/commands/webiny-quote.js.map +1 -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 +12 -0
- package/components/AddRichTextEditorPlugin.js +33 -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 +29 -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 +26 -0
- package/components/Editor/RichTextEditor.js +138 -0
- package/components/Editor/RichTextEditor.js.map +1 -0
- package/components/LexicalEditorConfig/LexicalEditorConfig.d.ts +9 -0
- package/components/LexicalEditorConfig/LexicalEditorConfig.js +17 -0
- package/components/LexicalEditorConfig/LexicalEditorConfig.js.map +1 -0
- package/components/LexicalHtmlRenderer.d.ts +16 -0
- package/components/LexicalHtmlRenderer.js +67 -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 +423 -0
- package/components/Toolbar/Toolbar.d.ts +13 -0
- package/components/Toolbar/Toolbar.js +181 -0
- package/components/Toolbar/Toolbar.js.map +1 -0
- package/components/ToolbarActions/BoldAction.d.ts +2 -0
- package/components/ToolbarActions/BoldAction.js +43 -0
- package/components/ToolbarActions/BoldAction.js.map +1 -0
- package/components/ToolbarActions/BulletListAction.d.ts +2 -0
- package/components/ToolbarActions/BulletListAction.js +51 -0
- package/components/ToolbarActions/BulletListAction.js.map +1 -0
- package/components/ToolbarActions/CodeHighlightAction.d.ts +2 -0
- package/components/ToolbarActions/CodeHighlightAction.js +43 -0
- package/components/ToolbarActions/CodeHighlightAction.js.map +1 -0
- package/components/ToolbarActions/FontColorAction.d.ts +11 -0
- package/components/ToolbarActions/FontColorAction.js +83 -0
- package/components/ToolbarActions/FontColorAction.js.map +1 -0
- package/components/ToolbarActions/FontSizeAction.d.ts +2 -0
- package/components/ToolbarActions/FontSizeAction.js +101 -0
- package/components/ToolbarActions/FontSizeAction.js.map +1 -0
- package/components/ToolbarActions/ItalicAction.d.ts +2 -0
- package/components/ToolbarActions/ItalicAction.js +43 -0
- package/components/ToolbarActions/ItalicAction.js.map +1 -0
- package/components/ToolbarActions/LinkAction.d.ts +2 -0
- package/components/ToolbarActions/LinkAction.js +64 -0
- package/components/ToolbarActions/LinkAction.js.map +1 -0
- package/components/ToolbarActions/NumberedListAction.d.ts +2 -0
- package/components/ToolbarActions/NumberedListAction.js +53 -0
- package/components/ToolbarActions/NumberedListAction.js.map +1 -0
- package/components/ToolbarActions/QuoteAction.d.ts +2 -0
- package/components/ToolbarActions/QuoteAction.js +53 -0
- package/components/ToolbarActions/QuoteAction.js.map +1 -0
- package/components/ToolbarActions/TypographyAction.d.ts +11 -0
- package/components/ToolbarActions/TypographyAction.js +118 -0
- package/components/ToolbarActions/TypographyAction.js.map +1 -0
- package/components/ToolbarActions/UnderlineAction.d.ts +2 -0
- package/components/ToolbarActions/UnderlineAction.js +43 -0
- package/components/ToolbarActions/UnderlineAction.js.map +1 -0
- package/components/ToolbarPresets/HeadingToolbarPreset.d.ts +2 -0
- package/components/ToolbarPresets/HeadingToolbarPreset.js +52 -0
- package/components/ToolbarPresets/HeadingToolbarPreset.js.map +1 -0
- package/components/ToolbarPresets/ParagraphToolbarPreset.d.ts +2 -0
- package/components/ToolbarPresets/ParagraphToolbarPreset.js +67 -0
- package/components/ToolbarPresets/ParagraphToolbarPreset.js.map +1 -0
- package/context/FontColorActionContext.d.ts +6 -0
- package/context/FontColorActionContext.js +10 -0
- package/context/FontColorActionContext.js.map +1 -0
- package/context/RichTextEditorContext.d.ts +21 -0
- package/context/RichTextEditorContext.js +56 -0
- package/context/RichTextEditorContext.js.map +1 -0
- package/context/SharedHistoryContext.d.ts +11 -0
- package/context/SharedHistoryContext.js +26 -0
- package/context/SharedHistoryContext.js.map +1 -0
- package/context/TypographyActionContext.d.ts +7 -0
- package/context/TypographyActionContext.js +10 -0
- package/context/TypographyActionContext.js.map +1 -0
- package/hooks/useFontColorPicker.d.ts +2 -0
- package/hooks/useFontColorPicker.js +15 -0
- package/hooks/useFontColorPicker.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/hooks/useTypographyAction.d.ts +1 -0
- package/hooks/useTypographyAction.js +15 -0
- package/hooks/useTypographyAction.js.map +1 -0
- package/hooks/useWebinyList.d.ts +2 -0
- package/hooks/useWebinyList.js +39 -0
- package/hooks/useWebinyList.js.map +1 -0
- package/hooks/useWebinyQuote.d.ts +2 -0
- package/hooks/useWebinyQuote.js +20 -0
- package/hooks/useWebinyQuote.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/font-color.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 +40 -0
- package/index.js +281 -0
- package/index.js.map +1 -0
- package/nodes/FontColorNode.d.ts +43 -0
- package/nodes/FontColorNode.js +127 -0
- package/nodes/FontColorNode.js.map +1 -0
- package/nodes/TypographyElementNode.d.ts +42 -0
- package/nodes/TypographyElementNode.js +154 -0
- package/nodes/TypographyElementNode.js.map +1 -0
- package/nodes/WebinyQuoteNode.d.ts +29 -0
- package/nodes/WebinyQuoteNode.js +148 -0
- package/nodes/WebinyQuoteNode.js.map +1 -0
- package/nodes/list-node/WebinyListItemNode.d.ts +46 -0
- package/nodes/list-node/WebinyListItemNode.js +441 -0
- package/nodes/list-node/WebinyListItemNode.js.map +1 -0
- package/nodes/list-node/WebinyListNode.d.ts +38 -0
- package/nodes/list-node/WebinyListNode.js +253 -0
- package/nodes/list-node/WebinyListNode.js.map +1 -0
- package/nodes/list-node/formatList.d.ts +12 -0
- package/nodes/list-node/formatList.js +423 -0
- package/nodes/list-node/formatList.js.map +1 -0
- package/nodes/webinyNodes.d.ts +7 -0
- package/nodes/webinyNodes.js +21 -0
- package/nodes/webinyNodes.js.map +1 -0
- package/package.json +41 -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/FontColorPlugin/FontColorPlugin.d.ts +2 -0
- package/plugins/FontColorPlugin/FontColorPlugin.js +38 -0
- package/plugins/FontColorPlugin/FontColorPlugin.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/plugins/TypographyPlugin/TypographyPlugin.d.ts +2 -0
- package/plugins/TypographyPlugin/TypographyPlugin.js +31 -0
- package/plugins/TypographyPlugin/TypographyPlugin.js.map +1 -0
- package/plugins/WebinyListPLugin/WebinyListPlugin.d.ts +1 -0
- package/plugins/WebinyListPLugin/WebinyListPlugin.js +25 -0
- package/plugins/WebinyListPLugin/WebinyListPlugin.js.map +1 -0
- package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.d.ts +1 -0
- package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js +24 -0
- package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js.map +1 -0
- package/themes/webinyLexicalTheme.css +420 -0
- package/themes/webinyLexicalTheme.d.ts +9 -0
- package/themes/webinyLexicalTheme.js +87 -0
- package/themes/webinyLexicalTheme.js.map +1 -0
- package/types.d.ts +61 -0
- package/types.js +12 -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 +26 -0
- package/ui/DropDown.js +173 -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/ui/ToolbarActionDialog.d.ts +12 -0
- package/ui/ToolbarActionDialog.js +106 -0
- package/ui/ToolbarActionDialog.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/getLexicalTextSelectionState.d.ts +5 -0
- package/utils/getLexicalTextSelectionState.js +141 -0
- package/utils/getLexicalTextSelectionState.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/nodes/clearNodeFormating.d.ts +2 -0
- package/utils/nodes/clearNodeFormating.js +28 -0
- package/utils/nodes/clearNodeFormating.js.map +1 -0
- package/utils/nodes/formatToParagraph.d.ts +2 -0
- package/utils/nodes/formatToParagraph.js +19 -0
- package/utils/nodes/formatToParagraph.js.map +1 -0
- package/utils/nodes/formatToQuote.d.ts +2 -0
- package/utils/nodes/formatToQuote.js +20 -0
- package/utils/nodes/formatToQuote.js.map +1 -0
- package/utils/nodes/list-node.d.ts +11 -0
- package/utils/nodes/list-node.js +107 -0
- package/utils/nodes/list-node.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/utils/styleObjectToString.d.ts +2 -0
- package/utils/styleObjectToString.js +22 -0
- package/utils/styleObjectToString.js.map +1 -0
- package/utils/toTypographyEmotionMap.d.ts +3 -0
- package/utils/toTypographyEmotionMap.js +36 -0
- package/utils/toTypographyEmotionMap.js.map +1 -0
|
@@ -0,0 +1,43 @@
|
|
|
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.ItalicAction = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
12
|
+
var _lexical = require("lexical");
|
|
13
|
+
var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
|
|
14
|
+
var ItalicAction = function ItalicAction() {
|
|
15
|
+
var _textBlockSelection$s;
|
|
16
|
+
var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
|
|
17
|
+
_useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
|
|
18
|
+
editor = _useLexicalComposerCo2[0];
|
|
19
|
+
var _useState = (0, _react.useState)(false),
|
|
20
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
21
|
+
isItalic = _useState2[0],
|
|
22
|
+
setIsItalic = _useState2[1];
|
|
23
|
+
var _useRichTextEditor = (0, _useRichTextEditor2.useRichTextEditor)(),
|
|
24
|
+
textBlockSelection = _useRichTextEditor.textBlockSelection;
|
|
25
|
+
var isItalicSelected = !!(textBlockSelection !== null && textBlockSelection !== void 0 && (_textBlockSelection$s = textBlockSelection.state) !== null && _textBlockSelection$s !== void 0 && _textBlockSelection$s.italic);
|
|
26
|
+
var handleClick = function handleClick() {
|
|
27
|
+
editor.dispatchCommand(_lexical.FORMAT_TEXT_COMMAND, "italic");
|
|
28
|
+
setIsItalic(!isItalic);
|
|
29
|
+
};
|
|
30
|
+
(0, _react.useEffect)(function () {
|
|
31
|
+
setIsItalic(isItalicSelected);
|
|
32
|
+
}, [isItalicSelected]);
|
|
33
|
+
return /*#__PURE__*/_react.default.createElement("button", {
|
|
34
|
+
onClick: function onClick() {
|
|
35
|
+
return handleClick();
|
|
36
|
+
},
|
|
37
|
+
className: "popup-item spaced " + (isItalic ? "active" : ""),
|
|
38
|
+
"aria-label": "Format text as italic"
|
|
39
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
40
|
+
className: "format italic"
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
43
|
+
exports.ItalicAction = ItalicAction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ItalicAction","useLexicalComposerContext","editor","useState","isItalic","setIsItalic","useRichTextEditor","textBlockSelection","isItalicSelected","state","italic","handleClick","dispatchCommand","FORMAT_TEXT_COMMAND","useEffect"],"sources":["ItalicAction.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { FORMAT_TEXT_COMMAND } from \"lexical\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\n\nexport const ItalicAction = () => {\n const [editor] = useLexicalComposerContext();\n const [isItalic, setIsItalic] = useState(false);\n const { textBlockSelection } = useRichTextEditor();\n const isItalicSelected = !!textBlockSelection?.state?.italic;\n\n const handleClick = () => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, \"italic\");\n setIsItalic(!isItalic);\n };\n\n useEffect(() => {\n setIsItalic(isItalicSelected);\n }, [isItalicSelected]);\n\n return (\n <button\n onClick={() => handleClick()}\n className={\"popup-item spaced \" + (isItalic ? \"active\" : \"\")}\n aria-label=\"Format text as italic\"\n >\n <i className=\"format italic\" />\n </button>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AAEO,IAAMA,YAAY,GAAG,SAAfA,YAAY,GAAS;EAAA;EAC9B,4BAAiB,IAAAC,iDAAyB,GAAE;IAAA;IAArCC,MAAM;EACb,gBAAgC,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAA;IAAxCC,QAAQ;IAAEC,WAAW;EAC5B,yBAA+B,IAAAC,qCAAiB,GAAE;IAA1CC,kBAAkB,sBAAlBA,kBAAkB;EAC1B,IAAMC,gBAAgB,GAAG,CAAC,EAACD,kBAAkB,aAAlBA,kBAAkB,wCAAlBA,kBAAkB,CAAEE,KAAK,kDAAzB,sBAA2BC,MAAM;EAE5D,IAAMC,WAAW,GAAG,SAAdA,WAAW,GAAS;IACtBT,MAAM,CAACU,eAAe,CAACC,4BAAmB,EAAE,QAAQ,CAAC;IACrDR,WAAW,CAAC,CAACD,QAAQ,CAAC;EAC1B,CAAC;EAED,IAAAU,gBAAS,EAAC,YAAM;IACZT,WAAW,CAACG,gBAAgB,CAAC;EACjC,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAEtB,oBACI;IACI,OAAO,EAAE;MAAA,OAAMG,WAAW,EAAE;IAAA,CAAC;IAC7B,SAAS,EAAE,oBAAoB,IAAIP,QAAQ,GAAG,QAAQ,GAAG,EAAE,CAAE;IAC7D,cAAW;EAAuB,gBAElC;IAAG,SAAS,EAAC;EAAe,EAAG,CAC1B;AAEjB,CAAC;AAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
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.LinkAction = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
12
|
+
var _link = require("@lexical/link");
|
|
13
|
+
var _lexical = require("lexical");
|
|
14
|
+
var _getSelectedNode = require("../../utils/getSelectedNode");
|
|
15
|
+
var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
|
|
16
|
+
var LinkAction = function LinkAction() {
|
|
17
|
+
var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
|
|
18
|
+
_useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
|
|
19
|
+
editor = _useLexicalComposerCo2[0];
|
|
20
|
+
var _useState = (0, _react.useState)(false),
|
|
21
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
22
|
+
isLink = _useState2[0],
|
|
23
|
+
setIsLink = _useState2[1];
|
|
24
|
+
var _useRichTextEditor = (0, _useRichTextEditor2.useRichTextEditor)(),
|
|
25
|
+
setNodeIsText = _useRichTextEditor.setNodeIsText;
|
|
26
|
+
var insertLink = (0, _react.useCallback)(function () {
|
|
27
|
+
if (!isLink) {
|
|
28
|
+
editor.dispatchCommand(_link.TOGGLE_LINK_COMMAND, "https://");
|
|
29
|
+
setNodeIsText(false);
|
|
30
|
+
} else {
|
|
31
|
+
editor.dispatchCommand(_link.TOGGLE_LINK_COMMAND, null);
|
|
32
|
+
}
|
|
33
|
+
}, [editor, isLink]);
|
|
34
|
+
var updatePopup = (0, _react.useCallback)(function () {
|
|
35
|
+
editor.getEditorState().read(function () {
|
|
36
|
+
var selection = (0, _lexical.$getSelection)();
|
|
37
|
+
if (!(0, _lexical.$isRangeSelection)(selection)) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
var node = (0, _getSelectedNode.getSelectedNode)(selection);
|
|
41
|
+
// Update links
|
|
42
|
+
var parent = node.getParent();
|
|
43
|
+
if ((0, _link.$isLinkNode)(parent) || (0, _link.$isLinkNode)(node)) {
|
|
44
|
+
setIsLink(true);
|
|
45
|
+
} else {
|
|
46
|
+
setIsLink(false);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}, [editor]);
|
|
50
|
+
(0, _react.useEffect)(function () {
|
|
51
|
+
document.addEventListener("selectionchange", updatePopup);
|
|
52
|
+
return function () {
|
|
53
|
+
document.removeEventListener("selectionchange", updatePopup);
|
|
54
|
+
};
|
|
55
|
+
}, [updatePopup]);
|
|
56
|
+
return /*#__PURE__*/_react.default.createElement("button", {
|
|
57
|
+
onClick: insertLink,
|
|
58
|
+
className: "popup-item spaced " + (isLink ? "active" : ""),
|
|
59
|
+
"aria-label": "Insert link"
|
|
60
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
61
|
+
className: "format link"
|
|
62
|
+
}));
|
|
63
|
+
};
|
|
64
|
+
exports.LinkAction = LinkAction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LinkAction","useLexicalComposerContext","editor","useState","isLink","setIsLink","useRichTextEditor","setNodeIsText","insertLink","useCallback","dispatchCommand","TOGGLE_LINK_COMMAND","updatePopup","getEditorState","read","selection","$getSelection","$isRangeSelection","node","getSelectedNode","parent","getParent","$isLinkNode","useEffect","document","addEventListener","removeEventListener"],"sources":["LinkAction.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { $isLinkNode, TOGGLE_LINK_COMMAND } from \"@lexical/link\";\nimport { $getSelection, $isRangeSelection } from \"lexical\";\nimport { getSelectedNode } from \"~/utils/getSelectedNode\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\n\nexport const LinkAction = () => {\n const [editor] = useLexicalComposerContext();\n const [isLink, setIsLink] = useState(false);\n const { setNodeIsText } = useRichTextEditor();\n\n const insertLink = useCallback(() => {\n if (!isLink) {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, \"https://\");\n setNodeIsText(false);\n } else {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null);\n }\n }, [editor, isLink]);\n\n const updatePopup = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection();\n if (!$isRangeSelection(selection)) {\n return;\n }\n const node = getSelectedNode(selection);\n // Update links\n const parent = node.getParent();\n if ($isLinkNode(parent) || $isLinkNode(node)) {\n setIsLink(true);\n } else {\n setIsLink(false);\n }\n });\n }, [editor]);\n\n useEffect(() => {\n document.addEventListener(\"selectionchange\", updatePopup);\n return () => {\n document.removeEventListener(\"selectionchange\", updatePopup);\n };\n }, [updatePopup]);\n\n return (\n <button\n onClick={insertLink}\n className={\"popup-item spaced \" + (isLink ? \"active\" : \"\")}\n aria-label=\"Insert link\"\n >\n <i className=\"format link\" />\n </button>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEO,IAAMA,UAAU,GAAG,SAAbA,UAAU,GAAS;EAC5B,4BAAiB,IAAAC,iDAAyB,GAAE;IAAA;IAArCC,MAAM;EACb,gBAA4B,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAA;IAApCC,MAAM;IAAEC,SAAS;EACxB,yBAA0B,IAAAC,qCAAiB,GAAE;IAArCC,aAAa,sBAAbA,aAAa;EAErB,IAAMC,UAAU,GAAG,IAAAC,kBAAW,EAAC,YAAM;IACjC,IAAI,CAACL,MAAM,EAAE;MACTF,MAAM,CAACQ,eAAe,CAACC,yBAAmB,EAAE,UAAU,CAAC;MACvDJ,aAAa,CAAC,KAAK,CAAC;IACxB,CAAC,MAAM;MACHL,MAAM,CAACQ,eAAe,CAACC,yBAAmB,EAAE,IAAI,CAAC;IACrD;EACJ,CAAC,EAAE,CAACT,MAAM,EAAEE,MAAM,CAAC,CAAC;EAEpB,IAAMQ,WAAW,GAAG,IAAAH,kBAAW,EAAC,YAAM;IAClCP,MAAM,CAACW,cAAc,EAAE,CAACC,IAAI,CAAC,YAAM;MAC/B,IAAMC,SAAS,GAAG,IAAAC,sBAAa,GAAE;MACjC,IAAI,CAAC,IAAAC,0BAAiB,EAACF,SAAS,CAAC,EAAE;QAC/B;MACJ;MACA,IAAMG,IAAI,GAAG,IAAAC,gCAAe,EAACJ,SAAS,CAAC;MACvC;MACA,IAAMK,MAAM,GAAGF,IAAI,CAACG,SAAS,EAAE;MAC/B,IAAI,IAAAC,iBAAW,EAACF,MAAM,CAAC,IAAI,IAAAE,iBAAW,EAACJ,IAAI,CAAC,EAAE;QAC1Cb,SAAS,CAAC,IAAI,CAAC;MACnB,CAAC,MAAM;QACHA,SAAS,CAAC,KAAK,CAAC;MACpB;IACJ,CAAC,CAAC;EACN,CAAC,EAAE,CAACH,MAAM,CAAC,CAAC;EAEZ,IAAAqB,gBAAS,EAAC,YAAM;IACZC,QAAQ,CAACC,gBAAgB,CAAC,iBAAiB,EAAEb,WAAW,CAAC;IACzD,OAAO,YAAM;MACTY,QAAQ,CAACE,mBAAmB,CAAC,iBAAiB,EAAEd,WAAW,CAAC;IAChE,CAAC;EACL,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,oBACI;IACI,OAAO,EAAEJ,UAAW;IACpB,SAAS,EAAE,oBAAoB,IAAIJ,MAAM,GAAG,QAAQ,GAAG,EAAE,CAAE;IAC3D,cAAW;EAAa,gBAExB;IAAG,SAAS,EAAC;EAAa,EAAG,CACxB;AAEjB,CAAC;AAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
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.NumberedListAction = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
12
|
+
var _webinyList = require("../../commands/webiny-list");
|
|
13
|
+
var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
|
|
14
|
+
var NumberedListAction = function NumberedListAction() {
|
|
15
|
+
var _textBlockSelection$s;
|
|
16
|
+
var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
|
|
17
|
+
_useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
|
|
18
|
+
editor = _useLexicalComposerCo2[0];
|
|
19
|
+
var _useState = (0, _react.useState)(false),
|
|
20
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
21
|
+
isActive = _useState2[0],
|
|
22
|
+
setIsActive = _useState2[1];
|
|
23
|
+
var _useRichTextEditor = (0, _useRichTextEditor2.useRichTextEditor)(),
|
|
24
|
+
textBlockSelection = _useRichTextEditor.textBlockSelection;
|
|
25
|
+
var isListSelected = textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$s = textBlockSelection.state) === null || _textBlockSelection$s === void 0 ? void 0 : _textBlockSelection$s.list.isSelected;
|
|
26
|
+
(0, _react.useEffect)(function () {
|
|
27
|
+
var _textBlockSelection$s2;
|
|
28
|
+
var isListBulletType = (textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$s2 = textBlockSelection.state) === null || _textBlockSelection$s2 === void 0 ? void 0 : _textBlockSelection$s2.textType) === "number";
|
|
29
|
+
setIsActive(isListBulletType);
|
|
30
|
+
}, [isListSelected]);
|
|
31
|
+
var formatNumberedList = function formatNumberedList() {
|
|
32
|
+
if (!isActive) {
|
|
33
|
+
// will update the active state in the useEffect
|
|
34
|
+
editor.dispatchCommand(_webinyList.INSERT_ORDERED_WEBINY_LIST_COMMAND, {
|
|
35
|
+
themeStyleId: "list"
|
|
36
|
+
});
|
|
37
|
+
} else {
|
|
38
|
+
editor.dispatchCommand(_webinyList.REMOVE_WEBINY_LIST_COMMAND, undefined);
|
|
39
|
+
// removing will not update correctly the active state, so we need to set to false manually.
|
|
40
|
+
setIsActive(false);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement("button", {
|
|
44
|
+
onClick: function onClick() {
|
|
45
|
+
return formatNumberedList();
|
|
46
|
+
},
|
|
47
|
+
className: "popup-item spaced " + (isActive ? "active" : ""),
|
|
48
|
+
"aria-label": "Format text as numbered list"
|
|
49
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
50
|
+
className: "icon numbered-list"
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
53
|
+
exports.NumberedListAction = NumberedListAction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NumberedListAction","useLexicalComposerContext","editor","useState","isActive","setIsActive","useRichTextEditor","textBlockSelection","isListSelected","state","list","isSelected","useEffect","isListBulletType","textType","formatNumberedList","dispatchCommand","INSERT_ORDERED_WEBINY_LIST_COMMAND","themeStyleId","REMOVE_WEBINY_LIST_COMMAND","undefined"],"sources":["NumberedListAction.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport {\n INSERT_ORDERED_WEBINY_LIST_COMMAND,\n REMOVE_WEBINY_LIST_COMMAND\n} from \"~/commands/webiny-list\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\n\nexport const NumberedListAction = () => {\n const [editor] = useLexicalComposerContext();\n const [isActive, setIsActive] = useState<boolean>(false);\n const { textBlockSelection } = useRichTextEditor();\n const isListSelected = textBlockSelection?.state?.list.isSelected;\n\n useEffect(() => {\n const isListBulletType = textBlockSelection?.state?.textType === \"number\";\n setIsActive(isListBulletType);\n }, [isListSelected]);\n\n const formatNumberedList = () => {\n if (!isActive) {\n // will update the active state in the useEffect\n editor.dispatchCommand(INSERT_ORDERED_WEBINY_LIST_COMMAND, { themeStyleId: \"list\" });\n } else {\n editor.dispatchCommand(REMOVE_WEBINY_LIST_COMMAND, undefined);\n // removing will not update correctly the active state, so we need to set to false manually.\n setIsActive(false);\n }\n };\n\n return (\n <button\n onClick={() => formatNumberedList()}\n className={\"popup-item spaced \" + (isActive ? \"active\" : \"\")}\n aria-label=\"Format text as numbered list\"\n >\n <i className=\"icon numbered-list\" />\n </button>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AAIA;AAEO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAkB,GAAS;EAAA;EACpC,4BAAiB,IAAAC,iDAAyB,GAAE;IAAA;IAArCC,MAAM;EACb,gBAAgC,IAAAC,eAAQ,EAAU,KAAK,CAAC;IAAA;IAAjDC,QAAQ;IAAEC,WAAW;EAC5B,yBAA+B,IAAAC,qCAAiB,GAAE;IAA1CC,kBAAkB,sBAAlBA,kBAAkB;EAC1B,IAAMC,cAAc,GAAGD,kBAAkB,aAAlBA,kBAAkB,gDAAlBA,kBAAkB,CAAEE,KAAK,0DAAzB,sBAA2BC,IAAI,CAACC,UAAU;EAEjE,IAAAC,gBAAS,EAAC,YAAM;IAAA;IACZ,IAAMC,gBAAgB,GAAG,CAAAN,kBAAkB,aAAlBA,kBAAkB,iDAAlBA,kBAAkB,CAAEE,KAAK,2DAAzB,uBAA2BK,QAAQ,MAAK,QAAQ;IACzET,WAAW,CAACQ,gBAAgB,CAAC;EACjC,CAAC,EAAE,CAACL,cAAc,CAAC,CAAC;EAEpB,IAAMO,kBAAkB,GAAG,SAArBA,kBAAkB,GAAS;IAC7B,IAAI,CAACX,QAAQ,EAAE;MACX;MACAF,MAAM,CAACc,eAAe,CAACC,8CAAkC,EAAE;QAAEC,YAAY,EAAE;MAAO,CAAC,CAAC;IACxF,CAAC,MAAM;MACHhB,MAAM,CAACc,eAAe,CAACG,sCAA0B,EAAEC,SAAS,CAAC;MAC7D;MACAf,WAAW,CAAC,KAAK,CAAC;IACtB;EACJ,CAAC;EAED,oBACI;IACI,OAAO,EAAE;MAAA,OAAMU,kBAAkB,EAAE;IAAA,CAAC;IACpC,SAAS,EAAE,oBAAoB,IAAIX,QAAQ,GAAG,QAAQ,GAAG,EAAE,CAAE;IAC7D,cAAW;EAA8B,gBAEzC;IAAG,SAAS,EAAC;EAAoB,EAAG,CAC/B;AAEjB,CAAC;AAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
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.QuoteAction = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
12
|
+
var _formatToQuote = require("../../utils/nodes/formatToQuote");
|
|
13
|
+
var _formatToParagraph = require("../../utils/nodes/formatToParagraph");
|
|
14
|
+
var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
|
|
15
|
+
var QuoteAction = function QuoteAction() {
|
|
16
|
+
var _textBlockSelection$s;
|
|
17
|
+
var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
|
|
18
|
+
_useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
|
|
19
|
+
editor = _useLexicalComposerCo2[0];
|
|
20
|
+
var _useState = (0, _react.useState)(false),
|
|
21
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
22
|
+
isActive = _useState2[0],
|
|
23
|
+
setIsActive = _useState2[1];
|
|
24
|
+
var _useRichTextEditor = (0, _useRichTextEditor2.useRichTextEditor)(),
|
|
25
|
+
textBlockSelection = _useRichTextEditor.textBlockSelection,
|
|
26
|
+
themeEmotionMap = _useRichTextEditor.themeEmotionMap;
|
|
27
|
+
var isQuoteSelected = !!(textBlockSelection !== null && textBlockSelection !== void 0 && (_textBlockSelection$s = textBlockSelection.state) !== null && _textBlockSelection$s !== void 0 && _textBlockSelection$s.quote.isSelected);
|
|
28
|
+
var formatText = function formatText() {
|
|
29
|
+
if (!isActive) {
|
|
30
|
+
// Try to set default quote style, when the action button is clicked for first time
|
|
31
|
+
var DEFAULT_QUOTE_ID = "quote";
|
|
32
|
+
var hasQuoteStyles = themeEmotionMap && themeEmotionMap[DEFAULT_QUOTE_ID];
|
|
33
|
+
(0, _formatToQuote.formatToQuote)(editor, hasQuoteStyles ? DEFAULT_QUOTE_ID : undefined);
|
|
34
|
+
setIsActive(true);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
(0, _formatToParagraph.formatToParagraph)(editor);
|
|
38
|
+
setIsActive(false);
|
|
39
|
+
};
|
|
40
|
+
(0, _react.useEffect)(function () {
|
|
41
|
+
setIsActive(isQuoteSelected);
|
|
42
|
+
}, [isQuoteSelected]);
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement("button", {
|
|
44
|
+
onClick: function onClick() {
|
|
45
|
+
return formatText();
|
|
46
|
+
},
|
|
47
|
+
className: "popup-item " + (isActive ? "active" : ""),
|
|
48
|
+
"aria-label": "Format text as quote"
|
|
49
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
50
|
+
className: "icon quote"
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
53
|
+
exports.QuoteAction = QuoteAction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["QuoteAction","useLexicalComposerContext","editor","useState","isActive","setIsActive","useRichTextEditor","textBlockSelection","themeEmotionMap","isQuoteSelected","state","quote","isSelected","formatText","DEFAULT_QUOTE_ID","hasQuoteStyles","formatToQuote","undefined","formatToParagraph","useEffect"],"sources":["QuoteAction.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { formatToQuote } from \"~/utils/nodes/formatToQuote\";\nimport { formatToParagraph } from \"~/utils/nodes/formatToParagraph\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\nexport const QuoteAction = () => {\n const [editor] = useLexicalComposerContext();\n const [isActive, setIsActive] = useState<boolean>(false);\n const { textBlockSelection, themeEmotionMap } = useRichTextEditor();\n const isQuoteSelected = !!textBlockSelection?.state?.quote.isSelected;\n\n const formatText = () => {\n if (!isActive) {\n // Try to set default quote style, when the action button is clicked for first time\n const DEFAULT_QUOTE_ID = \"quote\";\n const hasQuoteStyles = themeEmotionMap && themeEmotionMap[DEFAULT_QUOTE_ID];\n\n formatToQuote(editor, hasQuoteStyles ? DEFAULT_QUOTE_ID : undefined);\n setIsActive(true);\n return;\n }\n formatToParagraph(editor);\n setIsActive(false);\n };\n\n useEffect(() => {\n setIsActive(isQuoteSelected);\n }, [isQuoteSelected]);\n\n return (\n <button\n onClick={() => formatText()}\n className={\"popup-item \" + (isActive ? \"active\" : \"\")}\n aria-label=\"Format text as quote\"\n >\n <i className=\"icon quote\" />\n </button>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACO,IAAMA,WAAW,GAAG,SAAdA,WAAW,GAAS;EAAA;EAC7B,4BAAiB,IAAAC,iDAAyB,GAAE;IAAA;IAArCC,MAAM;EACb,gBAAgC,IAAAC,eAAQ,EAAU,KAAK,CAAC;IAAA;IAAjDC,QAAQ;IAAEC,WAAW;EAC5B,yBAAgD,IAAAC,qCAAiB,GAAE;IAA3DC,kBAAkB,sBAAlBA,kBAAkB;IAAEC,eAAe,sBAAfA,eAAe;EAC3C,IAAMC,eAAe,GAAG,CAAC,EAACF,kBAAkB,aAAlBA,kBAAkB,wCAAlBA,kBAAkB,CAAEG,KAAK,kDAAzB,sBAA2BC,KAAK,CAACC,UAAU;EAErE,IAAMC,UAAU,GAAG,SAAbA,UAAU,GAAS;IACrB,IAAI,CAACT,QAAQ,EAAE;MACX;MACA,IAAMU,gBAAgB,GAAG,OAAO;MAChC,IAAMC,cAAc,GAAGP,eAAe,IAAIA,eAAe,CAACM,gBAAgB,CAAC;MAE3E,IAAAE,4BAAa,EAACd,MAAM,EAAEa,cAAc,GAAGD,gBAAgB,GAAGG,SAAS,CAAC;MACpEZ,WAAW,CAAC,IAAI,CAAC;MACjB;IACJ;IACA,IAAAa,oCAAiB,EAAChB,MAAM,CAAC;IACzBG,WAAW,CAAC,KAAK,CAAC;EACtB,CAAC;EAED,IAAAc,gBAAS,EAAC,YAAM;IACZd,WAAW,CAACI,eAAe,CAAC;EAChC,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EAErB,oBACI;IACI,OAAO,EAAE;MAAA,OAAMI,UAAU,EAAE;IAAA,CAAC;IAC5B,SAAS,EAAE,aAAa,IAAIT,QAAQ,GAAG,QAAQ,GAAG,EAAE,CAAE;IACtD,cAAW;EAAsB,gBAEjC;IAAG,SAAS,EAAC;EAAY,EAAG,CACvB;AAEjB,CAAC;AAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const BaseTypographyActionDropDown: import("@webiny/react-composition").ComposableFC<unknown>;
|
|
3
|
+
interface TypographyActionDropdownProps {
|
|
4
|
+
element: JSX.Element;
|
|
5
|
+
}
|
|
6
|
+
declare const TypographyActionDropDown: React.FC<TypographyActionDropdownProps>;
|
|
7
|
+
export interface TypographyAction extends React.FC<unknown> {
|
|
8
|
+
TypographyDropDown: typeof TypographyActionDropDown;
|
|
9
|
+
}
|
|
10
|
+
export declare const TypographyAction: TypographyAction;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,118 @@
|
|
|
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.TypographyAction = exports.BaseTypographyActionDropDown = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
12
|
+
var _reactComposition = require("@webiny/react-composition");
|
|
13
|
+
var _TypographyActionContext = require("../../context/TypographyActionContext");
|
|
14
|
+
var _TypographyElementNode = require("../../nodes/TypographyElementNode");
|
|
15
|
+
var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
|
|
16
|
+
var _webinyList = require("../../commands/webiny-list");
|
|
17
|
+
var _webinyQuote = require("../../commands/webiny-quote");
|
|
18
|
+
/*
|
|
19
|
+
* Base composable action component that is mounted on toolbar action as a placeholder for the custom toolbar action.
|
|
20
|
+
* Note: Toa add custom component access trough @see LexicalEditorConfig API
|
|
21
|
+
* */
|
|
22
|
+
var BaseTypographyActionDropDown = (0, _reactComposition.makeComposable)("BaseTypographyActionDropDown", function () {
|
|
23
|
+
(0, _react.useEffect)(function () {
|
|
24
|
+
console.log("Default BaseTypographyActionDropDown, please add your own component");
|
|
25
|
+
}, []);
|
|
26
|
+
return null;
|
|
27
|
+
});
|
|
28
|
+
exports.BaseTypographyActionDropDown = BaseTypographyActionDropDown;
|
|
29
|
+
var TypographyActionDropDown = function TypographyActionDropDown(_ref) {
|
|
30
|
+
var element = _ref.element;
|
|
31
|
+
return /*#__PURE__*/_react.default.createElement(_reactComposition.Compose, {
|
|
32
|
+
component: BaseTypographyActionDropDown,
|
|
33
|
+
with: function _with() {
|
|
34
|
+
return function () {
|
|
35
|
+
return element;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
var TypographyAction = function TypographyAction() {
|
|
41
|
+
var _textBlockSelection$s, _textBlockSelection$s2;
|
|
42
|
+
var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
|
|
43
|
+
_useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
|
|
44
|
+
editor = _useLexicalComposerCo2[0];
|
|
45
|
+
var _useState = (0, _react.useState)(),
|
|
46
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
47
|
+
typography = _useState2[0],
|
|
48
|
+
setTypography = _useState2[1];
|
|
49
|
+
var _useRichTextEditor = (0, _useRichTextEditor2.useRichTextEditor)(),
|
|
50
|
+
textBlockSelection = _useRichTextEditor.textBlockSelection,
|
|
51
|
+
themeEmotionMap = _useRichTextEditor.themeEmotionMap;
|
|
52
|
+
var isTypographySelected = (textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$s = textBlockSelection.state) === null || _textBlockSelection$s === void 0 ? void 0 : _textBlockSelection$s.typography.isSelected) || false;
|
|
53
|
+
var textType = textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$s2 = textBlockSelection.state) === null || _textBlockSelection$s2 === void 0 ? void 0 : _textBlockSelection$s2.textType;
|
|
54
|
+
var setTypographySelect = (0, _react.useCallback)(function (value) {
|
|
55
|
+
setTypography(value);
|
|
56
|
+
}, [typography]);
|
|
57
|
+
var onTypographySelect = (0, _react.useCallback)(function (value) {
|
|
58
|
+
setTypographySelect(value);
|
|
59
|
+
if (value.tag.includes("h") || value.tag.includes("p")) {
|
|
60
|
+
editor.dispatchCommand(_TypographyElementNode.ADD_TYPOGRAPHY_ELEMENT_COMMAND, {
|
|
61
|
+
value: value
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (value.tag === "ol") {
|
|
65
|
+
editor.dispatchCommand(_webinyList.INSERT_ORDERED_WEBINY_LIST_COMMAND, {
|
|
66
|
+
themeStyleId: value.id
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (value.tag === "ul") {
|
|
70
|
+
editor.dispatchCommand(_webinyList.INSERT_UNORDERED_WEBINY_LIST_COMMAND, {
|
|
71
|
+
themeStyleId: value.id
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
if (value.tag === "quoteblock") {
|
|
75
|
+
editor.dispatchCommand(_webinyQuote.INSERT_WEBINY_QUOTE_COMMAND, {
|
|
76
|
+
themeStyleId: value.id
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}, []);
|
|
80
|
+
(0, _react.useEffect)(function () {
|
|
81
|
+
if (textBlockSelection) {
|
|
82
|
+
var _textBlockSelection$e;
|
|
83
|
+
// header and paragraph elements inserted with typography node
|
|
84
|
+
if ((0, _TypographyElementNode.$isTypographyElementNode)(textBlockSelection === null || textBlockSelection === void 0 ? void 0 : textBlockSelection.element)) {
|
|
85
|
+
var el = textBlockSelection.element;
|
|
86
|
+
setTypography(el.getTypographyValue());
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
// list and quote element
|
|
90
|
+
if (themeEmotionMap && textBlockSelection !== null && textBlockSelection !== void 0 && (_textBlockSelection$e = textBlockSelection.element) !== null && _textBlockSelection$e !== void 0 && _textBlockSelection$e.getStyleId) {
|
|
91
|
+
var _textBlockSelection$e2;
|
|
92
|
+
var themeStyleId = (textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$e2 = textBlockSelection.element) === null || _textBlockSelection$e2 === void 0 ? void 0 : _textBlockSelection$e2.getStyleId()) || undefined;
|
|
93
|
+
if (themeStyleId) {
|
|
94
|
+
var elementStyle = themeEmotionMap[themeStyleId];
|
|
95
|
+
if (elementStyle) {
|
|
96
|
+
setTypography({
|
|
97
|
+
id: elementStyle.id,
|
|
98
|
+
css: elementStyle.styles,
|
|
99
|
+
name: elementStyle.name,
|
|
100
|
+
tag: elementStyle.tag
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}, [isTypographySelected, textType]);
|
|
107
|
+
return /*#__PURE__*/_react.default.createElement(_TypographyActionContext.TypographyActionContext.Provider, {
|
|
108
|
+
value: {
|
|
109
|
+
value: typography,
|
|
110
|
+
applyTypography: onTypographySelect
|
|
111
|
+
}
|
|
112
|
+
}, /*#__PURE__*/_react.default.createElement(BaseTypographyActionDropDown, null));
|
|
113
|
+
};
|
|
114
|
+
exports.TypographyAction = TypographyAction;
|
|
115
|
+
{
|
|
116
|
+
/* Color action settings */
|
|
117
|
+
}
|
|
118
|
+
TypographyAction.TypographyDropDown = TypographyActionDropDown;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BaseTypographyActionDropDown","makeComposable","useEffect","console","log","TypographyActionDropDown","element","TypographyAction","useLexicalComposerContext","editor","useState","typography","setTypography","useRichTextEditor","textBlockSelection","themeEmotionMap","isTypographySelected","state","isSelected","textType","setTypographySelect","useCallback","value","onTypographySelect","tag","includes","dispatchCommand","ADD_TYPOGRAPHY_ELEMENT_COMMAND","INSERT_ORDERED_WEBINY_LIST_COMMAND","themeStyleId","id","INSERT_UNORDERED_WEBINY_LIST_COMMAND","INSERT_WEBINY_QUOTE_COMMAND","$isTypographyElementNode","el","getTypographyValue","getStyleId","undefined","elementStyle","css","styles","name","applyTypography","TypographyDropDown"],"sources":["TypographyAction.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { LexicalCommand } from \"lexical\";\nimport { Compose, makeComposable } from \"@webiny/react-composition\";\nimport { TypographyActionContext } from \"~/context/TypographyActionContext\";\n\nimport { TypographyValue } from \"~/types\";\nimport {\n $isTypographyElementNode,\n ADD_TYPOGRAPHY_ELEMENT_COMMAND,\n TypographyElementNode,\n TypographyPayload\n} from \"~/nodes/TypographyElementNode\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\nimport {\n INSERT_ORDERED_WEBINY_LIST_COMMAND,\n INSERT_UNORDERED_WEBINY_LIST_COMMAND,\n WebinyListCommandPayload\n} from \"~/commands/webiny-list\";\nimport { INSERT_WEBINY_QUOTE_COMMAND, WebinyQuoteCommandPayload } from \"~/commands/webiny-quote\";\n\n/*\n * Base composable action component that is mounted on toolbar action as a placeholder for the custom toolbar action.\n * Note: Toa add custom component access trough @see LexicalEditorConfig API\n * */\nexport const BaseTypographyActionDropDown = makeComposable(\n \"BaseTypographyActionDropDown\",\n (): JSX.Element | null => {\n useEffect(() => {\n console.log(\"Default BaseTypographyActionDropDown, please add your own component\");\n }, []);\n return null;\n }\n);\n\ninterface TypographyActionDropdownProps {\n element: JSX.Element;\n}\n\nconst TypographyActionDropDown: React.FC<TypographyActionDropdownProps> = ({\n element\n}): JSX.Element => {\n return <Compose component={BaseTypographyActionDropDown} with={() => () => element} />;\n};\n\nexport interface TypographyAction extends React.FC<unknown> {\n TypographyDropDown: typeof TypographyActionDropDown;\n}\n\nexport const TypographyAction: TypographyAction = () => {\n const [editor] = useLexicalComposerContext();\n const [typography, setTypography] = useState<TypographyValue>();\n const { textBlockSelection, themeEmotionMap } = useRichTextEditor();\n const isTypographySelected = textBlockSelection?.state?.typography.isSelected || false;\n const textType = textBlockSelection?.state?.textType;\n const setTypographySelect = useCallback(\n (value: TypographyValue) => {\n setTypography(value);\n },\n [typography]\n );\n\n const onTypographySelect = useCallback((value: TypographyValue) => {\n setTypographySelect(value);\n\n if (value.tag.includes(\"h\") || value.tag.includes(\"p\")) {\n editor.dispatchCommand<LexicalCommand<TypographyPayload>>(\n ADD_TYPOGRAPHY_ELEMENT_COMMAND,\n {\n value\n }\n );\n }\n\n if (value.tag === \"ol\") {\n editor.dispatchCommand<LexicalCommand<WebinyListCommandPayload>>(\n INSERT_ORDERED_WEBINY_LIST_COMMAND,\n {\n themeStyleId: value.id\n }\n );\n }\n\n if (value.tag === \"ul\") {\n editor.dispatchCommand<LexicalCommand<WebinyListCommandPayload>>(\n INSERT_UNORDERED_WEBINY_LIST_COMMAND,\n {\n themeStyleId: value.id\n }\n );\n }\n\n if (value.tag === \"quoteblock\") {\n editor.dispatchCommand<LexicalCommand<WebinyQuoteCommandPayload>>(\n INSERT_WEBINY_QUOTE_COMMAND,\n {\n themeStyleId: value.id\n }\n );\n }\n }, []);\n\n useEffect(() => {\n if (textBlockSelection) {\n // header and paragraph elements inserted with typography node\n if ($isTypographyElementNode(textBlockSelection?.element)) {\n const el = textBlockSelection.element as TypographyElementNode;\n setTypography(el.getTypographyValue());\n return;\n }\n // list and quote element\n if (themeEmotionMap && textBlockSelection?.element?.getStyleId) {\n const themeStyleId = textBlockSelection?.element?.getStyleId() || undefined;\n if (themeStyleId) {\n const elementStyle = themeEmotionMap[themeStyleId];\n if (elementStyle) {\n setTypography({\n id: elementStyle.id,\n css: elementStyle.styles,\n name: elementStyle.name,\n tag: elementStyle.tag\n });\n }\n }\n }\n }\n }, [isTypographySelected, textType]);\n\n return (\n <TypographyActionContext.Provider\n value={{\n value: typography,\n applyTypography: onTypographySelect\n }}\n >\n <BaseTypographyActionDropDown />\n </TypographyActionContext.Provider>\n );\n};\n\n{\n /* Color action settings */\n}\nTypographyAction.TypographyDropDown = TypographyActionDropDown;\n"],"mappings":";;;;;;;;;AAAA;AACA;AAEA;AACA;AAGA;AAMA;AACA;AAKA;AAEA;AACA;AACA;AACA;AACO,IAAMA,4BAA4B,GAAG,IAAAC,gCAAc,EACtD,8BAA8B,EAC9B,YAA0B;EACtB,IAAAC,gBAAS,EAAC,YAAM;IACZC,OAAO,CAACC,GAAG,CAAC,qEAAqE,CAAC;EACtF,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC,CACJ;AAAC;AAMF,IAAMC,wBAAiE,GAAG,SAApEA,wBAAiE,OAEpD;EAAA,IADfC,OAAO,QAAPA,OAAO;EAEP,oBAAO,6BAAC,yBAAO;IAAC,SAAS,EAAEN,4BAA6B;IAAC,IAAI,EAAE;MAAA,OAAM;QAAA,OAAMM,OAAO;MAAA;IAAA;EAAC,EAAG;AAC1F,CAAC;AAMM,IAAMC,gBAAkC,GAAG,SAArCA,gBAAkC,GAAS;EAAA;EACpD,4BAAiB,IAAAC,iDAAyB,GAAE;IAAA;IAArCC,MAAM;EACb,gBAAoC,IAAAC,eAAQ,GAAmB;IAAA;IAAxDC,UAAU;IAAEC,aAAa;EAChC,yBAAgD,IAAAC,qCAAiB,GAAE;IAA3DC,kBAAkB,sBAAlBA,kBAAkB;IAAEC,eAAe,sBAAfA,eAAe;EAC3C,IAAMC,oBAAoB,GAAG,CAAAF,kBAAkB,aAAlBA,kBAAkB,gDAAlBA,kBAAkB,CAAEG,KAAK,0DAAzB,sBAA2BN,UAAU,CAACO,UAAU,KAAI,KAAK;EACtF,IAAMC,QAAQ,GAAGL,kBAAkB,aAAlBA,kBAAkB,iDAAlBA,kBAAkB,CAAEG,KAAK,2DAAzB,uBAA2BE,QAAQ;EACpD,IAAMC,mBAAmB,GAAG,IAAAC,kBAAW,EACnC,UAACC,KAAsB,EAAK;IACxBV,aAAa,CAACU,KAAK,CAAC;EACxB,CAAC,EACD,CAACX,UAAU,CAAC,CACf;EAED,IAAMY,kBAAkB,GAAG,IAAAF,kBAAW,EAAC,UAACC,KAAsB,EAAK;IAC/DF,mBAAmB,CAACE,KAAK,CAAC;IAE1B,IAAIA,KAAK,CAACE,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC,IAAIH,KAAK,CAACE,GAAG,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;MACpDhB,MAAM,CAACiB,eAAe,CAClBC,qDAA8B,EAC9B;QACIL,KAAK,EAALA;MACJ,CAAC,CACJ;IACL;IAEA,IAAIA,KAAK,CAACE,GAAG,KAAK,IAAI,EAAE;MACpBf,MAAM,CAACiB,eAAe,CAClBE,8CAAkC,EAClC;QACIC,YAAY,EAAEP,KAAK,CAACQ;MACxB,CAAC,CACJ;IACL;IAEA,IAAIR,KAAK,CAACE,GAAG,KAAK,IAAI,EAAE;MACpBf,MAAM,CAACiB,eAAe,CAClBK,gDAAoC,EACpC;QACIF,YAAY,EAAEP,KAAK,CAACQ;MACxB,CAAC,CACJ;IACL;IAEA,IAAIR,KAAK,CAACE,GAAG,KAAK,YAAY,EAAE;MAC5Bf,MAAM,CAACiB,eAAe,CAClBM,wCAA2B,EAC3B;QACIH,YAAY,EAAEP,KAAK,CAACQ;MACxB,CAAC,CACJ;IACL;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,IAAA5B,gBAAS,EAAC,YAAM;IACZ,IAAIY,kBAAkB,EAAE;MAAA;MACpB;MACA,IAAI,IAAAmB,+CAAwB,EAACnB,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAER,OAAO,CAAC,EAAE;QACvD,IAAM4B,EAAE,GAAGpB,kBAAkB,CAACR,OAAgC;QAC9DM,aAAa,CAACsB,EAAE,CAACC,kBAAkB,EAAE,CAAC;QACtC;MACJ;MACA;MACA,IAAIpB,eAAe,IAAID,kBAAkB,aAAlBA,kBAAkB,wCAAlBA,kBAAkB,CAAER,OAAO,kDAA3B,sBAA6B8B,UAAU,EAAE;QAAA;QAC5D,IAAMP,YAAY,GAAG,CAAAf,kBAAkB,aAAlBA,kBAAkB,iDAAlBA,kBAAkB,CAAER,OAAO,2DAA3B,uBAA6B8B,UAAU,EAAE,KAAIC,SAAS;QAC3E,IAAIR,YAAY,EAAE;UACd,IAAMS,YAAY,GAAGvB,eAAe,CAACc,YAAY,CAAC;UAClD,IAAIS,YAAY,EAAE;YACd1B,aAAa,CAAC;cACVkB,EAAE,EAAEQ,YAAY,CAACR,EAAE;cACnBS,GAAG,EAAED,YAAY,CAACE,MAAM;cACxBC,IAAI,EAAEH,YAAY,CAACG,IAAI;cACvBjB,GAAG,EAAEc,YAAY,CAACd;YACtB,CAAC,CAAC;UACN;QACJ;MACJ;IACJ;EACJ,CAAC,EAAE,CAACR,oBAAoB,EAAEG,QAAQ,CAAC,CAAC;EAEpC,oBACI,6BAAC,gDAAuB,CAAC,QAAQ;IAC7B,KAAK,EAAE;MACHG,KAAK,EAAEX,UAAU;MACjB+B,eAAe,EAAEnB;IACrB;EAAE,gBAEF,6BAAC,4BAA4B,OAAG,CACD;AAE3C,CAAC;AAAC;AAEF;EACI;AAAA;AAEJhB,gBAAgB,CAACoC,kBAAkB,GAAGtC,wBAAwB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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.UnderlineAction = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
12
|
+
var _lexical = require("lexical");
|
|
13
|
+
var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
|
|
14
|
+
var UnderlineAction = function UnderlineAction() {
|
|
15
|
+
var _textBlockSelection$s;
|
|
16
|
+
var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
|
|
17
|
+
_useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
|
|
18
|
+
editor = _useLexicalComposerCo2[0];
|
|
19
|
+
var _useState = (0, _react.useState)(false),
|
|
20
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
21
|
+
isUnderline = _useState2[0],
|
|
22
|
+
setIsUnderline = _useState2[1];
|
|
23
|
+
var _useRichTextEditor = (0, _useRichTextEditor2.useRichTextEditor)(),
|
|
24
|
+
textBlockSelection = _useRichTextEditor.textBlockSelection;
|
|
25
|
+
var isUnderlineSelected = !!(textBlockSelection !== null && textBlockSelection !== void 0 && (_textBlockSelection$s = textBlockSelection.state) !== null && _textBlockSelection$s !== void 0 && _textBlockSelection$s.underline);
|
|
26
|
+
(0, _react.useEffect)(function () {
|
|
27
|
+
setIsUnderline(isUnderlineSelected);
|
|
28
|
+
}, [isUnderlineSelected]);
|
|
29
|
+
var handleClick = function handleClick() {
|
|
30
|
+
editor.dispatchCommand(_lexical.FORMAT_TEXT_COMMAND, "underline");
|
|
31
|
+
setIsUnderline(!isUnderline);
|
|
32
|
+
};
|
|
33
|
+
return /*#__PURE__*/_react.default.createElement("button", {
|
|
34
|
+
onClick: function onClick() {
|
|
35
|
+
return handleClick();
|
|
36
|
+
},
|
|
37
|
+
className: "popup-item spaced " + (isUnderline ? "active" : ""),
|
|
38
|
+
"aria-label": "Format text as italic"
|
|
39
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
40
|
+
className: "format underline"
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
43
|
+
exports.UnderlineAction = UnderlineAction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UnderlineAction","useLexicalComposerContext","editor","useState","isUnderline","setIsUnderline","useRichTextEditor","textBlockSelection","isUnderlineSelected","state","underline","useEffect","handleClick","dispatchCommand","FORMAT_TEXT_COMMAND"],"sources":["UnderlineAction.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { FORMAT_TEXT_COMMAND } from \"lexical\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\n\nexport const UnderlineAction = () => {\n const [editor] = useLexicalComposerContext();\n const [isUnderline, setIsUnderline] = useState(false);\n const { textBlockSelection } = useRichTextEditor();\n const isUnderlineSelected = !!textBlockSelection?.state?.underline;\n\n useEffect(() => {\n setIsUnderline(isUnderlineSelected);\n }, [isUnderlineSelected]);\n\n const handleClick = () => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, \"underline\");\n setIsUnderline(!isUnderline);\n };\n\n return (\n <button\n onClick={() => handleClick()}\n className={\"popup-item spaced \" + (isUnderline ? \"active\" : \"\")}\n aria-label=\"Format text as italic\"\n >\n <i className=\"format underline\" />\n </button>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAe,GAAS;EAAA;EACjC,4BAAiB,IAAAC,iDAAyB,GAAE;IAAA;IAArCC,MAAM;EACb,gBAAsC,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAA;IAA9CC,WAAW;IAAEC,cAAc;EAClC,yBAA+B,IAAAC,qCAAiB,GAAE;IAA1CC,kBAAkB,sBAAlBA,kBAAkB;EAC1B,IAAMC,mBAAmB,GAAG,CAAC,EAACD,kBAAkB,aAAlBA,kBAAkB,wCAAlBA,kBAAkB,CAAEE,KAAK,kDAAzB,sBAA2BC,SAAS;EAElE,IAAAC,gBAAS,EAAC,YAAM;IACZN,cAAc,CAACG,mBAAmB,CAAC;EACvC,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,IAAMI,WAAW,GAAG,SAAdA,WAAW,GAAS;IACtBV,MAAM,CAACW,eAAe,CAACC,4BAAmB,EAAE,WAAW,CAAC;IACxDT,cAAc,CAAC,CAACD,WAAW,CAAC;EAChC,CAAC;EAED,oBACI;IACI,OAAO,EAAE;MAAA,OAAMQ,WAAW,EAAE;IAAA,CAAC;IAC7B,SAAS,EAAE,oBAAoB,IAAIR,WAAW,GAAG,QAAQ,GAAG,EAAE,CAAE;IAChE,cAAW;EAAuB,gBAElC;IAAG,SAAS,EAAC;EAAkB,EAAG,CAC7B;AAEjB,CAAC;AAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.HeadingToolbarPreset = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _BoldAction = require("../ToolbarActions/BoldAction");
|
|
10
|
+
var _AddToolbarAction = require("../AddToolbarAction");
|
|
11
|
+
var _ItalicAction = require("../ToolbarActions/ItalicAction");
|
|
12
|
+
var _UnderlineAction = require("../ToolbarActions/UnderlineAction");
|
|
13
|
+
var _CodeHighlightAction = require("../ToolbarActions/CodeHighlightAction");
|
|
14
|
+
var _LinkAction = require("../ToolbarActions/LinkAction");
|
|
15
|
+
var _FontSizeAction = require("../ToolbarActions/FontSizeAction");
|
|
16
|
+
var _Divider = require("../../ui/Divider");
|
|
17
|
+
var _FontColorAction = require("../ToolbarActions/FontColorAction");
|
|
18
|
+
var _TypographyAction = require("../ToolbarActions/TypographyAction");
|
|
19
|
+
var HeadingToolbarPreset = function HeadingToolbarPreset() {
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
21
|
+
element: /*#__PURE__*/_react.default.createElement(_FontSizeAction.FontSizeAction, null),
|
|
22
|
+
type: "heading"
|
|
23
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
24
|
+
element: /*#__PURE__*/_react.default.createElement(_FontColorAction.FontColorAction, null),
|
|
25
|
+
type: "heading"
|
|
26
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
27
|
+
element: /*#__PURE__*/_react.default.createElement(_TypographyAction.TypographyAction, null),
|
|
28
|
+
type: "heading"
|
|
29
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
30
|
+
element: /*#__PURE__*/_react.default.createElement(_Divider.Divider, null),
|
|
31
|
+
type: "heading"
|
|
32
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
33
|
+
element: /*#__PURE__*/_react.default.createElement(_BoldAction.BoldAction, null),
|
|
34
|
+
type: "heading"
|
|
35
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
36
|
+
element: /*#__PURE__*/_react.default.createElement(_ItalicAction.ItalicAction, null),
|
|
37
|
+
type: "heading"
|
|
38
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
39
|
+
element: /*#__PURE__*/_react.default.createElement(_UnderlineAction.UnderlineAction, null),
|
|
40
|
+
type: "heading"
|
|
41
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
42
|
+
element: /*#__PURE__*/_react.default.createElement(_CodeHighlightAction.CodeHighlightAction, null),
|
|
43
|
+
type: "heading"
|
|
44
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
45
|
+
element: /*#__PURE__*/_react.default.createElement(_Divider.Divider, null),
|
|
46
|
+
type: "heading"
|
|
47
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
48
|
+
element: /*#__PURE__*/_react.default.createElement(_LinkAction.LinkAction, null),
|
|
49
|
+
type: "heading"
|
|
50
|
+
}));
|
|
51
|
+
};
|
|
52
|
+
exports.HeadingToolbarPreset = HeadingToolbarPreset;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HeadingToolbarPreset"],"sources":["HeadingToolbarPreset.tsx"],"sourcesContent":["import React from \"react\";\nimport { BoldAction } from \"~/components/ToolbarActions/BoldAction\";\nimport { AddToolbarAction } from \"~/components/AddToolbarAction\";\nimport { ItalicAction } from \"~/components/ToolbarActions/ItalicAction\";\nimport { UnderlineAction } from \"~/components/ToolbarActions/UnderlineAction\";\nimport { CodeHighlightAction } from \"~/components/ToolbarActions/CodeHighlightAction\";\nimport { LinkAction } from \"~/components/ToolbarActions/LinkAction\";\nimport { FontSizeAction } from \"~/components/ToolbarActions/FontSizeAction\";\nimport { Divider } from \"~/ui/Divider\";\nimport { FontColorAction } from \"~/components/ToolbarActions/FontColorAction\";\nimport { TypographyAction } from \"~/components/ToolbarActions/TypographyAction\";\n\nexport const HeadingToolbarPreset = () => {\n return (\n <>\n <AddToolbarAction element={<FontSizeAction />} type={\"heading\"} />\n <AddToolbarAction element={<FontColorAction />} type={\"heading\"} />\n <AddToolbarAction element={<TypographyAction />} type={\"heading\"} />\n <AddToolbarAction element={<Divider />} type={\"heading\"} />\n <AddToolbarAction element={<BoldAction />} type={\"heading\"} />\n <AddToolbarAction element={<ItalicAction />} type={\"heading\"} />\n <AddToolbarAction element={<UnderlineAction />} type={\"heading\"} />\n <AddToolbarAction element={<CodeHighlightAction />} type={\"heading\"} />\n <AddToolbarAction element={<Divider />} type={\"heading\"} />\n <AddToolbarAction element={<LinkAction />} type={\"heading\"} />\n </>\n );\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAoB,GAAS;EACtC,oBACI,yEACI,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,8BAAc,OAAI;IAAC,IAAI,EAAE;EAAU,EAAG,eAClE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,gCAAe,OAAI;IAAC,IAAI,EAAE;EAAU,EAAG,eACnE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,kCAAgB,OAAI;IAAC,IAAI,EAAE;EAAU,EAAG,eACpE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,gBAAO,OAAI;IAAC,IAAI,EAAE;EAAU,EAAG,eAC3D,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,sBAAU,OAAI;IAAC,IAAI,EAAE;EAAU,EAAG,eAC9D,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,0BAAY,OAAI;IAAC,IAAI,EAAE;EAAU,EAAG,eAChE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,gCAAe,OAAI;IAAC,IAAI,EAAE;EAAU,EAAG,eACnE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,wCAAmB,OAAI;IAAC,IAAI,EAAE;EAAU,EAAG,eACvE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,gBAAO,OAAI;IAAC,IAAI,EAAE;EAAU,EAAG,eAC3D,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,sBAAU,OAAI;IAAC,IAAI,EAAE;EAAU,EAAG,CAC/D;AAEX,CAAC;AAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ParagraphToolbarPreset = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _BoldAction = require("../ToolbarActions/BoldAction");
|
|
10
|
+
var _AddToolbarAction = require("../AddToolbarAction");
|
|
11
|
+
var _ItalicAction = require("../ToolbarActions/ItalicAction");
|
|
12
|
+
var _UnderlineAction = require("../ToolbarActions/UnderlineAction");
|
|
13
|
+
var _CodeHighlightAction = require("../ToolbarActions/CodeHighlightAction");
|
|
14
|
+
var _LinkAction = require("../ToolbarActions/LinkAction");
|
|
15
|
+
var _FontSizeAction = require("../ToolbarActions/FontSizeAction");
|
|
16
|
+
var _Divider = require("../../ui/Divider");
|
|
17
|
+
var _NumberedListAction = require("../ToolbarActions/NumberedListAction");
|
|
18
|
+
var _BulletListAction = require("../ToolbarActions/BulletListAction");
|
|
19
|
+
var _QuoteAction = require("../ToolbarActions/QuoteAction");
|
|
20
|
+
var _FontColorAction = require("../ToolbarActions/FontColorAction");
|
|
21
|
+
var _TypographyAction = require("../ToolbarActions/TypographyAction");
|
|
22
|
+
var ParagraphToolbarPreset = function ParagraphToolbarPreset() {
|
|
23
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
24
|
+
element: /*#__PURE__*/_react.default.createElement(_FontSizeAction.FontSizeAction, null),
|
|
25
|
+
type: "paragraph"
|
|
26
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
27
|
+
element: /*#__PURE__*/_react.default.createElement(_FontColorAction.FontColorAction, null),
|
|
28
|
+
type: "paragraph"
|
|
29
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
30
|
+
element: /*#__PURE__*/_react.default.createElement(_TypographyAction.TypographyAction, null),
|
|
31
|
+
type: "paragraph"
|
|
32
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
33
|
+
element: /*#__PURE__*/_react.default.createElement(_Divider.Divider, null),
|
|
34
|
+
type: "paragraph"
|
|
35
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
36
|
+
element: /*#__PURE__*/_react.default.createElement(_BoldAction.BoldAction, null),
|
|
37
|
+
type: "paragraph"
|
|
38
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
39
|
+
element: /*#__PURE__*/_react.default.createElement(_ItalicAction.ItalicAction, null),
|
|
40
|
+
type: "paragraph"
|
|
41
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
42
|
+
element: /*#__PURE__*/_react.default.createElement(_UnderlineAction.UnderlineAction, null),
|
|
43
|
+
type: "paragraph"
|
|
44
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
45
|
+
element: /*#__PURE__*/_react.default.createElement(_CodeHighlightAction.CodeHighlightAction, null),
|
|
46
|
+
type: "paragraph"
|
|
47
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
48
|
+
element: /*#__PURE__*/_react.default.createElement(_Divider.Divider, null),
|
|
49
|
+
type: "paragraph"
|
|
50
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
51
|
+
element: /*#__PURE__*/_react.default.createElement(_NumberedListAction.NumberedListAction, null),
|
|
52
|
+
type: "paragraph"
|
|
53
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
54
|
+
element: /*#__PURE__*/_react.default.createElement(_BulletListAction.BulletListAction, null),
|
|
55
|
+
type: "paragraph"
|
|
56
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
57
|
+
element: /*#__PURE__*/_react.default.createElement(_Divider.Divider, null),
|
|
58
|
+
type: "paragraph"
|
|
59
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
60
|
+
element: /*#__PURE__*/_react.default.createElement(_LinkAction.LinkAction, null),
|
|
61
|
+
type: "paragraph"
|
|
62
|
+
}), /*#__PURE__*/_react.default.createElement(_AddToolbarAction.AddToolbarAction, {
|
|
63
|
+
element: /*#__PURE__*/_react.default.createElement(_QuoteAction.QuoteAction, null),
|
|
64
|
+
type: "paragraph"
|
|
65
|
+
}));
|
|
66
|
+
};
|
|
67
|
+
exports.ParagraphToolbarPreset = ParagraphToolbarPreset;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ParagraphToolbarPreset"],"sources":["ParagraphToolbarPreset.tsx"],"sourcesContent":["import React from \"react\";\nimport { BoldAction } from \"~/components/ToolbarActions/BoldAction\";\nimport { AddToolbarAction } from \"~/components/AddToolbarAction\";\nimport { ItalicAction } from \"~/components/ToolbarActions/ItalicAction\";\nimport { UnderlineAction } from \"~/components/ToolbarActions/UnderlineAction\";\nimport { CodeHighlightAction } from \"~/components/ToolbarActions/CodeHighlightAction\";\nimport { LinkAction } from \"~/components/ToolbarActions/LinkAction\";\nimport { FontSizeAction } from \"~/components/ToolbarActions/FontSizeAction\";\nimport { Divider } from \"~/ui/Divider\";\nimport { NumberedListAction } from \"~/components/ToolbarActions/NumberedListAction\";\nimport { BulletListAction } from \"~/components/ToolbarActions/BulletListAction\";\nimport { QuoteAction } from \"~/components/ToolbarActions/QuoteAction\";\nimport { FontColorAction } from \"~/components/ToolbarActions/FontColorAction\";\nimport { TypographyAction } from \"~/components/ToolbarActions/TypographyAction\";\n\nexport const ParagraphToolbarPreset = () => {\n return (\n <>\n <AddToolbarAction element={<FontSizeAction />} type={\"paragraph\"} />\n <AddToolbarAction element={<FontColorAction />} type={\"paragraph\"} />\n <AddToolbarAction element={<TypographyAction />} type={\"paragraph\"} />\n <AddToolbarAction element={<Divider />} type={\"paragraph\"} />\n <AddToolbarAction element={<BoldAction />} type={\"paragraph\"} />\n <AddToolbarAction element={<ItalicAction />} type={\"paragraph\"} />\n <AddToolbarAction element={<UnderlineAction />} type={\"paragraph\"} />\n <AddToolbarAction element={<CodeHighlightAction />} type={\"paragraph\"} />\n <AddToolbarAction element={<Divider />} type={\"paragraph\"} />\n <AddToolbarAction element={<NumberedListAction />} type={\"paragraph\"} />\n <AddToolbarAction element={<BulletListAction />} type={\"paragraph\"} />\n <AddToolbarAction element={<Divider />} type={\"paragraph\"} />\n <AddToolbarAction element={<LinkAction />} type={\"paragraph\"} />\n <AddToolbarAction element={<QuoteAction />} type={\"paragraph\"} />\n </>\n );\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAsB,GAAS;EACxC,oBACI,yEACI,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,8BAAc,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eACpE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,gCAAe,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eACrE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,kCAAgB,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eACtE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,gBAAO,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eAC7D,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,sBAAU,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eAChE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,0BAAY,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eAClE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,gCAAe,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eACrE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,wCAAmB,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eACzE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,gBAAO,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eAC7D,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,sCAAkB,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eACxE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,kCAAgB,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eACtE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,gBAAO,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eAC7D,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,sBAAU,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,eAChE,6BAAC,kCAAgB;IAAC,OAAO,eAAE,6BAAC,wBAAW,OAAI;IAAC,IAAI,EAAE;EAAY,EAAG,CAClE;AAEX,CAAC;AAAC"}
|