@withgraphite/graphite-cli 1.1.1 → 1.1.3

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.
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkGraphiteInteractive=self.webpackChunkGraphiteInteractive||[]).push([[274],{3274:function(e,n,o){o.r(n),o.d(n,{ComparisonView:function(){return Fe},lineRange:function(){return Me}});var t=o(885),r=o(184),i=(o(5297),o(1072)),a=o(88),s=o(2248),l=o.n(s),c=o(4098),d=o(32),u=o(4510),p=o(2791);function f(e){var n=e.children;return(0,r.jsx)("div",Object.assign({className:"empty-state"},{children:(0,r.jsx)("div",{children:n})}))}var h=o(6815),m=o(51),g=o(8122),v=o(7338),b=o(1485),x=o(4447),y=o(168),j=o(6444),O=(o(2986),o(4728)),S=o(4942),w=o(5830),C=o.n(w),k=o(763);function N(e){return e.map((function(e){return e.includes(" ")?'"'.concat(e,'"'):e})).join(", ")}function L(e){return"string"==typeof e&&/(inset\s|)([0-9.]+(\w*)\s){1,4}(rgb[a]?\(.*\)|\w+)/.test(e)}function T(e,n){return Array.isArray(e)?e.filter(n):Object.entries(e).reduce((function(e,o){var r=(0,t.Z)(o,2),i=r[0],a=r[1];if((0,k.isObject)(a)){var s=T(a,n);(0,k.isEmpty)(s)||(e[i]=s)}else n(a)&&(e[i]=a);return e}),{})}function M(e){return e.scale,function(e,n){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)n.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(o[t[r]]=e[t[r]])}return o}(e,["scale"])}var E,F,R=C().typography.normal.lineHeight,P={animation:{easeOutCubic:"cubic-bezier(0.33, 1, 0.68, 1)"},borderWidths:[0,"1px"],breakpoints:["544px","768px","1012px","1280px"],fonts:{normal:N(["-apple-system","BlinkMacSystemFont","Segoe UI","Noto Sans","Helvetica","Arial","sans-serif","Apple Color Emoji","Segoe UI Emoji"]),mono:N(["SFMono-Regular","Consolas","Liberation Mono","Menlo","Courier","monospace"])},fontSizes:["12px","14px","16px","20px","24px","32px","40px","48px"],fontWeights:{light:300,normal:400,semibold:500,bold:600},lineHeights:R,radii:["0","3px","6px","100px"],sizes:{small:"544px",medium:"768px",large:"1012px",xlarge:"1280px"},space:["0","4px","8px","16px","24px","32px","40px","48px","64px","80px","96px","112px","128px"],colorSchemes:Object.entries(C().colors).reduce((function(e,n){var o=(0,t.Z)(n,2),r=o[0],i=function(e){return{colors:T(e,(function(e){return function(e){return!(L(e)||!e.startsWith("#")&&!e.startsWith("rgb")&&!e.startsWith("hsl"))}(e)})),shadows:T(e,(function(e){return L(e)}))}}(o[1]),a=i.colors,s=i.shadows;return Object.assign(Object.assign({},e),(0,S.Z)({},r,{colors:M(a),shadows:M(s)}))}),{})},I=(O.U2,O.qC),B=O.By,Z=I(O.Dh,O.$_,O.jf),H=B({whiteSpace:{property:"whiteSpace"}}),A=I(O.cp,H),D=(I(O.Cg,O.AF),O.bK,o(9948)),_=o.n(D),z=o(4164),W="light",J="dark",U=p.createContext({setColorMode:function(){return null},setDayScheme:function(){return null},setNightScheme:function(){return null}}),K=function(e){var n,o,i,a,s,l,c,d,u=e.children,f=function(e,n){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)n.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(o[t[r]]=e[t[r]])}return o}(e,["children"]),h=q(),m=h.theme,g=h.colorMode,v=h.dayScheme,b=h.nightScheme,x=null!==(o=null!==(n=f.theme)&&void 0!==n?n:m)&&void 0!==o?o:P,y=function(){var e;try{var n=null===(e=document.getElementById("__PRIMER_DATA__"))||void 0===e?void 0:e.textContent;if(n)return JSON.parse(n)}catch(e){}return{}}(),O=y.resolvedServerColorMode,S=p.useRef(O),w=p.useState(null!==(a=null!==(i=f.colorMode)&&void 0!==i?i:g)&&void 0!==a?a:"day"),C=(0,t.Z)(w,2),k=C[0],N=C[1],L=p.useState(null!==(l=null!==(s=f.dayScheme)&&void 0!==s?s:v)&&void 0!==l?l:W),T=(0,t.Z)(L,2),M=T[0],E=T[1],F=p.useState(null!==(d=null!==(c=f.nightScheme)&&void 0!==c?c:b)&&void 0!==d?d:J),R=(0,t.Z)(F,2),I=R[0],B=R[1],Z=function(){var e=p.useState(G),n=(0,t.Z)(e,2),o=n[0],r=n[1];return p.useEffect((function(){var e,n=null===(e=null===window||void 0===window?void 0:window.matchMedia)||void 0===e?void 0:e.call(window,"(prefers-color-scheme: dark)");function o(e){var n=e.matches;r(n?"night":"day")}if(n){if(void 0!==n.addEventListener)return n.addEventListener("change",o),function(){n.removeEventListener("change",o)};if(void 0!==n.addListener)return n.addListener(o),function(){n.removeListener(o)}}}),[]),o}(),H=S.current||V(k,Z),A=function(e,n,o){switch(e){case"day":case"light":return n;case"dark":case"night":return o}}(H,M,I),D=p.useMemo((function(){return function(e,n){if(!e.colorSchemes)return{resolvedTheme:e,resolvedColorScheme:void 0};if(!e.colorSchemes[n]){console.error("`".concat(n,"` scheme not defined in `theme.colorSchemes`"));var o=Object.keys(e.colorSchemes)[0];return{resolvedTheme:_()(e,e.colorSchemes[o]),resolvedColorScheme:o}}return{resolvedTheme:_()(e,e.colorSchemes[n]),resolvedColorScheme:n}}(x,A)}),[x,A]),K=D.resolvedTheme,X=D.resolvedColorScheme;return p.useEffect((function(){var e=V(k,Z);S.current&&(S.current!==e&&window.setTimeout((function(){z.flushSync((function(){N(e)})),N(k)})),S.current=null)}),[k,Z]),p.useEffect((function(){var e,n;N(null!==(n=null!==(e=f.colorMode)&&void 0!==e?e:g)&&void 0!==n?n:"day")}),[f.colorMode,g]),p.useEffect((function(){var e,n;E(null!==(n=null!==(e=f.dayScheme)&&void 0!==e?e:v)&&void 0!==n?n:W)}),[f.dayScheme,v]),p.useEffect((function(){var e,n;B(null!==(n=null!==(e=f.nightScheme)&&void 0!==e?e:b)&&void 0!==n?n:J)}),[f.nightScheme,b]),(0,r.jsx)(U.Provider,Object.assign({value:{theme:K,colorScheme:A,colorMode:k,resolvedColorMode:H,resolvedColorScheme:X,dayScheme:M,nightScheme:I,setColorMode:N,setDayScheme:E,setNightScheme:B}},{children:(0,r.jsxs)(j.f6,Object.assign({theme:K},{children:[u,f.preventSSRMismatch?(0,r.jsx)("script",{type:"application/json",id:"__PRIMER_DATA__",dangerouslySetInnerHTML:{__html:JSON.stringify({resolvedServerColorMode:H})}}):null]}))}))};function q(){return p.useContext(U)}function G(){var e,n;return"undefined"!=typeof window&&(null===(n=null===(e=window.matchMedia)||void 0===e?void 0:e.call(window,"(prefers-color-scheme: dark)"))||void 0===n?void 0:n.matches)?"night":"day"}function V(e,n){return"auto"===e?n:e}var X=(0,j.vJ)(E||(E=(0,y.Z)(["\n * { box-sizing: border-box; }\n body { margin: 0; }\n table { border-collapse: collapse; }\n input { color-scheme: ",'; }\n\n [role="button"]:focus:not(:focus-visible):not(.focus-visible),\n [role="tabpanel"][tabindex="0"]:focus:not(:focus-visible):not(.focus-visible),\n button:focus:not(:focus-visible):not(.focus-visible),\n summary:focus:not(:focus-visible):not(.focus-visible),\n a:focus:not(:focus-visible):not(.focus-visible) {\n outline: none;\n box-shadow: none;\n }\n\n [tabindex="0"]:focus:not(:focus-visible):not(.focus-visible),\n details-dialog:focus:not(:focus-visible):not(.focus-visible) {\n outline: none;\n }\n'])),(function(e){return e.colorScheme})),Y=j.ZP.div(F||(F=(0,y.Z)(["\n ",";\n ",";\n"])),A,Z);function $(e){var n=e.children,o=e.color,t=void 0===o?"fg.default":o,i=e.fontFamily,a=void 0===i?"normal":i,s=e.lineHeight,l=void 0===s?"default":s,c=function(e,n){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)n.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(o[t[r]]=e[t[r]])}return o}(e,["children","color","fontFamily","lineHeight"]),d=q(),u=d.colorScheme,p=d.dayScheme,f=d.nightScheme;return(0,r.jsxs)(Y,Object.assign({},c,{color:t,fontFamily:a,lineHeight:l,"data-portal-root":!0,"data-color-mode":(null==u?void 0:u.includes("dark"))?"dark":"light","data-light-theme":p,"data-dark-theme":f},{children:[(0,r.jsx)(X,{colorScheme:(null==u?void 0:u.includes("dark"))?"dark":"light"}),n]}))}var Q,ee=o(1828),ne=o(2104),oe=o(8490),te=function(e){return(0,oe.ZP)(e.sx)},re=j.ZP.div(O.Dh,O.$_,O.cp,O.bK,O.GQ,O.eC,O.Oq,O.Cg,O.FK,O.AF,te),ie=o(2909),ae=j.ZP.span(Q||(Q=(0,y.Z)(["\n ",";\n ",";\n ",";\n"])),A,Z,te);function se(e){var n=e.ctx,o=e.path,t=e.diffType,i=e.open,a=e.onChangeOpen,s=void 0===t?"fg.muted":ce[t],l=o.split("/");return(0,r.jsxs)(re,Object.assign({className:"split-diff-view-file-header",display:"flex",alignItems:"center",bg:"accent.subtle",color:s,paddingX:2,paddingY:1,lineHeight:2,backgroundColor:"canvas.subtle",borderTopRightRadius:2,borderTopLeftRadius:2,borderBottomColor:"border.default",borderBottomStyle:"solid",borderBottomWidth:"1px"},{children:[a&&(0,r.jsx)(re,Object.assign({paddingRight:2,onClick:function(){return a(!i)},sx:{cursor:"pointer"}},{children:i?(0,r.jsx)(ie.g8U,{size:24}):(0,r.jsx)(ie.v4q,{size:24})})),void 0!==t&&(0,r.jsx)(m.J,{icon:de[t]}),(0,r.jsx)(ae,Object.assign({fontFamily:"mono",fontSize:12},{children:l.reduce((function(e,o,t){var i=l.slice(t).join("/"),a=null==n?void 0:n.copy;return(0,r.jsxs)("span",Object.assign({className:a&&"file-header-copyable-path"},{children:[e,(0,r.jsxs)("span",Object.assign({title:a&&"Copy ".concat(i),onClick:a&&function(){return a(i)},className:"file-header-path-element"},{children:[o,t<l.length-1?"/":""]}))]}),t)}),(0,r.jsx)("span",{}))}))]}))}var le,ce={Modified:"var(--scm-modified-foreground)",Added:"var(--scm-added-foreground)",Removed:"var(--scm-removed-foreground)",Renamed:"var(--scm-modified-foreground)",Copied:"var(--scm-added-foreground)"},de={Modified:"diff-modified",Added:"diff-added",Removed:"diff-removed",Renamed:"diff-renamed",Copied:"diff-renamed"},ue=o(2982),pe=o(2840),fe={small:"16px",medium:"32px",large:"64px"},he=(0,j.ZP)((function(e){var n=e.size,o=void 0===n?"medium":n,t=function(e,n){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)n.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(o[t[r]]=e[t[r]])}return o}(e,["size"]),i=fe[o];return(0,r.jsxs)("svg",Object.assign({height:i,width:i,viewBox:"0 0 16 16",fill:"none"},t,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeOpacity:"0.25",strokeWidth:"2",vectorEffect:"non-scaling-stroke"}),(0,r.jsx)("path",{d:"M15 8a7.002 7.002 0 00-7-7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",vectorEffect:"non-scaling-stroke"})]}))}))(le||(le=(0,y.Z)(["\n @keyframes rotate-keyframes {\n 100% {\n transform: rotate(360deg);\n }\n }\n\n animation: rotate-keyframes 1s linear infinite;\n\n ","\n"])),te);function me(e){var n,o,t=e.beforeLineNumber,i=e.before,a=e.afterLineNumber,s=e.after,l=e.rowType,c=e.path,d=e.openFileToLine;switch(l){case"remove":n="patch-remove-line",o=void 0;break;case"modify":n="patch-remove-line",o="patch-add-line";break;case"add":n=void 0,o="patch-add-line";break;case"common":n=void 0,o=void 0;break;case"expanded":n="patch-expanded",o="patch-expanded"}var u="expanded"!==l;return(0,r.jsxs)("tr",{children:[(0,r.jsx)(ge,{className:n,content:i,lineNumber:t,path:c,side:"LEFT",canComment:u}),(0,r.jsx)(ge,{className:o,content:s,lineNumber:a,path:c,side:"RIGHT",canComment:u,openFileToLine:d})]})}function ge(e){var n=e.className,o=e.content,t=e.lineNumber,i=e.path,a=e.side,s=e.openFileToLine,l="RIGHT"===a?ve:{},c=null!=s&&null!=t,d=(null!=n?" ".concat(n,"-number"):"")+(c?" clickable":"");return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(re,Object.assign({as:"td",className:"lineNumber".concat(d),"data-line-number":t,"data-path":i,"data-side":a,onClick:c?function(){return s(t)}:void 0},l,{children:t})),(0,r.jsx)("td",Object.assign({className:n},{children:o}))]})}he.displayName="Spinner";var ve={borderLeftWidth:"1px",borderLeftStyle:"solid",borderLeftColor:"border.default"},be=p.memo((function(e){var n,o=e.ctx,i=e.path,a=e.patch,s=e.preamble,l=(0,p.useState)(!1),c=(0,t.Z)(l,2),d=c[0],u=c[1],f=(0,p.useState)((function(){return new Set})),h=(0,t.Z)(f,2),m=h[0],g=h[1],v=(0,p.useCallback)((function(e){var n=new Set(m);n.add(e),g(n)}),[m,g]),b=null!==(n=o.translate)&&void 0!==n?n:function(e){return e},x="/dev/null"===a.newFileName,y=a.hunks,j=y.length-1,O=(0,ue.Z)(null!=s?s:[]);return!x||d?y.forEach((function(e,n){if(0===n&&(1!==e.oldStart||1!==e.newStart)){var a="s0";if(m.has(a)){var s={id:o.id,start:1,numLines:e.oldStart-1};O.push((0,r.jsx)(Oe,{ctx:o,range:s,path:i,beforeLineStart:1,afterLineStart:1,t:b},a))}else{var l=Math.max(e.oldStart,e.newStart)-1;O.push((0,r.jsx)(je,{numLines:l,onExpand:function(){return v(a)},t:b},a))}}if(function(e,n,o,i){var a=e.oldStart,s=e.newStart,l=function(e){var n=[],o={common:[],removed:[],added:[]};return e.forEach((function(e){var t=e.charAt(0),r=e.slice(1);" "===t?(function(e){return 0!==e.removed.length||0!==e.added.length}(o)&&(n.push(o),o={common:[],removed:[],added:[]}),o.common.push(r)):"-"===t?o.removed.push(r):"+"===t&&o.added.push(r)})),n.push(o),n}(e.lines),c=a,d=s;l.forEach((function(e){var a=e.common,s=e.removed,l=e.added;xe(a,n,"common",c,d,o,i),c+=a.length,d+=a.length;for(var u=Math.max(s.length,l.length),p=0;p<u;++p){var f=s[p],h=l[p];if(null!=f&&null!=h){var m=ye(f,h),g=(0,t.Z)(m,2),v=g[0],b=g[1];o.push((0,r.jsx)(me,{beforeLineNumber:c,before:v,afterLineNumber:d,after:b,rowType:"modify",path:n,openFileToLine:i},"".concat(c,"/").concat(d))),++c,++d}else null!=f?(o.push((0,r.jsx)(me,{beforeLineNumber:c,before:f,afterLineNumber:null,after:null,rowType:"remove",path:n,openFileToLine:i},"".concat(c,"/"))),++c):(o.push((0,r.jsx)(me,{beforeLineNumber:null,before:null,afterLineNumber:d,after:h,rowType:"add",path:n,openFileToLine:i},"/".concat(d))),++d)}}))}(e,i,O,o.openFileToLine),n!==j){var c=y[n+1],d="s".concat(e.oldStart);if(m.has(d)){var u=e.oldStart+e.oldLines,p=c.oldStart-u,f={id:o.id,start:u,numLines:p};O.push((0,r.jsx)(Oe,{ctx:o,range:f,path:i,beforeLineStart:e.oldStart+e.oldLines,afterLineStart:e.newStart+e.newLines,t:b},d))}else{var h=c.oldStart-e.oldLines-e.oldStart;O.push((0,r.jsx)(je,{numLines:h,onExpand:function(){return v(d)},t:b},d))}}})):O.push((0,r.jsx)(Se,{children:(0,r.jsxs)(re,Object.assign({display:"inline-block",onClick:function(){return u(!0)},padding:1,sx:{cursor:"pointer",":hover":{bg:"accent.emphasis",color:"fg.onEmphasis"}}},{children:[(0,r.jsx)(ie.NoM,{size:16}),(0,r.jsx)(ae,Object.assign({paddingX:4},{children:"Show deleted file"})),(0,r.jsx)(ie.NoM,{size:16})]}))},"show-deleted")),(0,r.jsxs)("table",Object.assign({className:"SplitDiffView-hunk-table"},{children:[(0,r.jsxs)("colgroup",{children:[(0,r.jsx)("col",{width:50}),(0,r.jsx)("col",{width:"50%"}),(0,r.jsx)("col",{width:50}),(0,r.jsx)("col",{width:"50%"})]}),(0,r.jsx)("tbody",{children:O})]}))}));function xe(e,n,o,t,i,a,s){var l=t,c=i;e.forEach((function(e){a.push((0,r.jsx)(me,{beforeLineNumber:l,before:e,afterLineNumber:c,after:e,rowType:o,path:n,openFileToLine:s},"".concat(l,"/").concat(c))),++l,++c}))}function ye(e,n){if(e.length+n.length>300)return[e,n];var o=(0,pe.Kx)(e,n),t=[],i=[];return o.forEach((function(e,n){var o=e.added,a=e.removed,s=e.value;o?i.push((0,r.jsx)("span",Object.assign({className:"patch-add-word"},{children:s}),n)):a?t.push((0,r.jsx)("span",Object.assign({className:"patch-remove-word"},{children:s}),n)):(t.push(s),i.push(s))})),[t,i]}function je(e){var n=e.numLines,o=e.onExpand;if(0===n)return null;var t=1===n?"Expand 1 line":"Expand ".concat(n," lines");return(0,r.jsx)(Se,{children:(0,r.jsxs)(re,Object.assign({display:"inline-block",onClick:o,padding:1,sx:{cursor:"pointer",":hover":{bg:"accent.emphasis",color:"fg.onEmphasis"}}},{children:[(0,r.jsx)(ie.NoM,{size:16}),(0,r.jsx)(ae,Object.assign({paddingX:4},{children:t})),(0,r.jsx)(ie.NoM,{size:16})]}))})}var Oe=(0,d.Pi)((function(e){var n=e.ctx,o=e.path,t=e.range,i=e.beforeLineStart,a=e.afterLineStart,s=n.atoms.lineRange(t).get();switch(s.state){case"fulfilled":var l=[];return xe(s.value,o,"expanded",i,a,l,n.openFileToLine),(0,r.jsx)(r.Fragment,{children:l});case"pending":return(0,r.jsx)(Se,{children:(0,r.jsx)(re,Object.assign({padding:1,display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"},{children:(0,r.jsxs)(re,Object.assign({display:"flex",alignItems:"center"},{children:[(0,r.jsx)(he,{size:"small"}),(0,r.jsx)(ae,Object.assign({marginLeft:2},{children:"Loading..."}))]}))}))});case"rejected":return(0,r.jsx)(Se,{children:(0,r.jsx)(re,Object.assign({padding:1,display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"},{children:(0,r.jsx)(re,Object.assign({display:"flex",alignItems:"center"},{children:(0,r.jsxs)(ae,{children:["Error:"," ",s.value.message]})}))}))})}}));function Se(e){var n=e.children;return(0,r.jsx)(re,Object.assign({as:"tr",bg:"accent.subtle",color:"fg.muted",height:12},{children:(0,r.jsx)(re,Object.assign({as:"td",colSpan:4,className:"separator"},{children:n}))}))}function we(e){var n,o,t,i,s=e.ctx,l=e.path,c=e.patch,d=null!==(o=null!==(n=c.newFileName)&&void 0!==n?n:c.oldFileName)&&void 0!==o?o:"/dev/null",u=be,p=[];return c.type===a.DiffType.Added&&p.push((0,r.jsx)(Ce,{children:"This file was added"},"added")),c.type===a.DiffType.Removed&&p.push((0,r.jsx)(Ce,{children:"This file was removed"},"deleted")),c.type===a.DiffType.Renamed&&p.push((0,r.jsxs)(Ce,{children:["This file was renamed from"," ",null!==(t=c.oldFileName)&&void 0!==t?t:""]},"renamed")),c.type===a.DiffType.Copied&&p.push((0,r.jsxs)(Ce,{children:["This file was copied from"," ",null!==(i=c.oldFileName)&&void 0!==i?i:""]},"copied")),(0,r.jsxs)(re,Object.assign({className:"split-diff-view",borderWidth:"1px",borderStyle:"solid",borderColor:"border.default",borderRadius:2},{children:[(0,r.jsx)(se,{ctx:s,path:d,diffType:c.type}),(0,r.jsx)(u,{ctx:s,path:l,patch:c,preamble:p})]}))}function Ce(e){var n=e.children;return(0,r.jsx)(re,Object.assign({as:"tr",bg:"attention.subtle",color:"fg.muted",height:12},{children:(0,r.jsx)(re,Object.assign({as:"td",colSpan:4,className:"separator"},{children:(0,r.jsx)(re,Object.assign({padding:1},{children:n}))}))}))}var ke=p.memo((0,d.Pi)((function(){var e=q().theme;return(0,r.jsx)("style",{children:"\n.patch-word-begin {\n border-top-left-radius: .2em;\n border-bottom-left-radius: .2em;\n}\n\n.patch-word-end {\n border-top-right-radius: .2em;\n border-bottom-right-radius: .2em;\n}\n\n.patch-add-line {\n background-color: ".concat(null==e?void 0:e.colors.diffBlob.addition.lineBg,";\n}\n\n.patch-add-line-number {\n color: ").concat(null==e?void 0:e.colors.diffBlob.addition.numText,";\n background-color: ").concat(null==e?void 0:e.colors.diffBlob.addition.numBg,";\n}\n\n.patch-add-word {\n background-color: ").concat(null==e?void 0:e.colors.diffBlob.addition.wordBg,";\n}\n\n.patch-remove-line {\n background-color: ").concat(null==e?void 0:e.colors.diffBlob.deletion.lineBg,";\n}\n\n.patch-remove-line-number {\n color: ").concat(null==e?void 0:e.colors.diffBlob.deletion.numText,";\n background-color: ").concat(null==e?void 0:e.colors.diffBlob.deletion.numBg,";\n}\n\n.patch-remove-word {\n background-color: ").concat(null==e?void 0:e.colors.diffBlob.deletion.wordBg,";\n}\n\n.patch-expanded, .patch-expanded-number {\n background-color: ").concat(null==e?void 0:e.colors.canvas.subtle,";\n}\n\n.patch-expanded-number {\n color: ").concat(null==e?void 0:e.colors.fg.subtle,";\n}\n\n.SplitDiffView-hunk-table td {\n font-family: ").concat(null==e?void 0:e.fonts.mono,"\n}\n\n.lineNumber.clickable {\n cursor: pointer;\n}\n\n.lineNumber.clickable:hover {\n text-decoration: underline;\n}\n/**\n * pl = prettylights theme\n *\n * Mapping from CSS class name to Primer color deduced from a combination of:\n * https://cdn.jsdelivr.net/npm/github-syntax-theme-generator@0.5.0/build/css/github-light.css\n * https://primer.style/react/theme-reference\n *\n * Though it is a bit confusing because github-light.css defines some classes\n * multiple times, such as .pl-s.\n */\n\n.pl-ba {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.brackethighlighterAngle,";\n}\n\n.pl-bu {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.brackethighlighterUnmatched,";\n}\n\n.pl-c {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.comment,";\n}\n\n.pl-c1 {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.constant,";\n}\n\n.pl-c2 {\n background-color: ").concat(null==e?void 0:e.colors.prettylights.syntax.carriageReturnBg,";\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.carriageReturnText,';\n}\n\n.pl-c2::before {\n content: "^M";\n}\n\n.pl-corl {\n color: ').concat(null==e?void 0:e.colors.prettylights.syntax.constantOtherReferenceLink,";\n text-decoration: underline;\n}\n\n.pl-e, .pl-en {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.entity,";\n}\n\n.pl-ent {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.entityTag,";\n}\n\n.pl-ii {\n background-color: ").concat(null==e?void 0:e.colors.prettylights.syntax.invalidIllegalBg,";\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.invalidIllegalText,";\n}\n\n.pl-k {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.keyword,";\n}\n\n.pl-s, .pl-pds {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.string,";\n}\n\n.pl-sg {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.sublimelinterGutterMark,";\n}\n\n.pl-smi {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.storageModifierImport,";\n}\n\n.pl-sr {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.stringRegexp,";\n font-weight: bold;\n}\n\n.pl-v {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.variable,";\n}\n")})}))),Ne=o(5288);function Le(e){return(0,a.parsePatch)(e).filter((function(e){return e.hunks.length>0||null!=e.newFileName||null!=e.oldFileName}))}var Te=(0,v.N)({genKey:function(e){if(e.type===a.ComparisonType.Committed)return"Committed ".concat(e.hash);switch(e.type){case a.ComparisonType.HeadChanges:return"HEAD";case a.ComparisonType.StackChanges:return"STACK";case a.ComparisonType.UncommittedChanges:return"UNCOMMITTED"}},genValue:function(e){return(0,b.u)({default:{isLoading:!0,data:null},setter:function(n){n.isLoading&&ee.H.postMessage({type:"requestComparison",comparison:e})},effects:[function(n){var o=n.setSelf,t=ee.H.onMessageOfType("comparison",(function(n){var t,r;e.type===n.comparison.type&&o({isLoading:!1,data:(t=n.data.diff,r=Le,null==t.error?{value:r(t.value)}:t)})}));return function(){return t.dispose()}}]})}}),Me=(0,v.N)({genKey:function(e){return l()(e)},genValue:function(e){return(0,c.Fl)((function(){ne.ql.get(),ee.H.postMessage(Object.assign({type:"requestComparisonContextLines"},e));var n=new Promise((function(e){var n=ee.H.onMessageOfType("comparisonContextLines",(function(o){e(o.lines),n.dispose()}))}));return(0,u.p4)(n)}))}});function Ee(e){var n=Te(e);return[n.get(),(0,p.useCallback)((function(){(0,c.z)((function(){var e=n.get();n.set(Object.assign(Object.assign({},e),{isLoading:!0}))}))}),[n])]}var Fe=(0,d.Pi)((function(e){var n=e.comparison,o=Ee(n),i=(0,t.Z)(o,2),a=i[0],s=i[1];(0,p.useEffect)(s,[n,s]);var l=g.X.get();return(0,r.jsx)("div",Object.assign({"data-testid":"comparison-view",className:"comparison-view"},{children:(0,r.jsxs)(K,Object.assign({colorMode:"light"===l?"day":"night"},{children:[(0,r.jsx)(ke,{}),(0,r.jsxs)($,Object.assign({className:"comparison-view-base-styles"},{children:[(0,r.jsx)(Pe,{comparison:n}),(0,r.jsx)("div",Object.assign({className:"comparison-view-details"},{children:null==a.data?(0,r.jsx)(m.J,{icon:"loading"}):null!=a.data.error?(0,r.jsx)(h.W,{error:a.data.error,title:"Unable to load comparison"}):0===a.data.value.length?(0,r.jsx)(f,{children:"No Changes"}):a.data.value.map((function(e,o){return(0,r.jsx)(Ie,{diff:e,comparison:n},o)}))}))]}))]}))}))})),Re=[a.ComparisonType.UncommittedChanges,a.ComparisonType.HeadChanges,a.ComparisonType.StackChanges],Pe=(0,d.Pi)((function(e){var n=e.comparison,o=Ee(n),s=(0,t.Z)(o,2),l=s[0],d=s[1];return(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)("div",Object.assign({className:"comparison-view-header"},{children:[(0,r.jsxs)("span",Object.assign({className:"comparison-view-header-group"},{children:[(0,r.jsxs)(i.Yb,Object.assign({"data-testid":"comparison-view-picker",value:n.type,onChange:function(e){var n=Ne._.get();Ne._.set(Object.assign(Object.assign({},n),{comparison:{type:e.currentTarget.value}}))}},{children:[Re.map((function(e){return(0,r.jsx)(i.nH,Object.assign({value:e},{children:(0,a.labelForComparison)({type:e})}),e)})),Re.includes(n.type)?null:(0,r.jsx)(i.nH,Object.assign({value:n.type},{children:(0,a.labelForComparison)(n)}),n.type)]})),(0,r.jsx)(i.vD,Object.assign({title:"Reload this comparison. Comparisons do not refresh automatically.",appearance:"secondary",onClick:d},{children:(0,r.jsx)(m.J,{icon:"refresh","data-testid":"comparison-refresh-button"})})),l.isLoading?(0,r.jsx)(m.J,{icon:"loading","data-testid":"comparison-loading"}):null]})),(0,r.jsx)(i.vD,Object.assign({"data-testid":"close-comparison-view-button",appearance:"icon",onClick:function(){return(0,c.z)((function(){var e=Ne._.get();Ne._.set(Object.assign(Object.assign({},e),{visible:!1}))}))}},{children:(0,r.jsx)(m.J,{icon:"x"})}))]}))})}));function Ie(e){var n,o,t=e.diff,i=e.comparison,s=null!==(o=null!==(n=t.newFileName)&&void 0!==n?n:t.oldFileName)&&void 0!==o?o:"",l={id:{path:s,comparison:i},atoms:{lineRange:Me},copy:x.J.clipboardCopy,openFileToLine:(0,a.comparisonIsAgainstHead)(i)?function(e){return x.J.openFile(s,{line:e})}:void 0};return(0,r.jsx)("div",Object.assign({className:"comparison-view-file"},{children:(0,r.jsx)(we,{ctx:l,patch:t,path:s})}),s)}}}]);
1
+ "use strict";(self.webpackChunkGraphiteInteractive=self.webpackChunkGraphiteInteractive||[]).push([[274],{3274:function(e,n,o){o.r(n),o.d(n,{ComparisonView:function(){return Fe},lineRange:function(){return Me}});var t=o(885),r=o(184),i=(o(5297),o(1072)),a=o(88),s=o(2248),l=o.n(s),c=o(4098),d=o(32),u=o(4510),p=o(2791);function h(e){var n=e.children;return(0,r.jsx)("div",Object.assign({className:"empty-state"},{children:(0,r.jsx)("div",{children:n})}))}var f=o(6815),m=o(51),g=o(8122),v=o(7338),b=o(1485),x=o(4447),y=o(168),j=o(6444),w=(o(2986),o(4728)),O=o(4942),S=o(5830),C=o.n(S),k=o(763);function T(e){return e.map((function(e){return e.includes(" ")?'"'.concat(e,'"'):e})).join(", ")}function N(e){return"string"==typeof e&&/(inset\s|)([0-9.]+(\w*)\s){1,4}(rgb[a]?\(.*\)|\w+)/.test(e)}function L(e,n){return Array.isArray(e)?e.filter(n):Object.entries(e).reduce((function(e,o){var r=(0,t.Z)(o,2),i=r[0],a=r[1];if((0,k.isObject)(a)){var s=L(a,n);(0,k.isEmpty)(s)||(e[i]=s)}else n(a)&&(e[i]=a);return e}),{})}function M(e){return e.scale,function(e,n){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)n.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(o[t[r]]=e[t[r]])}return o}(e,["scale"])}var E,F,R=C().typography.normal.lineHeight,P={animation:{easeOutCubic:"cubic-bezier(0.33, 1, 0.68, 1)"},borderWidths:[0,"1px"],breakpoints:["544px","768px","1012px","1280px"],fonts:{normal:T(["-apple-system","BlinkMacSystemFont","Segoe UI","Noto Sans","Helvetica","Arial","sans-serif","Apple Color Emoji","Segoe UI Emoji"]),mono:T(["SFMono-Regular","Consolas","Liberation Mono","Menlo","Courier","monospace"])},fontSizes:["12px","14px","16px","20px","24px","32px","40px","48px"],fontWeights:{light:300,normal:400,semibold:500,bold:600},lineHeights:R,radii:["0","3px","6px","100px"],sizes:{small:"544px",medium:"768px",large:"1012px",xlarge:"1280px"},space:["0","4px","8px","16px","24px","32px","40px","48px","64px","80px","96px","112px","128px"],colorSchemes:Object.entries(C().colors).reduce((function(e,n){var o=(0,t.Z)(n,2),r=o[0],i=function(e){return{colors:L(e,(function(e){return function(e){return!(N(e)||!e.startsWith("#")&&!e.startsWith("rgb")&&!e.startsWith("hsl"))}(e)})),shadows:L(e,(function(e){return N(e)}))}}(o[1]),a=i.colors,s=i.shadows;return Object.assign(Object.assign({},e),(0,O.Z)({},r,{colors:M(a),shadows:M(s)}))}),{})},B=(w.U2,w.qC),I=w.By,Z=B(w.Dh,w.$_,w.jf),H=I({whiteSpace:{property:"whiteSpace"}}),D=B(w.cp,H),_=(B(w.Cg,w.AF),w.bK,o(9948)),A=o.n(_),z=o(4164),W="light",J="dark",U=p.createContext({setColorMode:function(){return null},setDayScheme:function(){return null},setNightScheme:function(){return null}}),K=function(e){var n,o,i,a,s,l,c,d,u=e.children,h=function(e,n){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)n.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(o[t[r]]=e[t[r]])}return o}(e,["children"]),f=q(),m=f.theme,g=f.colorMode,v=f.dayScheme,b=f.nightScheme,x=null!==(o=null!==(n=h.theme)&&void 0!==n?n:m)&&void 0!==o?o:P,y=function(){var e;try{var n=null===(e=document.getElementById("__PRIMER_DATA__"))||void 0===e?void 0:e.textContent;if(n)return JSON.parse(n)}catch(e){}return{}}(),w=y.resolvedServerColorMode,O=p.useRef(w),S=p.useState(null!==(a=null!==(i=h.colorMode)&&void 0!==i?i:g)&&void 0!==a?a:"day"),C=(0,t.Z)(S,2),k=C[0],T=C[1],N=p.useState(null!==(l=null!==(s=h.dayScheme)&&void 0!==s?s:v)&&void 0!==l?l:W),L=(0,t.Z)(N,2),M=L[0],E=L[1],F=p.useState(null!==(d=null!==(c=h.nightScheme)&&void 0!==c?c:b)&&void 0!==d?d:J),R=(0,t.Z)(F,2),B=R[0],I=R[1],Z=function(){var e=p.useState(G),n=(0,t.Z)(e,2),o=n[0],r=n[1];return p.useEffect((function(){var e,n=null===(e=null===window||void 0===window?void 0:window.matchMedia)||void 0===e?void 0:e.call(window,"(prefers-color-scheme: dark)");function o(e){var n=e.matches;r(n?"night":"day")}if(n){if(void 0!==n.addEventListener)return n.addEventListener("change",o),function(){n.removeEventListener("change",o)};if(void 0!==n.addListener)return n.addListener(o),function(){n.removeListener(o)}}}),[]),o}(),H=O.current||V(k,Z),D=function(e,n,o){switch(e){case"day":case"light":return n;case"dark":case"night":return o}}(H,M,B),_=p.useMemo((function(){return function(e,n){if(!e.colorSchemes)return{resolvedTheme:e,resolvedColorScheme:void 0};if(!e.colorSchemes[n]){console.error("`".concat(n,"` scheme not defined in `theme.colorSchemes`"));var o=Object.keys(e.colorSchemes)[0];return{resolvedTheme:A()(e,e.colorSchemes[o]),resolvedColorScheme:o}}return{resolvedTheme:A()(e,e.colorSchemes[n]),resolvedColorScheme:n}}(x,D)}),[x,D]),K=_.resolvedTheme,X=_.resolvedColorScheme;return p.useEffect((function(){var e=V(k,Z);O.current&&(O.current!==e&&window.setTimeout((function(){z.flushSync((function(){T(e)})),T(k)})),O.current=null)}),[k,Z]),p.useEffect((function(){var e,n;T(null!==(n=null!==(e=h.colorMode)&&void 0!==e?e:g)&&void 0!==n?n:"day")}),[h.colorMode,g]),p.useEffect((function(){var e,n;E(null!==(n=null!==(e=h.dayScheme)&&void 0!==e?e:v)&&void 0!==n?n:W)}),[h.dayScheme,v]),p.useEffect((function(){var e,n;I(null!==(n=null!==(e=h.nightScheme)&&void 0!==e?e:b)&&void 0!==n?n:J)}),[h.nightScheme,b]),(0,r.jsx)(U.Provider,Object.assign({value:{theme:K,colorScheme:D,colorMode:k,resolvedColorMode:H,resolvedColorScheme:X,dayScheme:M,nightScheme:B,setColorMode:T,setDayScheme:E,setNightScheme:I}},{children:(0,r.jsxs)(j.f6,Object.assign({theme:K},{children:[u,h.preventSSRMismatch?(0,r.jsx)("script",{type:"application/json",id:"__PRIMER_DATA__",dangerouslySetInnerHTML:{__html:JSON.stringify({resolvedServerColorMode:H})}}):null]}))}))};function q(){return p.useContext(U)}function G(){var e,n;return"undefined"!=typeof window&&(null===(n=null===(e=window.matchMedia)||void 0===e?void 0:e.call(window,"(prefers-color-scheme: dark)"))||void 0===n?void 0:n.matches)?"night":"day"}function V(e,n){return"auto"===e?n:e}var X=(0,j.vJ)(E||(E=(0,y.Z)(["\n * { box-sizing: border-box; }\n body { margin: 0; }\n table { border-collapse: collapse; }\n input { color-scheme: ",'; }\n\n [role="button"]:focus:not(:focus-visible):not(.focus-visible),\n [role="tabpanel"][tabindex="0"]:focus:not(:focus-visible):not(.focus-visible),\n button:focus:not(:focus-visible):not(.focus-visible),\n summary:focus:not(:focus-visible):not(.focus-visible),\n a:focus:not(:focus-visible):not(.focus-visible) {\n outline: none;\n box-shadow: none;\n }\n\n [tabindex="0"]:focus:not(:focus-visible):not(.focus-visible),\n details-dialog:focus:not(:focus-visible):not(.focus-visible) {\n outline: none;\n }\n'])),(function(e){return e.colorScheme})),Y=j.ZP.div(F||(F=(0,y.Z)(["\n ",";\n ",";\n"])),D,Z);function $(e){var n=e.children,o=e.color,t=void 0===o?"fg.default":o,i=e.fontFamily,a=void 0===i?"normal":i,s=e.lineHeight,l=void 0===s?"default":s,c=function(e,n){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)n.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(o[t[r]]=e[t[r]])}return o}(e,["children","color","fontFamily","lineHeight"]),d=q(),u=d.colorScheme,p=d.dayScheme,h=d.nightScheme;return(0,r.jsxs)(Y,Object.assign({},c,{color:t,fontFamily:a,lineHeight:l,"data-portal-root":!0,"data-color-mode":(null==u?void 0:u.includes("dark"))?"dark":"light","data-light-theme":p,"data-dark-theme":h},{children:[(0,r.jsx)(X,{colorScheme:(null==u?void 0:u.includes("dark"))?"dark":"light"}),n]}))}var Q,ee=o(1828),ne=o(2104),oe=o(8490),te=function(e){return(0,oe.ZP)(e.sx)},re=j.ZP.div(w.Dh,w.$_,w.cp,w.bK,w.GQ,w.eC,w.Oq,w.Cg,w.FK,w.AF,te),ie=o(2909),ae=j.ZP.span(Q||(Q=(0,y.Z)(["\n ",";\n ",";\n ",";\n"])),D,Z,te);function se(e){var n=e.ctx,o=e.path,t=e.diffType,i=e.open,a=e.onChangeOpen,s=void 0===t?"fg.muted":ce[t],l=o.split("/");return(0,r.jsxs)(re,Object.assign({className:"split-diff-view-file-header",display:"flex",alignItems:"center",bg:"accent.subtle",color:s,paddingX:2,paddingY:1,lineHeight:2,backgroundColor:"canvas.subtle",borderTopRightRadius:2,borderTopLeftRadius:2,borderBottomColor:"border.default",borderBottomStyle:"solid",borderBottomWidth:"1px"},{children:[a&&(0,r.jsx)(re,Object.assign({paddingRight:2,onClick:function(){return a(!i)},sx:{cursor:"pointer"}},{children:i?(0,r.jsx)(ie.g8U,{size:24}):(0,r.jsx)(ie.v4q,{size:24})})),void 0!==t&&(0,r.jsx)(m.J,{icon:de[t]}),(0,r.jsx)(ae,Object.assign({fontFamily:"mono",fontSize:12},{children:l.reduce((function(e,o,t){var i=l.slice(t).join("/"),a=null==n?void 0:n.copy;return(0,r.jsxs)("span",Object.assign({className:a&&"file-header-copyable-path"},{children:[e,(0,r.jsxs)("span",Object.assign({title:a&&"Copy ".concat(i),onClick:a&&function(){return a(i)},className:"file-header-path-element"},{children:[o,t<l.length-1?"/":""]}))]}),t)}),(0,r.jsx)("span",{}))}))]}))}var le,ce={Modified:"var(--scm-modified-foreground)",Added:"var(--scm-added-foreground)",Removed:"var(--scm-removed-foreground)",Renamed:"var(--scm-modified-foreground)",Copied:"var(--scm-added-foreground)"},de={Modified:"diff-modified",Added:"diff-added",Removed:"diff-removed",Renamed:"diff-renamed",Copied:"diff-renamed"},ue=o(2982),pe=o(2840),he={small:"16px",medium:"32px",large:"64px"},fe=(0,j.ZP)((function(e){var n=e.size,o=void 0===n?"medium":n,t=function(e,n){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(t=Object.getOwnPropertySymbols(e);r<t.length;r++)n.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(e,t[r])&&(o[t[r]]=e[t[r]])}return o}(e,["size"]),i=he[o];return(0,r.jsxs)("svg",Object.assign({height:i,width:i,viewBox:"0 0 16 16",fill:"none"},t,{children:[(0,r.jsx)("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeOpacity:"0.25",strokeWidth:"2",vectorEffect:"non-scaling-stroke"}),(0,r.jsx)("path",{d:"M15 8a7.002 7.002 0 00-7-7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",vectorEffect:"non-scaling-stroke"})]}))}))(le||(le=(0,y.Z)(["\n @keyframes rotate-keyframes {\n 100% {\n transform: rotate(360deg);\n }\n }\n\n animation: rotate-keyframes 1s linear infinite;\n\n ","\n"])),te);function me(e){var n,o,t=e.beforeLineNumber,i=e.before,a=e.afterLineNumber,s=e.after,l=e.rowType,c=e.path,d=e.openFileToLine;switch(l){case"remove":n="patch-remove-line",o=void 0;break;case"modify":n="patch-remove-line",o="patch-add-line";break;case"add":n=void 0,o="patch-add-line";break;case"common":n=void 0,o=void 0;break;case"expanded":n="patch-expanded",o="patch-expanded"}var u="expanded"!==l;return(0,r.jsxs)("tr",{children:[(0,r.jsx)(ge,{className:n,content:i,lineNumber:t,path:c,side:"LEFT",canComment:u}),(0,r.jsx)(ge,{className:o,content:s,lineNumber:a,path:c,side:"RIGHT",canComment:u,openFileToLine:d})]})}function ge(e){var n=e.className,o=e.content,t=e.lineNumber,i=e.path,a=e.side,s=e.openFileToLine,l="RIGHT"===a?ve:{},c=null!=s&&null!=t,d=(null!=n?" ".concat(n,"-number"):"")+(c?" clickable":"");return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(re,Object.assign({as:"td",className:"lineNumber".concat(d),"data-line-number":t,"data-path":i,"data-side":a,onClick:c?function(){return s(t)}:void 0},l,{children:t})),(0,r.jsx)("td",Object.assign({className:n},{children:o}))]})}fe.displayName="Spinner";var ve={borderLeftWidth:"1px",borderLeftStyle:"solid",borderLeftColor:"border.default"},be=p.memo((function(e){var n,o=e.ctx,i=e.path,a=e.patch,s=e.preamble,l=(0,p.useState)(!1),c=(0,t.Z)(l,2),d=c[0],u=c[1],h=(0,p.useState)((function(){return new Set})),f=(0,t.Z)(h,2),m=f[0],g=f[1],v=(0,p.useCallback)((function(e){var n=new Set(m);n.add(e),g(n)}),[m,g]),b=null!==(n=o.translate)&&void 0!==n?n:function(e){return e},x="/dev/null"===a.newFileName,y=a.hunks,j=y.length-1,w=(0,ue.Z)(null!=s?s:[]);return!x||d?y.forEach((function(e,n){if(0===n&&(1!==e.oldStart||1!==e.newStart)){var a="s0";if(m.has(a)){var s={id:o.id,start:1,numLines:e.oldStart-1};w.push((0,r.jsx)(we,{ctx:o,range:s,path:i,beforeLineStart:1,afterLineStart:1,t:b},a))}else{var l=Math.max(e.oldStart,e.newStart)-1;w.push((0,r.jsx)(je,{numLines:l,onExpand:function(){return v(a)},t:b},a))}}if(function(e,n,o,i){var a=e.oldStart,s=e.newStart,l=function(e){var n=[],o={common:[],removed:[],added:[]};return e.forEach((function(e){var t=e.charAt(0),r=e.slice(1);" "===t?(function(e){return 0!==e.removed.length||0!==e.added.length}(o)&&(n.push(o),o={common:[],removed:[],added:[]}),o.common.push(r)):"-"===t?o.removed.push(r):"+"===t&&o.added.push(r)})),n.push(o),n}(e.lines),c=a,d=s;l.forEach((function(e){var a=e.common,s=e.removed,l=e.added;xe(a,n,"common",c,d,o,i),c+=a.length,d+=a.length;for(var u=Math.max(s.length,l.length),p=0;p<u;++p){var h=s[p],f=l[p];if(null!=h&&null!=f){var m=ye(h,f),g=(0,t.Z)(m,2),v=g[0],b=g[1];o.push((0,r.jsx)(me,{beforeLineNumber:c,before:v,afterLineNumber:d,after:b,rowType:"modify",path:n,openFileToLine:i},"".concat(c,"/").concat(d))),++c,++d}else null!=h?(o.push((0,r.jsx)(me,{beforeLineNumber:c,before:h,afterLineNumber:null,after:null,rowType:"remove",path:n,openFileToLine:i},"".concat(c,"/"))),++c):(o.push((0,r.jsx)(me,{beforeLineNumber:null,before:null,afterLineNumber:d,after:f,rowType:"add",path:n,openFileToLine:i},"/".concat(d))),++d)}}))}(e,i,w,o.openFileToLine),n!==j){var c=y[n+1],d="s".concat(e.oldStart);if(m.has(d)){var u=e.oldStart+e.oldLines,p=c.oldStart-u,h={id:o.id,start:u,numLines:p};w.push((0,r.jsx)(we,{ctx:o,range:h,path:i,beforeLineStart:e.oldStart+e.oldLines,afterLineStart:e.newStart+e.newLines,t:b},d))}else{var f=c.oldStart-e.oldLines-e.oldStart;w.push((0,r.jsx)(je,{numLines:f,onExpand:function(){return v(d)},t:b},d))}}})):w.push((0,r.jsx)(Oe,{children:(0,r.jsxs)(re,Object.assign({display:"inline-block",onClick:function(){return u(!0)},padding:1,sx:{cursor:"pointer",":hover":{bg:"accent.emphasis",color:"fg.onEmphasis"}}},{children:[(0,r.jsx)(ie.NoM,{size:16}),(0,r.jsx)(ae,Object.assign({paddingX:4},{children:"Show deleted file"})),(0,r.jsx)(ie.NoM,{size:16})]}))},"show-deleted")),(0,r.jsxs)("table",Object.assign({className:"SplitDiffView-hunk-table"},{children:[(0,r.jsxs)("colgroup",{children:[(0,r.jsx)("col",{width:50}),(0,r.jsx)("col",{width:"50%"}),(0,r.jsx)("col",{width:50}),(0,r.jsx)("col",{width:"50%"})]}),(0,r.jsx)("tbody",{children:w})]}))}));function xe(e,n,o,t,i,a,s){var l=t,c=i;e.forEach((function(e){a.push((0,r.jsx)(me,{beforeLineNumber:l,before:e,afterLineNumber:c,after:e,rowType:o,path:n,openFileToLine:s},"".concat(l,"/").concat(c))),++l,++c}))}function ye(e,n){if(e.length+n.length>300)return[e,n];var o=(0,pe.Kx)(e,n),t=[],i=[];return o.forEach((function(e,n){var o=e.added,a=e.removed,s=e.value;o?i.push((0,r.jsx)("span",Object.assign({className:"patch-add-word"},{children:s}),n)):a?t.push((0,r.jsx)("span",Object.assign({className:"patch-remove-word"},{children:s}),n)):(t.push(s),i.push(s))})),[t,i]}function je(e){var n=e.numLines,o=e.onExpand;if(0===n)return null;var t=1===n?"Expand 1 line":"Expand ".concat(n," lines");return(0,r.jsx)(Oe,{children:(0,r.jsxs)(re,Object.assign({display:"inline-block",onClick:o,padding:1,sx:{cursor:"pointer",":hover":{bg:"accent.emphasis",color:"fg.onEmphasis"}}},{children:[(0,r.jsx)(ie.NoM,{size:16}),(0,r.jsx)(ae,Object.assign({paddingX:4},{children:t})),(0,r.jsx)(ie.NoM,{size:16})]}))})}var we=(0,d.Pi)((function(e){var n=e.ctx,o=e.path,t=e.range,i=e.beforeLineStart,a=e.afterLineStart,s=n.atoms.lineRange(t).get();switch(s.state){case"fulfilled":var l=[];return xe(s.value,o,"expanded",i,a,l,n.openFileToLine),(0,r.jsx)(r.Fragment,{children:l});case"pending":return(0,r.jsx)(Oe,{children:(0,r.jsx)(re,Object.assign({padding:1,display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"},{children:(0,r.jsxs)(re,Object.assign({display:"flex",alignItems:"center"},{children:[(0,r.jsx)(fe,{size:"small"}),(0,r.jsx)(ae,Object.assign({marginLeft:2},{children:"Loading..."}))]}))}))});case"rejected":return(0,r.jsx)(Oe,{children:(0,r.jsx)(re,Object.assign({padding:1,display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"},{children:(0,r.jsx)(re,Object.assign({display:"flex",alignItems:"center"},{children:(0,r.jsxs)(ae,{children:["Error:"," ",s.value.message]})}))}))})}}));function Oe(e){var n=e.children;return(0,r.jsx)(re,Object.assign({as:"tr",bg:"accent.subtle",color:"fg.muted",height:12},{children:(0,r.jsx)(re,Object.assign({as:"td",colSpan:4,className:"separator"},{children:n}))}))}function Se(e){var n,o,t,i,s=e.ctx,l=e.path,c=e.patch,d=null!==(o=null!==(n=c.newFileName)&&void 0!==n?n:c.oldFileName)&&void 0!==o?o:"/dev/null",u=be,p=[];return c.type===a.DiffType.Added&&p.push((0,r.jsx)(Ce,{children:"This file was added"},"added")),c.type===a.DiffType.Removed&&p.push((0,r.jsx)(Ce,{children:"This file was removed"},"deleted")),c.type===a.DiffType.Renamed&&p.push((0,r.jsxs)(Ce,{children:["This file was renamed from"," ",null!==(t=c.oldFileName)&&void 0!==t?t:""]},"renamed")),c.type===a.DiffType.Copied&&p.push((0,r.jsxs)(Ce,{children:["This file was copied from"," ",null!==(i=c.oldFileName)&&void 0!==i?i:""]},"copied")),(0,r.jsxs)(re,Object.assign({className:"split-diff-view",borderWidth:"1px",borderStyle:"solid",borderColor:"border.default",borderRadius:2},{children:[(0,r.jsx)(se,{ctx:s,path:d,diffType:c.type}),(0,r.jsx)(u,{ctx:s,path:l,patch:c,preamble:p})]}))}function Ce(e){var n=e.children;return(0,r.jsx)(re,Object.assign({as:"tr",bg:"attention.subtle",color:"fg.muted",height:12},{children:(0,r.jsx)(re,Object.assign({as:"td",colSpan:4,className:"separator"},{children:(0,r.jsx)(re,Object.assign({padding:1},{children:n}))}))}))}var ke=p.memo((0,d.Pi)((function(){var e=q().theme;return(0,r.jsx)("style",{children:"\n.patch-word-begin {\n border-top-left-radius: .2em;\n border-bottom-left-radius: .2em;\n}\n\n.patch-word-end {\n border-top-right-radius: .2em;\n border-bottom-right-radius: .2em;\n}\n\n.patch-add-line {\n background-color: ".concat(null==e?void 0:e.colors.diffBlob.addition.lineBg,";\n}\n\n.patch-add-line-number {\n color: ").concat(null==e?void 0:e.colors.diffBlob.addition.numText,";\n background-color: ").concat(null==e?void 0:e.colors.diffBlob.addition.numBg,";\n}\n\n.patch-add-word {\n background-color: ").concat(null==e?void 0:e.colors.diffBlob.addition.wordBg,";\n}\n\n.patch-remove-line {\n background-color: ").concat(null==e?void 0:e.colors.diffBlob.deletion.lineBg,";\n}\n\n.patch-remove-line-number {\n color: ").concat(null==e?void 0:e.colors.diffBlob.deletion.numText,";\n background-color: ").concat(null==e?void 0:e.colors.diffBlob.deletion.numBg,";\n}\n\n.patch-remove-word {\n background-color: ").concat(null==e?void 0:e.colors.diffBlob.deletion.wordBg,";\n}\n\n.patch-expanded, .patch-expanded-number {\n background-color: ").concat(null==e?void 0:e.colors.canvas.subtle,";\n}\n\n.patch-expanded-number {\n color: ").concat(null==e?void 0:e.colors.fg.subtle,";\n}\n\n.SplitDiffView-hunk-table td {\n font-family: ").concat(null==e?void 0:e.fonts.mono,"\n}\n\n.lineNumber.clickable {\n cursor: pointer;\n}\n\n.lineNumber.clickable:hover {\n text-decoration: underline;\n}\n/**\n * pl = prettylights theme\n *\n * Mapping from CSS class name to Primer color deduced from a combination of:\n * https://cdn.jsdelivr.net/npm/github-syntax-theme-generator@0.5.0/build/css/github-light.css\n * https://primer.style/react/theme-reference\n *\n * Though it is a bit confusing because github-light.css defines some classes\n * multiple times, such as .pl-s.\n */\n\n.pl-ba {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.brackethighlighterAngle,";\n}\n\n.pl-bu {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.brackethighlighterUnmatched,";\n}\n\n.pl-c {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.comment,";\n}\n\n.pl-c1 {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.constant,";\n}\n\n.pl-c2 {\n background-color: ").concat(null==e?void 0:e.colors.prettylights.syntax.carriageReturnBg,";\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.carriageReturnText,';\n}\n\n.pl-c2::before {\n content: "^M";\n}\n\n.pl-corl {\n color: ').concat(null==e?void 0:e.colors.prettylights.syntax.constantOtherReferenceLink,";\n text-decoration: underline;\n}\n\n.pl-e, .pl-en {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.entity,";\n}\n\n.pl-ent {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.entityTag,";\n}\n\n.pl-ii {\n background-color: ").concat(null==e?void 0:e.colors.prettylights.syntax.invalidIllegalBg,";\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.invalidIllegalText,";\n}\n\n.pl-k {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.keyword,";\n}\n\n.pl-s, .pl-pds {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.string,";\n}\n\n.pl-sg {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.sublimelinterGutterMark,";\n}\n\n.pl-smi {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.storageModifierImport,";\n}\n\n.pl-sr {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.stringRegexp,";\n font-weight: bold;\n}\n\n.pl-v {\n color: ").concat(null==e?void 0:e.colors.prettylights.syntax.variable,";\n}\n")})}))),Te=o(5288);function Ne(e){return(0,a.parsePatch)(e).filter((function(e){return e.hunks.length>0||null!=e.newFileName||null!=e.oldFileName}))}var Le=(0,v.N)({genKey:function(e){switch(e.type){case a.ComparisonType.Range:throw new Error("Version comparison not supported");case a.ComparisonType.Committed:return"Committed ".concat(e.hash);case a.ComparisonType.Commit:throw new Error("Commit comparison not supported");case a.ComparisonType.HeadChanges:return"HEAD";case a.ComparisonType.StackChanges:return"STACK";case a.ComparisonType.UncommittedChanges:return"UNCOMMITTED"}},genValue:function(e){return(0,b.u)({default:{isLoading:!0,data:null},setter:function(n){n.isLoading&&ee.H.postMessage({type:"requestComparison",comparison:e})},effects:[function(n){var o=n.setSelf,t=ee.H.onMessageOfType("comparison",(function(n){var t,r;e.type===n.comparison.type&&o({isLoading:!1,data:(t=n.data.diff,r=Ne,null==t.error?{value:r(t.value)}:t)})}));return function(){return t.dispose()}}]})}}),Me=(0,v.N)({genKey:function(e){return l()(e)},genValue:function(e){return(0,c.Fl)((function(){ne.ql.get(),ee.H.postMessage(Object.assign({type:"requestComparisonContextLines"},e));var n=new Promise((function(e){var n=ee.H.onMessageOfType("comparisonContextLines",(function(o){e(o.lines),n.dispose()}))}));return(0,u.p4)(n)}))}});function Ee(e){var n=Le(e);return[n.get(),(0,p.useCallback)((function(){(0,c.z)((function(){var e=n.get();n.set(Object.assign(Object.assign({},e),{isLoading:!0}))}))}),[n])]}var Fe=(0,d.Pi)((function(e){var n=e.comparison,o=Ee(n),i=(0,t.Z)(o,2),a=i[0],s=i[1];(0,p.useEffect)(s,[n,s]);var l=g.X.get();return(0,r.jsx)("div",Object.assign({"data-testid":"comparison-view",className:"comparison-view"},{children:(0,r.jsxs)(K,Object.assign({colorMode:"light"===l?"day":"night"},{children:[(0,r.jsx)(ke,{}),(0,r.jsxs)($,Object.assign({className:"comparison-view-base-styles"},{children:[(0,r.jsx)(Pe,{comparison:n}),(0,r.jsx)("div",Object.assign({className:"comparison-view-details"},{children:null==a.data?(0,r.jsx)(m.J,{icon:"loading"}):null!=a.data.error?(0,r.jsx)(f.W,{error:a.data.error,title:"Unable to load comparison"}):0===a.data.value.length?(0,r.jsx)(h,{children:"No Changes"}):a.data.value.map((function(e,o){return(0,r.jsx)(Be,{diff:e,comparison:n},o)}))}))]}))]}))}))})),Re=[a.ComparisonType.UncommittedChanges,a.ComparisonType.HeadChanges,a.ComparisonType.StackChanges],Pe=(0,d.Pi)((function(e){var n=e.comparison,o=Ee(n),s=(0,t.Z)(o,2),l=s[0],d=s[1];return(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)("div",Object.assign({className:"comparison-view-header"},{children:[(0,r.jsxs)("span",Object.assign({className:"comparison-view-header-group"},{children:[(0,r.jsxs)(i.Yb,Object.assign({"data-testid":"comparison-view-picker",value:n.type,onChange:function(e){var n=Te._.get();Te._.set(Object.assign(Object.assign({},n),{comparison:{type:e.currentTarget.value}}))}},{children:[Re.map((function(e){return(0,r.jsx)(i.nH,Object.assign({value:e},{children:(0,a.labelForComparison)({type:e})}),e)})),Re.includes(n.type)?null:(0,r.jsx)(i.nH,Object.assign({value:n.type},{children:(0,a.labelForComparison)(n)}),n.type)]})),(0,r.jsx)(i.vD,Object.assign({title:"Reload this comparison. Comparisons do not refresh automatically.",appearance:"secondary",onClick:d},{children:(0,r.jsx)(m.J,{icon:"refresh","data-testid":"comparison-refresh-button"})})),l.isLoading?(0,r.jsx)(m.J,{icon:"loading","data-testid":"comparison-loading"}):null]})),(0,r.jsx)(i.vD,Object.assign({"data-testid":"close-comparison-view-button",appearance:"icon",onClick:function(){return(0,c.z)((function(){var e=Te._.get();Te._.set(Object.assign(Object.assign({},e),{visible:!1}))}))}},{children:(0,r.jsx)(m.J,{icon:"x"})}))]}))})}));function Be(e){var n,o,t=e.diff,i=e.comparison,a=null!==(o=null!==(n=t.newFileName)&&void 0!==n?n:t.oldFileName)&&void 0!==o?o:"",s={id:{path:a,comparison:i},atoms:{lineRange:Me},copy:x.J.clipboardCopy,openFileToLine:Ie(i)?function(e){return x.J.openFile(a,{line:e})}:void 0};return(0,r.jsx)("div",Object.assign({className:"comparison-view-file"},{children:(0,r.jsx)(Se,{ctx:s,patch:t,path:a})}),a)}function Ie(e){switch(e.type){case a.ComparisonType.UncommittedChanges:case a.ComparisonType.HeadChanges:case a.ComparisonType.StackChanges:return!0;case a.ComparisonType.Committed:case a.ComparisonType.Commit:case a.ComparisonType.Range:return!1}}}}]);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/274.d7df68a1.chunk.js","mappings":"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","sources":["lib/design/EmptyState.tsx","lib/primer/utils/theme.ts","lib/primer/theme.ts","lib/primer/constants.ts","lib/primer/ThemeProvider.tsx","lib/primer/BaseStyles.tsx","lib/primer/sx.ts","lib/primer/Box.tsx","lib/primer/Text.tsx","parts/split-diff-view/SplitDiffFileHeader.tsx","lib/primer/Spinner.tsx","parts/split-diff-view/SplitDiffRow.tsx","parts/split-diff-view/SplitDiffHunk.tsx","parts/split-diff-view/organizeLinesIntoGroups.ts","parts/split-diff-view/index.tsx","parts/split-diff-view/PrimerStyles.tsx","parts/comparison-view/ComparisonView.tsx"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport \"./EmptyState.scss\";\nexport function EmptyState({ children }) {\n return (_jsx(\"div\", Object.assign({ className: \"empty-state\" }, { children: _jsx(\"div\", { children: children }) })));\n}\n","// Utility functions used in theme-preval.js\n// This file needs to be a JavaScript file using CommonJS to be compatible with preval\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { isEmpty, isObject } from \"lodash\";\nexport function fontStack(fonts) {\n return fonts\n .map((font) => (font.includes(\" \") ? `\"${font}\"` : font))\n .join(\", \");\n}\n// The following functions are a temporary measure for splitting shadow values out from the colors object.\n// Eventually, we will push these structural changes upstream to primer/primitives so this data manipulation\n// will not be needed.\nfunction isShadowValue(value) {\n return (typeof value === \"string\" &&\n /(inset\\s|)([0-9.]+(\\w*)\\s){1,4}(rgb[a]?\\(.*\\)|\\w+)/.test(value));\n}\nfunction isColorValue(value) {\n if (isShadowValue(value))\n return false;\n if (value.startsWith(\"#\"))\n return true; // #hex\n if (value.startsWith(\"rgb\"))\n return true; // rgb, rgba\n if (value.startsWith(\"hsl\"))\n return true; // hsl, hsla\n return false;\n}\nfunction filterObject(obj, predicate) {\n if (Array.isArray(obj)) {\n return obj.filter(predicate);\n }\n return Object.entries(obj).reduce((acc, [key, value]) => {\n if (isObject(value)) {\n const result = filterObject(value, predicate);\n // Don't include empty objects or arrays\n if (!isEmpty(result)) {\n acc[key] = result;\n }\n }\n else if (predicate(value)) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\nexport function partitionColors(colors) {\n return {\n colors: filterObject(colors, (value) => isColorValue(value)),\n shadows: filterObject(colors, (value) => isShadowValue(value)),\n };\n}\nexport function omitScale(obj) {\n const { scale } = obj, rest = __rest(obj, [\"scale\"]);\n void scale;\n return rest;\n}\n","import primitives from \"@primer/primitives\";\nimport { fontStack, omitScale, partitionColors } from \"./utils/theme\";\nconst { lineHeight: lineHeights } = primitives.typography.normal;\nconst animation = {\n easeOutCubic: \"cubic-bezier(0.33, 1, 0.68, 1)\",\n};\nconst breakpoints = [\"544px\", \"768px\", \"1012px\", \"1280px\"];\nconst fonts = {\n normal: fontStack([\n \"-apple-system\",\n \"BlinkMacSystemFont\",\n \"Segoe UI\",\n \"Noto Sans\",\n \"Helvetica\",\n \"Arial\",\n \"sans-serif\",\n \"Apple Color Emoji\",\n \"Segoe UI Emoji\",\n ]),\n mono: fontStack([\n \"SFMono-Regular\",\n \"Consolas\",\n \"Liberation Mono\",\n \"Menlo\",\n \"Courier\",\n \"monospace\",\n ]),\n};\nconst fontWeights = {\n light: 300,\n normal: 400,\n semibold: 500,\n bold: 600,\n};\nconst borderWidths = [0, \"1px\"];\nconst radii = [\"0\", \"3px\", \"6px\", \"100px\"];\nconst sizes = {\n small: \"544px\",\n medium: \"768px\",\n large: \"1012px\",\n xlarge: \"1280px\",\n};\nconst fontSizes = [\n \"12px\",\n \"14px\",\n \"16px\",\n \"20px\",\n \"24px\",\n \"32px\",\n \"40px\",\n \"48px\",\n];\nconst space = [\n \"0\",\n \"4px\",\n \"8px\",\n \"16px\",\n \"24px\",\n \"32px\",\n \"40px\",\n \"48px\",\n \"64px\",\n \"80px\",\n \"96px\",\n \"112px\",\n \"128px\",\n];\nconst colorSchemes = Object.entries(primitives.colors).reduce((acc, [name, variables]) => {\n const { colors, shadows } = partitionColors(variables);\n return Object.assign(Object.assign({}, acc), { [name]: {\n colors: omitScale(colors),\n shadows: omitScale(shadows),\n } });\n}, {});\nexport const theme = {\n animation,\n borderWidths,\n breakpoints,\n fonts,\n fontSizes,\n fontWeights,\n lineHeights,\n radii,\n sizes,\n space,\n colorSchemes,\n};\n","import { themeGet } from \"@styled-system/theme-get\";\n// eslint-disable-next-line import/no-namespace\nimport * as styledSystem from \"styled-system\";\nimport { theme } from \"./theme\";\nconst { get: getKey, compose, system } = styledSystem;\nexport const get = (key) => themeGet(key, getKey(theme, key));\n// Common props\nexport const COMMON = compose(styledSystem.space, styledSystem.color, styledSystem.display);\n// Typography props\nconst whiteSpace = system({\n whiteSpace: {\n property: \"whiteSpace\",\n // cssProperty: 'whiteSpace',\n },\n});\nexport const TYPOGRAPHY = compose(styledSystem.typography, whiteSpace);\n// Border props\nexport const BORDER = compose(styledSystem.border, styledSystem.shadow);\n// Layout props\nexport const LAYOUT = styledSystem.layout;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport deepmerge from \"deepmerge\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { ThemeProvider as SCThemeProvider } from \"styled-components\";\nimport { theme as defaultTheme } from \"./theme\";\nexport const defaultColorMode = \"day\";\nconst defaultDayScheme = \"light\";\nconst defaultNightScheme = \"dark\";\nconst ThemeContext = React.createContext({\n setColorMode: () => null,\n setDayScheme: () => null,\n setNightScheme: () => null,\n});\n// inspired from __NEXT_DATA__, we use application/json to avoid CSRF policy with inline scripts\nconst getServerHandoff = () => {\n var _a;\n try {\n const serverData = (_a = document.getElementById(\"__PRIMER_DATA__\")) === null || _a === void 0 ? void 0 : _a.textContent;\n if (serverData)\n return JSON.parse(serverData);\n }\n catch (error) {\n // if document/element does not exist or JSON is invalid, supress error\n }\n return {};\n};\nexport const ThemeProvider = (_a) => {\n var _b, _c, _d, _e, _f, _g, _h, _j;\n var { children } = _a, props = __rest(_a, [\"children\"]);\n // Get fallback values from parent ThemeProvider (if exists)\n const { theme: fallbackTheme, colorMode: fallbackColorMode, dayScheme: fallbackDayScheme, nightScheme: fallbackNightScheme, } = useTheme();\n // Initialize state\n const theme = (_c = (_b = props.theme) !== null && _b !== void 0 ? _b : fallbackTheme) !== null && _c !== void 0 ? _c : defaultTheme;\n const { resolvedServerColorMode } = getServerHandoff();\n const resolvedColorModePassthrough = React.useRef(resolvedServerColorMode);\n const [colorMode, setColorMode] = React.useState((_e = (_d = props.colorMode) !== null && _d !== void 0 ? _d : fallbackColorMode) !== null && _e !== void 0 ? _e : defaultColorMode);\n const [dayScheme, setDayScheme] = React.useState((_g = (_f = props.dayScheme) !== null && _f !== void 0 ? _f : fallbackDayScheme) !== null && _g !== void 0 ? _g : defaultDayScheme);\n const [nightScheme, setNightScheme] = React.useState((_j = (_h = props.nightScheme) !== null && _h !== void 0 ? _h : fallbackNightScheme) !== null && _j !== void 0 ? _j : defaultNightScheme);\n const systemColorMode = useSystemColorMode();\n const resolvedColorMode = resolvedColorModePassthrough.current ||\n resolveColorMode(colorMode, systemColorMode);\n const colorScheme = chooseColorScheme(resolvedColorMode, dayScheme, nightScheme);\n const { resolvedTheme, resolvedColorScheme } = React.useMemo(() => applyColorScheme(theme, colorScheme), [theme, colorScheme]);\n // this effect will only run on client\n React.useEffect(function updateColorModeAfterServerPassthrough() {\n const resolvedColorModeOnClient = resolveColorMode(colorMode, systemColorMode);\n if (resolvedColorModePassthrough.current) {\n // if the resolved color mode passed on from the server is not the resolved color mode on client, change it!\n if (resolvedColorModePassthrough.current !== resolvedColorModeOnClient) {\n window.setTimeout(() => {\n // use ReactDOM.flushSync to prevent automatic batching of state updates since React 18\n // ref: https://github.com/reactwg/react-18/discussions/21\n ReactDOM.flushSync(() => {\n // override colorMode to whatever is resolved on the client to get a re-render\n setColorMode(resolvedColorModeOnClient);\n });\n // immediately after that, set the colorMode to what the user passed to respond to system color mode changes\n setColorMode(colorMode);\n });\n }\n resolvedColorModePassthrough.current = null;\n }\n }, [colorMode, systemColorMode]);\n // Update state if props change\n React.useEffect(() => {\n var _a, _b;\n setColorMode((_b = (_a = props.colorMode) !== null && _a !== void 0 ? _a : fallbackColorMode) !== null && _b !== void 0 ? _b : defaultColorMode);\n }, [props.colorMode, fallbackColorMode]);\n React.useEffect(() => {\n var _a, _b;\n setDayScheme((_b = (_a = props.dayScheme) !== null && _a !== void 0 ? _a : fallbackDayScheme) !== null && _b !== void 0 ? _b : defaultDayScheme);\n }, [props.dayScheme, fallbackDayScheme]);\n React.useEffect(() => {\n var _a, _b;\n setNightScheme((_b = (_a = props.nightScheme) !== null && _a !== void 0 ? _a : fallbackNightScheme) !== null && _b !== void 0 ? _b : defaultNightScheme);\n }, [props.nightScheme, fallbackNightScheme]);\n return (_jsx(ThemeContext.Provider, Object.assign({ value: {\n theme: resolvedTheme,\n colorScheme,\n colorMode,\n resolvedColorMode,\n resolvedColorScheme,\n dayScheme,\n nightScheme,\n setColorMode,\n setDayScheme,\n setNightScheme,\n } }, { children: _jsxs(SCThemeProvider, Object.assign({ theme: resolvedTheme }, { children: [children, props.preventSSRMismatch ? (_jsx(\"script\", { type: \"application/json\", id: \"__PRIMER_DATA__\", dangerouslySetInnerHTML: {\n __html: JSON.stringify({\n resolvedServerColorMode: resolvedColorMode,\n }),\n } })) : null] })) })));\n};\nexport function useTheme() {\n return React.useContext(ThemeContext);\n}\nexport function useColorSchemeVar(values, fallback) {\n var _a;\n const { colorScheme = \"\" } = useTheme();\n return (_a = values[colorScheme]) !== null && _a !== void 0 ? _a : fallback;\n}\nfunction useSystemColorMode() {\n const [systemColorMode, setSystemColorMode] = React.useState(getSystemColorMode);\n React.useEffect(() => {\n var _a;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n const media = (_a = window === null || window === void 0 ? void 0 : window.matchMedia) === null || _a === void 0 ? void 0 : _a.call(window, \"(prefers-color-scheme: dark)\");\n function handleChange(event) {\n const isNight = event.matches;\n setSystemColorMode(isNight ? \"night\" : \"day\");\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (media) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (media.addEventListener !== undefined) {\n media.addEventListener(\"change\", handleChange);\n return function cleanup() {\n media.removeEventListener(\"change\", handleChange);\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n else if (media.addListener !== undefined) {\n media.addListener(handleChange);\n return function cleanup() {\n media.removeListener(handleChange);\n };\n }\n }\n }, []);\n return systemColorMode;\n}\nfunction getSystemColorMode() {\n var _a, _b;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (typeof window !== \"undefined\" &&\n ((_b = (_a = window.matchMedia) === null || _a === void 0 ? void 0 : _a.call(window, \"(prefers-color-scheme: dark)\")) === null || _b === void 0 ? void 0 : _b.matches)) {\n return \"night\";\n }\n return \"day\";\n}\nfunction resolveColorMode(colorMode, systemColorMode) {\n switch (colorMode) {\n case \"auto\":\n return systemColorMode;\n default:\n return colorMode;\n }\n}\nfunction chooseColorScheme(colorMode, dayScheme, nightScheme) {\n switch (colorMode) {\n case \"day\":\n case \"light\":\n return dayScheme;\n case \"dark\":\n case \"night\":\n return nightScheme;\n }\n}\nfunction applyColorScheme(theme, colorScheme) {\n if (!theme.colorSchemes) {\n return {\n resolvedTheme: theme,\n resolvedColorScheme: undefined,\n };\n }\n if (!theme.colorSchemes[colorScheme]) {\n // eslint-disable-next-line no-console\n console.error(`\\`${colorScheme}\\` scheme not defined in \\`theme.colorSchemes\\``);\n // Apply the first defined color scheme\n const defaultColorScheme = Object.keys(theme.colorSchemes)[0];\n return {\n resolvedTheme: deepmerge(theme, theme.colorSchemes[defaultColorScheme]),\n resolvedColorScheme: defaultColorScheme,\n };\n }\n return {\n resolvedTheme: deepmerge(theme, theme.colorSchemes[colorScheme]),\n resolvedColorScheme: colorScheme,\n };\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport styled, { createGlobalStyle } from \"styled-components\";\nimport { COMMON, TYPOGRAPHY, } from \"./constants\";\nimport { useTheme } from \"./ThemeProvider\";\nconst GlobalStyle = createGlobalStyle `\n * { box-sizing: border-box; }\n body { margin: 0; }\n table { border-collapse: collapse; }\n input { color-scheme: ${(props) => props.colorScheme}; }\n\n [role=\"button\"]:focus:not(:focus-visible):not(.focus-visible),\n [role=\"tabpanel\"][tabindex=\"0\"]:focus:not(:focus-visible):not(.focus-visible),\n button:focus:not(:focus-visible):not(.focus-visible),\n summary:focus:not(:focus-visible):not(.focus-visible),\n a:focus:not(:focus-visible):not(.focus-visible) {\n outline: none;\n box-shadow: none;\n }\n\n [tabindex=\"0\"]:focus:not(:focus-visible):not(.focus-visible),\n details-dialog:focus:not(:focus-visible):not(.focus-visible) {\n outline: none;\n }\n`;\nconst Base = styled.div `\n ${TYPOGRAPHY};\n ${COMMON};\n`;\nexport function BaseStyles(props) {\n const { children, color = \"fg.default\", fontFamily = \"normal\", lineHeight = \"default\" } = props, rest = __rest(props, [\"children\", \"color\", \"fontFamily\", \"lineHeight\"]);\n const { colorScheme, dayScheme, nightScheme } = useTheme();\n /**\n * We need to map valid primer/react color modes onto valid color modes for primer/primitives\n * valid color modes for primer/primitives: auto | light | dark\n * valid color modes for primer/primer: auto | day | night | light | dark\n */\n return (_jsxs(Base, Object.assign({}, rest, { color: color, fontFamily: fontFamily, lineHeight: lineHeight, \"data-portal-root\": true, \"data-color-mode\": (colorScheme === null || colorScheme === void 0 ? void 0 : colorScheme.includes(\"dark\")) ? \"dark\" : \"light\", \"data-light-theme\": dayScheme, \"data-dark-theme\": nightScheme }, { children: [_jsx(GlobalStyle, { colorScheme: (colorScheme === null || colorScheme === void 0 ? void 0 : colorScheme.includes(\"dark\")) ? \"dark\" : \"light\" }), children] })));\n}\n","import css from \"@styled-system/css\";\nimport merge from \"deepmerge\";\nconst sx = (props) => css(props.sx);\nexport { merge, sx };\n","import styled from \"styled-components\";\nimport { background, border, color, flexbox, grid, layout, position, shadow, space, typography, } from \"styled-system\";\nimport { sx } from \"./sx\";\nexport const Box = styled.div(space, color, typography, layout, flexbox, grid, background, border, position, shadow, sx);\n","import styled from \"styled-components\";\nimport { COMMON, TYPOGRAPHY, } from \"./constants\";\nimport { sx } from \"./sx\";\nexport const Text = styled.span `\n ${TYPOGRAPHY};\n ${COMMON};\n ${sx};\n`;\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ChevronDownIcon, ChevronUpIcon } from \"@primer/octicons-react\";\nimport { Icon } from \"../../lib/design/Icon\";\nimport { Box } from \"../../lib/primer/Box\";\nimport { Text } from \"../../lib/primer/Text\";\nexport function FileHeader({ ctx, path, diffType, open, onChangeOpen, }) {\n // Even though the enclosing <SplitDiffView> will have border-radius set, we\n // have to define it again here or things don't look right.\n const color = diffType === undefined ? \"fg.muted\" : diffTypeToColor[diffType];\n const pathSeparator = \"/\";\n const pathParts = path.split(pathSeparator);\n return (_jsxs(Box, Object.assign({ className: \"split-diff-view-file-header\", display: \"flex\", alignItems: \"center\", bg: \"accent.subtle\", color: color, paddingX: 2, paddingY: 1, lineHeight: 2, backgroundColor: \"canvas.subtle\", borderTopRightRadius: 2, borderTopLeftRadius: 2, borderBottomColor: \"border.default\", borderBottomStyle: \"solid\", borderBottomWidth: \"1px\" }, { children: [onChangeOpen && (_jsx(Box, Object.assign({ paddingRight: 2, onClick: () => onChangeOpen(!open), sx: { cursor: \"pointer\" } }, { children: open ? _jsx(ChevronUpIcon, { size: 24 }) : _jsx(ChevronDownIcon, { size: 24 }) }))), diffType !== undefined && _jsx(Icon, { icon: diffTypeToIcon[diffType] }), _jsx(Text, Object.assign({ fontFamily: \"mono\", fontSize: 12 }, { children: pathParts.reduce((acc, part, idx) => {\n // Nest path parts in a particular way so we can use plain CSS\n // hover selectors to underline nested sub-paths.\n const pathSoFar = pathParts.slice(idx).join(pathSeparator);\n const copy = ctx === null || ctx === void 0 ? void 0 : ctx.copy;\n return (_jsxs(\"span\", Object.assign({ className: copy && \"file-header-copyable-path\" }, { children: [acc, _jsxs(\"span\", Object.assign({ \n // TODO: better translate API that supports templates.\n title: copy && `Copy ${pathSoFar}`, onClick: copy && (() => copy(pathSoFar)), className: \"file-header-path-element\" }, { children: [part, idx < pathParts.length - 1 ? pathSeparator : \"\"] }))] }), idx));\n }, _jsx(\"span\", {})) }))] })));\n}\nconst diffTypeToColor = {\n Modified: \"var(--scm-modified-foreground)\",\n Added: \"var(--scm-added-foreground)\",\n Removed: \"var(--scm-removed-foreground)\",\n Renamed: \"var(--scm-modified-foreground)\",\n Copied: \"var(--scm-added-foreground)\",\n};\nconst diffTypeToIcon = {\n Modified: \"diff-modified\",\n Added: \"diff-added\",\n Removed: \"diff-removed\",\n Renamed: \"diff-renamed\",\n Copied: \"diff-renamed\",\n};\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport styled from \"styled-components\";\nimport { sx } from \"./sx\";\nconst sizeMap = {\n small: \"16px\",\n medium: \"32px\",\n large: \"64px\",\n};\nfunction UnstyledSpinner(_a) {\n var { size: sizeKey = \"medium\" } = _a, props = __rest(_a, [\"size\"]);\n const size = sizeMap[sizeKey];\n return (_jsxs(\"svg\", Object.assign({ height: size, width: size, viewBox: \"0 0 16 16\", fill: \"none\" }, props, { children: [_jsx(\"circle\", { cx: \"8\", cy: \"8\", r: \"7\", stroke: \"currentColor\", strokeOpacity: \"0.25\", strokeWidth: \"2\", vectorEffect: \"non-scaling-stroke\" }), _jsx(\"path\", { d: \"M15 8a7.002 7.002 0 00-7-7\", stroke: \"currentColor\", strokeWidth: \"2\", strokeLinecap: \"round\", vectorEffect: \"non-scaling-stroke\" })] })));\n}\nexport const Spinner = styled(UnstyledSpinner) `\n @keyframes rotate-keyframes {\n 100% {\n transform: rotate(360deg);\n }\n }\n\n animation: rotate-keyframes 1s linear infinite;\n\n ${sx}\n`;\nSpinner.displayName = \"Spinner\";\n","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { Box } from \"../../lib/primer/Box\";\nexport function SplitDiffRow({ beforeLineNumber, before, afterLineNumber, after, rowType, path, openFileToLine, }) {\n let beforeClass;\n let afterClass;\n switch (rowType) {\n case \"remove\":\n beforeClass = \"patch-remove-line\";\n afterClass = undefined;\n break;\n case \"modify\":\n beforeClass = \"patch-remove-line\";\n afterClass = \"patch-add-line\";\n break;\n case \"add\":\n beforeClass = undefined;\n afterClass = \"patch-add-line\";\n break;\n case \"common\":\n beforeClass = undefined;\n afterClass = undefined;\n break;\n case \"expanded\":\n beforeClass = \"patch-expanded\";\n afterClass = \"patch-expanded\";\n break;\n }\n // Note that 'expanded' is a special case of 'common' where it is code that is\n // common to both sides of the diff, but was previously displayed as\n // collapsed. For whatever reason, GitHub does not make it possible to comment\n // on lines outside of the patch contents in PRs:\n //\n // https://github.com/isaacs/github/issues/1655\n //\n // Even if you try to do so programmatically via the GraphQL API, it *still*\n // doesn't work, so this seems to be some quirk in the underlying data model.\n const canComment = rowType !== \"expanded\";\n return (_jsxs(\"tr\", { children: [_jsx(SplitDiffRowSide, { className: beforeClass, content: before, lineNumber: beforeLineNumber, path: path, side: \"LEFT\", canComment: canComment }), _jsx(SplitDiffRowSide, { className: afterClass, content: after, lineNumber: afterLineNumber, path: path, side: \"RIGHT\", canComment: canComment, openFileToLine: openFileToLine })] }));\n}\nfunction SplitDiffRowSide({ className, content, lineNumber, path, side, openFileToLine, }) {\n const lineNumberBorderStyle = side === \"RIGHT\" ? extraRightLineNumberCellProps : {};\n const clickableLineNumber = openFileToLine != null && lineNumber != null;\n const extraClassName = (className != null ? ` ${className}-number` : \"\") +\n (clickableLineNumber ? \" clickable\" : \"\");\n return (_jsxs(_Fragment, { children: [_jsx(Box, Object.assign({ as: \"td\", className: `lineNumber${extraClassName}`, \"data-line-number\": lineNumber, \"data-path\": path, \"data-side\": side, onClick: clickableLineNumber ? () => openFileToLine(lineNumber) : undefined }, lineNumberBorderStyle, { children: lineNumber })), _jsx(\"td\", Object.assign({ className: className }, { children: content }))] }));\n}\nconst extraRightLineNumberCellProps = {\n borderLeftWidth: \"1px\",\n borderLeftStyle: \"solid\",\n borderLeftColor: \"border.default\",\n};\n","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { UnfoldIcon } from \"@primer/octicons-react\";\nimport { diffChars } from \"diff\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { useCallback, useState } from \"react\";\nimport { Box } from \"../../lib/primer/Box\";\nimport { Spinner } from \"../../lib/primer/Spinner\";\nimport { Text } from \"../../lib/primer/Text\";\nimport { organizeLinesIntoGroups } from \"./organizeLinesIntoGroups\";\nimport { SplitDiffRow } from \"./SplitDiffRow\";\nconst MAX_INPUT_LENGTH_FOR_INTRALINE_DIFF = 300;\nexport const SplitDiffTable = React.memo(({ ctx, path, patch, preamble, }) => {\n var _a;\n const [deletedFileExpanded, setDeletedFileExpanded] = useState(false);\n const [expandedSeparators, setExpandedSeparators] = useState(() => new Set());\n const onExpand = useCallback((key) => {\n const amendedSet = new Set(expandedSeparators);\n amendedSet.add(key);\n setExpandedSeparators(amendedSet);\n }, [expandedSeparators, setExpandedSeparators]);\n const t = (_a = ctx.translate) !== null && _a !== void 0 ? _a : ((s) => s);\n const isDeleted = patch.newFileName === \"/dev/null\";\n const { hunks } = patch;\n const lastHunkIndex = hunks.length - 1;\n const rows = [...(preamble !== null && preamble !== void 0 ? preamble : [])];\n if (!isDeleted || deletedFileExpanded) {\n hunks.forEach((hunk, index) => {\n // Show a separator before the first hunk if the file starts with a\n // section of unmodified lines that is hidden by default.\n if (index === 0 && (hunk.oldStart !== 1 || hunk.newStart !== 1)) {\n // TODO: test empty file that went from 644 to 755?\n const key = \"s0\";\n if (expandedSeparators.has(key)) {\n const range = {\n id: ctx.id,\n start: 1,\n numLines: hunk.oldStart - 1,\n };\n rows.push(_jsx(ExpandingSeparator, { ctx: ctx, range: range, path: path, beforeLineStart: 1, afterLineStart: 1, t: t }, key));\n }\n else {\n const numLines = Math.max(hunk.oldStart, hunk.newStart) - 1;\n rows.push(_jsx(HunkSeparator, { numLines: numLines, onExpand: () => onExpand(key), t: t }, key));\n }\n }\n addRowsForHunk(hunk, path, rows, ctx.openFileToLine);\n if (index !== lastHunkIndex) {\n const nextHunk = hunks[index + 1];\n const key = `s${hunk.oldStart}`;\n if (expandedSeparators.has(key)) {\n const start = hunk.oldStart + hunk.oldLines;\n const numLines = nextHunk.oldStart - start;\n const range = {\n id: ctx.id,\n start,\n numLines,\n };\n rows.push(_jsx(ExpandingSeparator, { ctx: ctx, range: range, path: path, beforeLineStart: hunk.oldStart + hunk.oldLines, afterLineStart: hunk.newStart + hunk.newLines, t: t }, key));\n }\n else {\n const numLines = nextHunk.oldStart - hunk.oldLines - hunk.oldStart;\n rows.push(_jsx(HunkSeparator, { numLines: numLines, onExpand: () => onExpand(key), t: t }, key));\n }\n }\n });\n }\n else {\n rows.push(_jsx(SeparatorRow, { children: _jsxs(Box, Object.assign({ display: \"inline-block\", onClick: () => setDeletedFileExpanded(true), padding: 1, sx: {\n cursor: \"pointer\",\n \":hover\": { bg: \"accent.emphasis\", color: \"fg.onEmphasis\" },\n } }, { children: [_jsx(UnfoldIcon, { size: 16 }), _jsx(Text, Object.assign({ paddingX: 4 }, { children: \"Show deleted file\" })), _jsx(UnfoldIcon, { size: 16 })] })) }, \"show-deleted\"));\n }\n return (_jsxs(\"table\", Object.assign({ className: \"SplitDiffView-hunk-table\" }, { children: [_jsxs(\"colgroup\", { children: [_jsx(\"col\", { width: 50 }), _jsx(\"col\", { width: \"50%\" }), _jsx(\"col\", { width: 50 }), _jsx(\"col\", { width: \"50%\" })] }), _jsx(\"tbody\", { children: rows })] })));\n});\n/**\n * Adds new rows to the supplied `rows` array.\n */\n// eslint-disable-next-line max-params\nfunction addRowsForHunk(hunk, path, rows, openFileToLine) {\n const { oldStart, newStart, lines } = hunk;\n const groups = organizeLinesIntoGroups(lines);\n let beforeLineNumber = oldStart;\n let afterLineNumber = newStart;\n groups.forEach((group) => {\n const { common, removed, added } = group;\n addUnmodifiedRows(common, path, \"common\", beforeLineNumber, afterLineNumber, rows, openFileToLine);\n beforeLineNumber += common.length;\n afterLineNumber += common.length;\n const maxIndex = Math.max(removed.length, added.length);\n for (let index = 0; index < maxIndex; ++index) {\n const removedLine = removed[index];\n const addedLine = added[index];\n if (removedLine != null && addedLine != null) {\n const beforeAndAfter = createIntralineDiff(removedLine, addedLine);\n const [before, after] = beforeAndAfter;\n rows.push(_jsx(SplitDiffRow, { beforeLineNumber: beforeLineNumber, before: before, afterLineNumber: afterLineNumber, after: after, rowType: \"modify\", path: path, openFileToLine: openFileToLine }, `${beforeLineNumber}/${afterLineNumber}`));\n ++beforeLineNumber;\n ++afterLineNumber;\n }\n else if (removedLine != null) {\n rows.push(_jsx(SplitDiffRow, { beforeLineNumber: beforeLineNumber, before: removedLine, afterLineNumber: null, after: null, rowType: \"remove\", path: path, openFileToLine: openFileToLine }, `${beforeLineNumber}/`));\n ++beforeLineNumber;\n }\n else {\n rows.push(_jsx(SplitDiffRow, { beforeLineNumber: null, before: null, afterLineNumber: afterLineNumber, after: addedLine, rowType: \"add\", path: path, openFileToLine: openFileToLine }, `/${afterLineNumber}`));\n ++afterLineNumber;\n }\n }\n });\n}\n/**\n * Adds new rows to the supplied `rows` array.\n */\n// eslint-disable-next-line max-params\nfunction addUnmodifiedRows(lines, path, rowType, initialBeforeLineNumber, initialAfterLineNumber, rows, openFileToLine) {\n let beforeLineNumber = initialBeforeLineNumber;\n let afterLineNumber = initialAfterLineNumber;\n lines.forEach((lineContent) => {\n rows.push(_jsx(SplitDiffRow, { beforeLineNumber: beforeLineNumber, before: lineContent, afterLineNumber: afterLineNumber, after: lineContent, rowType: rowType, path: path, openFileToLine: openFileToLine }, `${beforeLineNumber}/${afterLineNumber}`));\n ++beforeLineNumber;\n ++afterLineNumber;\n });\n}\nfunction createIntralineDiff(before, after) {\n // For lines longer than this, diffChars() can get very expensive to compute\n // and is likely of little value to the user.\n if (before.length + after.length > MAX_INPUT_LENGTH_FOR_INTRALINE_DIFF) {\n return [before, after];\n }\n const changes = diffChars(before, after);\n const beforeElements = [];\n const afterElements = [];\n changes.forEach((change, index) => {\n const { added, removed, value } = change;\n if (added) {\n afterElements.push(_jsx(\"span\", Object.assign({ className: \"patch-add-word\" }, { children: value }), index));\n }\n else if (removed) {\n beforeElements.push(_jsx(\"span\", Object.assign({ className: \"patch-remove-word\" }, { children: value }), index));\n }\n else {\n beforeElements.push(value);\n afterElements.push(value);\n }\n });\n return [beforeElements, afterElements];\n}\n/**\n * Visual element to delimit the discontinuity in a SplitDiffView.\n */\nfunction HunkSeparator({ numLines, onExpand, }) {\n if (numLines === 0) {\n return null;\n }\n // TODO: Ensure numLines is never below a certain threshold: it takes up more\n // space to display the separator than it does to display the text (though\n // admittedly fetching the collapsed text is an async operation).\n const label = numLines === 1 ? \"Expand 1 line\" : `Expand ${numLines} lines`;\n return (_jsx(SeparatorRow, { children: _jsxs(Box, Object.assign({ display: \"inline-block\", onClick: onExpand, padding: 1, sx: {\n cursor: \"pointer\",\n \":hover\": { bg: \"accent.emphasis\", color: \"fg.onEmphasis\" },\n } }, { children: [_jsx(UnfoldIcon, { size: 16 }), _jsx(Text, Object.assign({ paddingX: 4 }, { children: label })), _jsx(UnfoldIcon, { size: 16 })] })) }));\n}\n/**\n * This replaces a <HunkSeparator> when the user clicks on it to expand the\n * hidden file contents.\n */\nconst ExpandingSeparator = observer(({ ctx, path, range, beforeLineStart, afterLineStart, }) => {\n const loadable = ctx.atoms.lineRange(range).get();\n switch (loadable.state) {\n case \"fulfilled\": {\n const rows = [];\n const lines = loadable.value;\n addUnmodifiedRows(lines, path, \"expanded\", beforeLineStart, afterLineStart, rows, ctx.openFileToLine);\n return _jsx(_Fragment, { children: rows });\n }\n case \"pending\": {\n return (_jsx(SeparatorRow, { children: _jsx(Box, Object.assign({ padding: 1, display: \"flex\", flexDirection: \"row\", justifyContent: \"center\", alignItems: \"center\" }, { children: _jsxs(Box, Object.assign({ display: \"flex\", alignItems: \"center\" }, { children: [_jsx(Spinner, { size: \"small\" }), _jsx(Text, Object.assign({ marginLeft: 2 }, { children: \"Loading...\" }))] })) })) }));\n }\n case \"rejected\": {\n return (_jsx(SeparatorRow, { children: _jsx(Box, Object.assign({ padding: 1, display: \"flex\", flexDirection: \"row\", justifyContent: \"center\", alignItems: \"center\" }, { children: _jsx(Box, Object.assign({ display: \"flex\", alignItems: \"center\" }, { children: _jsxs(Text, { children: [\"Error:\", \" \", loadable.value.message] }) })) })) }));\n }\n }\n});\nfunction SeparatorRow({ children, }) {\n return (_jsx(Box, Object.assign({ as: \"tr\", bg: \"accent.subtle\", color: \"fg.muted\", height: 12 }, { children: _jsx(Box, Object.assign({ as: \"td\", colSpan: 4, className: \"separator\" }, { children: children })) })));\n}\n","/**\n * We must find the groups within `lines` so that multiline sequences of\n * modified lines are displayed correctly. A group is defined by:\n *\n * - a sequence of 0 or more \"common lines\" that start with ' '\n * - a sequence of 0 or more \"removed lines\" that start with '-'\n * - a sequence of 0 or more \"added lines\" that start with '+'\n *\n * Therefore, the end of a group is determined by either:\n *\n * - reaching the end of a list of lines\n * - encountering a \"common line\" after an \"added\" or \"removed\" line.\n */\nexport function organizeLinesIntoGroups(lines) {\n const groups = [];\n let group = newGroup();\n lines.forEach((fullLine) => {\n const firstChar = fullLine.charAt(0);\n const line = fullLine.slice(1);\n if (firstChar === \" \") {\n if (hasDeltas(group)) {\n // This must be the start of a new group!\n groups.push(group);\n group = newGroup();\n }\n group.common.push(line);\n }\n else if (firstChar === \"-\") {\n group.removed.push(line);\n }\n else if (firstChar === \"+\") {\n group.added.push(line);\n }\n });\n groups.push(group);\n return groups;\n}\nfunction hasDeltas(group) {\n return group.removed.length !== 0 || group.added.length !== 0;\n}\nfunction newGroup() {\n return {\n common: [],\n removed: [],\n added: [],\n };\n}\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport \"./SplitDiffHunk.scss\";\nimport { DiffType } from \"@withgraphite/gti-shared\";\nimport { Box } from \"../../lib/primer/Box\";\nimport { FileHeader } from \"./SplitDiffFileHeader\";\nimport { SplitDiffTable } from \"./SplitDiffHunk\";\nexport function SplitDiffView({ ctx, path, patch, }) {\n var _a, _b, _c, _d;\n const fileName = (_b = (_a = patch.newFileName) !== null && _a !== void 0 ? _a : patch.oldFileName) !== null && _b !== void 0 ? _b : \"/dev/null\";\n // Type hack to get a templatized version of a React.memo-ized component\n const TypedSplitDiffTable = SplitDiffTable;\n const preamble = [];\n if (patch.type === DiffType.Added) {\n preamble.push(_jsx(FileStatusBanner, { children: \"This file was added\" }, \"added\"));\n }\n if (patch.type === DiffType.Removed) {\n preamble.push(_jsx(FileStatusBanner, { children: \"This file was removed\" }, \"deleted\"));\n }\n if (patch.type === DiffType.Renamed) {\n preamble.push(_jsxs(FileStatusBanner, { children: [\"This file was renamed from\", \" \", (_c = patch.oldFileName) !== null && _c !== void 0 ? _c : \"\"] }, \"renamed\"));\n }\n if (patch.type === DiffType.Copied) {\n preamble.push(_jsxs(FileStatusBanner, { children: [\"This file was copied from\", \" \", (_d = patch.oldFileName) !== null && _d !== void 0 ? _d : \"\"] }, \"copied\"));\n }\n return (_jsxs(Box, Object.assign({ className: \"split-diff-view\", borderWidth: \"1px\", borderStyle: \"solid\", borderColor: \"border.default\", borderRadius: 2 }, { children: [_jsx(FileHeader, { ctx: ctx, path: fileName, diffType: patch.type }), _jsx(TypedSplitDiffTable, { ctx: ctx, path: path, patch: patch, preamble: preamble })] })));\n}\nfunction FileStatusBanner({ children, }) {\n return (_jsx(Box, Object.assign({ as: \"tr\", bg: \"attention.subtle\", color: \"fg.muted\", height: 12 }, { children: _jsx(Box, Object.assign({ as: \"td\", colSpan: 4, className: \"separator\" }, { children: _jsx(Box, Object.assign({ padding: 1 }, { children: children })) })) })));\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { useTheme } from \"../../lib/primer/ThemeProvider\";\n/**\n * React component that dynamically generates a <style> element using values\n * from the active Primer theme.\n */\n// eslint-disable-next-line prefer-arrow-callback\nexport const PrimerStyles = React.memo(observer(function PrimerStyles() {\n const { theme } = useTheme();\n return (_jsx(\"style\", { children: `\n.patch-word-begin {\n border-top-left-radius: .2em;\n border-bottom-left-radius: .2em;\n}\n\n.patch-word-end {\n border-top-right-radius: .2em;\n border-bottom-right-radius: .2em;\n}\n\n.patch-add-line {\n background-color: ${theme === null || theme === void 0 ? void 0 : theme.colors.diffBlob.addition.lineBg};\n}\n\n.patch-add-line-number {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.diffBlob.addition.numText};\n background-color: ${theme === null || theme === void 0 ? void 0 : theme.colors.diffBlob.addition.numBg};\n}\n\n.patch-add-word {\n background-color: ${theme === null || theme === void 0 ? void 0 : theme.colors.diffBlob.addition.wordBg};\n}\n\n.patch-remove-line {\n background-color: ${theme === null || theme === void 0 ? void 0 : theme.colors.diffBlob.deletion.lineBg};\n}\n\n.patch-remove-line-number {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.diffBlob.deletion.numText};\n background-color: ${theme === null || theme === void 0 ? void 0 : theme.colors.diffBlob.deletion.numBg};\n}\n\n.patch-remove-word {\n background-color: ${theme === null || theme === void 0 ? void 0 : theme.colors.diffBlob.deletion.wordBg};\n}\n\n.patch-expanded, .patch-expanded-number {\n background-color: ${theme === null || theme === void 0 ? void 0 : theme.colors.canvas.subtle};\n}\n\n.patch-expanded-number {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.fg.subtle};\n}\n\n.SplitDiffView-hunk-table td {\n font-family: ${theme === null || theme === void 0 ? void 0 : theme.fonts.mono}\n}\n\n.lineNumber.clickable {\n cursor: pointer;\n}\n\n.lineNumber.clickable:hover {\n text-decoration: underline;\n}\n/**\n * pl = prettylights theme\n *\n * Mapping from CSS class name to Primer color deduced from a combination of:\n * https://cdn.jsdelivr.net/npm/github-syntax-theme-generator@0.5.0/build/css/github-light.css\n * https://primer.style/react/theme-reference\n *\n * Though it is a bit confusing because github-light.css defines some classes\n * multiple times, such as .pl-s.\n */\n\n.pl-ba {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.brackethighlighterAngle};\n}\n\n.pl-bu {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.brackethighlighterUnmatched};\n}\n\n.pl-c {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.comment};\n}\n\n.pl-c1 {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.constant};\n}\n\n.pl-c2 {\n background-color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.carriageReturnBg};\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.carriageReturnText};\n}\n\n.pl-c2::before {\n content: \"^M\";\n}\n\n.pl-corl {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.constantOtherReferenceLink};\n text-decoration: underline;\n}\n\n.pl-e, .pl-en {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.entity};\n}\n\n.pl-ent {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.entityTag};\n}\n\n.pl-ii {\n background-color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.invalidIllegalBg};\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.invalidIllegalText};\n}\n\n.pl-k {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.keyword};\n}\n\n.pl-s, .pl-pds {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.string};\n}\n\n.pl-sg {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.sublimelinterGutterMark};\n}\n\n.pl-smi {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.storageModifierImport};\n}\n\n.pl-sr {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.stringRegexp};\n font-weight: bold;\n}\n\n.pl-v {\n color: ${theme === null || theme === void 0 ? void 0 : theme.colors.prettylights.syntax.variable};\n}\n` }));\n}));\n","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport \"./ComparisonView.scss\";\nimport { VSCodeButton, VSCodeDropdown, VSCodeOption, } from \"@vscode/webview-ui-toolkit/react\";\nimport { ComparisonType, labelForComparison, parsePatch, } from \"@withgraphite/gti-shared\";\nimport stringify from \"fast-json-stable-stringify\";\nimport { computed, runInAction } from \"mobx\";\nimport { observer } from \"mobx-react-lite\";\nimport { fromPromise } from \"mobx-utils\";\nimport { useCallback, useEffect } from \"react\";\nimport { EmptyState } from \"../../lib/design/EmptyState\";\nimport { ErrorNotice } from \"../../lib/design/ErrorNotice\";\nimport { Icon } from \"../../lib/design/Icon\";\nimport { themeState } from \"../../lib/design/theme/theme\";\nimport { family } from \"../../lib/mobx-recoil/family\";\nimport { observableBoxWithInitializers } from \"../../lib/mobx-recoil/observable_box_with_init\";\nimport { platform } from \"../../lib/platform\";\nimport { BaseStyles } from \"../../lib/primer/BaseStyles\";\nimport { ThemeProvider } from \"../../lib/primer/ThemeProvider\";\nimport { clientToServerAPI } from \"../../state/ClientToServerAPI\";\nimport { latestHeadCommit } from \"../../state/serverAPIState\";\nimport { SplitDiffView } from \"../split-diff-view\";\nimport { PrimerStyles } from \"../split-diff-view/PrimerStyles\";\nimport { currentComparisonMode } from \"./atoms\";\n/**\n * Transform Result<T> to Result<U> by applying `fn` on result.value.\n * If the result is an error, just return it unchanged.\n */\nfunction mapResult(result, fn) {\n return result.error == null ? { value: fn(result.value) } : result;\n}\nfunction parsePatchAndFilter(patch) {\n const result = parsePatch(patch);\n return result.filter(\n // empty patches and other weird situations can cause invalid files to get parsed, ignore these entirely\n (diff) => diff.hunks.length > 0 ||\n diff.newFileName != null ||\n diff.oldFileName != null);\n}\nconst currentComparisonData = family({\n genKey: (comparison) => {\n switch (comparison.type) {\n case ComparisonType.Range:\n throw new Error(\"Version comparison not supported\");\n case ComparisonType.Committed:\n return `Committed ${comparison.hash}`;\n case ComparisonType.Commit:\n throw new Error(\"Commit comparison not supported\");\n case ComparisonType.HeadChanges:\n return \"HEAD\";\n case ComparisonType.StackChanges:\n return \"STACK\";\n case ComparisonType.UncommittedChanges:\n return \"UNCOMMITTED\";\n }\n },\n genValue: (comparison) => {\n return observableBoxWithInitializers({\n default: { isLoading: true, data: null },\n setter: (value) => {\n if (value.isLoading) {\n clientToServerAPI.postMessage({\n type: \"requestComparison\",\n comparison,\n });\n }\n },\n effects: [\n ({ setSelf }) => {\n const disposable = clientToServerAPI.onMessageOfType(\"comparison\", (event) => {\n if (comparison.type === event.comparison.type) {\n setSelf({\n isLoading: false,\n data: mapResult(event.data.diff, parsePatchAndFilter),\n });\n }\n });\n return () => disposable.dispose();\n },\n ],\n });\n },\n});\nexport const lineRange = family({\n genKey: (params) => {\n return stringify(params);\n },\n genValue: (params) => {\n return computed(() => {\n // We must ensure this lineRange gets invalidated when the underlying file's context lines\n // have changed.\n // This depends on the comparison:\n // for Committed: the commit hash is included in the Comparison, thus the cached data will always be accurate.\n // for Uncommitted, Head, and Stack:\n // by referencing the latest head commit atom, we ensure this selector reloads when the head commit changes.\n // These comparisons are all against the working copy (not exactly head),\n // but there's no change that could be made that would affect the context lines without\n // also changing the head commit's hash.\n // Note: we use latestHeadCommit WITHOUT previews, so we don't accidentally cache the file content\n // AGAIN on the same data while waiting for some new operation to finish.\n latestHeadCommit.get();\n clientToServerAPI.postMessage(Object.assign({ type: \"requestComparisonContextLines\" }, params));\n const promise = new Promise((res) => {\n const disposable = clientToServerAPI.onMessageOfType(\"comparisonContextLines\", (event) => {\n res(event.lines);\n disposable.dispose();\n });\n });\n return fromPromise(promise);\n });\n },\n});\nfunction useComparisonData(comparison) {\n const currentComparison = currentComparisonData(comparison);\n const compared = currentComparison.get();\n const reloadComparison = useCallback(() => {\n runInAction(() => {\n const data = currentComparison.get();\n // setting comparisonData's isLoading: true triggers a fetch\n currentComparison.set(Object.assign(Object.assign({}, data), { isLoading: true }));\n });\n }, [currentComparison]);\n return [compared, reloadComparison];\n}\nexport const ComparisonView = observer(({ comparison }) => {\n const [compared, reloadComparison] = useComparisonData(comparison);\n // any time the comparison changes, fetch the diff\n useEffect(reloadComparison, [comparison, reloadComparison]);\n const theme = themeState.get();\n return (_jsx(\"div\", Object.assign({ \"data-testid\": \"comparison-view\", className: \"comparison-view\" }, { children: _jsxs(ThemeProvider, Object.assign({ colorMode: theme === \"light\" ? \"day\" : \"night\" }, { children: [_jsx(PrimerStyles, {}), _jsxs(BaseStyles, Object.assign({ className: \"comparison-view-base-styles\" }, { children: [_jsx(ComparisonViewHeader, { comparison: comparison }), _jsx(\"div\", Object.assign({ className: \"comparison-view-details\" }, { children: compared.data == null ? (_jsx(Icon, { icon: \"loading\" })) : compared.data.error != null ? (_jsx(ErrorNotice, { error: compared.data.error, title: \"Unable to load comparison\" })) : compared.data.value.length === 0 ? (_jsx(EmptyState, { children: \"No Changes\" })) : (compared.data.value.map((parsed, i) => (_jsx(ComparisonViewFile, { diff: parsed, comparison: comparison }, i)))) }))] }))] })) })));\n});\nconst defaultComparisons = [\n ComparisonType.UncommittedChanges,\n ComparisonType.HeadChanges,\n ComparisonType.StackChanges,\n];\nconst ComparisonViewHeader = observer(({ comparison }) => {\n const [compared, reloadComparison] = useComparisonData(comparison);\n return (_jsx(_Fragment, { children: _jsxs(\"div\", Object.assign({ className: \"comparison-view-header\" }, { children: [_jsxs(\"span\", Object.assign({ className: \"comparison-view-header-group\" }, { children: [_jsxs(VSCodeDropdown, Object.assign({ \"data-testid\": \"comparison-view-picker\", value: comparison.type, onChange: (event) => {\n const previous = currentComparisonMode.get();\n currentComparisonMode.set(Object.assign(Object.assign({}, previous), { comparison: {\n type: event\n .currentTarget.value,\n } }));\n } }, { children: [defaultComparisons.map((comparison) => (_jsx(VSCodeOption, Object.assign({ value: comparison }, { children: labelForComparison({ type: comparison }) }), comparison))), !defaultComparisons.includes(comparison.type) ? (_jsx(VSCodeOption, Object.assign({ value: comparison.type }, { children: labelForComparison(comparison) }), comparison.type)) : null] })), _jsx(VSCodeButton, Object.assign({ title: \"Reload this comparison. Comparisons do not refresh automatically.\", appearance: \"secondary\", onClick: reloadComparison }, { children: _jsx(Icon, { icon: \"refresh\", \"data-testid\": \"comparison-refresh-button\" }) })), compared.isLoading ? (_jsx(Icon, { icon: \"loading\", \"data-testid\": \"comparison-loading\" })) : null] })), _jsx(VSCodeButton, Object.assign({ \"data-testid\": \"close-comparison-view-button\", appearance: \"icon\", onClick: () => runInAction(() => {\n const previous = currentComparisonMode.get();\n currentComparisonMode.set(Object.assign(Object.assign({}, previous), { visible: false }));\n }) }, { children: _jsx(Icon, { icon: \"x\" }) }))] })) }));\n});\nfunction ComparisonViewFile({ diff, comparison, }) {\n var _a, _b;\n const path = (_b = (_a = diff.newFileName) !== null && _a !== void 0 ? _a : diff.oldFileName) !== null && _b !== void 0 ? _b : \"\";\n const context = {\n id: { path, comparison },\n atoms: { lineRange },\n copy: platform.clipboardCopy,\n // only offer clickable line numbers for comparisons against head, otherwise line numbers will be inaccurate\n openFileToLine: comparisonIsAgainstHead(comparison)\n ? (line) => platform.openFile(path, { line })\n : undefined,\n };\n return (_jsx(\"div\", Object.assign({ className: \"comparison-view-file\" }, { children: _jsx(SplitDiffView, { ctx: context, patch: diff, path: path }) }), path));\n}\nfunction comparisonIsAgainstHead(comparison) {\n switch (comparison.type) {\n case ComparisonType.UncommittedChanges:\n case ComparisonType.HeadChanges:\n case ComparisonType.StackChanges:\n return true;\n case ComparisonType.Committed:\n case ComparisonType.Commit:\n case ComparisonType.Range:\n return false;\n }\n}\n"],"names":["EmptyState","children","_jsx","Object","assign","className","__rest","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","fontStack","fonts","map","font","includes","join","isShadowValue","value","test","filterObject","obj","predicate","Array","isArray","filter","entries","reduce","acc","key","isObject","result","isEmpty","partitionColors","colors","startsWith","isColorValue","shadows","omitScale","scale","lineHeights","primitives","theme","animation","easeOutCubic","borderWidths","breakpoints","normal","mono","fontSizes","fontWeights","light","semibold","bold","radii","sizes","small","medium","large","xlarge","space","colorSchemes","name","compose","styledSystem","system","COMMON","whiteSpace","property","TYPOGRAPHY","defaultDayScheme","defaultNightScheme","ThemeContext","React","setColorMode","setDayScheme","setNightScheme","ThemeProvider","_a","_b","_c","_d","_e","_f","_g","_h","_j","props","useTheme","fallbackTheme","fallbackColorMode","colorMode","fallbackDayScheme","dayScheme","fallbackNightScheme","nightScheme","defaultTheme","serverData","document","getElementById","textContent","JSON","parse","error","getServerHandoff","resolvedServerColorMode","resolvedColorModePassthrough","systemColorMode","getSystemColorMode","setSystemColorMode","media","window","matchMedia","handleChange","event","isNight","matches","undefined","addEventListener","removeEventListener","addListener","removeListener","useSystemColorMode","resolvedColorMode","current","resolveColorMode","colorScheme","chooseColorScheme","resolvedTheme","resolvedColorScheme","console","defaultColorScheme","keys","deepmerge","applyColorScheme","resolvedColorModeOnClient","setTimeout","ReactDOM","Provider","_jsxs","SCThemeProvider","preventSSRMismatch","type","id","dangerouslySetInnerHTML","__html","stringify","GlobalStyle","createGlobalStyle","Base","styled","BaseStyles","color","fontFamily","lineHeight","rest","sx","css","Box","typography","layout","flexbox","grid","background","border","position","shadow","Text","FileHeader","ctx","path","diffType","open","onChangeOpen","diffTypeToColor","pathParts","split","display","alignItems","bg","paddingX","paddingY","backgroundColor","borderTopRightRadius","borderTopLeftRadius","borderBottomColor","borderBottomStyle","borderBottomWidth","paddingRight","onClick","cursor","ChevronUpIcon","size","ChevronDownIcon","Icon","icon","diffTypeToIcon","fontSize","part","idx","pathSoFar","slice","copy","title","Modified","Added","Removed","Renamed","Copied","sizeMap","Spinner","sizeKey","height","width","viewBox","fill","cx","cy","r","stroke","strokeOpacity","strokeWidth","vectorEffect","d","strokeLinecap","SplitDiffRow","beforeClass","afterClass","beforeLineNumber","before","afterLineNumber","after","rowType","openFileToLine","canComment","SplitDiffRowSide","content","lineNumber","side","lineNumberBorderStyle","extraRightLineNumberCellProps","clickableLineNumber","extraClassName","_Fragment","as","displayName","borderLeftWidth","borderLeftStyle","borderLeftColor","MAX_INPUT_LENGTH_FOR_INTRALINE_DIFF","SplitDiffTable","patch","preamble","useState","deletedFileExpanded","setDeletedFileExpanded","Set","expandedSeparators","setExpandedSeparators","onExpand","useCallback","amendedSet","add","translate","isDeleted","newFileName","hunks","lastHunkIndex","rows","forEach","hunk","index","oldStart","newStart","has","range","start","numLines","push","ExpandingSeparator","beforeLineStart","afterLineStart","Math","max","HunkSeparator","lines","groups","group","common","removed","added","fullLine","firstChar","charAt","line","hasDeltas","organizeLinesIntoGroups","addUnmodifiedRows","maxIndex","removedLine","addedLine","beforeAndAfter","createIntralineDiff","addRowsForHunk","nextHunk","oldLines","newLines","SeparatorRow","padding","UnfoldIcon","initialBeforeLineNumber","initialAfterLineNumber","lineContent","changes","diffChars","beforeElements","afterElements","change","label","observer","loadable","atoms","lineRange","get","state","flexDirection","justifyContent","marginLeft","message","colSpan","SplitDiffView","fileName","oldFileName","TypedSplitDiffTable","DiffType","FileStatusBanner","borderWidth","borderStyle","borderColor","borderRadius","PrimerStyles","diffBlob","addition","lineBg","numText","numBg","wordBg","deletion","canvas","subtle","fg","prettylights","syntax","brackethighlighterAngle","brackethighlighterUnmatched","comment","constant","carriageReturnBg","carriageReturnText","constantOtherReferenceLink","entity","entityTag","invalidIllegalBg","invalidIllegalText","keyword","string","sublimelinterGutterMark","storageModifierImport","stringRegexp","variable","parsePatchAndFilter","parsePatch","diff","currentComparisonData","family","genKey","comparison","ComparisonType","Error","hash","genValue","observableBoxWithInitializers","default","isLoading","data","setter","clientToServerAPI","effects","setSelf","disposable","fn","dispose","params","computed","latestHeadCommit","promise","Promise","res","fromPromise","useComparisonData","currentComparison","runInAction","set","ComparisonView","compared","reloadComparison","useEffect","themeState","ComparisonViewHeader","ErrorNotice","parsed","ComparisonViewFile","defaultComparisons","VSCodeDropdown","onChange","previous","currentComparisonMode","currentTarget","VSCodeOption","labelForComparison","VSCodeButton","appearance","visible","context","platform","comparisonIsAgainstHead"],"sourceRoot":""}