@mx-space/cli 0.14.2 → 0.15.1
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/README.md +36 -12
- package/dist/{Lexical.dev-CtGmYDoh.mjs → Lexical.dev-BSvx45_E.mjs} +350 -402
- package/dist/{Lexical.node-8sRFmq2X.mjs → Lexical.node-kAh5GM2n.mjs} +2 -2
- package/dist/{Lexical.prod-D-VfeKDz.mjs → Lexical.prod-Bqwgb3ez.mjs} +1757 -1785
- package/dist/{LexicalClipboard.dev-CzQ15z6E.mjs → LexicalClipboard.dev-BWU3KXIa.mjs} +19 -15
- package/dist/{LexicalClipboard.node-D4gMGws6.mjs → LexicalClipboard.node-BygAdNdF.mjs} +2 -2
- package/dist/{LexicalClipboard.prod-CltkQpzS.mjs → LexicalClipboard.prod-BtMuKNyT.mjs} +11 -11
- package/dist/{LexicalCodeCore.dev-DkYBZRGB.mjs → LexicalCodeCore.dev-CD2xgvDs.mjs} +95 -89
- package/dist/{LexicalCodeCore.prod-COc3_QL8.mjs → LexicalCodeCore.prod-Bl6FFMc7.mjs} +146 -158
- package/dist/{LexicalDragon.dev-Dv5_WUae.mjs → LexicalDragon.dev-BwdYhm4K.mjs} +3 -3
- package/dist/{LexicalDragon.node-DgjrmWkd.mjs → LexicalDragon.node-CpJhkCVV.mjs} +2 -2
- package/dist/{LexicalDragon.prod-DnpbDe-_.mjs → LexicalDragon.prod-CvXmWwo1.mjs} +3 -3
- package/dist/{LexicalExtension.dev-JMH_6-OZ.mjs → LexicalExtension.dev-LcRLXI5Z.mjs} +33 -30
- package/dist/{LexicalExtension.node-BUozzx4t.mjs → LexicalExtension.node-BwJt2LXV.mjs} +2 -2
- package/dist/{LexicalExtension.prod-UiyDgmou.mjs → LexicalExtension.prod-lg8_33-H.mjs} +87 -93
- package/dist/{LexicalHeadless.dev-BfLGciiX.mjs → LexicalHeadless.dev-BeUbKBes.mjs} +2 -2
- package/dist/{LexicalHeadless.prod-CWF7edmQ.mjs → LexicalHeadless.prod-4gbIA8HM.mjs} +2 -2
- package/dist/{LexicalHtml.dev-D5EF5PGW.mjs → LexicalHtml.dev-BLdZWTCJ.mjs} +22 -16
- package/dist/{LexicalHtml.node-BYbzHNVe.mjs → LexicalHtml.node-BeuJMvvt.mjs} +2 -2
- package/dist/{LexicalHtml.prod-D_FfkvVD.mjs → LexicalHtml.prod-CHUyCocN.mjs} +6 -6
- package/dist/{LexicalLink.dev-D3Pgh6ik.mjs → LexicalLink.dev-DgsFRqw0.mjs} +41 -58
- package/dist/{LexicalLink.prod-XZoAYVYD.mjs → LexicalLink.prod-CkXkeKY2.mjs} +115 -138
- package/dist/{LexicalList.dev-B5d3ObhB.mjs → LexicalList.dev-OOms3kQi.mjs} +15 -47
- package/dist/{LexicalList.prod-OQDpVAEb.mjs → LexicalList.prod-DzMBeqHn.mjs} +208 -224
- package/dist/{LexicalMarkdown.dev-BkM8G3DG.mjs → LexicalMarkdown.dev-DJLKbZtD.mjs} +42 -30
- package/dist/{LexicalMarkdown.prod-DcVXCex6.mjs → LexicalMarkdown.prod-Cp21kDCU.mjs} +12 -8
- package/dist/{LexicalRichText.dev-DppD7IrA.mjs → LexicalRichText.dev-0rkAGjUf.mjs} +84 -86
- package/dist/{LexicalRichText.node-CPSn7dkg.mjs → LexicalRichText.node-Cd-BySPE.mjs} +8 -8
- package/dist/{LexicalRichText.prod-h7JPxFNp.mjs → LexicalRichText.prod-DTQiEr8C.mjs} +96 -100
- package/dist/{LexicalSelection.dev-CD0SLbxP.mjs → LexicalSelection.dev-Bi0VlUEv.mjs} +29 -25
- package/dist/{LexicalSelection.node-CGlJgUlZ.mjs → LexicalSelection.node-t2U46EF_.mjs} +2 -2
- package/dist/{LexicalSelection.prod-DbVZN5AV.mjs → LexicalSelection.prod-CrFG111g.mjs} +3 -3
- package/dist/{LexicalTable.dev-D0HU14UV.mjs → LexicalTable.dev-D-sFhO-o.mjs} +288 -154
- package/dist/{LexicalTable.prod-BcPNSrxP.mjs → LexicalTable.prod-DwYaa_dN.mjs} +689 -632
- package/dist/{LexicalUtils.dev-iKy_TrRT.mjs → LexicalUtils.dev-Q2q3-UDM.mjs} +9 -6
- package/dist/{LexicalUtils.node-CIgMS8cG.mjs → LexicalUtils.node-Dl7OvqJV.mjs} +2 -2
- package/dist/{LexicalUtils.prod-DIAsKJzu.mjs → LexicalUtils.prod-CBnq_iEV.mjs} +8 -7
- package/dist/bin/mxs.mjs +1 -1
- package/dist/esm-CNZ7kdTg.mjs +2 -0
- package/dist/{esm-CwXl1N0a.mjs → esm-ZXjJmLEC.mjs} +422 -391
- package/dist/index.d.mts +16 -16
- package/dist/index.mjs +1 -1
- package/dist/{mxs-iW9DgqSZ.mjs → mxs-DC9zR3f2.mjs} +2203 -2782
- package/dist/{rolldown-runtime-JspESFgx.mjs → rolldown-runtime-B4iAMlE-.mjs} +1 -1
- package/dist/src/bin/mxs.d.ts +2 -0
- package/dist/src/bin/mxs.js +310 -0
- package/dist/src/cli/ai/_poll.d.ts +12 -0
- package/dist/src/cli/ai/_poll.js +38 -0
- package/dist/src/cli/ai/_resolve.d.ts +8 -0
- package/dist/src/cli/ai/_resolve.js +27 -0
- package/dist/src/cli/ai/index.d.ts +127 -0
- package/dist/src/cli/ai/index.js +46 -0
- package/dist/src/cli/ai/insights/by-article.d.ts +10 -0
- package/dist/src/cli/ai/insights/by-article.js +21 -0
- package/dist/src/cli/ai/insights/delete.d.ts +7 -0
- package/dist/src/cli/ai/insights/delete.js +18 -0
- package/dist/src/cli/ai/insights/edit.d.ts +8 -0
- package/dist/src/cli/ai/insights/edit.js +54 -0
- package/dist/src/cli/ai/insights/get.d.ts +6 -0
- package/dist/src/cli/ai/insights/get.js +11 -0
- package/dist/src/cli/ai/insights/index.d.ts +30 -0
- package/dist/src/cli/ai/insights/index.js +17 -0
- package/dist/src/cli/ai/insights/list.d.ts +10 -0
- package/dist/src/cli/ai/insights/list.js +20 -0
- package/dist/src/cli/ai/insights/refresh.d.ts +10 -0
- package/dist/src/cli/ai/insights/refresh.js +25 -0
- package/dist/src/cli/ai/insights/translate.d.ts +10 -0
- package/dist/src/cli/ai/insights/translate.js +25 -0
- package/dist/src/cli/ai/overview/by-article.d.ts +7 -0
- package/dist/src/cli/ai/overview/by-article.js +15 -0
- package/dist/src/cli/ai/overview/index.d.ts +11 -0
- package/dist/src/cli/ai/overview/index.js +4 -0
- package/dist/src/cli/ai/overview/list.d.ts +10 -0
- package/dist/src/cli/ai/overview/list.js +20 -0
- package/dist/src/cli/ai/summary/by-article.d.ts +10 -0
- package/dist/src/cli/ai/summary/by-article.js +21 -0
- package/dist/src/cli/ai/summary/delete.d.ts +7 -0
- package/dist/src/cli/ai/summary/delete.js +18 -0
- package/dist/src/cli/ai/summary/edit.d.ts +8 -0
- package/dist/src/cli/ai/summary/edit.js +54 -0
- package/dist/src/cli/ai/summary/get.d.ts +6 -0
- package/dist/src/cli/ai/summary/get.js +11 -0
- package/dist/src/cli/ai/summary/index.d.ts +30 -0
- package/dist/src/cli/ai/summary/index.js +9 -0
- package/dist/src/cli/ai/summary/list.d.ts +10 -0
- package/dist/src/cli/ai/summary/list.js +20 -0
- package/dist/src/cli/ai/summary/regen.d.ts +10 -0
- package/dist/src/cli/ai/summary/regen.js +25 -0
- package/dist/src/cli/ai/summary/translate.d.ts +10 -0
- package/dist/src/cli/ai/summary/translate.js +25 -0
- package/dist/src/cli/ai/translate/by-article.d.ts +9 -0
- package/dist/src/cli/ai/translate/by-article.js +19 -0
- package/dist/src/cli/ai/translate/delete.d.ts +7 -0
- package/dist/src/cli/ai/translate/delete.js +18 -0
- package/dist/src/cli/ai/translate/edit.d.ts +8 -0
- package/dist/src/cli/ai/translate/edit.js +97 -0
- package/dist/src/cli/ai/translate/entries/delete.d.ts +7 -0
- package/dist/src/cli/ai/translate/entries/delete.js +18 -0
- package/dist/src/cli/ai/translate/entries/edit.d.ts +8 -0
- package/dist/src/cli/ai/translate/entries/edit.js +73 -0
- package/dist/src/cli/ai/translate/entries/generate.d.ts +7 -0
- package/dist/src/cli/ai/translate/entries/generate.js +15 -0
- package/dist/src/cli/ai/translate/entries/index.d.ts +17 -0
- package/dist/src/cli/ai/translate/entries/index.js +6 -0
- package/dist/src/cli/ai/translate/entries/list.d.ts +10 -0
- package/dist/src/cli/ai/translate/entries/list.js +20 -0
- package/dist/src/cli/ai/translate/get.d.ts +6 -0
- package/dist/src/cli/ai/translate/get.js +11 -0
- package/dist/src/cli/ai/translate/index.d.ts +40 -0
- package/dist/src/cli/ai/translate/index.js +19 -0
- package/dist/src/cli/ai/translate/languages.d.ts +7 -0
- package/dist/src/cli/ai/translate/languages.js +15 -0
- package/dist/src/cli/ai/translate/list.d.ts +9 -0
- package/dist/src/cli/ai/translate/list.js +19 -0
- package/dist/src/cli/ai/translate/run.d.ts +10 -0
- package/dist/src/cli/ai/translate/run.js +31 -0
- package/dist/src/cli/ai/tts/by-article.d.ts +7 -0
- package/dist/src/cli/ai/tts/by-article.js +15 -0
- package/dist/src/cli/ai/tts/delete.d.ts +7 -0
- package/dist/src/cli/ai/tts/delete.js +18 -0
- package/dist/src/cli/ai/tts/index.d.ts +22 -0
- package/dist/src/cli/ai/tts/index.js +7 -0
- package/dist/src/cli/ai/tts/list.d.ts +10 -0
- package/dist/src/cli/ai/tts/list.js +20 -0
- package/dist/src/cli/ai/tts/run.d.ts +10 -0
- package/dist/src/cli/ai/tts/run.js +25 -0
- package/dist/src/cli/ai/tts/voices.d.ts +7 -0
- package/dist/src/cli/ai/tts/voices.js +12 -0
- package/dist/src/cli/ai/views.d.ts +3 -0
- package/dist/src/cli/ai/views.js +45 -0
- package/dist/src/cli/auth/index.d.ts +6 -0
- package/dist/src/cli/auth/index.js +22 -0
- package/dist/src/cli/auth/login.d.ts +11 -0
- package/dist/src/cli/auth/login.js +168 -0
- package/dist/src/cli/auth/logout.d.ts +6 -0
- package/dist/src/cli/auth/logout.js +21 -0
- package/dist/src/cli/auth/status.d.ts +4 -0
- package/dist/src/cli/auth/status.js +31 -0
- package/dist/src/cli/auth/view.d.ts +25 -0
- package/dist/src/cli/auth/view.js +46 -0
- package/dist/src/cli/auth/whoami.d.ts +7 -0
- package/dist/src/cli/auth/whoami.js +44 -0
- package/dist/src/cli/category/create.d.ts +10 -0
- package/dist/src/cli/category/create.js +24 -0
- package/dist/src/cli/category/delete.d.ts +8 -0
- package/dist/src/cli/category/delete.js +21 -0
- package/dist/src/cli/category/get.d.ts +6 -0
- package/dist/src/cli/category/get.js +11 -0
- package/dist/src/cli/category/index.d.ts +20 -0
- package/dist/src/cli/category/index.js +41 -0
- package/dist/src/cli/category/list.d.ts +4 -0
- package/dist/src/cli/category/list.js +10 -0
- package/dist/src/cli/category/update.d.ts +12 -0
- package/dist/src/cli/category/update.js +34 -0
- package/dist/src/cli/comment/_flags.d.ts +28 -0
- package/dist/src/cli/comment/_flags.js +48 -0
- package/dist/src/cli/comment/approve.d.ts +9 -0
- package/dist/src/cli/comment/approve.js +23 -0
- package/dist/src/cli/comment/delete.d.ts +9 -0
- package/dist/src/cli/comment/delete.js +24 -0
- package/dist/src/cli/comment/get.d.ts +6 -0
- package/dist/src/cli/comment/get.js +12 -0
- package/dist/src/cli/comment/index.d.ts +34 -0
- package/dist/src/cli/comment/index.js +53 -0
- package/dist/src/cli/comment/list.d.ts +9 -0
- package/dist/src/cli/comment/list.js +20 -0
- package/dist/src/cli/comment/reject.d.ts +9 -0
- package/dist/src/cli/comment/reject.js +23 -0
- package/dist/src/cli/comment/reply.d.ts +9 -0
- package/dist/src/cli/comment/reply.js +31 -0
- package/dist/src/cli/comment/unread.d.ts +7 -0
- package/dist/src/cli/comment/unread.js +21 -0
- package/dist/src/cli/comment/view.d.ts +3 -0
- package/dist/src/cli/comment/view.js +197 -0
- package/dist/src/cli/config/edit.d.ts +5 -0
- package/dist/src/cli/config/edit.js +36 -0
- package/dist/src/cli/config/get.d.ts +6 -0
- package/dist/src/cli/config/get.js +11 -0
- package/dist/src/cli/config/index.d.ts +10 -0
- package/dist/src/cli/config/index.js +22 -0
- package/dist/src/cli/config/list.d.ts +4 -0
- package/dist/src/cli/config/list.js +10 -0
- package/dist/src/cli/config/set.d.ts +9 -0
- package/dist/src/cli/config/set.js +48 -0
- package/dist/src/cli/draft/_shared.d.ts +27 -0
- package/dist/src/cli/draft/_shared.js +85 -0
- package/dist/src/cli/draft/create.d.ts +21 -0
- package/dist/src/cli/draft/create.js +34 -0
- package/dist/src/cli/draft/delete.d.ts +7 -0
- package/dist/src/cli/draft/delete.js +20 -0
- package/dist/src/cli/draft/get.d.ts +6 -0
- package/dist/src/cli/draft/get.js +11 -0
- package/dist/src/cli/draft/index.d.ts +54 -0
- package/dist/src/cli/draft/index.js +42 -0
- package/dist/src/cli/draft/list.d.ts +11 -0
- package/dist/src/cli/draft/list.js +23 -0
- package/dist/src/cli/draft/publish.d.ts +8 -0
- package/dist/src/cli/draft/publish.js +64 -0
- package/dist/src/cli/draft/update.d.ts +22 -0
- package/dist/src/cli/draft/update.js +29 -0
- package/dist/src/cli/file/_shared.d.ts +6 -0
- package/dist/src/cli/file/_shared.js +5 -0
- package/dist/src/cli/file/delete.d.ts +8 -0
- package/dist/src/cli/file/delete.js +21 -0
- package/dist/src/cli/file/index.d.ts +19 -0
- package/dist/src/cli/file/index.js +33 -0
- package/dist/src/cli/file/list.d.ts +6 -0
- package/dist/src/cli/file/list.js +11 -0
- package/dist/src/cli/file/rename.d.ts +8 -0
- package/dist/src/cli/file/rename.js +16 -0
- package/dist/src/cli/file/upload.d.ts +9 -0
- package/dist/src/cli/file/upload.js +32 -0
- package/dist/src/cli/help/index.d.ts +62 -0
- package/dist/src/cli/help/index.js +276 -0
- package/dist/src/cli/help/registry.d.ts +28 -0
- package/dist/src/cli/help/registry.js +29 -0
- package/dist/src/cli/note/_flags.d.ts +66 -0
- package/dist/src/cli/note/_flags.js +73 -0
- package/dist/src/cli/note/create.d.ts +23 -0
- package/dist/src/cli/note/create.js +25 -0
- package/dist/src/cli/note/delete.d.ts +8 -0
- package/dist/src/cli/note/delete.js +21 -0
- package/dist/src/cli/note/edit.d.ts +28 -0
- package/dist/src/cli/note/edit.js +114 -0
- package/dist/src/cli/note/get.d.ts +6 -0
- package/dist/src/cli/note/get.js +29 -0
- package/dist/src/cli/note/index.d.ts +77 -0
- package/dist/src/cli/note/index.js +63 -0
- package/dist/src/cli/note/list.d.ts +10 -0
- package/dist/src/cli/note/list.js +22 -0
- package/dist/src/cli/note/publish.d.ts +7 -0
- package/dist/src/cli/note/publish.js +17 -0
- package/dist/src/cli/note/unpublish.d.ts +7 -0
- package/dist/src/cli/note/unpublish.js +17 -0
- package/dist/src/cli/note/update.d.ts +25 -0
- package/dist/src/cli/note/update.js +36 -0
- package/dist/src/cli/note/view.d.ts +3 -0
- package/dist/src/cli/note/view.js +162 -0
- package/dist/src/cli/page/create.d.ts +41 -0
- package/dist/src/cli/page/create.js +56 -0
- package/dist/src/cli/page/delete.d.ts +7 -0
- package/dist/src/cli/page/delete.js +37 -0
- package/dist/src/cli/page/edit.d.ts +19 -0
- package/dist/src/cli/page/edit.js +117 -0
- package/dist/src/cli/page/get.d.ts +6 -0
- package/dist/src/cli/page/get.js +16 -0
- package/dist/src/cli/page/index.d.ts +44 -0
- package/dist/src/cli/page/index.js +38 -0
- package/dist/src/cli/page/list.d.ts +4 -0
- package/dist/src/cli/page/list.js +10 -0
- package/dist/src/cli/page/update.d.ts +16 -0
- package/dist/src/cli/page/update.js +48 -0
- package/dist/src/cli/page/view.d.ts +2 -0
- package/dist/src/cli/page/view.js +79 -0
- package/dist/src/cli/post/_flags.d.ts +66 -0
- package/dist/src/cli/post/_flags.js +96 -0
- package/dist/src/cli/post/apply.d.ts +7 -0
- package/dist/src/cli/post/apply.js +70 -0
- package/dist/src/cli/post/create.d.ts +21 -0
- package/dist/src/cli/post/create.js +24 -0
- package/dist/src/cli/post/delete.d.ts +8 -0
- package/dist/src/cli/post/delete.js +21 -0
- package/dist/src/cli/post/edit.d.ts +26 -0
- package/dist/src/cli/post/edit.js +115 -0
- package/dist/src/cli/post/get.d.ts +7 -0
- package/dist/src/cli/post/get.js +15 -0
- package/dist/src/cli/post/index.d.ts +91 -0
- package/dist/src/cli/post/index.js +73 -0
- package/dist/src/cli/post/list.d.ts +10 -0
- package/dist/src/cli/post/list.js +23 -0
- package/dist/src/cli/post/publish.d.ts +7 -0
- package/dist/src/cli/post/publish.js +17 -0
- package/dist/src/cli/post/stage.d.ts +23 -0
- package/dist/src/cli/post/stage.js +55 -0
- package/dist/src/cli/post/unpublish.d.ts +7 -0
- package/dist/src/cli/post/unpublish.js +17 -0
- package/dist/src/cli/post/update.d.ts +23 -0
- package/dist/src/cli/post/update.js +38 -0
- package/dist/src/cli/post/view.d.ts +3 -0
- package/dist/src/cli/post/view.js +150 -0
- package/dist/src/cli/preview/index.d.ts +13 -0
- package/dist/src/cli/preview/index.js +226 -0
- package/dist/src/cli/profile/index.d.ts +14 -0
- package/dist/src/cli/profile/index.js +36 -0
- package/dist/src/cli/profile/ls.d.ts +5 -0
- package/dist/src/cli/profile/ls.js +26 -0
- package/dist/src/cli/profile/mark.d.ts +9 -0
- package/dist/src/cli/profile/mark.js +23 -0
- package/dist/src/cli/profile/rm.d.ts +12 -0
- package/dist/src/cli/profile/rm.js +50 -0
- package/dist/src/cli/profile/show.d.ts +9 -0
- package/dist/src/cli/profile/show.js +40 -0
- package/dist/src/cli/profile/use.d.ts +6 -0
- package/dist/src/cli/profile/use.js +11 -0
- package/dist/src/cli/profile/view.d.ts +8 -0
- package/dist/src/cli/profile/view.js +21 -0
- package/dist/src/cli/project/_flags.d.ts +56 -0
- package/dist/src/cli/project/_flags.js +130 -0
- package/dist/src/cli/project/create.d.ts +17 -0
- package/dist/src/cli/project/create.js +25 -0
- package/dist/src/cli/project/delete.d.ts +8 -0
- package/dist/src/cli/project/delete.js +22 -0
- package/dist/src/cli/project/edit.d.ts +11 -0
- package/dist/src/cli/project/edit.js +61 -0
- package/dist/src/cli/project/get.d.ts +7 -0
- package/dist/src/cli/project/get.js +14 -0
- package/dist/src/cli/project/index.d.ts +43 -0
- package/dist/src/cli/project/index.js +52 -0
- package/dist/src/cli/project/list.d.ts +8 -0
- package/dist/src/cli/project/list.js +19 -0
- package/dist/src/cli/project/update.d.ts +18 -0
- package/dist/src/cli/project/update.js +24 -0
- package/dist/src/cli/project/view-cmd.d.ts +7 -0
- package/dist/src/cli/project/view-cmd.js +15 -0
- package/dist/src/cli/project/view.d.ts +3 -0
- package/dist/src/cli/project/view.js +102 -0
- package/dist/src/cli/render/codehighlight.d.ts +8 -0
- package/dist/src/cli/render/codehighlight.js +264 -0
- package/dist/src/cli/render/envelope.d.ts +7 -0
- package/dist/src/cli/render/envelope.js +23 -0
- package/dist/src/cli/render/frontmatter.d.ts +8 -0
- package/dist/src/cli/render/frontmatter.js +50 -0
- package/dist/src/cli/render/helpers.d.ts +2 -0
- package/dist/src/cli/render/helpers.js +11 -0
- package/dist/src/cli/render/index.d.ts +7 -0
- package/dist/src/cli/render/index.js +10 -0
- package/dist/src/cli/render/lexical/blocks.d.ts +19 -0
- package/dist/src/cli/render/lexical/blocks.js +208 -0
- package/dist/src/cli/render/lexical/code.d.ts +2 -0
- package/dist/src/cli/render/lexical/code.js +22 -0
- package/dist/src/cli/render/lexical/embeds.d.ts +6 -0
- package/dist/src/cli/render/lexical/embeds.js +51 -0
- package/dist/src/cli/render/lexical/index.d.ts +9 -0
- package/dist/src/cli/render/lexical/index.js +25 -0
- package/dist/src/cli/render/lexical/inlines.d.ts +17 -0
- package/dist/src/cli/render/lexical/inlines.js +76 -0
- package/dist/src/cli/render/lexical/parser.d.ts +10 -0
- package/dist/src/cli/render/lexical/parser.js +64 -0
- package/dist/src/cli/render/lexical/walker.d.ts +21 -0
- package/dist/src/cli/render/lexical/walker.js +51 -0
- package/dist/src/cli/render/markdown.d.ts +18 -0
- package/dist/src/cli/render/markdown.js +196 -0
- package/dist/src/cli/render/metadata-block.d.ts +14 -0
- package/dist/src/cli/render/metadata-block.js +50 -0
- package/dist/src/cli/skill/all.d.ts +4 -0
- package/dist/src/cli/skill/all.js +11 -0
- package/dist/src/cli/skill/get.d.ts +6 -0
- package/dist/src/cli/skill/get.js +12 -0
- package/dist/src/cli/skill/index.d.ts +10 -0
- package/dist/src/cli/skill/index.js +34 -0
- package/dist/src/cli/skill/list.d.ts +4 -0
- package/dist/src/cli/skill/list.js +11 -0
- package/dist/src/cli/skill/search.d.ts +6 -0
- package/dist/src/cli/skill/search.js +12 -0
- package/dist/src/cli/skill/views.d.ts +6 -0
- package/dist/src/cli/skill/views.js +90 -0
- package/dist/src/cli/snippet/_flags.d.ts +57 -0
- package/dist/src/cli/snippet/_flags.js +123 -0
- package/dist/src/cli/snippet/_resolve.d.ts +4 -0
- package/dist/src/cli/snippet/_resolve.js +32 -0
- package/dist/src/cli/snippet/_sync.d.ts +5 -0
- package/dist/src/cli/snippet/_sync.js +54 -0
- package/dist/src/cli/snippet/create.d.ts +19 -0
- package/dist/src/cli/snippet/create.js +35 -0
- package/dist/src/cli/snippet/delete.d.ts +8 -0
- package/dist/src/cli/snippet/delete.js +28 -0
- package/dist/src/cli/snippet/edit.d.ts +7 -0
- package/dist/src/cli/snippet/edit.js +29 -0
- package/dist/src/cli/snippet/get.d.ts +6 -0
- package/dist/src/cli/snippet/get.js +12 -0
- package/dist/src/cli/snippet/index.d.ts +43 -0
- package/dist/src/cli/snippet/index.js +58 -0
- package/dist/src/cli/snippet/list.d.ts +9 -0
- package/dist/src/cli/snippet/list.js +20 -0
- package/dist/src/cli/snippet/pull.d.ts +8 -0
- package/dist/src/cli/snippet/pull.js +33 -0
- package/dist/src/cli/snippet/push.d.ts +10 -0
- package/dist/src/cli/snippet/push.js +31 -0
- package/dist/src/cli/snippet/update.d.ts +8 -0
- package/dist/src/cli/snippet/update.js +16 -0
- package/dist/src/cli/topic/create.d.ts +10 -0
- package/dist/src/cli/topic/create.js +24 -0
- package/dist/src/cli/topic/delete.d.ts +7 -0
- package/dist/src/cli/topic/delete.js +37 -0
- package/dist/src/cli/topic/get.d.ts +6 -0
- package/dist/src/cli/topic/get.js +15 -0
- package/dist/src/cli/topic/index.d.ts +20 -0
- package/dist/src/cli/topic/index.js +32 -0
- package/dist/src/cli/topic/list.d.ts +4 -0
- package/dist/src/cli/topic/list.js +10 -0
- package/dist/src/cli/topic/update.d.ts +11 -0
- package/dist/src/cli/topic/update.js +51 -0
- package/dist/src/cli/ui/index.d.ts +24 -0
- package/dist/src/cli/ui/index.js +83 -0
- package/dist/src/cli/update/index.d.ts +10 -0
- package/dist/src/cli/update/index.js +142 -0
- package/dist/src/domain/admin-link.d.ts +12 -0
- package/dist/src/domain/admin-link.js +45 -0
- package/dist/src/domain/content-spec.d.ts +20 -0
- package/dist/src/domain/content-spec.js +78 -0
- package/dist/src/domain/envelope-compat.d.ts +68 -0
- package/dist/src/domain/envelope-compat.js +121 -0
- package/dist/src/domain/envelope.d.ts +34 -0
- package/dist/src/domain/envelope.js +355 -0
- package/dist/src/domain/errors.d.ts +336 -0
- package/dist/src/domain/errors.js +239 -0
- package/dist/src/domain/gate.d.ts +14 -0
- package/dist/src/domain/gate.js +18 -0
- package/dist/src/domain/payload.d.ts +64 -0
- package/dist/src/domain/payload.js +237 -0
- package/dist/src/domain/preflight-guards.d.ts +54 -0
- package/dist/src/domain/preflight-guards.js +130 -0
- package/dist/src/domain/runtime-flags.d.ts +33 -0
- package/dist/src/domain/runtime-flags.js +166 -0
- package/dist/src/domain/schema/api-envelope.d.ts +67 -0
- package/dist/src/domain/schema/api-envelope.js +65 -0
- package/dist/src/domain/schema/category.d.ts +23 -0
- package/dist/src/domain/schema/category.js +19 -0
- package/dist/src/domain/schema/config.d.ts +13 -0
- package/dist/src/domain/schema/config.js +18 -0
- package/dist/src/domain/schema/note.d.ts +76 -0
- package/dist/src/domain/schema/note.js +35 -0
- package/dist/src/domain/schema/page.d.ts +40 -0
- package/dist/src/domain/schema/page.js +22 -0
- package/dist/src/domain/schema/post.d.ts +68 -0
- package/dist/src/domain/schema/post.js +35 -0
- package/dist/src/domain/schema/profile.d.ts +14 -0
- package/dist/src/domain/schema/profile.js +22 -0
- package/dist/src/domain/schema/topic.d.ts +24 -0
- package/dist/src/domain/schema/topic.js +16 -0
- package/dist/src/domain/version.d.ts +15 -0
- package/dist/src/domain/version.js +43 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +8 -0
- package/dist/src/layers/App.d.ts +30 -0
- package/dist/src/layers/App.js +39 -0
- package/dist/src/services/Ai/index.d.ts +13 -0
- package/dist/src/services/Ai/index.js +127 -0
- package/dist/src/services/Ai/overview.d.ts +7 -0
- package/dist/src/services/Ai/overview.js +11 -0
- package/dist/src/services/Ai/resources.d.ts +7 -0
- package/dist/src/services/Ai/resources.js +59 -0
- package/dist/src/services/Ai/shared.d.ts +2 -0
- package/dist/src/services/Ai/shared.js +11 -0
- package/dist/src/services/Ai/tasks.d.ts +8 -0
- package/dist/src/services/Ai/tasks.js +144 -0
- package/dist/src/services/Ai/types.d.ts +130 -0
- package/dist/src/services/Ai/types.js +1 -0
- package/dist/src/services/Api.d.ts +67 -0
- package/dist/src/services/Api.js +348 -0
- package/dist/src/services/Auth.d.ts +101 -0
- package/dist/src/services/Auth.js +402 -0
- package/dist/src/services/Backup.d.ts +8 -0
- package/dist/src/services/Backup.js +4 -0
- package/dist/src/services/Cache.d.ts +8 -0
- package/dist/src/services/Cache.js +4 -0
- package/dist/src/services/Comment.d.ts +48 -0
- package/dist/src/services/Comment.js +102 -0
- package/dist/src/services/Config.d.ts +95 -0
- package/dist/src/services/Config.js +359 -0
- package/dist/src/services/Editor.d.ts +28 -0
- package/dist/src/services/Editor.js +95 -0
- package/dist/src/services/Lexical.d.ts +27 -0
- package/dist/src/services/Lexical.js +56 -0
- package/dist/src/services/Migration.d.ts +31 -0
- package/dist/src/services/Migration.js +177 -0
- package/dist/src/services/Profile.d.ts +29 -0
- package/dist/src/services/Profile.js +115 -0
- package/dist/src/services/Renderer/content.d.ts +16 -0
- package/dist/src/services/Renderer/content.js +110 -0
- package/dist/src/services/Renderer/datetime.d.ts +38 -0
- package/dist/src/services/Renderer/datetime.js +147 -0
- package/dist/src/services/Renderer/errors.d.ts +3 -0
- package/dist/src/services/Renderer/errors.js +59 -0
- package/dist/src/services/Renderer/index.d.ts +13 -0
- package/dist/src/services/Renderer/index.js +11 -0
- package/dist/src/services/Renderer/lists.d.ts +1 -0
- package/dist/src/services/Renderer/lists.js +101 -0
- package/dist/src/services/Renderer/options.d.ts +10 -0
- package/dist/src/services/Renderer/options.js +13 -0
- package/dist/src/services/Renderer/primitives.d.ts +4 -0
- package/dist/src/services/Renderer/primitives.js +12 -0
- package/dist/src/services/Renderer/service.d.ts +35 -0
- package/dist/src/services/Renderer/service.js +123 -0
- package/dist/src/services/Renderer/view.d.ts +16 -0
- package/dist/src/services/Renderer/view.js +1 -0
- package/dist/src/services/Resolver.d.ts +47 -0
- package/dist/src/services/Resolver.js +269 -0
- package/dist/src/services/Skill.d.ts +29 -0
- package/dist/src/services/Skill.js +421 -0
- package/dist/src/services/UpdateNotifier.d.ts +162 -0
- package/dist/src/services/UpdateNotifier.js +572 -0
- package/dist/test/cli/ai/ai.test.d.ts +1 -0
- package/dist/test/cli/ai/ai.test.js +507 -0
- package/dist/test/cli/ai/verbs.test.d.ts +1 -0
- package/dist/test/cli/ai/verbs.test.js +235 -0
- package/dist/test/cli/auth/login.test.d.ts +1 -0
- package/dist/test/cli/auth/login.test.js +236 -0
- package/dist/test/cli/auth/logout-whoami.test.d.ts +1 -0
- package/dist/test/cli/auth/logout-whoami.test.js +124 -0
- package/dist/test/cli/auth/status.test.d.ts +1 -0
- package/dist/test/cli/auth/status.test.js +90 -0
- package/dist/test/cli/category/category.test.d.ts +1 -0
- package/dist/test/cli/category/category.test.js +175 -0
- package/dist/test/cli/comment/comment.test.d.ts +1 -0
- package/dist/test/cli/comment/comment.test.js +445 -0
- package/dist/test/cli/config/config.test.d.ts +1 -0
- package/dist/test/cli/config/config.test.js +281 -0
- package/dist/test/cli/edit-roundtrip.test.d.ts +1 -0
- package/dist/test/cli/edit-roundtrip.test.js +259 -0
- package/dist/test/cli/file/file.test.d.ts +1 -0
- package/dist/test/cli/file/file.test.js +185 -0
- package/dist/test/cli/help.test.d.ts +1 -0
- package/dist/test/cli/help.test.js +289 -0
- package/dist/test/cli/note/create.test.d.ts +1 -0
- package/dist/test/cli/note/create.test.js +155 -0
- package/dist/test/cli/note/list.test.d.ts +1 -0
- package/dist/test/cli/note/list.test.js +115 -0
- package/dist/test/cli/note/publish.test.d.ts +1 -0
- package/dist/test/cli/note/publish.test.js +123 -0
- package/dist/test/cli/page/page.test.d.ts +1 -0
- package/dist/test/cli/page/page.test.js +185 -0
- package/dist/test/cli/post/create.test.d.ts +1 -0
- package/dist/test/cli/post/create.test.js +172 -0
- package/dist/test/cli/post/list.test.d.ts +1 -0
- package/dist/test/cli/post/list.test.js +133 -0
- package/dist/test/cli/post/publish.test.d.ts +1 -0
- package/dist/test/cli/post/publish.test.js +139 -0
- package/dist/test/cli/post/stage-apply.test.d.ts +1 -0
- package/dist/test/cli/post/stage-apply.test.js +215 -0
- package/dist/test/cli/post/update.test.d.ts +1 -0
- package/dist/test/cli/post/update.test.js +160 -0
- package/dist/test/cli/post-note-crud.test.d.ts +1 -0
- package/dist/test/cli/post-note-crud.test.js +362 -0
- package/dist/test/cli/profile/ls.test.d.ts +1 -0
- package/dist/test/cli/profile/ls.test.js +93 -0
- package/dist/test/cli/profile/mark-use.test.d.ts +1 -0
- package/dist/test/cli/profile/mark-use.test.js +216 -0
- package/dist/test/cli/project-crud.test.d.ts +1 -0
- package/dist/test/cli/project-crud.test.js +315 -0
- package/dist/test/cli/render/lexical.test.d.ts +1 -0
- package/dist/test/cli/render/lexical.test.js +216 -0
- package/dist/test/cli/render/markdown.test.d.ts +1 -0
- package/dist/test/cli/render/markdown.test.js +39 -0
- package/dist/test/cli/snippet-crud.test.d.ts +1 -0
- package/dist/test/cli/snippet-crud.test.js +293 -0
- package/dist/test/cli/topic/topic.test.d.ts +1 -0
- package/dist/test/cli/topic/topic.test.js +181 -0
- package/dist/test/cli/update.test.d.ts +1 -0
- package/dist/test/cli/update.test.js +395 -0
- package/dist/test/domain/content-spec.test.d.ts +1 -0
- package/dist/test/domain/content-spec.test.js +126 -0
- package/dist/test/domain/envelope-compat.test.d.ts +1 -0
- package/dist/test/domain/envelope-compat.test.js +126 -0
- package/dist/test/domain/envelope.test.d.ts +1 -0
- package/dist/test/domain/envelope.test.js +149 -0
- package/dist/test/domain/errors.test.d.ts +1 -0
- package/dist/test/domain/errors.test.js +127 -0
- package/dist/test/domain/gate.test.d.ts +1 -0
- package/dist/test/domain/gate.test.js +128 -0
- package/dist/test/domain/payload.test.d.ts +1 -0
- package/dist/test/domain/payload.test.js +259 -0
- package/dist/test/helper/test-fs.d.ts +24 -0
- package/dist/test/helper/test-fs.js +161 -0
- package/dist/test/helper/test-http.d.ts +31 -0
- package/dist/test/helper/test-http.js +66 -0
- package/dist/test/integration/_helpers.d.ts +5 -0
- package/dist/test/integration/_helpers.js +24 -0
- package/dist/test/integration/cli-error-envelope.test.d.ts +1 -0
- package/dist/test/integration/cli-error-envelope.test.js +137 -0
- package/dist/test/integration/cli-help-render.test.d.ts +1 -0
- package/dist/test/integration/cli-help-render.test.js +149 -0
- package/dist/test/integration/cli-help.test.d.ts +1 -0
- package/dist/test/integration/cli-help.test.js +67 -0
- package/dist/test/integration/cli-post-list.test.d.ts +1 -0
- package/dist/test/integration/cli-post-list.test.js +140 -0
- package/dist/test/integration/cli-skill.test.d.ts +1 -0
- package/dist/test/integration/cli-skill.test.js +74 -0
- package/dist/test/integration/cli-version.test.d.ts +1 -0
- package/dist/test/integration/cli-version.test.js +37 -0
- package/dist/test/services/Api.test.d.ts +1 -0
- package/dist/test/services/Api.test.js +553 -0
- package/dist/test/services/Auth.test.d.ts +1 -0
- package/dist/test/services/Auth.test.js +650 -0
- package/dist/test/services/Config.test.d.ts +1 -0
- package/dist/test/services/Config.test.js +510 -0
- package/dist/test/services/Datetime.test.d.ts +1 -0
- package/dist/test/services/Datetime.test.js +113 -0
- package/dist/test/services/Editor.test.d.ts +1 -0
- package/dist/test/services/Editor.test.js +205 -0
- package/dist/test/services/Lexical.errors.test.d.ts +1 -0
- package/dist/test/services/Lexical.errors.test.js +60 -0
- package/dist/test/services/Lexical.test.d.ts +1 -0
- package/dist/test/services/Lexical.test.js +68 -0
- package/dist/test/services/Migration.test.d.ts +1 -0
- package/dist/test/services/Migration.test.js +376 -0
- package/dist/test/services/Profile.test.d.ts +1 -0
- package/dist/test/services/Profile.test.js +277 -0
- package/dist/test/services/Renderer.test.d.ts +1 -0
- package/dist/test/services/Renderer.test.js +538 -0
- package/dist/test/services/Resolver.test.d.ts +1 -0
- package/dist/test/services/Resolver.test.js +320 -0
- package/dist/test/services/Skill.test.d.ts +1 -0
- package/dist/test/services/Skill.test.js +261 -0
- package/dist/test/services/UpdateNotifier.spawn.test.d.ts +1 -0
- package/dist/test/services/UpdateNotifier.spawn.test.js +73 -0
- package/dist/test/services/UpdateNotifier.test.d.ts +1 -0
- package/dist/test/services/UpdateNotifier.test.js +912 -0
- package/dist/vendor/litexml/cli.mjs +2481 -2561
- package/dist/vendor/litexml/litexml-html-preview-client.css +178 -60
- package/dist/vendor/litexml/litexml-html-preview-client.js +9950 -8762
- package/dist/vendor/litexml/style.css +11 -7
- package/package.json +23 -21
- package/skills/commands-ai.md +45 -12
- package/skills/overview.md +1 -1
- package/skills/safety.md +1 -1
- package/dist/esm-CH7CrOvh.mjs +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/lexical@0.
|
|
1
|
+
//#region ../../node_modules/.pnpm/lexical@0.49.0_typescript@6.0.3/node_modules/lexical/dist/Lexical.dev.mjs
|
|
2
2
|
/**
|
|
3
3
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
4
4
|
*
|
|
@@ -75,8 +75,10 @@ const NON_BREAKING_SPACE = "\xA0";
|
|
|
75
75
|
const COMPOSITION_SUFFIX = IS_SAFARI || IS_IOS || IS_APPLE_WEBKIT ? NON_BREAKING_SPACE : "";
|
|
76
76
|
const DOUBLE_LINE_BREAK = "\n\n";
|
|
77
77
|
const COMPOSITION_START_CHAR = IS_FIREFOX ? NON_BREAKING_SPACE : COMPOSITION_SUFFIX;
|
|
78
|
-
const
|
|
79
|
-
const
|
|
78
|
+
const RTL = "֑-߿יִ-﷽ﹰ-ﻼ";
|
|
79
|
+
const LTR = "A-Za-zÀ-ÖØ-öø-ʸ̀-ࠀ-Ⰰ-︀--";
|
|
80
|
+
const RTL_REGEX = new RegExp("^[^" + LTR + "]*[" + RTL + "]");
|
|
81
|
+
const LTR_REGEX = new RegExp("^[^" + RTL + "]*[" + LTR + "]");
|
|
80
82
|
const TEXT_TYPE_TO_FORMAT = {
|
|
81
83
|
bold: 1,
|
|
82
84
|
capitalize: IS_CAPITALIZE,
|
|
@@ -448,7 +450,7 @@ function indexPath(root, child) {
|
|
|
448
450
|
*/
|
|
449
451
|
let envLexicalVersion;
|
|
450
452
|
try {
|
|
451
|
-
envLexicalVersion = "0.
|
|
453
|
+
envLexicalVersion = "0.49.0+dev.esm";
|
|
452
454
|
} catch (_unused) {}
|
|
453
455
|
const LEXICAL_VERSION = envLexicalVersion ?? "\"<unknown>+source\"";
|
|
454
456
|
/**
|
|
@@ -2970,7 +2972,7 @@ function onSelectionChange(domSelection, editor, isActive) {
|
|
|
2970
2972
|
selection.format = hasTextNodes ? combinedFormat : 0;
|
|
2971
2973
|
}
|
|
2972
2974
|
}
|
|
2973
|
-
dispatchCommand(editor, SELECTION_CHANGE_COMMAND
|
|
2975
|
+
dispatchCommand(editor, SELECTION_CHANGE_COMMAND);
|
|
2974
2976
|
});
|
|
2975
2977
|
}
|
|
2976
2978
|
function $updateSelectionFormatStyle(selection, format, style) {
|
|
@@ -3004,6 +3006,27 @@ function onClick(event, editor) {
|
|
|
3004
3006
|
if (isHTMLElement(domAnchorNode) || isDOMTextNode(domAnchorNode)) $setSelection($internalCreateRangeSelection(lastSelection, domSelection, editor, event));
|
|
3005
3007
|
}
|
|
3006
3008
|
}
|
|
3009
|
+
if (IS_FIREFOX && domSelection !== null && domSelection.rangeCount === 0) {
|
|
3010
|
+
const rootElement = editor._rootElement;
|
|
3011
|
+
if (rootElement !== null && event.target === rootElement) {
|
|
3012
|
+
const clientY = event.clientY;
|
|
3013
|
+
let offset = rootElement.childNodes.length;
|
|
3014
|
+
for (let i = 0; i < rootElement.childNodes.length; i++) {
|
|
3015
|
+
const child = rootElement.childNodes[i];
|
|
3016
|
+
if (isHTMLElement(child)) {
|
|
3017
|
+
const rect = child.getBoundingClientRect();
|
|
3018
|
+
if (clientY <= (rect.top + rect.bottom) / 2) {
|
|
3019
|
+
offset = i;
|
|
3020
|
+
break;
|
|
3021
|
+
}
|
|
3022
|
+
}
|
|
3023
|
+
}
|
|
3024
|
+
domSelection.setBaseAndExtent(rootElement, offset, rootElement, offset);
|
|
3025
|
+
const newSelection = $internalCreateRangeSelection(lastSelection, domSelection, editor, event);
|
|
3026
|
+
if (newSelection !== null) $setSelection(newSelection);
|
|
3027
|
+
else domSelection.removeAllRanges();
|
|
3028
|
+
}
|
|
3029
|
+
}
|
|
3007
3030
|
dispatchCommand(editor, CLICK_COMMAND, event);
|
|
3008
3031
|
});
|
|
3009
3032
|
}
|
|
@@ -3180,7 +3203,7 @@ function $handleBeforeInput(event) {
|
|
|
3180
3203
|
dispatchCommand(editor, INSERT_LINE_BREAK_COMMAND, false);
|
|
3181
3204
|
} else if (data === DOUBLE_LINE_BREAK) {
|
|
3182
3205
|
event.preventDefault();
|
|
3183
|
-
dispatchCommand(editor, INSERT_PARAGRAPH_COMMAND
|
|
3206
|
+
dispatchCommand(editor, INSERT_PARAGRAPH_COMMAND);
|
|
3184
3207
|
} else if (data == null && event.dataTransfer) {
|
|
3185
3208
|
const text = event.dataTransfer.getData("text/plain");
|
|
3186
3209
|
event.preventDefault();
|
|
@@ -3219,7 +3242,7 @@ function $handleBeforeInput(event) {
|
|
|
3219
3242
|
if (inputState.isInsertLineBreak && !IS_IOS) {
|
|
3220
3243
|
inputState.isInsertLineBreak = false;
|
|
3221
3244
|
dispatchCommand(editor, INSERT_LINE_BREAK_COMMAND, false);
|
|
3222
|
-
} else dispatchCommand(editor, INSERT_PARAGRAPH_COMMAND
|
|
3245
|
+
} else dispatchCommand(editor, INSERT_PARAGRAPH_COMMAND);
|
|
3223
3246
|
break;
|
|
3224
3247
|
case "insertFromPaste":
|
|
3225
3248
|
case "insertFromPasteAsQuotation":
|
|
@@ -3266,11 +3289,9 @@ function $handleBeforeInput(event) {
|
|
|
3266
3289
|
dispatchCommand(editor, FORMAT_TEXT_COMMAND, "underline");
|
|
3267
3290
|
break;
|
|
3268
3291
|
case "historyUndo":
|
|
3269
|
-
dispatchCommand(editor, UNDO_COMMAND
|
|
3270
|
-
break;
|
|
3271
|
-
case "historyRedo":
|
|
3272
|
-
dispatchCommand(editor, REDO_COMMAND, void 0);
|
|
3292
|
+
dispatchCommand(editor, UNDO_COMMAND);
|
|
3273
3293
|
break;
|
|
3294
|
+
case "historyRedo": dispatchCommand(editor, REDO_COMMAND);
|
|
3274
3295
|
}
|
|
3275
3296
|
return true;
|
|
3276
3297
|
}
|
|
@@ -3474,19 +3495,21 @@ function $handleKeyDown(event) {
|
|
|
3474
3495
|
} else if (isParagraph(event)) {
|
|
3475
3496
|
inputState.isInsertLineBreak = false;
|
|
3476
3497
|
dispatchCommand(editor, KEY_ENTER_COMMAND, event);
|
|
3477
|
-
} else if (isDeleteBackward(event))
|
|
3478
|
-
if (
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
else if (
|
|
3485
|
-
else {
|
|
3486
|
-
event
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
|
|
3498
|
+
} else if (isDeleteBackward(event)) {
|
|
3499
|
+
if (isBackspace(event)) {
|
|
3500
|
+
if (dispatchCommand(editor, KEY_BACKSPACE_COMMAND, event)) markHandledSelectionCommandInsertText(inputState);
|
|
3501
|
+
} else {
|
|
3502
|
+
event.preventDefault();
|
|
3503
|
+
dispatchCommand(editor, DELETE_CHARACTER_COMMAND, true);
|
|
3504
|
+
}
|
|
3505
|
+
} else if (isEscape(event)) dispatchCommand(editor, KEY_ESCAPE_COMMAND, event);
|
|
3506
|
+
else if (isDeleteForward(event)) {
|
|
3507
|
+
if (isDelete(event)) dispatchCommand(editor, KEY_DELETE_COMMAND, event);
|
|
3508
|
+
else {
|
|
3509
|
+
event.preventDefault();
|
|
3510
|
+
dispatchCommand(editor, DELETE_CHARACTER_COMMAND, false);
|
|
3511
|
+
}
|
|
3512
|
+
} else if (isDeleteWordBackward(event)) {
|
|
3490
3513
|
event.preventDefault();
|
|
3491
3514
|
dispatchCommand(editor, DELETE_WORD_COMMAND, true);
|
|
3492
3515
|
} else if (isDeleteWordForward(event)) {
|
|
@@ -3510,10 +3533,10 @@ function $handleKeyDown(event) {
|
|
|
3510
3533
|
} else if (isTab(event)) dispatchCommand(editor, KEY_TAB_COMMAND, event);
|
|
3511
3534
|
else if (isUndo(event)) {
|
|
3512
3535
|
event.preventDefault();
|
|
3513
|
-
dispatchCommand(editor, UNDO_COMMAND
|
|
3536
|
+
dispatchCommand(editor, UNDO_COMMAND);
|
|
3514
3537
|
} else if (isRedo(event)) {
|
|
3515
3538
|
event.preventDefault();
|
|
3516
|
-
dispatchCommand(editor, REDO_COMMAND
|
|
3539
|
+
dispatchCommand(editor, REDO_COMMAND);
|
|
3517
3540
|
} else {
|
|
3518
3541
|
const prevSelection = editor._editorState._selection;
|
|
3519
3542
|
if (isSelectAll(event)) {
|
|
@@ -4672,10 +4695,14 @@ var LexicalNode = class {
|
|
|
4672
4695
|
$setSelection(selection);
|
|
4673
4696
|
const anchor = selection.anchor;
|
|
4674
4697
|
const focus = selection.focus;
|
|
4675
|
-
if (anchor.key === toReplaceKey)
|
|
4676
|
-
|
|
4677
|
-
|
|
4678
|
-
|
|
4698
|
+
if (anchor.key === toReplaceKey) {
|
|
4699
|
+
if (includeChildren && anchor.type === "element") anchor.set(writableReplaceWith.__key, prevSizeBeforeChildrenTransfer + anchor.offset, "element");
|
|
4700
|
+
else $moveSelectionPointToEnd(anchor, writableReplaceWith);
|
|
4701
|
+
}
|
|
4702
|
+
if (focus.key === toReplaceKey) {
|
|
4703
|
+
if (includeChildren && focus.type === "element") focus.set(writableReplaceWith.__key, prevSizeBeforeChildrenTransfer + focus.offset, "element");
|
|
4704
|
+
else $moveSelectionPointToEnd(focus, writableReplaceWith);
|
|
4705
|
+
}
|
|
4679
4706
|
}
|
|
4680
4707
|
if ($getCompositionKey() === toReplaceKey) $setCompositionKey(key);
|
|
4681
4708
|
return writableReplaceWith;
|
|
@@ -5043,8 +5070,10 @@ function getStyleObjectFromCSS(css) {
|
|
|
5043
5070
|
}
|
|
5044
5071
|
if (chunkStart === -1) chunkStart = i;
|
|
5045
5072
|
}
|
|
5046
|
-
if (chunkStart !== -1)
|
|
5047
|
-
|
|
5073
|
+
if (chunkStart !== -1) {
|
|
5074
|
+
if (isParsingValue) currentValue += css.slice(chunkStart, length);
|
|
5075
|
+
else currentProperty += css.slice(chunkStart, length);
|
|
5076
|
+
}
|
|
5048
5077
|
const property = currentProperty.trim();
|
|
5049
5078
|
const value = currentValue.trim();
|
|
5050
5079
|
if (property !== "" && value !== "") styles[property] = value;
|
|
@@ -5173,7 +5202,7 @@ function $isInlineFormattable(node) {
|
|
|
5173
5202
|
return node != null && node.__isInlineFormattable === true;
|
|
5174
5203
|
}
|
|
5175
5204
|
/** @noInheritDoc */
|
|
5176
|
-
var TextNode = class
|
|
5205
|
+
var TextNode = class extends LexicalNode {
|
|
5177
5206
|
/** @internal */
|
|
5178
5207
|
__text;
|
|
5179
5208
|
/** @internal */
|
|
@@ -5188,11 +5217,57 @@ var TextNode = class TextNode extends LexicalNode {
|
|
|
5188
5217
|
get __isInlineFormattable() {
|
|
5189
5218
|
return true;
|
|
5190
5219
|
}
|
|
5191
|
-
|
|
5192
|
-
return "text"
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5220
|
+
$config() {
|
|
5221
|
+
return this.config("text", { importDOM: {
|
|
5222
|
+
"#text": () => ({
|
|
5223
|
+
conversion: $convertTextDOMNode,
|
|
5224
|
+
priority: 0
|
|
5225
|
+
}),
|
|
5226
|
+
b: () => ({
|
|
5227
|
+
conversion: convertBringAttentionToElement,
|
|
5228
|
+
priority: 0
|
|
5229
|
+
}),
|
|
5230
|
+
code: () => ({
|
|
5231
|
+
conversion: convertTextFormatElement,
|
|
5232
|
+
priority: 0
|
|
5233
|
+
}),
|
|
5234
|
+
em: () => ({
|
|
5235
|
+
conversion: convertTextFormatElement,
|
|
5236
|
+
priority: 0
|
|
5237
|
+
}),
|
|
5238
|
+
i: () => ({
|
|
5239
|
+
conversion: convertTextFormatElement,
|
|
5240
|
+
priority: 0
|
|
5241
|
+
}),
|
|
5242
|
+
mark: () => ({
|
|
5243
|
+
conversion: convertTextFormatElement,
|
|
5244
|
+
priority: 0
|
|
5245
|
+
}),
|
|
5246
|
+
s: () => ({
|
|
5247
|
+
conversion: convertTextFormatElement,
|
|
5248
|
+
priority: 0
|
|
5249
|
+
}),
|
|
5250
|
+
span: () => ({
|
|
5251
|
+
conversion: convertSpanElement,
|
|
5252
|
+
priority: 0
|
|
5253
|
+
}),
|
|
5254
|
+
strong: () => ({
|
|
5255
|
+
conversion: convertTextFormatElement,
|
|
5256
|
+
priority: 0
|
|
5257
|
+
}),
|
|
5258
|
+
sub: () => ({
|
|
5259
|
+
conversion: convertTextFormatElement,
|
|
5260
|
+
priority: 0
|
|
5261
|
+
}),
|
|
5262
|
+
sup: () => ({
|
|
5263
|
+
conversion: convertTextFormatElement,
|
|
5264
|
+
priority: 0
|
|
5265
|
+
}),
|
|
5266
|
+
u: () => ({
|
|
5267
|
+
conversion: convertTextFormatElement,
|
|
5268
|
+
priority: 0
|
|
5269
|
+
})
|
|
5270
|
+
} });
|
|
5196
5271
|
}
|
|
5197
5272
|
afterCloneFrom(prevNode) {
|
|
5198
5273
|
super.afterCloneFrom(prevNode);
|
|
@@ -5390,61 +5465,6 @@ var TextNode = class TextNode extends LexicalNode {
|
|
|
5390
5465
|
if (prevStyle !== nextStyle) setDOMStyleFromCSS(dom.style, nextStyle, prevStyle);
|
|
5391
5466
|
return false;
|
|
5392
5467
|
}
|
|
5393
|
-
static importDOM() {
|
|
5394
|
-
return {
|
|
5395
|
-
"#text": () => ({
|
|
5396
|
-
conversion: $convertTextDOMNode,
|
|
5397
|
-
priority: 0
|
|
5398
|
-
}),
|
|
5399
|
-
b: () => ({
|
|
5400
|
-
conversion: convertBringAttentionToElement,
|
|
5401
|
-
priority: 0
|
|
5402
|
-
}),
|
|
5403
|
-
code: () => ({
|
|
5404
|
-
conversion: convertTextFormatElement,
|
|
5405
|
-
priority: 0
|
|
5406
|
-
}),
|
|
5407
|
-
em: () => ({
|
|
5408
|
-
conversion: convertTextFormatElement,
|
|
5409
|
-
priority: 0
|
|
5410
|
-
}),
|
|
5411
|
-
i: () => ({
|
|
5412
|
-
conversion: convertTextFormatElement,
|
|
5413
|
-
priority: 0
|
|
5414
|
-
}),
|
|
5415
|
-
mark: () => ({
|
|
5416
|
-
conversion: convertTextFormatElement,
|
|
5417
|
-
priority: 0
|
|
5418
|
-
}),
|
|
5419
|
-
s: () => ({
|
|
5420
|
-
conversion: convertTextFormatElement,
|
|
5421
|
-
priority: 0
|
|
5422
|
-
}),
|
|
5423
|
-
span: () => ({
|
|
5424
|
-
conversion: convertSpanElement,
|
|
5425
|
-
priority: 0
|
|
5426
|
-
}),
|
|
5427
|
-
strong: () => ({
|
|
5428
|
-
conversion: convertTextFormatElement,
|
|
5429
|
-
priority: 0
|
|
5430
|
-
}),
|
|
5431
|
-
sub: () => ({
|
|
5432
|
-
conversion: convertTextFormatElement,
|
|
5433
|
-
priority: 0
|
|
5434
|
-
}),
|
|
5435
|
-
sup: () => ({
|
|
5436
|
-
conversion: convertTextFormatElement,
|
|
5437
|
-
priority: 0
|
|
5438
|
-
}),
|
|
5439
|
-
u: () => ({
|
|
5440
|
-
conversion: convertTextFormatElement,
|
|
5441
|
-
priority: 0
|
|
5442
|
-
})
|
|
5443
|
-
};
|
|
5444
|
-
}
|
|
5445
|
-
static importJSON(serializedNode) {
|
|
5446
|
-
return $createTextNode().updateFromJSON(serializedNode);
|
|
5447
|
-
}
|
|
5448
5468
|
updateFromJSON(serializedNode) {
|
|
5449
5469
|
return super.updateFromJSON(serializedNode).setTextContent(serializedNode.text).setFormat(serializedNode.format).setDetail(serializedNode.detail).setMode(serializedNode.mode).setStyle(serializedNode.style);
|
|
5450
5470
|
}
|
|
@@ -5930,29 +5950,20 @@ function applyTextFormatFromStyle(style, shouldApply) {
|
|
|
5930
5950
|
};
|
|
5931
5951
|
}
|
|
5932
5952
|
/** @noInheritDoc */
|
|
5933
|
-
var TabNode = class
|
|
5934
|
-
|
|
5935
|
-
return "tab";
|
|
5936
|
-
}
|
|
5937
|
-
static clone(node) {
|
|
5938
|
-
return new TabNode(node.__key);
|
|
5953
|
+
var TabNode = class extends TextNode {
|
|
5954
|
+
$config() {
|
|
5955
|
+
return this.config("tab", { extends: TextNode });
|
|
5939
5956
|
}
|
|
5940
|
-
constructor(key) {
|
|
5957
|
+
constructor(key = void 0) {
|
|
5941
5958
|
super(" ", key);
|
|
5942
5959
|
this.__detail = IS_UNMERGEABLE;
|
|
5943
5960
|
}
|
|
5944
|
-
static importDOM() {
|
|
5945
|
-
return null;
|
|
5946
|
-
}
|
|
5947
5961
|
createDOM(config) {
|
|
5948
5962
|
const dom = super.createDOM(config);
|
|
5949
5963
|
const classNames = getCachedClassNameArray(config.theme, "tab");
|
|
5950
5964
|
if (classNames !== void 0) dom.classList.add(...classNames);
|
|
5951
5965
|
return dom;
|
|
5952
5966
|
}
|
|
5953
|
-
static importJSON(serializedTabNode) {
|
|
5954
|
-
return $createTabNode().updateFromJSON(serializedTabNode);
|
|
5955
|
-
}
|
|
5956
5967
|
/**
|
|
5957
5968
|
* Always normalizes the stored content to `'\t'` regardless of input — see
|
|
5958
5969
|
* comment below for the rationale.
|
|
@@ -6086,6 +6097,28 @@ function $transferStartingElementPointToTextPoint(start, end, format, style) {
|
|
|
6086
6097
|
if (start.is(end)) end.set(textNode.__key, 0, "text");
|
|
6087
6098
|
start.set(textNode.__key, 0, "text");
|
|
6088
6099
|
}
|
|
6100
|
+
function $insertTextAtPoint(selection, text, format, style) {
|
|
6101
|
+
const anchorNode = selection.anchor.getNode();
|
|
6102
|
+
if (!$isTextNode(anchorNode)) formatDevErrorMessage(`insertText: anchor is not a text node`);
|
|
6103
|
+
const offset = selection.anchor.offset;
|
|
6104
|
+
const textNode = $createTextNode(text);
|
|
6105
|
+
textNode.setFormat(format);
|
|
6106
|
+
textNode.setStyle(style);
|
|
6107
|
+
const parent = anchorNode.getParentOrThrow();
|
|
6108
|
+
if (offset === 0) {
|
|
6109
|
+
if (parent.isInline() && !anchorNode.__prev) parent.insertBefore(textNode);
|
|
6110
|
+
else anchorNode.insertBefore(textNode, false);
|
|
6111
|
+
} else if (offset === anchorNode.getTextContentSize()) {
|
|
6112
|
+
if (parent.isInline() && !anchorNode.__next) parent.insertAfter(textNode);
|
|
6113
|
+
else anchorNode.insertAfter(textNode, false);
|
|
6114
|
+
} else {
|
|
6115
|
+
const [before] = anchorNode.splitText(offset);
|
|
6116
|
+
before.insertAfter(textNode, false);
|
|
6117
|
+
}
|
|
6118
|
+
if (anchorNode.getTextContent() === "" && anchorNode.isAttached()) anchorNode.remove();
|
|
6119
|
+
textNode.selectEnd();
|
|
6120
|
+
if (textNode.isComposing() && selection.anchor.type === "text") selection.anchor.set(selection.anchor.key, selection.anchor.offset - text.length, selection.anchor.type);
|
|
6121
|
+
}
|
|
6089
6122
|
var NodeSelection = class NodeSelection {
|
|
6090
6123
|
_nodes;
|
|
6091
6124
|
_cachedNodes;
|
|
@@ -6311,10 +6344,11 @@ var RangeSelection = class RangeSelection {
|
|
|
6311
6344
|
prevWasElement = false;
|
|
6312
6345
|
if ($isTextNode(node)) {
|
|
6313
6346
|
let text = node.getTextContent();
|
|
6314
|
-
if (node === firstNode)
|
|
6315
|
-
if (
|
|
6316
|
-
|
|
6317
|
-
|
|
6347
|
+
if (node === firstNode) {
|
|
6348
|
+
if (node === lastNode) {
|
|
6349
|
+
if (anchor.type !== "element" || focus.type !== "element" || focus.offset === anchor.offset) text = anchorOffset < focusOffset ? text.slice(anchorOffset, focusOffset) : text.slice(focusOffset, anchorOffset);
|
|
6350
|
+
} else text = isBefore ? text.slice(anchorOffset) : text.slice(focusOffset);
|
|
6351
|
+
} else if (node === lastNode) text = isBefore ? text.slice(0, focusOffset) : text.slice(0, anchorOffset);
|
|
6318
6352
|
textContent += text;
|
|
6319
6353
|
} else if (($isDecoratorNode(node) || $isLineBreakNode(node)) && (node !== lastNode || !this.isCollapsed())) textContent += node.getTextContent();
|
|
6320
6354
|
}
|
|
@@ -6401,201 +6435,93 @@ var RangeSelection = class RangeSelection {
|
|
|
6401
6435
|
* @param text the text to insert into the Selection
|
|
6402
6436
|
*/
|
|
6403
6437
|
insertText(text) {
|
|
6404
|
-
|
|
6405
|
-
|
|
6406
|
-
|
|
6407
|
-
|
|
6408
|
-
|
|
6409
|
-
|
|
6410
|
-
|
|
6411
|
-
|
|
6412
|
-
|
|
6413
|
-
|
|
6414
|
-
|
|
6415
|
-
|
|
6416
|
-
|
|
6417
|
-
|
|
6418
|
-
|
|
6419
|
-
const selectedNodesLength = selectedNodes.length;
|
|
6420
|
-
let firstNode = selectedNodes[0];
|
|
6421
|
-
if (!$isTextNode(firstNode)) formatDevErrorMessage(`insertText: first node is not a text node`);
|
|
6422
|
-
const firstNodeTextLength = firstNode.getTextContent().length;
|
|
6423
|
-
const firstNodeParent = firstNode.getParentOrThrow();
|
|
6424
|
-
let lastNode = selectedNodes[selectedNodesLength - 1];
|
|
6425
|
-
if (selectedNodesLength === 1 && endPoint.type === "element") {
|
|
6426
|
-
endOffset = firstNodeTextLength;
|
|
6427
|
-
endPoint.set(firstPoint.key, endOffset, "text");
|
|
6428
|
-
}
|
|
6429
|
-
if (this.isCollapsed() && startOffset === firstNodeTextLength && ($isTokenOrSegmented(firstNode) || !firstNode.canInsertTextAfter() || !firstNodeParent.canInsertTextAfter() && firstNode.getNextSibling() === null)) {
|
|
6430
|
-
const candidateNextSibling = firstNode.getNextSibling();
|
|
6431
|
-
let nextSibling;
|
|
6432
|
-
if (!$isTextNode(candidateNextSibling) || !candidateNextSibling.canInsertTextBefore() || $isTokenOrSegmented(candidateNextSibling)) {
|
|
6433
|
-
nextSibling = $createTextNode();
|
|
6434
|
-
nextSibling.setFormat(format);
|
|
6435
|
-
nextSibling.setStyle(style);
|
|
6436
|
-
if (!firstNodeParent.canInsertTextAfter()) firstNodeParent.insertAfter(nextSibling);
|
|
6437
|
-
else firstNode.insertAfter(nextSibling);
|
|
6438
|
-
} else nextSibling = candidateNextSibling;
|
|
6439
|
-
nextSibling.select(0, 0);
|
|
6440
|
-
firstNode = nextSibling;
|
|
6441
|
-
if (text !== "") {
|
|
6442
|
-
this.insertText(text);
|
|
6443
|
-
return;
|
|
6444
|
-
}
|
|
6445
|
-
} else if (this.isCollapsed() && startOffset === 0 && ($isTokenOrSegmented(firstNode) || !firstNode.canInsertTextBefore() || !firstNodeParent.canInsertTextBefore() && firstNode.getPreviousSibling() === null)) {
|
|
6446
|
-
const candidatePrevSibling = firstNode.getPreviousSibling();
|
|
6447
|
-
let prevSibling;
|
|
6448
|
-
if (!$isTextNode(candidatePrevSibling) || $isTokenOrSegmented(candidatePrevSibling)) {
|
|
6449
|
-
prevSibling = $createTextNode();
|
|
6450
|
-
prevSibling.setFormat(format);
|
|
6451
|
-
if (!firstNodeParent.canInsertTextBefore()) firstNodeParent.insertBefore(prevSibling);
|
|
6452
|
-
else firstNode.insertBefore(prevSibling);
|
|
6453
|
-
} else prevSibling = candidatePrevSibling;
|
|
6454
|
-
prevSibling.select();
|
|
6455
|
-
firstNode = prevSibling;
|
|
6456
|
-
if (text !== "") {
|
|
6457
|
-
this.insertText(text);
|
|
6458
|
-
return;
|
|
6459
|
-
}
|
|
6460
|
-
} else if (firstNode.isSegmented() && startOffset !== firstNodeTextLength) if ($getCompositionKey() !== null) firstNode = firstNode.setMode("normal").setFormat(format).setStyle(style);
|
|
6461
|
-
else {
|
|
6462
|
-
const textNode = $createTextNode(firstNode.getTextContent());
|
|
6463
|
-
textNode.setFormat(format);
|
|
6464
|
-
firstNode.replace(textNode);
|
|
6465
|
-
firstNode = textNode;
|
|
6466
|
-
}
|
|
6467
|
-
else if (!this.isCollapsed() && text !== "") {
|
|
6468
|
-
const lastNodeParent = lastNode.getParent();
|
|
6469
|
-
if (!firstNodeParent.canInsertTextBefore() || !firstNodeParent.canInsertTextAfter() || $isElementNode(lastNodeParent) && (!lastNodeParent.canInsertTextBefore() || !lastNodeParent.canInsertTextAfter())) {
|
|
6470
|
-
this.insertText("");
|
|
6471
|
-
$normalizeSelectionPointsForBoundaries(this.anchor, this.focus);
|
|
6472
|
-
this.insertText(text);
|
|
6438
|
+
let format = this.format;
|
|
6439
|
+
let style = this.style;
|
|
6440
|
+
if (!this.isCollapsed()) {
|
|
6441
|
+
const firstNode = (this.focus.isBefore(this.anchor) ? this.focus : this.anchor).getNode();
|
|
6442
|
+
if ($isTextNode(firstNode)) {
|
|
6443
|
+
format = firstNode.getFormat();
|
|
6444
|
+
style = firstNode.getStyle();
|
|
6445
|
+
}
|
|
6446
|
+
this.removeText();
|
|
6447
|
+
this.format = format;
|
|
6448
|
+
this.style = style;
|
|
6449
|
+
if (text === "") return;
|
|
6450
|
+
if ($getCompositionKey() === null) {
|
|
6451
|
+
if (this.anchor.type === "element") $transferStartingElementPointToTextPoint(this.anchor, this.focus, format, style);
|
|
6452
|
+
$insertTextAtPoint(this, text, format, style);
|
|
6473
6453
|
return;
|
|
6474
6454
|
}
|
|
6475
6455
|
}
|
|
6476
|
-
if (
|
|
6477
|
-
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6481
|
-
|
|
6482
|
-
|
|
6483
|
-
|
|
6484
|
-
|
|
6485
|
-
if (startOffset === endOffset && (firstNodeFormat !== format || firstNodeStyle !== style)) if (firstNode.getTextContent() === "") {
|
|
6486
|
-
firstNode.setFormat(format);
|
|
6487
|
-
firstNode.setStyle(style);
|
|
6488
|
-
} else {
|
|
6489
|
-
const textNode = $createTextNode(text);
|
|
6490
|
-
textNode.setFormat(format);
|
|
6491
|
-
textNode.setStyle(style);
|
|
6492
|
-
textNode.select();
|
|
6493
|
-
if (startOffset === 0) firstNode.insertBefore(textNode, false);
|
|
6456
|
+
if (this.anchor.type === "element") $transferStartingElementPointToTextPoint(this.anchor, this.focus, format, style);
|
|
6457
|
+
const anchorNode = this.anchor.getNode();
|
|
6458
|
+
if (!$isTextNode(anchorNode)) formatDevErrorMessage(`insertText: anchor is not a text node`);
|
|
6459
|
+
const offset = this.anchor.offset;
|
|
6460
|
+
const anchorParent = anchorNode.getParentOrThrow();
|
|
6461
|
+
const anchorSize = anchorNode.getTextContentSize();
|
|
6462
|
+
if ($isTokenOrSegmented(anchorNode) || offset === 0 && (!anchorNode.canInsertTextBefore() || !anchorParent.canInsertTextBefore() && !anchorNode.__prev) || offset === anchorSize && (!anchorNode.canInsertTextAfter() || !anchorParent.canInsertTextAfter() && !anchorNode.__next)) {
|
|
6463
|
+
if (anchorNode.isSegmented() && offset !== 0 && offset !== anchorSize) {
|
|
6464
|
+
if ($getCompositionKey() !== null) anchorNode.setMode("normal").setFormat(format).setStyle(style);
|
|
6494
6465
|
else {
|
|
6495
|
-
const
|
|
6496
|
-
|
|
6497
|
-
|
|
6498
|
-
|
|
6499
|
-
|
|
6500
|
-
this._cachedNodes = null;
|
|
6501
|
-
this._cachedIsBackward = null;
|
|
6466
|
+
const replacement = $createTextNode(anchorNode.getTextContent());
|
|
6467
|
+
replacement.setFormat(format);
|
|
6468
|
+
replacement.setStyle(style);
|
|
6469
|
+
anchorNode.replace(replacement);
|
|
6470
|
+
replacement.select(offset, offset);
|
|
6502
6471
|
}
|
|
6472
|
+
if (text !== "") this.insertText(text);
|
|
6503
6473
|
return;
|
|
6504
6474
|
}
|
|
6505
|
-
|
|
6506
|
-
|
|
6507
|
-
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
|
|
6475
|
+
if (text === "") return;
|
|
6476
|
+
if (offset === 0) {
|
|
6477
|
+
const prev = anchorNode.getPreviousSibling();
|
|
6478
|
+
if ($isTextNode(prev) && prev.canInsertTextAfter() && !$isTokenOrSegmented(prev)) prev.select();
|
|
6479
|
+
else {
|
|
6480
|
+
const newNode = $createTextNode();
|
|
6481
|
+
newNode.setFormat(format);
|
|
6482
|
+
newNode.setStyle(style);
|
|
6483
|
+
if (!anchorParent.canInsertTextBefore()) anchorParent.insertBefore(newNode);
|
|
6484
|
+
else anchorNode.insertBefore(newNode);
|
|
6485
|
+
newNode.select();
|
|
6486
|
+
}
|
|
6487
|
+
this.insertText(text);
|
|
6511
6488
|
return;
|
|
6512
|
-
}
|
|
6513
|
-
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
|
|
6517
|
-
|
|
6518
|
-
|
|
6519
|
-
|
|
6520
|
-
|
|
6521
|
-
|
|
6522
|
-
this._cachedIsBackward = null;
|
|
6489
|
+
} else if (offset === anchorSize) {
|
|
6490
|
+
const next = anchorNode.getNextSibling();
|
|
6491
|
+
if ($isTextNode(next) && next.canInsertTextBefore() && !$isTokenOrSegmented(next)) next.select(0, 0);
|
|
6492
|
+
else {
|
|
6493
|
+
const newNode = $createTextNode();
|
|
6494
|
+
newNode.setFormat(format);
|
|
6495
|
+
newNode.setStyle(style);
|
|
6496
|
+
if (!anchorParent.canInsertTextAfter()) anchorParent.insertAfter(newNode);
|
|
6497
|
+
else anchorNode.insertAfter(newNode);
|
|
6498
|
+
newNode.select(0, 0);
|
|
6523
6499
|
}
|
|
6500
|
+
this.insertText(text);
|
|
6501
|
+
return;
|
|
6524
6502
|
}
|
|
6525
|
-
|
|
6526
|
-
|
|
6527
|
-
|
|
6528
|
-
|
|
6529
|
-
|
|
6530
|
-
|
|
6531
|
-
|
|
6532
|
-
|
|
6533
|
-
|
|
6534
|
-
|
|
6535
|
-
|
|
6536
|
-
|
|
6537
|
-
|
|
6538
|
-
|
|
6539
|
-
|
|
6540
|
-
if (!$isRootNode(endPoint.getNode()) && endPoint.type === "text") {
|
|
6541
|
-
if (!$isTextNode(lastNode)) formatDevErrorMessage(`insertText: lastNode is not a TextNode`);
|
|
6542
|
-
lastNode = lastNode.spliceText(0, endOffset, "");
|
|
6543
|
-
}
|
|
6544
|
-
markedNodeKeysForKeep.add(lastNode.__key);
|
|
6503
|
+
const newNode = $createTextNode(text);
|
|
6504
|
+
newNode.setFormat(format);
|
|
6505
|
+
newNode.setStyle(style);
|
|
6506
|
+
anchorNode.replace(newNode);
|
|
6507
|
+
newNode.select();
|
|
6508
|
+
return;
|
|
6509
|
+
}
|
|
6510
|
+
if (text === "") return;
|
|
6511
|
+
const atStartOfInline = anchorParent.isInline() && offset === 0 && !anchorNode.__prev;
|
|
6512
|
+
const atEndOfInline = anchorParent.isInline() && offset === anchorSize && !anchorNode.__next;
|
|
6513
|
+
const formatDiffers = anchorNode.getFormat() !== format || anchorNode.getStyle() !== style;
|
|
6514
|
+
if (atStartOfInline || atEndOfInline || formatDiffers) {
|
|
6515
|
+
if (anchorNode.getTextContent() === "" && !atStartOfInline && !atEndOfInline) {
|
|
6516
|
+
anchorNode.setFormat(format);
|
|
6517
|
+
anchorNode.setStyle(style);
|
|
6545
6518
|
} else {
|
|
6546
|
-
|
|
6547
|
-
|
|
6548
|
-
else lastNode.remove();
|
|
6549
|
-
}
|
|
6550
|
-
else markedNodeKeysForKeep.add(lastNode.__key);
|
|
6551
|
-
const lastNodeChildren = lastElement.getChildren();
|
|
6552
|
-
const selectedNodesSet = new Set(selectedNodes);
|
|
6553
|
-
const firstAndLastElementsAreEqual = firstElement.is(lastElement);
|
|
6554
|
-
const insertionTarget = firstElement.isInline() && firstNode.getNextSibling() === null ? firstElement : firstNode;
|
|
6555
|
-
for (let i = lastNodeChildren.length - 1; i >= 0; i--) {
|
|
6556
|
-
const lastNodeChild = lastNodeChildren[i];
|
|
6557
|
-
if (lastNodeChild.is(firstNode) || $isElementNode(lastNodeChild) && lastNodeChild.isParentOf(firstNode)) break;
|
|
6558
|
-
if (lastNodeChild.isAttached()) if (!selectedNodesSet.has(lastNodeChild) || lastNodeChild.is(lastElementChild)) {
|
|
6559
|
-
if (!firstAndLastElementsAreEqual) insertionTarget.insertAfter(lastNodeChild, false);
|
|
6560
|
-
} else lastNodeChild.remove();
|
|
6561
|
-
}
|
|
6562
|
-
if (!firstAndLastElementsAreEqual) {
|
|
6563
|
-
let parent = lastElement;
|
|
6564
|
-
let lastRemovedParent = null;
|
|
6565
|
-
while (parent !== null) {
|
|
6566
|
-
const children = parent.getChildren();
|
|
6567
|
-
const childrenLength = children.length;
|
|
6568
|
-
if (childrenLength === 0 || children[childrenLength - 1].is(lastRemovedParent)) {
|
|
6569
|
-
markedNodeKeysForKeep.delete(parent.__key);
|
|
6570
|
-
lastRemovedParent = parent;
|
|
6571
|
-
}
|
|
6572
|
-
parent = parent.getParent();
|
|
6573
|
-
}
|
|
6574
|
-
}
|
|
6575
|
-
if (!$isTokenOrTab(firstNode)) {
|
|
6576
|
-
firstNode = firstNode.spliceText(startOffset, firstNodeTextLength - startOffset, text, true);
|
|
6577
|
-
if (firstNode.getTextContent() === "") firstNode.remove();
|
|
6578
|
-
else if (this.anchor.type === "text") {
|
|
6579
|
-
this.format = firstNode.getFormat();
|
|
6580
|
-
this.style = firstNode.getStyle();
|
|
6581
|
-
if (firstNode.isComposing()) {
|
|
6582
|
-
this.anchor.offset -= text.length;
|
|
6583
|
-
this._cachedNodes = null;
|
|
6584
|
-
this._cachedIsBackward = null;
|
|
6585
|
-
}
|
|
6586
|
-
}
|
|
6587
|
-
} else if (startOffset === firstNodeTextLength) firstNode.select();
|
|
6588
|
-
else {
|
|
6589
|
-
const textNode = $createTextNode(text);
|
|
6590
|
-
textNode.select();
|
|
6591
|
-
firstNode.replace(textNode);
|
|
6592
|
-
}
|
|
6593
|
-
for (let i = 1; i < selectedNodesLength; i++) {
|
|
6594
|
-
const selectedNode = selectedNodes[i];
|
|
6595
|
-
const key = selectedNode.__key;
|
|
6596
|
-
if (!markedNodeKeysForKeep.has(key)) selectedNode.remove();
|
|
6519
|
+
$insertTextAtPoint(this, text, format, style);
|
|
6520
|
+
return;
|
|
6597
6521
|
}
|
|
6598
6522
|
}
|
|
6523
|
+
anchorNode.spliceText(offset, 0, text, true);
|
|
6524
|
+
if (anchorNode.isComposing() && this.anchor.type === "text") this.anchor.set(this.anchor.key, this.anchor.offset - text.length, this.anchor.type);
|
|
6599
6525
|
}
|
|
6600
6526
|
/**
|
|
6601
6527
|
* Removes the text in the Selection, adjusting the EditorState accordingly.
|
|
@@ -6846,19 +6772,21 @@ var RangeSelection = class RangeSelection {
|
|
|
6846
6772
|
if (granularity === "character" && $isTextNode(focusNode) && focusNode.isUnmergeable()) {
|
|
6847
6773
|
if (isBackward ? this.focus.offset === 0 : this.focus.offset === focusNode.getTextContentSize()) {
|
|
6848
6774
|
const sibling = $getSiblingCaret(focusNode, isBackward ? "previous" : "next").getNodeAtCaret();
|
|
6849
|
-
if ($isTextNode(sibling))
|
|
6850
|
-
|
|
6851
|
-
|
|
6852
|
-
|
|
6853
|
-
|
|
6854
|
-
|
|
6775
|
+
if ($isTextNode(sibling)) {
|
|
6776
|
+
if (collapse) {
|
|
6777
|
+
const sibKeyedDOM = editor.getElementByKey(sibling.getKey());
|
|
6778
|
+
const sibDOM = sibKeyedDOM ? $getDOMTextNode(sibling, sibKeyedDOM, editor) : null;
|
|
6779
|
+
if (sibDOM) {
|
|
6780
|
+
const sibOffset = isBackward ? sibDOM.length : 0;
|
|
6781
|
+
setDOMSelectionBaseAndExtent(domSelection, sibDOM, sibOffset, sibDOM, sibOffset);
|
|
6782
|
+
}
|
|
6783
|
+
} else {
|
|
6784
|
+
const sibLen = sibling.getTextContentSize();
|
|
6785
|
+
if (isBackward) this.focus.set(sibling.__key, sibLen - 1, "text");
|
|
6786
|
+
else this.focus.set(sibling.__key, 1, "text");
|
|
6787
|
+
this.dirty = true;
|
|
6788
|
+
return;
|
|
6855
6789
|
}
|
|
6856
|
-
} else {
|
|
6857
|
-
const sibLen = sibling.getTextContentSize();
|
|
6858
|
-
if (isBackward) this.focus.set(sibling.__key, sibLen - 1, "text");
|
|
6859
|
-
else this.focus.set(sibling.__key, 1, "text");
|
|
6860
|
-
this.dirty = true;
|
|
6861
|
-
return;
|
|
6862
6790
|
}
|
|
6863
6791
|
}
|
|
6864
6792
|
}
|
|
@@ -7400,8 +7328,10 @@ function $updateCaretSelectionForUnicodeCharacter(selection, isBackward) {
|
|
|
7400
7328
|
const endOffset = isBefore ? focusOffset : anchorOffset;
|
|
7401
7329
|
const characterOffset = endOffset - 1;
|
|
7402
7330
|
if (startOffset !== characterOffset) {
|
|
7403
|
-
if (shouldDeleteExactlyOneCodeUnit(anchorNode.getTextContent().slice(startOffset, endOffset)))
|
|
7404
|
-
|
|
7331
|
+
if (shouldDeleteExactlyOneCodeUnit(anchorNode.getTextContent().slice(startOffset, endOffset))) {
|
|
7332
|
+
if (isBackward) focus.set(focus.key, characterOffset, focus.type);
|
|
7333
|
+
else anchor.set(anchor.key, characterOffset, anchor.type);
|
|
7334
|
+
}
|
|
7405
7335
|
}
|
|
7406
7336
|
}
|
|
7407
7337
|
}
|
|
@@ -8095,10 +8025,12 @@ function $getNodesFromCaretRangeCompat(range) {
|
|
|
8095
8025
|
}
|
|
8096
8026
|
while (nodes.length > 1) {
|
|
8097
8027
|
const lastIncludedNode = nodes[nodes.length - 1];
|
|
8098
|
-
if ($isElementNode(lastIncludedNode))
|
|
8099
|
-
|
|
8100
|
-
|
|
8101
|
-
|
|
8028
|
+
if ($isElementNode(lastIncludedNode)) {
|
|
8029
|
+
if (seenElements.has(lastIncludedNode) || lastIncludedNode.isEmpty() || seenAncestors.has(lastIncludedNode));
|
|
8030
|
+
else {
|
|
8031
|
+
nodes.pop();
|
|
8032
|
+
continue;
|
|
8033
|
+
}
|
|
8102
8034
|
}
|
|
8103
8035
|
break;
|
|
8104
8036
|
}
|
|
@@ -8503,7 +8435,7 @@ function $commitPendingUpdatesImpl(editor, recoveryEditorState) {
|
|
|
8503
8435
|
}
|
|
8504
8436
|
}
|
|
8505
8437
|
if (mutatedNodes !== null) triggerMutationListeners(editor, mutatedNodes, tags, dirtyLeaves, currentEditorState);
|
|
8506
|
-
if (!$isRangeSelection(pendingSelection) && pendingSelection !== null && (currentSelection === null || !currentSelection.is(pendingSelection))) editor.dispatchCommand(SELECTION_CHANGE_COMMAND
|
|
8438
|
+
if (!$isRangeSelection(pendingSelection) && pendingSelection !== null && (currentSelection === null || !currentSelection.is(pendingSelection))) editor.dispatchCommand(SELECTION_CHANGE_COMMAND);
|
|
8507
8439
|
/**
|
|
8508
8440
|
* Capture pendingDecorators after garbage collecting detached decorators
|
|
8509
8441
|
*/
|
|
@@ -8692,9 +8624,11 @@ function $beginUpdate(editor, updateFn, options) {
|
|
|
8692
8624
|
const headless = editor._headless || editor.getRootElement() === null;
|
|
8693
8625
|
setPendingNodeToClone(null);
|
|
8694
8626
|
try {
|
|
8695
|
-
if (editorStateWasCloned)
|
|
8696
|
-
if (
|
|
8697
|
-
|
|
8627
|
+
if (editorStateWasCloned) {
|
|
8628
|
+
if (headless) {
|
|
8629
|
+
if (currentEditorState._selection !== null) pendingEditorState._selection = currentEditorState._selection.clone();
|
|
8630
|
+
} else pendingEditorState._selection = $internalCreateSelection(editor, options && options.event || null);
|
|
8631
|
+
}
|
|
8698
8632
|
const startingCompositionKey = editor._compositionKey;
|
|
8699
8633
|
updateFn();
|
|
8700
8634
|
skipTransforms = $processNestedUpdates(editor, skipTransforms);
|
|
@@ -8754,8 +8688,12 @@ function $beginUpdate(editor, updateFn, options) {
|
|
|
8754
8688
|
* within an update
|
|
8755
8689
|
*/
|
|
8756
8690
|
function updateEditorSync(editor, updateFn, options) {
|
|
8757
|
-
if (activeEditor === editor && options === void 0)
|
|
8758
|
-
|
|
8691
|
+
if (activeEditor === editor && options === void 0) {
|
|
8692
|
+
if (isCurrentlyReadOnlyMode()) {
|
|
8693
|
+
console.warn("updateEditorSync: an editor update (e.g. a command listener that mutates the editor) ran while a read-only context was on the stack. This most commonly happens when a command is dispatched from inside editor.read(). The update has been deferred to a fresh writable update so it still applies, but dispatching mutations from a read-only context is an anti-pattern — dispatch after editor.read() returns, or via queueMicrotask.");
|
|
8694
|
+
$beginUpdate(editor, updateFn, options);
|
|
8695
|
+
} else updateFn();
|
|
8696
|
+
} else $beginUpdate(editor, updateFn, options);
|
|
8759
8697
|
}
|
|
8760
8698
|
function updateEditor(editor, updateFn, options) {
|
|
8761
8699
|
if (editor._updating) editor._updates.push([updateFn, options]);
|
|
@@ -9198,10 +9136,12 @@ var ElementNode = class extends LexicalNode {
|
|
|
9198
9136
|
const nodeAfterRange = this.getChildAtIndex(start + deleteCount);
|
|
9199
9137
|
let nodeBeforeRange = null;
|
|
9200
9138
|
let newSize = oldSize - deleteCount + nodesToInsert.length;
|
|
9201
|
-
if (start !== 0)
|
|
9202
|
-
|
|
9203
|
-
|
|
9204
|
-
|
|
9139
|
+
if (start !== 0) {
|
|
9140
|
+
if (start === oldSize) nodeBeforeRange = this.getLastChild();
|
|
9141
|
+
else {
|
|
9142
|
+
const node = this.getChildAtIndex(start);
|
|
9143
|
+
if (node !== null) nodeBeforeRange = node.getPreviousSibling();
|
|
9144
|
+
}
|
|
9205
9145
|
}
|
|
9206
9146
|
if (deleteCount > 0) {
|
|
9207
9147
|
let nodeToDelete = nodeBeforeRange === null ? this.getFirstChild() : nodeBeforeRange.getNextSibling();
|
|
@@ -9434,14 +9374,11 @@ function $isDecoratorNode(node) {
|
|
|
9434
9374
|
return node instanceof DecoratorNode;
|
|
9435
9375
|
}
|
|
9436
9376
|
/** @noInheritDoc */
|
|
9437
|
-
var RootNode = class
|
|
9377
|
+
var RootNode = class extends ElementNode {
|
|
9438
9378
|
/** @internal */
|
|
9439
9379
|
__cachedText;
|
|
9440
|
-
|
|
9441
|
-
return "root";
|
|
9442
|
-
}
|
|
9443
|
-
static clone() {
|
|
9444
|
-
return new RootNode();
|
|
9380
|
+
$config() {
|
|
9381
|
+
return this.config("root", { extends: ElementNode });
|
|
9445
9382
|
}
|
|
9446
9383
|
constructor() {
|
|
9447
9384
|
super("root");
|
|
@@ -9578,8 +9515,8 @@ var EditorState = class EditorState {
|
|
|
9578
9515
|
*/
|
|
9579
9516
|
/** @internal */
|
|
9580
9517
|
var ArtificialNode__DO_NOT_USE = class extends ElementNode {
|
|
9581
|
-
|
|
9582
|
-
return "artificial";
|
|
9518
|
+
$config() {
|
|
9519
|
+
return this.config("artificial", { extends: ElementNode });
|
|
9583
9520
|
}
|
|
9584
9521
|
createDOM(config) {
|
|
9585
9522
|
return $getDocument().createElement("div");
|
|
@@ -9593,16 +9530,16 @@ var ArtificialNode__DO_NOT_USE = class extends ElementNode {
|
|
|
9593
9530
|
*
|
|
9594
9531
|
*/
|
|
9595
9532
|
/** @noInheritDoc */
|
|
9596
|
-
var LineBreakNode = class
|
|
9533
|
+
var LineBreakNode = class extends LexicalNode {
|
|
9597
9534
|
/** @internal */
|
|
9598
|
-
|
|
9599
|
-
return "linebreak"
|
|
9600
|
-
|
|
9601
|
-
|
|
9602
|
-
|
|
9603
|
-
|
|
9604
|
-
|
|
9605
|
-
|
|
9535
|
+
$config() {
|
|
9536
|
+
return this.config("linebreak", { importDOM: { br: (node) => {
|
|
9537
|
+
if (isOnlyChildInBlockNode(node) || isLastChildInBlockNode(node)) return null;
|
|
9538
|
+
return {
|
|
9539
|
+
conversion: $convertLineBreakElement,
|
|
9540
|
+
priority: 0
|
|
9541
|
+
};
|
|
9542
|
+
} } });
|
|
9606
9543
|
}
|
|
9607
9544
|
getTextContent() {
|
|
9608
9545
|
return "\n";
|
|
@@ -9616,18 +9553,6 @@ var LineBreakNode = class LineBreakNode extends LexicalNode {
|
|
|
9616
9553
|
isInline() {
|
|
9617
9554
|
return true;
|
|
9618
9555
|
}
|
|
9619
|
-
static importDOM() {
|
|
9620
|
-
return { br: (node) => {
|
|
9621
|
-
if (isOnlyChildInBlockNode(node) || isLastChildInBlockNode(node)) return null;
|
|
9622
|
-
return {
|
|
9623
|
-
conversion: $convertLineBreakElement,
|
|
9624
|
-
priority: 0
|
|
9625
|
-
};
|
|
9626
|
-
} };
|
|
9627
|
-
}
|
|
9628
|
-
static importJSON(serializedLineBreakNode) {
|
|
9629
|
-
return $createLineBreakNode().updateFromJSON(serializedLineBreakNode);
|
|
9630
|
-
}
|
|
9631
9556
|
};
|
|
9632
9557
|
function $convertLineBreakElement(node) {
|
|
9633
9558
|
return { node: $createLineBreakNode() };
|
|
@@ -9686,13 +9611,16 @@ function isWhitespaceDomTextNode(node) {
|
|
|
9686
9611
|
*
|
|
9687
9612
|
*/
|
|
9688
9613
|
/** @noInheritDoc */
|
|
9689
|
-
var ParagraphNode = class
|
|
9614
|
+
var ParagraphNode = class extends ElementNode {
|
|
9690
9615
|
/** @internal */
|
|
9691
|
-
|
|
9692
|
-
return "paragraph"
|
|
9693
|
-
|
|
9694
|
-
|
|
9695
|
-
|
|
9616
|
+
$config() {
|
|
9617
|
+
return this.config("paragraph", {
|
|
9618
|
+
extends: ElementNode,
|
|
9619
|
+
importDOM: { p: () => ({
|
|
9620
|
+
conversion: $convertParagraphElement,
|
|
9621
|
+
priority: 0
|
|
9622
|
+
}) }
|
|
9623
|
+
});
|
|
9696
9624
|
}
|
|
9697
9625
|
createDOM(config) {
|
|
9698
9626
|
const dom = $getDocument().createElement("p");
|
|
@@ -9703,12 +9631,6 @@ var ParagraphNode = class ParagraphNode extends ElementNode {
|
|
|
9703
9631
|
updateDOM(prevNode, dom, config) {
|
|
9704
9632
|
return false;
|
|
9705
9633
|
}
|
|
9706
|
-
static importDOM() {
|
|
9707
|
-
return { p: (node) => ({
|
|
9708
|
-
conversion: $convertParagraphElement,
|
|
9709
|
-
priority: 0
|
|
9710
|
-
}) };
|
|
9711
|
-
}
|
|
9712
9634
|
exportDOM(editor) {
|
|
9713
9635
|
const { element } = super.exportDOM(editor);
|
|
9714
9636
|
if (isHTMLElement(element)) {
|
|
@@ -9718,9 +9640,6 @@ var ParagraphNode = class ParagraphNode extends ElementNode {
|
|
|
9718
9640
|
}
|
|
9719
9641
|
return { element };
|
|
9720
9642
|
}
|
|
9721
|
-
static importJSON(serializedNode) {
|
|
9722
|
-
return $createParagraphNode().updateFromJSON(serializedNode);
|
|
9723
|
-
}
|
|
9724
9643
|
exportJSON() {
|
|
9725
9644
|
const json = super.exportJSON();
|
|
9726
9645
|
if (json.textFormat === void 0 || json.textStyle === void 0) {
|
|
@@ -10492,8 +10411,8 @@ var LexicalEditor = class {
|
|
|
10492
10411
|
* @param type - the type of command listeners to trigger.
|
|
10493
10412
|
* @param payload - the data to pass as an argument to the command listeners.
|
|
10494
10413
|
*/
|
|
10495
|
-
dispatchCommand(type,
|
|
10496
|
-
return dispatchCommand(this, type,
|
|
10414
|
+
dispatchCommand(type, ...args) {
|
|
10415
|
+
return dispatchCommand(this, type, ...args);
|
|
10497
10416
|
}
|
|
10498
10417
|
/**
|
|
10499
10418
|
* Gets a map of all decorators in the editor.
|
|
@@ -10666,8 +10585,10 @@ var LexicalEditor = class {
|
|
|
10666
10585
|
const root = $getRoot();
|
|
10667
10586
|
if (selection !== null) {
|
|
10668
10587
|
if (!selection.dirty) $setSelection(selection.clone());
|
|
10669
|
-
} else if (root.getChildrenSize() !== 0)
|
|
10670
|
-
|
|
10588
|
+
} else if (root.getChildrenSize() !== 0) {
|
|
10589
|
+
if (options.defaultSelection === "rootStart") root.selectStart();
|
|
10590
|
+
else root.selectEnd();
|
|
10591
|
+
}
|
|
10671
10592
|
$addUpdateTag(FOCUS_TAG);
|
|
10672
10593
|
$onUpdate(() => {
|
|
10673
10594
|
rootElement.removeAttribute("autocapitalize");
|
|
@@ -10728,6 +10649,7 @@ function getPendingNodeToClone() {
|
|
|
10728
10649
|
pendingNodeToClone = null;
|
|
10729
10650
|
return node;
|
|
10730
10651
|
}
|
|
10652
|
+
const INTERNAL_SKIP_AFTER_CLONE_FROM = Symbol("INTERNAL_SKIP_AFTER_CLONE_FROM");
|
|
10731
10653
|
let keyCounter = 1;
|
|
10732
10654
|
function resetRandomKey() {
|
|
10733
10655
|
keyCounter = 1;
|
|
@@ -10882,8 +10804,10 @@ function errorOnNodeKeyConstructorMismatch(node, existingKey, pendingNode) {
|
|
|
10882
10804
|
if (pendingNode) {
|
|
10883
10805
|
if (!(existingKey === pendingNode.__key)) formatDevErrorMessage(`Lexical node with constructor ${node.constructor.name} (type ${node.getType()}) has an incorrect clone implementation, got ${String(existingKey)} for nodeKey when expecting ${pendingNode.__key}`);
|
|
10884
10806
|
}
|
|
10885
|
-
if (existingNode && existingNode.constructor !== node.constructor)
|
|
10886
|
-
|
|
10807
|
+
if (existingNode && existingNode.constructor !== node.constructor) {
|
|
10808
|
+
if (node.constructor.name !== existingNode.constructor.name) formatDevErrorMessage(`Lexical node with constructor ${node.constructor.name} attempted to re-use key from node in active editor state with constructor ${existingNode.constructor.name}. Keys must not be re-used when the type is changed.`);
|
|
10809
|
+
else formatDevErrorMessage(`Lexical node with constructor ${node.constructor.name} attempted to re-use key from node in active editor state with different constructor with the same name (possibly due to invalid Hot Module Replacement). Keys must not be re-used when the type is changed.`);
|
|
10810
|
+
}
|
|
10887
10811
|
}
|
|
10888
10812
|
function internalMarkParentElementsAsDirty(parentKey, nodeMap, dirtyElements) {
|
|
10889
10813
|
let nextParentKey = parentKey;
|
|
@@ -11480,8 +11404,8 @@ function isFirefoxClipboardEvents(editor) {
|
|
|
11480
11404
|
const inputType = event && event.inputType;
|
|
11481
11405
|
return inputType === "insertFromPaste" || inputType === "insertFromPasteAsQuotation";
|
|
11482
11406
|
}
|
|
11483
|
-
function dispatchCommand(editor, command,
|
|
11484
|
-
return triggerCommandListeners(editor, command,
|
|
11407
|
+
function dispatchCommand(editor, command, ...args) {
|
|
11408
|
+
return triggerCommandListeners(editor, command, args[0], editor);
|
|
11485
11409
|
}
|
|
11486
11410
|
function getElementByKeyOrThrow(editor, key) {
|
|
11487
11411
|
const element = editor._keyToDOMMap.get(key);
|
|
@@ -11532,13 +11456,15 @@ function scrollIntoViewIfNeeded(editor, selectionRect, rootElement) {
|
|
|
11532
11456
|
let diff = 0;
|
|
11533
11457
|
if (currentTop < targetTop) diff = -(targetTop - currentTop);
|
|
11534
11458
|
else if (currentBottom > targetBottom) diff = currentBottom - targetBottom;
|
|
11535
|
-
if (diff !== 0)
|
|
11536
|
-
|
|
11537
|
-
|
|
11538
|
-
|
|
11539
|
-
|
|
11540
|
-
|
|
11541
|
-
|
|
11459
|
+
if (diff !== 0) {
|
|
11460
|
+
if (isBodyElement) defaultView.scrollBy(0, diff);
|
|
11461
|
+
else {
|
|
11462
|
+
const scrollTop = element.scrollTop;
|
|
11463
|
+
element.scrollTop += diff;
|
|
11464
|
+
const yOffset = element.scrollTop - scrollTop;
|
|
11465
|
+
currentTop -= yOffset;
|
|
11466
|
+
currentBottom -= yOffset;
|
|
11467
|
+
}
|
|
11542
11468
|
}
|
|
11543
11469
|
if (isBodyElement) break;
|
|
11544
11470
|
element = getParentElement(element);
|
|
@@ -11620,7 +11546,7 @@ function $isRootOrShadowRoot(node) {
|
|
|
11620
11546
|
* @returns The copy of the node.
|
|
11621
11547
|
*/
|
|
11622
11548
|
function $copyNode(node, skipReset = false) {
|
|
11623
|
-
const copy = node.constructor.clone(node);
|
|
11549
|
+
const copy = node.constructor.clone(node, INTERNAL_SKIP_AFTER_CLONE_FROM);
|
|
11624
11550
|
$setNodeKey(copy, null);
|
|
11625
11551
|
copy.afterCloneFrom(node);
|
|
11626
11552
|
if (!skipReset) copy.resetOnCopyNodeFrom(node);
|
|
@@ -12358,7 +12284,7 @@ function computeTypeToNodeMap(editorState) {
|
|
|
12358
12284
|
*/
|
|
12359
12285
|
function $cloneWithProperties(latestNode) {
|
|
12360
12286
|
const constructor = latestNode.constructor;
|
|
12361
|
-
const mutableNode = constructor.clone(latestNode);
|
|
12287
|
+
const mutableNode = constructor.clone(latestNode, INTERNAL_SKIP_AFTER_CLONE_FROM);
|
|
12362
12288
|
mutableNode.afterCloneFrom(latestNode);
|
|
12363
12289
|
if (!(mutableNode.__key === latestNode.__key)) formatDevErrorMessage(`$cloneWithProperties: ${constructor.name}.clone(node) (with type '${constructor.getType()}') did not return a node with the same key, make sure to specify node.__key as the last argument to the constructor`);
|
|
12364
12290
|
if (!(mutableNode.__parent === latestNode.__parent && mutableNode.__next === latestNode.__next && mutableNode.__prev === latestNode.__prev)) formatDevErrorMessage(`$cloneWithProperties: ${constructor.name}.clone(node) (with type '${constructor.getType()}') overrode afterCloneFrom but did not call super.afterCloneFrom(prevNode)`);
|
|
@@ -12533,42 +12459,57 @@ function isAbstractNodeClass(klass) {
|
|
|
12533
12459
|
return klass === DecoratorNode || klass === ElementNode || klass === LexicalNode;
|
|
12534
12460
|
}
|
|
12535
12461
|
const STATIC_NODE_CONFIG_CACHE = /* @__PURE__ */ new WeakMap();
|
|
12462
|
+
const SYNTHESIZED_GET_TYPE = Symbol("lexical.synthesizedGetType");
|
|
12463
|
+
const IS_UNOPTIMIZED_DEV_BUILD = TabNode.length === 0 && TextNode.length === 0 && TextNode.name === "TextNode";
|
|
12536
12464
|
/** @internal */
|
|
12537
12465
|
function getStaticNodeConfig(klass) {
|
|
12538
12466
|
const cache = STATIC_NODE_CONFIG_CACHE.get(klass);
|
|
12539
12467
|
if (cache) return cache;
|
|
12540
12468
|
const nodeConfigRecord = klass.prototype != null && PROTOTYPE_CONFIG_METHOD in klass.prototype ? klass.prototype[PROTOTYPE_CONFIG_METHOD]() : void 0;
|
|
12541
12469
|
const isAbstract = isAbstractNodeClass(klass);
|
|
12542
|
-
const
|
|
12470
|
+
const ownGetType = !isAbstract && hasOwnStaticMethod(klass, "getType") ? klass.getType : void 0;
|
|
12471
|
+
const nodeType = ownGetType && !(SYNTHESIZED_GET_TYPE in ownGetType) ? ownGetType.call(klass) : void 0;
|
|
12543
12472
|
let ownNodeConfig;
|
|
12544
12473
|
let ownNodeType = nodeType;
|
|
12545
|
-
if (nodeConfigRecord)
|
|
12546
|
-
|
|
12547
|
-
|
|
12548
|
-
|
|
12549
|
-
|
|
12550
|
-
|
|
12551
|
-
|
|
12552
|
-
const
|
|
12553
|
-
|
|
12554
|
-
|
|
12555
|
-
|
|
12474
|
+
if (nodeConfigRecord) {
|
|
12475
|
+
if (nodeType) ownNodeConfig = nodeConfigRecord[nodeType];
|
|
12476
|
+
else {
|
|
12477
|
+
for (const [k, v] of Object.entries(nodeConfigRecord)) {
|
|
12478
|
+
ownNodeType = k;
|
|
12479
|
+
ownNodeConfig = v;
|
|
12480
|
+
}
|
|
12481
|
+
if (!ownNodeConfig) for (const symbolKey of Object.getOwnPropertySymbols(nodeConfigRecord)) {
|
|
12482
|
+
const symbolConfig = nodeConfigRecord[symbolKey];
|
|
12483
|
+
if (symbolConfig) {
|
|
12484
|
+
ownNodeConfig = symbolConfig;
|
|
12485
|
+
break;
|
|
12486
|
+
}
|
|
12556
12487
|
}
|
|
12557
12488
|
}
|
|
12558
12489
|
}
|
|
12559
12490
|
if (!isAbstract && ownNodeType) {
|
|
12560
|
-
if (!hasOwnStaticMethod(klass, "getType"))
|
|
12491
|
+
if (!hasOwnStaticMethod(klass, "getType")) {
|
|
12492
|
+
const synthesizedForKlass = klass;
|
|
12493
|
+
const synthesizedGetType = function() {
|
|
12494
|
+
if (this !== synthesizedForKlass) return LexicalNode.getType.call(this);
|
|
12495
|
+
return ownNodeType;
|
|
12496
|
+
};
|
|
12497
|
+
synthesizedGetType[SYNTHESIZED_GET_TYPE] = true;
|
|
12498
|
+
klass.getType = synthesizedGetType;
|
|
12499
|
+
}
|
|
12561
12500
|
if (!hasOwnStaticMethod(klass, "clone")) {
|
|
12562
|
-
if (
|
|
12501
|
+
if (IS_UNOPTIMIZED_DEV_BUILD) {
|
|
12563
12502
|
if (!(klass.length === 0)) formatDevErrorMessage(`${klass.name} (type ${ownNodeType}) must implement a static clone method since its constructor has ${String(klass.length)} required arguments (expecting 0). Use an explicit default in the first argument of your constructor(prop: T=X, nodeKey?: NodeKey).`);
|
|
12564
12503
|
}
|
|
12565
|
-
klass.clone = (prevNode) => {
|
|
12504
|
+
klass.clone = (prevNode, internalSkipAfterCloneFrom) => {
|
|
12566
12505
|
setPendingNodeToClone(prevNode);
|
|
12567
|
-
|
|
12506
|
+
const node = new klass();
|
|
12507
|
+
if (internalSkipAfterCloneFrom !== INTERNAL_SKIP_AFTER_CLONE_FROM) node.afterCloneFrom(prevNode);
|
|
12508
|
+
return node;
|
|
12568
12509
|
};
|
|
12569
12510
|
}
|
|
12570
12511
|
if (!hasOwnStaticMethod(klass, "importJSON")) {
|
|
12571
|
-
if (
|
|
12512
|
+
if (IS_UNOPTIMIZED_DEV_BUILD) {
|
|
12572
12513
|
if (!(klass.length === 0)) formatDevErrorMessage(`${klass.name} (type ${ownNodeType}) must implement a static importJSON method since its constructor has ${String(klass.length)} required arguments (expecting 0). Use an explicit default in the first argument of your constructor(prop: T=X, nodeKey?: NodeKey).`);
|
|
12573
12514
|
}
|
|
12574
12515
|
klass.importJSON = ownNodeConfig && ownNodeConfig.$importJSON || ((serializedNode) => new klass().updateFromJSON(serializedNode));
|
|
@@ -13787,9 +13728,10 @@ function $setPointFromCaret(point, caret) {
|
|
|
13787
13728
|
const { origin, direction } = caret;
|
|
13788
13729
|
const isNext = direction === "next";
|
|
13789
13730
|
if ($isTextPointCaret(caret)) point.set(origin.getKey(), caret.offset, "text");
|
|
13790
|
-
else if ($isSiblingCaret(caret))
|
|
13791
|
-
|
|
13792
|
-
|
|
13731
|
+
else if ($isSiblingCaret(caret)) {
|
|
13732
|
+
if ($isTextNode(origin)) point.set(origin.getKey(), $getTextNodeOffset(origin, direction), "text");
|
|
13733
|
+
else point.set(origin.getParentOrThrow().getKey(), origin.getIndexWithinParent() + (isNext ? 1 : 0), "element");
|
|
13734
|
+
} else {
|
|
13793
13735
|
if (!($isChildCaret(caret) && $isElementNode(origin))) formatDevErrorMessage(`$setPointFromCaret: exhaustiveness check`);
|
|
13794
13736
|
point.set(origin.getKey(), isNext ? 0 : origin.getChildrenSize(), "element");
|
|
13795
13737
|
}
|
|
@@ -13876,7 +13818,13 @@ function $removeTextFromCaretRange(initialRange, sliceMode = "removeEmptySlices"
|
|
|
13876
13818
|
const { origin } = caret;
|
|
13877
13819
|
if (!$isElementNode(origin) || seenStart.has(origin.getKey())) removedNodes.push(origin);
|
|
13878
13820
|
}
|
|
13879
|
-
|
|
13821
|
+
const removedParents = /* @__PURE__ */ new Set();
|
|
13822
|
+
for (const node of removedNodes) {
|
|
13823
|
+
const parent = node.getParent();
|
|
13824
|
+
if (parent !== null && !seenStart.has(parent.getKey())) removedParents.add(parent);
|
|
13825
|
+
$removeFromParent(node);
|
|
13826
|
+
}
|
|
13827
|
+
for (const parent of removedParents) if (!parent.canBeEmpty() && !$isRootOrShadowRoot(parent) && parent.isEmpty() && parent.isAttached()) parent.remove();
|
|
13880
13828
|
for (const slice of range.getTextSlices()) {
|
|
13881
13829
|
if (!slice) continue;
|
|
13882
13830
|
const { origin } = slice.caret;
|