@lexical/code 0.15.0 → 0.16.1-nightly.20240610.0

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.
@@ -138,11 +138,11 @@ class CodeNode extends lexical.ElementNode {
138
138
  priority: 1
139
139
  } : null;
140
140
  },
141
- div: node => ({
141
+ div: () => ({
142
142
  conversion: $convertDivElement,
143
143
  priority: 1
144
144
  }),
145
- pre: node => ({
145
+ pre: () => ({
146
146
  conversion: $convertPreElement,
147
147
  priority: 0
148
148
  }),
@@ -297,10 +297,7 @@ function $isCodeNode(node) {
297
297
  return node instanceof CodeNode;
298
298
  }
299
299
  function $convertPreElement(domNode) {
300
- let language;
301
- if (utils.isHTMLElement(domNode)) {
302
- language = domNode.getAttribute(LANGUAGE_DATA_ATTRIBUTE);
303
- }
300
+ const language = domNode.getAttribute(LANGUAGE_DATA_ATTRIBUTE);
304
301
  return {
305
302
  node: $createCodeNode(language)
306
303
  };
@@ -136,11 +136,11 @@ class CodeNode extends ElementNode {
136
136
  priority: 1
137
137
  } : null;
138
138
  },
139
- div: node => ({
139
+ div: () => ({
140
140
  conversion: $convertDivElement,
141
141
  priority: 1
142
142
  }),
143
- pre: node => ({
143
+ pre: () => ({
144
144
  conversion: $convertPreElement,
145
145
  priority: 0
146
146
  }),
@@ -295,10 +295,7 @@ function $isCodeNode(node) {
295
295
  return node instanceof CodeNode;
296
296
  }
297
297
  function $convertPreElement(domNode) {
298
- let language;
299
- if (isHTMLElement(domNode)) {
300
- language = domNode.getAttribute(LANGUAGE_DATA_ATTRIBUTE);
301
- }
298
+ const language = domNode.getAttribute(LANGUAGE_DATA_ATTRIBUTE);
302
299
  return {
303
300
  node: $createCodeNode(language)
304
301
  };
@@ -8,22 +8,22 @@
8
8
 
9
9
  'use strict';require("prismjs");require("prismjs/components/prism-clike");require("prismjs/components/prism-javascript");require("prismjs/components/prism-markup");require("prismjs/components/prism-markdown");require("prismjs/components/prism-c");require("prismjs/components/prism-css");require("prismjs/components/prism-objectivec");require("prismjs/components/prism-sql");require("prismjs/components/prism-powershell");require("prismjs/components/prism-python");require("prismjs/components/prism-rust");
10
10
  require("prismjs/components/prism-swift");require("prismjs/components/prism-typescript");require("prismjs/components/prism-java");require("prismjs/components/prism-cpp");var d=require("@lexical/utils"),m=require("lexical");"use strict";var q;
11
- function v(a){let b=new URLSearchParams;b.append("code",a);for(let c=1;c<arguments.length;c++)b.append("v",arguments[c]);throw Error(`Minified Lexical error #${a}; visit https://lexical.dev/docs/error?${b} for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}q=v&&v.__esModule&&Object.prototype.hasOwnProperty.call(v,"default")?v["default"]:v;let w=a=>null!=a&&window.Prism.languages.hasOwnProperty(a)?a:void 0;
11
+ function v(a){let b=new URLSearchParams;b.append("code",a);for(let c=1;c<arguments.length;c++)b.append("v",arguments[c]);throw Error(`Minified Lexical error #${a}; visit https://lexical.dev/docs/error?${b} for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}q=v&&v.__esModule&&Object.prototype.hasOwnProperty.call(v,"default")?v["default"]:v;let x=a=>null!=a&&window.Prism.languages.hasOwnProperty(a)?a:void 0;
12
12
  function y(a,b){for(let c of a.childNodes){if(d.isHTMLElement(c)&&c.tagName===b)return!0;y(c,b)}return!1}
13
- class z extends m.ElementNode{static getType(){return"code"}static clone(a){return new z(a.__language,a.__key)}constructor(a,b){super(b);this.__language=w(a)}createDOM(a){let b=document.createElement("code");d.addClassNamesToElement(b,a.theme.code);b.setAttribute("spellcheck","false");(a=this.getLanguage())&&b.setAttribute("data-highlight-language",a);return b}updateDOM(a,b){let c=this.__language;a=a.__language;c?c!==a&&b.setAttribute("data-highlight-language",c):a&&b.removeAttribute("data-highlight-language");
13
+ class z extends m.ElementNode{static getType(){return"code"}static clone(a){return new z(a.__language,a.__key)}constructor(a,b){super(b);this.__language=x(a)}createDOM(a){let b=document.createElement("code");d.addClassNamesToElement(b,a.theme.code);b.setAttribute("spellcheck","false");(a=this.getLanguage())&&b.setAttribute("data-highlight-language",a);return b}updateDOM(a,b){let c=this.__language;a=a.__language;c?c!==a&&b.setAttribute("data-highlight-language",c):a&&b.removeAttribute("data-highlight-language");
14
14
  return!1}exportDOM(a){let b=document.createElement("pre");d.addClassNamesToElement(b,a._config.theme.code);b.setAttribute("spellcheck","false");(a=this.getLanguage())&&b.setAttribute("data-highlight-language",a);return{element:b}}static importDOM(){return{code:a=>null!=a.textContent&&(/\r?\n/.test(a.textContent)||y(a,"BR"))?{conversion:A,priority:1}:null,div:()=>({conversion:aa,priority:1}),pre:()=>({conversion:A,priority:0}),table:a=>B(a)?{conversion:ba,priority:3}:null,td:a=>{let b=a.closest("table");
15
15
  return a.classList.contains("js-file-line")||b&&B(b)?{conversion:C,priority:3}:null},tr:a=>(a=a.closest("table"))&&B(a)?{conversion:C,priority:3}:null}}static importJSON(a){let b=D(a.language);b.setFormat(a.format);b.setIndent(a.indent);b.setDirection(a.direction);return b}exportJSON(){return{...super.exportJSON(),language:this.getLanguage(),type:"code",version:1}}insertNewAfter(a,b=!0){var c=this.getChildren(),e=c.length;if(2<=e&&"\n"===c[e-1].getTextContent()&&"\n"===c[e-2].getTextContent()&&a.isCollapsed()&&
16
16
  a.anchor.key===this.__key&&a.anchor.offset===e)return c[e-1].remove(),c[e-2].remove(),a=m.$createParagraphNode(),this.insertAfter(a,b),a;let {anchor:f,focus:g}=a;b=(f.isBefore(g)?f:g).getNode();if(m.$isTextNode(b)){e=E(b);for(c=[];;)if(m.$isTabNode(e))c.push(m.$createTabNode()),e=e.getNextSibling();else if(F(e)){for(var h=0,k=e.getTextContent(),l=e.getTextContentSize();h<l&&" "===k[h];)h++;0!==h&&c.push(G(" ".repeat(h)));if(h!==l)break;e=e.getNextSibling()}else break;e=b.splitText(f.offset)[0];h=
17
- 0===f.offset?0:1;h=e.getIndexWithinParent()+h;k=b.getParentOrThrow();l=[m.$createLineBreakNode(),...c];k.splice(h,0,l);(c=c[c.length-1])?c.select():0===f.offset?e.selectPrevious():e.getNextSibling().selectNext(0,0)}H(b)&&({offset:a}=a.anchor,b.splice(a,0,[m.$createLineBreakNode()]),b.select(a+1,a+1));return null}canIndent(){return!1}collapseAtStart(){let a=m.$createParagraphNode();this.getChildren().forEach(b=>a.append(b));this.replace(a);return!0}setLanguage(a){this.getWritable().__language=w(a)}getLanguage(){return this.getLatest().__language}}
18
- function D(a){return m.$applyNodeReplacement(new z(a))}function H(a){return a instanceof z}function A(a){let b;d.isHTMLElement(a)&&(b=a.getAttribute("data-highlight-language"));return{node:D(b)}}function aa(a){let b=null!==a.style.fontFamily.match("monospace");var c;if(c=!b){a:{for(a=a.parentElement;null!==a;){if(null!==a.style.fontFamily.match("monospace")){a=!0;break a}a=a.parentElement}a=!1}c=!a}return c?{node:null}:{node:b?D():null}}function ba(){return{node:D()}}
19
- function C(){return{node:null}}function B(a){return a.classList.contains("js-file-line-container")}let I={c:"C",clike:"C-like",cpp:"C++",css:"CSS",html:"HTML",java:"Java",js:"JavaScript",markdown:"Markdown",objc:"Objective-C",plain:"Plain Text",powershell:"PowerShell",py:"Python",rust:"Rust",sql:"SQL",swift:"Swift",typescript:"TypeScript",xml:"XML"},J={cpp:"cpp",java:"java",javascript:"js",md:"markdown",plaintext:"plain",python:"py",text:"plain",ts:"typescript"};function L(a){return J[a]||a}
17
+ 0===f.offset?0:1;h=e.getIndexWithinParent()+h;k=b.getParentOrThrow();l=[m.$createLineBreakNode(),...c];k.splice(h,0,l);(c=c[c.length-1])?c.select():0===f.offset?e.selectPrevious():e.getNextSibling().selectNext(0,0)}H(b)&&({offset:a}=a.anchor,b.splice(a,0,[m.$createLineBreakNode()]),b.select(a+1,a+1));return null}canIndent(){return!1}collapseAtStart(){let a=m.$createParagraphNode();this.getChildren().forEach(b=>a.append(b));this.replace(a);return!0}setLanguage(a){this.getWritable().__language=x(a)}getLanguage(){return this.getLatest().__language}}
18
+ function D(a){return m.$applyNodeReplacement(new z(a))}function H(a){return a instanceof z}function A(a){a=a.getAttribute("data-highlight-language");return{node:D(a)}}function aa(a){let b=null!==a.style.fontFamily.match("monospace");var c;if(c=!b){a:{for(a=a.parentElement;null!==a;){if(null!==a.style.fontFamily.match("monospace")){a=!0;break a}a=a.parentElement}a=!1}c=!a}return c?{node:null}:{node:b?D():null}}function ba(){return{node:D()}}function C(){return{node:null}}
19
+ function B(a){return a.classList.contains("js-file-line-container")}let I={c:"C",clike:"C-like",cpp:"C++",css:"CSS",html:"HTML",java:"Java",js:"JavaScript",markdown:"Markdown",objc:"Objective-C",plain:"Plain Text",powershell:"PowerShell",py:"Python",rust:"Rust",sql:"SQL",swift:"Swift",typescript:"TypeScript",xml:"XML"},J={cpp:"cpp",java:"java",javascript:"js",md:"markdown",plaintext:"plain",python:"py",text:"plain",ts:"typescript"};function L(a){return J[a]||a}
20
20
  class M extends m.TextNode{constructor(a,b,c){super(a,c);this.__highlightType=b}static getType(){return"code-highlight"}static clone(a){return new M(a.__text,a.__highlightType||void 0,a.__key)}getHighlightType(){return this.getLatest().__highlightType}canHaveFormat(){return!1}createDOM(a){let b=super.createDOM(a);a=N(a.theme,this.__highlightType);d.addClassNamesToElement(b,a);return b}updateDOM(a,b,c){let e=super.updateDOM(a,b,c);a=N(c.theme,a.__highlightType);c=N(c.theme,this.__highlightType);a!==
21
21
  c&&(a&&d.removeClassNamesFromElement(b,a),c&&d.addClassNamesToElement(b,c));return e}static importJSON(a){let b=G(a.text,a.highlightType);b.setFormat(a.format);b.setDetail(a.detail);b.setMode(a.mode);b.setStyle(a.style);return b}exportJSON(){return{...super.exportJSON(),highlightType:this.getHighlightType(),type:"code-highlight",version:1}}setFormat(){return this}isParentRequired(){return!0}createParentElementNode(){return D()}}function N(a,b){return b&&a&&a.codeHighlight&&a.codeHighlight[b]}
22
22
  function G(a,b){return m.$applyNodeReplacement(new M(a,b))}function F(a){return a instanceof M}function E(a){let b=a;for(;F(a)||m.$isTabNode(a);)b=a,a=a.getPreviousSibling();return b}function O(a){let b=a;for(;F(a)||m.$isTabNode(a);)b=a,a=a.getNextSibling();return b}let P={defaultLanguage:"javascript",tokenize(a,b){return window.Prism.tokenize(a,window.Prism.languages[b||""]||window.Prism.languages[this.defaultLanguage])}};
23
23
  function Q(a,b){let c=null;var e=null,f=a;let g=b,h=a.getTextContent();for(;;){if(0===g){f=f.getPreviousSibling();if(null===f)break;F(f)||m.$isTabNode(f)||m.$isLineBreakNode(f)||q(167);if(m.$isLineBreakNode(f)){c={node:f,offset:1};break}g=Math.max(0,f.getTextContentSize()-1);h=f.getTextContent()}else g--;let k=h[g];F(f)&&" "!==k&&(e={node:f,offset:g})}if(null!==e)return e;e=null;b<a.getTextContentSize()?F(a)&&(e=a.getTextContent()[b]):(f=a.getNextSibling(),F(f)&&(e=f.getTextContent()[0]));if(null!==
24
24
  e&&" "!==e)return c;a:for(e=a,f=a.getTextContent(),a=a.getTextContentSize();;){if(!F(e)||b===a){e=e.getNextSibling();if(null===e||m.$isLineBreakNode(e)){a=null;break a}F(e)&&(b=0,f=e.getTextContent(),a=e.getTextContentSize())}if(F(e)){if(" "!==f[b]){a={node:e,offset:b};break a}b++}}return null!==a?a:c}function R(a){a=O(a);m.$isLineBreakNode(a)&&q(168);return a}function S(a,b,c){let e=a.getParent();H(e)?T(e,b,c):F(a)&&a.replace(m.$createTextNode(a.__text))}let U=new Set;
25
- function T(a,b,c){let e=a.getKey();U.has(e)||(U.add(e),void 0===a.getLanguage()&&a.setLanguage(c.defaultLanguage),b.update(()=>{ca(e,()=>{var f=m.$getNodeByKey(e);if(!H(f)||!f.isAttached())return!1;var g=f.getTextContent();g=c.tokenize(g,f.getLanguage()||c.defaultLanguage);g=V(g);var h=f.getChildren();for(f=0;f<h.length&&W(h[f],g[f]);)f++;var k=h.length;let l=g.length,r=Math.min(k,l)-f,n=0;for(;n<r;)if(n++,!W(h[k-n],g[l-n])){n--;break}h=f;k-=n;g=g.slice(f,l-n);let {from:p,to:x,nodesForReplacement:u}=
26
- {from:h,nodesForReplacement:g,to:k};return p!==x||u.length?(a.splice(p,x-p,u),!0):!1})},{onUpdate:()=>{U.delete(e)},skipTransforms:!0}))}
25
+ function T(a,b,c){let e=a.getKey();U.has(e)||(U.add(e),void 0===a.getLanguage()&&a.setLanguage(c.defaultLanguage),b.update(()=>{ca(e,()=>{var f=m.$getNodeByKey(e);if(!H(f)||!f.isAttached())return!1;var g=f.getTextContent();g=c.tokenize(g,f.getLanguage()||c.defaultLanguage);g=V(g);var h=f.getChildren();for(f=0;f<h.length&&W(h[f],g[f]);)f++;var k=h.length;let l=g.length,r=Math.min(k,l)-f,n=0;for(;n<r;)if(n++,!W(h[k-n],g[l-n])){n--;break}h=f;k-=n;g=g.slice(f,l-n);let {from:p,to:w,nodesForReplacement:u}=
26
+ {from:h,nodesForReplacement:g,to:k};return p!==w||u.length?(a.splice(p,w-p,u),!0):!1})},{onUpdate:()=>{U.delete(e)},skipTransforms:!0}))}
27
27
  function V(a,b){let c=[];for(let e of a)if("string"===typeof e){a=e.split(/(\n|\t)/);let f=a.length;for(let g=0;g<f;g++){let h=a[g];"\n"===h||"\r\n"===h?c.push(m.$createLineBreakNode()):"\t"===h?c.push(m.$createTabNode()):0<h.length&&c.push(G(h,b))}}else({content:a}=e),"string"===typeof a?c.push(...V([a],e.type)):Array.isArray(a)&&c.push(...V(a,e.type));return c}
28
28
  function ca(a,b){a=m.$getNodeByKey(a);if(H(a)&&a.isAttached()){var c=m.$getSelection();if(m.$isRangeSelection(c)){c=c.anchor;var e=c.offset,f="element"===c.type&&m.$isLineBreakNode(a.getChildAtIndex(c.offset-1)),g=0;if(!f){let h=c.getNode();g=e+h.getPreviousSiblings().reduce((k,l)=>k+l.getTextContentSize(),0)}b()&&(f?c.getNode().select(e,e):a.getChildren().some(h=>{let k=m.$isTextNode(h);if(k||m.$isLineBreakNode(h)){let l=h.getTextContentSize();if(k&&l>=g)return h.select(g,g),!0;g-=l}return!1}))}else b()}}
29
29
  function W(a,b){return F(a)&&F(b)&&a.__text===b.__text&&a.__highlightType===b.__highlightType||m.$isTabNode(a)&&m.$isTabNode(b)||m.$isLineBreakNode(a)&&m.$isLineBreakNode(b)}function X(a){if(!m.$isRangeSelection(a))return!1;var b=a.anchor.getNode();a=a.focus.getNode();if(b.is(a)&&H(b))return!0;b=b.getParent();return H(b)&&b.is(a.getParent())}
@@ -33,8 +33,8 @@ c:a}
33
33
  function Z(a){var b=m.$getSelection();if(!m.$isRangeSelection(b)||!X(b))return!1;var c=Y(b);let e=c.length;if(1<c.length){for(b=0;b<e;b++){var f=c[b];0<f.length&&(f=f[0],0===b&&(f=E(f)),null!==f&&(a===m.INDENT_CONTENT_COMMAND?f.insertBefore(m.$createTabNode()):m.$isTabNode(f)&&f.remove()))}return!0}c=b.getNodes()[0];H(c)||F(c)||m.$isTabNode(c)||m.$isLineBreakNode(c)||q(171);if(H(c))return a===m.INDENT_CONTENT_COMMAND&&b.insertNodes([m.$createTabNode()]),!0;c=E(c);null===c&&q(172);a===m.INDENT_CONTENT_COMMAND?m.$isLineBreakNode(c)?
34
34
  c.insertAfter(m.$createTabNode()):c.insertBefore(m.$createTabNode()):m.$isTabNode(c)&&c.remove();return!0}
35
35
  function ea(a,b){let c=m.$getSelection();if(!m.$isRangeSelection(c))return!1;let {anchor:e,focus:f}=c,g=e.offset,h=f.offset,k=e.getNode(),l=f.getNode();var r=a===m.KEY_ARROW_UP_COMMAND;if(!X(c)||!F(k)&&!m.$isTabNode(k)||!F(l)&&!m.$isTabNode(l))return!1;if(!b.altKey){if(c.isCollapsed())if(a=k.getParentOrThrow(),r&&0===g&&null===k.getPreviousSibling()){if(null===a.getPreviousSibling())return a.selectPrevious(),b.preventDefault(),!0}else if(!r&&g===k.getTextContentSize()&&null===k.getNextSibling()&&
36
- null===a.getNextSibling())return a.selectNext(),b.preventDefault(),!0;return!1}let n;if(k.isBefore(l)){var p=E(k);n=O(l)}else p=E(l),n=O(k);if(null==p||null==n)return!1;let x=p.getNodesBetween(n);for(let t=0;t<x.length;t++){let K=x[t];if(!F(K)&&!m.$isTabNode(K)&&!m.$isLineBreakNode(K))return!1}b.preventDefault();b.stopPropagation();b=r?p.getPreviousSibling():n.getNextSibling();if(!m.$isLineBreakNode(b))return!0;p=r?b.getPreviousSibling():b.getNextSibling();if(null==p)return!0;r=F(p)||m.$isTabNode(p)||
37
- m.$isLineBreakNode(p)?r?E(p):O(p):null;let u=null!=r?r:p;b.remove();x.forEach(t=>t.remove());a===m.KEY_ARROW_UP_COMMAND?(x.forEach(t=>u.insertBefore(t)),u.insertBefore(b)):(u.insertAfter(b),u=b,x.forEach(t=>{u.insertAfter(t);u=t}));c.setTextNodeRange(k,g,l,h);return!0}
36
+ null===a.getNextSibling())return a.selectNext(),b.preventDefault(),!0;return!1}let n;if(k.isBefore(l)){var p=E(k);n=O(l)}else p=E(l),n=O(k);if(null==p||null==n)return!1;let w=p.getNodesBetween(n);for(let t=0;t<w.length;t++){let K=w[t];if(!F(K)&&!m.$isTabNode(K)&&!m.$isLineBreakNode(K))return!1}b.preventDefault();b.stopPropagation();b=r?p.getPreviousSibling():n.getNextSibling();if(!m.$isLineBreakNode(b))return!0;p=r?b.getPreviousSibling():b.getNextSibling();if(null==p)return!0;r=F(p)||m.$isTabNode(p)||
37
+ m.$isLineBreakNode(p)?r?E(p):O(p):null;let u=null!=r?r:p;b.remove();w.forEach(t=>t.remove());a===m.KEY_ARROW_UP_COMMAND?(w.forEach(t=>u.insertBefore(t)),u.insertBefore(b)):(u.insertAfter(b),u=b,w.forEach(t=>{u.insertAfter(t);u=t}));c.setTextNodeRange(k,g,l,h);return!0}
38
38
  function fa(a,b){let c=m.$getSelection();if(!m.$isRangeSelection(c))return!1;let {anchor:e,focus:f}=c;var g=e.getNode();let h=f.getNode();a=a===m.MOVE_TO_START;if(!F(g)&&!m.$isTabNode(g)||!F(h)&&!m.$isTabNode(h))return!1;if(a)if(g=Q(h,f.offset),null!==g){let {node:k,offset:l}=g;m.$isLineBreakNode(k)?k.selectNext(0,0):c.setTextNodeRange(k,l,k,l)}else h.getParentOrThrow().selectStart();else R(h).select();b.preventDefault();b.stopPropagation();return!0}exports.$createCodeHighlightNode=G;
39
39
  exports.$createCodeNode=D;exports.$isCodeHighlightNode=F;exports.$isCodeNode=H;exports.CODE_LANGUAGE_FRIENDLY_NAME_MAP=I;exports.CODE_LANGUAGE_MAP=J;exports.CodeHighlightNode=M;exports.CodeNode=z;exports.DEFAULT_CODE_LANGUAGE="javascript";exports.PrismTokenizer=P;exports.getCodeLanguages=()=>Object.keys(window.Prism.languages).filter(a=>"function"!==typeof window.Prism.languages[a]).sort();exports.getDefaultCodeLanguage=()=>"javascript";exports.getEndOfCodeInLine=R;
40
40
  exports.getFirstCodeNodeOfLine=E;exports.getLanguageFriendlyName=function(a){a=L(a);return I[a]||a};exports.getLastCodeNodeOfLine=O;exports.getStartOfCodeInLine=Q;exports.normalizeCodeLang=L;
@@ -6,4 +6,4 @@
6
6
  *
7
7
  */
8
8
 
9
- import"prismjs";import"prismjs/components/prism-clike.js";import"prismjs/components/prism-javascript.js";import"prismjs/components/prism-markup.js";import"prismjs/components/prism-markdown.js";import"prismjs/components/prism-c.js";import"prismjs/components/prism-css.js";import"prismjs/components/prism-objectivec.js";import"prismjs/components/prism-sql.js";import"prismjs/components/prism-powershell.js";import"prismjs/components/prism-python.js";import"prismjs/components/prism-rust.js";import"prismjs/components/prism-swift.js";import"prismjs/components/prism-typescript.js";import"prismjs/components/prism-java.js";import"prismjs/components/prism-cpp.js";import{isHTMLElement as e,addClassNamesToElement as t,removeClassNamesFromElement as n,mergeRegister as r}from"@lexical/utils";import{ElementNode as o,$createParagraphNode as i,$isTextNode as s,$isTabNode as l,$createTabNode as u,$createLineBreakNode as c,$applyNodeReplacement as a,TextNode as g,$isLineBreakNode as f,$createTextNode as p,$getNodeByKey as h,$getSelection as d,$isRangeSelection as m,INDENT_CONTENT_COMMAND as y,OUTDENT_CONTENT_COMMAND as x,INSERT_TAB_COMMAND as v,KEY_ARROW_UP_COMMAND as _,MOVE_TO_START as C,KEY_TAB_COMMAND as T,COMMAND_PRIORITY_LOW as j,$insertNodes as N,KEY_ARROW_DOWN_COMMAND as S,MOVE_TO_END as b}from"lexical";"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function w(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var P=w((function(e){const t=new URLSearchParams;t.append("code",e);for(let e=1;e<arguments.length;e++)t.append("v",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));const k=e=>null!=e&&window.Prism.languages.hasOwnProperty(e)?e:void 0;function L(t,n){for(const r of t.childNodes){if(e(r)&&r.tagName===n)return!0;L(r,n)}return!1}const O="data-highlight-language";class A extends o{static getType(){return"code"}static clone(e){return new A(e.__language,e.__key)}constructor(e,t){super(t),this.__language=k(e)}createDOM(e){const n=document.createElement("code");t(n,e.theme.code),n.setAttribute("spellcheck","false");const r=this.getLanguage();return r&&n.setAttribute(O,r),n}updateDOM(e,t,n){const r=this.__language,o=e.__language;return r?r!==o&&t.setAttribute(O,r):o&&t.removeAttribute(O),!1}exportDOM(e){const n=document.createElement("pre");t(n,e._config.theme.code),n.setAttribute("spellcheck","false");const r=this.getLanguage();return r&&n.setAttribute(O,r),{element:n}}static importDOM(){return{code:e=>null!=e.textContent&&(/\r?\n/.test(e.textContent)||L(e,"BR"))?{conversion:z,priority:1}:null,div:e=>({conversion:E,priority:1}),pre:e=>({conversion:z,priority:0}),table:e=>R(e)?{conversion:B,priority:3}:null,td:e=>{const t=e,n=t.closest("table");return t.classList.contains("js-file-line")||n&&R(n)?{conversion:H,priority:3}:null},tr:e=>{const t=e.closest("table");return t&&R(t)?{conversion:H,priority:3}:null}}}static importJSON(e){const t=M(e.language);return t.setFormat(e.format),t.setIndent(e.indent),t.setDirection(e.direction),t}exportJSON(){return{...super.exportJSON(),language:this.getLanguage(),type:"code",version:1}}insertNewAfter(e,t=!0){const n=this.getChildren(),r=n.length;if(r>=2&&"\n"===n[r-1].getTextContent()&&"\n"===n[r-2].getTextContent()&&e.isCollapsed()&&e.anchor.key===this.__key&&e.anchor.offset===r){n[r-1].remove(),n[r-2].remove();const e=i();return this.insertAfter(e,t),e}const{anchor:o,focus:a}=e,g=(o.isBefore(a)?o:a).getNode();if(s(g)){let e=Y(g);const t=[];for(;;)if(l(e))t.push(u()),e=e.getNextSibling();else{if(!V(e))break;{let n=0;const r=e.getTextContent(),o=e.getTextContentSize();for(;n<o&&" "===r[n];)n++;if(0!==n&&t.push(G(" ".repeat(n))),n!==o)break;e=e.getNextSibling()}}const n=g.splitText(o.offset)[0],r=0===o.offset?0:1,i=n.getIndexWithinParent()+r,s=g.getParentOrThrow(),a=[c(),...t];s.splice(i,0,a);const f=t[t.length-1];f?f.select():0===o.offset?n.selectPrevious():n.getNextSibling().selectNext(0,0)}if(D(g)){const{offset:t}=e.anchor;g.splice(t,0,[c()]),g.select(t+1,t+1)}return null}canIndent(){return!1}collapseAtStart(){const e=i();return this.getChildren().forEach((t=>e.append(t))),this.replace(e),!0}setLanguage(e){this.getWritable().__language=k(e)}getLanguage(){return this.getLatest().__language}}function M(e){return a(new A(e))}function D(e){return e instanceof A}function z(t){let n;return e(t)&&(n=t.getAttribute(O)),{node:M(n)}}function E(e){const t=e,n=J(t);return n||function(e){let t=e.parentElement;for(;null!==t;){if(J(t))return!0;t=t.parentElement}return!1}(t)?{node:n?M():null}:{node:null}}function B(){return{node:M()}}function H(){return{node:null}}function J(e){return null!==e.style.fontFamily.match("monospace")}function R(e){return e.classList.contains("js-file-line-container")}const F="javascript",K={c:"C",clike:"C-like",cpp:"C++",css:"CSS",html:"HTML",java:"Java",js:"JavaScript",markdown:"Markdown",objc:"Objective-C",plain:"Plain Text",powershell:"PowerShell",py:"Python",rust:"Rust",sql:"SQL",swift:"Swift",typescript:"TypeScript",xml:"XML"},I={cpp:"cpp",java:"java",javascript:"js",md:"markdown",plaintext:"plain",python:"py",text:"plain",ts:"typescript"};function q(e){return I[e]||e}function U(e){const t=q(e);return K[t]||t}const W=()=>F,$=()=>Object.keys(window.Prism.languages).filter((e=>"function"!=typeof window.Prism.languages[e])).sort();class Q extends g{constructor(e,t,n){super(e,n),this.__highlightType=t}static getType(){return"code-highlight"}static clone(e){return new Q(e.__text,e.__highlightType||void 0,e.__key)}getHighlightType(){return this.getLatest().__highlightType}canHaveFormat(){return!1}createDOM(e){const n=super.createDOM(e),r=X(e.theme,this.__highlightType);return t(n,r),n}updateDOM(e,r,o){const i=super.updateDOM(e,r,o),s=X(o.theme,e.__highlightType),l=X(o.theme,this.__highlightType);return s!==l&&(s&&n(r,s),l&&t(r,l)),i}static importJSON(e){const t=G(e.text,e.highlightType);return t.setFormat(e.format),t.setDetail(e.detail),t.setMode(e.mode),t.setStyle(e.style),t}exportJSON(){return{...super.exportJSON(),highlightType:this.getHighlightType(),type:"code-highlight",version:1}}setFormat(e){return this}isParentRequired(){return!0}createParentElementNode(){return M()}}function X(e,t){return t&&e&&e.codeHighlight&&e.codeHighlight[t]}function G(e,t){return a(new Q(e,t))}function V(e){return e instanceof Q}function Y(e){let t=e,n=e;for(;V(n)||l(n);)t=n,n=n.getPreviousSibling();return t}function Z(e){let t=e,n=e;for(;V(n)||l(n);)t=n,n=n.getNextSibling();return t}const ee={defaultLanguage:F,tokenize(e,t){return window.Prism.tokenize(e,window.Prism.languages[t||""]||window.Prism.languages[this.defaultLanguage])}};function te(e,t){let n=null,r=null,o=e,i=t,s=e.getTextContent();for(;;){if(0===i){if(o=o.getPreviousSibling(),null===o)break;if(V(o)||l(o)||f(o)||P(167),f(o)){n={node:o,offset:1};break}i=Math.max(0,o.getTextContentSize()-1),s=o.getTextContent()}else i--;const e=s[i];V(o)&&" "!==e&&(r={node:o,offset:i})}if(null!==r)return r;let u=null;if(t<e.getTextContentSize())V(e)&&(u=e.getTextContent()[t]);else{const t=e.getNextSibling();V(t)&&(u=t.getTextContent()[0])}if(null!==u&&" "!==u)return n;{const r=function(e,t){let n=e,r=t,o=e.getTextContent(),i=e.getTextContentSize();for(;;){if(!V(n)||r===i){if(n=n.getNextSibling(),null===n||f(n))return null;V(n)&&(r=0,o=n.getTextContent(),i=n.getTextContentSize())}if(V(n)){if(" "!==o[r])return{node:n,offset:r};r++}}}(e,t);return null!==r?r:n}}function ne(e){const t=Z(e);return f(t)&&P(168),t}function re(e,t,n){const r=e.getParent();D(r)?se(r,t,n):V(e)&&e.replace(p(e.__text))}function oe(e,t){const n=t.getElementByKey(e.getKey());if(null===n)return;const r=e.getChildren(),o=r.length;if(o===n.__cachedChildrenLength)return;n.__cachedChildrenLength=o;let i="1",s=1;for(let e=0;e<o;e++)f(r[e])&&(i+="\n"+ ++s);n.setAttribute("data-gutter",i)}const ie=new Set;function se(e,t,n){const r=e.getKey();ie.has(r)||(ie.add(r),void 0===e.getLanguage()&&e.setLanguage(n.defaultLanguage),t.update((()=>{!function(e,t){const n=h(e);if(!D(n)||!n.isAttached())return;const r=d();if(!m(r))return void t();const o=r.anchor,i=o.offset,l="element"===o.type&&f(n.getChildAtIndex(o.offset-1));let u=0;if(!l){const e=o.getNode();u=i+e.getPreviousSiblings().reduce(((e,t)=>e+t.getTextContentSize()),0)}if(!t())return;if(l)return void o.getNode().select(i,i);n.getChildren().some((e=>{const t=s(e);if(t||f(e)){const n=e.getTextContentSize();if(t&&n>=u)return e.select(u,u),!0;u-=n}return!1}))}(r,(()=>{const t=h(r);if(!D(t)||!t.isAttached())return!1;const o=t.getTextContent(),i=le(n.tokenize(o,t.getLanguage()||n.defaultLanguage)),s=function(e,t){let n=0;for(;n<e.length&&ue(e[n],t[n]);)n++;const r=e.length,o=t.length,i=Math.min(r,o)-n;let s=0;for(;s<i;)if(s++,!ue(e[r-s],t[o-s])){s--;break}const l=n,u=r-s,c=t.slice(n,o-s);return{from:l,nodesForReplacement:c,to:u}}(t.getChildren(),i),{from:l,to:u,nodesForReplacement:c}=s;return!(l===u&&!c.length)&&(e.splice(l,u-l,c),!0)}))}),{onUpdate:()=>{ie.delete(r)},skipTransforms:!0}))}function le(e,t){const n=[];for(const r of e)if("string"==typeof r){const e=r.split(/(\n|\t)/),o=e.length;for(let r=0;r<o;r++){const o=e[r];"\n"===o||"\r\n"===o?n.push(c()):"\t"===o?n.push(u()):o.length>0&&n.push(G(o,t))}}else{const{content:e}=r;"string"==typeof e?n.push(...le([e],r.type)):Array.isArray(e)&&n.push(...le(e,r.type))}return n}function ue(e,t){return V(e)&&V(t)&&e.__text===t.__text&&e.__highlightType===t.__highlightType||l(e)&&l(t)||f(e)&&f(t)}function ce(e){if(!m(e))return!1;const t=e.anchor.getNode(),n=e.focus.getNode();if(t.is(n)&&D(t))return!0;const r=t.getParent();return D(r)&&r.is(n.getParent())}function ae(e){const t=e.getNodes(),n=[[]];if(1===t.length&&D(t[0]))return n;let r=n[0];for(let e=0;e<t.length;e++){const o=t[e];V(o)||l(o)||f(o)||P(169),f(o)?0!==e&&r.length>0&&(r=[],n.push(r)):r.push(o)}return n}function ge(e){const t=d();if(!m(t)||!ce(t))return!1;const n=ae(t),r=n.length;if(n.length>1){for(let t=0;t<r;t++){const r=n[t];if(r.length>0){let n=r[0];0===t&&(n=Y(n)),null!==n&&(e===y?n.insertBefore(u()):l(n)&&n.remove())}}return!0}const o=t.getNodes()[0];if(D(o)||V(o)||l(o)||f(o)||P(171),D(o))return e===y&&t.insertNodes([u()]),!0;const i=Y(o);return null===i&&P(172),e===y?f(i)?i.insertAfter(u()):i.insertBefore(u()):l(i)&&i.remove(),!0}function fe(e,t){const n=d();if(!m(n))return!1;const{anchor:r,focus:o}=n,i=r.offset,s=o.offset,u=r.getNode(),c=o.getNode(),a=e===_;if(!ce(n)||!V(u)&&!l(u)||!V(c)&&!l(c))return!1;if(!t.altKey){if(n.isCollapsed()){const e=u.getParentOrThrow();if(a&&0===i&&null===u.getPreviousSibling()){if(null===e.getPreviousSibling())return e.selectPrevious(),t.preventDefault(),!0}else if(!a&&i===u.getTextContentSize()&&null===u.getNextSibling()){if(null===e.getNextSibling())return e.selectNext(),t.preventDefault(),!0}}return!1}let g,p;if(u.isBefore(c)?(g=Y(u),p=Z(c)):(g=Y(c),p=Z(u)),null==g||null==p)return!1;const h=g.getNodesBetween(p);for(let e=0;e<h.length;e++){const t=h[e];if(!V(t)&&!l(t)&&!f(t))return!1}t.preventDefault(),t.stopPropagation();const y=a?g.getPreviousSibling():p.getNextSibling();if(!f(y))return!0;const x=a?y.getPreviousSibling():y.getNextSibling();if(null==x)return!0;const v=V(x)||l(x)||f(x)?a?Y(x):Z(x):null;let C=null!=v?v:x;return y.remove(),h.forEach((e=>e.remove())),e===_?(h.forEach((e=>C.insertBefore(e))),C.insertBefore(y)):(C.insertAfter(y),C=y,h.forEach((e=>{C.insertAfter(e),C=e}))),n.setTextNodeRange(u,i,c,s),!0}function pe(e,t){const n=d();if(!m(n))return!1;const{anchor:r,focus:o}=n,i=r.getNode(),s=o.getNode(),u=e===C;if(!V(i)&&!l(i)||!V(s)&&!l(s))return!1;if(u){const e=te(s,o.offset);if(null!==e){const{node:t,offset:r}=e;f(t)?t.selectNext(0,0):n.setTextNodeRange(t,r,t,r)}else s.getParentOrThrow().selectStart()}else{ne(s).select()}return t.preventDefault(),t.stopPropagation(),!0}function he(e,t){if(!e.hasNodes([A,Q]))throw new Error("CodeHighlightPlugin: CodeNode or CodeHighlightNode not registered on editor");return null==t&&(t=ee),r(e.registerMutationListener(A,(t=>{e.update((()=>{for(const[n,r]of t)if("destroyed"!==r){const t=h(n);null!==t&&oe(t,e)}}))})),e.registerNodeTransform(A,(n=>se(n,e,t))),e.registerNodeTransform(g,(n=>re(n,e,t))),e.registerNodeTransform(Q,(n=>re(n,e,t))),e.registerCommand(T,(t=>{const n=function(e){const t=d();if(!m(t)||!ce(t))return null;const n=e?x:y,r=e?x:v;if(ae(t).length>1)return n;const o=t.getNodes()[0];if(D(o)||V(o)||l(o)||f(o)||P(170),D(o))return n;const i=Y(o),s=Z(o),u=t.anchor,c=t.focus;let a,g;return c.isBefore(u)?(a=c,g=u):(a=u,g=c),null!==i&&null!==s&&a.key===i.getKey()&&0===a.offset&&g.key===s.getKey()&&g.offset===s.getTextContentSize()?n:r}(t.shiftKey);return null!==n&&(t.preventDefault(),e.dispatchCommand(n,void 0),!0)}),j),e.registerCommand(v,(()=>!!ce(d())&&(N([u()]),!0)),j),e.registerCommand(y,(e=>ge(y)),j),e.registerCommand(x,(e=>ge(x)),j),e.registerCommand(_,(e=>fe(_,e)),j),e.registerCommand(S,(e=>fe(S,e)),j),e.registerCommand(b,(e=>pe(b,e)),j),e.registerCommand(C,(e=>pe(C,e)),j))}export{G as $createCodeHighlightNode,M as $createCodeNode,V as $isCodeHighlightNode,D as $isCodeNode,K as CODE_LANGUAGE_FRIENDLY_NAME_MAP,I as CODE_LANGUAGE_MAP,Q as CodeHighlightNode,A as CodeNode,F as DEFAULT_CODE_LANGUAGE,ee as PrismTokenizer,$ as getCodeLanguages,W as getDefaultCodeLanguage,ne as getEndOfCodeInLine,Y as getFirstCodeNodeOfLine,U as getLanguageFriendlyName,Z as getLastCodeNodeOfLine,te as getStartOfCodeInLine,q as normalizeCodeLang,he as registerCodeHighlighting};
9
+ import"prismjs";import"prismjs/components/prism-clike.js";import"prismjs/components/prism-javascript.js";import"prismjs/components/prism-markup.js";import"prismjs/components/prism-markdown.js";import"prismjs/components/prism-c.js";import"prismjs/components/prism-css.js";import"prismjs/components/prism-objectivec.js";import"prismjs/components/prism-sql.js";import"prismjs/components/prism-powershell.js";import"prismjs/components/prism-python.js";import"prismjs/components/prism-rust.js";import"prismjs/components/prism-swift.js";import"prismjs/components/prism-typescript.js";import"prismjs/components/prism-java.js";import"prismjs/components/prism-cpp.js";import{isHTMLElement as e,addClassNamesToElement as t,removeClassNamesFromElement as n,mergeRegister as r}from"@lexical/utils";import{ElementNode as o,$createParagraphNode as i,$isTextNode as s,$isTabNode as l,$createTabNode as u,$createLineBreakNode as c,$applyNodeReplacement as a,TextNode as g,$isLineBreakNode as f,$createTextNode as p,$getNodeByKey as h,$getSelection as d,$isRangeSelection as m,INDENT_CONTENT_COMMAND as y,OUTDENT_CONTENT_COMMAND as x,INSERT_TAB_COMMAND as v,KEY_ARROW_UP_COMMAND as _,MOVE_TO_START as C,KEY_TAB_COMMAND as T,COMMAND_PRIORITY_LOW as j,$insertNodes as N,KEY_ARROW_DOWN_COMMAND as S,MOVE_TO_END as b}from"lexical";"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function w(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var P=w((function(e){const t=new URLSearchParams;t.append("code",e);for(let e=1;e<arguments.length;e++)t.append("v",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));const k=e=>null!=e&&window.Prism.languages.hasOwnProperty(e)?e:void 0;function L(t,n){for(const r of t.childNodes){if(e(r)&&r.tagName===n)return!0;L(r,n)}return!1}const O="data-highlight-language";class A extends o{static getType(){return"code"}static clone(e){return new A(e.__language,e.__key)}constructor(e,t){super(t),this.__language=k(e)}createDOM(e){const n=document.createElement("code");t(n,e.theme.code),n.setAttribute("spellcheck","false");const r=this.getLanguage();return r&&n.setAttribute(O,r),n}updateDOM(e,t,n){const r=this.__language,o=e.__language;return r?r!==o&&t.setAttribute(O,r):o&&t.removeAttribute(O),!1}exportDOM(e){const n=document.createElement("pre");t(n,e._config.theme.code),n.setAttribute("spellcheck","false");const r=this.getLanguage();return r&&n.setAttribute(O,r),{element:n}}static importDOM(){return{code:e=>null!=e.textContent&&(/\r?\n/.test(e.textContent)||L(e,"BR"))?{conversion:z,priority:1}:null,div:()=>({conversion:E,priority:1}),pre:()=>({conversion:z,priority:0}),table:e=>R(e)?{conversion:B,priority:3}:null,td:e=>{const t=e,n=t.closest("table");return t.classList.contains("js-file-line")||n&&R(n)?{conversion:H,priority:3}:null},tr:e=>{const t=e.closest("table");return t&&R(t)?{conversion:H,priority:3}:null}}}static importJSON(e){const t=M(e.language);return t.setFormat(e.format),t.setIndent(e.indent),t.setDirection(e.direction),t}exportJSON(){return{...super.exportJSON(),language:this.getLanguage(),type:"code",version:1}}insertNewAfter(e,t=!0){const n=this.getChildren(),r=n.length;if(r>=2&&"\n"===n[r-1].getTextContent()&&"\n"===n[r-2].getTextContent()&&e.isCollapsed()&&e.anchor.key===this.__key&&e.anchor.offset===r){n[r-1].remove(),n[r-2].remove();const e=i();return this.insertAfter(e,t),e}const{anchor:o,focus:a}=e,g=(o.isBefore(a)?o:a).getNode();if(s(g)){let e=Y(g);const t=[];for(;;)if(l(e))t.push(u()),e=e.getNextSibling();else{if(!V(e))break;{let n=0;const r=e.getTextContent(),o=e.getTextContentSize();for(;n<o&&" "===r[n];)n++;if(0!==n&&t.push(G(" ".repeat(n))),n!==o)break;e=e.getNextSibling()}}const n=g.splitText(o.offset)[0],r=0===o.offset?0:1,i=n.getIndexWithinParent()+r,s=g.getParentOrThrow(),a=[c(),...t];s.splice(i,0,a);const f=t[t.length-1];f?f.select():0===o.offset?n.selectPrevious():n.getNextSibling().selectNext(0,0)}if(D(g)){const{offset:t}=e.anchor;g.splice(t,0,[c()]),g.select(t+1,t+1)}return null}canIndent(){return!1}collapseAtStart(){const e=i();return this.getChildren().forEach((t=>e.append(t))),this.replace(e),!0}setLanguage(e){this.getWritable().__language=k(e)}getLanguage(){return this.getLatest().__language}}function M(e){return a(new A(e))}function D(e){return e instanceof A}function z(e){return{node:M(e.getAttribute(O))}}function E(e){const t=e,n=J(t);return n||function(e){let t=e.parentElement;for(;null!==t;){if(J(t))return!0;t=t.parentElement}return!1}(t)?{node:n?M():null}:{node:null}}function B(){return{node:M()}}function H(){return{node:null}}function J(e){return null!==e.style.fontFamily.match("monospace")}function R(e){return e.classList.contains("js-file-line-container")}const F="javascript",K={c:"C",clike:"C-like",cpp:"C++",css:"CSS",html:"HTML",java:"Java",js:"JavaScript",markdown:"Markdown",objc:"Objective-C",plain:"Plain Text",powershell:"PowerShell",py:"Python",rust:"Rust",sql:"SQL",swift:"Swift",typescript:"TypeScript",xml:"XML"},I={cpp:"cpp",java:"java",javascript:"js",md:"markdown",plaintext:"plain",python:"py",text:"plain",ts:"typescript"};function q(e){return I[e]||e}function U(e){const t=q(e);return K[t]||t}const W=()=>F,$=()=>Object.keys(window.Prism.languages).filter((e=>"function"!=typeof window.Prism.languages[e])).sort();class Q extends g{constructor(e,t,n){super(e,n),this.__highlightType=t}static getType(){return"code-highlight"}static clone(e){return new Q(e.__text,e.__highlightType||void 0,e.__key)}getHighlightType(){return this.getLatest().__highlightType}canHaveFormat(){return!1}createDOM(e){const n=super.createDOM(e),r=X(e.theme,this.__highlightType);return t(n,r),n}updateDOM(e,r,o){const i=super.updateDOM(e,r,o),s=X(o.theme,e.__highlightType),l=X(o.theme,this.__highlightType);return s!==l&&(s&&n(r,s),l&&t(r,l)),i}static importJSON(e){const t=G(e.text,e.highlightType);return t.setFormat(e.format),t.setDetail(e.detail),t.setMode(e.mode),t.setStyle(e.style),t}exportJSON(){return{...super.exportJSON(),highlightType:this.getHighlightType(),type:"code-highlight",version:1}}setFormat(e){return this}isParentRequired(){return!0}createParentElementNode(){return M()}}function X(e,t){return t&&e&&e.codeHighlight&&e.codeHighlight[t]}function G(e,t){return a(new Q(e,t))}function V(e){return e instanceof Q}function Y(e){let t=e,n=e;for(;V(n)||l(n);)t=n,n=n.getPreviousSibling();return t}function Z(e){let t=e,n=e;for(;V(n)||l(n);)t=n,n=n.getNextSibling();return t}const ee={defaultLanguage:F,tokenize(e,t){return window.Prism.tokenize(e,window.Prism.languages[t||""]||window.Prism.languages[this.defaultLanguage])}};function te(e,t){let n=null,r=null,o=e,i=t,s=e.getTextContent();for(;;){if(0===i){if(o=o.getPreviousSibling(),null===o)break;if(V(o)||l(o)||f(o)||P(167),f(o)){n={node:o,offset:1};break}i=Math.max(0,o.getTextContentSize()-1),s=o.getTextContent()}else i--;const e=s[i];V(o)&&" "!==e&&(r={node:o,offset:i})}if(null!==r)return r;let u=null;if(t<e.getTextContentSize())V(e)&&(u=e.getTextContent()[t]);else{const t=e.getNextSibling();V(t)&&(u=t.getTextContent()[0])}if(null!==u&&" "!==u)return n;{const r=function(e,t){let n=e,r=t,o=e.getTextContent(),i=e.getTextContentSize();for(;;){if(!V(n)||r===i){if(n=n.getNextSibling(),null===n||f(n))return null;V(n)&&(r=0,o=n.getTextContent(),i=n.getTextContentSize())}if(V(n)){if(" "!==o[r])return{node:n,offset:r};r++}}}(e,t);return null!==r?r:n}}function ne(e){const t=Z(e);return f(t)&&P(168),t}function re(e,t,n){const r=e.getParent();D(r)?se(r,t,n):V(e)&&e.replace(p(e.__text))}function oe(e,t){const n=t.getElementByKey(e.getKey());if(null===n)return;const r=e.getChildren(),o=r.length;if(o===n.__cachedChildrenLength)return;n.__cachedChildrenLength=o;let i="1",s=1;for(let e=0;e<o;e++)f(r[e])&&(i+="\n"+ ++s);n.setAttribute("data-gutter",i)}const ie=new Set;function se(e,t,n){const r=e.getKey();ie.has(r)||(ie.add(r),void 0===e.getLanguage()&&e.setLanguage(n.defaultLanguage),t.update((()=>{!function(e,t){const n=h(e);if(!D(n)||!n.isAttached())return;const r=d();if(!m(r))return void t();const o=r.anchor,i=o.offset,l="element"===o.type&&f(n.getChildAtIndex(o.offset-1));let u=0;if(!l){const e=o.getNode();u=i+e.getPreviousSiblings().reduce(((e,t)=>e+t.getTextContentSize()),0)}if(!t())return;if(l)return void o.getNode().select(i,i);n.getChildren().some((e=>{const t=s(e);if(t||f(e)){const n=e.getTextContentSize();if(t&&n>=u)return e.select(u,u),!0;u-=n}return!1}))}(r,(()=>{const t=h(r);if(!D(t)||!t.isAttached())return!1;const o=t.getTextContent(),i=le(n.tokenize(o,t.getLanguage()||n.defaultLanguage)),s=function(e,t){let n=0;for(;n<e.length&&ue(e[n],t[n]);)n++;const r=e.length,o=t.length,i=Math.min(r,o)-n;let s=0;for(;s<i;)if(s++,!ue(e[r-s],t[o-s])){s--;break}const l=n,u=r-s,c=t.slice(n,o-s);return{from:l,nodesForReplacement:c,to:u}}(t.getChildren(),i),{from:l,to:u,nodesForReplacement:c}=s;return!(l===u&&!c.length)&&(e.splice(l,u-l,c),!0)}))}),{onUpdate:()=>{ie.delete(r)},skipTransforms:!0}))}function le(e,t){const n=[];for(const r of e)if("string"==typeof r){const e=r.split(/(\n|\t)/),o=e.length;for(let r=0;r<o;r++){const o=e[r];"\n"===o||"\r\n"===o?n.push(c()):"\t"===o?n.push(u()):o.length>0&&n.push(G(o,t))}}else{const{content:e}=r;"string"==typeof e?n.push(...le([e],r.type)):Array.isArray(e)&&n.push(...le(e,r.type))}return n}function ue(e,t){return V(e)&&V(t)&&e.__text===t.__text&&e.__highlightType===t.__highlightType||l(e)&&l(t)||f(e)&&f(t)}function ce(e){if(!m(e))return!1;const t=e.anchor.getNode(),n=e.focus.getNode();if(t.is(n)&&D(t))return!0;const r=t.getParent();return D(r)&&r.is(n.getParent())}function ae(e){const t=e.getNodes(),n=[[]];if(1===t.length&&D(t[0]))return n;let r=n[0];for(let e=0;e<t.length;e++){const o=t[e];V(o)||l(o)||f(o)||P(169),f(o)?0!==e&&r.length>0&&(r=[],n.push(r)):r.push(o)}return n}function ge(e){const t=d();if(!m(t)||!ce(t))return!1;const n=ae(t),r=n.length;if(n.length>1){for(let t=0;t<r;t++){const r=n[t];if(r.length>0){let n=r[0];0===t&&(n=Y(n)),null!==n&&(e===y?n.insertBefore(u()):l(n)&&n.remove())}}return!0}const o=t.getNodes()[0];if(D(o)||V(o)||l(o)||f(o)||P(171),D(o))return e===y&&t.insertNodes([u()]),!0;const i=Y(o);return null===i&&P(172),e===y?f(i)?i.insertAfter(u()):i.insertBefore(u()):l(i)&&i.remove(),!0}function fe(e,t){const n=d();if(!m(n))return!1;const{anchor:r,focus:o}=n,i=r.offset,s=o.offset,u=r.getNode(),c=o.getNode(),a=e===_;if(!ce(n)||!V(u)&&!l(u)||!V(c)&&!l(c))return!1;if(!t.altKey){if(n.isCollapsed()){const e=u.getParentOrThrow();if(a&&0===i&&null===u.getPreviousSibling()){if(null===e.getPreviousSibling())return e.selectPrevious(),t.preventDefault(),!0}else if(!a&&i===u.getTextContentSize()&&null===u.getNextSibling()){if(null===e.getNextSibling())return e.selectNext(),t.preventDefault(),!0}}return!1}let g,p;if(u.isBefore(c)?(g=Y(u),p=Z(c)):(g=Y(c),p=Z(u)),null==g||null==p)return!1;const h=g.getNodesBetween(p);for(let e=0;e<h.length;e++){const t=h[e];if(!V(t)&&!l(t)&&!f(t))return!1}t.preventDefault(),t.stopPropagation();const y=a?g.getPreviousSibling():p.getNextSibling();if(!f(y))return!0;const x=a?y.getPreviousSibling():y.getNextSibling();if(null==x)return!0;const v=V(x)||l(x)||f(x)?a?Y(x):Z(x):null;let C=null!=v?v:x;return y.remove(),h.forEach((e=>e.remove())),e===_?(h.forEach((e=>C.insertBefore(e))),C.insertBefore(y)):(C.insertAfter(y),C=y,h.forEach((e=>{C.insertAfter(e),C=e}))),n.setTextNodeRange(u,i,c,s),!0}function pe(e,t){const n=d();if(!m(n))return!1;const{anchor:r,focus:o}=n,i=r.getNode(),s=o.getNode(),u=e===C;if(!V(i)&&!l(i)||!V(s)&&!l(s))return!1;if(u){const e=te(s,o.offset);if(null!==e){const{node:t,offset:r}=e;f(t)?t.selectNext(0,0):n.setTextNodeRange(t,r,t,r)}else s.getParentOrThrow().selectStart()}else{ne(s).select()}return t.preventDefault(),t.stopPropagation(),!0}function he(e,t){if(!e.hasNodes([A,Q]))throw new Error("CodeHighlightPlugin: CodeNode or CodeHighlightNode not registered on editor");return null==t&&(t=ee),r(e.registerMutationListener(A,(t=>{e.update((()=>{for(const[n,r]of t)if("destroyed"!==r){const t=h(n);null!==t&&oe(t,e)}}))})),e.registerNodeTransform(A,(n=>se(n,e,t))),e.registerNodeTransform(g,(n=>re(n,e,t))),e.registerNodeTransform(Q,(n=>re(n,e,t))),e.registerCommand(T,(t=>{const n=function(e){const t=d();if(!m(t)||!ce(t))return null;const n=e?x:y,r=e?x:v;if(ae(t).length>1)return n;const o=t.getNodes()[0];if(D(o)||V(o)||l(o)||f(o)||P(170),D(o))return n;const i=Y(o),s=Z(o),u=t.anchor,c=t.focus;let a,g;return c.isBefore(u)?(a=c,g=u):(a=u,g=c),null!==i&&null!==s&&a.key===i.getKey()&&0===a.offset&&g.key===s.getKey()&&g.offset===s.getTextContentSize()?n:r}(t.shiftKey);return null!==n&&(t.preventDefault(),e.dispatchCommand(n,void 0),!0)}),j),e.registerCommand(v,(()=>!!ce(d())&&(N([u()]),!0)),j),e.registerCommand(y,(e=>ge(y)),j),e.registerCommand(x,(e=>ge(x)),j),e.registerCommand(_,(e=>fe(_,e)),j),e.registerCommand(S,(e=>fe(S,e)),j),e.registerCommand(b,(e=>pe(b,e)),j),e.registerCommand(C,(e=>pe(C,e)),j))}export{G as $createCodeHighlightNode,M as $createCodeNode,V as $isCodeHighlightNode,D as $isCodeNode,K as CODE_LANGUAGE_FRIENDLY_NAME_MAP,I as CODE_LANGUAGE_MAP,Q as CodeHighlightNode,A as CodeNode,F as DEFAULT_CODE_LANGUAGE,ee as PrismTokenizer,$ as getCodeLanguages,W as getDefaultCodeLanguage,ne as getEndOfCodeInLine,Y as getFirstCodeNodeOfLine,U as getLanguageFriendlyName,Z as getLastCodeNodeOfLine,te as getStartOfCodeInLine,q as normalizeCodeLang,he as registerCodeHighlighting};
package/package.json CHANGED
@@ -8,12 +8,12 @@
8
8
  "code"
9
9
  ],
10
10
  "license": "MIT",
11
- "version": "0.15.0",
11
+ "version": "0.16.1-nightly.20240610.0",
12
12
  "main": "LexicalCode.js",
13
13
  "types": "index.d.ts",
14
14
  "dependencies": {
15
- "@lexical/utils": "0.15.0",
16
- "lexical": "0.15.0",
15
+ "@lexical/utils": "0.16.1-nightly.20240610.0",
16
+ "lexical": "0.16.1-nightly.20240610.0",
17
17
  "prismjs": "^1.27.0"
18
18
  },
19
19
  "repository": {