@churchapps/apphelper 0.3.16 → 0.3.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/markdownEditor/Editor.d.ts +3 -1
- package/dist/components/markdownEditor/Editor.d.ts.map +1 -1
- package/dist/components/markdownEditor/Editor.js +25 -4
- package/dist/components/markdownEditor/Editor.js.map +1 -1
- package/dist/components/markdownEditor/MarkdownPreview.d.ts +3 -1
- package/dist/components/markdownEditor/MarkdownPreview.d.ts.map +1 -1
- package/dist/components/markdownEditor/MarkdownPreview.js +14 -2
- package/dist/components/markdownEditor/MarkdownPreview.js.map +1 -1
- package/dist/components/markdownEditor/MarkdownPreviewLight.d.ts.map +1 -1
- package/dist/components/markdownEditor/MarkdownPreviewLight.js +5 -1
- package/dist/components/markdownEditor/MarkdownPreviewLight.js.map +1 -1
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.d.ts +13 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.d.ts.map +1 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js +311 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js.map +1 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.d.ts +2 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.d.ts.map +1 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.js +20 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.js.map +1 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.d.ts +2 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.d.ts.map +1 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.js +22 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.js.map +1 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.d.ts +2 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.d.ts.map +1 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.js +30 -0
- package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.js.map +1 -0
- package/dist/components/markdownEditor/plugins/MarkdownTransformers.js +2 -2
- package/dist/components/markdownEditor/plugins/MarkdownTransformers.js.map +1 -1
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.d.ts +1 -0
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.d.ts.map +1 -1
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.js +8 -5
- package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.js.map +1 -1
- package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.d.ts.map +1 -1
- package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.js +12 -7
- package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.js.map +1 -1
- package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.d.ts.map +1 -1
- package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.js +4 -0
- package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.js.map +1 -1
- package/package.json +1 -1
- package/src/components/markdownEditor/Editor.tsx +33 -16
- package/src/components/markdownEditor/MarkdownPreview.tsx +5 -3
- package/src/components/markdownEditor/MarkdownPreviewLight.tsx +5 -1
- package/src/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.tsx +445 -0
- package/src/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.tsx +17 -0
- package/src/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.tsx +17 -0
- package/src/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.tsx +33 -0
- package/src/components/markdownEditor/plugins/MarkdownTransformers.ts +2 -2
- package/src/components/markdownEditor/plugins/customLink/CustomLinkNode.tsx +9 -1
- package/src/components/markdownEditor/plugins/customLink/FloatingLinkEditor.tsx +21 -9
- package/src/components/markdownEditor/plugins/emoji/EmojisPlugin.tsx +5 -0
|
@@ -5,7 +5,9 @@ interface Props {
|
|
|
5
5
|
style?: any;
|
|
6
6
|
textAlign?: "left" | "center" | "right";
|
|
7
7
|
placeholder?: string;
|
|
8
|
+
element?: any;
|
|
9
|
+
showFloatingEditor?: boolean;
|
|
8
10
|
}
|
|
9
|
-
declare function Editor({ value, onChange, mode, textAlign, style, placeholder }: Props): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
declare function Editor({ value, onChange, mode, textAlign, style, placeholder, showFloatingEditor, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
12
|
export default Editor;
|
|
11
13
|
//# sourceMappingURL=Editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../../../src/components/markdownEditor/Editor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../../../src/components/markdownEditor/Editor.tsx"],"names":[],"mappings":"AA6BA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,iBAAS,MAAM,CAAC,EAAE,KAAK,EAAE,QAAmB,EAAE,IAAoB,EAAE,SAAkB,EAAE,KAAK,EAAE,WAAkC,EAAE,kBAA0B,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,2CA4G/K;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use strict";
|
|
3
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
4
|
+
var t = {};
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
8
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
9
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
10
|
+
t[p[i]] = s[p[i]];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
3
14
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
15
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
16
|
};
|
|
@@ -23,13 +34,15 @@ const link_1 = require("@lexical/link");
|
|
|
23
34
|
const code_1 = require("@lexical/code");
|
|
24
35
|
const theme_1 = require("./theme");
|
|
25
36
|
const plugins_1 = require("./plugins");
|
|
37
|
+
const FloatingTextFormatToolbarPlugin_1 = __importDefault(require("./plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin"));
|
|
26
38
|
const MarkdownModal_1 = require("./MarkdownModal");
|
|
27
39
|
const CustomLinkNodePlugin_1 = __importDefault(require("./plugins/customLink/CustomLinkNodePlugin"));
|
|
28
40
|
const CustomLinkNode_1 = require("./plugins/customLink/CustomLinkNode");
|
|
29
41
|
const EmojisPlugin_1 = __importDefault(require("./plugins/emoji/EmojisPlugin"));
|
|
30
42
|
const EmojiNode_1 = require("./plugins/emoji/EmojiNode");
|
|
31
43
|
const EmojiPickerPlugin_1 = __importDefault(require("./plugins/emoji/EmojiPickerPlugin"));
|
|
32
|
-
function Editor(
|
|
44
|
+
function Editor(_a) {
|
|
45
|
+
var { value, onChange = () => { }, mode = "interactive", textAlign = "left", style, placeholder = "Enter some text...", showFloatingEditor = false } = _a, props = __rest(_a, ["value", "onChange", "mode", "textAlign", "style", "placeholder", "showFloatingEditor"]);
|
|
33
46
|
const [fullScreen, setFullScreen] = react_1.default.useState(false);
|
|
34
47
|
const handleChange = (editorState) => {
|
|
35
48
|
editorState.read(() => {
|
|
@@ -68,8 +81,9 @@ function Editor({ value, onChange = () => { }, mode = "interactive", textAlign =
|
|
|
68
81
|
{
|
|
69
82
|
replace: link_1.LinkNode,
|
|
70
83
|
with: (node) => (new CustomLinkNode_1.CustomLinkNode(node.getURL(), node.getTarget(), []))
|
|
71
|
-
}
|
|
72
|
-
]
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
markdown: { transformers: plugins_1.PLAYGROUND_TRANSFORMERS }
|
|
73
87
|
};
|
|
74
88
|
let textAlignClass = "";
|
|
75
89
|
switch (textAlign) {
|
|
@@ -84,7 +98,14 @@ function Editor({ value, onChange = () => { }, mode = "interactive", textAlign =
|
|
|
84
98
|
textAlignClass = "text-left";
|
|
85
99
|
break;
|
|
86
100
|
}
|
|
87
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(LexicalComposer_1.LexicalComposer, { initialConfig: initialConfig, children: (0, jsx_runtime_1.jsxs)("div", { className:
|
|
101
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(LexicalComposer_1.LexicalComposer, { initialConfig: initialConfig, children: (0, jsx_runtime_1.jsxs)("div", { className: mode === "preview" ? `editor-container preview ${textAlignClass}` : `editor-container ${textAlignClass}`, style: Object.assign({ border: mode === "preview" ? "none" : "1px solid lightgray" }, style), children: [mode !== "preview" && ((0, jsx_runtime_1.jsx)(plugins_1.ToolbarPlugin, { goFullScreen: () => { setFullScreen(true); } })), (0, jsx_runtime_1.jsxs)("div", { className: "editor-inner", children: [!fullScreen && ((0, jsx_runtime_1.jsx)(LexicalRichTextPlugin_1.RichTextPlugin, { contentEditable: (0, jsx_runtime_1.jsx)(LexicalContentEditable_1.ContentEditable, { className: "editor-input", style: { minHeight: mode === "preview" ? "auto" : "150px" },
|
|
102
|
+
//@ts-ignore
|
|
103
|
+
ref: (node) => { if (node) {
|
|
104
|
+
const editor = node.closest("[data-lexical-editor]");
|
|
105
|
+
if (editor) {
|
|
106
|
+
editor.dataset.element = JSON.stringify(props.element);
|
|
107
|
+
}
|
|
108
|
+
} } }), placeholder: mode !== "preview" ? ((0, jsx_runtime_1.jsx)("div", { className: "editor-placeholder", children: placeholder })) : null, ErrorBoundary: LexicalErrorBoundary_1.default })), (0, jsx_runtime_1.jsx)(CustomLinkNodePlugin_1.default, {}), mode !== "preview" && (0, jsx_runtime_1.jsx)(EmojiPickerPlugin_1.default, {}), (0, jsx_runtime_1.jsx)(EmojisPlugin_1.default, {}), showFloatingEditor && (0, jsx_runtime_1.jsx)(FloatingTextFormatToolbarPlugin_1.default, {}), (0, jsx_runtime_1.jsx)(LexicalOnChangePlugin_1.OnChangePlugin, { onChange: handleChange }), mode !== "preview" && (0, jsx_runtime_1.jsx)(LexicalAutoFocusPlugin_1.AutoFocusPlugin, {}), (0, jsx_runtime_1.jsx)(LexicalHistoryPlugin_1.HistoryPlugin, {}), (0, jsx_runtime_1.jsx)(LexicalListPlugin_1.ListPlugin, {}), (0, jsx_runtime_1.jsx)(plugins_1.CustomAutoLinkPlugin, {}), (0, jsx_runtime_1.jsx)(plugins_1.ListMaxIndentLevelPlugin, { maxDepth: 7 }), (0, jsx_runtime_1.jsx)(plugins_1.ReadOnlyPlugin, { isDisabled: mode === "preview" }), (0, jsx_runtime_1.jsx)(plugins_1.ControlledEditorPlugin, { isFullscreen: fullScreen, value: value, isPreview: mode === "preview" }), (0, jsx_runtime_1.jsx)(LexicalMarkdownShortcutPlugin_1.MarkdownShortcutPlugin, { transformers: markdown_1.TRANSFORMERS })] })] }) }), fullScreen && ((0, jsx_runtime_1.jsx)(MarkdownModal_1.MarkdownModal, { onChange: handleModalOnChange, value: value, hideModal: handleCloseFullScreen }))] }));
|
|
88
109
|
}
|
|
89
110
|
exports.default = Editor;
|
|
90
111
|
//# sourceMappingURL=Editor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Editor.js","sourceRoot":"","sources":["../../../src/components/markdownEditor/Editor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"Editor.js","sourceRoot":"","sources":["../../../src/components/markdownEditor/Editor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
interface Props {
|
|
2
2
|
value: string;
|
|
3
3
|
textAlign?: "left" | "center" | "right";
|
|
4
|
+
element?: any;
|
|
5
|
+
showFloatingEditor?: boolean;
|
|
4
6
|
}
|
|
5
|
-
export declare function MarkdownPreview({ value: markdownString, textAlign }: Props): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function MarkdownPreview({ value: markdownString, textAlign, showFloatingEditor, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
6
8
|
export {};
|
|
7
9
|
//# sourceMappingURL=MarkdownPreview.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownPreview.d.ts","sourceRoot":"","sources":["../../../src/components/markdownEditor/MarkdownPreview.tsx"],"names":[],"mappings":"AAMA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"MarkdownPreview.d.ts","sourceRoot":"","sources":["../../../src/components/markdownEditor/MarkdownPreview.tsx"],"names":[],"mappings":"AAMA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,cAAmB,EAAE,SAAS,EAAE,kBAA0B,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,2CAIrH"}
|
|
@@ -23,14 +23,26 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
__setModuleDefault(result, mod);
|
|
24
24
|
return result;
|
|
25
25
|
};
|
|
26
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
27
|
+
var t = {};
|
|
28
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
29
|
+
t[p] = s[p];
|
|
30
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
31
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
32
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
33
|
+
t[p[i]] = s[p[i]];
|
|
34
|
+
}
|
|
35
|
+
return t;
|
|
36
|
+
};
|
|
26
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
38
|
exports.MarkdownPreview = void 0;
|
|
28
39
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
29
40
|
const react_1 = require("react");
|
|
30
41
|
const react_2 = require("react");
|
|
31
42
|
const Editor = (0, react_2.lazy)(() => Promise.resolve().then(() => __importStar(require('./Editor'))));
|
|
32
|
-
function MarkdownPreview(
|
|
33
|
-
|
|
43
|
+
function MarkdownPreview(_a) {
|
|
44
|
+
var { value: markdownString = "", textAlign, showFloatingEditor = false } = _a, props = __rest(_a, ["value", "textAlign", "showFloatingEditor"]);
|
|
45
|
+
return (0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: (0, jsx_runtime_1.jsx)("div", { children: markdownString || "" }), children: (0, jsx_runtime_1.jsx)(Editor, { mode: "preview", value: markdownString || "", textAlign: textAlign, element: props.element, showFloatingEditor: showFloatingEditor }) });
|
|
34
46
|
}
|
|
35
47
|
exports.MarkdownPreview = MarkdownPreview;
|
|
36
48
|
//# sourceMappingURL=MarkdownPreview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownPreview.js","sourceRoot":"","sources":["../../../src/components/markdownEditor/MarkdownPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"MarkdownPreview.js","sourceRoot":"","sources":["../../../src/components/markdownEditor/MarkdownPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEb,iCAAwC;AACxC,iCAA6B;AAC7B,MAAM,MAAM,GAAG,IAAA,YAAI,EAAC,GAAG,EAAE,mDAAQ,UAAU,GAAC,CAAC,CAAC;AAS9C,SAAgB,eAAe,CAAC,EAAsF;QAAtF,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE,EAAE,SAAS,EAAE,kBAAkB,GAAG,KAAK,OAAmB,EAAd,KAAK,cAA7E,4CAA+E,CAAF;IAC3G,OAAO,uBAAC,gBAAQ,IAAC,QAAQ,EAAE,0CAAM,cAAc,IAAI,EAAE,GAAO,YAC1D,uBAAC,MAAM,IAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAE,cAAc,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,GAAI,GACnI,CAAA;AACb,CAAC;AAJD,0CAIC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownPreviewLight.d.ts","sourceRoot":"","sources":["../../../src/components/markdownEditor/MarkdownPreviewLight.tsx"],"names":[],"mappings":"AAEA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;CACxC;AAED,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,cAAmB,EAAE,SAAS,EAAE,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"MarkdownPreviewLight.d.ts","sourceRoot":"","sources":["../../../src/components/markdownEditor/MarkdownPreviewLight.tsx"],"names":[],"mappings":"AAEA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;CACxC;AAED,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,cAAmB,EAAE,SAAS,EAAE,EAAE,KAAK,2CA6CpF"}
|
|
@@ -41,7 +41,11 @@ function MarkdownPreviewLight({ value: markdownString = "", textAlign }) {
|
|
|
41
41
|
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
|
42
42
|
else {
|
|
43
43
|
const convertedText = getSpecialLinks(markdownString || "");
|
|
44
|
-
|
|
44
|
+
let processedMarkdown = convertedText;
|
|
45
|
+
processedMarkdown = convertedText.replace(/__(.*?)__/g, "<u>$1</u>"); //Replace `__underlined__` with `<u>underlined</u>`
|
|
46
|
+
processedMarkdown = processedMarkdown.replace(/```([\s\S]+?)```/g, "<pre class='code-block'><code>$1</code></pre>"); //Convert block code ```code``` to <pre><code>code</code></pre>
|
|
47
|
+
processedMarkdown = processedMarkdown.replace(/`([^`]+)`/g, "<code>$1</code>"); //Convert inline code `code` to <code>code</code>
|
|
48
|
+
const html = marked_1.marked.parse(processedMarkdown || "");
|
|
45
49
|
const style = (textAlign) ? { textAlign } : {};
|
|
46
50
|
return (0, jsx_runtime_1.jsx)("div", { style: style, dangerouslySetInnerHTML: { __html: html } });
|
|
47
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownPreviewLight.js","sourceRoot":"","sources":["../../../src/components/markdownEditor/MarkdownPreviewLight.tsx"],"names":[],"mappings":";;;;AAAA,mCAA8B;AAO9B,SAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE,EAAE,SAAS,EAAS;IAEnF,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE;QAC5C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,eAAe,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC;SACvC;QACD,MAAM,WAAW,GAAG,oBAAoB,CAAC;QACzC,IAAI,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,OAAO;YAAE,MAAM,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAA;IAED,sBAAsB;IACtB,oBAAoB;IACpB,oCAAoC;IACpC,6CAA6C;IAC7C,MAAM,eAAe,GAAG,CAAC,cAAsB,EAAE,EAAE;QACjD,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,sCAAsC,CAAC;QACrD,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;YAC9E,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,IAAI,MAAM,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC;YACvC,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAA;IACtB,CAAC,CAAA;IAED,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,cAAc;QAAE,OAAO,kDAAK,CAAC;SACxF;QACH,MAAM,aAAa,GAAG,eAAe,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,eAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"MarkdownPreviewLight.js","sourceRoot":"","sources":["../../../src/components/markdownEditor/MarkdownPreviewLight.tsx"],"names":[],"mappings":";;;;AAAA,mCAA8B;AAO9B,SAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE,EAAE,SAAS,EAAS;IAEnF,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE;QAC5C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,eAAe,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC;SACvC;QACD,MAAM,WAAW,GAAG,oBAAoB,CAAC;QACzC,IAAI,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,OAAO;YAAE,MAAM,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAA;IAED,sBAAsB;IACtB,oBAAoB;IACpB,oCAAoC;IACpC,6CAA6C;IAC7C,MAAM,eAAe,GAAG,CAAC,cAAsB,EAAE,EAAE;QACjD,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,sCAAsC,CAAC;QACrD,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;YAC9E,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,IAAI,MAAM,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC;YACvC,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAA;IACtB,CAAC,CAAA;IAED,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,cAAc;QAAE,OAAO,kDAAK,CAAC;SACxF;QACH,MAAM,aAAa,GAAG,eAAe,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QAC5D,IAAI,iBAAiB,GAAG,aAAa,CAAC;QACtC,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,mDAAmD;QACzH,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAC,mBAAmB,EAAE,+CAA+C,CAAC,CAAC,CAAC,+DAA+D;QACpL,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,iDAAiD;QACjI,MAAM,IAAI,GAAG,eAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAC,SAAS,EAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5C,OAAO,gCAAK,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAC,MAAM,EAAE,IAAc,EAAC,GAAQ,CAAA;KACpF;AACH,CAAC;AA7CD,oDA6CC"}
|
package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const FloatingDivContainer: import("@emotion/styled").StyledComponent<import("@mui/system").SystemProps<import("@mui/material").Theme> & {
|
|
3
|
+
children?: React.ReactNode;
|
|
4
|
+
component?: React.ElementType<any>;
|
|
5
|
+
ref?: React.Ref<unknown>;
|
|
6
|
+
sx?: import("@mui/material").SxProps<import("@mui/material").Theme>;
|
|
7
|
+
} & Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
8
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
9
|
+
}, "ref" | "children" | "sx" | "component" | ("m" | "p" | "pt" | "color" | "left" | "right" | "bottom" | "top" | "display" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "typography" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "lineHeight" | "textAlign" | "textTransform")> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
10
|
+
export default function FloatingTextFormatToolbarPlugin({ anchorElem, }: {
|
|
11
|
+
anchorElem?: HTMLElement;
|
|
12
|
+
}): React.ReactPortal;
|
|
13
|
+
//# sourceMappingURL=FloatingTextFormatToolbarPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatingTextFormatToolbarPlugin.d.ts","sourceRoot":"","sources":["../../../../../src/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAUxE,eAAO,MAAM,oBAAoB;;;;;;;kzCAgB/B,CAAC;AAqZH,MAAM,CAAC,OAAO,UAAU,+BAA+B,CAAC,EACtD,UAA0B,GAC3B;;CAAA,qBAGA"}
|
package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js
ADDED
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FloatingDivContainer = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const code_1 = require("@lexical/code");
|
|
6
|
+
const link_1 = require("@lexical/link");
|
|
7
|
+
const LexicalComposerContext_1 = require("@lexical/react/LexicalComposerContext");
|
|
8
|
+
const utils_1 = require("@lexical/utils");
|
|
9
|
+
const markdown_1 = require("@lexical/markdown");
|
|
10
|
+
const lexical_1 = require("lexical");
|
|
11
|
+
const rich_text_1 = require("@lexical/rich-text");
|
|
12
|
+
const selection_1 = require("@lexical/selection");
|
|
13
|
+
const react_1 = require("react");
|
|
14
|
+
const react_dom_1 = require("react-dom");
|
|
15
|
+
const material_1 = require("@mui/material");
|
|
16
|
+
const getDOMRangeRect_1 = require("./getDOMRangeRect");
|
|
17
|
+
const getSelectNode_1 = require("./getSelectNode");
|
|
18
|
+
const setFloatingElemPosition_1 = require("./setFloatingElemPosition");
|
|
19
|
+
const MarkdownTransformers_1 = require("../MarkdownTransformers");
|
|
20
|
+
const helpers_1 = require("../../../../helpers");
|
|
21
|
+
exports.FloatingDivContainer = (0, material_1.styled)(material_1.Box)({
|
|
22
|
+
display: "flex",
|
|
23
|
+
background: "#fff",
|
|
24
|
+
padding: 4,
|
|
25
|
+
verticalAlign: "middle",
|
|
26
|
+
position: "absolute",
|
|
27
|
+
top: 0,
|
|
28
|
+
left: 0,
|
|
29
|
+
zIndex: 1400,
|
|
30
|
+
opacity: 0,
|
|
31
|
+
backgroundColor: "#fff",
|
|
32
|
+
boxShadow: "0px 5px 10px rgba(0, 0, 0, 0.3)",
|
|
33
|
+
borderRadius: 8,
|
|
34
|
+
transition: "opacity 0.5s",
|
|
35
|
+
height: 35,
|
|
36
|
+
willChange: "transform",
|
|
37
|
+
});
|
|
38
|
+
function TextFormatFloatingToolbar({ editor, anchorElem, isLink, isBold, isItalic, isUnderline, isCode, isStrikethrough, isSubscript, isSuperscript, blockType, setBlockType }) {
|
|
39
|
+
const popupCharStylesEditorRef = (0, react_1.useRef)(null);
|
|
40
|
+
const applyFormatting = (command) => {
|
|
41
|
+
editor.dispatchCommand(lexical_1.FORMAT_TEXT_COMMAND, command);
|
|
42
|
+
saveChanges(editor);
|
|
43
|
+
};
|
|
44
|
+
const insertLink = (0, react_1.useCallback)(() => {
|
|
45
|
+
if (!isLink) {
|
|
46
|
+
editor.dispatchCommand(link_1.TOGGLE_LINK_COMMAND, "https://");
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
editor.dispatchCommand(link_1.TOGGLE_LINK_COMMAND, null);
|
|
50
|
+
}
|
|
51
|
+
}, [editor, isLink]);
|
|
52
|
+
function mouseMoveListener(e) {
|
|
53
|
+
if ((popupCharStylesEditorRef === null || popupCharStylesEditorRef === void 0 ? void 0 : popupCharStylesEditorRef.current) &&
|
|
54
|
+
(e.buttons === 1 || e.buttons === 3)) {
|
|
55
|
+
popupCharStylesEditorRef.current.style.pointerEvents = "none";
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function mouseUpListener(e) {
|
|
59
|
+
if (popupCharStylesEditorRef === null || popupCharStylesEditorRef === void 0 ? void 0 : popupCharStylesEditorRef.current) {
|
|
60
|
+
popupCharStylesEditorRef.current.style.pointerEvents = "auto";
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
(0, react_1.useEffect)(() => {
|
|
64
|
+
if (popupCharStylesEditorRef === null || popupCharStylesEditorRef === void 0 ? void 0 : popupCharStylesEditorRef.current) {
|
|
65
|
+
document.addEventListener("mousemove", mouseMoveListener);
|
|
66
|
+
document.addEventListener("mouseup", mouseUpListener);
|
|
67
|
+
return () => {
|
|
68
|
+
document.removeEventListener("mousemove", mouseMoveListener);
|
|
69
|
+
document.removeEventListener("mouseup", mouseUpListener);
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}, [popupCharStylesEditorRef]);
|
|
73
|
+
const updateTextFormatFloatingToolbar = (0, react_1.useCallback)(() => {
|
|
74
|
+
const selection = (0, lexical_1.$getSelection)();
|
|
75
|
+
const popupCharStylesEditorElem = popupCharStylesEditorRef.current;
|
|
76
|
+
const nativeSelection = window.getSelection();
|
|
77
|
+
if (popupCharStylesEditorElem === null) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const rootElement = editor.getRootElement();
|
|
81
|
+
if (selection !== null &&
|
|
82
|
+
nativeSelection !== null &&
|
|
83
|
+
!nativeSelection.isCollapsed &&
|
|
84
|
+
rootElement !== null &&
|
|
85
|
+
rootElement.contains(nativeSelection.anchorNode)) {
|
|
86
|
+
const rangeRect = (0, getDOMRangeRect_1.getDOMRangeRect)(nativeSelection, rootElement);
|
|
87
|
+
(0, setFloatingElemPosition_1.setFloatingElemPosition)(rangeRect, popupCharStylesEditorElem, anchorElem);
|
|
88
|
+
}
|
|
89
|
+
}, [editor, anchorElem]);
|
|
90
|
+
(0, react_1.useEffect)(() => {
|
|
91
|
+
const scrollerElem = anchorElem.parentElement;
|
|
92
|
+
const update = () => {
|
|
93
|
+
editor.getEditorState().read(() => {
|
|
94
|
+
updateTextFormatFloatingToolbar();
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
window.addEventListener("resize", update);
|
|
98
|
+
if (scrollerElem) {
|
|
99
|
+
scrollerElem.addEventListener("scroll", update);
|
|
100
|
+
}
|
|
101
|
+
return () => {
|
|
102
|
+
window.removeEventListener("resize", update);
|
|
103
|
+
if (scrollerElem) {
|
|
104
|
+
scrollerElem.removeEventListener("scroll", update);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}, [editor, updateTextFormatFloatingToolbar, anchorElem]);
|
|
108
|
+
(0, react_1.useEffect)(() => {
|
|
109
|
+
editor.getEditorState().read(() => {
|
|
110
|
+
updateTextFormatFloatingToolbar();
|
|
111
|
+
});
|
|
112
|
+
return (0, utils_1.mergeRegister)(editor.registerUpdateListener(({ editorState }) => {
|
|
113
|
+
editorState.read(() => {
|
|
114
|
+
updateTextFormatFloatingToolbar();
|
|
115
|
+
});
|
|
116
|
+
}), editor.registerCommand(lexical_1.SELECTION_CHANGE_COMMAND, () => {
|
|
117
|
+
updateTextFormatFloatingToolbar();
|
|
118
|
+
return false;
|
|
119
|
+
}, lexical_1.COMMAND_PRIORITY_LOW));
|
|
120
|
+
}, [editor, updateTextFormatFloatingToolbar]);
|
|
121
|
+
const formatBlock = (type) => {
|
|
122
|
+
editor.update(() => {
|
|
123
|
+
const selection = (0, lexical_1.$getSelection)();
|
|
124
|
+
if ((0, lexical_1.$isRangeSelection)(selection)) {
|
|
125
|
+
(0, selection_1.$wrapNodes)(selection, () =>
|
|
126
|
+
//@ts-ignore
|
|
127
|
+
type === "paragraph" ? (0, lexical_1.$createParagraphNode)() : (0, rich_text_1.$createHeadingNode)(type));
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
setBlockType(type);
|
|
131
|
+
saveChanges(editor);
|
|
132
|
+
};
|
|
133
|
+
return ((0, jsx_runtime_1.jsx)(exports.FloatingDivContainer, { ref: popupCharStylesEditorRef, children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(material_1.Select, { value: blockType, onChange: (e) => formatBlock(e.target.value), sx: {
|
|
134
|
+
minWidth: 120,
|
|
135
|
+
backgroundColor: "#fff",
|
|
136
|
+
borderRadius: 2,
|
|
137
|
+
marginRight: 0.3,
|
|
138
|
+
}, children: [(0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: "paragraph", children: "Normal" }), (0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: "h1", children: "Heading 1" }), (0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: "h2", children: "Heading 2" }), (0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: "h3", children: "Heading 3" }), (0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: "h4", children: "Heading 4" })] }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: () => {
|
|
139
|
+
applyFormatting("bold");
|
|
140
|
+
}, sx: { backgroundColor: isBold ? "#e0e0e0" : undefined, borderRadius: 2, marginRight: 0.3 }, children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "format_bold_outline" }) }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: () => {
|
|
141
|
+
applyFormatting("italic");
|
|
142
|
+
}, sx: { backgroundColor: isItalic ? "#e0e0e0" : undefined, borderRadius: 2, marginRight: 0.3 }, children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "format_italic_outline" }) }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: () => {
|
|
143
|
+
applyFormatting("underline");
|
|
144
|
+
}, sx: { backgroundColor: isUnderline ? "#e0e0e0" : undefined, borderRadius: 2, marginRight: 0.3 }, children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "format_underlined_outline" }) }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: () => {
|
|
145
|
+
applyFormatting("code");
|
|
146
|
+
}, sx: { backgroundColor: isCode ? "#e0e0e0" : undefined, borderRadius: 2, marginRight: 0.3 }, children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "code" }) })] }) }));
|
|
147
|
+
}
|
|
148
|
+
let lastSavedText = ""; // Track last saved text
|
|
149
|
+
let lastFormattingState = {}; // Track last formatting state
|
|
150
|
+
//@ts-ignore
|
|
151
|
+
const getFormattingState = (selection) => {
|
|
152
|
+
const node = (0, getSelectNode_1.getSelectedNode)(selection);
|
|
153
|
+
let blockType = "paragraph";
|
|
154
|
+
if ((0, rich_text_1.$isHeadingNode)(node)) {
|
|
155
|
+
blockType = node.getTag(); // "h1", "h2", etc.
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
isBold: selection.hasFormat("bold"),
|
|
159
|
+
isItalic: selection.hasFormat("italic"),
|
|
160
|
+
isUnderline: selection.hasFormat("underline"),
|
|
161
|
+
// isStrikethrough: selection.hasFormat("strikethrough"),
|
|
162
|
+
isCode: selection.hasFormat("code"),
|
|
163
|
+
blockType
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
const saveChanges = (editor) => {
|
|
167
|
+
editor.update(() => {
|
|
168
|
+
var _a;
|
|
169
|
+
const selection = (0, lexical_1.$getSelection)();
|
|
170
|
+
if ((0, lexical_1.$isRangeSelection)(selection)) {
|
|
171
|
+
const text = selection.getTextContent().trim();
|
|
172
|
+
const newFormattingState = getFormattingState(selection); // Get current formatting
|
|
173
|
+
// Get the parent block node (ensuring it's not just a text node)
|
|
174
|
+
const node = (0, getSelectNode_1.getSelectedNode)(selection);
|
|
175
|
+
const parentNode = node.getParent(); // Get the parent block-level node
|
|
176
|
+
let blockType = "paragraph";
|
|
177
|
+
if ((0, rich_text_1.$isHeadingNode)(parentNode)) {
|
|
178
|
+
blockType = parentNode.getTag(); // Get heading type
|
|
179
|
+
}
|
|
180
|
+
else if ((0, rich_text_1.$isHeadingNode)(node)) {
|
|
181
|
+
blockType = node.getTag();
|
|
182
|
+
}
|
|
183
|
+
//@ts-ignore
|
|
184
|
+
if (JSON.stringify(newFormattingState) !== JSON.stringify(lastFormattingState) || blockType !== lastFormattingState.blockType) {
|
|
185
|
+
lastSavedText = text;
|
|
186
|
+
lastFormattingState = Object.assign(Object.assign({}, newFormattingState), { blockType });
|
|
187
|
+
const editorNode = editor.getRootElement();
|
|
188
|
+
const elementJSON = (_a = editorNode === null || editorNode === void 0 ? void 0 : editorNode.dataset) === null || _a === void 0 ? void 0 : _a.element;
|
|
189
|
+
if (elementJSON) {
|
|
190
|
+
const markdown = (0, markdown_1.$convertToMarkdownString)(MarkdownTransformers_1.PLAYGROUND_TRANSFORMERS);
|
|
191
|
+
const element = JSON.parse(elementJSON);
|
|
192
|
+
element.answers.text = markdown;
|
|
193
|
+
element.answersJSON = JSON.stringify(element.answers);
|
|
194
|
+
helpers_1.ApiHelper.post("/elements", [element], "ContentApi");
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
};
|
|
200
|
+
const updateFormattingState = (editor) => {
|
|
201
|
+
editor.update(() => {
|
|
202
|
+
const selection = (0, lexical_1.$getSelection)();
|
|
203
|
+
if ((0, lexical_1.$isRangeSelection)(selection)) {
|
|
204
|
+
lastFormattingState = getFormattingState(selection);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
};
|
|
208
|
+
function useFloatingTextFormatToolbar(editor, anchorElem) {
|
|
209
|
+
const [isText, setIsText] = (0, react_1.useState)(false);
|
|
210
|
+
const [isLink, setIsLink] = (0, react_1.useState)(false);
|
|
211
|
+
const [isBold, setIsBold] = (0, react_1.useState)(false);
|
|
212
|
+
const [isItalic, setIsItalic] = (0, react_1.useState)(false);
|
|
213
|
+
const [isUnderline, setIsUnderline] = (0, react_1.useState)(false);
|
|
214
|
+
const [isStrikethrough, setIsStrikethrough] = (0, react_1.useState)(false);
|
|
215
|
+
const [isSubscript, setIsSubscript] = (0, react_1.useState)(false);
|
|
216
|
+
const [isSuperscript, setIsSuperscript] = (0, react_1.useState)(false);
|
|
217
|
+
const [isCode, setIsCode] = (0, react_1.useState)(false);
|
|
218
|
+
const [blockType, setBlockType] = (0, react_1.useState)("paragraph");
|
|
219
|
+
const updatePopup = (0, react_1.useCallback)(() => {
|
|
220
|
+
editor.getEditorState().read(() => {
|
|
221
|
+
// Should not to pop up the floating toolbar when using IME input
|
|
222
|
+
if (editor.isComposing()) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const selection = (0, lexical_1.$getSelection)();
|
|
226
|
+
const nativeSelection = window.getSelection();
|
|
227
|
+
const rootElement = editor.getRootElement();
|
|
228
|
+
if (nativeSelection !== null &&
|
|
229
|
+
(!(0, lexical_1.$isRangeSelection)(selection) ||
|
|
230
|
+
rootElement === null ||
|
|
231
|
+
!rootElement.contains(nativeSelection.anchorNode))) {
|
|
232
|
+
setIsText(false);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
if (!(0, lexical_1.$isRangeSelection)(selection)) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
const node = (0, getSelectNode_1.getSelectedNode)(selection);
|
|
239
|
+
// Update text format
|
|
240
|
+
setIsBold(selection.hasFormat("bold"));
|
|
241
|
+
setIsItalic(selection.hasFormat("italic"));
|
|
242
|
+
setIsUnderline(selection.hasFormat("underline"));
|
|
243
|
+
setIsStrikethrough(selection.hasFormat("strikethrough"));
|
|
244
|
+
setIsSubscript(selection.hasFormat("subscript"));
|
|
245
|
+
setIsSuperscript(selection.hasFormat("superscript"));
|
|
246
|
+
setIsCode(selection.hasFormat("code"));
|
|
247
|
+
// Update links
|
|
248
|
+
const parent = node.getParent();
|
|
249
|
+
if ((0, link_1.$isLinkNode)(parent) || (0, link_1.$isLinkNode)(node)) {
|
|
250
|
+
setIsLink(true);
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
setIsLink(false);
|
|
254
|
+
}
|
|
255
|
+
if (!(0, code_1.$isCodeHighlightNode)(selection.anchor.getNode()) &&
|
|
256
|
+
selection.getTextContent() !== "") {
|
|
257
|
+
setIsText((0, lexical_1.$isTextNode)(node));
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
setIsText(false);
|
|
261
|
+
}
|
|
262
|
+
const rawTextContent = selection.getTextContent().replace(/\n/g, "");
|
|
263
|
+
if (!selection.isCollapsed() && rawTextContent === "") {
|
|
264
|
+
setIsText(false);
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
if ((0, lexical_1.$isRangeSelection)(selection)) {
|
|
268
|
+
const text = selection.getTextContent().trim();
|
|
269
|
+
if (text && JSON.stringify(lastFormattingState === "{}")) {
|
|
270
|
+
updateFormattingState(editor);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
let type = "paragraph";
|
|
274
|
+
if ((0, rich_text_1.$isHeadingNode)(parent)) {
|
|
275
|
+
type = parent.getTag();
|
|
276
|
+
}
|
|
277
|
+
else if ((0, rich_text_1.$isHeadingNode)(node)) {
|
|
278
|
+
type = node.getTag();
|
|
279
|
+
}
|
|
280
|
+
setBlockType(type);
|
|
281
|
+
});
|
|
282
|
+
}, [editor]);
|
|
283
|
+
(0, react_1.useEffect)(() => {
|
|
284
|
+
document.addEventListener("selectionchange", updatePopup);
|
|
285
|
+
return () => {
|
|
286
|
+
document.removeEventListener("selectionchange", updatePopup);
|
|
287
|
+
};
|
|
288
|
+
}, [updatePopup]);
|
|
289
|
+
(0, react_1.useEffect)(() => {
|
|
290
|
+
return (0, utils_1.mergeRegister)(editor.registerUpdateListener(() => {
|
|
291
|
+
updatePopup();
|
|
292
|
+
}), editor.registerCommand(lexical_1.SELECTION_CHANGE_COMMAND, () => {
|
|
293
|
+
updatePopup();
|
|
294
|
+
return false;
|
|
295
|
+
}, lexical_1.COMMAND_PRIORITY_LOW), editor.registerRootListener(() => {
|
|
296
|
+
if (editor.getRootElement() === null) {
|
|
297
|
+
setIsText(false);
|
|
298
|
+
}
|
|
299
|
+
}));
|
|
300
|
+
}, [editor, updatePopup]);
|
|
301
|
+
if (!isText || isLink) {
|
|
302
|
+
return null;
|
|
303
|
+
}
|
|
304
|
+
return (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsx)(TextFormatFloatingToolbar, { editor: editor, anchorElem: anchorElem, isLink: isLink, isBold: isBold, isItalic: isItalic, isStrikethrough: isStrikethrough, isSubscript: isSubscript, isSuperscript: isSuperscript, isUnderline: isUnderline, isCode: isCode, blockType: blockType, setBlockType: setBlockType }), anchorElem);
|
|
305
|
+
}
|
|
306
|
+
function FloatingTextFormatToolbarPlugin({ anchorElem = document.body, }) {
|
|
307
|
+
const [editor] = (0, LexicalComposerContext_1.useLexicalComposerContext)();
|
|
308
|
+
return useFloatingTextFormatToolbar(editor, anchorElem);
|
|
309
|
+
}
|
|
310
|
+
exports.default = FloatingTextFormatToolbarPlugin;
|
|
311
|
+
//# sourceMappingURL=FloatingTextFormatToolbarPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatingTextFormatToolbarPlugin.js","sourceRoot":"","sources":["../../../../../src/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDOMRangeRect.d.ts","sourceRoot":"","sources":["../../../../../src/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.tsx"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,eAAe,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,OAgBrE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDOMRangeRect = void 0;
|
|
4
|
+
function getDOMRangeRect(nativeSelection, rootElement) {
|
|
5
|
+
const domRange = nativeSelection.getRangeAt(0);
|
|
6
|
+
let rect;
|
|
7
|
+
if (nativeSelection.anchorNode === rootElement) {
|
|
8
|
+
let inner = rootElement;
|
|
9
|
+
while (inner.firstElementChild != null) {
|
|
10
|
+
inner = inner.firstElementChild;
|
|
11
|
+
}
|
|
12
|
+
rect = inner.getBoundingClientRect();
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
rect = domRange.getBoundingClientRect();
|
|
16
|
+
}
|
|
17
|
+
return rect;
|
|
18
|
+
}
|
|
19
|
+
exports.getDOMRangeRect = getDOMRangeRect;
|
|
20
|
+
//# sourceMappingURL=getDOMRangeRect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDOMRangeRect.js","sourceRoot":"","sources":["../../../../../src/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.tsx"],"names":[],"mappings":";;;AAAA,SAAgB,eAAe,CAAC,eAAoB,EAAE,WAAgB;IACrE,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,IAAI,CAAC;IAET,IAAI,eAAe,CAAC,UAAU,KAAK,WAAW,EAAE;QAC/C,IAAI,KAAK,GAAG,WAAW,CAAC;QACxB,OAAO,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAAE;YACvC,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC;SAChC;QACD,IAAI,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;KACrC;SAAM;QACN,IAAI,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;KACxC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAhBD,0CAgBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSelectNode.d.ts","sourceRoot":"","sources":["../../../../../src/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.tsx"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,SAAS,EAAE,GAAG,OAc7C"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSelectedNode = void 0;
|
|
4
|
+
const selection_1 = require("@lexical/selection");
|
|
5
|
+
function getSelectedNode(selection) {
|
|
6
|
+
const anchor = selection.anchor;
|
|
7
|
+
const focus = selection.focus;
|
|
8
|
+
const anchorNode = selection.anchor.getNode();
|
|
9
|
+
const focusNode = selection.focus.getNode();
|
|
10
|
+
if (anchorNode === focusNode) {
|
|
11
|
+
return anchorNode;
|
|
12
|
+
}
|
|
13
|
+
const isBackward = selection.isBackward();
|
|
14
|
+
if (isBackward) {
|
|
15
|
+
return (0, selection_1.$isAtNodeEnd)(focus) ? anchorNode : focusNode;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return (0, selection_1.$isAtNodeEnd)(anchor) ? anchorNode : focusNode;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.getSelectedNode = getSelectedNode;
|
|
22
|
+
//# sourceMappingURL=getSelectNode.js.map
|