@payloadcms/richtext-lexical 3.59.0-internal.cb85185 → 3.59.0-internal.cf8cc72
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-EHRBYNHO.js +2 -0
- package/dist/exports/client/Field-EHRBYNHO.js.map +7 -0
- package/dist/exports/client/RelationshipComponent-APF3CN47.js +2 -0
- package/dist/exports/client/RelationshipComponent-APF3CN47.js.map +7 -0
- package/dist/exports/client/bundled.css +1 -1
- package/dist/exports/client/{chunk-TLQLXR6Q.js → chunk-2Y72RT72.js} +2 -2
- package/dist/exports/client/chunk-3BY5IZJD.js +2 -0
- package/dist/exports/client/chunk-3BY5IZJD.js.map +7 -0
- package/dist/exports/client/chunk-CYLMY5ZJ.js +2 -0
- package/dist/exports/client/chunk-CYLMY5ZJ.js.map +7 -0
- package/dist/exports/client/component-VDJI45F2.js +2 -0
- package/dist/exports/client/component-VDJI45F2.js.map +7 -0
- package/dist/exports/client/componentInline-7TPI7ZBC.js +2 -0
- package/dist/exports/client/index.d.ts +0 -3
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +10 -35
- package/dist/exports/client/index.js.map +4 -4
- 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/blocks/client/component/BlockContent.d.ts +27 -52
- package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
- package/dist/features/blocks/client/component/BlockContent.js +51 -48
- package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
- package/dist/features/blocks/client/component/components/BlockCollapsible.d.ts +9 -2
- package/dist/features/blocks/client/component/components/BlockCollapsible.d.ts.map +1 -1
- package/dist/features/blocks/client/component/components/BlockCollapsible.js +25 -7
- package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -1
- package/dist/features/blocks/client/component/index.d.ts.map +1 -1
- package/dist/features/blocks/client/component/index.js +56 -71
- package/dist/features/blocks/client/component/index.js.map +1 -1
- package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
- package/dist/features/blocks/client/componentInline/index.js +11 -13
- 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 +0 -5
- package/dist/features/blocks/client/index.js.map +1 -1
- package/dist/features/blocks/client/markdownTransformer.d.ts +17 -0
- package/dist/features/blocks/client/markdownTransformer.d.ts.map +1 -0
- package/dist/features/blocks/client/markdownTransformer.js +144 -0
- package/dist/features/blocks/client/markdownTransformer.js.map +1 -0
- package/dist/features/blocks/server/i18n.d.ts.map +1 -1
- package/dist/features/blocks/server/i18n.js +47 -38
- package/dist/features/blocks/server/i18n.js.map +1 -1
- package/dist/features/blocks/server/index.js +1 -1
- package/dist/features/blocks/server/index.js.map +1 -1
- package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.d.ts.map +1 -0
- package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.js.map +1 -0
- package/dist/features/blocks/server/markdownTransformer.d.ts +22 -0
- package/dist/features/blocks/server/markdownTransformer.d.ts.map +1 -0
- package/dist/features/blocks/server/{markdown/markdownTransformer.js → markdownTransformer.js} +48 -6
- package/dist/features/blocks/server/markdownTransformer.js.map +1 -0
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +3 -5
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.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/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/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +1 -3
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.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/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/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/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 +9 -5
- package/dist/features/relationship/client/components/RelationshipComponent.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/textState/i18n.d.ts.map +1 -1
- package/dist/features/textState/i18n.js +3 -0
- package/dist/features/textState/i18n.js.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.js +1 -7
- package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
- package/dist/features/toolbars/inline/client/Toolbar/index.js +1 -3
- package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
- package/dist/features/upload/client/component/index.d.ts.map +1 -1
- package/dist/features/upload/client/component/index.js +5 -6
- package/dist/features/upload/client/component/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/field/bundled.css +1 -1
- package/dist/field/rscEntry.d.ts.map +1 -1
- package/dist/field/rscEntry.js +0 -2
- package/dist/field/rscEntry.js.map +1 -1
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +6 -0
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/lexical/LexicalEditor.d.ts.map +1 -1
- package/dist/lexical/LexicalEditor.js +8 -10
- package/dist/lexical/LexicalEditor.js.map +1 -1
- package/dist/lexical/ui/icons/CodeBlock/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/CodeBlock/index.js +15 -10
- package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
- package/dist/utilities/buildInitialState.d.ts +0 -1
- package/dist/utilities/buildInitialState.d.ts.map +1 -1
- package/dist/utilities/buildInitialState.js +0 -1
- package/dist/utilities/buildInitialState.js.map +1 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.js +3 -7
- package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
- package/dist/utilities/jsx/collectTopLevelJSXInLines.js +2 -2
- package/dist/utilities/jsx/collectTopLevelJSXInLines.js.map +1 -1
- package/package.json +6 -6
- package/dist/exports/client/Field-RQHCQRLV.js +0 -2
- package/dist/exports/client/Field-RQHCQRLV.js.map +0 -7
- package/dist/exports/client/RelationshipComponent-TSIENULZ.js +0 -2
- package/dist/exports/client/RelationshipComponent-TSIENULZ.js.map +0 -7
- package/dist/exports/client/chunk-BQCXN3B4.js +0 -2
- package/dist/exports/client/chunk-BQCXN3B4.js.map +0 -7
- package/dist/exports/client/chunk-XNERFY6G.js +0 -2
- package/dist/exports/client/chunk-XNERFY6G.js.map +0 -7
- package/dist/exports/client/component-CYFKY3IL.js +0 -2
- package/dist/exports/client/component-CYFKY3IL.js.map +0 -7
- package/dist/exports/client/componentInline-NGTRUSGB.js +0 -2
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts +0 -6
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts.map +0 -1
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +0 -24
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +0 -1
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts +0 -6
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts.map +0 -1
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +0 -20
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +0 -1
- package/dist/features/blocks/client/markdown/markdownTransformer.d.ts +0 -12
- package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +0 -1
- package/dist/features/blocks/client/markdown/markdownTransformer.js +0 -348
- package/dist/features/blocks/client/markdown/markdownTransformer.js.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts +0 -5
- package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Block.js +0 -156
- package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Code.d.ts +0 -61
- package/dist/features/blocks/premade/CodeBlock/Component/Code.d.ts.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Code.js +0 -99
- package/dist/features/blocks/premade/CodeBlock/Component/Code.js.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.d.ts +0 -4
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.d.ts.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +0 -17
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.d.ts +0 -4
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.d.ts.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +0 -26
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/converter.d.ts +0 -7
- package/dist/features/blocks/premade/CodeBlock/converter.d.ts.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/converter.js +0 -46
- package/dist/features/blocks/premade/CodeBlock/converter.js.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/converterClient.d.ts +0 -2
- package/dist/features/blocks/premade/CodeBlock/converterClient.d.ts.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/converterClient.js +0 -4
- package/dist/features/blocks/premade/CodeBlock/converterClient.js.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/index.d.ts +0 -7
- package/dist/features/blocks/premade/CodeBlock/index.d.ts.map +0 -1
- package/dist/features/blocks/premade/CodeBlock/index.js +0 -52
- package/dist/features/blocks/premade/CodeBlock/index.js.map +0 -1
- package/dist/features/blocks/server/markdown/getLexicalToMarkdown.d.ts +0 -6
- package/dist/features/blocks/server/markdown/getLexicalToMarkdown.d.ts.map +0 -1
- package/dist/features/blocks/server/markdown/getLexicalToMarkdown.js +0 -27
- package/dist/features/blocks/server/markdown/getLexicalToMarkdown.js.map +0 -1
- package/dist/features/blocks/server/markdown/getMarkdownToLexical.d.ts +0 -7
- package/dist/features/blocks/server/markdown/getMarkdownToLexical.d.ts.map +0 -1
- package/dist/features/blocks/server/markdown/getMarkdownToLexical.js +0 -22
- package/dist/features/blocks/server/markdown/getMarkdownToLexical.js.map +0 -1
- package/dist/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.d.ts.map +0 -1
- package/dist/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.js.map +0 -1
- package/dist/features/blocks/server/markdown/markdownTransformer.d.ts +0 -15
- package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +0 -1
- package/dist/features/blocks/server/markdown/markdownTransformer.js.map +0 -1
- package/dist/lexical/ui/icons/Collapse/index.d.ts +0 -3
- package/dist/lexical/ui/icons/Collapse/index.d.ts.map +0 -1
- package/dist/lexical/ui/icons/Collapse/index.js +0 -18
- package/dist/lexical/ui/icons/Collapse/index.js.map +0 -1
- /package/dist/exports/client/{chunk-TLQLXR6Q.js.map → chunk-2Y72RT72.js.map} +0 -0
- /package/dist/exports/client/{componentInline-NGTRUSGB.js.map → componentInline-7TPI7ZBC.js.map} +0 -0
- /package/dist/features/blocks/server/{markdown/linesFromMatchToContentAndPropsString.d.ts → linesFromMatchToContentAndPropsString.d.ts} +0 -0
- /package/dist/features/blocks/server/{markdown/linesFromMatchToContentAndPropsString.js → linesFromMatchToContentAndPropsString.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","names":["i18n","ar","label","label2","az","bg","cs","da","de","en","es","et","fa","fr","he","hr","hu","it","ja","ko","my","nb","nl","pl","pt","ro","rs","ru","sk","sl","sv","ta","th","tr","uk","vi","zh"],"sources":["../../../../src/features/paragraph/server/i18n.ts"],"sourcesContent":["import type { GenericLanguages } from '@payloadcms/translations'\n\nexport const i18n: Partial<GenericLanguages> = {\n ar: {\n label: 'فقرة',\n label2: 'نص عادي',\n },\n az: {\n label: 'Paraqraf',\n label2: 'Normal Mətn',\n },\n bg: {\n label: 'Параграф',\n label2: 'Нормален текст',\n },\n cs: {\n label: 'Odstavec',\n label2: 'Normální text',\n },\n da: {\n label: 'Afsnit',\n label2: 'Normal tekst',\n },\n de: {\n label: 'Paragraph',\n label2: 'Normaler Text',\n },\n en: {\n label: 'Paragraph',\n label2: 'Normal Text',\n },\n es: {\n label: 'Párrafo',\n label2: 'Texto normal',\n },\n et: {\n label: 'Paragrahv',\n label2: 'Tavaline tekst',\n },\n fa: {\n label: 'پاراگراف',\n label2: 'متن عادی',\n },\n fr: {\n label: 'Paragraphe',\n label2: 'Texte normal',\n },\n he: {\n label: 'פסקה',\n label2: 'טקסט רגיל',\n },\n hr: {\n label: 'Odlomak',\n label2: 'Normalan tekst',\n },\n hu: {\n label: 'Bekezdés',\n label2: 'Normál szöveg',\n },\n it: {\n label: 'Paragrafo',\n label2: 'Testo normale',\n },\n ja: {\n label: '段落',\n label2: '通常のテキスト',\n },\n ko: {\n label: '문단',\n label2: '일반 텍스트',\n },\n my: {\n label: 'Perenggan',\n label2: 'ပုံမှန်စာသား',\n },\n nb: {\n label: 'Avsnitt',\n label2: 'Normal tekst',\n },\n nl: {\n label: 'Paragraaf',\n label2: 'Normale tekst',\n },\n pl: {\n label: 'Akapit',\n label2: 'Normalny tekst',\n },\n pt: {\n label: 'Parágrafo',\n label2: 'Texto Normal',\n },\n ro: {\n label: 'Paragraf',\n label2: 'Text normal',\n },\n rs: {\n label: 'Параграф',\n label2: 'Oбичан текст',\n },\n 'rs-latin': {\n label: 'Paragraf',\n label2: 'Običan tekst',\n },\n ru: {\n label: 'Параграф',\n label2: 'Нормальный текст',\n },\n sk: {\n label: 'Odsek',\n label2: 'Normálny text',\n },\n sl: {\n label: 'Odstavek',\n label2: 'Navaden besedilo',\n },\n sv: {\n label: 'Stycke',\n label2: 'Normal Text',\n },\n ta: {\n label: 'பத்தி',\n label2: 'சாதாரண உரை',\n },\n th: {\n label: 'ย่อหน้า',\n label2: 'ข้อความธรรมดา',\n },\n tr: {\n label: 'Paragraf',\n label2: 'Normal Metin',\n },\n uk: {\n label: 'Абзац',\n label2: 'Звичайний текст',\n },\n vi: {\n label: 'Đoạn văn',\n label2: 'Văn bản bình thường',\n },\n zh: {\n label: '段落',\n label2: '正常文本',\n },\n 'zh-TW': {\n label: '段落',\n label2: '正常文本',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,IAAA,GAAkC;EAC7CC,EAAA,EAAI;IACFC,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAC,EAAA,EAAI;IACFF,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAE,EAAA,EAAI;IACFH,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAG,EAAA,EAAI;IACFJ,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAI,EAAA,EAAI;IACFL,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAK,EAAA,EAAI;IACFN,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAM,EAAA,EAAI;IACFP,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAO,EAAA,EAAI;IACFR,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAQ,EAAA,EAAI;IACFT,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAS,EAAA,EAAI;IACFV,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAU,EAAA,EAAI;IACFX,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAW,EAAA,EAAI;IACFZ,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAY,EAAA,EAAI;IACFb,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAa,EAAA,EAAI;IACFd,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAc,EAAA,EAAI;IACFf,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAe,EAAA,EAAI;IACFhB,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAgB,EAAA,EAAI;IACFjB,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAiB,EAAA,EAAI;IACFlB,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAkB,EAAA,EAAI;IACFnB,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAmB,EAAA,EAAI;IACFpB,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAoB,EAAA,EAAI;IACFrB,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAqB,EAAA,EAAI;IACFtB,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAsB,EAAA,EAAI;IACFvB,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;EACAuB,EAAA,EAAI;IACFxB,KAAA,EAAO;IACPC,MAAA,EAAQ;EACV;
|
|
1
|
+
{"version":3,"file":"i18n.js","names":["i18n","ar","label","label2","az","bg","cs","da","de","en","es","et","fa","fr","he","hr","hu","is","it","ja","ko","my","nb","nl","pl","pt","ro","rs","ru","sk","sl","sv","ta","th","tr","uk","vi","zh"],"sources":["../../../../src/features/paragraph/server/i18n.ts"],"sourcesContent":["import type { GenericLanguages } from '@payloadcms/translations'\n\nexport const i18n: Partial<GenericLanguages> = {\n ar: {\n label: 'فقرة',\n label2: 'نص عادي',\n },\n az: {\n label: 'Paraqraf',\n label2: 'Normal Mətn',\n },\n bg: {\n label: 'Параграф',\n label2: 'Нормален текст',\n },\n cs: {\n label: 'Odstavec',\n label2: 'Normální text',\n },\n da: {\n label: 'Afsnit',\n label2: 'Normal tekst',\n },\n de: {\n label: 'Paragraph',\n label2: 'Normaler Text',\n },\n en: {\n label: 'Paragraph',\n label2: 'Normal Text',\n },\n es: {\n label: 'Párrafo',\n label2: 'Texto normal',\n },\n et: {\n label: 'Paragrahv',\n label2: 'Tavaline tekst',\n },\n fa: {\n label: 'پاراگراف',\n label2: 'متن عادی',\n },\n fr: {\n label: 'Paragraphe',\n label2: 'Texte normal',\n },\n he: {\n label: 'פסקה',\n label2: 'טקסט רגיל',\n },\n hr: {\n label: 'Odlomak',\n label2: 'Normalan tekst',\n },\n hu: {\n label: 'Bekezdés',\n label2: 'Normál szöveg',\n },\n is: {\n label: 'Málsgrein',\n label2: 'Venjulegur texti',\n },\n it: {\n label: 'Paragrafo',\n label2: 'Testo normale',\n },\n ja: {\n label: '段落',\n label2: '通常のテキスト',\n },\n ko: {\n label: '문단',\n label2: '일반 텍스트',\n },\n my: {\n label: 'Perenggan',\n label2: 'ပုံမှန်စာသား',\n },\n nb: {\n label: 'Avsnitt',\n label2: 'Normal tekst',\n },\n nl: {\n label: 'Paragraaf',\n label2: 'Normale tekst',\n },\n pl: {\n label: 'Akapit',\n label2: 'Normalny tekst',\n },\n pt: {\n label: 'Parágrafo',\n label2: 'Texto Normal',\n },\n ro: {\n label: 'Paragraf',\n label2: 'Text normal',\n },\n rs: {\n label: 'Параграф',\n label2: 'Oбичан текст',\n },\n 'rs-latin': {\n label: 'Paragraf',\n label2: 'Običan tekst',\n },\n ru: {\n label: 'Параграф',\n label2: 'Нормальный текст',\n },\n sk: {\n label: 'Odsek',\n label2: 'Normálny text',\n },\n sl: {\n label: 'Odstavek',\n label2: 'Navaden besedilo',\n },\n sv: {\n label: 'Stycke',\n label2: 'Normal Text',\n },\n ta: {\n label: 'பத்தி',\n label2: 'சாதாரண உரை',\n },\n th: {\n label: 'ย่อหน้า',\n label2: 'ข้อความธรรมดา',\n },\n tr: {\n label: 'Paragraf',\n label2: 'Normal Metin',\n },\n uk: {\n label: 'Абзац',\n label2: 'Звичайний текст',\n },\n vi: {\n label: 'Đoạn văn',\n label2: 'Văn bản bình thường',\n },\n zh: {\n label: '段落',\n label2: '正常文本',\n },\n 'zh-TW': {\n label: '段落',\n label2: '正常文本',\n },\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipComponent.d.ts","sourceRoot":"","sources":["../../../../../src/features/relationship/client/components/RelationshipComponent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"RelationshipComponent.d.ts","sourceRoot":"","sources":["../../../../../src/features/relationship/client/components/RelationshipComponent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAMhD,OAAO,KAAoD,MAAM,OAAO,CAAA;AAExE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAK9E,OAAO,cAAc,CAAA;AAQrB,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,gBAAgB,CAAA;IACtB,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAgHD,eAAO,MAAM,qBAAqB,UAAW,KAAK,KAAG,KAAK,CAAC,SAE1D,CAAA"}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
|
|
5
|
-
import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
|
|
6
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
7
6
|
import { Button, useConfig, usePayloadAPI, useTranslation } from '@payloadcms/ui';
|
|
8
7
|
import { $getNodeByKey } from 'lexical';
|
|
9
8
|
import React, { useCallback, useReducer, useRef, useState } from 'react';
|
|
9
|
+
import { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js';
|
|
10
10
|
import { useLexicalDocumentDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDocumentDrawer.js';
|
|
11
11
|
import { INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND } from '../drawer/commands.js';
|
|
12
12
|
const baseClass = 'lexical-relationship';
|
|
@@ -26,7 +26,11 @@ const Component = props => {
|
|
|
26
26
|
}
|
|
27
27
|
const relationshipElemRef = useRef(null);
|
|
28
28
|
const [editor] = useLexicalComposerContext();
|
|
29
|
-
const
|
|
29
|
+
const {
|
|
30
|
+
fieldProps: {
|
|
31
|
+
readOnly
|
|
32
|
+
}
|
|
33
|
+
} = useEditorConfigContext();
|
|
30
34
|
const {
|
|
31
35
|
config: {
|
|
32
36
|
routes: {
|
|
@@ -90,12 +94,12 @@ const Component = props => {
|
|
|
90
94
|
children: data ? data[relatedCollection?.admin?.useAsTitle || 'id'] : value
|
|
91
95
|
})
|
|
92
96
|
})]
|
|
93
|
-
}), isEditable && /*#__PURE__*/_jsxs("div", {
|
|
97
|
+
}), editor.isEditable() && /*#__PURE__*/_jsxs("div", {
|
|
94
98
|
className: `${baseClass}__actions`,
|
|
95
99
|
children: [/*#__PURE__*/_jsx(Button, {
|
|
96
100
|
buttonStyle: "icon-label",
|
|
97
101
|
className: `${baseClass}__swapButton`,
|
|
98
|
-
disabled:
|
|
102
|
+
disabled: readOnly,
|
|
99
103
|
el: "button",
|
|
100
104
|
icon: "swap",
|
|
101
105
|
onClick: () => {
|
|
@@ -112,7 +116,7 @@ const Component = props => {
|
|
|
112
116
|
}), /*#__PURE__*/_jsx(Button, {
|
|
113
117
|
buttonStyle: "icon-label",
|
|
114
118
|
className: `${baseClass}__removeButton`,
|
|
115
|
-
disabled:
|
|
119
|
+
disabled: readOnly,
|
|
116
120
|
icon: "x",
|
|
117
121
|
onClick: e => {
|
|
118
122
|
e.preventDefault();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipComponent.js","names":["useLexicalComposerContext","
|
|
1
|
+
{"version":3,"file":"RelationshipComponent.js","names":["useLexicalComposerContext","getTranslation","Button","useConfig","usePayloadAPI","useTranslation","$getNodeByKey","React","useCallback","useReducer","useRef","useState","useEditorConfigContext","useLexicalDocumentDrawer","INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND","baseClass","initialParams","depth","Component","props","data","relationTo","value","nodeKey","Error","relationshipElemRef","editor","fieldProps","readOnly","config","routes","api","serverURL","getEntityConfig","relatedCollection","collectionSlug","i18n","t","cacheBust","dispatchCacheBust","state","setParams","slug","closeDocumentDrawer","DocumentDrawer","DocumentDrawerToggler","id","removeRelationship","update","remove","updateRelationship","_jsxs","className","contentEditable","ref","_jsx","label","labels","singular","admin","useAsTitle","isEditable","buttonStyle","disabled","el","icon","onClick","dispatchCommand","replace","round","tooltip","e","preventDefault","onSave","RelationshipComponent"],"sources":["../../../../../src/features/relationship/client/components/RelationshipComponent.tsx"],"sourcesContent":["'use client'\nimport type { ElementFormatType } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, useConfig, usePayloadAPI, useTranslation } from '@payloadcms/ui'\nimport { $getNodeByKey } from 'lexical'\nimport React, { useCallback, useReducer, useRef, useState } from 'react'\n\nimport type { RelationshipData } from '../../server/nodes/RelationshipNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { useLexicalDocumentDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDocumentDrawer.js'\nimport { INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND } from '../drawer/commands.js'\nimport './index.scss'\n\nconst baseClass = 'lexical-relationship'\n\nconst initialParams = {\n depth: 0,\n}\n\ntype Props = {\n className?: string\n data: RelationshipData\n format?: ElementFormatType\n nodeKey?: string\n}\n\nconst Component: React.FC<Props> = (props) => {\n const {\n data: { relationTo, value },\n nodeKey,\n } = props\n\n if (typeof value === 'object') {\n throw new Error(\n 'Relationship value should be a string or number. The Lexical Relationship component should not receive the populated value object.',\n )\n }\n\n const relationshipElemRef = useRef<HTMLDivElement | null>(null)\n\n const [editor] = useLexicalComposerContext()\n const {\n fieldProps: { readOnly },\n } = useEditorConfigContext()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const [relatedCollection] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const { i18n, t } = useTranslation()\n const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0)\n const [{ data }, { setParams }] = usePayloadAPI(\n `${serverURL}${api}/${relatedCollection.slug}/${value}`,\n { initialParams },\n )\n\n const { closeDocumentDrawer, DocumentDrawer, DocumentDrawerToggler } = useLexicalDocumentDrawer({\n id: value,\n collectionSlug: relatedCollection.slug,\n })\n\n const removeRelationship = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey!)?.remove()\n })\n }, [editor, nodeKey])\n\n const updateRelationship = React.useCallback(() => {\n setParams({\n ...initialParams,\n cacheBust, // do this to get the usePayloadAPI to re-fetch the data even though the URL string hasn't changed\n })\n\n closeDocumentDrawer()\n dispatchCacheBust()\n }, [cacheBust, setParams, closeDocumentDrawer])\n\n return (\n <div className={baseClass} contentEditable={false} ref={relationshipElemRef}>\n <div className={`${baseClass}__wrap`}>\n <p className={`${baseClass}__label`}>\n {t('fields:labelRelationship', {\n label: relatedCollection.labels?.singular\n ? getTranslation(relatedCollection.labels?.singular, i18n)\n : relatedCollection.slug,\n })}\n </p>\n <DocumentDrawerToggler className={`${baseClass}__doc-drawer-toggler`}>\n <p className={`${baseClass}__title`}>\n {data ? data[relatedCollection?.admin?.useAsTitle || 'id'] : value}\n </p>\n </DocumentDrawerToggler>\n </div>\n {editor.isEditable() && (\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__swapButton`}\n disabled={readOnly}\n el=\"button\"\n icon=\"swap\"\n onClick={() => {\n if (nodeKey) {\n editor.dispatchCommand(INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND, {\n replace: { nodeKey },\n })\n }\n }}\n round\n tooltip={t('fields:swapRelationship')}\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeRelationship()\n }}\n round\n tooltip={t('fields:removeRelationship')}\n />\n </div>\n )}\n\n {!!value && <DocumentDrawer onSave={updateRelationship} />}\n </div>\n )\n}\n\nexport const RelationshipComponent = (props: Props): React.ReactNode => {\n return <Component {...props} />\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/features/relationship/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/relationship/server/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,eAAO,MAAM,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAgH1C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","names":["i18n","ar","label","az","bg","cs","da","de","en","es","et","fa","fr","he","hr","hu","it","ja","ko","my","nb","nl","pl","pt","ro","rs","ru","sk","sl","sv","ta","th","tr","uk","vi","zh"],"sources":["../../../../src/features/relationship/server/i18n.ts"],"sourcesContent":["import type { GenericLanguages } from '@payloadcms/translations'\n\nexport const i18n: Partial<GenericLanguages> = {\n ar: {\n label: 'العلاقة',\n },\n az: {\n label: 'Münasibət',\n },\n bg: {\n label: 'Връзка',\n },\n cs: {\n label: 'Vztah',\n },\n da: {\n label: 'Forhold',\n },\n de: {\n label: 'Beziehung',\n },\n en: {\n label: 'Relationship',\n },\n es: {\n label: 'Relación',\n },\n et: {\n label: 'Seos',\n },\n fa: {\n label: 'روابط',\n },\n fr: {\n label: 'Relation',\n },\n he: {\n label: 'יחסים',\n },\n hr: {\n label: 'Odnos',\n },\n hu: {\n label: 'Kapcsolat',\n },\n it: {\n label: 'Relazione',\n },\n ja: {\n label: '関係性',\n },\n ko: {\n label: '관계',\n },\n my: {\n label: 'Hubungan',\n },\n nb: {\n label: 'Forhold',\n },\n nl: {\n label: 'Relatie',\n },\n pl: {\n label: 'Relacja',\n },\n pt: {\n label: 'Relacionamento',\n },\n ro: {\n label: 'Relație',\n },\n rs: {\n label: 'Релација',\n },\n 'rs-latin': {\n label: 'Relacija',\n },\n ru: {\n label: 'Отношения',\n },\n sk: {\n label: 'Vzťah',\n },\n sl: {\n label: 'Odnos',\n },\n sv: {\n label: 'Relation',\n },\n ta: {\n label: 'உறவு',\n },\n th: {\n label: 'ความสัมพันธ์',\n },\n tr: {\n label: 'İlişki',\n },\n uk: {\n label: 'Стосунки',\n },\n vi: {\n label: 'Mối quan hệ',\n },\n zh: {\n label: '关系',\n },\n 'zh-TW': {\n label: '關係',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,IAAA,GAAkC;EAC7CC,EAAA,EAAI;IACFC,KAAA,EAAO;EACT;EACAC,EAAA,EAAI;IACFD,KAAA,EAAO;EACT;EACAE,EAAA,EAAI;IACFF,KAAA,EAAO;EACT;EACAG,EAAA,EAAI;IACFH,KAAA,EAAO;EACT;EACAI,EAAA,EAAI;IACFJ,KAAA,EAAO;EACT;EACAK,EAAA,EAAI;IACFL,KAAA,EAAO;EACT;EACAM,EAAA,EAAI;IACFN,KAAA,EAAO;EACT;EACAO,EAAA,EAAI;IACFP,KAAA,EAAO;EACT;EACAQ,EAAA,EAAI;IACFR,KAAA,EAAO;EACT;EACAS,EAAA,EAAI;IACFT,KAAA,EAAO;EACT;EACAU,EAAA,EAAI;IACFV,KAAA,EAAO;EACT;EACAW,EAAA,EAAI;IACFX,KAAA,EAAO;EACT;EACAY,EAAA,EAAI;IACFZ,KAAA,EAAO;EACT;EACAa,EAAA,EAAI;IACFb,KAAA,EAAO;EACT;EACAc,EAAA,EAAI;IACFd,KAAA,EAAO;EACT;EACAe,EAAA,EAAI;IACFf,KAAA,EAAO;EACT;EACAgB,EAAA,EAAI;IACFhB,KAAA,EAAO;EACT;EACAiB,EAAA,EAAI;IACFjB,KAAA,EAAO;EACT;EACAkB,EAAA,EAAI;IACFlB,KAAA,EAAO;EACT;EACAmB,EAAA,EAAI;IACFnB,KAAA,EAAO;EACT;EACAoB,EAAA,EAAI;IACFpB,KAAA,EAAO;EACT;EACAqB,EAAA,EAAI;IACFrB,KAAA,EAAO;EACT;EACAsB,EAAA,EAAI;IACFtB,KAAA,EAAO;EACT;EACAuB,EAAA,EAAI;IACFvB,KAAA,EAAO;EACT;
|
|
1
|
+
{"version":3,"file":"i18n.js","names":["i18n","ar","label","az","bg","cs","da","de","en","es","et","fa","fr","he","hr","hu","is","it","ja","ko","my","nb","nl","pl","pt","ro","rs","ru","sk","sl","sv","ta","th","tr","uk","vi","zh"],"sources":["../../../../src/features/relationship/server/i18n.ts"],"sourcesContent":["import type { GenericLanguages } from '@payloadcms/translations'\n\nexport const i18n: Partial<GenericLanguages> = {\n ar: {\n label: 'العلاقة',\n },\n az: {\n label: 'Münasibət',\n },\n bg: {\n label: 'Връзка',\n },\n cs: {\n label: 'Vztah',\n },\n da: {\n label: 'Forhold',\n },\n de: {\n label: 'Beziehung',\n },\n en: {\n label: 'Relationship',\n },\n es: {\n label: 'Relación',\n },\n et: {\n label: 'Seos',\n },\n fa: {\n label: 'روابط',\n },\n fr: {\n label: 'Relation',\n },\n he: {\n label: 'יחסים',\n },\n hr: {\n label: 'Odnos',\n },\n hu: {\n label: 'Kapcsolat',\n },\n is: {\n label: 'Tengingar',\n },\n it: {\n label: 'Relazione',\n },\n ja: {\n label: '関係性',\n },\n ko: {\n label: '관계',\n },\n my: {\n label: 'Hubungan',\n },\n nb: {\n label: 'Forhold',\n },\n nl: {\n label: 'Relatie',\n },\n pl: {\n label: 'Relacja',\n },\n pt: {\n label: 'Relacionamento',\n },\n ro: {\n label: 'Relație',\n },\n rs: {\n label: 'Релација',\n },\n 'rs-latin': {\n label: 'Relacija',\n },\n ru: {\n label: 'Отношения',\n },\n sk: {\n label: 'Vzťah',\n },\n sl: {\n label: 'Odnos',\n },\n sv: {\n label: 'Relation',\n },\n ta: {\n label: 'உறவு',\n },\n th: {\n label: 'ความสัมพันธ์',\n },\n tr: {\n label: 'İlişki',\n },\n uk: {\n label: 'Стосунки',\n },\n vi: {\n label: 'Mối quan hệ',\n },\n zh: {\n label: '关系',\n },\n 'zh-TW': {\n label: '關係',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,IAAA,GAAkC;EAC7CC,EAAA,EAAI;IACFC,KAAA,EAAO;EACT;EACAC,EAAA,EAAI;IACFD,KAAA,EAAO;EACT;EACAE,EAAA,EAAI;IACFF,KAAA,EAAO;EACT;EACAG,EAAA,EAAI;IACFH,KAAA,EAAO;EACT;EACAI,EAAA,EAAI;IACFJ,KAAA,EAAO;EACT;EACAK,EAAA,EAAI;IACFL,KAAA,EAAO;EACT;EACAM,EAAA,EAAI;IACFN,KAAA,EAAO;EACT;EACAO,EAAA,EAAI;IACFP,KAAA,EAAO;EACT;EACAQ,EAAA,EAAI;IACFR,KAAA,EAAO;EACT;EACAS,EAAA,EAAI;IACFT,KAAA,EAAO;EACT;EACAU,EAAA,EAAI;IACFV,KAAA,EAAO;EACT;EACAW,EAAA,EAAI;IACFX,KAAA,EAAO;EACT;EACAY,EAAA,EAAI;IACFZ,KAAA,EAAO;EACT;EACAa,EAAA,EAAI;IACFb,KAAA,EAAO;EACT;EACAc,EAAA,EAAI;IACFd,KAAA,EAAO;EACT;EACAe,EAAA,EAAI;IACFf,KAAA,EAAO;EACT;EACAgB,EAAA,EAAI;IACFhB,KAAA,EAAO;EACT;EACAiB,EAAA,EAAI;IACFjB,KAAA,EAAO;EACT;EACAkB,EAAA,EAAI;IACFlB,KAAA,EAAO;EACT;EACAmB,EAAA,EAAI;IACFnB,KAAA,EAAO;EACT;EACAoB,EAAA,EAAI;IACFpB,KAAA,EAAO;EACT;EACAqB,EAAA,EAAI;IACFrB,KAAA,EAAO;EACT;EACAsB,EAAA,EAAI;IACFtB,KAAA,EAAO;EACT;EACAuB,EAAA,EAAI;IACFvB,KAAA,EAAO;EACT;EACAwB,EAAA,EAAI;IACFxB,KAAA,EAAO;EACT;EACA,YAAY;IACVA,KAAA,EAAO;EACT;EACAyB,EAAA,EAAI;IACFzB,KAAA,EAAO;EACT;EACA0B,EAAA,EAAI;IACF1B,KAAA,EAAO;EACT;EACA2B,EAAA,EAAI;IACF3B,KAAA,EAAO;EACT;EACA4B,EAAA,EAAI;IACF5B,KAAA,EAAO;EACT;EACA6B,EAAA,EAAI;IACF7B,KAAA,EAAO;EACT;EACA8B,EAAA,EAAI;IACF9B,KAAA,EAAO;EACT;EACA+B,EAAA,EAAI;IACF/B,KAAA,EAAO;EACT;EACAgC,EAAA,EAAI;IACFhC,KAAA,EAAO;EACT;EACAiC,EAAA,EAAI;IACFjC,KAAA,EAAO;EACT;EACAkC,EAAA,EAAI;IACFlC,KAAA,EAAO;EACT;EACA,SAAS;IACPA,KAAA,EAAO;EACT;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../src/features/textState/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/textState/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,eAAO,MAAM,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAsC1C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","names":["i18n","ar","defaultStyle","az","bg","cs","da","de","en","es","et","fa","fr","he","hr","hu","it","ja","ko","my","nb","nl","pl","pt","ro","rs","ru","sk","sl","sv","ta","th","tr","uk","vi","zh"],"sources":["../../../src/features/textState/i18n.ts"],"sourcesContent":["import type { GenericLanguages } from '@payloadcms/translations'\n\nexport const i18n: Partial<GenericLanguages> = {\n ar: { defaultStyle: 'النمط الافتراضي' },\n az: { defaultStyle: 'Defolt üslub' },\n bg: { defaultStyle: 'Стандартен стил' },\n cs: { defaultStyle: 'Výchozí styl' },\n da: { defaultStyle: 'Standardstil' },\n de: { defaultStyle: 'Standardstil' },\n en: { defaultStyle: 'Default style' },\n es: { defaultStyle: 'Estilo predeterminado' },\n et: { defaultStyle: 'Vaikimisi stiil' },\n fa: { defaultStyle: 'سبک پیشفرض' },\n fr: { defaultStyle: 'Style par défaut' },\n he: { defaultStyle: 'סגנון ברירת מחדל' },\n hr: { defaultStyle: 'Zadani stil' },\n hu: { defaultStyle: 'Alapértelmezett stílus' },\n it: { defaultStyle: 'Stile predefinito' },\n ja: { defaultStyle: 'デフォルトスタイル' },\n ko: { defaultStyle: '기본 스타일' },\n my: { defaultStyle: 'Gaya lalai' },\n nb: { defaultStyle: 'Standardstil' },\n nl: { defaultStyle: 'Standaardstijl' },\n pl: { defaultStyle: 'Domyślny styl' },\n pt: { defaultStyle: 'Estilo padrão' },\n ro: { defaultStyle: 'Stil implicit' },\n rs: { defaultStyle: 'Подразумевани стил' },\n 'rs-latin': { defaultStyle: 'Podrazumevani stil' },\n ru: { defaultStyle: 'Стиль по умолчанию' },\n sk: { defaultStyle: 'Predvolený štýl' },\n sl: { defaultStyle: 'Privzeti slog' },\n sv: { defaultStyle: 'Standardstil' },\n ta: { defaultStyle: 'பொது பாணி' },\n th: { defaultStyle: 'สไตล์เริ่มต้น' },\n tr: { defaultStyle: 'Varsayılan stil' },\n uk: { defaultStyle: 'Стиль за замовчуванням' },\n vi: { defaultStyle: 'Kiểu mặc định' },\n zh: { defaultStyle: '默认样式' },\n 'zh-TW': { defaultStyle: '預設樣式' },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,IAAA,GAAkC;EAC7CC,EAAA,EAAI;IAAEC,YAAA,EAAc;EAAkB;EACtCC,EAAA,EAAI;IAAED,YAAA,EAAc;EAAe;EACnCE,EAAA,EAAI;IAAEF,YAAA,EAAc;EAAkB;EACtCG,EAAA,EAAI;IAAEH,YAAA,EAAc;EAAe;EACnCI,EAAA,EAAI;IAAEJ,YAAA,EAAc;EAAe;EACnCK,EAAA,EAAI;IAAEL,YAAA,EAAc;EAAe;EACnCM,EAAA,EAAI;IAAEN,YAAA,EAAc;EAAgB;EACpCO,EAAA,EAAI;IAAEP,YAAA,EAAc;EAAwB;EAC5CQ,EAAA,EAAI;IAAER,YAAA,EAAc;EAAkB;EACtCS,EAAA,EAAI;IAAET,YAAA,EAAc;EAAc;EAClCU,EAAA,EAAI;IAAEV,YAAA,EAAc;EAAmB;EACvCW,EAAA,EAAI;IAAEX,YAAA,EAAc;EAAmB;EACvCY,EAAA,EAAI;IAAEZ,YAAA,EAAc;EAAc;EAClCa,EAAA,EAAI;IAAEb,YAAA,EAAc;EAAyB;EAC7Cc,EAAA,EAAI;IAAEd,YAAA,EAAc;EAAoB;EACxCe,EAAA,EAAI;IAAEf,YAAA,EAAc;
|
|
1
|
+
{"version":3,"file":"i18n.js","names":["i18n","ar","defaultStyle","az","bg","cs","da","de","en","es","et","fa","fr","he","hr","hu","is","it","ja","ko","my","nb","nl","pl","pt","ro","rs","ru","sk","sl","sv","ta","th","tr","uk","vi","zh"],"sources":["../../../src/features/textState/i18n.ts"],"sourcesContent":["import type { GenericLanguages } from '@payloadcms/translations'\n\nexport const i18n: Partial<GenericLanguages> = {\n ar: { defaultStyle: 'النمط الافتراضي' },\n az: { defaultStyle: 'Defolt üslub' },\n bg: { defaultStyle: 'Стандартен стил' },\n cs: { defaultStyle: 'Výchozí styl' },\n da: { defaultStyle: 'Standardstil' },\n de: { defaultStyle: 'Standardstil' },\n en: { defaultStyle: 'Default style' },\n es: { defaultStyle: 'Estilo predeterminado' },\n et: { defaultStyle: 'Vaikimisi stiil' },\n fa: { defaultStyle: 'سبک پیشفرض' },\n fr: { defaultStyle: 'Style par défaut' },\n he: { defaultStyle: 'סגנון ברירת מחדל' },\n hr: { defaultStyle: 'Zadani stil' },\n hu: { defaultStyle: 'Alapértelmezett stílus' },\n is: { defaultStyle: 'Sjálfgefinn stíll' },\n it: { defaultStyle: 'Stile predefinito' },\n ja: { defaultStyle: 'デフォルトスタイル' },\n ko: { defaultStyle: '기본 스타일' },\n my: { defaultStyle: 'Gaya lalai' },\n nb: { defaultStyle: 'Standardstil' },\n nl: { defaultStyle: 'Standaardstijl' },\n pl: { defaultStyle: 'Domyślny styl' },\n pt: { defaultStyle: 'Estilo padrão' },\n ro: { defaultStyle: 'Stil implicit' },\n rs: { defaultStyle: 'Подразумевани стил' },\n 'rs-latin': { defaultStyle: 'Podrazumevani stil' },\n ru: { defaultStyle: 'Стиль по умолчанию' },\n sk: { defaultStyle: 'Predvolený štýl' },\n sl: { defaultStyle: 'Privzeti slog' },\n sv: { defaultStyle: 'Standardstil' },\n ta: { defaultStyle: 'பொது பாணி' },\n th: { defaultStyle: 'สไตล์เริ่มต้น' },\n tr: { defaultStyle: 'Varsayılan stil' },\n uk: { defaultStyle: 'Стиль за замовчуванням' },\n vi: { defaultStyle: 'Kiểu mặc định' },\n zh: { defaultStyle: '默认样式' },\n 'zh-TW': { defaultStyle: '預設樣式' },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,IAAA,GAAkC;EAC7CC,EAAA,EAAI;IAAEC,YAAA,EAAc;EAAkB;EACtCC,EAAA,EAAI;IAAED,YAAA,EAAc;EAAe;EACnCE,EAAA,EAAI;IAAEF,YAAA,EAAc;EAAkB;EACtCG,EAAA,EAAI;IAAEH,YAAA,EAAc;EAAe;EACnCI,EAAA,EAAI;IAAEJ,YAAA,EAAc;EAAe;EACnCK,EAAA,EAAI;IAAEL,YAAA,EAAc;EAAe;EACnCM,EAAA,EAAI;IAAEN,YAAA,EAAc;EAAgB;EACpCO,EAAA,EAAI;IAAEP,YAAA,EAAc;EAAwB;EAC5CQ,EAAA,EAAI;IAAER,YAAA,EAAc;EAAkB;EACtCS,EAAA,EAAI;IAAET,YAAA,EAAc;EAAc;EAClCU,EAAA,EAAI;IAAEV,YAAA,EAAc;EAAmB;EACvCW,EAAA,EAAI;IAAEX,YAAA,EAAc;EAAmB;EACvCY,EAAA,EAAI;IAAEZ,YAAA,EAAc;EAAc;EAClCa,EAAA,EAAI;IAAEb,YAAA,EAAc;EAAyB;EAC7Cc,EAAA,EAAI;IAAEd,YAAA,EAAc;EAAoB;EACxCe,EAAA,EAAI;IAAEf,YAAA,EAAc;EAAoB;EACxCgB,EAAA,EAAI;IAAEhB,YAAA,EAAc;EAAY;EAChCiB,EAAA,EAAI;IAAEjB,YAAA,EAAc;EAAS;EAC7BkB,EAAA,EAAI;IAAElB,YAAA,EAAc;EAAa;EACjCmB,EAAA,EAAI;IAAEnB,YAAA,EAAc;EAAe;EACnCoB,EAAA,EAAI;IAAEpB,YAAA,EAAc;EAAiB;EACrCqB,EAAA,EAAI;IAAErB,YAAA,EAAc;EAAgB;EACpCsB,EAAA,EAAI;IAAEtB,YAAA,EAAc;EAAgB;EACpCuB,EAAA,EAAI;IAAEvB,YAAA,EAAc;EAAgB;EACpCwB,EAAA,EAAI;IAAExB,YAAA,EAAc;EAAqB;EACzC,YAAY;IAAEA,YAAA,EAAc;EAAqB;EACjDyB,EAAA,EAAI;IAAEzB,YAAA,EAAc;EAAqB;EACzC0B,EAAA,EAAI;IAAE1B,YAAA,EAAc;EAAkB;EACtC2B,EAAA,EAAI;IAAE3B,YAAA,EAAc;EAAgB;EACpC4B,EAAA,EAAI;IAAE5B,YAAA,EAAc;EAAe;EACnC6B,EAAA,EAAI;IAAE7B,YAAA,EAAc;EAAY;EAChC8B,EAAA,EAAI;IAAE9B,YAAA,EAAc;EAAgB;EACpC+B,EAAA,EAAI;IAAE/B,YAAA,EAAc;EAAkB;EACtCgC,EAAA,EAAI;IAAEhC,YAAA,EAAc;EAAyB;EAC7CiC,EAAA,EAAI;IAAEjC,YAAA,EAAc;EAAgB;EACpCkC,EAAA,EAAI;IAAElC,YAAA,EAAc;EAAO;EAC3B,SAAS;IAAEA,YAAA,EAAc;EAAO;AAClC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAKrE,OAAO,cAAc,CAAA;AAoQrB,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAAC,wBAAwB,CAkCxE,CAAA"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
|
|
6
|
-
import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
|
|
7
6
|
import { useScrollInfo, useThrottledEffect, useTranslation } from '@payloadcms/ui';
|
|
8
7
|
import * as React from 'react';
|
|
9
8
|
import { useMemo } from 'react';
|
|
@@ -184,7 +183,6 @@ function FixedToolbar({
|
|
|
184
183
|
parentWithFixedToolbar
|
|
185
184
|
}) {
|
|
186
185
|
const currentToolbarRef = React.useRef(null);
|
|
187
|
-
const isEditable = useLexicalEditable();
|
|
188
186
|
const {
|
|
189
187
|
y
|
|
190
188
|
} = useScrollInfo();
|
|
@@ -239,7 +237,7 @@ function FixedToolbar({
|
|
|
239
237
|
event.stopPropagation();
|
|
240
238
|
},
|
|
241
239
|
ref: currentToolbarRef,
|
|
242
|
-
children: isEditable && /*#__PURE__*/_jsx(React.Fragment, {
|
|
240
|
+
children: editor.isEditable() && /*#__PURE__*/_jsx(React.Fragment, {
|
|
243
241
|
children: editorConfig?.features && editorConfig.features?.toolbarFixed?.groups.map((group, i) => {
|
|
244
242
|
return /*#__PURE__*/_jsx(ToolbarGroupComponent, {
|
|
245
243
|
anchorElem: anchorElem,
|
|
@@ -271,10 +269,6 @@ export const FixedToolbarPlugin = t0 => {
|
|
|
271
269
|
} = t0;
|
|
272
270
|
const [currentEditor] = useLexicalComposerContext();
|
|
273
271
|
const editorConfigContext = useEditorConfigContext();
|
|
274
|
-
const isEditable = useLexicalEditable();
|
|
275
|
-
if (!isEditable) {
|
|
276
|
-
return null;
|
|
277
|
-
}
|
|
278
272
|
const {
|
|
279
273
|
editorConfig: currentEditorConfig
|
|
280
274
|
} = editorConfigContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","useScrollInfo","useThrottledEffect","useTranslation","React","useMemo","useEditorConfigContext","ToolbarButton","ToolbarDropdown","ButtonGroupItem","anchorElem","editor","item","Component","_jsx","key","ChildComponent","ToolbarGroupComponent","t0","$","editorConfig","group","index","i18n","fieldProps","t1","featureClientSchemaMap","schemaPath","dropdownLabel","setDropdownLabel","useState","undefined","DropdownIcon","setDropdownIcon","t2","items","type","length","t3","useEffect","t4","t5","activeItems","label","substring","t","count","onActiveChange","t6","features","toolbarFixed","groups","_jsxs","className","children","Icon","itemsContainerClassNames","maxActiveItems","map","item_0","FixedToolbar","clientProps","parentWithFixedToolbar","currentToolbarRef","useRef","isEditable","y","parentToolbarElem","disableIfParentHasFixedToolbar","parentEditorElem","editorContainerRef","current","sibling","previousElementSibling","classList","contains","currentToolbarElem","currentRect","getBoundingClientRect","parentRect","overlapping","bottom","top","remove","add","onFocus","event","stopPropagation","ref","Fragment","i","getParentEditorWithFixedToolbar","editorConfigContext","parentEditor","resolvedFeatureMap","has","FixedToolbarPlugin","currentEditor","currentEditorConfig","applyToFocusedEditor","focusedEditor","Symbol","for","bb0","document","body"],"sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { useScrollInfo, useThrottledEffect, useTranslation } from '@payloadcms/ui'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { EditorConfigContextType } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport type { SanitizedClientEditorConfig } from '../../../../../lexical/config/types.js'\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../../types.js'\nimport type { FixedToolbarFeatureProps } from '../../server/index.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { ToolbarButton } from '../../../shared/ToolbarButton/index.js'\nimport './index.scss'\nimport { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\n\nfunction ButtonGroupItem({\n anchorElem,\n editor,\n item,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n item: ToolbarGroupItem\n}): React.ReactNode {\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n )\n }\n\n if (!item.ChildComponent) {\n return null\n }\n\n return (\n <ToolbarButton editor={editor} item={item} key={item.key}>\n <item.ChildComponent />\n </ToolbarButton>\n )\n}\n\nfunction ToolbarGroupComponent({\n anchorElem,\n editor,\n editorConfig,\n group,\n index,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n group: ToolbarGroup\n index: number\n}): React.ReactNode {\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n const [dropdownLabel, setDropdownLabel] = React.useState<string | undefined>(undefined)\n const [DropdownIcon, setDropdownIcon] = React.useState<React.FC | undefined>(undefined)\n\n React.useEffect(() => {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent!)\n } else {\n setDropdownIcon(undefined)\n }\n }, [group])\n\n const onActiveChange = React.useCallback(\n ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => {\n if (!activeItems.length) {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent!)\n setDropdownLabel(undefined)\n } else {\n setDropdownIcon(undefined)\n setDropdownLabel(undefined)\n }\n return\n }\n const item = activeItems[0]!\n\n let label = item.key\n if (item.label) {\n label =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n // Crop title to max. 25 characters\n if (label.length > 25) {\n label = label.substring(0, 25) + '...'\n }\n if (activeItems.length === 1) {\n setDropdownLabel(label)\n setDropdownIcon(() => item.ChildComponent)\n } else {\n setDropdownLabel(\n i18n.t('lexical:general:toolbarItemsActive', { count: activeItems.length }),\n )\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent!)\n } else {\n setDropdownIcon(undefined)\n }\n }\n },\n [group, i18n, featureClientSchemaMap, schemaPath],\n )\n\n return (\n <div\n className={`fixed-toolbar__group fixed-toolbar__group-${group.key}`}\n data-toolbar-group-key={group.key}\n key={group.key}\n >\n {group.type === 'dropdown' && group.items.length ? (\n DropdownIcon ? (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n Icon={DropdownIcon}\n itemsContainerClassNames={['fixed-toolbar__dropdown-items']}\n label={dropdownLabel}\n maxActiveItems={group.maxActiveItems ?? 1}\n onActiveChange={onActiveChange}\n />\n ) : (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n itemsContainerClassNames={['fixed-toolbar__dropdown-items']}\n label={dropdownLabel}\n maxActiveItems={group.maxActiveItems ?? 1}\n onActiveChange={onActiveChange}\n />\n )\n ) : null}\n {group.type === 'buttons' && group.items.length\n ? group.items.map((item) => {\n return (\n <ButtonGroupItem anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n })\n : null}\n {index < editorConfig.features.toolbarFixed?.groups.length - 1 && <div className=\"divider\" />}\n </div>\n )\n}\n\nfunction FixedToolbar({\n anchorElem,\n clientProps,\n editor,\n editorConfig,\n parentWithFixedToolbar,\n}: {\n anchorElem: HTMLElement\n clientProps?: FixedToolbarFeatureProps\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n parentWithFixedToolbar: EditorConfigContextType | false\n}): React.ReactNode {\n const currentToolbarRef = React.useRef<HTMLDivElement>(null)\n const isEditable = useLexicalEditable()\n\n const { y } = useScrollInfo()\n\n // Memoize the parent toolbar element\n const parentToolbarElem = useMemo(() => {\n if (!parentWithFixedToolbar || clientProps?.disableIfParentHasFixedToolbar) {\n return null\n }\n\n const parentEditorElem = parentWithFixedToolbar.editorContainerRef.current\n let sibling = parentEditorElem.previousElementSibling\n while (sibling) {\n if (sibling.classList.contains('fixed-toolbar')) {\n return sibling\n }\n sibling = sibling.previousElementSibling\n }\n return null\n }, [clientProps?.disableIfParentHasFixedToolbar, parentWithFixedToolbar])\n\n useThrottledEffect(\n () => {\n if (!parentToolbarElem) {\n // this also checks for clientProps?.disableIfParentHasFixedToolbar indirectly, see the parentToolbarElem useMemo\n return\n }\n const currentToolbarElem = currentToolbarRef.current\n if (!currentToolbarElem) {\n return\n }\n\n const currentRect = currentToolbarElem.getBoundingClientRect()\n const parentRect = parentToolbarElem.getBoundingClientRect()\n\n // we only need to check for vertical overlap\n const overlapping = !(\n currentRect.bottom < parentRect.top || currentRect.top > parentRect.bottom\n )\n\n if (overlapping) {\n currentToolbarElem.classList.remove('fixed-toolbar')\n currentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--overlapping')\n parentToolbarElem.classList.remove('fixed-toolbar')\n parentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--hide')\n } else {\n if (!currentToolbarElem.classList.contains('fixed-toolbar--overlapping')) {\n return\n }\n currentToolbarElem.classList.remove('fixed-toolbar--overlapping')\n currentToolbarElem.classList.add('fixed-toolbar')\n parentToolbarElem.classList.remove('fixed-toolbar--hide')\n parentToolbarElem.classList.add('fixed-toolbar')\n }\n },\n 50,\n [currentToolbarRef, parentToolbarElem, y],\n )\n\n return (\n <div\n className=\"fixed-toolbar\"\n onFocus={(event) => {\n // Prevent other focus events being triggered. Otherwise, if this was to be clicked while in a child editor,\n // the parent editor will be focused, and the child editor will lose focus.\n event.stopPropagation()\n }}\n ref={currentToolbarRef}\n >\n {isEditable && (\n <React.Fragment>\n {editorConfig?.features &&\n editorConfig.features?.toolbarFixed?.groups.map((group, i) => {\n return (\n <ToolbarGroupComponent\n anchorElem={anchorElem}\n editor={editor}\n editorConfig={editorConfig}\n group={group}\n index={i}\n key={group.key}\n />\n )\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n\nconst getParentEditorWithFixedToolbar = (\n editorConfigContext: EditorConfigContextType,\n): EditorConfigContextType | false => {\n if (editorConfigContext.parentEditor?.editorConfig) {\n if (editorConfigContext.parentEditor?.editorConfig.resolvedFeatureMap.has('toolbarFixed')) {\n return editorConfigContext.parentEditor\n } else {\n if (editorConfigContext.parentEditor) {\n return getParentEditorWithFixedToolbar(editorConfigContext.parentEditor)\n }\n }\n }\n return false\n}\n\nexport const FixedToolbarPlugin: PluginComponent<FixedToolbarFeatureProps> = ({ clientProps }) => {\n const [currentEditor] = useLexicalComposerContext()\n const editorConfigContext = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n if (!isEditable) {\n return null\n }\n\n const { editorConfig: currentEditorConfig } = editorConfigContext\n\n const editor = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editor || currentEditor\n : currentEditor\n\n const editorConfig = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editorConfig || currentEditorConfig\n : currentEditorConfig\n\n const parentWithFixedToolbar = getParentEditorWithFixedToolbar(editorConfigContext)\n\n if (clientProps?.disableIfParentHasFixedToolbar) {\n if (parentWithFixedToolbar) {\n return null\n }\n }\n\n if (!editorConfig?.features?.toolbarFixed?.groups?.length) {\n return null\n }\n\n return (\n <FixedToolbar\n anchorElem={document.body}\n editor={editor}\n editorConfig={editorConfig}\n parentWithFixedToolbar={parentWithFixedToolbar}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useScrollInfo","useThrottledEffect","useTranslation","React","useMemo","useEditorConfigContext","ToolbarButton","ToolbarDropdown","ButtonGroupItem","anchorElem","editor","item","Component","_jsx","key","ChildComponent","ToolbarGroupComponent","t0","$","editorConfig","group","index","i18n","fieldProps","t1","featureClientSchemaMap","schemaPath","dropdownLabel","setDropdownLabel","useState","undefined","DropdownIcon","setDropdownIcon","t2","items","type","length","t3","useEffect","t4","t5","activeItems","label","substring","t","count","onActiveChange","t6","features","toolbarFixed","groups","_jsxs","className","children","Icon","itemsContainerClassNames","maxActiveItems","map","item_0","FixedToolbar","clientProps","parentWithFixedToolbar","currentToolbarRef","useRef","y","parentToolbarElem","disableIfParentHasFixedToolbar","parentEditorElem","editorContainerRef","current","sibling","previousElementSibling","classList","contains","currentToolbarElem","currentRect","getBoundingClientRect","parentRect","overlapping","bottom","top","remove","add","onFocus","event","stopPropagation","ref","isEditable","Fragment","i","getParentEditorWithFixedToolbar","editorConfigContext","parentEditor","resolvedFeatureMap","has","FixedToolbarPlugin","currentEditor","currentEditorConfig","applyToFocusedEditor","focusedEditor","Symbol","for","bb0","document","body"],"sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useScrollInfo, useThrottledEffect, useTranslation } from '@payloadcms/ui'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { EditorConfigContextType } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport type { SanitizedClientEditorConfig } from '../../../../../lexical/config/types.js'\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../../types.js'\nimport type { FixedToolbarFeatureProps } from '../../server/index.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { ToolbarButton } from '../../../shared/ToolbarButton/index.js'\nimport { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\nimport './index.scss'\n\nfunction ButtonGroupItem({\n anchorElem,\n editor,\n item,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n item: ToolbarGroupItem\n}): React.ReactNode {\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n )\n }\n\n if (!item.ChildComponent) {\n return null\n }\n\n return (\n <ToolbarButton editor={editor} item={item} key={item.key}>\n <item.ChildComponent />\n </ToolbarButton>\n )\n}\n\nfunction ToolbarGroupComponent({\n anchorElem,\n editor,\n editorConfig,\n group,\n index,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n group: ToolbarGroup\n index: number\n}): React.ReactNode {\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n const [dropdownLabel, setDropdownLabel] = React.useState<string | undefined>(undefined)\n const [DropdownIcon, setDropdownIcon] = React.useState<React.FC | undefined>(undefined)\n\n React.useEffect(() => {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent!)\n } else {\n setDropdownIcon(undefined)\n }\n }, [group])\n\n const onActiveChange = React.useCallback(\n ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => {\n if (!activeItems.length) {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent!)\n setDropdownLabel(undefined)\n } else {\n setDropdownIcon(undefined)\n setDropdownLabel(undefined)\n }\n return\n }\n const item = activeItems[0]!\n\n let label = item.key\n if (item.label) {\n label =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n // Crop title to max. 25 characters\n if (label.length > 25) {\n label = label.substring(0, 25) + '...'\n }\n if (activeItems.length === 1) {\n setDropdownLabel(label)\n setDropdownIcon(() => item.ChildComponent)\n } else {\n setDropdownLabel(\n i18n.t('lexical:general:toolbarItemsActive', { count: activeItems.length }),\n )\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent!)\n } else {\n setDropdownIcon(undefined)\n }\n }\n },\n [group, i18n, featureClientSchemaMap, schemaPath],\n )\n\n return (\n <div\n className={`fixed-toolbar__group fixed-toolbar__group-${group.key}`}\n data-toolbar-group-key={group.key}\n key={group.key}\n >\n {group.type === 'dropdown' && group.items.length ? (\n DropdownIcon ? (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n Icon={DropdownIcon}\n itemsContainerClassNames={['fixed-toolbar__dropdown-items']}\n label={dropdownLabel}\n maxActiveItems={group.maxActiveItems ?? 1}\n onActiveChange={onActiveChange}\n />\n ) : (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n itemsContainerClassNames={['fixed-toolbar__dropdown-items']}\n label={dropdownLabel}\n maxActiveItems={group.maxActiveItems ?? 1}\n onActiveChange={onActiveChange}\n />\n )\n ) : null}\n {group.type === 'buttons' && group.items.length\n ? group.items.map((item) => {\n return (\n <ButtonGroupItem anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n })\n : null}\n {index < editorConfig.features.toolbarFixed?.groups.length - 1 && <div className=\"divider\" />}\n </div>\n )\n}\n\nfunction FixedToolbar({\n anchorElem,\n clientProps,\n editor,\n editorConfig,\n parentWithFixedToolbar,\n}: {\n anchorElem: HTMLElement\n clientProps?: FixedToolbarFeatureProps\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n parentWithFixedToolbar: EditorConfigContextType | false\n}): React.ReactNode {\n const currentToolbarRef = React.useRef<HTMLDivElement>(null)\n\n const { y } = useScrollInfo()\n\n // Memoize the parent toolbar element\n const parentToolbarElem = useMemo(() => {\n if (!parentWithFixedToolbar || clientProps?.disableIfParentHasFixedToolbar) {\n return null\n }\n\n const parentEditorElem = parentWithFixedToolbar.editorContainerRef.current\n let sibling = parentEditorElem.previousElementSibling\n while (sibling) {\n if (sibling.classList.contains('fixed-toolbar')) {\n return sibling\n }\n sibling = sibling.previousElementSibling\n }\n return null\n }, [clientProps?.disableIfParentHasFixedToolbar, parentWithFixedToolbar])\n\n useThrottledEffect(\n () => {\n if (!parentToolbarElem) {\n // this also checks for clientProps?.disableIfParentHasFixedToolbar indirectly, see the parentToolbarElem useMemo\n return\n }\n const currentToolbarElem = currentToolbarRef.current\n if (!currentToolbarElem) {\n return\n }\n\n const currentRect = currentToolbarElem.getBoundingClientRect()\n const parentRect = parentToolbarElem.getBoundingClientRect()\n\n // we only need to check for vertical overlap\n const overlapping = !(\n currentRect.bottom < parentRect.top || currentRect.top > parentRect.bottom\n )\n\n if (overlapping) {\n currentToolbarElem.classList.remove('fixed-toolbar')\n currentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--overlapping')\n parentToolbarElem.classList.remove('fixed-toolbar')\n parentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--hide')\n } else {\n if (!currentToolbarElem.classList.contains('fixed-toolbar--overlapping')) {\n return\n }\n currentToolbarElem.classList.remove('fixed-toolbar--overlapping')\n currentToolbarElem.classList.add('fixed-toolbar')\n parentToolbarElem.classList.remove('fixed-toolbar--hide')\n parentToolbarElem.classList.add('fixed-toolbar')\n }\n },\n 50,\n [currentToolbarRef, parentToolbarElem, y],\n )\n\n return (\n <div\n className=\"fixed-toolbar\"\n onFocus={(event) => {\n // Prevent other focus events being triggered. Otherwise, if this was to be clicked while in a child editor,\n // the parent editor will be focused, and the child editor will lose focus.\n event.stopPropagation()\n }}\n ref={currentToolbarRef}\n >\n {editor.isEditable() && (\n <React.Fragment>\n {editorConfig?.features &&\n editorConfig.features?.toolbarFixed?.groups.map((group, i) => {\n return (\n <ToolbarGroupComponent\n anchorElem={anchorElem}\n editor={editor}\n editorConfig={editorConfig}\n group={group}\n index={i}\n key={group.key}\n />\n )\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n\nconst getParentEditorWithFixedToolbar = (\n editorConfigContext: EditorConfigContextType,\n): EditorConfigContextType | false => {\n if (editorConfigContext.parentEditor?.editorConfig) {\n if (editorConfigContext.parentEditor?.editorConfig.resolvedFeatureMap.has('toolbarFixed')) {\n return editorConfigContext.parentEditor\n } else {\n if (editorConfigContext.parentEditor) {\n return getParentEditorWithFixedToolbar(editorConfigContext.parentEditor)\n }\n }\n }\n return false\n}\n\nexport const FixedToolbarPlugin: PluginComponent<FixedToolbarFeatureProps> = ({ clientProps }) => {\n const [currentEditor] = useLexicalComposerContext()\n const editorConfigContext = useEditorConfigContext()\n\n const { editorConfig: currentEditorConfig } = editorConfigContext\n\n const editor = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editor || currentEditor\n : currentEditor\n\n const editorConfig = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editorConfig || currentEditorConfig\n : currentEditorConfig\n\n const parentWithFixedToolbar = getParentEditorWithFixedToolbar(editorConfigContext)\n\n if (clientProps?.disableIfParentHasFixedToolbar) {\n if (parentWithFixedToolbar) {\n return null\n }\n }\n\n if (!editorConfig?.features?.toolbarFixed?.groups?.length) {\n return null\n }\n\n return (\n <FixedToolbar\n anchorElem={document.body}\n editor={editor}\n editorConfig={editorConfig}\n parentWithFixedToolbar={parentWithFixedToolbar}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/inline/client/Toolbar/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/inline/client/Toolbar/index.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAQ3E,OAAO,cAAc,CAAA;AAsXrB,eAAO,MAAM,mBAAmB,EAAE,yBAAyB,CAAC,SAAS,CAIpE,CAAA"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
|
|
6
|
-
import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
|
|
7
6
|
import { mergeRegister } from '@lexical/utils';
|
|
8
7
|
import { $getSelection, $isRangeSelection, $isTextNode, COMMAND_PRIORITY_LOW, getDOMSelection, SELECTION_CHANGE_COMMAND } from 'lexical';
|
|
9
8
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
@@ -281,7 +280,6 @@ function InlineToolbar({
|
|
|
281
280
|
function useInlineToolbar(editor, anchorElem) {
|
|
282
281
|
const $ = _c(12);
|
|
283
282
|
const [isText, setIsText] = useState(false);
|
|
284
|
-
const isEditable = useLexicalEditable();
|
|
285
283
|
let t0;
|
|
286
284
|
if ($[0] !== editor) {
|
|
287
285
|
t0 = () => {
|
|
@@ -368,7 +366,7 @@ function useInlineToolbar(editor, anchorElem) {
|
|
|
368
366
|
t4 = $[8];
|
|
369
367
|
}
|
|
370
368
|
useEffect(t3, t4);
|
|
371
|
-
if (!isText || !isEditable) {
|
|
369
|
+
if (!isText || !editor.isEditable()) {
|
|
372
370
|
return null;
|
|
373
371
|
}
|
|
374
372
|
let t5;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","mergeRegister","$getSelection","$isRangeSelection","$isTextNode","COMMAND_PRIORITY_LOW","getDOMSelection","SELECTION_CHANGE_COMMAND","useCallback","useEffect","useRef","useState","React","createPortal","useEditorConfigContext","getDOMRangeRect","setFloatingElemPosition","ToolbarButton","ToolbarDropdown","ButtonGroupItem","anchorElem","editor","item","Component","_jsx","key","ChildComponent","ToolbarGroupComponent","t0","$","group","index","editorConfig","DropdownIcon","setDropdownIcon","t1","items","type","length","undefined","t2","t3","t4","activeItems","onActiveChange","t5","features","toolbarInline","groups","_jsxs","className","children","Icon","maxActiveItems","map","item_0","InlineToolbar","floatingToolbarRef","caretRef","closeFloatingToolbar","current","isOpacityZero","style","opacity","isPointerEventsNone","pointerEvents","mouseMoveListener","e","buttons","x","clientX","y","clientY","elementUnderMouse","document","elementFromPoint","contains","mouseUpListener","addEventListener","removeEventListener","$updateTextFormatFloatingToolbar","selection","nativeSelection","_window","possibleLinkEditor","querySelector","isLinkEditorVisible","rootElement","getRootElement","isCollapsed","anchorNode","rangeRect","offsetIfFlipped","alwaysDisplayOnTop","floatingElem","horizontalPosition","targetRect","anchorFlippedOffset","horizontalOffset","specialHandlingForCaret","verticalGap","scrollerElem","parentElement","update","getEditorState","read","window","registerUpdateListener","editorState","registerCommand","ref","i","useInlineToolbar","isText","setIsText","isEditable","isComposing","getTextContent","nodes","getNodes","foundNodeWithText","node","rawTextContent","replace","updatePopup","registerRootListener","InlineToolbarPlugin"],"sources":["../../../../../../src/features/toolbars/inline/client/Toolbar/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n $isTextNode,\n COMMAND_PRIORITY_LOW,\n getDOMSelection,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../../types.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getDOMRangeRect } from '../../../../../lexical/utils/getDOMRangeRect.js'\nimport { setFloatingElemPosition } from '../../../../../lexical/utils/setFloatingElemPosition.js'\nimport { ToolbarButton } from '../../../shared/ToolbarButton/index.js'\nimport './index.scss'\nimport { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\n\nfunction ButtonGroupItem({\n anchorElem,\n editor,\n item,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n item: ToolbarGroupItem\n}): React.ReactNode {\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n )\n }\n if (!item.ChildComponent) {\n return null\n }\n\n return (\n <ToolbarButton editor={editor} item={item} key={item.key}>\n <item.ChildComponent />\n </ToolbarButton>\n )\n}\n\nfunction ToolbarGroupComponent({\n anchorElem,\n editor,\n group,\n index,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n group: ToolbarGroup\n index: number\n}): React.ReactNode {\n const { editorConfig } = useEditorConfigContext()\n\n const [DropdownIcon, setDropdownIcon] = React.useState<React.FC | undefined>()\n\n React.useEffect(() => {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent)\n } else {\n setDropdownIcon(undefined)\n }\n }, [group])\n\n const onActiveChange = useCallback(\n ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => {\n if (!activeItems.length) {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent)\n } else {\n setDropdownIcon(undefined)\n }\n return\n }\n const item = activeItems[0]\n setDropdownIcon(() => item?.ChildComponent)\n },\n [group],\n )\n\n return (\n <div\n className={`inline-toolbar-popup__group inline-toolbar-popup__group-${group.key}`}\n data-toolbar-group-key={group.key}\n key={group.key}\n >\n {group.type === 'dropdown' && group.items.length ? (\n DropdownIcon ? (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n Icon={DropdownIcon}\n maxActiveItems={group.maxActiveItems ?? 1}\n onActiveChange={onActiveChange}\n />\n ) : (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n maxActiveItems={group.maxActiveItems ?? 1}\n onActiveChange={onActiveChange}\n />\n )\n ) : null}\n {group.type === 'buttons' && group.items.length\n ? group.items.map((item) => {\n return (\n <ButtonGroupItem anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n })\n : null}\n {index < editorConfig.features.toolbarInline?.groups.length - 1 && (\n <div className=\"divider\" />\n )}\n </div>\n )\n}\n\nfunction InlineToolbar({\n anchorElem,\n editor,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n}): React.ReactNode {\n const floatingToolbarRef = useRef<HTMLDivElement | null>(null)\n const caretRef = useRef<HTMLDivElement | null>(null)\n\n const { editorConfig } = useEditorConfigContext()\n\n const closeFloatingToolbar = useCallback(() => {\n if (floatingToolbarRef?.current) {\n const isOpacityZero = floatingToolbarRef.current.style.opacity === '0'\n const isPointerEventsNone = floatingToolbarRef.current.style.pointerEvents === 'none'\n\n if (!isOpacityZero) {\n floatingToolbarRef.current.style.opacity = '0'\n }\n if (!isPointerEventsNone) {\n floatingToolbarRef.current.style.pointerEvents = 'none'\n }\n }\n }, [floatingToolbarRef])\n\n const mouseMoveListener = useCallback(\n (e: MouseEvent) => {\n if (floatingToolbarRef?.current && (e.buttons === 1 || e.buttons === 3)) {\n const isOpacityZero = floatingToolbarRef.current.style.opacity === '0'\n const isPointerEventsNone = floatingToolbarRef.current.style.pointerEvents === 'none'\n if (!isOpacityZero || !isPointerEventsNone) {\n // Check if the mouse is not over the popup\n const x = e.clientX\n const y = e.clientY\n const elementUnderMouse = document.elementFromPoint(x, y)\n if (!floatingToolbarRef.current.contains(elementUnderMouse)) {\n // Mouse is not over the target element => not a normal click, but probably a drag\n closeFloatingToolbar()\n }\n }\n }\n },\n [closeFloatingToolbar],\n )\n\n const mouseUpListener = useCallback(() => {\n if (floatingToolbarRef?.current) {\n if (floatingToolbarRef.current.style.opacity !== '1') {\n floatingToolbarRef.current.style.opacity = '1'\n }\n if (floatingToolbarRef.current.style.pointerEvents !== 'auto') {\n floatingToolbarRef.current.style.pointerEvents = 'auto'\n }\n }\n }, [])\n\n useEffect(() => {\n document.addEventListener('mousemove', mouseMoveListener)\n document.addEventListener('mouseup', mouseUpListener)\n\n return () => {\n document.removeEventListener('mousemove', mouseMoveListener)\n document.removeEventListener('mouseup', mouseUpListener)\n }\n }, [floatingToolbarRef, mouseMoveListener, mouseUpListener])\n\n const $updateTextFormatFloatingToolbar = useCallback(() => {\n const selection = $getSelection()\n\n const nativeSelection = getDOMSelection(editor._window)\n\n if (floatingToolbarRef.current === null) {\n return\n }\n\n const possibleLinkEditor = anchorElem.querySelector(':scope > .link-editor')\n const isLinkEditorVisible =\n possibleLinkEditor !== null &&\n 'style' in possibleLinkEditor &&\n possibleLinkEditor?.style?.['opacity' as keyof typeof possibleLinkEditor.style] === '1'\n\n const rootElement = editor.getRootElement()\n if (\n selection !== null &&\n nativeSelection !== null &&\n !nativeSelection.isCollapsed &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n const rangeRect = getDOMRangeRect(nativeSelection, rootElement)\n\n // Position floating toolbar\n const offsetIfFlipped = setFloatingElemPosition({\n alwaysDisplayOnTop: isLinkEditorVisible,\n anchorElem,\n floatingElem: floatingToolbarRef.current,\n horizontalPosition: 'center',\n targetRect: rangeRect,\n })\n\n // Position caret\n if (caretRef.current) {\n setFloatingElemPosition({\n anchorElem: floatingToolbarRef.current,\n anchorFlippedOffset: offsetIfFlipped,\n floatingElem: caretRef.current,\n horizontalOffset: 5,\n horizontalPosition: 'center',\n specialHandlingForCaret: true,\n targetRect: rangeRect,\n verticalGap: 8,\n })\n }\n } else {\n closeFloatingToolbar()\n }\n }, [editor, closeFloatingToolbar, anchorElem])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = () => {\n editor.getEditorState().read(() => {\n $updateTextFormatFloatingToolbar()\n })\n }\n\n window.addEventListener('resize', update)\n if (scrollerElem) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n if (scrollerElem) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [editor, $updateTextFormatFloatingToolbar, anchorElem])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n $updateTextFormatFloatingToolbar()\n })\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n $updateTextFormatFloatingToolbar()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n $updateTextFormatFloatingToolbar()\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateTextFormatFloatingToolbar])\n\n return (\n <div className=\"inline-toolbar-popup\" ref={floatingToolbarRef}>\n <div className=\"caret\" ref={caretRef} />\n {editorConfig?.features &&\n editorConfig.features?.toolbarInline?.groups.map((group, i) => {\n return (\n <ToolbarGroupComponent\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n index={i}\n key={group.key}\n />\n )\n })}\n </div>\n )\n}\n\nfunction useInlineToolbar(\n editor: LexicalEditor,\n anchorElem: HTMLElement,\n): null | React.ReactElement {\n const [isText, setIsText] = useState(false)\n const isEditable = useLexicalEditable()\n\n const updatePopup = useCallback(() => {\n editor.getEditorState().read(() => {\n // Should not to pop up the floating toolbar when using IME input\n if (editor.isComposing()) {\n return\n }\n const selection = $getSelection()\n const nativeSelection = getDOMSelection(editor._window)\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n (!$isRangeSelection(selection) ||\n rootElement === null ||\n !rootElement.contains(nativeSelection.anchorNode))\n ) {\n setIsText(false)\n return\n }\n\n if (!$isRangeSelection(selection)) {\n return\n }\n\n if (selection.getTextContent() !== '') {\n const nodes = selection.getNodes()\n let foundNodeWithText = false\n for (const node of nodes) {\n if ($isTextNode(node)) {\n setIsText(true)\n foundNodeWithText = true\n break\n }\n }\n if (!foundNodeWithText) {\n setIsText(false)\n }\n } else {\n setIsText(false)\n }\n\n const rawTextContent = selection.getTextContent().replace(/\\n/g, '')\n if (!selection.isCollapsed() && rawTextContent === '') {\n setIsText(false)\n return\n }\n })\n }, [editor])\n\n useEffect(() => {\n document.addEventListener('selectionchange', updatePopup)\n document.addEventListener('mouseup', updatePopup)\n return () => {\n document.removeEventListener('selectionchange', updatePopup)\n document.removeEventListener('mouseup', updatePopup)\n }\n }, [updatePopup])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n updatePopup()\n }),\n editor.registerRootListener(() => {\n if (editor.getRootElement() === null) {\n setIsText(false)\n }\n }),\n )\n }, [editor, updatePopup])\n\n if (!isText || !isEditable) {\n return null\n }\n\n return createPortal(<InlineToolbar anchorElem={anchorElem} editor={editor} />, anchorElem)\n}\n\nexport const InlineToolbarPlugin: PluginComponentWithAnchor<undefined> = ({ anchorElem }) => {\n const [editor] = useLexicalComposerContext()\n\n return useInlineToolbar(editor, anchorElem)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","mergeRegister","$getSelection","$isRangeSelection","$isTextNode","COMMAND_PRIORITY_LOW","getDOMSelection","SELECTION_CHANGE_COMMAND","useCallback","useEffect","useRef","useState","React","createPortal","useEditorConfigContext","getDOMRangeRect","setFloatingElemPosition","ToolbarButton","ToolbarDropdown","ButtonGroupItem","anchorElem","editor","item","Component","_jsx","key","ChildComponent","ToolbarGroupComponent","t0","$","group","index","editorConfig","DropdownIcon","setDropdownIcon","t1","items","type","length","undefined","t2","t3","t4","activeItems","onActiveChange","t5","features","toolbarInline","groups","_jsxs","className","children","Icon","maxActiveItems","map","item_0","InlineToolbar","floatingToolbarRef","caretRef","closeFloatingToolbar","current","isOpacityZero","style","opacity","isPointerEventsNone","pointerEvents","mouseMoveListener","e","buttons","x","clientX","y","clientY","elementUnderMouse","document","elementFromPoint","contains","mouseUpListener","addEventListener","removeEventListener","$updateTextFormatFloatingToolbar","selection","nativeSelection","_window","possibleLinkEditor","querySelector","isLinkEditorVisible","rootElement","getRootElement","isCollapsed","anchorNode","rangeRect","offsetIfFlipped","alwaysDisplayOnTop","floatingElem","horizontalPosition","targetRect","anchorFlippedOffset","horizontalOffset","specialHandlingForCaret","verticalGap","scrollerElem","parentElement","update","getEditorState","read","window","registerUpdateListener","editorState","registerCommand","ref","i","useInlineToolbar","isText","setIsText","isComposing","getTextContent","nodes","getNodes","foundNodeWithText","node","rawTextContent","replace","updatePopup","registerRootListener","isEditable","InlineToolbarPlugin"],"sources":["../../../../../../src/features/toolbars/inline/client/Toolbar/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n $isTextNode,\n COMMAND_PRIORITY_LOW,\n getDOMSelection,\n SELECTION_CHANGE_COMMAND,\n} from 'lexical'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport * as React from 'react'\nimport { createPortal } from 'react-dom'\n\nimport type { PluginComponentWithAnchor } from '../../../../typesClient.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../../types.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { getDOMRangeRect } from '../../../../../lexical/utils/getDOMRangeRect.js'\nimport { setFloatingElemPosition } from '../../../../../lexical/utils/setFloatingElemPosition.js'\nimport { ToolbarButton } from '../../../shared/ToolbarButton/index.js'\nimport { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\nimport './index.scss'\n\nfunction ButtonGroupItem({\n anchorElem,\n editor,\n item,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n item: ToolbarGroupItem\n}): React.ReactNode {\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n )\n }\n if (!item.ChildComponent) {\n return null\n }\n\n return (\n <ToolbarButton editor={editor} item={item} key={item.key}>\n <item.ChildComponent />\n </ToolbarButton>\n )\n}\n\nfunction ToolbarGroupComponent({\n anchorElem,\n editor,\n group,\n index,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n group: ToolbarGroup\n index: number\n}): React.ReactNode {\n const { editorConfig } = useEditorConfigContext()\n\n const [DropdownIcon, setDropdownIcon] = React.useState<React.FC | undefined>()\n\n React.useEffect(() => {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent)\n } else {\n setDropdownIcon(undefined)\n }\n }, [group])\n\n const onActiveChange = useCallback(\n ({ activeItems }: { activeItems: ToolbarGroupItem[] }) => {\n if (!activeItems.length) {\n if (group?.type === 'dropdown' && group.items.length && group.ChildComponent) {\n setDropdownIcon(() => group.ChildComponent)\n } else {\n setDropdownIcon(undefined)\n }\n return\n }\n const item = activeItems[0]\n setDropdownIcon(() => item?.ChildComponent)\n },\n [group],\n )\n\n return (\n <div\n className={`inline-toolbar-popup__group inline-toolbar-popup__group-${group.key}`}\n data-toolbar-group-key={group.key}\n key={group.key}\n >\n {group.type === 'dropdown' && group.items.length ? (\n DropdownIcon ? (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n Icon={DropdownIcon}\n maxActiveItems={group.maxActiveItems ?? 1}\n onActiveChange={onActiveChange}\n />\n ) : (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n maxActiveItems={group.maxActiveItems ?? 1}\n onActiveChange={onActiveChange}\n />\n )\n ) : null}\n {group.type === 'buttons' && group.items.length\n ? group.items.map((item) => {\n return (\n <ButtonGroupItem anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n })\n : null}\n {index < editorConfig.features.toolbarInline?.groups.length - 1 && (\n <div className=\"divider\" />\n )}\n </div>\n )\n}\n\nfunction InlineToolbar({\n anchorElem,\n editor,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n}): React.ReactNode {\n const floatingToolbarRef = useRef<HTMLDivElement | null>(null)\n const caretRef = useRef<HTMLDivElement | null>(null)\n\n const { editorConfig } = useEditorConfigContext()\n\n const closeFloatingToolbar = useCallback(() => {\n if (floatingToolbarRef?.current) {\n const isOpacityZero = floatingToolbarRef.current.style.opacity === '0'\n const isPointerEventsNone = floatingToolbarRef.current.style.pointerEvents === 'none'\n\n if (!isOpacityZero) {\n floatingToolbarRef.current.style.opacity = '0'\n }\n if (!isPointerEventsNone) {\n floatingToolbarRef.current.style.pointerEvents = 'none'\n }\n }\n }, [floatingToolbarRef])\n\n const mouseMoveListener = useCallback(\n (e: MouseEvent) => {\n if (floatingToolbarRef?.current && (e.buttons === 1 || e.buttons === 3)) {\n const isOpacityZero = floatingToolbarRef.current.style.opacity === '0'\n const isPointerEventsNone = floatingToolbarRef.current.style.pointerEvents === 'none'\n if (!isOpacityZero || !isPointerEventsNone) {\n // Check if the mouse is not over the popup\n const x = e.clientX\n const y = e.clientY\n const elementUnderMouse = document.elementFromPoint(x, y)\n if (!floatingToolbarRef.current.contains(elementUnderMouse)) {\n // Mouse is not over the target element => not a normal click, but probably a drag\n closeFloatingToolbar()\n }\n }\n }\n },\n [closeFloatingToolbar],\n )\n\n const mouseUpListener = useCallback(() => {\n if (floatingToolbarRef?.current) {\n if (floatingToolbarRef.current.style.opacity !== '1') {\n floatingToolbarRef.current.style.opacity = '1'\n }\n if (floatingToolbarRef.current.style.pointerEvents !== 'auto') {\n floatingToolbarRef.current.style.pointerEvents = 'auto'\n }\n }\n }, [])\n\n useEffect(() => {\n document.addEventListener('mousemove', mouseMoveListener)\n document.addEventListener('mouseup', mouseUpListener)\n\n return () => {\n document.removeEventListener('mousemove', mouseMoveListener)\n document.removeEventListener('mouseup', mouseUpListener)\n }\n }, [floatingToolbarRef, mouseMoveListener, mouseUpListener])\n\n const $updateTextFormatFloatingToolbar = useCallback(() => {\n const selection = $getSelection()\n\n const nativeSelection = getDOMSelection(editor._window)\n\n if (floatingToolbarRef.current === null) {\n return\n }\n\n const possibleLinkEditor = anchorElem.querySelector(':scope > .link-editor')\n const isLinkEditorVisible =\n possibleLinkEditor !== null &&\n 'style' in possibleLinkEditor &&\n possibleLinkEditor?.style?.['opacity' as keyof typeof possibleLinkEditor.style] === '1'\n\n const rootElement = editor.getRootElement()\n if (\n selection !== null &&\n nativeSelection !== null &&\n !nativeSelection.isCollapsed &&\n rootElement !== null &&\n rootElement.contains(nativeSelection.anchorNode)\n ) {\n const rangeRect = getDOMRangeRect(nativeSelection, rootElement)\n\n // Position floating toolbar\n const offsetIfFlipped = setFloatingElemPosition({\n alwaysDisplayOnTop: isLinkEditorVisible,\n anchorElem,\n floatingElem: floatingToolbarRef.current,\n horizontalPosition: 'center',\n targetRect: rangeRect,\n })\n\n // Position caret\n if (caretRef.current) {\n setFloatingElemPosition({\n anchorElem: floatingToolbarRef.current,\n anchorFlippedOffset: offsetIfFlipped,\n floatingElem: caretRef.current,\n horizontalOffset: 5,\n horizontalPosition: 'center',\n specialHandlingForCaret: true,\n targetRect: rangeRect,\n verticalGap: 8,\n })\n }\n } else {\n closeFloatingToolbar()\n }\n }, [editor, closeFloatingToolbar, anchorElem])\n\n useEffect(() => {\n const scrollerElem = anchorElem.parentElement\n\n const update = () => {\n editor.getEditorState().read(() => {\n $updateTextFormatFloatingToolbar()\n })\n }\n\n window.addEventListener('resize', update)\n if (scrollerElem) {\n scrollerElem.addEventListener('scroll', update)\n }\n\n return () => {\n window.removeEventListener('resize', update)\n if (scrollerElem) {\n scrollerElem.removeEventListener('scroll', update)\n }\n }\n }, [editor, $updateTextFormatFloatingToolbar, anchorElem])\n\n useEffect(() => {\n editor.getEditorState().read(() => {\n $updateTextFormatFloatingToolbar()\n })\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n $updateTextFormatFloatingToolbar()\n })\n }),\n\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n $updateTextFormatFloatingToolbar()\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, $updateTextFormatFloatingToolbar])\n\n return (\n <div className=\"inline-toolbar-popup\" ref={floatingToolbarRef}>\n <div className=\"caret\" ref={caretRef} />\n {editorConfig?.features &&\n editorConfig.features?.toolbarInline?.groups.map((group, i) => {\n return (\n <ToolbarGroupComponent\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n index={i}\n key={group.key}\n />\n )\n })}\n </div>\n )\n}\n\nfunction useInlineToolbar(\n editor: LexicalEditor,\n anchorElem: HTMLElement,\n): null | React.ReactElement {\n const [isText, setIsText] = useState(false)\n\n const updatePopup = useCallback(() => {\n editor.getEditorState().read(() => {\n // Should not to pop up the floating toolbar when using IME input\n if (editor.isComposing()) {\n return\n }\n const selection = $getSelection()\n const nativeSelection = getDOMSelection(editor._window)\n const rootElement = editor.getRootElement()\n\n if (\n nativeSelection !== null &&\n (!$isRangeSelection(selection) ||\n rootElement === null ||\n !rootElement.contains(nativeSelection.anchorNode))\n ) {\n setIsText(false)\n return\n }\n\n if (!$isRangeSelection(selection)) {\n return\n }\n\n if (selection.getTextContent() !== '') {\n const nodes = selection.getNodes()\n let foundNodeWithText = false\n for (const node of nodes) {\n if ($isTextNode(node)) {\n setIsText(true)\n foundNodeWithText = true\n break\n }\n }\n if (!foundNodeWithText) {\n setIsText(false)\n }\n } else {\n setIsText(false)\n }\n\n const rawTextContent = selection.getTextContent().replace(/\\n/g, '')\n if (!selection.isCollapsed() && rawTextContent === '') {\n setIsText(false)\n return\n }\n })\n }, [editor])\n\n useEffect(() => {\n document.addEventListener('selectionchange', updatePopup)\n document.addEventListener('mouseup', updatePopup)\n return () => {\n document.removeEventListener('selectionchange', updatePopup)\n document.removeEventListener('mouseup', updatePopup)\n }\n }, [updatePopup])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(() => {\n updatePopup()\n }),\n editor.registerRootListener(() => {\n if (editor.getRootElement() === null) {\n setIsText(false)\n }\n }),\n )\n }, [editor, updatePopup])\n\n if (!isText || !editor.isEditable()) {\n return null\n }\n\n return createPortal(<InlineToolbar anchorElem={anchorElem} editor={editor} />, anchorElem)\n}\n\nexport const InlineToolbarPlugin: PluginComponentWithAnchor<undefined> = ({ anchorElem }) => {\n const [editor] = useLexicalComposerContext()\n\n return useInlineToolbar(editor, anchorElem)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/upload/client/component/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/upload/client/component/index.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAE/D,OAAO,KAA2D,MAAM,OAAO,CAAA;AAG/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAUlE,OAAO,cAAc,CAAA;AAQrB,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AA6MD,eAAO,MAAM,eAAe,UAAW,YAAY,KAAG,KAAK,CAAC,SAM3D,CAAA"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
|
|
5
|
-
import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
|
|
6
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
7
6
|
import { Button, formatDrawerSlug, Thumbnail, useConfig, useEditDepth, usePayloadAPI, useTranslation } from '@payloadcms/ui';
|
|
8
7
|
import { $getNodeByKey } from 'lexical';
|
|
@@ -48,10 +47,10 @@ const Component = props => {
|
|
|
48
47
|
const {
|
|
49
48
|
editorConfig,
|
|
50
49
|
fieldProps: {
|
|
50
|
+
readOnly,
|
|
51
51
|
schemaPath
|
|
52
52
|
}
|
|
53
53
|
} = useEditorConfigContext();
|
|
54
|
-
const isEditable = useLexicalEditable();
|
|
55
54
|
const {
|
|
56
55
|
i18n,
|
|
57
56
|
t
|
|
@@ -128,7 +127,7 @@ const Component = props => {
|
|
|
128
127
|
height: data?.height,
|
|
129
128
|
size: "none",
|
|
130
129
|
width: data?.width
|
|
131
|
-
}), isEditable && /*#__PURE__*/_jsx("div", {
|
|
130
|
+
}), editor.isEditable() && /*#__PURE__*/_jsx("div", {
|
|
132
131
|
className: `${baseClass}__overlay ${baseClass}__floater`,
|
|
133
132
|
children: /*#__PURE__*/_jsxs("div", {
|
|
134
133
|
className: `${baseClass}__actions`,
|
|
@@ -136,7 +135,7 @@ const Component = props => {
|
|
|
136
135
|
children: [hasExtraFields ? /*#__PURE__*/_jsx(Button, {
|
|
137
136
|
buttonStyle: "icon-label",
|
|
138
137
|
className: `${baseClass}__upload-drawer-toggler`,
|
|
139
|
-
disabled:
|
|
138
|
+
disabled: readOnly,
|
|
140
139
|
el: "button",
|
|
141
140
|
icon: "edit",
|
|
142
141
|
onClick: toggleDrawer,
|
|
@@ -146,7 +145,7 @@ const Component = props => {
|
|
|
146
145
|
}) : null, /*#__PURE__*/_jsx(Button, {
|
|
147
146
|
buttonStyle: "icon-label",
|
|
148
147
|
className: `${baseClass}__swap-drawer-toggler`,
|
|
149
|
-
disabled:
|
|
148
|
+
disabled: readOnly,
|
|
150
149
|
el: "button",
|
|
151
150
|
icon: "swap",
|
|
152
151
|
onClick: () => {
|
|
@@ -162,7 +161,7 @@ const Component = props => {
|
|
|
162
161
|
}), /*#__PURE__*/_jsx(Button, {
|
|
163
162
|
buttonStyle: "icon-label",
|
|
164
163
|
className: `${baseClass}__removeButton`,
|
|
165
|
-
disabled:
|
|
164
|
+
disabled: readOnly,
|
|
166
165
|
icon: "x",
|
|
167
166
|
onClick: e => {
|
|
168
167
|
e.preventDefault();
|