webmux 0.27.1 → 0.28.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 +8 -2
- package/backend/dist/server.js +6712 -518
- package/bin/webmux.js +5093 -94
- package/frontend/dist/assets/DiffDialog-1oCJ0NIo.js +112 -0
- package/frontend/dist/assets/DiffDialog-BbPrhD_U.css +1 -0
- package/frontend/dist/assets/index-BibFvRPy.js +33 -0
- package/frontend/dist/assets/index-D4MJ4sZs.css +1 -0
- package/frontend/dist/assets/vendor-xterm-DYP7pi_n.css +32 -0
- package/frontend/dist/assets/vendor-xterm-DvXGiZvM.js +9 -0
- package/frontend/dist/index.html +4 -2
- package/package.json +8 -4
- package/frontend/dist/assets/index-CBdl44Z_.css +0 -32
- package/frontend/dist/assets/index-kg2aNK8N.js +0 -151
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import{t as ue,a as rt,b as Be,g as we,r as at,c as lt,N as ot,d as dt,p as ct,e as ft,s as de,f as ut,u as Re,h as Y,i as ht,j as pt,k as D,B as bt,l as We,m as ee,n as X,o as ye,q as mt,v as gt,w as Q,x as ce,C as vt,y as Ee,z as Se,A as wt,D as Le,E as yt,F as se,G as xt}from"./index-BibFvRPy.js";import"./vendor-xterm-DvXGiZvM.js";function Tt(s,n,t=!1,e=!1,i=!1,o=!1){var r=s,f="";if(t)var c=s;ue(()=>{var u=rt;if(f!==(f=n()??"")){if(t){u.nodes=null,c.innerHTML=f,f!==""&&Be(we(c),c.lastChild);return}if(u.nodes!==null&&(at(u.nodes.start,u.nodes.end),u.nodes=null),f!==""){var g=e?ot:i?dt:void 0,x=lt(e?"svg":i?"math":"template",g);x.innerHTML=f;var S=e||i?x:x.content;if(Be(we(S),S.lastChild),e||i)for(;we(S);)r.before(we(S));else r.before(S)}}})}var A;(function(s){s.INSERT="insert",s.DELETE="delete",s.CONTEXT="context"})(A||(A={}));const Nt={LINE_BY_LINE:"line-by-line"},Ct={NONE:"none"},Et={WORD:"word"};var he;(function(s){s.AUTO="auto",s.DARK="dark",s.LIGHT="light"})(he||(he={}));const St=["-","[","]","/","{","}","(",")","*","+","?",".","\\","^","$","|"],Lt=RegExp("["+St.join("\\")+"]","g");function Dt(s){return s.replace(Lt,"\\$&")}function je(s){return s&&s.replace(/\\/g,"/")}function _t(s){let n,t,e,i=0;for(n=0,e=s.length;n<e;n++)t=s.charCodeAt(n),i=(i<<5)-i+t,i|=0;return i}function Je(s){const n=s.length;let t=-1/0;for(let e=0;e<n;e++)t=Math.max(t,s[e]);return t}function ke(s,n){const t=s.split(".");return t.length>1?t[t.length-1]:n}function ze(s,n){return n.reduce((t,e)=>t||s.startsWith(e),!1)}const Ue=["a/","b/","i/","w/","c/","o/"];function ae(s,n,t){const e=t!==void 0?[...Ue,t]:Ue,i=n?new RegExp(`^${Dt(n)} "?(.+?)"?$`):new RegExp('^"?(.+?)"?$'),[,o=""]=i.exec(s)||[],r=e.find(c=>o.indexOf(c)===0);return(r?o.slice(r.length):o).replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/,"")}function Pt(s,n){return ae(s,"---",n)}function It(s,n){return ae(s,"+++",n)}function Mt(s,n={}){const t=[];let e=null,i=null,o=null,r=null,f=null,c=null,u=null;const g="--- ",x="+++ ",S="@@",a=/^old mode (\d{6})/,d=/^new mode (\d{6})/,m=/^deleted file mode (\d{6})/,p=/^new file mode (\d{6})/,y=/^copy from "?(.+)"?/,N=/^copy to "?(.+)"?/,T=/^rename from "?(.+)"?/,P=/^rename to "?(.+)"?/,L=/^similarity index (\d+)%/,I=/^dissimilarity index (\d+)%/,ie=/^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/,l=/^Binary files (.*) and (.*) differ/,h=/^GIT binary patch/,w=/^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/,C=/^mode (\d{6}),(\d{6})\.\.(\d{6})/,M=/^new file mode (\d{6})/,V=/^deleted file mode (\d{6}),(\d{6})/,k=s.replace(/\/g,"").replace(/\r\n?/g,`
|
|
2
|
+
`).split(`
|
|
3
|
+
`);function E(){i!==null&&e!==null&&(e.blocks.push(i),i=null)}function R(){e!==null&&(!e.oldName&&c!==null&&(e.oldName=c),!e.newName&&u!==null&&(e.newName=u),e.newName&&(t.push(e),e=null)),c=null,u=null}function $(){E(),R(),e={blocks:[],deletedLines:0,addedLines:0}}function j(b){E();let _;e!==null&&((_=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(b))?(e.isCombined=!1,o=parseInt(_[1],10),f=parseInt(_[2],10)):(_=/^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(b))?(e.isCombined=!0,o=parseInt(_[1],10),r=parseInt(_[2],10),f=parseInt(_[3],10)):(b.startsWith(S)&&console.error("Failed to parse lines, starting in 0!"),o=0,f=0,e.isCombined=!1)),i={lines:[],oldStartLine:o,oldStartLine2:r,newStartLine:f,header:b}}function O(b){if(e===null||i===null||o===null||f===null)return;const _={content:b},v=e.isCombined?["+ "," +","++"]:["+"],z=e.isCombined?["- "," -","--"]:["-"];ze(b,v)?(e.addedLines++,_.type=A.INSERT,_.oldNumber=void 0,_.newNumber=f++):ze(b,z)?(e.deletedLines++,_.type=A.DELETE,_.oldNumber=o++,_.newNumber=void 0):(_.type=A.CONTEXT,_.oldNumber=o++,_.newNumber=f++),i.lines.push(_)}function q(b,_){let v=_;for(;v<k.length-3;){if(b.startsWith("diff"))return!1;if(k[v].startsWith(g)&&k[v+1].startsWith(x)&&k[v+2].startsWith(S))return!0;v++}return!1}return k.forEach((b,_)=>{if(!b||b.startsWith("*"))return;let v;const z=k[_-1],le=k[_+1],be=k[_+2];if(b.startsWith("diff --git")||b.startsWith("diff --combined")){if($(),(v=/^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/.exec(b))&&(c=ae(v[1],void 0,n.dstPrefix),u=ae(v[2],void 0,n.srcPrefix)),e===null)throw new Error("Where is my file !!!");e.isGitDiff=!0;return}if(b.startsWith("Binary files")&&!(e!=null&&e.isGitDiff)){if($(),(v=/^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/.exec(b))&&(c=ae(v[1],void 0,n.dstPrefix),u=ae(v[2],void 0,n.srcPrefix)),e===null)throw new Error("Where is my file !!!");e.isBinary=!0;return}if((!e||!e.isGitDiff&&e&&b.startsWith(g)&&le.startsWith(x)&&be.startsWith(S))&&$(),e!=null&&e.isTooBig)return;if(e&&(typeof n.diffMaxChanges=="number"&&e.addedLines+e.deletedLines>n.diffMaxChanges||typeof n.diffMaxLineLength=="number"&&b.length>n.diffMaxLineLength)){e.isTooBig=!0,e.addedLines=0,e.deletedLines=0,e.blocks=[],i=null;const oe=typeof n.diffTooBigMessage=="function"?n.diffTooBigMessage(t.length):"Diff too big to be displayed";j(oe);return}if(b.startsWith(g)&&le.startsWith(x)||b.startsWith(x)&&z.startsWith(g)){if(e&&!e.oldName&&b.startsWith("--- ")&&(v=Pt(b,n.srcPrefix))){e.oldName=v,e.language=ke(e.oldName,e.language);return}if(e&&!e.newName&&b.startsWith("+++ ")&&(v=It(b,n.dstPrefix))){e.newName=v,e.language=ke(e.newName,e.language);return}}if(e&&(b.startsWith(S)||e.isGitDiff&&e.oldName&&e.newName&&!i)){j(b);return}if(i&&(b.startsWith("+")||b.startsWith("-")||b.startsWith(" "))){O(b);return}const re=!q(b,_);if(e===null)throw new Error("Where is my file !!!");(v=a.exec(b))?e.oldMode=v[1]:(v=d.exec(b))?e.newMode=v[1]:(v=m.exec(b))?(e.deletedFileMode=v[1],e.isDeleted=!0):(v=p.exec(b))?(e.newFileMode=v[1],e.isNew=!0):(v=y.exec(b))?(re&&(e.oldName=v[1]),e.isCopy=!0):(v=N.exec(b))?(re&&(e.newName=v[1]),e.isCopy=!0):(v=T.exec(b))?(re&&(e.oldName=v[1]),e.isRename=!0):(v=P.exec(b))?(re&&(e.newName=v[1]),e.isRename=!0):(v=l.exec(b))?(e.isBinary=!0,e.oldName=ae(v[1],void 0,n.srcPrefix),e.newName=ae(v[2],void 0,n.dstPrefix),j("Binary file")):h.test(b)?(e.isBinary=!0,j(b)):(v=L.exec(b))?e.unchangedPercentage=parseInt(v[1],10):(v=I.exec(b))?e.changedPercentage=parseInt(v[1],10):(v=ie.exec(b))?(e.checksumBefore=v[1],e.checksumAfter=v[2],v[3]&&(e.mode=v[3])):(v=w.exec(b))?(e.checksumBefore=[v[2],v[3]],e.checksumAfter=v[1]):(v=C.exec(b))?(e.oldMode=[v[2],v[3]],e.newMode=v[1]):(v=M.exec(b))?(e.newFileMode=v[1],e.isNew=!0):(v=V.exec(b))&&(e.deletedFileMode=v[1],e.isDeleted=!0)}),E(),R(),t}class Qe{diff(n,t,e={}){let i;typeof e=="function"?(i=e,e={}):"callback"in e&&(i=e.callback);const o=this.castInput(n,e),r=this.castInput(t,e),f=this.removeEmpty(this.tokenize(o,e)),c=this.removeEmpty(this.tokenize(r,e));return this.diffWithOptionsObj(f,c,e,i)}diffWithOptionsObj(n,t,e,i){var o;const r=N=>{if(N=this.postProcess(N,e),i){setTimeout(function(){i(N)},0);return}else return N},f=t.length,c=n.length;let u=1,g=f+c;e.maxEditLength!=null&&(g=Math.min(g,e.maxEditLength));const x=(o=e.timeout)!==null&&o!==void 0?o:1/0,S=Date.now()+x,a=[{oldPos:-1,lastComponent:void 0}];let d=this.extractCommon(a[0],t,n,0,e);if(a[0].oldPos+1>=c&&d+1>=f)return r(this.buildValues(a[0].lastComponent,t,n));let m=-1/0,p=1/0;const y=()=>{for(let N=Math.max(m,-u);N<=Math.min(p,u);N+=2){let T;const P=a[N-1],L=a[N+1];P&&(a[N-1]=void 0);let I=!1;if(L){const l=L.oldPos-N;I=L&&0<=l&&l<f}const ie=P&&P.oldPos+1<c;if(!I&&!ie){a[N]=void 0;continue}if(!ie||I&&P.oldPos<L.oldPos?T=this.addToPath(L,!0,!1,0,e):T=this.addToPath(P,!1,!0,1,e),d=this.extractCommon(T,t,n,N,e),T.oldPos+1>=c&&d+1>=f)return r(this.buildValues(T.lastComponent,t,n))||!0;a[N]=T,T.oldPos+1>=c&&(p=Math.min(p,N-1)),d+1>=f&&(m=Math.max(m,N+1))}u++};if(i)(function N(){setTimeout(function(){if(u>g||Date.now()>S)return i(void 0);y()||N()},0)})();else for(;u<=g&&Date.now()<=S;){const N=y();if(N)return N}}addToPath(n,t,e,i,o){const r=n.lastComponent;return r&&!o.oneChangePerToken&&r.added===t&&r.removed===e?{oldPos:n.oldPos+i,lastComponent:{count:r.count+1,added:t,removed:e,previousComponent:r.previousComponent}}:{oldPos:n.oldPos+i,lastComponent:{count:1,added:t,removed:e,previousComponent:r}}}extractCommon(n,t,e,i,o){const r=t.length,f=e.length;let c=n.oldPos,u=c-i,g=0;for(;u+1<r&&c+1<f&&this.equals(e[c+1],t[u+1],o);)u++,c++,g++,o.oneChangePerToken&&(n.lastComponent={count:1,previousComponent:n.lastComponent,added:!1,removed:!1});return g&&!o.oneChangePerToken&&(n.lastComponent={count:g,previousComponent:n.lastComponent,added:!1,removed:!1}),n.oldPos=c,u}equals(n,t,e){return e.comparator?e.comparator(n,t):n===t||!!e.ignoreCase&&n.toLowerCase()===t.toLowerCase()}removeEmpty(n){const t=[];for(let e=0;e<n.length;e++)n[e]&&t.push(n[e]);return t}castInput(n,t){return n}tokenize(n,t){return Array.from(n)}join(n){return n.join("")}postProcess(n,t){return n}get useLongestToken(){return!1}buildValues(n,t,e){const i=[];let o;for(;n;)i.push(n),o=n.previousComponent,delete n.previousComponent,n=o;i.reverse();const r=i.length;let f=0,c=0,u=0;for(;f<r;f++){const g=i[f];if(g.removed)g.value=this.join(e.slice(u,u+g.count)),u+=g.count;else{if(!g.added&&this.useLongestToken){let x=t.slice(c,c+g.count);x=x.map(function(S,a){const d=e[u+a];return d.length>S.length?d:S}),g.value=this.join(x)}else g.value=this.join(t.slice(c,c+g.count));c+=g.count,g.added||(u+=g.count)}}return i}}class Ot extends Qe{}const Ft=new Ot;function Ht(s,n,t){return Ft.diff(s,n,t)}const Ge="a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}";class At extends Qe{tokenize(n){const t=new RegExp(`(\\r?\\n)|[${Ge}]+|[^\\S\\n\\r]+|[^${Ge}]`,"ug");return n.match(t)||[]}}const Bt=new At;function Rt(s,n,t){return Bt.diff(s,n,t)}function Wt(s,n){if(s.length===0)return n.length;if(n.length===0)return s.length;const t=[];let e;for(e=0;e<=n.length;e++)t[e]=[e];let i;for(i=0;i<=s.length;i++)t[0][i]=i;for(e=1;e<=n.length;e++)for(i=1;i<=s.length;i++)n.charAt(e-1)===s.charAt(i-1)?t[e][i]=t[e-1][i-1]:t[e][i]=Math.min(t[e-1][i-1]+1,Math.min(t[e][i-1]+1,t[e-1][i]+1));return t[n.length][s.length]}function Me(s){return(n,t)=>{const e=s(n).trim(),i=s(t).trim();return Wt(e,i)/(e.length+i.length)}}function Oe(s){function n(e,i,o=new Map){let r=1/0,f;for(let c=0;c<e.length;++c)for(let u=0;u<i.length;++u){const g=JSON.stringify([e[c],i[u]]);let x;o.has(g)&&(x=o.get(g))||(x=s(e[c],i[u]),o.set(g,x)),x<r&&(r=x,f={indexA:c,indexB:u,score:r})}return f}function t(e,i,o=0,r=new Map){const f=n(e,i,r);if(!f||e.length+i.length<3)return[[e,i]];const c=e.slice(0,f.indexA),u=i.slice(0,f.indexB),g=[e[f.indexA]],x=[i[f.indexB]],S=f.indexA+1,a=f.indexB+1,d=e.slice(S),m=i.slice(a),p=t(c,u,o+1,r),y=t(g,x,o+1,r),N=t(d,m,o+1,r);let T=y;return(f.indexA>0||f.indexB>0)&&(T=p.concat(T)),(e.length>S||i.length>a)&&(T=T.concat(N)),T}return t}const G={INSERTS:"d2h-ins",DELETES:"d2h-del",CONTEXT:"d2h-cntx",INFO:"d2h-info",INSERT_CHANGES:"d2h-ins d2h-change",DELETE_CHANGES:"d2h-del d2h-change"},Te={matching:Ct.NONE,matchWordsThreshold:.25,maxLineLengthHighlight:1e4,diffStyle:Et.WORD,colorScheme:he.LIGHT},te="/",Ze=Me(s=>s.value),jt=Oe(Ze);function De(s){return s.indexOf("dev/null")!==-1}function kt(s){return s.replace(/(<ins[^>]*>((.|\n)*?)<\/ins>)/g,"")}function zt(s){return s.replace(/(<del[^>]*>((.|\n)*?)<\/del>)/g,"")}function xe(s){switch(s){case A.CONTEXT:return G.CONTEXT;case A.INSERT:return G.INSERTS;case A.DELETE:return G.DELETES}}function Fe(s){switch(s){case he.DARK:return"d2h-dark-color-scheme";case he.AUTO:return"d2h-auto-color-scheme";case he.LIGHT:default:return"d2h-light-color-scheme"}}function Ut(s){return s?2:1}function pe(s){return s.slice(0).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function ne(s,n,t=!0){const e=Ut(n);return{prefix:s.substring(0,e),content:t?pe(s.substring(e)):s.substring(e)}}function Ne(s){const n=je(s.oldName),t=je(s.newName);if(n!==t&&!De(n)&&!De(t)){const e=[],i=[],o=n.split(te),r=t.split(te),f=o.length,c=r.length;let u=0,g=f-1,x=c-1;for(;u<g&&u<x&&o[u]===r[u];)e.push(r[u]),u+=1;for(;g>u&&x>u&&o[g]===r[x];)i.unshift(r[x]),g-=1,x-=1;const S=e.join(te),a=i.join(te),d=o.slice(u,g+1).join(te),m=r.slice(u,x+1).join(te);return S.length&&a.length?S+te+"{"+d+" → "+m+"}"+te+a:S.length?S+te+"{"+d+" → "+m+"}":a.length?"{"+d+" → "+m+"}"+te+a:n+" → "+t}else return De(t)?n:t}function He(s){return`d2h-${_t(Ne(s)).toString().slice(-6)}`}function Ae(s){let n="file-changed";return s.isRename||s.isCopy?n="file-renamed":s.isNew?n="file-added":s.isDeleted?n="file-deleted":s.newName!==s.oldName&&(n="file-renamed"),n}function et(s,n,t,e={}){const{matching:i,maxLineLengthHighlight:o,matchWordsThreshold:r,diffStyle:f}=Object.assign(Object.assign({},Te),e),c=ne(s,t,!1),u=ne(n,t,!1);if(c.content.length>o||u.content.length>o)return{oldLine:{prefix:c.prefix,content:pe(c.content)},newLine:{prefix:u.prefix,content:pe(u.content)}};const g=f==="char"?Ht(c.content,u.content):Rt(c.content,u.content),x=[];if(f==="word"&&i==="words"){const a=g.filter(p=>p.removed),d=g.filter(p=>p.added);jt(d,a).forEach(p=>{p[0].length===1&&p[1].length===1&&Ze(p[0][0],p[1][0])<r&&(x.push(p[0][0]),x.push(p[1][0]))})}const S=g.reduce((a,d)=>{const m=d.added?"ins":d.removed?"del":null,p=x.indexOf(d)>-1?' class="d2h-change"':"",y=pe(d.value);return m!==null?`${a}<${m}${p}>${y}</${m}>`:`${a}${y}`},"");return{oldLine:{prefix:c.prefix,content:kt(S)},newLine:{prefix:u.prefix,content:zt(S)}}}const Ve="file-summary",Gt="icon",Vt={colorScheme:Te.colorScheme};class $t{constructor(n,t={}){this.hoganUtils=n,this.config=Object.assign(Object.assign({},Vt),t)}render(n){const t=n.map(e=>this.hoganUtils.render(Ve,"line",{fileHtmlId:He(e),oldName:e.oldName,newName:e.newName,fileName:Ne(e),deletedLines:"-"+e.deletedLines,addedLines:"+"+e.addedLines},{fileIcon:this.hoganUtils.template(Gt,Ae(e))})).join(`
|
|
4
|
+
`);return this.hoganUtils.render(Ve,"wrapper",{colorScheme:Fe(this.config.colorScheme),filesNumber:n.length,files:t})}}const tt=Object.assign(Object.assign({},Te),{renderNothingWhenEmpty:!1,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200}),me="generic",$e="line-by-line",Xt="icon",qt="tag";class Kt{constructor(n,t={}){this.hoganUtils=n,this.config=Object.assign(Object.assign({},tt),t)}render(n){const t=n.map(e=>{let i;return e.blocks.length?i=this.generateFileHtml(e):i=this.generateEmptyDiff(),this.makeFileDiffHtml(e,i)}).join(`
|
|
5
|
+
`);return this.hoganUtils.render(me,"wrapper",{colorScheme:Fe(this.config.colorScheme),content:t})}makeFileDiffHtml(n,t){if(this.config.renderNothingWhenEmpty&&Array.isArray(n.blocks)&&n.blocks.length===0)return"";const e=this.hoganUtils.template($e,"file-diff"),i=this.hoganUtils.template(me,"file-path"),o=this.hoganUtils.template(Xt,"file"),r=this.hoganUtils.template(qt,Ae(n));return e.render({file:n,fileHtmlId:He(n),diffs:t,filePath:i.render({fileDiffName:Ne(n)},{fileIcon:o,fileTag:r})})}generateEmptyDiff(){return this.hoganUtils.render(me,"empty-diff",{contentClass:"d2h-code-line",CSSLineClass:G})}generateFileHtml(n){const t=Oe(Me(e=>ne(e.content,n.isCombined).content));return n.blocks.map(e=>{let i=this.hoganUtils.render(me,"block-header",{CSSLineClass:G,blockHeader:n.isTooBig?e.header:pe(e.header),lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line"});return this.applyLineGroupping(e).forEach(([o,r,f])=>{if(r.length&&f.length&&!o.length)this.applyRematchMatching(r,f,t).map(([c,u])=>{const{left:g,right:x}=this.processChangedLines(n,n.isCombined,c,u);i+=g,i+=x});else if(o.length)o.forEach(c=>{const{prefix:u,content:g}=ne(c.content,n.isCombined);i+=this.generateSingleLineHtml(n,{type:G.CONTEXT,prefix:u,content:g,oldNumber:c.oldNumber,newNumber:c.newNumber})});else if(r.length||f.length){const{left:c,right:u}=this.processChangedLines(n,n.isCombined,r,f);i+=c,i+=u}else console.error("Unknown state reached while processing groups of lines",o,r,f)}),i}).join(`
|
|
6
|
+
`)}applyLineGroupping(n){const t=[];let e=[],i=[];for(let o=0;o<n.lines.length;o++){const r=n.lines[o];(r.type!==A.INSERT&&i.length||r.type===A.CONTEXT&&e.length>0)&&(t.push([[],e,i]),e=[],i=[]),r.type===A.CONTEXT?t.push([[r],[],[]]):r.type===A.INSERT&&e.length===0?t.push([[],[],[r]]):r.type===A.INSERT&&e.length>0?i.push(r):r.type===A.DELETE&&e.push(r)}return(e.length||i.length)&&(t.push([[],e,i]),e=[],i=[]),t}applyRematchMatching(n,t,e){const i=n.length*t.length,o=Je(n.concat(t).map(f=>f.content.length));return i<this.config.matchingMaxComparisons&&o<this.config.maxLineSizeInBlockForComparison&&(this.config.matching==="lines"||this.config.matching==="words")?e(n,t):[[n,t]]}processChangedLines(n,t,e,i){const o={right:"",left:""},r=Math.max(e.length,i.length);for(let f=0;f<r;f++){const c=e[f],u=i[f],g=c!==void 0&&u!==void 0?et(c.content,u.content,t,this.config):void 0,x=c!==void 0&&c.oldNumber!==void 0?Object.assign(Object.assign({},g!==void 0?{prefix:g.oldLine.prefix,content:g.oldLine.content,type:G.DELETE_CHANGES}:Object.assign(Object.assign({},ne(c.content,t)),{type:xe(c.type)})),{oldNumber:c.oldNumber,newNumber:c.newNumber}):void 0,S=u!==void 0&&u.newNumber!==void 0?Object.assign(Object.assign({},g!==void 0?{prefix:g.newLine.prefix,content:g.newLine.content,type:G.INSERT_CHANGES}:Object.assign(Object.assign({},ne(u.content,t)),{type:xe(u.type)})),{oldNumber:u.oldNumber,newNumber:u.newNumber}):void 0,{left:a,right:d}=this.generateLineHtml(n,x,S);o.left+=a,o.right+=d}return o}generateLineHtml(n,t,e){return{left:this.generateSingleLineHtml(n,t),right:this.generateSingleLineHtml(n,e)}}generateSingleLineHtml(n,t){if(t===void 0)return"";const e=this.hoganUtils.render($e,"numbers",{oldNumber:t.oldNumber||"",newNumber:t.newNumber||""});return this.hoganUtils.render(me,"line",{type:t.type,lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line",prefix:t.prefix===" "?" ":t.prefix,content:t.content,lineNumber:e,line:t,file:n})}}const nt=Object.assign(Object.assign({},Te),{renderNothingWhenEmpty:!1,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200}),ge="generic",Yt="side-by-side",Jt="icon",Qt="tag";class Zt{constructor(n,t={}){this.hoganUtils=n,this.config=Object.assign(Object.assign({},nt),t)}render(n){const t=n.map(e=>{let i;return e.blocks.length?i=this.generateFileHtml(e):i=this.generateEmptyDiff(),this.makeFileDiffHtml(e,i)}).join(`
|
|
7
|
+
`);return this.hoganUtils.render(ge,"wrapper",{colorScheme:Fe(this.config.colorScheme),content:t})}makeFileDiffHtml(n,t){if(this.config.renderNothingWhenEmpty&&Array.isArray(n.blocks)&&n.blocks.length===0)return"";const e=this.hoganUtils.template(Yt,"file-diff"),i=this.hoganUtils.template(ge,"file-path"),o=this.hoganUtils.template(Jt,"file"),r=this.hoganUtils.template(Qt,Ae(n));return e.render({file:n,fileHtmlId:He(n),diffs:t,filePath:i.render({fileDiffName:Ne(n)},{fileIcon:o,fileTag:r})})}generateEmptyDiff(){return{right:"",left:this.hoganUtils.render(ge,"empty-diff",{contentClass:"d2h-code-side-line",CSSLineClass:G})}}generateFileHtml(n){const t=Oe(Me(e=>ne(e.content,n.isCombined).content));return n.blocks.map(e=>{const i={left:this.makeHeaderHtml(e.header,n),right:this.makeHeaderHtml("")};return this.applyLineGroupping(e).forEach(([o,r,f])=>{if(r.length&&f.length&&!o.length)this.applyRematchMatching(r,f,t).map(([c,u])=>{const{left:g,right:x}=this.processChangedLines(n.isCombined,c,u);i.left+=g,i.right+=x});else if(o.length)o.forEach(c=>{const{prefix:u,content:g}=ne(c.content,n.isCombined),{left:x,right:S}=this.generateLineHtml({type:G.CONTEXT,prefix:u,content:g,number:c.oldNumber},{type:G.CONTEXT,prefix:u,content:g,number:c.newNumber});i.left+=x,i.right+=S});else if(r.length||f.length){const{left:c,right:u}=this.processChangedLines(n.isCombined,r,f);i.left+=c,i.right+=u}else console.error("Unknown state reached while processing groups of lines",o,r,f)}),i}).reduce((e,i)=>({left:e.left+i.left,right:e.right+i.right}),{left:"",right:""})}applyLineGroupping(n){const t=[];let e=[],i=[];for(let o=0;o<n.lines.length;o++){const r=n.lines[o];(r.type!==A.INSERT&&i.length||r.type===A.CONTEXT&&e.length>0)&&(t.push([[],e,i]),e=[],i=[]),r.type===A.CONTEXT?t.push([[r],[],[]]):r.type===A.INSERT&&e.length===0?t.push([[],[],[r]]):r.type===A.INSERT&&e.length>0?i.push(r):r.type===A.DELETE&&e.push(r)}return(e.length||i.length)&&(t.push([[],e,i]),e=[],i=[]),t}applyRematchMatching(n,t,e){const i=n.length*t.length,o=Je(n.concat(t).map(f=>f.content.length));return i<this.config.matchingMaxComparisons&&o<this.config.maxLineSizeInBlockForComparison&&(this.config.matching==="lines"||this.config.matching==="words")?e(n,t):[[n,t]]}makeHeaderHtml(n,t){return this.hoganUtils.render(ge,"block-header",{CSSLineClass:G,blockHeader:t!=null&&t.isTooBig?n:pe(n),lineClass:"d2h-code-side-linenumber",contentClass:"d2h-code-side-line"})}processChangedLines(n,t,e){const i={right:"",left:""},o=Math.max(t.length,e.length);for(let r=0;r<o;r++){const f=t[r],c=e[r],u=f!==void 0&&c!==void 0?et(f.content,c.content,n,this.config):void 0,g=f!==void 0&&f.oldNumber!==void 0?Object.assign(Object.assign({},u!==void 0?{prefix:u.oldLine.prefix,content:u.oldLine.content,type:G.DELETE_CHANGES}:Object.assign(Object.assign({},ne(f.content,n)),{type:xe(f.type)})),{number:f.oldNumber}):void 0,x=c!==void 0&&c.newNumber!==void 0?Object.assign(Object.assign({},u!==void 0?{prefix:u.newLine.prefix,content:u.newLine.content,type:G.INSERT_CHANGES}:Object.assign(Object.assign({},ne(c.content,n)),{type:xe(c.type)})),{number:c.newNumber}):void 0,{left:S,right:a}=this.generateLineHtml(g,x);i.left+=S,i.right+=a}return i}generateLineHtml(n,t){return{left:this.generateSingleHtml(n),right:this.generateSingleHtml(t)}}generateSingleHtml(n){const t="d2h-code-side-linenumber",e="d2h-code-side-line";return this.hoganUtils.render(ge,"line",{type:(n==null?void 0:n.type)||`${G.CONTEXT} d2h-emptyplaceholder`,lineClass:n!==void 0?t:`${t} d2h-code-side-emptyplaceholder`,contentClass:n!==void 0?e:`${e} d2h-code-side-emptyplaceholder`,prefix:(n==null?void 0:n.prefix)===" "?" ":n==null?void 0:n.prefix,content:n==null?void 0:n.content,lineNumber:n==null?void 0:n.number})}}var _e={},Xe;function en(){return Xe||(Xe=1,(function(s){(function(n){var t=/\S/,e=/\"/g,i=/\n/g,o=/\r/g,r=/\\/g,f=/\u2028/,c=/\u2029/;n.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},n.scan=function(h,w){var C=h.length,M=0,V=1,k=2,E=M,R=null,$=null,j="",O=[],q=!1,b=0,_=0,v="{{",z="}}";function le(){j.length>0&&(O.push({tag:"_t",text:new String(j)}),j="")}function be(){for(var J=!0,H=_;H<O.length;H++)if(J=n.tags[O[H].tag]<n.tags._v||O[H].tag=="_t"&&O[H].text.match(t)===null,!J)return!1;return J}function re(J,H){if(le(),J&&be())for(var W=_,U;W<O.length;W++)O[W].text&&((U=O[W+1])&&U.tag==">"&&(U.indent=O[W].text.toString()),O.splice(W,1));else H||O.push({tag:`
|
|
8
|
+
`});q=!1,_=O.length}function oe(J,H){var W="="+z,U=J.indexOf(W,H),Z=g(J.substring(J.indexOf("=",H)+1,U)).split(" ");return v=Z[0],z=Z[Z.length-1],U+W.length-1}for(w&&(w=w.split(" "),v=w[0],z=w[1]),b=0;b<C;b++)E==M?x(v,h,b)?(--b,le(),E=V):h.charAt(b)==`
|
|
9
|
+
`?re(q):j+=h.charAt(b):E==V?(b+=v.length-1,$=n.tags[h.charAt(b+1)],R=$?h.charAt(b+1):"_v",R=="="?(b=oe(h,b),E=M):($&&b++,E=k),q=b):x(z,h,b)?(O.push({tag:R,n:g(j),otag:v,ctag:z,i:R=="/"?q-v.length:b+z.length}),j="",b+=z.length-1,E=M,R=="{"&&(z=="}}"?b++:u(O[O.length-1]))):j+=h.charAt(b);return re(q,!0),O};function u(l){l.n.substr(l.n.length-1)==="}"&&(l.n=l.n.substring(0,l.n.length-1))}function g(l){return l.trim?l.trim():l.replace(/^\s*|\s*$/g,"")}function x(l,h,w){if(h.charAt(w)!=l.charAt(0))return!1;for(var C=1,M=l.length;C<M;C++)if(h.charAt(w+C)!=l.charAt(C))return!1;return!0}var S={_t:!0,"\n":!0,$:!0,"/":!0};function a(l,h,w,C){var M=[],V=null,k=null,E=null;for(k=w[w.length-1];l.length>0;){if(E=l.shift(),k&&k.tag=="<"&&!(E.tag in S))throw new Error("Illegal content in < super tag.");if(n.tags[E.tag]<=n.tags.$||d(E,C))w.push(E),E.nodes=a(l,E.tag,w,C);else if(E.tag=="/"){if(w.length===0)throw new Error("Closing tag without opener: /"+E.n);if(V=w.pop(),E.n!=V.n&&!m(E.n,V.n,C))throw new Error("Nesting error: "+V.n+" vs. "+E.n);return V.end=E.i,M}else E.tag==`
|
|
10
|
+
`&&(E.last=l.length==0||l[0].tag==`
|
|
11
|
+
`);M.push(E)}if(w.length>0)throw new Error("missing closing tag: "+w.pop().n);return M}function d(l,h){for(var w=0,C=h.length;w<C;w++)if(h[w].o==l.n)return l.tag="#",!0}function m(l,h,w){for(var C=0,M=w.length;C<M;C++)if(w[C].c==l&&w[C].o==h)return!0}function p(l){var h=[];for(var w in l)h.push('"'+T(w)+'": function(c,p,t,i) {'+l[w]+"}");return"{ "+h.join(",")+" }"}function y(l){var h=[];for(var w in l.partials)h.push('"'+T(w)+'":{name:"'+T(l.partials[w].name)+'", '+y(l.partials[w])+"}");return"partials: {"+h.join(",")+"}, subs: "+p(l.subs)}n.stringify=function(l,h,w){return"{code: function (c,p,i) { "+n.wrapMain(l.code)+" },"+y(l)+"}"};var N=0;n.generate=function(l,h,w){N=0;var C={code:"",subs:{},partials:{}};return n.walk(l,C),w.asString?this.stringify(C,h,w):this.makeTemplate(C,h,w)},n.wrapMain=function(l){return'var t=this;t.b(i=i||"");'+l+"return t.fl();"},n.template=n.Template,n.makeTemplate=function(l,h,w){var C=this.makePartials(l);return C.code=new Function("c","p","i",this.wrapMain(l.code)),new this.template(C,h,this,w)},n.makePartials=function(l){var h,w={subs:{},partials:l.partials,name:l.name};for(h in w.partials)w.partials[h]=this.makePartials(w.partials[h]);for(h in l.subs)w.subs[h]=new Function("c","p","t","i",l.subs[h]);return w};function T(l){return l.replace(r,"\\\\").replace(e,'\\"').replace(i,"\\n").replace(o,"\\r").replace(f,"\\u2028").replace(c,"\\u2029")}function P(l){return~l.indexOf(".")?"d":"f"}function L(l,h){var w="<"+(h.prefix||""),C=w+l.n+N++;return h.partials[C]={name:l.n,partials:{}},h.code+='t.b(t.rp("'+T(C)+'",c,p,"'+(l.indent||"")+'"));',C}n.codegen={"#":function(l,h){h.code+="if(t.s(t."+P(l.n)+'("'+T(l.n)+'",c,p,1),c,p,0,'+l.i+","+l.end+',"'+l.otag+" "+l.ctag+'")){t.rs(c,p,function(c,p,t){',n.walk(l.nodes,h),h.code+="});c.pop();}"},"^":function(l,h){h.code+="if(!t.s(t."+P(l.n)+'("'+T(l.n)+'",c,p,1),c,p,1,0,0,"")){',n.walk(l.nodes,h),h.code+="};"},">":L,"<":function(l,h){var w={partials:{},code:"",subs:{},inPartial:!0};n.walk(l.nodes,w);var C=h.partials[L(l,h)];C.subs=w.subs,C.partials=w.partials},$:function(l,h){var w={subs:{},code:"",partials:h.partials,prefix:l.n};n.walk(l.nodes,w),h.subs[l.n]=w.code,h.inPartial||(h.code+='t.sub("'+T(l.n)+'",c,p,i);')},"\n":function(l,h){h.code+=ie('"\\n"'+(l.last?"":" + i"))},_v:function(l,h){h.code+="t.b(t.v(t."+P(l.n)+'("'+T(l.n)+'",c,p,0)));'},_t:function(l,h){h.code+=ie('"'+T(l.text)+'"')},"{":I,"&":I};function I(l,h){h.code+="t.b(t.t(t."+P(l.n)+'("'+T(l.n)+'",c,p,0)));'}function ie(l){return"t.b("+l+");"}n.walk=function(l,h){for(var w,C=0,M=l.length;C<M;C++)w=n.codegen[l[C].tag],w&&w(l[C],h);return h},n.parse=function(l,h,w){return w=w||{},a(l,"",[],w.sectionTags||[])},n.cache={},n.cacheKey=function(l,h){return[l,!!h.asString,!!h.disableLambda,h.delimiters,!!h.modelGet].join("||")},n.compile=function(l,h){h=h||{};var w=n.cacheKey(l,h),C=this.cache[w];if(C){var M=C.partials;for(var V in M)delete M[V].instance;return C}return C=this.generate(this.parse(this.scan(l,h.delimiters),l,h),l,h),this.cache[w]=C}})(s)})(_e)),_e}var Pe={},qe;function tn(){return qe||(qe=1,(function(s){(function(n){n.Template=function(a,d,m,p){a=a||{},this.r=a.code||this.r,this.c=m,this.options=p||{},this.text=d||"",this.partials=a.partials||{},this.subs=a.subs||{},this.buf=""},n.Template.prototype={r:function(a,d,m){return""},v:x,t:g,render:function(d,m,p){return this.ri([d],m||{},p)},ri:function(a,d,m){return this.r(a,d,m)},ep:function(a,d){var m=this.partials[a],p=d[m.name];if(m.instance&&m.base==p)return m.instance;if(typeof p=="string"){if(!this.c)throw new Error("No compiler available.");p=this.c.compile(p,this.options)}if(!p)return null;if(this.partials[a].base=p,m.subs){d.stackText||(d.stackText={});for(key in m.subs)d.stackText[key]||(d.stackText[key]=this.activeSub!==void 0&&d.stackText[this.activeSub]?d.stackText[this.activeSub]:this.text);p=e(p,m.subs,m.partials,this.stackSubs,this.stackPartials,d.stackText)}return this.partials[a].instance=p,p},rp:function(a,d,m,p){var y=this.ep(a,m);return y?y.ri(d,m,p):""},rs:function(a,d,m){var p=a[a.length-1];if(!S(p)){m(a,d,this);return}for(var y=0;y<p.length;y++)a.push(p[y]),m(a,d,this),a.pop()},s:function(a,d,m,p,y,N,T){var P;return S(a)&&a.length===0?!1:(typeof a=="function"&&(a=this.ms(a,d,m,p,y,N,T)),P=!!a,!p&&P&&d&&d.push(typeof a=="object"?a:d[d.length-1]),P)},d:function(a,d,m,p){var y,N=a.split("."),T=this.f(N[0],d,m,p),P=this.options.modelGet,L=null;if(a==="."&&S(d[d.length-2]))T=d[d.length-1];else for(var I=1;I<N.length;I++)y=t(N[I],T,P),y!==void 0?(L=T,T=y):T="";return p&&!T?!1:(!p&&typeof T=="function"&&(d.push(L),T=this.mv(T,d,m),d.pop()),T)},f:function(a,d,m,p){for(var y=!1,N=null,T=!1,P=this.options.modelGet,L=d.length-1;L>=0;L--)if(N=d[L],y=t(a,N,P),y!==void 0){T=!0;break}return T?(!p&&typeof y=="function"&&(y=this.mv(y,d,m)),y):p?!1:""},ls:function(a,d,m,p,y,N){var T=this.options.delimiters;return this.options.delimiters=N,this.b(this.ct(g(a.call(d,y,m)),d,p)),this.options.delimiters=T,!1},ct:function(a,d,m){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(a,this.options).render(d,m)},b:function(a){this.buf+=a},fl:function(){var a=this.buf;return this.buf="",a},ms:function(a,d,m,p,y,N,T){var P,L=d[d.length-1],I=a.call(L);return typeof I=="function"?p?!0:(P=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(I,L,d,m,P.substring(y,N),T)):I},mv:function(a,d,m){var p=d[d.length-1],y=a.call(p);return typeof y=="function"?this.ct(g(y.call(p)),p,m):y},sub:function(a,d,m,p){var y=this.subs[a];y&&(this.activeSub=a,y(d,m,this,p),this.activeSub=!1)}};function t(a,d,m){var p;return d&&typeof d=="object"&&(d[a]!==void 0?p=d[a]:m&&d.get&&typeof d.get=="function"&&(p=d.get(a))),p}function e(a,d,m,p,y,N){function T(){}T.prototype=a;function P(){}P.prototype=a.subs;var L,I=new T;I.subs=new P,I.subsText={},I.buf="",p=p||{},I.stackSubs=p,I.subsText=N;for(L in d)p[L]||(p[L]=d[L]);for(L in p)I.subs[L]=p[L];y=y||{},I.stackPartials=y;for(L in m)y[L]||(y[L]=m[L]);for(L in y)I.partials[L]=y[L];return I}var i=/&/g,o=/</g,r=/>/g,f=/\'/g,c=/\"/g,u=/[&<>\"\']/;function g(a){return String(a??"")}function x(a){return a=g(a),u.test(a)?a.replace(i,"&").replace(o,"<").replace(r,">").replace(f,"'").replace(c,"""):a}var S=Array.isArray||function(a){return Object.prototype.toString.call(a)==="[object Array]"}})(s)})(Pe)),Pe}var Ie,Ke;function nn(){if(Ke)return Ie;Ke=1;var s=en();return s.Template=tn().Template,s.template=s.Template,Ie=s,Ie}var F=nn();const B={};B["file-summary-line"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<li class="d2h-file-list-line">'),e.b(`
|
|
12
|
+
`+t),e.b(' <span class="d2h-file-name-wrapper">'),e.b(`
|
|
13
|
+
`+t),e.b(e.rp("<fileIcon0",s,n," ")),e.b(' <a href="#'),e.b(e.v(e.f("fileHtmlId",s,n,0))),e.b('" class="d2h-file-name">'),e.b(e.v(e.f("fileName",s,n,0))),e.b("</a>"),e.b(`
|
|
14
|
+
`+t),e.b(' <span class="d2h-file-stats">'),e.b(`
|
|
15
|
+
`+t),e.b(' <span class="d2h-lines-added">'),e.b(e.v(e.f("addedLines",s,n,0))),e.b("</span>"),e.b(`
|
|
16
|
+
`+t),e.b(' <span class="d2h-lines-deleted">'),e.b(e.v(e.f("deletedLines",s,n,0))),e.b("</span>"),e.b(`
|
|
17
|
+
`+t),e.b(" </span>"),e.b(`
|
|
18
|
+
`+t),e.b(" </span>"),e.b(`
|
|
19
|
+
`+t),e.b("</li>"),e.fl()},partials:{"<fileIcon0":{name:"fileIcon",partials:{},subs:{}}},subs:{}});B["file-summary-wrapper"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<div class="d2h-file-list-wrapper '),e.b(e.v(e.f("colorScheme",s,n,0))),e.b('">'),e.b(`
|
|
20
|
+
`+t),e.b(' <div class="d2h-file-list-header">'),e.b(`
|
|
21
|
+
`+t),e.b(' <span class="d2h-file-list-title">Files changed ('),e.b(e.v(e.f("filesNumber",s,n,0))),e.b(")</span>"),e.b(`
|
|
22
|
+
`+t),e.b(' <a class="d2h-file-switch d2h-hide">hide</a>'),e.b(`
|
|
23
|
+
`+t),e.b(' <a class="d2h-file-switch d2h-show">show</a>'),e.b(`
|
|
24
|
+
`+t),e.b(" </div>"),e.b(`
|
|
25
|
+
`+t),e.b(' <ol class="d2h-file-list">'),e.b(`
|
|
26
|
+
`+t),e.b(" "),e.b(e.t(e.f("files",s,n,0))),e.b(`
|
|
27
|
+
`+t),e.b(" </ol>"),e.b(`
|
|
28
|
+
`+t),e.b("</div>"),e.fl()},partials:{},subs:{}});B["generic-block-header"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b("<tr>"),e.b(`
|
|
29
|
+
`+t),e.b(' <td class="'),e.b(e.v(e.f("lineClass",s,n,0))),e.b(" "),e.b(e.v(e.d("CSSLineClass.INFO",s,n,0))),e.b('"></td>'),e.b(`
|
|
30
|
+
`+t),e.b(' <td class="'),e.b(e.v(e.d("CSSLineClass.INFO",s,n,0))),e.b('">'),e.b(`
|
|
31
|
+
`+t),e.b(' <div class="'),e.b(e.v(e.f("contentClass",s,n,0))),e.b('">'),e.s(e.f("blockHeader",s,n,1),s,n,0,156,173,"{{ }}")&&(e.rs(s,n,function(i,o,r){r.b(r.t(r.f("blockHeader",i,o,0)))}),s.pop()),e.s(e.f("blockHeader",s,n,1),s,n,1,0,0,"")||e.b(" "),e.b("</div>"),e.b(`
|
|
32
|
+
`+t),e.b(" </td>"),e.b(`
|
|
33
|
+
`+t),e.b("</tr>"),e.fl()},partials:{},subs:{}});B["generic-empty-diff"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b("<tr>"),e.b(`
|
|
34
|
+
`+t),e.b(' <td class="'),e.b(e.v(e.d("CSSLineClass.INFO",s,n,0))),e.b('">'),e.b(`
|
|
35
|
+
`+t),e.b(' <div class="'),e.b(e.v(e.f("contentClass",s,n,0))),e.b('">'),e.b(`
|
|
36
|
+
`+t),e.b(" File without changes"),e.b(`
|
|
37
|
+
`+t),e.b(" </div>"),e.b(`
|
|
38
|
+
`+t),e.b(" </td>"),e.b(`
|
|
39
|
+
`+t),e.b("</tr>"),e.fl()},partials:{},subs:{}});B["generic-file-path"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<span class="d2h-file-name-wrapper">'),e.b(`
|
|
40
|
+
`+t),e.b(e.rp("<fileIcon0",s,n," ")),e.b(' <span class="d2h-file-name">'),e.b(e.v(e.f("fileDiffName",s,n,0))),e.b("</span>"),e.b(`
|
|
41
|
+
`+t),e.b(e.rp("<fileTag1",s,n," ")),e.b("</span>"),e.b(`
|
|
42
|
+
`+t),e.b('<label class="d2h-file-collapse">'),e.b(`
|
|
43
|
+
`+t),e.b(' <input class="d2h-file-collapse-input" type="checkbox" name="viewed" value="viewed">'),e.b(`
|
|
44
|
+
`+t),e.b(" Viewed"),e.b(`
|
|
45
|
+
`+t),e.b("</label>"),e.fl()},partials:{"<fileIcon0":{name:"fileIcon",partials:{},subs:{}},"<fileTag1":{name:"fileTag",partials:{},subs:{}}},subs:{}});B["generic-line"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b("<tr>"),e.b(`
|
|
46
|
+
`+t),e.b(' <td class="'),e.b(e.v(e.f("lineClass",s,n,0))),e.b(" "),e.b(e.v(e.f("type",s,n,0))),e.b('">'),e.b(`
|
|
47
|
+
`+t),e.b(" "),e.b(e.t(e.f("lineNumber",s,n,0))),e.b(`
|
|
48
|
+
`+t),e.b(" </td>"),e.b(`
|
|
49
|
+
`+t),e.b(' <td class="'),e.b(e.v(e.f("type",s,n,0))),e.b('">'),e.b(`
|
|
50
|
+
`+t),e.b(' <div class="'),e.b(e.v(e.f("contentClass",s,n,0))),e.b('">'),e.b(`
|
|
51
|
+
`+t),e.s(e.f("prefix",s,n,1),s,n,0,162,238,"{{ }}")&&(e.rs(s,n,function(i,o,r){r.b(' <span class="d2h-code-line-prefix">'),r.b(r.t(r.f("prefix",i,o,0))),r.b("</span>"),r.b(`
|
|
52
|
+
`+t)}),s.pop()),e.s(e.f("prefix",s,n,1),s,n,1,0,0,"")||(e.b(' <span class="d2h-code-line-prefix"> </span>'),e.b(`
|
|
53
|
+
`+t)),e.s(e.f("content",s,n,1),s,n,0,371,445,"{{ }}")&&(e.rs(s,n,function(i,o,r){r.b(' <span class="d2h-code-line-ctn">'),r.b(r.t(r.f("content",i,o,0))),r.b("</span>"),r.b(`
|
|
54
|
+
`+t)}),s.pop()),e.s(e.f("content",s,n,1),s,n,1,0,0,"")||(e.b(' <span class="d2h-code-line-ctn"><br></span>'),e.b(`
|
|
55
|
+
`+t)),e.b(" </div>"),e.b(`
|
|
56
|
+
`+t),e.b(" </td>"),e.b(`
|
|
57
|
+
`+t),e.b("</tr>"),e.fl()},partials:{},subs:{}});B["generic-wrapper"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<div class="d2h-wrapper '),e.b(e.v(e.f("colorScheme",s,n,0))),e.b('">'),e.b(`
|
|
58
|
+
`+t),e.b(" "),e.b(e.t(e.f("content",s,n,0))),e.b(`
|
|
59
|
+
`+t),e.b("</div>"),e.fl()},partials:{},subs:{}});B["icon-file-added"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<svg aria-hidden="true" class="d2h-icon d2h-added" height="16" title="added" version="1.1" viewBox="0 0 14 16"'),e.b(`
|
|
60
|
+
`+t),e.b(' width="14">'),e.b(`
|
|
61
|
+
`+t),e.b(' <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM6 9H3V7h3V4h2v3h3v2H8v3H6V9z"></path>'),e.b(`
|
|
62
|
+
`+t),e.b("</svg>"),e.fl()},partials:{},subs:{}});B["icon-file-changed"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<svg aria-hidden="true" class="d2h-icon d2h-changed" height="16" title="modified" version="1.1"'),e.b(`
|
|
63
|
+
`+t),e.b(' viewBox="0 0 14 16" width="14">'),e.b(`
|
|
64
|
+
`+t),e.b(' <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM4 8c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3-3-1.34-3-3z"></path>'),e.b(`
|
|
65
|
+
`+t),e.b("</svg>"),e.fl()},partials:{},subs:{}});B["icon-file-deleted"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<svg aria-hidden="true" class="d2h-icon d2h-deleted" height="16" title="removed" version="1.1"'),e.b(`
|
|
66
|
+
`+t),e.b(' viewBox="0 0 14 16" width="14">'),e.b(`
|
|
67
|
+
`+t),e.b(' <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM11 9H3V7h8v2z"></path>'),e.b(`
|
|
68
|
+
`+t),e.b("</svg>"),e.fl()},partials:{},subs:{}});B["icon-file-renamed"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<svg aria-hidden="true" class="d2h-icon d2h-moved" height="16" title="renamed" version="1.1"'),e.b(`
|
|
69
|
+
`+t),e.b(' viewBox="0 0 14 16" width="14">'),e.b(`
|
|
70
|
+
`+t),e.b(' <path d="M6 9H3V7h3V4l5 4-5 4V9z m8-7v12c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h12c0.55 0 1 0.45 1 1z m-1 0H1v12h12V2z"></path>'),e.b(`
|
|
71
|
+
`+t),e.b("</svg>"),e.fl()},partials:{},subs:{}});B["icon-file"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<svg aria-hidden="true" class="d2h-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12">'),e.b(`
|
|
72
|
+
`+t),e.b(' <path d="M6 5H2v-1h4v1zM2 8h7v-1H2v1z m0 2h7v-1H2v1z m0 2h7v-1H2v1z m10-7.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h7.5l3.5 3.5z m-1 0.5L8 2H1v12h10V5z"></path>'),e.b(`
|
|
73
|
+
`+t),e.b("</svg>"),e.fl()},partials:{},subs:{}});B["line-by-line-file-diff"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<div id="'),e.b(e.v(e.f("fileHtmlId",s,n,0))),e.b('" class="d2h-file-wrapper" data-lang="'),e.b(e.v(e.d("file.language",s,n,0))),e.b('">'),e.b(`
|
|
74
|
+
`+t),e.b(' <div class="d2h-file-header">'),e.b(`
|
|
75
|
+
`+t),e.b(" "),e.b(e.t(e.f("filePath",s,n,0))),e.b(`
|
|
76
|
+
`+t),e.b(" </div>"),e.b(`
|
|
77
|
+
`+t),e.b(' <div class="d2h-file-diff">'),e.b(`
|
|
78
|
+
`+t),e.b(' <div class="d2h-code-wrapper">'),e.b(`
|
|
79
|
+
`+t),e.b(' <table class="d2h-diff-table">'),e.b(`
|
|
80
|
+
`+t),e.b(' <tbody class="d2h-diff-tbody">'),e.b(`
|
|
81
|
+
`+t),e.b(" "),e.b(e.t(e.f("diffs",s,n,0))),e.b(`
|
|
82
|
+
`+t),e.b(" </tbody>"),e.b(`
|
|
83
|
+
`+t),e.b(" </table>"),e.b(`
|
|
84
|
+
`+t),e.b(" </div>"),e.b(`
|
|
85
|
+
`+t),e.b(" </div>"),e.b(`
|
|
86
|
+
`+t),e.b("</div>"),e.fl()},partials:{},subs:{}});B["line-by-line-numbers"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<div class="line-num1">'),e.b(e.v(e.f("oldNumber",s,n,0))),e.b("</div>"),e.b(`
|
|
87
|
+
`+t),e.b('<div class="line-num2">'),e.b(e.v(e.f("newNumber",s,n,0))),e.b("</div>"),e.fl()},partials:{},subs:{}});B["side-by-side-file-diff"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<div id="'),e.b(e.v(e.f("fileHtmlId",s,n,0))),e.b('" class="d2h-file-wrapper" data-lang="'),e.b(e.v(e.d("file.language",s,n,0))),e.b('">'),e.b(`
|
|
88
|
+
`+t),e.b(' <div class="d2h-file-header">'),e.b(`
|
|
89
|
+
`+t),e.b(" "),e.b(e.t(e.f("filePath",s,n,0))),e.b(`
|
|
90
|
+
`+t),e.b(" </div>"),e.b(`
|
|
91
|
+
`+t),e.b(' <div class="d2h-files-diff">'),e.b(`
|
|
92
|
+
`+t),e.b(' <div class="d2h-file-side-diff">'),e.b(`
|
|
93
|
+
`+t),e.b(' <div class="d2h-code-wrapper">'),e.b(`
|
|
94
|
+
`+t),e.b(' <table class="d2h-diff-table">'),e.b(`
|
|
95
|
+
`+t),e.b(' <tbody class="d2h-diff-tbody">'),e.b(`
|
|
96
|
+
`+t),e.b(" "),e.b(e.t(e.d("diffs.left",s,n,0))),e.b(`
|
|
97
|
+
`+t),e.b(" </tbody>"),e.b(`
|
|
98
|
+
`+t),e.b(" </table>"),e.b(`
|
|
99
|
+
`+t),e.b(" </div>"),e.b(`
|
|
100
|
+
`+t),e.b(" </div>"),e.b(`
|
|
101
|
+
`+t),e.b(' <div class="d2h-file-side-diff">'),e.b(`
|
|
102
|
+
`+t),e.b(' <div class="d2h-code-wrapper">'),e.b(`
|
|
103
|
+
`+t),e.b(' <table class="d2h-diff-table">'),e.b(`
|
|
104
|
+
`+t),e.b(' <tbody class="d2h-diff-tbody">'),e.b(`
|
|
105
|
+
`+t),e.b(" "),e.b(e.t(e.d("diffs.right",s,n,0))),e.b(`
|
|
106
|
+
`+t),e.b(" </tbody>"),e.b(`
|
|
107
|
+
`+t),e.b(" </table>"),e.b(`
|
|
108
|
+
`+t),e.b(" </div>"),e.b(`
|
|
109
|
+
`+t),e.b(" </div>"),e.b(`
|
|
110
|
+
`+t),e.b(" </div>"),e.b(`
|
|
111
|
+
`+t),e.b("</div>"),e.fl()},partials:{},subs:{}});B["tag-file-added"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<span class="d2h-tag d2h-added d2h-added-tag">ADDED</span>'),e.fl()},partials:{},subs:{}});B["tag-file-changed"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<span class="d2h-tag d2h-changed d2h-changed-tag">CHANGED</span>'),e.fl()},partials:{},subs:{}});B["tag-file-deleted"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<span class="d2h-tag d2h-deleted d2h-deleted-tag">DELETED</span>'),e.fl()},partials:{},subs:{}});B["tag-file-renamed"]=new F.Template({code:function(s,n,t){var e=this;return e.b(t=t||""),e.b('<span class="d2h-tag d2h-moved d2h-moved-tag">RENAMED</span>'),e.fl()},partials:{},subs:{}});class sn{constructor({compiledTemplates:n={},rawTemplates:t={}}){const e=Object.entries(t).reduce((i,[o,r])=>{const f=F.compile(r,{asString:!1});return Object.assign(Object.assign({},i),{[o]:f})},{});this.preCompiledTemplates=Object.assign(Object.assign(Object.assign({},B),n),e)}static compile(n){return F.compile(n,{asString:!1})}render(n,t,e,i,o){const r=this.templateKey(n,t);try{return this.preCompiledTemplates[r].render(e,i,o)}catch{throw new Error(`Could not find template to render '${r}'`)}}template(n,t){return this.preCompiledTemplates[this.templateKey(n,t)]}templateKey(n,t){return`${n}-${t}`}}const rn=Object.assign(Object.assign(Object.assign({},tt),nt),{outputFormat:Nt.LINE_BY_LINE,drawFileList:!0});function an(s,n={}){const t=Object.assign(Object.assign({},rn),n),e=typeof s=="string"?Mt(s,t):s,i=new sn(t),{colorScheme:o}=t,r={colorScheme:o},f=t.drawFileList?new $t(i,r).render(e):"",c=t.outputFormat==="side-by-side"?new Zt(i,t).render(e):new Kt(i,t).render(e);return f+c}var K={},Ye;function ln(){if(Ye)return K;Ye=1,Object.defineProperty(K,"__esModule",{value:!0}),K.ColorSchemeType=K.DiffStyleType=K.LineMatchingType=K.OutputFormatType=K.LineType=void 0;var s;(function(t){t.INSERT="insert",t.DELETE="delete",t.CONTEXT="context"})(s||(K.LineType=s={})),K.OutputFormatType={LINE_BY_LINE:"line-by-line",SIDE_BY_SIDE:"side-by-side"},K.LineMatchingType={LINES:"lines",WORDS:"words",NONE:"none"},K.DiffStyleType={WORD:"word",CHAR:"char"};var n;return(function(t){t.AUTO="auto",t.DARK="dark",t.LIGHT="light"})(n||(K.ColorSchemeType=n={})),K}var on=ln(),dn=se('<div class="text-sm text-muted py-8 text-center">Loading diff...</div>'),cn=se('<div class="text-sm text-danger py-8 text-center"> </div>'),fn=se('<div class="text-sm text-muted py-8 text-center">No changes</div>'),un=se('<div class="text-[11px] text-warning px-3 py-1">Truncated (exceeded 200KB)</div>'),hn=se('<div class="diff-container overflow-auto max-h-[60vh] md:max-h-[70vh] rounded-md border border-edge svelte-12rjmc4"><!> <!></div>'),pn=se('<div class="overflow-auto max-h-[60vh] md:max-h-[70vh] rounded-md border border-edge"><div class="px-3 py-2 text-[11px] text-muted border-b border-edge bg-surface font-mono">git status --short</div> <pre class="git-status-output svelte-12rjmc4"> </pre></div>'),bn=se('<li class="flex items-baseline gap-2 px-3 py-1.5 border-b border-edge last:border-b-0"><code class="text-[11px] text-accent shrink-0"> </code> <span class="text-[12px] text-primary"> </span></li>'),mn=se('<ul class="commit-list overflow-auto max-h-[60vh] md:max-h-[70vh] rounded-md border border-edge list-none m-0 p-0"></ul>'),gn=se('<div class="flex gap-1 mb-3"><button type="button">Current diff</button> <button type="button"> </button> <button type="button"> </button></div> <!>',1),vn=se('<div class="mb-4 flex flex-wrap items-center justify-between gap-3"><h2 class="text-base">Changes — <span class="font-mono text-sm"> </span></h2> <!></div> <!> <div class="flex justify-end mt-4"><!></div>',1);function xn(s,n){ct(n,!0);let t=ft(n,"cursorUrl",3,null),e=de(""),i=de(!1),o=de(""),r=de(ut([])),f=de(!0),c=de("");Re(()=>{Y(f,!0),Y(c,""),ht.fetchWorktreeDiff({params:{name:n.branch}}).then(m=>{Y(e,m.uncommitted,!0),Y(i,m.uncommittedTruncated,!0),Y(o,m.gitStatus,!0),Y(r,m.unpushedCommits,!0)}).catch(m=>{Y(c,pt(m),!0)}).finally(()=>{Y(f,!1)})});const u={outputFormat:"line-by-line",colorScheme:on.ColorSchemeType.DARK,drawFileList:!1};let g=Le(()=>D(e)?an(D(e),u):""),x=Le(()=>D(o)?D(o).split(`
|
|
112
|
+
`).filter(m=>m.length>0).length:0),S=Le(()=>!!D(e)||D(x)>0||D(r).length>0),a=de("diff"),d=!1;Re(()=>{!D(f)&&!D(c)&&!d&&(d=!0,Y(a,D(e)?"diff":D(x)>0?"status":"unpushed",!0))}),bt(s,{get onclose(){return n.onclose},wide:!0,maxWidth:"90vw",className:"diff-dialog",children:(m,p)=>{var y=vn(),N=We(y),T=X(N),P=ee(X(T)),L=X(P),I=ee(T,2);{var ie=E=>{vt(E,{get url(){return t()}})};ye(I,E=>{t()&&E(ie)})}var l=ee(N,2);{var h=E=>{var R=dn();Q(E,R)},w=E=>{var R=cn(),$=X(R);ue(()=>ce($,D(c))),Q(E,R)},C=E=>{var R=fn();Q(E,R)},M=E=>{var R=gn(),$=We(R),j=X($);let O;var q=ee(j,2);let b;var _=X(q),v=ee(q,2);let z;var le=X(v),be=ee($,2);{var re=H=>{var W=hn(),U=X(W);{var Z=fe=>{var Ce=un();Q(fe,Ce)};ye(U,fe=>{D(i)&&fe(Z)})}var ve=ee(U,2);Tt(ve,()=>D(g)),Q(H,W)},oe=H=>{var W=pn(),U=ee(X(W),2),Z=X(U);ue(()=>ce(Z,D(o))),Q(H,W)},J=H=>{var W=mn();yt(W,21,()=>D(r),U=>U.hash,(U,Z)=>{var ve=bn(),fe=X(ve),Ce=X(fe),st=ee(fe,2),it=X(st);ue(()=>{ce(Ce,D(Z).hash),ce(it,D(Z).message)}),Q(U,ve)}),Q(H,W)};ye(be,H=>{D(a)==="diff"&&D(e)?H(re):D(a)==="status"&&D(x)>0?H(oe,1):D(a)==="unpushed"&&D(r).length>0&&H(J,2)})}ue(()=>{O=Ee(j,1,"tab-btn svelte-12rjmc4",null,O,{active:D(a)==="diff"}),j.disabled=!D(e),b=Ee(q,1,"tab-btn svelte-12rjmc4",null,b,{active:D(a)==="status"}),q.disabled=D(x)===0,ce(_,`Git status (${D(x)??""})`),z=Ee(v,1,"tab-btn svelte-12rjmc4",null,z,{active:D(a)==="unpushed"}),v.disabled=D(r).length===0,ce(le,`Unpushed commits (${D(r).length??""})`)}),Se("click",j,()=>Y(a,"diff")),Se("click",q,()=>Y(a,"status")),Se("click",v,()=>Y(a,"unpushed")),Q(E,R)};ye(l,E=>{D(f)?E(h):D(c)?E(w,1):D(S)?E(M,-1):E(C,2)})}var V=ee(l,2),k=X(V);mt(k,{type:"button",get onclick(){return n.onclose},children:(E,R)=>{var $=gt("Close");Q(E,$)},$$slots:{default:!0}}),ue(()=>ce(L,n.branch)),Q(m,y)},$$slots:{default:!0}}),wt()}xt(["click"]);export{xn as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:host,:root{--d2h-bg-color:#fff;--d2h-border-color:#ddd;--d2h-dim-color:rgba(0,0,0,.3);--d2h-line-border-color:#eee;--d2h-file-header-bg-color:#f7f7f7;--d2h-file-header-border-color:#d8d8d8;--d2h-empty-placeholder-bg-color:#f1f1f1;--d2h-empty-placeholder-border-color:#e1e1e1;--d2h-selected-color:#c8e1ff;--d2h-ins-bg-color:#dfd;--d2h-ins-border-color:#b4e2b4;--d2h-ins-highlight-bg-color:#97f295;--d2h-ins-label-color:#399839;--d2h-del-bg-color:#fee8e9;--d2h-del-border-color:#e9aeae;--d2h-del-highlight-bg-color:#ffb6ba;--d2h-del-label-color:#c33;--d2h-change-del-color:#fdf2d0;--d2h-change-ins-color:#ded;--d2h-info-bg-color:#f8fafd;--d2h-info-border-color:#d5e4f2;--d2h-change-label-color:#d0b44c;--d2h-moved-label-color:#3572b0;--d2h-dark-color:#e6edf3;--d2h-dark-bg-color:#0d1117;--d2h-dark-border-color:#30363d;--d2h-dark-dim-color:#6e7681;--d2h-dark-line-border-color:#21262d;--d2h-dark-file-header-bg-color:#161b22;--d2h-dark-file-header-border-color:#30363d;--d2h-dark-empty-placeholder-bg-color:hsla(215,8%,47%,.1);--d2h-dark-empty-placeholder-border-color:#30363d;--d2h-dark-selected-color:rgba(56,139,253,.1);--d2h-dark-ins-bg-color:rgba(46,160,67,.15);--d2h-dark-ins-border-color:rgba(46,160,67,.4);--d2h-dark-ins-highlight-bg-color:rgba(46,160,67,.4);--d2h-dark-ins-label-color:#3fb950;--d2h-dark-del-bg-color:rgba(248,81,73,.1);--d2h-dark-del-border-color:rgba(248,81,73,.4);--d2h-dark-del-highlight-bg-color:rgba(248,81,73,.4);--d2h-dark-del-label-color:#f85149;--d2h-dark-change-del-color:rgba(210,153,34,.2);--d2h-dark-change-ins-color:rgba(46,160,67,.25);--d2h-dark-info-bg-color:rgba(56,139,253,.1);--d2h-dark-info-border-color:rgba(56,139,253,.4);--d2h-dark-change-label-color:#d29922;--d2h-dark-moved-label-color:#3572b0}.d2h-wrapper{text-align:left}.d2h-file-header{background-color:#f7f7f7;background-color:var(--d2h-file-header-bg-color);border-bottom:1px solid #d8d8d8;border-bottom:1px solid var(--d2h-file-header-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Arial,sans-serif;height:35px;padding:5px 10px}.d2h-file-header.d2h-sticky-header{position:sticky;top:0;z-index:1}.d2h-file-stats{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;margin-left:auto}.d2h-lines-added{border:1px solid #b4e2b4;border:1px solid var(--d2h-ins-border-color);border-radius:5px 0 0 5px;color:#399839;color:var(--d2h-ins-label-color);padding:2px;text-align:right;vertical-align:middle}.d2h-lines-deleted{border:1px solid #e9aeae;border:1px solid var(--d2h-del-border-color);border-radius:0 5px 5px 0;color:#c33;color:var(--d2h-del-label-color);margin-left:1px;padding:2px;text-align:left;vertical-align:middle}.d2h-file-name-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:15px;width:100%}.d2h-file-name{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.d2h-file-wrapper{border:1px solid #ddd;border:1px solid var(--d2h-border-color);border-radius:3px;margin-bottom:1em}.d2h-file-collapse{-webkit-box-pack:end;-ms-flex-pack:end;cursor:pointer;display:none;font-size:12px;justify-content:flex-end;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid #ddd;border:1px solid var(--d2h-border-color);border-radius:3px;padding:4px 8px}.d2h-file-collapse.d2h-selected{background-color:#c8e1ff;background-color:var(--d2h-selected-color)}.d2h-file-collapse-input{margin:0 4px 0 0}.d2h-diff-table{border-collapse:collapse;font-family:Menlo,Consolas,monospace;font-size:13px;width:100%}.d2h-files-diff{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.d2h-file-diff{overflow-y:hidden}.d2h-file-diff.d2h-d-none,.d2h-files-diff.d2h-d-none{display:none}.d2h-file-side-diff{display:inline-block;overflow-x:scroll;overflow-y:hidden;width:50%}.d2h-code-line{padding:0 8em;width:calc(100% - 16em)}.d2h-code-line,.d2h-code-side-line{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.d2h-code-side-line{padding:0 4.5em;width:calc(100% - 9em)}.d2h-code-line-ctn{background:none;display:inline-block;padding:0;word-wrap:normal;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;vertical-align:middle;white-space:pre;width:100%}.d2h-code-line del,.d2h-code-side-line del{background-color:#ffb6ba;background-color:var(--d2h-del-highlight-bg-color)}.d2h-code-line del,.d2h-code-line ins,.d2h-code-side-line del,.d2h-code-side-line ins{border-radius:.2em;display:inline-block;margin-top:-1px;-webkit-text-decoration:none;text-decoration:none}.d2h-code-line ins,.d2h-code-side-line ins{background-color:#97f295;background-color:var(--d2h-ins-highlight-bg-color);text-align:left}.d2h-code-line-prefix{background:none;display:inline;padding:0;word-wrap:normal;white-space:pre}.line-num1{float:left}.line-num1,.line-num2{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;padding:0 .5em;text-overflow:ellipsis;width:3.5em}.line-num2{float:right}.d2h-code-linenumber{background-color:#fff;background-color:var(--d2h-bg-color);border:solid #eee;border:solid var(--d2h-line-border-color);border-width:0 1px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#0000004d;color:var(--d2h-dim-color);cursor:pointer;display:inline-block;position:absolute;text-align:right;width:7.5em}.d2h-code-linenumber:after{content:""}.d2h-code-side-linenumber{background-color:#fff;background-color:var(--d2h-bg-color);border:solid #eee;border:solid var(--d2h-line-border-color);border-width:0 1px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#0000004d;color:var(--d2h-dim-color);cursor:pointer;display:inline-block;overflow:hidden;padding:0 .5em;position:absolute;text-align:right;text-overflow:ellipsis;width:4em}.d2h-code-side-linenumber:after{content:""}.d2h-code-side-emptyplaceholder,.d2h-emptyplaceholder{background-color:#f1f1f1;background-color:var(--d2h-empty-placeholder-bg-color);border-color:#e1e1e1;border-color:var(--d2h-empty-placeholder-border-color)}.d2h-code-line-prefix,.d2h-code-linenumber,.d2h-code-side-linenumber,.d2h-emptyplaceholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.d2h-code-linenumber,.d2h-code-side-linenumber{direction:rtl}.d2h-del{background-color:#fee8e9;background-color:var(--d2h-del-bg-color);border-color:#e9aeae;border-color:var(--d2h-del-border-color)}.d2h-ins{background-color:#dfd;background-color:var(--d2h-ins-bg-color);border-color:#b4e2b4;border-color:var(--d2h-ins-border-color)}.d2h-info{background-color:#f8fafd;background-color:var(--d2h-info-bg-color);border-color:#d5e4f2;border-color:var(--d2h-info-border-color);color:#0000004d;color:var(--d2h-dim-color)}.d2h-file-diff .d2h-del.d2h-change{background-color:#fdf2d0;background-color:var(--d2h-change-del-color)}.d2h-file-diff .d2h-ins.d2h-change{background-color:#ded;background-color:var(--d2h-change-ins-color)}.d2h-file-list-wrapper{margin-bottom:10px}.d2h-file-list-wrapper a{-webkit-text-decoration:none;text-decoration:none}.d2h-file-list-wrapper a,.d2h-file-list-wrapper a:visited{color:#3572b0;color:var(--d2h-moved-label-color)}.d2h-file-list-header{text-align:left}.d2h-file-list-title{font-weight:700}.d2h-file-list-line{display:-webkit-box;display:-ms-flexbox;display:flex;text-align:left}.d2h-file-list{display:block;list-style:none;margin:0;padding:0}.d2h-file-list>li{border-bottom:1px solid #ddd;border-bottom:1px solid var(--d2h-border-color);margin:0;padding:5px 10px}.d2h-file-list>li:last-child{border-bottom:none}.d2h-file-switch{cursor:pointer;display:none;font-size:10px}.d2h-icon{fill:currentColor;margin-right:10px;vertical-align:middle}.d2h-deleted{color:#c33;color:var(--d2h-del-label-color)}.d2h-added{color:#399839;color:var(--d2h-ins-label-color)}.d2h-changed{color:#d0b44c;color:var(--d2h-change-label-color)}.d2h-moved{color:#3572b0;color:var(--d2h-moved-label-color)}.d2h-tag{background-color:#fff;background-color:var(--d2h-bg-color);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:10px;margin-left:5px;padding:0 2px}.d2h-deleted-tag{border:1px solid #c33;border:1px solid var(--d2h-del-label-color)}.d2h-added-tag{border:1px solid #399839;border:1px solid var(--d2h-ins-label-color)}.d2h-changed-tag{border:1px solid #d0b44c;border:1px solid var(--d2h-change-label-color)}.d2h-moved-tag{border:1px solid #3572b0;border:1px solid var(--d2h-moved-label-color)}.d2h-dark-color-scheme{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);color:#e6edf3;color:var(--d2h-dark-color)}.d2h-dark-color-scheme .d2h-file-header{background-color:#161b22;background-color:var(--d2h-dark-file-header-bg-color);border-bottom:#30363d;border-bottom:var(--d2h-dark-file-header-border-color)}.d2h-dark-color-scheme .d2h-lines-added{border:1px solid rgba(46,160,67,.4);border:1px solid var(--d2h-dark-ins-border-color);color:#3fb950;color:var(--d2h-dark-ins-label-color)}.d2h-dark-color-scheme .d2h-lines-deleted{border:1px solid rgba(248,81,73,.4);border:1px solid var(--d2h-dark-del-border-color);color:#f85149;color:var(--d2h-dark-del-label-color)}.d2h-dark-color-scheme .d2h-code-line del,.d2h-dark-color-scheme .d2h-code-side-line del{background-color:#f8514966;background-color:var(--d2h-dark-del-highlight-bg-color)}.d2h-dark-color-scheme .d2h-code-line ins,.d2h-dark-color-scheme .d2h-code-side-line ins{background-color:#2ea04366;background-color:var(--d2h-dark-ins-highlight-bg-color)}.d2h-dark-color-scheme .d2h-diff-tbody{border-color:#30363d;border-color:var(--d2h-dark-border-color)}.d2h-dark-color-scheme .d2h-code-side-linenumber{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);border-color:#21262d;border-color:var(--d2h-dark-line-border-color);color:#6e7681;color:var(--d2h-dark-dim-color)}.d2h-dark-color-scheme .d2h-files-diff .d2h-code-side-emptyplaceholder,.d2h-dark-color-scheme .d2h-files-diff .d2h-emptyplaceholder{background-color:#6e76811a;background-color:var(--d2h-dark-empty-placeholder-bg-color);border-color:#30363d;border-color:var(--d2h-dark-empty-placeholder-border-color)}.d2h-dark-color-scheme .d2h-code-linenumber{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);border-color:#21262d;border-color:var(--d2h-dark-line-border-color);color:#6e7681;color:var(--d2h-dark-dim-color)}.d2h-dark-color-scheme .d2h-del{background-color:#f851491a;background-color:var(--d2h-dark-del-bg-color);border-color:#f8514966;border-color:var(--d2h-dark-del-border-color)}.d2h-dark-color-scheme .d2h-ins{background-color:#2ea04326;background-color:var(--d2h-dark-ins-bg-color);border-color:#2ea04366;border-color:var(--d2h-dark-ins-border-color)}.d2h-dark-color-scheme .d2h-info{background-color:#388bfd1a;background-color:var(--d2h-dark-info-bg-color);border-color:#388bfd66;border-color:var(--d2h-dark-info-border-color);color:#6e7681;color:var(--d2h-dark-dim-color)}.d2h-dark-color-scheme .d2h-file-diff .d2h-del.d2h-change{background-color:#d2992233;background-color:var(--d2h-dark-change-del-color)}.d2h-dark-color-scheme .d2h-file-diff .d2h-ins.d2h-change{background-color:#2ea04340;background-color:var(--d2h-dark-change-ins-color)}.d2h-dark-color-scheme .d2h-file-wrapper{border:1px solid #30363d;border:1px solid var(--d2h-dark-border-color)}.d2h-dark-color-scheme .d2h-file-collapse{border:1px solid #0d1117;border:1px solid var(--d2h-dark-bg-color)}.d2h-dark-color-scheme .d2h-file-collapse.d2h-selected{background-color:#388bfd1a;background-color:var(--d2h-dark-selected-color)}.d2h-dark-color-scheme .d2h-file-list-wrapper a,.d2h-dark-color-scheme .d2h-file-list-wrapper a:visited{color:#3572b0;color:var(--d2h-dark-moved-label-color)}.d2h-dark-color-scheme .d2h-file-list>li{border-bottom:1px solid #0d1117;border-bottom:1px solid var(--d2h-dark-bg-color)}.d2h-dark-color-scheme .d2h-deleted{color:#f85149;color:var(--d2h-dark-del-label-color)}.d2h-dark-color-scheme .d2h-added{color:#3fb950;color:var(--d2h-dark-ins-label-color)}.d2h-dark-color-scheme .d2h-changed{color:#d29922;color:var(--d2h-dark-change-label-color)}.d2h-dark-color-scheme .d2h-moved{color:#3572b0;color:var(--d2h-dark-moved-label-color)}.d2h-dark-color-scheme .d2h-tag{background-color:#0d1117;background-color:var(--d2h-dark-bg-color)}.d2h-dark-color-scheme .d2h-deleted-tag{border:1px solid #f85149;border:1px solid var(--d2h-dark-del-label-color)}.d2h-dark-color-scheme .d2h-added-tag{border:1px solid #3fb950;border:1px solid var(--d2h-dark-ins-label-color)}.d2h-dark-color-scheme .d2h-changed-tag{border:1px solid #d29922;border:1px solid var(--d2h-dark-change-label-color)}.d2h-dark-color-scheme .d2h-moved-tag{border:1px solid #3572b0;border:1px solid var(--d2h-dark-moved-label-color)}@media(prefers-color-scheme:dark){.d2h-auto-color-scheme{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);color:#e6edf3;color:var(--d2h-dark-color)}.d2h-auto-color-scheme .d2h-file-header{background-color:#161b22;background-color:var(--d2h-dark-file-header-bg-color);border-bottom:#30363d;border-bottom:var(--d2h-dark-file-header-border-color)}.d2h-auto-color-scheme .d2h-lines-added{border:1px solid rgba(46,160,67,.4);border:1px solid var(--d2h-dark-ins-border-color);color:#3fb950;color:var(--d2h-dark-ins-label-color)}.d2h-auto-color-scheme .d2h-lines-deleted{border:1px solid rgba(248,81,73,.4);border:1px solid var(--d2h-dark-del-border-color);color:#f85149;color:var(--d2h-dark-del-label-color)}.d2h-auto-color-scheme .d2h-code-line del,.d2h-auto-color-scheme .d2h-code-side-line del{background-color:#f8514966;background-color:var(--d2h-dark-del-highlight-bg-color)}.d2h-auto-color-scheme .d2h-code-line ins,.d2h-auto-color-scheme .d2h-code-side-line ins{background-color:#2ea04366;background-color:var(--d2h-dark-ins-highlight-bg-color)}.d2h-auto-color-scheme .d2h-diff-tbody{border-color:#30363d;border-color:var(--d2h-dark-border-color)}.d2h-auto-color-scheme .d2h-code-side-linenumber{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);border-color:#21262d;border-color:var(--d2h-dark-line-border-color);color:#6e7681;color:var(--d2h-dark-dim-color)}.d2h-auto-color-scheme .d2h-files-diff .d2h-code-side-emptyplaceholder,.d2h-auto-color-scheme .d2h-files-diff .d2h-emptyplaceholder{background-color:#6e76811a;background-color:var(--d2h-dark-empty-placeholder-bg-color);border-color:#30363d;border-color:var(--d2h-dark-empty-placeholder-border-color)}.d2h-auto-color-scheme .d2h-code-linenumber{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);border-color:#21262d;border-color:var(--d2h-dark-line-border-color);color:#6e7681;color:var(--d2h-dark-dim-color)}.d2h-auto-color-scheme .d2h-del{background-color:#f851491a;background-color:var(--d2h-dark-del-bg-color);border-color:#f8514966;border-color:var(--d2h-dark-del-border-color)}.d2h-auto-color-scheme .d2h-ins{background-color:#2ea04326;background-color:var(--d2h-dark-ins-bg-color);border-color:#2ea04366;border-color:var(--d2h-dark-ins-border-color)}.d2h-auto-color-scheme .d2h-info{background-color:#388bfd1a;background-color:var(--d2h-dark-info-bg-color);border-color:#388bfd66;border-color:var(--d2h-dark-info-border-color);color:#6e7681;color:var(--d2h-dark-dim-color)}.d2h-auto-color-scheme .d2h-file-diff .d2h-del.d2h-change{background-color:#d2992233;background-color:var(--d2h-dark-change-del-color)}.d2h-auto-color-scheme .d2h-file-diff .d2h-ins.d2h-change{background-color:#2ea04340;background-color:var(--d2h-dark-change-ins-color)}.d2h-auto-color-scheme .d2h-file-wrapper{border:1px solid #30363d;border:1px solid var(--d2h-dark-border-color)}.d2h-auto-color-scheme .d2h-file-collapse{border:1px solid #0d1117;border:1px solid var(--d2h-dark-bg-color)}.d2h-auto-color-scheme .d2h-file-collapse.d2h-selected{background-color:#388bfd1a;background-color:var(--d2h-dark-selected-color)}.d2h-auto-color-scheme .d2h-file-list-wrapper a,.d2h-auto-color-scheme .d2h-file-list-wrapper a:visited{color:#3572b0;color:var(--d2h-dark-moved-label-color)}.d2h-auto-color-scheme .d2h-file-list>li{border-bottom:1px solid #0d1117;border-bottom:1px solid var(--d2h-dark-bg-color)}.d2h-dark-color-scheme .d2h-deleted{color:#f85149;color:var(--d2h-dark-del-label-color)}.d2h-auto-color-scheme .d2h-added{color:#3fb950;color:var(--d2h-dark-ins-label-color)}.d2h-auto-color-scheme .d2h-changed{color:#d29922;color:var(--d2h-dark-change-label-color)}.d2h-auto-color-scheme .d2h-moved{color:#3572b0;color:var(--d2h-dark-moved-label-color)}.d2h-auto-color-scheme .d2h-tag{background-color:#0d1117;background-color:var(--d2h-dark-bg-color)}.d2h-auto-color-scheme .d2h-deleted-tag{border:1px solid #f85149;border:1px solid var(--d2h-dark-del-label-color)}.d2h-auto-color-scheme .d2h-added-tag{border:1px solid #3fb950;border:1px solid var(--d2h-dark-ins-label-color)}.d2h-auto-color-scheme .d2h-changed-tag{border:1px solid #d29922;border:1px solid var(--d2h-dark-change-label-color)}.d2h-auto-color-scheme .d2h-moved-tag{border:1px solid #3572b0;border:1px solid var(--d2h-dark-moved-label-color)}}@media(max-width:768px){.diff-dialog{max-width:100vw!important;width:100%!important;height:100dvh;max-height:100dvh;margin:0;border-radius:0!important;font-size:11px}}.tab-btn.svelte-12rjmc4{padding:4px 12px;font-size:11px;border-radius:4px;border:1px solid var(--color-edge);background:transparent;color:var(--color-muted);cursor:pointer}.tab-btn.svelte-12rjmc4:hover{color:var(--color-primary);background:var(--color-hover)}.tab-btn.active.svelte-12rjmc4{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-accent)}.tab-btn.svelte-12rjmc4:disabled{opacity:.4;cursor:default}.tab-btn.svelte-12rjmc4:disabled:hover{color:var(--color-muted);background:transparent}.diff-container.svelte-12rjmc4{font-size:12px}.git-status-output.svelte-12rjmc4{margin:0;padding:12px;font-size:12px;color:var(--color-primary);white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.diff-container.svelte-12rjmc4 .d2h-wrapper{background:transparent}.diff-container.svelte-12rjmc4 .d2h-file-header{background:var(--color-surface);border-color:var(--color-edge);color:var(--color-primary)}.diff-container.svelte-12rjmc4 .d2h-file-name{color:var(--color-primary)}.diff-container.svelte-12rjmc4 .d2h-code-linenumber,.diff-container.svelte-12rjmc4 .d2h-code-line{color:var(--color-primary);font-size:11px}.diff-container.svelte-12rjmc4 .d2h-code-line-ctn{color:var(--color-primary)}.diff-container.svelte-12rjmc4 td.d2h-code-linenumber{border-color:var(--color-edge);position:static}@media(max-width:768px){.diff-container.svelte-12rjmc4{max-height:calc(100dvh - 8rem)!important;font-size:10px}.diff-container.svelte-12rjmc4 .d2h-code-line,.diff-container.svelte-12rjmc4 .d2h-code-linenumber{font-size:10px;padding:0 4px}}
|