@toptal/picasso-rich-text-editor 4.2.0 → 5.0.0
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/LexicalEditor/hooks/useOnFocus/index.d.ts +1 -1
- package/LexicalEditor/hooks/useOnFocus/index.js +1 -1
- package/LexicalEditor/hooks/useOnFocus/index.js.map +1 -1
- package/LexicalEditor/hooks/useOnFocus/{useOnFocus.js → use-on-focus.js} +1 -1
- package/LexicalEditor/hooks/useOnFocus/use-on-focus.js.map +1 -0
- package/LexicalEditor/hooks/useTypographyClasses/index.d.ts +1 -1
- package/LexicalEditor/hooks/useTypographyClasses/index.js +1 -1
- package/LexicalEditor/hooks/useTypographyClasses/index.js.map +1 -1
- package/LexicalEditor/hooks/useTypographyClasses/{useTypographyClasses.js → use-typography-classes.js} +1 -1
- package/LexicalEditor/hooks/useTypographyClasses/use-typography-classes.js.map +1 -0
- package/LexicalEditor/styles.d.ts +1 -1
- package/LexicalEditor/styles.js +10 -3
- package/LexicalEditor/styles.js.map +1 -1
- package/LexicalEditor/utils/{cleanupHtmlOutput.js → cleanup-html-output.js} +3 -1
- package/LexicalEditor/utils/cleanup-html-output.js.map +1 -0
- package/LexicalEditor/utils/{cleanupHtmlOutput.test.js → cleanup-html-output.test.js} +14 -2
- package/LexicalEditor/utils/cleanup-html-output.test.js.map +1 -0
- package/LexicalEditor/utils/{createLexicalTheme.js → create-lexical-theme.js} +3 -1
- package/LexicalEditor/utils/create-lexical-theme.js.map +1 -0
- package/LexicalEditor/utils/{getDomValue.js → get-dom-value.js} +1 -1
- package/LexicalEditor/utils/get-dom-value.js.map +1 -0
- package/LexicalEditor/utils/{getDomValue.test.js → get-dom-value.test.js} +2 -2
- package/LexicalEditor/utils/get-dom-value.test.js.map +1 -0
- package/LexicalEditor/utils/{getLexicalNode.js → get-lexical-node.js} +1 -1
- package/LexicalEditor/utils/get-lexical-node.js.map +1 -0
- package/LexicalEditor/utils/{getSelectedNode.js → get-selected-node.js} +1 -1
- package/LexicalEditor/utils/get-selected-node.js.map +1 -0
- package/LexicalEditor/utils/hasChildDOMNodeTag.d.ts +2 -0
- package/LexicalEditor/utils/hasChildDOMNodeTag.js +12 -0
- package/LexicalEditor/utils/hasChildDOMNodeTag.js.map +1 -0
- package/LexicalEditor/utils/hasChildDOMNodeTag.test.js +39 -0
- package/LexicalEditor/utils/hasChildDOMNodeTag.test.js.map +1 -0
- package/LexicalEditor/utils/index.d.ts +9 -8
- package/LexicalEditor/utils/index.js +9 -8
- package/LexicalEditor/utils/index.js.map +1 -1
- package/LexicalEditor/utils/{registerLexicalEvents.js → register-lexical-events.js} +1 -1
- package/LexicalEditor/utils/register-lexical-events.js.map +1 -0
- package/LexicalEditor/utils/{registerLexicalEvents.test.js → register-lexical-events.test.js} +2 -2
- package/LexicalEditor/utils/register-lexical-events.test.js.map +1 -0
- package/LexicalEditor/utils/{setEditorValue.js → set-editor-value.js} +2 -2
- package/LexicalEditor/utils/set-editor-value.js.map +1 -0
- package/LexicalEditor/utils/{synchronizeToolbarState.d.ts → synchronize-toolbar-state.d.ts} +1 -1
- package/LexicalEditor/utils/{synchronizeToolbarState.js → synchronize-toolbar-state.js} +3 -3
- package/LexicalEditor/utils/synchronize-toolbar-state.js.map +1 -0
- package/LexicalEditor/utils/{synchronizeToolbarState.test.js → synchronize-toolbar-state.test.js} +7 -7
- package/LexicalEditor/utils/synchronize-toolbar-state.test.js.map +1 -0
- package/LexicalEditor/utils/{toolbarState.js → toolbar-state.js} +1 -1
- package/LexicalEditor/utils/toolbar-state.js.map +1 -0
- package/LexicalEditorToolbarPlugin/LexicalEditorToolbarPlugin.js +16 -2
- package/LexicalEditorToolbarPlugin/LexicalEditorToolbarPlugin.js.map +1 -1
- package/RichText/components/CodeBlock.d.ts +6 -0
- package/RichText/components/CodeBlock.js +10 -0
- package/RichText/components/CodeBlock.js.map +1 -0
- package/RichText/components/index.d.ts +2 -0
- package/RichText/components/index.js +2 -0
- package/RichText/components/index.js.map +1 -1
- package/RichText/components/styles.d.ts +4 -10
- package/RichText/components/styles.js +17 -0
- package/RichText/components/styles.js.map +1 -1
- package/RichText/hooks/useRichText/useRichText.js +2 -2
- package/RichText/hooks/useRichText/useRichText.js.map +1 -1
- package/RichText/types.d.ts +1 -1
- package/RichTextEditor/hooks/useTypographyClasses/index.d.ts +1 -1
- package/RichTextEditor/hooks/useTypographyClasses/index.js +1 -1
- package/RichTextEditor/hooks/useTypographyClasses/index.js.map +1 -1
- package/RichTextEditor/hooks/useTypographyClasses/{useTypographyClasses.js → use-typography-classes.js} +1 -1
- package/RichTextEditor/hooks/useTypographyClasses/use-typography-classes.js.map +1 -0
- package/RichTextEditor/store/toolbar/{actionTypes.js → action-types.js} +1 -1
- package/RichTextEditor/store/toolbar/action-types.js.map +1 -0
- package/RichTextEditor/store/toolbar/actions.js +1 -1
- package/RichTextEditor/store/toolbar/actions.js.map +1 -1
- package/RichTextEditor/store/toolbar/index.d.ts +2 -2
- package/RichTextEditor/store/toolbar/index.js +2 -2
- package/RichTextEditor/store/toolbar/index.js.map +1 -1
- package/RichTextEditor/store/toolbar/{initialState.js → initial-state.js} +1 -1
- package/RichTextEditor/store/toolbar/initial-state.js.map +1 -0
- package/RichTextEditor/store/toolbar/reducer.js +2 -2
- package/RichTextEditor/store/toolbar/reducer.js.map +1 -1
- package/RichTextEditor/store/toolbar/types.d.ts +1 -1
- package/RichTextEditor/styles.js +1 -1
- package/RichTextEditor/styles.js.map +1 -1
- package/RichTextEditorToolbar/RichTextEditorToolbar.js +5 -4
- package/RichTextEditorToolbar/RichTextEditorToolbar.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +2 -2
- package/plugins/CodeBlockPlugin/CodeBlockButton.d.ts +6 -0
- package/plugins/CodeBlockPlugin/CodeBlockButton.js +98 -0
- package/plugins/CodeBlockPlugin/CodeBlockButton.js.map +1 -0
- package/plugins/CodeBlockPlugin/CodeBlockPlugin.d.ts +8 -0
- package/plugins/CodeBlockPlugin/CodeBlockPlugin.js +43 -0
- package/plugins/CodeBlockPlugin/CodeBlockPlugin.js.map +1 -0
- package/plugins/CodeBlockPlugin/index.d.ts +1 -0
- package/plugins/CodeBlockPlugin/index.js +2 -0
- package/plugins/CodeBlockPlugin/index.js.map +1 -0
- package/plugins/CodeBlockPlugin/nodes/CodeBlockNode.d.ts +18 -0
- package/plugins/CodeBlockPlugin/nodes/CodeBlockNode.js +135 -0
- package/plugins/CodeBlockPlugin/nodes/CodeBlockNode.js.map +1 -0
- package/plugins/CodeBlockPlugin/nodes/CodeBlockTextNode.d.ts +14 -0
- package/plugins/CodeBlockPlugin/nodes/CodeBlockTextNode.js +43 -0
- package/plugins/CodeBlockPlugin/nodes/CodeBlockTextNode.js.map +1 -0
- package/plugins/CodeBlockPlugin/nodes/index.d.ts +8 -0
- package/plugins/CodeBlockPlugin/nodes/index.js +15 -0
- package/plugins/CodeBlockPlugin/nodes/index.js.map +1 -0
- package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.d.ts +4 -0
- package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.js +12 -0
- package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.js.map +1 -0
- package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.test.d.ts +1 -0
- package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.test.js +66 -0
- package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.test.js.map +1 -0
- package/plugins/CodeBlockPlugin/utils/index.d.ts +1 -0
- package/plugins/CodeBlockPlugin/utils/index.js +2 -0
- package/plugins/CodeBlockPlugin/utils/index.js.map +1 -0
- package/plugins/CodePlugin/CodeButton.js +3 -2
- package/plugins/CodePlugin/CodeButton.js.map +1 -1
- package/plugins/HeadingsReplacementPlugin/utils/index.d.ts +1 -1
- package/plugins/HeadingsReplacementPlugin/utils/index.js +1 -1
- package/plugins/HeadingsReplacementPlugin/utils/index.js.map +1 -1
- package/plugins/HeadingsReplacementPlugin/utils/{replaceHeadingNodes.js → replace-heading-nodes.js} +1 -1
- package/plugins/HeadingsReplacementPlugin/utils/replace-heading-nodes.js.map +1 -0
- package/plugins/HeadingsReplacementPlugin/utils/replace-heading-nodes.test.d.ts +1 -0
- package/plugins/HeadingsReplacementPlugin/utils/{replaceHeadingNodes.test.js → replace-heading-nodes.test.js} +2 -2
- package/plugins/HeadingsReplacementPlugin/utils/replace-heading-nodes.test.js.map +1 -0
- package/plugins/ImagePlugin/components/ImagePluginButton/ImagePluginButton.js +2 -2
- package/plugins/ImagePlugin/components/ImagePluginButton/ImagePluginButton.js.map +1 -1
- package/plugins/LinkPlugin/LinkPluginButton.js +4 -3
- package/plugins/LinkPlugin/LinkPluginButton.js.map +1 -1
- package/plugins/api.d.ts +2 -0
- package/plugins/api.js +10 -3
- package/plugins/api.js.map +1 -1
- package/plugins/index.d.ts +1 -0
- package/plugins/index.js +1 -0
- package/plugins/index.js.map +1 -1
- package/utils/html-to-hast.js +1 -0
- package/utils/html-to-hast.js.map +1 -1
- package/LexicalEditor/hooks/useOnFocus/useOnFocus.js.map +0 -1
- package/LexicalEditor/hooks/useTypographyClasses/useTypographyClasses.js.map +0 -1
- package/LexicalEditor/utils/cleanupHtmlOutput.js.map +0 -1
- package/LexicalEditor/utils/cleanupHtmlOutput.test.js.map +0 -1
- package/LexicalEditor/utils/createLexicalTheme.js.map +0 -1
- package/LexicalEditor/utils/getDomValue.js.map +0 -1
- package/LexicalEditor/utils/getDomValue.test.js.map +0 -1
- package/LexicalEditor/utils/getLexicalNode.js.map +0 -1
- package/LexicalEditor/utils/getSelectedNode.js.map +0 -1
- package/LexicalEditor/utils/registerLexicalEvents.js.map +0 -1
- package/LexicalEditor/utils/registerLexicalEvents.test.js.map +0 -1
- package/LexicalEditor/utils/setEditorValue.js.map +0 -1
- package/LexicalEditor/utils/synchronizeToolbarState.js.map +0 -1
- package/LexicalEditor/utils/synchronizeToolbarState.test.js.map +0 -1
- package/LexicalEditor/utils/toolbarState.js.map +0 -1
- package/RichTextEditor/hooks/useTypographyClasses/useTypographyClasses.js.map +0 -1
- package/RichTextEditor/store/toolbar/actionTypes.js.map +0 -1
- package/RichTextEditor/store/toolbar/initialState.js.map +0 -1
- package/plugins/HeadingsReplacementPlugin/utils/replaceHeadingNodes.js.map +0 -1
- package/plugins/HeadingsReplacementPlugin/utils/replaceHeadingNodes.test.js.map +0 -1
- /package/LexicalEditor/hooks/useOnFocus/{useOnFocus.d.ts → use-on-focus.d.ts} +0 -0
- /package/LexicalEditor/hooks/useTypographyClasses/{useTypographyClasses.d.ts → use-typography-classes.d.ts} +0 -0
- /package/LexicalEditor/utils/{cleanupHtmlOutput.d.ts → cleanup-html-output.d.ts} +0 -0
- /package/LexicalEditor/utils/{cleanupHtmlOutput.test.d.ts → cleanup-html-output.test.d.ts} +0 -0
- /package/LexicalEditor/utils/{createLexicalTheme.d.ts → create-lexical-theme.d.ts} +0 -0
- /package/LexicalEditor/utils/{getDomValue.d.ts → get-dom-value.d.ts} +0 -0
- /package/LexicalEditor/utils/{getDomValue.test.d.ts → get-dom-value.test.d.ts} +0 -0
- /package/LexicalEditor/utils/{getLexicalNode.d.ts → get-lexical-node.d.ts} +0 -0
- /package/LexicalEditor/utils/{getSelectedNode.d.ts → get-selected-node.d.ts} +0 -0
- /package/LexicalEditor/utils/{registerLexicalEvents.test.d.ts → hasChildDOMNodeTag.test.d.ts} +0 -0
- /package/LexicalEditor/utils/{registerLexicalEvents.d.ts → register-lexical-events.d.ts} +0 -0
- /package/LexicalEditor/utils/{synchronizeToolbarState.test.d.ts → register-lexical-events.test.d.ts} +0 -0
- /package/LexicalEditor/utils/{setEditorValue.d.ts → set-editor-value.d.ts} +0 -0
- /package/{plugins/HeadingsReplacementPlugin/utils/replaceHeadingNodes.test.d.ts → LexicalEditor/utils/synchronize-toolbar-state.test.d.ts} +0 -0
- /package/LexicalEditor/utils/{toolbarState.d.ts → toolbar-state.d.ts} +0 -0
- /package/RichTextEditor/hooks/useTypographyClasses/{useTypographyClasses.d.ts → use-typography-classes.d.ts} +0 -0
- /package/RichTextEditor/store/toolbar/{actionTypes.d.ts → action-types.d.ts} +0 -0
- /package/RichTextEditor/store/toolbar/{initialState.d.ts → initial-state.d.ts} +0 -0
- /package/plugins/HeadingsReplacementPlugin/utils/{replaceHeadingNodes.d.ts → replace-heading-nodes.d.ts} +0 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { $createLineBreakNode, $createParagraphNode, ElementNode, } from 'lexical';
|
|
2
|
+
import { $createCodeBlockNode, $createCodeBlockTextNode, $isCodeBlockTextNode, } from '../nodes';
|
|
3
|
+
import hasChildDOMNodeTag from '../../../LexicalEditor/utils/hasChildDOMNodeTag';
|
|
4
|
+
import { getFirstCodeNodeOfLine } from '../utils';
|
|
5
|
+
const convertPreElement = () => {
|
|
6
|
+
return { node: $createCodeBlockNode() };
|
|
7
|
+
};
|
|
8
|
+
const ELEMENT_TYPE = 'code-block';
|
|
9
|
+
export class CodeBlockNode extends ElementNode {
|
|
10
|
+
static getType() {
|
|
11
|
+
return ELEMENT_TYPE;
|
|
12
|
+
}
|
|
13
|
+
static clone(node) {
|
|
14
|
+
return new CodeBlockNode(node.__key);
|
|
15
|
+
}
|
|
16
|
+
constructor(key) {
|
|
17
|
+
super(key);
|
|
18
|
+
}
|
|
19
|
+
createDOM(config) {
|
|
20
|
+
const element = document.createElement('code');
|
|
21
|
+
const theme = config.theme;
|
|
22
|
+
const className = theme.codeBlock;
|
|
23
|
+
if (className !== undefined) {
|
|
24
|
+
element.className = className;
|
|
25
|
+
}
|
|
26
|
+
return element;
|
|
27
|
+
}
|
|
28
|
+
updateDOM() {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
exportDOM() {
|
|
32
|
+
const element = document.createElement('pre');
|
|
33
|
+
return { element };
|
|
34
|
+
}
|
|
35
|
+
static importDOM() {
|
|
36
|
+
return {
|
|
37
|
+
// Typically <pre> is used for code blocks, and <code> for inline code styles
|
|
38
|
+
// but if it's a multi line <code> we'll create a block. Pass through to
|
|
39
|
+
// inline format handled by TextNode otherwise.
|
|
40
|
+
code: (node) => {
|
|
41
|
+
const isMultiLine = node.textContent != null &&
|
|
42
|
+
(/\r?\n/.test(node.textContent) || hasChildDOMNodeTag(node, 'BR'));
|
|
43
|
+
return isMultiLine
|
|
44
|
+
? {
|
|
45
|
+
conversion: convertPreElement,
|
|
46
|
+
priority: 1,
|
|
47
|
+
}
|
|
48
|
+
: null;
|
|
49
|
+
},
|
|
50
|
+
pre: () => ({
|
|
51
|
+
conversion: convertPreElement,
|
|
52
|
+
priority: 0,
|
|
53
|
+
}),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
static importJSON(serializedNode) {
|
|
57
|
+
const node = $createCodeBlockNode();
|
|
58
|
+
node.setFormat(serializedNode.format);
|
|
59
|
+
node.setIndent(serializedNode.indent);
|
|
60
|
+
node.setDirection(serializedNode.direction);
|
|
61
|
+
return node;
|
|
62
|
+
}
|
|
63
|
+
exportJSON() {
|
|
64
|
+
return Object.assign(Object.assign({}, super.exportJSON()), { type: ELEMENT_TYPE, version: 1 });
|
|
65
|
+
}
|
|
66
|
+
canIndent() {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
extractWithChild() {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
// eslint-disable-next-line max-statements, complexity
|
|
73
|
+
insertNewAfter(selection, restoreSelection = true) {
|
|
74
|
+
const children = this.getChildren();
|
|
75
|
+
const childrenLength = children.length;
|
|
76
|
+
if (childrenLength >= 2 &&
|
|
77
|
+
children[childrenLength - 1].getTextContent() === '\n' &&
|
|
78
|
+
children[childrenLength - 2].getTextContent() === '\n' &&
|
|
79
|
+
selection.isCollapsed() &&
|
|
80
|
+
selection.anchor.key === this.__key &&
|
|
81
|
+
selection.anchor.offset === childrenLength) {
|
|
82
|
+
children[childrenLength - 1].remove();
|
|
83
|
+
children[childrenLength - 2].remove();
|
|
84
|
+
const newElement = $createParagraphNode();
|
|
85
|
+
this.insertAfter(newElement, restoreSelection);
|
|
86
|
+
return newElement;
|
|
87
|
+
}
|
|
88
|
+
// If the selection is within the codeblock, find all leading tabs and
|
|
89
|
+
// spaces of the current line. Create a new line that has all those
|
|
90
|
+
// tabs and spaces, such that leading indentation is preserved.
|
|
91
|
+
const anchor = selection.anchor;
|
|
92
|
+
const focus = selection.focus;
|
|
93
|
+
const firstPoint = anchor.isBefore(focus) ? anchor : focus;
|
|
94
|
+
const firstSelectionNode = firstPoint.getNode();
|
|
95
|
+
if ($isCodeBlockTextNode(firstSelectionNode)) {
|
|
96
|
+
let node = getFirstCodeNodeOfLine(firstSelectionNode);
|
|
97
|
+
const insertNodes = [];
|
|
98
|
+
// eslint-disable-next-line no-constant-condition
|
|
99
|
+
while (true) {
|
|
100
|
+
if ($isCodeBlockTextNode(node)) {
|
|
101
|
+
const text = node.getTextContent();
|
|
102
|
+
const textSize = node.getTextContentSize();
|
|
103
|
+
// eslint-disable-next-line max-depth
|
|
104
|
+
for (let spaces = 0; spaces < textSize && text[spaces] === ' '; spaces++) {
|
|
105
|
+
// eslint-disable-next-line max-depth
|
|
106
|
+
if (spaces !== 0) {
|
|
107
|
+
insertNodes.push($createCodeBlockTextNode(' '.repeat(spaces)));
|
|
108
|
+
}
|
|
109
|
+
// eslint-disable-next-line max-depth
|
|
110
|
+
if (spaces !== textSize) {
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
node = node.getNextSibling();
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (insertNodes.length > 0) {
|
|
121
|
+
selection.insertNodes([$createLineBreakNode(), ...insertNodes]);
|
|
122
|
+
return insertNodes[insertNodes.length - 1];
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
collapseAtStart() {
|
|
128
|
+
const paragraph = $createParagraphNode();
|
|
129
|
+
const children = this.getChildren();
|
|
130
|
+
children.forEach(child => paragraph.append(child));
|
|
131
|
+
this.replace(paragraph);
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=CodeBlockNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlockNode.js","sourceRoot":"","sources":["../../../../src/plugins/CodeBlockPlugin/nodes/CodeBlockNode.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { SerializedTextNode, EditorConfig, NodeKey } from 'lexical';
|
|
2
|
+
import { TextNode } from 'lexical';
|
|
3
|
+
import type { CodeBlockNode } from '../nodes';
|
|
4
|
+
export declare class CodeBlockTextNode extends TextNode {
|
|
5
|
+
constructor(text: string, key?: NodeKey);
|
|
6
|
+
static getType(): string;
|
|
7
|
+
static clone(node: CodeBlockTextNode): CodeBlockTextNode;
|
|
8
|
+
static importJSON(serializedNode: SerializedTextNode): CodeBlockTextNode;
|
|
9
|
+
createDOM(config: EditorConfig): HTMLElement;
|
|
10
|
+
exportJSON(): SerializedTextNode;
|
|
11
|
+
setFormat(): this;
|
|
12
|
+
isParentRequired(): boolean;
|
|
13
|
+
createParentElementNode(): CodeBlockNode;
|
|
14
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { TextNode } from 'lexical';
|
|
2
|
+
import { $createCodeBlockNode, $createCodeBlockTextNode } from '../nodes';
|
|
3
|
+
const ELEMENT_TYPE = 'code-block-text';
|
|
4
|
+
export class CodeBlockTextNode extends TextNode {
|
|
5
|
+
constructor(text, key) {
|
|
6
|
+
super(text, key);
|
|
7
|
+
}
|
|
8
|
+
static getType() {
|
|
9
|
+
return ELEMENT_TYPE;
|
|
10
|
+
}
|
|
11
|
+
static clone(node) {
|
|
12
|
+
return new CodeBlockTextNode(node.__text, node.__key);
|
|
13
|
+
}
|
|
14
|
+
static importJSON(serializedNode) {
|
|
15
|
+
console.log('importJSON');
|
|
16
|
+
const { text } = serializedNode;
|
|
17
|
+
const node = $createCodeBlockTextNode(text);
|
|
18
|
+
return node;
|
|
19
|
+
}
|
|
20
|
+
createDOM(config) {
|
|
21
|
+
const element = super.createDOM(config);
|
|
22
|
+
const theme = config.theme;
|
|
23
|
+
const className = theme.codeBlockText;
|
|
24
|
+
if (className !== undefined) {
|
|
25
|
+
element.className = className;
|
|
26
|
+
}
|
|
27
|
+
return element;
|
|
28
|
+
}
|
|
29
|
+
exportJSON() {
|
|
30
|
+
return Object.assign(Object.assign({}, super.exportJSON()), { type: ELEMENT_TYPE, version: 1 });
|
|
31
|
+
}
|
|
32
|
+
// prevent formatting
|
|
33
|
+
setFormat() {
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
isParentRequired() {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
createParentElementNode() {
|
|
40
|
+
return $createCodeBlockNode();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=CodeBlockTextNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlockTextNode.js","sourceRoot":"","sources":["../../../../src/plugins/CodeBlockPlugin/nodes/CodeBlockTextNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAGzE,MAAM,YAAY,GAAG,iBAAiB,CAAA;AAEtC,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAC7C,YAAY,IAAY,EAAE,GAAa;QACrC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAuB;QAClC,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,cAAkC;QAClD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAA;QAE/B,MAAM,IAAI,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAA;QAE3C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,SAAS,CAAC,MAAoB;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAEvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAA;QAErC,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;SAC9B;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,UAAU;QACR,uCACK,KAAK,CAAC,UAAU,EAAE,KACrB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,CAAC,IACX;IACH,CAAC;IAED,qBAAqB;IACrB,SAAS;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,uBAAuB;QACrB,OAAO,oBAAoB,EAAE,CAAA;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { LexicalNode } from 'lexical';
|
|
2
|
+
import { CodeBlockNode } from './CodeBlockNode';
|
|
3
|
+
import { CodeBlockTextNode } from './CodeBlockTextNode';
|
|
4
|
+
export declare const $createCodeBlockNode: () => CodeBlockNode;
|
|
5
|
+
export declare const $isCodeBlockNode: (node: LexicalNode | null | undefined) => node is CodeBlockNode;
|
|
6
|
+
export declare const $isCodeBlockTextNode: (node: LexicalNode | CodeBlockTextNode | null | undefined) => node is CodeBlockTextNode;
|
|
7
|
+
export declare const $createCodeBlockTextNode: (text: string) => CodeBlockTextNode;
|
|
8
|
+
export { CodeBlockNode, CodeBlockTextNode };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { $applyNodeReplacement } from 'lexical';
|
|
2
|
+
import { CodeBlockNode } from './CodeBlockNode';
|
|
3
|
+
import { CodeBlockTextNode } from './CodeBlockTextNode';
|
|
4
|
+
export const $createCodeBlockNode = () => $applyNodeReplacement(new CodeBlockNode());
|
|
5
|
+
export const $isCodeBlockNode = (node) => {
|
|
6
|
+
return node instanceof CodeBlockNode;
|
|
7
|
+
};
|
|
8
|
+
export const $isCodeBlockTextNode = (node) => {
|
|
9
|
+
return node instanceof CodeBlockTextNode;
|
|
10
|
+
};
|
|
11
|
+
export const $createCodeBlockTextNode = (text) => {
|
|
12
|
+
return $applyNodeReplacement(new CodeBlockTextNode(text));
|
|
13
|
+
};
|
|
14
|
+
export { CodeBlockNode, CodeBlockTextNode };
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/CodeBlockPlugin/nodes/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAkB,EAAE,CACtD,qBAAqB,CAAC,IAAI,aAAa,EAAE,CAAC,CAAA;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAoC,EACb,EAAE;IACzB,OAAO,IAAI,YAAY,aAAa,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAwD,EAC7B,EAAE;IAC7B,OAAO,IAAI,YAAY,iBAAiB,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAAqB,EAAE;IAC1E,OAAO,qBAAqB,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;AAC3D,CAAC,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { $isCodeBlockTextNode } from '../nodes';
|
|
2
|
+
const getFirstCodeNodeOfLine = (anchor) => {
|
|
3
|
+
let previousNode = anchor;
|
|
4
|
+
let node = anchor;
|
|
5
|
+
while ($isCodeBlockTextNode(node)) {
|
|
6
|
+
previousNode = node;
|
|
7
|
+
node = node.getPreviousSibling();
|
|
8
|
+
}
|
|
9
|
+
return previousNode;
|
|
10
|
+
};
|
|
11
|
+
export default getFirstCodeNodeOfLine;
|
|
12
|
+
//# sourceMappingURL=getFirstCodeNodeOfLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFirstCodeNodeOfLine.js","sourceRoot":"","sources":["../../../../src/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/C,MAAM,sBAAsB,GAAG,CAC7B,MAAyC,EACC,EAAE;IAC5C,IAAI,YAAY,GAAG,MAAM,CAAA;IACzB,IAAI,IAAI,GAAuB,MAAM,CAAA;IAErC,OAAO,oBAAoB,CAAC,IAAI,CAAC,EAAE;QACjC,YAAY,GAAG,IAAI,CAAA;QACnB,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;KACjC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,eAAe,sBAAsB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { $isCodeBlockTextNode } from '../nodes';
|
|
2
|
+
import getFirstCodeNodeOfLine from './getFirstCodeNodeOfLine';
|
|
3
|
+
jest.mock('../nodes', () => ({
|
|
4
|
+
__esModule: true,
|
|
5
|
+
$isCodeBlockTextNode: jest.fn(),
|
|
6
|
+
}));
|
|
7
|
+
// Mocking the function and methods
|
|
8
|
+
const getPreviousSibling = jest.fn();
|
|
9
|
+
const $isCodeBlockTextNodeMock = $isCodeBlockTextNode;
|
|
10
|
+
describe('getFirstCodeNodeOfLine', () => {
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
jest.resetAllMocks();
|
|
13
|
+
});
|
|
14
|
+
describe('when the provided node is a CodeBlockTextNode', () => {
|
|
15
|
+
it('returns the first CodeBlockTextNode', () => {
|
|
16
|
+
const codeBlockTextNode = {
|
|
17
|
+
getPreviousSibling,
|
|
18
|
+
};
|
|
19
|
+
$isCodeBlockTextNodeMock
|
|
20
|
+
.mockReturnValueOnce(true)
|
|
21
|
+
.mockReturnValueOnce(false);
|
|
22
|
+
getPreviousSibling.mockReturnValueOnce(null);
|
|
23
|
+
const result = getFirstCodeNodeOfLine(codeBlockTextNode);
|
|
24
|
+
expect(result).toBe(codeBlockTextNode);
|
|
25
|
+
expect($isCodeBlockTextNode).toHaveBeenCalledWith(codeBlockTextNode);
|
|
26
|
+
expect(getPreviousSibling).toHaveBeenCalledTimes(1);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
describe('when the provided node is a LineBreakNode', () => {
|
|
30
|
+
it('returns the provided node as it is', () => {
|
|
31
|
+
const lineBreakNode = {
|
|
32
|
+
getPreviousSibling,
|
|
33
|
+
};
|
|
34
|
+
$isCodeBlockTextNodeMock.mockReturnValue(false);
|
|
35
|
+
const result = getFirstCodeNodeOfLine(lineBreakNode);
|
|
36
|
+
expect(result).toBe(lineBreakNode);
|
|
37
|
+
expect($isCodeBlockTextNodeMock).toHaveBeenCalledWith(lineBreakNode);
|
|
38
|
+
expect(getPreviousSibling).toHaveBeenCalledTimes(0);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe('when the provided node is a CodeBlockTextNode with a non-CodeBlockTextNode in the sibling chain', () => {
|
|
42
|
+
it('returns the first CodeBlockTextNode until the non-CodeBlockTextNode', () => {
|
|
43
|
+
const firstCodeBlockTextNode = {
|
|
44
|
+
getPreviousSibling,
|
|
45
|
+
};
|
|
46
|
+
const secondCodeBlockTextNode = { getPreviousSibling };
|
|
47
|
+
const nonCodeBlockTextNode = { getPreviousSibling };
|
|
48
|
+
const thirdCodeBlockTextNode = { getPreviousSibling };
|
|
49
|
+
$isCodeBlockTextNodeMock
|
|
50
|
+
.mockReturnValueOnce(true)
|
|
51
|
+
.mockReturnValueOnce(true)
|
|
52
|
+
.mockReturnValueOnce(false)
|
|
53
|
+
.mockReturnValueOnce(true);
|
|
54
|
+
getPreviousSibling
|
|
55
|
+
.mockReturnValueOnce(secondCodeBlockTextNode)
|
|
56
|
+
.mockReturnValueOnce(nonCodeBlockTextNode)
|
|
57
|
+
.mockReturnValueOnce(thirdCodeBlockTextNode)
|
|
58
|
+
.mockReturnValueOnce(null);
|
|
59
|
+
const result = getFirstCodeNodeOfLine(firstCodeBlockTextNode);
|
|
60
|
+
expect(result).toBe(secondCodeBlockTextNode);
|
|
61
|
+
expect($isCodeBlockTextNode).toHaveBeenCalledTimes(3);
|
|
62
|
+
expect(getPreviousSibling).toHaveBeenCalledTimes(2);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=getFirstCodeNodeOfLine.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFirstCodeNodeOfLine.test.js","sourceRoot":"","sources":["../../../../src/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as getFirstCodeNodeOfLine } from './getFirstCodeNodeOfLine';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/CodeBlockPlugin/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAA"}
|
|
@@ -7,7 +7,7 @@ import RichTextEditorButton from '../../RichTextEditorButton';
|
|
|
7
7
|
const CodeButton = ({ 'data-testid': testId }) => {
|
|
8
8
|
const [active, setActive] = useState(false);
|
|
9
9
|
const [editor] = useLexicalComposerContext();
|
|
10
|
-
const { disabled, focused } = useRTEPluginContext();
|
|
10
|
+
const { disabled, focused, disabledFormatting } = useRTEPluginContext();
|
|
11
11
|
useRTEUpdate(() => {
|
|
12
12
|
const selection = $getSelection();
|
|
13
13
|
if ($isRangeSelection(selection)) {
|
|
@@ -17,7 +17,8 @@ const CodeButton = ({ 'data-testid': testId }) => {
|
|
|
17
17
|
const handleCodeClick = () => {
|
|
18
18
|
editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'code');
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
const isDisabled = disabled || !focused || disabledFormatting;
|
|
21
|
+
return (React.createElement(RichTextEditorButton, { icon: React.createElement(Code16, null), onClick: handleCodeClick, active: isDisabled ? false : active, disabled: isDisabled, "data-testid": testId }));
|
|
21
22
|
};
|
|
22
23
|
export default CodeButton;
|
|
23
24
|
//# sourceMappingURL=CodeButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeButton.js","sourceRoot":"","sources":["../../../src/plugins/CodePlugin/CodeButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC/E,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,oBAAoB,MAAM,4BAA4B,CAAA;AAM7D,MAAM,UAAU,GAAG,CAAC,EAAE,aAAa,EAAE,MAAM,EAAS,EAAE,EAAE;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,yBAAyB,EAAE,CAAA;IAC5C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,mBAAmB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"CodeButton.js","sourceRoot":"","sources":["../../../src/plugins/CodePlugin/CodeButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC/E,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,oBAAoB,MAAM,4BAA4B,CAAA;AAM7D,MAAM,UAAU,GAAG,CAAC,EAAE,aAAa,EAAE,MAAM,EAAS,EAAE,EAAE;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,yBAAyB,EAAE,CAAA;IAC5C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAEvE,YAAY,CAAC,GAAG,EAAE;QAChB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAA;QAEjC,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE;YAChC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;SACvC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;IACrD,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,QAAQ,IAAI,CAAC,OAAO,IAAI,kBAAkB,CAAA;IAE7D,OAAO,CACL,oBAAC,oBAAoB,IACnB,IAAI,EAAE,oBAAC,MAAM,OAAG,EAChB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EACnC,QAAQ,EAAE,UAAU,iBACP,MAAM,GACnB,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { replaceHeadingNodes } from './
|
|
1
|
+
export { replaceHeadingNodes } from './replace-heading-nodes';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { replaceHeadingNodes } from './
|
|
1
|
+
export { replaceHeadingNodes } from './replace-heading-nodes';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/HeadingsReplacementPlugin/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/HeadingsReplacementPlugin/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-heading-nodes.js","sourceRoot":"","sources":["../../../../src/plugins/HeadingsReplacementPlugin/utils/replace-heading-nodes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAiB,EAAE,EAAE;IACvD,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QAC1B,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;QAEvD,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAE1B,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAA;QAE5C,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC3B,aAAa,CAAC,MAAM,EAAE,CAAA;KACvB;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { $createParagraphNode, $createTextNode } from 'lexical';
|
|
2
|
-
import { replaceHeadingNodes } from './
|
|
2
|
+
import { replaceHeadingNodes } from './replace-heading-nodes';
|
|
3
3
|
jest.mock('lexical', () => ({
|
|
4
4
|
__esModule: true,
|
|
5
5
|
$createTextNode: jest.fn(),
|
|
@@ -47,4 +47,4 @@ describe('replaceHeadingNodes', () => {
|
|
|
47
47
|
});
|
|
48
48
|
});
|
|
49
49
|
});
|
|
50
|
-
//# sourceMappingURL=
|
|
50
|
+
//# sourceMappingURL=replace-heading-nodes.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-heading-nodes.test.js","sourceRoot":"","sources":["../../../../src/plugins/HeadingsReplacementPlugin/utils/replace-heading-nodes.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAE7D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1B,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;IAC1B,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;CAChC,CAAC,CAAC,CAAA;AAEH,MAAM,yBAAyB,GAAG,oBAEjC,CAAA;AAED,MAAM,oBAAoB,GAAG,eAE5B,CAAA;AAED,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAA4B,CAAA;YAEhD,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAExB,mBAAmB,CAAC,IAAI,CAAC,CAAA;YAEzB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,WAAW,GAAG,MAAM,CAAA;YAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAA4B,CAAA;YAEhD,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;YACxB,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC,WAAW,CAAA;YACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAExB,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAE/B,oBAAoB,CAAC,kBAAkB,CACrC,GAAG,EAAE,CACH,CAAC;gBACC,SAAS,EAAE,aAAa;aACD,CAAA,CAC5B,CAAA;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAE5B,yBAAyB,CAAC,kBAAkB,CAC1C,GAAG,EAAE,CACH,CAAC;gBACC,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,UAAU;aACU,CAAA,CACjC,CAAA;YAED,mBAAmB,CAAC,IAAI,CAAC,CAAA;YAEzB,MAAM,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAA;YAC9D,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAE1D,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;YAClD,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAA;YACrE,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAA;YAErC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC;gBACxC,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -3,8 +3,8 @@ import React from 'react';
|
|
|
3
3
|
import { useRTEPluginContext } from '../../../api';
|
|
4
4
|
import RichTextEditorButton from '../../../../RichTextEditorButton';
|
|
5
5
|
const ImagePluginButton = ({ 'data-testid': testId, onClick }) => {
|
|
6
|
-
const { disabled, focused } = useRTEPluginContext();
|
|
7
|
-
return (React.createElement(RichTextEditorButton, { icon: React.createElement(Image16, null), onClick: onClick, disabled: disabled || !focused, "data-testid": testId }));
|
|
6
|
+
const { disabled, focused, disabledFormatting } = useRTEPluginContext();
|
|
7
|
+
return (React.createElement(RichTextEditorButton, { icon: React.createElement(Image16, null), onClick: onClick, disabled: disabled || !focused || disabledFormatting, "data-testid": testId }));
|
|
8
8
|
};
|
|
9
9
|
export default ImagePluginButton;
|
|
10
10
|
//# sourceMappingURL=ImagePluginButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImagePluginButton.js","sourceRoot":"","sources":["../../../../../src/plugins/ImagePlugin/components/ImagePluginButton/ImagePluginButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,oBAAoB,MAAM,kCAAkC,CAAA;AAOnE,MAAM,iBAAiB,GAAG,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAS,EAAE,EAAE;IACtE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,mBAAmB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"ImagePluginButton.js","sourceRoot":"","sources":["../../../../../src/plugins/ImagePlugin/components/ImagePluginButton/ImagePluginButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,oBAAoB,MAAM,kCAAkC,CAAA;AAOnE,MAAM,iBAAiB,GAAG,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAS,EAAE,EAAE;IACtE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAEvE,OAAO,CACL,oBAAC,oBAAoB,IACnB,IAAI,EAAE,oBAAC,OAAO,OAAG,EACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,IAAI,CAAC,OAAO,IAAI,kBAAkB,iBACvC,MAAM,GACnB,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,iBAAiB,CAAA"}
|
|
@@ -3,14 +3,14 @@ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext
|
|
|
3
3
|
import { Link16 } from '@toptal/picasso';
|
|
4
4
|
import { $createTextNode, $getSelection, $isRangeSelection } from 'lexical';
|
|
5
5
|
import React, { useCallback, useState } from 'react';
|
|
6
|
-
import { getSelectedNode } from '../../LexicalEditor/utils/
|
|
6
|
+
import { getSelectedNode } from '../../LexicalEditor/utils/get-selected-node';
|
|
7
7
|
import { useRTEPluginContext, useRTEUpdate } from '../api';
|
|
8
8
|
import RichTextEditorButton from '../../RichTextEditorButton';
|
|
9
9
|
import { sanitizeUrl, validateUrl } from './utils/url';
|
|
10
10
|
const LinkPluginButton = ({ 'data-testid': testId }) => {
|
|
11
11
|
const [active, setActive] = useState(false);
|
|
12
12
|
const [editor] = useLexicalComposerContext();
|
|
13
|
-
const { disabled, focused } = useRTEPluginContext();
|
|
13
|
+
const { disabled, focused, disabledFormatting } = useRTEPluginContext();
|
|
14
14
|
useRTEUpdate(() => {
|
|
15
15
|
const selection = $getSelection();
|
|
16
16
|
if ($isRangeSelection(selection)) {
|
|
@@ -58,7 +58,8 @@ const LinkPluginButton = ({ 'data-testid': testId }) => {
|
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
60
|
}, [editor, active]);
|
|
61
|
-
|
|
61
|
+
const isDisabled = disabled || !focused || disabledFormatting;
|
|
62
|
+
return (React.createElement(RichTextEditorButton, { icon: React.createElement(Link16, null), onClick: onLinkClick, active: isDisabled ? false : active, disabled: isDisabled, "data-testid": testId }));
|
|
62
63
|
};
|
|
63
64
|
export default LinkPluginButton;
|
|
64
65
|
//# sourceMappingURL=LinkPluginButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkPluginButton.js","sourceRoot":"","sources":["../../../src/plugins/LinkPlugin/LinkPluginButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3E,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"LinkPluginButton.js","sourceRoot":"","sources":["../../../src/plugins/LinkPlugin/LinkPluginButton.tsx"],"names":[],"mappings":"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"}
|
package/plugins/api.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export declare type ToolbarPortalProviderProps = {
|
|
|
21
21
|
export declare const RTEPluginContextProvider: ({ children, disabled, focused, }: ToolbarPortalProviderProps) => JSX.Element;
|
|
22
22
|
export declare const useRTEPluginContext: () => {
|
|
23
23
|
disabled: boolean;
|
|
24
|
+
disabledFormatting: boolean;
|
|
24
25
|
focused: boolean;
|
|
26
|
+
setDisabledFormatting: (value: boolean) => void;
|
|
25
27
|
};
|
|
26
28
|
export { Props as ToolbarProps, Toolbar, useToolbarPortalRegister, } from './Toolbar/Toolbar';
|
package/plugins/api.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
2
|
-
import React, { createContext, useContext, useEffect } from 'react';
|
|
3
|
-
import { registerLexicalEvents } from '../LexicalEditor/utils/
|
|
2
|
+
import React, { createContext, useContext, useEffect, useState } from 'react';
|
|
3
|
+
import { registerLexicalEvents } from '../LexicalEditor/utils/register-lexical-events';
|
|
4
4
|
import { ToolbarProvider } from './Toolbar/Toolbar';
|
|
5
5
|
export const RTEPluginMeta = Symbol('PicassoRTEPluginMeta');
|
|
6
6
|
export const isRTEPluginElement = (plugin) => {
|
|
@@ -17,21 +17,28 @@ export const useRTEUpdate = (callback) => {
|
|
|
17
17
|
};
|
|
18
18
|
const RTEPluginContext = createContext({
|
|
19
19
|
disabled: false,
|
|
20
|
+
disabledFormatting: false,
|
|
20
21
|
focused: false,
|
|
22
|
+
setDisabledFormatting: () => { },
|
|
21
23
|
});
|
|
22
24
|
export const RTEPluginContextProvider = ({ children, disabled, focused, }) => {
|
|
25
|
+
const [disabledFormatting, setDisabledFormatting] = useState(false);
|
|
23
26
|
const value = {
|
|
24
27
|
disabled,
|
|
28
|
+
disabledFormatting,
|
|
29
|
+
setDisabledFormatting,
|
|
25
30
|
focused,
|
|
26
31
|
};
|
|
27
32
|
return (React.createElement(ToolbarProvider, null,
|
|
28
33
|
React.createElement(RTEPluginContext.Provider, { value: value }, children)));
|
|
29
34
|
};
|
|
30
35
|
export const useRTEPluginContext = () => {
|
|
31
|
-
const { disabled, focused } = useContext(RTEPluginContext);
|
|
36
|
+
const { disabled, focused, disabledFormatting, setDisabledFormatting } = useContext(RTEPluginContext);
|
|
32
37
|
return {
|
|
33
38
|
disabled,
|
|
39
|
+
disabledFormatting,
|
|
34
40
|
focused,
|
|
41
|
+
setDisabledFormatting,
|
|
35
42
|
};
|
|
36
43
|
};
|
|
37
44
|
export { Toolbar, useToolbarPortalRegister, } from './Toolbar/Toolbar';
|
package/plugins/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/plugins/api.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAGjF,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/plugins/api.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAGjF,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAA;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAA;AAe3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAU,EAG3C,EAAE;IACF,OAAO,CACL,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU;QACjC,aAAa,IAAI,MAAM,CAAC,IAAI,CAC7B,CAAA;AACH,CAAC,CAAA;AASD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAoB,EAAE,EAAE;IACnD,MAAM,CAAC,MAAM,CAAC,GAAG,yBAAyB,EAAE,CAAA;IAE5C,SAAS,CACP,GAAG,EAAE,CACH,qBAAqB,CAAC;QACpB,MAAM;QACN,aAAa,EAAE,QAAQ;KACxB,CAAC,EACJ,CAAC,QAAQ,EAAE,MAAM,CAAC,CACnB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,aAAa,CAAwB;IAC5D,QAAQ,EAAE,KAAK;IACf,kBAAkB,EAAE,KAAK;IACzB,OAAO,EAAE,KAAK;IACd,qBAAqB,EAAE,GAAG,EAAE,GAAE,CAAC;CAChC,CAAC,CAAA;AAQF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,QAAQ,EACR,QAAQ,EACR,OAAO,GACoB,EAAE,EAAE;IAC/B,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEnE,MAAM,KAAK,GAA0B;QACnC,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,OAAO;KACR,CAAA;IAED,OAAO,CACL,oBAAC,eAAe;QACd,oBAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACpC,QAAQ,CACiB,CACZ,CACnB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,GACpE,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAE9B,OAAO;QACL,QAAQ;QACR,kBAAkB;QAClB,OAAO;QACP,qBAAqB;KACtB,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAEL,OAAO,EACP,wBAAwB,GACzB,MAAM,mBAAmB,CAAA"}
|
package/plugins/index.d.ts
CHANGED
|
@@ -9,4 +9,5 @@ export { default as TriggerInitialOnChangePlugin } from './TriggerInitialOnChang
|
|
|
9
9
|
export { default as FocusOnLabelClickPlugin } from './FocusOnLabelClickPlugin';
|
|
10
10
|
export { default as CodePlugin } from './CodePlugin';
|
|
11
11
|
export { default as ImagePlugin } from './ImagePlugin';
|
|
12
|
+
export { default as CodeBlockPlugin } from './CodeBlockPlugin';
|
|
12
13
|
export type { UploadedImage } from './ImagePlugin';
|
package/plugins/index.js
CHANGED
|
@@ -8,4 +8,5 @@ export { default as TriggerInitialOnChangePlugin } from './TriggerInitialOnChang
|
|
|
8
8
|
export { default as FocusOnLabelClickPlugin } from './FocusOnLabelClickPlugin';
|
|
9
9
|
export { default as CodePlugin } from './CodePlugin';
|
|
10
10
|
export { default as ImagePlugin } from './ImagePlugin';
|
|
11
|
+
export { default as CodeBlockPlugin } from './CodeBlockPlugin';
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
package/plugins/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,UAAU,EAA4B,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AACxF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,UAAU,EAA4B,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AACxF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
package/utils/html-to-hast.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-to-hast.js","sourceRoot":"","sources":["../../src/utils/html-to-hast.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAC7C,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAI5C,MAAM,CAAC,MAAM,kBAAkB,GAAW;IACxC,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE;QACT,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;KACjB;IACD,UAAU,EAAE;QACV,CAAC,EAAE,CAAC,MAAM,CAAC;QACX,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;QAC9B,GAAG,EAAE,EAAE;KACR;IACD,QAAQ,EAAE;QACR,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,MAAM;
|
|
1
|
+
{"version":3,"file":"html-to-hast.js","sourceRoot":"","sources":["../../src/utils/html-to-hast.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAC7C,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAI5C,MAAM,CAAC,MAAM,kBAAkB,GAAW;IACxC,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE;QACT,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;KACjB;IACD,UAAU,EAAE;QACV,CAAC,EAAE,CAAC,MAAM,CAAC;QACX,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;QAC9B,GAAG,EAAE,EAAE;KACR;IACD,QAAQ,EAAE;QACR,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,MAAM;QACN,KAAK;KACN;IACD,KAAK,EAAE,CAAC,QAAQ,CAAC;CAClB,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;IACjC,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAEtD,CAAA;IAEhB,MAAM,GAAG,GAAY;QACnB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;KACjE,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,eAAe,SAAS,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useOnFocus.js","sourceRoot":"","sources":["../../../../src/LexicalEditor/hooks/useOnFocus/useOnFocus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAc5C,MAAM,UAAU,GAAG,CAAC,EAClB,OAAO,GAAG,IAAI,EACd,MAAM,GAAG,IAAI,EACb,YAAY,GAAG,EAAE,GACX,EAAU,EAAE;IAClB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,OAAO,EAAE,CAAA;IACX,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,CAAmC,EAAE,EAAE;QACtC,MAAM,YAAY,GAAG,CAAC,CAAC,aAAqB,CAAA;QAC5C,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CACzC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CACzD,CAAA;QAED,IAAI,iBAAiB,EAAE;YACrB,OAAM;SACP;QAED,UAAU,CAAC,KAAK,CAAC,CAAA;QACjB,MAAM,EAAE,CAAA;IACV,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAA;IAED,OAAO;QACL,OAAO;QACP,WAAW;QACX,UAAU;KACX,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTypographyClasses.js","sourceRoot":"","sources":["../../../../src/LexicalEditor/hooks/useTypographyClasses/useTypographyClasses.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAG1E,MAAM,0BAA0B,GAAG,UAAU,CAAQ,gBAAgB,EAAE;IACrE,IAAI,EAAE,sBAAsB;CAC7B,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,CAAC,OAA0B,EAAU,EAAE;IAClE,MAAM,OAAO,GAAG,0BAA0B,EAAE,CAAA;IAE5C,OAAO,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AACjD,CAAC,CAAA;AAED,eAAe,oBAAoB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cleanupHtmlOutput.js","sourceRoot":"","sources":["../../../src/LexicalEditor/utils/cleanupHtmlOutput.ts"],"names":[],"mappings":"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"}
|