@webiny/lexical-editor 5.37.8 → 5.38.0-beta.1
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/commands/image.d.ts +6 -0
- package/commands/{insertFiles.js → image.js} +3 -1
- package/commands/image.js.map +1 -0
- package/commands/index.d.ts +3 -0
- package/commands/index.js +40 -0
- package/commands/index.js.map +1 -0
- package/commands/list.d.ts +7 -0
- package/commands/list.js +15 -0
- package/commands/list.js.map +1 -0
- package/commands/quote.d.ts +5 -0
- package/commands/quote.js +11 -0
- package/commands/quote.js.map +1 -0
- package/components/Editor/HeadingEditor.js +3 -1
- package/components/Editor/ParagraphEditor.js +3 -1
- package/components/Editor/RichTextEditor.d.ts +2 -2
- package/components/Editor/RichTextEditor.js +19 -12
- package/components/Editor/RichTextEditor.js.map +1 -1
- package/components/LexicalEditorConfig/LexicalEditorConfig.js +3 -1
- package/components/LexicalEditorConfig/components/Node.js +3 -1
- package/components/LexicalEditorConfig/components/Plugin.js +3 -1
- package/components/LexicalEditorConfig/components/ToolbarElement.js +3 -1
- package/components/LexicalHtmlRenderer.d.ts +2 -2
- package/components/LexicalHtmlRenderer.js +24 -17
- package/components/LexicalHtmlRenderer.js.map +1 -1
- package/components/Toolbar/StaticToolbar.d.ts +2 -2
- package/components/Toolbar/StaticToolbar.js +7 -78
- package/components/Toolbar/StaticToolbar.js.map +1 -1
- package/components/Toolbar/Toolbar.d.ts +1 -1
- package/components/Toolbar/Toolbar.js +27 -80
- package/components/Toolbar/Toolbar.js.map +1 -1
- package/components/ToolbarActions/BoldAction.js +10 -20
- package/components/ToolbarActions/BoldAction.js.map +1 -1
- package/components/ToolbarActions/BulletListAction.js +17 -23
- package/components/ToolbarActions/BulletListAction.js.map +1 -1
- package/components/ToolbarActions/CodeHighlightAction.js +10 -20
- package/components/ToolbarActions/CodeHighlightAction.js.map +1 -1
- package/components/ToolbarActions/FontColorAction.js +20 -37
- package/components/ToolbarActions/FontColorAction.js.map +1 -1
- package/components/ToolbarActions/FontSizeAction.js +11 -27
- package/components/ToolbarActions/FontSizeAction.js.map +1 -1
- package/components/ToolbarActions/ImageAction.js +6 -4
- package/components/ToolbarActions/ImageAction.js.map +1 -1
- package/components/ToolbarActions/ItalicAction.js +10 -20
- package/components/ToolbarActions/ItalicAction.js.map +1 -1
- package/components/ToolbarActions/LinkAction.js +18 -36
- package/components/ToolbarActions/LinkAction.js.map +1 -1
- package/components/ToolbarActions/NumberedListAction.js +18 -27
- package/components/ToolbarActions/NumberedListAction.js.map +1 -1
- package/components/ToolbarActions/QuoteAction.js +15 -24
- package/components/ToolbarActions/QuoteAction.js.map +1 -1
- package/components/ToolbarActions/TextAlignmentAction.js +27 -21
- package/components/ToolbarActions/TextAlignmentAction.js.map +1 -1
- package/components/ToolbarActions/TypographyAction.js +53 -60
- package/components/ToolbarActions/TypographyAction.js.map +1 -1
- package/components/ToolbarActions/UnderlineAction.js +11 -21
- package/components/ToolbarActions/UnderlineAction.js.map +1 -1
- package/context/FontColorActionContext.js +3 -1
- package/context/RichTextEditorContext.d.ts +2 -6
- package/context/RichTextEditorContext.js +20 -36
- package/context/RichTextEditorContext.js.map +1 -1
- package/context/SharedHistoryContext.js +3 -1
- package/context/TextAlignmentActionContextProps.js +3 -1
- package/context/TypographyActionContext.d.ts +1 -1
- package/context/TypographyActionContext.js +3 -1
- package/context/TypographyActionContext.js.map +1 -1
- package/hooks/index.d.ts +7 -0
- package/hooks/index.js +84 -0
- package/hooks/index.js.map +1 -0
- package/hooks/useCurrentElement.d.ts +7 -0
- package/hooks/useCurrentElement.js +33 -0
- package/hooks/useCurrentElement.js.map +1 -0
- package/hooks/useCurrentSelection.d.ts +12 -0
- package/hooks/useCurrentSelection.js +72 -0
- package/hooks/useCurrentSelection.js.map +1 -0
- package/hooks/useFontColorPicker.js +3 -1
- package/hooks/useIsMounted.d.ts +1 -0
- package/hooks/useIsMounted.js +20 -0
- package/hooks/useIsMounted.js.map +1 -0
- package/hooks/useList.js +22 -21
- package/hooks/useList.js.map +1 -1
- package/hooks/useQuote.d.ts +1 -1
- package/hooks/useQuote.js +9 -7
- package/hooks/useQuote.js.map +1 -1
- package/hooks/useRichTextEditor.js +3 -1
- package/hooks/useTextAlignmentAction.js +3 -1
- package/hooks/useTypographyAction.js +3 -1
- package/index.d.ts +4 -8
- package/index.js +71 -48
- package/index.js.map +1 -1
- package/package.json +16 -20
- package/plugins/BlurEventPlugin/BlurEventPlugin.js +3 -1
- package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js +3 -1
- package/plugins/CodeHighlightPlugin/index.js +3 -1
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js +11 -9
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js.map +1 -1
- package/plugins/FloatingLinkEditorPlugin/index.js +3 -1
- package/plugins/FontColorPlugin/FontColorPlugin.js +8 -7
- package/plugins/FontColorPlugin/FontColorPlugin.js.map +1 -1
- package/plugins/ImagesPlugin/ImagesPlugin.d.ts +1 -1
- package/plugins/ImagesPlugin/ImagesPlugin.js +11 -9
- package/plugins/ImagesPlugin/ImagesPlugin.js.map +1 -1
- package/plugins/LexicalUpdateStatePlugin/UpdateStatePlugin.d.ts +9 -0
- package/plugins/LexicalUpdateStatePlugin/{LexicalUpdateStatePlugin.js → UpdateStatePlugin.js} +22 -14
- package/plugins/LexicalUpdateStatePlugin/UpdateStatePlugin.js.map +1 -0
- package/plugins/LexicalUpdateStatePlugin/index.d.ts +1 -1
- package/plugins/LexicalUpdateStatePlugin/index.js +7 -5
- package/plugins/LexicalUpdateStatePlugin/index.js.map +1 -1
- package/plugins/LinkPlugin/LinkPlugin.d.ts +5 -0
- package/plugins/LinkPlugin/LinkPlugin.js +68 -0
- package/plugins/LinkPlugin/LinkPlugin.js.map +1 -0
- package/plugins/ListPLugin/ListPlugin.js +6 -5
- package/plugins/ListPLugin/ListPlugin.js.map +1 -1
- package/plugins/TypographyPlugin/TypographyPlugin.js +7 -7
- package/plugins/TypographyPlugin/TypographyPlugin.js.map +1 -1
- package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js +6 -4
- package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js.map +1 -1
- package/types.d.ts +1 -60
- package/types.js +5 -3
- package/types.js.map +1 -1
- package/ui/ContentEditable.js +3 -1
- package/ui/Divider.js +3 -1
- package/ui/DropDown.js +3 -1
- package/ui/ImageResizer.js +3 -1
- package/ui/LinkPreview.js +3 -1
- package/ui/Placeholder.js +3 -1
- package/ui/TextInput.js +3 -1
- package/ui/ToolbarActionDialog.js +3 -1
- package/utils/canUseDOM.js +3 -1
- package/utils/files.d.ts +1 -1
- package/utils/files.js +3 -1
- package/utils/files.js.map +1 -1
- package/utils/generateInitialLexicalValue.js +3 -1
- package/utils/getDOMRangeRect.js +3 -1
- package/utils/getSelectedNode.js +3 -1
- package/utils/getTransparentImage.js +3 -1
- package/utils/insertImage.d.ts +2 -0
- package/utils/{nodes/insertImage.js → insertImage.js} +6 -5
- package/utils/insertImage.js.map +1 -0
- package/utils/isHTMLElement.js +3 -1
- package/utils/isUrlLinkReference.js +3 -1
- package/utils/isValidJSON.js +3 -1
- package/utils/isValidLexicalData.js +3 -1
- package/utils/point.js +3 -1
- package/utils/rect.js +3 -1
- package/utils/sanitizeUrl.js +3 -1
- package/utils/setFloatingElemPosition.js +3 -1
- package/commands/insertFiles.d.ts +0 -14
- package/commands/insertFiles.js.map +0 -1
- package/commands/webiny-list.d.ts +0 -7
- package/commands/webiny-list.js +0 -13
- package/commands/webiny-list.js.map +0 -1
- package/commands/webiny-quote.d.ts +0 -5
- package/commands/webiny-quote.js +0 -9
- package/commands/webiny-quote.js.map +0 -1
- package/components/ImageComponent.d.ts +0 -23
- package/components/ImageComponent.js +0 -252
- package/components/ImageComponent.js.map +0 -1
- package/nodes/FontColorNode.d.ts +0 -43
- package/nodes/FontColorNode.js +0 -123
- package/nodes/FontColorNode.js.map +0 -1
- package/nodes/HeadingNode.d.ts +0 -34
- package/nodes/HeadingNode.js +0 -191
- package/nodes/HeadingNode.js.map +0 -1
- package/nodes/ImageNode.d.ts +0 -50
- package/nodes/ImageNode.js +0 -206
- package/nodes/ImageNode.js.map +0 -1
- package/nodes/ListItemNode.d.ts +0 -46
- package/nodes/ListItemNode.js +0 -447
- package/nodes/ListItemNode.js.map +0 -1
- package/nodes/ListNode/formatList.d.ts +0 -19
- package/nodes/ListNode/formatList.js +0 -447
- package/nodes/ListNode/formatList.js.map +0 -1
- package/nodes/ListNode.d.ts +0 -42
- package/nodes/ListNode.js +0 -288
- package/nodes/ListNode.js.map +0 -1
- package/nodes/ParagraphNode.d.ts +0 -32
- package/nodes/ParagraphNode.js +0 -218
- package/nodes/ParagraphNode.js.map +0 -1
- package/nodes/QuoteNode.d.ts +0 -34
- package/nodes/QuoteNode.js +0 -225
- package/nodes/QuoteNode.js.map +0 -1
- package/nodes/TypographyElementNode.d.ts +0 -42
- package/nodes/TypographyElementNode.js +0 -151
- package/nodes/TypographyElementNode.js.map +0 -1
- package/nodes/imageNode.css +0 -43
- package/nodes/link-node.d.ts +0 -19
- package/nodes/link-node.js +0 -120
- package/nodes/link-node.js.map +0 -1
- package/nodes/types.d.ts +0 -15
- package/nodes/types.js +0 -5
- package/nodes/types.js.map +0 -1
- package/nodes/webinyNodes.d.ts +0 -7
- package/nodes/webinyNodes.js +0 -60
- package/nodes/webinyNodes.js.map +0 -1
- package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.d.ts +0 -8
- package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.js.map +0 -1
- package/themes/webinyLexicalTheme.css +0 -423
- package/themes/webinyLexicalTheme.d.ts +0 -9
- package/themes/webinyLexicalTheme.js +0 -90
- package/themes/webinyLexicalTheme.js.map +0 -1
- package/utils/findTypographyStyleByHtmlTag.d.ts +0 -8
- package/utils/findTypographyStyleByHtmlTag.js +0 -16
- package/utils/findTypographyStyleByHtmlTag.js.map +0 -1
- package/utils/getLexicalTextSelectionState.d.ts +0 -5
- package/utils/getLexicalTextSelectionState.js +0 -167
- package/utils/getLexicalTextSelectionState.js.map +0 -1
- package/utils/nodes/clearNodeFormating.d.ts +0 -2
- package/utils/nodes/clearNodeFormating.js +0 -28
- package/utils/nodes/clearNodeFormating.js.map +0 -1
- package/utils/nodes/formatToHeading.d.ts +0 -3
- package/utils/nodes/formatToHeading.js +0 -25
- package/utils/nodes/formatToHeading.js.map +0 -1
- package/utils/nodes/formatToParagraph.d.ts +0 -2
- package/utils/nodes/formatToParagraph.js +0 -20
- package/utils/nodes/formatToParagraph.js.map +0 -1
- package/utils/nodes/formatToQuote.d.ts +0 -2
- package/utils/nodes/formatToQuote.js +0 -25
- package/utils/nodes/formatToQuote.js.map +0 -1
- package/utils/nodes/insertImage.d.ts +0 -2
- package/utils/nodes/insertImage.js.map +0 -1
- package/utils/nodes/listNode.d.ts +0 -11
- package/utils/nodes/listNode.js +0 -107
- package/utils/nodes/listNode.js.map +0 -1
- package/utils/styleObjectToString.d.ts +0 -2
- package/utils/styleObjectToString.js +0 -22
- package/utils/styleObjectToString.js.map +0 -1
- package/utils/toTypographyEmotionMap.d.ts +0 -3
- package/utils/toTypographyEmotionMap.js +0 -41
- package/utils/toTypographyEmotionMap.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_LexicalComposerContext","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_LexicalComposerContext","_reactComposition","_FontColorActionContext","_lexicalNodes","_getSelectedNode","_useCurrentSelection","FontColorPicker","makeComposable","useEffect","console","log","exports","FontActionColorPicker","_ref","element","default","createElement","Compose","component","with","_with","FontColorAction","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","editor","fontColor","useDeriveValueFromSelection","_ref2","rangeSelection","node","getSelectedNode","$isFontColorNode","getColorStyle","color","onFontColorSelect","useCallback","colorValue","themeColorName","dispatchCommand","ADD_FONT_COLOR_COMMAND","context","useMemo","value","applyColor","FontColorActionContext","Provider","ColorPicker"],"sources":["FontColorAction.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo } from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { LexicalCommand } from \"lexical\";\nimport { Compose, makeComposable } from \"@webiny/react-composition\";\nimport { FontColorActionContext } from \"~/context/FontColorActionContext\";\nimport { $isFontColorNode, ADD_FONT_COLOR_COMMAND, FontColorPayload } from \"@webiny/lexical-nodes\";\nimport { getSelectedNode } from \"~/utils/getSelectedNode\";\nimport { useDeriveValueFromSelection } from \"~/hooks/useCurrentSelection\";\n\nexport const FontColorPicker = makeComposable(\"FontColorPicker\", (): JSX.Element | null => {\n useEffect(() => {\n console.log(\"Default FontColorPicker, please add your own component\");\n }, []);\n return null;\n});\n\ninterface FontActionColorPicker {\n element: JSX.Element;\n}\n\nconst FontActionColorPicker: React.FC<FontActionColorPicker> = ({ element }): JSX.Element => {\n return <Compose component={FontColorPicker} with={() => () => element} />;\n};\n\nexport interface FontColorAction extends React.FC<unknown> {\n ColorPicker: typeof FontActionColorPicker;\n}\n\nexport const FontColorAction: FontColorAction = () => {\n const [editor] = useLexicalComposerContext();\n const fontColor = useDeriveValueFromSelection(({ rangeSelection }) => {\n if (!rangeSelection) {\n return \"#000\";\n }\n\n const node = getSelectedNode(rangeSelection);\n return $isFontColorNode(node) ? node.getColorStyle().color : \"#000\";\n });\n\n const onFontColorSelect = useCallback(\n (colorValue: string, themeColorName: string | undefined) => {\n editor.dispatchCommand<LexicalCommand<FontColorPayload>>(ADD_FONT_COLOR_COMMAND, {\n color: colorValue,\n themeColorName\n });\n },\n []\n );\n\n const context = useMemo(\n () => ({\n value: fontColor,\n applyColor: onFontColorSelect\n }),\n [onFontColorSelect, fontColor]\n );\n\n return (\n <FontColorActionContext.Provider value={context}>\n <FontColorPicker />\n </FontColorActionContext.Provider>\n );\n};\n\nFontColorAction.ColorPicker = FontActionColorPicker;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AAEO,IAAMO,eAAe,GAAG,IAAAC,gCAAc,EAAC,iBAAiB,EAAE,YAA0B;EACvF,IAAAC,gBAAS,EAAC,YAAM;IACZC,OAAO,CAACC,GAAG,CAAC,wDAAwD,CAAC;EACzE,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC,CAAC;AAACC,OAAA,CAAAL,eAAA,GAAAA,eAAA;AAMH,IAAMM,qBAAsD,GAAG,SAAzDA,qBAAsDA,CAAAC,IAAA,EAAiC;EAAA,IAA3BC,OAAO,GAAAD,IAAA,CAAPC,OAAO;EACrE,oBAAOjB,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACf,iBAAA,CAAAgB,OAAO;IAACC,SAAS,EAAEZ,eAAgB;IAACa,IAAI,EAAE,SAAAC,MAAA;MAAA,OAAM;QAAA,OAAMN,OAAO;MAAA;IAAA;EAAC,CAAE,CAAC;AAC7E,CAAC;AAMM,IAAMO,eAAgC,GAAG,SAAnCA,eAAgCA,CAAA,EAAS;EAClD,IAAAC,qBAAA,GAAiB,IAAAC,iDAAyB,EAAC,CAAC;IAAAC,sBAAA,OAAAC,eAAA,CAAAV,OAAA,EAAAO,qBAAA;IAArCI,MAAM,GAAAF,sBAAA;EACb,IAAMG,SAAS,GAAG,IAAAC,gDAA2B,EAAC,UAAAC,KAAA,EAAwB;IAAA,IAArBC,cAAc,GAAAD,KAAA,CAAdC,cAAc;IAC3D,IAAI,CAACA,cAAc,EAAE;MACjB,OAAO,MAAM;IACjB;IAEA,IAAMC,IAAI,GAAG,IAAAC,gCAAe,EAACF,cAAc,CAAC;IAC5C,OAAO,IAAAG,8BAAgB,EAACF,IAAI,CAAC,GAAGA,IAAI,CAACG,aAAa,CAAC,CAAC,CAACC,KAAK,GAAG,MAAM;EACvE,CAAC,CAAC;EAEF,IAAMC,iBAAiB,GAAG,IAAAC,kBAAW,EACjC,UAACC,UAAkB,EAAEC,cAAkC,EAAK;IACxDb,MAAM,CAACc,eAAe,CAAmCC,oCAAsB,EAAE;MAC7EN,KAAK,EAAEG,UAAU;MACjBC,cAAc,EAAdA;IACJ,CAAC,CAAC;EACN,CAAC,EACD,EACJ,CAAC;EAED,IAAMG,OAAO,GAAG,IAAAC,cAAO,EACnB;IAAA,OAAO;MACHC,KAAK,EAAEjB,SAAS;MAChBkB,UAAU,EAAET;IAChB,CAAC;EAAA,CAAC,EACF,CAACA,iBAAiB,EAAET,SAAS,CACjC,CAAC;EAED,oBACI9B,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACd,uBAAA,CAAA4C,sBAAsB,CAACC,QAAQ;IAACH,KAAK,EAAEF;EAAQ,gBAC5C7C,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACV,eAAe,MAAE,CACW,CAAC;AAE1C,CAAC;AAACK,OAAA,CAAAU,eAAA,GAAAA,eAAA;AAEFA,eAAe,CAAC2B,WAAW,GAAGpC,qBAAqB"}
|
|
@@ -14,6 +14,7 @@ var _selection = require("@lexical/selection");
|
|
|
14
14
|
var _utils = require("@lexical/utils");
|
|
15
15
|
var _lexical = require("lexical");
|
|
16
16
|
var _DropDown = require("../../ui/DropDown");
|
|
17
|
+
var _useCurrentSelection = require("../../hooks/useCurrentSelection");
|
|
17
18
|
var FONT_SIZE_OPTIONS = ["8px", "9px", "10px", "11px", "12px", "14px", "15px", "16px", "18px", "21px", "24px", "30px", "36px", "48px", "60px", "72px", "96px"];
|
|
18
19
|
function dropDownActiveClass(active) {
|
|
19
20
|
if (active) {
|
|
@@ -61,41 +62,24 @@ var FontSizeAction = function FontSizeAction() {
|
|
|
61
62
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
62
63
|
isEditable = _useState2[0],
|
|
63
64
|
setIsEditable = _useState2[1];
|
|
64
|
-
var
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
var _useState5 = (0, _react.useState)("15px"),
|
|
69
|
-
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
70
|
-
fontSize = _useState6[0],
|
|
71
|
-
setFontSize = _useState6[1];
|
|
72
|
-
var updateToolbar = (0, _react.useCallback)(function () {
|
|
73
|
-
var selection = (0, _lexical.$getSelection)();
|
|
74
|
-
if ((0, _lexical.$isRangeSelection)(selection)) {
|
|
75
|
-
setFontSize((0, _selection.$getSelectionStyleValueForProperty)(selection, "font-size", "15px"));
|
|
65
|
+
var fontSize = (0, _useCurrentSelection.useDeriveValueFromSelection)(function (_ref) {
|
|
66
|
+
var rangeSelection = _ref.rangeSelection;
|
|
67
|
+
if (!rangeSelection) {
|
|
68
|
+
return "15px";
|
|
76
69
|
}
|
|
77
|
-
|
|
70
|
+
return (0, _selection.$getSelectionStyleValueForProperty)(rangeSelection, "font-size", "15px");
|
|
71
|
+
});
|
|
78
72
|
(0, _react.useEffect)(function () {
|
|
79
73
|
return (0, _utils.mergeRegister)(editor.registerEditableListener(function (editable) {
|
|
80
74
|
setIsEditable(editable);
|
|
81
|
-
}), activeEditor.registerUpdateListener(function (_ref) {
|
|
82
|
-
var editorState = _ref.editorState;
|
|
83
|
-
editorState.read(function () {
|
|
84
|
-
updateToolbar();
|
|
85
|
-
});
|
|
86
75
|
}));
|
|
87
|
-
}, [
|
|
88
|
-
(0, _react.useEffect)(function () {
|
|
89
|
-
return editor.registerCommand(_lexical.SELECTION_CHANGE_COMMAND, function (_payload, newEditor) {
|
|
90
|
-
updateToolbar();
|
|
91
|
-
setActiveEditor(newEditor);
|
|
92
|
-
return false;
|
|
93
|
-
}, _lexical.COMMAND_PRIORITY_CRITICAL);
|
|
94
|
-
}, [editor, updateToolbar]);
|
|
76
|
+
}, [editor]);
|
|
95
77
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(FontSizeDropDown, {
|
|
96
78
|
disabled: !isEditable,
|
|
97
79
|
value: fontSize,
|
|
98
80
|
editor: editor
|
|
99
81
|
}));
|
|
100
82
|
};
|
|
101
|
-
exports.FontSizeAction = FontSizeAction;
|
|
83
|
+
exports.FontSizeAction = FontSizeAction;
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=FontSizeAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_LexicalComposerContext","_selection","_utils","_lexical","_DropDown","FONT_SIZE_OPTIONS","dropDownActiveClass","active","FontSizeDropDown","props","editor","value","_props$disabled","disabled","handleClick","useCallback","option","update","selection","$getSelection","$isRangeSelection","$patchStyleText","_defineProperty2","default","createElement","DropDown","buttonClassName","buttonLabel","buttonAriaLabel","map","DropDownItem","className","concat","onClick","key","FontSizeAction","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","_useState","useState","isEditable","_useState2","setIsEditable","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_LexicalComposerContext","_selection","_utils","_lexical","_DropDown","_useCurrentSelection","FONT_SIZE_OPTIONS","dropDownActiveClass","active","FontSizeDropDown","props","editor","value","_props$disabled","disabled","handleClick","useCallback","option","update","selection","$getSelection","$isRangeSelection","$patchStyleText","_defineProperty2","default","createElement","DropDown","buttonClassName","buttonLabel","buttonAriaLabel","map","DropDownItem","className","concat","onClick","key","FontSizeAction","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","_useState","useState","isEditable","_useState2","setIsEditable","fontSize","useDeriveValueFromSelection","_ref","rangeSelection","$getSelectionStyleValueForProperty","useEffect","mergeRegister","registerEditableListener","editable","Fragment","exports"],"sources":["FontSizeAction.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { $getSelectionStyleValueForProperty, $patchStyleText } from \"@lexical/selection\";\nimport { mergeRegister } from \"@lexical/utils\";\nimport { $getSelection, $isRangeSelection, LexicalEditor } from \"lexical\";\nimport { DropDown, DropDownItem } from \"~/ui/DropDown\";\nimport { useDeriveValueFromSelection } from \"~/hooks/useCurrentSelection\";\n\nconst FONT_SIZE_OPTIONS: string[] = [\n \"8px\",\n \"9px\",\n \"10px\",\n \"11px\",\n \"12px\",\n \"14px\",\n \"15px\",\n \"16px\",\n \"18px\",\n \"21px\",\n \"24px\",\n \"30px\",\n \"36px\",\n \"48px\",\n \"60px\",\n \"72px\",\n \"96px\"\n];\n\nfunction dropDownActiveClass(active: boolean) {\n if (active) {\n return \"active dropdown-item-active\";\n }\n return \"\";\n}\n\ninterface FontSizeDropDownProps {\n editor: LexicalEditor;\n value: string;\n disabled?: boolean;\n}\n\nfunction FontSizeDropDown(props: FontSizeDropDownProps): JSX.Element {\n const { editor, value, disabled = false } = props;\n\n const handleClick = useCallback(\n (option: string) => {\n editor.update(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection)) {\n $patchStyleText(selection, {\n [\"font-size\"]: option\n });\n }\n });\n },\n [editor]\n );\n\n return (\n <DropDown\n disabled={disabled}\n buttonClassName=\"toolbar-item font-size\"\n buttonLabel={value}\n buttonAriaLabel={\"Formatting options for font size\"}\n >\n {FONT_SIZE_OPTIONS.map(option => (\n <DropDownItem\n className={`item fontsize-item ${dropDownActiveClass(value === option)}`}\n onClick={() => handleClick(option)}\n key={option}\n >\n <span className=\"text\">{option}</span>\n </DropDownItem>\n ))}\n </DropDown>\n );\n}\n\nexport const FontSizeAction = () => {\n const [editor] = useLexicalComposerContext();\n const [isEditable, setIsEditable] = useState(() => editor.isEditable());\n const fontSize = useDeriveValueFromSelection(({ rangeSelection }) => {\n if (!rangeSelection) {\n return \"15px\";\n }\n return $getSelectionStyleValueForProperty(rangeSelection, \"font-size\", \"15px\");\n });\n\n useEffect(() => {\n return mergeRegister(\n editor.registerEditableListener(editable => {\n setIsEditable(editable);\n })\n );\n }, [editor]);\n\n return (\n <>\n <FontSizeDropDown disabled={!isEditable} value={fontSize} editor={editor} />\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -8,10 +8,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.ImageAction = void 0;
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
|
|
12
11
|
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
12
|
+
var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
|
|
13
13
|
var _files = require("../../utils/files");
|
|
14
|
-
var
|
|
14
|
+
var _commands = require("../../commands");
|
|
15
15
|
var ImageAction = function ImageAction() {
|
|
16
16
|
var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
|
|
17
17
|
_useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
|
|
@@ -35,7 +35,7 @@ var ImageAction = function ImageAction() {
|
|
|
35
35
|
imageActionPlugin === null || imageActionPlugin === void 0 ? void 0 : imageActionPlugin.plugin(function (data) {
|
|
36
36
|
var imagePayload = (0, _files.fileToImagePayload)(data);
|
|
37
37
|
if (imagePayload) {
|
|
38
|
-
editor.dispatchCommand(
|
|
38
|
+
editor.dispatchCommand(_commands.INSERT_IMAGE_COMMAND, imagePayload);
|
|
39
39
|
}
|
|
40
40
|
});
|
|
41
41
|
}
|
|
@@ -50,4 +50,6 @@ var ImageAction = function ImageAction() {
|
|
|
50
50
|
className: "icon insert-image"
|
|
51
51
|
}));
|
|
52
52
|
};
|
|
53
|
-
exports.ImageAction = ImageAction;
|
|
53
|
+
exports.ImageAction = ImageAction;
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=ImageAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_LexicalComposerContext","_useRichTextEditor2","_files","_commands","ImageAction","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","default","editor","_useRichTextEditor","useRichTextEditor","toolbarActionPlugins","_useState","useState","_useState2","imageActionPlugin","setImageActionPlugin","useEffect","length","actionPlugin","find","action","targetAction","handleClick","plugin","data","imagePayload","fileToImagePayload","dispatchCommand","INSERT_IMAGE_COMMAND","createElement","onClick","className","exports"],"sources":["ImageAction.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { LexicalCommand } from \"lexical\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\nimport { FileManagerFileItem, fileToImagePayload } from \"~/utils/files\";\nimport { ImagePayload, INSERT_IMAGE_COMMAND } from \"~/commands\";\nimport { ToolbarActionPlugin } from \"~/types\";\n\nexport const ImageAction = () => {\n const [editor] = useLexicalComposerContext();\n const { toolbarActionPlugins } = useRichTextEditor();\n const [imageActionPlugin, setImageActionPlugin] = useState<ToolbarActionPlugin | undefined>();\n\n useEffect(() => {\n if (!!toolbarActionPlugins?.length) {\n const actionPlugin = toolbarActionPlugins.find(\n action => action.targetAction === \"image-action\"\n );\n setImageActionPlugin(actionPlugin);\n }\n }, [toolbarActionPlugins]);\n\n const handleClick = () => {\n if (typeof imageActionPlugin?.plugin === \"function\") {\n imageActionPlugin?.plugin((data: FileManagerFileItem) => {\n const imagePayload = fileToImagePayload(data);\n if (imagePayload) {\n editor.dispatchCommand<LexicalCommand<ImagePayload>>(\n INSERT_IMAGE_COMMAND,\n imagePayload\n );\n }\n });\n }\n };\n\n return (\n <button onClick={() => handleClick()} className={\"popup-item\"} aria-label=\"Insert image\">\n <i className=\"icon insert-image\" />\n </button>\n );\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAGO,IAAMK,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;EAC7B,IAAAC,qBAAA,GAAiB,IAAAC,iDAAyB,EAAC,CAAC;IAAAC,sBAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,qBAAA;IAArCK,MAAM,GAAAH,sBAAA;EACb,IAAAI,kBAAA,GAAiC,IAAAC,qCAAiB,EAAC,CAAC;IAA5CC,oBAAoB,GAAAF,kBAAA,CAApBE,oBAAoB;EAC5B,IAAAC,SAAA,GAAkD,IAAAC,eAAQ,EAAkC,CAAC;IAAAC,UAAA,OAAAR,eAAA,CAAAC,OAAA,EAAAK,SAAA;IAAtFG,iBAAiB,GAAAD,UAAA;IAAEE,oBAAoB,GAAAF,UAAA;EAE9C,IAAAG,gBAAS,EAAC,YAAM;IACZ,IAAI,CAAC,EAACN,oBAAoB,aAApBA,oBAAoB,eAApBA,oBAAoB,CAAEO,MAAM,GAAE;MAChC,IAAMC,YAAY,GAAGR,oBAAoB,CAACS,IAAI,CAC1C,UAAAC,MAAM;QAAA,OAAIA,MAAM,CAACC,YAAY,KAAK,cAAc;MAAA,CACpD,CAAC;MACDN,oBAAoB,CAACG,YAAY,CAAC;IACtC;EACJ,CAAC,EAAE,CAACR,oBAAoB,CAAC,CAAC;EAE1B,IAAMY,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACtB,IAAI,QAAOR,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAES,MAAM,MAAK,UAAU,EAAE;MACjDT,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAES,MAAM,CAAC,UAACC,IAAyB,EAAK;QACrD,IAAMC,YAAY,GAAG,IAAAC,yBAAkB,EAACF,IAAI,CAAC;QAC7C,IAAIC,YAAY,EAAE;UACdlB,MAAM,CAACoB,eAAe,CAClBC,8BAAoB,EACpBH,YACJ,CAAC;QACL;MACJ,CAAC,CAAC;IACN;EACJ,CAAC;EAED,oBACI/B,MAAA,CAAAY,OAAA,CAAAuB,aAAA;IAAQC,OAAO,EAAE,SAAAA,QAAA;MAAA,OAAMR,WAAW,CAAC,CAAC;IAAA,CAAC;IAACS,SAAS,EAAE,YAAa;IAAC,cAAW;EAAc,gBACpFrC,MAAA,CAAAY,OAAA,CAAAuB,aAAA;IAAGE,SAAS,EAAC;EAAmB,CAAE,CAC9B,CAAC;AAEjB,CAAC;AAACC,OAAA,CAAA/B,WAAA,GAAAA,WAAA"}
|
|
@@ -1,43 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.ItalicAction = void 0;
|
|
9
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _react =
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
10
|
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
12
11
|
var _lexical = require("lexical");
|
|
13
|
-
var
|
|
12
|
+
var _useCurrentSelection2 = require("../../hooks/useCurrentSelection");
|
|
14
13
|
var ItalicAction = function ItalicAction() {
|
|
15
|
-
var _textBlockSelection$s;
|
|
16
14
|
var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
|
|
17
15
|
_useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
|
|
18
16
|
editor = _useLexicalComposerCo2[0];
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
|
|
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);
|
|
17
|
+
var _useCurrentSelection = (0, _useCurrentSelection2.useCurrentSelection)(),
|
|
18
|
+
rangeSelection = _useCurrentSelection.rangeSelection;
|
|
19
|
+
var isItalicSelected = rangeSelection ? rangeSelection.hasFormat("italic") : false;
|
|
26
20
|
var handleClick = function handleClick() {
|
|
27
21
|
editor.dispatchCommand(_lexical.FORMAT_TEXT_COMMAND, "italic");
|
|
28
|
-
setIsItalic(!isItalic);
|
|
29
22
|
};
|
|
30
|
-
(0, _react.useEffect)(function () {
|
|
31
|
-
setIsItalic(isItalicSelected);
|
|
32
|
-
}, [isItalicSelected]);
|
|
33
23
|
return /*#__PURE__*/_react.default.createElement("button", {
|
|
34
|
-
onClick:
|
|
35
|
-
|
|
36
|
-
},
|
|
37
|
-
className: "popup-item spaced " + (isItalic ? "active" : ""),
|
|
24
|
+
onClick: handleClick,
|
|
25
|
+
className: "popup-item spaced " + (isItalicSelected ? "active" : ""),
|
|
38
26
|
"aria-label": "Format text as italic"
|
|
39
27
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
40
28
|
className: "format italic"
|
|
41
29
|
}));
|
|
42
30
|
};
|
|
43
|
-
exports.ItalicAction = ItalicAction;
|
|
31
|
+
exports.ItalicAction = ItalicAction;
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=ItalicAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_LexicalComposerContext","_lexical","_useCurrentSelection2","ItalicAction","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","default","editor","_useCurrentSelection","useCurrentSelection","rangeSelection","isItalicSelected","hasFormat","handleClick","dispatchCommand","FORMAT_TEXT_COMMAND","createElement","onClick","className","exports"],"sources":["ItalicAction.tsx"],"sourcesContent":["import React from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { FORMAT_TEXT_COMMAND } from \"lexical\";\nimport { useCurrentSelection } from \"~/hooks/useCurrentSelection\";\n\nexport const ItalicAction = () => {\n const [editor] = useLexicalComposerContext();\n const { rangeSelection } = useCurrentSelection();\n const isItalicSelected = rangeSelection ? rangeSelection.hasFormat(\"italic\") : false;\n\n const handleClick = () => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, \"italic\");\n };\n\n return (\n <button\n onClick={handleClick}\n className={\"popup-item spaced \" + (isItalicSelected ? \"active\" : \"\")}\n aria-label=\"Format text as italic\"\n >\n <i className=\"format italic\" />\n </button>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AAEO,IAAMI,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;EAC9B,IAAAC,qBAAA,GAAiB,IAAAC,iDAAyB,EAAC,CAAC;IAAAC,sBAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,qBAAA;IAArCK,MAAM,GAAAH,sBAAA;EACb,IAAAI,oBAAA,GAA2B,IAAAC,yCAAmB,EAAC,CAAC;IAAxCC,cAAc,GAAAF,oBAAA,CAAdE,cAAc;EACtB,IAAMC,gBAAgB,GAAGD,cAAc,GAAGA,cAAc,CAACE,SAAS,CAAC,QAAQ,CAAC,GAAG,KAAK;EAEpF,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACtBN,MAAM,CAACO,eAAe,CAACC,4BAAmB,EAAE,QAAQ,CAAC;EACzD,CAAC;EAED,oBACIpB,MAAA,CAAAW,OAAA,CAAAU,aAAA;IACIC,OAAO,EAAEJ,WAAY;IACrBK,SAAS,EAAE,oBAAoB,IAAIP,gBAAgB,GAAG,QAAQ,GAAG,EAAE,CAAE;IACrE,cAAW;EAAuB,gBAElChB,MAAA,CAAAW,OAAA,CAAAU,aAAA;IAAGE,SAAS,EAAC;EAAe,CAAE,CAC1B,CAAC;AAEjB,CAAC;AAACC,OAAA,CAAAlB,YAAA,GAAAA,YAAA"}
|
|
@@ -9,50 +9,30 @@ exports.LinkAction = void 0;
|
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
|
|
12
|
+
var _lexicalNodes = require("@webiny/lexical-nodes");
|
|
13
|
+
var _useCurrentElement = require("../../hooks/useCurrentElement");
|
|
14
|
+
var _useCurrentSelection = require("../../hooks/useCurrentSelection");
|
|
16
15
|
var LinkAction = function LinkAction() {
|
|
17
16
|
var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
|
|
18
17
|
_useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
|
|
19
18
|
editor = _useLexicalComposerCo2[0];
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
var isLink = (0, _useCurrentSelection.useDeriveValueFromSelection)(function (_ref) {
|
|
20
|
+
var rangeSelection = _ref.rangeSelection;
|
|
21
|
+
if (!rangeSelection) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
var node = (0, _useCurrentElement.getNodeFromSelection)(rangeSelection);
|
|
25
|
+
return node ? (0, _lexicalNodes.$isLinkNode)(node) || (0, _lexicalNodes.$isLinkNode)(node.getParent()) : false;
|
|
26
|
+
});
|
|
26
27
|
var insertLink = (0, _react.useCallback)(function () {
|
|
27
28
|
if (!isLink) {
|
|
28
|
-
editor.dispatchCommand(
|
|
29
|
-
|
|
29
|
+
editor.dispatchCommand(_lexicalNodes.TOGGLE_LINK_COMMAND, {
|
|
30
|
+
url: "https://"
|
|
31
|
+
});
|
|
30
32
|
} else {
|
|
31
|
-
editor.dispatchCommand(
|
|
33
|
+
editor.dispatchCommand(_lexicalNodes.TOGGLE_LINK_COMMAND, null);
|
|
32
34
|
}
|
|
33
35
|
}, [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
36
|
return /*#__PURE__*/_react.default.createElement("button", {
|
|
57
37
|
onClick: insertLink,
|
|
58
38
|
className: "popup-item spaced " + (isLink ? "active" : ""),
|
|
@@ -61,4 +41,6 @@ var LinkAction = function LinkAction() {
|
|
|
61
41
|
className: "format link"
|
|
62
42
|
}));
|
|
63
43
|
};
|
|
64
|
-
exports.LinkAction = LinkAction;
|
|
44
|
+
exports.LinkAction = LinkAction;
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=LinkAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_LexicalComposerContext","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_LexicalComposerContext","_lexicalNodes","_useCurrentElement","_useCurrentSelection","LinkAction","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","default","editor","isLink","useDeriveValueFromSelection","_ref","rangeSelection","node","getNodeFromSelection","$isLinkNode","getParent","insertLink","useCallback","dispatchCommand","TOGGLE_LINK_COMMAND","url","createElement","onClick","className","exports"],"sources":["LinkAction.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { $isLinkNode, TOGGLE_LINK_COMMAND } from \"@webiny/lexical-nodes\";\nimport { getNodeFromSelection } from \"~/hooks/useCurrentElement\";\nimport { useDeriveValueFromSelection } from \"~/hooks/useCurrentSelection\";\n\nexport const LinkAction = () => {\n const [editor] = useLexicalComposerContext();\n const isLink = useDeriveValueFromSelection(({ rangeSelection }) => {\n if (!rangeSelection) {\n return false;\n }\n const node = getNodeFromSelection(rangeSelection);\n return node ? $isLinkNode(node) || $isLinkNode(node.getParent()) : false;\n });\n\n const insertLink = useCallback(() => {\n if (!isLink) {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, { url: \"https://\" });\n } else {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null);\n }\n }, [editor, isLink]);\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,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AAEO,IAAMK,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;EAC5B,IAAAC,qBAAA,GAAiB,IAAAC,iDAAyB,EAAC,CAAC;IAAAC,sBAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,qBAAA;IAArCK,MAAM,GAAAH,sBAAA;EACb,IAAMI,MAAM,GAAG,IAAAC,gDAA2B,EAAC,UAAAC,IAAA,EAAwB;IAAA,IAArBC,cAAc,GAAAD,IAAA,CAAdC,cAAc;IACxD,IAAI,CAACA,cAAc,EAAE;MACjB,OAAO,KAAK;IAChB;IACA,IAAMC,IAAI,GAAG,IAAAC,uCAAoB,EAACF,cAAc,CAAC;IACjD,OAAOC,IAAI,GAAG,IAAAE,yBAAW,EAACF,IAAI,CAAC,IAAI,IAAAE,yBAAW,EAACF,IAAI,CAACG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK;EAC5E,CAAC,CAAC;EAEF,IAAMC,UAAU,GAAG,IAAAC,kBAAW,EAAC,YAAM;IACjC,IAAI,CAACT,MAAM,EAAE;MACTD,MAAM,CAACW,eAAe,CAACC,iCAAmB,EAAE;QAAEC,GAAG,EAAE;MAAW,CAAC,CAAC;IACpE,CAAC,MAAM;MACHb,MAAM,CAACW,eAAe,CAACC,iCAAmB,EAAE,IAAI,CAAC;IACrD;EACJ,CAAC,EAAE,CAACZ,MAAM,EAAEC,MAAM,CAAC,CAAC;EAEpB,oBACId,MAAA,CAAAY,OAAA,CAAAe,aAAA;IACIC,OAAO,EAAEN,UAAW;IACpBO,SAAS,EAAE,oBAAoB,IAAIf,MAAM,GAAG,QAAQ,GAAG,EAAE,CAAE;IAC3D,cAAW;EAAa,gBAExBd,MAAA,CAAAY,OAAA,CAAAe,aAAA;IAAGE,SAAS,EAAC;EAAa,CAAE,CACxB,CAAC;AAEjB,CAAC;AAACC,OAAA,CAAAvB,UAAA,GAAAA,UAAA"}
|
|
@@ -1,70 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.NumberedListAction = void 0;
|
|
9
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _react =
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
10
|
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
12
|
-
var
|
|
11
|
+
var _lexicalNodes = require("@webiny/lexical-nodes");
|
|
12
|
+
var _lexicalTheme = require("@webiny/lexical-theme");
|
|
13
|
+
var _commands = require("../../commands");
|
|
13
14
|
var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
|
|
14
|
-
var
|
|
15
|
+
var _useCurrentElement2 = require("../../hooks/useCurrentElement");
|
|
15
16
|
var NumberedListAction = function NumberedListAction() {
|
|
16
|
-
var _textBlockSelection$s, _textBlockSelection$s3;
|
|
17
17
|
var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
|
|
18
18
|
_useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
|
|
19
19
|
editor = _useLexicalComposerCo2[0];
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
isActive = _useState2[0],
|
|
23
|
-
setIsActive = _useState2[1];
|
|
20
|
+
var _useCurrentElement = (0, _useCurrentElement2.useCurrentElement)(),
|
|
21
|
+
element = _useCurrentElement.element;
|
|
24
22
|
var _useRichTextEditor = (0, _useRichTextEditor2.useRichTextEditor)(),
|
|
25
|
-
textBlockSelection = _useRichTextEditor.textBlockSelection,
|
|
26
23
|
themeEmotionMap = _useRichTextEditor.themeEmotionMap;
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
var _textBlockSelection$s2;
|
|
30
|
-
var isListBulletType = (textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$s2 = textBlockSelection.state) === null || _textBlockSelection$s2 === void 0 ? void 0 : _textBlockSelection$s2.textType) === "number";
|
|
31
|
-
setIsActive(isListBulletType);
|
|
32
|
-
}, [textBlockSelection === null || textBlockSelection === void 0 ? void 0 : (_textBlockSelection$s3 = textBlockSelection.state) === null || _textBlockSelection$s3 === void 0 ? void 0 : _textBlockSelection$s3.textType, isListSelected]);
|
|
24
|
+
var isList = (0, _lexicalNodes.$isListNode)(element);
|
|
25
|
+
var isNumbered = isList && element.getListType() === "number";
|
|
33
26
|
var getStyleId = function getStyleId() {
|
|
34
27
|
var _findTypographyStyleB, _findTypographyStyleB2;
|
|
35
28
|
if (!themeEmotionMap) {
|
|
36
29
|
return undefined;
|
|
37
30
|
}
|
|
38
31
|
// check default style for numbered list
|
|
39
|
-
var id = (_findTypographyStyleB = (0,
|
|
32
|
+
var id = (_findTypographyStyleB = (0, _lexicalTheme.findTypographyStyleByHtmlTag)("ol", themeEmotionMap)) === null || _findTypographyStyleB === void 0 ? void 0 : _findTypographyStyleB.id;
|
|
40
33
|
if (id) {
|
|
41
34
|
return id;
|
|
42
35
|
}
|
|
43
36
|
// fallback to ul list styles
|
|
44
|
-
return (_findTypographyStyleB2 = (0,
|
|
37
|
+
return (_findTypographyStyleB2 = (0, _lexicalTheme.findTypographyStyleByHtmlTag)("ul", themeEmotionMap)) === null || _findTypographyStyleB2 === void 0 ? void 0 : _findTypographyStyleB2.id;
|
|
45
38
|
};
|
|
46
39
|
var formatNumberedList = function formatNumberedList() {
|
|
47
|
-
if (!
|
|
40
|
+
if (!isNumbered) {
|
|
48
41
|
var styleId = themeEmotionMap ? getStyleId() : undefined;
|
|
49
|
-
|
|
50
|
-
editor.dispatchCommand(_webinyList.INSERT_ORDERED_WEBINY_LIST_COMMAND, {
|
|
42
|
+
editor.dispatchCommand(_commands.INSERT_ORDERED_LIST_COMMAND, {
|
|
51
43
|
themeStyleId: styleId
|
|
52
44
|
});
|
|
53
|
-
setIsActive(true);
|
|
54
45
|
} else {
|
|
55
|
-
editor.dispatchCommand(
|
|
56
|
-
// removing will not update correctly the active state, so we need to set to false manually.
|
|
57
|
-
setIsActive(false);
|
|
46
|
+
editor.dispatchCommand(_commands.REMOVE_LIST_COMMAND, undefined);
|
|
58
47
|
}
|
|
59
48
|
};
|
|
60
49
|
return /*#__PURE__*/_react.default.createElement("button", {
|
|
61
50
|
onClick: function onClick() {
|
|
62
51
|
return formatNumberedList();
|
|
63
52
|
},
|
|
64
|
-
className: "popup-item spaced " + (
|
|
53
|
+
className: "popup-item spaced " + (isNumbered ? "active" : ""),
|
|
65
54
|
"aria-label": "Format text as numbered list"
|
|
66
55
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
67
56
|
className: "icon numbered-list"
|
|
68
57
|
}));
|
|
69
58
|
};
|
|
70
|
-
exports.NumberedListAction = NumberedListAction;
|
|
59
|
+
exports.NumberedListAction = NumberedListAction;
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=NumberedListAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_LexicalComposerContext","_lexicalNodes","_lexicalTheme","_commands","_useRichTextEditor2","_useCurrentElement2","NumberedListAction","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","default","editor","_useCurrentElement","useCurrentElement","element","_useRichTextEditor","useRichTextEditor","themeEmotionMap","isList","$isListNode","isNumbered","getListType","getStyleId","_findTypographyStyleB","_findTypographyStyleB2","undefined","id","findTypographyStyleByHtmlTag","formatNumberedList","styleId","dispatchCommand","INSERT_ORDERED_LIST_COMMAND","themeStyleId","REMOVE_LIST_COMMAND","createElement","onClick","className","exports"],"sources":["NumberedListAction.tsx"],"sourcesContent":["import React from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { $isListNode, ListNode } from \"@webiny/lexical-nodes\";\nimport { findTypographyStyleByHtmlTag } from \"@webiny/lexical-theme\";\nimport { INSERT_ORDERED_LIST_COMMAND, REMOVE_LIST_COMMAND } from \"~/commands\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\nimport { useCurrentElement } from \"~/hooks/useCurrentElement\";\n\nexport const NumberedListAction = () => {\n const [editor] = useLexicalComposerContext();\n const { element } = useCurrentElement();\n const { themeEmotionMap } = useRichTextEditor();\n const isList = $isListNode(element);\n const isNumbered = isList && (element as ListNode).getListType() === \"number\";\n\n const getStyleId = (): string | undefined => {\n if (!themeEmotionMap) {\n return undefined;\n }\n // check default style for numbered list\n const id = findTypographyStyleByHtmlTag(\"ol\", themeEmotionMap)?.id;\n if (id) {\n return id;\n }\n // fallback to ul list styles\n return findTypographyStyleByHtmlTag(\"ul\", themeEmotionMap)?.id;\n };\n\n const formatNumberedList = () => {\n if (!isNumbered) {\n const styleId = themeEmotionMap ? getStyleId() : undefined;\n editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, { themeStyleId: styleId });\n } else {\n editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);\n }\n };\n\n return (\n <button\n onClick={() => formatNumberedList()}\n className={\"popup-item spaced \" + (isNumbered ? \"active\" : \"\")}\n aria-label=\"Format text as numbered list\"\n >\n <i className=\"icon numbered-list\" />\n </button>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,mBAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAN,OAAA;AAEO,IAAMO,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA,EAAS;EACpC,IAAAC,qBAAA,GAAiB,IAAAC,iDAAyB,EAAC,CAAC;IAAAC,sBAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,qBAAA;IAArCK,MAAM,GAAAH,sBAAA;EACb,IAAAI,kBAAA,GAAoB,IAAAC,qCAAiB,EAAC,CAAC;IAA/BC,OAAO,GAAAF,kBAAA,CAAPE,OAAO;EACf,IAAAC,kBAAA,GAA4B,IAAAC,qCAAiB,EAAC,CAAC;IAAvCC,eAAe,GAAAF,kBAAA,CAAfE,eAAe;EACvB,IAAMC,MAAM,GAAG,IAAAC,yBAAW,EAACL,OAAO,CAAC;EACnC,IAAMM,UAAU,GAAGF,MAAM,IAAKJ,OAAO,CAAcO,WAAW,CAAC,CAAC,KAAK,QAAQ;EAE7E,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAA6B;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IACzC,IAAI,CAACP,eAAe,EAAE;MAClB,OAAOQ,SAAS;IACpB;IACA;IACA,IAAMC,EAAE,IAAAH,qBAAA,GAAG,IAAAI,0CAA4B,EAAC,IAAI,EAAEV,eAAe,CAAC,cAAAM,qBAAA,uBAAnDA,qBAAA,CAAqDG,EAAE;IAClE,IAAIA,EAAE,EAAE;MACJ,OAAOA,EAAE;IACb;IACA;IACA,QAAAF,sBAAA,GAAO,IAAAG,0CAA4B,EAAC,IAAI,EAAEV,eAAe,CAAC,cAAAO,sBAAA,uBAAnDA,sBAAA,CAAqDE,EAAE;EAClE,CAAC;EAED,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA,EAAS;IAC7B,IAAI,CAACR,UAAU,EAAE;MACb,IAAMS,OAAO,GAAGZ,eAAe,GAAGK,UAAU,CAAC,CAAC,GAAGG,SAAS;MAC1Dd,MAAM,CAACmB,eAAe,CAACC,qCAA2B,EAAE;QAAEC,YAAY,EAAEH;MAAQ,CAAC,CAAC;IAClF,CAAC,MAAM;MACHlB,MAAM,CAACmB,eAAe,CAACG,6BAAmB,EAAER,SAAS,CAAC;IAC1D;EACJ,CAAC;EAED,oBACI7B,MAAA,CAAAc,OAAA,CAAAwB,aAAA;IACIC,OAAO,EAAE,SAAAA,QAAA;MAAA,OAAMP,kBAAkB,CAAC,CAAC;IAAA,CAAC;IACpCQ,SAAS,EAAE,oBAAoB,IAAIhB,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAE;IAC/D,cAAW;EAA8B,gBAEzCxB,MAAA,CAAAc,OAAA,CAAAwB,aAAA;IAAGE,SAAS,EAAC;EAAoB,CAAE,CAC/B,CAAC;AAEjB,CAAC;AAACC,OAAA,CAAAhC,kBAAA,GAAAA,kBAAA"}
|
|
@@ -1,52 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.QuoteAction = void 0;
|
|
9
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _react =
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
10
|
var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
|
|
12
|
-
var
|
|
13
|
-
var _formatToParagraph = require("../../utils/nodes/formatToParagraph");
|
|
11
|
+
var _lexicalNodes = require("@webiny/lexical-nodes");
|
|
14
12
|
var _useRichTextEditor2 = require("../../hooks/useRichTextEditor");
|
|
13
|
+
var _useCurrentElement2 = require("../../hooks/useCurrentElement");
|
|
15
14
|
var QuoteAction = function QuoteAction() {
|
|
16
|
-
var _textBlockSelection$s;
|
|
17
15
|
var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
|
|
18
16
|
_useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
|
|
19
17
|
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
18
|
var _useRichTextEditor = (0, _useRichTextEditor2.useRichTextEditor)(),
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
var
|
|
19
|
+
themeEmotionMap = _useRichTextEditor.themeEmotionMap;
|
|
20
|
+
var _useCurrentElement = (0, _useCurrentElement2.useCurrentElement)(),
|
|
21
|
+
element = _useCurrentElement.element;
|
|
22
|
+
var isQuote = (0, _lexicalNodes.$isQuoteNode)(element);
|
|
29
23
|
var formatText = function formatText() {
|
|
30
|
-
if (!
|
|
24
|
+
if (!isQuote) {
|
|
31
25
|
// Try to set default quote style, when the action button is clicked for first time
|
|
32
26
|
var DEFAULT_QUOTE_ID = "quote";
|
|
33
27
|
var hasQuoteStyles = themeEmotionMap && themeEmotionMap[DEFAULT_QUOTE_ID];
|
|
34
|
-
(0,
|
|
28
|
+
(0, _lexicalNodes.formatToQuote)(editor, hasQuoteStyles ? DEFAULT_QUOTE_ID : undefined);
|
|
35
29
|
return;
|
|
36
30
|
}
|
|
37
|
-
(0,
|
|
31
|
+
(0, _lexicalNodes.formatToParagraph)(editor);
|
|
38
32
|
};
|
|
39
|
-
(0, _react.useEffect)(function () {
|
|
40
|
-
setIsActive(isQuoteSelected);
|
|
41
|
-
}, [isQuoteSelected, activeEditor]);
|
|
42
33
|
return /*#__PURE__*/_react.default.createElement("button", {
|
|
43
|
-
onClick:
|
|
44
|
-
|
|
45
|
-
},
|
|
46
|
-
className: "popup-item " + (isActive ? "active" : ""),
|
|
34
|
+
onClick: formatText,
|
|
35
|
+
className: "popup-item " + (isQuote ? "active" : ""),
|
|
47
36
|
"aria-label": "Format text as quote"
|
|
48
37
|
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
49
38
|
className: "icon quote"
|
|
50
39
|
}));
|
|
51
40
|
};
|
|
52
|
-
exports.QuoteAction = QuoteAction;
|
|
41
|
+
exports.QuoteAction = QuoteAction;
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=QuoteAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_LexicalComposerContext","_lexicalNodes","_useRichTextEditor2","_useCurrentElement2","QuoteAction","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","_slicedToArray2","default","editor","_useRichTextEditor","useRichTextEditor","themeEmotionMap","_useCurrentElement","useCurrentElement","element","isQuote","$isQuoteNode","formatText","DEFAULT_QUOTE_ID","hasQuoteStyles","formatToQuote","undefined","formatToParagraph","createElement","onClick","className","exports"],"sources":["QuoteAction.tsx"],"sourcesContent":["import React from \"react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { $isQuoteNode, formatToQuote, formatToParagraph } from \"@webiny/lexical-nodes\";\nimport { useRichTextEditor } from \"~/hooks/useRichTextEditor\";\nimport { useCurrentElement } from \"~/hooks/useCurrentElement\";\n\nexport const QuoteAction = () => {\n const [editor] = useLexicalComposerContext();\n const { themeEmotionMap } = useRichTextEditor();\n const { element } = useCurrentElement();\n const isQuote = $isQuoteNode(element);\n\n const formatText = () => {\n if (!isQuote) {\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 formatToQuote(editor, hasQuoteStyles ? DEFAULT_QUOTE_ID : undefined);\n return;\n }\n formatToParagraph(editor);\n };\n\n return (\n <button\n onClick={formatText}\n className={\"popup-item \" + (isQuote ? \"active\" : \"\")}\n aria-label=\"Format text as quote\"\n >\n <i className=\"icon quote\" />\n </button>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAEO,IAAMK,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;EAC7B,IAAAC,qBAAA,GAAiB,IAAAC,iDAAyB,EAAC,CAAC;IAAAC,sBAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,qBAAA;IAArCK,MAAM,GAAAH,sBAAA;EACb,IAAAI,kBAAA,GAA4B,IAAAC,qCAAiB,EAAC,CAAC;IAAvCC,eAAe,GAAAF,kBAAA,CAAfE,eAAe;EACvB,IAAAC,kBAAA,GAAoB,IAAAC,qCAAiB,EAAC,CAAC;IAA/BC,OAAO,GAAAF,kBAAA,CAAPE,OAAO;EACf,IAAMC,OAAO,GAAG,IAAAC,0BAAY,EAACF,OAAO,CAAC;EAErC,IAAMG,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;IACrB,IAAI,CAACF,OAAO,EAAE;MACV;MACA,IAAMG,gBAAgB,GAAG,OAAO;MAChC,IAAMC,cAAc,GAAGR,eAAe,IAAIA,eAAe,CAACO,gBAAgB,CAAC;MAC3E,IAAAE,2BAAa,EAACZ,MAAM,EAAEW,cAAc,GAAGD,gBAAgB,GAAGG,SAAS,CAAC;MACpE;IACJ;IACA,IAAAC,+BAAiB,EAACd,MAAM,CAAC;EAC7B,CAAC;EAED,oBACIb,MAAA,CAAAY,OAAA,CAAAgB,aAAA;IACIC,OAAO,EAAEP,UAAW;IACpBQ,SAAS,EAAE,aAAa,IAAIV,OAAO,GAAG,QAAQ,GAAG,EAAE,CAAE;IACrD,cAAW;EAAsB,gBAEjCpB,MAAA,CAAAY,OAAA,CAAAgB,aAAA;IAAGE,SAAS,EAAC;EAAY,CAAE,CACvB,CAAC;AAEjB,CAAC;AAACC,OAAA,CAAAxB,WAAA,GAAAA,WAAA"}
|