@payloadcms/richtext-lexical 3.0.0-beta.133 → 3.0.0-beta.134

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/exports/client/Field-S5G27AVI.js +2 -0
  2. package/dist/exports/client/Field-S5G27AVI.js.map +7 -0
  3. package/dist/exports/client/bundled.css +1 -1
  4. package/dist/exports/client/chunk-2CYU43GM.js +2 -0
  5. package/dist/exports/client/chunk-2CYU43GM.js.map +7 -0
  6. package/dist/exports/client/chunk-C7S3V4EB.js +2 -0
  7. package/dist/exports/client/chunk-C7S3V4EB.js.map +7 -0
  8. package/dist/exports/client/chunk-U7O7EYCP.js +2 -0
  9. package/dist/exports/client/chunk-U7O7EYCP.js.map +7 -0
  10. package/dist/exports/client/component-H3EYQ5KG.js +2 -0
  11. package/dist/exports/client/{component-YICNYPTU.js.map → component-H3EYQ5KG.js.map} +1 -1
  12. package/dist/exports/client/componentInline-ZGO3K4TA.js +2 -0
  13. package/dist/exports/client/componentInline-ZGO3K4TA.js.map +7 -0
  14. package/dist/exports/client/index.d.ts +7 -0
  15. package/dist/exports/client/index.d.ts.map +1 -1
  16. package/dist/exports/client/index.js +7 -7
  17. package/dist/exports/client/index.js.map +4 -4
  18. package/dist/features/blocks/client/component/BlockContent.d.ts +34 -9
  19. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  20. package/dist/features/blocks/client/component/BlockContent.js +63 -158
  21. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  22. package/dist/features/blocks/client/component/components/BlockCollapsible.d.ts +11 -0
  23. package/dist/features/blocks/client/component/components/BlockCollapsible.d.ts.map +1 -0
  24. package/dist/features/blocks/client/component/components/BlockCollapsible.js +37 -0
  25. package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -0
  26. package/dist/features/blocks/client/component/components/BlockEditButton.d.ts +3 -0
  27. package/dist/features/blocks/client/component/components/BlockEditButton.d.ts.map +1 -0
  28. package/dist/features/blocks/client/component/components/BlockEditButton.js +22 -0
  29. package/dist/features/blocks/client/component/components/BlockEditButton.js.map +1 -0
  30. package/dist/features/blocks/client/component/components/BlockRemoveButton.d.ts +3 -0
  31. package/dist/features/blocks/client/component/components/BlockRemoveButton.d.ts.map +1 -0
  32. package/dist/features/blocks/client/component/components/BlockRemoveButton.js +22 -0
  33. package/dist/features/blocks/client/component/components/BlockRemoveButton.js.map +1 -0
  34. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  35. package/dist/features/blocks/client/component/index.js +242 -63
  36. package/dist/features/blocks/client/component/index.js.map +1 -1
  37. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts +5 -0
  38. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -0
  39. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js +28 -0
  40. package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -0
  41. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.d.ts +3 -0
  42. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.d.ts.map +1 -0
  43. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js +22 -0
  44. package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js.map +1 -0
  45. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.d.ts +3 -0
  46. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.d.ts.map +1 -0
  47. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js +22 -0
  48. package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js.map +1 -0
  49. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.d.ts +3 -0
  50. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.d.ts.map +1 -0
  51. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js +22 -0
  52. package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map +1 -0
  53. package/dist/features/blocks/client/componentInline/index.d.ts +13 -1
  54. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  55. package/dist/features/blocks/client/componentInline/index.js +219 -43
  56. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  57. package/dist/features/blocks/client/index.d.ts.map +1 -1
  58. package/dist/features/blocks/client/index.js +7 -10
  59. package/dist/features/blocks/client/index.js.map +1 -1
  60. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  61. package/dist/features/blocks/client/nodes/BlocksNode.js +1 -3
  62. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  63. package/dist/features/blocks/client/plugin/commands.d.ts +0 -4
  64. package/dist/features/blocks/client/plugin/commands.d.ts.map +1 -1
  65. package/dist/features/blocks/client/plugin/commands.js +0 -1
  66. package/dist/features/blocks/client/plugin/commands.js.map +1 -1
  67. package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
  68. package/dist/features/blocks/client/plugin/index.js +28 -135
  69. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  70. package/dist/features/blocks/server/index.d.ts.map +1 -1
  71. package/dist/features/blocks/server/index.js +28 -2
  72. package/dist/features/blocks/server/index.js.map +1 -1
  73. package/dist/features/typesClient.d.ts +1 -17
  74. package/dist/features/typesClient.d.ts.map +1 -1
  75. package/dist/features/typesClient.js.map +1 -1
  76. package/dist/field/Field.d.ts.map +1 -1
  77. package/dist/field/Field.js +163 -78
  78. package/dist/field/Field.js.map +1 -1
  79. package/dist/field/bundled.css +1 -1
  80. package/dist/field/rscEntry.d.ts.map +1 -1
  81. package/dist/field/rscEntry.js +23 -1
  82. package/dist/field/rscEntry.js.map +1 -1
  83. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  84. package/dist/lexical/LexicalProvider.js +9 -18
  85. package/dist/lexical/LexicalProvider.js.map +1 -1
  86. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  87. package/dist/lexical/config/client/sanitize.js +0 -12
  88. package/dist/lexical/config/client/sanitize.js.map +1 -1
  89. package/dist/types.d.ts +2 -0
  90. package/dist/types.d.ts.map +1 -1
  91. package/dist/types.js.map +1 -1
  92. package/dist/utilities/buildInitialState.d.ts +27 -0
  93. package/dist/utilities/buildInitialState.d.ts.map +1 -0
  94. package/dist/utilities/buildInitialState.js +53 -0
  95. package/dist/utilities/buildInitialState.js.map +1 -0
  96. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  97. package/dist/utilities/fieldsDrawer/DrawerContent.js +8 -5
  98. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  99. package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
  100. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js +8 -8
  101. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -1
  102. package/package.json +6 -6
  103. package/dist/exports/client/Field-GWJ72IYP.js +0 -2
  104. package/dist/exports/client/Field-GWJ72IYP.js.map +0 -7
  105. package/dist/exports/client/chunk-D7PD5DUW.js +0 -2
  106. package/dist/exports/client/chunk-D7PD5DUW.js.map +0 -7
  107. package/dist/exports/client/chunk-XDEGE6I5.js +0 -2
  108. package/dist/exports/client/chunk-XDEGE6I5.js.map +0 -7
  109. package/dist/exports/client/chunk-YGRKYSDC.js +0 -2
  110. package/dist/exports/client/chunk-YGRKYSDC.js.map +0 -7
  111. package/dist/exports/client/component-KLNTKKNE.js +0 -2
  112. package/dist/exports/client/component-KLNTKKNE.js.map +0 -7
  113. package/dist/exports/client/component-YICNYPTU.js +0 -2
  114. package/dist/exports/client/componentInline-6RPSMLNJ.js +0 -2
  115. package/dist/exports/client/componentInline-6RPSMLNJ.js.map +0 -7
  116. package/dist/features/blocks/client/component/FormSavePlugin.d.ts +0 -11
  117. package/dist/features/blocks/client/component/FormSavePlugin.d.ts.map +0 -1
  118. package/dist/features/blocks/client/component/FormSavePlugin.js +0 -53
  119. package/dist/features/blocks/client/component/FormSavePlugin.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"rscEntry.d.ts","sourceRoot":"","sources":["../../src/field/rscEntry.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EAEV,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAKzD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CACzC;IACE,KAAK,EAAE,sBAAsB,CAAA;IAC7B,qBAAqB,EAAE,2BAA2B,CAAA;CACnD,GAAG,oBAAoB,GACtB,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GACxB,oBAAoB,CA2BvB,CAAA"}
1
+ {"version":3,"file":"rscEntry.d.ts","sourceRoot":"","sources":["../../src/field/rscEntry.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EAGV,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAOzD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CACzC;IACE,KAAK,EAAE,sBAAsB,CAAA;IAC7B,qBAAqB,EAAE,2BAA2B,CAAA;CACnD,GAAG,oBAAoB,GACtB,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GACxB,oBAAoB,CAiDvB,CAAA"}
@@ -1,9 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { renderField } from '@payloadcms/ui/forms/renderField';
2
3
  import React from 'react';
3
4
  // eslint-disable-next-line payload/no-imports-from-exports-dir
4
5
  import { RichTextField } from '../exports/client/index.js';
6
+ import { buildInitialState } from '../utilities/buildInitialState.js';
5
7
  import { initLexicalFeatures } from '../utilities/initLexicalFeatures.js';
6
- export const RscEntryLexicalField = args => {
8
+ export const RscEntryLexicalField = async args => {
9
+ const field = args.field;
7
10
  const path = args.path ?? args.clientField.name;
8
11
  const schemaPath = args.schemaPath ?? path;
9
12
  const {
@@ -17,12 +20,31 @@ export const RscEntryLexicalField = args => {
17
20
  sanitizedEditorConfig: args.sanitizedEditorConfig,
18
21
  schemaPath
19
22
  });
23
+ let initialLexicalFormState = {};
24
+ if (args.data?.[field.name]?.root?.children?.length) {
25
+ initialLexicalFormState = await buildInitialState({
26
+ context: {
27
+ id: args.id,
28
+ collectionSlug: args.collectionSlug,
29
+ field,
30
+ fieldSchemaMap: args.fieldSchemaMap,
31
+ lexicalFieldSchemaPath: schemaPath,
32
+ operation: args.operation,
33
+ permissions: args.permissions,
34
+ preferences: args.preferences,
35
+ renderFieldFn: renderField,
36
+ req: args.req
37
+ },
38
+ nodeData: args.data?.[field.name]?.root?.children
39
+ });
40
+ }
20
41
  return /*#__PURE__*/_jsx(RichTextField, {
21
42
  admin: args.admin,
22
43
  clientFeatures: clientFeatures,
23
44
  featureClientSchemaMap: featureClientSchemaMap,
24
45
  field: args.clientField,
25
46
  forceRender: args.forceRender,
47
+ initialLexicalFormState: initialLexicalFormState,
26
48
  lexicalEditorConfig: args.sanitizedEditorConfig.lexical,
27
49
  path: path,
28
50
  permissions: args.permissions,
@@ -1 +1 @@
1
- {"version":3,"file":"rscEntry.js","names":["React","RichTextField","initLexicalFeatures","RscEntryLexicalField","args","path","clientField","name","schemaPath","clientFeatures","featureClientSchemaMap","fieldSchemaMap","i18n","payload","sanitizedEditorConfig","_jsx","admin","field","forceRender","lexicalEditorConfig","lexical","permissions","readOnly","renderedBlocks"],"sources":["../../src/field/rscEntry.tsx"],"sourcesContent":["import type {\n ClientComponentProps,\n FieldPaths,\n RichTextFieldClient,\n ServerComponentProps,\n} from 'payload'\n\nimport React from 'react'\n\nimport type { SanitizedServerEditorConfig } from '../lexical/config/types.js'\nimport type { LexicalFieldAdminProps } from '../types.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { RichTextField } from '../exports/client/index.js'\nimport { initLexicalFeatures } from '../utilities/initLexicalFeatures.js'\nexport const RscEntryLexicalField: React.FC<\n {\n admin: LexicalFieldAdminProps\n sanitizedEditorConfig: SanitizedServerEditorConfig\n } & ClientComponentProps &\n Pick<FieldPaths, 'path'> &\n ServerComponentProps\n> = (args) => {\n const path = args.path ?? (args.clientField as RichTextFieldClient).name\n const schemaPath = args.schemaPath ?? path\n const { clientFeatures, featureClientSchemaMap } = initLexicalFeatures({\n fieldSchemaMap: args.fieldSchemaMap,\n i18n: args.i18n,\n path,\n payload: args.payload,\n sanitizedEditorConfig: args.sanitizedEditorConfig,\n schemaPath,\n })\n return (\n <RichTextField\n admin={args.admin}\n clientFeatures={clientFeatures}\n featureClientSchemaMap={featureClientSchemaMap}\n field={args.clientField as RichTextFieldClient}\n forceRender={args.forceRender}\n lexicalEditorConfig={args.sanitizedEditorConfig.lexical}\n path={path}\n permissions={args.permissions}\n readOnly={args.readOnly}\n renderedBlocks={args.renderedBlocks}\n schemaPath={schemaPath}\n />\n )\n}\n"],"mappings":";AAOA,OAAOA,KAAA,MAAW;AAKlB;AACA,SAASC,aAAa,QAAQ;AAC9B,SAASC,mBAAmB,QAAQ;AACpC,OAAO,MAAMC,oBAAA,GAORC,IAAA;EACH,MAAMC,IAAA,GAAOD,IAAA,CAAKC,IAAI,IAAID,IAAC,CAAKE,WAAW,CAAyBC,IAAI;EACxE,MAAMC,UAAA,GAAaJ,IAAA,CAAKI,UAAU,IAAIH,IAAA;EACtC,MAAM;IAAEI,cAAc;IAAEC;EAAsB,CAAE,GAAGR,mBAAA,CAAoB;IACrES,cAAA,EAAgBP,IAAA,CAAKO,cAAc;IACnCC,IAAA,EAAMR,IAAA,CAAKQ,IAAI;IACfP,IAAA;IACAQ,OAAA,EAAST,IAAA,CAAKS,OAAO;IACrBC,qBAAA,EAAuBV,IAAA,CAAKU,qBAAqB;IACjDN;EACF;EACA,oBACEO,IAAA,CAACd,aAAA;IACCe,KAAA,EAAOZ,IAAA,CAAKY,KAAK;IACjBP,cAAA,EAAgBA,cAAA;IAChBC,sBAAA,EAAwBA,sBAAA;IACxBO,KAAA,EAAOb,IAAA,CAAKE,WAAW;IACvBY,WAAA,EAAad,IAAA,CAAKc,WAAW;IAC7BC,mBAAA,EAAqBf,IAAA,CAAKU,qBAAqB,CAACM,OAAO;IACvDf,IAAA,EAAMA,IAAA;IACNgB,WAAA,EAAajB,IAAA,CAAKiB,WAAW;IAC7BC,QAAA,EAAUlB,IAAA,CAAKkB,QAAQ;IACvBC,cAAA,EAAgBnB,IAAA,CAAKmB,cAAc;IACnCf,UAAA,EAAYA;;AAGlB","ignoreList":[]}
1
+ {"version":3,"file":"rscEntry.js","names":["renderField","React","RichTextField","buildInitialState","initLexicalFeatures","RscEntryLexicalField","args","field","path","clientField","name","schemaPath","clientFeatures","featureClientSchemaMap","fieldSchemaMap","i18n","payload","sanitizedEditorConfig","initialLexicalFormState","data","root","children","length","context","id","collectionSlug","lexicalFieldSchemaPath","operation","permissions","preferences","renderFieldFn","req","nodeData","_jsx","admin","forceRender","lexicalEditorConfig","lexical","readOnly","renderedBlocks"],"sources":["../../src/field/rscEntry.tsx"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\nimport type {\n ClientComponentProps,\n FieldPaths,\n RichTextFieldClient,\n RichTextField as RichTextFieldType,\n ServerComponentProps,\n} from 'payload'\n\nimport { renderField } from '@payloadcms/ui/forms/renderField'\nimport React from 'react'\n\nimport type { SanitizedServerEditorConfig } from '../lexical/config/types.js'\nimport type { LexicalFieldAdminProps } from '../types.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { RichTextField } from '../exports/client/index.js'\nimport { buildInitialState } from '../utilities/buildInitialState.js'\nimport { initLexicalFeatures } from '../utilities/initLexicalFeatures.js'\n\nexport const RscEntryLexicalField: React.FC<\n {\n admin: LexicalFieldAdminProps\n sanitizedEditorConfig: SanitizedServerEditorConfig\n } & ClientComponentProps &\n Pick<FieldPaths, 'path'> &\n ServerComponentProps\n> = async (args) => {\n const field: RichTextFieldType = args.field as RichTextFieldType\n const path = args.path ?? (args.clientField as RichTextFieldClient).name\n const schemaPath = args.schemaPath ?? path\n const { clientFeatures, featureClientSchemaMap } = initLexicalFeatures({\n fieldSchemaMap: args.fieldSchemaMap,\n i18n: args.i18n,\n path,\n payload: args.payload,\n sanitizedEditorConfig: args.sanitizedEditorConfig,\n schemaPath,\n })\n\n let initialLexicalFormState = {}\n if (args.data?.[field.name]?.root?.children?.length) {\n initialLexicalFormState = await buildInitialState({\n context: {\n id: args.id,\n collectionSlug: args.collectionSlug,\n field,\n fieldSchemaMap: args.fieldSchemaMap,\n lexicalFieldSchemaPath: schemaPath,\n operation: args.operation,\n permissions: args.permissions,\n preferences: args.preferences,\n renderFieldFn: renderField,\n req: args.req,\n },\n nodeData: args.data?.[field.name]?.root?.children as SerializedLexicalNode[],\n })\n }\n\n return (\n <RichTextField\n admin={args.admin}\n clientFeatures={clientFeatures}\n featureClientSchemaMap={featureClientSchemaMap}\n field={args.clientField as RichTextFieldClient}\n forceRender={args.forceRender}\n initialLexicalFormState={initialLexicalFormState}\n lexicalEditorConfig={args.sanitizedEditorConfig.lexical}\n path={path}\n permissions={args.permissions}\n readOnly={args.readOnly}\n renderedBlocks={args.renderedBlocks}\n schemaPath={schemaPath}\n />\n )\n}\n"],"mappings":";AASA,SAASA,WAAW,QAAQ;AAC5B,OAAOC,KAAA,MAAW;AAKlB;AACA,SAASC,aAAa,QAAQ;AAC9B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,mBAAmB,QAAQ;AAEpC,OAAO,MAAMC,oBAAA,GAOT,MAAOC,IAAA;EACT,MAAMC,KAAA,GAA2BD,IAAA,CAAKC,KAAK;EAC3C,MAAMC,IAAA,GAAOF,IAAA,CAAKE,IAAI,IAAIF,IAAC,CAAKG,WAAW,CAAyBC,IAAI;EACxE,MAAMC,UAAA,GAAaL,IAAA,CAAKK,UAAU,IAAIH,IAAA;EACtC,MAAM;IAAEI,cAAc;IAAEC;EAAsB,CAAE,GAAGT,mBAAA,CAAoB;IACrEU,cAAA,EAAgBR,IAAA,CAAKQ,cAAc;IACnCC,IAAA,EAAMT,IAAA,CAAKS,IAAI;IACfP,IAAA;IACAQ,OAAA,EAASV,IAAA,CAAKU,OAAO;IACrBC,qBAAA,EAAuBX,IAAA,CAAKW,qBAAqB;IACjDN;EACF;EAEA,IAAIO,uBAAA,GAA0B,CAAC;EAC/B,IAAIZ,IAAA,CAAKa,IAAI,GAAGZ,KAAA,CAAMG,IAAI,CAAC,EAAEU,IAAA,EAAMC,QAAA,EAAUC,MAAA,EAAQ;IACnDJ,uBAAA,GAA0B,MAAMf,iBAAA,CAAkB;MAChDoB,OAAA,EAAS;QACPC,EAAA,EAAIlB,IAAA,CAAKkB,EAAE;QACXC,cAAA,EAAgBnB,IAAA,CAAKmB,cAAc;QACnClB,KAAA;QACAO,cAAA,EAAgBR,IAAA,CAAKQ,cAAc;QACnCY,sBAAA,EAAwBf,UAAA;QACxBgB,SAAA,EAAWrB,IAAA,CAAKqB,SAAS;QACzBC,WAAA,EAAatB,IAAA,CAAKsB,WAAW;QAC7BC,WAAA,EAAavB,IAAA,CAAKuB,WAAW;QAC7BC,aAAA,EAAe9B,WAAA;QACf+B,GAAA,EAAKzB,IAAA,CAAKyB;MACZ;MACAC,QAAA,EAAU1B,IAAA,CAAKa,IAAI,GAAGZ,KAAA,CAAMG,IAAI,CAAC,EAAEU,IAAA,EAAMC;IAC3C;EACF;EAEA,oBACEY,IAAA,CAAC/B,aAAA;IACCgC,KAAA,EAAO5B,IAAA,CAAK4B,KAAK;IACjBtB,cAAA,EAAgBA,cAAA;IAChBC,sBAAA,EAAwBA,sBAAA;IACxBN,KAAA,EAAOD,IAAA,CAAKG,WAAW;IACvB0B,WAAA,EAAa7B,IAAA,CAAK6B,WAAW;IAC7BjB,uBAAA,EAAyBA,uBAAA;IACzBkB,mBAAA,EAAqB9B,IAAA,CAAKW,qBAAqB,CAACoB,OAAO;IACvD7B,IAAA,EAAMA,IAAA;IACNoB,WAAA,EAAatB,IAAA,CAAKsB,WAAW;IAC7BU,QAAA,EAAUhC,IAAA,CAAKgC,QAAQ;IACvBC,cAAA,EAAgBjC,IAAA,CAAKiC,cAAc;IACnC5B,UAAA,EAAYA;;AAGlB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"LexicalProvider.d.ts","sourceRoot":"","sources":["../../src/lexical/LexicalProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIhF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AASpE,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,2BAA2B,CAAA;IACzC,UAAU,EAAE,yBAAyB,CAAA;IACrC,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IACtF,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,qBAAqB,CAAA;CAC7B,CAAA;AAiBD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA0E1D,CAAA"}
1
+ {"version":3,"file":"LexicalProvider.d.ts","sourceRoot":"","sources":["../../src/lexical/LexicalProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIhF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AASpE,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,2BAA2B,CAAA;IACzC,UAAU,EAAE,yBAAyB,CAAA;IACrC,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IACtF,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,qBAAqB,CAAA;CAC7B,CAAA;AAiBD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAkE1D,CAAA"}
@@ -38,31 +38,20 @@ export const LexicalProvider = props => {
38
38
  } = props;
39
39
  const parentContext = useEditorConfigContext();
40
40
  const editorContainerRef = React.useRef(null);
41
- const processedValue = useMemo(() => {
42
- let processed = value;
43
- if (editorConfig?.features?.hooks?.load?.length) {
44
- editorConfig.features.hooks.load.forEach(hook => {
45
- processed = hook({
46
- incomingEditorState: processed
47
- });
48
- });
49
- }
50
- return processed;
51
- }, [editorConfig, value]);
52
- // useMemo for the initialConfig that depends on readOnly and processedValue
41
+ // useMemo for the initialConfig that depends on readOnly and value
53
42
  const initialConfig = useMemo(() => {
54
- if (processedValue && typeof processedValue !== 'object') {
55
- throw new Error('The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' + JSON.stringify(processedValue));
43
+ if (value && typeof value !== 'object') {
44
+ throw new Error('The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' + JSON.stringify(value));
56
45
  }
57
- if (processedValue && Array.isArray(processedValue) && !('root' in processedValue)) {
46
+ if (value && Array.isArray(value) && !('root' in value)) {
58
47
  throw new Error('You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/beta/lexical/migration#migration-via-migration-script-recommended');
59
48
  }
60
- if (processedValue && 'jsonContent' in processedValue) {
49
+ if (value && 'jsonContent' in value) {
61
50
  throw new Error('You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/beta/lexical/migration#migrating-from-payload-plugin-lexical');
62
51
  }
63
52
  return {
64
53
  editable: readOnly !== true,
65
- editorState: processedValue != null ? JSON.stringify(processedValue) : undefined,
54
+ editorState: value != null ? JSON.stringify(value) : undefined,
66
55
  namespace: editorConfig.lexical.namespace,
67
56
  nodes: getEnabledNodes({
68
57
  editorConfig
@@ -72,7 +61,9 @@ export const LexicalProvider = props => {
72
61
  },
73
62
  theme: editorConfig.lexical.theme
74
63
  };
75
- }, [editorConfig, processedValue, readOnly]);
64
+ // Important: do not add readOnly and value to the dependencies array. This will cause the entire lexical editor to re-render if the document is saved, which will
65
+ // cause the editor to lose focus.
66
+ }, [editorConfig]);
76
67
  if (!initialConfig) {
77
68
  return /*#__PURE__*/_jsx("p", {
78
69
  children: "Loading..."
@@ -1 +1 @@
1
- {"version":3,"file":"LexicalProvider.js","names":["LexicalComposer","React","useMemo","EditorConfigProvider","useEditorConfigContext","LexicalEditor","LexicalEditorComponent","getEnabledNodes","NestProviders","children","providers","length","Component","_jsx","slice","LexicalProvider","props","composerKey","editorConfig","fieldProps","onChange","readOnly","value","parentContext","editorContainerRef","useRef","processedValue","processed","features","hooks","load","forEach","hook","incomingEditorState","initialConfig","Error","JSON","stringify","Array","isArray","editable","editorState","undefined","namespace","lexical","nodes","onError","error","theme"],"sources":["../../src/lexical/LexicalProvider.tsx"],"sourcesContent":["'use client'\nimport type { InitialConfigType } from '@lexical/react/LexicalComposer.js'\nimport type { EditorState, LexicalEditor, SerializedEditorState } from 'lexical'\nimport type { ClientField } from 'payload'\n\nimport { LexicalComposer } from '@lexical/react/LexicalComposer.js'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../types.js'\nimport type { SanitizedClientEditorConfig } from './config/types.js'\n\nimport {\n EditorConfigProvider,\n useEditorConfigContext,\n} from './config/client/EditorConfigProvider.js'\nimport { LexicalEditor as LexicalEditorComponent } from './LexicalEditor.js'\nimport { getEnabledNodes } from './nodes/index.js'\n\nexport type LexicalProviderProps = {\n composerKey: string\n editorConfig: SanitizedClientEditorConfig\n fieldProps: LexicalRichTextFieldProps\n onChange: (editorState: EditorState, editor: LexicalEditor, tags: Set<string>) => void\n readOnly: boolean\n value: SerializedEditorState\n}\n\nconst NestProviders = ({ children, providers }) => {\n if (!providers?.length) {\n return children\n }\n const Component = providers[0]\n if (providers.length > 1) {\n return (\n <Component>\n <NestProviders providers={providers.slice(1)}>{children}</NestProviders>\n </Component>\n )\n }\n return <Component>{children}</Component>\n}\n\nexport const LexicalProvider: React.FC<LexicalProviderProps> = (props) => {\n const { composerKey, editorConfig, fieldProps, onChange, readOnly, value } = props\n\n const parentContext = useEditorConfigContext()\n\n const editorContainerRef = React.useRef<HTMLDivElement>(null)\n\n const processedValue = useMemo(() => {\n let processed = value\n if (editorConfig?.features?.hooks?.load?.length) {\n editorConfig.features.hooks.load.forEach((hook) => {\n processed = hook({ incomingEditorState: processed })\n })\n }\n return processed\n }, [editorConfig, value])\n\n // useMemo for the initialConfig that depends on readOnly and processedValue\n const initialConfig = useMemo<InitialConfigType>(() => {\n if (processedValue && typeof processedValue !== 'object') {\n throw new Error(\n 'The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' +\n JSON.stringify(processedValue),\n )\n }\n\n if (processedValue && Array.isArray(processedValue) && !('root' in processedValue)) {\n throw new Error(\n 'You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/beta/lexical/migration#migration-via-migration-script-recommended',\n )\n }\n\n if (processedValue && 'jsonContent' in processedValue) {\n throw new Error(\n 'You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/beta/lexical/migration#migrating-from-payload-plugin-lexical',\n )\n }\n\n return {\n editable: readOnly !== true,\n editorState: processedValue != null ? JSON.stringify(processedValue) : undefined,\n namespace: editorConfig.lexical.namespace,\n nodes: getEnabledNodes({ editorConfig }),\n onError: (error: Error) => {\n throw error\n },\n theme: editorConfig.lexical.theme,\n }\n }, [editorConfig, processedValue, readOnly])\n\n if (!initialConfig) {\n return <p>Loading...</p>\n }\n\n // We need to add initialConfig.editable to the key to force a re-render when the readOnly prop changes.\n // Without it, there were cases where lexical editors inside drawers turn readOnly initially - a few miliseconds later they turn editable, but the editor does not re-render and stays readOnly.\n return (\n <LexicalComposer initialConfig={initialConfig} key={composerKey + initialConfig.editable}>\n <EditorConfigProvider\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n fieldProps={fieldProps}\n parentContext={parentContext}\n >\n <NestProviders providers={editorConfig.features.providers}>\n <LexicalEditorComponent\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n onChange={onChange}\n />\n </NestProviders>\n </EditorConfigProvider>\n </LexicalComposer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LexicalProvider.js","names":["LexicalComposer","React","useMemo","EditorConfigProvider","useEditorConfigContext","LexicalEditor","LexicalEditorComponent","getEnabledNodes","NestProviders","children","providers","length","Component","_jsx","slice","LexicalProvider","props","composerKey","editorConfig","fieldProps","onChange","readOnly","value","parentContext","editorContainerRef","useRef","initialConfig","Error","JSON","stringify","Array","isArray","editable","editorState","undefined","namespace","lexical","nodes","onError","error","theme","features"],"sources":["../../src/lexical/LexicalProvider.tsx"],"sourcesContent":["'use client'\nimport type { InitialConfigType } from '@lexical/react/LexicalComposer.js'\nimport type { EditorState, LexicalEditor, SerializedEditorState } from 'lexical'\nimport type { ClientField } from 'payload'\n\nimport { LexicalComposer } from '@lexical/react/LexicalComposer.js'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../types.js'\nimport type { SanitizedClientEditorConfig } from './config/types.js'\n\nimport {\n EditorConfigProvider,\n useEditorConfigContext,\n} from './config/client/EditorConfigProvider.js'\nimport { LexicalEditor as LexicalEditorComponent } from './LexicalEditor.js'\nimport { getEnabledNodes } from './nodes/index.js'\n\nexport type LexicalProviderProps = {\n composerKey: string\n editorConfig: SanitizedClientEditorConfig\n fieldProps: LexicalRichTextFieldProps\n onChange: (editorState: EditorState, editor: LexicalEditor, tags: Set<string>) => void\n readOnly: boolean\n value: SerializedEditorState\n}\n\nconst NestProviders = ({ children, providers }) => {\n if (!providers?.length) {\n return children\n }\n const Component = providers[0]\n if (providers.length > 1) {\n return (\n <Component>\n <NestProviders providers={providers.slice(1)}>{children}</NestProviders>\n </Component>\n )\n }\n return <Component>{children}</Component>\n}\n\nexport const LexicalProvider: React.FC<LexicalProviderProps> = (props) => {\n const { composerKey, editorConfig, fieldProps, onChange, readOnly, value } = props\n\n const parentContext = useEditorConfigContext()\n\n const editorContainerRef = React.useRef<HTMLDivElement>(null)\n\n // useMemo for the initialConfig that depends on readOnly and value\n const initialConfig = useMemo<InitialConfigType>(() => {\n if (value && typeof value !== 'object') {\n throw new Error(\n 'The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' +\n JSON.stringify(value),\n )\n }\n\n if (value && Array.isArray(value) && !('root' in value)) {\n throw new Error(\n 'You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/beta/lexical/migration#migration-via-migration-script-recommended',\n )\n }\n\n if (value && 'jsonContent' in value) {\n throw new Error(\n 'You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/beta/lexical/migration#migrating-from-payload-plugin-lexical',\n )\n }\n\n return {\n editable: readOnly !== true,\n editorState: value != null ? JSON.stringify(value) : undefined,\n namespace: editorConfig.lexical.namespace,\n nodes: getEnabledNodes({ editorConfig }),\n onError: (error: Error) => {\n throw error\n },\n theme: editorConfig.lexical.theme,\n }\n // Important: do not add readOnly and value to the dependencies array. This will cause the entire lexical editor to re-render if the document is saved, which will\n // cause the editor to lose focus.\n }, [editorConfig])\n\n if (!initialConfig) {\n return <p>Loading...</p>\n }\n\n // We need to add initialConfig.editable to the key to force a re-render when the readOnly prop changes.\n // Without it, there were cases where lexical editors inside drawers turn readOnly initially - a few miliseconds later they turn editable, but the editor does not re-render and stays readOnly.\n return (\n <LexicalComposer initialConfig={initialConfig} key={composerKey + initialConfig.editable}>\n <EditorConfigProvider\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n fieldProps={fieldProps}\n parentContext={parentContext}\n >\n <NestProviders providers={editorConfig.features.providers}>\n <LexicalEditorComponent\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n onChange={onChange}\n />\n </NestProviders>\n </EditorConfigProvider>\n </LexicalComposer>\n )\n}\n"],"mappings":"AAAA;;;AAKA,SAASA,eAAe,QAAQ;AAChC,YAAYC,KAAA,MAAW;AACvB,SAASC,OAAO,QAAQ;AAKxB,SACEC,oBAAoB,EACpBC,sBAAsB,QACjB;AACP,SAASC,aAAA,IAAiBC,sBAAsB,QAAQ;AACxD,SAASC,eAAe,QAAQ;AAWhC,MAAMC,aAAA,GAAgBA,CAAC;EAAEC,QAAQ;EAAEC;AAAS,CAAE;EAC5C,IAAI,CAACA,SAAA,EAAWC,MAAA,EAAQ;IACtB,OAAOF,QAAA;EACT;EACA,MAAMG,SAAA,GAAYF,SAAS,CAAC,EAAE;EAC9B,IAAIA,SAAA,CAAUC,MAAM,GAAG,GAAG;IACxB,oBACEE,IAAA,CAACD,SAAA;gBACC,aAAAC,IAAA,CAACL,aAAA;QAAcE,SAAA,EAAWA,SAAA,CAAUI,KAAK,CAAC;kBAAKL;;;EAGrD;EACA,oBAAOI,IAAA,CAACD,SAAA;cAAWH;;AACrB;AAEA,OAAO,MAAMM,eAAA,GAAmDC,KAAA;EAC9D,MAAM;IAAEC,WAAW;IAAEC,YAAY;IAAEC,UAAU;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAK,CAAE,GAAGN,KAAA;EAE7E,MAAMO,aAAA,GAAgBnB,sBAAA;EAEtB,MAAMoB,kBAAA,GAAqBvB,KAAA,CAAMwB,MAAM,CAAiB;EAExD;EACA,MAAMC,aAAA,GAAgBxB,OAAA,CAA2B;IAC/C,IAAIoB,KAAA,IAAS,OAAOA,KAAA,KAAU,UAAU;MACtC,MAAM,IAAIK,KAAA,CACR,kLACEC,IAAA,CAAKC,SAAS,CAACP,KAAA;IAErB;IAEA,IAAIA,KAAA,IAASQ,KAAA,CAAMC,OAAO,CAACT,KAAA,KAAU,EAAE,UAAUA,KAAI,GAAI;MACvD,MAAM,IAAIK,KAAA,CACR;IAEJ;IAEA,IAAIL,KAAA,IAAS,iBAAiBA,KAAA,EAAO;MACnC,MAAM,IAAIK,KAAA,CACR;IAEJ;IAEA,OAAO;MACLK,QAAA,EAAUX,QAAA,KAAa;MACvBY,WAAA,EAAaX,KAAA,IAAS,OAAOM,IAAA,CAAKC,SAAS,CAACP,KAAA,IAASY,SAAA;MACrDC,SAAA,EAAWjB,YAAA,CAAakB,OAAO,CAACD,SAAS;MACzCE,KAAA,EAAO9B,eAAA,CAAgB;QAAEW;MAAa;MACtCoB,OAAA,EAAUC,KAAA;QACR,MAAMA,KAAA;MACR;MACAC,KAAA,EAAOtB,YAAA,CAAakB,OAAO,CAACI;IAC9B;IACA;IACA;EACF,GAAG,CAACtB,YAAA,CAAa;EAEjB,IAAI,CAACQ,aAAA,EAAe;IAClB,oBAAOb,IAAA,CAAC;gBAAE;;EACZ;EAEA;EACA;EACA,oBACEA,IAAA,CAACb,eAAA;IAAgB0B,aAAA,EAAeA,aAAA;cAC9B,aAAAb,IAAA,CAACV,oBAAA;MACCe,YAAA,EAAcA,YAAA;MACdM,kBAAA,EAAoBA,kBAAA;MACpBL,UAAA,EAAYA,UAAA;MACZI,aAAA,EAAeA,aAAA;gBAEf,aAAAV,IAAA,CAACL,aAAA;QAAcE,SAAA,EAAWQ,YAAA,CAAauB,QAAQ,CAAC/B,SAAS;kBACvD,aAAAG,IAAA,CAACP,sBAAA;UACCY,YAAA,EAAcA,YAAA;UACdM,kBAAA,EAAoBA,kBAAA;UACpBJ,QAAA,EAAUA;;;;KAXkCH,WAAA,GAAcS,aAAA,CAAcM,QAAQ;AAiB5F","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../../src/lexical/config/client/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElE,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAE9D,eAAO,MAAM,sBAAsB,aACvB,wBAAwB,KACjC,uBAsMF,CAAA;AAED,wBAAgB,0BAA0B,CACxC,wBAAwB,EAAE,wBAAwB,EAClD,OAAO,CAAC,EAAE,mBAAmB,EAC7B,KAAK,CAAC,EAAE,sBAAsB,GAC7B,2BAA2B,CAO7B"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../../src/lexical/config/client/sanitize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElE,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAE9D,eAAO,MAAM,sBAAsB,aACvB,wBAAwB,KACjC,uBAyLF,CAAA;AAED,wBAAgB,0BAA0B,CACxC,wBAAwB,EAAE,wBAAwB,EAClD,OAAO,CAAC,EAAE,mBAAmB,EAC7B,KAAK,CAAC,EAAE,sBAAsB,GAC7B,2BAA2B,CAO7B"}
@@ -3,10 +3,6 @@
3
3
  export const sanitizeClientFeatures = features => {
4
4
  const sanitized = {
5
5
  enabledFeatures: [],
6
- hooks: {
7
- load: [],
8
- save: []
9
- },
10
6
  markdownTransformers: [],
11
7
  nodes: [],
12
8
  plugins: [],
@@ -26,14 +22,6 @@ export const sanitizeClientFeatures = features => {
26
22
  return sanitized;
27
23
  }
28
24
  features.forEach(feature => {
29
- if (feature.hooks) {
30
- if (feature.hooks?.load?.length) {
31
- sanitized.hooks.load = sanitized.hooks.load.concat(feature.hooks.load);
32
- }
33
- if (feature.hooks?.save?.length) {
34
- sanitized.hooks.save = sanitized.hooks.save.concat(feature.hooks.save);
35
- }
36
- }
37
25
  if (feature.providers?.length) {
38
26
  sanitized.providers = sanitized.providers.concat(feature.providers);
39
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.js","names":["sanitizeClientFeatures","features","sanitized","enabledFeatures","hooks","load","save","markdownTransformers","nodes","plugins","providers","slashMenu","dynamicGroups","groups","toolbarFixed","toolbarInline","size","forEach","feature","length","concat","plugin","i","push","clientProps","sanitizedClientFeatureProps","Component","key","position","group","foundGroup","find","sanitizedGroup","items","filter","optionGroup","sort","a","b","order","sanitizeClientEditorConfig","resolvedClientFeatureMap","lexical","admin","resolvedFeatureMap"],"sources":["../../../../src/lexical/config/client/sanitize.ts"],"sourcesContent":["'use client'\n\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical'\n\nimport type {\n ResolvedClientFeatureMap,\n SanitizedClientFeatures,\n} from '../../../features/typesClient.js'\nimport type { LexicalFieldAdminProps } from '../../../types.js'\nimport type { SanitizedClientEditorConfig } from '../types.js'\n\nexport const sanitizeClientFeatures = (\n features: ResolvedClientFeatureMap,\n): SanitizedClientFeatures => {\n const sanitized: SanitizedClientFeatures = {\n enabledFeatures: [],\n hooks: {\n load: [],\n save: [],\n },\n markdownTransformers: [],\n nodes: [],\n plugins: [],\n providers: [],\n slashMenu: {\n dynamicGroups: [],\n groups: [],\n },\n toolbarFixed: {\n groups: [],\n },\n toolbarInline: {\n groups: [],\n },\n }\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature.hooks) {\n if (feature.hooks?.load?.length) {\n sanitized.hooks.load = sanitized.hooks.load.concat(feature.hooks.load)\n }\n if (feature.hooks?.save?.length) {\n sanitized.hooks.save = sanitized.hooks.save.concat(feature.hooks.save)\n }\n }\n\n if (feature.providers?.length) {\n sanitized.providers = sanitized.providers.concat(feature.providers)\n }\n\n if (feature.nodes?.length) {\n sanitized.nodes = sanitized.nodes.concat(feature.nodes)\n }\n if (feature.plugins?.length) {\n feature.plugins.forEach((plugin, i) => {\n sanitized.plugins?.push({\n clientProps: feature.sanitizedClientFeatureProps,\n Component: plugin.Component,\n key: feature.key + i,\n position: plugin.position,\n })\n })\n }\n\n if (feature.toolbarInline?.groups?.length) {\n for (const group of feature.toolbarInline.groups) {\n // 1. find the group with the same key or create new one\n let foundGroup = sanitized.toolbarInline.groups.find(\n (sanitizedGroup) => sanitizedGroup.key === group.key,\n )\n if (!foundGroup) {\n foundGroup = {\n ...group,\n items: [],\n }\n } else {\n sanitized.toolbarInline.groups = sanitized.toolbarInline.groups.filter(\n (sanitizedGroup) => sanitizedGroup.key !== group.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.items?.length) {\n foundGroup.items = foundGroup.items.concat(group.items)\n }\n sanitized.toolbarInline?.groups.push(foundGroup)\n }\n }\n\n if (feature.toolbarFixed?.groups?.length) {\n for (const group of feature.toolbarFixed.groups) {\n // 1. find the group with the same key or create new one\n let foundGroup = sanitized.toolbarFixed.groups.find(\n (sanitizedGroup) => sanitizedGroup.key === group.key,\n )\n if (!foundGroup) {\n foundGroup = {\n ...group,\n items: [],\n }\n } else {\n sanitized.toolbarFixed.groups = sanitized.toolbarFixed.groups.filter(\n (sanitizedGroup) => sanitizedGroup.key !== group.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.items?.length) {\n foundGroup.items = foundGroup.items.concat(group.items)\n }\n sanitized.toolbarFixed?.groups.push(foundGroup)\n }\n }\n\n if (feature.slashMenu?.groups) {\n if (feature.slashMenu.dynamicGroups?.length) {\n sanitized.slashMenu.dynamicGroups = sanitized.slashMenu.dynamicGroups.concat(\n feature.slashMenu.dynamicGroups,\n )\n }\n\n for (const optionGroup of feature.slashMenu.groups) {\n // 1. find the group with the same name or create new one\n let group = sanitized.slashMenu.groups.find((group) => group.key === optionGroup.key)\n if (!group) {\n group = {\n ...optionGroup,\n items: [],\n }\n } else {\n sanitized.slashMenu.groups = sanitized.slashMenu.groups.filter(\n (group) => group.key !== optionGroup.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (optionGroup?.items?.length) {\n group.items = group.items.concat(optionGroup.items)\n }\n sanitized.slashMenu.groups.push(group)\n }\n }\n\n if (feature.markdownTransformers?.length) {\n sanitized.markdownTransformers = sanitized.markdownTransformers.concat(\n feature.markdownTransformers,\n )\n }\n sanitized.enabledFeatures.push(feature.key)\n })\n\n // Sort sanitized.toolbarInline.groups by order property\n sanitized.toolbarInline.groups.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n // Sort sanitized.toolbarFixed.groups by order property\n sanitized.toolbarFixed.groups.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n\n // Sort sanitized.toolbarInline.groups.[group].entries by order property\n for (const group of sanitized.toolbarInline.groups) {\n group.items.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n // Sort sanitized.toolbarFixed.groups.[group].entries by order property\n for (const group of sanitized.toolbarFixed.groups) {\n group.items.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n return sanitized\n}\n\nexport function sanitizeClientEditorConfig(\n resolvedClientFeatureMap: ResolvedClientFeatureMap,\n lexical?: LexicalEditorConfig,\n admin?: LexicalFieldAdminProps,\n): SanitizedClientEditorConfig {\n return {\n admin,\n features: sanitizeClientFeatures(resolvedClientFeatureMap),\n lexical: lexical!,\n resolvedFeatureMap: resolvedClientFeatureMap,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sanitize.js","names":["sanitizeClientFeatures","features","sanitized","enabledFeatures","markdownTransformers","nodes","plugins","providers","slashMenu","dynamicGroups","groups","toolbarFixed","toolbarInline","size","forEach","feature","length","concat","plugin","i","push","clientProps","sanitizedClientFeatureProps","Component","key","position","group","foundGroup","find","sanitizedGroup","items","filter","optionGroup","sort","a","b","order","sanitizeClientEditorConfig","resolvedClientFeatureMap","lexical","admin","resolvedFeatureMap"],"sources":["../../../../src/lexical/config/client/sanitize.ts"],"sourcesContent":["'use client'\n\nimport type { EditorConfig as LexicalEditorConfig } from 'lexical'\n\nimport type {\n ResolvedClientFeatureMap,\n SanitizedClientFeatures,\n} from '../../../features/typesClient.js'\nimport type { LexicalFieldAdminProps } from '../../../types.js'\nimport type { SanitizedClientEditorConfig } from '../types.js'\n\nexport const sanitizeClientFeatures = (\n features: ResolvedClientFeatureMap,\n): SanitizedClientFeatures => {\n const sanitized: SanitizedClientFeatures = {\n enabledFeatures: [],\n markdownTransformers: [],\n nodes: [],\n plugins: [],\n providers: [],\n slashMenu: {\n dynamicGroups: [],\n groups: [],\n },\n toolbarFixed: {\n groups: [],\n },\n toolbarInline: {\n groups: [],\n },\n }\n\n if (!features?.size) {\n return sanitized\n }\n\n features.forEach((feature) => {\n if (feature.providers?.length) {\n sanitized.providers = sanitized.providers.concat(feature.providers)\n }\n\n if (feature.nodes?.length) {\n sanitized.nodes = sanitized.nodes.concat(feature.nodes)\n }\n if (feature.plugins?.length) {\n feature.plugins.forEach((plugin, i) => {\n sanitized.plugins?.push({\n clientProps: feature.sanitizedClientFeatureProps,\n Component: plugin.Component,\n key: feature.key + i,\n position: plugin.position,\n })\n })\n }\n\n if (feature.toolbarInline?.groups?.length) {\n for (const group of feature.toolbarInline.groups) {\n // 1. find the group with the same key or create new one\n let foundGroup = sanitized.toolbarInline.groups.find(\n (sanitizedGroup) => sanitizedGroup.key === group.key,\n )\n if (!foundGroup) {\n foundGroup = {\n ...group,\n items: [],\n }\n } else {\n sanitized.toolbarInline.groups = sanitized.toolbarInline.groups.filter(\n (sanitizedGroup) => sanitizedGroup.key !== group.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.items?.length) {\n foundGroup.items = foundGroup.items.concat(group.items)\n }\n sanitized.toolbarInline?.groups.push(foundGroup)\n }\n }\n\n if (feature.toolbarFixed?.groups?.length) {\n for (const group of feature.toolbarFixed.groups) {\n // 1. find the group with the same key or create new one\n let foundGroup = sanitized.toolbarFixed.groups.find(\n (sanitizedGroup) => sanitizedGroup.key === group.key,\n )\n if (!foundGroup) {\n foundGroup = {\n ...group,\n items: [],\n }\n } else {\n sanitized.toolbarFixed.groups = sanitized.toolbarFixed.groups.filter(\n (sanitizedGroup) => sanitizedGroup.key !== group.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (group?.items?.length) {\n foundGroup.items = foundGroup.items.concat(group.items)\n }\n sanitized.toolbarFixed?.groups.push(foundGroup)\n }\n }\n\n if (feature.slashMenu?.groups) {\n if (feature.slashMenu.dynamicGroups?.length) {\n sanitized.slashMenu.dynamicGroups = sanitized.slashMenu.dynamicGroups.concat(\n feature.slashMenu.dynamicGroups,\n )\n }\n\n for (const optionGroup of feature.slashMenu.groups) {\n // 1. find the group with the same name or create new one\n let group = sanitized.slashMenu.groups.find((group) => group.key === optionGroup.key)\n if (!group) {\n group = {\n ...optionGroup,\n items: [],\n }\n } else {\n sanitized.slashMenu.groups = sanitized.slashMenu.groups.filter(\n (group) => group.key !== optionGroup.key,\n )\n }\n\n // 2. Add options to group options array and add to sanitized.slashMenu.groupsWithOptions\n if (optionGroup?.items?.length) {\n group.items = group.items.concat(optionGroup.items)\n }\n sanitized.slashMenu.groups.push(group)\n }\n }\n\n if (feature.markdownTransformers?.length) {\n sanitized.markdownTransformers = sanitized.markdownTransformers.concat(\n feature.markdownTransformers,\n )\n }\n sanitized.enabledFeatures.push(feature.key)\n })\n\n // Sort sanitized.toolbarInline.groups by order property\n sanitized.toolbarInline.groups.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n // Sort sanitized.toolbarFixed.groups by order property\n sanitized.toolbarFixed.groups.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n\n // Sort sanitized.toolbarInline.groups.[group].entries by order property\n for (const group of sanitized.toolbarInline.groups) {\n group.items.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n // Sort sanitized.toolbarFixed.groups.[group].entries by order property\n for (const group of sanitized.toolbarFixed.groups) {\n group.items.sort((a, b) => {\n if (a.order && b.order) {\n return a.order - b.order\n } else if (a.order) {\n return -1\n } else if (b.order) {\n return 1\n } else {\n return 0\n }\n })\n }\n\n return sanitized\n}\n\nexport function sanitizeClientEditorConfig(\n resolvedClientFeatureMap: ResolvedClientFeatureMap,\n lexical?: LexicalEditorConfig,\n admin?: LexicalFieldAdminProps,\n): SanitizedClientEditorConfig {\n return {\n admin,\n features: sanitizeClientFeatures(resolvedClientFeatureMap),\n lexical: lexical!,\n resolvedFeatureMap: resolvedClientFeatureMap,\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/dist/types.d.ts CHANGED
@@ -3,6 +3,7 @@ import type { ClientField, DefaultCellComponentProps, RichTextAdapter, RichTextF
3
3
  import type { BaseClientFeatureProps, FeatureProviderProviderClient } from './features/typesClient.js';
4
4
  import type { FeatureProviderServer } from './features/typesServer.js';
5
5
  import type { SanitizedServerEditorConfig } from './lexical/config/types.js';
6
+ import type { InitialLexicalFormState } from './utilities/buildInitialState.js';
6
7
  export type LexicalFieldAdminProps = {
7
8
  /**
8
9
  * Controls if the gutter (padding to the left & gray vertical line) should be hidden. @default false
@@ -67,6 +68,7 @@ export type LexicalRichTextFieldProps = {
67
68
  };
68
69
  };
69
70
  featureClientSchemaMap: FeatureClientSchemaMap;
71
+ initialLexicalFormState: InitialLexicalFormState;
70
72
  lexicalEditorConfig: LexicalEditorConfig;
71
73
  } & Pick<ServerFieldBase, 'permissions'> & RichTextFieldClientProps<SerializedEditorState, AdapterProps, object>;
72
74
  export type LexicalRichTextCellProps = DefaultCellComponentProps<RichTextFieldClient<SerializedEditorState, AdapterProps, object>, SerializedEditorState>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type { EditorConfig as LexicalEditorConfig, SerializedEditorState } from 'lexical'\nimport type {\n ClientField,\n DefaultCellComponentProps,\n RichTextAdapter,\n RichTextFieldClient,\n RichTextFieldClientProps,\n SanitizedConfig,\n ServerFieldBase,\n} from 'payload'\n\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'\n\nexport type LexicalFieldAdminProps = {\n /**\n * Controls if the gutter (padding to the left & gray vertical line) should be hidden. @default false\n */\n hideGutter?: boolean\n}\n\nexport type LexicalEditorProps = {\n admin?: LexicalFieldAdminProps\n features?:\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 lexical?: LexicalEditorConfig\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 FeatureClientSchemaMap = {\n [featureKey: string]: {\n [key: string]: ClientField[]\n }\n}\n\nexport type LexicalRichTextFieldProps = {\n admin: LexicalFieldAdminProps\n // clientFeatures is added through the rsc field\n clientFeatures: {\n [featureKey: string]: {\n clientFeatureProps?: object\n clientFeatureProvider?: FeatureProviderProviderClient<any, any>\n }\n }\n featureClientSchemaMap: FeatureClientSchemaMap\n lexicalEditorConfig: LexicalEditorConfig\n} & Pick<ServerFieldBase, 'permissions'> &\n RichTextFieldClientProps<SerializedEditorState, AdapterProps, object>\n\nexport type LexicalRichTextCellProps = DefaultCellComponentProps<\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"],"mappings":"AA8GA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type { EditorConfig as LexicalEditorConfig, SerializedEditorState } from 'lexical'\nimport type {\n ClientField,\n DefaultCellComponentProps,\n RichTextAdapter,\n RichTextFieldClient,\n RichTextFieldClientProps,\n SanitizedConfig,\n ServerFieldBase,\n} from 'payload'\n\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'\n\nexport type LexicalFieldAdminProps = {\n /**\n * Controls if the gutter (padding to the left & gray vertical line) should be hidden. @default false\n */\n hideGutter?: boolean\n}\n\nexport type LexicalEditorProps = {\n admin?: LexicalFieldAdminProps\n features?:\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 lexical?: LexicalEditorConfig\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 FeatureClientSchemaMap = {\n [featureKey: string]: {\n [key: string]: ClientField[]\n }\n}\n\nexport type LexicalRichTextFieldProps = {\n admin: LexicalFieldAdminProps\n // clientFeatures is added through the rsc field\n clientFeatures: {\n [featureKey: string]: {\n clientFeatureProps?: object\n clientFeatureProvider?: FeatureProviderProviderClient<any, any>\n }\n }\n featureClientSchemaMap: FeatureClientSchemaMap\n initialLexicalFormState: InitialLexicalFormState\n lexicalEditorConfig: LexicalEditorConfig\n} & Pick<ServerFieldBase, 'permissions'> &\n RichTextFieldClientProps<SerializedEditorState, AdapterProps, object>\n\nexport type LexicalRichTextCellProps = DefaultCellComponentProps<\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"],"mappings":"AAgHA","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ import type { SerializedLexicalNode } from 'lexical';
2
+ import type { DocumentPreferences, FieldSchemaMap, FormState, Operation, PayloadRequest, RichTextField, SanitizedFieldPermissions } from 'payload';
3
+ export type InitialLexicalFormState = {
4
+ [nodeID: string]: {
5
+ [key: string]: any;
6
+ formState?: FormState;
7
+ };
8
+ };
9
+ type Props = {
10
+ context: {
11
+ collectionSlug: string;
12
+ field: RichTextField;
13
+ fieldSchemaMap: FieldSchemaMap;
14
+ id?: number | string;
15
+ lexicalFieldSchemaPath: string;
16
+ operation: Operation;
17
+ permissions?: SanitizedFieldPermissions;
18
+ preferences: DocumentPreferences;
19
+ renderFieldFn: any;
20
+ req: PayloadRequest;
21
+ };
22
+ initialState?: InitialLexicalFormState;
23
+ nodeData: SerializedLexicalNode[];
24
+ };
25
+ export declare function buildInitialState({ context, initialState: initialStateFromArgs, nodeData, }: Props): Promise<InitialLexicalFormState>;
26
+ export {};
27
+ //# sourceMappingURL=buildInitialState.d.ts.map
@@ -0,0 +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,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,cAAc,EAAE,MAAM,CAAA;QACtB,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,CAwD1C"}
@@ -0,0 +1,53 @@
1
+ import { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState';
2
+ export async function buildInitialState({
3
+ context,
4
+ initialState: initialStateFromArgs,
5
+ nodeData
6
+ }) {
7
+ let initialState = initialStateFromArgs ?? {};
8
+ for (const node of nodeData) {
9
+ if ('children' in node) {
10
+ initialState = await buildInitialState({
11
+ context,
12
+ initialState,
13
+ nodeData: node.children
14
+ });
15
+ }
16
+ if (node.type === 'block' || node.type === 'inlineBlock') {
17
+ const blockNode = node;
18
+ const id = blockNode?.fields?.id;
19
+ if (!id) {
20
+ continue;
21
+ }
22
+ const schemaFieldsPath = node.type === 'block' ? `${context.lexicalFieldSchemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockNode.fields.blockType}.fields` : `${context.lexicalFieldSchemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${blockNode.fields.blockType}.fields`;
23
+ // Build form state for the block
24
+ const formStateResult = await fieldSchemasToFormState({
25
+ id: context.id,
26
+ collectionSlug: context.collectionSlug,
27
+ data: blockNode.fields,
28
+ fields: context.fieldSchemaMap.get(schemaFieldsPath)?.fields,
29
+ fieldSchemaMap: context.fieldSchemaMap,
30
+ operation: context.operation,
31
+ permissions: true,
32
+ preferences: context.preferences,
33
+ renderAllFields: true,
34
+ renderFieldFn: context.renderFieldFn,
35
+ req: context.req,
36
+ schemaPath: schemaFieldsPath
37
+ });
38
+ if (!initialState[id]) {
39
+ initialState[id] = {};
40
+ }
41
+ initialState[id].formState = formStateResult;
42
+ if (node.type === 'block') {
43
+ const currentFieldPreferences = context.preferences?.fields[context.field.name];
44
+ const collapsedArray = currentFieldPreferences?.collapsed;
45
+ if (collapsedArray && collapsedArray.includes(id)) {
46
+ initialState[id].collapsed = true;
47
+ }
48
+ }
49
+ }
50
+ }
51
+ return initialState;
52
+ }
53
+ //# sourceMappingURL=buildInitialState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildInitialState.js","names":["fieldSchemasToFormState","buildInitialState","context","initialState","initialStateFromArgs","nodeData","node","children","type","blockNode","id","fields","schemaFieldsPath","lexicalFieldSchemaPath","blockType","formStateResult","collectionSlug","data","fieldSchemaMap","get","operation","permissions","preferences","renderAllFields","renderFieldFn","req","schemaPath","formState","currentFieldPreferences","field","name","collapsedArray","collapsed","includes"],"sources":["../../src/utilities/buildInitialState.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\nimport type {\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 '../nodeTypes.js'\n\nexport type InitialLexicalFormState = {\n [nodeID: string]: {\n [key: string]: any\n formState?: FormState\n }\n}\n\ntype Props = {\n context: {\n collectionSlug: string\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 collectionSlug: context.collectionSlug,\n data: blockNode.fields,\n fields: (context.fieldSchemaMap.get(schemaFieldsPath) as any)?.fields,\n fieldSchemaMap: context.fieldSchemaMap,\n operation: context.operation as any, // TODO: Type\n permissions: true,\n preferences: context.preferences,\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 (collapsedArray && collapsedArray.includes(id)) {\n initialState[id].collapsed = true\n }\n }\n }\n }\n return initialState\n}\n"],"mappings":"AAWA,SAASA,uBAAuB,QAAQ;AA4BxC,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,cAAA,EAAgBd,OAAA,CAAQc,cAAc;QACtCC,IAAA,EAAMR,SAAA,CAAUE,MAAM;QACtBA,MAAA,EAAST,OAAA,CAAQgB,cAAc,CAACC,GAAG,CAACP,gBAAA,GAA2BD,MAAA;QAC/DO,cAAA,EAAgBhB,OAAA,CAAQgB,cAAc;QACtCE,SAAA,EAAWlB,OAAA,CAAQkB,SAAS;QAC5BC,WAAA,EAAa;QACbC,WAAA,EAAapB,OAAA,CAAQoB,WAAW;QAChCC,eAAA,EAAiB;QACjBC,aAAA,EAAetB,OAAA,CAAQsB,aAAa;QACpCC,GAAA,EAAKvB,OAAA,CAAQuB,GAAG;QAChBC,UAAA,EAAYd;MACd;MAEA,IAAI,CAACT,YAAY,CAACO,EAAA,CAAG,EAAE;QACrBP,YAAY,CAACO,EAAA,CAAG,GAAG,CAAC;MACtB;MAEAP,YAAY,CAACO,EAAA,CAAG,CAACiB,SAAS,GAAGZ,eAAA;MAE7B,IAAIT,IAAA,CAAKE,IAAI,KAAK,SAAS;QACzB,MAAMoB,uBAAA,GAA0B1B,OAAA,CAAQoB,WAAW,EAAEX,MAAM,CAACT,OAAA,CAAQ2B,KAAK,CAACC,IAAI,CAAC;QAC/E,MAAMC,cAAA,GAAiBH,uBAAA,EAAyBI,SAAA;QAChD,IAAID,cAAA,IAAkBA,cAAA,CAAeE,QAAQ,CAACvB,EAAA,GAAK;UACjDP,YAAY,CAACO,EAAA,CAAG,CAACsB,SAAS,GAAG;QAC/B;MACF;IACF;EACF;EACA,OAAO7B,YAAA;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/utilities/fieldsDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAIpD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,aAAa,CAAC,CAqIzF,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/utilities/fieldsDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAIpD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,aAAa,CAAC,CAwHzF,CAAA"}
@@ -21,7 +21,6 @@ export const DrawerContent = ({
21
21
  const {
22
22
  id,
23
23
  collectionSlug,
24
- docPermissions,
25
24
  getDocPreferences,
26
25
  globalSlug
27
26
  } = useDocumentInfo();
@@ -48,7 +47,9 @@ export const DrawerContent = ({
48
47
  id,
49
48
  collectionSlug,
50
49
  data: data ?? {},
51
- docPermissions,
50
+ docPermissions: {
51
+ fields: true
52
+ },
52
53
  docPreferences: await getDocPreferences(),
53
54
  globalSlug,
54
55
  operation: 'update',
@@ -62,7 +63,7 @@ export const DrawerContent = ({
62
63
  return () => {
63
64
  abortAndIgnore(controller);
64
65
  };
65
- }, [schemaFieldsPath, id, data, getFormState, collectionSlug, globalSlug, docPermissions, getDocPreferences]);
66
+ }, [schemaFieldsPath, id, data, getFormState, collectionSlug, globalSlug, getDocPreferences]);
66
67
  const onChange = useCallback(async ({
67
68
  formState: prevFormState
68
69
  }) => {
@@ -74,7 +75,9 @@ export const DrawerContent = ({
74
75
  } = await getFormState({
75
76
  id,
76
77
  collectionSlug,
77
- docPermissions,
78
+ docPermissions: {
79
+ fields: true
80
+ },
78
81
  docPreferences: await getDocPreferences(),
79
82
  formState: prevFormState,
80
83
  globalSlug,
@@ -86,7 +89,7 @@ export const DrawerContent = ({
86
89
  return prevFormState;
87
90
  }
88
91
  return state_0;
89
- }, [getFormState, id, collectionSlug, docPermissions, getDocPreferences, globalSlug, schemaFieldsPath]);
92
+ }, [getFormState, id, collectionSlug, getDocPreferences, globalSlug, schemaFieldsPath]);
90
93
  // cleanup effect
91
94
  useEffect(() => {
92
95
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["Form","FormSubmit","RenderFields","useDocumentInfo","useServerFunctions","useTranslation","abortAndIgnore","React","useCallback","useEffect","useRef","useState","v4","uuid","useEditorConfigContext","DrawerContent","data","featureKey","fieldMapOverride","handleDrawerSubmit","schemaFieldsPathOverride","schemaPath","schemaPathSuffix","t","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","onChangeAbortControllerRef","AbortController","initialState","setInitialState","fieldProps","featureClientSchemaMap","permissions","getFormState","schemaFieldsPath","fields","controller","awaitInitialState","state","docPreferences","operation","renderAllFields","signal","onChange","formState","prevFormState","current","_jsxs","beforeSubmit","disableValidationOnSubmit","Array","isArray","onSubmit","_jsx","forceRender","parentIndexPath","parentPath","parentSchemaPath","readOnly"],"sources":["../../../src/utilities/fieldsDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport {\n Form,\n FormSubmit,\n RenderFields,\n useDocumentInfo,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { FieldsDrawerProps } from './Drawer.js'\n\nimport { useEditorConfigContext } from '../../lexical/config/client/EditorConfigProvider.js'\n\nexport const DrawerContent: React.FC<Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>> = ({\n data,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPath,\n schemaPathSuffix,\n}) => {\n const { t } = useTranslation()\n const { id, collectionSlug, docPermissions, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const onChangeAbortControllerRef = useRef(new AbortController())\n\n const [initialState, setInitialState] = useState<false | FormState | undefined>(false)\n\n const {\n fieldProps: { featureClientSchemaMap, permissions },\n } = useEditorConfigContext()\n\n const { getFormState } = useServerFunctions()\n\n const schemaFieldsPath =\n schemaFieldsPathOverride ??\n `${schemaPath}.lexical_internal_feature.${featureKey}${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n\n const fields: any = fieldMapOverride ?? featureClientSchemaMap[featureKey]?.[schemaFieldsPath] // Field Schema\n\n useEffect(() => {\n const controller = new AbortController()\n\n const awaitInitialState = async () => {\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: data ?? {},\n docPermissions,\n docPreferences: await getDocPreferences(),\n globalSlug,\n operation: 'update',\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n setInitialState(state)\n }\n\n void awaitInitialState()\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [\n schemaFieldsPath,\n id,\n data,\n getFormState,\n collectionSlug,\n globalSlug,\n docPermissions,\n getDocPreferences,\n ])\n\n const onChange = useCallback(\n async ({ formState: prevFormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences: await getDocPreferences(),\n formState: prevFormState,\n globalSlug,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!state) {\n return prevFormState\n }\n\n return state\n },\n [\n getFormState,\n id,\n collectionSlug,\n docPermissions,\n getDocPreferences,\n globalSlug,\n schemaFieldsPath,\n ],\n )\n\n // cleanup effect\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n if (initialState === false) {\n return null\n }\n\n return (\n <Form\n beforeSubmit={[onChange]}\n disableValidationOnSubmit\n fields={Array.isArray(fields) ? fields : []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={handleDrawerSubmit}\n uuid={uuid()}\n >\n <RenderFields\n fields={Array.isArray(fields) ? fields : []}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={permissions}\n readOnly={false}\n />\n <FormSubmit>{t('fields:saveChanges')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["Form","FormSubmit","RenderFields","useDocumentInfo","useServerFunctions","useTranslation","abortAndIgnore","React","useCallback","useEffect","useRef","useState","v4","uuid","useEditorConfigContext","DrawerContent","data","featureKey","fieldMapOverride","handleDrawerSubmit","schemaFieldsPathOverride","schemaPath","schemaPathSuffix","t","id","collectionSlug","getDocPreferences","globalSlug","onChangeAbortControllerRef","AbortController","initialState","setInitialState","fieldProps","featureClientSchemaMap","permissions","getFormState","schemaFieldsPath","fields","controller","awaitInitialState","state","docPermissions","docPreferences","operation","renderAllFields","signal","onChange","formState","prevFormState","current","_jsxs","beforeSubmit","disableValidationOnSubmit","Array","isArray","onSubmit","_jsx","forceRender","parentIndexPath","parentPath","parentSchemaPath","readOnly"],"sources":["../../../src/utilities/fieldsDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport {\n Form,\n FormSubmit,\n RenderFields,\n useDocumentInfo,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { FieldsDrawerProps } from './Drawer.js'\n\nimport { useEditorConfigContext } from '../../lexical/config/client/EditorConfigProvider.js'\n\nexport const DrawerContent: React.FC<Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>> = ({\n data,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPath,\n schemaPathSuffix,\n}) => {\n const { t } = useTranslation()\n const { id, collectionSlug, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const onChangeAbortControllerRef = useRef(new AbortController())\n\n const [initialState, setInitialState] = useState<false | FormState | undefined>(false)\n\n const {\n fieldProps: { featureClientSchemaMap, permissions },\n } = useEditorConfigContext()\n\n const { getFormState } = useServerFunctions()\n\n const schemaFieldsPath =\n schemaFieldsPathOverride ??\n `${schemaPath}.lexical_internal_feature.${featureKey}${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n\n const fields: any = fieldMapOverride ?? featureClientSchemaMap[featureKey]?.[schemaFieldsPath] // Field Schema\n\n useEffect(() => {\n const controller = new AbortController()\n\n const awaitInitialState = async () => {\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: data ?? {},\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n globalSlug,\n operation: 'update',\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n setInitialState(state)\n }\n\n void awaitInitialState()\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [schemaFieldsPath, id, data, getFormState, collectionSlug, globalSlug, getDocPreferences])\n\n const onChange = useCallback(\n async ({ formState: prevFormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n formState: prevFormState,\n globalSlug,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!state) {\n return prevFormState\n }\n\n return state\n },\n [getFormState, id, collectionSlug, getDocPreferences, globalSlug, schemaFieldsPath],\n )\n\n // cleanup effect\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n if (initialState === false) {\n return null\n }\n\n return (\n <Form\n beforeSubmit={[onChange]}\n disableValidationOnSubmit\n fields={Array.isArray(fields) ? fields : []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={handleDrawerSubmit}\n uuid={uuid()}\n >\n <RenderFields\n fields={Array.isArray(fields) ? fields : []}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={permissions}\n readOnly={false}\n />\n <FormSubmit>{t('fields:saveChanges')}</FormSubmit>\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useLexicalDrawer.d.ts","sourceRoot":"","sources":["../../../src/utilities/fieldsDrawer/useLexicalDrawer.tsx"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAU,MAAM,gBAAgB,OAAO;;;CAwEnE,CAAA"}
1
+ {"version":3,"file":"useLexicalDrawer.d.ts","sourceRoot":"","sources":["../../../src/utilities/fieldsDrawer/useLexicalDrawer.tsx"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAU,MAAM,gBAAgB,OAAO;;;CAoEnE,CAAA"}
@@ -17,7 +17,6 @@ export const useLexicalDrawer = (slug, restoreLate) => {
17
17
  const [wasOpen, setWasOpen] = useState(false);
18
18
  const {
19
19
  closeModal: closeBaseModal,
20
- isModalOpen: isBaseModalOpen,
21
20
  modalState,
22
21
  toggleModal: toggleBaseModal
23
22
  } = useModal();
@@ -66,10 +65,11 @@ export const useLexicalDrawer = (slug, restoreLate) => {
66
65
  t2 = $[7];
67
66
  }
68
67
  const closeDrawer = t2;
68
+ const isModalOpen = modalState?.[slug]?.isOpen;
69
69
  let t3;
70
- if ($[8] !== isBaseModalOpen || $[9] !== slug || $[10] !== storeSelection || $[11] !== restoreSelection || $[12] !== toggleBaseModal) {
70
+ if ($[8] !== isModalOpen || $[9] !== storeSelection || $[10] !== restoreSelection || $[11] !== toggleBaseModal || $[12] !== slug) {
71
71
  t3 = () => {
72
- if (!isBaseModalOpen(slug)) {
72
+ if (!isModalOpen) {
73
73
  storeSelection();
74
74
  } else {
75
75
  restoreSelection();
@@ -77,11 +77,11 @@ export const useLexicalDrawer = (slug, restoreLate) => {
77
77
  setWasOpen(true);
78
78
  toggleBaseModal(slug);
79
79
  };
80
- $[8] = isBaseModalOpen;
81
- $[9] = slug;
82
- $[10] = storeSelection;
83
- $[11] = restoreSelection;
84
- $[12] = toggleBaseModal;
80
+ $[8] = isModalOpen;
81
+ $[9] = storeSelection;
82
+ $[10] = restoreSelection;
83
+ $[11] = toggleBaseModal;
84
+ $[12] = slug;
85
85
  $[13] = t3;
86
86
  } else {
87
87
  t3 = $[13];