@payloadcms/richtext-lexical 3.34.0-canary.4 → 3.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ export * from './client/index.js';
2
+ export * from './server/rsc.js';
3
+ //# sourceMappingURL=cssEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssEntry.d.ts","sourceRoot":"","sources":["../../src/exports/cssEntry.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,5 @@
1
+ // The purpose of this file is to export all modules that may contain SCSS.
2
+ // These will then be bundled into one CSS file by our bundler.
3
+ export * from './client/index.js';
4
+ export * from './server/rsc.js';
5
+ //# sourceMappingURL=cssEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssEntry.js","names":[],"sources":["../../src/exports/cssEntry.ts"],"sourcesContent":["// The purpose of this file is to export all modules that may contain SCSS.\n// These will then be bundled into one CSS file by our bundler.\n\nexport * from './client/index.js'\nexport * from './server/rsc.js'\n"],"mappings":"AAAA;AACA;AAEA,cAAc;AACd,cAAc","ignoreList":[]}
@@ -40,9 +40,9 @@ const RelationshipDrawerComponent = t0 => {
40
40
  } = t0;
41
41
  const [editor] = useLexicalComposerContext();
42
42
  let t1;
43
- if ($[0] !== enabledCollectionSlugs) {
43
+ if ($[0] !== enabledCollectionSlugs?.[0]) {
44
44
  t1 = () => enabledCollectionSlugs?.[0];
45
- $[0] = enabledCollectionSlugs;
45
+ $[0] = enabledCollectionSlugs?.[0];
46
46
  $[1] = t1;
47
47
  } else {
48
48
  t1 = $[1];
@@ -100,99 +100,197 @@ const ToolbarItem = t0 => {
100
100
  }
101
101
  return t2;
102
102
  };
103
- export const ToolbarDropdown = ({
104
- anchorElem,
105
- classNames,
106
- editor,
107
- group,
108
- Icon,
109
- itemsContainerClassNames,
110
- label,
111
- maxActiveItems,
112
- onActiveChange
113
- }) => {
114
- const [activeItemKeys, setActiveItemKeys] = React.useState([]);
115
- const [enabledItemKeys, setEnabledItemKeys] = React.useState([]);
103
+ export const ToolbarDropdown = t0 => {
104
+ const $ = _c(36);
105
+ const {
106
+ anchorElem,
107
+ classNames,
108
+ editor,
109
+ group,
110
+ Icon,
111
+ itemsContainerClassNames,
112
+ label,
113
+ maxActiveItems,
114
+ onActiveChange
115
+ } = t0;
116
+ let t1;
117
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
118
+ t1 = [];
119
+ $[0] = t1;
120
+ } else {
121
+ t1 = $[0];
122
+ }
123
+ const [activeItemKeys, setActiveItemKeys] = React.useState(t1);
124
+ let t2;
125
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
126
+ t2 = [];
127
+ $[1] = t2;
128
+ } else {
129
+ t2 = $[1];
130
+ }
131
+ const [enabledItemKeys, setEnabledItemKeys] = React.useState(t2);
116
132
  const [enabledGroup, setEnabledGroup] = React.useState(true);
117
133
  const editorConfigContext = useEditorConfigContext();
118
134
  const {
119
135
  items,
120
136
  key: groupKey
121
137
  } = group;
122
- const updateStates = useCallback(() => {
123
- editor.getEditorState().read(() => {
124
- const selection = $getSelection();
125
- if (!selection) {
126
- return;
127
- }
128
- const _activeItemKeys = [];
129
- const _activeItems = [];
130
- const _enabledItemKeys = [];
131
- for (const item of items) {
132
- if (item.isActive && (!maxActiveItems || _activeItemKeys.length < maxActiveItems)) {
133
- const isActive = item.isActive({
134
- editor,
135
- editorConfigContext,
136
- selection
137
- });
138
- if (isActive) {
139
- _activeItemKeys.push(item.key);
140
- _activeItems.push(item);
138
+ let t3;
139
+ if ($[2] !== editor || $[3] !== editorConfigContext || $[4] !== group || $[5] !== items || $[6] !== maxActiveItems || $[7] !== onActiveChange) {
140
+ t3 = () => {
141
+ editor.getEditorState().read(() => {
142
+ const selection = $getSelection();
143
+ if (!selection) {
144
+ return;
145
+ }
146
+ const _activeItemKeys = [];
147
+ const _activeItems = [];
148
+ const _enabledItemKeys = [];
149
+ for (const item of items) {
150
+ if (item.isActive && (!maxActiveItems || _activeItemKeys.length < maxActiveItems)) {
151
+ const isActive = item.isActive({
152
+ editor,
153
+ editorConfigContext,
154
+ selection
155
+ });
156
+ if (isActive) {
157
+ _activeItemKeys.push(item.key);
158
+ _activeItems.push(item);
159
+ }
160
+ }
161
+ if (item.isEnabled) {
162
+ const isEnabled = item.isEnabled({
163
+ editor,
164
+ editorConfigContext,
165
+ selection
166
+ });
167
+ if (isEnabled) {
168
+ _enabledItemKeys.push(item.key);
169
+ }
170
+ } else {
171
+ _enabledItemKeys.push(item.key);
141
172
  }
142
173
  }
143
- if (item.isEnabled) {
144
- const isEnabled = item.isEnabled({
174
+ if (group.isEnabled) {
175
+ setEnabledGroup(group.isEnabled({
145
176
  editor,
146
177
  editorConfigContext,
147
178
  selection
179
+ }));
180
+ }
181
+ setActiveItemKeys(_activeItemKeys);
182
+ setEnabledItemKeys(_enabledItemKeys);
183
+ if (onActiveChange) {
184
+ onActiveChange({
185
+ activeItems: _activeItems
148
186
  });
149
- if (isEnabled) {
150
- _enabledItemKeys.push(item.key);
151
- }
152
- } else {
153
- _enabledItemKeys.push(item.key);
154
187
  }
155
- }
156
- if (group.isEnabled) {
157
- setEnabledGroup(group.isEnabled({
158
- editor,
159
- editorConfigContext,
160
- selection
161
- }));
162
- }
163
- setActiveItemKeys(_activeItemKeys);
164
- setEnabledItemKeys(_enabledItemKeys);
165
- if (onActiveChange) {
166
- onActiveChange({
167
- activeItems: _activeItems
168
- });
169
- }
170
- });
171
- }, [editor, editorConfigContext, group, items, maxActiveItems, onActiveChange]);
172
- useEffect(() => {
173
- updateStates();
174
- }, [updateStates]);
175
- useEffect(() => {
176
- return mergeRegister(editor.registerUpdateListener(() => {
188
+ });
189
+ };
190
+ $[2] = editor;
191
+ $[3] = editorConfigContext;
192
+ $[4] = group;
193
+ $[5] = items;
194
+ $[6] = maxActiveItems;
195
+ $[7] = onActiveChange;
196
+ $[8] = t3;
197
+ } else {
198
+ t3 = $[8];
199
+ }
200
+ const updateStates = t3;
201
+ let t4;
202
+ let t5;
203
+ if ($[9] !== updateStates) {
204
+ t4 = () => {
205
+ updateStates();
206
+ };
207
+ t5 = [updateStates];
208
+ $[9] = updateStates;
209
+ $[10] = t4;
210
+ $[11] = t5;
211
+ } else {
212
+ t4 = $[10];
213
+ t5 = $[11];
214
+ }
215
+ useEffect(t4, t5);
216
+ let t6;
217
+ let t7;
218
+ if ($[12] !== editor || $[13] !== updateStates) {
219
+ t6 = () => mergeRegister(editor.registerUpdateListener(() => {
177
220
  updateStates();
178
221
  }));
179
- }, [editor, updateStates]);
180
- return /*#__PURE__*/_jsx(DropDown, {
181
- buttonAriaLabel: `${groupKey} dropdown`,
182
- buttonClassName: [baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])].filter(Boolean).join(' '),
183
- disabled: !enabledGroup,
184
- Icon: Icon,
185
- itemsContainerClassNames: [`${baseClass}-items`, ...(itemsContainerClassNames || [])],
186
- label: label,
187
- children: items.length ? items.map(item_0 => {
188
- return /*#__PURE__*/_jsx(ToolbarItem, {
222
+ t7 = [editor, updateStates];
223
+ $[12] = editor;
224
+ $[13] = updateStates;
225
+ $[14] = t6;
226
+ $[15] = t7;
227
+ } else {
228
+ t6 = $[14];
229
+ t7 = $[15];
230
+ }
231
+ useEffect(t6, t7);
232
+ const t8 = `${groupKey} dropdown`;
233
+ const t9 = `${baseClass}-${groupKey}`;
234
+ let t10;
235
+ if ($[16] !== classNames) {
236
+ t10 = classNames || [];
237
+ $[16] = classNames;
238
+ $[17] = t10;
239
+ } else {
240
+ t10 = $[17];
241
+ }
242
+ let t11;
243
+ if ($[18] !== t10 || $[19] !== t9) {
244
+ t11 = [baseClass, t9, ...t10].filter(Boolean);
245
+ $[18] = t10;
246
+ $[19] = t9;
247
+ $[20] = t11;
248
+ } else {
249
+ t11 = $[20];
250
+ }
251
+ const t12 = t11.join(" ");
252
+ const t13 = !enabledGroup;
253
+ let t14;
254
+ if ($[21] !== itemsContainerClassNames) {
255
+ t14 = itemsContainerClassNames || [];
256
+ $[21] = itemsContainerClassNames;
257
+ $[22] = t14;
258
+ } else {
259
+ t14 = $[22];
260
+ }
261
+ let t15;
262
+ if ($[23] !== Icon || $[24] !== activeItemKeys || $[25] !== anchorElem || $[26] !== editor || $[27] !== enabledItemKeys || $[28] !== groupKey || $[29] !== items || $[30] !== label || $[31] !== t12 || $[32] !== t13 || $[33] !== t14 || $[34] !== t8) {
263
+ t15 = _jsx(DropDown, {
264
+ buttonAriaLabel: t8,
265
+ buttonClassName: t12,
266
+ disabled: t13,
267
+ Icon,
268
+ itemsContainerClassNames: [`${baseClass}-items`, ...t14],
269
+ label,
270
+ children: items.length ? items.map(item_0 => _jsx(ToolbarItem, {
189
271
  active: activeItemKeys.includes(item_0.key),
190
- anchorElem: anchorElem,
191
- editor: editor,
272
+ anchorElem,
273
+ editor,
192
274
  enabled: enabledItemKeys.includes(item_0.key),
193
275
  item: item_0
194
- }, item_0.key);
195
- }) : null
196
- }, groupKey);
276
+ }, item_0.key)) : null
277
+ }, groupKey);
278
+ $[23] = Icon;
279
+ $[24] = activeItemKeys;
280
+ $[25] = anchorElem;
281
+ $[26] = editor;
282
+ $[27] = enabledItemKeys;
283
+ $[28] = groupKey;
284
+ $[29] = items;
285
+ $[30] = label;
286
+ $[31] = t12;
287
+ $[32] = t13;
288
+ $[33] = t14;
289
+ $[34] = t8;
290
+ $[35] = t15;
291
+ } else {
292
+ t15 = $[35];
293
+ }
294
+ return t15;
197
295
  };
198
296
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useEffect","baseClass","mergeRegister","useTranslation","$getSelection","useEditorConfigContext","DropDown","DropDownItem","ToolbarItem","t0","$","active","anchorElem","editor","enabled","item","i18n","fieldProps","t1","featureClientSchemaMap","schemaPath","Component","t2","_jsx","key","title","croppedTitle","label","length","substring","Icon","ChildComponent","undefined","tooltip","children","className","ToolbarDropdown","classNames","group","itemsContainerClassNames","maxActiveItems","onActiveChange","activeItemKeys","setActiveItemKeys","useState","enabledItemKeys","setEnabledItemKeys","enabledGroup","setEnabledGroup","editorConfigContext","items","groupKey","updateStates","getEditorState","read","selection","_activeItemKeys","_activeItems","_enabledItemKeys","isActive","push","isEnabled","activeItems","registerUpdateListener","buttonAriaLabel","buttonClassName","filter","Boolean","join","disabled","map","includes"],"sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect } from 'react'\n\nconst baseClass = 'toolbar-popup__dropdown'\n\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { useTranslation } from '@payloadcms/ui'\nimport { $getSelection } from 'lexical'\n\nimport type { ToolbarDropdownGroup, ToolbarGroupItem } from '../../types.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { DropDown, DropDownItem } from './DropDown.js'\nimport './index.scss'\n\nconst ToolbarItem = ({\n active,\n anchorElem,\n editor,\n enabled,\n item,\n}: {\n active?: boolean\n anchorElem: HTMLElement\n editor: LexicalEditor\n enabled?: boolean\n item: ToolbarGroupItem\n}) => {\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component\n active={active}\n anchorElem={anchorElem}\n editor={editor}\n enabled={enabled}\n item={item}\n key={item.key}\n />\n )\n )\n }\n\n let title = item.key\n let croppedTitle = item.key\n if (item.label) {\n title =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n // Crop title to max. 25 characters\n if (title.length > 25) {\n croppedTitle = title.substring(0, 25) + '...'\n } else {\n croppedTitle = title\n }\n\n return (\n <DropDownItem\n active={active}\n editor={editor}\n enabled={enabled}\n Icon={item?.ChildComponent ? <item.ChildComponent /> : undefined}\n item={item}\n key={item.key}\n tooltip={title}\n >\n <span className=\"text\">{croppedTitle}</span>\n </DropDownItem>\n )\n}\n\nexport const ToolbarDropdown = ({\n anchorElem,\n classNames,\n editor,\n group,\n Icon,\n itemsContainerClassNames,\n label,\n maxActiveItems,\n onActiveChange,\n}: {\n anchorElem: HTMLElement\n classNames?: string[]\n editor: LexicalEditor\n group: ToolbarDropdownGroup\n Icon?: React.FC\n itemsContainerClassNames?: string[]\n label?: string\n /**\n * Maximum number of active items allowed. This is a performance optimization to prevent\n * unnecessary item active checks when the maximum number of active items is reached.\n */\n maxActiveItems?: number\n onActiveChange?: ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => void\n}) => {\n const [activeItemKeys, setActiveItemKeys] = React.useState<string[]>([])\n const [enabledItemKeys, setEnabledItemKeys] = React.useState<string[]>([])\n const [enabledGroup, setEnabledGroup] = React.useState<boolean>(true)\n const editorConfigContext = useEditorConfigContext()\n const { items, key: groupKey } = group\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!selection) {\n return\n }\n\n const _activeItemKeys: string[] = []\n const _activeItems: ToolbarGroupItem[] = []\n const _enabledItemKeys: string[] = []\n\n for (const item of items) {\n if (item.isActive && (!maxActiveItems || _activeItemKeys.length < maxActiveItems)) {\n const isActive = item.isActive({ editor, editorConfigContext, selection })\n if (isActive) {\n _activeItemKeys.push(item.key)\n _activeItems.push(item)\n }\n }\n if (item.isEnabled) {\n const isEnabled = item.isEnabled({ editor, editorConfigContext, selection })\n if (isEnabled) {\n _enabledItemKeys.push(item.key)\n }\n } else {\n _enabledItemKeys.push(item.key)\n }\n }\n if (group.isEnabled) {\n setEnabledGroup(group.isEnabled({ editor, editorConfigContext, selection }))\n }\n setActiveItemKeys(_activeItemKeys)\n setEnabledItemKeys(_enabledItemKeys)\n\n if (onActiveChange) {\n onActiveChange({ activeItems: _activeItems })\n }\n })\n }, [editor, editorConfigContext, group, items, maxActiveItems, onActiveChange])\n\n useEffect(() => {\n updateStates()\n }, [updateStates])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n updateStates()\n }),\n )\n }, [editor, updateStates])\n\n return (\n <DropDown\n buttonAriaLabel={`${groupKey} dropdown`}\n buttonClassName={[baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])]\n .filter(Boolean)\n .join(' ')}\n disabled={!enabledGroup}\n Icon={Icon}\n itemsContainerClassNames={[`${baseClass}-items`, ...(itemsContainerClassNames || [])]}\n key={groupKey}\n label={label}\n >\n {items.length\n ? items.map((item) => {\n return (\n <ToolbarItem\n active={activeItemKeys.includes(item.key)}\n anchorElem={anchorElem}\n editor={editor}\n enabled={enabledItemKeys.includes(item.key)}\n item={item}\n key={item.key}\n />\n )\n })\n : null}\n </DropDown>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useEffect","baseClass","mergeRegister","useTranslation","$getSelection","useEditorConfigContext","DropDown","DropDownItem","ToolbarItem","t0","$","active","anchorElem","editor","enabled","item","i18n","fieldProps","t1","featureClientSchemaMap","schemaPath","Component","t2","_jsx","key","title","croppedTitle","label","length","substring","Icon","ChildComponent","undefined","tooltip","children","className","ToolbarDropdown","classNames","group","itemsContainerClassNames","maxActiveItems","onActiveChange","Symbol","for","activeItemKeys","setActiveItemKeys","useState","enabledItemKeys","setEnabledItemKeys","enabledGroup","setEnabledGroup","editorConfigContext","items","groupKey","t3","getEditorState","read","selection","_activeItemKeys","_activeItems","_enabledItemKeys","isActive","push","isEnabled","activeItems","updateStates","t4","t5","t6","t7","registerUpdateListener","t8","t9","t10","t11","filter","Boolean","t12","join","t13","t14","t15","buttonAriaLabel","buttonClassName","disabled","map","item_0","includes"],"sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect } from 'react'\n\nconst baseClass = 'toolbar-popup__dropdown'\n\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { useTranslation } from '@payloadcms/ui'\nimport { $getSelection } from 'lexical'\n\nimport type { ToolbarDropdownGroup, ToolbarGroupItem } from '../../types.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { DropDown, DropDownItem } from './DropDown.js'\nimport './index.scss'\n\nconst ToolbarItem = ({\n active,\n anchorElem,\n editor,\n enabled,\n item,\n}: {\n active?: boolean\n anchorElem: HTMLElement\n editor: LexicalEditor\n enabled?: boolean\n item: ToolbarGroupItem\n}) => {\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component\n active={active}\n anchorElem={anchorElem}\n editor={editor}\n enabled={enabled}\n item={item}\n key={item.key}\n />\n )\n )\n }\n\n let title = item.key\n let croppedTitle = item.key\n if (item.label) {\n title =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n // Crop title to max. 25 characters\n if (title.length > 25) {\n croppedTitle = title.substring(0, 25) + '...'\n } else {\n croppedTitle = title\n }\n\n return (\n <DropDownItem\n active={active}\n editor={editor}\n enabled={enabled}\n Icon={item?.ChildComponent ? <item.ChildComponent /> : undefined}\n item={item}\n key={item.key}\n tooltip={title}\n >\n <span className=\"text\">{croppedTitle}</span>\n </DropDownItem>\n )\n}\n\nexport const ToolbarDropdown = ({\n anchorElem,\n classNames,\n editor,\n group,\n Icon,\n itemsContainerClassNames,\n label,\n maxActiveItems,\n onActiveChange,\n}: {\n anchorElem: HTMLElement\n classNames?: string[]\n editor: LexicalEditor\n group: ToolbarDropdownGroup\n Icon?: React.FC\n itemsContainerClassNames?: string[]\n label?: string\n /**\n * Maximum number of active items allowed. This is a performance optimization to prevent\n * unnecessary item active checks when the maximum number of active items is reached.\n */\n maxActiveItems?: number\n onActiveChange?: ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => void\n}) => {\n const [activeItemKeys, setActiveItemKeys] = React.useState<string[]>([])\n const [enabledItemKeys, setEnabledItemKeys] = React.useState<string[]>([])\n const [enabledGroup, setEnabledGroup] = React.useState<boolean>(true)\n const editorConfigContext = useEditorConfigContext()\n const { items, key: groupKey } = group\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!selection) {\n return\n }\n\n const _activeItemKeys: string[] = []\n const _activeItems: ToolbarGroupItem[] = []\n const _enabledItemKeys: string[] = []\n\n for (const item of items) {\n if (item.isActive && (!maxActiveItems || _activeItemKeys.length < maxActiveItems)) {\n const isActive = item.isActive({ editor, editorConfigContext, selection })\n if (isActive) {\n _activeItemKeys.push(item.key)\n _activeItems.push(item)\n }\n }\n if (item.isEnabled) {\n const isEnabled = item.isEnabled({ editor, editorConfigContext, selection })\n if (isEnabled) {\n _enabledItemKeys.push(item.key)\n }\n } else {\n _enabledItemKeys.push(item.key)\n }\n }\n if (group.isEnabled) {\n setEnabledGroup(group.isEnabled({ editor, editorConfigContext, selection }))\n }\n setActiveItemKeys(_activeItemKeys)\n setEnabledItemKeys(_enabledItemKeys)\n\n if (onActiveChange) {\n onActiveChange({ activeItems: _activeItems })\n }\n })\n }, [editor, editorConfigContext, group, items, maxActiveItems, onActiveChange])\n\n useEffect(() => {\n updateStates()\n }, [updateStates])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n updateStates()\n }),\n )\n }, [editor, updateStates])\n\n return (\n <DropDown\n buttonAriaLabel={`${groupKey} dropdown`}\n buttonClassName={[baseClass, `${baseClass}-${groupKey}`, ...(classNames || [])]\n .filter(Boolean)\n .join(' ')}\n disabled={!enabledGroup}\n Icon={Icon}\n itemsContainerClassNames={[`${baseClass}-items`, ...(itemsContainerClassNames || [])]}\n key={groupKey}\n label={label}\n >\n {items.length\n ? items.map((item) => {\n return (\n <ToolbarItem\n active={activeItemKeys.includes(item.key)}\n anchorElem={anchorElem}\n editor={editor}\n enabled={enabledItemKeys.includes(item.key)}\n item={item}\n key={item.key}\n />\n )\n })\n : null}\n </DropDown>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import type { RichTextFieldDiffServerComponent } from 'payload';
2
2
  import './htmlDiff/index.scss';
3
3
  import './index.scss';
4
+ import '../bundled.css';
4
5
  export declare const LexicalDiffComponent: RichTextFieldDiffServerComponent;
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/field/Diff/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,SAAS,CAAA;AAM/D,OAAO,uBAAuB,CAAA;AAC9B,OAAO,cAAc,CAAA;AAcrB,eAAO,MAAM,oBAAoB,EAAE,gCAmDlC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/field/Diff/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,SAAS,CAAA;AAM/D,OAAO,uBAAuB,CAAA;AAC9B,OAAO,cAAc,CAAA;AACrB,OAAO,gBAAgB,CAAA;AAcvB,eAAO,MAAM,oBAAoB,EAAE,gCAmDlC,CAAA"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { getTranslation } from '@payloadcms/translations';
3
3
  import { FieldDiffLabel } from '@payloadcms/ui/rsc';
4
4
  import React from 'react';
5
+ import '../bundled.css';
5
6
  import { convertLexicalToHTMLAsync } from '../../features/converters/lexicalToHtml/async/index.js';
6
7
  import { getPayloadPopulateFn } from '../../features/converters/utilities/payloadPopulateFn.js';
7
8
  import { LinkDiffHTMLConverterAsync } from './converters/link.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","FieldDiffLabel","React","convertLexicalToHTMLAsync","getPayloadPopulateFn","LinkDiffHTMLConverterAsync","ListItemDiffHTMLConverterAsync","RelationshipDiffHTMLConverterAsync","UnknownDiffHTMLConverterAsync","UploadDiffHTMLConverterAsync","HtmlDiff","baseClass","LexicalDiffComponent","args","comparisonValue","field","i18n","locale","versionValue","converters","defaultConverters","req","payloadPopulateFn","currentDepth","depth","comparisonHTML","data","populate","versionHTML","diffHTML","oldHTML","newHTML","getSideBySideContents","_jsxs","className","_jsx","label","dangerouslySetInnerHTML","__html"],"sources":["../../../src/field/Diff/index.tsx"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { RichTextFieldDiffServerComponent } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDiffLabel } from '@payloadcms/ui/rsc'\nimport React from 'react'\n\nimport './htmlDiff/index.scss'\nimport './index.scss'\n\nimport type { HTMLConvertersFunctionAsync } from '../../features/converters/lexicalToHtml/async/types.js'\n\nimport { convertLexicalToHTMLAsync } from '../../features/converters/lexicalToHtml/async/index.js'\nimport { getPayloadPopulateFn } from '../../features/converters/utilities/payloadPopulateFn.js'\nimport { LinkDiffHTMLConverterAsync } from './converters/link.js'\nimport { ListItemDiffHTMLConverterAsync } from './converters/listitem/index.js'\nimport { RelationshipDiffHTMLConverterAsync } from './converters/relationship/index.js'\nimport { UnknownDiffHTMLConverterAsync } from './converters/unknown/index.js'\nimport { UploadDiffHTMLConverterAsync } from './converters/upload/index.js'\nimport { HtmlDiff } from './htmlDiff/index.js'\nconst baseClass = 'lexical-diff'\n\nexport const LexicalDiffComponent: RichTextFieldDiffServerComponent = async (args) => {\n const { comparisonValue, field, i18n, locale, versionValue } = args\n\n const converters: HTMLConvertersFunctionAsync = ({ defaultConverters }) => ({\n ...defaultConverters,\n ...LinkDiffHTMLConverterAsync({}),\n ...ListItemDiffHTMLConverterAsync,\n ...UploadDiffHTMLConverterAsync({ i18n: args.i18n, req: args.req }),\n ...RelationshipDiffHTMLConverterAsync({ i18n: args.i18n, req: args.req }),\n ...UnknownDiffHTMLConverterAsync({ i18n: args.i18n, req: args.req }),\n })\n\n const payloadPopulateFn = await getPayloadPopulateFn({\n currentDepth: 0,\n depth: 1,\n req: args.req,\n })\n const comparisonHTML = await convertLexicalToHTMLAsync({\n converters,\n data: comparisonValue as SerializedEditorState,\n populate: payloadPopulateFn,\n })\n\n const versionHTML = await convertLexicalToHTMLAsync({\n converters,\n data: versionValue as SerializedEditorState,\n populate: payloadPopulateFn,\n })\n\n const diffHTML = new HtmlDiff(comparisonHTML, versionHTML)\n\n const [oldHTML, newHTML] = diffHTML.getSideBySideContents()\n\n return (\n <div className={baseClass}>\n <FieldDiffLabel>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {'label' in field &&\n typeof field.label !== 'function' &&\n getTranslation(field.label || '', i18n)}\n </FieldDiffLabel>\n <div className={`${baseClass}__diff-container`}>\n {oldHTML && (\n <div className={`${baseClass}__diff-old`} dangerouslySetInnerHTML={{ __html: oldHTML }} />\n )}\n {newHTML && (\n <div className={`${baseClass}__diff-new`} dangerouslySetInnerHTML={{ __html: newHTML }} />\n )}\n </div>\n </div>\n )\n}\n"],"mappings":";AAGA,SAASA,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAOlB,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,oBAAoB,QAAQ;AACrC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,8BAA8B,QAAQ;AAC/C,SAASC,kCAAkC,QAAQ;AACnD,SAASC,6BAA6B,QAAQ;AAC9C,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,QAAQ,QAAQ;AACzB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,oBAAA,GAAyD,MAAOC,IAAA;EAC3E,MAAM;IAAEC,eAAe;IAAEC,KAAK;IAAEC,IAAI;IAAEC,MAAM;IAAEC;EAAY,CAAE,GAAGL,IAAA;EAE/D,MAAMM,UAAA,GAA0CA,CAAC;IAAEC;EAAiB,CAAE,MAAM;IAC1E,GAAGA,iBAAiB;IACpB,GAAGf,0BAAA,CAA2B,CAAC,EAAE;IACjC,GAAGC,8BAA8B;IACjC,GAAGG,4BAAA,CAA6B;MAAEO,IAAA,EAAMH,IAAA,CAAKG,IAAI;MAAEK,GAAA,EAAKR,IAAA,CAAKQ;IAAI,EAAE;IACnE,GAAGd,kCAAA,CAAmC;MAAES,IAAA,EAAMH,IAAA,CAAKG,IAAI;MAAEK,GAAA,EAAKR,IAAA,CAAKQ;IAAI,EAAE;IACzE,GAAGb,6BAAA,CAA8B;MAAEQ,IAAA,EAAMH,IAAA,CAAKG,IAAI;MAAEK,GAAA,EAAKR,IAAA,CAAKQ;IAAI;EACpE;EAEA,MAAMC,iBAAA,GAAoB,MAAMlB,oBAAA,CAAqB;IACnDmB,YAAA,EAAc;IACdC,KAAA,EAAO;IACPH,GAAA,EAAKR,IAAA,CAAKQ;EACZ;EACA,MAAMI,cAAA,GAAiB,MAAMtB,yBAAA,CAA0B;IACrDgB,UAAA;IACAO,IAAA,EAAMZ,eAAA;IACNa,QAAA,EAAUL;EACZ;EAEA,MAAMM,WAAA,GAAc,MAAMzB,yBAAA,CAA0B;IAClDgB,UAAA;IACAO,IAAA,EAAMR,YAAA;IACNS,QAAA,EAAUL;EACZ;EAEA,MAAMO,QAAA,GAAW,IAAInB,QAAA,CAASe,cAAA,EAAgBG,WAAA;EAE9C,MAAM,CAACE,OAAA,EAASC,OAAA,CAAQ,GAAGF,QAAA,CAASG,qBAAqB;EAEzD,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAWvB,SAAA;4BACdsB,KAAA,CAAChC,cAAA;iBACEgB,MAAA,iBAAUkB,IAAA,CAAC;QAAKD,SAAA,EAAW,GAAGvB,SAAA,gBAAyB;kBAAGM;UAC1D,WAAWF,KAAA,IACV,OAAOA,KAAA,CAAMqB,KAAK,KAAK,cACvBpC,cAAA,CAAee,KAAA,CAAMqB,KAAK,IAAI,IAAIpB,IAAA;qBAEtCiB,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGvB,SAAA,kBAA2B;iBAC3CmB,OAAA,iBACCK,IAAA,CAAC;QAAID,SAAA,EAAW,GAAGvB,SAAA,YAAqB;QAAE0B,uBAAA,EAAyB;UAAEC,MAAA,EAAQR;QAAQ;UAEtFC,OAAA,iBACCI,IAAA,CAAC;QAAID,SAAA,EAAW,GAAGvB,SAAA,YAAqB;QAAE0B,uBAAA,EAAyB;UAAEC,MAAA,EAAQP;QAAQ;;;;AAK/F","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","FieldDiffLabel","React","convertLexicalToHTMLAsync","getPayloadPopulateFn","LinkDiffHTMLConverterAsync","ListItemDiffHTMLConverterAsync","RelationshipDiffHTMLConverterAsync","UnknownDiffHTMLConverterAsync","UploadDiffHTMLConverterAsync","HtmlDiff","baseClass","LexicalDiffComponent","args","comparisonValue","field","i18n","locale","versionValue","converters","defaultConverters","req","payloadPopulateFn","currentDepth","depth","comparisonHTML","data","populate","versionHTML","diffHTML","oldHTML","newHTML","getSideBySideContents","_jsxs","className","_jsx","label","dangerouslySetInnerHTML","__html"],"sources":["../../../src/field/Diff/index.tsx"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { RichTextFieldDiffServerComponent } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDiffLabel } from '@payloadcms/ui/rsc'\nimport React from 'react'\n\nimport './htmlDiff/index.scss'\nimport './index.scss'\nimport '../bundled.css'\n\nimport type { HTMLConvertersFunctionAsync } from '../../features/converters/lexicalToHtml/async/types.js'\n\nimport { convertLexicalToHTMLAsync } from '../../features/converters/lexicalToHtml/async/index.js'\nimport { getPayloadPopulateFn } from '../../features/converters/utilities/payloadPopulateFn.js'\nimport { LinkDiffHTMLConverterAsync } from './converters/link.js'\nimport { ListItemDiffHTMLConverterAsync } from './converters/listitem/index.js'\nimport { RelationshipDiffHTMLConverterAsync } from './converters/relationship/index.js'\nimport { UnknownDiffHTMLConverterAsync } from './converters/unknown/index.js'\nimport { UploadDiffHTMLConverterAsync } from './converters/upload/index.js'\nimport { HtmlDiff } from './htmlDiff/index.js'\nconst baseClass = 'lexical-diff'\n\nexport const LexicalDiffComponent: RichTextFieldDiffServerComponent = async (args) => {\n const { comparisonValue, field, i18n, locale, versionValue } = args\n\n const converters: HTMLConvertersFunctionAsync = ({ defaultConverters }) => ({\n ...defaultConverters,\n ...LinkDiffHTMLConverterAsync({}),\n ...ListItemDiffHTMLConverterAsync,\n ...UploadDiffHTMLConverterAsync({ i18n: args.i18n, req: args.req }),\n ...RelationshipDiffHTMLConverterAsync({ i18n: args.i18n, req: args.req }),\n ...UnknownDiffHTMLConverterAsync({ i18n: args.i18n, req: args.req }),\n })\n\n const payloadPopulateFn = await getPayloadPopulateFn({\n currentDepth: 0,\n depth: 1,\n req: args.req,\n })\n const comparisonHTML = await convertLexicalToHTMLAsync({\n converters,\n data: comparisonValue as SerializedEditorState,\n populate: payloadPopulateFn,\n })\n\n const versionHTML = await convertLexicalToHTMLAsync({\n converters,\n data: versionValue as SerializedEditorState,\n populate: payloadPopulateFn,\n })\n\n const diffHTML = new HtmlDiff(comparisonHTML, versionHTML)\n\n const [oldHTML, newHTML] = diffHTML.getSideBySideContents()\n\n return (\n <div className={baseClass}>\n <FieldDiffLabel>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {'label' in field &&\n typeof field.label !== 'function' &&\n getTranslation(field.label || '', i18n)}\n </FieldDiffLabel>\n <div className={`${baseClass}__diff-container`}>\n {oldHTML && (\n <div className={`${baseClass}__diff-old`} dangerouslySetInnerHTML={{ __html: oldHTML }} />\n )}\n {newHTML && (\n <div className={`${baseClass}__diff-new`} dangerouslySetInnerHTML={{ __html: newHTML }} />\n )}\n </div>\n </div>\n )\n}\n"],"mappings":";AAGA,SAASA,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAIlB,OAAO;AAIP,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,oBAAoB,QAAQ;AACrC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,8BAA8B,QAAQ;AAC/C,SAASC,kCAAkC,QAAQ;AACnD,SAASC,6BAA6B,QAAQ;AAC9C,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,QAAQ,QAAQ;AACzB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,oBAAA,GAAyD,MAAOC,IAAA;EAC3E,MAAM;IAAEC,eAAe;IAAEC,KAAK;IAAEC,IAAI;IAAEC,MAAM;IAAEC;EAAY,CAAE,GAAGL,IAAA;EAE/D,MAAMM,UAAA,GAA0CA,CAAC;IAAEC;EAAiB,CAAE,MAAM;IAC1E,GAAGA,iBAAiB;IACpB,GAAGf,0BAAA,CAA2B,CAAC,EAAE;IACjC,GAAGC,8BAA8B;IACjC,GAAGG,4BAAA,CAA6B;MAAEO,IAAA,EAAMH,IAAA,CAAKG,IAAI;MAAEK,GAAA,EAAKR,IAAA,CAAKQ;IAAI,EAAE;IACnE,GAAGd,kCAAA,CAAmC;MAAES,IAAA,EAAMH,IAAA,CAAKG,IAAI;MAAEK,GAAA,EAAKR,IAAA,CAAKQ;IAAI,EAAE;IACzE,GAAGb,6BAAA,CAA8B;MAAEQ,IAAA,EAAMH,IAAA,CAAKG,IAAI;MAAEK,GAAA,EAAKR,IAAA,CAAKQ;IAAI;EACpE;EAEA,MAAMC,iBAAA,GAAoB,MAAMlB,oBAAA,CAAqB;IACnDmB,YAAA,EAAc;IACdC,KAAA,EAAO;IACPH,GAAA,EAAKR,IAAA,CAAKQ;EACZ;EACA,MAAMI,cAAA,GAAiB,MAAMtB,yBAAA,CAA0B;IACrDgB,UAAA;IACAO,IAAA,EAAMZ,eAAA;IACNa,QAAA,EAAUL;EACZ;EAEA,MAAMM,WAAA,GAAc,MAAMzB,yBAAA,CAA0B;IAClDgB,UAAA;IACAO,IAAA,EAAMR,YAAA;IACNS,QAAA,EAAUL;EACZ;EAEA,MAAMO,QAAA,GAAW,IAAInB,QAAA,CAASe,cAAA,EAAgBG,WAAA;EAE9C,MAAM,CAACE,OAAA,EAASC,OAAA,CAAQ,GAAGF,QAAA,CAASG,qBAAqB;EAEzD,oBACEC,KAAA,CAAC;IAAIC,SAAA,EAAWvB,SAAA;4BACdsB,KAAA,CAAChC,cAAA;iBACEgB,MAAA,iBAAUkB,IAAA,CAAC;QAAKD,SAAA,EAAW,GAAGvB,SAAA,gBAAyB;kBAAGM;UAC1D,WAAWF,KAAA,IACV,OAAOA,KAAA,CAAMqB,KAAK,KAAK,cACvBpC,cAAA,CAAee,KAAA,CAAMqB,KAAK,IAAI,IAAIpB,IAAA;qBAEtCiB,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGvB,SAAA,kBAA2B;iBAC3CmB,OAAA,iBACCK,IAAA,CAAC;QAAID,SAAA,EAAW,GAAGvB,SAAA,YAAqB;QAAE0B,uBAAA,EAAyB;UAAEC,MAAA,EAAQR;QAAQ;UAEtFC,OAAA,iBACCI,IAAA,CAAC;QAAID,SAAA,EAAW,GAAGvB,SAAA,YAAqB;QAAE0B,uBAAA,EAAyB;UAAEC,MAAA,EAAQP;QAAQ;;;;AAK/F","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../src/field/Field.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAGxE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAE7E,OAAO,mCAAmC,CAAA;AAC1C,OAAO,eAAe,CAAA;AACtB,OAAO,cAAc,CAAA;AAErB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAM5D,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAC/B;IACE,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAAA;CACnD,GAAG,yBAAyB,CAyJ9B,CAAA;AAaD,eAAO,MAAM,QAAQ,EAAE,OAAO,iBAAqC,CAAA"}
1
+ {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../src/field/Field.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAGxE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAE7E,OAAO,mCAAmC,CAAA;AAC1C,OAAO,eAAe,CAAA;AACtB,OAAO,cAAc,CAAA;AAErB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAM5D,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAC/B;IACE,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAAA;CACnD,GAAG,yBAAyB,CAiK9B,CAAA;AAaD,eAAO,MAAM,QAAQ,EAAE,OAAO,iBAAqC,CAAA"}
@@ -81,10 +81,17 @@ const RichTextComponent = props => {
81
81
  }, [isSmallWidthViewport]);
82
82
  const classes = [baseClass, 'field-type', className, showError && 'error', disabled && `${baseClass}--read-only`, editorConfig?.admin?.hideGutter !== true && !isSmallWidthViewport ? `${baseClass}--show-gutter` : null].filter(Boolean).join(' ');
83
83
  const pathWithEditDepth = `${path}.${editDepth}`;
84
- const handleChange = useCallback(editorState => {
84
+ const updateFieldValue = editorState => {
85
85
  const newState = editorState.toJSON();
86
86
  prevValueRef.current = newState;
87
87
  setValue(newState);
88
+ };
89
+ const handleChange = useCallback(editorState_0 => {
90
+ if (typeof window.requestIdleCallback === 'function') {
91
+ requestIdleCallback(() => updateFieldValue(editorState_0));
92
+ } else {
93
+ updateFieldValue(editorState_0);
94
+ }
88
95
  }, [setValue]);
89
96
  const styles = useMemo(() => mergeFieldStyles(field), [field]);
90
97
  const handleInitialValueChange = useEffectEvent(initialValue_0 => {
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","names":["FieldDescription","FieldError","FieldLabel","RenderCustomComponent","useEditDepth","useEffectEvent","useField","mergeFieldStyles","React","useCallback","useEffect","useMemo","useState","ErrorBoundary","LexicalProvider","baseClass","RichTextComponent","props","editorConfig","field","name","admin","className","description","readOnly","readOnlyFromAdmin","label","localized","required","path","pathFromProps","readOnlyFromTopLevelProps","validate","readOnlyFromProps","editDepth","memoizedValidate","value","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","disabledFromField","initialValue","setValue","showError","isSmallWidthViewport","setIsSmallWidthViewport","rerenderProviderKey","setRerenderProviderKey","prevInitialValueRef","useRef","prevValueRef","updateViewPortWidth","isNextSmallWidthViewport","window","matchMedia","matches","addEventListener","removeEventListener","classes","hideGutter","filter","Boolean","join","pathWithEditDepth","handleChange","editorState","newState","toJSON","current","styles","handleInitialValueChange","JSON","stringify","Date","Object","is","_jsxs","style","_jsx","CustomComponent","Fallback","fallbackRender","onReset","composerKey","fieldProps","onChange","error","role","color","message","RichText"],"sources":["../../src/field/Field.tsx"],"sourcesContent":["'use client'\nimport type { EditorState, SerializedEditorState } from 'lexical'\nimport type { Validate } from 'payload'\n\nimport {\n FieldDescription,\n FieldError,\n FieldLabel,\n RenderCustomComponent,\n useEditDepth,\n useEffectEvent,\n useField,\n} from '@payloadcms/ui'\nimport { mergeFieldStyles } from '@payloadcms/ui/shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\n\nimport type { SanitizedClientEditorConfig } from '../lexical/config/types.js'\n\nimport '../lexical/theme/EditorTheme.scss'\nimport './bundled.css'\nimport './index.scss'\n\nimport type { LexicalRichTextFieldProps } from '../types.js'\n\nimport { LexicalProvider } from '../lexical/LexicalProvider.js'\n\nconst baseClass = 'rich-text-lexical'\n\nconst RichTextComponent: React.FC<\n {\n readonly editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n } & LexicalRichTextFieldProps\n> = (props) => {\n const {\n editorConfig,\n field,\n field: {\n name,\n admin: { className, description, readOnly: readOnlyFromAdmin } = {},\n label,\n localized,\n required,\n },\n path: pathFromProps,\n readOnly: readOnlyFromTopLevelProps,\n validate, // Users can pass in client side validation if they WANT to, but it's not required anymore\n } = props\n\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n const path = pathFromProps ?? name\n\n const editDepth = useEditDepth()\n\n const memoizedValidate = useCallback<Validate>(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n return validate(value, { ...validationOptions, required })\n }\n return true\n },\n // Important: do not add props to the dependencies array.\n // This would cause an infinite loop and endless re-rendering.\n // Removing props from the dependencies array fixed this issue: https://github.com/payloadcms/payload/issues/3709\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled: disabledFromField,\n initialValue,\n setValue,\n showError,\n value,\n } = useField<SerializedEditorState>({\n path,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || disabledFromField\n\n const [isSmallWidthViewport, setIsSmallWidthViewport] = useState<boolean>(false)\n const [rerenderProviderKey, setRerenderProviderKey] = useState<Date>()\n\n const prevInitialValueRef = React.useRef<SerializedEditorState | undefined>(initialValue)\n const prevValueRef = React.useRef<SerializedEditorState | undefined>(value)\n\n useEffect(() => {\n const updateViewPortWidth = () => {\n const isNextSmallWidthViewport = window.matchMedia('(max-width: 768px)').matches\n\n if (isNextSmallWidthViewport !== isSmallWidthViewport) {\n setIsSmallWidthViewport(isNextSmallWidthViewport)\n }\n }\n updateViewPortWidth()\n window.addEventListener('resize', updateViewPortWidth)\n\n return () => {\n window.removeEventListener('resize', updateViewPortWidth)\n }\n }, [isSmallWidthViewport])\n\n const classes = [\n baseClass,\n 'field-type',\n className,\n showError && 'error',\n disabled && `${baseClass}--read-only`,\n editorConfig?.admin?.hideGutter !== true && !isSmallWidthViewport\n ? `${baseClass}--show-gutter`\n : null,\n ]\n .filter(Boolean)\n .join(' ')\n\n const pathWithEditDepth = `${path}.${editDepth}`\n\n const handleChange = useCallback(\n (editorState: EditorState) => {\n const newState = editorState.toJSON()\n prevValueRef.current = newState\n setValue(newState)\n },\n [setValue],\n )\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n const handleInitialValueChange = useEffectEvent(\n (initialValue: SerializedEditorState | undefined) => {\n // Object deep equality check here, as re-mounting the editor if\n // the new value is the same as the old one is not necessary\n if (\n prevValueRef.current !== value &&\n JSON.stringify(prevValueRef.current) !== JSON.stringify(value)\n ) {\n prevInitialValueRef.current = initialValue\n prevValueRef.current = value\n setRerenderProviderKey(new Date())\n }\n },\n )\n\n useEffect(() => {\n // Needs to trigger for object reference changes - otherwise,\n // reacting to the same initial value change twice will cause\n // the second change to be ignored, even though the value has changed.\n // That's because initialValue is not kept up-to-date\n if (!Object.is(initialValue, prevInitialValueRef.current)) {\n handleInitialValueChange(initialValue)\n }\n }, [initialValue])\n\n return (\n <div className={classes} key={pathWithEditDepth} style={styles}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {Label || <FieldLabel label={label} localized={localized} path={path} required={required} />}\n <div className={`${baseClass}__wrap`}>\n <ErrorBoundary fallbackRender={fallbackRender} onReset={() => {}}>\n {BeforeInput}\n <LexicalProvider\n composerKey={pathWithEditDepth}\n editorConfig={editorConfig}\n fieldProps={props}\n isSmallWidthViewport={isSmallWidthViewport}\n key={JSON.stringify({ path, rerenderProviderKey })} // makes sure lexical is completely re-rendered when initialValue changes, bypassing the lexical-internal value memoization. That way, external changes to the form will update the editor. More infos in PR description (https://github.com/payloadcms/payload/pull/5010)\n onChange={handleChange}\n readOnly={disabled}\n value={value}\n />\n {AfterInput}\n </ErrorBoundary>\n {Description}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n\nfunction fallbackRender({ error }: { error: Error }) {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return (\n <div className=\"errorBoundary\" role=\"alert\">\n <p>Something went wrong:</p>\n <pre style={{ color: 'red' }}>{error.message}</pre>\n </div>\n )\n}\n\nexport const RichText: typeof RichTextComponent = RichTextComponent\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Field.js","names":["FieldDescription","FieldError","FieldLabel","RenderCustomComponent","useEditDepth","useEffectEvent","useField","mergeFieldStyles","React","useCallback","useEffect","useMemo","useState","ErrorBoundary","LexicalProvider","baseClass","RichTextComponent","props","editorConfig","field","name","admin","className","description","readOnly","readOnlyFromAdmin","label","localized","required","path","pathFromProps","readOnlyFromTopLevelProps","validate","readOnlyFromProps","editDepth","memoizedValidate","value","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","disabledFromField","initialValue","setValue","showError","isSmallWidthViewport","setIsSmallWidthViewport","rerenderProviderKey","setRerenderProviderKey","prevInitialValueRef","useRef","prevValueRef","updateViewPortWidth","isNextSmallWidthViewport","window","matchMedia","matches","addEventListener","removeEventListener","classes","hideGutter","filter","Boolean","join","pathWithEditDepth","updateFieldValue","editorState","newState","toJSON","current","handleChange","requestIdleCallback","styles","handleInitialValueChange","JSON","stringify","Date","Object","is","_jsxs","style","_jsx","CustomComponent","Fallback","fallbackRender","onReset","composerKey","fieldProps","onChange","error","role","color","message","RichText"],"sources":["../../src/field/Field.tsx"],"sourcesContent":["'use client'\nimport type { EditorState, SerializedEditorState } from 'lexical'\nimport type { Validate } from 'payload'\n\nimport {\n FieldDescription,\n FieldError,\n FieldLabel,\n RenderCustomComponent,\n useEditDepth,\n useEffectEvent,\n useField,\n} from '@payloadcms/ui'\nimport { mergeFieldStyles } from '@payloadcms/ui/shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\n\nimport type { SanitizedClientEditorConfig } from '../lexical/config/types.js'\n\nimport '../lexical/theme/EditorTheme.scss'\nimport './bundled.css'\nimport './index.scss'\n\nimport type { LexicalRichTextFieldProps } from '../types.js'\n\nimport { LexicalProvider } from '../lexical/LexicalProvider.js'\n\nconst baseClass = 'rich-text-lexical'\n\nconst RichTextComponent: React.FC<\n {\n readonly editorConfig: SanitizedClientEditorConfig // With rendered features n stuff\n } & LexicalRichTextFieldProps\n> = (props) => {\n const {\n editorConfig,\n field,\n field: {\n name,\n admin: { className, description, readOnly: readOnlyFromAdmin } = {},\n label,\n localized,\n required,\n },\n path: pathFromProps,\n readOnly: readOnlyFromTopLevelProps,\n validate, // Users can pass in client side validation if they WANT to, but it's not required anymore\n } = props\n\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n const path = pathFromProps ?? name\n\n const editDepth = useEditDepth()\n\n const memoizedValidate = useCallback<Validate>(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n return validate(value, { ...validationOptions, required })\n }\n return true\n },\n // Important: do not add props to the dependencies array.\n // This would cause an infinite loop and endless re-rendering.\n // Removing props from the dependencies array fixed this issue: https://github.com/payloadcms/payload/issues/3709\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled: disabledFromField,\n initialValue,\n setValue,\n showError,\n value,\n } = useField<SerializedEditorState>({\n path,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || disabledFromField\n\n const [isSmallWidthViewport, setIsSmallWidthViewport] = useState<boolean>(false)\n const [rerenderProviderKey, setRerenderProviderKey] = useState<Date>()\n\n const prevInitialValueRef = React.useRef<SerializedEditorState | undefined>(initialValue)\n const prevValueRef = React.useRef<SerializedEditorState | undefined>(value)\n\n useEffect(() => {\n const updateViewPortWidth = () => {\n const isNextSmallWidthViewport = window.matchMedia('(max-width: 768px)').matches\n\n if (isNextSmallWidthViewport !== isSmallWidthViewport) {\n setIsSmallWidthViewport(isNextSmallWidthViewport)\n }\n }\n updateViewPortWidth()\n window.addEventListener('resize', updateViewPortWidth)\n\n return () => {\n window.removeEventListener('resize', updateViewPortWidth)\n }\n }, [isSmallWidthViewport])\n\n const classes = [\n baseClass,\n 'field-type',\n className,\n showError && 'error',\n disabled && `${baseClass}--read-only`,\n editorConfig?.admin?.hideGutter !== true && !isSmallWidthViewport\n ? `${baseClass}--show-gutter`\n : null,\n ]\n .filter(Boolean)\n .join(' ')\n\n const pathWithEditDepth = `${path}.${editDepth}`\n\n const updateFieldValue = (editorState: EditorState) => {\n const newState = editorState.toJSON()\n prevValueRef.current = newState\n setValue(newState)\n }\n\n const handleChange = useCallback(\n (editorState: EditorState) => {\n if (typeof window.requestIdleCallback === 'function') {\n requestIdleCallback(() => updateFieldValue(editorState))\n } else {\n updateFieldValue(editorState)\n }\n },\n [setValue],\n )\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n const handleInitialValueChange = useEffectEvent(\n (initialValue: SerializedEditorState | undefined) => {\n // Object deep equality check here, as re-mounting the editor if\n // the new value is the same as the old one is not necessary\n if (\n prevValueRef.current !== value &&\n JSON.stringify(prevValueRef.current) !== JSON.stringify(value)\n ) {\n prevInitialValueRef.current = initialValue\n prevValueRef.current = value\n setRerenderProviderKey(new Date())\n }\n },\n )\n\n useEffect(() => {\n // Needs to trigger for object reference changes - otherwise,\n // reacting to the same initial value change twice will cause\n // the second change to be ignored, even though the value has changed.\n // That's because initialValue is not kept up-to-date\n if (!Object.is(initialValue, prevInitialValueRef.current)) {\n handleInitialValueChange(initialValue)\n }\n }, [initialValue])\n\n return (\n <div className={classes} key={pathWithEditDepth} style={styles}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {Label || <FieldLabel label={label} localized={localized} path={path} required={required} />}\n <div className={`${baseClass}__wrap`}>\n <ErrorBoundary fallbackRender={fallbackRender} onReset={() => {}}>\n {BeforeInput}\n <LexicalProvider\n composerKey={pathWithEditDepth}\n editorConfig={editorConfig}\n fieldProps={props}\n isSmallWidthViewport={isSmallWidthViewport}\n key={JSON.stringify({ path, rerenderProviderKey })} // makes sure lexical is completely re-rendered when initialValue changes, bypassing the lexical-internal value memoization. That way, external changes to the form will update the editor. More infos in PR description (https://github.com/payloadcms/payload/pull/5010)\n onChange={handleChange}\n readOnly={disabled}\n value={value}\n />\n {AfterInput}\n </ErrorBoundary>\n {Description}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n\nfunction fallbackRender({ error }: { error: Error }) {\n // Call resetErrorBoundary() to reset the error boundary and retry the render.\n\n return (\n <div className=\"errorBoundary\" role=\"alert\">\n <p>Something went wrong:</p>\n <pre style={{ color: 'red' }}>{error.message}</pre>\n </div>\n )\n}\n\nexport const RichText: typeof RichTextComponent = RichTextComponent\n"],"mappings":"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","ignoreList":[]}