@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.
Files changed (51) hide show
  1. package/dist/components/markdownEditor/Editor.d.ts +3 -1
  2. package/dist/components/markdownEditor/Editor.d.ts.map +1 -1
  3. package/dist/components/markdownEditor/Editor.js +25 -4
  4. package/dist/components/markdownEditor/Editor.js.map +1 -1
  5. package/dist/components/markdownEditor/MarkdownPreview.d.ts +3 -1
  6. package/dist/components/markdownEditor/MarkdownPreview.d.ts.map +1 -1
  7. package/dist/components/markdownEditor/MarkdownPreview.js +14 -2
  8. package/dist/components/markdownEditor/MarkdownPreview.js.map +1 -1
  9. package/dist/components/markdownEditor/MarkdownPreviewLight.d.ts.map +1 -1
  10. package/dist/components/markdownEditor/MarkdownPreviewLight.js +5 -1
  11. package/dist/components/markdownEditor/MarkdownPreviewLight.js.map +1 -1
  12. package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.d.ts +13 -0
  13. package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.d.ts.map +1 -0
  14. package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js +311 -0
  15. package/dist/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.js.map +1 -0
  16. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.d.ts +2 -0
  17. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.d.ts.map +1 -0
  18. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.js +20 -0
  19. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.js.map +1 -0
  20. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.d.ts +2 -0
  21. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.d.ts.map +1 -0
  22. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.js +22 -0
  23. package/dist/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.js.map +1 -0
  24. package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.d.ts +2 -0
  25. package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.d.ts.map +1 -0
  26. package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.js +30 -0
  27. package/dist/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.js.map +1 -0
  28. package/dist/components/markdownEditor/plugins/MarkdownTransformers.js +2 -2
  29. package/dist/components/markdownEditor/plugins/MarkdownTransformers.js.map +1 -1
  30. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.d.ts +1 -0
  31. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.d.ts.map +1 -1
  32. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.js +8 -5
  33. package/dist/components/markdownEditor/plugins/customLink/CustomLinkNode.js.map +1 -1
  34. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.d.ts.map +1 -1
  35. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.js +12 -7
  36. package/dist/components/markdownEditor/plugins/customLink/FloatingLinkEditor.js.map +1 -1
  37. package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.d.ts.map +1 -1
  38. package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.js +4 -0
  39. package/dist/components/markdownEditor/plugins/emoji/EmojisPlugin.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/components/markdownEditor/Editor.tsx +33 -16
  42. package/src/components/markdownEditor/MarkdownPreview.tsx +5 -3
  43. package/src/components/markdownEditor/MarkdownPreviewLight.tsx +5 -1
  44. package/src/components/markdownEditor/plugins/FloatingTextMenu/FloatingTextFormatToolbarPlugin.tsx +445 -0
  45. package/src/components/markdownEditor/plugins/FloatingTextMenu/getDOMRangeRect.tsx +17 -0
  46. package/src/components/markdownEditor/plugins/FloatingTextMenu/getSelectNode.tsx +17 -0
  47. package/src/components/markdownEditor/plugins/FloatingTextMenu/setFloatingElemPosition.tsx +33 -0
  48. package/src/components/markdownEditor/plugins/MarkdownTransformers.ts +2 -2
  49. package/src/components/markdownEditor/plugins/customLink/CustomLinkNode.tsx +9 -1
  50. package/src/components/markdownEditor/plugins/customLink/FloatingLinkEditor.tsx +21 -9
  51. 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":"AA4BA,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;CACtB;AAED,iBAAS,MAAM,CAAC,EAAE,KAAK,EAAE,QAAoB,EAAE,IAAoB,EAAE,SAAkB,EAAE,KAAK,EAAE,WAAkC,EAAE,EAAE,KAAK,2CA8F1I;AAED,eAAe,MAAM,CAAC"}
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({ value, onChange = () => { }, mode = "interactive", textAlign = "left", style, placeholder = "Enter some text..." }) {
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: (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" } }), 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, {}), (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 })] }));
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":"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"}
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;CACxC;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,cAAmB,EAAE,SAAS,EAAE,EAAE,KAAK,2CAI/E"}
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({ value: markdownString = "", textAlign }) {
33
- 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 }) });
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEb,iCAAwC;AACxC,iCAA6B;AAC7B,MAAM,MAAM,GAAG,IAAA,YAAI,EAAC,GAAG,EAAE,mDAAQ,UAAU,GAAC,CAAC,CAAC;AAO9C,SAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE,EAAE,SAAS,EAAS;IAC9E,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,GAAI,GACnE,CAAA;AACb,CAAC;AAJD,0CAIC"}
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,2CAyCpF"}
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
- const html = marked_1.marked.parse(convertedText || "");
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,aAAa,IAAI,EAAE,CAAC,CAAA;QAC9C,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;AAzCD,oDAyCC"}
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"}
@@ -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"}
@@ -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,2 @@
1
+ export declare function getDOMRangeRect(nativeSelection: any, rootElement: any): any;
2
+ //# sourceMappingURL=getDOMRangeRect.d.ts.map
@@ -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,2 @@
1
+ export declare function getSelectedNode(selection: any): any;
2
+ //# sourceMappingURL=getSelectNode.d.ts.map
@@ -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