@vantran-se/openchamber-web 2.4.2 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AboutDialog-Dz_8z7Rq.js → AboutDialog-C8mAGhnz.js} +1 -1
- package/dist/assets/{ArchiveView-BoMjLD0N.js → ArchiveView-4-LVDLmf.js} +1 -1
- package/dist/assets/{ChangedPathLabel-BirEUxH2.js → ChangedPathLabel-BCiU4QDF.js} +1 -1
- package/dist/assets/{CommandPalette-DkLX-AKB.js → CommandPalette-DEcmPHdC.js} +1 -1
- package/dist/assets/{DiffView-DwyXDHsF.js → DiffView-CaDZ4gTk.js} +3 -3
- package/dist/assets/{FilesView-BFi9HBg1.js → FilesView-Csrs_BGv.js} +1 -1
- package/dist/assets/{GitView-BzWRNg_F.js → GitView-DvxCZgCW.js} +3 -3
- package/dist/assets/{GuestSurfacePane-zDcKyz78.js → GuestSurfacePane-DNg0xBTD.js} +1 -1
- package/dist/assets/{HelpDialog-DZVlv3x2.js → HelpDialog-CLyz3_xd.js} +1 -1
- package/dist/assets/{InProgressOperationBanner-BiEntIfh.js → InProgressOperationBanner-BVDKUDqn.js} +2 -2
- package/dist/assets/{IntegrationsCatalogView-CCHFMcZP.js → IntegrationsCatalogView-u1gS0Vk8.js} +1 -1
- package/dist/assets/{JsonTreeView-BwELoub1.js → JsonTreeView-BpJU14WJ.js} +1 -1
- package/dist/assets/{MarkdownRendererImpl-DxBYkSKd.js → MarkdownRendererImpl-t3OoYn_0.js} +1 -1
- package/dist/assets/{MemoryDebugPanel-C9zpPXVo.js → MemoryDebugPanel-9z1jGWze.js} +1 -1
- package/dist/assets/{OnboardingScreen-Cnzzs_TQ.js → OnboardingScreen-xzT7ckY0.js} +1 -1
- package/dist/assets/{OpenCodeStatusDialog-DizE9xAy.js → OpenCodeStatusDialog-skpJZSjK.js} +1 -1
- package/dist/assets/{PatchDiff-Cz_UxB-k.js → PatchDiff-BWW_8bob.js} +1 -1
- package/dist/assets/{PierreDiffViewer-BT3MrXwN.js → PierreDiffViewer-BZDNV4Uj.js} +1 -1
- package/dist/assets/{PlanView-B-SCCd7M.js → PlanView-D7wshtfZ.js} +1 -1
- package/dist/assets/{ProjectActionsDialog-4OSNuzpG.js → ProjectActionsDialog-BPh74BCt.js} +1 -1
- package/dist/assets/{PullRequestComparisonSelector-lp98DrYm.js → PullRequestComparisonSelector-BBdU2rL1.js} +3 -3
- package/dist/assets/{RunOverview-DJhjR9uR.js → RunOverview-Cngm2OOp.js} +2 -2
- package/dist/assets/{ScheduledTasksDialog-Dwil7zsx.js → ScheduledTasksDialog-DUjDdkw2.js} +1 -1
- package/dist/assets/{SettingsView-DVcV2Rk9.js → SettingsView-CCZOw018.js} +2 -2
- package/dist/assets/{SettingsWindow-DbbAS4Se.js → SettingsWindow-Cndsj5Vu.js} +1 -1
- package/dist/assets/{SourceBoardView-BVcmYpvE.js → SourceBoardView-8Wp0oUvB.js} +1 -1
- package/dist/assets/{SpaceAccessDialog-DxjFUcHZ.js → SpaceAccessDialog-CxfCzTpe.js} +1 -1
- package/dist/assets/{SpaceApplyDialog-Dbrbh-j4.js → SpaceApplyDialog-CYp0A76N.js} +1 -1
- package/dist/assets/{SpaceRow-Cwam4mHh.js → SpaceRow-CQp4PkPJ.js} +1 -1
- package/dist/assets/{SpaceSetupOutput-B_w02jDi.js → SpaceSetupOutput-RNo0mWrR.js} +1 -1
- package/dist/assets/{SpacesView-CGrFWnO-.js → SpacesView-BwcDCv3D.js} +1 -1
- package/dist/assets/{SubmoduleDiffSummary-DFL-m_eu.js → SubmoduleDiffSummary-BQduif5s.js} +1 -1
- package/dist/assets/{ToolOutputDialog-Co0VXa0y.js → ToolOutputDialog-BVCvqYsK.js} +1 -1
- package/dist/assets/{ToolPartDiffPreview-CBSzwkat.js → ToolPartDiffPreview-BXpCHBW9.js} +1 -1
- package/dist/assets/{UsageStatsView-BjtTNSt8.js → UsageStatsView-CsC_RzAH.js} +1 -1
- package/dist/assets/{Virtualizer-Cmng0Q1E.js → Virtualizer-nenVQKi3.js} +1 -1
- package/dist/assets/{WalkthroughView-C7AkVuHQ.js → WalkthroughView-CdIYpttA.js} +1 -1
- package/dist/assets/{WorktreesView-CYU2KJ6E.js → WorktreesView-D102xE1o.js} +1 -1
- package/dist/assets/{appThemeRegistry-CDGE1wtP.js → appThemeRegistry-BWap7OfW.js} +1 -1
- package/dist/assets/{ar-BlEU--PN.js → ar-9CiK5cuu.js} +3 -3
- package/dist/assets/{computeVirtualFileMetrics-BgqasG86.js → computeVirtualFileMetrics-DDyA16hp.js} +1 -1
- package/dist/assets/{de-DWs4Mcjc.js → de-Drq6oIkP.js} +3 -3
- package/dist/assets/{decorate-CpxLqoVw.js → decorate-CemSwkUs.js} +1 -1
- package/dist/assets/{es-k5T7CE97.js → es-0bkFr34F.js} +3 -3
- package/dist/assets/{flexokiTheme-BG4cSAMb.js → flexokiTheme-PoX6Vqyn.js} +1 -1
- package/dist/assets/{fr-CzmypgZ8.js → fr-CjgWVupK.js} +3 -3
- package/dist/assets/{he-DdkxJnUn.js → he-BrJa9oPB.js} +4 -4
- package/dist/assets/{index-BrL960j-.js → index-B2WHEal3.js} +1 -1
- package/dist/assets/{initializeSharedPreferences-CrnmmfFs.js → initializeSharedPreferences-1Vo6G7CM.js} +1 -1
- package/dist/assets/{install-DvRQsTjX.js → install-FletzeYD.js} +1 -1
- package/dist/assets/{isDiffPlainText-KGYbp86N.js → isDiffPlainText-yXcpftjI.js} +1 -1
- package/dist/assets/{isFilePlainText-D7rclQrA.js → isFilePlainText-Dpm-_Qu8.js} +1 -1
- package/dist/assets/{ja-Qqkyglaf.js → ja-cfyrqWPa.js} +3 -3
- package/dist/assets/katex.min-F4TD1ekM.js +69 -0
- package/dist/assets/{ko-B8idPK2d.js → ko-herKAlGO.js} +3 -3
- package/dist/assets/{main-D4-y6PQ0.js → main-CO7wKNtS.js} +2 -2
- package/dist/assets/{main-Cmc8m6dZ.js → main-DN47yDMe.js} +19 -19
- package/dist/assets/markdownCore-BY21GJ_M.js +10 -0
- package/dist/assets/{miniChat-CjJ77DDL.js → miniChat-BmFJFQph.js} +2 -2
- package/dist/assets/{mobile-DlFdLxjR.js → mobile-DTi98S93.js} +2 -2
- package/dist/assets/{moveWorkspacePath-CVdEBQ6v.js → moveWorkspacePath-CENAo75W.js} +1 -1
- package/dist/assets/{nl-CFXZKHp7.js → nl-mZ4VCoiQ.js} +3 -3
- package/dist/assets/{parseDiffFromFile-DWemyyqU.js → parseDiffFromFile-BSmRvd3V.js} +1 -1
- package/dist/assets/{pierreDiffTint-B7qPTZmL.js → pierreDiffTint-cyYFR1bm.js} +1 -1
- package/dist/assets/{pl-slLgZWDu.js → pl-C98lvkcZ.js} +4 -4
- package/dist/assets/{pt-BR-C319g_nn.js → pt-BR-CB63WPLS.js} +3 -3
- package/dist/assets/{relocateRestoredSession-cOuWlgWB.js → relocateRestoredSession-D8Sf_FG_.js} +1 -1
- package/dist/assets/{renderElectronMiniChatApp-DFnEi5Tr.js → renderElectronMiniChatApp-DmQ8i5jp.js} +2 -2
- package/dist/assets/{renderMobileApp-C2TYqVOV.js → renderMobileApp-CND9CafV.js} +3 -3
- package/dist/assets/{restartOpenCode-Dvk4CWW7.js → restartOpenCode-D8ExMl55.js} +1 -1
- package/dist/assets/{runtimeEndpointReset-D7viEboD.js → runtimeEndpointReset-lg1O2gVX.js} +3 -3
- package/dist/assets/{scheduledTasksApi-FZ9stPNl.js → scheduledTasksApi-CJBNpwgy.js} +1 -1
- package/dist/assets/{selectionMarkdown-CCursbAw.js → selectionMarkdown-B_3WTOUr.js} +1 -1
- package/dist/assets/{shikiHighlight-CLj7Oan9.js → shikiHighlight-DBj_a_TN.js} +1 -1
- package/dist/assets/{space-apply-DdhqZWNy.js → space-apply-COMscpEL.js} +1 -1
- package/dist/assets/{space-close-KXdazynX.js → space-close-DDLvYCUc.js} +1 -1
- package/dist/assets/{spaceNetwork-DzU3SK9K.js → spaceNetwork-CNxs51y4.js} +1 -1
- package/dist/assets/{textMateThemeFromAppTheme-C-jxkZJj.js → textMateThemeFromAppTheme-tYpAceV3.js} +1 -1
- package/dist/assets/{tr-DNnJ5oqk.js → tr-C5KUa-8X.js} +3 -3
- package/dist/assets/{uk-Bw0BJwHw.js → uk-D44Grdmc.js} +3 -3
- package/dist/assets/{useAppFontEffects-DAUhSLPu.js → useAppFontEffects-Dm6zEvrf.js} +200 -199
- package/dist/assets/{useCallableModelProviders-B-UCRuyn.js → useCallableModelProviders-BK3j8Sde.js} +1 -1
- package/dist/assets/{useDiffFindSurface-CU_63uoI.js → useDiffFindSurface-CaCh-qt2.js} +1 -1
- package/dist/assets/{useInlineCommentController-bYCeqE6r.js → useInlineCommentController-a2JepiF3.js} +1 -1
- package/dist/assets/{useMarkdownLocalAssets-CnMxnDdI.js → useMarkdownLocalAssets-BEApAshz.js} +2 -2
- package/dist/assets/{useRootScrollLock-DNYaZ34X.js → useRootScrollLock-mqVhK2HB.js} +2 -2
- package/dist/assets/{useWalkthroughReview-DGPyQ634.js → useWalkthroughReview-BspAr9Aa.js} +1 -1
- package/dist/assets/{vendor-codemirror-language-data-KulAIuMz.js → vendor-codemirror-language-data-VzNDjH03.js} +2 -2
- package/dist/assets/{zh-CN-Brx5Btej.js → zh-CN-DwBC4Qtd.js} +3 -3
- package/dist/assets/{zh-TW-WokiutLA.js → zh-TW-DXEqDBAm.js} +3 -3
- package/dist/index.html +2 -2
- package/dist/mini-chat.html +2 -2
- package/dist/mobile.html +2 -2
- package/package.json +2 -2
- package/server/lib/git/service.test.js +1 -1
- package/server/lib/opencode/openchamber-routes.test.js +1 -0
- package/server/lib/opencode/settings-helpers.js +2 -2
- package/server/lib/opencode/settings-helpers.test.js +1 -1
- package/server/lib/opencode/settings-registry.json +1 -1
- package/server/lib/outbound-proxy.test.js +2 -2
- package/server/lib/spaces/tools.test.js +2 -2
- package/dist/assets/katex.min-u4DtE8E5.js +0 -69
- package/dist/assets/markdownCore-D_5e0Wl7.js +0 -10
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{et as _,eh as re,f5 as oe,f6 as se,f7 as de,gO as le,gP as ce,gQ as Z,gR as fe,ei as ue,ey as he}from"./useAppFontEffects-DAUhSLPu.js";import{a as me,B as p,I as O,H as z,i as ge}from"./computeVirtualFileMetrics-BgqasG86.js";import{t as pe}from"./vendor-hast-util-to-html-BKBhbTDb.js";import{c as be}from"./vendor-diff-C3JhlQdm.js";const A=new Set;let C=null;function ve(e){A.add(e),C??=requestAnimationFrame(ee)}function G(e){A.delete(e)&&A.size===0&&C!=null&&(cancelAnimationFrame(C),C=null)}function ee(e){const t=new Set(A);A.clear();for(const i of t)try{i(e)}catch(n){console.error(n)}A.size>0?C=requestAnimationFrame(ee):C=null}function V(e,t,i){if(e===t||e==null||t==null)return e===t;const n=new Set(i),a=Object.keys(e),r=new Set(Object.keys(t));for(const s of a)if(r.delete(s),!n.has(s)&&(!(s in t)||e[s]!==t[s]))return!1;for(const s of Array.from(r))if(!n.has(s))return!1;return!0}function et(e,t){const i=e?.theme??_,n=t?.theme??_,a=q(e),r=q(t);return me(i,n)&&V(e,t,["theme","parseDiffOptions"])&&V(a,r)}function q(e){if(e!=null&&"parseDiffOptions"in e)return e.parseDiffOptions}function B(e,t){return e?.start===t?.start&&e?.end===t?.end&&e?.side===t?.side&&e?.endSide===t?.endSide}function ye(){return p({tagName:"button",properties:{"data-utility-button":"",type:"button"},children:[O({name:"diffs-icon-plus",properties:{"data-icon":""}})]})}function xe(e,t){return e.lineNumber===t.lineNumber&&e.side===t.side}function R(e){for(const t of e)if(t instanceof HTMLElement&&(t.hasAttribute("data-utility-button")||t.hasAttribute("data-gutter-utility-slot")||t.getAttribute("slot")==="gutter-utility-slot"||t.getAttribute("name")==="gutter-utility-slot"))return!0;return!1}var tt=class{mode;options;hoveredLine;hoveredToken;pre;gutterUtilityLine;gutterUtilityContainer;gutterUtilityButton;gutterUtilitySlot;interactiveLinesAttr=!1;interactiveLineNumbersAttr=!1;hasPointerListeners=!1;hasDocumentPointerListeners=!1;selectedRange=null;selectedRangeHighlightSide;selectedRangeLineNumberOnly=!1;editorActiveLine=null;editorActiveLineSide;editorLineNumberOnly=!1;proposedSelectedRange;renderedSelectedLinesState;renderedEditorActiveLineState;selectionAnchor;pointerSession={mode:"idle"};constructor(e,t){this.mode=e,this.options=t}setOptions(e){this.options=e}cleanUp(){this.pre?.removeEventListener("click",this.handlePointerClick),this.pre?.removeEventListener("pointerdown",this.handlePointerDown),this.pre?.removeEventListener("pointermove",this.handlePointerMove),this.pre?.removeEventListener("pointerleave",this.handlePointerLeave),this.pre?.removeAttribute("data-interactive-lines"),this.pre?.removeAttribute("data-interactive-line-numbers"),this.pre=void 0,this.gutterUtilityContainer?.remove(),this.gutterUtilityLine=void 0,this.gutterUtilityContainer=void 0,this.gutterUtilityButton=void 0,this.gutterUtilitySlot=void 0,this.clearHoveredLine(),this.clearHoveredToken(),this.detachDocumentPointerListeners(),this.clearPointerSession(),G(this.renderSelection),this.interactiveLinesAttr=!1,this.interactiveLineNumbersAttr=!1,this.hasPointerListeners=!1,this.setSelectionDirty()}setup(e){this.setSelectionDirty();const{usesCustomGutterUtility:t=!1,enableGutterUtility:i=!1}=this.options;this.pre!==e&&(this.cleanUp(),this.pre=e),i?this.ensureGutterUtilityNode(t):this.gutterUtilityContainer!=null&&(this.gutterUtilityContainer.remove(),this.gutterUtilityLine=void 0,this.gutterUtilityContainer=void 0,this.gutterUtilityButton=void 0,this.gutterUtilitySlot=void 0,this.pointerSession.mode==="gutterSelecting"&&(this.clearPointerSession(),this.detachDocumentPointerListeners())),this.syncPointerListeners(e),this.updateInteractiveLineAttributes(),this.renderSelection(),this.placeUtility()}setSelectionDirty(){this.renderedSelectedLinesState=void 0,this.renderedEditorActiveLineState=void 0}isSelectionDirty(){return this.renderedSelectedLinesState===void 0||this.renderedEditorActiveLineState===void 0}setSelection(e,t){const i=!(e===this.selectedRange||B(e??void 0,this.selectedRange??void 0)),n=t?.lineNumberOnly??!1,a=t?.activeLineSide!==this.selectedRangeHighlightSide||n!==this.selectedRangeLineNumberOnly;!this.isSelectionDirty()&&!i&&!a||(this.proposedSelectedRange=void 0,this.selectedRange=e,this.selectedRangeHighlightSide=t?.activeLineSide,this.selectedRangeLineNumberOnly=n,this.renderSelection(),this.placeUtility(),i&&t?.notify!==!1&&this.notifySelectionCommitted(e))}setEditorActiveLine(e,{lineNumberOnly:t=!1,side:i}={}){const n=e!==this.editorActiveLine,a=i!==this.editorActiveLineSide||t!==this.editorLineNumberOnly;!this.isSelectionDirty()&&!n&&!a||(this.editorActiveLine=e,this.editorActiveLineSide=i,this.editorLineNumberOnly=t,this.renderSelection())}getSelection(){return this.selectedRange}getHoveredLine=()=>{const e=this.gutterUtilityLine??this.hoveredLine;if(e!=null){if(this.mode==="diff"&&e.type==="diff-line")return{lineNumber:e.lineNumber,side:e.annotationSide};if(this.mode==="file"&&e.type==="line")return{lineNumber:e.lineNumber}}};handlePointerClick=e=>{const{onHunkExpand:t,onLineClick:i,onLineNumberClick:n,onTokenClick:a,onMergeConflictActionClick:r}=this.options;t==null&&i==null&&n==null&&r==null&&a==null||this.options.onGutterUtilityClick!=null&&R(e.composedPath())||(w(this.options.__debugPointerEvents,"click","FileDiff.DEBUG.handlePointerClick:",e),this.handlePointerEvent({eventType:"click",event:e}))};handlePointerMove=e=>{if(e.pointerType!=="mouse")return;const{lineHoverHighlight:t="disabled",onLineEnter:i,onLineLeave:n,onTokenEnter:a,onTokenLeave:r,enableGutterUtility:s=!1}=this.options;t==="disabled"&&!s&&i==null&&n==null&&a==null&&r==null||(w(this.options.__debugPointerEvents,"move","FileDiff.DEBUG.handlePointerMove:",e),this.handlePointerEvent({eventType:"move",event:e}))};handlePointerLeave=e=>{const{__debugPointerEvents:t}=this.options;if(w(t,"move","FileDiff.DEBUG.handlePointerLeave: no event"),this.hoveredLine==null&&this.hoveredToken==null){w(t,"move","FileDiff.DEBUG.handlePointerLeave: returned early, no hovered line or token");return}this.hoveredToken!=null&&(this.options.onTokenLeave?.(this.hoveredToken,e),this.clearHoveredToken()),this.hoveredLine!=null&&(this.options.onLineLeave?.({...this.hoveredLine,event:e}),this.clearHoveredLine()),this.placeUtility()};handlePointerEvent({eventType:e,event:t}){const{__debugPointerEvents:i}=this.options,n=t.composedPath();w(i,e,"FileDiff.DEBUG.handlePointerEvent:",{eventType:e,composedPath:n});const a=this.resolvePointerTarget(n);w(i,e,"FileDiff.DEBUG.handlePointerEvent: resolvePointerTarget result:",a);const{onLineClick:r,onLineNumberClick:s,onLineEnter:d,onLineLeave:c,onTokenClick:l,onTokenEnter:o,onTokenLeave:f,onHunkExpand:h,onMergeConflictActionClick:u}=this.options;switch(e){case"move":{const g=F(a)&&this.hoveredLine?.lineElement===a.lineElement;H(a)&&this.hoveredToken?.tokenElement===a.tokenElement||(this.hoveredToken!=null&&(f?.(this.hoveredToken,t),this.clearHoveredToken()),H(a)&&(this.setHoveredToken(this.toTokenEventBaseProps(a)),o?.(this.hoveredToken,t))),g||(this.hoveredLine!=null&&(c?.({...this.hoveredLine,event:t}),this.clearHoveredLine()),F(a)?(this.setHoveredLine(this.toEventBaseProps(a)),this.placeUtility(),d?.({...this.hoveredLine,event:t})):this.placeUtility());break}case"click":{if(a==null)break;if(we(a)&&u!=null){u(a);break}if(ke(a)&&h!=null){h(a.hunkIndex,a.all||t.shiftKey?"both":a.direction,a.all||t.shiftKey?Number.POSITIVE_INFINITY:void 0);break}if(!F(a))break;H(a)&&l!=null&&l(this.toTokenEventBaseProps(a),t);const g=this.toEventBaseProps(a);s!=null&&a.numberColumn?s({...g,event:t}):r?.({...g,event:t});break}}}syncPointerListeners(e){const{__debugPointerEvents:t,lineHoverHighlight:i="disabled",onLineClick:n,onLineNumberClick:a,onLineEnter:r,onLineLeave:s,onTokenClick:d,onTokenEnter:c,onTokenLeave:l,onHunkExpand:o,onMergeConflictActionClick:f,enableGutterUtility:h=!1,enableLineSelection:u=!1,onGutterUtilityClick:g}=this.options,m=g!=null,y=i!=="disabled"||n!=null||a!=null||r!=null||s!=null||d!=null||c!=null||l!=null||o!=null||f!=null||h||u||m;y&&!this.hasPointerListeners?(e.addEventListener("click",this.handlePointerClick),e.addEventListener("pointerdown",this.handlePointerDown),e.addEventListener("pointermove",this.handlePointerMove),e.addEventListener("pointerleave",this.handlePointerLeave),this.hasPointerListeners=!0,w(t,"click","FileDiff.DEBUG.attachEventListeners: Attaching click events for:",(()=>{const v=[];return(t==="both"||t==="click")&&(n!=null&&v.push("onLineClick"),a!=null&&v.push("onLineNumberClick"),o!=null&&v.push("expandable hunk separators"),f!=null&&v.push("merge conflict actions")),v})()),w(t,"move","FileDiff.DEBUG.attachEventListeners: Attaching pointer move event"),w(t,"move","FileDiff.DEBUG.attachEventListeners: Attaching pointer leave event")):!y&&this.hasPointerListeners&&(e.removeEventListener("click",this.handlePointerClick),e.removeEventListener("pointerdown",this.handlePointerDown),e.removeEventListener("pointermove",this.handlePointerMove),e.removeEventListener("pointerleave",this.handlePointerLeave),this.hasPointerListeners=!1);const b=this.pointerSession.mode==="selecting"||this.pointerSession.mode==="pendingSingleLineUnselect",x=this.pointerSession.mode==="gutterSelecting";(!u&&b||!m&&x)&&(this.clearPointerSession(),this.detachDocumentPointerListeners(),this.selectionAnchor=void 0,this.clearPendingSingleLineState())}updateInteractiveLineAttributes(){if(this.pre==null)return;const{onLineClick:e,onLineNumberClick:t,enableLineSelection:i=!1}=this.options,n=e!=null,a=t!=null||i;n&&!this.interactiveLinesAttr?(this.pre.setAttribute("data-interactive-lines",""),this.interactiveLinesAttr=!0):!n&&this.interactiveLinesAttr&&(this.pre.removeAttribute("data-interactive-lines"),this.interactiveLinesAttr=!1),a&&!this.interactiveLineNumbersAttr?(this.pre.setAttribute("data-interactive-line-numbers",""),this.interactiveLineNumbersAttr=!0):!a&&this.interactiveLineNumbersAttr&&(this.pre.removeAttribute("data-interactive-line-numbers"),this.interactiveLineNumbersAttr=!1)}handlePointerDown=e=>{if(e.pointerType==="mouse"&&e.button!==0||this.pre==null||this.pointerSession.mode!=="idle")return;const t=e.composedPath();R(t)&&this.options.onGutterUtilityClick!=null?this.startGutterSelectionFromPointerDown(e):(e.pointerType!=="mouse"&&this.revealUtilityFromGutterPath(t),this.startLineSelectionFromPointerDown(e))};startLineSelectionFromPointerDown(e){const{enableLineSelection:t=!1}=this.options;if(!t)return;const i=this.resolveSelectionInfo(e,{source:"event-path",requireNumberColumn:!0});if(i==null)return;const{pre:n}=this;if(n==null)return;const{lineNumber:a,eventSide:r,lineIndex:s}=i;if(e.shiftKey&&this.selectedRange!=null){const d=this.getIndexesFromSelection(this.selectedRange,n.getAttribute("data-diff-type")==="split");if(d==null)return;const c=d.start<=d.end?s>=d.start:s<=d.end;this.selectionAnchor={lineNumber:c?this.selectedRange.start:this.selectedRange.end,side:c?this.selectedRange.side:this.selectedRange.endSide??this.selectedRange.side},this.updateSelection(a,r,!1),this.notifySelectionStart(this.getCurrentSelectionRange()),this.pointerSession={mode:"selecting",pointerId:e.pointerId},this.attachDocumentPointerListeners();return}if(this.selectedRange?.start===a&&this.selectedRange?.end===a){const d={lineNumber:a,side:r};this.selectionAnchor=d,this.pointerSession={mode:"pendingSingleLineUnselect",pointerId:e.pointerId,anchor:d,pending:d},this.attachDocumentPointerListeners();return}this.options.controlledSelection===!0?this.proposedSelectedRange=null:this.selectedRange=null,this.placeUtility(),this.selectionAnchor={lineNumber:a,side:r},this.updateSelection(a,r,!1),this.notifySelectionStart(this.getCurrentSelectionRange()),this.pointerSession={mode:"selecting",pointerId:e.pointerId},this.attachDocumentPointerListeners()}startGutterSelectionFromPointerDown(e){const{onGutterUtilityClick:t}=this.options;if(t==null)return;const i=this.currentSelectionEnds(),n=i?.bottom??this.resolveSelectionPoint(e,{source:"event-path",excludeUtility:!1}),a=i?.top??n;n==null||a==null||(e.preventDefault(),e.stopPropagation(),this.pointerSession={mode:"gutterSelecting",pointerId:e.pointerId,anchor:a,current:n},this.selectionAnchor={lineNumber:a.lineNumber,side:a.side},this.updateSelection(n.lineNumber,n.side,!1),this.notifySelectionStart(this.getCurrentSelectionRange()),this.attachDocumentPointerListeners())}handleDocumentPointerMove=e=>{switch(this.pointerSession.mode){case"idle":return;case"gutterSelecting":{if(e.pointerId!==this.pointerSession.pointerId)return;e.preventDefault();const t=this.resolveSelectionPoint(e,{source:"coordinates-first"});if(t==null)return;this.pointerSession.current=t,this.updateSelection(t.lineNumber,t.side);return}case"selecting":{if(e.pointerId!==this.pointerSession.pointerId)return;e.preventDefault();const t=this.resolveSelectionInfo(e,{source:"coordinates-first",requireNumberColumn:!1});if(t==null||this.selectionAnchor==null)return;this.updateSelection(t.lineNumber,t.eventSide);return}case"pendingSingleLineUnselect":{if(e.pointerId!==this.pointerSession.pointerId)return;e.preventDefault();const t=this.resolveSelectionInfo(e,{source:"coordinates-first",requireNumberColumn:!1});if(t==null||this.selectionAnchor==null)return;const i={lineNumber:t.lineNumber,side:t.eventSide};if(xe(this.pointerSession.pending,i))return;this.updateSelection(t.lineNumber,t.eventSide,!1),this.notifySelectionStart(this.getCurrentSelectionRange()),this.notifySelectionChangeDelta(),this.pointerSession={mode:"selecting",pointerId:e.pointerId};return}}};handleDocumentPointerUp=e=>{const{onGutterUtilityClick:t}=this.options;switch(this.pointerSession.mode){case"idle":return;case"gutterSelecting":{const{pointerSession:i}=this;if(e.pointerId!==i.pointerId)return;e.preventDefault();const n=this.resolveSelectionPoint(e,{source:"coordinates-first"});n!=null&&(i.current=n,this.updateSelection(n.lineNumber,n.side));const a=this.buildSelectedLineRange(i.anchor,i.current);t?.({...a}),this.selectionAnchor=void 0,this.notifySelectionEnd(a),this.notifySelectionCommitted(a),this.clearProposedSelection(),this.clearPointerSession(),this.detachDocumentPointerListeners();return}case"pendingSingleLineUnselect":if(e.pointerId!==this.pointerSession.pointerId)return;e.preventDefault(),this.updateSelection(null,void 0,!1),this.selectionAnchor=void 0,this.clearPendingSingleLineState(),this.detachDocumentPointerListeners(),this.notifySelectionEnd(this.getCurrentSelectionRange()),this.notifySelectionCommitted(this.getCurrentSelectionRange()),this.clearProposedSelection();return;case"selecting":if(e.pointerId!==this.pointerSession.pointerId)return;e.preventDefault(),this.selectionAnchor=void 0,this.detachDocumentPointerListeners(),this.clearPointerSession(),this.notifySelectionEnd(this.getCurrentSelectionRange()),this.notifySelectionCommitted(this.getCurrentSelectionRange()),this.clearProposedSelection()}};handleDocumentPointerCancel=e=>{switch(this.pointerSession.mode){case"idle":return;case"gutterSelecting":case"selecting":case"pendingSingleLineUnselect":if("pointerId"in this.pointerSession&&e.pointerId!==this.pointerSession.pointerId)return;this.selectionAnchor=void 0,this.clearProposedSelection(),this.clearPendingSingleLineState(),this.clearPointerSession(),this.detachDocumentPointerListeners()}};clearHoveredLine(){this.hoveredLine!=null&&(this.hoveredLine.lineElement.removeAttribute("data-hovered"),this.hoveredLine.numberElement.removeAttribute("data-hovered"),this.hoveredLine=void 0)}setHoveredLine(e){const{lineHoverHighlight:t="disabled"}=this.options;this.hoveredLine!=null&&this.clearHoveredLine(),this.hoveredLine=e,t!=="disabled"&&((t==="both"||t==="line")&&this.hoveredLine.lineElement.setAttribute("data-hovered",""),(t==="both"||t==="number")&&this.hoveredLine.numberElement.setAttribute("data-hovered",""))}clearHoveredToken(){this.hoveredToken!=null&&(this.hoveredToken=void 0)}setHoveredToken(e){this.hoveredToken!=null&&this.clearHoveredToken(),this.hoveredToken=e}ensureGutterUtilityNode(e){if(this.gutterUtilityContainer==null&&(this.gutterUtilityContainer=document.createElement("div"),this.gutterUtilityContainer.setAttribute("data-gutter-utility-slot","")),e)this.gutterUtilityButton!=null&&(this.gutterUtilityButton.remove(),this.gutterUtilityButton=void 0),this.gutterUtilitySlot==null&&(this.gutterUtilitySlot=document.createElement("slot"),this.gutterUtilitySlot.name="gutter-utility-slot"),this.gutterUtilitySlot.parentNode!==this.gutterUtilityContainer&&this.gutterUtilityContainer.replaceChildren(this.gutterUtilitySlot);else{if(this.gutterUtilitySlot?.remove(),this.gutterUtilitySlot=void 0,this.gutterUtilityButton==null){const t=document.createElement("div");t.innerHTML=pe(ye());const i=t.firstElementChild;if(!(i instanceof HTMLButtonElement))throw new Error("InteractionManager.ensureGutterUtilityNode: Node element should be a button");i.remove(),this.gutterUtilityButton=i}this.gutterUtilityButton.parentNode!==this.gutterUtilityContainer&&this.gutterUtilityContainer.replaceChildren(this.gutterUtilityButton)}}revealUtilityFromGutterPath(e){if(this.placeUtilityFromSelection())return;const t=this.resolvePointerTarget(e);I(t)&&t.numberColumn&&this.showUtilityOnLine(this.toEventBaseProps(t))}placeUtility(){if(!this.placeUtilityFromSelection()){if(this.hoveredLine!=null){this.showUtilityOnLine(this.hoveredLine);return}this.hideUtility()}}placeUtilityFromSelection(){const e=this.currentSelectionEnds();if(e==null)return!1;const t=this.targetForSelectionPoint(e.bottom);return t==null?this.hideUtility():this.showUtilityOnLine(this.toEventBaseProps(t)),!0}showUtilityOnLine(e){this.gutterUtilityContainer!=null&&(this.gutterUtilityLine=e,e.numberElement.appendChild(this.gutterUtilityContainer))}hideUtility(){this.gutterUtilityContainer?.remove(),this.gutterUtilityLine=void 0}currentSelectionEnds(){const e=this.getCurrentSelectionRange();return e==null?void 0:this.selectionEnds(e)}selectionEnds(e){const t={lineNumber:e.start,side:e.side},i={lineNumber:e.end,side:e.endSide??e.side},n=this.selectionPointRowIndex(t),a=this.selectionPointRowIndex(i);if(!(n==null||a==null))return n>a?{top:i,bottom:t}:{top:t,bottom:i}}selectionPointRowIndex(e){const t=this.getLineIndex(e.lineNumber,e.side);if(t!=null)return this.isSplitDiff()?t[1]:t[0]}targetForSelectionPoint(e){if(this.pre==null)return;const t=this.getLineIndex(e.lineNumber,e.side);if(t==null)return;const i=this.mode==="diff"?`${t[0]},${t[1]}`:`${t[0]}`,n=this.pre.querySelectorAll(`[data-column-number="${e.lineNumber}"][data-line-index="${i}"]`);for(const a of n){if(!(a instanceof HTMLElement))continue;const r=this.resolvePointerTarget(P(a));if(I(r)&&!(this.mode==="diff"&&e.side!=null&&r.side!==e.side))return r}}attachDocumentPointerListeners(){this.hasDocumentPointerListeners||(document.addEventListener("pointermove",this.handleDocumentPointerMove),document.addEventListener("pointerup",this.handleDocumentPointerUp),document.addEventListener("pointercancel",this.handleDocumentPointerCancel),this.hasDocumentPointerListeners=!0)}detachDocumentPointerListeners(){this.hasDocumentPointerListeners&&(document.removeEventListener("pointermove",this.handleDocumentPointerMove),document.removeEventListener("pointerup",this.handleDocumentPointerUp),document.removeEventListener("pointercancel",this.handleDocumentPointerCancel),this.hasDocumentPointerListeners=!1)}clearPointerSession(){this.pointerSession={mode:"idle"}}clearPendingSingleLineState(){this.pointerSession.mode==="pendingSingleLineUnselect"&&(this.pointerSession={mode:"idle"})}selectionInfoFromPath(e,t){const i=this.resolvePointerTarget(e);if(I(i)&&!(t&&!i.numberColumn)&&i.splitLineIndex!=null)return{lineIndex:i.splitLineIndex,lineNumber:i.lineNumber,eventSide:this.mode==="diff"?i.side:void 0}}resolveSelectionInfo(e,t){const i=this.resolveSelectionPath(e,t);return i!=null?this.selectionInfoFromPath(i,t.requireNumberColumn):void 0}selectionPointFromPath(e){const t=this.resolvePointerTarget(e);if(I(t))return{lineNumber:t.lineNumber,side:this.mode==="diff"?t.side:void 0}}resolveSelectionPoint(e,t){const i=this.resolveSelectionPath(e,t);return i!=null?this.selectionPointFromPath(i):void 0}resolveSelectionPath(e,t){const i=t.excludeUtility!==!1;switch(t.source){case"event-path":return this.pathFromEventPath(e.composedPath(),i);case"coordinates-first":{const n=this.pathFromCoordinates(e,i);return n!==void 0?n??void 0:this.pathFromEventPath(e.composedPath(),i)}}}pathFromCoordinates(e,t){const i=this.hitTest(e);if(i!==void 0)return i===null?null:this.pathFromElement(i,t)??null}pathFromEventPath(e,t){if(!(t&&R(e))){for(const i of e)if(i instanceof Element)return this.pathFromElement(i,t)}}pathFromElement(e,t){const i=P(e);if(t&&R(i))return;const n=Ee(e);return n!=null?P(n):this.pathFromAnnotationSlot(e)}pathFromAnnotationSlot(e){const t=Ae(e)?.previousElementSibling;if(t instanceof HTMLElement&&(t.hasAttribute("data-line")||t.hasAttribute("data-column-number")))return P(t);const i=Ne(Ce(e));if(i==null)return;const n=this.targetForSelectionPoint(i);return n!=null?P(n.lineElement):void 0}hitTest(e){if(!Number.isFinite(e.clientX)||!Number.isFinite(e.clientY))return;const t=this.pre?.getRootNode(),i=K(t)?t:K(document)?document:void 0;if(i!=null)return i.elementFromPoint(e.clientX,e.clientY)}getLineIndex(e,t){const{getLineIndex:i}=this.options;return i!=null?i(e,t):[e-1,e-1]}getCurrentSelectionRange(){return this.proposedSelectedRange!==void 0?this.proposedSelectedRange:this.selectedRange}clearProposedSelection(){this.proposedSelectedRange=void 0}updateSelection(e,t,i=!0){const n=this.getCurrentSelectionRange();let a;if(e==null)a=null;else{const r=this.selectionAnchor?.side??t,s=this.selectionAnchor?.lineNumber??e;a=this.buildSelectionRange(s,e,r,t)}B(n??void 0,a??void 0)||(this.selectedRangeHighlightSide=void 0,this.selectedRangeLineNumberOnly=!1,this.options.controlledSelection===!0?this.proposedSelectedRange=a:(this.selectedRange=a,ve(this.renderSelection)),this.placeUtility(),i&&this.notifySelectionChangeDelta())}getIndexesFromSelection(e,t){if(this.pre==null)return;const i=this.getLineIndex(e.start,e.side),n=this.getLineIndex(e.end,e.endSide??e.side);return i!=null&&n!=null?{start:t?i[1]:i[0],end:t?n[1]:n[0]}:void 0}getSelectionRenderState(){return{selectedLines:{range:this.selectedRange,highlightSide:this.selectedRangeHighlightSide,lineNumberOnly:this.selectedRangeLineNumberOnly},editorActiveLine:{range:this.editorActiveLine==null?null:{start:this.editorActiveLine,end:this.editorActiveLine,side:this.editorActiveLineSide},highlightSide:this.editorActiveLineSide,lineNumberOnly:this.editorLineNumberOnly}}}resolveLineRenderRange(e,t,i){if(e.range==null)return;const n=this.getIndexesFromSelection(e.range,t);if(n==null)throw console.error({rowRange:n,range:e.range}),new Error(`InteractionManager.renderSelection: No valid ${i} rowRange`);return n}getLineRenderColumns(e,t,i,n){if(this.pre==null||t==null&&n==null)return[];const{children:a}=this.pre;if(a.length>2)throw console.error(a),new Error("InteractionManager.renderSelection: Somehow there are more than 2 code elements...");const r=[];for(const s of a){const d=s.hasAttribute("data-deletions")?"deletions":s.hasAttribute("data-additions")?"additions":void 0,c=e!=null&&t!=null&&(e.highlightSide==null||d==null||e.highlightSide===d),l=i!=null&&n!=null&&(i.highlightSide==null||d==null||i.highlightSide===d);if(!c&&!l)continue;const[o,f]=s.children;if(!(o instanceof HTMLElement)||!(f instanceof HTMLElement))throw new Error("InteractionManager.renderSelection: missing gutter or content element");if(f.children.length!==o.children.length)throw new Error("InteractionManager.renderSelection: gutter and content children dont match, something is wrong");r.push({content:f,gutter:o,renderEditorActiveLine:l,renderSelectedLines:c})}return r}renderSelection=()=>{G(this.renderSelection);const e=this.getSelectionRenderState();if(this.pre==null)return;const{editorActiveLine:t,selectedLines:i}=e,n=!Y(this.renderedSelectedLinesState,i),a=!Y(this.renderedEditorActiveLineState,t);if(!n&&!a)return;n&&(this.renderedSelectedLinesState=void 0),a&&(this.renderedEditorActiveLineState=void 0);const r=this.pre.getAttribute("data-diff-type")==="split",s=n?this.resolveLineRenderRange(i,r,"selected-lines"):void 0,d=a?this.resolveLineRenderRange(t,r,"editor-active-line"):void 0,c=this.getLineRenderColumns(n?i:void 0,s,a?t:void 0,d),l=i.range==null||c.some(m=>m.renderSelectedLines),o=t.range==null||c.some(m=>m.renderEditorActiveLine);if(n)for(const m of this.pre.querySelectorAll("[data-selected-line]"))m.removeAttribute("data-selected-line");if(a)for(const m of this.pre.querySelectorAll("[data-editor-active-line]"))m.removeAttribute("data-editor-active-line");const f=s==null?void 0:Math.min(s.start,s.end),h=s==null?void 0:Math.max(s.start,s.end),u=f===h,g=d?.start;for(const m of c){const{content:y,gutter:b,renderEditorActiveLine:x,renderSelectedLines:v}=m,N=Math.max(v?h??-1/0:-1/0,x?g??-1/0:-1/0),D=y.children.length;for(let T=0;T<D;T++){const S=y.children[T],M=b.children[T];if(!(S instanceof HTMLElement)||!(M instanceof HTMLElement))continue;const k=this.parseLineIndex(S,r);if((k??0)>N)break;if(k!=null){if(v&&f!=null&&h!=null&&k>=f&&k<=h){let E=u?"single":k===f?"first":k===h?"last":"";M.setAttribute("data-selected-line",E),i.lineNumberOnly||(S.setAttribute("data-selected-line",E),M.nextSibling instanceof HTMLElement&&S.nextSibling instanceof HTMLElement&&(S.nextSibling.hasAttribute("data-line-annotation")||S.nextSibling.hasAttribute("data-merge-conflict-actions"))&&(u?(E="last",S.setAttribute("data-selected-line","first")):k===f?E="":k===h&&S.setAttribute("data-selected-line",""),S.nextSibling.setAttribute("data-selected-line",E),M.nextSibling.setAttribute("data-selected-line",E)))}x&&k===g&&(M.setAttribute("data-editor-active-line",""),t.lineNumberOnly||S.setAttribute("data-editor-active-line",""))}}}n&&l&&(this.renderedSelectedLinesState=i),a&&o&&(this.renderedEditorActiveLineState=t)};notifySelectionCommitted(e){this.options.onLineSelected?.(e)}notifySelectionChangeDelta(){this.options.onLineSelectionChange?.(this.getCurrentSelectionRange()??null)}notifySelectionStart(e){this.options.onLineSelectionStart?.(e)}notifySelectionEnd(e){this.options.onLineSelectionEnd?.(e)}toEventBaseProps(e){return this.mode==="file"?{type:"line",lineElement:e.lineElement,lineNumber:e.lineNumber,numberColumn:e.numberColumn,numberElement:e.numberElement}:{type:"diff-line",annotationSide:e.side,lineType:e.lineType,lineElement:e.lineElement,numberElement:e.numberElement,lineNumber:e.lineNumber,numberColumn:e.numberColumn}}toTokenEventBaseProps({lineCharEnd:e,lineCharStart:t,lineNumber:i,side:n,tokenElement:a,tokenText:r}){return this.mode==="file"?{type:"token",lineCharEnd:e,lineCharStart:t,lineNumber:i,tokenElement:a,tokenText:r}:{type:"token",lineCharEnd:e,lineCharStart:t,lineNumber:i,side:n,tokenElement:a,tokenText:r}}buildSelectedLineRange(e,t){return this.buildSelectionRange(e.lineNumber,t.lineNumber,e.side,t.side)}buildSelectionRange(e,t,i,n){return{start:e,end:t,...i!=null?{side:i}:{},...i!==n&&n!=null?{endSide:n}:{}}}resolvePointerTarget(e){let t=!1,i,n,a,r,s,d,c,l,o,f;for(const u of e){if(!(u instanceof HTMLElement))continue;if(f==null&&u.hasAttribute("data-merge-conflict-action")){const b=u.getAttribute("data-merge-conflict-action")??void 0,x=u.getAttribute("data-merge-conflict-conflict-index")??void 0,v=x!=null?Number.parseInt(x,10):NaN;Le(b)&&Number.isFinite(v)&&(f={kind:"merge-conflict-action",resolution:b,conflictIndex:v})}if(d==null&&u.hasAttribute("data-char")){d=u;const b=u.getAttribute("data-char");if(b!=null){const x=Number.parseInt(b,10);if(!Number.isNaN(x)){const v=u.textContent??"",N=x+v.length;(v.trim()!==""||this.options.enableTokenInteractionsOnWhitespace===!0)&&(c={tokenElement:d,lineCharStart:x,lineCharEnd:N,tokenText:v});continue}}}const g=s==null?u.getAttribute("data-column-number")??void 0:void 0;if(g!=null){s=u,o=Number.parseInt(g,10),t=!0,i=X(u),r=u.getAttribute("data-line-index")??void 0;continue}const m=a==null?u.getAttribute("data-line")??void 0:void 0;if(m!=null){a=u,o=Number.parseInt(m,10),i=X(u),r=u.getAttribute("data-line-index")??void 0;continue}if(l==null&&(u.hasAttribute("data-expand-button")||u.hasAttribute("data-unmodified-lines"))){l={hunkIndex:void 0,direction:u.hasAttribute("data-expand-up")?"up":u.hasAttribute("data-expand-down")?"down":"both",all:u.hasAttribute("data-expand-all-button")};continue}const y=l!=null?u.getAttribute("data-expand-index")??void 0:void 0;if(l!=null&&y!=null){const b=Number.parseInt(y,10);Number.isNaN(b)||(l.hunkIndex=b);continue}if(n==null&&u.hasAttribute("data-code")){n=u;break}}if(f!=null)return f;if(l?.hunkIndex!=null)return{type:"line-info",hunkIndex:l.hunkIndex,direction:l.direction,all:l.all};if(a??=r!=null?W(n,`[data-line][data-line-index="${r}"]`):void 0,s??=r!=null?W(n,`[data-column-number][data-line-index="${r}"]`):void 0,n==null||a==null||s==null||i==null||o==null||Number.isNaN(o))return;const h=this.parseLineIndex(a,this.isSplitDiff());return c!=null?this.mode==="file"?{kind:"token",lineType:i,lineElement:a,lineNumber:o,numberColumn:t,numberElement:s,side:void 0,splitLineIndex:h,...c}:{kind:"token",lineType:i,lineElement:a,lineNumber:o,numberColumn:t,numberElement:s,side:j(i,n),splitLineIndex:h,...c}:this.mode==="file"?{kind:"line",lineType:i,lineElement:a,lineNumber:o,numberColumn:t,numberElement:s,side:void 0,splitLineIndex:h}:{kind:"line",lineType:i,lineElement:a,lineNumber:o,numberColumn:t,numberElement:s,side:j(i,n),splitLineIndex:h}}isSplitDiff(){return this.pre?.getAttribute("data-diff-type")==="split"}parseLineIndex(e,t){const i=(e.getAttribute("data-line-index")??"").split(",").map(n=>Number.parseInt(n,10)).filter(n=>!Number.isNaN(n));if(t&&i.length===2)return i[1];if(!t)return i[0]}};function it({enableTokenInteractionsOnWhitespace:e,enableGutterUtility:t,lineHoverHighlight:i,onGutterUtilityClick:n,onLineClick:a,onLineEnter:r,onLineLeave:s,onLineNumberClick:d,onTokenClick:c,onTokenEnter:l,onTokenLeave:o,renderGutterUtility:f,__debugPointerEvents:h,enableLineSelection:u,controlledSelection:g,onLineSelected:m,onLineSelectionStart:y,onLineSelectionChange:b,onLineSelectionEnd:x},v,N,D){return{enableTokenInteractionsOnWhitespace:e,enableGutterUtility:Se({enableGutterUtility:t,renderGutterUtility:f,onGutterUtilityClick:n}),usesCustomGutterUtility:f!=null,lineHoverHighlight:i,onGutterUtilityClick:n,onHunkExpand:v,onMergeConflictActionClick:D,onLineClick:a,onLineEnter:r,onLineLeave:s,onLineNumberClick:d,onTokenClick:c,onTokenEnter:l,onTokenLeave:o,__debugPointerEvents:h,enableLineSelection:u,controlledSelection:g,onLineSelected:m,onLineSelectionStart:y,onLineSelectionChange:b,onLineSelectionEnd:x,getLineIndex:N}}function Se({enableGutterUtility:e,renderGutterUtility:t,onGutterUtilityClick:i}){if(i!=null&&t!=null)throw new Error("Cannot use both 'onGutterUtilityClick' and 'renderGutterUtility'. Use only one gutter utility API.");return e??!1}function I(e){return e!=null&&"kind"in e&&e.kind==="line"}function H(e){return e!=null&&"kind"in e&&e.kind==="token"}function F(e){return I(e)||H(e)}function ke(e){return"type"in e&&e.type==="line-info"}function we(e){return"kind"in e&&e.kind==="merge-conflict-action"}function Le(e){return e==="current"||e==="incoming"||e==="both"}function W(e,t){const i=e?.querySelector(t);return i instanceof HTMLElement?i:void 0}function P(e){const t=[];let i=e;for(;i!=null;)t.push(i),i=i.parentNode;return t}function Ee(e){const t=e.closest("[data-line], [data-column-number]");if(t instanceof HTMLElement)return t;const i=e.closest('[data-line-annotation], [data-gutter-buffer="annotation"]');if(!(i instanceof HTMLElement))return;const n=i.previousElementSibling;return n instanceof HTMLElement&&(n.hasAttribute("data-line")||n.hasAttribute("data-column-number"))?n:void 0}function Ae(e){const t=e.closest('[slot^="annotation-"]'),i=(t instanceof HTMLElement&&t.assignedSlot!=null?t.assignedSlot:e.tagName==="SLOT"?e:void 0)?.closest("[data-line-annotation]");return i instanceof HTMLElement?i:void 0}function Ce(e){const t=e.closest('[slot^="annotation-"]');if(t instanceof HTMLElement)return t.getAttribute("slot")??void 0;if(e instanceof HTMLElement){const i=e.getAttribute("name")??void 0;return i!=null&&i.startsWith("annotation-")?i:void 0}}function Ne(e){if(e==null)return;const t=/^annotation-(?:(additions|deletions)-)?(\d+)$/.exec(e);if(t==null)return;const i=Number.parseInt(t[2],10);if(!(!Number.isFinite(i)||i<=0))return{lineNumber:i,side:t[1]}}function K(e){return e!=null&&typeof e.elementFromPoint=="function"}function Me(e,t){return e===t||B(e??void 0,t??void 0)}function Y(e,t){return e?.highlightSide===t.highlightSide&&e?.lineNumberOnly===t.lineNumberOnly&&Me(e?.range??null,t.range)}function j(e,t){switch(e){case"change-deletion":return"deletions";case"change-addition":return"additions";default:return t.hasAttribute("data-deletions")?"deletions":"additions"}}function X(e){const t=e.getAttribute("data-line-type");if(t!=null)switch(t){case"change-deletion":case"change-addition":case"context":case"context-expanded":return t;default:return}}function w(e="none",t,...i){switch(e){case"none":return;case"both":break;case"click":if(t!=="click")return;break;case"move":if(t!=="move")return}console.log(...i)}var nt=class L{static resizeObserver;static managersByElement=new Map;static getResizeObserver(){const t=L.resizeObserver??new ResizeObserver(L.handleSharedResizeEntries);return L.resizeObserver=t,t}static handleSharedResizeEntries(t){const i=new Map;for(const n of t){const a=L.managersByElement.get(n.target);if(a==null)continue;const r=i.get(a);r==null?i.set(a,[n]):r.push(n)}for(const[n,a]of i)n.handleResizeEntries(a)}observedNodes=new Map;setup(t,{disableAnnotations:i,columnVariables:n="apply"}){const a=new Set,r=n==="apply";let s=0;const d=new Map(this.observedNodes);this.observedNodes.clear();for(const c of t.children){if(s===2)break;const l=(()=>{if(c instanceof HTMLElement&&c.tagName==="CODE")return c})();if(l==null)continue;s++;let o=d.get(l);if(o!=null&&o.type!=="code")throw new Error("ResizeManager.setup: somehow a code node is being used for an annotation, should be impossible");let f=l.firstElementChild;f instanceof HTMLElement||(f=null),o!=null?(this.observedNodes.set(l,o),d.delete(l),o.numberElement!==f?(o.numberElement!=null&&(this.unobserve(o.numberElement),d.delete(o.numberElement)),f!=null&&(this.observe(f),d.delete(f),this.observedNodes.set(f,o)),o.numberElement=f,o.numberWidth=0):o.numberElement!=null?(d.delete(o.numberElement),this.observedNodes.set(o.numberElement,o)):o.numberWidth=0,Te(o,r)):(o={type:"code",codeElement:l,numberElement:f,codeWidth:"auto",numberWidth:0,applyColumnVariables:r},this.observedNodes.set(l,o),this.observe(l),f!=null&&(this.observedNodes.set(f,o),this.observe(f)))}if(s>1&&!i){const c=t.querySelectorAll('[data-line-annotation*=","]'),l=new Map;for(const o of c){if(!(o instanceof HTMLElement))continue;const f=o.getAttribute("data-line-annotation")??"";if(!/^-?\d+,-?\d+$/.test(f)){console.error("DiffFileRenderer.setupResizeObserver: Invalid element or annotation",{lineAnnotation:f,element:o});continue}let h=l.get(f);h==null&&(h=[],l.set(f,h)),h.push(o)}for(const[o,f]of l){if(f.length!==2){console.error("DiffFileRenderer.setupResizeObserver: Bad Pair",o,f);continue}const[h,u]=f,g=h.firstElementChild,m=u.firstElementChild;if(!(h instanceof HTMLElement)||!(u instanceof HTMLElement)||!(g instanceof HTMLElement)||!(m instanceof HTMLElement))continue;let y=d.get(g);if(y!=null){this.observedNodes.set(g,y),this.observedNodes.set(m,y),d.delete(g),d.delete(m);continue}const b=g.getBoundingClientRect().height,x=m.getBoundingClientRect().height;y={type:"annotations",column1:{container:h,child:g,childHeight:b},column2:{container:u,child:m,childHeight:x},currentHeight:"auto"},a.add({child1:g,child2:m,item:y,newHeight:Math.max(b,x)})}for(const o of a)this.applyNewHeight(o.item,o.newHeight),this.observedNodes.set(o.child1,o.item),this.observedNodes.set(o.child2,o.item),this.observe(o.child1),this.observe(o.child2);a.clear()}for(const[c,l]of d)this.unobserve(c),l.type==="code"?Re(l):Ue(l);d.clear()}cleanUp(){for(const t of this.observedNodes.keys())this.unobserve(t);this.observedNodes.clear()}observe(t){const{managersByElement:i}=L,n=i.get(t);if(n!==this){if(n!=null&&n!==this)throw new Error("ResizeManager.observe: element is already owned by another ResizeManager");i.set(t,this),L.getResizeObserver().observe(t)}}unobserve(t){const{managersByElement:i,resizeObserver:n}=L,a=i.get(t);if(a!=null){if(a!==this)throw new Error("ResizeManager.unobserve: element is owned by another ResizeManager");i.delete(t),n?.unobserve(t),n!=null&&i.size===0&&(n.disconnect(),L.resizeObserver=void 0)}}handleResizeEntries(t){const i=new Map,n=new Set;for(const a of t){const{target:r,borderBoxSize:s,contentBoxSize:d}=a;if(!(r instanceof HTMLElement)){console.error("ResizeManager.handleResizeEntries: Invalid element for ResizeObserver",a);continue}const c=this.observedNodes.get(r);if(c==null){console.error("ResizeManager.handleResizeEntries: Not a valid observed node",a);continue}if(c.type==="annotations"){const l=(()=>{if(r===c.column1.child)return c.column1;if(r===c.column2.child)return c.column2})();if(l==null){console.error("ResizeManager.handleResizeEntries: Couldn't find a column for",{item:c,target:r});continue}l.childHeight=s[0].blockSize,n.add(c)}else if(c.type==="code"){const l=i.get(c)??{},o=d[0].inlineSize;r===c.codeElement?l.codeInlineSize=o:r===c.numberElement&&(l.numberInlineSize=o),i.set(c,l)}}this.applyAnnotationUpdates(n),n.clear(),this.applyColumnUpdates(i),i.clear()}applyAnnotationUpdates(t){for(const i of t)this.applyNewHeight(i,Math.max(i.column1.childHeight,i.column2.childHeight))}applyColumnUpdates=t=>{for(const[i,n]of t){const a=n.codeInlineSize!=null?Pe(n.codeInlineSize):i.codeWidth,r=n.numberInlineSize!=null?Ie(n.numberInlineSize):i.numberWidth,s=a!==i.codeWidth,d=r!==i.numberWidth;!s&&!d||(i.codeWidth=a,i.numberWidth=r,i.applyColumnVariables&&te(i,{codeWidthChanged:s,numberWidthChanged:d}))}};applyNewHeight(t,i){i!==t.currentHeight&&(t.currentHeight=Math.max(i,0),t.column1.container.style.setProperty("--diffs-annotation-min-height",`${t.currentHeight}px`),t.column2.container.style.setProperty("--diffs-annotation-min-height",`${t.currentHeight}px`))}};function Pe(e){const t=Math.max(Math.floor(e),0);return t===0?"auto":t}function Ie(e){return Math.max(Math.ceil(e),0)}function Te(e,t){e.applyColumnVariables!==t&&(e.applyColumnVariables=t,t?te(e,{codeWidthChanged:!0,numberWidthChanged:!0}):ie(e))}function te(e,{codeWidthChanged:t,numberWidthChanged:i}){const{codeElement:n,codeWidth:a,numberWidth:r}=e;if(t&&n.style.setProperty("--diffs-column-width",`${typeof a=="number"?`${a}px`:"auto"}`),i&&n.style.setProperty("--diffs-column-number-width",`${r===0?"auto":`${r}px`}`),t||i&&a!=="auto"){const s=typeof a=="number"?Math.max(a-r,0):0;n.style.setProperty("--diffs-column-content-width",`${s>0?`${s}px`:"auto"}`)}}function ie(e){e.codeElement.style.removeProperty("--diffs-column-content-width"),e.codeElement.style.removeProperty("--diffs-column-number-width"),e.codeElement.style.removeProperty("--diffs-column-width")}function Re(e){e.codeElement.isConnected&&ie(e)}function Ue(e){e.column1.container.isConnected&&e.column1.container.style.removeProperty("--diffs-annotation-min-height"),e.column2.container.isConnected&&e.column2.container.style.removeProperty("--diffs-annotation-min-height")}function at(e,t){return e==null||t==null?e===t:e.startingLine===t.startingLine&&e.totalLines===t.totalLines&&e.bufferBefore===t.bufferBefore&&e.bufferAfter===t.bufferAfter}function rt(e){return p({tagName:"div",children:[p({tagName:"div",children:e.annotations?.map(t=>p({tagName:"slot",properties:{name:t}})),properties:{"data-annotation-content":""}})],properties:{"data-line-annotation":`${e.hunkIndex},${e.lineIndex}`}})}function He(e){switch(e){case"file":return"diffs-icon-file-code";case"change":return"diffs-icon-symbol-modified";case"new":return"diffs-icon-symbol-added";case"deleted":return"diffs-icon-symbol-deleted";case"rename-pure":case"rename-changed":return"diffs-icon-symbol-moved"}}function ot({fileOrDiff:e,mode:t,stickyHeader:i}){const n="type"in e?e:void 0,a={"data-diffs-header":t,"data-change-type":n?.type,"data-sticky":i?"":void 0};return p({tagName:"div",children:[t==="custom"?p({tagName:"slot",properties:{name:re}}):ze({name:e.name,prevName:"prevName"in e?e.prevName:void 0,iconType:n?.type??"file"}),...t==="custom"?[]:[De(n)]],properties:a})}function ze({name:e,prevName:t,iconType:i}){const n=[p({tagName:"slot",properties:{name:oe}}),O({name:He(i),properties:{"data-change-icon":i}})];return t!=null&&(n.push(p({tagName:"div",children:[p({tagName:"bdi",children:[z(t)]})],properties:{"data-prev-name":""}})),n.push(O({name:"diffs-icon-arrow-right-short",properties:{"data-rename-icon":""}}))),n.push(p({tagName:"div",children:[p({tagName:"bdi",children:[z(e)]})],properties:{"data-title":""}})),n.push(p({tagName:"slot",properties:{name:se}})),p({tagName:"div",children:n,properties:{"data-header-content":""}})}function De(e){const t=[];if(e!=null){let i=0,n=0;for(const a of e.hunks)i+=a.additionLines,n+=a.deletionLines;(n>0||i===0)&&t.push(p({tagName:"span",children:[z(`-${n}`)],properties:{"data-deletions-count":""}})),(i>0||n===0)&&t.push(p({tagName:"span",children:[z(`+${i}`)],properties:{"data-additions-count":""}}))}return t.push(p({tagName:"slot",properties:{name:de}})),p({tagName:"div",children:t,properties:{"data-metadata":""}})}function st(e){return p({tagName:"pre",properties:Fe(e)})}function Fe({diffIndicators:e,disableBackground:t,disableLineNumbers:i,overflow:n,split:a,totalLines:r,type:s,customProperties:d}){return{...d,"data-diff":s==="diff"?"":void 0,"data-file":s==="file"?"":void 0,"data-diff-type":s==="diff"?a?"split":"single":void 0,"data-overflow":n,"data-disable-line-numbers":i?"":void 0,"data-background":t?void 0:"","data-indicators":e==="bars"||e==="classic"?e:void 0,style:`--diffs-min-number-column-width-default:${`${r}`.length}ch;`}}function dt(e,{theme:t,preferredHighlighter:i="shiki-js"}){return{langs:Array.isArray(e)?e:[e??"text"],themes:ge(t),preferredHighlighter:i}}function lt(e){return`annotation-${"side"in e?`${e.side}-`:""}${e.lineNumber}`}function ct(e){return e.startingLine===0&&e.totalLines===1/0&&e.bufferBefore===0&&e.bufferAfter===0}const ft="-1,-1";function ut(e){return e?.some(t=>t.lineNumber===0)??!1}function ht(e){const t=e[0];return t!=null&&t.length>0?t:void 0}function mt(e){return e.startingLine===0&&e.totalLines>0}function gt(e,t){return e.endsWith(`\r
|
|
1
|
+
import{eu as _,ei as re,f6 as oe,f7 as se,f8 as de,gP as le,gQ as ce,gR as Z,gS as fe,ej as ue,ez as he}from"./useAppFontEffects-Dm6zEvrf.js";import{a as me,B as p,I as O,H as z,i as ge}from"./computeVirtualFileMetrics-DDyA16hp.js";import{t as pe}from"./vendor-hast-util-to-html-BKBhbTDb.js";import{c as be}from"./vendor-diff-C3JhlQdm.js";const A=new Set;let C=null;function ve(e){A.add(e),C??=requestAnimationFrame(ee)}function G(e){A.delete(e)&&A.size===0&&C!=null&&(cancelAnimationFrame(C),C=null)}function ee(e){const t=new Set(A);A.clear();for(const i of t)try{i(e)}catch(n){console.error(n)}A.size>0?C=requestAnimationFrame(ee):C=null}function V(e,t,i){if(e===t||e==null||t==null)return e===t;const n=new Set(i),a=Object.keys(e),r=new Set(Object.keys(t));for(const s of a)if(r.delete(s),!n.has(s)&&(!(s in t)||e[s]!==t[s]))return!1;for(const s of Array.from(r))if(!n.has(s))return!1;return!0}function et(e,t){const i=e?.theme??_,n=t?.theme??_,a=q(e),r=q(t);return me(i,n)&&V(e,t,["theme","parseDiffOptions"])&&V(a,r)}function q(e){if(e!=null&&"parseDiffOptions"in e)return e.parseDiffOptions}function B(e,t){return e?.start===t?.start&&e?.end===t?.end&&e?.side===t?.side&&e?.endSide===t?.endSide}function ye(){return p({tagName:"button",properties:{"data-utility-button":"",type:"button"},children:[O({name:"diffs-icon-plus",properties:{"data-icon":""}})]})}function xe(e,t){return e.lineNumber===t.lineNumber&&e.side===t.side}function R(e){for(const t of e)if(t instanceof HTMLElement&&(t.hasAttribute("data-utility-button")||t.hasAttribute("data-gutter-utility-slot")||t.getAttribute("slot")==="gutter-utility-slot"||t.getAttribute("name")==="gutter-utility-slot"))return!0;return!1}var tt=class{mode;options;hoveredLine;hoveredToken;pre;gutterUtilityLine;gutterUtilityContainer;gutterUtilityButton;gutterUtilitySlot;interactiveLinesAttr=!1;interactiveLineNumbersAttr=!1;hasPointerListeners=!1;hasDocumentPointerListeners=!1;selectedRange=null;selectedRangeHighlightSide;selectedRangeLineNumberOnly=!1;editorActiveLine=null;editorActiveLineSide;editorLineNumberOnly=!1;proposedSelectedRange;renderedSelectedLinesState;renderedEditorActiveLineState;selectionAnchor;pointerSession={mode:"idle"};constructor(e,t){this.mode=e,this.options=t}setOptions(e){this.options=e}cleanUp(){this.pre?.removeEventListener("click",this.handlePointerClick),this.pre?.removeEventListener("pointerdown",this.handlePointerDown),this.pre?.removeEventListener("pointermove",this.handlePointerMove),this.pre?.removeEventListener("pointerleave",this.handlePointerLeave),this.pre?.removeAttribute("data-interactive-lines"),this.pre?.removeAttribute("data-interactive-line-numbers"),this.pre=void 0,this.gutterUtilityContainer?.remove(),this.gutterUtilityLine=void 0,this.gutterUtilityContainer=void 0,this.gutterUtilityButton=void 0,this.gutterUtilitySlot=void 0,this.clearHoveredLine(),this.clearHoveredToken(),this.detachDocumentPointerListeners(),this.clearPointerSession(),G(this.renderSelection),this.interactiveLinesAttr=!1,this.interactiveLineNumbersAttr=!1,this.hasPointerListeners=!1,this.setSelectionDirty()}setup(e){this.setSelectionDirty();const{usesCustomGutterUtility:t=!1,enableGutterUtility:i=!1}=this.options;this.pre!==e&&(this.cleanUp(),this.pre=e),i?this.ensureGutterUtilityNode(t):this.gutterUtilityContainer!=null&&(this.gutterUtilityContainer.remove(),this.gutterUtilityLine=void 0,this.gutterUtilityContainer=void 0,this.gutterUtilityButton=void 0,this.gutterUtilitySlot=void 0,this.pointerSession.mode==="gutterSelecting"&&(this.clearPointerSession(),this.detachDocumentPointerListeners())),this.syncPointerListeners(e),this.updateInteractiveLineAttributes(),this.renderSelection(),this.placeUtility()}setSelectionDirty(){this.renderedSelectedLinesState=void 0,this.renderedEditorActiveLineState=void 0}isSelectionDirty(){return this.renderedSelectedLinesState===void 0||this.renderedEditorActiveLineState===void 0}setSelection(e,t){const i=!(e===this.selectedRange||B(e??void 0,this.selectedRange??void 0)),n=t?.lineNumberOnly??!1,a=t?.activeLineSide!==this.selectedRangeHighlightSide||n!==this.selectedRangeLineNumberOnly;!this.isSelectionDirty()&&!i&&!a||(this.proposedSelectedRange=void 0,this.selectedRange=e,this.selectedRangeHighlightSide=t?.activeLineSide,this.selectedRangeLineNumberOnly=n,this.renderSelection(),this.placeUtility(),i&&t?.notify!==!1&&this.notifySelectionCommitted(e))}setEditorActiveLine(e,{lineNumberOnly:t=!1,side:i}={}){const n=e!==this.editorActiveLine,a=i!==this.editorActiveLineSide||t!==this.editorLineNumberOnly;!this.isSelectionDirty()&&!n&&!a||(this.editorActiveLine=e,this.editorActiveLineSide=i,this.editorLineNumberOnly=t,this.renderSelection())}getSelection(){return this.selectedRange}getHoveredLine=()=>{const e=this.gutterUtilityLine??this.hoveredLine;if(e!=null){if(this.mode==="diff"&&e.type==="diff-line")return{lineNumber:e.lineNumber,side:e.annotationSide};if(this.mode==="file"&&e.type==="line")return{lineNumber:e.lineNumber}}};handlePointerClick=e=>{const{onHunkExpand:t,onLineClick:i,onLineNumberClick:n,onTokenClick:a,onMergeConflictActionClick:r}=this.options;t==null&&i==null&&n==null&&r==null&&a==null||this.options.onGutterUtilityClick!=null&&R(e.composedPath())||(w(this.options.__debugPointerEvents,"click","FileDiff.DEBUG.handlePointerClick:",e),this.handlePointerEvent({eventType:"click",event:e}))};handlePointerMove=e=>{if(e.pointerType!=="mouse")return;const{lineHoverHighlight:t="disabled",onLineEnter:i,onLineLeave:n,onTokenEnter:a,onTokenLeave:r,enableGutterUtility:s=!1}=this.options;t==="disabled"&&!s&&i==null&&n==null&&a==null&&r==null||(w(this.options.__debugPointerEvents,"move","FileDiff.DEBUG.handlePointerMove:",e),this.handlePointerEvent({eventType:"move",event:e}))};handlePointerLeave=e=>{const{__debugPointerEvents:t}=this.options;if(w(t,"move","FileDiff.DEBUG.handlePointerLeave: no event"),this.hoveredLine==null&&this.hoveredToken==null){w(t,"move","FileDiff.DEBUG.handlePointerLeave: returned early, no hovered line or token");return}this.hoveredToken!=null&&(this.options.onTokenLeave?.(this.hoveredToken,e),this.clearHoveredToken()),this.hoveredLine!=null&&(this.options.onLineLeave?.({...this.hoveredLine,event:e}),this.clearHoveredLine()),this.placeUtility()};handlePointerEvent({eventType:e,event:t}){const{__debugPointerEvents:i}=this.options,n=t.composedPath();w(i,e,"FileDiff.DEBUG.handlePointerEvent:",{eventType:e,composedPath:n});const a=this.resolvePointerTarget(n);w(i,e,"FileDiff.DEBUG.handlePointerEvent: resolvePointerTarget result:",a);const{onLineClick:r,onLineNumberClick:s,onLineEnter:d,onLineLeave:c,onTokenClick:l,onTokenEnter:o,onTokenLeave:f,onHunkExpand:h,onMergeConflictActionClick:u}=this.options;switch(e){case"move":{const g=F(a)&&this.hoveredLine?.lineElement===a.lineElement;H(a)&&this.hoveredToken?.tokenElement===a.tokenElement||(this.hoveredToken!=null&&(f?.(this.hoveredToken,t),this.clearHoveredToken()),H(a)&&(this.setHoveredToken(this.toTokenEventBaseProps(a)),o?.(this.hoveredToken,t))),g||(this.hoveredLine!=null&&(c?.({...this.hoveredLine,event:t}),this.clearHoveredLine()),F(a)?(this.setHoveredLine(this.toEventBaseProps(a)),this.placeUtility(),d?.({...this.hoveredLine,event:t})):this.placeUtility());break}case"click":{if(a==null)break;if(we(a)&&u!=null){u(a);break}if(ke(a)&&h!=null){h(a.hunkIndex,a.all||t.shiftKey?"both":a.direction,a.all||t.shiftKey?Number.POSITIVE_INFINITY:void 0);break}if(!F(a))break;H(a)&&l!=null&&l(this.toTokenEventBaseProps(a),t);const g=this.toEventBaseProps(a);s!=null&&a.numberColumn?s({...g,event:t}):r?.({...g,event:t});break}}}syncPointerListeners(e){const{__debugPointerEvents:t,lineHoverHighlight:i="disabled",onLineClick:n,onLineNumberClick:a,onLineEnter:r,onLineLeave:s,onTokenClick:d,onTokenEnter:c,onTokenLeave:l,onHunkExpand:o,onMergeConflictActionClick:f,enableGutterUtility:h=!1,enableLineSelection:u=!1,onGutterUtilityClick:g}=this.options,m=g!=null,y=i!=="disabled"||n!=null||a!=null||r!=null||s!=null||d!=null||c!=null||l!=null||o!=null||f!=null||h||u||m;y&&!this.hasPointerListeners?(e.addEventListener("click",this.handlePointerClick),e.addEventListener("pointerdown",this.handlePointerDown),e.addEventListener("pointermove",this.handlePointerMove),e.addEventListener("pointerleave",this.handlePointerLeave),this.hasPointerListeners=!0,w(t,"click","FileDiff.DEBUG.attachEventListeners: Attaching click events for:",(()=>{const v=[];return(t==="both"||t==="click")&&(n!=null&&v.push("onLineClick"),a!=null&&v.push("onLineNumberClick"),o!=null&&v.push("expandable hunk separators"),f!=null&&v.push("merge conflict actions")),v})()),w(t,"move","FileDiff.DEBUG.attachEventListeners: Attaching pointer move event"),w(t,"move","FileDiff.DEBUG.attachEventListeners: Attaching pointer leave event")):!y&&this.hasPointerListeners&&(e.removeEventListener("click",this.handlePointerClick),e.removeEventListener("pointerdown",this.handlePointerDown),e.removeEventListener("pointermove",this.handlePointerMove),e.removeEventListener("pointerleave",this.handlePointerLeave),this.hasPointerListeners=!1);const b=this.pointerSession.mode==="selecting"||this.pointerSession.mode==="pendingSingleLineUnselect",x=this.pointerSession.mode==="gutterSelecting";(!u&&b||!m&&x)&&(this.clearPointerSession(),this.detachDocumentPointerListeners(),this.selectionAnchor=void 0,this.clearPendingSingleLineState())}updateInteractiveLineAttributes(){if(this.pre==null)return;const{onLineClick:e,onLineNumberClick:t,enableLineSelection:i=!1}=this.options,n=e!=null,a=t!=null||i;n&&!this.interactiveLinesAttr?(this.pre.setAttribute("data-interactive-lines",""),this.interactiveLinesAttr=!0):!n&&this.interactiveLinesAttr&&(this.pre.removeAttribute("data-interactive-lines"),this.interactiveLinesAttr=!1),a&&!this.interactiveLineNumbersAttr?(this.pre.setAttribute("data-interactive-line-numbers",""),this.interactiveLineNumbersAttr=!0):!a&&this.interactiveLineNumbersAttr&&(this.pre.removeAttribute("data-interactive-line-numbers"),this.interactiveLineNumbersAttr=!1)}handlePointerDown=e=>{if(e.pointerType==="mouse"&&e.button!==0||this.pre==null||this.pointerSession.mode!=="idle")return;const t=e.composedPath();R(t)&&this.options.onGutterUtilityClick!=null?this.startGutterSelectionFromPointerDown(e):(e.pointerType!=="mouse"&&this.revealUtilityFromGutterPath(t),this.startLineSelectionFromPointerDown(e))};startLineSelectionFromPointerDown(e){const{enableLineSelection:t=!1}=this.options;if(!t)return;const i=this.resolveSelectionInfo(e,{source:"event-path",requireNumberColumn:!0});if(i==null)return;const{pre:n}=this;if(n==null)return;const{lineNumber:a,eventSide:r,lineIndex:s}=i;if(e.shiftKey&&this.selectedRange!=null){const d=this.getIndexesFromSelection(this.selectedRange,n.getAttribute("data-diff-type")==="split");if(d==null)return;const c=d.start<=d.end?s>=d.start:s<=d.end;this.selectionAnchor={lineNumber:c?this.selectedRange.start:this.selectedRange.end,side:c?this.selectedRange.side:this.selectedRange.endSide??this.selectedRange.side},this.updateSelection(a,r,!1),this.notifySelectionStart(this.getCurrentSelectionRange()),this.pointerSession={mode:"selecting",pointerId:e.pointerId},this.attachDocumentPointerListeners();return}if(this.selectedRange?.start===a&&this.selectedRange?.end===a){const d={lineNumber:a,side:r};this.selectionAnchor=d,this.pointerSession={mode:"pendingSingleLineUnselect",pointerId:e.pointerId,anchor:d,pending:d},this.attachDocumentPointerListeners();return}this.options.controlledSelection===!0?this.proposedSelectedRange=null:this.selectedRange=null,this.placeUtility(),this.selectionAnchor={lineNumber:a,side:r},this.updateSelection(a,r,!1),this.notifySelectionStart(this.getCurrentSelectionRange()),this.pointerSession={mode:"selecting",pointerId:e.pointerId},this.attachDocumentPointerListeners()}startGutterSelectionFromPointerDown(e){const{onGutterUtilityClick:t}=this.options;if(t==null)return;const i=this.currentSelectionEnds(),n=i?.bottom??this.resolveSelectionPoint(e,{source:"event-path",excludeUtility:!1}),a=i?.top??n;n==null||a==null||(e.preventDefault(),e.stopPropagation(),this.pointerSession={mode:"gutterSelecting",pointerId:e.pointerId,anchor:a,current:n},this.selectionAnchor={lineNumber:a.lineNumber,side:a.side},this.updateSelection(n.lineNumber,n.side,!1),this.notifySelectionStart(this.getCurrentSelectionRange()),this.attachDocumentPointerListeners())}handleDocumentPointerMove=e=>{switch(this.pointerSession.mode){case"idle":return;case"gutterSelecting":{if(e.pointerId!==this.pointerSession.pointerId)return;e.preventDefault();const t=this.resolveSelectionPoint(e,{source:"coordinates-first"});if(t==null)return;this.pointerSession.current=t,this.updateSelection(t.lineNumber,t.side);return}case"selecting":{if(e.pointerId!==this.pointerSession.pointerId)return;e.preventDefault();const t=this.resolveSelectionInfo(e,{source:"coordinates-first",requireNumberColumn:!1});if(t==null||this.selectionAnchor==null)return;this.updateSelection(t.lineNumber,t.eventSide);return}case"pendingSingleLineUnselect":{if(e.pointerId!==this.pointerSession.pointerId)return;e.preventDefault();const t=this.resolveSelectionInfo(e,{source:"coordinates-first",requireNumberColumn:!1});if(t==null||this.selectionAnchor==null)return;const i={lineNumber:t.lineNumber,side:t.eventSide};if(xe(this.pointerSession.pending,i))return;this.updateSelection(t.lineNumber,t.eventSide,!1),this.notifySelectionStart(this.getCurrentSelectionRange()),this.notifySelectionChangeDelta(),this.pointerSession={mode:"selecting",pointerId:e.pointerId};return}}};handleDocumentPointerUp=e=>{const{onGutterUtilityClick:t}=this.options;switch(this.pointerSession.mode){case"idle":return;case"gutterSelecting":{const{pointerSession:i}=this;if(e.pointerId!==i.pointerId)return;e.preventDefault();const n=this.resolveSelectionPoint(e,{source:"coordinates-first"});n!=null&&(i.current=n,this.updateSelection(n.lineNumber,n.side));const a=this.buildSelectedLineRange(i.anchor,i.current);t?.({...a}),this.selectionAnchor=void 0,this.notifySelectionEnd(a),this.notifySelectionCommitted(a),this.clearProposedSelection(),this.clearPointerSession(),this.detachDocumentPointerListeners();return}case"pendingSingleLineUnselect":if(e.pointerId!==this.pointerSession.pointerId)return;e.preventDefault(),this.updateSelection(null,void 0,!1),this.selectionAnchor=void 0,this.clearPendingSingleLineState(),this.detachDocumentPointerListeners(),this.notifySelectionEnd(this.getCurrentSelectionRange()),this.notifySelectionCommitted(this.getCurrentSelectionRange()),this.clearProposedSelection();return;case"selecting":if(e.pointerId!==this.pointerSession.pointerId)return;e.preventDefault(),this.selectionAnchor=void 0,this.detachDocumentPointerListeners(),this.clearPointerSession(),this.notifySelectionEnd(this.getCurrentSelectionRange()),this.notifySelectionCommitted(this.getCurrentSelectionRange()),this.clearProposedSelection()}};handleDocumentPointerCancel=e=>{switch(this.pointerSession.mode){case"idle":return;case"gutterSelecting":case"selecting":case"pendingSingleLineUnselect":if("pointerId"in this.pointerSession&&e.pointerId!==this.pointerSession.pointerId)return;this.selectionAnchor=void 0,this.clearProposedSelection(),this.clearPendingSingleLineState(),this.clearPointerSession(),this.detachDocumentPointerListeners()}};clearHoveredLine(){this.hoveredLine!=null&&(this.hoveredLine.lineElement.removeAttribute("data-hovered"),this.hoveredLine.numberElement.removeAttribute("data-hovered"),this.hoveredLine=void 0)}setHoveredLine(e){const{lineHoverHighlight:t="disabled"}=this.options;this.hoveredLine!=null&&this.clearHoveredLine(),this.hoveredLine=e,t!=="disabled"&&((t==="both"||t==="line")&&this.hoveredLine.lineElement.setAttribute("data-hovered",""),(t==="both"||t==="number")&&this.hoveredLine.numberElement.setAttribute("data-hovered",""))}clearHoveredToken(){this.hoveredToken!=null&&(this.hoveredToken=void 0)}setHoveredToken(e){this.hoveredToken!=null&&this.clearHoveredToken(),this.hoveredToken=e}ensureGutterUtilityNode(e){if(this.gutterUtilityContainer==null&&(this.gutterUtilityContainer=document.createElement("div"),this.gutterUtilityContainer.setAttribute("data-gutter-utility-slot","")),e)this.gutterUtilityButton!=null&&(this.gutterUtilityButton.remove(),this.gutterUtilityButton=void 0),this.gutterUtilitySlot==null&&(this.gutterUtilitySlot=document.createElement("slot"),this.gutterUtilitySlot.name="gutter-utility-slot"),this.gutterUtilitySlot.parentNode!==this.gutterUtilityContainer&&this.gutterUtilityContainer.replaceChildren(this.gutterUtilitySlot);else{if(this.gutterUtilitySlot?.remove(),this.gutterUtilitySlot=void 0,this.gutterUtilityButton==null){const t=document.createElement("div");t.innerHTML=pe(ye());const i=t.firstElementChild;if(!(i instanceof HTMLButtonElement))throw new Error("InteractionManager.ensureGutterUtilityNode: Node element should be a button");i.remove(),this.gutterUtilityButton=i}this.gutterUtilityButton.parentNode!==this.gutterUtilityContainer&&this.gutterUtilityContainer.replaceChildren(this.gutterUtilityButton)}}revealUtilityFromGutterPath(e){if(this.placeUtilityFromSelection())return;const t=this.resolvePointerTarget(e);I(t)&&t.numberColumn&&this.showUtilityOnLine(this.toEventBaseProps(t))}placeUtility(){if(!this.placeUtilityFromSelection()){if(this.hoveredLine!=null){this.showUtilityOnLine(this.hoveredLine);return}this.hideUtility()}}placeUtilityFromSelection(){const e=this.currentSelectionEnds();if(e==null)return!1;const t=this.targetForSelectionPoint(e.bottom);return t==null?this.hideUtility():this.showUtilityOnLine(this.toEventBaseProps(t)),!0}showUtilityOnLine(e){this.gutterUtilityContainer!=null&&(this.gutterUtilityLine=e,e.numberElement.appendChild(this.gutterUtilityContainer))}hideUtility(){this.gutterUtilityContainer?.remove(),this.gutterUtilityLine=void 0}currentSelectionEnds(){const e=this.getCurrentSelectionRange();return e==null?void 0:this.selectionEnds(e)}selectionEnds(e){const t={lineNumber:e.start,side:e.side},i={lineNumber:e.end,side:e.endSide??e.side},n=this.selectionPointRowIndex(t),a=this.selectionPointRowIndex(i);if(!(n==null||a==null))return n>a?{top:i,bottom:t}:{top:t,bottom:i}}selectionPointRowIndex(e){const t=this.getLineIndex(e.lineNumber,e.side);if(t!=null)return this.isSplitDiff()?t[1]:t[0]}targetForSelectionPoint(e){if(this.pre==null)return;const t=this.getLineIndex(e.lineNumber,e.side);if(t==null)return;const i=this.mode==="diff"?`${t[0]},${t[1]}`:`${t[0]}`,n=this.pre.querySelectorAll(`[data-column-number="${e.lineNumber}"][data-line-index="${i}"]`);for(const a of n){if(!(a instanceof HTMLElement))continue;const r=this.resolvePointerTarget(P(a));if(I(r)&&!(this.mode==="diff"&&e.side!=null&&r.side!==e.side))return r}}attachDocumentPointerListeners(){this.hasDocumentPointerListeners||(document.addEventListener("pointermove",this.handleDocumentPointerMove),document.addEventListener("pointerup",this.handleDocumentPointerUp),document.addEventListener("pointercancel",this.handleDocumentPointerCancel),this.hasDocumentPointerListeners=!0)}detachDocumentPointerListeners(){this.hasDocumentPointerListeners&&(document.removeEventListener("pointermove",this.handleDocumentPointerMove),document.removeEventListener("pointerup",this.handleDocumentPointerUp),document.removeEventListener("pointercancel",this.handleDocumentPointerCancel),this.hasDocumentPointerListeners=!1)}clearPointerSession(){this.pointerSession={mode:"idle"}}clearPendingSingleLineState(){this.pointerSession.mode==="pendingSingleLineUnselect"&&(this.pointerSession={mode:"idle"})}selectionInfoFromPath(e,t){const i=this.resolvePointerTarget(e);if(I(i)&&!(t&&!i.numberColumn)&&i.splitLineIndex!=null)return{lineIndex:i.splitLineIndex,lineNumber:i.lineNumber,eventSide:this.mode==="diff"?i.side:void 0}}resolveSelectionInfo(e,t){const i=this.resolveSelectionPath(e,t);return i!=null?this.selectionInfoFromPath(i,t.requireNumberColumn):void 0}selectionPointFromPath(e){const t=this.resolvePointerTarget(e);if(I(t))return{lineNumber:t.lineNumber,side:this.mode==="diff"?t.side:void 0}}resolveSelectionPoint(e,t){const i=this.resolveSelectionPath(e,t);return i!=null?this.selectionPointFromPath(i):void 0}resolveSelectionPath(e,t){const i=t.excludeUtility!==!1;switch(t.source){case"event-path":return this.pathFromEventPath(e.composedPath(),i);case"coordinates-first":{const n=this.pathFromCoordinates(e,i);return n!==void 0?n??void 0:this.pathFromEventPath(e.composedPath(),i)}}}pathFromCoordinates(e,t){const i=this.hitTest(e);if(i!==void 0)return i===null?null:this.pathFromElement(i,t)??null}pathFromEventPath(e,t){if(!(t&&R(e))){for(const i of e)if(i instanceof Element)return this.pathFromElement(i,t)}}pathFromElement(e,t){const i=P(e);if(t&&R(i))return;const n=Ee(e);return n!=null?P(n):this.pathFromAnnotationSlot(e)}pathFromAnnotationSlot(e){const t=Ae(e)?.previousElementSibling;if(t instanceof HTMLElement&&(t.hasAttribute("data-line")||t.hasAttribute("data-column-number")))return P(t);const i=Ne(Ce(e));if(i==null)return;const n=this.targetForSelectionPoint(i);return n!=null?P(n.lineElement):void 0}hitTest(e){if(!Number.isFinite(e.clientX)||!Number.isFinite(e.clientY))return;const t=this.pre?.getRootNode(),i=K(t)?t:K(document)?document:void 0;if(i!=null)return i.elementFromPoint(e.clientX,e.clientY)}getLineIndex(e,t){const{getLineIndex:i}=this.options;return i!=null?i(e,t):[e-1,e-1]}getCurrentSelectionRange(){return this.proposedSelectedRange!==void 0?this.proposedSelectedRange:this.selectedRange}clearProposedSelection(){this.proposedSelectedRange=void 0}updateSelection(e,t,i=!0){const n=this.getCurrentSelectionRange();let a;if(e==null)a=null;else{const r=this.selectionAnchor?.side??t,s=this.selectionAnchor?.lineNumber??e;a=this.buildSelectionRange(s,e,r,t)}B(n??void 0,a??void 0)||(this.selectedRangeHighlightSide=void 0,this.selectedRangeLineNumberOnly=!1,this.options.controlledSelection===!0?this.proposedSelectedRange=a:(this.selectedRange=a,ve(this.renderSelection)),this.placeUtility(),i&&this.notifySelectionChangeDelta())}getIndexesFromSelection(e,t){if(this.pre==null)return;const i=this.getLineIndex(e.start,e.side),n=this.getLineIndex(e.end,e.endSide??e.side);return i!=null&&n!=null?{start:t?i[1]:i[0],end:t?n[1]:n[0]}:void 0}getSelectionRenderState(){return{selectedLines:{range:this.selectedRange,highlightSide:this.selectedRangeHighlightSide,lineNumberOnly:this.selectedRangeLineNumberOnly},editorActiveLine:{range:this.editorActiveLine==null?null:{start:this.editorActiveLine,end:this.editorActiveLine,side:this.editorActiveLineSide},highlightSide:this.editorActiveLineSide,lineNumberOnly:this.editorLineNumberOnly}}}resolveLineRenderRange(e,t,i){if(e.range==null)return;const n=this.getIndexesFromSelection(e.range,t);if(n==null)throw console.error({rowRange:n,range:e.range}),new Error(`InteractionManager.renderSelection: No valid ${i} rowRange`);return n}getLineRenderColumns(e,t,i,n){if(this.pre==null||t==null&&n==null)return[];const{children:a}=this.pre;if(a.length>2)throw console.error(a),new Error("InteractionManager.renderSelection: Somehow there are more than 2 code elements...");const r=[];for(const s of a){const d=s.hasAttribute("data-deletions")?"deletions":s.hasAttribute("data-additions")?"additions":void 0,c=e!=null&&t!=null&&(e.highlightSide==null||d==null||e.highlightSide===d),l=i!=null&&n!=null&&(i.highlightSide==null||d==null||i.highlightSide===d);if(!c&&!l)continue;const[o,f]=s.children;if(!(o instanceof HTMLElement)||!(f instanceof HTMLElement))throw new Error("InteractionManager.renderSelection: missing gutter or content element");if(f.children.length!==o.children.length)throw new Error("InteractionManager.renderSelection: gutter and content children dont match, something is wrong");r.push({content:f,gutter:o,renderEditorActiveLine:l,renderSelectedLines:c})}return r}renderSelection=()=>{G(this.renderSelection);const e=this.getSelectionRenderState();if(this.pre==null)return;const{editorActiveLine:t,selectedLines:i}=e,n=!Y(this.renderedSelectedLinesState,i),a=!Y(this.renderedEditorActiveLineState,t);if(!n&&!a)return;n&&(this.renderedSelectedLinesState=void 0),a&&(this.renderedEditorActiveLineState=void 0);const r=this.pre.getAttribute("data-diff-type")==="split",s=n?this.resolveLineRenderRange(i,r,"selected-lines"):void 0,d=a?this.resolveLineRenderRange(t,r,"editor-active-line"):void 0,c=this.getLineRenderColumns(n?i:void 0,s,a?t:void 0,d),l=i.range==null||c.some(m=>m.renderSelectedLines),o=t.range==null||c.some(m=>m.renderEditorActiveLine);if(n)for(const m of this.pre.querySelectorAll("[data-selected-line]"))m.removeAttribute("data-selected-line");if(a)for(const m of this.pre.querySelectorAll("[data-editor-active-line]"))m.removeAttribute("data-editor-active-line");const f=s==null?void 0:Math.min(s.start,s.end),h=s==null?void 0:Math.max(s.start,s.end),u=f===h,g=d?.start;for(const m of c){const{content:y,gutter:b,renderEditorActiveLine:x,renderSelectedLines:v}=m,N=Math.max(v?h??-1/0:-1/0,x?g??-1/0:-1/0),D=y.children.length;for(let T=0;T<D;T++){const S=y.children[T],M=b.children[T];if(!(S instanceof HTMLElement)||!(M instanceof HTMLElement))continue;const k=this.parseLineIndex(S,r);if((k??0)>N)break;if(k!=null){if(v&&f!=null&&h!=null&&k>=f&&k<=h){let E=u?"single":k===f?"first":k===h?"last":"";M.setAttribute("data-selected-line",E),i.lineNumberOnly||(S.setAttribute("data-selected-line",E),M.nextSibling instanceof HTMLElement&&S.nextSibling instanceof HTMLElement&&(S.nextSibling.hasAttribute("data-line-annotation")||S.nextSibling.hasAttribute("data-merge-conflict-actions"))&&(u?(E="last",S.setAttribute("data-selected-line","first")):k===f?E="":k===h&&S.setAttribute("data-selected-line",""),S.nextSibling.setAttribute("data-selected-line",E),M.nextSibling.setAttribute("data-selected-line",E)))}x&&k===g&&(M.setAttribute("data-editor-active-line",""),t.lineNumberOnly||S.setAttribute("data-editor-active-line",""))}}}n&&l&&(this.renderedSelectedLinesState=i),a&&o&&(this.renderedEditorActiveLineState=t)};notifySelectionCommitted(e){this.options.onLineSelected?.(e)}notifySelectionChangeDelta(){this.options.onLineSelectionChange?.(this.getCurrentSelectionRange()??null)}notifySelectionStart(e){this.options.onLineSelectionStart?.(e)}notifySelectionEnd(e){this.options.onLineSelectionEnd?.(e)}toEventBaseProps(e){return this.mode==="file"?{type:"line",lineElement:e.lineElement,lineNumber:e.lineNumber,numberColumn:e.numberColumn,numberElement:e.numberElement}:{type:"diff-line",annotationSide:e.side,lineType:e.lineType,lineElement:e.lineElement,numberElement:e.numberElement,lineNumber:e.lineNumber,numberColumn:e.numberColumn}}toTokenEventBaseProps({lineCharEnd:e,lineCharStart:t,lineNumber:i,side:n,tokenElement:a,tokenText:r}){return this.mode==="file"?{type:"token",lineCharEnd:e,lineCharStart:t,lineNumber:i,tokenElement:a,tokenText:r}:{type:"token",lineCharEnd:e,lineCharStart:t,lineNumber:i,side:n,tokenElement:a,tokenText:r}}buildSelectedLineRange(e,t){return this.buildSelectionRange(e.lineNumber,t.lineNumber,e.side,t.side)}buildSelectionRange(e,t,i,n){return{start:e,end:t,...i!=null?{side:i}:{},...i!==n&&n!=null?{endSide:n}:{}}}resolvePointerTarget(e){let t=!1,i,n,a,r,s,d,c,l,o,f;for(const u of e){if(!(u instanceof HTMLElement))continue;if(f==null&&u.hasAttribute("data-merge-conflict-action")){const b=u.getAttribute("data-merge-conflict-action")??void 0,x=u.getAttribute("data-merge-conflict-conflict-index")??void 0,v=x!=null?Number.parseInt(x,10):NaN;Le(b)&&Number.isFinite(v)&&(f={kind:"merge-conflict-action",resolution:b,conflictIndex:v})}if(d==null&&u.hasAttribute("data-char")){d=u;const b=u.getAttribute("data-char");if(b!=null){const x=Number.parseInt(b,10);if(!Number.isNaN(x)){const v=u.textContent??"",N=x+v.length;(v.trim()!==""||this.options.enableTokenInteractionsOnWhitespace===!0)&&(c={tokenElement:d,lineCharStart:x,lineCharEnd:N,tokenText:v});continue}}}const g=s==null?u.getAttribute("data-column-number")??void 0:void 0;if(g!=null){s=u,o=Number.parseInt(g,10),t=!0,i=X(u),r=u.getAttribute("data-line-index")??void 0;continue}const m=a==null?u.getAttribute("data-line")??void 0:void 0;if(m!=null){a=u,o=Number.parseInt(m,10),i=X(u),r=u.getAttribute("data-line-index")??void 0;continue}if(l==null&&(u.hasAttribute("data-expand-button")||u.hasAttribute("data-unmodified-lines"))){l={hunkIndex:void 0,direction:u.hasAttribute("data-expand-up")?"up":u.hasAttribute("data-expand-down")?"down":"both",all:u.hasAttribute("data-expand-all-button")};continue}const y=l!=null?u.getAttribute("data-expand-index")??void 0:void 0;if(l!=null&&y!=null){const b=Number.parseInt(y,10);Number.isNaN(b)||(l.hunkIndex=b);continue}if(n==null&&u.hasAttribute("data-code")){n=u;break}}if(f!=null)return f;if(l?.hunkIndex!=null)return{type:"line-info",hunkIndex:l.hunkIndex,direction:l.direction,all:l.all};if(a??=r!=null?W(n,`[data-line][data-line-index="${r}"]`):void 0,s??=r!=null?W(n,`[data-column-number][data-line-index="${r}"]`):void 0,n==null||a==null||s==null||i==null||o==null||Number.isNaN(o))return;const h=this.parseLineIndex(a,this.isSplitDiff());return c!=null?this.mode==="file"?{kind:"token",lineType:i,lineElement:a,lineNumber:o,numberColumn:t,numberElement:s,side:void 0,splitLineIndex:h,...c}:{kind:"token",lineType:i,lineElement:a,lineNumber:o,numberColumn:t,numberElement:s,side:j(i,n),splitLineIndex:h,...c}:this.mode==="file"?{kind:"line",lineType:i,lineElement:a,lineNumber:o,numberColumn:t,numberElement:s,side:void 0,splitLineIndex:h}:{kind:"line",lineType:i,lineElement:a,lineNumber:o,numberColumn:t,numberElement:s,side:j(i,n),splitLineIndex:h}}isSplitDiff(){return this.pre?.getAttribute("data-diff-type")==="split"}parseLineIndex(e,t){const i=(e.getAttribute("data-line-index")??"").split(",").map(n=>Number.parseInt(n,10)).filter(n=>!Number.isNaN(n));if(t&&i.length===2)return i[1];if(!t)return i[0]}};function it({enableTokenInteractionsOnWhitespace:e,enableGutterUtility:t,lineHoverHighlight:i,onGutterUtilityClick:n,onLineClick:a,onLineEnter:r,onLineLeave:s,onLineNumberClick:d,onTokenClick:c,onTokenEnter:l,onTokenLeave:o,renderGutterUtility:f,__debugPointerEvents:h,enableLineSelection:u,controlledSelection:g,onLineSelected:m,onLineSelectionStart:y,onLineSelectionChange:b,onLineSelectionEnd:x},v,N,D){return{enableTokenInteractionsOnWhitespace:e,enableGutterUtility:Se({enableGutterUtility:t,renderGutterUtility:f,onGutterUtilityClick:n}),usesCustomGutterUtility:f!=null,lineHoverHighlight:i,onGutterUtilityClick:n,onHunkExpand:v,onMergeConflictActionClick:D,onLineClick:a,onLineEnter:r,onLineLeave:s,onLineNumberClick:d,onTokenClick:c,onTokenEnter:l,onTokenLeave:o,__debugPointerEvents:h,enableLineSelection:u,controlledSelection:g,onLineSelected:m,onLineSelectionStart:y,onLineSelectionChange:b,onLineSelectionEnd:x,getLineIndex:N}}function Se({enableGutterUtility:e,renderGutterUtility:t,onGutterUtilityClick:i}){if(i!=null&&t!=null)throw new Error("Cannot use both 'onGutterUtilityClick' and 'renderGutterUtility'. Use only one gutter utility API.");return e??!1}function I(e){return e!=null&&"kind"in e&&e.kind==="line"}function H(e){return e!=null&&"kind"in e&&e.kind==="token"}function F(e){return I(e)||H(e)}function ke(e){return"type"in e&&e.type==="line-info"}function we(e){return"kind"in e&&e.kind==="merge-conflict-action"}function Le(e){return e==="current"||e==="incoming"||e==="both"}function W(e,t){const i=e?.querySelector(t);return i instanceof HTMLElement?i:void 0}function P(e){const t=[];let i=e;for(;i!=null;)t.push(i),i=i.parentNode;return t}function Ee(e){const t=e.closest("[data-line], [data-column-number]");if(t instanceof HTMLElement)return t;const i=e.closest('[data-line-annotation], [data-gutter-buffer="annotation"]');if(!(i instanceof HTMLElement))return;const n=i.previousElementSibling;return n instanceof HTMLElement&&(n.hasAttribute("data-line")||n.hasAttribute("data-column-number"))?n:void 0}function Ae(e){const t=e.closest('[slot^="annotation-"]'),i=(t instanceof HTMLElement&&t.assignedSlot!=null?t.assignedSlot:e.tagName==="SLOT"?e:void 0)?.closest("[data-line-annotation]");return i instanceof HTMLElement?i:void 0}function Ce(e){const t=e.closest('[slot^="annotation-"]');if(t instanceof HTMLElement)return t.getAttribute("slot")??void 0;if(e instanceof HTMLElement){const i=e.getAttribute("name")??void 0;return i!=null&&i.startsWith("annotation-")?i:void 0}}function Ne(e){if(e==null)return;const t=/^annotation-(?:(additions|deletions)-)?(\d+)$/.exec(e);if(t==null)return;const i=Number.parseInt(t[2],10);if(!(!Number.isFinite(i)||i<=0))return{lineNumber:i,side:t[1]}}function K(e){return e!=null&&typeof e.elementFromPoint=="function"}function Me(e,t){return e===t||B(e??void 0,t??void 0)}function Y(e,t){return e?.highlightSide===t.highlightSide&&e?.lineNumberOnly===t.lineNumberOnly&&Me(e?.range??null,t.range)}function j(e,t){switch(e){case"change-deletion":return"deletions";case"change-addition":return"additions";default:return t.hasAttribute("data-deletions")?"deletions":"additions"}}function X(e){const t=e.getAttribute("data-line-type");if(t!=null)switch(t){case"change-deletion":case"change-addition":case"context":case"context-expanded":return t;default:return}}function w(e="none",t,...i){switch(e){case"none":return;case"both":break;case"click":if(t!=="click")return;break;case"move":if(t!=="move")return}console.log(...i)}var nt=class L{static resizeObserver;static managersByElement=new Map;static getResizeObserver(){const t=L.resizeObserver??new ResizeObserver(L.handleSharedResizeEntries);return L.resizeObserver=t,t}static handleSharedResizeEntries(t){const i=new Map;for(const n of t){const a=L.managersByElement.get(n.target);if(a==null)continue;const r=i.get(a);r==null?i.set(a,[n]):r.push(n)}for(const[n,a]of i)n.handleResizeEntries(a)}observedNodes=new Map;setup(t,{disableAnnotations:i,columnVariables:n="apply"}){const a=new Set,r=n==="apply";let s=0;const d=new Map(this.observedNodes);this.observedNodes.clear();for(const c of t.children){if(s===2)break;const l=(()=>{if(c instanceof HTMLElement&&c.tagName==="CODE")return c})();if(l==null)continue;s++;let o=d.get(l);if(o!=null&&o.type!=="code")throw new Error("ResizeManager.setup: somehow a code node is being used for an annotation, should be impossible");let f=l.firstElementChild;f instanceof HTMLElement||(f=null),o!=null?(this.observedNodes.set(l,o),d.delete(l),o.numberElement!==f?(o.numberElement!=null&&(this.unobserve(o.numberElement),d.delete(o.numberElement)),f!=null&&(this.observe(f),d.delete(f),this.observedNodes.set(f,o)),o.numberElement=f,o.numberWidth=0):o.numberElement!=null?(d.delete(o.numberElement),this.observedNodes.set(o.numberElement,o)):o.numberWidth=0,Te(o,r)):(o={type:"code",codeElement:l,numberElement:f,codeWidth:"auto",numberWidth:0,applyColumnVariables:r},this.observedNodes.set(l,o),this.observe(l),f!=null&&(this.observedNodes.set(f,o),this.observe(f)))}if(s>1&&!i){const c=t.querySelectorAll('[data-line-annotation*=","]'),l=new Map;for(const o of c){if(!(o instanceof HTMLElement))continue;const f=o.getAttribute("data-line-annotation")??"";if(!/^-?\d+,-?\d+$/.test(f)){console.error("DiffFileRenderer.setupResizeObserver: Invalid element or annotation",{lineAnnotation:f,element:o});continue}let h=l.get(f);h==null&&(h=[],l.set(f,h)),h.push(o)}for(const[o,f]of l){if(f.length!==2){console.error("DiffFileRenderer.setupResizeObserver: Bad Pair",o,f);continue}const[h,u]=f,g=h.firstElementChild,m=u.firstElementChild;if(!(h instanceof HTMLElement)||!(u instanceof HTMLElement)||!(g instanceof HTMLElement)||!(m instanceof HTMLElement))continue;let y=d.get(g);if(y!=null){this.observedNodes.set(g,y),this.observedNodes.set(m,y),d.delete(g),d.delete(m);continue}const b=g.getBoundingClientRect().height,x=m.getBoundingClientRect().height;y={type:"annotations",column1:{container:h,child:g,childHeight:b},column2:{container:u,child:m,childHeight:x},currentHeight:"auto"},a.add({child1:g,child2:m,item:y,newHeight:Math.max(b,x)})}for(const o of a)this.applyNewHeight(o.item,o.newHeight),this.observedNodes.set(o.child1,o.item),this.observedNodes.set(o.child2,o.item),this.observe(o.child1),this.observe(o.child2);a.clear()}for(const[c,l]of d)this.unobserve(c),l.type==="code"?Re(l):Ue(l);d.clear()}cleanUp(){for(const t of this.observedNodes.keys())this.unobserve(t);this.observedNodes.clear()}observe(t){const{managersByElement:i}=L,n=i.get(t);if(n!==this){if(n!=null&&n!==this)throw new Error("ResizeManager.observe: element is already owned by another ResizeManager");i.set(t,this),L.getResizeObserver().observe(t)}}unobserve(t){const{managersByElement:i,resizeObserver:n}=L,a=i.get(t);if(a!=null){if(a!==this)throw new Error("ResizeManager.unobserve: element is owned by another ResizeManager");i.delete(t),n?.unobserve(t),n!=null&&i.size===0&&(n.disconnect(),L.resizeObserver=void 0)}}handleResizeEntries(t){const i=new Map,n=new Set;for(const a of t){const{target:r,borderBoxSize:s,contentBoxSize:d}=a;if(!(r instanceof HTMLElement)){console.error("ResizeManager.handleResizeEntries: Invalid element for ResizeObserver",a);continue}const c=this.observedNodes.get(r);if(c==null){console.error("ResizeManager.handleResizeEntries: Not a valid observed node",a);continue}if(c.type==="annotations"){const l=(()=>{if(r===c.column1.child)return c.column1;if(r===c.column2.child)return c.column2})();if(l==null){console.error("ResizeManager.handleResizeEntries: Couldn't find a column for",{item:c,target:r});continue}l.childHeight=s[0].blockSize,n.add(c)}else if(c.type==="code"){const l=i.get(c)??{},o=d[0].inlineSize;r===c.codeElement?l.codeInlineSize=o:r===c.numberElement&&(l.numberInlineSize=o),i.set(c,l)}}this.applyAnnotationUpdates(n),n.clear(),this.applyColumnUpdates(i),i.clear()}applyAnnotationUpdates(t){for(const i of t)this.applyNewHeight(i,Math.max(i.column1.childHeight,i.column2.childHeight))}applyColumnUpdates=t=>{for(const[i,n]of t){const a=n.codeInlineSize!=null?Pe(n.codeInlineSize):i.codeWidth,r=n.numberInlineSize!=null?Ie(n.numberInlineSize):i.numberWidth,s=a!==i.codeWidth,d=r!==i.numberWidth;!s&&!d||(i.codeWidth=a,i.numberWidth=r,i.applyColumnVariables&&te(i,{codeWidthChanged:s,numberWidthChanged:d}))}};applyNewHeight(t,i){i!==t.currentHeight&&(t.currentHeight=Math.max(i,0),t.column1.container.style.setProperty("--diffs-annotation-min-height",`${t.currentHeight}px`),t.column2.container.style.setProperty("--diffs-annotation-min-height",`${t.currentHeight}px`))}};function Pe(e){const t=Math.max(Math.floor(e),0);return t===0?"auto":t}function Ie(e){return Math.max(Math.ceil(e),0)}function Te(e,t){e.applyColumnVariables!==t&&(e.applyColumnVariables=t,t?te(e,{codeWidthChanged:!0,numberWidthChanged:!0}):ie(e))}function te(e,{codeWidthChanged:t,numberWidthChanged:i}){const{codeElement:n,codeWidth:a,numberWidth:r}=e;if(t&&n.style.setProperty("--diffs-column-width",`${typeof a=="number"?`${a}px`:"auto"}`),i&&n.style.setProperty("--diffs-column-number-width",`${r===0?"auto":`${r}px`}`),t||i&&a!=="auto"){const s=typeof a=="number"?Math.max(a-r,0):0;n.style.setProperty("--diffs-column-content-width",`${s>0?`${s}px`:"auto"}`)}}function ie(e){e.codeElement.style.removeProperty("--diffs-column-content-width"),e.codeElement.style.removeProperty("--diffs-column-number-width"),e.codeElement.style.removeProperty("--diffs-column-width")}function Re(e){e.codeElement.isConnected&&ie(e)}function Ue(e){e.column1.container.isConnected&&e.column1.container.style.removeProperty("--diffs-annotation-min-height"),e.column2.container.isConnected&&e.column2.container.style.removeProperty("--diffs-annotation-min-height")}function at(e,t){return e==null||t==null?e===t:e.startingLine===t.startingLine&&e.totalLines===t.totalLines&&e.bufferBefore===t.bufferBefore&&e.bufferAfter===t.bufferAfter}function rt(e){return p({tagName:"div",children:[p({tagName:"div",children:e.annotations?.map(t=>p({tagName:"slot",properties:{name:t}})),properties:{"data-annotation-content":""}})],properties:{"data-line-annotation":`${e.hunkIndex},${e.lineIndex}`}})}function He(e){switch(e){case"file":return"diffs-icon-file-code";case"change":return"diffs-icon-symbol-modified";case"new":return"diffs-icon-symbol-added";case"deleted":return"diffs-icon-symbol-deleted";case"rename-pure":case"rename-changed":return"diffs-icon-symbol-moved"}}function ot({fileOrDiff:e,mode:t,stickyHeader:i}){const n="type"in e?e:void 0,a={"data-diffs-header":t,"data-change-type":n?.type,"data-sticky":i?"":void 0};return p({tagName:"div",children:[t==="custom"?p({tagName:"slot",properties:{name:re}}):ze({name:e.name,prevName:"prevName"in e?e.prevName:void 0,iconType:n?.type??"file"}),...t==="custom"?[]:[De(n)]],properties:a})}function ze({name:e,prevName:t,iconType:i}){const n=[p({tagName:"slot",properties:{name:oe}}),O({name:He(i),properties:{"data-change-icon":i}})];return t!=null&&(n.push(p({tagName:"div",children:[p({tagName:"bdi",children:[z(t)]})],properties:{"data-prev-name":""}})),n.push(O({name:"diffs-icon-arrow-right-short",properties:{"data-rename-icon":""}}))),n.push(p({tagName:"div",children:[p({tagName:"bdi",children:[z(e)]})],properties:{"data-title":""}})),n.push(p({tagName:"slot",properties:{name:se}})),p({tagName:"div",children:n,properties:{"data-header-content":""}})}function De(e){const t=[];if(e!=null){let i=0,n=0;for(const a of e.hunks)i+=a.additionLines,n+=a.deletionLines;(n>0||i===0)&&t.push(p({tagName:"span",children:[z(`-${n}`)],properties:{"data-deletions-count":""}})),(i>0||n===0)&&t.push(p({tagName:"span",children:[z(`+${i}`)],properties:{"data-additions-count":""}}))}return t.push(p({tagName:"slot",properties:{name:de}})),p({tagName:"div",children:t,properties:{"data-metadata":""}})}function st(e){return p({tagName:"pre",properties:Fe(e)})}function Fe({diffIndicators:e,disableBackground:t,disableLineNumbers:i,overflow:n,split:a,totalLines:r,type:s,customProperties:d}){return{...d,"data-diff":s==="diff"?"":void 0,"data-file":s==="file"?"":void 0,"data-diff-type":s==="diff"?a?"split":"single":void 0,"data-overflow":n,"data-disable-line-numbers":i?"":void 0,"data-background":t?void 0:"","data-indicators":e==="bars"||e==="classic"?e:void 0,style:`--diffs-min-number-column-width-default:${`${r}`.length}ch;`}}function dt(e,{theme:t,preferredHighlighter:i="shiki-js"}){return{langs:Array.isArray(e)?e:[e??"text"],themes:ge(t),preferredHighlighter:i}}function lt(e){return`annotation-${"side"in e?`${e.side}-`:""}${e.lineNumber}`}function ct(e){return e.startingLine===0&&e.totalLines===1/0&&e.bufferBefore===0&&e.bufferAfter===0}const ft="-1,-1";function ut(e){return e?.some(t=>t.lineNumber===0)??!1}function ht(e){const t=e[0];return t!=null&&t.length>0?t:void 0}function mt(e){return e.startingLine===0&&e.totalLines>0}function gt(e,t){return e.endsWith(`\r
|
|
2
2
|
`)?t+`\r
|
|
3
3
|
`:e.endsWith("\r")?t+"\r":e.endsWith(`
|
|
4
4
|
`)?t+`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{N as Gt,p as se,g as Se,b as Wt,f as $t,k as jt,c as Tt,i as Ze,l as qt,j as Kt,s as bt,e as ot,h as Xt,m as Yt,R as Zt,I as Jt,n as at,r as Qt,w as ei,d as ti,t as ii,o as lt,q as ni,u as si,v as ri,G as dt,S as oi,x as ai,y as li,z as ht,A as di,C as hi,D as ui,F as ut,E as We,H as fi,J as ci,B as pi,K as gi,L as mi,a as Si,M as Ci}from"./parseDiffFromFile-
|
|
1
|
+
import{N as Gt,p as se,g as Se,b as Wt,f as $t,k as jt,c as Tt,i as Ze,l as qt,j as Kt,s as bt,e as ot,h as Xt,m as Yt,R as Zt,I as Jt,n as at,r as Qt,w as ei,d as ti,t as ii,o as lt,q as ni,u as si,v as ri,G as dt,S as oi,x as ai,y as li,z as ht,A as di,C as hi,D as ui,F as ut,E as We,H as fi,J as ci,B as pi,K as gi,L as mi,a as Si,M as Ci}from"./parseDiffFromFile-BSmRvd3V.js";import{B as P,H as Ie,I as yi,x as ge,y as Je,k as Mt,n as ft,z as _,C as we,A as Li,g as ve,a as vi,i as Ri,l as ki,F as Ce,G as Ft,D as $e,E as ct}from"./computeVirtualFileMetrics-DDyA16hp.js";import{h as Ei,g as Re,d as ke,a as T,b as j,i as ye,r as Hi,e as ce,f as xi,j as It,k as wi,l as pt,c as Pt,m as Le,n as ie}from"./isDiffPlainText-yXcpftjI.js";import{ge as Ai,eT as Ee,eS as re,eU as Ne,gf as Di,eu as fe,gg as Ti,gh as bi,f4 as gt,f5 as Mi,ei as Fi,f6 as Ii,f7 as Pi,f8 as zi}from"./useAppFontEffects-Dm6zEvrf.js";import{t as ne}from"./vendor-hast-util-to-html-BKBhbTDb.js";function zt(e){return e.map(t=>({...t,hunkContent:t.hunkContent.map(i=>({...i}))}))}function Nt(e){return{...e,hunks:zt(e.hunks),deletionLines:[...e.deletionLines],additionLines:[...e.additionLines]}}function Oe(e){return e!==""?e.split(Ai):[]}function Qe(e,t,i){const n=e==="clone"?Nt(t):t;if(!n.isPartial)throw new Error("hydratePartialDiff: fileDiff must be partial");switch(n.type){case"change":case"rename-changed":return Ni(n,Ui(n,i),mt(n,i));case"rename-pure":{const s=mt(n,i);Bi(n,i);const r=Oe(s.contents);return n.isPartial=!1,n.deletionLines=r,n.additionLines=r,Ot(n,null,s),n}}throw new Error(`hydratePartialDiff: ${n.type} diffs cannot be hydrated from loaded files`)}function Ni(e,t,i){const n=Oe(t.contents),s=Oe(i.contents),{hunks:r,splitLineCount:o,unifiedLineCount:a}=Oi(e.hunks,s.length);return e.hunks=r,e.splitLineCount=o,e.unifiedLineCount=a,e.isPartial=!1,e.deletionLines=n,e.additionLines=s,Ot(e,t,i),e}function Oi(e,t){let i=0,n=0,s=0;const r=[];for(const o of e){const a=Math.max(o.additionStart-1,0),l=Math.max(o.deletionStart-1,0);let h=a,d=l,u=0,c=0,f=0,p=0;const g=[];for(const C of o.hunkContent){if(C.type==="context"){g.push({...C,additionLineIndex:h,deletionLineIndex:d}),h+=C.lines,d+=C.lines,f+=C.lines,p+=C.lines;continue}g.push({...C,additionLineIndex:h,deletionLineIndex:d}),h+=C.additions,d+=C.deletions,u+=C.additions,c+=C.deletions,f+=Math.max(C.additions,C.deletions),p+=C.additions+C.deletions}const S=Math.max(Ee(o.additionStart,o.additionCount)-s,0);r.push({...o,collapsedBefore:S,additionLineIndex:a,deletionLineIndex:l,additionLines:u,deletionLines:c,hunkContent:g,splitLineStart:i+S,unifiedLineStart:n+S,splitLineCount:f,unifiedLineCount:p}),i+=S+f,n+=S+p,s=re(o.additionStart,o.additionCount)}if(r.length>0){const o=r[r.length-1],a=re(o.additionStart,o.additionCount),l=Math.max(t-a,0);i+=l,n+=l}return{hunks:r,splitLineCount:i,unifiedLineCount:n}}function Ui(e,t){if(t.oldFile==null)throw new Error(`hydratePartialDiff: ${e.type} diff for ${e.name} requires oldFile`);return t.oldFile}function mt(e,t){if(t.newFile==null)throw new Error(`hydratePartialDiff: ${e.type} diff for ${e.name} requires newFile`);return t.newFile}function Bi(e,t){if(t.oldFile!==null)throw new Error(`hydratePartialDiff: ${e.type} diff for ${e.name} requires oldFile to be null`)}function Vi(e,t,i){return e.cacheKey!=null?`${e.cacheKey}:hydrated`:_i(t,i)}function Ot(e,t,i){const n=Vi(e,t,i);if(n==null){delete e.cacheKey;return}e.cacheKey=n}function _i(e,t){return e!=null&&t!=null?e.cacheKey!=null&&t.cacheKey!=null?Gt("hydrated-files",e.cacheKey,t.cacheKey):void 0:e?.cacheKey??t?.cacheKey}var Gi=class{isDeletionsScrolling=!1;isAdditionsScrolling=!1;timeoutId=-1;codeDeletions;codeAdditions;enabled=!1;cleanUp(){this.enabled&&(this.codeDeletions?.removeEventListener("scroll",this.handleDeletionsScroll),this.codeAdditions?.removeEventListener("scroll",this.handleAdditionsScroll),clearTimeout(this.timeoutId),this.codeDeletions=void 0,this.codeAdditions=void 0,this.enabled=!1)}setup(e,t,i){if(t==null||i==null)for(const n of e.children??[])n instanceof HTMLElement&&("deletions"in n.dataset?t=n:"additions"in n.dataset&&(i=n));if(i==null||t==null){this.cleanUp();return}this.codeDeletions!==t&&(this.codeDeletions?.removeEventListener("scroll",this.handleDeletionsScroll),this.codeDeletions=t,t.addEventListener("scroll",this.handleDeletionsScroll,{passive:!0})),this.codeAdditions!==i&&(this.codeAdditions?.removeEventListener("scroll",this.handleAdditionsScroll),this.codeAdditions=i,i.addEventListener("scroll",this.handleAdditionsScroll,{passive:!0})),this.enabled=!0}handleDeletionsScroll=()=>{this.isAdditionsScrolling||(this.isDeletionsScrolling=!0,clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.isDeletionsScrolling=!1},300),this.codeAdditions?.scrollTo({left:this.codeDeletions?.scrollLeft}))};handleAdditionsScroll=()=>{this.isDeletionsScrolling||(this.isAdditionsScrolling=!0,clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.isAdditionsScrolling=!1},300),this.codeDeletions?.scrollTo({left:this.codeAdditions?.scrollLeft}))}};function Ae(e){return P({tagName:"div",properties:{"data-content-buffer":"","data-buffer-size":e,style:`grid-row: span ${e};min-height:calc(${e} * 1lh)`}})}function De(e){return P({tagName:"div",children:[P({tagName:"span",children:[Ie("No newline at end of file")]})],properties:{"data-no-newline":"","data-line-type":e,"data-column-content":""}})}function je(e){return P({tagName:"div",children:[yi({name:e==="both"?"diffs-icon-expand-all":"diffs-icon-expand",properties:{"data-icon":""}})],properties:{role:"button","data-expand-button":"","data-expand-both":e==="both"?"":void 0,"data-expand-up":e==="up"?"":void 0,"data-expand-down":e==="down"?"":void 0}})}function ue({type:e,content:t,expandIndex:i,chunked:n=!1,slotName:s,isFirstHunk:r,isLastHunk:o}){let a=0;const l=[];if(e==="metadata"&&t!=null&&l.push(P({tagName:"div",children:[Ie(t)],properties:{"data-separator-wrapper":""}})),(e==="line-info"||e==="line-info-basic")&&t!=null){const h=[];i!=null&&(n?(r||(h.push(je("up")),a++),o||(h.push(je("down")),a++)):(h.push(je(!r&&!o?"both":r?"down":"up")),a++)),h.push(P({tagName:"div",children:[P({tagName:"span",children:[Ie(t)],properties:{"data-unmodified-lines":""}})],properties:{"data-separator-content":""}})),n&&i!=null&&h.push(P({tagName:"div",children:[Ie("Expand all")],properties:{role:"button","data-expand-button":"","data-expand-all-button":""}})),l.push(P({tagName:"div",children:h,properties:{"data-separator-wrapper":"","data-separator-multi-button":a>1?"":void 0}}))}return e==="custom"&&s!=null&&l.push(P({tagName:"slot",properties:{name:s}})),P({tagName:"div",children:l,properties:{"data-separator":l.length===0?"simple":e,"data-expand-index":i,"data-separator-first":r?"":void 0,"data-separator-last":o?"":void 0}})}function Wi(e,t){return`hunk-separator-${e}-${t}`}function $i(e){const t=e.at(-1);return t==null?0:Math.max(re(t.additionStart,t.additionCount),re(t.deletionStart,t.deletionCount))}function K(e,t){const i=se({name:e.prevName??e.name,contents:e.deletionLines.join("")},{name:e.name,contents:e.additionLines.join(""),lang:e.lang},t);return{hunks:i.hunks,splitLineCount:i.splitLineCount,unifiedLineCount:i.unifiedLineCount,additionLines:i.additionLines,deletionLines:i.deletionLines,type:i.type}}function ji(e,t){const i=Math.max(e,1);let n=Array.from({length:i},(s,r)=>`${" ".repeat(r+1)}
|
|
2
2
|
`).join("");return n===t&&(n=Array.from({length:i},(s,r)=>`\0${" ".repeat(r)}
|
|
3
3
|
`).join("")),n}function qi(e){for(const t of e)if(t.trim().length>0)return!1;return!0}function et(e,t){return t.length>0&&t.length<e.deletionLines.length&&qi(t)}function Ue(e,t,i){const n=e.deletionLines.join(""),s=ji(t.length,n),r=se({name:e.prevName??e.name,contents:n},{name:e.name,contents:s,lang:e.lang},i);return{hunks:r.hunks,splitLineCount:r.splitLineCount,unifiedLineCount:r.unifiedLineCount,additionLines:t,deletionLines:r.deletionLines,type:r.type}}function Pe(e,t){return Ue(e,[""],t)}function Ut(e,t){if(e.additionLines.length===0)return Pe(e,t);if(et(e,e.additionLines))return Ue(e,e.additionLines,t);const i=e.additionLines,n=K(e,t);return Bt(n,i),n}function Ki(e){return e.length>1&&e.at(-1)===""}function Bt(e,t){if(!Ki(t))return;const i=t.length-e.additionLines.length;if(i<=0)return;const n=e.additionLines.length,s=e.hunks.at(-1);if(s!=null&&re(s.additionStart,s.additionCount)===n){for(const r of s.hunkContent)if(r.type==="change"&&r.additions<r.deletions&&r.additionLineIndex+r.additions===n){e.additionLines=t,r.additions+=i,s.additionCount+=i,s.additionLines+=i,Ve(e);return}}}function Xi(e,t,i){if(e.isPartial||e.deletionLines.length!==e.additionLines.length)return q(e,K(e,i));const n=Array.from(t);if(n.length===0)return q(e,{hunks:e.hunks,splitLineCount:e.splitLineCount,unifiedLineCount:e.unifiedLineCount,type:e.type});for(const r of n){const o=e.additionLines[r],a=e.deletionLines[r];if(o==null||a==null||Ne(o)===Ne(a))return q(e,K(e,i))}const s=Yi(e,n);if(s.size===0)return q(e,K(e,i));for(const r of s)if(!Ji(e,r,i))return q(e,K(e,i));return Ve(e),Ei(e)?q(e,K(e,i)):q(e,{hunks:e.hunks,splitLineCount:e.splitLineCount,unifiedLineCount:e.unifiedLineCount,type:e.type})}function q(e,t){return Object.assign(e,t),t}function Yi(e,t){const i=new Set;for(const n of t){const s=Zi(e,n);if(s==null)return new Set;i.add(s)}return i}function Zi(e,t){for(const[i,n]of e.hunks.entries()){const s=n.additionLineIndex+n.additionCount;if(t>=n.additionLineIndex&&t<s)return i}}function Ji(e,t,i){const n=e.hunks[t];if(n==null)return!1;const s=e.deletionLines.slice(n.deletionLineIndex,n.deletionLineIndex+n.deletionCount),r=e.additionLines.slice(n.additionLineIndex,n.additionLineIndex+n.additionCount),o=se({name:e.prevName??e.name,contents:s.join("")},{name:e.name,contents:r.join(""),lang:e.lang},{...i,context:0}),a=o.hunks[0];return a==null||o.hunks.length!==1?!1:(Qi(n,a),Vt(e,t),!0)}function Vt(e,t){const i=e.hunks[t];if(i==null)return;if(t!==e.hunks.length-1){i.noEOFCRAdditions=!1,i.noEOFCRDeletions=!1;return}const n=e.additionLines.at(-1),s=e.deletionLines.at(-1);i.noEOFCRAdditions=n!=null&&n!==""&&!n.endsWith(`
|
|
4
4
|
`),i.noEOFCRDeletions=s!=null&&s!==""&&!s.endsWith(`
|