@payloadcms/richtext-lexical 4.0.0-internal.011fd46 → 4.0.0-internal.17c13d2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@types/assets.d.js +2 -0
- package/dist/@types/assets.d.js.map +1 -0
- package/dist/cell/rscEntry.d.ts.map +1 -1
- package/dist/cell/rscEntry.js +5 -5
- package/dist/cell/rscEntry.js.map +1 -1
- package/dist/exports/client/Field-VW7ZGT6K.js +2 -0
- package/dist/exports/client/Field-VW7ZGT6K.js.map +7 -0
- package/dist/exports/client/bundled.css +1 -1
- package/dist/exports/client/chunk-4EIYXZ6H.js +12 -0
- package/dist/exports/client/chunk-4EIYXZ6H.js.map +7 -0
- package/dist/exports/client/{chunk-CUFJGFNW.js → chunk-ESITTE3C.js} +2 -2
- package/dist/exports/client/{chunk-CUFJGFNW.js.map → chunk-ESITTE3C.js.map} +2 -2
- package/dist/exports/client/componentInline-H24N7GUG.js +2 -0
- package/dist/exports/client/index.d.ts +1 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +25 -27
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/server/rsc.browser.d.ts +11 -0
- package/dist/exports/server/rsc.browser.d.ts.map +1 -0
- package/dist/exports/server/rsc.browser.js +10 -0
- package/dist/exports/server/rsc.browser.js.map +1 -0
- package/dist/features/blockquote/markdownTransformer.d.ts +1 -1
- package/dist/features/blockquote/markdownTransformer.d.ts.map +1 -1
- package/dist/features/blockquote/markdownTransformer.js.map +1 -1
- package/dist/features/blocks/client/component/index.js.map +1 -1
- package/dist/features/blocks/client/componentInline/index.js.map +1 -1
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts +1 -1
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts.map +1 -1
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +1 -1
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -1
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts +1 -1
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts.map +1 -1
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +1 -1
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -1
- package/dist/features/blocks/client/markdown/markdownTransformer.d.ts +2 -1
- package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
- package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
- package/dist/features/blocks/server/markdown/markdownTransformer.d.ts +1 -1
- package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
- package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
- package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
- package/dist/features/converters/lexicalToMarkdown/index.js +1 -1
- package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -1
- package/dist/features/converters/markdownToLexical/index.js +1 -1
- package/dist/features/converters/markdownToLexical/index.js.map +1 -1
- package/dist/features/experimental_table/markdownTransformer.d.ts +1 -1
- package/dist/features/experimental_table/markdownTransformer.d.ts.map +1 -1
- package/dist/features/experimental_table/markdownTransformer.js +1 -1
- package/dist/features/experimental_table/markdownTransformer.js.map +1 -1
- package/dist/features/format/bold/markdownTransformers.d.ts +1 -1
- package/dist/features/format/bold/markdownTransformers.d.ts.map +1 -1
- package/dist/features/format/bold/markdownTransformers.js.map +1 -1
- package/dist/features/format/inlineCode/markdownTransformers.d.ts +1 -1
- package/dist/features/format/inlineCode/markdownTransformers.d.ts.map +1 -1
- package/dist/features/format/inlineCode/markdownTransformers.js.map +1 -1
- package/dist/features/format/italic/markdownTransformers.d.ts +1 -1
- package/dist/features/format/italic/markdownTransformers.d.ts.map +1 -1
- package/dist/features/format/italic/markdownTransformers.js.map +1 -1
- package/dist/features/format/strikethrough/markdownTransformers.d.ts +1 -1
- package/dist/features/format/strikethrough/markdownTransformers.d.ts.map +1 -1
- package/dist/features/format/strikethrough/markdownTransformers.js.map +1 -1
- package/dist/features/heading/markdownTransformer.d.ts +1 -1
- package/dist/features/heading/markdownTransformer.d.ts.map +1 -1
- package/dist/features/heading/markdownTransformer.js.map +1 -1
- package/dist/features/horizontalRule/client/markdownTransformer.d.ts +1 -1
- package/dist/features/horizontalRule/client/markdownTransformer.d.ts.map +1 -1
- package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
- package/dist/features/horizontalRule/server/markdownTransformer.d.ts +1 -1
- package/dist/features/horizontalRule/server/markdownTransformer.d.ts.map +1 -1
- package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
- package/dist/features/link/markdownTransformer.d.ts +1 -1
- package/dist/features/link/markdownTransformer.d.ts.map +1 -1
- package/dist/features/link/markdownTransformer.js.map +1 -1
- package/dist/features/link/markdownTransformer.spec.js +1 -1
- package/dist/features/link/markdownTransformer.spec.js.map +1 -1
- package/dist/features/lists/checklist/markdownTransformers.d.ts +1 -1
- package/dist/features/lists/checklist/markdownTransformers.d.ts.map +1 -1
- package/dist/features/lists/checklist/markdownTransformers.js.map +1 -1
- package/dist/features/lists/orderedList/markdownTransformer.d.ts +1 -1
- package/dist/features/lists/orderedList/markdownTransformer.d.ts.map +1 -1
- package/dist/features/lists/orderedList/markdownTransformer.js.map +1 -1
- package/dist/features/lists/shared/markdown.d.ts +1 -1
- package/dist/features/lists/shared/markdown.d.ts.map +1 -1
- package/dist/features/lists/shared/markdown.js.map +1 -1
- package/dist/features/lists/unorderedList/markdownTransformer.d.ts +1 -1
- package/dist/features/lists/unorderedList/markdownTransformer.d.ts.map +1 -1
- package/dist/features/lists/unorderedList/markdownTransformer.js.map +1 -1
- package/dist/features/toolbars/shared/useToolbarStates.d.ts.map +1 -1
- package/dist/features/toolbars/shared/useToolbarStates.js +1 -3
- package/dist/features/toolbars/shared/useToolbarStates.js.map +1 -1
- package/dist/features/typesClient.d.ts +1 -1
- package/dist/features/typesClient.d.ts.map +1 -1
- package/dist/features/typesClient.js.map +1 -1
- package/dist/features/typesServer.d.ts +1 -1
- package/dist/features/typesServer.d.ts.map +1 -1
- package/dist/features/typesServer.js.map +1 -1
- package/dist/features/upload/server/markdownTransformer.d.ts +1 -1
- package/dist/features/upload/server/markdownTransformer.d.ts.map +1 -1
- package/dist/features/upload/server/markdownTransformer.js.map +1 -1
- package/dist/field/bundled.css +1 -1
- package/dist/field/clientEntry.d.ts +29 -0
- package/dist/field/clientEntry.d.ts.map +1 -0
- package/dist/field/clientEntry.js +86 -0
- package/dist/field/clientEntry.js.map +1 -0
- package/dist/field/index.css +9 -12
- package/dist/field/index.js +1 -1
- package/dist/field/index.js.map +1 -1
- package/dist/field/rscEntry.d.ts.map +1 -1
- package/dist/field/rscEntry.js +2 -0
- package/dist/field/rscEntry.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -6
- package/dist/index.js.map +1 -1
- package/dist/lexical/LexicalEditor.d.ts.map +1 -1
- package/dist/lexical/LexicalEditor.js +36 -2
- package/dist/lexical/LexicalEditor.js.map +1 -1
- package/dist/lexical/LexicalProvider.d.ts.map +1 -1
- package/dist/lexical/LexicalProvider.js +22 -7
- package/dist/lexical/LexicalProvider.js.map +1 -1
- package/dist/lexical/config/client/loader.d.ts.map +1 -1
- package/dist/lexical/config/client/loader.js +5 -1
- package/dist/lexical/config/client/loader.js.map +1 -1
- package/dist/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -1
- package/dist/lexical/plugins/MarkdownShortcut/index.js +1 -1
- package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
- package/dist/lexical/utils/markdown/createBlockNode.d.ts +1 -1
- package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
- package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
- package/dist/lexical-proxy/@lexical-markdown.d.ts +1 -40
- package/dist/lexical-proxy/@lexical-markdown.d.ts.map +1 -1
- package/dist/lexical-proxy/@lexical-markdown.js +1 -56
- package/dist/lexical-proxy/@lexical-markdown.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +2 -0
- package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +1 -0
- package/dist/packages/@lexical/markdown/LexicalMarkdownHardLineBreak.spec.js +160 -0
- package/dist/packages/@lexical/markdown/LexicalMarkdownHardLineBreak.spec.js.map +1 -0
- package/dist/packages/@lexical/markdown/MarkdownExport.d.ts +14 -0
- package/dist/packages/@lexical/markdown/MarkdownExport.d.ts.map +1 -0
- package/dist/packages/@lexical/markdown/MarkdownExport.js +220 -0
- package/dist/packages/@lexical/markdown/MarkdownExport.js.map +1 -0
- package/dist/packages/@lexical/markdown/MarkdownImport.d.ts +19 -0
- package/dist/packages/@lexical/markdown/MarkdownImport.d.ts.map +1 -0
- package/dist/packages/@lexical/markdown/MarkdownImport.js +199 -0
- package/dist/packages/@lexical/markdown/MarkdownImport.js.map +1 -0
- package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts +11 -0
- package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts.map +1 -0
- package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +304 -0
- package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +1 -0
- package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts +173 -0
- package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts.map +1 -0
- package/dist/packages/@lexical/markdown/MarkdownTransformers.js +352 -0
- package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +1 -0
- package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts +22 -0
- package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts.map +1 -0
- package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +91 -0
- package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +1 -0
- package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts +21 -0
- package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts.map +1 -0
- package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +54 -0
- package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +1 -0
- package/dist/packages/@lexical/markdown/importTextTransformers.d.ts +18 -0
- package/dist/packages/@lexical/markdown/importTextTransformers.d.ts.map +1 -0
- package/dist/packages/@lexical/markdown/importTextTransformers.js +54 -0
- package/dist/packages/@lexical/markdown/importTextTransformers.js.map +1 -0
- package/dist/packages/@lexical/markdown/index.d.ts +29 -0
- package/dist/packages/@lexical/markdown/index.d.ts.map +1 -0
- package/dist/packages/@lexical/markdown/index.js +39 -0
- package/dist/packages/@lexical/markdown/index.js.map +1 -0
- package/dist/packages/@lexical/markdown/utils.d.ts +34 -0
- package/dist/packages/@lexical/markdown/utils.d.ts.map +1 -0
- package/dist/packages/@lexical/markdown/utils.js +267 -0
- package/dist/packages/@lexical/markdown/utils.js.map +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utilities/buildInitialState.d.ts +2 -1
- package/dist/utilities/buildInitialState.d.ts.map +1 -1
- package/dist/utilities/buildInitialState.js.map +1 -1
- package/dist/utilities/generateImportMap.d.ts.map +1 -1
- package/dist/utilities/generateImportMap.js +7 -3
- package/dist/utilities/generateImportMap.js.map +1 -1
- package/package.json +26 -21
- package/dist/exports/client/Field-VQX3RNMF.js +0 -2
- package/dist/exports/client/Field-VQX3RNMF.js.map +0 -7
- package/dist/exports/client/chunk-X3D4LZS7.js +0 -2
- package/dist/exports/client/chunk-X3D4LZS7.js.map +0 -7
- package/dist/exports/client/componentInline-DV4EGOWU.js +0 -2
- package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts +0 -28
- package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts.map +0 -1
- package/dist/lexical/utils/markdown/normalizeMarkdown.js +0 -95
- package/dist/lexical/utils/markdown/normalizeMarkdown.js.map +0 -1
- package/dist/lexical-proxy/@lexical-markdown.spec.js +0 -89
- package/dist/lexical-proxy/@lexical-markdown.spec.js.map +0 -1
- /package/dist/exports/client/{componentInline-DV4EGOWU.js.map → componentInline-H24N7GUG.js.map} +0 -0
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/* eslint-disable regexp/no-obscure-range */ /* eslint-disable regexp/no-empty-group */ /* eslint-disable regexp/no-empty-capturing-group */ /* eslint-disable regexp/optimal-quantifier-concatenation */ /* eslint-disable regexp/no-misleading-capturing-group */ /* eslint-disable regexp/no-contradiction-with-assertion */ /* eslint-disable regexp/no-super-linear-backtracking */ /**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/import { $isListItemNode, $isListNode } from '@lexical/list';
|
|
8
|
+
import { $isHeadingNode, $isQuoteNode } from '@lexical/rich-text';
|
|
9
|
+
import { $isParagraphNode, $isTextNode } from 'lexical';
|
|
10
|
+
const autoFormatBase = {
|
|
11
|
+
markdownFormatKind: null,
|
|
12
|
+
regEx: /(?:)/,
|
|
13
|
+
regExForAutoFormatting: /(?:)/,
|
|
14
|
+
requiresParagraphStart: false
|
|
15
|
+
};
|
|
16
|
+
const paragraphStartBase = {
|
|
17
|
+
...autoFormatBase,
|
|
18
|
+
requiresParagraphStart: true
|
|
19
|
+
};
|
|
20
|
+
const markdownHeader1 = {
|
|
21
|
+
...paragraphStartBase,
|
|
22
|
+
export: createHeadingExport(1),
|
|
23
|
+
markdownFormatKind: 'paragraphH1',
|
|
24
|
+
regEx: /^# /,
|
|
25
|
+
regExForAutoFormatting: /^# /
|
|
26
|
+
};
|
|
27
|
+
const markdownHeader2 = {
|
|
28
|
+
...paragraphStartBase,
|
|
29
|
+
export: createHeadingExport(2),
|
|
30
|
+
markdownFormatKind: 'paragraphH2',
|
|
31
|
+
regEx: /^## /,
|
|
32
|
+
regExForAutoFormatting: /^## /
|
|
33
|
+
};
|
|
34
|
+
const markdownHeader3 = {
|
|
35
|
+
...paragraphStartBase,
|
|
36
|
+
export: createHeadingExport(3),
|
|
37
|
+
markdownFormatKind: 'paragraphH3',
|
|
38
|
+
regEx: /^### /,
|
|
39
|
+
regExForAutoFormatting: /^### /
|
|
40
|
+
};
|
|
41
|
+
const markdownHeader4 = {
|
|
42
|
+
...paragraphStartBase,
|
|
43
|
+
export: createHeadingExport(4),
|
|
44
|
+
markdownFormatKind: 'paragraphH4',
|
|
45
|
+
regEx: /^#### /,
|
|
46
|
+
regExForAutoFormatting: /^#### /
|
|
47
|
+
};
|
|
48
|
+
const markdownHeader5 = {
|
|
49
|
+
...paragraphStartBase,
|
|
50
|
+
export: createHeadingExport(5),
|
|
51
|
+
markdownFormatKind: 'paragraphH5',
|
|
52
|
+
regEx: /^##### /,
|
|
53
|
+
regExForAutoFormatting: /^##### /
|
|
54
|
+
};
|
|
55
|
+
const markdownHeader6 = {
|
|
56
|
+
...paragraphStartBase,
|
|
57
|
+
export: createHeadingExport(6),
|
|
58
|
+
markdownFormatKind: 'paragraphH6',
|
|
59
|
+
regEx: /^###### /,
|
|
60
|
+
regExForAutoFormatting: /^###### /
|
|
61
|
+
};
|
|
62
|
+
const markdownBlockQuote = {
|
|
63
|
+
...paragraphStartBase,
|
|
64
|
+
export: blockQuoteExport,
|
|
65
|
+
markdownFormatKind: 'paragraphBlockQuote',
|
|
66
|
+
regEx: /^> /,
|
|
67
|
+
regExForAutoFormatting: /^> /
|
|
68
|
+
};
|
|
69
|
+
const markdownUnorderedListDash = {
|
|
70
|
+
...paragraphStartBase,
|
|
71
|
+
export: listExport,
|
|
72
|
+
markdownFormatKind: 'paragraphUnorderedList',
|
|
73
|
+
regEx: /^(\s{0,10})- /,
|
|
74
|
+
regExForAutoFormatting: /^(\s{0,10})- /
|
|
75
|
+
};
|
|
76
|
+
const markdownUnorderedListAsterisk = {
|
|
77
|
+
...paragraphStartBase,
|
|
78
|
+
export: listExport,
|
|
79
|
+
markdownFormatKind: 'paragraphUnorderedList',
|
|
80
|
+
regEx: /^(\s{0,10})\* /,
|
|
81
|
+
regExForAutoFormatting: /^(\s{0,10})\* /
|
|
82
|
+
};
|
|
83
|
+
const markdownOrderedList = {
|
|
84
|
+
...paragraphStartBase,
|
|
85
|
+
export: listExport,
|
|
86
|
+
markdownFormatKind: 'paragraphOrderedList',
|
|
87
|
+
regEx: /^(\s{0,10})(\d+)\.\s/,
|
|
88
|
+
regExForAutoFormatting: /^(\s{0,10})(\d+)\.\s/
|
|
89
|
+
};
|
|
90
|
+
const markdownHorizontalRule = {
|
|
91
|
+
...paragraphStartBase,
|
|
92
|
+
markdownFormatKind: 'horizontalRule',
|
|
93
|
+
regEx: /^\*\*\*$/,
|
|
94
|
+
regExForAutoFormatting: /^\*\*\* /
|
|
95
|
+
};
|
|
96
|
+
const markdownHorizontalRuleUsingDashes = {
|
|
97
|
+
...paragraphStartBase,
|
|
98
|
+
markdownFormatKind: 'horizontalRule',
|
|
99
|
+
regEx: /^---$/,
|
|
100
|
+
regExForAutoFormatting: /^--- /
|
|
101
|
+
};
|
|
102
|
+
const markdownInlineCode = {
|
|
103
|
+
...autoFormatBase,
|
|
104
|
+
exportFormat: 'code',
|
|
105
|
+
exportTag: '`',
|
|
106
|
+
markdownFormatKind: 'code',
|
|
107
|
+
regEx: /(`)(\s*)([^`]*)(\s*)(`)()/,
|
|
108
|
+
regExForAutoFormatting: /(`)(\s*\b)([^`]*)(\b\s*)(`)(\s)$/
|
|
109
|
+
};
|
|
110
|
+
const markdownBold = {
|
|
111
|
+
...autoFormatBase,
|
|
112
|
+
exportFormat: 'bold',
|
|
113
|
+
exportTag: '**',
|
|
114
|
+
markdownFormatKind: 'bold',
|
|
115
|
+
regEx: /(\*\*)(\s*)([^*]*)(\s*)(\*\*)()/,
|
|
116
|
+
regExForAutoFormatting: /(\*\*)(\s*\b)([^*]*)(\b\s*)(\*\*)(\s)$/
|
|
117
|
+
};
|
|
118
|
+
const markdownItalic = {
|
|
119
|
+
...autoFormatBase,
|
|
120
|
+
exportFormat: 'italic',
|
|
121
|
+
exportTag: '*',
|
|
122
|
+
markdownFormatKind: 'italic',
|
|
123
|
+
regEx: /(\*)(\s*)([^*]*)(\s*)(\*)()/,
|
|
124
|
+
regExForAutoFormatting: /(\*)(\s*\b)([^*]*)(\b\s*)(\*)(\s)$/
|
|
125
|
+
};
|
|
126
|
+
const markdownBold2 = {
|
|
127
|
+
...autoFormatBase,
|
|
128
|
+
exportFormat: 'bold',
|
|
129
|
+
exportTag: '_',
|
|
130
|
+
markdownFormatKind: 'bold',
|
|
131
|
+
regEx: /(__)(\s*)([^_]*)(\s*)(__)()/,
|
|
132
|
+
regExForAutoFormatting: /(__)(\s*)([^_]*)(\s*)(__)(\s)$/
|
|
133
|
+
};
|
|
134
|
+
const markdownItalic2 = {
|
|
135
|
+
...autoFormatBase,
|
|
136
|
+
exportFormat: 'italic',
|
|
137
|
+
exportTag: '_',
|
|
138
|
+
markdownFormatKind: 'italic',
|
|
139
|
+
regEx: /(_)()([^_]*)()(_)()/,
|
|
140
|
+
regExForAutoFormatting: /(_)()([^_]*)()(_)(\s)$/
|
|
141
|
+
};
|
|
142
|
+
const fakeMarkdownUnderline = {
|
|
143
|
+
...autoFormatBase,
|
|
144
|
+
exportFormat: 'underline',
|
|
145
|
+
exportTag: '<u>',
|
|
146
|
+
exportTagClose: '</u>',
|
|
147
|
+
markdownFormatKind: 'underline',
|
|
148
|
+
regEx: /(<u>)(\s*)([^<]*)(\s*)(<\/u>)()/,
|
|
149
|
+
regExForAutoFormatting: /(<u>)(\s*\b)([^<]*)(\b\s*)(<\/u>)(\s)$/
|
|
150
|
+
};
|
|
151
|
+
const markdownStrikethrough = {
|
|
152
|
+
...autoFormatBase,
|
|
153
|
+
exportFormat: 'strikethrough',
|
|
154
|
+
exportTag: '~~',
|
|
155
|
+
markdownFormatKind: 'strikethrough',
|
|
156
|
+
regEx: /(~~)(\s*)([^~]*)(\s*)(~~)()/,
|
|
157
|
+
regExForAutoFormatting: /(~~)(\s*\b)([^~]*)(\b\s*)(~~)(\s)$/
|
|
158
|
+
};
|
|
159
|
+
const markdownStrikethroughItalicBold = {
|
|
160
|
+
...autoFormatBase,
|
|
161
|
+
markdownFormatKind: 'strikethrough_italic_bold',
|
|
162
|
+
regEx: /(~~_\*\*)(\s*\b)([^*_~]+)(\b\s*)(\*\*_~~)()/,
|
|
163
|
+
regExForAutoFormatting: /(~~_\*\*)(\s*\b)([^*_~]+)(\b\s*)(\*\*_~~)(\s)$/
|
|
164
|
+
};
|
|
165
|
+
const markdownItalicbold = {
|
|
166
|
+
...autoFormatBase,
|
|
167
|
+
markdownFormatKind: 'italic_bold',
|
|
168
|
+
regEx: /(_\*\*)(\s*\b)([^*_]+)(\b\s*)(\*\*_)/,
|
|
169
|
+
regExForAutoFormatting: /(_\*\*)(\s*\b)([^*_]+)(\b\s*)(\*\*_)(\s)$/
|
|
170
|
+
};
|
|
171
|
+
const markdownStrikethroughItalic = {
|
|
172
|
+
...autoFormatBase,
|
|
173
|
+
markdownFormatKind: 'strikethrough_italic',
|
|
174
|
+
regEx: /(~~_)(\s*)([^_~]+)(\s*)(_~~)/,
|
|
175
|
+
regExForAutoFormatting: /(~~_)(\s*)([^_~]+)(\s*)(_~~)(\s)$/
|
|
176
|
+
};
|
|
177
|
+
const markdownStrikethroughBold = {
|
|
178
|
+
...autoFormatBase,
|
|
179
|
+
markdownFormatKind: 'strikethrough_bold',
|
|
180
|
+
regEx: /(~~\*\*)(\s*\b)([^*~]+)(\b\s*)(\*\*~~)/,
|
|
181
|
+
regExForAutoFormatting: /(~~\*\*)(\s*\b)([^*~]+)(\b\s*)(\*\*~~)(\s)$/
|
|
182
|
+
};
|
|
183
|
+
const markdownLink = {
|
|
184
|
+
...autoFormatBase,
|
|
185
|
+
markdownFormatKind: 'link',
|
|
186
|
+
regEx: /(\[)([^\]]*)(\]\()([^)]*)(\)*)()/,
|
|
187
|
+
regExForAutoFormatting: /(\[)([^\]]*)(\]\()([^)]*)(\)*)(\s)$/
|
|
188
|
+
};
|
|
189
|
+
const allMarkdownCriteriaForTextNodes = [
|
|
190
|
+
// Place the combination formats ahead of the individual formats.
|
|
191
|
+
// Combos
|
|
192
|
+
markdownStrikethroughItalicBold, markdownItalicbold, markdownStrikethroughItalic, markdownStrikethroughBold, markdownInlineCode, markdownBold, markdownItalic, markdownBold2, markdownItalic2, fakeMarkdownUnderline, markdownStrikethrough, markdownLink];
|
|
193
|
+
const allMarkdownCriteriaForParagraphs = [markdownHeader1, markdownHeader2, markdownHeader3, markdownHeader4, markdownHeader5, markdownHeader6, markdownBlockQuote, markdownUnorderedListDash, markdownUnorderedListAsterisk, markdownOrderedList, markdownHorizontalRule, markdownHorizontalRuleUsingDashes];
|
|
194
|
+
export function getAllMarkdownCriteriaForParagraphs() {
|
|
195
|
+
return allMarkdownCriteriaForParagraphs;
|
|
196
|
+
}
|
|
197
|
+
export function getAllMarkdownCriteriaForTextNodes() {
|
|
198
|
+
return allMarkdownCriteriaForTextNodes;
|
|
199
|
+
}
|
|
200
|
+
function createHeadingExport(level) {
|
|
201
|
+
return (node, exportChildren) => {
|
|
202
|
+
return $isHeadingNode(node) && node.getTag() === 'h' + level ? '#'.repeat(level) + ' ' + exportChildren(node) : null;
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
function listExport(node, exportChildren) {
|
|
206
|
+
return $isListNode(node) ? processNestedLists(node, exportChildren, 0) : null;
|
|
207
|
+
}
|
|
208
|
+
// TODO: should be param
|
|
209
|
+
const LIST_INDENT_SIZE = 4;
|
|
210
|
+
function processNestedLists(listNode, exportChildren, depth) {
|
|
211
|
+
const output = [];
|
|
212
|
+
const children = listNode.getChildren();
|
|
213
|
+
let index = 0;
|
|
214
|
+
for (const listItemNode of children) {
|
|
215
|
+
if ($isListItemNode(listItemNode)) {
|
|
216
|
+
if (listItemNode.getChildrenSize() === 1) {
|
|
217
|
+
const firstChild = listItemNode.getFirstChild();
|
|
218
|
+
if ($isListNode(firstChild)) {
|
|
219
|
+
output.push(processNestedLists(firstChild, exportChildren, depth + 1));
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
const indent = ' '.repeat(depth * LIST_INDENT_SIZE);
|
|
224
|
+
const prefix = listNode.getListType() === 'bullet' ? '- ' : `${listNode.getStart() + index}. `;
|
|
225
|
+
output.push(indent + prefix + exportChildren(listItemNode));
|
|
226
|
+
index++;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return output.join('\n');
|
|
230
|
+
}
|
|
231
|
+
function blockQuoteExport(node, exportChildren) {
|
|
232
|
+
return $isQuoteNode(node) ? '> ' + exportChildren(node) : null;
|
|
233
|
+
}
|
|
234
|
+
export function indexBy(list, callback) {
|
|
235
|
+
const index = {};
|
|
236
|
+
for (const item of list) {
|
|
237
|
+
const key = callback(item);
|
|
238
|
+
if (!key) {
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
if (index[key]) {
|
|
242
|
+
index[key].push(item);
|
|
243
|
+
} else {
|
|
244
|
+
index[key] = [item];
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return index;
|
|
248
|
+
}
|
|
249
|
+
export function transformersByType(transformers) {
|
|
250
|
+
const byType = indexBy(transformers, t => t.type);
|
|
251
|
+
return {
|
|
252
|
+
element: byType.element || [],
|
|
253
|
+
multilineElement: byType['multiline-element'] || [],
|
|
254
|
+
textFormat: byType['text-format'] || [],
|
|
255
|
+
textMatch: byType['text-match'] || []
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
export const PUNCTUATION_OR_SPACE = /[!-/:-@[-`{-~\s]/;
|
|
259
|
+
const MARKDOWN_EMPTY_LINE_REG_EXP = /^\s{0,3}$/;
|
|
260
|
+
export function isEmptyParagraph(node) {
|
|
261
|
+
if (!$isParagraphNode(node)) {
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
const firstChild = node.getFirstChild();
|
|
265
|
+
return firstChild == null || node.getChildrenSize() === 1 && $isTextNode(firstChild) && MARKDOWN_EMPTY_LINE_REG_EXP.test(firstChild.getTextContent());
|
|
266
|
+
}
|
|
267
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["$isListItemNode","$isListNode","$isHeadingNode","$isQuoteNode","$isParagraphNode","$isTextNode","autoFormatBase","markdownFormatKind","regEx","regExForAutoFormatting","requiresParagraphStart","paragraphStartBase","markdownHeader1","export","createHeadingExport","markdownHeader2","markdownHeader3","markdownHeader4","markdownHeader5","markdownHeader6","markdownBlockQuote","blockQuoteExport","markdownUnorderedListDash","listExport","markdownUnorderedListAsterisk","markdownOrderedList","markdownHorizontalRule","markdownHorizontalRuleUsingDashes","markdownInlineCode","exportFormat","exportTag","markdownBold","markdownItalic","markdownBold2","markdownItalic2","fakeMarkdownUnderline","exportTagClose","markdownStrikethrough","markdownStrikethroughItalicBold","markdownItalicbold","markdownStrikethroughItalic","markdownStrikethroughBold","markdownLink","allMarkdownCriteriaForTextNodes","allMarkdownCriteriaForParagraphs","getAllMarkdownCriteriaForParagraphs","getAllMarkdownCriteriaForTextNodes","level","node","exportChildren","getTag","repeat","processNestedLists","LIST_INDENT_SIZE","listNode","depth","output","children","getChildren","index","listItemNode","getChildrenSize","firstChild","getFirstChild","push","indent","prefix","getListType","getStart","join","indexBy","list","callback","item","key","transformersByType","transformers","byType","t","type","element","multilineElement","textFormat","textMatch","PUNCTUATION_OR_SPACE","MARKDOWN_EMPTY_LINE_REG_EXP","isEmptyParagraph","test","getTextContent"],"sources":["../../../../src/packages/@lexical/markdown/utils.ts"],"sourcesContent":["/* eslint-disable regexp/no-obscure-range */\n/* eslint-disable regexp/no-empty-group */\n/* eslint-disable regexp/no-empty-capturing-group */\n/* eslint-disable regexp/optimal-quantifier-concatenation */\n/* eslint-disable regexp/no-misleading-capturing-group */\n/* eslint-disable regexp/no-contradiction-with-assertion */\n/* eslint-disable regexp/no-super-linear-backtracking */\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport type { ListNode } from '@lexical/list'\n\nimport { $isListItemNode, $isListNode } from '@lexical/list'\nimport { $isHeadingNode, $isQuoteNode } from '@lexical/rich-text'\nimport {\n $isParagraphNode,\n $isTextNode,\n type ElementNode,\n type LexicalNode,\n type TextFormatType,\n} from 'lexical'\n\nimport type {\n ElementTransformer,\n MultilineElementTransformer,\n TextFormatTransformer,\n TextMatchTransformer,\n Transformer,\n} from './MarkdownTransformers.js'\n\ntype MarkdownFormatKind =\n | 'bold'\n | 'code'\n | 'horizontalRule'\n | 'italic'\n | 'italic_bold'\n | 'link'\n | 'noTransformation'\n | 'paragraphBlockQuote'\n | 'paragraphCodeBlock'\n | 'paragraphH1'\n | 'paragraphH2'\n | 'paragraphH3'\n | 'paragraphH4'\n | 'paragraphH5'\n | 'paragraphH6'\n | 'paragraphOrderedList'\n | 'paragraphUnorderedList'\n | 'strikethrough'\n | 'strikethrough_bold'\n | 'strikethrough_italic'\n | 'strikethrough_italic_bold'\n | 'underline'\n\ntype MarkdownCriteria = Readonly<{\n export?: (\n node: LexicalNode,\n traverseChildren: (elementNode: ElementNode) => string,\n ) => null | string\n exportFormat?: TextFormatType\n exportTag?: string\n exportTagClose?: string\n markdownFormatKind: MarkdownFormatKind | null | undefined\n regEx: RegExp\n regExForAutoFormatting: RegExp\n requiresParagraphStart: boolean | null | undefined\n}>\n\ntype MarkdownCriteriaArray = Array<MarkdownCriteria>\n\nconst autoFormatBase: MarkdownCriteria = {\n markdownFormatKind: null,\n regEx: /(?:)/,\n regExForAutoFormatting: /(?:)/,\n requiresParagraphStart: false,\n}\n\nconst paragraphStartBase: MarkdownCriteria = {\n ...autoFormatBase,\n requiresParagraphStart: true,\n}\n\nconst markdownHeader1: MarkdownCriteria = {\n ...paragraphStartBase,\n export: createHeadingExport(1),\n markdownFormatKind: 'paragraphH1',\n regEx: /^# /,\n regExForAutoFormatting: /^# /,\n}\n\nconst markdownHeader2: MarkdownCriteria = {\n ...paragraphStartBase,\n export: createHeadingExport(2),\n markdownFormatKind: 'paragraphH2',\n regEx: /^## /,\n regExForAutoFormatting: /^## /,\n}\n\nconst markdownHeader3: MarkdownCriteria = {\n ...paragraphStartBase,\n export: createHeadingExport(3),\n markdownFormatKind: 'paragraphH3',\n regEx: /^### /,\n regExForAutoFormatting: /^### /,\n}\n\nconst markdownHeader4: MarkdownCriteria = {\n ...paragraphStartBase,\n export: createHeadingExport(4),\n markdownFormatKind: 'paragraphH4',\n regEx: /^#### /,\n regExForAutoFormatting: /^#### /,\n}\n\nconst markdownHeader5: MarkdownCriteria = {\n ...paragraphStartBase,\n export: createHeadingExport(5),\n markdownFormatKind: 'paragraphH5',\n regEx: /^##### /,\n regExForAutoFormatting: /^##### /,\n}\n\nconst markdownHeader6: MarkdownCriteria = {\n ...paragraphStartBase,\n export: createHeadingExport(6),\n markdownFormatKind: 'paragraphH6',\n regEx: /^###### /,\n regExForAutoFormatting: /^###### /,\n}\n\nconst markdownBlockQuote: MarkdownCriteria = {\n ...paragraphStartBase,\n export: blockQuoteExport,\n markdownFormatKind: 'paragraphBlockQuote',\n regEx: /^> /,\n regExForAutoFormatting: /^> /,\n}\n\nconst markdownUnorderedListDash: MarkdownCriteria = {\n ...paragraphStartBase,\n export: listExport,\n markdownFormatKind: 'paragraphUnorderedList',\n regEx: /^(\\s{0,10})- /,\n regExForAutoFormatting: /^(\\s{0,10})- /,\n}\n\nconst markdownUnorderedListAsterisk: MarkdownCriteria = {\n ...paragraphStartBase,\n export: listExport,\n markdownFormatKind: 'paragraphUnorderedList',\n regEx: /^(\\s{0,10})\\* /,\n regExForAutoFormatting: /^(\\s{0,10})\\* /,\n}\n\nconst markdownOrderedList: MarkdownCriteria = {\n ...paragraphStartBase,\n export: listExport,\n markdownFormatKind: 'paragraphOrderedList',\n regEx: /^(\\s{0,10})(\\d+)\\.\\s/,\n regExForAutoFormatting: /^(\\s{0,10})(\\d+)\\.\\s/,\n}\n\nconst markdownHorizontalRule: MarkdownCriteria = {\n ...paragraphStartBase,\n markdownFormatKind: 'horizontalRule',\n regEx: /^\\*\\*\\*$/,\n regExForAutoFormatting: /^\\*\\*\\* /,\n}\n\nconst markdownHorizontalRuleUsingDashes: MarkdownCriteria = {\n ...paragraphStartBase,\n markdownFormatKind: 'horizontalRule',\n regEx: /^---$/,\n regExForAutoFormatting: /^--- /,\n}\n\nconst markdownInlineCode: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'code',\n exportTag: '`',\n markdownFormatKind: 'code',\n regEx: /(`)(\\s*)([^`]*)(\\s*)(`)()/,\n regExForAutoFormatting: /(`)(\\s*\\b)([^`]*)(\\b\\s*)(`)(\\s)$/,\n}\n\nconst markdownBold: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'bold',\n exportTag: '**',\n markdownFormatKind: 'bold',\n regEx: /(\\*\\*)(\\s*)([^*]*)(\\s*)(\\*\\*)()/,\n regExForAutoFormatting: /(\\*\\*)(\\s*\\b)([^*]*)(\\b\\s*)(\\*\\*)(\\s)$/,\n}\n\nconst markdownItalic: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'italic',\n exportTag: '*',\n markdownFormatKind: 'italic',\n regEx: /(\\*)(\\s*)([^*]*)(\\s*)(\\*)()/,\n regExForAutoFormatting: /(\\*)(\\s*\\b)([^*]*)(\\b\\s*)(\\*)(\\s)$/,\n}\n\nconst markdownBold2: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'bold',\n exportTag: '_',\n markdownFormatKind: 'bold',\n regEx: /(__)(\\s*)([^_]*)(\\s*)(__)()/,\n regExForAutoFormatting: /(__)(\\s*)([^_]*)(\\s*)(__)(\\s)$/,\n}\n\nconst markdownItalic2: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'italic',\n exportTag: '_',\n markdownFormatKind: 'italic',\n regEx: /(_)()([^_]*)()(_)()/,\n regExForAutoFormatting: /(_)()([^_]*)()(_)(\\s)$/, // Maintain 7 groups.\n}\n\nconst fakeMarkdownUnderline: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'underline',\n exportTag: '<u>',\n exportTagClose: '</u>',\n markdownFormatKind: 'underline',\n regEx: /(<u>)(\\s*)([^<]*)(\\s*)(<\\/u>)()/,\n regExForAutoFormatting: /(<u>)(\\s*\\b)([^<]*)(\\b\\s*)(<\\/u>)(\\s)$/,\n}\n\nconst markdownStrikethrough: MarkdownCriteria = {\n ...autoFormatBase,\n exportFormat: 'strikethrough',\n exportTag: '~~',\n markdownFormatKind: 'strikethrough',\n regEx: /(~~)(\\s*)([^~]*)(\\s*)(~~)()/,\n regExForAutoFormatting: /(~~)(\\s*\\b)([^~]*)(\\b\\s*)(~~)(\\s)$/,\n}\n\nconst markdownStrikethroughItalicBold: MarkdownCriteria = {\n ...autoFormatBase,\n markdownFormatKind: 'strikethrough_italic_bold',\n regEx: /(~~_\\*\\*)(\\s*\\b)([^*_~]+)(\\b\\s*)(\\*\\*_~~)()/,\n regExForAutoFormatting: /(~~_\\*\\*)(\\s*\\b)([^*_~]+)(\\b\\s*)(\\*\\*_~~)(\\s)$/,\n}\n\nconst markdownItalicbold: MarkdownCriteria = {\n ...autoFormatBase,\n markdownFormatKind: 'italic_bold',\n regEx: /(_\\*\\*)(\\s*\\b)([^*_]+)(\\b\\s*)(\\*\\*_)/,\n regExForAutoFormatting: /(_\\*\\*)(\\s*\\b)([^*_]+)(\\b\\s*)(\\*\\*_)(\\s)$/,\n}\n\nconst markdownStrikethroughItalic: MarkdownCriteria = {\n ...autoFormatBase,\n markdownFormatKind: 'strikethrough_italic',\n regEx: /(~~_)(\\s*)([^_~]+)(\\s*)(_~~)/,\n regExForAutoFormatting: /(~~_)(\\s*)([^_~]+)(\\s*)(_~~)(\\s)$/,\n}\n\nconst markdownStrikethroughBold: MarkdownCriteria = {\n ...autoFormatBase,\n markdownFormatKind: 'strikethrough_bold',\n regEx: /(~~\\*\\*)(\\s*\\b)([^*~]+)(\\b\\s*)(\\*\\*~~)/,\n regExForAutoFormatting: /(~~\\*\\*)(\\s*\\b)([^*~]+)(\\b\\s*)(\\*\\*~~)(\\s)$/,\n}\n\nconst markdownLink: MarkdownCriteria = {\n ...autoFormatBase,\n markdownFormatKind: 'link',\n regEx: /(\\[)([^\\]]*)(\\]\\()([^)]*)(\\)*)()/,\n regExForAutoFormatting: /(\\[)([^\\]]*)(\\]\\()([^)]*)(\\)*)(\\s)$/,\n}\n\nconst allMarkdownCriteriaForTextNodes: MarkdownCriteriaArray = [\n // Place the combination formats ahead of the individual formats.\n // Combos\n markdownStrikethroughItalicBold,\n markdownItalicbold,\n markdownStrikethroughItalic,\n markdownStrikethroughBold, // Individuals\n markdownInlineCode,\n markdownBold,\n markdownItalic, // Must appear after markdownBold\n markdownBold2,\n markdownItalic2, // Must appear after markdownBold2.\n fakeMarkdownUnderline,\n markdownStrikethrough,\n markdownLink,\n]\n\nconst allMarkdownCriteriaForParagraphs: MarkdownCriteriaArray = [\n markdownHeader1,\n markdownHeader2,\n markdownHeader3,\n markdownHeader4,\n markdownHeader5,\n markdownHeader6,\n markdownBlockQuote,\n markdownUnorderedListDash,\n markdownUnorderedListAsterisk,\n markdownOrderedList,\n markdownHorizontalRule,\n markdownHorizontalRuleUsingDashes,\n]\n\nexport function getAllMarkdownCriteriaForParagraphs(): MarkdownCriteriaArray {\n return allMarkdownCriteriaForParagraphs\n}\n\nexport function getAllMarkdownCriteriaForTextNodes(): MarkdownCriteriaArray {\n return allMarkdownCriteriaForTextNodes\n}\n\ntype Block = (\n node: LexicalNode,\n exportChildren: (elementNode: ElementNode) => string,\n) => null | string\n\nfunction createHeadingExport(level: number): Block {\n return (node, exportChildren) => {\n return $isHeadingNode(node) && node.getTag() === 'h' + level\n ? '#'.repeat(level) + ' ' + exportChildren(node)\n : null\n }\n}\n\nfunction listExport(node: LexicalNode, exportChildren: (_node: ElementNode) => string) {\n return $isListNode(node) ? processNestedLists(node, exportChildren, 0) : null\n}\n\n// TODO: should be param\nconst LIST_INDENT_SIZE = 4\n\nfunction processNestedLists(\n listNode: ListNode,\n exportChildren: (node: ElementNode) => string,\n depth: number,\n): string {\n const output: string[] = []\n const children = listNode.getChildren()\n let index = 0\n\n for (const listItemNode of children) {\n if ($isListItemNode(listItemNode)) {\n if (listItemNode.getChildrenSize() === 1) {\n const firstChild = listItemNode.getFirstChild()\n\n if ($isListNode(firstChild)) {\n output.push(processNestedLists(firstChild, exportChildren, depth + 1))\n continue\n }\n }\n\n const indent = ' '.repeat(depth * LIST_INDENT_SIZE)\n const prefix = listNode.getListType() === 'bullet' ? '- ' : `${listNode.getStart() + index}. `\n output.push(indent + prefix + exportChildren(listItemNode))\n index++\n }\n }\n\n return output.join('\\n')\n}\n\nfunction blockQuoteExport(node: LexicalNode, exportChildren: (_node: ElementNode) => string) {\n return $isQuoteNode(node) ? '> ' + exportChildren(node) : null\n}\n\nexport function indexBy<T>(\n list: Array<T>,\n callback: (arg0: T) => string | undefined,\n): Readonly<Record<string, Array<T>>> {\n const index: Record<string, Array<T>> = {}\n\n for (const item of list) {\n const key = callback(item)\n\n if (!key) {\n continue\n }\n\n if (index[key]) {\n index[key].push(item)\n } else {\n index[key] = [item]\n }\n }\n\n return index\n}\n\nexport function transformersByType(transformers: Array<Transformer>): Readonly<{\n element: Array<ElementTransformer>\n multilineElement: Array<MultilineElementTransformer>\n textFormat: Array<TextFormatTransformer>\n textMatch: Array<TextMatchTransformer>\n}> {\n const byType = indexBy(transformers, (t) => t.type)\n\n return {\n element: (byType.element || []) as Array<ElementTransformer>,\n multilineElement: (byType['multiline-element'] || []) as Array<MultilineElementTransformer>,\n textFormat: (byType['text-format'] || []) as Array<TextFormatTransformer>,\n textMatch: (byType['text-match'] || []) as Array<TextMatchTransformer>,\n }\n}\n\nexport const PUNCTUATION_OR_SPACE = /[!-/:-@[-`{-~\\s]/\n\nconst MARKDOWN_EMPTY_LINE_REG_EXP = /^\\s{0,3}$/\n\nexport function isEmptyParagraph(node: LexicalNode): boolean {\n if (!$isParagraphNode(node)) {\n return false\n }\n\n const firstChild = node.getFirstChild()\n return (\n firstChild == null ||\n (node.getChildrenSize() === 1 &&\n $isTextNode(firstChild) &&\n MARKDOWN_EMPTY_LINE_REG_EXP.test(firstChild.getTextContent()))\n )\n}\n"],"mappings":"AAAA,6CACA,2CACA,qDACA,6DACA,0DACA,4DACA,yDACA;;;;;;2XAUA,SAASA,eAAe,EAAEC,WAAW,QAAQ;AAC7C,SAASC,cAAc,EAAEC,YAAY,QAAQ;AAC7C,SACEC,gBAAgB,EAChBC,WAAW,QAIN;AAkDP,MAAMC,cAAA,GAAmC;EACvCC,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;EACxBC,sBAAA,EAAwB;AAC1B;AAEA,MAAMC,kBAAA,GAAuC;EAC3C,GAAGL,cAAc;EACjBI,sBAAA,EAAwB;AAC1B;AAEA,MAAME,eAAA,GAAoC;EACxC,GAAGD,kBAAkB;EACrBE,MAAA,EAAQC,mBAAA,CAAoB;EAC5BP,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMM,eAAA,GAAoC;EACxC,GAAGJ,kBAAkB;EACrBE,MAAA,EAAQC,mBAAA,CAAoB;EAC5BP,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMO,eAAA,GAAoC;EACxC,GAAGL,kBAAkB;EACrBE,MAAA,EAAQC,mBAAA,CAAoB;EAC5BP,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMQ,eAAA,GAAoC;EACxC,GAAGN,kBAAkB;EACrBE,MAAA,EAAQC,mBAAA,CAAoB;EAC5BP,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMS,eAAA,GAAoC;EACxC,GAAGP,kBAAkB;EACrBE,MAAA,EAAQC,mBAAA,CAAoB;EAC5BP,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMU,eAAA,GAAoC;EACxC,GAAGR,kBAAkB;EACrBE,MAAA,EAAQC,mBAAA,CAAoB;EAC5BP,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMW,kBAAA,GAAuC;EAC3C,GAAGT,kBAAkB;EACrBE,MAAA,EAAQQ,gBAAA;EACRd,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMa,yBAAA,GAA8C;EAClD,GAAGX,kBAAkB;EACrBE,MAAA,EAAQU,UAAA;EACRhB,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMe,6BAAA,GAAkD;EACtD,GAAGb,kBAAkB;EACrBE,MAAA,EAAQU,UAAA;EACRhB,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMgB,mBAAA,GAAwC;EAC5C,GAAGd,kBAAkB;EACrBE,MAAA,EAAQU,UAAA;EACRhB,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMiB,sBAAA,GAA2C;EAC/C,GAAGf,kBAAkB;EACrBJ,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMkB,iCAAA,GAAsD;EAC1D,GAAGhB,kBAAkB;EACrBJ,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMmB,kBAAA,GAAuC;EAC3C,GAAGtB,cAAc;EACjBuB,YAAA,EAAc;EACdC,SAAA,EAAW;EACXvB,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMsB,YAAA,GAAiC;EACrC,GAAGzB,cAAc;EACjBuB,YAAA,EAAc;EACdC,SAAA,EAAW;EACXvB,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMuB,cAAA,GAAmC;EACvC,GAAG1B,cAAc;EACjBuB,YAAA,EAAc;EACdC,SAAA,EAAW;EACXvB,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMwB,aAAA,GAAkC;EACtC,GAAG3B,cAAc;EACjBuB,YAAA,EAAc;EACdC,SAAA,EAAW;EACXvB,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMyB,eAAA,GAAoC;EACxC,GAAG5B,cAAc;EACjBuB,YAAA,EAAc;EACdC,SAAA,EAAW;EACXvB,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAM0B,qBAAA,GAA0C;EAC9C,GAAG7B,cAAc;EACjBuB,YAAA,EAAc;EACdC,SAAA,EAAW;EACXM,cAAA,EAAgB;EAChB7B,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAM4B,qBAAA,GAA0C;EAC9C,GAAG/B,cAAc;EACjBuB,YAAA,EAAc;EACdC,SAAA,EAAW;EACXvB,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAM6B,+BAAA,GAAoD;EACxD,GAAGhC,cAAc;EACjBC,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAM8B,kBAAA,GAAuC;EAC3C,GAAGjC,cAAc;EACjBC,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAM+B,2BAAA,GAAgD;EACpD,GAAGlC,cAAc;EACjBC,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMgC,yBAAA,GAA8C;EAClD,GAAGnC,cAAc;EACjBC,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMiC,YAAA,GAAiC;EACrC,GAAGpC,cAAc;EACjBC,kBAAA,EAAoB;EACpBC,KAAA,EAAO;EACPC,sBAAA,EAAwB;AAC1B;AAEA,MAAMkC,+BAAA,GAAyD;AAC7D;AACA;AACAL,+BAAA,EACAC,kBAAA,EACAC,2BAAA,EACAC,yBAAA,EACAb,kBAAA,EACAG,YAAA,EACAC,cAAA,EACAC,aAAA,EACAC,eAAA,EACAC,qBAAA,EACAE,qBAAA,EACAK,YAAA,CACD;AAED,MAAME,gCAAA,GAA0D,CAC9DhC,eAAA,EACAG,eAAA,EACAC,eAAA,EACAC,eAAA,EACAC,eAAA,EACAC,eAAA,EACAC,kBAAA,EACAE,yBAAA,EACAE,6BAAA,EACAC,mBAAA,EACAC,sBAAA,EACAC,iCAAA,CACD;AAED,OAAO,SAASkB,oCAAA;EACd,OAAOD,gCAAA;AACT;AAEA,OAAO,SAASE,mCAAA;EACd,OAAOH,+BAAA;AACT;AAOA,SAAS7B,oBAAoBiC,KAAa;EACxC,OAAO,CAACC,IAAA,EAAMC,cAAA;IACZ,OAAO/C,cAAA,CAAe8C,IAAA,KAASA,IAAA,CAAKE,MAAM,OAAO,MAAMH,KAAA,GACnD,IAAII,MAAM,CAACJ,KAAA,IAAS,MAAME,cAAA,CAAeD,IAAA,IACzC;EACN;AACF;AAEA,SAASzB,WAAWyB,IAAiB,EAAEC,cAA8C;EACnF,OAAOhD,WAAA,CAAY+C,IAAA,IAAQI,kBAAA,CAAmBJ,IAAA,EAAMC,cAAA,EAAgB,KAAK;AAC3E;AAEA;AACA,MAAMI,gBAAA,GAAmB;AAEzB,SAASD,mBACPE,QAAkB,EAClBL,cAA6C,EAC7CM,KAAa;EAEb,MAAMC,MAAA,GAAmB,EAAE;EAC3B,MAAMC,QAAA,GAAWH,QAAA,CAASI,WAAW;EACrC,IAAIC,KAAA,GAAQ;EAEZ,KAAK,MAAMC,YAAA,IAAgBH,QAAA,EAAU;IACnC,IAAIzD,eAAA,CAAgB4D,YAAA,GAAe;MACjC,IAAIA,YAAA,CAAaC,eAAe,OAAO,GAAG;QACxC,MAAMC,UAAA,GAAaF,YAAA,CAAaG,aAAa;QAE7C,IAAI9D,WAAA,CAAY6D,UAAA,GAAa;UAC3BN,MAAA,CAAOQ,IAAI,CAACZ,kBAAA,CAAmBU,UAAA,EAAYb,cAAA,EAAgBM,KAAA,GAAQ;UACnE;QACF;MACF;MAEA,MAAMU,MAAA,GAAS,IAAId,MAAM,CAACI,KAAA,GAAQF,gBAAA;MAClC,MAAMa,MAAA,GAASZ,QAAA,CAASa,WAAW,OAAO,WAAW,OAAO,GAAGb,QAAA,CAASc,QAAQ,KAAKT,KAAA,IAAS;MAC9FH,MAAA,CAAOQ,IAAI,CAACC,MAAA,GAASC,MAAA,GAASjB,cAAA,CAAeW,YAAA;MAC7CD,KAAA;IACF;EACF;EAEA,OAAOH,MAAA,CAAOa,IAAI,CAAC;AACrB;AAEA,SAAShD,iBAAiB2B,IAAiB,EAAEC,cAA8C;EACzF,OAAO9C,YAAA,CAAa6C,IAAA,IAAQ,OAAOC,cAAA,CAAeD,IAAA,IAAQ;AAC5D;AAEA,OAAO,SAASsB,QACdC,IAAc,EACdC,QAAyC;EAEzC,MAAMb,KAAA,GAAkC,CAAC;EAEzC,KAAK,MAAMc,IAAA,IAAQF,IAAA,EAAM;IACvB,MAAMG,GAAA,GAAMF,QAAA,CAASC,IAAA;IAErB,IAAI,CAACC,GAAA,EAAK;MACR;IACF;IAEA,IAAIf,KAAK,CAACe,GAAA,CAAI,EAAE;MACdf,KAAK,CAACe,GAAA,CAAI,CAACV,IAAI,CAACS,IAAA;IAClB,OAAO;MACLd,KAAK,CAACe,GAAA,CAAI,GAAG,CAACD,IAAA,CAAK;IACrB;EACF;EAEA,OAAOd,KAAA;AACT;AAEA,OAAO,SAASgB,mBAAmBC,YAAgC;EAMjE,MAAMC,MAAA,GAASP,OAAA,CAAQM,YAAA,EAAeE,CAAA,IAAMA,CAAA,CAAEC,IAAI;EAElD,OAAO;IACLC,OAAA,EAAUH,MAAA,CAAOG,OAAO,IAAI,EAAE;IAC9BC,gBAAA,EAAmBJ,MAAM,CAAC,oBAAoB,IAAI,EAAE;IACpDK,UAAA,EAAaL,MAAM,CAAC,cAAc,IAAI,EAAE;IACxCM,SAAA,EAAYN,MAAM,CAAC,aAAa,IAAI;EACtC;AACF;AAEA,OAAO,MAAMO,oBAAA,GAAuB;AAEpC,MAAMC,2BAAA,GAA8B;AAEpC,OAAO,SAASC,iBAAiBtC,IAAiB;EAChD,IAAI,CAAC5C,gBAAA,CAAiB4C,IAAA,GAAO;IAC3B,OAAO;EACT;EAEA,MAAMc,UAAA,GAAad,IAAA,CAAKe,aAAa;EACrC,OACED,UAAA,IAAc,QACbd,IAAA,CAAKa,eAAe,OAAO,KAC1BxD,WAAA,CAAYyD,UAAA,KACZuB,2BAAA,CAA4BE,IAAI,CAACzB,UAAA,CAAW0B,cAAc;AAEhE","ignoreList":[]}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -434,8 +434,8 @@ export type LexicalRichTextFieldProps = {
|
|
|
434
434
|
*/
|
|
435
435
|
featureClientImportMap?: Record<string, any>;
|
|
436
436
|
featureClientSchemaMap: FeatureClientSchemaMap;
|
|
437
|
-
initialLexicalFormState
|
|
438
|
-
lexicalEditorConfig
|
|
437
|
+
initialLexicalFormState?: InitialLexicalFormState;
|
|
438
|
+
lexicalEditorConfig?: LexicalEditorConfig;
|
|
439
439
|
views?: LexicalEditorViewMap;
|
|
440
440
|
} & Pick<ServerFieldBase, 'permissions'> & RichTextFieldClientProps<SerializedEditorState, AdapterProps, object>;
|
|
441
441
|
export type LexicalRichTextCellProps = DefaultServerCellComponentProps<RichTextFieldClient<SerializedEditorState, AdapterProps, object>, SerializedEditorState>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/types/index.ts"],"sourcesContent":["import type {\n DecoratorNode,\n EditorConfig,\n LexicalEditor,\n EditorConfig as LexicalEditorConfig,\n LexicalNode,\n SerializedEditorState,\n SerializedLexicalNode,\n} from 'lexical'\nimport type {\n ClientField,\n DefaultServerCellComponentProps,\n LabelFunction,\n PayloadComponent,\n RichTextAdapter,\n RichTextField,\n RichTextFieldClient,\n RichTextFieldClientProps,\n SanitizedConfig,\n ServerFieldBase,\n StaticLabel,\n} from 'payload'\n\nimport type { BlockComponentContextType } from '../features/blocks/client/component/BlockContent.js'\nexport type { BlockComponentContextType }\nimport type { BlockComponentProps } from '../features/blocks/client/component/index.js'\nimport type { InlineBlockComponentContextType } from '../features/blocks/client/componentInline/index.js'\nimport type {\n JSXConverterArgs,\n JSXConverters,\n SerializedLexicalNodeWithParent,\n} from '../features/converters/lexicalToJSX/converter/types.js'\nimport type {\n BaseClientFeatureProps,\n FeatureProviderProviderClient,\n} from '../features/typesClient.js'\nimport type { FeatureProviderServer } from '../features/typesServer.js'\nimport type { SanitizedServerEditorConfig } from '../lexical/config/types.js'\nimport type { InitialLexicalFormState } from '../utilities/buildInitialState.js'\nimport type {\n DefaultNodeTypes,\n SerializedBlockNode,\n SerializedInlineBlockNode,\n} from './nodeTypes.js'\n\n/**\n * Base constraint for serialized Lexical node types.\n * Used as the generic constraint for node map types.\n * Extends the base SerializedLexicalNode with optional type for flexibility.\n */\nexport type SerializedNodeBase = { type?: string }\n\nexport type LexicalFieldAdminProps = {\n /**\n * Controls if the add block button should be hidden. @default false\n */\n hideAddBlockButton?: boolean\n /**\n * Controls if the draggable block element should be hidden. @default false\n */\n hideDraggableBlockElement?: boolean\n /**\n * Controls if the gutter (padding to the left & gray vertical line) should be hidden. @default false\n */\n hideGutter?: boolean\n /**\n * Controls if the insert paragraph at the end button should be hidden. @default false\n */\n hideInsertParagraphAtEnd?: boolean\n /**\n * Changes the placeholder text in the editor if no content is present.\n */\n placeholder?: LabelFunction | StaticLabel\n}\n\nexport type LexicalFieldAdminClientProps = {\n placeholder?: string\n} & Omit<LexicalFieldAdminProps, 'placeholder'>\n\nexport type FeaturesInput =\n | (({\n defaultFeatures,\n rootFeatures,\n }: {\n /**\n * This opinionated array contains all \"recommended\" default features.\n *\n * @Example\n *\n * ```ts\n * editor: lexicalEditor({\n * features: ({ defaultFeatures }) => [...defaultFeatures, FixedToolbarFeature()],\n * })\n * ```\n */\n defaultFeatures: FeatureProviderServer<any, any, any>[]\n /**\n * This array contains all features that are enabled in the root richText editor (the one defined in the payload.config.ts).\n * If this field is the root richText editor, or if the root richText editor is not a lexical editor, this array will be empty.\n *\n * @Example\n *\n * ```ts\n * editor: lexicalEditor({\n * features: ({ rootFeatures }) => [...rootFeatures, FixedToolbarFeature()],\n * })\n * ```\n */\n rootFeatures: FeatureProviderServer<any, any, any>[]\n }) => FeatureProviderServer<any, any, any>[])\n | FeatureProviderServer<any, any, any>[]\n\ntype WithinEditorArgs = {\n config: EditorConfig\n editor: LexicalEditor\n node: LexicalNode\n}\n\n/**\n *\n * @experimental - This API is experimental and may change in a minor release.\n * @internal\n */\nexport type NodeMapValue<TNode extends SerializedNodeBase = SerializedLexicalNode> = {\n /**\n * Provide a react component to render the node.\n *\n * **JSX Converter:** Always works. Takes priority over `html`.\n *\n * **Lexical Editor:** Only works for DecoratorNodes (renders in `decorate` method). Takes priority over `html` and `createDOM`.\n */\n Component?: (\n args:\n | ({\n isEditor: false\n isJSXConverter: true\n } & JSXConverterArgs<TNode>)\n | ({\n isEditor: true\n isJSXConverter: false\n node: {\n _originalDecorate?: (editor: LexicalEditor, config: EditorConfig) => React.ReactNode\n } & DecoratorNode<React.ReactNode>\n } & Omit<WithinEditorArgs, 'node'>),\n ) => React.ReactNode\n /**\n * Provide a function to create the DOM element for the node.\n *\n * **JSX Converter:** Not used (only `Component` and `html` work).\n *\n * **Lexical Editor:** Always works (renders in `createDOM` method).\n * - For ElementNodes: This is the standard way to customize rendering.\n * - For DecoratorNodes: When combined with `html`, the DOM gets custom structure while `decorate` renders the `html` content.\n */\n createDOM?: (args: WithinEditorArgs) => HTMLElement\n /**\n * Provide HTML string or function to render the node.\n *\n * **JSX Converter:** Always works (ignored if `Component` is provided).\n *\n * **Lexical Editor behavior depends on node type:**\n *\n * - **ElementNodes:** `html` is used in `createDOM` to generate the DOM structure.\n *\n * - **DecoratorNodes (have both `createDOM` and `decorate`):**\n * - If only `html` is provided: `createDOM` uses `html` to create DOM, `decorate` returns `null`\n * - If `html` + `Component`: `createDOM` uses `html`, `decorate` uses `Component`\n * - If `html` + `createDOM`: Custom `createDOM` creates structure, `decorate` renders `html` content\n * - If `html` + `Component` + `createDOM`: Custom `createDOM` creates structure, `decorate` uses `Component` (html ignored in editor)\n */\n html?: (\n args:\n | ({\n isEditor: false\n isJSXConverter: true\n } & JSXConverterArgs<TNode>)\n | ({\n isEditor: true\n isJSXConverter: false\n } & WithinEditorArgs),\n ) => string\n}\n\ntype SharedViewMapBlockEditorProps<TNode extends SerializedBlockNode | SerializedInlineBlockNode> =\n {\n /**\n * True when rendering in the admin editor.\n */\n isEditor: true\n /**\n * False when rendering in the admin editor.\n */\n isJSXConverter: false\n } & Pick<BlockComponentProps<TNode['fields']>, 'className' | 'formData' | 'nodeKey'>\n\n/**\n * Props passed to a custom Block component in editor mode.\n * Use `isEditor` to discriminate between editor and JSX converter modes.\n *\n * @experimental - This API is experimental and may change in a minor release.\n */\nexport type ViewMapBlockEditorProps<TNode extends SerializedBlockNode> = {\n /**\n * Hook to access block UI components (BlockCollapsible, EditButton, etc.).\n * Call this inside your component to get the context values.\n * Passed as a prop so you don't need to import from @payloadcms/richtext-lexical/client.\n */\n useBlockComponentContext: () => BlockComponentContextType\n} & SharedViewMapBlockEditorProps<TNode>\n\n/**\n * Props passed to a custom Block component in editor mode.\n * Use `isEditor` to discriminate between editor and JSX converter modes.\n *\n * @experimental - This API is experimental and may change in a minor release.\n */\nexport type ViewMapInlineBlockEditorProps<TNode extends SerializedInlineBlockNode> = {\n useInlineBlockComponentContext: () => InlineBlockComponentContextType\n} & SharedViewMapBlockEditorProps<TNode>\n\n/**\n * Props passed to a custom Block component in JSX converter mode (frontend).\n * Use `isEditor` to discriminate between editor and JSX converter modes.\n *\n * @experimental - This API is experimental and may change in a minor release.\n */\nexport type ViewMapBlockJSXConverterProps<\n TNode extends SerializedBlockNode | SerializedInlineBlockNode =\n | SerializedBlockNode\n | SerializedInlineBlockNode,\n> = {\n /**\n * Index of this node among its siblings.\n */\n childIndex: number\n /**\n * Available JSX converters for nested content.\n */\n converters: JSXConverters\n /**\n * The block's form data (field values).\n */\n formData: TNode['fields']\n /**\n * False when rendering via JSX converter (frontend).\n */\n isEditor: false\n /**\n * True when rendering via JSX converter (frontend).\n */\n isJSXConverter: true\n /**\n * The serialized block node.\n */\n node: TNode\n /**\n * Function to convert child nodes to JSX.\n */\n nodesToJSX: (args: {\n converters?: JSXConverters\n disableIndent?: boolean | string[]\n disableTextAlign?: boolean | string[]\n nodes: SerializedLexicalNode[]\n parent?: SerializedLexicalNodeWithParent\n }) => React.ReactNode[]\n /**\n * The parent node in the tree.\n */\n parent: SerializedLexicalNodeWithParent\n}\n\n/**\n * Props passed to a custom Block component in a view map.\n * This is a discriminated union - use `isEditor` to narrow the type.\n *\n * When `isEditor` is true, you're in the admin editor with access to `blockContext`.\n * When `isEditor` is false, you're in the frontend JSX converter with `nodesToJSX`.\n *\n * @example\n * ```tsx\n * const MyBlock: React.FC<ViewMapBlockComponentProps> = (props) => {\n * if (props.isEditor) {\n * // Admin editor - blockContext available\n * const { BlockCollapsible, EditButton } = props.blockContext\n * return <BlockCollapsible>{props.formData.title}</BlockCollapsible>\n * }\n * // Frontend - readonly render\n * return <div>{props.formData.title}</div>\n * }\n * ```\n *\n * @experimental - This API is experimental and may change in a minor release.\n */\nexport type ViewMapBlockComponentProps<TNode extends SerializedBlockNode = SerializedBlockNode> =\n | ViewMapBlockEditorProps<TNode>\n | ViewMapBlockJSXConverterProps<TNode>\n\nexport type ViewMapInlineBlockComponentProps<\n TNode extends SerializedInlineBlockNode = SerializedInlineBlockNode,\n> = ViewMapBlockJSXConverterProps<TNode> | ViewMapInlineBlockEditorProps<TNode>\n\n/**\n *\n * @experimental - This API is experimental and may change in a minor release.\n * @internal\n */\nexport type NodeMapBlockValue<TNode extends SerializedBlockNode = SerializedBlockNode> = {\n /**\n * A React component that replaces the entire block, including the header/collapsible.\n * Works for both admin editor and frontend JSX conversion.\n *\n * Use `isEditor` to discriminate between modes:\n * - Editor mode: `blockContext` is available with UI components (BlockCollapsible, EditButton, etc.)\n * - JSX converter mode: `nodesToJSX` is available for rendering nested content\n *\n * @example\n * ```tsx\n * Block: (props) => {\n * if (props.isEditor) {\n * const { BlockCollapsible } = props.blockContext\n * return <BlockCollapsible>{props.formData.title}</BlockCollapsible>\n * }\n * return <div>{props.formData.title}</div>\n * }\n * ```\n */\n Block?: React.FC<ViewMapBlockComponentProps<TNode>>\n /**\n * A React component that replaces the block label.\n * Use `useBlockComponentContext()` hook to access block context.\n */\n Label?: React.FC<ViewMapBlockComponentProps<TNode>>\n} & Pick<NodeMapValue<TNode>, 'Component' | 'createDOM' | 'html'>\n\nexport type NodeMapInlineBlockValue<\n TNode extends SerializedInlineBlockNode = SerializedInlineBlockNode,\n> = {\n /**\n * A React component that replaces the entire block, including the header/collapsible.\n * Works for both admin editor and frontend JSX conversion.\n *\n * Use `isEditor` to discriminate between modes:\n * - Editor mode: `blockContext` is available with UI components (BlockCollapsible, EditButton, etc.)\n * - JSX converter mode: `nodesToJSX` is available for rendering nested content\n *\n * @example\n * ```tsx\n * InlineBlock: (props) => {\n * if (props.isEditor) {\n * const { BlockCollapsible } = props.blockContext\n * return <BlockCollapsible>{props.formData.title}</BlockCollapsible>\n * }\n * return <div>{props.formData.title}</div>\n * }\n * ```\n */\n Block?: React.FC<ViewMapInlineBlockComponentProps<TNode>>\n /**\n * A React component that replaces the block label.\n * Use `useBlockComponentContext()` hook to access block context.\n */\n Label?: React.FC<ViewMapInlineBlockComponentProps<TNode>>\n} & Pick<NodeMapValue<TNode>, 'Component' | 'createDOM' | 'html'>\n\n/**\n * @experimental - This API is experimental and may change in a minor release.\n * @internal\n */\nexport type LexicalEditorNodeMap<\n TNodes extends SerializedNodeBase =\n | DefaultNodeTypes\n | SerializedBlockNode<{ blockName?: null | string; blockType: string }> // need these to ensure types for blocks and inlineBlocks work if no generics are provided\n | SerializedInlineBlockNode<{ blockName?: null | string; blockType: string }>, // need these to ensure types for blocks and inlineBlocks work if no generics are provided\n> = {\n // The index signature must include NodeMapBlockValue in the nested blockSlug mapping because\n // 'blocks' and 'inlineBlocks' properties use NodeMapBlockValue (which adds Block/Label props).\n // TypeScript requires that intersection properties be assignable to index signatures.\n [key: string]:\n | {\n [blockSlug: string]: NodeMapBlockValue<any> | NodeMapInlineBlockValue<any>\n }\n | NodeMapValue<any>\n | undefined\n} & {\n [nodeType in Exclude<NonNullable<TNodes['type']>, 'block' | 'inlineBlock'>]?: NodeMapValue<\n Extract<TNodes, { type: nodeType }>\n >\n} & {\n blocks?: {\n [K in (Extract<TNodes, { type: 'block' }> &\n SerializedBlockNode)['fields']['blockType']]?: NodeMapBlockValue<\n Extract<\n Extract<TNodes, { type: 'block' }> & SerializedBlockNode,\n { fields: { blockType: K } }\n >\n >\n }\n inlineBlocks?: {\n [K in (Extract<TNodes, { type: 'inlineBlock' }> &\n SerializedInlineBlockNode)['fields']['blockType']]?: NodeMapInlineBlockValue<\n Extract<\n Extract<TNodes, { type: 'inlineBlock' }> & SerializedInlineBlockNode,\n { fields: { blockType: K } }\n >\n >\n }\n unknown?: NodeMapValue<SerializedLexicalNode>\n}\n\n/**\n * A map of views, which can be used to render the editor in different ways.\n *\n * In order to override the default view, you can add a `default` key to the map.\n *\n * @experimental - This API is experimental and may change in a minor release.\n * @internal\n */\nexport type ClientFeaturesMap = {\n [featureKey: string]: {\n clientFeatureProps?: BaseClientFeatureProps<Record<string, any>>\n clientFeatureProvider?: FeatureProviderProviderClient<any, any>\n }\n}\n\nexport type LexicalEditorViewMap<\n TNodes extends SerializedNodeBase =\n | DefaultNodeTypes\n | SerializedBlockNode<{ blockName?: null | string; blockType: string }> // need these to ensure types for blocks and inlineBlocks work if no generics are provided\n | SerializedInlineBlockNode<{ blockName?: null | string; blockType: string }>, // need these to ensure types for blocks and inlineBlocks work if no generics are provided\n> = {\n [viewKey: string]: {\n admin?: LexicalFieldAdminClientProps\n /**\n * Transform the client features for this view.\n * Receives the full clientFeatures map and should return a (potentially modified) map.\n * Can be used to remove features or add new ones per-view.\n *\n * @example Remove toolbars\n * ```ts\n * filterFeatures: (features) => {\n * const { toolbarFixed, toolbarInline, ...rest } = features\n * return rest\n * }\n * ```\n */\n filterFeatures?: (clientFeatures: ClientFeaturesMap) => ClientFeaturesMap\n /**\n * Lexical editor configuration. Can be an object or a function that receives the default config.\n * Using a function avoids needing to import defaultEditorLexicalConfig.\n *\n * @example\n * ```ts\n * lexical: (defaultConfig) => ({\n * ...defaultConfig,\n * theme: { ...defaultConfig.theme, paragraph: 'my-paragraph' },\n * })\n * ```\n */\n lexical?: ((defaultConfig: LexicalEditorConfig) => LexicalEditorConfig) | LexicalEditorConfig\n nodes: LexicalEditorNodeMap<TNodes>\n }\n}\n\n/**\n * @todo rename to LexicalEditorArgs in 4.0, since these are arguments for the lexicalEditor function\n */\nexport type LexicalEditorProps = {\n admin?: LexicalFieldAdminProps\n features?: FeaturesInput\n lexical?: LexicalEditorConfig\n /**\n * A path to a LexicalEditorViewMap, which can be used to render the editor in different ways.\n *\n * In order to override the default view, you can add a `default` key to the map.\n *\n * @experimental - This API is experimental and may change in a minor release.\n * @internal\n */\n views?: PayloadComponent\n}\n\nexport type LexicalRichTextAdapter = {\n editorConfig: SanitizedServerEditorConfig\n features: FeatureProviderServer<any, any, any>[]\n} & RichTextAdapter<SerializedEditorState, AdapterProps>\n\nexport type LexicalRichTextAdapterProvider =\n /**\n * This is being called during the payload sanitization process\n */\n ({\n config,\n isRoot,\n parentIsLocalized,\n }: {\n config: SanitizedConfig\n isRoot?: boolean\n parentIsLocalized: boolean\n }) => Promise<LexicalRichTextAdapter>\n\nexport type SingleFeatureClientSchemaMap = {\n [key: string]: ClientField[]\n}\nexport type FeatureClientSchemaMap = {\n [featureKey: string]: SingleFeatureClientSchemaMap\n}\n\nexport type LexicalRichTextFieldProps = {\n admin?: LexicalFieldAdminClientProps\n // clientFeatures is added through the rsc field\n clientFeatures: ClientFeaturesMap\n /**\n * Part of the import map that contains client components for all lexical features of this field that\n * have been added through `feature.componentImports`.\n */\n featureClientImportMap?: Record<string, any>\n featureClientSchemaMap: FeatureClientSchemaMap\n initialLexicalFormState: InitialLexicalFormState\n lexicalEditorConfig: LexicalEditorConfig | undefined // Undefined if default lexical editor config should be used\n views?: LexicalEditorViewMap\n} & Pick<ServerFieldBase, 'permissions'> &\n RichTextFieldClientProps<SerializedEditorState, AdapterProps, object>\n\nexport type LexicalRichTextCellProps = DefaultServerCellComponentProps<\n RichTextFieldClient<SerializedEditorState, AdapterProps, object>,\n SerializedEditorState\n>\n\nexport type AdapterProps = {\n editorConfig: SanitizedServerEditorConfig\n}\n\nexport type GeneratedFeatureProviderComponent = {\n clientFeature: FeatureProviderProviderClient<any, any>\n clientFeatureProps: BaseClientFeatureProps<object>\n}\n\nexport type LexicalRichTextField = RichTextField<SerializedEditorState, AdapterProps>\n"],"mappings":"AAyhBA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/types/index.ts"],"sourcesContent":["import type {\n DecoratorNode,\n EditorConfig,\n LexicalEditor,\n EditorConfig as LexicalEditorConfig,\n LexicalNode,\n SerializedEditorState,\n SerializedLexicalNode,\n} from 'lexical'\nimport type {\n ClientField,\n DefaultServerCellComponentProps,\n LabelFunction,\n PayloadComponent,\n RichTextAdapter,\n RichTextField,\n RichTextFieldClient,\n RichTextFieldClientProps,\n SanitizedConfig,\n ServerFieldBase,\n StaticLabel,\n} from 'payload'\n\nimport type { BlockComponentContextType } from '../features/blocks/client/component/BlockContent.js'\nexport type { BlockComponentContextType }\nimport type { BlockComponentProps } from '../features/blocks/client/component/index.js'\nimport type { InlineBlockComponentContextType } from '../features/blocks/client/componentInline/index.js'\nimport type {\n JSXConverterArgs,\n JSXConverters,\n SerializedLexicalNodeWithParent,\n} from '../features/converters/lexicalToJSX/converter/types.js'\nimport type {\n BaseClientFeatureProps,\n FeatureProviderProviderClient,\n} from '../features/typesClient.js'\nimport type { FeatureProviderServer } from '../features/typesServer.js'\nimport type { SanitizedServerEditorConfig } from '../lexical/config/types.js'\nimport type { InitialLexicalFormState } from '../utilities/buildInitialState.js'\nimport type {\n DefaultNodeTypes,\n SerializedBlockNode,\n SerializedInlineBlockNode,\n} from './nodeTypes.js'\n\n/**\n * Base constraint for serialized Lexical node types.\n * Used as the generic constraint for node map types.\n * Extends the base SerializedLexicalNode with optional type for flexibility.\n */\nexport type SerializedNodeBase = { type?: string }\n\nexport type LexicalFieldAdminProps = {\n /**\n * Controls if the add block button should be hidden. @default false\n */\n hideAddBlockButton?: boolean\n /**\n * Controls if the draggable block element should be hidden. @default false\n */\n hideDraggableBlockElement?: boolean\n /**\n * Controls if the gutter (padding to the left & gray vertical line) should be hidden. @default false\n */\n hideGutter?: boolean\n /**\n * Controls if the insert paragraph at the end button should be hidden. @default false\n */\n hideInsertParagraphAtEnd?: boolean\n /**\n * Changes the placeholder text in the editor if no content is present.\n */\n placeholder?: LabelFunction | StaticLabel\n}\n\nexport type LexicalFieldAdminClientProps = {\n placeholder?: string\n} & Omit<LexicalFieldAdminProps, 'placeholder'>\n\nexport type FeaturesInput =\n | (({\n defaultFeatures,\n rootFeatures,\n }: {\n /**\n * This opinionated array contains all \"recommended\" default features.\n *\n * @Example\n *\n * ```ts\n * editor: lexicalEditor({\n * features: ({ defaultFeatures }) => [...defaultFeatures, FixedToolbarFeature()],\n * })\n * ```\n */\n defaultFeatures: FeatureProviderServer<any, any, any>[]\n /**\n * This array contains all features that are enabled in the root richText editor (the one defined in the payload.config.ts).\n * If this field is the root richText editor, or if the root richText editor is not a lexical editor, this array will be empty.\n *\n * @Example\n *\n * ```ts\n * editor: lexicalEditor({\n * features: ({ rootFeatures }) => [...rootFeatures, FixedToolbarFeature()],\n * })\n * ```\n */\n rootFeatures: FeatureProviderServer<any, any, any>[]\n }) => FeatureProviderServer<any, any, any>[])\n | FeatureProviderServer<any, any, any>[]\n\ntype WithinEditorArgs = {\n config: EditorConfig\n editor: LexicalEditor\n node: LexicalNode\n}\n\n/**\n *\n * @experimental - This API is experimental and may change in a minor release.\n * @internal\n */\nexport type NodeMapValue<TNode extends SerializedNodeBase = SerializedLexicalNode> = {\n /**\n * Provide a react component to render the node.\n *\n * **JSX Converter:** Always works. Takes priority over `html`.\n *\n * **Lexical Editor:** Only works for DecoratorNodes (renders in `decorate` method). Takes priority over `html` and `createDOM`.\n */\n Component?: (\n args:\n | ({\n isEditor: false\n isJSXConverter: true\n } & JSXConverterArgs<TNode>)\n | ({\n isEditor: true\n isJSXConverter: false\n node: {\n _originalDecorate?: (editor: LexicalEditor, config: EditorConfig) => React.ReactNode\n } & DecoratorNode<React.ReactNode>\n } & Omit<WithinEditorArgs, 'node'>),\n ) => React.ReactNode\n /**\n * Provide a function to create the DOM element for the node.\n *\n * **JSX Converter:** Not used (only `Component` and `html` work).\n *\n * **Lexical Editor:** Always works (renders in `createDOM` method).\n * - For ElementNodes: This is the standard way to customize rendering.\n * - For DecoratorNodes: When combined with `html`, the DOM gets custom structure while `decorate` renders the `html` content.\n */\n createDOM?: (args: WithinEditorArgs) => HTMLElement\n /**\n * Provide HTML string or function to render the node.\n *\n * **JSX Converter:** Always works (ignored if `Component` is provided).\n *\n * **Lexical Editor behavior depends on node type:**\n *\n * - **ElementNodes:** `html` is used in `createDOM` to generate the DOM structure.\n *\n * - **DecoratorNodes (have both `createDOM` and `decorate`):**\n * - If only `html` is provided: `createDOM` uses `html` to create DOM, `decorate` returns `null`\n * - If `html` + `Component`: `createDOM` uses `html`, `decorate` uses `Component`\n * - If `html` + `createDOM`: Custom `createDOM` creates structure, `decorate` renders `html` content\n * - If `html` + `Component` + `createDOM`: Custom `createDOM` creates structure, `decorate` uses `Component` (html ignored in editor)\n */\n html?: (\n args:\n | ({\n isEditor: false\n isJSXConverter: true\n } & JSXConverterArgs<TNode>)\n | ({\n isEditor: true\n isJSXConverter: false\n } & WithinEditorArgs),\n ) => string\n}\n\ntype SharedViewMapBlockEditorProps<TNode extends SerializedBlockNode | SerializedInlineBlockNode> =\n {\n /**\n * True when rendering in the admin editor.\n */\n isEditor: true\n /**\n * False when rendering in the admin editor.\n */\n isJSXConverter: false\n } & Pick<BlockComponentProps<TNode['fields']>, 'className' | 'formData' | 'nodeKey'>\n\n/**\n * Props passed to a custom Block component in editor mode.\n * Use `isEditor` to discriminate between editor and JSX converter modes.\n *\n * @experimental - This API is experimental and may change in a minor release.\n */\nexport type ViewMapBlockEditorProps<TNode extends SerializedBlockNode> = {\n /**\n * Hook to access block UI components (BlockCollapsible, EditButton, etc.).\n * Call this inside your component to get the context values.\n * Passed as a prop so you don't need to import from @payloadcms/richtext-lexical/client.\n */\n useBlockComponentContext: () => BlockComponentContextType\n} & SharedViewMapBlockEditorProps<TNode>\n\n/**\n * Props passed to a custom Block component in editor mode.\n * Use `isEditor` to discriminate between editor and JSX converter modes.\n *\n * @experimental - This API is experimental and may change in a minor release.\n */\nexport type ViewMapInlineBlockEditorProps<TNode extends SerializedInlineBlockNode> = {\n useInlineBlockComponentContext: () => InlineBlockComponentContextType\n} & SharedViewMapBlockEditorProps<TNode>\n\n/**\n * Props passed to a custom Block component in JSX converter mode (frontend).\n * Use `isEditor` to discriminate between editor and JSX converter modes.\n *\n * @experimental - This API is experimental and may change in a minor release.\n */\nexport type ViewMapBlockJSXConverterProps<\n TNode extends SerializedBlockNode | SerializedInlineBlockNode =\n | SerializedBlockNode\n | SerializedInlineBlockNode,\n> = {\n /**\n * Index of this node among its siblings.\n */\n childIndex: number\n /**\n * Available JSX converters for nested content.\n */\n converters: JSXConverters\n /**\n * The block's form data (field values).\n */\n formData: TNode['fields']\n /**\n * False when rendering via JSX converter (frontend).\n */\n isEditor: false\n /**\n * True when rendering via JSX converter (frontend).\n */\n isJSXConverter: true\n /**\n * The serialized block node.\n */\n node: TNode\n /**\n * Function to convert child nodes to JSX.\n */\n nodesToJSX: (args: {\n converters?: JSXConverters\n disableIndent?: boolean | string[]\n disableTextAlign?: boolean | string[]\n nodes: SerializedLexicalNode[]\n parent?: SerializedLexicalNodeWithParent\n }) => React.ReactNode[]\n /**\n * The parent node in the tree.\n */\n parent: SerializedLexicalNodeWithParent\n}\n\n/**\n * Props passed to a custom Block component in a view map.\n * This is a discriminated union - use `isEditor` to narrow the type.\n *\n * When `isEditor` is true, you're in the admin editor with access to `blockContext`.\n * When `isEditor` is false, you're in the frontend JSX converter with `nodesToJSX`.\n *\n * @example\n * ```tsx\n * const MyBlock: React.FC<ViewMapBlockComponentProps> = (props) => {\n * if (props.isEditor) {\n * // Admin editor - blockContext available\n * const { BlockCollapsible, EditButton } = props.blockContext\n * return <BlockCollapsible>{props.formData.title}</BlockCollapsible>\n * }\n * // Frontend - readonly render\n * return <div>{props.formData.title}</div>\n * }\n * ```\n *\n * @experimental - This API is experimental and may change in a minor release.\n */\nexport type ViewMapBlockComponentProps<TNode extends SerializedBlockNode = SerializedBlockNode> =\n | ViewMapBlockEditorProps<TNode>\n | ViewMapBlockJSXConverterProps<TNode>\n\nexport type ViewMapInlineBlockComponentProps<\n TNode extends SerializedInlineBlockNode = SerializedInlineBlockNode,\n> = ViewMapBlockJSXConverterProps<TNode> | ViewMapInlineBlockEditorProps<TNode>\n\n/**\n *\n * @experimental - This API is experimental and may change in a minor release.\n * @internal\n */\nexport type NodeMapBlockValue<TNode extends SerializedBlockNode = SerializedBlockNode> = {\n /**\n * A React component that replaces the entire block, including the header/collapsible.\n * Works for both admin editor and frontend JSX conversion.\n *\n * Use `isEditor` to discriminate between modes:\n * - Editor mode: `blockContext` is available with UI components (BlockCollapsible, EditButton, etc.)\n * - JSX converter mode: `nodesToJSX` is available for rendering nested content\n *\n * @example\n * ```tsx\n * Block: (props) => {\n * if (props.isEditor) {\n * const { BlockCollapsible } = props.blockContext\n * return <BlockCollapsible>{props.formData.title}</BlockCollapsible>\n * }\n * return <div>{props.formData.title}</div>\n * }\n * ```\n */\n Block?: React.FC<ViewMapBlockComponentProps<TNode>>\n /**\n * A React component that replaces the block label.\n * Use `useBlockComponentContext()` hook to access block context.\n */\n Label?: React.FC<ViewMapBlockComponentProps<TNode>>\n} & Pick<NodeMapValue<TNode>, 'Component' | 'createDOM' | 'html'>\n\nexport type NodeMapInlineBlockValue<\n TNode extends SerializedInlineBlockNode = SerializedInlineBlockNode,\n> = {\n /**\n * A React component that replaces the entire block, including the header/collapsible.\n * Works for both admin editor and frontend JSX conversion.\n *\n * Use `isEditor` to discriminate between modes:\n * - Editor mode: `blockContext` is available with UI components (BlockCollapsible, EditButton, etc.)\n * - JSX converter mode: `nodesToJSX` is available for rendering nested content\n *\n * @example\n * ```tsx\n * InlineBlock: (props) => {\n * if (props.isEditor) {\n * const { BlockCollapsible } = props.blockContext\n * return <BlockCollapsible>{props.formData.title}</BlockCollapsible>\n * }\n * return <div>{props.formData.title}</div>\n * }\n * ```\n */\n Block?: React.FC<ViewMapInlineBlockComponentProps<TNode>>\n /**\n * A React component that replaces the block label.\n * Use `useBlockComponentContext()` hook to access block context.\n */\n Label?: React.FC<ViewMapInlineBlockComponentProps<TNode>>\n} & Pick<NodeMapValue<TNode>, 'Component' | 'createDOM' | 'html'>\n\n/**\n * @experimental - This API is experimental and may change in a minor release.\n * @internal\n */\nexport type LexicalEditorNodeMap<\n TNodes extends SerializedNodeBase =\n | DefaultNodeTypes\n | SerializedBlockNode<{ blockName?: null | string; blockType: string }> // need these to ensure types for blocks and inlineBlocks work if no generics are provided\n | SerializedInlineBlockNode<{ blockName?: null | string; blockType: string }>, // need these to ensure types for blocks and inlineBlocks work if no generics are provided\n> = {\n // The index signature must include NodeMapBlockValue in the nested blockSlug mapping because\n // 'blocks' and 'inlineBlocks' properties use NodeMapBlockValue (which adds Block/Label props).\n // TypeScript requires that intersection properties be assignable to index signatures.\n [key: string]:\n | {\n [blockSlug: string]: NodeMapBlockValue<any> | NodeMapInlineBlockValue<any>\n }\n | NodeMapValue<any>\n | undefined\n} & {\n [nodeType in Exclude<NonNullable<TNodes['type']>, 'block' | 'inlineBlock'>]?: NodeMapValue<\n Extract<TNodes, { type: nodeType }>\n >\n} & {\n blocks?: {\n [K in (Extract<TNodes, { type: 'block' }> &\n SerializedBlockNode)['fields']['blockType']]?: NodeMapBlockValue<\n Extract<\n Extract<TNodes, { type: 'block' }> & SerializedBlockNode,\n { fields: { blockType: K } }\n >\n >\n }\n inlineBlocks?: {\n [K in (Extract<TNodes, { type: 'inlineBlock' }> &\n SerializedInlineBlockNode)['fields']['blockType']]?: NodeMapInlineBlockValue<\n Extract<\n Extract<TNodes, { type: 'inlineBlock' }> & SerializedInlineBlockNode,\n { fields: { blockType: K } }\n >\n >\n }\n unknown?: NodeMapValue<SerializedLexicalNode>\n}\n\n/**\n * A map of views, which can be used to render the editor in different ways.\n *\n * In order to override the default view, you can add a `default` key to the map.\n *\n * @experimental - This API is experimental and may change in a minor release.\n * @internal\n */\nexport type ClientFeaturesMap = {\n [featureKey: string]: {\n clientFeatureProps?: BaseClientFeatureProps<Record<string, any>>\n clientFeatureProvider?: FeatureProviderProviderClient<any, any>\n }\n}\n\nexport type LexicalEditorViewMap<\n TNodes extends SerializedNodeBase =\n | DefaultNodeTypes\n | SerializedBlockNode<{ blockName?: null | string; blockType: string }> // need these to ensure types for blocks and inlineBlocks work if no generics are provided\n | SerializedInlineBlockNode<{ blockName?: null | string; blockType: string }>, // need these to ensure types for blocks and inlineBlocks work if no generics are provided\n> = {\n [viewKey: string]: {\n admin?: LexicalFieldAdminClientProps\n /**\n * Transform the client features for this view.\n * Receives the full clientFeatures map and should return a (potentially modified) map.\n * Can be used to remove features or add new ones per-view.\n *\n * @example Remove toolbars\n * ```ts\n * filterFeatures: (features) => {\n * const { toolbarFixed, toolbarInline, ...rest } = features\n * return rest\n * }\n * ```\n */\n filterFeatures?: (clientFeatures: ClientFeaturesMap) => ClientFeaturesMap\n /**\n * Lexical editor configuration. Can be an object or a function that receives the default config.\n * Using a function avoids needing to import defaultEditorLexicalConfig.\n *\n * @example\n * ```ts\n * lexical: (defaultConfig) => ({\n * ...defaultConfig,\n * theme: { ...defaultConfig.theme, paragraph: 'my-paragraph' },\n * })\n * ```\n */\n lexical?: ((defaultConfig: LexicalEditorConfig) => LexicalEditorConfig) | LexicalEditorConfig\n nodes: LexicalEditorNodeMap<TNodes>\n }\n}\n\n/**\n * @todo rename to LexicalEditorArgs in 4.0, since these are arguments for the lexicalEditor function\n */\nexport type LexicalEditorProps = {\n admin?: LexicalFieldAdminProps\n features?: FeaturesInput\n lexical?: LexicalEditorConfig\n /**\n * A path to a LexicalEditorViewMap, which can be used to render the editor in different ways.\n *\n * In order to override the default view, you can add a `default` key to the map.\n *\n * @experimental - This API is experimental and may change in a minor release.\n * @internal\n */\n views?: PayloadComponent\n}\n\nexport type LexicalRichTextAdapter = {\n editorConfig: SanitizedServerEditorConfig\n features: FeatureProviderServer<any, any, any>[]\n} & RichTextAdapter<SerializedEditorState, AdapterProps>\n\nexport type LexicalRichTextAdapterProvider =\n /**\n * This is being called during the payload sanitization process\n */\n ({\n config,\n isRoot,\n parentIsLocalized,\n }: {\n config: SanitizedConfig\n isRoot?: boolean\n parentIsLocalized: boolean\n }) => Promise<LexicalRichTextAdapter>\n\nexport type SingleFeatureClientSchemaMap = {\n [key: string]: ClientField[]\n}\nexport type FeatureClientSchemaMap = {\n [featureKey: string]: SingleFeatureClientSchemaMap\n}\n\nexport type LexicalRichTextFieldProps = {\n admin?: LexicalFieldAdminClientProps\n // clientFeatures is added through the rsc field\n clientFeatures: ClientFeaturesMap\n /**\n * Part of the import map that contains client components for all lexical features of this field that\n * have been added through `feature.componentImports`.\n */\n featureClientImportMap?: Record<string, any>\n featureClientSchemaMap: FeatureClientSchemaMap\n initialLexicalFormState?: InitialLexicalFormState\n lexicalEditorConfig?: LexicalEditorConfig // Undefined if default lexical editor config should be used\n views?: LexicalEditorViewMap\n} & Pick<ServerFieldBase, 'permissions'> &\n RichTextFieldClientProps<SerializedEditorState, AdapterProps, object>\n\nexport type LexicalRichTextCellProps = DefaultServerCellComponentProps<\n RichTextFieldClient<SerializedEditorState, AdapterProps, object>,\n SerializedEditorState\n>\n\nexport type AdapterProps = {\n editorConfig: SanitizedServerEditorConfig\n}\n\nexport type GeneratedFeatureProviderComponent = {\n clientFeature: FeatureProviderProviderClient<any, any>\n clientFeatureProps: BaseClientFeatureProps<object>\n}\n\nexport type LexicalRichTextField = RichTextField<SerializedEditorState, AdapterProps>\n"],"mappings":"AAyhBA","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SerializedLexicalNode } from 'lexical';
|
|
2
|
-
import type { ClientFieldSchemaMap, DocumentPreferences, FieldSchemaMap, FormState, Operation, PayloadRequest, RichTextField, SanitizedFieldPermissions } from 'payload';
|
|
2
|
+
import type { ClientFieldSchemaMap, ComponentRenderer, DocumentPreferences, FieldSchemaMap, FormState, Operation, PayloadRequest, RichTextField, SanitizedFieldPermissions } from 'payload';
|
|
3
3
|
export type InitialLexicalFormState = {
|
|
4
4
|
[nodeID: string]: {
|
|
5
5
|
[key: string]: any;
|
|
@@ -19,6 +19,7 @@ type Props = {
|
|
|
19
19
|
operation: Operation;
|
|
20
20
|
permissions?: SanitizedFieldPermissions;
|
|
21
21
|
preferences: DocumentPreferences;
|
|
22
|
+
renderComponent: ComponentRenderer;
|
|
22
23
|
renderFieldFn: any;
|
|
23
24
|
req: PayloadRequest;
|
|
24
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildInitialState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildInitialState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,SAAS,EACT,cAAc,EACd,aAAa,EACb,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAMhB,MAAM,MAAM,uBAAuB,GAAG;IACpC,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;QAClB,SAAS,CAAC,EAAE,SAAS,CAAA;KACtB,CAAA;CACF,CAAA;AAED,KAAK,KAAK,GAAG;IACX,OAAO,EAAE;QACP,oBAAoB,EAAE,oBAAoB,CAAA;QAC1C,cAAc,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,YAAY,CAAC,EAAE,GAAG,CAAA;QAClB,KAAK,EAAE,aAAa,CAAA;QACpB,cAAc,EAAE,cAAc,CAAA;QAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QACpB,sBAAsB,EAAE,MAAM,CAAA;QAC9B,SAAS,EAAE,SAAS,CAAA;QACpB,WAAW,CAAC,EAAE,yBAAyB,CAAA;QACvC,WAAW,EAAE,mBAAmB,CAAA;QAChC,aAAa,EAAE,GAAG,CAAA;QAClB,GAAG,EAAE,cAAc,CAAA;KACpB,CAAA;IACD,YAAY,CAAC,EAAE,uBAAuB,CAAA;IACtC,QAAQ,EAAE,qBAAqB,EAAE,CAAA;CAClC,CAAA;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,YAAY,EAAE,oBAAoB,EAClC,QAAQ,GACT,EAAE,KAAK,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA4D1C"}
|
|
1
|
+
{"version":3,"file":"buildInitialState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildInitialState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,SAAS,EACT,cAAc,EACd,aAAa,EACb,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAMhB,MAAM,MAAM,uBAAuB,GAAG;IACpC,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;QAClB,SAAS,CAAC,EAAE,SAAS,CAAA;KACtB,CAAA;CACF,CAAA;AAED,KAAK,KAAK,GAAG;IACX,OAAO,EAAE;QACP,oBAAoB,EAAE,oBAAoB,CAAA;QAC1C,cAAc,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,YAAY,CAAC,EAAE,GAAG,CAAA;QAClB,KAAK,EAAE,aAAa,CAAA;QACpB,cAAc,EAAE,cAAc,CAAA;QAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QACpB,sBAAsB,EAAE,MAAM,CAAA;QAC9B,SAAS,EAAE,SAAS,CAAA;QACpB,WAAW,CAAC,EAAE,yBAAyB,CAAA;QACvC,WAAW,EAAE,mBAAmB,CAAA;QAChC,eAAe,EAAE,iBAAiB,CAAA;QAClC,aAAa,EAAE,GAAG,CAAA;QAClB,GAAG,EAAE,cAAc,CAAA;KACpB,CAAA;IACD,YAAY,CAAC,EAAE,uBAAuB,CAAA;IACtC,QAAQ,EAAE,qBAAqB,EAAE,CAAA;CAClC,CAAA;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,YAAY,EAAE,oBAAoB,EAClC,QAAQ,GACT,EAAE,KAAK,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA4D1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildInitialState.js","names":["fieldSchemasToFormState","buildInitialState","context","initialState","initialStateFromArgs","nodeData","node","children","type","blockNode","id","fields","schemaFieldsPath","lexicalFieldSchemaPath","blockType","formStateResult","clientFieldSchemaMap","collectionSlug","data","documentData","fieldSchemaMap","get","initialBlockData","operation","permissions","preferences","readOnly","disabled","renderAllFields","renderFieldFn","req","schemaPath","formState","currentFieldPreferences","field","name","collapsedArray","collapsed","Array","isArray","includes"],"sources":["../../src/utilities/buildInitialState.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\nimport type {\n ClientFieldSchemaMap,\n DocumentPreferences,\n FieldSchemaMap,\n FormState,\n Operation,\n PayloadRequest,\n RichTextField,\n SanitizedFieldPermissions,\n} from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { SerializedBlockNode } from '../types/nodeTypes.js'\n\nexport type InitialLexicalFormState = {\n [nodeID: string]: {\n [key: string]: any\n formState?: FormState\n }\n}\n\ntype Props = {\n context: {\n clientFieldSchemaMap: ClientFieldSchemaMap\n collectionSlug: string\n disabled?: boolean\n documentData?: any\n field: RichTextField\n fieldSchemaMap: FieldSchemaMap\n id?: number | string\n lexicalFieldSchemaPath: string\n operation: Operation\n permissions?: SanitizedFieldPermissions\n preferences: DocumentPreferences\n renderFieldFn: any\n req: PayloadRequest\n }\n initialState?: InitialLexicalFormState\n nodeData: SerializedLexicalNode[]\n}\n\nexport async function buildInitialState({\n context,\n initialState: initialStateFromArgs,\n nodeData,\n}: Props): Promise<InitialLexicalFormState> {\n let initialState: InitialLexicalFormState = initialStateFromArgs ?? {}\n for (const node of nodeData) {\n if ('children' in node) {\n initialState = await buildInitialState({\n context,\n initialState,\n nodeData: node.children as SerializedLexicalNode[],\n })\n }\n\n if (node.type === 'block' || node.type === 'inlineBlock') {\n const blockNode = node as SerializedBlockNode\n const id = blockNode?.fields?.id\n if (!id) {\n continue\n }\n\n const schemaFieldsPath =\n node.type === 'block'\n ? `${context.lexicalFieldSchemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockNode.fields.blockType}.fields`\n : `${context.lexicalFieldSchemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${blockNode.fields.blockType}.fields`\n\n // Build form state for the block\n\n const formStateResult = await fieldSchemasToFormState({\n id: context.id,\n clientFieldSchemaMap: context.clientFieldSchemaMap,\n collectionSlug: context.collectionSlug,\n data: blockNode.fields,\n documentData: context.documentData,\n fields: (context.fieldSchemaMap.get(schemaFieldsPath) as any)?.fields,\n fieldSchemaMap: context.fieldSchemaMap,\n initialBlockData: blockNode.fields,\n operation: context.operation as any, // TODO: Type\n permissions: true,\n preferences: context.preferences,\n readOnly: context.disabled,\n renderAllFields: true, // If this function runs, the parent lexical field is being re-rendered => thus we can assume all its sub-fields need to be re-rendered\n renderFieldFn: context.renderFieldFn,\n req: context.req,\n schemaPath: schemaFieldsPath,\n })\n\n if (!initialState[id]) {\n initialState[id] = {}\n }\n\n initialState[id].formState = formStateResult\n\n if (node.type === 'block') {\n const currentFieldPreferences = context.preferences?.fields?.[context.field.name]\n const collapsedArray = currentFieldPreferences?.collapsed\n if (Array.isArray(collapsedArray) && collapsedArray.includes(id)) {\n initialState[id].collapsed = true\n }\n }\n }\n }\n return initialState\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildInitialState.js","names":["fieldSchemasToFormState","buildInitialState","context","initialState","initialStateFromArgs","nodeData","node","children","type","blockNode","id","fields","schemaFieldsPath","lexicalFieldSchemaPath","blockType","formStateResult","clientFieldSchemaMap","collectionSlug","data","documentData","fieldSchemaMap","get","initialBlockData","operation","permissions","preferences","readOnly","disabled","renderAllFields","renderFieldFn","req","schemaPath","formState","currentFieldPreferences","field","name","collapsedArray","collapsed","Array","isArray","includes"],"sources":["../../src/utilities/buildInitialState.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\nimport type {\n ClientFieldSchemaMap,\n ComponentRenderer,\n DocumentPreferences,\n FieldSchemaMap,\n FormState,\n Operation,\n PayloadRequest,\n RichTextField,\n SanitizedFieldPermissions,\n} from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { SerializedBlockNode } from '../types/nodeTypes.js'\n\nexport type InitialLexicalFormState = {\n [nodeID: string]: {\n [key: string]: any\n formState?: FormState\n }\n}\n\ntype Props = {\n context: {\n clientFieldSchemaMap: ClientFieldSchemaMap\n collectionSlug: string\n disabled?: boolean\n documentData?: any\n field: RichTextField\n fieldSchemaMap: FieldSchemaMap\n id?: number | string\n lexicalFieldSchemaPath: string\n operation: Operation\n permissions?: SanitizedFieldPermissions\n preferences: DocumentPreferences\n renderComponent: ComponentRenderer\n renderFieldFn: any\n req: PayloadRequest\n }\n initialState?: InitialLexicalFormState\n nodeData: SerializedLexicalNode[]\n}\n\nexport async function buildInitialState({\n context,\n initialState: initialStateFromArgs,\n nodeData,\n}: Props): Promise<InitialLexicalFormState> {\n let initialState: InitialLexicalFormState = initialStateFromArgs ?? {}\n for (const node of nodeData) {\n if ('children' in node) {\n initialState = await buildInitialState({\n context,\n initialState,\n nodeData: node.children as SerializedLexicalNode[],\n })\n }\n\n if (node.type === 'block' || node.type === 'inlineBlock') {\n const blockNode = node as SerializedBlockNode\n const id = blockNode?.fields?.id\n if (!id) {\n continue\n }\n\n const schemaFieldsPath =\n node.type === 'block'\n ? `${context.lexicalFieldSchemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockNode.fields.blockType}.fields`\n : `${context.lexicalFieldSchemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${blockNode.fields.blockType}.fields`\n\n // Build form state for the block\n\n const formStateResult = await fieldSchemasToFormState({\n id: context.id,\n clientFieldSchemaMap: context.clientFieldSchemaMap,\n collectionSlug: context.collectionSlug,\n data: blockNode.fields,\n documentData: context.documentData,\n fields: (context.fieldSchemaMap.get(schemaFieldsPath) as any)?.fields,\n fieldSchemaMap: context.fieldSchemaMap,\n initialBlockData: blockNode.fields,\n operation: context.operation as any, // TODO: Type\n permissions: true,\n preferences: context.preferences,\n readOnly: context.disabled,\n renderAllFields: true, // If this function runs, the parent lexical field is being re-rendered => thus we can assume all its sub-fields need to be re-rendered\n renderFieldFn: context.renderFieldFn,\n req: context.req,\n schemaPath: schemaFieldsPath,\n })\n\n if (!initialState[id]) {\n initialState[id] = {}\n }\n\n initialState[id].formState = formStateResult\n\n if (node.type === 'block') {\n const currentFieldPreferences = context.preferences?.fields?.[context.field.name]\n const collapsedArray = currentFieldPreferences?.collapsed\n if (Array.isArray(collapsedArray) && collapsedArray.includes(id)) {\n initialState[id].collapsed = true\n }\n }\n }\n }\n return initialState\n}\n"],"mappings":"AAaA,SAASA,uBAAuB,QAAQ;AAgCxC,OAAO,eAAeC,kBAAkB;EACtCC,OAAO;EACPC,YAAA,EAAcC,oBAAoB;EAClCC;AAAQ,CACF;EACN,IAAIF,YAAA,GAAwCC,oBAAA,IAAwB,CAAC;EACrE,KAAK,MAAME,IAAA,IAAQD,QAAA,EAAU;IAC3B,IAAI,cAAcC,IAAA,EAAM;MACtBH,YAAA,GAAe,MAAMF,iBAAA,CAAkB;QACrCC,OAAA;QACAC,YAAA;QACAE,QAAA,EAAUC,IAAA,CAAKC;MACjB;IACF;IAEA,IAAID,IAAA,CAAKE,IAAI,KAAK,WAAWF,IAAA,CAAKE,IAAI,KAAK,eAAe;MACxD,MAAMC,SAAA,GAAYH,IAAA;MAClB,MAAMI,EAAA,GAAKD,SAAA,EAAWE,MAAA,EAAQD,EAAA;MAC9B,IAAI,CAACA,EAAA,EAAI;QACP;MACF;MAEA,MAAME,gBAAA,GACJN,IAAA,CAAKE,IAAI,KAAK,UACV,GAAGN,OAAA,CAAQW,sBAAsB,mDAAmDJ,SAAA,CAAUE,MAAM,CAACG,SAAS,SAAS,GACvH,GAAGZ,OAAA,CAAQW,sBAAsB,0DAA0DJ,SAAA,CAAUE,MAAM,CAACG,SAAS,SAAS;MAEpI;MAEA,MAAMC,eAAA,GAAkB,MAAMf,uBAAA,CAAwB;QACpDU,EAAA,EAAIR,OAAA,CAAQQ,EAAE;QACdM,oBAAA,EAAsBd,OAAA,CAAQc,oBAAoB;QAClDC,cAAA,EAAgBf,OAAA,CAAQe,cAAc;QACtCC,IAAA,EAAMT,SAAA,CAAUE,MAAM;QACtBQ,YAAA,EAAcjB,OAAA,CAAQiB,YAAY;QAClCR,MAAA,EAAST,OAAA,CAAQkB,cAAc,CAACC,GAAG,CAACT,gBAAA,GAA2BD,MAAA;QAC/DS,cAAA,EAAgBlB,OAAA,CAAQkB,cAAc;QACtCE,gBAAA,EAAkBb,SAAA,CAAUE,MAAM;QAClCY,SAAA,EAAWrB,OAAA,CAAQqB,SAAS;QAC5BC,WAAA,EAAa;QACbC,WAAA,EAAavB,OAAA,CAAQuB,WAAW;QAChCC,QAAA,EAAUxB,OAAA,CAAQyB,QAAQ;QAC1BC,eAAA,EAAiB;QACjBC,aAAA,EAAe3B,OAAA,CAAQ2B,aAAa;QACpCC,GAAA,EAAK5B,OAAA,CAAQ4B,GAAG;QAChBC,UAAA,EAAYnB;MACd;MAEA,IAAI,CAACT,YAAY,CAACO,EAAA,CAAG,EAAE;QACrBP,YAAY,CAACO,EAAA,CAAG,GAAG,CAAC;MACtB;MAEAP,YAAY,CAACO,EAAA,CAAG,CAACsB,SAAS,GAAGjB,eAAA;MAE7B,IAAIT,IAAA,CAAKE,IAAI,KAAK,SAAS;QACzB,MAAMyB,uBAAA,GAA0B/B,OAAA,CAAQuB,WAAW,EAAEd,MAAA,GAAST,OAAA,CAAQgC,KAAK,CAACC,IAAI,CAAC;QACjF,MAAMC,cAAA,GAAiBH,uBAAA,EAAyBI,SAAA;QAChD,IAAIC,KAAA,CAAMC,OAAO,CAACH,cAAA,KAAmBA,cAAA,CAAeI,QAAQ,CAAC9B,EAAA,GAAK;UAChEP,YAAY,CAACO,EAAA,CAAG,CAAC2B,SAAS,GAAG;QAC/B;MACF;IACF;EACF;EACA,OAAOlC,YAAA;AACT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateImportMap.d.ts","sourceRoot":"","sources":["../../src/utilities/generateImportMap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"generateImportMap.d.ts","sourceRoot":"","sources":["../../src/utilities/generateImportMap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,eAAO,MAAM,oBAAoB,GAC9B,MAAM;IACL,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;IACtC,kBAAkB,EAAE,wBAAwB,CAAA;CAC7C,KAAG,eAAe,CAAC,mBAAmB,CAoDtC,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { genImportMapIterateFields } from 'payload';
|
|
2
|
+
import { isRSCEnabled } from 'payload/shared';
|
|
2
3
|
export const getGenerateImportMap = args => ({
|
|
3
4
|
addToImportMap,
|
|
4
5
|
baseDir,
|
|
@@ -6,9 +7,12 @@ export const getGenerateImportMap = args => ({
|
|
|
6
7
|
importMap,
|
|
7
8
|
imports
|
|
8
9
|
}) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
if (isRSCEnabled()) {
|
|
11
|
+
addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalCell');
|
|
12
|
+
addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalField');
|
|
13
|
+
addToImportMap('@payloadcms/richtext-lexical/rsc#LexicalDiffComponent');
|
|
14
|
+
}
|
|
15
|
+
addToImportMap('@payloadcms/richtext-lexical/client#ClientEntryLexicalField');
|
|
12
16
|
addToImportMap(args.lexicalEditorArgs?.views);
|
|
13
17
|
for (const resolvedFeature of args.resolvedFeatureMap.values()) {
|
|
14
18
|
if ('componentImports' in resolvedFeature) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateImportMap.js","names":["genImportMapIterateFields","getGenerateImportMap","args","addToImportMap","baseDir","config","importMap","imports","lexicalEditorArgs","views","resolvedFeature","resolvedFeatureMap","values","componentImports","Array","isArray","Object","ClientFeature","nodes","length","node","getSubFields","subFields","fields"],"sources":["../../src/utilities/generateImportMap.tsx"],"sourcesContent":["import type { RichTextAdapter } from 'payload'\n\nimport { genImportMapIterateFields } from 'payload'\n\nimport type { ResolvedServerFeatureMap } from '../features/typesServer.js'\nimport type { LexicalEditorProps } from '../types/index.js'\n\nexport const getGenerateImportMap =\n (args: {\n lexicalEditorArgs?: LexicalEditorProps\n resolvedFeatureMap: ResolvedServerFeatureMap\n }): RichTextAdapter['generateImportMap'] =>\n ({ addToImportMap, baseDir, config, importMap, imports }) => {\n addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalCell')\n
|
|
1
|
+
{"version":3,"file":"generateImportMap.js","names":["genImportMapIterateFields","isRSCEnabled","getGenerateImportMap","args","addToImportMap","baseDir","config","importMap","imports","lexicalEditorArgs","views","resolvedFeature","resolvedFeatureMap","values","componentImports","Array","isArray","Object","ClientFeature","nodes","length","node","getSubFields","subFields","fields"],"sources":["../../src/utilities/generateImportMap.tsx"],"sourcesContent":["import type { RichTextAdapter } from 'payload'\n\nimport { genImportMapIterateFields } from 'payload'\nimport { isRSCEnabled } from 'payload/shared'\n\nimport type { ResolvedServerFeatureMap } from '../features/typesServer.js'\nimport type { LexicalEditorProps } from '../types/index.js'\n\nexport const getGenerateImportMap =\n (args: {\n lexicalEditorArgs?: LexicalEditorProps\n resolvedFeatureMap: ResolvedServerFeatureMap\n }): RichTextAdapter['generateImportMap'] =>\n ({ addToImportMap, baseDir, config, importMap, imports }) => {\n if (isRSCEnabled()) {\n addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalCell')\n addToImportMap('@payloadcms/richtext-lexical/rsc#RscEntryLexicalField')\n addToImportMap('@payloadcms/richtext-lexical/rsc#LexicalDiffComponent')\n }\n addToImportMap('@payloadcms/richtext-lexical/client#ClientEntryLexicalField')\n\n addToImportMap(args.lexicalEditorArgs?.views)\n\n for (const resolvedFeature of args.resolvedFeatureMap.values()) {\n if ('componentImports' in resolvedFeature) {\n if (typeof resolvedFeature.componentImports === 'function') {\n resolvedFeature.componentImports({\n addToImportMap,\n baseDir,\n config,\n importMap,\n imports,\n })\n } else if (Array.isArray(resolvedFeature.componentImports)) {\n addToImportMap(resolvedFeature.componentImports)\n } else if (typeof resolvedFeature.componentImports === 'object') {\n addToImportMap(Object.values(resolvedFeature.componentImports))\n }\n }\n\n addToImportMap(resolvedFeature.ClientFeature)\n\n /*\n * Now run for all possible sub-fields\n */\n if (resolvedFeature.nodes?.length) {\n for (const node of resolvedFeature.nodes) {\n if (typeof node?.getSubFields !== 'function') {\n continue\n }\n const subFields = node.getSubFields({})\n if (subFields?.length) {\n genImportMapIterateFields({\n addToImportMap,\n baseDir,\n config,\n fields: subFields,\n importMap,\n imports,\n })\n }\n }\n }\n }\n }\n"],"mappings":"AAEA,SAASA,yBAAyB,QAAQ;AAC1C,SAASC,YAAY,QAAQ;AAK7B,OAAO,MAAMC,oBAAA,GACVC,IAAA,IAID,CAAC;EAAEC,cAAc;EAAEC,OAAO;EAAEC,MAAM;EAAEC,SAAS;EAAEC;AAAO,CAAE;EACtD,IAAIP,YAAA,IAAgB;IAClBG,cAAA,CAAe;IACfA,cAAA,CAAe;IACfA,cAAA,CAAe;EACjB;EACAA,cAAA,CAAe;EAEfA,cAAA,CAAeD,IAAA,CAAKM,iBAAiB,EAAEC,KAAA;EAEvC,KAAK,MAAMC,eAAA,IAAmBR,IAAA,CAAKS,kBAAkB,CAACC,MAAM,IAAI;IAC9D,IAAI,sBAAsBF,eAAA,EAAiB;MACzC,IAAI,OAAOA,eAAA,CAAgBG,gBAAgB,KAAK,YAAY;QAC1DH,eAAA,CAAgBG,gBAAgB,CAAC;UAC/BV,cAAA;UACAC,OAAA;UACAC,MAAA;UACAC,SAAA;UACAC;QACF;MACF,OAAO,IAAIO,KAAA,CAAMC,OAAO,CAACL,eAAA,CAAgBG,gBAAgB,GAAG;QAC1DV,cAAA,CAAeO,eAAA,CAAgBG,gBAAgB;MACjD,OAAO,IAAI,OAAOH,eAAA,CAAgBG,gBAAgB,KAAK,UAAU;QAC/DV,cAAA,CAAea,MAAA,CAAOJ,MAAM,CAACF,eAAA,CAAgBG,gBAAgB;MAC/D;IACF;IAEAV,cAAA,CAAeO,eAAA,CAAgBO,aAAa;IAE5C;;;IAGA,IAAIP,eAAA,CAAgBQ,KAAK,EAAEC,MAAA,EAAQ;MACjC,KAAK,MAAMC,IAAA,IAAQV,eAAA,CAAgBQ,KAAK,EAAE;QACxC,IAAI,OAAOE,IAAA,EAAMC,YAAA,KAAiB,YAAY;UAC5C;QACF;QACA,MAAMC,SAAA,GAAYF,IAAA,CAAKC,YAAY,CAAC,CAAC;QACrC,IAAIC,SAAA,EAAWH,MAAA,EAAQ;UACrBpB,yBAAA,CAA0B;YACxBI,cAAA;YACAC,OAAA;YACAC,MAAA;YACAkB,MAAA,EAAQD,SAAA;YACRhB,SAAA;YACAC;UACF;QACF;MACF;IACF;EACF;AACF","ignoreList":[]}
|