@payloadcms/richtext-lexical 3.0.2 → 3.0.3-canary.27acdae
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exports/client/Field-OHQPCDNR.js +2 -0
- package/dist/exports/client/Field-OHQPCDNR.js.map +7 -0
- package/dist/exports/client/RelationshipComponent-XOQBVKA3.js +2 -0
- package/dist/exports/client/RelationshipComponent-XOQBVKA3.js.map +7 -0
- package/dist/exports/client/bundled.css +1 -1
- package/dist/exports/client/chunk-2L2Z4JHF.js +12 -0
- package/dist/exports/client/chunk-2L2Z4JHF.js.map +7 -0
- package/dist/exports/client/{chunk-C7S3V4EB.js → chunk-DOK5S7LE.js} +2 -2
- package/dist/exports/client/chunk-DOK5S7LE.js.map +7 -0
- package/dist/exports/client/chunk-KYPSISKB.js +2 -0
- package/dist/exports/client/chunk-KYPSISKB.js.map +7 -0
- package/dist/exports/client/chunk-ZTAS32RX.js +2 -0
- package/dist/exports/client/{chunk-MI5HS4QX.js.map → chunk-ZTAS32RX.js.map} +3 -3
- package/dist/exports/client/{component-H3EYQ5KG.js → component-D6PKVJ2K.js} +2 -2
- package/dist/exports/client/component-D6PKVJ2K.js.map +7 -0
- package/dist/exports/client/componentInline-EYXL5S2C.js +2 -0
- package/dist/exports/client/index.d.ts +3 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +11 -11
- package/dist/exports/client/index.js.map +3 -3
- package/dist/exports/server/ast/mdx.d.ts.map +1 -1
- package/dist/exports/server/ast/mdx.js +6 -0
- package/dist/exports/server/ast/mdx.js.map +1 -1
- package/dist/features/align/server/i18n.d.ts.map +1 -1
- package/dist/features/align/server/i18n.js +6 -0
- package/dist/features/align/server/i18n.js.map +1 -1
- package/dist/features/blockquote/server/i18n.d.ts.map +1 -1
- package/dist/features/blockquote/server/i18n.js +3 -0
- package/dist/features/blockquote/server/i18n.js.map +1 -1
- package/dist/features/blockquote/server/index.d.ts.map +1 -1
- package/dist/features/blockquote/server/index.js +2 -1
- package/dist/features/blockquote/server/index.js.map +1 -1
- package/dist/features/blocks/client/component/index.d.ts.map +1 -1
- package/dist/features/blocks/client/component/index.js +27 -9
- package/dist/features/blocks/client/component/index.js.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -1
- package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
- package/dist/features/blocks/client/componentInline/index.js +27 -7
- package/dist/features/blocks/client/componentInline/index.js.map +1 -1
- package/dist/features/blocks/client/index.d.ts.map +1 -1
- package/dist/features/blocks/client/index.js.map +1 -1
- package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
- package/dist/features/blocks/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/blocks/server/i18n.d.ts.map +1 -1
- package/dist/features/blocks/server/i18n.js +9 -0
- package/dist/features/blocks/server/i18n.js.map +1 -1
- package/dist/features/converters/html/converter/converters/paragraph.d.ts.map +1 -1
- package/dist/features/converters/html/converter/converters/paragraph.js +2 -1
- package/dist/features/converters/html/converter/converters/paragraph.js.map +1 -1
- package/dist/features/converters/html/converter/defaultConverters.d.ts +1 -1
- package/dist/features/converters/html/converter/defaultConverters.d.ts.map +1 -1
- package/dist/features/converters/html/converter/defaultConverters.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +23 -17
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +4 -2
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/utils/debounce.d.ts.map +1 -1
- package/dist/features/experimental_table/client/utils/debounce.js +3 -0
- package/dist/features/experimental_table/client/utils/debounce.js.map +1 -1
- package/dist/features/experimental_table/client/utils/useDebounce.d.ts +1 -5
- package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +1 -1
- package/dist/features/experimental_table/client/utils/useDebounce.js +40 -10
- package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -1
- package/dist/features/heading/server/i18n.d.ts.map +1 -1
- package/dist/features/heading/server/i18n.js +3 -0
- package/dist/features/heading/server/i18n.js.map +1 -1
- package/dist/features/heading/server/index.d.ts.map +1 -1
- package/dist/features/heading/server/index.js +2 -1
- package/dist/features/heading/server/index.js.map +1 -1
- package/dist/features/horizontalRule/server/i18n.d.ts.map +1 -1
- package/dist/features/horizontalRule/server/i18n.js +3 -0
- package/dist/features/horizontalRule/server/i18n.js.map +1 -1
- package/dist/features/indent/server/i18n.d.ts.map +1 -1
- package/dist/features/indent/server/i18n.js +4 -0
- package/dist/features/indent/server/i18n.js.map +1 -1
- package/dist/features/link/server/i18n.d.ts.map +1 -1
- package/dist/features/link/server/i18n.js +4 -0
- package/dist/features/link/server/i18n.js.map +1 -1
- package/dist/features/lists/checklist/server/i18n.d.ts.map +1 -1
- package/dist/features/lists/checklist/server/i18n.js +3 -0
- package/dist/features/lists/checklist/server/i18n.js.map +1 -1
- package/dist/features/lists/checklist/server/index.js.map +1 -1
- package/dist/features/lists/orderedList/server/i18n.d.ts.map +1 -1
- package/dist/features/lists/orderedList/server/i18n.js +3 -0
- package/dist/features/lists/orderedList/server/i18n.js.map +1 -1
- package/dist/features/lists/orderedList/server/index.js.map +1 -1
- package/dist/features/lists/unorderedList/server/i18n.d.ts.map +1 -1
- package/dist/features/lists/unorderedList/server/i18n.js +3 -0
- package/dist/features/lists/unorderedList/server/i18n.js.map +1 -1
- package/dist/features/lists/unorderedList/server/index.js.map +1 -1
- package/dist/features/paragraph/server/i18n.d.ts.map +1 -1
- package/dist/features/paragraph/server/i18n.js +4 -0
- package/dist/features/paragraph/server/i18n.js.map +1 -1
- package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
- package/dist/features/relationship/client/components/RelationshipComponent.js +1 -3
- package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
- package/dist/features/relationship/client/drawer/index.js.map +1 -1
- package/dist/features/relationship/server/i18n.d.ts.map +1 -1
- package/dist/features/relationship/server/i18n.js +3 -0
- package/dist/features/relationship/server/i18n.js.map +1 -1
- package/dist/features/relationship/server/nodes/RelationshipNode.d.ts +1 -1
- package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
- package/dist/features/relationship/server/nodes/RelationshipNode.js +3 -3
- package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts +2 -2
- package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.js +64 -71
- package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/inline/client/Toolbar/index.js +31 -51
- package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
- package/dist/features/toolbars/shared/ToolbarButton/index.js +152 -62
- package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.d.ts.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +4 -2
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js +8 -20
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
- package/dist/features/toolbars/types.d.ts +9 -0
- package/dist/features/toolbars/types.d.ts.map +1 -1
- package/dist/features/toolbars/types.js.map +1 -1
- package/dist/features/typesClient.d.ts +39 -36
- package/dist/features/typesClient.d.ts.map +1 -1
- package/dist/features/typesClient.js.map +1 -1
- package/dist/features/typesServer.d.ts.map +1 -1
- package/dist/features/typesServer.js.map +1 -1
- package/dist/features/upload/client/component/index.js.map +1 -1
- package/dist/features/upload/client/drawer/index.js.map +1 -1
- package/dist/features/upload/client/nodes/UploadNode.d.ts +1 -1
- package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
- package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/client/plugin/index.d.ts +2 -2
- package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
- package/dist/features/upload/client/plugin/index.js.map +1 -1
- package/dist/features/upload/server/i18n.d.ts.map +1 -1
- package/dist/features/upload/server/i18n.js +3 -0
- package/dist/features/upload/server/i18n.js.map +1 -1
- package/dist/features/upload/server/nodes/UploadNode.d.ts +1 -1
- package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
- package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
- package/dist/field/Field.d.ts +1 -1
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +2 -1
- package/dist/field/Field.js.map +1 -1
- package/dist/field/bundled.css +1 -1
- package/dist/field/rscEntry.js +1 -1
- package/dist/field/rscEntry.js.map +1 -1
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +70 -32
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/lexical/LexicalProvider.d.ts.map +1 -1
- package/dist/lexical/LexicalProvider.js.map +1 -1
- package/dist/lexical/config/client/sanitize.js.map +1 -1
- package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
- package/dist/lexical/config/server/sanitize.js +1 -0
- package/dist/lexical/config/server/sanitize.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +2 -3
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +139 -89
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +2 -3
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +4 -7
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.js +8 -14
- package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +1 -0
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.js.map +1 -1
- package/dist/utilities/buildInitialState.js +1 -1
- package/dist/utilities/buildInitialState.js.map +1 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
- package/dist/utilities/generateImportMap.d.ts.map +1 -1
- package/dist/utilities/generateImportMap.js +4 -1
- package/dist/utilities/generateImportMap.js.map +1 -1
- package/dist/utilities/jsx/jsx.d.ts.map +1 -1
- package/dist/utilities/jsx/jsx.js +1 -0
- package/dist/utilities/jsx/jsx.js.map +1 -1
- package/dist/utilities/migrateSlateToLexical/index.d.ts.map +1 -1
- package/dist/utilities/migrateSlateToLexical/index.js +1 -1
- package/dist/utilities/migrateSlateToLexical/index.js.map +1 -1
- package/dist/validate/index.d.ts.map +1 -1
- package/dist/validate/index.js.map +1 -1
- package/package.json +7 -7
- package/dist/exports/client/Field-IS3XMKMO.js +0 -2
- package/dist/exports/client/Field-IS3XMKMO.js.map +0 -7
- package/dist/exports/client/RelationshipComponent-2RT3YXUT.js +0 -2
- package/dist/exports/client/RelationshipComponent-2RT3YXUT.js.map +0 -7
- package/dist/exports/client/chunk-C7S3V4EB.js.map +0 -7
- package/dist/exports/client/chunk-CBUZKU7S.js +0 -12
- package/dist/exports/client/chunk-CBUZKU7S.js.map +0 -7
- package/dist/exports/client/chunk-MI5HS4QX.js +0 -2
- package/dist/exports/client/chunk-U7O7EYCP.js +0 -2
- package/dist/exports/client/chunk-U7O7EYCP.js.map +0 -7
- package/dist/exports/client/component-H3EYQ5KG.js.map +0 -7
- package/dist/exports/client/componentInline-ZGO3K4TA.js +0 -2
- /package/dist/exports/client/{componentInline-ZGO3K4TA.js.map → componentInline-EYXL5S2C.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","createContext","useCallback","useEffect","useMemo","useRef","baseClass","useLexicalComposerContext","useLexicalNodeSelection","mergeRegister","getTranslation","Button","Drawer","EditDepthProvider","Form","formatDrawerSlug","FormSubmit","RenderFields","ShimmerEffect","useDocumentInfo","useEditDepth","useServerFunctions","useTranslation","abortAndIgnore","$getNodeByKey","$getSelection","$isNodeSelection","CLICK_COMMAND","COMMAND_PRIORITY_LOW","KEY_BACKSPACE_COMMAND","KEY_DELETE_COMMAND","reduceFieldsToValues","v4","uuid","useEditorConfigContext","useLexicalDrawer","$isInlineBlockNode","InlineBlockComponentContext","initialState","useInlineBlockComponentContext","useContext","InlineBlockComponent","props","formData","nodeKey","editor","i18n","t","fieldProps","featureClientSchemaMap","initialLexicalFormState","permissions","readOnly","schemaPath","uuidFromContext","getFormState","editDepth","setInitialState","useState","id","formState","drawerSlug","slug","depth","toggleDrawer","inlineBlockElemElemRef","isSelected","setSelected","clearSelection","collectionSlug","getDocPreferences","globalSlug","componentMapRenderedBlockPath","blockType","clientSchemaMap","blocksField","clientBlock","blocks","removeInlineBlock","update","remove","$onDelete","event","deleteSelection","preventDefault","getNodes","forEach","node","onClick","payload","target","current","contains","shiftKey","registerCommand","blockDisplayName","labels","singular","onChangeAbortControllerRef","AbortController","schemaFieldsPath","abortController","awaitInitialState","state","data","docPermissions","fields","docPreferences","operation","renderAllFields","signal","onChange","prevFormState","controller","onFormSubmit","newData","setFields","CustomLabel","customComponents","BlockLabel","CustomBlock","Block","RemoveButton","_jsx","buttonStyle","className","disabled","icon","e","round","size","tooltip","label","EditButton","el","InlineBlockContainer","children","filter","Boolean","join","ref","Label","_jsxs","beforeSubmit","disableValidationOnSubmit","onSubmit","title","_Fragment","forceRender","parentIndexPath","parentPath","parentSchemaPath","Provider","value","height","width","isEditable"],"sources":["../../../../../src/features/blocks/client/componentInline/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { createContext, useCallback, useEffect, useMemo, useRef } from 'react'\nconst baseClass = 'inline-block'\n\nimport type { BlocksFieldClient, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection'\nimport { mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n Drawer,\n EditDepthProvider,\n Form,\n formatDrawerSlug,\n FormSubmit,\n RenderFields,\n ShimmerEffect,\n useDocumentInfo,\n useEditDepth,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport {\n $getNodeByKey,\n $getSelection,\n $isNodeSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n} from 'lexical'\nimport { reduceFieldsToValues } from 'payload/shared'\n\nimport './index.scss'\n\nimport { v4 as uuid } from 'uuid'\n\nimport type { InlineBlockFields } from '../nodes/InlineBlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isInlineBlockNode } from '../nodes/InlineBlocksNode.js'\n\ntype Props = {\n readonly formData: InlineBlockFields\n readonly nodeKey: string\n}\n\ntype InlineBlockComponentContextType = {\n EditButton?: React.FC\n initialState: false | FormState | undefined\n InlineBlockContainer?: React.FC<{ children: React.ReactNode }>\n Label?: React.FC\n nodeKey?: string\n RemoveButton?: React.FC\n}\n\nconst InlineBlockComponentContext = createContext<InlineBlockComponentContextType>({\n initialState: false,\n})\n\nexport const useInlineBlockComponentContext = () => React.useContext(InlineBlockComponentContext)\n\nexport const InlineBlockComponent: React.FC<Props> = (props) => {\n const { formData, nodeKey } = props\n const [editor] = useLexicalComposerContext()\n const { i18n, t } = useTranslation<object, string>()\n const {\n fieldProps: {\n featureClientSchemaMap,\n initialLexicalFormState,\n permissions,\n readOnly,\n schemaPath,\n },\n uuid: uuidFromContext,\n } = useEditorConfigContext()\n const { getFormState } = useServerFunctions()\n const editDepth = useEditDepth()\n\n const [initialState, setInitialState] = React.useState<false | FormState | undefined>(\n initialLexicalFormState?.[formData.id]?.formState,\n )\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-inlineBlocks-create-` + uuidFromContext,\n depth: editDepth,\n })\n const { toggleDrawer } = useLexicalDrawer(drawerSlug, true)\n\n const inlineBlockElemElemRef = useRef<HTMLDivElement | null>(null)\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey)\n const { id, collectionSlug, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${formData.blockType}`\n\n const clientSchemaMap = featureClientSchemaMap['blocks']\n\n const blocksField: BlocksFieldClient = clientSchemaMap[\n componentMapRenderedBlockPath\n ][0] as BlocksFieldClient\n\n const clientBlock = blocksField.blocks[0]\n\n const removeInlineBlock = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey)?.remove()\n })\n }, [editor, nodeKey])\n\n const $onDelete = useCallback(\n (event: KeyboardEvent) => {\n const deleteSelection = $getSelection()\n if (isSelected && $isNodeSelection(deleteSelection)) {\n event.preventDefault()\n editor.update(() => {\n deleteSelection.getNodes().forEach((node) => {\n if ($isInlineBlockNode(node)) {\n node.remove()\n }\n })\n })\n }\n return false\n },\n [editor, isSelected],\n )\n const onClick = useCallback(\n (payload: MouseEvent) => {\n const event = payload\n // Check if inlineBlockElemElemRef.target or anything WITHIN inlineBlockElemElemRef.target was clicked\n if (\n event.target === inlineBlockElemElemRef.current ||\n inlineBlockElemElemRef.current?.contains(event.target as Node)\n ) {\n if (event.shiftKey) {\n setSelected(!isSelected)\n } else {\n if (!isSelected) {\n clearSelection()\n setSelected(true)\n }\n }\n return true\n }\n\n return false\n },\n [isSelected, setSelected, clearSelection],\n )\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<MouseEvent>(CLICK_COMMAND, onClick, COMMAND_PRIORITY_LOW),\n\n editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n )\n }, [clearSelection, editor, isSelected, nodeKey, $onDelete, setSelected, onClick])\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n const onChangeAbortControllerRef = useRef(new AbortController())\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${clientBlock?.slug}.fields`\n\n // Initial state for newly created blocks\n useEffect(() => {\n const abortController = new AbortController()\n\n const awaitInitialState = async () => {\n /*\n * This will only run if a new block is created. For all existing blocks that are loaded when the document is loaded, or when the form is saved,\n * this is not run, as the lexical field RSC will fetch the state server-side and pass it to the client. That way, we avoid unnecessary client-side\n * requests. Though for newly created blocks, we need to fetch the state client-side, as the server doesn't know about the block yet.\n */\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: formData,\n docPermissions: { fields: true },\n docPreferences: await getDocPreferences(),\n globalSlug,\n operation: 'update',\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: abortController.signal,\n })\n\n if (state) {\n setInitialState(state)\n }\n }\n\n if (formData && !initialState) {\n void awaitInitialState()\n }\n\n return () => {\n abortAndIgnore(abortController)\n }\n }, [\n getFormState,\n schemaFieldsPath,\n id,\n formData,\n initialState,\n collectionSlug,\n globalSlug,\n getDocPreferences,\n ])\n\n /**\n * HANDLE ONCHANGE\n */\n const onChange = useCallback(\n async ({ formState: prevFormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n formState: prevFormState,\n globalSlug,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!state) {\n return prevFormState\n }\n\n return state\n },\n [getFormState, id, collectionSlug, getDocPreferences, globalSlug, schemaFieldsPath],\n )\n // cleanup effect\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n /**\n * HANDLE FORM SUBMIT\n */\n const onFormSubmit = useCallback(\n (formState) => {\n const newData: any = reduceFieldsToValues(formState)\n newData.blockType = formData.blockType\n editor.update(() => {\n const node = $getNodeByKey(nodeKey)\n if (node && $isInlineBlockNode(node)) {\n node.setFields(newData)\n }\n })\n },\n [editor, nodeKey, formData],\n )\n\n const CustomLabel = initialState?.['_components']?.customComponents?.BlockLabel\n const CustomBlock = initialState?.['_components']?.customComponents?.Block\n\n const RemoveButton = useMemo(\n () => () => (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeInlineBlock()\n }}\n round\n size=\"small\"\n tooltip={t('lexical:blocks:inlineBlocks:remove', { label: blockDisplayName })}\n />\n ),\n [blockDisplayName, readOnly, removeInlineBlock, t],\n )\n\n const EditButton = useMemo(\n () => () => (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__editButton`}\n disabled={readOnly}\n el=\"div\"\n icon=\"edit\"\n onClick={() => {\n toggleDrawer()\n }}\n round\n size=\"small\"\n tooltip={t('lexical:blocks:inlineBlocks:edit', { label: blockDisplayName })}\n />\n ),\n [blockDisplayName, readOnly, t, toggleDrawer],\n )\n\n const InlineBlockContainer = useMemo(\n () =>\n ({ children }) => (\n <div\n className={[\n baseClass,\n baseClass + '-' + formData.blockType,\n isSelected && `${baseClass}--selected`,\n ]\n .filter(Boolean)\n .join(' ')}\n ref={inlineBlockElemElemRef}\n >\n {children}\n </div>\n ),\n [formData.blockType, isSelected],\n )\n\n const Label = useMemo(() => {\n if (CustomLabel) {\n return () => CustomLabel\n } else {\n return () => <div>{getTranslation(clientBlock.labels!.singular, i18n)}</div>\n }\n }, [CustomLabel, clientBlock.labels, i18n])\n\n return (\n <Form\n beforeSubmit={[onChange]}\n disableValidationOnSubmit\n fields={clientBlock.fields}\n initialState={initialState || {}}\n onChange={[onChange]}\n onSubmit={(formState) => {\n onFormSubmit(formState)\n toggleDrawer()\n }}\n uuid={uuid()}\n >\n <EditDepthProvider>\n <Drawer\n className={''}\n slug={drawerSlug}\n title={t(`lexical:blocks:inlineBlocks:${formData?.id ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n >\n {initialState ? (\n <>\n <RenderFields\n fields={clientBlock.fields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={permissions}\n readOnly={false}\n />\n <FormSubmit>{t('fields:saveChanges')}</FormSubmit>\n </>\n ) : null}\n </Drawer>\n </EditDepthProvider>\n {CustomBlock ? (\n <InlineBlockComponentContext.Provider\n value={{\n EditButton,\n initialState,\n InlineBlockContainer,\n Label,\n nodeKey,\n RemoveButton,\n }}\n >\n {CustomBlock}\n </InlineBlockComponentContext.Provider>\n ) : (\n <InlineBlockContainer>\n {initialState ? <Label /> : <ShimmerEffect height=\"15px\" width=\"40px\" />}\n {editor.isEditable() ? (\n <div className={`${baseClass}__actions`}>\n <EditButton />\n <RemoveButton />\n </div>\n ) : null}\n </InlineBlockContainer>\n )}\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","createContext","useCallback","useEffect","useMemo","useRef","baseClass","useLexicalComposerContext","useLexicalNodeSelection","mergeRegister","getTranslation","Button","Drawer","EditDepthProvider","Form","formatDrawerSlug","FormSubmit","RenderFields","ShimmerEffect","useDocumentInfo","useEditDepth","useServerFunctions","useTranslation","abortAndIgnore","$getNodeByKey","$getSelection","$isNodeSelection","CLICK_COMMAND","COMMAND_PRIORITY_LOW","KEY_BACKSPACE_COMMAND","KEY_DELETE_COMMAND","reduceFieldsToValues","v4","uuid","useEditorConfigContext","useLexicalDrawer","$isInlineBlockNode","InlineBlockComponentContext","initialState","useInlineBlockComponentContext","useContext","InlineBlockComponent","props","formData","nodeKey","editor","i18n","t","fieldProps","featureClientSchemaMap","initialLexicalFormState","permissions","readOnly","schemaPath","uuidFromContext","getFormState","editDepth","setInitialState","useState","id","formState","CustomLabel","setCustomLabel","customComponents","BlockLabel","CustomBlock","setCustomBlock","Block","drawerSlug","slug","depth","toggleDrawer","inlineBlockElemElemRef","isSelected","setSelected","clearSelection","collectionSlug","getDocPreferences","globalSlug","componentMapRenderedBlockPath","blockType","clientSchemaMap","blocksField","clientBlock","blocks","removeInlineBlock","update","remove","$onDelete","event","deleteSelection","preventDefault","getNodes","forEach","node","onClick","payload","target","current","contains","shiftKey","registerCommand","blockDisplayName","labels","singular","onChangeAbortControllerRef","AbortController","schemaFieldsPath","abortController","awaitInitialState","state","data","docPermissions","fields","docPreferences","operation","renderAllFields","signal","onChange","prevFormState","submit","controller","onFormSubmit","newData","setFields","RemoveButton","_jsx","buttonStyle","className","disabled","icon","e","round","size","tooltip","label","EditButton","el","InlineBlockContainer","children","filter","Boolean","join","ref","Label","_jsxs","beforeSubmit","disableValidationOnSubmit","onSubmit","title","_Fragment","forceRender","parentIndexPath","parentPath","parentSchemaPath","Provider","value","height","width","isEditable"],"sources":["../../../../../src/features/blocks/client/componentInline/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { createContext, useCallback, useEffect, useMemo, useRef } from 'react'\nconst baseClass = 'inline-block'\n\nimport type { BlocksFieldClient, FormState } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection'\nimport { mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n Drawer,\n EditDepthProvider,\n Form,\n formatDrawerSlug,\n FormSubmit,\n RenderFields,\n ShimmerEffect,\n useDocumentInfo,\n useEditDepth,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport {\n $getNodeByKey,\n $getSelection,\n $isNodeSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n} from 'lexical'\nimport { reduceFieldsToValues } from 'payload/shared'\n\nimport './index.scss'\n\nimport { v4 as uuid } from 'uuid'\n\nimport type { InlineBlockFields } from '../nodes/InlineBlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isInlineBlockNode } from '../nodes/InlineBlocksNode.js'\n\ntype Props = {\n readonly formData: InlineBlockFields\n readonly nodeKey: string\n}\n\ntype InlineBlockComponentContextType = {\n EditButton?: React.FC\n initialState: false | FormState | undefined\n InlineBlockContainer?: React.FC<{ children: React.ReactNode }>\n Label?: React.FC\n nodeKey?: string\n RemoveButton?: React.FC\n}\n\nconst InlineBlockComponentContext = createContext<InlineBlockComponentContextType>({\n initialState: false,\n})\n\nexport const useInlineBlockComponentContext = () => React.useContext(InlineBlockComponentContext)\n\nexport const InlineBlockComponent: React.FC<Props> = (props) => {\n const { formData, nodeKey } = props\n const [editor] = useLexicalComposerContext()\n const { i18n, t } = useTranslation<object, string>()\n const {\n fieldProps: {\n featureClientSchemaMap,\n initialLexicalFormState,\n permissions,\n readOnly,\n schemaPath,\n },\n uuid: uuidFromContext,\n } = useEditorConfigContext()\n const { getFormState } = useServerFunctions()\n const editDepth = useEditDepth()\n\n const [initialState, setInitialState] = React.useState<false | FormState | undefined>(\n initialLexicalFormState?.[formData.id]?.formState,\n )\n\n const [CustomLabel, setCustomLabel] = React.useState<React.ReactNode | undefined>(\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n initialState?.['_components']?.customComponents?.BlockLabel,\n )\n\n const [CustomBlock, setCustomBlock] = React.useState<React.ReactNode | undefined>(\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n initialState?.['_components']?.customComponents?.Block,\n )\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-inlineBlocks-create-` + uuidFromContext,\n depth: editDepth,\n })\n const { toggleDrawer } = useLexicalDrawer(drawerSlug, true)\n\n const inlineBlockElemElemRef = useRef<HTMLDivElement | null>(null)\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey)\n const { id, collectionSlug, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${formData.blockType}`\n\n const clientSchemaMap = featureClientSchemaMap['blocks']\n\n const blocksField: BlocksFieldClient = clientSchemaMap[\n componentMapRenderedBlockPath\n ][0] as BlocksFieldClient\n\n const clientBlock = blocksField.blocks[0]\n\n const removeInlineBlock = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey)?.remove()\n })\n }, [editor, nodeKey])\n\n const $onDelete = useCallback(\n (event: KeyboardEvent) => {\n const deleteSelection = $getSelection()\n if (isSelected && $isNodeSelection(deleteSelection)) {\n event.preventDefault()\n editor.update(() => {\n deleteSelection.getNodes().forEach((node) => {\n if ($isInlineBlockNode(node)) {\n node.remove()\n }\n })\n })\n }\n return false\n },\n [editor, isSelected],\n )\n const onClick = useCallback(\n (payload: MouseEvent) => {\n const event = payload\n // Check if inlineBlockElemElemRef.target or anything WITHIN inlineBlockElemElemRef.target was clicked\n if (\n event.target === inlineBlockElemElemRef.current ||\n inlineBlockElemElemRef.current?.contains(event.target as Node)\n ) {\n if (event.shiftKey) {\n setSelected(!isSelected)\n } else {\n if (!isSelected) {\n clearSelection()\n setSelected(true)\n }\n }\n return true\n }\n\n return false\n },\n [isSelected, setSelected, clearSelection],\n )\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<MouseEvent>(CLICK_COMMAND, onClick, COMMAND_PRIORITY_LOW),\n\n editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n )\n }, [clearSelection, editor, isSelected, nodeKey, $onDelete, setSelected, onClick])\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n const onChangeAbortControllerRef = useRef(new AbortController())\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${clientBlock?.slug}.fields`\n\n // Initial state for newly created blocks\n useEffect(() => {\n const abortController = new AbortController()\n\n const awaitInitialState = async () => {\n /*\n * This will only run if a new block is created. For all existing blocks that are loaded when the document is loaded, or when the form is saved,\n * this is not run, as the lexical field RSC will fetch the state server-side and pass it to the client. That way, we avoid unnecessary client-side\n * requests. Though for newly created blocks, we need to fetch the state client-side, as the server doesn't know about the block yet.\n */\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: formData,\n docPermissions: { fields: true },\n docPreferences: await getDocPreferences(),\n globalSlug,\n operation: 'update',\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: abortController.signal,\n })\n\n if (state) {\n setInitialState(state)\n setCustomLabel(state['_components']?.customComponents?.BlockLabel)\n setCustomBlock(state['_components']?.customComponents?.Block)\n }\n }\n\n if (formData && !initialState) {\n void awaitInitialState()\n }\n\n return () => {\n abortAndIgnore(abortController)\n }\n }, [\n getFormState,\n schemaFieldsPath,\n id,\n formData,\n initialState,\n collectionSlug,\n globalSlug,\n getDocPreferences,\n ])\n\n /**\n * HANDLE ONCHANGE\n */\n const onChange = useCallback(\n async ({ formState: prevFormState, submit }: { formState: FormState; submit?: boolean }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n formState: prevFormState,\n globalSlug,\n operation: 'update',\n renderAllFields: submit ? true : false,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!state) {\n return prevFormState\n }\n\n if (submit) {\n setCustomLabel(state['_components']?.customComponents?.BlockLabel)\n setCustomBlock(state['_components']?.customComponents?.Block)\n }\n\n return state\n },\n [getFormState, id, collectionSlug, getDocPreferences, globalSlug, schemaFieldsPath],\n )\n // cleanup effect\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n /**\n * HANDLE FORM SUBMIT\n */\n const onFormSubmit = useCallback(\n (formState: FormState) => {\n const newData: any = reduceFieldsToValues(formState)\n newData.blockType = formData.blockType\n editor.update(() => {\n const node = $getNodeByKey(nodeKey)\n if (node && $isInlineBlockNode(node)) {\n node.setFields(newData)\n }\n })\n },\n [editor, nodeKey, formData],\n )\n\n const RemoveButton = useMemo(\n () => () => (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeInlineBlock()\n }}\n round\n size=\"small\"\n tooltip={t('lexical:blocks:inlineBlocks:remove', { label: blockDisplayName })}\n />\n ),\n [blockDisplayName, readOnly, removeInlineBlock, t],\n )\n\n const EditButton = useMemo(\n () => () => (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__editButton`}\n disabled={readOnly}\n el=\"button\"\n icon=\"edit\"\n onClick={() => {\n toggleDrawer()\n }}\n round\n size=\"small\"\n tooltip={t('lexical:blocks:inlineBlocks:edit', { label: blockDisplayName })}\n />\n ),\n [blockDisplayName, readOnly, t, toggleDrawer],\n )\n\n const InlineBlockContainer = useMemo(\n () =>\n ({ children }: { children: React.ReactNode }) => (\n <div\n className={[\n baseClass,\n baseClass + '-' + formData.blockType,\n isSelected && `${baseClass}--selected`,\n ]\n .filter(Boolean)\n .join(' ')}\n ref={inlineBlockElemElemRef}\n >\n {children}\n </div>\n ),\n [formData.blockType, isSelected],\n )\n\n const Label = useMemo(() => {\n if (CustomLabel) {\n return () => CustomLabel\n } else {\n return () => <div>{getTranslation(clientBlock.labels!.singular, i18n)}</div>\n }\n }, [CustomLabel, clientBlock.labels, i18n])\n\n return (\n <Form\n beforeSubmit={[\n async ({ formState }) => {\n // This is only called when form is submitted from drawer\n return await onChange({ formState, submit: true })\n },\n ]}\n disableValidationOnSubmit\n fields={clientBlock.fields}\n initialState={initialState || {}}\n onChange={[onChange]}\n onSubmit={(formState) => {\n onFormSubmit(formState)\n toggleDrawer()\n }}\n uuid={uuid()}\n >\n <EditDepthProvider>\n <Drawer\n className={''}\n slug={drawerSlug}\n title={t(`lexical:blocks:inlineBlocks:${formData?.id ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n >\n {initialState ? (\n <>\n <RenderFields\n fields={clientBlock.fields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={permissions}\n readOnly={false}\n />\n <FormSubmit>{t('fields:saveChanges')}</FormSubmit>\n </>\n ) : null}\n </Drawer>\n </EditDepthProvider>\n {CustomBlock ? (\n <InlineBlockComponentContext.Provider\n value={{\n EditButton,\n initialState,\n InlineBlockContainer,\n Label,\n nodeKey,\n RemoveButton,\n }}\n >\n {CustomBlock}\n </InlineBlockComponentContext.Provider>\n ) : (\n <InlineBlockContainer>\n {initialState ? <Label /> : <ShimmerEffect height=\"15px\" width=\"40px\" />}\n {editor.isEditable() ? (\n <div className={`${baseClass}__actions`}>\n <EditButton />\n <RemoveButton />\n </div>\n ) : null}\n </InlineBlockContainer>\n )}\n </Form>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/client/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/client/index.tsx"],"names":[],"mappings":"AAqBA,eAAO,MAAM,mBAAmB,8EAuK/B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","BlockIcon","InlineBlocksIcon","createClientFeature","BlockNode","InlineBlockNode","INSERT_BLOCK_COMMAND","INSERT_INLINE_BLOCK_COMMAND","BlocksPlugin","BlocksFeatureClient","featureClientSchemaMap","props","schemaPath","schemaMapRenderedBlockPathPrefix","schemaMapRenderedInlineBlockPathPrefix","clientSchema","blocksFields","Object","entries","filter","key","startsWith","replace","includes","map","value","inlineBlocksFields","clientBlocks","field","blocks","clientInlineBlocks","nodes","plugins","Component","position","sanitizedClientFeatureProps","slashMenu","groups","length","items","block","Icon","slug","keywords","label","i18n","blockDisplayName","labels","singular","onSelect","editor","dispatchCommand","blockName","blockType","t","inlineBlock","Boolean","toolbarFixed","type","ChildComponent","index","isActive","undefined","order"],"sources":["../../../../src/features/blocks/client/index.tsx"],"sourcesContent":["'use client'\n\nimport type { BlocksFieldClient, ClientBlock } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type {\n SlashMenuGroup,\n SlashMenuItem,\n} from '../../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nimport { BlockIcon } from '../../../lexical/ui/icons/Block/index.js'\nimport { InlineBlocksIcon } from '../../../lexical/ui/icons/InlineBlocks/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { BlockNode } from './nodes/BlocksNode.js'\nimport { InlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { INSERT_BLOCK_COMMAND, INSERT_INLINE_BLOCK_COMMAND } from './plugin/commands.js'\nimport { BlocksPlugin } from './plugin/index.js'\n\nexport const BlocksFeatureClient = createClientFeature(\n ({ featureClientSchemaMap, props, schemaPath }) => {\n const schemaMapRenderedBlockPathPrefix = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks`\n const schemaMapRenderedInlineBlockPathPrefix = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks`\n const clientSchema = featureClientSchemaMap['blocks']\n\n const blocksFields: BlocksFieldClient[] = Object.entries(clientSchema)\n .filter(\n ([key]) =>\n key.startsWith(schemaMapRenderedBlockPathPrefix + '.') &&\n !key.replace(schemaMapRenderedBlockPathPrefix + '.', '').includes('.'),\n )\n .map(([key, value]) => value[0] as BlocksFieldClient)\n\n const inlineBlocksFields: BlocksFieldClient[] = Object.entries(clientSchema)\n .filter(\n ([key]) =>\n key.startsWith(schemaMapRenderedInlineBlockPathPrefix + '.') &&\n !key.replace(schemaMapRenderedInlineBlockPathPrefix + '.', '').includes('.'),\n )\n .map(([key, value]) => value[0] as BlocksFieldClient)\n\n const clientBlocks: ClientBlock[] = blocksFields.map((field) => {\n return field.blocks[0]\n })\n\n const clientInlineBlocks: ClientBlock[] = inlineBlocksFields.map((field) => {\n return field.blocks[0]\n })\n\n return {\n nodes: [BlockNode, InlineBlockNode],\n plugins: [\n {\n Component: BlocksPlugin,\n position: 'normal',\n },\n ],\n sanitizedClientFeatureProps: props,\n slashMenu: {\n groups: [\n clientBlocks?.length\n ? {\n items: clientBlocks.map((block) => {\n return {\n Icon: BlockIcon,\n key: 'block-' + block.slug,\n keywords: ['block', 'blocks', block.slug],\n label: ({ i18n }) => {\n const blockDisplayName = block?.labels?.singular\n ? getTranslation(block.labels.singular, i18n)\n : block?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n blockName: '',\n blockType: block.slug,\n })\n },\n } as SlashMenuItem\n }),\n key: 'blocks',\n label: ({ i18n }) => {\n return i18n.t('lexical:blocks:label')\n },\n }\n : null,\n clientInlineBlocks?.length\n ? {\n items: clientInlineBlocks.map((inlineBlock) => {\n return {\n Icon: InlineBlocksIcon,\n key: 'inlineBlocks-' + inlineBlock.slug,\n keywords: ['inlineBlock', 'inline block', inlineBlock.slug],\n label: ({ i18n }) => {\n const blockDisplayName = inlineBlock?.labels?.singular\n ? getTranslation(inlineBlock.labels.singular, i18n)\n : inlineBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, {\n blockName: '',\n blockType: inlineBlock.slug,\n })\n },\n } as SlashMenuItem\n }),\n key: 'inlineBlocks',\n label: ({ i18n }) => {\n return i18n.t('lexical:blocks:inlineBlocks:label')\n },\n }\n : null,\n ].filter(Boolean) as SlashMenuGroup[],\n },\n toolbarFixed: {\n groups: [\n clientBlocks.length\n ? {\n type: 'dropdown',\n ChildComponent: BlockIcon,\n items: clientBlocks.map((block, index) => {\n return {\n ChildComponent: BlockIcon,\n isActive: undefined, // At this point, we would be inside a sub-richtext-editor. And at this point this will be run against the focused sub-editor, not the parent editor which has the actual block. Thus, no point in running this\n key: 'block-' + block.slug,\n label: ({ i18n }) => {\n const blockDisplayName = block?.labels?.singular\n ? getTranslation(block.labels.singular, i18n)\n : block?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n blockName: '',\n blockType: block.slug,\n })\n },\n order: index,\n } as ToolbarGroupItem\n }),\n key: 'blocks',\n order: 20,\n }\n : null,\n clientInlineBlocks?.length\n ? {\n type: 'dropdown',\n ChildComponent: InlineBlocksIcon,\n items: clientInlineBlocks.map((inlineBlock, index) => {\n return {\n ChildComponent: InlineBlocksIcon,\n isActive: undefined,\n key: 'inlineBlock-' + inlineBlock.slug,\n label: ({ i18n }) => {\n const blockDisplayName = inlineBlock?.labels?.singular\n ? getTranslation(inlineBlock.labels.singular, i18n)\n : inlineBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, {\n blockName: '',\n blockType: inlineBlock.slug,\n })\n },\n order: index,\n } as ToolbarGroupItem\n }),\n key: 'inlineBlocks',\n order: 25,\n }\n : null,\n ].filter(Boolean) as ToolbarGroup[],\n },\n }\n },\n)\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","BlockIcon","InlineBlocksIcon","createClientFeature","BlockNode","InlineBlockNode","INSERT_BLOCK_COMMAND","INSERT_INLINE_BLOCK_COMMAND","BlocksPlugin","BlocksFeatureClient","featureClientSchemaMap","props","schemaPath","schemaMapRenderedBlockPathPrefix","schemaMapRenderedInlineBlockPathPrefix","clientSchema","blocksFields","Object","entries","filter","key","startsWith","replace","includes","map","value","inlineBlocksFields","clientBlocks","field","blocks","clientInlineBlocks","nodes","plugins","Component","position","sanitizedClientFeatureProps","slashMenu","groups","length","items","block","Icon","slug","keywords","label","i18n","blockDisplayName","labels","singular","onSelect","editor","dispatchCommand","blockName","blockType","t","inlineBlock","Boolean","toolbarFixed","type","ChildComponent","index","isActive","undefined","order"],"sources":["../../../../src/features/blocks/client/index.tsx"],"sourcesContent":["'use client'\n\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { BlocksFieldClient, ClientBlock } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport type {\n SlashMenuGroup,\n SlashMenuItem,\n} from '../../../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../toolbars/types.js'\n\nimport { BlockIcon } from '../../../lexical/ui/icons/Block/index.js'\nimport { InlineBlocksIcon } from '../../../lexical/ui/icons/InlineBlocks/index.js'\nimport { createClientFeature } from '../../../utilities/createClientFeature.js'\nimport { BlockNode } from './nodes/BlocksNode.js'\nimport { InlineBlockNode } from './nodes/InlineBlocksNode.js'\nimport { INSERT_BLOCK_COMMAND, INSERT_INLINE_BLOCK_COMMAND } from './plugin/commands.js'\nimport { BlocksPlugin } from './plugin/index.js'\n\nexport const BlocksFeatureClient = createClientFeature(\n ({ featureClientSchemaMap, props, schemaPath }) => {\n const schemaMapRenderedBlockPathPrefix = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks`\n const schemaMapRenderedInlineBlockPathPrefix = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks`\n const clientSchema = featureClientSchemaMap['blocks']\n\n const blocksFields: BlocksFieldClient[] = Object.entries(clientSchema)\n .filter(\n ([key]) =>\n key.startsWith(schemaMapRenderedBlockPathPrefix + '.') &&\n !key.replace(schemaMapRenderedBlockPathPrefix + '.', '').includes('.'),\n )\n .map(([key, value]) => value[0] as BlocksFieldClient)\n\n const inlineBlocksFields: BlocksFieldClient[] = Object.entries(clientSchema)\n .filter(\n ([key]) =>\n key.startsWith(schemaMapRenderedInlineBlockPathPrefix + '.') &&\n !key.replace(schemaMapRenderedInlineBlockPathPrefix + '.', '').includes('.'),\n )\n .map(([key, value]) => value[0] as BlocksFieldClient)\n\n const clientBlocks: ClientBlock[] = blocksFields.map((field) => {\n return field.blocks[0]\n })\n\n const clientInlineBlocks: ClientBlock[] = inlineBlocksFields.map((field) => {\n return field.blocks[0]\n })\n\n return {\n nodes: [BlockNode, InlineBlockNode],\n plugins: [\n {\n Component: BlocksPlugin,\n position: 'normal',\n },\n ],\n sanitizedClientFeatureProps: props,\n slashMenu: {\n groups: [\n clientBlocks?.length\n ? {\n items: clientBlocks.map((block) => {\n return {\n Icon: BlockIcon,\n key: 'block-' + block.slug,\n keywords: ['block', 'blocks', block.slug],\n label: ({ i18n }) => {\n const blockDisplayName = block?.labels?.singular\n ? getTranslation(block.labels.singular, i18n)\n : block?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n blockName: '',\n blockType: block.slug,\n })\n },\n } as SlashMenuItem\n }),\n key: 'blocks',\n label: ({ i18n }: { i18n: I18nClient<object, 'lexical:blocks:label'> }) => {\n return i18n.t('lexical:blocks:label')\n },\n }\n : null,\n clientInlineBlocks?.length\n ? {\n items: clientInlineBlocks.map((inlineBlock) => {\n return {\n Icon: InlineBlocksIcon,\n key: 'inlineBlocks-' + inlineBlock.slug,\n keywords: ['inlineBlock', 'inline block', inlineBlock.slug],\n label: ({ i18n }) => {\n const blockDisplayName = inlineBlock?.labels?.singular\n ? getTranslation(inlineBlock.labels.singular, i18n)\n : inlineBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, {\n blockName: '',\n blockType: inlineBlock.slug,\n })\n },\n } as SlashMenuItem\n }),\n key: 'inlineBlocks',\n label: ({\n i18n,\n }: {\n i18n: I18nClient<object, 'lexical:blocks:inlineBlocks:label'>\n }) => {\n return i18n.t('lexical:blocks:inlineBlocks:label')\n },\n }\n : null,\n ].filter(Boolean) as SlashMenuGroup[],\n },\n toolbarFixed: {\n groups: [\n clientBlocks.length\n ? {\n type: 'dropdown',\n ChildComponent: BlockIcon,\n items: clientBlocks.map((block, index) => {\n return {\n ChildComponent: BlockIcon,\n isActive: undefined, // At this point, we would be inside a sub-richtext-editor. And at this point this will be run against the focused sub-editor, not the parent editor which has the actual block. Thus, no point in running this\n key: 'block-' + block.slug,\n label: ({ i18n }) => {\n const blockDisplayName = block?.labels?.singular\n ? getTranslation(block.labels.singular, i18n)\n : block?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_BLOCK_COMMAND, {\n blockName: '',\n blockType: block.slug,\n })\n },\n order: index,\n } as ToolbarGroupItem\n }),\n key: 'blocks',\n order: 20,\n }\n : null,\n clientInlineBlocks?.length\n ? {\n type: 'dropdown',\n ChildComponent: InlineBlocksIcon,\n items: clientInlineBlocks.map((inlineBlock, index) => {\n return {\n ChildComponent: InlineBlocksIcon,\n isActive: undefined,\n key: 'inlineBlock-' + inlineBlock.slug,\n label: ({ i18n }) => {\n const blockDisplayName = inlineBlock?.labels?.singular\n ? getTranslation(inlineBlock.labels.singular, i18n)\n : inlineBlock?.slug\n\n return blockDisplayName\n },\n onSelect: ({ editor }) => {\n editor.dispatchCommand(INSERT_INLINE_BLOCK_COMMAND, {\n blockName: '',\n blockType: inlineBlock.slug,\n })\n },\n order: index,\n } as ToolbarGroupItem\n }),\n key: 'inlineBlocks',\n order: 25,\n }\n : null,\n ].filter(Boolean) as ToolbarGroup[],\n },\n }\n },\n)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphQLPopulationPromise.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/graphQLPopulationPromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAIhE,eAAO,MAAM,yBAAyB,WAC5B,KAAK,EAAE,KACd,iBAAiB,CAAC,mBAAmB,GAAG,yBAAyB,
|
|
1
|
+
{"version":3,"file":"graphQLPopulationPromise.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/graphQLPopulationPromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAIhE,eAAO,MAAM,yBAAyB,WAC5B,KAAK,EAAE,KACd,iBAAiB,CAAC,mBAAmB,GAAG,yBAAyB,CA8CnE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphQLPopulationPromise.js","names":["recursivelyPopulateFieldsForGraphQL","blockPopulationPromiseHOC","blocks","blockPopulationPromise","context","currentDepth","depth","draft","editorPopulationPromises","fieldPromises","findMany","flattenLocales","node","overrideAccess","populationPromises","req","showHiddenFields","blockFieldData","fields","block","find","slug","blockType","length","data","siblingDoc"],"sources":["../../../../src/features/blocks/server/graphQLPopulationPromise.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport type { PopulationPromise } from '../../typesServer.js'\nimport type { SerializedInlineBlockNode } from '../client/nodes/InlineBlocksNode.js'\nimport type { SerializedBlockNode } from './nodes/BlocksNode.js'\n\nimport { recursivelyPopulateFieldsForGraphQL } from '../../../populateGraphQL/recursivelyPopulateFieldsForGraphQL.js'\n\nexport const blockPopulationPromiseHOC = (\n blocks: Block[],\n): PopulationPromise<SerializedBlockNode | SerializedInlineBlockNode> => {\n const blockPopulationPromise: PopulationPromise
|
|
1
|
+
{"version":3,"file":"graphQLPopulationPromise.js","names":["recursivelyPopulateFieldsForGraphQL","blockPopulationPromiseHOC","blocks","blockPopulationPromise","context","currentDepth","depth","draft","editorPopulationPromises","fieldPromises","findMany","flattenLocales","node","overrideAccess","populationPromises","req","showHiddenFields","blockFieldData","fields","block","find","slug","blockType","length","data","siblingDoc"],"sources":["../../../../src/features/blocks/server/graphQLPopulationPromise.ts"],"sourcesContent":["import type { Block } from 'payload'\n\nimport type { PopulationPromise } from '../../typesServer.js'\nimport type { SerializedInlineBlockNode } from '../client/nodes/InlineBlocksNode.js'\nimport type { SerializedBlockNode } from './nodes/BlocksNode.js'\n\nimport { recursivelyPopulateFieldsForGraphQL } from '../../../populateGraphQL/recursivelyPopulateFieldsForGraphQL.js'\n\nexport const blockPopulationPromiseHOC = (\n blocks: Block[],\n): PopulationPromise<SerializedBlockNode | SerializedInlineBlockNode> => {\n const blockPopulationPromise: PopulationPromise<\n SerializedBlockNode | SerializedInlineBlockNode\n > = ({\n context,\n currentDepth,\n depth,\n draft,\n editorPopulationPromises,\n fieldPromises,\n findMany,\n flattenLocales,\n node,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n }) => {\n const blockFieldData = node.fields\n\n // find block used in this node\n const block = blocks.find((block) => block.slug === blockFieldData.blockType)\n if (!block || !block?.fields?.length || !blockFieldData) {\n return\n }\n\n recursivelyPopulateFieldsForGraphQL({\n context,\n currentDepth,\n data: blockFieldData,\n depth,\n draft,\n editorPopulationPromises,\n fieldPromises,\n fields: block.fields,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc: blockFieldData,\n })\n }\n\n return blockPopulationPromise\n}\n"],"mappings":"AAMA,SAASA,mCAAmC,QAAQ;AAEpD,OAAO,MAAMC,yBAAA,GACXC,MAAA;EAEA,MAAMC,sBAAA,GAEFA,CAAC;IACHC,OAAO;IACPC,YAAY;IACZC,KAAK;IACLC,KAAK;IACLC,wBAAwB;IACxBC,aAAa;IACbC,QAAQ;IACRC,cAAc;IACdC,IAAI;IACJC,cAAc;IACdC,kBAAkB;IAClBC,GAAG;IACHC;EAAgB,CACjB;IACC,MAAMC,cAAA,GAAiBL,IAAA,CAAKM,MAAM;IAElC;IACA,MAAMC,KAAA,GAAQjB,MAAA,CAAOkB,IAAI,CAAED,KAAA,IAAUA,KAAA,CAAME,IAAI,KAAKJ,cAAA,CAAeK,SAAS;IAC5E,IAAI,CAACH,KAAA,IAAS,CAACA,KAAA,EAAOD,MAAA,EAAQK,MAAA,IAAU,CAACN,cAAA,EAAgB;MACvD;IACF;IAEAjB,mCAAA,CAAoC;MAClCI,OAAA;MACAC,YAAA;MACAmB,IAAA,EAAMP,cAAA;MACNX,KAAA;MACAC,KAAA;MACAC,wBAAA;MACAC,aAAA;MACAS,MAAA,EAAQC,KAAA,CAAMD,MAAM;MACpBR,QAAA;MACAC,cAAA;MACAE,cAAA;MACAC,kBAAA;MACAC,GAAA;MACAC,gBAAA;MACAS,UAAA,EAAYR;IACd;EACF;EAEA,OAAOd,sBAAA;AACT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,eAAO,MAAM,IAAI,EAAE,OAAO,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/features/blocks/server/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,eAAO,MAAM,IAAI,EAAE,OAAO,CAAC,gBAAgB,CA0S1C,CAAA"}
|
|
@@ -35,6 +35,15 @@ export const i18n = {
|
|
|
35
35
|
},
|
|
36
36
|
label: 'Bloky'
|
|
37
37
|
},
|
|
38
|
+
da: {
|
|
39
|
+
inlineBlocks: {
|
|
40
|
+
create: 'Opret {{label}}',
|
|
41
|
+
edit: 'Rediger {{label}}',
|
|
42
|
+
label: 'Indlejrede blokke',
|
|
43
|
+
remove: 'Fjern {{label}}'
|
|
44
|
+
},
|
|
45
|
+
label: 'Blokke'
|
|
46
|
+
},
|
|
38
47
|
de: {
|
|
39
48
|
inlineBlocks: {
|
|
40
49
|
create: 'Erstelle {{label}}',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","names":["i18n","ar","inlineBlocks","create","edit","label","remove","az","bg","cs","de","en","es","fa","fr","he","hr","hu","it","ja","ko","my","nb","nl","pl","pt","ro","rs","ru","sk","sv","th","tr","uk","vi","zh"],"sources":["../../../../src/features/blocks/server/i18n.ts"],"sourcesContent":["import type { GenericLanguages } from '@payloadcms/translations'\n\nexport const i18n: Partial<GenericLanguages> = {\n ar: {\n inlineBlocks: {\n create: 'أنشئ {{label}}',\n edit: 'تحرير {{التسمية}}',\n label: 'الكتل الداخلية',\n remove: 'إزالة {{التسمية}}',\n },\n label: 'كتل',\n },\n az: {\n inlineBlocks: {\n create: 'Yarat {{label}}',\n edit: '{{label}} redaktə et',\n label: 'Sıralı Bloklar',\n remove: '{{label}} silin',\n },\n label: 'Bloklar',\n },\n bg: {\n inlineBlocks: {\n create: 'Създайте {{етикет}}',\n edit: 'Редактирай {{етикет}}',\n label: 'Вградени блокове',\n remove: 'Премахнете {{етикет}}',\n },\n label: 'Блокове',\n },\n cs: {\n inlineBlocks: {\n create: 'Vytvořte {{štítek}}',\n edit: 'Upravit {{label}}',\n label: 'Inline bloky',\n remove: 'Odstraňte {{label}}',\n },\n label: 'Bloky',\n },\n de: {\n inlineBlocks: {\n create: 'Erstelle {{label}}',\n edit: 'Bearbeite {{label}}',\n label: 'Inline-Blöcke',\n remove: 'Entferne {{label}}',\n },\n label: 'Blöcke',\n },\n en: {\n inlineBlocks: {\n create: 'Create {{label}}',\n edit: 'Edit {{label}}',\n label: 'Inline Blocks',\n remove: 'Remove {{label}}',\n },\n label: 'Blocks',\n },\n es: {\n inlineBlocks: {\n create: 'Crear {{etiqueta}}',\n edit: 'Editar {{etiqueta}}',\n label: 'Bloques en línea',\n remove: 'Eliminar {{label}}',\n },\n label: 'Bloques',\n },\n fa: {\n inlineBlocks: {\n create: 'ایجاد {{برچسب}}',\n edit: 'ویرایش {{برچسب}}',\n label: 'بلوکهای درون خطی',\n remove: 'حذف {{برچسب}}',\n },\n label: 'بلوک ها',\n },\n fr: {\n inlineBlocks: {\n create: 'Créer {{label}}',\n edit: 'Modifier {{label}}',\n label: 'Blocs en ligne',\n remove: 'Supprimer {{label}}',\n },\n label: 'Blocs',\n },\n he: {\n inlineBlocks: {\n create: 'צור {{תווית}}',\n edit: 'ערוך {{תווית}}',\n label: 'בלוקים משורשרים',\n remove: 'הסר {{תווית}}',\n },\n label: 'חסימות',\n },\n hr: {\n inlineBlocks: {\n create: 'Stvori {{oznaka}}',\n edit: 'Uredi {{label}}',\n label: 'Unutrašnji blokovi',\n remove: 'Ukloni {{oznaka}}',\n },\n label: 'Blokovi',\n },\n hu: {\n inlineBlocks: {\n create: 'Hozzon létre {{címke}}',\n edit: 'Szerkesztés {{címke}}',\n label: 'Beágyazott blokkok',\n remove: 'Távolítsa el a {{label}}',\n },\n label: 'Blokkok',\n },\n it: {\n inlineBlocks: {\n create: 'Crea {{etichetta}}',\n edit: 'Modifica {{label}}',\n label: 'Blocchi in linea',\n remove: 'Rimuovi {{label}}',\n },\n label: 'Blocchi',\n },\n ja: {\n inlineBlocks: {\n create: '{{label}}を作成する',\n edit: '{{label}}を編集する',\n label: 'インラインブロック',\n remove: '{{ラベル}}を削除します',\n },\n label: 'ブロック',\n },\n ko: {\n inlineBlocks: {\n create: '{{label}} 생성하기',\n edit: '{{label}} 수정하기',\n label: '인라인 블록',\n remove: '{{label}} 제거하세요',\n },\n label: '블록',\n },\n my: {\n inlineBlocks: {\n create: 'Cipta {{label}}',\n edit: 'Sunting {{label}}',\n label: 'Inline Blocks [SKIPPED]',\n remove: 'Buang {{label}}',\n },\n label: 'တံတားများ',\n },\n nb: {\n inlineBlocks: {\n create: 'Opprett {{label}}',\n edit: 'Rediger {{label}}',\n label: 'In-line blokker',\n remove: 'Fjern {{label}}',\n },\n label: 'Blokker',\n },\n nl: {\n inlineBlocks: {\n create: 'Maak {{label}}',\n edit: 'Bewerk {{label}}',\n label: 'Inline Blocks',\n remove: 'Verwijder {{label}}',\n },\n label: 'Blokken',\n },\n pl: {\n inlineBlocks: {\n create: 'Utwórz {{label}}',\n edit: 'Edytuj {{etykieta}}',\n label: 'Blokowanie w linii',\n remove: 'Usuń {{etykieta}}',\n },\n label: 'Bloki',\n },\n pt: {\n inlineBlocks: {\n create: 'Crie {{label}}',\n edit: 'Editar {{label}}',\n label: 'Blocos em linha',\n remove: 'Remova {{label}}',\n },\n label: 'Blocos',\n },\n ro: {\n inlineBlocks: {\n create: 'Creează {{eticheta}}',\n edit: 'Editați {{eticheta}}',\n label: 'Blocuri in linie',\n remove: 'Ștergeți {{etichetă}}',\n },\n label: 'Blocuri',\n },\n rs: {\n inlineBlocks: {\n create: 'Kreiraj {{label}}',\n edit: 'Izmeni {{label}}',\n label: 'Umetnuti blokovi',\n remove: 'Ukloni {{label}}',\n },\n label: 'Blokovi',\n },\n 'rs-latin': {\n inlineBlocks: {\n create: 'Kreiraj {{label}}',\n edit: 'Izmeni {{label}}',\n label: 'Unutar blokovi',\n remove: 'Ukloni {{oznaka}}',\n },\n label: 'Blokovi',\n },\n ru: {\n inlineBlocks: {\n create: 'Создать {{label}}',\n edit: 'Изменить {{метка}}',\n label: 'Встроенные блоки',\n remove: 'Удалить {{метка}}',\n },\n label: 'Блоки',\n },\n sk: {\n inlineBlocks: {\n create: 'Vytvorte {{označenie}}',\n edit: 'Upraviť {{label}}',\n label: 'Inline bloky',\n remove: 'Odstráňte {{label}}',\n },\n label: 'Bloky',\n },\n sv: {\n inlineBlocks: {\n create: 'Skapa {{label}}',\n edit: 'Redigera {{etikett}}',\n label: 'Inline-blockar',\n remove: 'Ta bort {{etikett}}',\n },\n label: 'Block',\n },\n th: {\n inlineBlocks: {\n create: 'สร้าง {{label}}',\n edit: 'แก้ไข {{label}}',\n label: 'บล็อกแบบอินไลน์',\n remove: 'ลบ {{label}}',\n },\n label: 'บล็อค',\n },\n tr: {\n inlineBlocks: {\n create: '{{Etiketi}} oluşturun',\n edit: \"{{Etiket}}'i düzenleyin\",\n label: 'Satır İçi Bloklar',\n remove: '{{Etiketi}} kaldırın',\n },\n label: 'Bloklar',\n },\n uk: {\n inlineBlocks: {\n create: 'Створити {{label}}',\n edit: 'Редагувати {{label}}',\n label: 'Вбудовані блоки',\n remove: 'Видалити {{мітку}}',\n },\n label: 'Блоки',\n },\n vi: {\n inlineBlocks: {\n create: 'Tạo {{label}}',\n edit: 'Chỉnh sửa {{nhãn}}',\n label: 'Khối nội tuyến',\n remove: 'Xóa {{nhãn}}',\n },\n label: 'Khối',\n },\n zh: {\n inlineBlocks: {\n create: '创建{{label}}',\n edit: '编辑 {{label}}',\n label: '内联块',\n remove: '删除{{label}}',\n },\n label: '块',\n },\n 'zh-TW': {\n inlineBlocks: {\n create: '創建 {{label}}',\n edit: '編輯 {{label}}',\n label: '內聯區塊',\n remove: '移除 {{label}}',\n },\n label: '區塊',\n },\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"i18n.js","names":["i18n","ar","inlineBlocks","create","edit","label","remove","az","bg","cs","da","de","en","es","fa","fr","he","hr","hu","it","ja","ko","my","nb","nl","pl","pt","ro","rs","ru","sk","sv","th","tr","uk","vi","zh"],"sources":["../../../../src/features/blocks/server/i18n.ts"],"sourcesContent":["import type { GenericLanguages } from '@payloadcms/translations'\n\nexport const i18n: Partial<GenericLanguages> = {\n ar: {\n inlineBlocks: {\n create: 'أنشئ {{label}}',\n edit: 'تحرير {{التسمية}}',\n label: 'الكتل الداخلية',\n remove: 'إزالة {{التسمية}}',\n },\n label: 'كتل',\n },\n az: {\n inlineBlocks: {\n create: 'Yarat {{label}}',\n edit: '{{label}} redaktə et',\n label: 'Sıralı Bloklar',\n remove: '{{label}} silin',\n },\n label: 'Bloklar',\n },\n bg: {\n inlineBlocks: {\n create: 'Създайте {{етикет}}',\n edit: 'Редактирай {{етикет}}',\n label: 'Вградени блокове',\n remove: 'Премахнете {{етикет}}',\n },\n label: 'Блокове',\n },\n cs: {\n inlineBlocks: {\n create: 'Vytvořte {{štítek}}',\n edit: 'Upravit {{label}}',\n label: 'Inline bloky',\n remove: 'Odstraňte {{label}}',\n },\n label: 'Bloky',\n },\n da: {\n inlineBlocks: {\n create: 'Opret {{label}}',\n edit: 'Rediger {{label}}',\n label: 'Indlejrede blokke',\n remove: 'Fjern {{label}}',\n },\n label: 'Blokke',\n },\n de: {\n inlineBlocks: {\n create: 'Erstelle {{label}}',\n edit: 'Bearbeite {{label}}',\n label: 'Inline-Blöcke',\n remove: 'Entferne {{label}}',\n },\n label: 'Blöcke',\n },\n en: {\n inlineBlocks: {\n create: 'Create {{label}}',\n edit: 'Edit {{label}}',\n label: 'Inline Blocks',\n remove: 'Remove {{label}}',\n },\n label: 'Blocks',\n },\n es: {\n inlineBlocks: {\n create: 'Crear {{etiqueta}}',\n edit: 'Editar {{etiqueta}}',\n label: 'Bloques en línea',\n remove: 'Eliminar {{label}}',\n },\n label: 'Bloques',\n },\n fa: {\n inlineBlocks: {\n create: 'ایجاد {{برچسب}}',\n edit: 'ویرایش {{برچسب}}',\n label: 'بلوکهای درون خطی',\n remove: 'حذف {{برچسب}}',\n },\n label: 'بلوک ها',\n },\n fr: {\n inlineBlocks: {\n create: 'Créer {{label}}',\n edit: 'Modifier {{label}}',\n label: 'Blocs en ligne',\n remove: 'Supprimer {{label}}',\n },\n label: 'Blocs',\n },\n he: {\n inlineBlocks: {\n create: 'צור {{תווית}}',\n edit: 'ערוך {{תווית}}',\n label: 'בלוקים משורשרים',\n remove: 'הסר {{תווית}}',\n },\n label: 'חסימות',\n },\n hr: {\n inlineBlocks: {\n create: 'Stvori {{oznaka}}',\n edit: 'Uredi {{label}}',\n label: 'Unutrašnji blokovi',\n remove: 'Ukloni {{oznaka}}',\n },\n label: 'Blokovi',\n },\n hu: {\n inlineBlocks: {\n create: 'Hozzon létre {{címke}}',\n edit: 'Szerkesztés {{címke}}',\n label: 'Beágyazott blokkok',\n remove: 'Távolítsa el a {{label}}',\n },\n label: 'Blokkok',\n },\n it: {\n inlineBlocks: {\n create: 'Crea {{etichetta}}',\n edit: 'Modifica {{label}}',\n label: 'Blocchi in linea',\n remove: 'Rimuovi {{label}}',\n },\n label: 'Blocchi',\n },\n ja: {\n inlineBlocks: {\n create: '{{label}}を作成する',\n edit: '{{label}}を編集する',\n label: 'インラインブロック',\n remove: '{{ラベル}}を削除します',\n },\n label: 'ブロック',\n },\n ko: {\n inlineBlocks: {\n create: '{{label}} 생성하기',\n edit: '{{label}} 수정하기',\n label: '인라인 블록',\n remove: '{{label}} 제거하세요',\n },\n label: '블록',\n },\n my: {\n inlineBlocks: {\n create: 'Cipta {{label}}',\n edit: 'Sunting {{label}}',\n label: 'Inline Blocks [SKIPPED]',\n remove: 'Buang {{label}}',\n },\n label: 'တံတားများ',\n },\n nb: {\n inlineBlocks: {\n create: 'Opprett {{label}}',\n edit: 'Rediger {{label}}',\n label: 'In-line blokker',\n remove: 'Fjern {{label}}',\n },\n label: 'Blokker',\n },\n nl: {\n inlineBlocks: {\n create: 'Maak {{label}}',\n edit: 'Bewerk {{label}}',\n label: 'Inline Blocks',\n remove: 'Verwijder {{label}}',\n },\n label: 'Blokken',\n },\n pl: {\n inlineBlocks: {\n create: 'Utwórz {{label}}',\n edit: 'Edytuj {{etykieta}}',\n label: 'Blokowanie w linii',\n remove: 'Usuń {{etykieta}}',\n },\n label: 'Bloki',\n },\n pt: {\n inlineBlocks: {\n create: 'Crie {{label}}',\n edit: 'Editar {{label}}',\n label: 'Blocos em linha',\n remove: 'Remova {{label}}',\n },\n label: 'Blocos',\n },\n ro: {\n inlineBlocks: {\n create: 'Creează {{eticheta}}',\n edit: 'Editați {{eticheta}}',\n label: 'Blocuri in linie',\n remove: 'Ștergeți {{etichetă}}',\n },\n label: 'Blocuri',\n },\n rs: {\n inlineBlocks: {\n create: 'Kreiraj {{label}}',\n edit: 'Izmeni {{label}}',\n label: 'Umetnuti blokovi',\n remove: 'Ukloni {{label}}',\n },\n label: 'Blokovi',\n },\n 'rs-latin': {\n inlineBlocks: {\n create: 'Kreiraj {{label}}',\n edit: 'Izmeni {{label}}',\n label: 'Unutar blokovi',\n remove: 'Ukloni {{oznaka}}',\n },\n label: 'Blokovi',\n },\n ru: {\n inlineBlocks: {\n create: 'Создать {{label}}',\n edit: 'Изменить {{метка}}',\n label: 'Встроенные блоки',\n remove: 'Удалить {{метка}}',\n },\n label: 'Блоки',\n },\n sk: {\n inlineBlocks: {\n create: 'Vytvorte {{označenie}}',\n edit: 'Upraviť {{label}}',\n label: 'Inline bloky',\n remove: 'Odstráňte {{label}}',\n },\n label: 'Bloky',\n },\n sv: {\n inlineBlocks: {\n create: 'Skapa {{label}}',\n edit: 'Redigera {{etikett}}',\n label: 'Inline-blockar',\n remove: 'Ta bort {{etikett}}',\n },\n label: 'Block',\n },\n th: {\n inlineBlocks: {\n create: 'สร้าง {{label}}',\n edit: 'แก้ไข {{label}}',\n label: 'บล็อกแบบอินไลน์',\n remove: 'ลบ {{label}}',\n },\n label: 'บล็อค',\n },\n tr: {\n inlineBlocks: {\n create: '{{Etiketi}} oluşturun',\n edit: \"{{Etiket}}'i düzenleyin\",\n label: 'Satır İçi Bloklar',\n remove: '{{Etiketi}} kaldırın',\n },\n label: 'Bloklar',\n },\n uk: {\n inlineBlocks: {\n create: 'Створити {{label}}',\n edit: 'Редагувати {{label}}',\n label: 'Вбудовані блоки',\n remove: 'Видалити {{мітку}}',\n },\n label: 'Блоки',\n },\n vi: {\n inlineBlocks: {\n create: 'Tạo {{label}}',\n edit: 'Chỉnh sửa {{nhãn}}',\n label: 'Khối nội tuyến',\n remove: 'Xóa {{nhãn}}',\n },\n label: 'Khối',\n },\n zh: {\n inlineBlocks: {\n create: '创建{{label}}',\n edit: '编辑 {{label}}',\n label: '内联块',\n remove: '删除{{label}}',\n },\n label: '块',\n },\n 'zh-TW': {\n inlineBlocks: {\n create: '創建 {{label}}',\n edit: '編輯 {{label}}',\n label: '內聯區塊',\n remove: '移除 {{label}}',\n },\n label: '區塊',\n },\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paragraph.d.ts","sourceRoot":"","sources":["../../../../../../src/features/converters/html/converter/converters/paragraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAIhD,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"paragraph.d.ts","sourceRoot":"","sources":["../../../../../../src/features/converters/html/converter/converters/paragraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAIhD,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,uBAAuB,CAmCzE,CAAA"}
|
|
@@ -25,7 +25,8 @@ export const ParagraphHTMLConverter = {
|
|
|
25
25
|
req,
|
|
26
26
|
showHiddenFields
|
|
27
27
|
});
|
|
28
|
-
|
|
28
|
+
const style = [node.format ? `text-align: ${node.format};` : '', node.indent > 0 ? `padding-inline-start: ${node.indent * 40}px;` : ''].filter(Boolean).join(' ');
|
|
29
|
+
return `<p${style ? ` style='${style}'` : ''}>${childrenText}</p>`;
|
|
29
30
|
},
|
|
30
31
|
nodeTypes: ['paragraph']
|
|
31
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paragraph.js","names":["convertLexicalNodesToHTML","ParagraphHTMLConverter","converter","converters","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","nodeTypes"],"sources":["../../../../../../src/features/converters/html/converter/converters/paragraph.ts"],"sourcesContent":["import type { SerializedParagraphNode } from 'lexical'\n\nimport type { HTMLConverter } from '../types.js'\n\nimport { convertLexicalNodesToHTML } from '../index.js'\n\nexport const ParagraphHTMLConverter: HTMLConverter<SerializedParagraphNode> = {\n async converter({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n return `<p>${childrenText}</p>`\n },\n nodeTypes: ['paragraph'],\n}\n"],"mappings":"AAIA,SAASA,yBAAyB,QAAQ;AAE1C,OAAO,MAAMC,sBAAA,GAAiE;EAC5E,MAAMC,UAAU;IACdC,UAAU;IACVC,YAAY;IACZC,KAAK;IACLC,KAAK;IACLC,IAAI;IACJC,cAAc;IACdC,MAAM;IACNC,GAAG;IACHC;EAAgB,CACjB;IACC,MAAMC,YAAA,GAAe,MAAMZ,yBAAA,CAA0B;MACnDG,UAAA;MACAC,YAAA;MACAC,KAAA;MACAC,KAAA;MACAO,YAAA,EAAcN,IAAA,CAAKO,QAAQ;MAC3BN,cAAA;MACAC,MAAA,EAAQ;QACN,GAAGF,IAAI;QACPE;MACF;MACAC,GAAA;MACAC;IACF;IACA,OAAO,
|
|
1
|
+
{"version":3,"file":"paragraph.js","names":["convertLexicalNodesToHTML","ParagraphHTMLConverter","converter","converters","currentDepth","depth","draft","node","overrideAccess","parent","req","showHiddenFields","childrenText","lexicalNodes","children","style","format","indent","filter","Boolean","join","nodeTypes"],"sources":["../../../../../../src/features/converters/html/converter/converters/paragraph.ts"],"sourcesContent":["import type { SerializedParagraphNode } from 'lexical'\n\nimport type { HTMLConverter } from '../types.js'\n\nimport { convertLexicalNodesToHTML } from '../index.js'\n\nexport const ParagraphHTMLConverter: HTMLConverter<SerializedParagraphNode> = {\n async converter({\n converters,\n currentDepth,\n depth,\n draft,\n node,\n overrideAccess,\n parent,\n req,\n showHiddenFields,\n }) {\n const childrenText = await convertLexicalNodesToHTML({\n converters,\n currentDepth,\n depth,\n draft,\n lexicalNodes: node.children,\n overrideAccess,\n parent: {\n ...node,\n parent,\n },\n req,\n showHiddenFields,\n })\n const style = [\n node.format ? `text-align: ${node.format};` : '',\n node.indent > 0 ? `padding-inline-start: ${node.indent * 40}px;` : '',\n ]\n .filter(Boolean)\n .join(' ')\n return `<p${style ? ` style='${style}'` : ''}>${childrenText}</p>`\n },\n nodeTypes: ['paragraph'],\n}\n"],"mappings":"AAIA,SAASA,yBAAyB,QAAQ;AAE1C,OAAO,MAAMC,sBAAA,GAAiE;EAC5E,MAAMC,UAAU;IACdC,UAAU;IACVC,YAAY;IACZC,KAAK;IACLC,KAAK;IACLC,IAAI;IACJC,cAAc;IACdC,MAAM;IACNC,GAAG;IACHC;EAAgB,CACjB;IACC,MAAMC,YAAA,GAAe,MAAMZ,yBAAA,CAA0B;MACnDG,UAAA;MACAC,YAAA;MACAC,KAAA;MACAC,KAAA;MACAO,YAAA,EAAcN,IAAA,CAAKO,QAAQ;MAC3BN,cAAA;MACAC,MAAA,EAAQ;QACN,GAAGF,IAAI;QACPE;MACF;MACAC,GAAA;MACAC;IACF;IACA,MAAMI,KAAA,GAAQ,CACZR,IAAA,CAAKS,MAAM,GAAG,eAAeT,IAAA,CAAKS,MAAM,GAAG,GAAG,IAC9CT,IAAA,CAAKU,MAAM,GAAG,IAAI,yBAAyBV,IAAA,CAAKU,MAAM,GAAG,OAAO,GAAG,GACpE,CACEC,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;IACR,OAAO,KAAKL,KAAA,GAAQ,WAAWA,KAAA,GAAQ,GAAG,MAAMH,YAAA,MAAkB;EACpE;EACAS,SAAA,EAAW,CAAC;AACd","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultConverters.d.ts","sourceRoot":"","sources":["../../../../../src/features/converters/html/converter/defaultConverters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAM/C,eAAO,MAAM,qBAAqB,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"defaultConverters.d.ts","sourceRoot":"","sources":["../../../../../src/features/converters/html/converter/defaultConverters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAM/C,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,GAAG,CAAC,EAIrD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultConverters.js","names":["LinebreakHTMLConverter","ParagraphHTMLConverter","TextHTMLConverter","defaultHTMLConverters"],"sources":["../../../../../src/features/converters/html/converter/defaultConverters.ts"],"sourcesContent":["import type { HTMLConverter } from './types.js'\n\nimport { LinebreakHTMLConverter } from './converters/linebreak.js'\nimport { ParagraphHTMLConverter } from './converters/paragraph.js'\nimport { TextHTMLConverter } from './converters/text.js'\n\nexport const defaultHTMLConverters: HTMLConverter[] = [\n ParagraphHTMLConverter,\n TextHTMLConverter,\n LinebreakHTMLConverter,\n]\n"],"mappings":"AAEA,SAASA,sBAAsB,QAAQ;AACvC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,iBAAiB,QAAQ;AAElC,OAAO,MAAMC,qBAAA,
|
|
1
|
+
{"version":3,"file":"defaultConverters.js","names":["LinebreakHTMLConverter","ParagraphHTMLConverter","TextHTMLConverter","defaultHTMLConverters"],"sources":["../../../../../src/features/converters/html/converter/defaultConverters.ts"],"sourcesContent":["import type { HTMLConverter } from './types.js'\n\nimport { LinebreakHTMLConverter } from './converters/linebreak.js'\nimport { ParagraphHTMLConverter } from './converters/paragraph.js'\nimport { TextHTMLConverter } from './converters/text.js'\n\nexport const defaultHTMLConverters: HTMLConverter<any>[] = [\n ParagraphHTMLConverter,\n TextHTMLConverter,\n LinebreakHTMLConverter,\n]\n"],"mappings":"AAEA,SAASA,sBAAsB,QAAQ;AACvC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,iBAAiB,QAAQ;AAElC,OAAO,MAAMC,qBAAA,GAA8C,CACzDF,sBAAA,EACAC,iBAAA,EACAF,sBAAA,CACD","ignoreList":[]}
|
package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/experimental_table/client/plugins/TableCellResizerPlugin/index.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/experimental_table/client/plugins/TableCellResizerPlugin/index.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AA0XjE,eAAO,MAAM,sBAAsB,EAAE,eAQpC,CAAA"}
|
|
@@ -230,7 +230,13 @@ function TableCellResizer({
|
|
|
230
230
|
updateDraggingDirection(direction_1);
|
|
231
231
|
document.addEventListener('mouseup', mouseUpHandler(direction_1));
|
|
232
232
|
}, [activeCell, mouseUpHandler]);
|
|
233
|
-
const
|
|
233
|
+
const [resizerStyles, setResizerStyles] = useState({
|
|
234
|
+
bottom: null,
|
|
235
|
+
left: null,
|
|
236
|
+
right: null,
|
|
237
|
+
top: null
|
|
238
|
+
});
|
|
239
|
+
useEffect(() => {
|
|
234
240
|
if (activeCell) {
|
|
235
241
|
const {
|
|
236
242
|
height: height_0,
|
|
@@ -246,44 +252,44 @@ function TableCellResizer({
|
|
|
246
252
|
backgroundColor: 'none',
|
|
247
253
|
cursor: 'row-resize',
|
|
248
254
|
height: `${zoneWidth}px`,
|
|
249
|
-
left: `${window.
|
|
250
|
-
top: `${window.
|
|
255
|
+
left: `${window.scrollX + left}px`,
|
|
256
|
+
top: `${window.scrollY + top + height_0 - zoneWidth / 2}px`,
|
|
251
257
|
width: `${width_0}px`
|
|
252
258
|
},
|
|
253
259
|
right: {
|
|
254
260
|
backgroundColor: 'none',
|
|
255
261
|
cursor: 'col-resize',
|
|
256
262
|
height: `${height_0}px`,
|
|
257
|
-
left: `${window.
|
|
258
|
-
top: `${window.
|
|
263
|
+
left: `${window.scrollX + left + width_0 - zoneWidth / 2}px`,
|
|
264
|
+
top: `${window.scrollY + top}px`,
|
|
259
265
|
width: `${zoneWidth}px`
|
|
260
266
|
}
|
|
261
267
|
};
|
|
262
268
|
const tableRect = tableRectRef.current;
|
|
263
269
|
if (draggingDirection && mouseCurrentPos && tableRect) {
|
|
264
270
|
if (isHeightChanging(draggingDirection)) {
|
|
265
|
-
styles[draggingDirection].left = `${window.
|
|
266
|
-
styles[draggingDirection].top = `${window.
|
|
271
|
+
styles[draggingDirection].left = `${window.scrollX + tableRect.left}px`;
|
|
272
|
+
styles[draggingDirection].top = `${window.scrollY + mouseCurrentPos.y / zoom_0}px`;
|
|
267
273
|
styles[draggingDirection].height = '3px';
|
|
268
274
|
styles[draggingDirection].width = `${tableRect.width}px`;
|
|
269
275
|
} else {
|
|
270
|
-
styles[draggingDirection].top = `${window.
|
|
271
|
-
styles[draggingDirection].left = `${window.
|
|
276
|
+
styles[draggingDirection].top = `${window.scrollY + tableRect.top}px`;
|
|
277
|
+
styles[draggingDirection].left = `${window.scrollX + mouseCurrentPos.x / zoom_0}px`;
|
|
272
278
|
styles[draggingDirection].width = '3px';
|
|
273
279
|
styles[draggingDirection].height = `${tableRect.height}px`;
|
|
274
280
|
}
|
|
275
281
|
styles[draggingDirection].backgroundColor = '#adf';
|
|
276
282
|
}
|
|
277
|
-
|
|
283
|
+
setResizerStyles(styles);
|
|
284
|
+
} else {
|
|
285
|
+
setResizerStyles({
|
|
286
|
+
bottom: null,
|
|
287
|
+
left: null,
|
|
288
|
+
right: null,
|
|
289
|
+
top: null
|
|
290
|
+
});
|
|
278
291
|
}
|
|
279
|
-
return {
|
|
280
|
-
bottom: null,
|
|
281
|
-
left: null,
|
|
282
|
-
right: null,
|
|
283
|
-
top: null
|
|
284
|
-
};
|
|
285
292
|
}, [activeCell, draggingDirection, mouseCurrentPos]);
|
|
286
|
-
const resizerStyles = getResizers();
|
|
287
293
|
return /*#__PURE__*/_jsx("div", {
|
|
288
294
|
ref: resizerRef,
|
|
289
295
|
children: activeCell != null && !isMouseDown && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","$computeTableMapSkipCellCheck","$getTableNodeFromLexicalNodeOrThrow","$getTableRowIndexFromTableCellNode","$isTableCellNode","$isTableRowNode","getDOMCellFromTarget","TableNode","calculateZoomLevel","$getNearestNodeFromDOMNode","React","useCallback","useEffect","useMemo","useRef","useState","createPortal","useEditorConfigContext","MIN_ROW_HEIGHT","MIN_COLUMN_WIDTH","TableCellResizer","editor","targetRef","resizerRef","tableRectRef","editorConfig","mouseStartPosRef","mouseCurrentPos","updateMouseCurrentPos","activeCell","updateActiveCell","isMouseDown","updateIsMouseDown","draggingDirection","updateDraggingDirection","resetState","current","isMouseDownOnEvent","event","buttons","registerNodeTransform","tableNode","getColWidths","numColumns","getColumnCount","columnWidth","setColWidths","Array","fill","onMouseMove","setTimeout","target","x","clientX","y","clientY","contains","cell","update","tableCellNode","elem","Error","tableElement","getElementByKey","getKey","getBoundingClientRect","onMouseDown","onMouseUp","removeRootListener","registerRootListener","rootElement","prevRootElement","removeEventListener","addEventListener","isHeightChanging","direction","updateRowHeight","heightChange","tableRowIndex","getRowSpan","tableRows","getChildren","length","tableRow","height","getHeight","undefined","rowCells","Math","min","map","getCellNodeHeight","Infinity","newHeight","max","setHeight","tag","activeEditor","domCellNode","clientHeight","getCellColumnIndex","tableMap","row","column","updateColumnWidth","widthChange","columnIndex","colWidths","width","newColWidths","newWidth","mouseUpHandler","handler","preventDefault","stopPropagation","zoom","document","toggleResize","getResizers","left","top","zoneWidth","styles","bottom","backgroundColor","cursor","window","pageXOffset","pageYOffset","right","tableRect","resizerStyles","_jsx","ref","_jsxs","Fragment","className","lexical","theme","tableCellResizer","style","TableCellResizerPlugin","$","isEditable","t0","t1"],"sources":["../../../../../../src/features/experimental_table/client/plugins/TableCellResizerPlugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { TableCellNode, TableDOMCell, TableMapType } from '@lexical/table'\nimport type { LexicalEditor } from 'lexical'\nimport type { JSX, MouseEventHandler } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n $computeTableMapSkipCellCheck,\n $getTableNodeFromLexicalNodeOrThrow,\n $getTableRowIndexFromTableCellNode,\n $isTableCellNode,\n $isTableRowNode,\n getDOMCellFromTarget,\n TableNode,\n} from '@lexical/table'\nimport { calculateZoomLevel } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode } from 'lexical'\nimport * as React from 'react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\n\ntype MousePosition = {\n x: number\n y: number\n}\n\ntype MouseDraggingDirection = 'bottom' | 'right'\n\nconst MIN_ROW_HEIGHT = 33\nconst MIN_COLUMN_WIDTH = 92\n\nfunction TableCellResizer({ editor }: { editor: LexicalEditor }): JSX.Element {\n const targetRef = useRef<HTMLElement | null>(null)\n const resizerRef = useRef<HTMLDivElement | null>(null)\n const tableRectRef = useRef<ClientRect | null>(null)\n const editorConfig = useEditorConfigContext()\n\n const mouseStartPosRef = useRef<MousePosition | null>(null)\n const [mouseCurrentPos, updateMouseCurrentPos] = useState<MousePosition | null>(null)\n\n const [activeCell, updateActiveCell] = useState<null | TableDOMCell>(null)\n const [isMouseDown, updateIsMouseDown] = useState<boolean>(false)\n const [draggingDirection, updateDraggingDirection] = useState<MouseDraggingDirection | null>(null)\n\n const resetState = useCallback(() => {\n updateActiveCell(null)\n targetRef.current = null\n updateDraggingDirection(null)\n mouseStartPosRef.current = null\n tableRectRef.current = null\n }, [])\n\n const isMouseDownOnEvent = (event: MouseEvent) => {\n return (event.buttons & 1) === 1\n }\n\n useEffect(() => {\n return editor.registerNodeTransform(TableNode, (tableNode) => {\n if (tableNode.getColWidths()) {\n return tableNode\n }\n\n const numColumns = tableNode.getColumnCount()\n const columnWidth = MIN_COLUMN_WIDTH\n\n tableNode.setColWidths(Array(numColumns).fill(columnWidth))\n return tableNode\n })\n }, [editor])\n\n useEffect(() => {\n const onMouseMove = (event: MouseEvent) => {\n setTimeout(() => {\n const target = event.target\n\n if (draggingDirection) {\n updateMouseCurrentPos({\n x: event.clientX,\n y: event.clientY,\n })\n return\n }\n updateIsMouseDown(isMouseDownOnEvent(event))\n if (resizerRef.current && resizerRef.current.contains(target as Node)) {\n return\n }\n\n if (targetRef.current !== target) {\n targetRef.current = target as HTMLElement\n const cell = getDOMCellFromTarget(target as HTMLElement)\n\n if (cell && activeCell !== cell) {\n editor.update(() => {\n const tableCellNode = $getNearestNodeFromDOMNode(cell.elem)\n\n if (!tableCellNode) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const tableElement = editor.getElementByKey(tableNode.getKey())\n\n if (!tableElement) {\n throw new Error('TableCellResizer: Table element not found.')\n }\n\n targetRef.current = target as HTMLElement\n tableRectRef.current = tableElement.getBoundingClientRect()\n updateActiveCell(cell)\n })\n } else if (cell == null) {\n resetState()\n }\n }\n }, 0)\n }\n\n const onMouseDown = (event: MouseEvent) => {\n setTimeout(() => {\n updateIsMouseDown(true)\n }, 0)\n }\n\n const onMouseUp = (event: MouseEvent) => {\n setTimeout(() => {\n updateIsMouseDown(false)\n }, 0)\n }\n\n const removeRootListener = editor.registerRootListener((rootElement, prevRootElement) => {\n prevRootElement?.removeEventListener('mousemove', onMouseMove)\n prevRootElement?.removeEventListener('mousedown', onMouseDown)\n prevRootElement?.removeEventListener('mouseup', onMouseUp)\n rootElement?.addEventListener('mousemove', onMouseMove)\n rootElement?.addEventListener('mousedown', onMouseDown)\n rootElement?.addEventListener('mouseup', onMouseUp)\n })\n\n return () => {\n removeRootListener()\n }\n }, [activeCell, draggingDirection, editor, resetState])\n\n const isHeightChanging = (direction: MouseDraggingDirection) => {\n if (direction === 'bottom') {\n return true\n }\n return false\n }\n\n const updateRowHeight = useCallback(\n (heightChange: number) => {\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n editor.update(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(activeCell.elem)\n if (!$isTableCellNode(tableCellNode)) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n\n const tableRowIndex =\n $getTableRowIndexFromTableCellNode(tableCellNode) + tableCellNode.getRowSpan() - 1\n\n const tableRows = tableNode.getChildren()\n\n if (tableRowIndex >= tableRows.length || tableRowIndex < 0) {\n throw new Error('Expected table cell to be inside of table row.')\n }\n\n const tableRow = tableRows[tableRowIndex]\n\n if (!$isTableRowNode(tableRow)) {\n throw new Error('Expected table row')\n }\n\n let height = tableRow.getHeight()\n if (height === undefined) {\n const rowCells = tableRow.getChildren<TableCellNode>()\n height = Math.min(\n ...rowCells.map((cell) => getCellNodeHeight(cell, editor) ?? Infinity),\n )\n }\n\n const newHeight = Math.max(height + heightChange, MIN_ROW_HEIGHT)\n tableRow.setHeight(newHeight)\n },\n { tag: 'skip-scroll-into-view' },\n )\n },\n [activeCell, editor],\n )\n\n const getCellNodeHeight = (\n cell: TableCellNode,\n activeEditor: LexicalEditor,\n ): number | undefined => {\n const domCellNode = activeEditor.getElementByKey(cell.getKey())\n return domCellNode?.clientHeight\n }\n\n const getCellColumnIndex = (tableCellNode: TableCellNode, tableMap: TableMapType) => {\n for (let row = 0; row < tableMap.length; row++) {\n for (let column = 0; column < tableMap[row].length; column++) {\n if (tableMap[row][column].cell === tableCellNode) {\n return column\n }\n }\n }\n }\n\n const updateColumnWidth = useCallback(\n (widthChange: number) => {\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n editor.update(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(activeCell.elem)\n if (!$isTableCellNode(tableCellNode)) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const [tableMap] = $computeTableMapSkipCellCheck(tableNode, null, null)\n const columnIndex = getCellColumnIndex(tableCellNode, tableMap)\n if (columnIndex === undefined) {\n throw new Error('TableCellResizer: Table column not found.')\n }\n\n const colWidths = tableNode.getColWidths()\n if (!colWidths) {\n return\n }\n const width = colWidths[columnIndex]\n if (width === undefined) {\n return\n }\n const newColWidths = [...colWidths]\n const newWidth = Math.max(width + widthChange, MIN_COLUMN_WIDTH)\n newColWidths[columnIndex] = newWidth\n tableNode.setColWidths(newColWidths)\n },\n { tag: 'skip-scroll-into-view' },\n )\n },\n [activeCell, editor],\n )\n\n const mouseUpHandler = useCallback(\n (direction: MouseDraggingDirection) => {\n const handler = (event: MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n if (mouseStartPosRef.current) {\n const { x, y } = mouseStartPosRef.current\n\n if (activeCell === null) {\n return\n }\n const zoom = calculateZoomLevel(event.target as Element)\n\n if (isHeightChanging(direction)) {\n const heightChange = (event.clientY - y) / zoom\n updateRowHeight(heightChange)\n } else {\n const widthChange = (event.clientX - x) / zoom\n updateColumnWidth(widthChange)\n }\n\n resetState()\n document.removeEventListener('mouseup', handler)\n }\n }\n return handler\n },\n [activeCell, resetState, updateColumnWidth, updateRowHeight],\n )\n\n const toggleResize = useCallback(\n (direction: MouseDraggingDirection): MouseEventHandler<HTMLDivElement> =>\n (event) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n mouseStartPosRef.current = {\n x: event.clientX,\n y: event.clientY,\n }\n updateMouseCurrentPos(mouseStartPosRef.current)\n updateDraggingDirection(direction)\n\n document.addEventListener('mouseup', mouseUpHandler(direction))\n },\n [activeCell, mouseUpHandler],\n )\n\n const getResizers = useCallback(() => {\n if (activeCell) {\n const { height, left, top, width } = activeCell.elem.getBoundingClientRect()\n const zoom = calculateZoomLevel(activeCell.elem)\n const zoneWidth = 10 // Pixel width of the zone where you can drag the edge\n const styles = {\n bottom: {\n backgroundColor: 'none',\n cursor: 'row-resize',\n height: `${zoneWidth}px`,\n left: `${window.pageXOffset + left}px`,\n top: `${window.pageYOffset + top + height - zoneWidth / 2}px`,\n width: `${width}px`,\n },\n right: {\n backgroundColor: 'none',\n cursor: 'col-resize',\n height: `${height}px`,\n left: `${window.pageXOffset + left + width - zoneWidth / 2}px`,\n top: `${window.pageYOffset + top}px`,\n width: `${zoneWidth}px`,\n },\n }\n\n const tableRect = tableRectRef.current\n\n if (draggingDirection && mouseCurrentPos && tableRect) {\n if (isHeightChanging(draggingDirection)) {\n styles[draggingDirection].left = `${window.pageXOffset + tableRect.left}px`\n styles[draggingDirection].top = `${window.pageYOffset + mouseCurrentPos.y / zoom}px`\n styles[draggingDirection].height = '3px'\n styles[draggingDirection].width = `${tableRect.width}px`\n } else {\n styles[draggingDirection].top = `${window.pageYOffset + tableRect.top}px`\n styles[draggingDirection].left = `${window.pageXOffset + mouseCurrentPos.x / zoom}px`\n styles[draggingDirection].width = '3px'\n styles[draggingDirection].height = `${tableRect.height}px`\n }\n\n styles[draggingDirection].backgroundColor = '#adf'\n }\n\n return styles\n }\n\n return {\n bottom: null,\n left: null,\n right: null,\n top: null,\n }\n }, [activeCell, draggingDirection, mouseCurrentPos])\n\n const resizerStyles = getResizers()\n\n return (\n <div ref={resizerRef}>\n {activeCell != null && !isMouseDown && (\n <React.Fragment>\n <div\n className={`${editorConfig.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`}\n onMouseDown={toggleResize('right')}\n style={resizerStyles.right || undefined}\n />\n <div\n className={`${editorConfig.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`}\n onMouseDown={toggleResize('bottom')}\n style={resizerStyles.bottom || undefined}\n />\n </React.Fragment>\n )}\n </div>\n )\n}\n\nexport const TableCellResizerPlugin: PluginComponent = () => {\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n return useMemo(\n () => (isEditable ? createPortal(<TableCellResizer editor={editor} />, document.body) : null),\n [editor, isEditable],\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","$computeTableMapSkipCellCheck","$getTableNodeFromLexicalNodeOrThrow","$getTableRowIndexFromTableCellNode","$isTableCellNode","$isTableRowNode","getDOMCellFromTarget","TableNode","calculateZoomLevel","$getNearestNodeFromDOMNode","React","useCallback","useEffect","useMemo","useRef","useState","createPortal","useEditorConfigContext","MIN_ROW_HEIGHT","MIN_COLUMN_WIDTH","TableCellResizer","editor","targetRef","resizerRef","tableRectRef","editorConfig","mouseStartPosRef","mouseCurrentPos","updateMouseCurrentPos","activeCell","updateActiveCell","isMouseDown","updateIsMouseDown","draggingDirection","updateDraggingDirection","resetState","current","isMouseDownOnEvent","event","buttons","registerNodeTransform","tableNode","getColWidths","numColumns","getColumnCount","columnWidth","setColWidths","Array","fill","onMouseMove","setTimeout","target","x","clientX","y","clientY","contains","cell","update","tableCellNode","elem","Error","tableElement","getElementByKey","getKey","getBoundingClientRect","onMouseDown","onMouseUp","removeRootListener","registerRootListener","rootElement","prevRootElement","removeEventListener","addEventListener","isHeightChanging","direction","updateRowHeight","heightChange","tableRowIndex","getRowSpan","tableRows","getChildren","length","tableRow","height","getHeight","undefined","rowCells","Math","min","map","getCellNodeHeight","Infinity","newHeight","max","setHeight","tag","activeEditor","domCellNode","clientHeight","getCellColumnIndex","tableMap","row","column","updateColumnWidth","widthChange","columnIndex","colWidths","width","newColWidths","newWidth","mouseUpHandler","handler","preventDefault","stopPropagation","zoom","document","toggleResize","resizerStyles","setResizerStyles","bottom","left","right","top","zoneWidth","styles","backgroundColor","cursor","window","scrollX","scrollY","tableRect","_jsx","ref","_jsxs","Fragment","className","lexical","theme","tableCellResizer","style","TableCellResizerPlugin","$","isEditable","t0","t1"],"sources":["../../../../../../src/features/experimental_table/client/plugins/TableCellResizerPlugin/index.tsx"],"sourcesContent":["'use client'\n\nimport type { TableCellNode, TableDOMCell, TableMapType } from '@lexical/table'\nimport type { LexicalEditor } from 'lexical'\nimport type { JSX, MouseEventHandler } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport {\n $computeTableMapSkipCellCheck,\n $getTableNodeFromLexicalNodeOrThrow,\n $getTableRowIndexFromTableCellNode,\n $isTableCellNode,\n $isTableRowNode,\n getDOMCellFromTarget,\n TableNode,\n} from '@lexical/table'\nimport { calculateZoomLevel } from '@lexical/utils'\nimport { $getNearestNodeFromDOMNode } from 'lexical'\nimport * as React from 'react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponent } from '../../../../typesClient.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\n\ntype MousePosition = {\n x: number\n y: number\n}\n\ntype MouseDraggingDirection = 'bottom' | 'right'\n\nconst MIN_ROW_HEIGHT = 33\nconst MIN_COLUMN_WIDTH = 92\n\nfunction TableCellResizer({ editor }: { editor: LexicalEditor }): JSX.Element {\n const targetRef = useRef<HTMLElement | null>(null)\n const resizerRef = useRef<HTMLDivElement | null>(null)\n const tableRectRef = useRef<ClientRect | null>(null)\n const editorConfig = useEditorConfigContext()\n\n const mouseStartPosRef = useRef<MousePosition | null>(null)\n const [mouseCurrentPos, updateMouseCurrentPos] = useState<MousePosition | null>(null)\n\n const [activeCell, updateActiveCell] = useState<null | TableDOMCell>(null)\n const [isMouseDown, updateIsMouseDown] = useState<boolean>(false)\n const [draggingDirection, updateDraggingDirection] = useState<MouseDraggingDirection | null>(null)\n\n const resetState = useCallback(() => {\n updateActiveCell(null)\n targetRef.current = null\n updateDraggingDirection(null)\n mouseStartPosRef.current = null\n tableRectRef.current = null\n }, [])\n\n const isMouseDownOnEvent = (event: MouseEvent) => {\n return (event.buttons & 1) === 1\n }\n\n useEffect(() => {\n return editor.registerNodeTransform(TableNode, (tableNode) => {\n if (tableNode.getColWidths()) {\n return tableNode\n }\n\n const numColumns = tableNode.getColumnCount()\n const columnWidth = MIN_COLUMN_WIDTH\n\n tableNode.setColWidths(Array(numColumns).fill(columnWidth))\n return tableNode\n })\n }, [editor])\n\n useEffect(() => {\n const onMouseMove = (event: MouseEvent) => {\n setTimeout(() => {\n const target = event.target\n\n if (draggingDirection) {\n updateMouseCurrentPos({\n x: event.clientX,\n y: event.clientY,\n })\n return\n }\n updateIsMouseDown(isMouseDownOnEvent(event))\n if (resizerRef.current && resizerRef.current.contains(target as Node)) {\n return\n }\n\n if (targetRef.current !== target) {\n targetRef.current = target as HTMLElement\n const cell = getDOMCellFromTarget(target as HTMLElement)\n\n if (cell && activeCell !== cell) {\n editor.update(() => {\n const tableCellNode = $getNearestNodeFromDOMNode(cell.elem)\n\n if (!tableCellNode) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const tableElement = editor.getElementByKey(tableNode.getKey())\n\n if (!tableElement) {\n throw new Error('TableCellResizer: Table element not found.')\n }\n\n targetRef.current = target as HTMLElement\n tableRectRef.current = tableElement.getBoundingClientRect()\n updateActiveCell(cell)\n })\n } else if (cell == null) {\n resetState()\n }\n }\n }, 0)\n }\n\n const onMouseDown = (event: MouseEvent) => {\n setTimeout(() => {\n updateIsMouseDown(true)\n }, 0)\n }\n\n const onMouseUp = (event: MouseEvent) => {\n setTimeout(() => {\n updateIsMouseDown(false)\n }, 0)\n }\n\n const removeRootListener = editor.registerRootListener((rootElement, prevRootElement) => {\n prevRootElement?.removeEventListener('mousemove', onMouseMove)\n prevRootElement?.removeEventListener('mousedown', onMouseDown)\n prevRootElement?.removeEventListener('mouseup', onMouseUp)\n rootElement?.addEventListener('mousemove', onMouseMove)\n rootElement?.addEventListener('mousedown', onMouseDown)\n rootElement?.addEventListener('mouseup', onMouseUp)\n })\n\n return () => {\n removeRootListener()\n }\n }, [activeCell, draggingDirection, editor, resetState])\n\n const isHeightChanging = (direction: MouseDraggingDirection) => {\n if (direction === 'bottom') {\n return true\n }\n return false\n }\n\n const updateRowHeight = useCallback(\n (heightChange: number) => {\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n editor.update(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(activeCell.elem)\n if (!$isTableCellNode(tableCellNode)) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n\n const tableRowIndex =\n $getTableRowIndexFromTableCellNode(tableCellNode) + tableCellNode.getRowSpan() - 1\n\n const tableRows = tableNode.getChildren()\n\n if (tableRowIndex >= tableRows.length || tableRowIndex < 0) {\n throw new Error('Expected table cell to be inside of table row.')\n }\n\n const tableRow = tableRows[tableRowIndex]\n\n if (!$isTableRowNode(tableRow)) {\n throw new Error('Expected table row')\n }\n\n let height = tableRow.getHeight()\n if (height === undefined) {\n const rowCells = tableRow.getChildren<TableCellNode>()\n height = Math.min(\n ...rowCells.map((cell) => getCellNodeHeight(cell, editor) ?? Infinity),\n )\n }\n\n const newHeight = Math.max(height + heightChange, MIN_ROW_HEIGHT)\n tableRow.setHeight(newHeight)\n },\n { tag: 'skip-scroll-into-view' },\n )\n },\n [activeCell, editor],\n )\n\n const getCellNodeHeight = (\n cell: TableCellNode,\n activeEditor: LexicalEditor,\n ): number | undefined => {\n const domCellNode = activeEditor.getElementByKey(cell.getKey())\n return domCellNode?.clientHeight\n }\n\n const getCellColumnIndex = (tableCellNode: TableCellNode, tableMap: TableMapType) => {\n for (let row = 0; row < tableMap.length; row++) {\n for (let column = 0; column < tableMap[row].length; column++) {\n if (tableMap[row][column].cell === tableCellNode) {\n return column\n }\n }\n }\n }\n\n const updateColumnWidth = useCallback(\n (widthChange: number) => {\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n editor.update(\n () => {\n const tableCellNode = $getNearestNodeFromDOMNode(activeCell.elem)\n if (!$isTableCellNode(tableCellNode)) {\n throw new Error('TableCellResizer: Table cell node not found.')\n }\n\n const tableNode = $getTableNodeFromLexicalNodeOrThrow(tableCellNode)\n const [tableMap] = $computeTableMapSkipCellCheck(tableNode, null, null)\n const columnIndex = getCellColumnIndex(tableCellNode, tableMap)\n if (columnIndex === undefined) {\n throw new Error('TableCellResizer: Table column not found.')\n }\n\n const colWidths = tableNode.getColWidths()\n if (!colWidths) {\n return\n }\n const width = colWidths[columnIndex]\n if (width === undefined) {\n return\n }\n const newColWidths = [...colWidths]\n const newWidth = Math.max(width + widthChange, MIN_COLUMN_WIDTH)\n newColWidths[columnIndex] = newWidth\n tableNode.setColWidths(newColWidths)\n },\n { tag: 'skip-scroll-into-view' },\n )\n },\n [activeCell, editor],\n )\n\n const mouseUpHandler = useCallback(\n (direction: MouseDraggingDirection) => {\n const handler = (event: MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n if (mouseStartPosRef.current) {\n const { x, y } = mouseStartPosRef.current\n\n if (activeCell === null) {\n return\n }\n const zoom = calculateZoomLevel(event.target as Element)\n\n if (isHeightChanging(direction)) {\n const heightChange = (event.clientY - y) / zoom\n updateRowHeight(heightChange)\n } else {\n const widthChange = (event.clientX - x) / zoom\n updateColumnWidth(widthChange)\n }\n\n resetState()\n document.removeEventListener('mouseup', handler)\n }\n }\n return handler\n },\n [activeCell, resetState, updateColumnWidth, updateRowHeight],\n )\n\n const toggleResize = useCallback(\n (direction: MouseDraggingDirection): MouseEventHandler<HTMLDivElement> =>\n (event) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (!activeCell) {\n throw new Error('TableCellResizer: Expected active cell.')\n }\n\n mouseStartPosRef.current = {\n x: event.clientX,\n y: event.clientY,\n }\n updateMouseCurrentPos(mouseStartPosRef.current)\n updateDraggingDirection(direction)\n\n document.addEventListener('mouseup', mouseUpHandler(direction))\n },\n [activeCell, mouseUpHandler],\n )\n\n const [resizerStyles, setResizerStyles] = useState<{\n bottom?: null | React.CSSProperties\n left?: null | React.CSSProperties\n right?: null | React.CSSProperties\n top?: null | React.CSSProperties\n }>({\n bottom: null,\n left: null,\n right: null,\n top: null,\n })\n\n useEffect(() => {\n if (activeCell) {\n const { height, left, top, width } = activeCell.elem.getBoundingClientRect()\n const zoom = calculateZoomLevel(activeCell.elem)\n const zoneWidth = 10 // Pixel width of the zone where you can drag the edge\n const styles = {\n bottom: {\n backgroundColor: 'none',\n cursor: 'row-resize',\n height: `${zoneWidth}px`,\n left: `${window.scrollX + left}px`,\n top: `${window.scrollY + top + height - zoneWidth / 2}px`,\n width: `${width}px`,\n },\n right: {\n backgroundColor: 'none',\n cursor: 'col-resize',\n height: `${height}px`,\n left: `${window.scrollX + left + width - zoneWidth / 2}px`,\n top: `${window.scrollY + top}px`,\n width: `${zoneWidth}px`,\n },\n }\n\n const tableRect = tableRectRef.current\n\n if (draggingDirection && mouseCurrentPos && tableRect) {\n if (isHeightChanging(draggingDirection)) {\n styles[draggingDirection].left = `${window.scrollX + tableRect.left}px`\n styles[draggingDirection].top = `${window.scrollY + mouseCurrentPos.y / zoom}px`\n styles[draggingDirection].height = '3px'\n styles[draggingDirection].width = `${tableRect.width}px`\n } else {\n styles[draggingDirection].top = `${window.scrollY + tableRect.top}px`\n styles[draggingDirection].left = `${window.scrollX + mouseCurrentPos.x / zoom}px`\n styles[draggingDirection].width = '3px'\n styles[draggingDirection].height = `${tableRect.height}px`\n }\n\n styles[draggingDirection].backgroundColor = '#adf'\n }\n\n setResizerStyles(styles)\n } else {\n setResizerStyles({\n bottom: null,\n left: null,\n right: null,\n top: null,\n })\n }\n }, [activeCell, draggingDirection, mouseCurrentPos])\n\n return (\n <div ref={resizerRef}>\n {activeCell != null && !isMouseDown && (\n <React.Fragment>\n <div\n className={`${editorConfig.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`}\n onMouseDown={toggleResize('right')}\n style={resizerStyles.right || undefined}\n />\n <div\n className={`${editorConfig.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`}\n onMouseDown={toggleResize('bottom')}\n style={resizerStyles.bottom || undefined}\n />\n </React.Fragment>\n )}\n </div>\n )\n}\n\nexport const TableCellResizerPlugin: PluginComponent = () => {\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n return useMemo(\n () => (isEditable ? createPortal(<TableCellResizer editor={editor} />, document.body) : null),\n [editor, isEditable],\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAmP9B,wBAAgB,uBAAuB,CAAC,EACtC,UAA0B,GAC3B,EAAE;IACD,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,IAAI,GAAG,KAAK,CAAC,WAAW,CAO3B"}
|
|
@@ -174,13 +174,15 @@ function TableHoverActionsContainer({
|
|
|
174
174
|
onClick: () => insertAction(true),
|
|
175
175
|
style: {
|
|
176
176
|
...position
|
|
177
|
-
}
|
|
177
|
+
},
|
|
178
|
+
type: "button"
|
|
178
179
|
}), isShownColumn && /*#__PURE__*/_jsx("button", {
|
|
179
180
|
className: editorConfig.editorConfig.lexical.theme.tableAddColumns,
|
|
180
181
|
onClick: () => insertAction(false),
|
|
181
182
|
style: {
|
|
182
183
|
...position
|
|
183
|
-
}
|
|
184
|
+
},
|
|
185
|
+
type: "button"
|
|
184
186
|
})]
|
|
185
187
|
});
|
|
186
188
|
}
|