@lexical/markdown 0.2.7 → 0.2.8

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.
@@ -177,6 +177,10 @@ function getTextSibling(node, backward) {
177
177
  if (lexical.$isTextNode(sibling)) {
178
178
  return sibling;
179
179
  }
180
+
181
+ if (!lexical.$isElementNode(sibling)) {
182
+ return null;
183
+ }
180
184
  }
181
185
 
182
186
  return null;
@@ -414,6 +418,7 @@ function createTextFormatTransformersIndex(textTransformers) {
414
418
  *
415
419
  *
416
420
  */
421
+ const PUNCTUATION_OR_SPACE = /[!-/:-@[-`{-~\s]/;
417
422
 
418
423
  function runElementTransformers(parentNode, anchorNode, anchorOffset, elementTransformers) {
419
424
  const grandParentNode = parentNode.getParent();
@@ -519,6 +524,13 @@ function runTextFormatTransformers(editor, anchorNode, anchorOffset, textFormatT
519
524
 
520
525
  if (textContent[closeTagStartIndex - 1] === ' ') {
521
526
  continue;
527
+ } // Some tags can not be used within words, hence should have newline/space/punctuation after it
528
+
529
+
530
+ const afterCloseTagChar = textContent[closeTagEndIndex + 1];
531
+
532
+ if (matcher.intraword === false && afterCloseTagChar && !PUNCTUATION_OR_SPACE.test(afterCloseTagChar)) {
533
+ continue;
522
534
  }
523
535
 
524
536
  const closeNode = anchorNode;
@@ -555,6 +567,13 @@ function runTextFormatTransformers(editor, anchorNode, anchorOffset, textFormatT
555
567
 
556
568
  if (openTagStartIndex > 0 && prevOpenNodeText[openTagStartIndex - 1] === closeChar) {
557
569
  continue;
570
+ } // Some tags can not be used within words, hence should have newline/space/punctuation before it
571
+
572
+
573
+ const beforeOpenTagChar = prevOpenNodeText[openTagStartIndex - 1];
574
+
575
+ if (matcher.intraword === false && beforeOpenTagChar && !PUNCTUATION_OR_SPACE.test(beforeOpenTagChar)) {
576
+ continue;
558
577
  } // Clean text from opening and closing tags (starting from closing tag
559
578
  // to prevent any offset shifts if we start from opening one)
560
579
 
@@ -831,6 +850,7 @@ const BOLD_ITALIC_STAR = {
831
850
  };
832
851
  const BOLD_ITALIC_UNDERSCORE = {
833
852
  format: ['bold', 'italic'],
853
+ intraword: false,
834
854
  tag: '___',
835
855
  type: 'text-format'
836
856
  };
@@ -841,6 +861,7 @@ const BOLD_STAR = {
841
861
  };
842
862
  const BOLD_UNDERSCORE = {
843
863
  format: ['bold'],
864
+ intraword: false,
844
865
  tag: '__',
845
866
  type: 'text-format'
846
867
  };
@@ -856,6 +877,7 @@ const ITALIC_STAR = {
856
877
  };
857
878
  const ITALIC_UNDERSCORE = {
858
879
  format: ['italic'],
880
+ intraword: false,
859
881
  tag: '_',
860
882
  type: 'text-format'
861
883
  }; // Order of text transformers matters:
@@ -38,6 +38,7 @@ export type ElementTransformer = {
38
38
  export type TextFormatTransformer = $ReadOnly<{
39
39
  format: $ReadOnlyArray<TextFormatType>,
40
40
  tag: string,
41
+ intraword?: boolean,
41
42
  type: 'text-format',
42
43
  }>;
43
44
 
@@ -6,21 +6,22 @@
6
6
  */
7
7
  var n=require("lexical"),y=require("@lexical/code"),D=require("@lexical/link"),E=require("@lexical/list"),F=require("@lexical/rich-text");function G(a,b){const c={};for(const d of a)a=b(d),c[a]?c[a].push(d):c[a]=[d];return c}function H(a){a=G(a,b=>b.type);return{element:a.element,textFormat:a["text-format"],textMatch:a["text-match"]}}
8
8
  function aa(a){const b=H(a),c=b.textFormat.filter(d=>1===d.format.length);return()=>{const d=[];var e=n.$getRoot().getChildren();for(const f of e)e=ba(f,b.element,c,b.textMatch),null!=e&&d.push(e);return d.join("\n")}}function ba(a,b,c,d){for(const e of b)if(b=e.export(a,f=>J(f,c,d)),null!=b)return b;return n.$isElementNode(a)?J(a,c,d):null}
9
- function J(a,b,c){const d=[];a=a.getChildren();a:for(const e of a)if(n.$isLineBreakNode(e))d.push("\n");else if(n.$isTextNode(e))d.push(K(e,e.getTextContent(),b));else{for(const f of c)if(a=f.export(e,k=>J(k,b,c),(k,h)=>K(k,h,b)),null!=a){d.push(a);continue a}n.$isElementNode(e)&&d.push(J(e,b,c))}return d.join("")}function K(a,b,c){const d=new Set;for(const f of c){c=f.format[0];const k=f.tag;if(L(a,c)&&!d.has(c)){d.add(c);var e=M(a,!0);L(e,c)||(b=k+b);e=M(a,!1);L(e,c)||(b+=k)}}return b}
10
- function M(a,b){let c=b?a.getPreviousSibling():a.getNextSibling();c||(a=a.getParentOrThrow(),a.isInline()&&(c=b?a.getPreviousSibling():a.getNextSibling()));for(;c;){if(n.$isElementNode(c)){if(!c.isInline())break;a=b?c.getLastDescendant():c.getFirstDescendant();if(n.$isTextNode(a))return a;c=b?c.getPreviousSibling():c.getNextSibling()}if(n.$isTextNode(c))return c}return null}function L(a,b){return n.$isTextNode(a)&&a.hasFormat(b)}const N=/^```(\w{1,10})?\s?$/;
11
- function ca(a){const b=H(a),c=da(b.textFormat);return d=>{d=d.split("\n");const e=d.length,f=n.$getRoot();f.clear();for(let q=0;q<e;q++){var k=d[q];a:{var h=d,r=q;var u=f;var p=h[r].match(N);if(p)for(var t=r,m=h.length;++t<m;)if(h[t].match(N)){p=y.$createCodeNode(p[1]);h=n.$createTextNode(h.slice(r+1,t).join("\n"));p.append(h);u.append(p);u=[p,t];break a}u=[null,r]}const [l,g]=u;if(null!=l)q=g;else{p=f;m=b.element;u=c;t=b.textMatch;h=n.$createTextNode(k);r=n.$createParagraphNode();r.append(h);p.append(r);
12
- for(const {regExp:w,replace:v}of m)if(p=k.match(w)){h.setTextContent(k.slice(p[0].length));v(r,[h],p,!0);break}O(h,u,t)}}f.selectEnd()}}
13
- function O(a,b,c){const d=a.getTextContent();a:{var e=d.match(b.openTagsRegExp);if(null!=e)for(f of e)if(e=b.fullMatchRegExpByTag[f.replace(/^\s/,"")],null!=e&&(e=d.match(e),null!=e)){var f=e;break a}f=null}if(f){if(f[0]===d)var k=a;else{var h=f.index,r=h+f[0].length;0===h?[k,p]=a.splitText(r):[,k,p]=a.splitText(h,r)}k.setTextContent(f[2]);if(h=b.transformersByTag[f[1]])for(var u of h.format)k.hasFormat(u)||k.toggleFormat(u);k.hasFormat("code")||O(k,b,c);p&&O(p,b,c)}else a:for(b=a;b;){for(h of c)if(k=
14
- b.getTextContent().match(h.importRegExp)){var p=k.index;u=p+k[0].length;0===p?[r,b]=b.splitText(u):[,r,b]=b.splitText(p,u);h.replace(r,k);continue a}break}}function da(a){const b={},c={},d=[];for(const e of a){({tag:a}=e);b[a]=e;const f=a.replace(/(\*|\^)/g,"\\$1");d.push(f);c[a]=new RegExp(`(${f})(?![${f}\\s])(.*?[^${f}\\s])${f}(?!${f})`)}return{fullMatchRegExpByTag:c,openTagsRegExp:new RegExp("("+d.join("|")+")","g"),transformersByTag:b}}
15
- function P(a,b,c){const d=c.length;for(;b>=d;b--){const e=b-d;if(Q(a,e,c,0,d)&&" "!==a[e+d])return e}return-1}function Q(a,b,c,d,e){for(let f=0;f<e;f++)if(a[b+f]!==c[d+f])return!1;return!0}
16
- const R=a=>(b,c,d)=>{d=a(d);d.append(...c);b.replace(d);d.select(0,0)},S=a=>(b,c,d)=>{var e=b.getPreviousSibling();const f=E.$createListItemNode("check"===a?"x"===d[3]:void 0);E.$isListNode(e)&&e.getListType()===a?(e.append(f),b.remove()):(e=E.$createListNode(a,"number"===a?Number(d[2]):void 0),e.append(f),b.replace(e));f.append(...c);f.select(0,0);(b=Math.floor(d[1].length/4))&&f.setIndent(b)},T=(a,b,c)=>{const d=[];var e=a.getChildren();let f=0;for(const h of e)if(E.$isListItemNode(h)){if(1===h.getChildrenSize()&&
17
- (e=h.getFirstChild(),E.$isListNode(e))){d.push(T(e,b,c+1));continue}e=" ".repeat(4*c);var k=a.getListType();k="number"===k?`${a.getStart()+f}. `:"check"===k?`- [${h.getChecked()?"x":" "}] `:"- ";d.push(e+k+b(h));f++}return d.join("\n")},U={export:(a,b)=>{if(!F.$isHeadingNode(a))return null;const c=Number(a.getTag().slice(1));return"#".repeat(c)+" "+b(a)},regExp:/^(#{1,6})\s/,replace:R(a=>F.$createHeadingNode("h"+a[1].length)),type:"element"},V={export:(a,b)=>F.$isQuoteNode(a)?"> "+b(a):null,regExp:/^>\s/,
18
- replace:R(()=>F.$createQuoteNode()),type:"element"},W={export:a=>{if(!y.$isCodeNode(a))return null;const b=a.getTextContent();return"```"+(a.getLanguage()||"")+(b?"\n"+b:"")+"\n```"},regExp:/^```(\w{1,10})?\s/,replace:R(a=>y.$createCodeNode(a?a[1]:void 0)),type:"element"},X={export:(a,b)=>E.$isListNode(a)?T(a,b,0):null,regExp:/^(\s*)[-*+]\s/,replace:S("bullet"),type:"element"},ea={export:(a,b)=>E.$isListNode(a)?T(a,b,0):null,regExp:/^(\s*)(?:-\s)?\s?(\[(\s|x)?\])\s/i,replace:S("check"),type:"element"},
19
- Y={export:(a,b)=>E.$isListNode(a)?T(a,b,0):null,regExp:/^(\s*)(\d{1,})\.\s/,replace:S("number"),type:"element"},fa={format:["code"],tag:"`",type:"text-format"},ha={format:["bold","italic"],tag:"***",type:"text-format"},ia={format:["bold","italic"],tag:"___",type:"text-format"},ja={format:["bold"],tag:"**",type:"text-format"},ka={format:["bold"],tag:"__",type:"text-format"},la={format:["strikethrough"],tag:"~~",type:"text-format"},ma={format:["italic"],tag:"*",type:"text-format"},na={format:["italic"],
20
- tag:"_",type:"text-format"},oa={export:(a,b,c)=>{if(!D.$isLinkNode(a))return null;b=`[${a.getTextContent()}](${a.getURL()})`;const d=a.getFirstChild();return 1===a.getChildrenSize()&&n.$isTextNode(d)?c(d,b):b},importRegExp:/(?:\[([^[]+)\])(?:\(([^(]+)\))/,regExp:/(?:\[([^[]+)\])(?:\(([^(]+)\))$/,replace:(a,b)=>{const [,c,d]=b;b=D.$createLinkNode(d);const e=n.$createTextNode(c);e.setFormat(a.getFormat());b.append(e);a.replace(b)},trigger:")",type:"text-match"},pa=[U,V,W,X,Y],qa=[fa,ha,ia,ja,ka,ma,
21
- na,la],ra=[oa],Z=[...pa,...qa,...ra];exports.$convertFromMarkdownString=function(a,b=Z){return ca(b)(a)};exports.$convertToMarkdownString=function(a=Z){return aa(a)()};exports.BOLD_ITALIC_STAR=ha;exports.BOLD_ITALIC_UNDERSCORE=ia;exports.BOLD_STAR=ja;exports.BOLD_UNDERSCORE=ka;exports.CHECK_LIST=ea;exports.CODE=W;exports.ELEMENT_TRANSFORMERS=pa;exports.HEADING=U;exports.INLINE_CODE=fa;exports.ITALIC_STAR=ma;exports.ITALIC_UNDERSCORE=na;exports.LINK=oa;exports.ORDERED_LIST=Y;exports.QUOTE=V;
22
- exports.STRIKETHROUGH=la;exports.TEXT_FORMAT_TRANSFORMERS=qa;exports.TEXT_MATCH_TRANSFORMERS=ra;exports.TRANSFORMERS=Z;exports.UNORDERED_LIST=X;
23
- exports.registerMarkdownShortcuts=function(a,b=Z){const c=H(b),d=G(c.textFormat,({tag:f})=>f[f.length-1]),e=G(c.textMatch,({trigger:f})=>f);return a.registerUpdateListener(({tags:f,dirtyLeaves:k,editorState:h,prevEditorState:r})=>{if(!f.has("historic")){var u=h.read(n.$getSelection);f=r.read(n.$getSelection);if(n.$isRangeSelection(f)&&n.$isRangeSelection(u)&&u.isCollapsed()){r=u.anchor.key;var p=u.anchor.offset,t=h._nodeMap.get(r);n.$isTextNode(t)&&k.has(r)&&(1===p||p===f.anchor.offset+1)&&a.update(()=>
24
- {if(!t.hasFormat("code")){var m=t.getParent();if(null!==m&&!y.$isCodeNode(m)){var q=u.anchor.offset;b:{var l=c.element,g=m.getParent();if(n.$isRootNode(g)&&m.getFirstChild()===t&&(g=t.getTextContent()," "===g[q-1]))for(const {regExp:I,replace:B}of l)if((l=g.match(I))&&l[0].length===q){g=t.getNextSiblings();const [z,x]=t.splitText(q);z.remove();g=x?[x,...g]:g;B(m,g,l,!1);m=!0;break b}m=!1}if(!m){b:{l=t.getTextContent();m=e[l[q-1]];if(null!=m){q<l.length&&(l=l.slice(0,q));for(v of m)if(m=l.match(v.regExp),
25
- null!==m){l=m.index;g=l+m[0].length;var w=void 0;0===l?[w]=t.splitText(g):[,w]=t.splitText(l,g);w.selectNext();v.replace(w,m);var v=!0;break b}}v=!1}if(!v)b:{g=t.getTextContent();--q;const I=g[q];if(v=d[I])for(const B of v){var {tag:A}=B;m=A.length;const z=q-m+1;if(1<m&&!Q(g,z,A,0,m))continue;if(" "===g[z-1])continue;w=v=t;l=P(g,z,A);let x=w;for(;0>l&&(x=x.getPreviousSibling())&&!n.$isLineBreakNode(x);)n.$isTextNode(x)&&(l=x.getTextContent(),w=x,l=P(l,l.length,A));if(!(0>l||w===v&&l+m===z||(A=w.getTextContent(),
26
- 0<l&&A[l-1]===I))){g=v.getTextContent();g=g.slice(0,z)+g.slice(q+1);v.setTextContent(g);g=w===v?g:A;w.setTextContent(g.slice(0,l)+g.slice(l+m));g=n.$createRangeSelection();n.$setSelection(g);q=q-m*(w===v?2:1)+1;g.anchor.set(w.__key,l,"text");g.focus.set(v.__key,q,"text");for(const C of B.format)g.hasFormat(C)||g.formatText(C);g.anchor.set(g.focus.key,g.focus.offset,g.focus.type);for(const C of B.format)g.hasFormat(C)&&g.toggleFormat(C);break b}}}}}}})}}})};
9
+ function J(a,b,c){const d=[];a=a.getChildren();a:for(const e of a)if(n.$isLineBreakNode(e))d.push("\n");else if(n.$isTextNode(e))d.push(K(e,e.getTextContent(),b));else{for(const f of c)if(a=f.export(e,l=>J(l,b,c),(l,h)=>K(l,h,b)),null!=a){d.push(a);continue a}n.$isElementNode(e)&&d.push(J(e,b,c))}return d.join("")}function K(a,b,c){const d=new Set;for(const f of c){c=f.format[0];const l=f.tag;if(L(a,c)&&!d.has(c)){d.add(c);var e=M(a,!0);L(e,c)||(b=l+b);e=M(a,!1);L(e,c)||(b+=l)}}return b}
10
+ function M(a,b){let c=b?a.getPreviousSibling():a.getNextSibling();c||(a=a.getParentOrThrow(),a.isInline()&&(c=b?a.getPreviousSibling():a.getNextSibling()));for(;c;){if(n.$isElementNode(c)){if(!c.isInline())break;a=b?c.getLastDescendant():c.getFirstDescendant();if(n.$isTextNode(a))return a;c=b?c.getPreviousSibling():c.getNextSibling()}if(n.$isTextNode(c))return c;if(!n.$isElementNode(c))break}return null}function L(a,b){return n.$isTextNode(a)&&a.hasFormat(b)}const N=/^```(\w{1,10})?\s?$/;
11
+ function ca(a){const b=H(a),c=da(b.textFormat);return d=>{d=d.split("\n");const e=d.length,f=n.$getRoot();f.clear();for(let q=0;q<e;q++){var l=d[q];a:{var h=d,r=q;var u=f;var p=h[r].match(N);if(p)for(var t=r,m=h.length;++t<m;)if(h[t].match(N)){p=y.$createCodeNode(p[1]);h=n.$createTextNode(h.slice(r+1,t).join("\n"));p.append(h);u.append(p);u=[p,t];break a}u=[null,r]}const [k,g]=u;if(null!=k)q=g;else{p=f;m=b.element;u=c;t=b.textMatch;h=n.$createTextNode(l);r=n.$createParagraphNode();r.append(h);p.append(r);
12
+ for(const {regExp:v,replace:w}of m)if(p=l.match(v)){h.setTextContent(l.slice(p[0].length));w(r,[h],p,!0);break}O(h,u,t)}}f.selectEnd()}}
13
+ function O(a,b,c){const d=a.getTextContent();a:{var e=d.match(b.openTagsRegExp);if(null!=e)for(f of e)if(e=b.fullMatchRegExpByTag[f.replace(/^\s/,"")],null!=e&&(e=d.match(e),null!=e)){var f=e;break a}f=null}if(f){if(f[0]===d)var l=a;else{var h=f.index,r=h+f[0].length;0===h?[l,p]=a.splitText(r):[,l,p]=a.splitText(h,r)}l.setTextContent(f[2]);if(h=b.transformersByTag[f[1]])for(var u of h.format)l.hasFormat(u)||l.toggleFormat(u);l.hasFormat("code")||O(l,b,c);p&&O(p,b,c)}else a:for(b=a;b;){for(h of c)if(l=
14
+ b.getTextContent().match(h.importRegExp)){var p=l.index;u=p+l[0].length;0===p?[r,b]=b.splitText(u):[,r,b]=b.splitText(p,u);h.replace(r,l);continue a}break}}function da(a){const b={},c={},d=[];for(const e of a){({tag:a}=e);b[a]=e;const f=a.replace(/(\*|\^)/g,"\\$1");d.push(f);c[a]=new RegExp(`(${f})(?![${f}\\s])(.*?[^${f}\\s])${f}(?!${f})`)}return{fullMatchRegExpByTag:c,openTagsRegExp:new RegExp("("+d.join("|")+")","g"),transformersByTag:b}}const P=/[!-/:-@[-`{-~\s]/;
15
+ function Q(a,b,c){const d=c.length;for(;b>=d;b--){const e=b-d;if(R(a,e,c,0,d)&&" "!==a[e+d])return e}return-1}function R(a,b,c,d,e){for(let f=0;f<e;f++)if(a[b+f]!==c[d+f])return!1;return!0}
16
+ const S=a=>(b,c,d)=>{d=a(d);d.append(...c);b.replace(d);d.select(0,0)},T=a=>(b,c,d)=>{var e=b.getPreviousSibling();const f=E.$createListItemNode("check"===a?"x"===d[3]:void 0);E.$isListNode(e)&&e.getListType()===a?(e.append(f),b.remove()):(e=E.$createListNode(a,"number"===a?Number(d[2]):void 0),e.append(f),b.replace(e));f.append(...c);f.select(0,0);(b=Math.floor(d[1].length/4))&&f.setIndent(b)},U=(a,b,c)=>{const d=[];var e=a.getChildren();let f=0;for(const h of e)if(E.$isListItemNode(h)){if(1===h.getChildrenSize()&&
17
+ (e=h.getFirstChild(),E.$isListNode(e))){d.push(U(e,b,c+1));continue}e=" ".repeat(4*c);var l=a.getListType();l="number"===l?`${a.getStart()+f}. `:"check"===l?`- [${h.getChecked()?"x":" "}] `:"- ";d.push(e+l+b(h));f++}return d.join("\n")},V={export:(a,b)=>{if(!F.$isHeadingNode(a))return null;const c=Number(a.getTag().slice(1));return"#".repeat(c)+" "+b(a)},regExp:/^(#{1,6})\s/,replace:S(a=>F.$createHeadingNode("h"+a[1].length)),type:"element"},W={export:(a,b)=>F.$isQuoteNode(a)?"> "+b(a):null,regExp:/^>\s/,
18
+ replace:S(()=>F.$createQuoteNode()),type:"element"},X={export:a=>{if(!y.$isCodeNode(a))return null;const b=a.getTextContent();return"```"+(a.getLanguage()||"")+(b?"\n"+b:"")+"\n```"},regExp:/^```(\w{1,10})?\s/,replace:S(a=>y.$createCodeNode(a?a[1]:void 0)),type:"element"},Y={export:(a,b)=>E.$isListNode(a)?U(a,b,0):null,regExp:/^(\s*)[-*+]\s/,replace:T("bullet"),type:"element"},ea={export:(a,b)=>E.$isListNode(a)?U(a,b,0):null,regExp:/^(\s*)(?:-\s)?\s?(\[(\s|x)?\])\s/i,replace:T("check"),type:"element"},
19
+ fa={export:(a,b)=>E.$isListNode(a)?U(a,b,0):null,regExp:/^(\s*)(\d{1,})\.\s/,replace:T("number"),type:"element"},ha={format:["code"],tag:"`",type:"text-format"},ia={format:["bold","italic"],tag:"***",type:"text-format"},ja={format:["bold","italic"],intraword:!1,tag:"___",type:"text-format"},ka={format:["bold"],tag:"**",type:"text-format"},la={format:["bold"],intraword:!1,tag:"__",type:"text-format"},ma={format:["strikethrough"],tag:"~~",type:"text-format"},na={format:["italic"],tag:"*",type:"text-format"},
20
+ oa={format:["italic"],intraword:!1,tag:"_",type:"text-format"},pa={export:(a,b,c)=>{if(!D.$isLinkNode(a))return null;b=`[${a.getTextContent()}](${a.getURL()})`;const d=a.getFirstChild();return 1===a.getChildrenSize()&&n.$isTextNode(d)?c(d,b):b},importRegExp:/(?:\[([^[]+)\])(?:\(([^(]+)\))/,regExp:/(?:\[([^[]+)\])(?:\(([^(]+)\))$/,replace:(a,b)=>{const [,c,d]=b;b=D.$createLinkNode(d);const e=n.$createTextNode(c);e.setFormat(a.getFormat());b.append(e);a.replace(b)},trigger:")",type:"text-match"},qa=
21
+ [V,W,X,Y,fa],ra=[ha,ia,ja,ka,la,na,oa,ma],sa=[pa],Z=[...qa,...ra,...sa];exports.$convertFromMarkdownString=function(a,b=Z){return ca(b)(a)};exports.$convertToMarkdownString=function(a=Z){return aa(a)()};exports.BOLD_ITALIC_STAR=ia;exports.BOLD_ITALIC_UNDERSCORE=ja;exports.BOLD_STAR=ka;exports.BOLD_UNDERSCORE=la;exports.CHECK_LIST=ea;exports.CODE=X;exports.ELEMENT_TRANSFORMERS=qa;exports.HEADING=V;exports.INLINE_CODE=ha;exports.ITALIC_STAR=na;exports.ITALIC_UNDERSCORE=oa;exports.LINK=pa;
22
+ exports.ORDERED_LIST=fa;exports.QUOTE=W;exports.STRIKETHROUGH=ma;exports.TEXT_FORMAT_TRANSFORMERS=ra;exports.TEXT_MATCH_TRANSFORMERS=sa;exports.TRANSFORMERS=Z;exports.UNORDERED_LIST=Y;
23
+ exports.registerMarkdownShortcuts=function(a,b=Z){const c=H(b),d=G(c.textFormat,({tag:f})=>f[f.length-1]),e=G(c.textMatch,({trigger:f})=>f);return a.registerUpdateListener(({tags:f,dirtyLeaves:l,editorState:h,prevEditorState:r})=>{if(!f.has("historic")){var u=h.read(n.$getSelection);f=r.read(n.$getSelection);if(n.$isRangeSelection(f)&&n.$isRangeSelection(u)&&u.isCollapsed()){r=u.anchor.key;var p=u.anchor.offset,t=h._nodeMap.get(r);n.$isTextNode(t)&&l.has(r)&&(1===p||p===f.anchor.offset+1)&&a.update(()=>
24
+ {if(!t.hasFormat("code")){var m=t.getParent();if(null!==m&&!y.$isCodeNode(m)){var q=u.anchor.offset;b:{var k=c.element,g=m.getParent();if(n.$isRootNode(g)&&m.getFirstChild()===t&&(g=t.getTextContent()," "===g[q-1]))for(const {regExp:I,replace:B}of k)if((k=g.match(I))&&k[0].length===q){g=t.getNextSiblings();const [C,z]=t.splitText(q);C.remove();g=z?[z,...g]:g;B(m,g,k,!1);m=!0;break b}m=!1}if(!m){b:{k=t.getTextContent();m=e[k[q-1]];if(null!=m){q<k.length&&(k=k.slice(0,q));for(w of m)if(m=k.match(w.regExp),
25
+ null!==m){k=m.index;g=k+m[0].length;var v=void 0;0===k?[v]=t.splitText(g):[,v]=t.splitText(k,g);v.selectNext();w.replace(v,m);var w=!0;break b}}w=!1}if(!w)b:{g=t.getTextContent();--q;const I=g[q];if(w=d[I])for(const B of w){var {tag:A}=B;w=A.length;const C=q-w+1;if(!(1<w&&!R(g,C,A,0,w)||" "===g[C-1])&&(v=g[q+1],!1!==B.intraword||!v||P.test(v))){m=v=t;k=Q(g,C,A);for(var x=m;0>k&&(x=x.getPreviousSibling())&&!n.$isLineBreakNode(x);)n.$isTextNode(x)&&(k=x.getTextContent(),m=x,k=Q(k,k.length,A));if(!(0>
26
+ k||m===v&&k+w===C||(A=m.getTextContent(),0<k&&A[k-1]===I||(x=A[k-1],!1===B.intraword&&x&&!P.test(x))))){g=v.getTextContent();g=g.slice(0,C)+g.slice(q+1);v.setTextContent(g);g=m===v?g:A;m.setTextContent(g.slice(0,k)+g.slice(k+w));g=n.$createRangeSelection();n.$setSelection(g);q=q-w*(m===v?2:1)+1;g.anchor.set(m.__key,k,"text");g.focus.set(v.__key,q,"text");for(const z of B.format)g.hasFormat(z)||g.formatText(z);g.anchor.set(g.focus.key,g.focus.offset,g.focus.type);for(const z of B.format)g.hasFormat(z)&&
27
+ g.toggleFormat(z);break b}}}}}}}})}}})};
package/package.json CHANGED
@@ -8,18 +8,18 @@
8
8
  "markdown"
9
9
  ],
10
10
  "license": "MIT",
11
- "version": "0.2.7",
11
+ "version": "0.2.8",
12
12
  "main": "LexicalMarkdown.js",
13
13
  "peerDependencies": {
14
- "lexical": "0.2.7"
14
+ "lexical": "0.2.8"
15
15
  },
16
16
  "dependencies": {
17
- "@lexical/utils": "0.2.7",
18
- "@lexical/code": "0.2.7",
19
- "@lexical/text": "0.2.7",
20
- "@lexical/rich-text": "0.2.7",
21
- "@lexical/list": "0.2.7",
22
- "@lexical/link": "0.2.7"
17
+ "@lexical/utils": "0.2.8",
18
+ "@lexical/code": "0.2.8",
19
+ "@lexical/text": "0.2.8",
20
+ "@lexical/rich-text": "0.2.8",
21
+ "@lexical/list": "0.2.8",
22
+ "@lexical/link": "0.2.8"
23
23
  },
24
24
  "repository": {
25
25
  "type": "git",