@payloadcms/richtext-lexical 3.23.0 → 3.24.0-canary.1cfcb91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/dependencyChecker.spec.js +0 -2
  2. package/dist/dependencyChecker.spec.js.map +1 -1
  3. package/dist/exports/client/{Field-ZQTPXWY3.js → Field-NNWFQETL.js} +2 -2
  4. package/dist/exports/client/bundled.css +1 -1
  5. package/dist/exports/client/chunk-EE27FURT.js +2 -0
  6. package/dist/exports/client/chunk-EE27FURT.js.map +7 -0
  7. package/dist/exports/client/chunk-OZ6Q4DWN.js +12 -0
  8. package/dist/exports/client/chunk-OZ6Q4DWN.js.map +7 -0
  9. package/dist/exports/client/componentInline-XEH2GDVO.js +2 -0
  10. package/dist/exports/client/index.js +10 -10
  11. package/dist/exports/client/index.js.map +3 -3
  12. package/dist/exports/react/components/RichText/converter/converters/table.d.ts.map +1 -1
  13. package/dist/exports/react/components/RichText/converter/converters/table.js +10 -7
  14. package/dist/exports/react/components/RichText/converter/converters/table.js.map +1 -1
  15. package/dist/exports/react/components/RichText/converter/converters/upload.d.ts.map +1 -1
  16. package/dist/exports/react/components/RichText/converter/converters/upload.js +14 -10
  17. package/dist/exports/react/components/RichText/converter/converters/upload.js.map +1 -1
  18. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  19. package/dist/features/blocks/client/component/index.js +5 -2
  20. package/dist/features/blocks/client/component/index.js.map +1 -1
  21. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  22. package/dist/features/blocks/client/componentInline/index.js +5 -2
  23. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  24. package/dist/features/blocks/client/index.d.ts.map +1 -1
  25. package/dist/features/blocks/client/index.js +3 -2
  26. package/dist/features/blocks/client/index.js.map +1 -1
  27. package/dist/features/blocks/server/index.d.ts +3 -3
  28. package/dist/features/blocks/server/index.d.ts.map +1 -1
  29. package/dist/features/blocks/server/index.js +58 -38
  30. package/dist/features/blocks/server/index.js.map +1 -1
  31. package/dist/features/blocks/server/validate.d.ts +5 -0
  32. package/dist/features/blocks/server/validate.d.ts.map +1 -1
  33. package/dist/features/blocks/server/validate.js +8 -2
  34. package/dist/features/blocks/server/validate.js.map +1 -1
  35. package/dist/features/converters/html/field/index.d.ts.map +1 -1
  36. package/dist/features/converters/html/field/index.js +3 -43
  37. package/dist/features/converters/html/field/index.js.map +1 -1
  38. package/dist/features/experimental_table/server/index.js +1 -1
  39. package/dist/features/experimental_table/server/index.js.map +1 -1
  40. package/dist/features/indent/client/index.d.ts.map +1 -1
  41. package/dist/features/indent/client/index.js +23 -7
  42. package/dist/features/indent/client/index.js.map +1 -1
  43. package/dist/features/link/server/validate.d.ts.map +1 -1
  44. package/dist/features/link/server/validate.js +3 -2
  45. package/dist/features/link/server/validate.js.map +1 -1
  46. package/dist/features/upload/server/feature.server.d.ts.map +1 -1
  47. package/dist/features/upload/server/feature.server.js +4 -3
  48. package/dist/features/upload/server/feature.server.js.map +1 -1
  49. package/dist/features/upload/server/nodes/UploadNode.d.ts +19 -8
  50. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  51. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  52. package/dist/features/upload/server/validate.d.ts.map +1 -1
  53. package/dist/features/upload/server/validate.js +5 -4
  54. package/dist/features/upload/server/validate.js.map +1 -1
  55. package/dist/field/bundled.css +1 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +11 -2
  58. package/dist/index.js.map +1 -1
  59. package/dist/packages/@lexical/markdown/MarkdownExport.d.ts.map +1 -1
  60. package/dist/packages/@lexical/markdown/MarkdownExport.js +5 -5
  61. package/dist/packages/@lexical/markdown/MarkdownExport.js.map +1 -1
  62. package/dist/packages/@lexical/markdown/MarkdownImport.js +6 -5
  63. package/dist/packages/@lexical/markdown/MarkdownImport.js.map +1 -1
  64. package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts.map +1 -1
  65. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +6 -4
  66. package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +1 -1
  67. package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +1 -1
  68. package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts.map +1 -1
  69. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +4 -1
  70. package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +1 -1
  71. package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts.map +1 -1
  72. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +1 -1
  73. package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +1 -1
  74. package/dist/utilities/jsx/collectTopLevelJSXInLines.d.ts.map +1 -1
  75. package/dist/utilities/jsx/collectTopLevelJSXInLines.js +2 -1
  76. package/dist/utilities/jsx/collectTopLevelJSXInLines.js.map +1 -1
  77. package/dist/utilities/migrateSlateToLexical/index.js +8 -4
  78. package/dist/utilities/migrateSlateToLexical/index.js.map +1 -1
  79. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts +3 -2
  80. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.d.ts.map +1 -1
  81. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js +18 -13
  82. package/dist/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.js.map +1 -1
  83. package/dist/utilities/upgradeLexicalData/index.js +8 -4
  84. package/dist/utilities/upgradeLexicalData/index.js.map +1 -1
  85. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts +3 -2
  86. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
  87. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js +18 -13
  88. package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.js.map +1 -1
  89. package/dist/validate/hasText.js +1 -1
  90. package/dist/validate/hasText.js.map +1 -1
  91. package/package.json +7 -17
  92. package/dist/exports/client/chunk-CIY6PKN6.js +0 -12
  93. package/dist/exports/client/chunk-CIY6PKN6.js.map +0 -7
  94. package/dist/exports/client/chunk-KEEUF5NK.js +0 -2
  95. package/dist/exports/client/chunk-KEEUF5NK.js.map +0 -7
  96. package/dist/exports/client/componentInline-UG3ZWWJY.js +0 -2
  97. /package/dist/exports/client/{Field-ZQTPXWY3.js.map → Field-NNWFQETL.js.map} +0 -0
  98. /package/dist/exports/client/{componentInline-UG3ZWWJY.js.map → componentInline-XEH2GDVO.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["migrateDocumentFieldsRecursively","migrateSlateToLexical","payload","collections","config","errors","allLocales","localization","localeCodes","totalCollections","length","locale","curCollection","collection","migrateCollection","cur","max","global","globals","migrateGlobal","console","error","JSON","stringify","log","slug","document","findGlobal","depth","draft","undefined","overrideAccess","found","migrateDocument","fields","updateGlobal","data","_status","e","push","documentCount","count","totalDocs","page","migrated","documents","find","pagination","docs","id","update"],"sources":["../../../src/utilities/migrateSlateToLexical/index.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport type { CollectionConfig, Field, GlobalConfig, Payload } from 'payload'\n\nimport { migrateDocumentFieldsRecursively } from './migrateDocumentFieldsRecursively.js'\n\n/**\n * This goes through every single collection and field in the payload config, and migrates its data from Slate to Lexical. This does not support sub-fields within slate.\n *\n * It will only translate fields fulfilling all these requirements:\n * - field schema uses lexical editor\n * - lexical editor has SlateToLexicalFeature added\n * - saved field data is in Slate format\n *\n * @param payload\n */\nexport async function migrateSlateToLexical({ payload }: { payload: Payload }) {\n const collections = payload.config.collections\n\n const errors: unknown[] = []\n\n const allLocales = payload.config.localization ? payload.config.localization.localeCodes : [null]\n\n const totalCollections = collections.length\n for (const locale of allLocales) {\n let curCollection = 0\n for (const collection of collections) {\n curCollection++\n await migrateCollection({\n collection,\n cur: curCollection,\n errors,\n locale,\n max: totalCollections,\n payload,\n })\n }\n for (const global of payload.config.globals) {\n await migrateGlobal({\n errors,\n global,\n locale,\n payload,\n })\n }\n }\n\n if (errors.length) {\n console.error(`Found ${errors.length} errors::`, JSON.stringify(errors, null, 2))\n } else {\n console.log('Migration successful - no errors')\n }\n}\n\nasync function migrateGlobal({\n errors,\n global,\n locale,\n payload,\n}: {\n errors: unknown[]\n global: GlobalConfig\n locale: null | string\n payload: Payload\n}) {\n console.log(`SlateToLexical: ${locale}: Migrating global:`, global.slug)\n\n const document = await payload.findGlobal({\n slug: global.slug,\n depth: 0,\n draft: true,\n locale: locale || undefined,\n overrideAccess: true,\n })\n\n const found = migrateDocument({\n document,\n fields: global.fields,\n })\n\n if (found) {\n try {\n await payload.updateGlobal({\n slug: global.slug,\n data: document,\n depth: 0,\n draft: document?._status === 'draft',\n locale: locale || undefined,\n })\n // Catch it, because some errors were caused by the user previously (e.g. invalid relationships) and will throw an error now, even though they are not related to the migration\n } catch (e) {\n console.log('Error updating global', e, {\n slug: global.slug,\n })\n errors.push(e)\n }\n }\n}\n\nasync function migrateCollection({\n collection,\n cur,\n errors,\n locale,\n max,\n payload,\n}: {\n collection: CollectionConfig\n cur: number\n errors: unknown[]\n locale: null | string\n max: number\n payload: Payload\n}) {\n console.log(\n `SlateToLexical: ${locale}: Migrating collection:`,\n collection.slug,\n '(' + cur + '/' + max + ')',\n )\n\n const documentCount = (\n await payload.count({\n collection: collection.slug,\n depth: 0,\n locale: locale || undefined,\n })\n ).totalDocs\n\n let page = 1\n let migrated = 0\n\n while (migrated < documentCount) {\n const documents = await payload.find({\n collection: collection.slug,\n depth: 0,\n draft: true,\n locale: locale || undefined,\n overrideAccess: true,\n page,\n pagination: true,\n })\n\n for (const document of documents.docs) {\n migrated++\n console.log(\n `SlateToLexical: ${locale}: Migrating collection:`,\n collection.slug,\n '(' +\n cur +\n '/' +\n max +\n ') - Migrating Document: ' +\n document.id +\n ' (' +\n migrated +\n '/' +\n documentCount +\n ')',\n )\n const found = migrateDocument({\n document,\n fields: collection.fields,\n })\n\n if (found) {\n try {\n await payload.update({\n id: document.id,\n collection: collection.slug,\n data: document,\n depth: 0,\n draft: document?._status === 'draft',\n locale: locale || undefined,\n })\n // Catch it, because some errors were caused by the user previously (e.g. invalid relationships) and will throw an error now, even though they are not related to the migration\n } catch (e) {\n errors.push(e)\n\n console.log('Error updating collection', e, {\n id: document.id,\n slug: collection.slug,\n })\n }\n }\n }\n page++\n }\n}\n\nfunction migrateDocument({\n document,\n fields,\n}: {\n document: Record<string, unknown>\n fields: Field[]\n}): boolean {\n return !!migrateDocumentFieldsRecursively({\n data: document,\n fields,\n found: 0,\n })\n}\n"],"mappings":"AAAA,+BAGA,SAASA,gCAAgC,QAAQ;AAEjD;;;;;;;;;;AAUA,OAAO,eAAeC,sBAAsB;EAAEC;AAAO,CAAwB;EAC3E,MAAMC,WAAA,GAAcD,OAAA,CAAQE,MAAM,CAACD,WAAW;EAE9C,MAAME,MAAA,GAAoB,EAAE;EAE5B,MAAMC,UAAA,GAAaJ,OAAA,CAAQE,MAAM,CAACG,YAAY,GAAGL,OAAA,CAAQE,MAAM,CAACG,YAAY,CAACC,WAAW,GAAG,CAAC,KAAK;EAEjG,MAAMC,gBAAA,GAAmBN,WAAA,CAAYO,MAAM;EAC3C,KAAK,MAAMC,MAAA,IAAUL,UAAA,EAAY;IAC/B,IAAIM,aAAA,GAAgB;IACpB,KAAK,MAAMC,UAAA,IAAcV,WAAA,EAAa;MACpCS,aAAA;MACA,MAAME,iBAAA,CAAkB;QACtBD,UAAA;QACAE,GAAA,EAAKH,aAAA;QACLP,MAAA;QACAM,MAAA;QACAK,GAAA,EAAKP,gBAAA;QACLP;MACF;IACF;IACA,KAAK,MAAMe,MAAA,IAAUf,OAAA,CAAQE,MAAM,CAACc,OAAO,EAAE;MAC3C,MAAMC,aAAA,CAAc;QAClBd,MAAA;QACAY,MAAA;QACAN,MAAA;QACAT;MACF;IACF;EACF;EAEA,IAAIG,MAAA,CAAOK,MAAM,EAAE;IACjBU,OAAA,CAAQC,KAAK,CAAC,SAAShB,MAAA,CAAOK,MAAM,WAAW,EAAEY,IAAA,CAAKC,SAAS,CAAClB,MAAA,EAAQ,MAAM;EAChF,OAAO;IACLe,OAAA,CAAQI,GAAG,CAAC;EACd;AACF;AAEA,eAAeL,cAAc;EAC3Bd,MAAM;EACNY,MAAM;EACNN,MAAM;EACNT;AAAO,CAMR;EACCkB,OAAA,CAAQI,GAAG,CAAC,mBAAmBb,MAAA,qBAA2B,EAAEM,MAAA,CAAOQ,IAAI;EAEvE,MAAMC,QAAA,GAAW,MAAMxB,OAAA,CAAQyB,UAAU,CAAC;IACxCF,IAAA,EAAMR,MAAA,CAAOQ,IAAI;IACjBG,KAAA,EAAO;IACPC,KAAA,EAAO;IACPlB,MAAA,EAAQA,MAAA,IAAUmB,SAAA;IAClBC,cAAA,EAAgB;EAClB;EAEA,MAAMC,KAAA,GAAQC,eAAA,CAAgB;IAC5BP,QAAA;IACAQ,MAAA,EAAQjB,MAAA,CAAOiB;EACjB;EAEA,IAAIF,KAAA,EAAO;IACT,IAAI;MACF,MAAM9B,OAAA,CAAQiC,YAAY,CAAC;QACzBV,IAAA,EAAMR,MAAA,CAAOQ,IAAI;QACjBW,IAAA,EAAMV,QAAA;QACNE,KAAA,EAAO;QACPC,KAAA,EAAOH,QAAA,EAAUW,OAAA,KAAY;QAC7B1B,MAAA,EAAQA,MAAA,IAAUmB;MACpB;MACA;IACF,EAAE,OAAOQ,CAAA,EAAG;MACVlB,OAAA,CAAQI,GAAG,CAAC,yBAAyBc,CAAA,EAAG;QACtCb,IAAA,EAAMR,MAAA,CAAOQ;MACf;MACApB,MAAA,CAAOkC,IAAI,CAACD,CAAA;IACd;EACF;AACF;AAEA,eAAexB,kBAAkB;EAC/BD,UAAU;EACVE,GAAG;EACHV,MAAM;EACNM,MAAM;EACNK,GAAG;EACHd;AAAO,CAQR;EACCkB,OAAA,CAAQI,GAAG,CACT,mBAAmBb,MAAA,yBAA+B,EAClDE,UAAA,CAAWY,IAAI,EACf,MAAMV,GAAA,GAAM,MAAMC,GAAA,GAAM;EAG1B,MAAMwB,aAAA,GAAgB,CACpB,MAAMtC,OAAA,CAAQuC,KAAK,CAAC;IAClB5B,UAAA,EAAYA,UAAA,CAAWY,IAAI;IAC3BG,KAAA,EAAO;IACPjB,MAAA,EAAQA,MAAA,IAAUmB;EACpB,EAAC,EACDY,SAAS;EAEX,IAAIC,IAAA,GAAO;EACX,IAAIC,QAAA,GAAW;EAEf,OAAOA,QAAA,GAAWJ,aAAA,EAAe;IAC/B,MAAMK,SAAA,GAAY,MAAM3C,OAAA,CAAQ4C,IAAI,CAAC;MACnCjC,UAAA,EAAYA,UAAA,CAAWY,IAAI;MAC3BG,KAAA,EAAO;MACPC,KAAA,EAAO;MACPlB,MAAA,EAAQA,MAAA,IAAUmB,SAAA;MAClBC,cAAA,EAAgB;MAChBY,IAAA;MACAI,UAAA,EAAY;IACd;IAEA,KAAK,MAAMrB,QAAA,IAAYmB,SAAA,CAAUG,IAAI,EAAE;MACrCJ,QAAA;MACAxB,OAAA,CAAQI,GAAG,CACT,mBAAmBb,MAAA,yBAA+B,EAClDE,UAAA,CAAWY,IAAI,EACf,MACEV,GAAA,GACA,MACAC,GAAA,GACA,6BACAU,QAAA,CAASuB,EAAE,GACX,OACAL,QAAA,GACA,MACAJ,aAAA,GACA;MAEJ,MAAMR,KAAA,GAAQC,eAAA,CAAgB;QAC5BP,QAAA;QACAQ,MAAA,EAAQrB,UAAA,CAAWqB;MACrB;MAEA,IAAIF,KAAA,EAAO;QACT,IAAI;UACF,MAAM9B,OAAA,CAAQgD,MAAM,CAAC;YACnBD,EAAA,EAAIvB,QAAA,CAASuB,EAAE;YACfpC,UAAA,EAAYA,UAAA,CAAWY,IAAI;YAC3BW,IAAA,EAAMV,QAAA;YACNE,KAAA,EAAO;YACPC,KAAA,EAAOH,QAAA,EAAUW,OAAA,KAAY;YAC7B1B,MAAA,EAAQA,MAAA,IAAUmB;UACpB;UACA;QACF,EAAE,OAAOQ,CAAA,EAAG;UACVjC,MAAA,CAAOkC,IAAI,CAACD,CAAA;UAEZlB,OAAA,CAAQI,GAAG,CAAC,6BAA6Bc,CAAA,EAAG;YAC1CW,EAAA,EAAIvB,QAAA,CAASuB,EAAE;YACfxB,IAAA,EAAMZ,UAAA,CAAWY;UACnB;QACF;MACF;IACF;IACAkB,IAAA;EACF;AACF;AAEA,SAASV,gBAAgB;EACvBP,QAAQ;EACRQ;AAAM,CAIP;EACC,OAAO,CAAC,CAAClC,gCAAA,CAAiC;IACxCoC,IAAA,EAAMV,QAAA;IACNQ,MAAA;IACAF,KAAA,EAAO;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["migrateDocumentFieldsRecursively","migrateSlateToLexical","payload","collections","config","errors","allLocales","localization","localeCodes","totalCollections","length","locale","curCollection","collection","migrateCollection","cur","max","global","globals","migrateGlobal","console","error","JSON","stringify","log","slug","document","findGlobal","depth","draft","undefined","overrideAccess","found","migrateDocument","fields","updateGlobal","data","_status","e","push","documentCount","count","totalDocs","page","migrated","documents","find","pagination","docs","id","update"],"sources":["../../../src/utilities/migrateSlateToLexical/index.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport type { CollectionConfig, Field, GlobalConfig, Payload } from 'payload'\n\nimport { migrateDocumentFieldsRecursively } from './migrateDocumentFieldsRecursively.js'\n\n/**\n * This goes through every single collection and field in the payload config, and migrates its data from Slate to Lexical. This does not support sub-fields within slate.\n *\n * It will only translate fields fulfilling all these requirements:\n * - field schema uses lexical editor\n * - lexical editor has SlateToLexicalFeature added\n * - saved field data is in Slate format\n *\n * @param payload\n */\nexport async function migrateSlateToLexical({ payload }: { payload: Payload }) {\n const collections = payload.config.collections\n\n const errors: unknown[] = []\n\n const allLocales = payload.config.localization ? payload.config.localization.localeCodes : [null]\n\n const totalCollections = collections.length\n for (const locale of allLocales) {\n let curCollection = 0\n for (const collection of collections) {\n curCollection++\n await migrateCollection({\n collection,\n cur: curCollection,\n errors,\n locale,\n max: totalCollections,\n payload,\n })\n }\n for (const global of payload.config.globals) {\n await migrateGlobal({\n errors,\n global,\n locale,\n payload,\n })\n }\n }\n\n if (errors.length) {\n console.error(`Found ${errors.length} errors::`, JSON.stringify(errors, null, 2))\n } else {\n console.log('Migration successful - no errors')\n }\n}\n\nasync function migrateGlobal({\n errors,\n global,\n locale,\n payload,\n}: {\n errors: unknown[]\n global: GlobalConfig\n locale: null | string\n payload: Payload\n}) {\n console.log(`SlateToLexical: ${locale}: Migrating global:`, global.slug)\n\n const document = await payload.findGlobal({\n slug: global.slug,\n depth: 0,\n draft: true,\n locale: locale || undefined,\n overrideAccess: true,\n })\n\n const found = migrateDocument({\n document,\n fields: global.fields,\n payload,\n })\n\n if (found) {\n try {\n await payload.updateGlobal({\n slug: global.slug,\n data: document,\n depth: 0,\n draft: document?._status === 'draft',\n locale: locale || undefined,\n })\n // Catch it, because some errors were caused by the user previously (e.g. invalid relationships) and will throw an error now, even though they are not related to the migration\n } catch (e) {\n console.log('Error updating global', e, {\n slug: global.slug,\n })\n errors.push(e)\n }\n }\n}\n\nasync function migrateCollection({\n collection,\n cur,\n errors,\n locale,\n max,\n payload,\n}: {\n collection: CollectionConfig\n cur: number\n errors: unknown[]\n locale: null | string\n max: number\n payload: Payload\n}) {\n console.log(\n `SlateToLexical: ${locale}: Migrating collection:`,\n collection.slug,\n '(' + cur + '/' + max + ')',\n )\n\n const documentCount = (\n await payload.count({\n collection: collection.slug,\n depth: 0,\n locale: locale || undefined,\n })\n ).totalDocs\n\n let page = 1\n let migrated = 0\n\n while (migrated < documentCount) {\n const documents = await payload.find({\n collection: collection.slug,\n depth: 0,\n draft: true,\n locale: locale || undefined,\n overrideAccess: true,\n page,\n pagination: true,\n })\n\n for (const document of documents.docs) {\n migrated++\n console.log(\n `SlateToLexical: ${locale}: Migrating collection:`,\n collection.slug,\n '(' +\n cur +\n '/' +\n max +\n ') - Migrating Document: ' +\n document.id +\n ' (' +\n migrated +\n '/' +\n documentCount +\n ')',\n )\n const found = migrateDocument({\n document,\n fields: collection.fields,\n payload,\n })\n\n if (found) {\n try {\n await payload.update({\n id: document.id,\n collection: collection.slug,\n data: document,\n depth: 0,\n draft: document?._status === 'draft',\n locale: locale || undefined,\n })\n // Catch it, because some errors were caused by the user previously (e.g. invalid relationships) and will throw an error now, even though they are not related to the migration\n } catch (e) {\n errors.push(e)\n\n console.log('Error updating collection', e, {\n id: document.id,\n slug: collection.slug,\n })\n }\n }\n }\n page++\n }\n}\n\nfunction migrateDocument({\n document,\n fields,\n payload,\n}: {\n document: Record<string, unknown>\n fields: Field[]\n payload: Payload\n}): boolean {\n return !!migrateDocumentFieldsRecursively({\n data: document,\n fields,\n found: 0,\n payload,\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,10 @@
1
- import type { Field } from 'payload';
1
+ import type { Field, Payload } from 'payload';
2
2
  type NestedRichTextFieldsArgs = {
3
3
  data: Record<string, unknown>;
4
4
  fields: Field[];
5
5
  found: number;
6
+ payload: Payload;
6
7
  };
7
- export declare const migrateDocumentFieldsRecursively: ({ data, fields, found, }: NestedRichTextFieldsArgs) => number;
8
+ export declare const migrateDocumentFieldsRecursively: ({ data, fields, found, payload, }: NestedRichTextFieldsArgs) => number;
8
9
  export {};
9
10
  //# sourceMappingURL=migrateDocumentFieldsRecursively.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrateDocumentFieldsRecursively.d.ts","sourceRoot":"","sources":["../../../src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAYpC,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE7B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,gCAAgC,6BAI1C,wBAAwB,KAAG,MA4E7B,CAAA"}
1
+ {"version":3,"file":"migrateDocumentFieldsRecursively.d.ts","sourceRoot":"","sources":["../../../src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAkB,OAAO,EAAE,MAAM,SAAS,CAAA;AAY7D,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE7B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,gCAAgC,sCAK1C,wBAAwB,KAAG,MAuF7B,CAAA"}
@@ -3,7 +3,8 @@ import { convertSlateToLexical } from '../../features/migrations/slateToLexical/
3
3
  export const migrateDocumentFieldsRecursively = ({
4
4
  data,
5
5
  fields,
6
- found
6
+ found,
7
+ payload
7
8
  }) => {
8
9
  for (const field of fields) {
9
10
  if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {
@@ -11,13 +12,15 @@ export const migrateDocumentFieldsRecursively = ({
11
12
  found += migrateDocumentFieldsRecursively({
12
13
  data: data[field.name],
13
14
  fields: field.fields,
14
- found
15
+ found,
16
+ payload
15
17
  });
16
18
  } else {
17
19
  found += migrateDocumentFieldsRecursively({
18
20
  data,
19
21
  fields: field.fields,
20
- found
22
+ found,
23
+ payload
21
24
  });
22
25
  }
23
26
  } else if (field.type === 'tabs') {
@@ -25,30 +28,32 @@ export const migrateDocumentFieldsRecursively = ({
25
28
  found += migrateDocumentFieldsRecursively({
26
29
  data: tabHasName(tab) ? data[tab.name] : data,
27
30
  fields: tab.fields,
28
- found
31
+ found,
32
+ payload
29
33
  });
30
34
  });
31
35
  } else if (Array.isArray(data[field.name])) {
32
36
  if (field.type === 'blocks') {
33
- data[field.name].forEach((row, i) => {
34
- const block = field.blocks.find(({
35
- slug
36
- }) => slug === row?.blockType);
37
+ data[field.name].forEach(row => {
38
+ const blockTypeToMatch = row?.blockType;
39
+ const block = payload?.blocks[blockTypeToMatch] ?? (field.blockReferences ?? field.blocks).find(block => typeof block !== 'string' && block.slug === blockTypeToMatch);
37
40
  if (block) {
38
41
  found += migrateDocumentFieldsRecursively({
39
- data: data[field.name][i],
42
+ data: row,
40
43
  fields: block.fields,
41
- found
44
+ found,
45
+ payload
42
46
  });
43
47
  }
44
48
  });
45
49
  }
46
50
  if (field.type === 'array') {
47
- data[field.name].forEach((_, i) => {
51
+ data[field.name].forEach(row => {
48
52
  found += migrateDocumentFieldsRecursively({
49
- data: data[field.name][i],
53
+ data: row,
50
54
  fields: field.fields,
51
- found
55
+ found,
56
+ payload
52
57
  });
53
58
  });
54
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migrateDocumentFieldsRecursively.js","names":["fieldAffectsData","fieldHasSubFields","fieldIsArrayType","tabHasName","convertSlateToLexical","migrateDocumentFieldsRecursively","data","fields","found","field","name","type","tabs","forEach","tab","Array","isArray","row","i","block","blocks","find","slug","blockType","_","editor","features","length","slateToLexicalFeature","editorConfig","resolvedFeatureMap","get","converters","sanitizedServerFeatureProps","slateData"],"sources":["../../../src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nimport { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared'\n\nimport type {\n SlateNode,\n SlateNodeConverter,\n} from '../../features/migrations/slateToLexical/converter/types.js'\nimport type { LexicalRichTextAdapter } from '../../types.js'\n\nimport { convertSlateToLexical } from '../../features/migrations/slateToLexical/converter/index.js'\n\ntype NestedRichTextFieldsArgs = {\n data: Record<string, unknown>\n\n fields: Field[]\n found: number\n}\n\nexport const migrateDocumentFieldsRecursively = ({\n data,\n fields,\n found,\n}: NestedRichTextFieldsArgs): number => {\n for (const field of fields) {\n if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {\n if (fieldAffectsData(field) && typeof data[field.name] === 'object') {\n found += migrateDocumentFieldsRecursively({\n data: data[field.name] as Record<string, unknown>,\n fields: field.fields,\n found,\n })\n } else {\n found += migrateDocumentFieldsRecursively({\n data,\n fields: field.fields,\n found,\n })\n }\n } else if (field.type === 'tabs') {\n field.tabs.forEach((tab) => {\n found += migrateDocumentFieldsRecursively({\n data: (tabHasName(tab) ? data[tab.name] : data) as Record<string, unknown>,\n fields: tab.fields,\n found,\n })\n })\n } else if (Array.isArray(data[field.name])) {\n if (field.type === 'blocks') {\n ;(data[field.name] as Array<Record<string, unknown>>).forEach((row, i) => {\n const block = field.blocks.find(({ slug }) => slug === row?.blockType)\n if (block) {\n found += migrateDocumentFieldsRecursively({\n data: (data[field.name] as Array<Record<string, unknown>>)[i],\n fields: block.fields,\n found,\n })\n }\n })\n }\n\n if (field.type === 'array') {\n ;(data[field.name] as Array<Record<string, unknown>>).forEach((_, i) => {\n found += migrateDocumentFieldsRecursively({\n data: (data[field.name] as Array<Record<string, unknown>>)[i],\n fields: field.fields,\n found,\n })\n })\n }\n }\n\n if (field.type === 'richText' && Array.isArray(data[field.name])) {\n // Slate richText\n const editor: LexicalRichTextAdapter = field.editor as LexicalRichTextAdapter\n if (editor && typeof editor === 'object') {\n if ('features' in editor && editor.features?.length) {\n // find slatetolexical feature\n const slateToLexicalFeature = editor.editorConfig.resolvedFeatureMap.get('slateToLexical')\n if (slateToLexicalFeature) {\n // DO CONVERSION\n\n const { converters } = slateToLexicalFeature.sanitizedServerFeatureProps as {\n converters?: SlateNodeConverter[]\n }\n\n data[field.name] = convertSlateToLexical({\n converters: converters!,\n slateData: data[field.name] as SlateNode[],\n })\n\n found++\n }\n }\n }\n }\n }\n\n return found\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"migrateDocumentFieldsRecursively.js","names":["fieldAffectsData","fieldHasSubFields","fieldIsArrayType","tabHasName","convertSlateToLexical","migrateDocumentFieldsRecursively","data","fields","found","payload","field","name","type","tabs","forEach","tab","Array","isArray","row","blockTypeToMatch","blockType","block","blocks","blockReferences","find","slug","editor","features","length","slateToLexicalFeature","editorConfig","resolvedFeatureMap","get","converters","sanitizedServerFeatureProps","slateData"],"sources":["../../../src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts"],"sourcesContent":["import type { Field, FlattenedBlock, Payload } from 'payload'\n\nimport { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared'\n\nimport type {\n SlateNode,\n SlateNodeConverter,\n} from '../../features/migrations/slateToLexical/converter/types.js'\nimport type { LexicalRichTextAdapter } from '../../types.js'\n\nimport { convertSlateToLexical } from '../../features/migrations/slateToLexical/converter/index.js'\n\ntype NestedRichTextFieldsArgs = {\n data: Record<string, unknown>\n\n fields: Field[]\n found: number\n payload: Payload\n}\n\nexport const migrateDocumentFieldsRecursively = ({\n data,\n fields,\n found,\n payload,\n}: NestedRichTextFieldsArgs): number => {\n for (const field of fields) {\n if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {\n if (fieldAffectsData(field) && typeof data[field.name] === 'object') {\n found += migrateDocumentFieldsRecursively({\n data: data[field.name] as Record<string, unknown>,\n fields: field.fields,\n found,\n payload,\n })\n } else {\n found += migrateDocumentFieldsRecursively({\n data,\n fields: field.fields,\n found,\n payload,\n })\n }\n } else if (field.type === 'tabs') {\n field.tabs.forEach((tab) => {\n found += migrateDocumentFieldsRecursively({\n data: (tabHasName(tab) ? data[tab.name] : data) as Record<string, unknown>,\n fields: tab.fields,\n found,\n payload,\n })\n })\n } else if (Array.isArray(data[field.name])) {\n if (field.type === 'blocks') {\n ;(data[field.name] as Array<Record<string, unknown>>).forEach((row) => {\n const blockTypeToMatch: string = row?.blockType as string\n const block =\n payload?.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (block) {\n found += migrateDocumentFieldsRecursively({\n data: row,\n fields: block.fields,\n found,\n payload,\n })\n }\n })\n }\n\n if (field.type === 'array') {\n ;(data[field.name] as Array<Record<string, unknown>>).forEach((row) => {\n found += migrateDocumentFieldsRecursively({\n data: row,\n fields: field.fields,\n found,\n payload,\n })\n })\n }\n }\n\n if (field.type === 'richText' && Array.isArray(data[field.name])) {\n // Slate richText\n const editor: LexicalRichTextAdapter = field.editor as LexicalRichTextAdapter\n if (editor && typeof editor === 'object') {\n if ('features' in editor && editor.features?.length) {\n // find slatetolexical feature\n const slateToLexicalFeature = editor.editorConfig.resolvedFeatureMap.get('slateToLexical')\n if (slateToLexicalFeature) {\n // DO CONVERSION\n\n const { converters } = slateToLexicalFeature.sanitizedServerFeatureProps as {\n converters?: SlateNodeConverter[]\n }\n\n data[field.name] = convertSlateToLexical({\n converters: converters!,\n slateData: data[field.name] as SlateNode[],\n })\n\n found++\n }\n }\n }\n }\n }\n\n return found\n}\n"],"mappings":"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","ignoreList":[]}
@@ -46,7 +46,8 @@ async function upgradeGlobal({
46
46
  });
47
47
  const found = upgradeDocument({
48
48
  document,
49
- fields: global.fields
49
+ fields: global.fields,
50
+ payload
50
51
  });
51
52
  if (found) {
52
53
  await payload.updateGlobal({
@@ -86,7 +87,8 @@ async function upgradeCollection({
86
87
  console.log(`Lexical Upgrade: ${locale}: Upgrading collection:`, collection.slug, '(' + cur + '/' + max + ') - Upgrading Document: ' + document.id + ' (' + upgraded + '/' + documentCount + ')');
87
88
  const found = upgradeDocument({
88
89
  document,
89
- fields: collection.fields
90
+ fields: collection.fields,
91
+ payload
90
92
  });
91
93
  if (found) {
92
94
  await payload.update({
@@ -103,12 +105,14 @@ async function upgradeCollection({
103
105
  }
104
106
  function upgradeDocument({
105
107
  document,
106
- fields
108
+ fields,
109
+ payload
107
110
  }) {
108
111
  return !!upgradeDocumentFieldsRecursively({
109
112
  data: document,
110
113
  fields,
111
- found: 0
114
+ found: 0,
115
+ payload
112
116
  });
113
117
  }
114
118
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["upgradeDocumentFieldsRecursively","upgradeLexicalData","payload","collections","config","allLocales","localization","localeCodes","totalCollections","length","locale","curCollection","collection","upgradeCollection","cur","max","global","globals","upgradeGlobal","console","log","slug","document","findGlobal","depth","undefined","overrideAccess","found","upgradeDocument","fields","updateGlobal","data","documentCount","count","totalDocs","page","upgraded","documents","find","pagination","docs","id","update"],"sources":["../../../src/utilities/upgradeLexicalData/index.ts"],"sourcesContent":["import type { CollectionConfig, Field, GlobalConfig, Payload } from 'payload'\n\nimport { upgradeDocumentFieldsRecursively } from './upgradeDocumentFieldsRecursively.js'\n\n/**\n * This goes through every single document in your payload app and re-saves it, if it has a lexical editor.\n * This way, the data is automatically converted to the new format, and that automatic conversion gets applied to every single document in your app.\n *\n * @param payload\n */\nexport async function upgradeLexicalData({ payload }: { payload: Payload }) {\n const collections = payload.config.collections\n\n const allLocales = payload.config.localization ? payload.config.localization.localeCodes : [null]\n\n const totalCollections = collections.length\n for (const locale of allLocales) {\n let curCollection = 0\n for (const collection of collections) {\n curCollection++\n await upgradeCollection({\n collection,\n cur: curCollection,\n locale,\n max: totalCollections,\n payload,\n })\n }\n for (const global of payload.config.globals) {\n await upgradeGlobal({\n global,\n locale,\n payload,\n })\n }\n }\n}\n\nasync function upgradeGlobal({\n global,\n locale,\n payload,\n}: {\n global: GlobalConfig\n locale: null | string\n payload: Payload\n}) {\n console.log(`Lexical Upgrader: ${locale}: Upgrading global:`, global.slug)\n\n const document = await payload.findGlobal({\n slug: global.slug,\n depth: 0,\n locale: locale || undefined,\n overrideAccess: true,\n })\n\n const found = upgradeDocument({\n document,\n fields: global.fields,\n })\n\n if (found) {\n await payload.updateGlobal({\n slug: global.slug,\n data: document,\n depth: 0,\n locale: locale || undefined,\n })\n }\n}\n\nasync function upgradeCollection({\n collection,\n cur,\n locale,\n max,\n payload,\n}: {\n collection: CollectionConfig\n cur: number\n locale: null | string\n max: number\n payload: Payload\n}) {\n console.log(\n `Lexical Upgrade: ${locale}: Upgrading collection:`,\n collection.slug,\n '(' + cur + '/' + max + ')',\n )\n\n const documentCount = (\n await payload.count({\n collection: collection.slug,\n depth: 0,\n locale: locale || undefined,\n })\n ).totalDocs\n\n let page = 1\n let upgraded = 0\n\n while (upgraded < documentCount) {\n const documents = await payload.find({\n collection: collection.slug,\n depth: 0,\n locale: locale || undefined,\n overrideAccess: true,\n page,\n pagination: true,\n })\n\n for (const document of documents.docs) {\n upgraded++\n console.log(\n `Lexical Upgrade: ${locale}: Upgrading collection:`,\n collection.slug,\n '(' +\n cur +\n '/' +\n max +\n ') - Upgrading Document: ' +\n document.id +\n ' (' +\n upgraded +\n '/' +\n documentCount +\n ')',\n )\n const found = upgradeDocument({\n document,\n fields: collection.fields,\n })\n\n if (found) {\n await payload.update({\n id: document.id,\n collection: collection.slug,\n data: document,\n depth: 0,\n locale: locale || undefined,\n })\n }\n }\n page++\n }\n}\n\nfunction upgradeDocument({\n document,\n fields,\n}: {\n document: Record<string, unknown>\n fields: Field[]\n}): boolean {\n return !!upgradeDocumentFieldsRecursively({\n data: document,\n fields,\n found: 0,\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["upgradeDocumentFieldsRecursively","upgradeLexicalData","payload","collections","config","allLocales","localization","localeCodes","totalCollections","length","locale","curCollection","collection","upgradeCollection","cur","max","global","globals","upgradeGlobal","console","log","slug","document","findGlobal","depth","undefined","overrideAccess","found","upgradeDocument","fields","updateGlobal","data","documentCount","count","totalDocs","page","upgraded","documents","find","pagination","docs","id","update"],"sources":["../../../src/utilities/upgradeLexicalData/index.ts"],"sourcesContent":["import type { CollectionConfig, Field, GlobalConfig, Payload } from 'payload'\n\nimport { upgradeDocumentFieldsRecursively } from './upgradeDocumentFieldsRecursively.js'\n\n/**\n * This goes through every single document in your payload app and re-saves it, if it has a lexical editor.\n * This way, the data is automatically converted to the new format, and that automatic conversion gets applied to every single document in your app.\n *\n * @param payload\n */\nexport async function upgradeLexicalData({ payload }: { payload: Payload }) {\n const collections = payload.config.collections\n\n const allLocales = payload.config.localization ? payload.config.localization.localeCodes : [null]\n\n const totalCollections = collections.length\n for (const locale of allLocales) {\n let curCollection = 0\n for (const collection of collections) {\n curCollection++\n await upgradeCollection({\n collection,\n cur: curCollection,\n locale,\n max: totalCollections,\n payload,\n })\n }\n for (const global of payload.config.globals) {\n await upgradeGlobal({\n global,\n locale,\n payload,\n })\n }\n }\n}\n\nasync function upgradeGlobal({\n global,\n locale,\n payload,\n}: {\n global: GlobalConfig\n locale: null | string\n payload: Payload\n}) {\n console.log(`Lexical Upgrader: ${locale}: Upgrading global:`, global.slug)\n\n const document = await payload.findGlobal({\n slug: global.slug,\n depth: 0,\n locale: locale || undefined,\n overrideAccess: true,\n })\n\n const found = upgradeDocument({\n document,\n fields: global.fields,\n payload,\n })\n\n if (found) {\n await payload.updateGlobal({\n slug: global.slug,\n data: document,\n depth: 0,\n locale: locale || undefined,\n })\n }\n}\n\nasync function upgradeCollection({\n collection,\n cur,\n locale,\n max,\n payload,\n}: {\n collection: CollectionConfig\n cur: number\n locale: null | string\n max: number\n payload: Payload\n}) {\n console.log(\n `Lexical Upgrade: ${locale}: Upgrading collection:`,\n collection.slug,\n '(' + cur + '/' + max + ')',\n )\n\n const documentCount = (\n await payload.count({\n collection: collection.slug,\n depth: 0,\n locale: locale || undefined,\n })\n ).totalDocs\n\n let page = 1\n let upgraded = 0\n\n while (upgraded < documentCount) {\n const documents = await payload.find({\n collection: collection.slug,\n depth: 0,\n locale: locale || undefined,\n overrideAccess: true,\n page,\n pagination: true,\n })\n\n for (const document of documents.docs) {\n upgraded++\n console.log(\n `Lexical Upgrade: ${locale}: Upgrading collection:`,\n collection.slug,\n '(' +\n cur +\n '/' +\n max +\n ') - Upgrading Document: ' +\n document.id +\n ' (' +\n upgraded +\n '/' +\n documentCount +\n ')',\n )\n const found = upgradeDocument({\n document,\n fields: collection.fields,\n payload,\n })\n\n if (found) {\n await payload.update({\n id: document.id,\n collection: collection.slug,\n data: document,\n depth: 0,\n locale: locale || undefined,\n })\n }\n }\n page++\n }\n}\n\nfunction upgradeDocument({\n document,\n fields,\n payload,\n}: {\n document: Record<string, unknown>\n fields: Field[]\n payload: Payload\n}): boolean {\n return !!upgradeDocumentFieldsRecursively({\n data: document,\n fields,\n found: 0,\n payload,\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,10 @@
1
- import type { Field } from 'payload';
1
+ import type { Field, Payload } from 'payload';
2
2
  type NestedRichTextFieldsArgs = {
3
3
  data: Record<string, unknown>;
4
4
  fields: Field[];
5
5
  found: number;
6
+ payload: Payload;
6
7
  };
7
- export declare const upgradeDocumentFieldsRecursively: ({ data, fields, found, }: NestedRichTextFieldsArgs) => number;
8
+ export declare const upgradeDocumentFieldsRecursively: ({ data, fields, found, payload, }: NestedRichTextFieldsArgs) => number;
8
9
  export {};
9
10
  //# sourceMappingURL=upgradeDocumentFieldsRecursively.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgradeDocumentFieldsRecursively.d.ts","sourceRoot":"","sources":["../../../src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AASpC,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE7B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,gCAAgC,6BAI1C,wBAAwB,KAAG,MAoF7B,CAAA"}
1
+ {"version":3,"file":"upgradeDocumentFieldsRecursively.d.ts","sourceRoot":"","sources":["../../../src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAkB,OAAO,EAAE,MAAM,SAAS,CAAA;AAS7D,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE7B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,gCAAgC,sCAK1C,wBAAwB,KAAG,MAgG7B,CAAA"}
@@ -4,7 +4,8 @@ import { getEnabledNodes } from '../../lexical/nodes/index.js';
4
4
  export const upgradeDocumentFieldsRecursively = ({
5
5
  data,
6
6
  fields,
7
- found
7
+ found,
8
+ payload
8
9
  }) => {
9
10
  for (const field of fields) {
10
11
  if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {
@@ -12,13 +13,15 @@ export const upgradeDocumentFieldsRecursively = ({
12
13
  found += upgradeDocumentFieldsRecursively({
13
14
  data: data[field.name],
14
15
  fields: field.fields,
15
- found
16
+ found,
17
+ payload
16
18
  });
17
19
  } else {
18
20
  found += upgradeDocumentFieldsRecursively({
19
21
  data,
20
22
  fields: field.fields,
21
- found
23
+ found,
24
+ payload
22
25
  });
23
26
  }
24
27
  } else if (field.type === 'tabs') {
@@ -26,30 +29,32 @@ export const upgradeDocumentFieldsRecursively = ({
26
29
  found += upgradeDocumentFieldsRecursively({
27
30
  data: tabHasName(tab) ? data[tab.name] : data,
28
31
  fields: tab.fields,
29
- found
32
+ found,
33
+ payload
30
34
  });
31
35
  });
32
36
  } else if (Array.isArray(data[field.name])) {
33
37
  if (field.type === 'blocks') {
34
- data[field.name].forEach((row, i) => {
35
- const block = field.blocks.find(({
36
- slug
37
- }) => slug === row?.blockType);
38
+ data[field.name].forEach(row => {
39
+ const blockTypeToMatch = row?.blockType;
40
+ const block = payload.blocks[blockTypeToMatch] ?? (field.blockReferences ?? field.blocks).find(block => typeof block !== 'string' && block.slug === blockTypeToMatch);
38
41
  if (block) {
39
42
  found += upgradeDocumentFieldsRecursively({
40
- data: data[field.name][i],
43
+ data: row,
41
44
  fields: block.fields,
42
- found
45
+ found,
46
+ payload
43
47
  });
44
48
  }
45
49
  });
46
50
  }
47
51
  if (field.type === 'array') {
48
- data[field.name].forEach((_, i) => {
52
+ data[field.name].forEach(row => {
49
53
  found += upgradeDocumentFieldsRecursively({
50
- data: data[field.name][i],
54
+ data: row,
51
55
  fields: field.fields,
52
- found
56
+ found,
57
+ payload
53
58
  });
54
59
  });
55
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"upgradeDocumentFieldsRecursively.js","names":["createHeadlessEditor","fieldAffectsData","fieldHasSubFields","fieldIsArrayType","tabHasName","getEnabledNodes","upgradeDocumentFieldsRecursively","data","fields","found","field","name","type","tabs","forEach","tab","Array","isArray","row","i","block","blocks","find","slug","blockType","_","editor","features","length","editorState","headlessEditor","nodes","editorConfig","update","setEditorState","parseEditorState","discrete","getEditorState","toJSON"],"sources":["../../../src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { Field } from 'payload'\n\nimport { createHeadlessEditor } from '@lexical/headless'\nimport { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared'\n\nimport type { LexicalRichTextAdapter } from '../../types.js'\n\nimport { getEnabledNodes } from '../../lexical/nodes/index.js'\n\ntype NestedRichTextFieldsArgs = {\n data: Record<string, unknown>\n\n fields: Field[]\n found: number\n}\n\nexport const upgradeDocumentFieldsRecursively = ({\n data,\n fields,\n found,\n}: NestedRichTextFieldsArgs): number => {\n for (const field of fields) {\n if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {\n if (fieldAffectsData(field) && typeof data[field.name] === 'object') {\n found += upgradeDocumentFieldsRecursively({\n data: data[field.name] as Record<string, unknown>,\n fields: field.fields,\n found,\n })\n } else {\n found += upgradeDocumentFieldsRecursively({\n data,\n fields: field.fields,\n found,\n })\n }\n } else if (field.type === 'tabs') {\n field.tabs.forEach((tab) => {\n found += upgradeDocumentFieldsRecursively({\n data: (tabHasName(tab) ? data[tab.name] : data) as Record<string, unknown>,\n fields: tab.fields,\n found,\n })\n })\n } else if (Array.isArray(data[field.name])) {\n if (field.type === 'blocks') {\n ;(data[field.name] as Record<string, unknown>[]).forEach((row, i) => {\n const block = field.blocks.find(({ slug }) => slug === row?.blockType)\n if (block) {\n found += upgradeDocumentFieldsRecursively({\n data: (data[field.name] as Record<string, unknown>[])[i],\n fields: block.fields,\n found,\n })\n }\n })\n }\n\n if (field.type === 'array') {\n ;(data[field.name] as Record<string, unknown>[]).forEach((_, i) => {\n found += upgradeDocumentFieldsRecursively({\n data: (data[field.name] as Record<string, unknown>[])[i],\n fields: field.fields,\n found,\n })\n })\n }\n }\n\n if (\n field.type === 'richText' &&\n data[field.name] &&\n !Array.isArray(data[field.name]) &&\n 'root' in (data[field.name] as Record<string, unknown>)\n ) {\n // Lexical richText\n const editor: LexicalRichTextAdapter = field.editor as LexicalRichTextAdapter\n if (editor && typeof editor === 'object') {\n if ('features' in editor && editor.features?.length) {\n // Load lexical editor into lexical, then save it immediately\n const editorState = data[field.name] as SerializedEditorState\n\n const headlessEditor = createHeadlessEditor({\n nodes: getEnabledNodes({\n editorConfig: editor.editorConfig,\n }),\n })\n headlessEditor.update(\n () => {\n headlessEditor.setEditorState(headlessEditor.parseEditorState(editorState))\n },\n { discrete: true },\n )\n\n // get editor state\n data[field.name] = headlessEditor.getEditorState().toJSON()\n\n found++\n }\n }\n }\n }\n\n return found\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"upgradeDocumentFieldsRecursively.js","names":["createHeadlessEditor","fieldAffectsData","fieldHasSubFields","fieldIsArrayType","tabHasName","getEnabledNodes","upgradeDocumentFieldsRecursively","data","fields","found","payload","field","name","type","tabs","forEach","tab","Array","isArray","row","blockTypeToMatch","blockType","block","blocks","blockReferences","find","slug","editor","features","length","editorState","headlessEditor","nodes","editorConfig","update","setEditorState","parseEditorState","discrete","getEditorState","toJSON"],"sources":["../../../src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts"],"sourcesContent":["import type { SerializedEditorState } from 'lexical'\nimport type { Field, FlattenedBlock, Payload } from 'payload'\n\nimport { createHeadlessEditor } from '@lexical/headless'\nimport { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared'\n\nimport type { LexicalRichTextAdapter } from '../../types.js'\n\nimport { getEnabledNodes } from '../../lexical/nodes/index.js'\n\ntype NestedRichTextFieldsArgs = {\n data: Record<string, unknown>\n\n fields: Field[]\n found: number\n payload: Payload\n}\n\nexport const upgradeDocumentFieldsRecursively = ({\n data,\n fields,\n found,\n payload,\n}: NestedRichTextFieldsArgs): number => {\n for (const field of fields) {\n if (fieldHasSubFields(field) && !fieldIsArrayType(field)) {\n if (fieldAffectsData(field) && typeof data[field.name] === 'object') {\n found += upgradeDocumentFieldsRecursively({\n data: data[field.name] as Record<string, unknown>,\n fields: field.fields,\n found,\n payload,\n })\n } else {\n found += upgradeDocumentFieldsRecursively({\n data,\n fields: field.fields,\n found,\n payload,\n })\n }\n } else if (field.type === 'tabs') {\n field.tabs.forEach((tab) => {\n found += upgradeDocumentFieldsRecursively({\n data: (tabHasName(tab) ? data[tab.name] : data) as Record<string, unknown>,\n fields: tab.fields,\n found,\n payload,\n })\n })\n } else if (Array.isArray(data[field.name])) {\n if (field.type === 'blocks') {\n ;(data[field.name] as Record<string, unknown>[]).forEach((row) => {\n const blockTypeToMatch: string = row?.blockType as string\n\n const block =\n payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (block) {\n found += upgradeDocumentFieldsRecursively({\n data: row,\n fields: block.fields,\n found,\n payload,\n })\n }\n })\n }\n\n if (field.type === 'array') {\n ;(data[field.name] as Record<string, unknown>[]).forEach((row) => {\n found += upgradeDocumentFieldsRecursively({\n data: row,\n fields: field.fields,\n found,\n payload,\n })\n })\n }\n }\n\n if (\n field.type === 'richText' &&\n data[field.name] &&\n !Array.isArray(data[field.name]) &&\n 'root' in (data[field.name] as Record<string, unknown>)\n ) {\n // Lexical richText\n const editor: LexicalRichTextAdapter = field.editor as LexicalRichTextAdapter\n if (editor && typeof editor === 'object') {\n if ('features' in editor && editor.features?.length) {\n // Load lexical editor into lexical, then save it immediately\n const editorState = data[field.name] as SerializedEditorState\n\n const headlessEditor = createHeadlessEditor({\n nodes: getEnabledNodes({\n editorConfig: editor.editorConfig,\n }),\n })\n headlessEditor.update(\n () => {\n headlessEditor.setEditorState(headlessEditor.parseEditorState(editorState))\n },\n { discrete: true },\n )\n\n // get editor state\n data[field.name] = headlessEditor.getEditorState().toJSON()\n\n found++\n }\n }\n }\n }\n\n return found\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,7 @@ export function hasText(value) {
8
8
  hasOnlyEmptyParagraph = true;
9
9
  } else if (paragraphNode?.children?.length === 1) {
10
10
  const paragraphNodeChild = paragraphNode?.children[0];
11
- if (paragraphNodeChild.type === 'text') {
11
+ if (paragraphNodeChild?.type === 'text') {
12
12
  if (!paragraphNodeChild?.['text']?.length) {
13
13
  hasOnlyEmptyParagraph = true;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hasText.js","names":["hasText","value","hasChildren","root","children","length","hasOnlyEmptyParagraph","type","paragraphNode","paragraphNodeChild"],"sources":["../../src/validate/hasText.ts"],"sourcesContent":["import type {\n SerializedEditorState,\n SerializedLexicalNode,\n SerializedParagraphNode,\n SerializedTextNode,\n} from 'lexical'\n\nexport function hasText(\n value: null | SerializedEditorState<SerializedLexicalNode> | undefined,\n): boolean {\n const hasChildren = !!value?.root?.children?.length\n\n let hasOnlyEmptyParagraph = false\n if (value?.root?.children?.length === 1) {\n if (value?.root?.children[0]?.type === 'paragraph') {\n const paragraphNode = value?.root?.children[0] as SerializedParagraphNode\n\n if (!paragraphNode?.children || paragraphNode?.children?.length === 0) {\n hasOnlyEmptyParagraph = true\n } else if (paragraphNode?.children?.length === 1) {\n const paragraphNodeChild = paragraphNode?.children[0]\n if (paragraphNodeChild.type === 'text') {\n if (!(paragraphNodeChild as SerializedTextNode | undefined)?.['text']?.length) {\n hasOnlyEmptyParagraph = true\n }\n }\n }\n }\n }\n\n if (!hasChildren || hasOnlyEmptyParagraph) {\n return false\n } else {\n return true\n }\n}\n"],"mappings":"AAOA,OAAO,SAASA,QACdC,KAAsE;EAEtE,MAAMC,WAAA,GAAc,CAAC,CAACD,KAAA,EAAOE,IAAA,EAAMC,QAAA,EAAUC,MAAA;EAE7C,IAAIC,qBAAA,GAAwB;EAC5B,IAAIL,KAAA,EAAOE,IAAA,EAAMC,QAAA,EAAUC,MAAA,KAAW,GAAG;IACvC,IAAIJ,KAAA,EAAOE,IAAA,EAAMC,QAAQ,CAAC,EAAE,EAAEG,IAAA,KAAS,aAAa;MAClD,MAAMC,aAAA,GAAgBP,KAAA,EAAOE,IAAA,EAAMC,QAAQ,CAAC,EAAE;MAE9C,IAAI,CAACI,aAAA,EAAeJ,QAAA,IAAYI,aAAA,EAAeJ,QAAA,EAAUC,MAAA,KAAW,GAAG;QACrEC,qBAAA,GAAwB;MAC1B,OAAO,IAAIE,aAAA,EAAeJ,QAAA,EAAUC,MAAA,KAAW,GAAG;QAChD,MAAMI,kBAAA,GAAqBD,aAAA,EAAeJ,QAAQ,CAAC,EAAE;QACrD,IAAIK,kBAAA,CAAmBF,IAAI,KAAK,QAAQ;UACtC,IAAI,CAAEE,kBAAA,GAAwD,OAAO,EAAEJ,MAAA,EAAQ;YAC7EC,qBAAA,GAAwB;UAC1B;QACF;MACF;IACF;EACF;EAEA,IAAI,CAACJ,WAAA,IAAeI,qBAAA,EAAuB;IACzC,OAAO;EACT,OAAO;IACL,OAAO;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"hasText.js","names":["hasText","value","hasChildren","root","children","length","hasOnlyEmptyParagraph","type","paragraphNode","paragraphNodeChild"],"sources":["../../src/validate/hasText.ts"],"sourcesContent":["import type {\n SerializedEditorState,\n SerializedLexicalNode,\n SerializedParagraphNode,\n SerializedTextNode,\n} from 'lexical'\n\nexport function hasText(\n value: null | SerializedEditorState<SerializedLexicalNode> | undefined,\n): boolean {\n const hasChildren = !!value?.root?.children?.length\n\n let hasOnlyEmptyParagraph = false\n if (value?.root?.children?.length === 1) {\n if (value?.root?.children[0]?.type === 'paragraph') {\n const paragraphNode = value?.root?.children[0] as SerializedParagraphNode\n\n if (!paragraphNode?.children || paragraphNode?.children?.length === 0) {\n hasOnlyEmptyParagraph = true\n } else if (paragraphNode?.children?.length === 1) {\n const paragraphNodeChild = paragraphNode?.children[0]\n if (paragraphNodeChild?.type === 'text') {\n if (!(paragraphNodeChild as SerializedTextNode | undefined)?.['text']?.length) {\n hasOnlyEmptyParagraph = true\n }\n }\n }\n }\n }\n\n if (!hasChildren || hasOnlyEmptyParagraph) {\n return false\n } else {\n return true\n }\n}\n"],"mappings":"AAOA,OAAO,SAASA,QACdC,KAAsE;EAEtE,MAAMC,WAAA,GAAc,CAAC,CAACD,KAAA,EAAOE,IAAA,EAAMC,QAAA,EAAUC,MAAA;EAE7C,IAAIC,qBAAA,GAAwB;EAC5B,IAAIL,KAAA,EAAOE,IAAA,EAAMC,QAAA,EAAUC,MAAA,KAAW,GAAG;IACvC,IAAIJ,KAAA,EAAOE,IAAA,EAAMC,QAAQ,CAAC,EAAE,EAAEG,IAAA,KAAS,aAAa;MAClD,MAAMC,aAAA,GAAgBP,KAAA,EAAOE,IAAA,EAAMC,QAAQ,CAAC,EAAE;MAE9C,IAAI,CAACI,aAAA,EAAeJ,QAAA,IAAYI,aAAA,EAAeJ,QAAA,EAAUC,MAAA,KAAW,GAAG;QACrEC,qBAAA,GAAwB;MAC1B,OAAO,IAAIE,aAAA,EAAeJ,QAAA,EAAUC,MAAA,KAAW,GAAG;QAChD,MAAMI,kBAAA,GAAqBD,aAAA,EAAeJ,QAAQ,CAAC,EAAE;QACrD,IAAIK,kBAAA,EAAoBF,IAAA,KAAS,QAAQ;UACvC,IAAI,CAAEE,kBAAA,GAAwD,OAAO,EAAEJ,MAAA,EAAQ;YAC7EC,qBAAA,GAAwB;UAC1B;QACF;MACF;IACF;EACF;EAEA,IAAI,CAACJ,WAAA,IAAeI,qBAAA,EAAuB;IACzC,OAAO;EACT,OAAO;IACL,OAAO;EACT;AACF","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/richtext-lexical",
3
- "version": "3.23.0",
3
+ "version": "3.24.0-canary.1cfcb91",
4
4
  "description": "The officially supported Lexical richtext adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -339,6 +339,7 @@
339
339
  "@lexical/rich-text": "0.21.0",
340
340
  "@lexical/selection": "0.21.0",
341
341
  "@lexical/utils": "0.21.0",
342
+ "@lexical/table": "0.21.0",
342
343
  "@types/uuid": "10.0.0",
343
344
  "acorn": "8.12.1",
344
345
  "bson-objectid": "2.0.4",
@@ -352,8 +353,8 @@
352
353
  "react-error-boundary": "4.1.2",
353
354
  "ts-essentials": "10.0.3",
354
355
  "uuid": "10.0.0",
355
- "@payloadcms/translations": "3.23.0",
356
- "@payloadcms/ui": "3.23.0"
356
+ "@payloadcms/ui": "3.24.0-canary.1cfcb91",
357
+ "@payloadcms/translations": "3.24.0-canary.1cfcb91"
357
358
  },
358
359
  "devDependencies": {
359
360
  "@babel/cli": "7.26.4",
@@ -373,27 +374,16 @@
373
374
  "esbuild-sass-plugin": "3.3.1",
374
375
  "eslint-plugin-react-compiler": "19.0.0-beta-714736e-20250131",
375
376
  "swc-plugin-transform-remove-imports": "3.1.0",
376
- "payload": "3.23.0",
377
+ "payload": "3.24.0-canary.1cfcb91",
377
378
  "@payloadcms/eslint-config": "3.9.0"
378
379
  },
379
380
  "peerDependencies": {
380
381
  "@faceless-ui/modal": "3.0.0-beta.2",
381
382
  "@faceless-ui/scroll-info": "2.0.0",
382
- "@lexical/headless": "0.21.0",
383
- "@lexical/html": "0.21.0",
384
- "@lexical/link": "0.21.0",
385
- "@lexical/list": "0.21.0",
386
- "@lexical/mark": "0.21.0",
387
- "@lexical/react": "0.21.0",
388
- "@lexical/rich-text": "0.21.0",
389
- "@lexical/selection": "0.21.0",
390
- "@lexical/table": "0.21.0",
391
- "@lexical/utils": "0.21.0",
392
- "lexical": "0.21.0",
393
383
  "react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
394
384
  "react-dom": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
395
- "@payloadcms/next": "3.23.0",
396
- "payload": "3.23.0"
385
+ "@payloadcms/next": "3.24.0-canary.1cfcb91",
386
+ "payload": "3.24.0-canary.1cfcb91"
397
387
  },
398
388
  "engines": {
399
389
  "node": "^18.20.2 || >=20.9.0"
@@ -1,12 +0,0 @@
1
- var R=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Gn(r){return r instanceof HTMLElement}var j=class{_x;_y;constructor(t,e){this._x=t,this._y=e}calcDeltaXTo({x:t}){return this.x-t}calcDeltaYTo({y:t}){return this.y-t}calcDistanceTo(t){return Math.sqrt(Math.pow(this.calcDeltaXTo(t),2)+Math.pow(this.calcDeltaYTo(t),2))}calcHorizontalDistanceTo(t){return Math.abs(this.calcDeltaXTo(t))}calcVerticalDistance(t){return Math.abs(this.calcDeltaYTo(t))}equals({x:t,y:e}){return this.x===t&&this.y===e}get x(){return this._x}get y(){return this._y}};function ft(r){return r instanceof j}import{c as Ae}from"react/compiler-runtime";import{jsx as Oe}from"react/jsx-runtime";import{useLexicalComposerContext as ye}from"@lexical/react/LexicalComposerContext.js";import{mergeRegister as Me}from"@lexical/utils";import{$getSelection as Z,$isRangeSelection as J,$isTextNode as be,COMMAND_PRIORITY_LOW as ke,createCommand as Le,getDOMSelection as $e}from"lexical";import{useEffect as Tt,useState as De}from"react";import*as V from"react";import{c as pt}from"react/compiler-runtime";import{useLexicalComposerContext as ht}from"@lexical/react/LexicalComposerContext.js";import{mergeRegister as ut}from"@lexical/utils";import{$getSelection as xt,$isRangeSelection as ue,$setSelection as de,COMMAND_PRIORITY_LOW as k,createCommand as me,KEY_ARROW_DOWN_COMMAND as ge,KEY_ARROW_UP_COMMAND as pe,KEY_ENTER_COMMAND as he,KEY_ESCAPE_COMMAND as xe,KEY_TAB_COMMAND as Ee}from"lexical";import{useCallback as q,useEffect as L,useLayoutEffect as _e,useMemo as Te,useRef as Se,useState as we}from"react";var Re="slash-menu-popup",dt=r=>{let t=document.getElementById("slash-menu");if(!t)return;let e=t.getBoundingClientRect();e.top+e.height>window.innerHeight&&t.scrollIntoView({block:"center"}),e.top<0&&t.scrollIntoView({block:"center"}),r.scrollIntoView({block:"nearest"})};function Ce(r,t,e){let n=e;for(let o=n;o<=t.length;o++)r.substring(r.length-o)===t.substring(0,o)&&(n=o);return n}function Ie(r){let t=xt();if(!ue(t)||!t.isCollapsed())return;let e=t.anchor;if(e.type!=="text")return;let n=e.getNode();if(!n.isSimpleText())return;let o=e.offset,i=n.getTextContent().slice(0,o),c=r.replaceableString.length,s=Ce(i,r.matchingString,c),a=o-s;if(a<0)return;let l;return a===0?[l]=n.splitText(o):[,l]=n.splitText(a,o),l}function Fe(r,t){let e=getComputedStyle(r),n=e.position==="absolute",o=t?/(auto|scroll|hidden)/:/(auto|scroll)/;if(e.position==="fixed")return document.body;for(let i=r;i=i.parentElement;)if(e=getComputedStyle(i),!(n&&e.position==="static")&&o.test(e.overflow+e.overflowY+e.overflowX))return i;return document.body}function mt(r,t){let e=r.getBoundingClientRect(),n=t.getBoundingClientRect();return e.top>n.top&&e.top<n.bottom}function Ne(r,t,e,n){let o=pt(12),[i]=ht(),c;o[0]!==i||o[1]!==e||o[2]!==n||o[3]!==r||o[4]!==t.current?(c=()=>{let a=t.current;if(a!=null&&r!=null){let l=i.getRootElement(),f=l!=null?Fe(l,!1):document.body,m;m=!1;let g;g=mt(a,f);let p=function(){m||(window.requestAnimationFrame(function(){e(),m=!1}),m=!0);let u=mt(a,f);u!==g&&(g=u,n?.(u))},d=new ResizeObserver(e);return window.addEventListener("resize",e),document.addEventListener("scroll",p,{capture:!0,passive:!0}),d.observe(a),()=>{d.disconnect(),window.removeEventListener("resize",e),document.removeEventListener("scroll",p,!0)}}},o[0]=i,o[1]=e,o[2]=n,o[3]=r,o[4]=t.current,o[5]=c):c=o[5];let s;o[6]!==i||o[7]!==e||o[8]!==n||o[9]!==r||o[10]!==t?(s=[i,n,e,r,t],o[6]=i,o[7]=e,o[8]=n,o[9]=r,o[10]=t,o[11]=s):s=o[11],L(c,s)}var gt=me("SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND");function Et({anchorElementRef:r,close:t,editor:e,groups:n,menuRenderFn:o,resolution:i,shouldSplitNodeWithQuery:c=!1}){let[s,a]=we(null),l=i.match&&i.match.matchingString||"",f=q(d=>{let u=e.getRootElement();u!==null&&(u.setAttribute("aria-activedescendant",`${Re}__item-${d.key}`),a(d.key))},[e]),m=q(()=>{if(n!==null&&l!=null){let d=n.flatMap(u=>u.items);if(d.length){let u=d[0];f(u)}}},[n,f,l]);L(()=>{m()},[l,m]);let g=q(d=>{t(),e.update(()=>{let u=i.match!=null&&c?Ie(i.match):null;u&&u.remove()}),setTimeout(()=>{let u;e.read(()=>{u=xt()?.clone()}),e.update(()=>{u&&de(u)}),d.onSelect({editor:e,queryString:i.match?i.match.matchingString:""})},0)},[e,c,i.match,t]);L(()=>()=>{let d=e.getRootElement();d!==null&&d.removeAttribute("aria-activedescendant")},[e]),_e(()=>{n===null?a(null):s===null&&m()},[n,s,f,m]),L(()=>ut(e.registerCommand(gt,({item:d})=>d.ref&&d.ref.current!=null?(dt(d.ref.current),!0):!1,k)),[e,f]),L(()=>ut(e.registerCommand(ge,d=>{let u=d;if(n!==null&&n.length&&s!==null){let x=n.flatMap(_=>_.items),h=x.findIndex(_=>_.key===s),T=h!==x.length-1?h+1:0,E=x[T];if(!E)return!1;f(E),E.ref!=null&&E.ref.current&&e.dispatchCommand(gt,{index:T,item:E}),u.preventDefault(),u.stopImmediatePropagation()}return!0},k),e.registerCommand(pe,d=>{let u=d;if(n!==null&&n.length&&s!==null){let x=n.flatMap(_=>_.items),h=x.findIndex(_=>_.key===s),T=h!==0?h-1:x.length-1,E=x[T];if(!E)return!1;f(E),E.ref!=null&&E.ref.current&&dt(E.ref.current),u.preventDefault(),u.stopImmediatePropagation()}return!0},k),e.registerCommand(xe,d=>{let u=d;return u.preventDefault(),u.stopImmediatePropagation(),t(),!0},k),e.registerCommand(Ee,d=>{let u=d;if(n===null||s===null)return!1;let h=n.flatMap(T=>T.items).find(T=>T.key===s);return h?(u.preventDefault(),u.stopImmediatePropagation(),g(h),!0):!1},k),e.registerCommand(he,d=>{if(n===null||s===null)return!1;let x=n.flatMap(h=>h.items).find(h=>h.key===s);return x?(d!==null&&(d.preventDefault(),d.stopImmediatePropagation()),g(x),!0):!1},k)),[g,t,e,n,s,f]);let p=Te(()=>({groups:n,selectedItemKey:s,selectItemAndCleanUp:g,setSelectedItemKey:a}),[g,s,n]);return o(r,p,i.match?i.match.matchingString:"")}function _t(r,t,e,n){let o=pt(14),[i]=ht(),c;o[0]===Symbol.for("react.memo_cache_sentinel")?(c=R?document.createElement("div"):null,o[0]=c):c=o[0];let s=Se(c),a;o[1]!==r||o[2]!==n||o[3]!==i||o[4]!==t?(a=()=>{if(s.current===null||parent===void 0)return;let d=i.getRootElement(),u=s.current,x=u.firstChild;if(d!==null&&t!==null){let{height:h,width:T}=t.getRect(),{left:E,top:_}=t.getRect(),N=_;if(_=_-(r.getBoundingClientRect().top+window.scrollY),E=E-(r.getBoundingClientRect().left+window.scrollX),u.style.left=`${E+window.scrollX}px`,u.style.height=`${h}px`,u.style.width=`${T}px`,x!==null){let S=x.getBoundingClientRect(),F=S.height,w=S.width,A=d.getBoundingClientRect();E+w>A.right&&(u.style.left=`${A.right-w+window.scrollX}px`);let O=N+F+32>window.innerHeight,M=N<0;O&&!M?u.style.top=`${_+32-F+window.scrollY-(h+24)}px`:u.style.top=`${_+window.scrollY+32}px`}u.isConnected||(n!=null&&(u.className=n),u.setAttribute("aria-label","Slash menu"),u.setAttribute("id","slash-menu"),u.setAttribute("role","listbox"),u.style.display="block",u.style.position="absolute",r.append(u)),s.current=u,d.setAttribute("aria-controls","slash-menu")}},o[1]=r,o[2]=n,o[3]=i,o[4]=t,o[5]=a):a=o[5];let l=a,f,m;o[6]!==i||o[7]!==l||o[8]!==t?(f=()=>{let d=i.getRootElement();if(t!==null)return l(),()=>{d!==null&&d.removeAttribute("aria-controls");let u=s.current;u!==null&&u.isConnected&&u.remove()}},m=[i,l,t],o[6]=i,o[7]=l,o[8]=t,o[9]=f,o[10]=m):(f=o[9],m=o[10]),L(f,m);let g;return o[11]!==t||o[12]!==e?(g=d=>{t!==null&&(d||e(null))},o[11]=t,o[12]=e,o[13]=g):g=o[13],Ne(t,s,l,g),s}var co=`\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%'"~=<>_:;`;function Be(r){let t=r.anchor;if(t.type!=="text")return null;let e=t.getNode();if(!e.isSimpleText())return null;let n=t.offset;return e.getTextContent().slice(0,n)}function St(r,t,e){let n=$e(e);if(n===null||!n.isCollapsed)return!1;let o=n.anchorNode,i=r,c=n.anchorOffset;if(o==null||c==null)return!1;try{t.setStart(o,i),t.setEnd(o,c>1?c:1)}catch{return!1}return!0}function Pe(r){let t;return r.getEditorState().read(()=>{let e=Z();J(e)&&(t=Be(e))}),t}function wt(r,t){return t!==0?!1:r.getEditorState().read(()=>{let e=Z();if(J(e)){let i=e.anchor.getNode().getPreviousSibling();return be(i)&&i.isTextEntity()}return!1})}function Rt(r){V.startTransition?V.startTransition(r):r()}var ve=Le("ENABLE_SLASH_MENU_COMMAND");function ao(r){let t=Ae(30),{anchorClassName:e,anchorElem:n,groups:o,menuRenderFn:i,onClose:c,onOpen:s,onQueryChange:a,triggerFn:l}=r,[f]=ye(),[m,g]=De(null),p=_t(n,m,g,e),d;t[0]!==c||t[1]!==m?(d=()=>{g(null),c!=null&&m!==null&&c()},t[0]=c,t[1]=m,t[2]=d):d=t[2];let u=d,x;t[3]!==s||t[4]!==m?(x=F=>{g(F),s!=null&&m===null&&s(F)},t[3]=s,t[4]=m,t[5]=x):x=t[5];let h=x,T,E;t[6]!==f||t[7]!==h?(T=()=>Me(f.registerCommand(ve,F=>{let{node:w}=F;return f.getEditorState().read(()=>{let A={leadOffset:0,matchingString:"",replaceableString:""};if(!wt(f,A.leadOffset)&&w!==null){let O=f._window??window,M=O.document.createRange();St(A.leadOffset,M,O)!==null&&Rt(()=>h({getRect:()=>M.getBoundingClientRect(),match:A}));return}}),!0},ke)),E=[f,h],t[6]=f,t[7]=h,t[8]=T,t[9]=E):(T=t[8],E=t[9]),Tt(T,E);let _;t[10]!==u||t[11]!==f||t[12]!==a||t[13]!==h||t[14]!==l?(_=()=>{let F=()=>{f.getEditorState().read(()=>{let A=f._window??window,O=A.document.createRange(),M=Z(),Q=Pe(f);if(!J(M)||!M.isCollapsed()||Q===void 0||O===null){u();return}let b=l({editor:f,query:Q});if(a(b?b.matchingString:null),b!==null&&!wt(f,b.leadOffset)&&St(b.leadOffset,O,A)!==null){Rt(()=>h({getRect:()=>O.getBoundingClientRect(),match:b}));return}u()})},w=f.registerUpdateListener(F);return()=>{w()}},t[10]=u,t[11]=f,t[12]=a,t[13]=h,t[14]=l,t[15]=_):_=t[15];let N;t[16]!==u||t[17]!==f||t[18]!==a||t[19]!==h||t[20]!==m||t[21]!==l?(N=[f,l,a,m,u,h],t[16]=u,t[17]=f,t[18]=a,t[19]=h,t[20]=m,t[21]=l,t[22]=N):N=t[22],Tt(_,N);let S;return t[23]!==p||t[24]!==u||t[25]!==f||t[26]!==o||t[27]!==i||t[28]!==m?(S=p.current===null||m===null||f===null?null:Oe(Et,{anchorElementRef:p,close:u,editor:f,groups:o,menuRenderFn:i,resolution:m,shouldSplitNodeWithQuery:!0}),t[23]=p,t[24]=u,t[25]=f,t[26]=o,t[27]=i,t[28]=m,t[29]=S):S=t[29],S}var Ct=class r{_bottom;_left;_right;_top;constructor(t,e,n,o){let[i,c]=e<=o?[e,o]:[o,e],[s,a]=t<=n?[t,n]:[n,t];this._top=i,this._right=a,this._left=s,this._bottom=c}static fromDOM(t){let{height:e,left:n,top:o,width:i}=t.getBoundingClientRect();return r.fromLWTH(n,i,o,e)}static fromDOMRect(t){let{height:e,left:n,top:o,width:i}=t;return r.fromLWTH(n,i,o,e)}static fromLTRB(t,e,n,o){return new r(t,e,n,o)}static fromLWTH(t,e,n,o){return new r(t,n,t+e,n+o)}static fromPoints(t,e){let{x:n,y:o}=t,{x:i,y:c}=e;return r.fromLTRB(n,o,i,c)}contains(t){if(ft(t)){let{x:c,y:s}=t,a=s<this._top,l=s>this._bottom,f=c<this._left,m=c>this._right;return{reason:{isOnBottomSide:l,isOnLeftSide:f,isOnRightSide:m,isOnTopSide:a},result:!a&&!l&&!f&&!m}}let{bottom:e,left:n,right:o,top:i}=t;return i>=this._top&&i<=this._bottom&&e>=this._top&&e<=this._bottom&&n>=this._left&&n<=this._right&&o>=this._left&&o<=this._right}distanceFromPoint(t){let e=this.contains(t);if(e.result)return{distance:0,isOnBottomSide:e.reason.isOnBottomSide,isOnLeftSide:e.reason.isOnLeftSide,isOnRightSide:e.reason.isOnRightSide,isOnTopSide:e.reason.isOnTopSide};let n=0,o=0;return t.x<this._left?n=this._left-t.x:t.x>this._right&&(n=t.x-this._right),t.y<this._top?o=this._top-t.y:t.y>this._bottom&&(o=t.y-this._bottom),{distance:Math.sqrt(n*n+o*o),isOnBottomSide:t.y>this._bottom,isOnLeftSide:t.x<this._left,isOnRightSide:t.x>this._right,isOnTopSide:t.y<this._top}}equals({bottom:t,left:e,right:n,top:o}){return o===this._top&&t===this._bottom&&e===this._left&&n===this._right}generateNewRect({bottom:t=this.bottom,left:e=this.left,right:n=this.right,top:o=this.top}){return new r(e,o,n,t)}intersectsWith(t){let{height:e,left:n,top:o,width:i}=t,{height:c,left:s,top:a,width:l}=this,f=n+i>=s+l?n+i:s+l,m=o+e>=a+c?o+e:a+c,g=n<=s?n:s,p=o<=a?o:a;return f-g<=i+l&&m-p<=e+c}get bottom(){return this._bottom}get height(){return Math.abs(this._bottom-this._top)}get left(){return this._left}get right(){return this._right}get top(){return this._top}get width(){return Math.abs(this._left-this._right)}};function mo({editorConfig:r}){return He({nodes:r.features.nodes})}function He({nodes:r}){return r.map(t=>"node"in t?t.node:t)}var Ke=R&&"documentMode"in document?document.documentMode:null,ho=R&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),xo=R&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),Eo=R&&"InputEvent"in window&&!Ke?"getTargetRanges"in new window.InputEvent("input"):!1,tt=R&&/Version\/[\d.].*Safari/.test(navigator.userAgent),et=R&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,_o=R&&/Android/.test(navigator.userAgent),To=R&&/Win/.test(navigator.platform),Ue=R&&/^(?=.*Chrome).*/i.test(navigator.userAgent),nt=R&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!Ue;import{$getRoot as Ve,$isDecoratorNode as Ot,$isElementNode as G,$isLineBreakNode as Ze,$isTextNode as W}from"lexical";import{$isListItemNode as Ge,$isListNode as It}from"@lexical/list";import{$isHeadingNode as We,$isQuoteNode as Xe}from"@lexical/rich-text";import{$isParagraphNode as ze,$isTextNode as Ye}from"lexical";var C={markdownFormatKind:null,regEx:/(?:)/,regExForAutoFormatting:/(?:)/,requiresParagraphStart:!1},I={...C,requiresParagraphStart:!0},Io={...I,export:$(1),markdownFormatKind:"paragraphH1",regEx:/^# /,regExForAutoFormatting:/^# /},Fo={...I,export:$(2),markdownFormatKind:"paragraphH2",regEx:/^## /,regExForAutoFormatting:/^## /},No={...I,export:$(3),markdownFormatKind:"paragraphH3",regEx:/^### /,regExForAutoFormatting:/^### /},Ao={...I,export:$(4),markdownFormatKind:"paragraphH4",regEx:/^#### /,regExForAutoFormatting:/^#### /},Oo={...I,export:$(5),markdownFormatKind:"paragraphH5",regEx:/^##### /,regExForAutoFormatting:/^##### /},yo={...I,export:$(6),markdownFormatKind:"paragraphH6",regEx:/^###### /,regExForAutoFormatting:/^###### /},Mo={...I,export:je,markdownFormatKind:"paragraphBlockQuote",regEx:/^> /,regExForAutoFormatting:/^> /},bo={...I,export:ot,markdownFormatKind:"paragraphUnorderedList",regEx:/^(\s{0,10})- /,regExForAutoFormatting:/^(\s{0,10})- /},ko={...I,export:ot,markdownFormatKind:"paragraphUnorderedList",regEx:/^(\s{0,10})\* /,regExForAutoFormatting:/^(\s{0,10})\* /},Lo={...I,export:ot,markdownFormatKind:"paragraphOrderedList",regEx:/^(\s{0,10})(\d+)\.\s/,regExForAutoFormatting:/^(\s{0,10})(\d+)\.\s/},$o={...I,markdownFormatKind:"horizontalRule",regEx:/^\*\*\*$/,regExForAutoFormatting:/^\*\*\* /},Do={...I,markdownFormatKind:"horizontalRule",regEx:/^---$/,regExForAutoFormatting:/^--- /},Bo={...C,exportFormat:"code",exportTag:"`",markdownFormatKind:"code",regEx:/(`)(\s*)([^`]*)(\s*)(`)()/,regExForAutoFormatting:/(`)(\s*\b)([^`]*)(\b\s*)(`)(\s)$/},Po={...C,exportFormat:"bold",exportTag:"**",markdownFormatKind:"bold",regEx:/(\*\*)(\s*)([^*]*)(\s*)(\*\*)()/,regExForAutoFormatting:/(\*\*)(\s*\b)([^*]*)(\b\s*)(\*\*)(\s)$/},vo={...C,exportFormat:"italic",exportTag:"*",markdownFormatKind:"italic",regEx:/(\*)(\s*)([^*]*)(\s*)(\*)()/,regExForAutoFormatting:/(\*)(\s*\b)([^*]*)(\b\s*)(\*)(\s)$/},Ho={...C,exportFormat:"bold",exportTag:"_",markdownFormatKind:"bold",regEx:/(__)(\s*)([^_]*)(\s*)(__)()/,regExForAutoFormatting:/(__)(\s*)([^_]*)(\s*)(__)(\s)$/},Ko={...C,exportFormat:"italic",exportTag:"_",markdownFormatKind:"italic",regEx:/(_)()([^_]*)()(_)()/,regExForAutoFormatting:/(_)()([^_]*)()(_)(\s)$/},Uo={...C,exportFormat:"underline",exportTag:"<u>",exportTagClose:"</u>",markdownFormatKind:"underline",regEx:/(<u>)(\s*)([^<]*)(\s*)(<\/u>)()/,regExForAutoFormatting:/(<u>)(\s*\b)([^<]*)(\b\s*)(<\/u>)(\s)$/},Go={...C,exportFormat:"strikethrough",exportTag:"~~",markdownFormatKind:"strikethrough",regEx:/(~~)(\s*)([^~]*)(\s*)(~~)()/,regExForAutoFormatting:/(~~)(\s*\b)([^~]*)(\b\s*)(~~)(\s)$/},Wo={...C,markdownFormatKind:"strikethrough_italic_bold",regEx:/(~~_\*\*)(\s*\b)([^*_~]+)(\b\s*)(\*\*_~~)()/,regExForAutoFormatting:/(~~_\*\*)(\s*\b)([^*_~]+)(\b\s*)(\*\*_~~)(\s)$/},Xo={...C,markdownFormatKind:"italic_bold",regEx:/(_\*\*)(\s*\b)([^*_]+)(\b\s*)(\*\*_)/,regExForAutoFormatting:/(_\*\*)(\s*\b)([^*_]+)(\b\s*)(\*\*_)(\s)$/},zo={...C,markdownFormatKind:"strikethrough_italic",regEx:/(~~_)(\s*)([^_~]+)(\s*)(_~~)/,regExForAutoFormatting:/(~~_)(\s*)([^_~]+)(\s*)(_~~)(\s)$/},Yo={...C,markdownFormatKind:"strikethrough_bold",regEx:/(~~\*\*)(\s*\b)([^*~]+)(\b\s*)(\*\*~~)/,regExForAutoFormatting:/(~~\*\*)(\s*\b)([^*~]+)(\b\s*)(\*\*~~)(\s)$/},Qo={...C,markdownFormatKind:"link",regEx:/(\[)([^\]]*)(\]\()([^)]*)(\)*)()/,regExForAutoFormatting:/(\[)([^\]]*)(\]\()([^)]*)(\)*)(\s)$/};function $(r){return(t,e)=>We(t)&&t.getTag()==="h"+r?"#".repeat(r)+" "+e(t):null}function ot(r,t){return It(r)?Ft(r,t,0):null}var Qe=4;function Ft(r,t,e){let n=[],o=r.getChildren(),i=0;for(let c of o)if(Ge(c)){if(c.getChildrenSize()===1){let l=c.getFirstChild();if(It(l)){n.push(Ft(l,t,e+1));continue}}let s=" ".repeat(e*Qe),a=r.getListType()==="bullet"?"- ":`${r.getStart()+i}. `;n.push(s+a+t(c)),i++}return n.join(`
2
- `)}function je(r,t){return Xe(r)?"> "+t(r):null}function K(r,t){let e={};for(let n of r){let o=t(n);o&&(e[o]?e[o].push(n):e[o]=[n])}return e}function D(r){let t=K(r,e=>e.type);return{element:t.element||[],multilineElement:t["multiline-element"]||[],textFormat:t["text-format"]||[],textMatch:t["text-match"]||[]}}var B=/[!-/:-@[-`{-~\s]/,qe=/^\s{0,3}$/;function H(r){if(!ze(r))return!1;let t=r.getFirstChild();return t==null||r.getChildrenSize()===1&&Ye(t)&&qe.test(t.getTextContent())}function yt(r,t=!1){let e=D(r),n=[...e.multilineElement,...e.element],o=!t,i=e.textFormat.filter(c=>c.format.length===1).sort((c,s)=>c.format.includes("code")&&!s.format.includes("code")?1:!c.format.includes("code")&&s.format.includes("code")?-1:0);return c=>{let s=[],a=(c||Ve()).getChildren();for(let l=0;l<a.length;l++){let f=a[l],m=Je(f,n,i,e.textMatch);m!=null&&s.push(o&&l>0&&!H(f)&&!H(a[l-1])?`
3
- `.concat(m):m)}return s.join(`
4
- `)}}function Je(r,t,e,n){for(let o of t){if(!o.export)continue;let i=o.export(r,c=>X(c,e,n));if(i!=null)return i}return G(r)?X(r,e,n):Ot(r)?r.getTextContent():null}function X(r,t,e,n,o){let i=[],c=r.getChildren();n||(n=[]),o||(o=[]);t:for(let s of c){for(let a of e){if(!a.export)continue;let l=a.export(s,f=>X(f,t,e,n,[...o,...n]),(f,m)=>Nt(f,m,t,n,o));if(l!=null){i.push(l);continue t}}Ze(s)?i.push(`
5
- `):W(s)?i.push(Nt(s,s.getTextContent(),t,n,o)):G(s)?i.push(X(s,t,e,n,o)):Ot(s)&&i.push(s.getTextContent())}return i.join("")}function Nt(r,t,e,n,o){let i=t.trim(),c=i,s="",a="",l="",f=At(r,!0),m=At(r,!1),g=new Set;for(let p of e){let d=p.format[0],u=p.tag;U(r,d)&&!g.has(d)&&(g.add(d),(!U(f,d)||!n.find(x=>x.tag===u))&&(n.push({format:d,tag:u}),s+=u))}for(let p=0;p<n.length;p++){let d=U(r,n[p].format),u=U(m,n[p].format);if(d&&u)continue;let x=[...n];for(;x.length>p;){let h=x.pop();o&&h&&o.find(T=>T.tag===h.tag)||(h&&typeof h.tag=="string"&&(d?u||(l+=h.tag):a+=h.tag),n.pop())}break}return c=s+c+l,a+t.replace(i,()=>c)}function At(r,t){let e=t?r.getPreviousSibling():r.getNextSibling();if(!e){let n=r.getParentOrThrow();n.isInline()&&(e=t?n.getPreviousSibling():n.getNextSibling())}for(;e;){if(G(e)){if(!e.isInline())break;let n=t?e.getLastDescendant():e.getFirstDescendant();if(W(n))return n;e=t?e.getPreviousSibling():e.getNextSibling()}if(W(e))return e;if(!G(e))return null}return null}function U(r,t){return W(r)&&r.hasFormat(t)}import{$isListItemNode as en,$isListNode as $t}from"@lexical/list";import{$isQuoteNode as nn}from"@lexical/rich-text";import{$findMatchingParent as on}from"@lexical/utils";import{$createLineBreakNode as rn,$createParagraphNode as sn,$createTextNode as cn,$getRoot as an,$getSelection as ln,$isParagraphNode as fn}from"lexical";import{$isTextNode as P}from"lexical";function Mt(r,t){let e=r.getTextContent(),n=tn(e,t);if(!n)return null;let o=n.index||0,i=o+n[0].length,c=t.transformersByTag[n[1]];return{endIndex:i,match:n,startIndex:o,transformer:c}}function tn(r,t){let e=r.match(t.openTagsRegExp);if(e==null)return null;for(let n of e){let o=n.replace(/^\s/,""),i=t.fullMatchRegExpByTag[o];if(i==null)continue;let c=r.match(i),s=t.transformersByTag[o];if(c!=null&&s!=null){if(s.intraword!==!1)return c;let{index:a=0}=c,l=r[a-1],f=r[a+c[0].length];if((!l||B.test(l))&&(!f||B.test(f)))return c}}return null}function bt(r,t,e,n,o){let i=r.getTextContent(),c,s,a;if(o[0]===i?a=r:t===0?[a,c]=r.splitText(e):[s,a,c]=r.splitText(t,e),a.setTextContent(o[2]),n)for(let l of n.format)a.hasFormat(l)||a.toggleFormat(l);return{nodeAfter:c,nodeBefore:s,transformedNode:a}}function kt(r,t){let e=r,n,o,i,c;for(let s of t){if(!s.replace||!s.importRegExp)continue;let a=e.getTextContent().match(s.importRegExp);if(!a)continue;let l=a.index||0,f=s.getEndIndex?s.getEndIndex(e,a):l+a[0].length;f!==!1&&(n===void 0||o===void 0||l<n&&f>o)&&(n=l,o=f,i=s,c=a)}return n===void 0||o===void 0||i===void 0||c===void 0?null:{endIndex:o,match:c,startIndex:n,transformer:i}}function Lt(r,t,e,n,o){let i,c,s;if(t===0?[s,i]=r.splitText(e):[c,s,i]=r.splitText(t,e),!n.replace)return null;let a=n.replace(s,o);return{nodeAfter:i,nodeBefore:c,transformedNode:a||void 0}}function y(r,t,e){let n=Mt(r,t),o=kt(r,e);if(n&&o&&(n.startIndex<=o.startIndex&&n.endIndex>=o.endIndex?o=null:n=null),n){let i=bt(r,n.startIndex,n.endIndex,n.transformer,n.match);i.nodeAfter&&P(i.nodeAfter)&&!i.nodeAfter.hasFormat("code")&&y(i.nodeAfter,t,e),i.nodeBefore&&P(i.nodeBefore)&&!i.nodeBefore.hasFormat("code")&&y(i.nodeBefore,t,e),i.transformedNode&&P(i.transformedNode)&&!i.transformedNode.hasFormat("code")&&y(i.transformedNode,t,e);return}else if(o){let i=Lt(r,o.startIndex,o.endIndex,o.transformer,o.match);if(!i)return;i.nodeAfter&&P(i.nodeAfter)&&!i.nodeAfter.hasFormat("code")&&y(i.nodeAfter,t,e),i.nodeBefore&&P(i.nodeBefore)&&!i.nodeBefore.hasFormat("code")&&y(i.nodeBefore,t,e),i.transformedNode&&P(i.transformedNode)&&!i.transformedNode.hasFormat("code")&&y(i.transformedNode,t,e);return}else return}function Dt(r,t=!1){let e=D(r),n=mn(e.textFormat);return(o,i)=>{let c=o.split(`
6
- `),s=c.length,a=i||an();a.clear();for(let f=0;f<s;f++){let m=c[f],[g,p]=un(c,f,e.multilineElement,a);if(g){f=p;continue}dn(m,a,e.element,n,e.textMatch)}let l=a.getChildren();for(let f of l)!t&&H(f)&&a.getChildrenSize()>1&&f.remove();ln()!==null&&a.selectStart()}}function un(r,t,e,n){for(let o of e){let{handleImportAfterStartMatch:i,regExpEnd:c,regExpStart:s,replace:a}=o,l=r[t].match(s);if(!l)continue;if(i){let d=i({lines:r,rootNode:n,startLineIndex:t,startMatch:l,transformer:o});if(d===null)continue;if(d)return d}let f=typeof c=="object"&&"regExp"in c?c.regExp:c,m=c&&typeof c=="object"&&"optional"in c?c.optional:!c,g=t,p=r.length;for(;g<p;){let d=f?r[g].match(f):null;if(!d&&(!m||m&&g<p-1)){g++;continue}if(d&&t===g&&d.index===l.index){g++;continue}let u=[];if(d&&t===g)u.push(r[t].slice(l[0].length,-d[0].length));else for(let x=t;x<=g;x++)if(x===t){let h=r[x].slice(l[0].length);u.push(h)}else if(x===g&&d){let h=r[x].slice(0,-d[0].length);u.push(h)}else u.push(r[x]);if(a(n,null,l,d,u,!0)!==!1)return[!0,g];break}}return[!1,t]}function dn(r,t,e,n,o){let i=cn(r),c=sn();c.append(i),t.append(c);for(let{regExp:s,replace:a}of e){let l=r.match(s);if(l&&(i.setTextContent(r.slice(l[0].length)),a(c,[i],l,!0)!==!1))break}if(y(i,n,o),c.isAttached()&&r.length>0){let s=c.getPreviousSibling();if(fn(s)||nn(s)||$t(s)){let a=s;if($t(s)){let l=s.getLastDescendant();l==null?a=null:a=on(l,en)}a!=null&&a.getTextContentSize()>0&&(a.splice(a.getChildrenSize(),0,[rn(),...c.getChildren()]),c.remove())}}}function mn(r){let t={},e={},n=[],o="(?<![\\\\])";for(let i of r){let{tag:c}=i;t[c]=i;let s=c.replace(/([*^+])/g,"\\$1");n.push(s),tt||et||nt?e[c]=new RegExp(`(${s})(?![${s}\\s])(.*?[^${s}\\s])${s}(?!${s})`):e[c]=new RegExp(`(?<![\\\\${s}])(${s})((\\\\${s})?.*?[^${s}\\s](\\\\${s})?)((?<!\\\\)|(?<=\\\\\\\\))(${s})(?![\\\\${s}])`)}return{fullMatchRegExpByTag:e,openTagsRegExp:new RegExp((tt||et||nt?"":`${o}`)+"("+n.join("|")+")","g"),transformersByTag:t}}import{$createRangeSelection as gn,$getSelection as rt,$isLineBreakNode as pn,$isRangeSelection as it,$isRootOrShadowRoot as Pt,$isTextNode as vt,$setSelection as hn}from"lexical";function xn(r,t,e,n){let o=r.getParent();if(!Pt(o)||r.getFirstChild()!==t)return!1;let i=t.getTextContent();if(i[e-1]!==" ")return!1;for(let{regExp:c,replace:s}of n){let a=i.match(c);if(a&&a[0].length===(a[0].endsWith(" ")?e:e-1)){let l=t.getNextSiblings(),[f,m]=t.splitText(e);f.remove();let g=m?[m,...l]:l;if(s(r,g,a,!1)!==!1)return!0}}return!1}function En(r,t,e,n){let o=r.getParent();if(!Pt(o)||r.getFirstChild()!==t)return!1;let i=t.getTextContent();if(i[e-1]!==" ")return!1;for(let{regExpEnd:c,regExpStart:s,replace:a}of n){if(c&&!("optional"in c)||c&&"optional"in c&&!c.optional)continue;let l=i.match(s);if(l&&l[0].length===(l[0].endsWith(" ")?e:e-1)){let f=t.getNextSiblings(),[m,g]=t.splitText(e);m.remove();let p=g?[g,...f]:f;if(a(r,p,l,null,null,!1)!==!1)return!0}}return!1}function _n(r,t,e){let n=r.getTextContent(),o=n[t-1],i=e[o];if(i==null)return!1;t<n.length&&(n=n.slice(0,t));for(let c of i){if(!c.replace||!c.regExp)continue;let s=n.match(c.regExp);if(s===null)continue;let a=s.index||0,l=a+s[0].length,f;return a===0?[f]=r.splitText(l):[,f]=r.splitText(a,l),f.selectNext(0,0),c.replace(f,s),!0}return!1}function Tn(r,t,e){let n=r.getTextContent(),o=t-1,i=n[o],c=e[i];if(!c)return!1;for(let s of c){let{tag:a}=s,l=a.length,f=o-l+1;if(l>1&&!Ht(n,f,a,0,l)||n[f-1]===" ")continue;let m=n[o+1];if(s.intraword===!1&&m&&!B.test(m))continue;let g=r,p=g,d=Bt(n,f,a),u=p;for(;d<0&&(u=u.getPreviousSibling())&&!pn(u);)if(vt(u)){let w=u.getTextContent();p=u,d=Bt(w,w.length,a)}if(d<0||p===g&&d+l===f)continue;let x=p.getTextContent();if(d>0&&x[d-1]===i)continue;let h=x[d-1];if(s.intraword===!1&&h&&!B.test(h))continue;let T=g.getTextContent(),E=T.slice(0,f)+T.slice(o+1);g.setTextContent(E);let _=p===g?E:x;p.setTextContent(_.slice(0,d)+_.slice(d+l));let N=rt(),S=gn();hn(S);let F=o-l*(p===g?2:1)+1;S.anchor.set(p.__key,d,"text"),S.focus.set(g.__key,F,"text");for(let w of s.format)S.hasFormat(w)||S.formatText(w);S.anchor.set(S.focus.key,S.focus.offset,S.focus.type);for(let w of s.format)S.hasFormat(w)&&S.toggleFormat(w);return it(N)&&(S.format=N.format),!0}return!1}function Bt(r,t,e){let n=e.length;for(let o=t;o>=n;o--){let i=o-n;if(Ht(r,i,e,0,n)&&r[i+n]!==" ")return i}return-1}function Ht(r,t,e,n,o){for(let i=0;i<o;i++)if(r[t+i]!==e[n+i])return!1;return!0}function xr(r,t=z){let e=D(t),n=K(e.textFormat,({tag:c})=>c[c.length-1]),o=K(e.textMatch,({trigger:c})=>c);for(let c of t){let s=c.type;if(s==="element"||s==="text-match"||s==="multiline-element"){let a=c.dependencies;for(let l of a)if(!r.hasNode(l))throw new Error("MarkdownShortcuts: missing dependency %s for transformer. Ensure node dependency is included in editor initial config."+l.getType())}}let i=(c,s,a)=>{xn(c,s,a,e.element)||En(c,s,a,e.multilineElement)||_n(s,a,o)||Tn(s,a,n)};return r.registerUpdateListener(({dirtyLeaves:c,editorState:s,prevEditorState:a,tags:l})=>{if(l.has("collaboration")||l.has("historic")||r.isComposing())return;let f=s.read(rt),m=a.read(rt);if(!it(m)||!it(f)||!f.isCollapsed()||f.is(m))return;let g=f.anchor.key,p=f.anchor.offset,d=s._nodeMap.get(g);!vt(d)||!c.has(g)||p!==1&&p>m.anchor.offset+1||r.update(()=>{if(d.hasFormat("code"))return;let u=d.getParent();u!==null&&i(u,d,f.anchor.offset)})})}import{$createListItemNode as Sn,$createListNode as wn,$isListItemNode as Rn,$isListNode as v,ListItemNode as ct,ListNode as at}from"@lexical/list";import{$createHeadingNode as Cn,$createQuoteNode as In,$isHeadingNode as Fn,$isQuoteNode as Kt,HeadingNode as Nn,QuoteNode as An}from"@lexical/rich-text";import{$createLineBreakNode as On}from"lexical";var Ut=/^[\t ]*$/,zt=/^(\s*)(\d+)\.\s/,Yt=/^(\s*)[-*+]\s/,Qt=/^(\s*)(?:-\s)?\s?(\[(\s|x)?\])\s/i,st=/^(#{1,6})\s/,jt=/^>\s/,yn=/^[ \t]*(\\`\\`\\`|```)(\w+)?/,Gt=/[ \t]*(\\`\\`\\`|```)$/,Mn=/^[ \t]*```[^`]+(?:(?:`{1,2}|`{4,})[^`]+)*```(?:[^`]|$)/,bn=/^\|(.+)\|\s?$/,kn=/^(\| ?:?-*:? ?)+\|\s?$/,Wt=/^[ \t]*<[a-z_][\w-]*(?:\s[^<>]*)?\/?>/i,Xt=/^[ \t]*<\/[a-z_][\w-]*\s*>/i,Ln=r=>(t,e,n)=>{let o=r(n);o.append(...e),t.replace(o),o.select(0,0)},qt=4;function $n(r){let t=r.match(/\t/g),e=r.match(/ /g),n=0;return t&&(n+=t.length),e&&(n+=Math.floor(e.length/qt)),n}var lt=r=>(t,e,n)=>{let o=t.getPreviousSibling(),i=t.getNextSibling(),c=Sn(r==="check"?n[3]==="x":void 0);if(v(i)&&i.getListType()===r){let a=i.getFirstChild();a!==null?a.insertBefore(c):i.append(c),t.remove()}else if(v(o)&&o.getListType()===r)o.append(c),t.remove();else{let a=wn(r,r==="number"?Number(n[2]):void 0);a.append(c),t.replace(a)}c.append(...e),c.select(0,0);let s=$n(n[1]);s&&c.setIndent(s)},Y=(r,t,e)=>{let n=[],o=r.getChildren(),i=0;for(let c of o)if(Rn(c)){if(c.getChildrenSize()===1){let f=c.getFirstChild();if(v(f)){n.push(Y(f,t,e+1));continue}}let s=" ".repeat(e*qt),a=r.getListType(),l=a==="number"?`${r.getStart()+i}. `:a==="check"?`- [${c.getChecked()?"x":" "}] `:"- ";n.push(s+l+t(c)),i++}return n.join(`
7
- `)},Vt={type:"element",dependencies:[Nn],export:(r,t)=>{if(!Fn(r))return null;let e=Number(r.getTag().slice(1));return"#".repeat(e)+" "+t(r)},regExp:st,replace:Ln(r=>{let t="h"+r[1].length;return Cn(t)})},Zt={type:"element",dependencies:[An],export:(r,t)=>{if(!Kt(r))return null;let e=t(r).split(`
8
- `),n=[];for(let o of e)n.push("> "+o);return n.join(`
9
- `)},regExp:jt,replace:(r,t,e,n)=>{if(n){let i=r.getPreviousSibling();if(Kt(i)){i.splice(i.getChildrenSize(),0,[On(),...t]),i.select(0,0),r.remove();return}}let o=In();o.append(...t),r.replace(o),o.select(0,0)}},Jt={type:"element",dependencies:[at,ct],export:(r,t)=>v(r)?Y(r,t,0):null,regExp:Yt,replace:lt("bullet")},Dn={type:"element",dependencies:[at,ct],export:(r,t)=>v(r)?Y(r,t,0):null,regExp:Qt,replace:lt("check")},te={type:"element",dependencies:[at,ct],export:(r,t)=>v(r)?Y(r,t,0):null,regExp:zt,replace:lt("number")},ee={type:"text-format",format:["code"],tag:"`"},ne={type:"text-format",format:["highlight"],tag:"=="},oe={type:"text-format",format:["bold","italic"],tag:"***"},re={type:"text-format",format:["bold","italic"],intraword:!1,tag:"___"},ie={type:"text-format",format:["bold"],tag:"**"},se={type:"text-format",format:["bold"],intraword:!1,tag:"__"},ce={type:"text-format",format:["strikethrough"],tag:"~~"},ae={type:"text-format",format:["italic"],tag:"*"},le={type:"text-format",format:["italic"],intraword:!1,tag:"_"};function fe(r,t){let e=r.split(`
10
- `),n=!1,o=[],i=0;for(let c=0;c<e.length;c++){let s=e[c],a=o[o.length-1];if(Mn.test(s)){o.push(s);continue}if(Gt.test(s)){i===0&&(n=!0),i===1&&(n=!1),i>0&&i--,o.push(s);continue}if(yn.test(s)){n=!0,i++,o.push(s);continue}if(n){o.push(s);continue}Ut.test(s)||Ut.test(a)||!a||st.test(a)||st.test(s)||jt.test(s)||zt.test(s)||Yt.test(s)||Qt.test(s)||bn.test(s)||kn.test(s)||!t||Wt.test(s)||Xt.test(s)||Wt.test(a)||Xt.test(a)||Gt.test(a)?o.push(s):o[o.length-1]=a+" "+s.trim()}return o.join(`
11
- `)}var Bn=[Vt,Zt,Jt,te],Pn=[],vn=[ee,oe,re,ie,se,ne,ae,le,ce],Hn=[],z=[...Bn,...Pn,...vn,...Hn];function Fr(r,t=z,e,n=!1,o=!0){let i=n?r:fe(r,o);return Dt(t,n)(i,e)}function Nr(r=z,t,e=!1){return yt(r,e)(t)}export{R as a,ho as b,xr as c,Fr as d,Nr as e,Gn as f,j as g,ft as h,co as i,ve as j,ao as k,Ct as l,mo as m};
12
- //# sourceMappingURL=chunk-CIY6PKN6.js.map