react-code-compare
Version:
A simple and fast text diff viewer component
3 lines (2 loc) • 19.2 kB
JavaScript
var Je=Object.create;var ie=Object.defineProperty,_e=Object.defineProperties,Ue=Object.getOwnPropertyDescriptor,Ke=Object.getOwnPropertyDescriptors,Ye=Object.getOwnPropertyNames,ae=Object.getOwnPropertySymbols,qe=Object.getPrototypeOf,Ce=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable;var ye=(r,t,e)=>t in r?ie(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,N=(r,t)=>{for(var e in t||(t={}))Ce.call(t,e)&&ye(r,e,t[e]);if(ae)for(var e of ae(t))De.call(t,e)&&ye(r,e,t[e]);return r},j=(r,t)=>_e(r,Ke(t));var Se=(r,t)=>{var e={};for(var i in r)Ce.call(r,i)&&t.indexOf(i)<0&&(e[i]=r[i]);if(r!=null&&ae)for(var i of ae(r))t.indexOf(i)<0&&De.call(r,i)&&(e[i]=r[i]);return e};var Qe=(r,t)=>{for(var e in t)ie(r,e,{get:t[e],enumerable:!0})},Ne=(r,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ye(t))!Ce.call(r,n)&&n!==e&&ie(r,n,{get:()=>t[n],enumerable:!(i=Ue(t,n))||i.enumerable});return r};var U=(r,t,e)=>(e=r!=null?Je(qe(r)):{},Ne(t||!r||!r.__esModule?ie(e,"default",{value:r,enumerable:!0}):e,r)),Ze=r=>Ne(ie({},"__esModule",{value:!0}),r);var ot={};Qe(ot,{CodeCompareProvider:()=>be,ComparisonView:()=>Le,DiffMethod:()=>fe,default:()=>We,useCodeCompare:()=>ee});module.exports=Ze(ot);var H=require("react"),Ve=require("react/jsx-runtime");function he(r,t){return r?Array.isArray(r)?r.some(e=>he(e.value,t)):r.trim().includes(t):!1}var Be=(0,H.createContext)(null);function be({children:r}){let[t,e]=(0,H.useState)([]),[i,n]=(0,H.useState)([]),[o,a]=(0,H.useState)(void 0),d=()=>t.length>0?(e([]),!0):!1,l=f=>i.findIndex(g=>{if(g.type==="skipped")return!1;let{left:c,right:C}=g.data.line;return!!(c&&he(c.value,f)||C&&he(C.value,f))});return(0,Ve.jsx)(Be.Provider,{value:{resetCodeBlocks:d,getIndex:l,expandedBlocks:t,virtualizer:o,items:i,setExpandedBlocks:e,setVirtualizer:a,setItems:n},children:r})}function ee(){let r=(0,H.useContext)(Be);if(r===void 0)throw new Error("useCodeCompare must be used within a CodeCompareProvider");return r}var ze=U(require("memoize-one"));var ke=U(require("diff")),je=ke;var fe=(d=>(d.CHARS="diffChars",d.WORDS="diffWords",d.WORDS_WITH_SPACE="diffWordsWithSpace",d.LINES="diffLines",d.TRIMMED_LINES="diffTrimmedLines",d.SENTENCES="diffSentences",d.CSS="diffCss",d))(fe||{}),ve=r=>{let t=r.split(`
`);if(t.every(o=>!o))return t.length===2?[]:(t.pop(),t);let i=t[t.length-1],n=t[0];return i||t.pop(),n||t.shift(),t},et=(r,t,e="diffChars")=>{let i=je[e](r,t),n={left:[],right:[]};return i.forEach(({added:o,removed:a,value:d})=>{let l={};return o&&(l.type=1,l.value=d,n.right.push(l)),a&&(l.type=2,l.value=d,n.left.push(l)),!a&&!o&&(l.type=0,l.value=d,n.right.push(l),n.left.push(l)),l}),n},Ie=(r,t,e=!1,i="diffChars",n=0)=>{let o=ke.diffLines(r.trimRight(),t.trimRight(),{newlineIsToken:!0,ignoreWhitespace:!1,ignoreCase:!1}),a=n,d=n,l=[],f=0,g=[],c=[],C=(R,h,u,m,S)=>ve(R).map((p,x)=>{let b={},w={};if(!(c.includes(`${h}-${x}`)||S&&x!==0)){if(u||m)if(g.includes(f)||g.push(f),m){d+=1,b.lineNumber=d,b.type=2,b.value=p||" ";let M=o[h+1];if(M&&M.added&&ve(M.value)[x]){let{value:oe,lineNumber:I,type:Y}=C(M.value,h,!0,!1,!0)[0].right;if(c.push(`${h+1}-${x}`),w.lineNumber=I,w.type=Y,e)w.value=oe;else{let z=et(p,oe,i);w.value=z.right,b.value=z.left}}}else a+=1,w.lineNumber=a,w.type=1,w.value=p;else d+=1,a+=1,b.lineNumber=d,b.type=0,b.value=p,w.lineNumber=a,w.type=0,w.value=p;return f+=1,{right:w,left:b}}}).filter(Boolean);return o.forEach(({added:R,removed:h,value:u},m)=>{l=[...l,...C(u,m,R,h)]}),{lineInformation:l,diffLines:g}};var s=require("emotion");var Ee=(r,t=!1)=>{let de=r,{variables:e={}}=de,i=Se(de,["variables"]),n={light:N({diffViewerBackground:"#fff",diffViewerColor:"#212529",addedBackground:"#e6ffed",addedColor:"#24292e",removedBackground:"#ffeef0",removedColor:"#24292e",wordAddedBackground:"#acf2bd",wordRemovedBackground:"#fdb8c0",addedGutterBackground:"#cdffd8",removedGutterBackground:"#ffdce0",gutterBackground:"#f7f7f7",gutterBackgroundDark:"#f3f1f1",highlightBackground:"#fffbdd",highlightGutterBackground:"#fff5b1",codeFoldGutterBackground:"#dbedff",codeFoldBackground:"#f1f8ff",emptyLineBackground:"#fafbfc",gutterColor:"#212529",addedGutterColor:"#212529",removedGutterColor:"#212529",codeFoldContentColor:"#212529",diffViewerTitleBackground:"#fafbfc",diffViewerTitleColor:"#212529",diffViewerTitleBorderColor:"#eee"},e.light||{}),dark:N({diffViewerBackground:"#2e303c",diffViewerColor:"#FFF",addedBackground:"#044B53",addedColor:"white",removedBackground:"#632F34",removedColor:"white",wordAddedBackground:"#055d67",wordRemovedBackground:"#7d383f",addedGutterBackground:"#034148",removedGutterBackground:"#632b30",gutterBackground:"#2c2f3a",gutterBackgroundDark:"#262933",highlightBackground:"#2a3967",highlightGutterBackground:"#2d4077",codeFoldGutterBackground:"#21232b",codeFoldBackground:"#262831",emptyLineBackground:"#363946",gutterColor:"#464c67",addedGutterColor:"#8c8c8c",removedGutterColor:"#8c8c8c",codeFoldContentColor:"#555a7b",diffViewerTitleBackground:"#2f323e",diffViewerTitleColor:"#555a7b",diffViewerTitleBorderColor:"#353846"},e.dark||{})},o=t?n.dark:n.light,a=(0,s.css)({width:"100%",label:"content"}),d=(0,s.css)({[`.${a}`]:{width:"50%"},label:"split-view"}),l=(0,s.css)({backgroundColor:"inherit"}),f=(0,s.css)({backgroundColor:"inherit"}),g=(0,s.css)({width:"100%",background:o.diffViewerBackground,pre:{margin:0,whiteSpace:"pre-wrap",lineHeight:"25px"},label:"diff-container",borderCollapse:"collapse"}),c=(0,s.css)({color:o.codeFoldContentColor,label:"code-fold-content"}),C=(0,s.css)({color:o.diffViewerColor,label:"content-text"}),R=(0,s.css)({background:o.diffViewerTitleBackground,padding:10,borderBottom:`1px solid ${o.diffViewerTitleBorderColor}`,label:"title-block",":last-child":{borderLeft:`1px solid ${o.diffViewerTitleBorderColor}`},[`.${C}`]:{color:o.diffViewerTitleColor}}),h=(0,s.css)({color:o.gutterColor,label:"line-number"}),u=(0,s.css)({background:o.removedBackground,color:o.removedColor,pre:{color:o.removedColor},[`.${h}`]:{color:o.removedGutterColor},label:"diff-removed"}),m=(0,s.css)({background:o.addedBackground,color:o.addedColor,pre:{color:o.addedColor},[`.${h}`]:{color:o.addedGutterColor},label:"diff-added"}),S=(0,s.css)({padding:2,display:"inline-flex",borderRadius:1,label:"word-diff"}),L=(0,s.css)({background:o.wordAddedBackground,label:"word-added"}),p=(0,s.css)({background:o.wordRemovedBackground,label:"word-removed"}),x=(0,s.css)({backgroundColor:o.codeFoldGutterBackground,label:"code-fold-gutter"}),b=(0,s.css)({backgroundColor:o.codeFoldBackground,height:40,fontSize:14,fontWeight:700,label:"code-fold",a:{textDecoration:"underline !important",cursor:"pointer",pre:{display:"inline"}}}),w=(0,s.css)({backgroundColor:o.emptyLineBackground,label:"empty-line"}),M=(0,s.css)({width:o.xOuterSpacerWidth,display:"block"}),ne=(0,s.css)({width:o.xCenterSpacerWidth,display:"block"}),oe=(0,s.css)({width:25,minWidth:25,paddingLeft:10,paddingRight:10,userSelect:"none",verticalAlign:"middle",label:"marker",[`&.${m}`]:{pre:{color:o.addedColor}},[`&.${u}`]:{pre:{color:o.removedColor}}}),I=(0,s.css)({background:o.highlightBackground,label:"highlighted-line"}),Y=(0,s.css)({label:"highlighted-gutter"}),z=(0,s.css)({userSelect:"none",minWidth:50,padding:"0 10px",label:"gutter",textAlign:"right",verticalAlign:"middle",background:o.gutterBackground,"&:hover":{cursor:"pointer",background:o.gutterBackgroundDark,pre:{opacity:1}},pre:{opacity:.5},[`&.${m}`]:{background:o.addedGutterBackground},[`&.${u}`]:{background:o.removedGutterBackground},[`&.${Y}`]:{background:o.highlightGutterBackground,"&:hover":{background:o.highlightGutterBackground}}}),le=(0,s.css)({"&:hover":{background:o.gutterBackground,cursor:"initial"},label:"empty-gutter"}),me=(0,s.css)({verticalAlign:"baseline",label:"line"}),A={diffContainer:g,splitCellLeft:l,splitCellRight:f,highlightedGutter:Y,highlightedLine:I,diffRemoved:u,diffAdded:m,splitView:d,marker:oe,gutter:z,line:me,wordDiff:S,wordAdded:L,wordRemoved:p,codeFoldGutter:x,codeFold:b,emptyGutter:le,emptyLine:w,lineNumber:h,contentText:C,content:a,codeFoldContent:c,titleBlock:R,xCenterSpacer:ne,xOuterSpacer:M},q=Object.keys(i).reduce((Q,P)=>j(N({},Q),{[P]:(0,s.css)(i[P])}),{});return Object.keys(A).reduce((Q,P)=>j(N({},Q),{[P]:q[P]?(0,s.cx)(A[P],q[P]):A[P]}),{})};var pe=require("react"),Fe=require("@tanstack/react-virtual"),Ge=U(require("classnames"));var Ae=U(require("classnames"));var Te=U(require("classnames")),Oe=require("react/jsx-runtime");function E({className:r,styles:t,children:e,index:i,rowRef:n}){return(0,Oe.jsx)("tr",{className:(0,Te.default)(t.line,r),ref:n,"data-index":i,children:e})}var k=require("react/jsx-runtime");function ce({splitView:r,xSpacer:t,onBlockClickProxy:e,codeFoldMessageRenderer:i,hideLineNumbers:n,styles:o,num:a,blockNumber:d,leftBlockLineNumber:l,rightBlockLineNumber:f,rowIndex:g,rowRef:c}){let C=i?i(a,l,f):(0,k.jsx)("pre",{className:o.codeFoldContent,children:`Expand ${a} lines ...`}),R=(0,k.jsx)("td",{children:(0,k.jsx)("a",{onClick:e(d),tabIndex:0,children:C})}),h=!r&&!n;return(0,k.jsxs)(E,{className:o.codeFold,styles:o,rowRef:c,index:g,children:[t&&(0,k.jsx)("td",{className:o.xSpacer}),!n&&(0,k.jsx)("td",{className:o.codeFoldGutter}),(0,k.jsx)("td",{className:(0,Ae.default)({[o.codeFoldGutter]:h})}),h?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("td",{}),R]}):(0,k.jsxs)(k.Fragment,{children:[R,(0,k.jsx)("td",{})]}),(0,k.jsx)("td",{}),(0,k.jsx)("td",{}),t&&(0,k.jsx)("td",{className:o.xSpacer})]})}var T={LEFT:"L",RIGHT:"R"};var te=U(require("classnames"));var D=require("react/jsx-runtime"),tt=(r,t,e)=>r.map((i,n)=>(0,D.jsx)("span",{className:(0,te.default)(t.wordDiff,{[t.wordAdded]:i.type===1,[t.wordRemoved]:i.type===2}),children:e?e(i.value):i.value},n));function F({line:r,prefix:t,styles:e,highlightLines:i,onLineNumberClickProxy:n,splitPosition:o,additionalOptions:a={},diffViewOptions:d}){let{lineNumber:l,type:f,value:g}=r,{additionalLineNumber:c,additionalPrefix:C}=a,{renderContent:R,hideLineNumbers:h,splitView:u}=d,m=`${t}-${l}`,S=`${C}-${c}`,L=i.includes(m)||i.includes(S),p=f===1,x=f===2,b;return Array.isArray(g)?b=tt(g,e,R):R?b=R(g):b=g,(0,D.jsxs)(D.Fragment,{children:[!h&&(0,D.jsx)("td",{onClick:l&&n(m),className:(0,te.default)(e.gutter,{[e.emptyGutter]:!l,[e.diffAdded]:p,[e.diffRemoved]:x,[e.highlightedGutter]:L,[e.splitCellLeft]:u&&o==="left"||!u,[e.splitCellRight]:u&&o==="right"}),"data-line-number":m,children:(0,D.jsx)("pre",{className:e.lineNumber,children:l})}),!u&&!h&&(0,D.jsx)("td",{onClick:c&&n(S),"data-line-number":S,className:(0,te.default)(e.gutter,{[e.emptyGutter]:!c,[e.diffAdded]:p,[e.diffRemoved]:x,[e.highlightedGutter]:L,[e.splitCellLeft]:u&&o==="left",[e.splitCellRight]:u&&o==="right",[e.splitCellRight]:u&&o==="right"||!u}),children:(0,D.jsx)("pre",{className:e.lineNumber,children:c})}),(0,D.jsx)("td",{className:(0,te.default)(e.marker,{[e.emptyLine]:!b,[e.diffAdded]:p,[e.diffRemoved]:x,[e.highlightedLine]:L,[e.splitCellLeft]:u&&o==="left",[e.splitCellRight]:u&&o==="right",[e.splitCellRight]:u&&o==="right"||!u}),children:(0,D.jsxs)("pre",{children:[p&&"+",x&&"-"]})}),(0,D.jsx)("td",{className:(0,te.default)(e.content,{[e.emptyLine]:!b,[e.diffAdded]:p,[e.diffRemoved]:x,[e.highlightedLine]:L,[e.splitCellLeft]:u&&o==="left",[e.splitCellRight]:u&&o==="right",[e.splitCellRight]:u&&o==="right"||!u}),children:(0,D.jsx)("pre",{className:e.contentText,children:b})})]})}var v=require("react/jsx-runtime");function se({lineInformation:r,order:t,styles:e,highlightLines:i,onLineNumberClickProxy:n,diffViewOptions:o,rowRef:a,rowIndex:d}){let{left:l,right:f}=r;if(l.type===2&&f.type===1){if(t==="left")return(0,v.jsx)(E,{styles:e,rowRef:a,index:d,children:(0,v.jsx)(F,{line:l,prefix:T.LEFT,styles:e,highlightLines:i,onLineNumberClickProxy:n,diffViewOptions:o})});if(t==="right")return(0,v.jsx)(E,{styles:e,rowRef:a,index:d,children:(0,v.jsx)(F,{line:j(N({},f),{lineNumber:null}),prefix:T.RIGHT,styles:e,highlightLines:i,onLineNumberClickProxy:n,additionalOptions:{additionalLineNumber:f.lineNumber},diffViewOptions:o})})}if(l.type===2)return(0,v.jsx)(E,{styles:e,rowRef:a,index:d,children:(0,v.jsx)(F,{line:l,prefix:T.LEFT,styles:e,highlightLines:i,onLineNumberClickProxy:n,diffViewOptions:o})});if(l.type===0)return(0,v.jsx)(E,{styles:e,rowRef:a,index:d,children:(0,v.jsx)(F,{line:l,prefix:T.LEFT,styles:e,highlightLines:i,onLineNumberClickProxy:n,additionalOptions:{additionalLineNumber:f.lineNumber,additionalPrefix:T.RIGHT},diffViewOptions:o})});if(f.type===1)return(0,v.jsx)(E,{styles:e,rowRef:a,index:d,children:(0,v.jsx)(F,{line:j(N({},f),{lineNumber:null}),prefix:T.RIGHT,styles:e,highlightLines:i,onLineNumberClickProxy:n,additionalOptions:{additionalLineNumber:f.lineNumber},diffViewOptions:o})})}var $=require("react/jsx-runtime");function ue({lineInformation:r,styles:t,xSpacer:e,highlightLines:i,onLineNumberClickProxy:n,diffViewOptions:o,rowIndex:a,rowRef:d}){let{left:l,right:f}=r;return(0,$.jsxs)(E,{styles:t,rowRef:d,index:a,children:[e&&(0,$.jsx)("td",{className:t.xOuterSpacer}),(0,$.jsx)(F,{line:l,prefix:T.LEFT,styles:t,highlightLines:i,onLineNumberClickProxy:n,diffViewOptions:o,splitPosition:"left"}),e&&(0,$.jsx)("td",{className:t.xCenterSpacer}),(0,$.jsx)(F,{line:f,prefix:T.RIGHT,styles:t,highlightLines:i,onLineNumberClickProxy:n,diffViewOptions:o,splitPosition:"right"}),e&&(0,$.jsx)("td",{className:t.xOuterSpacer})]})}var O=require("react/jsx-runtime");function Me({title:r,items:t,rowsKey:e,styles:i,xSpacer:n,parentRef:o,splitView:a,hideLineNumbers:d,onBlockClickProxy:l,codeFoldMessageRenderer:f,highlightLines:g,onLineNumberClickProxy:c,diffViewOptions:C,virtualizerOptions:R}){let{setVirtualizer:h,setItems:u}=ee(),m=(0,Fe.useVirtualizer)(N({count:t.length,getScrollElement:()=>o.current},R||{}));(0,pe.useEffect)(()=>{u(t)},[e]),(0,pe.useEffect)(()=>{h(m)},[m]),(0,pe.useEffect)(()=>{m.measure()},[a]);let S=m.getVirtualItems();return t.length===0?null:(0,O.jsxs)("table",{className:(0,Ge.default)(i.diffContainer,{[i.splitView]:a}),style:{height:m.getTotalSize(),width:"100%",position:"relative"},children:[a?(0,O.jsxs)("colgroup",{children:[(0,O.jsx)("col",{span:3,className:"left"}),(0,O.jsx)("col",{span:3,className:"right"})]}):void 0,(0,O.jsxs)("tbody",{style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${S[0].start}px)`},children:[r,S.map(L=>{let p=t[L.index];return p.type==="skipped"?(0,O.jsx)(ce,{splitView:a,onBlockClickProxy:l,codeFoldMessageRenderer:f,hideLineNumbers:d,styles:i,xSpacer:n,num:p.data.num,blockNumber:p.data.blockNumber,leftBlockLineNumber:p.data.leftBlockLineNumber,rightBlockLineNumber:p.data.rightBlockLineNumber,rowRef:m.measureElement,rowIndex:L.index},L.key):p.type==="split"?(0,O.jsx)(ue,{lineInformation:p.data.line,styles:i,xSpacer:n,highlightLines:g,onLineNumberClickProxy:c,diffViewOptions:C,rowRef:m.measureElement,rowIndex:L.index},L.key):p.type==="unified"?(0,O.jsx)(se,{lineInformation:p.data.line,order:p.data.order,styles:i,highlightLines:g,onLineNumberClickProxy:c,diffViewOptions:C,rowRef:m.measureElement,rowIndex:L.index},L.key):null})]})]})}var He=U(require("classnames"));var K=require("react/jsx-runtime");function $e({title:r,items:t,styles:e,xSpacer:i,splitView:n,hideLineNumbers:o,onBlockClickProxy:a,codeFoldMessageRenderer:d,highlightLines:l,onLineNumberClickProxy:f,diffViewOptions:g}){return(0,K.jsx)("table",{className:(0,He.default)(e.diffContainer,{[e.splitView]:n}),children:(0,K.jsxs)("tbody",{children:[r,t.map((c,C)=>c.type==="skipped"?(0,K.jsx)(ce,{splitView:n,xSpacer:i,onBlockClickProxy:a,codeFoldMessageRenderer:d,hideLineNumbers:o,styles:e,num:c.data.num,blockNumber:c.data.blockNumber,leftBlockLineNumber:c.data.leftBlockLineNumber,rightBlockLineNumber:c.data.rightBlockLineNumber},C):c.type==="split"?(0,K.jsx)(ue,{lineInformation:c.data.line,styles:e,xSpacer:i,highlightLines:l,onLineNumberClickProxy:f,diffViewOptions:g},C):c.type==="unified"?(0,K.jsx)(se,{lineInformation:c.data.line,order:c.data.order,styles:e,highlightLines:l,onLineNumberClickProxy:f,diffViewOptions:g},C):null)]})})}var G=require("react/jsx-runtime"),B={oldValue:"",newValue:"",splitView:!0,highlightLines:[],disableWordDiff:!1,compareMethod:"diffChars",styles:{},hideLineNumbers:!1,extraLinesSurroundingDiff:3,showDiffOnly:!0,useDarkTheme:!1,linesOffset:0,xSpacer:!1};function Le(r){let{oldValue:t=B.oldValue,newValue:e=B.newValue,splitView:i=B.splitView,highlightLines:n=B.highlightLines,disableWordDiff:o=B.disableWordDiff,compareMethod:a=B.compareMethod,styles:d=B.styles,hideLineNumbers:l=B.hideLineNumbers,extraLinesSurroundingDiff:f=B.extraLinesSurroundingDiff,showDiffOnly:g=B.showDiffOnly,useDarkTheme:c=B.useDarkTheme,linesOffset:C=B.linesOffset,leftTitle:R,rightTitle:h,renderContent:u,onLineNumberClick:m,onDiffExpand:S,codeFoldMessageRenderer:L,useVirtual:p,parentRef:x,virtualizerOptions:b,xSpacer:w}=r,{expandedBlocks:M,setExpandedBlocks:ne}=ee(),I=(0,ze.default)(Ee)(d,c),Y=y=>{ne(W=>{let Z=[...W,y];return S&&S(Z),Z})},z=y=>m?W=>m(y,W):()=>{},le=y=>W=>Y(y),me=()=>{let{lineInformation:y,diffLines:W}=Ie(t,e,o,a,C),Z=f<0?0:f,X=[],J=[];return y.forEach((V,_)=>{let re=W[0],ge=re-_;if(g&&(ge===-Z&&(X=[],W.shift()),V.left.type===0&&(ge>Z||typeof re=="undefined")&&!M.includes(re))){if(X.push(_+1),_===y.length-1&&X.length>1){J.push({type:"skipped",data:{num:X.length,blockNumber:re,leftBlockLineNumber:V.left.lineNumber,rightBlockLineNumber:V.right.lineNumber}});return}return}if(ge===Z&&X.length>0){let{length:Xe}=X;X=[],J.push({type:"skipped",data:{num:Xe,blockNumber:re,leftBlockLineNumber:V.left.lineNumber,rightBlockLineNumber:V.right.lineNumber}});return}if(i){J.push({type:"split",data:{line:V,index:_}});return}if(V.left.type===2&&V.right.type===1){J.push({type:"unified",data:{order:"left",line:V,index:_}}),J.push({type:"unified",data:{order:"right",line:V,index:_}});return}J.push({type:"unified",data:{line:V,index:_}})}),J};if(typeof t!="string"||typeof e!="string")throw Error('"oldValue" and "newValue" should be strings');let A=me().filter(Boolean),q={skipped:A.filter(y=>y.type==="skipped").length,split:A.filter(y=>y.type==="split").length,unified:A.filter(y=>y.type==="unified").length},de=`skipped-${q.skipped}|split-${q.split}|unified-${q.unified}`,Q=l?2:3,we=(R||h)&&(0,G.jsxs)("tr",{children:[(0,G.jsx)("td",{colSpan:i?Q:l?2:4,className:I.titleBlock,children:(0,G.jsx)("pre",{className:I.contentText,children:R})}),i&&(0,G.jsx)("td",{colSpan:Q,className:I.titleBlock,children:(0,G.jsx)("pre",{className:I.contentText,children:h})})]}),xe={splitView:i,hideLineNumbers:l,renderContent:u};return p&&x?(0,G.jsx)(Me,{title:we,items:A,rowsKey:de,styles:I,xSpacer:w,splitView:i,hideLineNumbers:l,highlightLines:n,onBlockClickProxy:le,onLineNumberClickProxy:z,codeFoldMessageRenderer:L,parentRef:x,diffViewOptions:xe,virtualizerOptions:b}):(0,G.jsx)($e,{title:we,items:A,styles:I,xSpacer:w,splitView:i,hideLineNumbers:l,highlightLines:n,onBlockClickProxy:le,onLineNumberClickProxy:z,codeFoldMessageRenderer:L,diffViewOptions:xe})}var Re=require("react/jsx-runtime");function We(r){return(0,Re.jsx)(be,{children:(0,Re.jsx)(Le,N({},r))})}0&&(module.exports={CodeCompareProvider,ComparisonView,DiffMethod,useCodeCompare});