@payloadcms/richtext-lexical 3.0.0-beta.96 → 3.0.0-beta.97

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 (142) hide show
  1. package/dist/exports/client/Field-MPDY6IHA.js +2 -0
  2. package/dist/exports/client/Field-MPDY6IHA.js.map +7 -0
  3. package/dist/exports/client/{RelationshipComponent-EZORSGUZ.js → RelationshipComponent-CPYVT3XN.js} +2 -2
  4. package/dist/exports/client/bundled.css +1 -1
  5. package/dist/exports/client/{chunk-TD7O23AB.js → chunk-BR57XNHD.js} +2 -2
  6. package/dist/exports/client/{chunk-TD7O23AB.js.map → chunk-BR57XNHD.js.map} +1 -1
  7. package/dist/exports/client/{chunk-UJDWBQ2K.js → chunk-EPEFKP5H.js} +2 -2
  8. package/dist/exports/client/{chunk-UJDWBQ2K.js.map → chunk-EPEFKP5H.js.map} +1 -1
  9. package/dist/exports/client/chunk-GK7ZKYHL.js +2 -0
  10. package/dist/exports/client/chunk-GK7ZKYHL.js.map +7 -0
  11. package/dist/exports/client/{chunk-OLSILJA6.js → chunk-MFAXC4ZA.js} +2 -2
  12. package/dist/exports/client/{chunk-OLSILJA6.js.map → chunk-MFAXC4ZA.js.map} +2 -2
  13. package/dist/exports/client/{chunk-V2LKLT2F.js → chunk-PECDZEZY.js} +3 -3
  14. package/dist/exports/client/{chunk-V2LKLT2F.js.map → chunk-PECDZEZY.js.map} +3 -3
  15. package/dist/exports/client/{chunk-YL453UOS.js → chunk-XIBMVIFW.js} +2 -2
  16. package/dist/exports/client/{chunk-YL453UOS.js.map → chunk-XIBMVIFW.js.map} +1 -1
  17. package/dist/exports/client/{component-2YLEVOFH.js → component-3EGTURAI.js} +2 -2
  18. package/dist/exports/client/{component-2YLEVOFH.js.map → component-3EGTURAI.js.map} +1 -1
  19. package/dist/exports/client/{component-7RAP75FW.js → component-BRCRMQID.js} +2 -2
  20. package/dist/exports/client/{component-7RAP75FW.js.map → component-BRCRMQID.js.map} +1 -1
  21. package/dist/exports/client/{component-LLWMZU6K.js → component-GAX6BHKZ.js} +2 -2
  22. package/dist/exports/client/{componentInline-YSHGRL2J.js → componentInline-RETIC4OV.js} +2 -2
  23. package/dist/exports/client/index.d.ts +2 -2
  24. package/dist/exports/client/index.d.ts.map +1 -1
  25. package/dist/exports/client/index.js +5 -5
  26. package/dist/exports/client/index.js.map +4 -4
  27. package/dist/features/blocks/client/component/index.js.map +1 -1
  28. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  29. package/dist/features/blocks/server/index.js +25 -25
  30. package/dist/features/blocks/server/index.js.map +1 -1
  31. package/dist/features/blocks/server/nodes/BlocksNode.d.ts +1 -1
  32. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  33. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  34. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts +1 -1
  35. package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
  36. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  37. package/dist/features/converters/html/converter/index.d.ts +5 -5
  38. package/dist/features/converters/html/converter/index.d.ts.map +1 -1
  39. package/dist/features/converters/html/converter/index.js.map +1 -1
  40. package/dist/features/converters/html/converter/types.d.ts +1 -1
  41. package/dist/features/converters/html/converter/types.d.ts.map +1 -1
  42. package/dist/features/converters/html/converter/types.js.map +1 -1
  43. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +1 -1
  44. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  45. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  46. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts +1 -1
  47. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -1
  48. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  49. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  50. package/dist/features/experimental_table/client/utils/debounce.js +4 -4
  51. package/dist/features/experimental_table/client/utils/debounce.js.map +1 -1
  52. package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -1
  53. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
  54. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +1 -1
  55. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  56. package/dist/features/link/client/index.js +1 -1
  57. package/dist/features/link/client/index.js.map +1 -1
  58. package/dist/features/link/client/plugins/floatingLinkEditor/index.d.ts.map +1 -1
  59. package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
  60. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  61. package/dist/features/link/nodes/LinkNode.js +1 -1
  62. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  63. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts +1 -1
  64. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  65. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  66. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -1
  67. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  68. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  69. package/dist/features/toolbars/fixed/client/Toolbar/index.js +1 -1
  70. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  71. package/dist/features/toolbars/inline/client/Toolbar/index.js +1 -1
  72. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  73. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts +2 -2
  74. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
  75. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +1 -1
  76. package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
  77. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts +2 -2
  78. package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
  79. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +6 -6
  80. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  81. package/dist/features/typesClient.d.ts +6 -6
  82. package/dist/features/typesClient.d.ts.map +1 -1
  83. package/dist/features/typesClient.js.map +1 -1
  84. package/dist/features/typesServer.d.ts +8 -8
  85. package/dist/features/typesServer.d.ts.map +1 -1
  86. package/dist/features/typesServer.js.map +1 -1
  87. package/dist/features/upload/client/component/index.js.map +1 -1
  88. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  89. package/dist/features/upload/client/nodes/UploadNode.js +1 -1
  90. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  91. package/dist/field/Field.js +1 -1
  92. package/dist/field/Field.js.map +1 -1
  93. package/dist/field/bundled.css +1 -1
  94. package/dist/field/index.js +1 -1
  95. package/dist/field/index.js.map +1 -1
  96. package/dist/index.d.ts +2 -2
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +3 -3
  99. package/dist/index.js.map +1 -1
  100. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  101. package/dist/lexical/LexicalEditor.js +5 -5
  102. package/dist/lexical/LexicalEditor.js.map +1 -1
  103. package/dist/lexical/LexicalProvider.js +1 -1
  104. package/dist/lexical/LexicalProvider.js.map +1 -1
  105. package/dist/lexical/config/client/EditorConfigProvider.d.ts +1 -1
  106. package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
  107. package/dist/lexical/config/client/EditorConfigProvider.js +1 -1
  108. package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
  109. package/dist/lexical/config/client/sanitize.js +1 -1
  110. package/dist/lexical/config/client/sanitize.js.map +1 -1
  111. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +3 -3
  112. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  113. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +2 -2
  114. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  115. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +1 -1
  116. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
  117. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  118. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  119. package/dist/lexical/plugins/SlashMenu/index.js +1 -1
  120. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  121. package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
  122. package/dist/lexical/plugins/handles/utils/getNodeCloseToPoint.js.map +1 -1
  123. package/dist/lexical/utils/nodeFormat.d.ts +2 -2
  124. package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
  125. package/dist/lexical/utils/nodeFormat.js.map +1 -1
  126. package/dist/lexical/utils/rect.d.ts.map +1 -1
  127. package/dist/lexical/utils/rect.js.map +1 -1
  128. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  129. package/dist/validate/index.js +1 -1
  130. package/dist/validate/index.js.map +1 -1
  131. package/dist/validate/validateNodes.d.ts +2 -2
  132. package/dist/validate/validateNodes.d.ts.map +1 -1
  133. package/dist/validate/validateNodes.js +2 -2
  134. package/dist/validate/validateNodes.js.map +1 -1
  135. package/package.json +7 -7
  136. package/dist/exports/client/Field-E27BVLS5.js +0 -2
  137. package/dist/exports/client/Field-E27BVLS5.js.map +0 -7
  138. package/dist/exports/client/chunk-ZH3MUMBJ.js +0 -2
  139. package/dist/exports/client/chunk-ZH3MUMBJ.js.map +0 -7
  140. /package/dist/exports/client/{RelationshipComponent-EZORSGUZ.js.map → RelationshipComponent-CPYVT3XN.js.map} +0 -0
  141. /package/dist/exports/client/{component-LLWMZU6K.js.map → component-GAX6BHKZ.js.map} +0 -0
  142. /package/dist/exports/client/{componentInline-YSHGRL2J.js.map → componentInline-RETIC4OV.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Collapsible","Form","Pill","RenderComponent","SectionTitle","ShimmerEffect","useConfig","useDocumentInfo","useFieldProps","useFormSubmitted","useTranslation","React","useCallback","useEffect","useMemo","useState","baseClass","getTranslation","getFormState","v4","uuid","useEditorConfigContext","BlockContent","BlockComponent","props","formData","nodeKey","config","submitted","id","path","schemaPath","field","parentLexicalRichTextField","initialState","setInitialState","richTextComponentMap","schemaFieldsPath","blockType","componentMapRenderedBlockPath","blocksField","get","clientBlock","blocks","find","block","slug","awaitInitialState","state","apiRoute","routes","api","body","data","operation","serverURL","blockName","initialValue","passesCondition","valid","value","onChange","formState","prevFormState","i18n","classNames","filter","Boolean","join","formContent","_jsx","beforeSubmit","fields","formSchema","className","collapsibleStyle","header","admin","components","Label","clientProps","blockKind","mappedComponent","_jsxs","pillStyle","labels","singular","readOnly","height"],"sources":["../../../../../src/features/blocks/client/component/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FormProps } from '@payloadcms/ui'\n\nimport {\n Collapsible,\n Form,\n Pill,\n RenderComponent,\n SectionTitle,\n ShimmerEffect,\n useConfig,\n useDocumentInfo,\n useFieldProps,\n useFormSubmitted,\n useTranslation,\n} from '@payloadcms/ui'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nconst baseClass = 'lexical-block'\nimport type { BlockFieldClient, FormState } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport { v4 as uuid } from 'uuid'\n\nimport type { BlockFields } from '../../server/nodes/BlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { BlockContent } from './BlockContent.js'\nimport './index.scss'\n\ntype Props = {\n readonly children?: React.ReactNode\n readonly formData: BlockFields\n readonly nodeKey?: string\n}\n\nexport const BlockComponent: React.FC<Props> = (props) => {\n const { formData, nodeKey } = props\n const { config } = useConfig()\n const submitted = useFormSubmitted()\n const { id } = useDocumentInfo()\n const { path, schemaPath } = useFieldProps()\n const { field: parentLexicalRichTextField } = useEditorConfigContext()\n\n const [initialState, setInitialState] = useState<FormState | false>(false)\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.lexical_blocks.${formData.blockType}`\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_blocks`\n const blocksField: BlockFieldClient = richTextComponentMap.get(componentMapRenderedBlockPath)[0]\n\n const clientBlock = blocksField.blocks.find((block) => block.slug === formData.blockType)\n\n // Field Schema\n useEffect(() => {\n const awaitInitialState = async () => {\n const state = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n data: formData,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n })\n\n if (state) {\n state.blockName = {\n initialValue: '',\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n setInitialState(state)\n }\n }\n\n if (formData) {\n void awaitInitialState()\n }\n }, [config.routes.api, config.serverURL, schemaFieldsPath, id]) // DO NOT ADD FORMDATA HERE! Adding formData will kick you out of sub block editors while writing.\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const formState = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n formState: prevFormState,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n })\n\n formState.blockName = {\n initialValue: '',\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n return formState\n },\n\n [config.routes.api, config.serverURL, id, schemaFieldsPath, formData.blockName],\n )\n const { i18n } = useTranslation()\n\n const classNames = [`${baseClass}__row`, `${baseClass}__row--no-errors`].filter(Boolean).join(' ')\n\n // Memoized Form JSX\n const formContent = useMemo(() => {\n return clientBlock && initialState !== false ? (\n <Form\n beforeSubmit={[onChange]}\n fields={clientBlock.fields}\n initialState={initialState}\n onChange={[onChange]}\n submitted={submitted}\n uuid={uuid()}\n >\n <BlockContent\n baseClass={baseClass}\n clientBlock={clientBlock}\n field={parentLexicalRichTextField}\n formData={formData}\n formSchema={clientBlock.fields}\n nodeKey={nodeKey}\n path={`${path}.lexical_internal_feature.blocks.${formData.blockType}`}\n schemaPath={schemaFieldsPath}\n />\n </Form>\n ) : (\n <Collapsible\n className={classNames}\n collapsibleStyle=\"default\"\n header={\n clientBlock?.admin?.components?.Label ? (\n <RenderComponent\n clientProps={{ blockKind: 'lexicalBlock', formData }}\n mappedComponent={clientBlock.admin.components.Label}\n />\n ) : (\n <div className={`${baseClass}__block-header`}>\n <div>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${formData?.blockType}`}\n pillStyle=\"white\"\n >\n {clientBlock && typeof clientBlock.labels.singular === 'string'\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock.slug}\n </Pill>\n <SectionTitle\n path=\"blockName\"\n readOnly={parentLexicalRichTextField?.admin?.readOnly}\n />\n </div>\n </div>\n )\n }\n key={0}\n >\n <ShimmerEffect height=\"35vh\" />\n </Collapsible>\n )\n }, [\n clientBlock,\n initialState,\n onChange,\n submitted,\n parentLexicalRichTextField,\n nodeKey,\n path,\n schemaFieldsPath,\n classNames,\n i18n,\n ])\n\n return <div className={baseClass + ' ' + baseClass + '-' + formData.blockType}>{formContent}</div>\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Collapsible","Form","Pill","RenderComponent","SectionTitle","ShimmerEffect","useConfig","useDocumentInfo","useFieldProps","useFormSubmitted","useTranslation","React","useCallback","useEffect","useMemo","useState","baseClass","getTranslation","getFormState","v4","uuid","useEditorConfigContext","BlockContent","BlockComponent","props","formData","nodeKey","config","submitted","id","path","schemaPath","field","parentLexicalRichTextField","initialState","setInitialState","richTextComponentMap","schemaFieldsPath","blockType","componentMapRenderedBlockPath","blocksField","get","clientBlock","blocks","find","block","slug","awaitInitialState","state","apiRoute","routes","api","body","data","operation","serverURL","blockName","initialValue","passesCondition","valid","value","onChange","formState","prevFormState","i18n","classNames","filter","Boolean","join","formContent","_jsx","beforeSubmit","fields","formSchema","className","collapsibleStyle","header","admin","components","Label","clientProps","blockKind","mappedComponent","_jsxs","pillStyle","labels","singular","readOnly","height"],"sources":["../../../../../src/features/blocks/client/component/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FormProps } from '@payloadcms/ui'\n\nimport {\n Collapsible,\n Form,\n Pill,\n RenderComponent,\n SectionTitle,\n ShimmerEffect,\n useConfig,\n useDocumentInfo,\n useFieldProps,\n useFormSubmitted,\n useTranslation,\n} from '@payloadcms/ui'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nconst baseClass = 'lexical-block'\nimport type { BlockFieldClient, FormState } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport { v4 as uuid } from 'uuid'\n\nimport type { BlockFields } from '../../server/nodes/BlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { BlockContent } from './BlockContent.js'\nimport './index.scss'\n\ntype Props = {\n readonly children?: React.ReactNode\n readonly formData: BlockFields\n readonly nodeKey?: string\n}\n\nexport const BlockComponent: React.FC<Props> = (props) => {\n const { formData, nodeKey } = props\n const { config } = useConfig()\n const submitted = useFormSubmitted()\n const { id } = useDocumentInfo()\n const { path, schemaPath } = useFieldProps()\n const { field: parentLexicalRichTextField } = useEditorConfigContext()\n\n const [initialState, setInitialState] = useState<false | FormState>(false)\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.lexical_blocks.${formData.blockType}`\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_blocks`\n const blocksField: BlockFieldClient = richTextComponentMap.get(componentMapRenderedBlockPath)[0]\n\n const clientBlock = blocksField.blocks.find((block) => block.slug === formData.blockType)\n\n // Field Schema\n useEffect(() => {\n const awaitInitialState = async () => {\n const state = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n data: formData,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n })\n\n if (state) {\n state.blockName = {\n initialValue: '',\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n setInitialState(state)\n }\n }\n\n if (formData) {\n void awaitInitialState()\n }\n }, [config.routes.api, config.serverURL, schemaFieldsPath, id]) // DO NOT ADD FORMDATA HERE! Adding formData will kick you out of sub block editors while writing.\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const formState = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id,\n formState: prevFormState,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n })\n\n formState.blockName = {\n initialValue: '',\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n return formState\n },\n\n [config.routes.api, config.serverURL, id, schemaFieldsPath, formData.blockName],\n )\n const { i18n } = useTranslation()\n\n const classNames = [`${baseClass}__row`, `${baseClass}__row--no-errors`].filter(Boolean).join(' ')\n\n // Memoized Form JSX\n const formContent = useMemo(() => {\n return clientBlock && initialState !== false ? (\n <Form\n beforeSubmit={[onChange]}\n fields={clientBlock.fields}\n initialState={initialState}\n onChange={[onChange]}\n submitted={submitted}\n uuid={uuid()}\n >\n <BlockContent\n baseClass={baseClass}\n clientBlock={clientBlock}\n field={parentLexicalRichTextField}\n formData={formData}\n formSchema={clientBlock.fields}\n nodeKey={nodeKey}\n path={`${path}.lexical_internal_feature.blocks.${formData.blockType}`}\n schemaPath={schemaFieldsPath}\n />\n </Form>\n ) : (\n <Collapsible\n className={classNames}\n collapsibleStyle=\"default\"\n header={\n clientBlock?.admin?.components?.Label ? (\n <RenderComponent\n clientProps={{ blockKind: 'lexicalBlock', formData }}\n mappedComponent={clientBlock.admin.components.Label}\n />\n ) : (\n <div className={`${baseClass}__block-header`}>\n <div>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${formData?.blockType}`}\n pillStyle=\"white\"\n >\n {clientBlock && typeof clientBlock.labels.singular === 'string'\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock.slug}\n </Pill>\n <SectionTitle\n path=\"blockName\"\n readOnly={parentLexicalRichTextField?.admin?.readOnly}\n />\n </div>\n </div>\n )\n }\n key={0}\n >\n <ShimmerEffect height=\"35vh\" />\n </Collapsible>\n )\n }, [\n clientBlock,\n initialState,\n onChange,\n submitted,\n parentLexicalRichTextField,\n nodeKey,\n path,\n schemaFieldsPath,\n classNames,\n i18n,\n ])\n\n return <div className={baseClass + ' ' + baseClass + '-' + formData.blockType}>{formContent}</div>\n}\n"],"mappings":"AAAA;;;AAIA,SACEA,WAAW,EACXC,IAAI,EACJC,IAAI,EACJC,eAAe,EACfC,YAAY,EACZC,aAAa,EACbC,SAAS,EACTC,eAAe,EACfC,aAAa,EACbC,gBAAgB,EAChBC,cAAc,QACT;AACP,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AAEjE,MAAMC,SAAA,GAAY;AAGlB,SAASC,cAAc,QAAQ;AAC/B,SAASC,YAAY,QAAQ;AAC7B,SAASC,EAAA,IAAMC,IAAI,QAAQ;AAI3B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,YAAY,QAAQ;AAS7B,OAAO,MAAMC,cAAA,GAAmCC,KAAA;EAC9C,MAAM;IAAEC,QAAQ;IAAEC;EAAO,CAAE,GAAGF,KAAA;EAC9B,MAAM;IAAEG;EAAM,CAAE,GAAGrB,SAAA;EACnB,MAAMsB,SAAA,GAAYnB,gBAAA;EAClB,MAAM;IAAEoB;EAAE,CAAE,GAAGtB,eAAA;EACf,MAAM;IAAEuB,IAAI;IAAEC;EAAU,CAAE,GAAGvB,aAAA;EAC7B,MAAM;IAAEwB,KAAA,EAAOC;EAA0B,CAAE,GAAGZ,sBAAA;EAE9C,MAAM,CAACa,YAAA,EAAcC,eAAA,CAAgB,GAAGpB,QAAA,CAA4B;EACpE,MAAM;IACJiB,KAAA,EAAO;MAAEI;IAAoB;EAAE,CAChC,GAAGf,sBAAA;EAEJ,MAAMgB,gBAAA,GAAmB,GAAGN,UAAA,kEAA4EN,QAAA,CAASa,SAAS,EAAE;EAE5H,MAAMC,6BAAA,GAAgC,uDAAuD;EAC7F,MAAMC,WAAA,GAAgCJ,oBAAA,CAAqBK,GAAG,CAACF,6BAAA,CAA8B,CAAC,EAAE;EAEhG,MAAMG,WAAA,GAAcF,WAAA,CAAYG,MAAM,CAACC,IAAI,CAAEC,KAAA,IAAUA,KAAA,CAAMC,IAAI,KAAKrB,QAAA,CAASa,SAAS;EAExF;EACAzB,SAAA,CAAU;IACR,MAAMkC,iBAAA,GAAoB,MAAAA,CAAA;MACxB,MAAMC,KAAA,GAAQ,MAAM9B,YAAA,CAAa;QAC/B+B,QAAA,EAAUtB,MAAA,CAAOuB,MAAM,CAACC,GAAG;QAC3BC,IAAA,EAAM;UACJvB,EAAA;UACAwB,IAAA,EAAM5B,QAAA;UACN6B,SAAA,EAAW;UACXvB,UAAA,EAAYM;QACd;QACAkB,SAAA,EAAW5B,MAAA,CAAO4B;MACpB;MAEA,IAAIP,KAAA,EAAO;QACTA,KAAA,CAAMQ,SAAS,GAAG;UAChBC,YAAA,EAAc;UACdC,eAAA,EAAiB;UACjBC,KAAA,EAAO;UACPC,KAAA,EAAOnC,QAAA,CAAS+B;QAClB;QAEArB,eAAA,CAAgBa,KAAA;MAClB;IACF;IAEA,IAAIvB,QAAA,EAAU;MACZ,KAAKsB,iBAAA;IACP;EACF,GAAG,CAACpB,MAAA,CAAOuB,MAAM,CAACC,GAAG,EAAExB,MAAA,CAAO4B,SAAS,EAAElB,gBAAA,EAAkBR,EAAA,CAAG,EAAE;EAAA;EAEhE,MAAMgC,QAAA,GAAqCjD,WAAA,CACzC,OAAO;IAAEkD,SAAA,EAAWC;EAAa,CAAE;IACjC,MAAMD,SAAA,GAAY,MAAM5C,YAAA,CAAa;MACnC+B,QAAA,EAAUtB,MAAA,CAAOuB,MAAM,CAACC,GAAG;MAC3BC,IAAA,EAAM;QACJvB,EAAA;QACAiC,SAAA,EAAWC,aAAA;QACXT,SAAA,EAAW;QACXvB,UAAA,EAAYM;MACd;MACAkB,SAAA,EAAW5B,MAAA,CAAO4B;IACpB;IAEAO,SAAA,CAAUN,SAAS,GAAG;MACpBC,YAAA,EAAc;MACdC,eAAA,EAAiB;MACjBC,KAAA,EAAO;MACPC,KAAA,EAAOnC,QAAA,CAAS+B;IAClB;IAEA,OAAOM,SAAA;EACT,GAEA,CAACnC,MAAA,CAAOuB,MAAM,CAACC,GAAG,EAAExB,MAAA,CAAO4B,SAAS,EAAE1B,EAAA,EAAIQ,gBAAA,EAAkBZ,QAAA,CAAS+B,SAAS,CAAC;EAEjF,MAAM;IAAEQ;EAAI,CAAE,GAAGtD,cAAA;EAEjB,MAAMuD,UAAA,GAAa,CAAC,GAAGjD,SAAA,OAAgB,EAAE,GAAGA,SAAA,kBAA2B,CAAC,CAACkD,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;EAE9F;EACA,MAAMC,WAAA,GAAcvD,OAAA,CAAQ;IAC1B,OAAO4B,WAAA,IAAeR,YAAA,KAAiB,qBACrCoC,IAAA,CAACrE,IAAA;MACCsE,YAAA,EAAc,CAACV,QAAA,CAAS;MACxBW,MAAA,EAAQ9B,WAAA,CAAY8B,MAAM;MAC1BtC,YAAA,EAAcA,YAAA;MACd2B,QAAA,EAAU,CAACA,QAAA,CAAS;MACpBjC,SAAA,EAAWA,SAAA;MACXR,IAAA,EAAMA,IAAA;gBAEN,aAAAkD,IAAA,CAAChD,YAAA;QACCN,SAAA,EAAWA,SAAA;QACX0B,WAAA,EAAaA,WAAA;QACbV,KAAA,EAAOC,0BAAA;QACPR,QAAA,EAAUA,QAAA;QACVgD,UAAA,EAAY/B,WAAA,CAAY8B,MAAM;QAC9B9C,OAAA,EAASA,OAAA;QACTI,IAAA,EAAM,GAAGA,IAAA,oCAAwCL,QAAA,CAASa,SAAS,EAAE;QACrEP,UAAA,EAAYM;;sBAIhBiC,IAAA,CAACtE,WAAA;MACC0E,SAAA,EAAWT,UAAA;MACXU,gBAAA,EAAiB;MACjBC,MAAA,EACElC,WAAA,EAAamC,KAAA,EAAOC,UAAA,EAAYC,KAAA,gBAC9BT,IAAA,CAACnE,eAAA;QACC6E,WAAA,EAAa;UAAEC,SAAA,EAAW;UAAgBxD;QAAS;QACnDyD,eAAA,EAAiBxC,WAAA,CAAYmC,KAAK,CAACC,UAAU,CAACC;wBAGhDT,IAAA,CAAC;QAAII,SAAA,EAAW,GAAG1D,SAAA,gBAAyB;kBAC1C,aAAAmE,KAAA,CAAC;kCACCb,IAAA,CAACpE,IAAA;YACCwE,SAAA,EAAW,GAAG1D,SAAA,gBAAyBA,SAAA,gBAAyBS,QAAA,EAAUa,SAAA,EAAW;YACrF8C,SAAA,EAAU;sBAET1C,WAAA,IAAe,OAAOA,WAAA,CAAY2C,MAAM,CAACC,QAAQ,KAAK,WACnDrE,cAAA,CAAeyB,WAAA,CAAY2C,MAAM,CAACC,QAAQ,EAAEtB,IAAA,IAC5CtB,WAAA,CAAYI;2BAElBwB,IAAA,CAAClE,YAAA;YACC0B,IAAA,EAAK;YACLyD,QAAA,EAAUtD,0BAAA,EAA4B4C,KAAA,EAAOU;;;;gBAQvD,aAAAjB,IAAA,CAACjE,aAAA;QAAcmF,MAAA,EAAO;;OAFjB;EAKX,GAAG,CACD9C,WAAA,EACAR,YAAA,EACA2B,QAAA,EACAjC,SAAA,EACAK,0BAAA,EACAP,OAAA,EACAI,IAAA,EACAO,gBAAA,EACA4B,UAAA,EACAD,IAAA,CACD;EAED,oBAAOM,IAAA,CAAC;IAAII,SAAA,EAAW1D,SAAA,GAAY,MAAMA,SAAA,GAAY,MAAMS,QAAA,CAASa,SAAS;cAAG+B;;AAClF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$insertNodeToNearestRoot","$wrapNodeInElement","mergeRegister","getTranslation","formatDrawerSlug","useEditDepth","useFieldProps","useModal","useTranslation","$createParagraphNode","$getNodeByKey","$getPreviousSelection","$getSelection","$insertNodes","$isParagraphNode","$isRangeSelection","$isRootOrShadowRoot","COMMAND_PRIORITY_EDITOR","React","useEffect","useState","useEditorConfigContext","FieldsDrawer","$createBlockNode","BlockNode","$createInlineBlockNode","INSERT_BLOCK_COMMAND","INSERT_INLINE_BLOCK_COMMAND","OPEN_INLINE_BLOCK_DRAWER_COMMAND","BlocksPlugin","$","editor","closeModal","toggleModal","blockFields","setBlockFields","blockType","setBlockType","targetNodeKey","setTargetNodeKey","i18n","t","schemaPath","uuid","editDepth","t0","t1","slug","depth","drawerSlug","field","t2","richTextComponentMap","t3","t4","hasNodes","Error","registerCommand","payload","update","selection","blockNode","focus","focusNode","getNode","getTextContentSize","getParent","getChildren","filter","node","length","remove","fields","node_0","setFields","inlineBlockNode","getParentOrThrow","selectEnd","t5","fields_0","nodeKey","rangeSelection","getEditorState","read","selection_0","schemaFieldsPath","componentMapRenderedBlockPath","t6","Symbol","for","bb0","blocksField","has","get","clientBlock","blocks","find","block","blockDisplayName","labels","singular","t7","_fields","data","dispatchCommand","_jsx","drawerTitle","id","label","featureKey","fieldMapOverride","handleDrawerSubmit","schemaFieldsPathOverride","schemaPathSuffix"],"sources":["../../../../../src/features/blocks/client/plugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { BlockFieldClient } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot, $wrapNodeInElement, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n formatDrawerSlug,\n useEditDepth,\n useFieldProps,\n useModal,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n $createParagraphNode,\n $getNodeByKey,\n $getPreviousSelection,\n $getSelection,\n $insertNodes,\n $isParagraphNode,\n $isRangeSelection,\n $isRootOrShadowRoot,\n COMMAND_PRIORITY_EDITOR,\n type RangeSelection,\n} from 'lexical'\nimport React, { useEffect, useState } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { BlockFields } from '../../server/nodes/BlocksNode.js'\nimport type { BlocksFeatureClientProps } from '../index.js'\nimport type { InlineBlockNode } from '../nodes/InlineBlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../utilities/fieldsDrawer/Drawer.js'\nimport { $createBlockNode, BlockNode } from '../nodes/BlocksNode.js'\nimport { $createInlineBlockNode } from '../nodes/InlineBlocksNode.js'\nimport {\n INSERT_BLOCK_COMMAND,\n INSERT_INLINE_BLOCK_COMMAND,\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n} from './commands.js'\n\nexport type InsertBlockPayload = Exclude<BlockFields, 'id'>\n\nexport const BlocksPlugin: PluginComponent<BlocksFeatureClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n const { closeModal, toggleModal } = useModal()\n const [blockFields, setBlockFields] = useState<BlockFields>(null)\n const [blockType, setBlockType] = useState<string>('' as any)\n const [targetNodeKey, setTargetNodeKey] = useState<null | string>(null)\n const { i18n, t } = useTranslation<string, any>()\n const { schemaPath } = useFieldProps()\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-inlineBlocks-create-` + uuid,\n depth: editDepth,\n })\n\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n useEffect(() => {\n if (!editor.hasNodes([BlockNode])) {\n throw new Error('BlocksPlugin: BlocksNode not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand<InsertBlockPayload>(\n INSERT_BLOCK_COMMAND,\n (payload: InsertBlockPayload) => {\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const blockNode = $createBlockNode(payload)\n // Insert blocks node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(blockNode)\n\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParent()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n INSERT_INLINE_BLOCK_COMMAND,\n (fields) => {\n if (targetNodeKey) {\n const node: InlineBlockNode = $getNodeByKey(targetNodeKey)\n\n if (!node) {\n return false\n }\n\n node.setFields(fields as BlockFields)\n\n setTargetNodeKey(null)\n return true\n }\n\n const inlineBlockNode = $createInlineBlockNode(fields as BlockFields)\n $insertNodes([inlineBlockNode])\n if ($isRootOrShadowRoot(inlineBlockNode.getParentOrThrow())) {\n $wrapNodeInElement(inlineBlockNode, $createParagraphNode).selectEnd()\n }\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n ({ fields, nodeKey }) => {\n setBlockFields((fields as BlockFields) ?? null)\n setTargetNodeKey(nodeKey ?? null)\n setBlockType(fields?.blockType ?? ('' as any))\n\n if (nodeKey) {\n toggleModal(drawerSlug)\n return true\n }\n\n let rangeSelection: RangeSelection | null = null\n\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n rangeSelection = selection\n }\n })\n\n if (rangeSelection) {\n //setLastSelection(rangeSelection)\n toggleModal(drawerSlug)\n }\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [editor, targetNodeKey, toggleModal, drawerSlug])\n\n if (!blockFields) {\n return null\n }\n\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.lexical_inline_blocks.${blockFields?.blockType}`\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`\n const blocksField: BlockFieldClient = richTextComponentMap.has(componentMapRenderedBlockPath)\n ? richTextComponentMap.get(componentMapRenderedBlockPath)[0]\n : null\n\n const clientBlock = blocksField\n ? blocksField.blocks.find((block) => block.slug === blockFields?.blockType)\n : null\n\n if (!blocksField) {\n return null\n }\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock?.labels?.singular, i18n)\n : clientBlock?.slug\n\n return (\n <FieldsDrawer\n data={blockFields}\n drawerSlug={drawerSlug}\n drawerTitle={t(`lexical:blocks:inlineBlocks:${blockFields?.id ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n featureKey=\"blocks\"\n fieldMapOverride={clientBlock?.fields}\n handleDrawerSubmit={(_fields, data) => {\n closeModal(drawerSlug)\n if (!data) {\n return\n }\n\n data.blockType = blockType\n\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, data)\n }}\n schemaFieldsPathOverride={schemaFieldsPath}\n schemaPathSuffix={blockFields?.blockType}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$insertNodeToNearestRoot","$wrapNodeInElement","mergeRegister","getTranslation","formatDrawerSlug","useEditDepth","useFieldProps","useModal","useTranslation","$createParagraphNode","$getNodeByKey","$getPreviousSelection","$getSelection","$insertNodes","$isParagraphNode","$isRangeSelection","$isRootOrShadowRoot","COMMAND_PRIORITY_EDITOR","React","useEffect","useState","useEditorConfigContext","FieldsDrawer","$createBlockNode","BlockNode","$createInlineBlockNode","INSERT_BLOCK_COMMAND","INSERT_INLINE_BLOCK_COMMAND","OPEN_INLINE_BLOCK_DRAWER_COMMAND","BlocksPlugin","$","editor","closeModal","toggleModal","blockFields","setBlockFields","blockType","setBlockType","targetNodeKey","setTargetNodeKey","i18n","t","schemaPath","uuid","editDepth","t0","t1","slug","depth","drawerSlug","field","t2","richTextComponentMap","t3","t4","hasNodes","Error","registerCommand","payload","update","selection","blockNode","focus","focusNode","getNode","getTextContentSize","getParent","getChildren","filter","node","length","remove","fields","node_0","setFields","inlineBlockNode","getParentOrThrow","selectEnd","t5","fields_0","nodeKey","rangeSelection","getEditorState","read","selection_0","schemaFieldsPath","componentMapRenderedBlockPath","t6","Symbol","for","bb0","blocksField","has","get","clientBlock","blocks","find","block","blockDisplayName","labels","singular","t7","_fields","data","dispatchCommand","_jsx","drawerTitle","id","label","featureKey","fieldMapOverride","handleDrawerSubmit","schemaFieldsPathOverride","schemaPathSuffix"],"sources":["../../../../../src/features/blocks/client/plugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { BlockFieldClient } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot, $wrapNodeInElement, mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n formatDrawerSlug,\n useEditDepth,\n useFieldProps,\n useModal,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n $createParagraphNode,\n $getNodeByKey,\n $getPreviousSelection,\n $getSelection,\n $insertNodes,\n $isParagraphNode,\n $isRangeSelection,\n $isRootOrShadowRoot,\n COMMAND_PRIORITY_EDITOR,\n type RangeSelection,\n} from 'lexical'\nimport React, { useEffect, useState } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { BlockFields } from '../../server/nodes/BlocksNode.js'\nimport type { BlocksFeatureClientProps } from '../index.js'\nimport type { InlineBlockNode } from '../nodes/InlineBlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../utilities/fieldsDrawer/Drawer.js'\nimport { $createBlockNode, BlockNode } from '../nodes/BlocksNode.js'\nimport { $createInlineBlockNode } from '../nodes/InlineBlocksNode.js'\nimport {\n INSERT_BLOCK_COMMAND,\n INSERT_INLINE_BLOCK_COMMAND,\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n} from './commands.js'\n\nexport type InsertBlockPayload = Exclude<BlockFields, 'id'>\n\nexport const BlocksPlugin: PluginComponent<BlocksFeatureClientProps> = () => {\n const [editor] = useLexicalComposerContext()\n const { closeModal, toggleModal } = useModal()\n const [blockFields, setBlockFields] = useState<BlockFields>(null)\n const [blockType, setBlockType] = useState<string>('' as any)\n const [targetNodeKey, setTargetNodeKey] = useState<null | string>(null)\n const { i18n, t } = useTranslation<string, any>()\n const { schemaPath } = useFieldProps()\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-inlineBlocks-create-` + uuid,\n depth: editDepth,\n })\n\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n useEffect(() => {\n if (!editor.hasNodes([BlockNode])) {\n throw new Error('BlocksPlugin: BlocksNode not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand<InsertBlockPayload>(\n INSERT_BLOCK_COMMAND,\n (payload: InsertBlockPayload) => {\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const blockNode = $createBlockNode(payload)\n // Insert blocks node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(blockNode)\n\n const { focus } = selection\n const focusNode = focus.getNode()\n\n // First, delete currently selected node if it's an empty paragraph and if there are sufficient\n // paragraph nodes (more than 1) left in the parent node, so that we don't \"trap\" the user\n if (\n $isParagraphNode(focusNode) &&\n focusNode.getTextContentSize() === 0 &&\n focusNode\n .getParent()\n .getChildren()\n .filter((node) => $isParagraphNode(node)).length > 1\n ) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n INSERT_INLINE_BLOCK_COMMAND,\n (fields) => {\n if (targetNodeKey) {\n const node: InlineBlockNode = $getNodeByKey(targetNodeKey)\n\n if (!node) {\n return false\n }\n\n node.setFields(fields as BlockFields)\n\n setTargetNodeKey(null)\n return true\n }\n\n const inlineBlockNode = $createInlineBlockNode(fields as BlockFields)\n $insertNodes([inlineBlockNode])\n if ($isRootOrShadowRoot(inlineBlockNode.getParentOrThrow())) {\n $wrapNodeInElement(inlineBlockNode, $createParagraphNode).selectEnd()\n }\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n OPEN_INLINE_BLOCK_DRAWER_COMMAND,\n ({ fields, nodeKey }) => {\n setBlockFields((fields as BlockFields) ?? null)\n setTargetNodeKey(nodeKey ?? null)\n setBlockType(fields?.blockType ?? ('' as any))\n\n if (nodeKey) {\n toggleModal(drawerSlug)\n return true\n }\n\n let rangeSelection: null | RangeSelection = null\n\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) {\n rangeSelection = selection\n }\n })\n\n if (rangeSelection) {\n //setLastSelection(rangeSelection)\n toggleModal(drawerSlug)\n }\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [editor, targetNodeKey, toggleModal, drawerSlug])\n\n if (!blockFields) {\n return null\n }\n\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.lexical_inline_blocks.${blockFields?.blockType}`\n\n const componentMapRenderedBlockPath = `lexical_internal_feature.blocks.fields.lexical_inline_blocks`\n const blocksField: BlockFieldClient = richTextComponentMap.has(componentMapRenderedBlockPath)\n ? richTextComponentMap.get(componentMapRenderedBlockPath)[0]\n : null\n\n const clientBlock = blocksField\n ? blocksField.blocks.find((block) => block.slug === blockFields?.blockType)\n : null\n\n if (!blocksField) {\n return null\n }\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock?.labels?.singular, i18n)\n : clientBlock?.slug\n\n return (\n <FieldsDrawer\n data={blockFields}\n drawerSlug={drawerSlug}\n drawerTitle={t(`lexical:blocks:inlineBlocks:${blockFields?.id ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n featureKey=\"blocks\"\n fieldMapOverride={clientBlock?.fields}\n handleDrawerSubmit={(_fields, data) => {\n closeModal(drawerSlug)\n if (!data) {\n return\n }\n\n data.blockType = blockType\n\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, data)\n }}\n schemaFieldsPathOverride={schemaFieldsPath}\n schemaPathSuffix={blockFields?.blockType}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -41,31 +41,6 @@ export const BlocksFeature = createServerFeature({
41
41
  return {
42
42
  ClientFeature: '@payloadcms/richtext-lexical/client#BlocksFeatureClient',
43
43
  clientFeatureProps: clientProps,
44
- generateSchemaMap: ({
45
- props
46
- }) => {
47
- /**
48
- * Add sub-fields to the schemaMap. E.g. if you have an array field as part of the block, and it runs addRow, it will request these
49
- * sub-fields from the component map. Thus, we need to put them in the component map here.
50
- */
51
- const schemaMap = new Map();
52
- if (props?.blocks?.length) {
53
- schemaMap.set('lexical_blocks', [{
54
- name: 'lexical_blocks',
55
- type: 'blocks',
56
- blocks: props.blocks
57
- }]);
58
- }
59
- if (props?.inlineBlocks?.length) {
60
- // To generate block schemaMap which generates things like the componentMap for admin.Label
61
- schemaMap.set('lexical_inline_blocks', [{
62
- name: 'lexical_inline_blocks',
63
- type: 'blocks',
64
- blocks: props.inlineBlocks
65
- }]);
66
- }
67
- return schemaMap;
68
- },
69
44
  generatedTypes: {
70
45
  modifyOutputSchema: ({
71
46
  collectionIDFieldTypes,
@@ -100,6 +75,31 @@ export const BlocksFeature = createServerFeature({
100
75
  return currentSchema;
101
76
  }
102
77
  },
78
+ generateSchemaMap: ({
79
+ props
80
+ }) => {
81
+ /**
82
+ * Add sub-fields to the schemaMap. E.g. if you have an array field as part of the block, and it runs addRow, it will request these
83
+ * sub-fields from the component map. Thus, we need to put them in the component map here.
84
+ */
85
+ const schemaMap = new Map();
86
+ if (props?.blocks?.length) {
87
+ schemaMap.set('lexical_blocks', [{
88
+ name: 'lexical_blocks',
89
+ type: 'blocks',
90
+ blocks: props.blocks
91
+ }]);
92
+ }
93
+ if (props?.inlineBlocks?.length) {
94
+ // To generate block schemaMap which generates things like the componentMap for admin.Label
95
+ schemaMap.set('lexical_inline_blocks', [{
96
+ name: 'lexical_inline_blocks',
97
+ type: 'blocks',
98
+ blocks: props.inlineBlocks
99
+ }]);
100
+ }
101
+ return schemaMap;
102
+ },
103
103
  i18n,
104
104
  nodes: [createNode({
105
105
  getSubFields: ({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fieldsToJSONSchema","sanitizeFields","createServerFeature","createNode","blockPopulationPromiseHOC","i18n","ServerBlockNode","ServerInlineBlockNode","blockValidationHOC","BlocksFeature","feature","config","_config","isRoot","parentIsLocalized","props","clientProps","clientBlockSlugs","clientInlineBlockSlugs","validRelationships","collections","map","c","slug","sanitized","fields","name","type","blocks","inlineBlocks","requireFieldLevelRichTextEditor","block","ClientFeature","clientFeatureProps","generateSchemaMap","schemaMap","Map","length","set","generatedTypes","modifyOutputSchema","collectionIDFieldTypes","currentSchema","field","interfaceNameDefinitions","push","nodes","getSubFields","node","blockType","find","getSubFieldsData","graphQLPopulationPromises","validations","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/blocks/server/index.ts"],"sourcesContent":["import type { Block, BlockField, Config, Field } from 'payload'\n\nimport { fieldsToJSONSchema, sanitizeFields } from 'payload'\n\nimport type { BlocksFeatureClientProps } from '../client/index.js'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { blockPopulationPromiseHOC } from './graphQLPopulationPromise.js'\nimport { i18n } from './i18n.js'\nimport { ServerBlockNode } from './nodes/BlocksNode.js'\nimport { ServerInlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { blockValidationHOC } from './validate.js'\n\nexport type BlocksFeatureProps = {\n blocks?: Block[]\n inlineBlocks?: Block[]\n}\n\nexport const BlocksFeature = createServerFeature<\n BlocksFeatureProps,\n BlocksFeatureProps,\n BlocksFeatureClientProps\n>({\n feature: async ({ config: _config, isRoot, parentIsLocalized, props }) => {\n // Build clientProps\n const clientProps: BlocksFeatureClientProps = {\n clientBlockSlugs: [],\n clientInlineBlockSlugs: [],\n }\n const validRelationships = _config.collections.map((c) => c.slug) || []\n\n const sanitized = await sanitizeFields({\n config: _config as unknown as Config,\n fields: [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: props.blocks ?? [],\n },\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks ?? [],\n },\n ],\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n\n props.blocks = (sanitized[0] as BlockField).blocks\n props.inlineBlocks = (sanitized[1] as BlockField).blocks\n\n clientProps.clientBlockSlugs = props.blocks.map((block) => block.slug)\n clientProps.clientInlineBlockSlugs = props.inlineBlocks.map((block) => block.slug)\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#BlocksFeatureClient',\n clientFeatureProps: clientProps,\n generateSchemaMap: ({ props }) => {\n /**\n * Add sub-fields to the schemaMap. E.g. if you have an array field as part of the block, and it runs addRow, it will request these\n * sub-fields from the component map. Thus, we need to put them in the component map here.\n */\n const schemaMap = new Map<string, Field[]>()\n\n if (props?.blocks?.length) {\n schemaMap.set('lexical_blocks', [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: props.blocks,\n },\n ])\n }\n\n if (props?.inlineBlocks?.length) {\n // To generate block schemaMap which generates things like the componentMap for admin.Label\n schemaMap.set('lexical_inline_blocks', [\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks,\n },\n ])\n }\n\n return schemaMap\n },\n generatedTypes: {\n modifyOutputSchema: ({\n collectionIDFieldTypes,\n config,\n currentSchema,\n field,\n interfaceNameDefinitions,\n }) => {\n if (!props?.blocks?.length && !props?.inlineBlocks?.length) {\n return currentSchema\n }\n\n const fields: BlockField[] = []\n\n if (props?.blocks?.length) {\n fields.push({\n name: field?.name + '_lexical_blocks',\n type: 'blocks',\n blocks: props.blocks,\n })\n }\n if (props?.inlineBlocks?.length) {\n fields.push({\n name: field?.name + '_lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks,\n })\n }\n\n if (fields.length) {\n // This is only done so that interfaceNameDefinitions sets those block's interfaceNames.\n // we don't actually use the JSON Schema itself in the generated types yet.\n fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinitions, config)\n }\n\n return currentSchema\n },\n },\n i18n,\n nodes: [\n createNode({\n getSubFields: ({ node }) => {\n if (!node) {\n if (props?.blocks?.length) {\n return [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: props.blocks,\n },\n ]\n }\n return []\n }\n\n const blockType = node.fields.blockType\n\n const block = props.blocks.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(props.blocks)],\n node: ServerBlockNode,\n validations: [blockValidationHOC(props.blocks)],\n }),\n createNode({\n getSubFields: ({ node }) => {\n if (!node) {\n if (props?.inlineBlocks?.length) {\n return [\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks,\n },\n ]\n }\n return []\n }\n\n const blockType = node.fields.blockType\n\n const block = props.inlineBlocks.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(props.inlineBlocks)],\n node: ServerInlineBlockNode,\n validations: [blockValidationHOC(props.inlineBlocks)],\n }),\n ],\n sanitizedServerFeatureProps: props,\n }\n },\n key: 'blocks',\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["fieldsToJSONSchema","sanitizeFields","createServerFeature","createNode","blockPopulationPromiseHOC","i18n","ServerBlockNode","ServerInlineBlockNode","blockValidationHOC","BlocksFeature","feature","config","_config","isRoot","parentIsLocalized","props","clientProps","clientBlockSlugs","clientInlineBlockSlugs","validRelationships","collections","map","c","slug","sanitized","fields","name","type","blocks","inlineBlocks","requireFieldLevelRichTextEditor","block","ClientFeature","clientFeatureProps","generatedTypes","modifyOutputSchema","collectionIDFieldTypes","currentSchema","field","interfaceNameDefinitions","length","push","generateSchemaMap","schemaMap","Map","set","nodes","getSubFields","node","blockType","find","getSubFieldsData","graphQLPopulationPromises","validations","sanitizedServerFeatureProps","key"],"sources":["../../../../src/features/blocks/server/index.ts"],"sourcesContent":["import type { Block, BlockField, Config, Field } from 'payload'\n\nimport { fieldsToJSONSchema, sanitizeFields } from 'payload'\n\nimport type { BlocksFeatureClientProps } from '../client/index.js'\n\nimport { createServerFeature } from '../../../utilities/createServerFeature.js'\nimport { createNode } from '../../typeUtilities.js'\nimport { blockPopulationPromiseHOC } from './graphQLPopulationPromise.js'\nimport { i18n } from './i18n.js'\nimport { ServerBlockNode } from './nodes/BlocksNode.js'\nimport { ServerInlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { blockValidationHOC } from './validate.js'\n\nexport type BlocksFeatureProps = {\n blocks?: Block[]\n inlineBlocks?: Block[]\n}\n\nexport const BlocksFeature = createServerFeature<\n BlocksFeatureProps,\n BlocksFeatureProps,\n BlocksFeatureClientProps\n>({\n feature: async ({ config: _config, isRoot, parentIsLocalized, props }) => {\n // Build clientProps\n const clientProps: BlocksFeatureClientProps = {\n clientBlockSlugs: [],\n clientInlineBlockSlugs: [],\n }\n const validRelationships = _config.collections.map((c) => c.slug) || []\n\n const sanitized = await sanitizeFields({\n config: _config as unknown as Config,\n fields: [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: props.blocks ?? [],\n },\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks ?? [],\n },\n ],\n parentIsLocalized,\n requireFieldLevelRichTextEditor: isRoot,\n validRelationships,\n })\n\n props.blocks = (sanitized[0] as BlockField).blocks\n props.inlineBlocks = (sanitized[1] as BlockField).blocks\n\n clientProps.clientBlockSlugs = props.blocks.map((block) => block.slug)\n clientProps.clientInlineBlockSlugs = props.inlineBlocks.map((block) => block.slug)\n\n return {\n ClientFeature: '@payloadcms/richtext-lexical/client#BlocksFeatureClient',\n clientFeatureProps: clientProps,\n generatedTypes: {\n modifyOutputSchema: ({\n collectionIDFieldTypes,\n config,\n currentSchema,\n field,\n interfaceNameDefinitions,\n }) => {\n if (!props?.blocks?.length && !props?.inlineBlocks?.length) {\n return currentSchema\n }\n\n const fields: BlockField[] = []\n\n if (props?.blocks?.length) {\n fields.push({\n name: field?.name + '_lexical_blocks',\n type: 'blocks',\n blocks: props.blocks,\n })\n }\n if (props?.inlineBlocks?.length) {\n fields.push({\n name: field?.name + '_lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks,\n })\n }\n\n if (fields.length) {\n // This is only done so that interfaceNameDefinitions sets those block's interfaceNames.\n // we don't actually use the JSON Schema itself in the generated types yet.\n fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinitions, config)\n }\n\n return currentSchema\n },\n },\n generateSchemaMap: ({ props }) => {\n /**\n * Add sub-fields to the schemaMap. E.g. if you have an array field as part of the block, and it runs addRow, it will request these\n * sub-fields from the component map. Thus, we need to put them in the component map here.\n */\n const schemaMap = new Map<string, Field[]>()\n\n if (props?.blocks?.length) {\n schemaMap.set('lexical_blocks', [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: props.blocks,\n },\n ])\n }\n\n if (props?.inlineBlocks?.length) {\n // To generate block schemaMap which generates things like the componentMap for admin.Label\n schemaMap.set('lexical_inline_blocks', [\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks,\n },\n ])\n }\n\n return schemaMap\n },\n i18n,\n nodes: [\n createNode({\n getSubFields: ({ node }) => {\n if (!node) {\n if (props?.blocks?.length) {\n return [\n {\n name: 'lexical_blocks',\n type: 'blocks',\n blocks: props.blocks,\n },\n ]\n }\n return []\n }\n\n const blockType = node.fields.blockType\n\n const block = props.blocks.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(props.blocks)],\n node: ServerBlockNode,\n validations: [blockValidationHOC(props.blocks)],\n }),\n createNode({\n getSubFields: ({ node }) => {\n if (!node) {\n if (props?.inlineBlocks?.length) {\n return [\n {\n name: 'lexical_inline_blocks',\n type: 'blocks',\n blocks: props.inlineBlocks,\n },\n ]\n }\n return []\n }\n\n const blockType = node.fields.blockType\n\n const block = props.inlineBlocks.find((block) => block.slug === blockType)\n return block?.fields\n },\n getSubFieldsData: ({ node }) => {\n return node?.fields\n },\n graphQLPopulationPromises: [blockPopulationPromiseHOC(props.inlineBlocks)],\n node: ServerInlineBlockNode,\n validations: [blockValidationHOC(props.inlineBlocks)],\n }),\n ],\n sanitizedServerFeatureProps: props,\n }\n },\n key: 'blocks',\n})\n"],"mappings":"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","ignoreList":[]}
@@ -34,5 +34,5 @@ export declare class ServerBlockNode extends DecoratorBlockNode {
34
34
  setFields(fields: BlockFields): void;
35
35
  }
36
36
  export declare function $createServerBlockNode(fields: Exclude<BlockFields, 'id'>): ServerBlockNode;
37
- export declare function $isServerBlockNode(node: LexicalNode | ServerBlockNode | null | undefined): node is ServerBlockNode;
37
+ export declare function $isServerBlockNode(node: LexicalNode | null | ServerBlockNode | undefined): node is ServerBlockNode;
38
38
  //# sourceMappingURL=BlocksNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlocksNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/nodes/BlocksNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAA;AAC/F,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,OAAO,EACP,MAAM,EACP,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAIhF,MAAM,MAAM,WAAW,CAAC,YAAY,SAAS,UAAU,GAAG,UAAU,IAAI;IACtE,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,YAAY,CAAA;AAEhB,MAAM,MAAM,mBAAmB,CAAC,YAAY,SAAS,UAAU,GAAG,UAAU,IAAI,MAAM,CACpF;IACE,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACjC,IAAI,EAAE,OAAO,CAAA;CACd,EACD,4BAA4B,CAC7B,CAAA;AAED,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,QAAQ,EAAE,WAAW,CAAA;gBAET,EACV,MAAM,EACN,MAAM,EACN,GAAG,GACJ,EAAE;QACD,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;IAKD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe;IAQpD,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI;IAI3D,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,mBAAmB,GAAG,eAAe;IAgBvE,MAAM,CAAC,QAAQ,IAAI,KAAK;IAIxB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO;IAIlE,SAAS,IAAI,eAAe;IAQ5B,UAAU,IAAI,mBAAmB;IASjC,SAAS,IAAI,WAAW;IAIxB,cAAc,IAAI,MAAM;IAIxB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CAMrC;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,eAAe,CAO1F;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI,GAAG,SAAS,GACrD,IAAI,IAAI,eAAe,CAEzB"}
1
+ {"version":3,"file":"BlocksNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/nodes/BlocksNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAA;AAC/F,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,OAAO,EACP,MAAM,EACP,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAIhF,MAAM,MAAM,WAAW,CAAC,YAAY,SAAS,UAAU,GAAG,UAAU,IAAI;IACtE,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,YAAY,CAAA;AAEhB,MAAM,MAAM,mBAAmB,CAAC,YAAY,SAAS,UAAU,GAAG,UAAU,IAAI,MAAM,CACpF;IACE,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACjC,IAAI,EAAE,OAAO,CAAA;CACd,EACD,4BAA4B,CAC7B,CAAA;AAED,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,QAAQ,EAAE,WAAW,CAAA;gBAET,EACV,MAAM,EACN,MAAM,EACN,GAAG,GACJ,EAAE;QACD,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;IAKD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe;IAQpD,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI;IAI3D,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,mBAAmB,GAAG,eAAe;IAgBvE,MAAM,CAAC,QAAQ,IAAI,KAAK;IAIxB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO;IAIlE,SAAS,IAAI,eAAe;IAQ5B,UAAU,IAAI,mBAAmB;IASjC,SAAS,IAAI,WAAW;IAIxB,cAAc,IAAI,MAAM;IAIxB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CAMrC;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,eAAe,CAO1F;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,eAAe,GAAG,SAAS,GACrD,IAAI,IAAI,eAAe,CAEzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"BlocksNode.js","names":["DecoratorBlockNode","ObjectID","deepCopyObjectSimple","ServerBlockNode","__fields","constructor","fields","format","key","clone","node","__format","__key","getType","importDOM","importJSON","serializedNode","version","data","$createServerBlockNode","setFormat","isInline","decorate","editor","config","exportDOM","element","document","createElement","text","createTextNode","getTextContent","append","exportJSON","type","getFields","getLatest","setFields","fieldsCopy","writable","getWritable","id","default","toHexString","$isServerBlockNode"],"sources":["../../../../../src/features/blocks/server/nodes/BlocksNode.tsx"],"sourcesContent":["import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n ElementFormatType,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n Spread,\n} from 'lexical'\nimport type { JsonObject } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport ObjectID from 'bson-objectid'\nimport { deepCopyObjectSimple } from 'payload/shared'\n\nexport type BlockFields<TBlockFields extends JsonObject = JsonObject> = {\n /** Block form data */\n blockName: string\n blockType: string\n id: string\n} & TBlockFields\n\nexport type SerializedBlockNode<TBlockFields extends JsonObject = JsonObject> = Spread<\n {\n children?: never // required so that our typed editor state doesn't automatically add children\n fields: BlockFields<TBlockFields>\n type: 'block'\n },\n SerializedDecoratorBlockNode\n>\n\nexport class ServerBlockNode extends DecoratorBlockNode {\n __fields: BlockFields\n\n constructor({\n fields,\n format,\n key,\n }: {\n fields: BlockFields\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__fields = fields\n }\n\n static clone(node: ServerBlockNode): ServerBlockNode {\n return new this({\n fields: node.__fields,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'block'\n }\n\n static importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static importJSON(serializedNode: SerializedBlockNode): ServerBlockNode {\n if (serializedNode.version === 1) {\n // Convert (version 1 had the fields wrapped in another, unnecessary data property)\n serializedNode = {\n ...serializedNode,\n fields: {\n ...(serializedNode as any).fields.data,\n },\n version: 2,\n }\n }\n const node = $createServerBlockNode(serializedNode.fields)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return null\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n exportJSON(): SerializedBlockNode {\n return {\n ...super.exportJSON(),\n type: 'block',\n fields: this.getFields(),\n version: 2,\n }\n }\n\n getFields(): BlockFields {\n return this.getLatest().__fields\n }\n\n getTextContent(): string {\n return `Block Field`\n }\n\n setFields(fields: BlockFields): void {\n const fieldsCopy = deepCopyObjectSimple(fields)\n\n const writable = this.getWritable()\n writable.__fields = fieldsCopy\n }\n}\n\nexport function $createServerBlockNode(fields: Exclude<BlockFields, 'id'>): ServerBlockNode {\n return new ServerBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n })\n}\n\nexport function $isServerBlockNode(\n node: LexicalNode | ServerBlockNode | null | undefined,\n): node is ServerBlockNode {\n return node instanceof ServerBlockNode\n}\n"],"mappings":"AAcA,SAASA,kBAAkB,QAAQ;AACnC,OAAOC,QAAA,MAAc;AACrB,SAASC,oBAAoB,QAAQ;AAkBrC,OAAO,MAAMC,eAAA,SAAwBH,kBAAA;EACnCI,QAAA;EAEAC,YAAY;IACVC,MAAM;IACNC,MAAM;IACNC;EAAG,CAKJ,EAAE;IACD,KAAK,CAACD,MAAA,EAAQC,GAAA;IACd,IAAI,CAACJ,QAAQ,GAAGE,MAAA;EAClB;EAEA,OAAOG,MAAMC,IAAqB,EAAmB;IACnD,OAAO,IAAI,IAAI,CAAC;MACdJ,MAAA,EAAQI,IAAA,CAAKN,QAAQ;MACrBG,MAAA,EAAQG,IAAA,CAAKC,QAAQ;MACrBH,GAAA,EAAKE,IAAA,CAAKE;IACZ;EACF;EAEA,OAAOC,QAAA,EAAkB;IACvB,OAAO;EACT;EAEA,OAAOC,UAAA,EAAqD;IAC1D,OAAO,CAAC;EACV;EAEA,OAAOC,WAAWC,cAAmC,EAAmB;IACtE,IAAIA,cAAA,CAAeC,OAAO,KAAK,GAAG;MAChC;MACAD,cAAA,GAAiB;QACf,GAAGA,cAAc;QACjBV,MAAA,EAAQ;UACN,GAAGU,cAAC,CAAuBV,MAAM,CAACY;QACpC;QACAD,OAAA,EAAS;MACX;IACF;IACA,MAAMP,IAAA,GAAOS,sBAAA,CAAuBH,cAAA,CAAeV,MAAM;IACzDI,IAAA,CAAKU,SAAS,CAACJ,cAAA,CAAeT,MAAM;IACpC,OAAOG,IAAA;EACT;EAEA,OAAOW,SAAA,EAAkB;IACvB,OAAO;EACT;EAEAC,SAASC,MAAqB,EAAEC,MAAoB,EAAe;IACjE,OAAO;EACT;EAEAC,UAAA,EAA6B;IAC3B,MAAMC,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IAEvC,MAAMC,IAAA,GAAOF,QAAA,CAASG,cAAc,CAAC,IAAI,CAACC,cAAc;IACxDL,OAAA,CAAQM,MAAM,CAACH,IAAA;IACf,OAAO;MAAEH;IAAQ;EACnB;EAEAO,WAAA,EAAkC;IAChC,OAAO;MACL,GAAG,KAAK,CAACA,UAAA,EAAY;MACrBC,IAAA,EAAM;MACN5B,MAAA,EAAQ,IAAI,CAAC6B,SAAS;MACtBlB,OAAA,EAAS;IACX;EACF;EAEAkB,UAAA,EAAyB;IACvB,OAAO,IAAI,CAACC,SAAS,GAAGhC,QAAQ;EAClC;EAEA2B,eAAA,EAAyB;IACvB,OAAO,aAAa;EACtB;EAEAM,UAAU/B,MAAmB,EAAQ;IACnC,MAAMgC,UAAA,GAAapC,oBAAA,CAAqBI,MAAA;IAExC,MAAMiC,QAAA,GAAW,IAAI,CAACC,WAAW;IACjCD,QAAA,CAASnC,QAAQ,GAAGkC,UAAA;EACtB;AACF;AAEA,OAAO,SAASnB,uBAAuBb,MAAkC;EACvE,OAAO,IAAIH,eAAA,CAAgB;IACzBG,MAAA,EAAQ;MACN,GAAGA,MAAM;MACTmC,EAAA,EAAInC,MAAA,EAAQmC,EAAA,IAAM,IAAIxC,QAAA,CAASyC,OAAO,GAAGC,WAAW;IACtD;EACF;AACF;AAEA,OAAO,SAASC,mBACdlC,IAAsD;EAEtD,OAAOA,IAAA,YAAgBP,eAAA;AACzB","ignoreList":[]}
1
+ {"version":3,"file":"BlocksNode.js","names":["DecoratorBlockNode","ObjectID","deepCopyObjectSimple","ServerBlockNode","__fields","constructor","fields","format","key","clone","node","__format","__key","getType","importDOM","importJSON","serializedNode","version","data","$createServerBlockNode","setFormat","isInline","decorate","editor","config","exportDOM","element","document","createElement","text","createTextNode","getTextContent","append","exportJSON","type","getFields","getLatest","setFields","fieldsCopy","writable","getWritable","id","default","toHexString","$isServerBlockNode"],"sources":["../../../../../src/features/blocks/server/nodes/BlocksNode.tsx"],"sourcesContent":["import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n ElementFormatType,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n Spread,\n} from 'lexical'\nimport type { JsonObject } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport ObjectID from 'bson-objectid'\nimport { deepCopyObjectSimple } from 'payload/shared'\n\nexport type BlockFields<TBlockFields extends JsonObject = JsonObject> = {\n /** Block form data */\n blockName: string\n blockType: string\n id: string\n} & TBlockFields\n\nexport type SerializedBlockNode<TBlockFields extends JsonObject = JsonObject> = Spread<\n {\n children?: never // required so that our typed editor state doesn't automatically add children\n fields: BlockFields<TBlockFields>\n type: 'block'\n },\n SerializedDecoratorBlockNode\n>\n\nexport class ServerBlockNode extends DecoratorBlockNode {\n __fields: BlockFields\n\n constructor({\n fields,\n format,\n key,\n }: {\n fields: BlockFields\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__fields = fields\n }\n\n static clone(node: ServerBlockNode): ServerBlockNode {\n return new this({\n fields: node.__fields,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'block'\n }\n\n static importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static importJSON(serializedNode: SerializedBlockNode): ServerBlockNode {\n if (serializedNode.version === 1) {\n // Convert (version 1 had the fields wrapped in another, unnecessary data property)\n serializedNode = {\n ...serializedNode,\n fields: {\n ...(serializedNode as any).fields.data,\n },\n version: 2,\n }\n }\n const node = $createServerBlockNode(serializedNode.fields)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return null\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n exportJSON(): SerializedBlockNode {\n return {\n ...super.exportJSON(),\n type: 'block',\n fields: this.getFields(),\n version: 2,\n }\n }\n\n getFields(): BlockFields {\n return this.getLatest().__fields\n }\n\n getTextContent(): string {\n return `Block Field`\n }\n\n setFields(fields: BlockFields): void {\n const fieldsCopy = deepCopyObjectSimple(fields)\n\n const writable = this.getWritable()\n writable.__fields = fieldsCopy\n }\n}\n\nexport function $createServerBlockNode(fields: Exclude<BlockFields, 'id'>): ServerBlockNode {\n return new ServerBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n })\n}\n\nexport function $isServerBlockNode(\n node: LexicalNode | null | ServerBlockNode | undefined,\n): node is ServerBlockNode {\n return node instanceof ServerBlockNode\n}\n"],"mappings":"AAcA,SAASA,kBAAkB,QAAQ;AACnC,OAAOC,QAAA,MAAc;AACrB,SAASC,oBAAoB,QAAQ;AAkBrC,OAAO,MAAMC,eAAA,SAAwBH,kBAAA;EACnCI,QAAA;EAEAC,YAAY;IACVC,MAAM;IACNC,MAAM;IACNC;EAAG,CAKJ,EAAE;IACD,KAAK,CAACD,MAAA,EAAQC,GAAA;IACd,IAAI,CAACJ,QAAQ,GAAGE,MAAA;EAClB;EAEA,OAAOG,MAAMC,IAAqB,EAAmB;IACnD,OAAO,IAAI,IAAI,CAAC;MACdJ,MAAA,EAAQI,IAAA,CAAKN,QAAQ;MACrBG,MAAA,EAAQG,IAAA,CAAKC,QAAQ;MACrBH,GAAA,EAAKE,IAAA,CAAKE;IACZ;EACF;EAEA,OAAOC,QAAA,EAAkB;IACvB,OAAO;EACT;EAEA,OAAOC,UAAA,EAAqD;IAC1D,OAAO,CAAC;EACV;EAEA,OAAOC,WAAWC,cAAmC,EAAmB;IACtE,IAAIA,cAAA,CAAeC,OAAO,KAAK,GAAG;MAChC;MACAD,cAAA,GAAiB;QACf,GAAGA,cAAc;QACjBV,MAAA,EAAQ;UACN,GAAGU,cAAC,CAAuBV,MAAM,CAACY;QACpC;QACAD,OAAA,EAAS;MACX;IACF;IACA,MAAMP,IAAA,GAAOS,sBAAA,CAAuBH,cAAA,CAAeV,MAAM;IACzDI,IAAA,CAAKU,SAAS,CAACJ,cAAA,CAAeT,MAAM;IACpC,OAAOG,IAAA;EACT;EAEA,OAAOW,SAAA,EAAkB;IACvB,OAAO;EACT;EAEAC,SAASC,MAAqB,EAAEC,MAAoB,EAAe;IACjE,OAAO;EACT;EAEAC,UAAA,EAA6B;IAC3B,MAAMC,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IAEvC,MAAMC,IAAA,GAAOF,QAAA,CAASG,cAAc,CAAC,IAAI,CAACC,cAAc;IACxDL,OAAA,CAAQM,MAAM,CAACH,IAAA;IACf,OAAO;MAAEH;IAAQ;EACnB;EAEAO,WAAA,EAAkC;IAChC,OAAO;MACL,GAAG,KAAK,CAACA,UAAA,EAAY;MACrBC,IAAA,EAAM;MACN5B,MAAA,EAAQ,IAAI,CAAC6B,SAAS;MACtBlB,OAAA,EAAS;IACX;EACF;EAEAkB,UAAA,EAAyB;IACvB,OAAO,IAAI,CAACC,SAAS,GAAGhC,QAAQ;EAClC;EAEA2B,eAAA,EAAyB;IACvB,OAAO,aAAa;EACtB;EAEAM,UAAU/B,MAAmB,EAAQ;IACnC,MAAMgC,UAAA,GAAapC,oBAAA,CAAqBI,MAAA;IAExC,MAAMiC,QAAA,GAAW,IAAI,CAACC,WAAW;IACjCD,QAAA,CAASnC,QAAQ,GAAGkC,UAAA;EACtB;AACF;AAEA,OAAO,SAASnB,uBAAuBb,MAAkC;EACvE,OAAO,IAAIH,eAAA,CAAgB;IACzBG,MAAA,EAAQ;MACN,GAAGA,MAAM;MACTmC,EAAA,EAAInC,MAAA,EAAQmC,EAAA,IAAM,IAAIxC,QAAA,CAASyC,OAAO,GAAGC,WAAW;IACtD;EACF;AACF;AAEA,OAAO,SAASC,mBACdlC,IAAsD;EAEtD,OAAOA,IAAA,YAAgBP,eAAA;AACzB","ignoreList":[]}
@@ -36,5 +36,5 @@ export declare class ServerInlineBlockNode extends DecoratorNode<React.ReactElem
36
36
  updateDOM(): boolean;
37
37
  }
38
38
  export declare function $createServerInlineBlockNode(fields: Exclude<InlineBlockFields, 'id'>): ServerInlineBlockNode;
39
- export declare function $isServerInlineBlockNode(node: LexicalNode | ServerInlineBlockNode | null | undefined): node is ServerInlineBlockNode;
39
+ export declare function $isServerInlineBlockNode(node: LexicalNode | null | ServerInlineBlockNode | undefined): node is ServerInlineBlockNode;
40
40
  //# sourceMappingURL=InlineBlocksNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InlineBlocksNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/nodes/InlineBlocksNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,OAAO,EACP,qBAAqB,EACrB,MAAM,EACP,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGvC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,sBAAsB;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;IAElB,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,MAAM,CAClD;IACE,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,MAAM,EAAE,iBAAiB,CAAA;IACzB,IAAI,EAAE,aAAa,CAAA;CACpB,EACD,qBAAqB,CACtB,CAAA;AAED,qBAAa,qBAAsB,SAAQ,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC;IAC1E,QAAQ,EAAE,iBAAiB,CAAA;gBAEf,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAAE,MAAM,EAAE,iBAAiB,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE;IAKzE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,GAAG,qBAAqB;IAOhE,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI;IAI3D,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,+BAA+B,GAAG,qBAAqB;IAKzF,MAAM,CAAC,QAAQ,IAAI,KAAK;IAIxB,SAAS;IAGT,SAAS;IAOT,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO;IAIlE,SAAS,IAAI,eAAe;IAS5B,UAAU,IAAI,+BAA+B;IAQ7C,SAAS,IAAI,iBAAiB;IAI9B,cAAc,IAAI,MAAM;IAIxB,QAAQ;IAIR,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAO1C,SAAS,IAAI,OAAO;CAGrB;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,GACvC,qBAAqB,CAOvB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,WAAW,GAAG,qBAAqB,GAAG,IAAI,GAAG,SAAS,GAC3D,IAAI,IAAI,qBAAqB,CAE/B"}
1
+ {"version":3,"file":"InlineBlocksNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/server/nodes/InlineBlocksNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,OAAO,EACP,qBAAqB,EACrB,MAAM,EACP,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGvC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,sBAAsB;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;IAElB,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,MAAM,CAClD;IACE,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,MAAM,EAAE,iBAAiB,CAAA;IACzB,IAAI,EAAE,aAAa,CAAA;CACpB,EACD,qBAAqB,CACtB,CAAA;AAED,qBAAa,qBAAsB,SAAQ,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC;IAC1E,QAAQ,EAAE,iBAAiB,CAAA;gBAEf,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAAE,MAAM,EAAE,iBAAiB,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE;IAKzE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,GAAG,qBAAqB;IAOhE,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI;IAI3D,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,+BAA+B,GAAG,qBAAqB;IAKzF,MAAM,CAAC,QAAQ,IAAI,KAAK;IAIxB,SAAS;IAGT,SAAS;IAOT,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO;IAIlE,SAAS,IAAI,eAAe;IAS5B,UAAU,IAAI,+BAA+B;IAQ7C,SAAS,IAAI,iBAAiB;IAI9B,cAAc,IAAI,MAAM;IAIxB,QAAQ;IAIR,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAO1C,SAAS,IAAI,OAAO;CAGrB;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,GACvC,qBAAqB,CAOvB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,qBAAqB,GAAG,SAAS,GAC3D,IAAI,IAAI,qBAAqB,CAE/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"InlineBlocksNode.js","names":["ObjectID","DecoratorNode","deepCopyObjectSimple","ServerInlineBlockNode","__fields","constructor","fields","key","clone","node","__key","getType","importDOM","importJSON","serializedNode","$createServerInlineBlockNode","isInline","canIndent","createDOM","element","document","createElement","classList","add","decorate","editor","config","exportDOM","text","createTextNode","getTextContent","append","exportJSON","type","getFields","version","getLatest","setFields","fieldsCopy","writable","getWritable","updateDOM","id","default","toHexString","$isServerInlineBlockNode"],"sources":["../../../../../src/features/blocks/server/nodes/InlineBlocksNode.tsx"],"sourcesContent":["import type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n SerializedLexicalNode,\n Spread,\n} from 'lexical'\nimport type React from 'react'\nimport type { JSX } from 'react'\n\nimport ObjectID from 'bson-objectid'\nimport { DecoratorNode } from 'lexical'\nimport { deepCopyObjectSimple } from 'payload/shared'\n\nexport type InlineBlockFields = {\n /** Block form data */\n [key: string]: any\n //blockName: string\n blockType: string\n id: string\n}\n\nexport type SerializedServerInlineBlockNode = Spread<\n {\n children?: never // required so that our typed editor state doesn't automatically add children\n fields: InlineBlockFields\n type: 'inlineBlock'\n },\n SerializedLexicalNode\n>\n\nexport class ServerInlineBlockNode extends DecoratorNode<React.ReactElement> {\n __fields: InlineBlockFields\n\n constructor({ fields, key }: { fields: InlineBlockFields; key?: NodeKey }) {\n super(key)\n this.__fields = fields\n }\n\n static clone(node: ServerInlineBlockNode): ServerInlineBlockNode {\n return new this({\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'inlineBlock'\n }\n\n static importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static importJSON(serializedNode: SerializedServerInlineBlockNode): ServerInlineBlockNode {\n const node = $createServerInlineBlockNode(serializedNode.fields)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n canIndent() {\n return true\n }\n createDOM() {\n const element = document.createElement('span')\n element.classList.add('inline-block-container')\n\n return element\n }\n\n decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return null\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('span')\n element.classList.add('inline-block-container')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n exportJSON(): SerializedServerInlineBlockNode {\n return {\n type: 'inlineBlock',\n fields: this.getFields(),\n version: 1,\n }\n }\n\n getFields(): InlineBlockFields {\n return this.getLatest().__fields\n }\n\n getTextContent(): string {\n return `Block Field`\n }\n\n isInline() {\n return true\n }\n\n setFields(fields: InlineBlockFields): void {\n const fieldsCopy = deepCopyObjectSimple(fields)\n\n const writable = this.getWritable()\n writable.__fields = fieldsCopy\n }\n\n updateDOM(): boolean {\n return false\n }\n}\n\nexport function $createServerInlineBlockNode(\n fields: Exclude<InlineBlockFields, 'id'>,\n): ServerInlineBlockNode {\n return new ServerInlineBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n })\n}\n\nexport function $isServerInlineBlockNode(\n node: LexicalNode | ServerInlineBlockNode | null | undefined,\n): node is ServerInlineBlockNode {\n return node instanceof ServerInlineBlockNode\n}\n"],"mappings":"AAaA,OAAOA,QAAA,MAAc;AACrB,SAASC,aAAa,QAAQ;AAC9B,SAASC,oBAAoB,QAAQ;AAmBrC,OAAO,MAAMC,qBAAA,SAA8BF,aAAA;EACzCG,QAAA;EAEAC,YAAY;IAAEC,MAAM;IAAEC;EAAG,CAAgD,EAAE;IACzE,KAAK,CAACA,GAAA;IACN,IAAI,CAACH,QAAQ,GAAGE,MAAA;EAClB;EAEA,OAAOE,MAAMC,IAA2B,EAAyB;IAC/D,OAAO,IAAI,IAAI,CAAC;MACdH,MAAA,EAAQG,IAAA,CAAKL,QAAQ;MACrBG,GAAA,EAAKE,IAAA,CAAKC;IACZ;EACF;EAEA,OAAOC,QAAA,EAAkB;IACvB,OAAO;EACT;EAEA,OAAOC,UAAA,EAAqD;IAC1D,OAAO,CAAC;EACV;EAEA,OAAOC,WAAWC,cAA+C,EAAyB;IACxF,MAAML,IAAA,GAAOM,4BAAA,CAA6BD,cAAA,CAAeR,MAAM;IAC/D,OAAOG,IAAA;EACT;EAEA,OAAOO,SAAA,EAAkB;IACvB,OAAO;EACT;EAEAC,UAAA,EAAY;IACV,OAAO;EACT;EACAC,UAAA,EAAY;IACV,MAAMC,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvCF,OAAA,CAAQG,SAAS,CAACC,GAAG,CAAC;IAEtB,OAAOJ,OAAA;EACT;EAEAK,SAASC,MAAqB,EAAEC,MAAoB,EAAe;IACjE,OAAO;EACT;EAEAC,UAAA,EAA6B;IAC3B,MAAMR,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvCF,OAAA,CAAQG,SAAS,CAACC,GAAG,CAAC;IAEtB,MAAMK,IAAA,GAAOR,QAAA,CAASS,cAAc,CAAC,IAAI,CAACC,cAAc;IACxDX,OAAA,CAAQY,MAAM,CAACH,IAAA;IACf,OAAO;MAAET;IAAQ;EACnB;EAEAa,WAAA,EAA8C;IAC5C,OAAO;MACLC,IAAA,EAAM;MACN3B,MAAA,EAAQ,IAAI,CAAC4B,SAAS;MACtBC,OAAA,EAAS;IACX;EACF;EAEAD,UAAA,EAA+B;IAC7B,OAAO,IAAI,CAACE,SAAS,GAAGhC,QAAQ;EAClC;EAEA0B,eAAA,EAAyB;IACvB,OAAO,aAAa;EACtB;EAEAd,SAAA,EAAW;IACT,OAAO;EACT;EAEAqB,UAAU/B,MAAyB,EAAQ;IACzC,MAAMgC,UAAA,GAAapC,oBAAA,CAAqBI,MAAA;IAExC,MAAMiC,QAAA,GAAW,IAAI,CAACC,WAAW;IACjCD,QAAA,CAASnC,QAAQ,GAAGkC,UAAA;EACtB;EAEAG,UAAA,EAAqB;IACnB,OAAO;EACT;AACF;AAEA,OAAO,SAAS1B,6BACdT,MAAwC;EAExC,OAAO,IAAIH,qBAAA,CAAsB;IAC/BG,MAAA,EAAQ;MACN,GAAGA,MAAM;MACToC,EAAA,EAAIpC,MAAA,EAAQoC,EAAA,IAAM,IAAI1C,QAAA,CAAS2C,OAAO,GAAGC,WAAW;IACtD;EACF;AACF;AAEA,OAAO,SAASC,yBACdpC,IAA4D;EAE5D,OAAOA,IAAA,YAAgBN,qBAAA;AACzB","ignoreList":[]}
1
+ {"version":3,"file":"InlineBlocksNode.js","names":["ObjectID","DecoratorNode","deepCopyObjectSimple","ServerInlineBlockNode","__fields","constructor","fields","key","clone","node","__key","getType","importDOM","importJSON","serializedNode","$createServerInlineBlockNode","isInline","canIndent","createDOM","element","document","createElement","classList","add","decorate","editor","config","exportDOM","text","createTextNode","getTextContent","append","exportJSON","type","getFields","version","getLatest","setFields","fieldsCopy","writable","getWritable","updateDOM","id","default","toHexString","$isServerInlineBlockNode"],"sources":["../../../../../src/features/blocks/server/nodes/InlineBlocksNode.tsx"],"sourcesContent":["import type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n SerializedLexicalNode,\n Spread,\n} from 'lexical'\nimport type React from 'react'\nimport type { JSX } from 'react'\n\nimport ObjectID from 'bson-objectid'\nimport { DecoratorNode } from 'lexical'\nimport { deepCopyObjectSimple } from 'payload/shared'\n\nexport type InlineBlockFields = {\n /** Block form data */\n [key: string]: any\n //blockName: string\n blockType: string\n id: string\n}\n\nexport type SerializedServerInlineBlockNode = Spread<\n {\n children?: never // required so that our typed editor state doesn't automatically add children\n fields: InlineBlockFields\n type: 'inlineBlock'\n },\n SerializedLexicalNode\n>\n\nexport class ServerInlineBlockNode extends DecoratorNode<React.ReactElement> {\n __fields: InlineBlockFields\n\n constructor({ fields, key }: { fields: InlineBlockFields; key?: NodeKey }) {\n super(key)\n this.__fields = fields\n }\n\n static clone(node: ServerInlineBlockNode): ServerInlineBlockNode {\n return new this({\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'inlineBlock'\n }\n\n static importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {}\n }\n\n static importJSON(serializedNode: SerializedServerInlineBlockNode): ServerInlineBlockNode {\n const node = $createServerInlineBlockNode(serializedNode.fields)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n canIndent() {\n return true\n }\n createDOM() {\n const element = document.createElement('span')\n element.classList.add('inline-block-container')\n\n return element\n }\n\n decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return null\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('span')\n element.classList.add('inline-block-container')\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n exportJSON(): SerializedServerInlineBlockNode {\n return {\n type: 'inlineBlock',\n fields: this.getFields(),\n version: 1,\n }\n }\n\n getFields(): InlineBlockFields {\n return this.getLatest().__fields\n }\n\n getTextContent(): string {\n return `Block Field`\n }\n\n isInline() {\n return true\n }\n\n setFields(fields: InlineBlockFields): void {\n const fieldsCopy = deepCopyObjectSimple(fields)\n\n const writable = this.getWritable()\n writable.__fields = fieldsCopy\n }\n\n updateDOM(): boolean {\n return false\n }\n}\n\nexport function $createServerInlineBlockNode(\n fields: Exclude<InlineBlockFields, 'id'>,\n): ServerInlineBlockNode {\n return new ServerInlineBlockNode({\n fields: {\n ...fields,\n id: fields?.id || new ObjectID.default().toHexString(),\n },\n })\n}\n\nexport function $isServerInlineBlockNode(\n node: LexicalNode | null | ServerInlineBlockNode | undefined,\n): node is ServerInlineBlockNode {\n return node instanceof ServerInlineBlockNode\n}\n"],"mappings":"AAaA,OAAOA,QAAA,MAAc;AACrB,SAASC,aAAa,QAAQ;AAC9B,SAASC,oBAAoB,QAAQ;AAmBrC,OAAO,MAAMC,qBAAA,SAA8BF,aAAA;EACzCG,QAAA;EAEAC,YAAY;IAAEC,MAAM;IAAEC;EAAG,CAAgD,EAAE;IACzE,KAAK,CAACA,GAAA;IACN,IAAI,CAACH,QAAQ,GAAGE,MAAA;EAClB;EAEA,OAAOE,MAAMC,IAA2B,EAAyB;IAC/D,OAAO,IAAI,IAAI,CAAC;MACdH,MAAA,EAAQG,IAAA,CAAKL,QAAQ;MACrBG,GAAA,EAAKE,IAAA,CAAKC;IACZ;EACF;EAEA,OAAOC,QAAA,EAAkB;IACvB,OAAO;EACT;EAEA,OAAOC,UAAA,EAAqD;IAC1D,OAAO,CAAC;EACV;EAEA,OAAOC,WAAWC,cAA+C,EAAyB;IACxF,MAAML,IAAA,GAAOM,4BAAA,CAA6BD,cAAA,CAAeR,MAAM;IAC/D,OAAOG,IAAA;EACT;EAEA,OAAOO,SAAA,EAAkB;IACvB,OAAO;EACT;EAEAC,UAAA,EAAY;IACV,OAAO;EACT;EACAC,UAAA,EAAY;IACV,MAAMC,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvCF,OAAA,CAAQG,SAAS,CAACC,GAAG,CAAC;IAEtB,OAAOJ,OAAA;EACT;EAEAK,SAASC,MAAqB,EAAEC,MAAoB,EAAe;IACjE,OAAO;EACT;EAEAC,UAAA,EAA6B;IAC3B,MAAMR,OAAA,GAAUC,QAAA,CAASC,aAAa,CAAC;IACvCF,OAAA,CAAQG,SAAS,CAACC,GAAG,CAAC;IAEtB,MAAMK,IAAA,GAAOR,QAAA,CAASS,cAAc,CAAC,IAAI,CAACC,cAAc;IACxDX,OAAA,CAAQY,MAAM,CAACH,IAAA;IACf,OAAO;MAAET;IAAQ;EACnB;EAEAa,WAAA,EAA8C;IAC5C,OAAO;MACLC,IAAA,EAAM;MACN3B,MAAA,EAAQ,IAAI,CAAC4B,SAAS;MACtBC,OAAA,EAAS;IACX;EACF;EAEAD,UAAA,EAA+B;IAC7B,OAAO,IAAI,CAACE,SAAS,GAAGhC,QAAQ;EAClC;EAEA0B,eAAA,EAAyB;IACvB,OAAO,aAAa;EACtB;EAEAd,SAAA,EAAW;IACT,OAAO;EACT;EAEAqB,UAAU/B,MAAyB,EAAQ;IACzC,MAAMgC,UAAA,GAAapC,oBAAA,CAAqBI,MAAA;IAExC,MAAMiC,QAAA,GAAW,IAAI,CAACC,WAAW;IACjCD,QAAA,CAASnC,QAAQ,GAAGkC,UAAA;EACtB;EAEAG,UAAA,EAAqB;IACnB,OAAO;EACT;AACF;AAEA,OAAO,SAAS1B,6BACdT,MAAwC;EAExC,OAAO,IAAIH,qBAAA,CAAsB;IAC/BG,MAAA,EAAQ;MACN,GAAGA,MAAM;MACToC,EAAA,EAAIpC,MAAA,EAAQoC,EAAA,IAAM,IAAI1C,QAAA,CAAS2C,OAAO,GAAGC,WAAW;IACtD;EACF;AACF;AAEA,OAAO,SAASC,yBACdpC,IAA4D;EAE5D,OAAOA,IAAA,YAAgBN,qBAAA;AACzB","ignoreList":[]}
@@ -13,26 +13,26 @@ export type ConvertLexicalToHTMLArgs = {
13
13
  /**
14
14
  * This payload property will only be used if req is undefined.
15
15
  */
16
- payload?: Payload;
16
+ payload?: never;
17
17
  /**
18
18
  * When the converter is called, req CAN be passed in depending on where it's run.
19
19
  * If this is undefined and config is passed through, lexical will create a new req object for you. If this is null or
20
20
  * config is undefined, lexical will not create a new req object for you and local API / server-side-only
21
21
  * functionality will be disabled.
22
22
  */
23
- req?: null | undefined;
23
+ req: PayloadRequest;
24
24
  } | {
25
25
  /**
26
26
  * This payload property will only be used if req is undefined.
27
27
  */
28
- payload?: never;
28
+ payload?: Payload;
29
29
  /**
30
30
  * When the converter is called, req CAN be passed in depending on where it's run.
31
31
  * If this is undefined and config is passed through, lexical will create a new req object for you. If this is null or
32
32
  * config is undefined, lexical will not create a new req object for you and local API / server-side-only
33
33
  * functionality will be disabled.
34
34
  */
35
- req: PayloadRequest;
35
+ req?: null | undefined;
36
36
  });
37
37
  export declare function convertLexicalToHTML({ converters, currentDepth, data, depth, draft, overrideAccess, payload, req, showHiddenFields, }: ConvertLexicalToHTMLArgs): Promise<string>;
38
38
  export declare function convertLexicalNodesToHTML({ converters, currentDepth, depth, draft, lexicalNodes, overrideAccess, parent, req, showHiddenFields, }: {
@@ -46,7 +46,7 @@ export declare function convertLexicalNodesToHTML({ converters, currentDepth, de
46
46
  /**
47
47
  * When the converter is called, req CAN be passed in depending on where it's run.
48
48
  */
49
- req: PayloadRequest | null;
49
+ req: null | PayloadRequest;
50
50
  showHiddenFields: boolean;
51
51
  }): Promise<string>;
52
52
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/converters/html/converter/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAItD,OAAO,KAAK,EAAE,aAAa,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AAEhF,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,qBAAqB,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,GAAG,CACA;IACE;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;CACvB,GACD;IACE;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAA;IACf;;;;;OAKG;IACH,GAAG,EAAE,cAAc,CAAA;CACpB,CACJ,CAAA;AAED,wBAAsB,oBAAoB,CAAC,EACzC,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,cAAc,EACd,OAAO,EACP,GAAG,EACH,gBAAgB,GACjB,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B5C;AAED,wBAAsB,yBAAyB,CAAC,EAC9C,UAAU,EACV,YAAY,EACZ,KAAK,EACL,KAAK,EACL,YAAY,EACZ,cAAc,EACd,MAAM,EACN,GAAG,EACH,gBAAgB,GACjB,EAAE;IACD,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,YAAY,EAAE,qBAAqB,EAAE,CAAA;IACrC,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,+BAA+B,CAAA;IACvC;;OAEG;IACH,GAAG,EAAE,cAAc,GAAG,IAAI,CAAA;IAC1B,gBAAgB,EAAE,OAAO,CAAA;CAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,CA8ClB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/converters/html/converter/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAItD,OAAO,KAAK,EAAE,aAAa,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AAEhF,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,qBAAqB,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,GAAG,CACA;IACE;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAA;IACf;;;;;OAKG;IACH,GAAG,EAAE,cAAc,CAAA;CACpB,GACD;IACE;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;CACvB,CACJ,CAAA;AAED,wBAAsB,oBAAoB,CAAC,EACzC,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,cAAc,EACd,OAAO,EACP,GAAG,EACH,gBAAgB,GACjB,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B5C;AAED,wBAAsB,yBAAyB,CAAC,EAC9C,UAAU,EACV,YAAY,EACZ,KAAK,EACL,KAAK,EACL,YAAY,EACZ,cAAc,EACd,MAAM,EACN,GAAG,EACH,gBAAgB,GACjB,EAAE;IACD,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,YAAY,EAAE,qBAAqB,EAAE,CAAA;IACrC,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,+BAA+B,CAAA;IACvC;;OAEG;IACH,GAAG,EAAE,IAAI,GAAG,cAAc,CAAA;IAC1B,gBAAgB,EAAE,OAAO,CAAA;CAC1B,GAAG,OAAO,CAAC,MAAM,CAAC,CA8ClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["createLocalReq","convertLexicalToHTML","converters","currentDepth","data","depth","draft","overrideAccess","payload","req","showHiddenFields","root","children","length","undefined","config","defaultDepth","convertLexicalNodesToHTML","lexicalNodes","parent","unknownConverter","find","converter","nodeTypes","includes","htmlArray","Promise","all","map","node","i","converterForNode","type","childIndex","error","console","join"],"sources":["../../../../../src/features/converters/html/converter/index.ts"],"sourcesContent":["import type { SerializedEditorState, SerializedLexicalNode } from 'lexical'\nimport type { Payload, PayloadRequest } from 'payload'\n\nimport { createLocalReq } from 'payload'\n\nimport type { HTMLConverter, SerializedLexicalNodeWithParent } from './types.js'\n\nexport type ConvertLexicalToHTMLArgs = {\n converters: HTMLConverter[]\n currentDepth?: number\n data: SerializedEditorState\n depth?: number\n draft?: boolean // default false\n overrideAccess?: boolean // default false\n showHiddenFields?: boolean // default false\n} & (\n | {\n /**\n * This payload property will only be used if req is undefined.\n */\n payload?: Payload\n /**\n * When the converter is called, req CAN be passed in depending on where it's run.\n * If this is undefined and config is passed through, lexical will create a new req object for you. If this is null or\n * config is undefined, lexical will not create a new req object for you and local API / server-side-only\n * functionality will be disabled.\n */\n req?: null | undefined\n }\n | {\n /**\n * This payload property will only be used if req is undefined.\n */\n payload?: never\n /**\n * When the converter is called, req CAN be passed in depending on where it's run.\n * If this is undefined and config is passed through, lexical will create a new req object for you. If this is null or\n * config is undefined, lexical will not create a new req object for you and local API / server-side-only\n * functionality will be disabled.\n */\n req: PayloadRequest\n }\n)\n\nexport async function convertLexicalToHTML({\n converters,\n currentDepth,\n data,\n depth,\n draft,\n overrideAccess,\n payload,\n req,\n showHiddenFields,\n}: ConvertLexicalToHTMLArgs): Promise<string> {\n if (data?.root?.children?.length) {\n if (req === undefined && payload) {\n req = await createLocalReq({}, payload)\n }\n\n if (!currentDepth) {\n currentDepth = 0\n }\n\n if (!depth) {\n depth = req?.payload?.config?.defaultDepth\n }\n\n return await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft: draft === undefined ? false : draft,\n lexicalNodes: data?.root?.children,\n overrideAccess: overrideAccess === undefined ? false : overrideAccess,\n parent: data?.root,\n req,\n showHiddenFields: showHiddenFields === undefined ? false : showHiddenFields,\n })\n }\n return ''\n}\n\nexport async function convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n}: {\n converters: HTMLConverter[]\n currentDepth: number\n depth: number\n draft: boolean\n lexicalNodes: SerializedLexicalNode[]\n overrideAccess: boolean\n parent: SerializedLexicalNodeWithParent\n /**\n * When the converter is called, req CAN be passed in depending on where it's run.\n */\n req: PayloadRequest | null\n showHiddenFields: boolean\n}): Promise<string> {\n const unknownConverter = converters.find((converter) => converter.nodeTypes.includes('unknown'))\n\n const htmlArray = await Promise.all(\n lexicalNodes.map(async (node, i) => {\n const converterForNode = converters.find((converter) =>\n converter.nodeTypes.includes(node.type),\n )\n try {\n if (!converterForNode) {\n if (unknownConverter) {\n return await unknownConverter.converter({\n childIndex: i,\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n })\n }\n return '<span>unknown node</span>'\n }\n return await converterForNode.converter({\n childIndex: i,\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n })\n } catch (error) {\n console.error('Error converting lexical node to HTML:', error, 'node:', node)\n return ''\n }\n }),\n )\n\n return htmlArray.join('') || ''\n}\n"],"mappings":"AAGA,SAASA,cAAc,QAAQ;AAyC/B,OAAO,eAAeC,qBAAqB;EACzCC,UAAU;EACVC,YAAY;EACZC,IAAI;EACJC,KAAK;EACLC,KAAK;EACLC,cAAc;EACdC,OAAO;EACPC,GAAG;EACHC;AAAgB,CACS;EACzB,IAAIN,IAAA,EAAMO,IAAA,EAAMC,QAAA,EAAUC,MAAA,EAAQ;IAChC,IAAIJ,GAAA,KAAQK,SAAA,IAAaN,OAAA,EAAS;MAChCC,GAAA,GAAM,MAAMT,cAAA,CAAe,CAAC,GAAGQ,OAAA;IACjC;IAEA,IAAI,CAACL,YAAA,EAAc;MACjBA,YAAA,GAAe;IACjB;IAEA,IAAI,CAACE,KAAA,EAAO;MACVA,KAAA,GAAQI,GAAA,EAAKD,OAAA,EAASO,MAAA,EAAQC,YAAA;IAChC;IAEA,OAAO,MAAMC,yBAAA,CAA0B;MACrCf,UAAA;MACAC,YAAA;MACAE,KAAA;MACAC,KAAA,EAAOA,KAAA,KAAUQ,SAAA,GAAY,QAAQR,KAAA;MACrCY,YAAA,EAAcd,IAAA,EAAMO,IAAA,EAAMC,QAAA;MAC1BL,cAAA,EAAgBA,cAAA,KAAmBO,SAAA,GAAY,QAAQP,cAAA;MACvDY,MAAA,EAAQf,IAAA,EAAMO,IAAA;MACdF,GAAA;MACAC,gBAAA,EAAkBA,gBAAA,KAAqBI,SAAA,GAAY,QAAQJ;IAC7D;EACF;EACA,OAAO;AACT;AAEA,OAAO,eAAeO,0BAA0B;EAC9Cf,UAAU;EACVC,YAAY;EACZE,KAAK;EACLC,KAAK;EACLY,YAAY;EACZX,cAAc;EACdY,MAAM;EACNV,GAAG;EACHC;AAAgB,CAcjB;EACC,MAAMU,gBAAA,GAAmBlB,UAAA,CAAWmB,IAAI,CAAEC,SAAA,IAAcA,SAAA,CAAUC,SAAS,CAACC,QAAQ,CAAC;EAErF,MAAMC,SAAA,GAAY,MAAMC,OAAA,CAAQC,GAAG,CACjCT,YAAA,CAAaU,GAAG,CAAC,OAAOC,IAAA,EAAMC,CAAA;IAC5B,MAAMC,gBAAA,GAAmB7B,UAAA,CAAWmB,IAAI,CAAEC,SAAA,IACxCA,SAAA,CAAUC,SAAS,CAACC,QAAQ,CAACK,IAAA,CAAKG,IAAI;IAExC,IAAI;MACF,IAAI,CAACD,gBAAA,EAAkB;QACrB,IAAIX,gBAAA,EAAkB;UACpB,OAAO,MAAMA,gBAAA,CAAiBE,SAAS,CAAC;YACtCW,UAAA,EAAYH,CAAA;YACZ5B,UAAA;YACAC,YAAA;YACAE,KAAA;YACAC,KAAA;YACAuB,IAAA;YACAtB,cAAA;YACAY,MAAA;YACAV,GAAA;YACAC;UACF;QACF;QACA,OAAO;MACT;MACA,OAAO,MAAMqB,gBAAA,CAAiBT,SAAS,CAAC;QACtCW,UAAA,EAAYH,CAAA;QACZ5B,UAAA;QACAC,YAAA;QACAE,KAAA;QACAC,KAAA;QACAuB,IAAA;QACAtB,cAAA;QACAY,MAAA;QACAV,GAAA;QACAC;MACF;IACF,EAAE,OAAOwB,KAAA,EAAO;MACdC,OAAA,CAAQD,KAAK,CAAC,0CAA0CA,KAAA,EAAO,SAASL,IAAA;MACxE,OAAO;IACT;EACF;EAGF,OAAOJ,SAAA,CAAUW,IAAI,CAAC,OAAO;AAC/B","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["createLocalReq","convertLexicalToHTML","converters","currentDepth","data","depth","draft","overrideAccess","payload","req","showHiddenFields","root","children","length","undefined","config","defaultDepth","convertLexicalNodesToHTML","lexicalNodes","parent","unknownConverter","find","converter","nodeTypes","includes","htmlArray","Promise","all","map","node","i","converterForNode","type","childIndex","error","console","join"],"sources":["../../../../../src/features/converters/html/converter/index.ts"],"sourcesContent":["import type { SerializedEditorState, SerializedLexicalNode } from 'lexical'\nimport type { Payload, PayloadRequest } from 'payload'\n\nimport { createLocalReq } from 'payload'\n\nimport type { HTMLConverter, SerializedLexicalNodeWithParent } from './types.js'\n\nexport type ConvertLexicalToHTMLArgs = {\n converters: HTMLConverter[]\n currentDepth?: number\n data: SerializedEditorState\n depth?: number\n draft?: boolean // default false\n overrideAccess?: boolean // default false\n showHiddenFields?: boolean // default false\n} & (\n | {\n /**\n * This payload property will only be used if req is undefined.\n */\n payload?: never\n /**\n * When the converter is called, req CAN be passed in depending on where it's run.\n * If this is undefined and config is passed through, lexical will create a new req object for you. If this is null or\n * config is undefined, lexical will not create a new req object for you and local API / server-side-only\n * functionality will be disabled.\n */\n req: PayloadRequest\n }\n | {\n /**\n * This payload property will only be used if req is undefined.\n */\n payload?: Payload\n /**\n * When the converter is called, req CAN be passed in depending on where it's run.\n * If this is undefined and config is passed through, lexical will create a new req object for you. If this is null or\n * config is undefined, lexical will not create a new req object for you and local API / server-side-only\n * functionality will be disabled.\n */\n req?: null | undefined\n }\n)\n\nexport async function convertLexicalToHTML({\n converters,\n currentDepth,\n data,\n depth,\n draft,\n overrideAccess,\n payload,\n req,\n showHiddenFields,\n}: ConvertLexicalToHTMLArgs): Promise<string> {\n if (data?.root?.children?.length) {\n if (req === undefined && payload) {\n req = await createLocalReq({}, payload)\n }\n\n if (!currentDepth) {\n currentDepth = 0\n }\n\n if (!depth) {\n depth = req?.payload?.config?.defaultDepth\n }\n\n return await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft: draft === undefined ? false : draft,\n lexicalNodes: data?.root?.children,\n overrideAccess: overrideAccess === undefined ? false : overrideAccess,\n parent: data?.root,\n req,\n showHiddenFields: showHiddenFields === undefined ? false : showHiddenFields,\n })\n }\n return ''\n}\n\nexport async function convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n}: {\n converters: HTMLConverter[]\n currentDepth: number\n depth: number\n draft: boolean\n lexicalNodes: SerializedLexicalNode[]\n overrideAccess: boolean\n parent: SerializedLexicalNodeWithParent\n /**\n * When the converter is called, req CAN be passed in depending on where it's run.\n */\n req: null | PayloadRequest\n showHiddenFields: boolean\n}): Promise<string> {\n const unknownConverter = converters.find((converter) => converter.nodeTypes.includes('unknown'))\n\n const htmlArray = await Promise.all(\n lexicalNodes.map(async (node, i) => {\n const converterForNode = converters.find((converter) =>\n converter.nodeTypes.includes(node.type),\n )\n try {\n if (!converterForNode) {\n if (unknownConverter) {\n return await unknownConverter.converter({\n childIndex: i,\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n })\n }\n return '<span>unknown node</span>'\n }\n return await converterForNode.converter({\n childIndex: i,\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n })\n } catch (error) {\n console.error('Error converting lexical node to HTML:', error, 'node:', node)\n return ''\n }\n }),\n )\n\n return htmlArray.join('') || ''\n}\n"],"mappings":"AAGA,SAASA,cAAc,QAAQ;AAyC/B,OAAO,eAAeC,qBAAqB;EACzCC,UAAU;EACVC,YAAY;EACZC,IAAI;EACJC,KAAK;EACLC,KAAK;EACLC,cAAc;EACdC,OAAO;EACPC,GAAG;EACHC;AAAgB,CACS;EACzB,IAAIN,IAAA,EAAMO,IAAA,EAAMC,QAAA,EAAUC,MAAA,EAAQ;IAChC,IAAIJ,GAAA,KAAQK,SAAA,IAAaN,OAAA,EAAS;MAChCC,GAAA,GAAM,MAAMT,cAAA,CAAe,CAAC,GAAGQ,OAAA;IACjC;IAEA,IAAI,CAACL,YAAA,EAAc;MACjBA,YAAA,GAAe;IACjB;IAEA,IAAI,CAACE,KAAA,EAAO;MACVA,KAAA,GAAQI,GAAA,EAAKD,OAAA,EAASO,MAAA,EAAQC,YAAA;IAChC;IAEA,OAAO,MAAMC,yBAAA,CAA0B;MACrCf,UAAA;MACAC,YAAA;MACAE,KAAA;MACAC,KAAA,EAAOA,KAAA,KAAUQ,SAAA,GAAY,QAAQR,KAAA;MACrCY,YAAA,EAAcd,IAAA,EAAMO,IAAA,EAAMC,QAAA;MAC1BL,cAAA,EAAgBA,cAAA,KAAmBO,SAAA,GAAY,QAAQP,cAAA;MACvDY,MAAA,EAAQf,IAAA,EAAMO,IAAA;MACdF,GAAA;MACAC,gBAAA,EAAkBA,gBAAA,KAAqBI,SAAA,GAAY,QAAQJ;IAC7D;EACF;EACA,OAAO;AACT;AAEA,OAAO,eAAeO,0BAA0B;EAC9Cf,UAAU;EACVC,YAAY;EACZE,KAAK;EACLC,KAAK;EACLY,YAAY;EACZX,cAAc;EACdY,MAAM;EACNV,GAAG;EACHC;AAAgB,CAcjB;EACC,MAAMU,gBAAA,GAAmBlB,UAAA,CAAWmB,IAAI,CAAEC,SAAA,IAAcA,SAAA,CAAUC,SAAS,CAACC,QAAQ,CAAC;EAErF,MAAMC,SAAA,GAAY,MAAMC,OAAA,CAAQC,GAAG,CACjCT,YAAA,CAAaU,GAAG,CAAC,OAAOC,IAAA,EAAMC,CAAA;IAC5B,MAAMC,gBAAA,GAAmB7B,UAAA,CAAWmB,IAAI,CAAEC,SAAA,IACxCA,SAAA,CAAUC,SAAS,CAACC,QAAQ,CAACK,IAAA,CAAKG,IAAI;IAExC,IAAI;MACF,IAAI,CAACD,gBAAA,EAAkB;QACrB,IAAIX,gBAAA,EAAkB;UACpB,OAAO,MAAMA,gBAAA,CAAiBE,SAAS,CAAC;YACtCW,UAAA,EAAYH,CAAA;YACZ5B,UAAA;YACAC,YAAA;YACAE,KAAA;YACAC,KAAA;YACAuB,IAAA;YACAtB,cAAA;YACAY,MAAA;YACAV,GAAA;YACAC;UACF;QACF;QACA,OAAO;MACT;MACA,OAAO,MAAMqB,gBAAA,CAAiBT,SAAS,CAAC;QACtCW,UAAA,EAAYH,CAAA;QACZ5B,UAAA;QACAC,YAAA;QACAE,KAAA;QACAC,KAAA;QACAuB,IAAA;QACAtB,cAAA;QACAY,MAAA;QACAV,GAAA;QACAC;MACF;IACF,EAAE,OAAOwB,KAAA,EAAO;MACdC,OAAA,CAAQD,KAAK,CAAC,0CAA0CA,KAAA,EAAO,SAASL,IAAA;MACxE,OAAO;IACT;EACF;EAGF,OAAOJ,SAAA,CAAUW,IAAI,CAAC,OAAO;AAC/B","ignoreList":[]}
@@ -13,7 +13,7 @@ export type HTMLConverter<T extends SerializedLexicalNode = SerializedLexicalNod
13
13
  /**
14
14
  * When the converter is called, req CAN be passed in depending on where it's run.
15
15
  */
16
- req: PayloadRequest | null;
16
+ req: null | PayloadRequest;
17
17
  showHiddenFields: boolean;
18
18
  }) => Promise<string> | string;
19
19
  nodeTypes: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/converters/html/converter/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,IAAI;IACnF,SAAS,EAAE,CAAC,IAAI,EAAE;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;QAChC,YAAY,EAAE,MAAM,CAAA;QACpB,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,OAAO,CAAA;QACd,IAAI,EAAE,CAAC,CAAA;QACP,cAAc,EAAE,OAAO,CAAA;QACvB,MAAM,EAAE,+BAA+B,CAAA;QACvC;;WAEG;QACH,GAAG,EAAE,cAAc,GAAG,IAAI,CAAA;QAC1B,gBAAgB,EAAE,OAAO,CAAA;KAC1B,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,CAAC,EAAE,qBAAqB,CAAA;CAC/B,GAAG,qBAAqB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/converters/html/converter/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,IAAI;IACnF,SAAS,EAAE,CAAC,IAAI,EAAE;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;QAChC,YAAY,EAAE,MAAM,CAAA;QACpB,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,OAAO,CAAA;QACd,IAAI,EAAE,CAAC,CAAA;QACP,cAAc,EAAE,OAAO,CAAA;QACvB,MAAM,EAAE,+BAA+B,CAAA;QACvC;;WAEG;QACH,GAAG,EAAE,IAAI,GAAG,cAAc,CAAA;QAC1B,gBAAgB,EAAE,OAAO,CAAA;KAC1B,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,CAAC,EAAE,qBAAqB,CAAA;CAC/B,GAAG,qBAAqB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/features/converters/html/converter/types.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\nimport type { PayloadRequest } from 'payload'\n\nexport type HTMLConverter<T extends SerializedLexicalNode = SerializedLexicalNode> = {\n converter: (args: {\n childIndex: number\n converters: HTMLConverter<any>[]\n currentDepth: number\n depth: number\n draft: boolean\n node: T\n overrideAccess: boolean\n parent: SerializedLexicalNodeWithParent\n /**\n * When the converter is called, req CAN be passed in depending on where it's run.\n */\n req: PayloadRequest | null\n showHiddenFields: boolean\n }) => Promise<string> | string\n nodeTypes: string[]\n}\n\nexport type SerializedLexicalNodeWithParent = {\n parent?: SerializedLexicalNode\n} & SerializedLexicalNode\n"],"mappings":"AAsBA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/features/converters/html/converter/types.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\nimport type { PayloadRequest } from 'payload'\n\nexport type HTMLConverter<T extends SerializedLexicalNode = SerializedLexicalNode> = {\n converter: (args: {\n childIndex: number\n converters: HTMLConverter<any>[]\n currentDepth: number\n depth: number\n draft: boolean\n node: T\n overrideAccess: boolean\n parent: SerializedLexicalNodeWithParent\n /**\n * When the converter is called, req CAN be passed in depending on where it's run.\n */\n req: null | PayloadRequest\n showHiddenFields: boolean\n }) => Promise<string> | string\n nodeTypes: string[]\n}\n\nexport type SerializedLexicalNodeWithParent = {\n parent?: SerializedLexicalNode\n} & SerializedLexicalNode\n"],"mappings":"AAsBA","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
5
5
  import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
6
- import { $deleteTableColumn__EXPERIMENTAL, $deleteTableRow__EXPERIMENTAL, $getNodeTriplet, $getTableCellNodeFromLexicalNode, $getTableColumnIndexFromTableCellNode, $getTableNodeFromLexicalNodeOrThrow, $getTableRowIndexFromTableCellNode, $insertTableColumn__EXPERIMENTAL, $insertTableRow__EXPERIMENTAL, $isTableCellNode, $isTableRowNode, $isTableSelection, $unmergeCell, TableCellHeaderStates, TableCellNode, getTableObserverFromTableElement } from '@lexical/table';
6
+ import { $deleteTableColumn__EXPERIMENTAL, $deleteTableRow__EXPERIMENTAL, $getNodeTriplet, $getTableCellNodeFromLexicalNode, $getTableColumnIndexFromTableCellNode, $getTableNodeFromLexicalNodeOrThrow, $getTableRowIndexFromTableCellNode, $insertTableColumn__EXPERIMENTAL, $insertTableRow__EXPERIMENTAL, $isTableCellNode, $isTableRowNode, $isTableSelection, $unmergeCell, getTableObserverFromTableElement, TableCellHeaderStates, TableCellNode } from '@lexical/table';
7
7
  import { useScrollInfo } from '@payloadcms/ui';
8
8
  import { $createParagraphNode, $getRoot, $getSelection, $isElementNode, $isParagraphNode, $isRangeSelection, $isTextNode } from 'lexical';
9
9
  import * as React from 'react';