termdock 1.4.29 → 1.4.30
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/client/assets/{abnfDiagram-VRR7QNED-MOTqMVlH.js → abnfDiagram-VRR7QNED-CinDVXq3.js} +1 -1
- package/dist/client/assets/{arc-D6j2Nq71.js → arc-C0VS_2-F.js} +1 -1
- package/dist/client/assets/{architectureDiagram-ZJ3FMSHR-C2I9ljcI.js → architectureDiagram-ZJ3FMSHR-6RHwjSgx.js} +1 -1
- package/dist/client/assets/{blockDiagram-677ZJIJ3-CjZgypjL.js → blockDiagram-677ZJIJ3-CSO73QsM.js} +1 -1
- package/dist/client/assets/{c4Diagram-LMCZKHZV-Cx6jnpUl.js → c4Diagram-LMCZKHZV-Bn8D4GR_.js} +1 -1
- package/dist/client/assets/channel-DgWcyV5u.js +1 -0
- package/dist/client/assets/{chunk-2Q5K7J3B-C0x8pa9Y.js → chunk-2Q5K7J3B-C2aibjE8.js} +1 -1
- package/dist/client/assets/{chunk-32BRIVSS-DV2ptNc5.js → chunk-32BRIVSS-CYqUXb47.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-BYpTMYzU.js → chunk-5VM5RSS4-BRmyQX6l.js} +1 -1
- package/dist/client/assets/{chunk-EX3LRPZG-eKChF-ow.js → chunk-EX3LRPZG-B9fHqsOV.js} +1 -1
- package/dist/client/assets/{chunk-JWPE2WC7-nyV7FQGc.js → chunk-JWPE2WC7-DcXvFH4q.js} +1 -1
- package/dist/client/assets/{chunk-MOJQB5TN-DV256D1K.js → chunk-MOJQB5TN-B39BunZB.js} +1 -1
- package/dist/client/assets/{chunk-RYQCIY6F-BDGzf0pP.js → chunk-RYQCIY6F-CRyvyoFN.js} +1 -1
- package/dist/client/assets/{chunk-V7JOEXUC-0MOiN9nx.js → chunk-V7JOEXUC-BWsZEnVw.js} +1 -1
- package/dist/client/assets/{chunk-VR4S4FIN-DKdpa-Ic.js → chunk-VR4S4FIN-_OAI22Jj.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-DblsJ3FN.js → chunk-XXDRQBXY-82TCFwYu.js} +1 -1
- package/dist/client/assets/classDiagram-OUVF2IWQ-hoVNJCFi.js +1 -0
- package/dist/client/assets/classDiagram-v2-EOCWNBFH-hoVNJCFi.js +1 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-DjW2oUox.js → cose-bilkent-JH36ORCC-zkqQ9LND.js} +1 -1
- package/dist/client/assets/{cynefin-VYW2F7L2-DzusDW6_.js → cynefin-VYW2F7L2-C2USAXqz.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-TSTJHNR4-CrPVbgV6.js → cynefinDiagram-TSTJHNR4-2Qc_zkCQ.js} +1 -1
- package/dist/client/assets/{dagre-VKFMJZFB-DfmiOyfG.js → dagre-VKFMJZFB-CLncFPkU.js} +1 -1
- package/dist/client/assets/{diagram-FQU43EPY-CavyDXUa.js → diagram-FQU43EPY-6c3q3RpC.js} +1 -1
- package/dist/client/assets/{diagram-G47NLZAW-y2FbYILt.js → diagram-G47NLZAW-DnDTgnvs.js} +1 -1
- package/dist/client/assets/{diagram-NH7WQ7WH-DWBz9uhZ.js → diagram-NH7WQ7WH-CJgPdbyz.js} +1 -1
- package/dist/client/assets/{diagram-OA4YK3LP-DyDKK6g-.js → diagram-OA4YK3LP-XrmGcCPQ.js} +1 -1
- package/dist/client/assets/{diagram-WEI45ONY-55sablfe.js → diagram-WEI45ONY-SSWBJNMk.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-CCIWWBDH-eetgjfZj.js → ebnfDiagram-CCIWWBDH-UrtDqPnD.js} +1 -1
- package/dist/client/assets/{erDiagram-Q63AITRT-CkodbHn2.js → erDiagram-Q63AITRT-CxHMzSmK.js} +1 -1
- package/dist/client/assets/{flowDiagram-23GEKE2U-DlMM-PBm.js → flowDiagram-23GEKE2U-BSK8ViTu.js} +1 -1
- package/dist/client/assets/{ganttDiagram-NO4QXBWP-D1x8vFSG.js → ganttDiagram-NO4QXBWP-BsSMPcAG.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-IHSO6WYX-mLo9wMMi.js → gitGraphDiagram-IHSO6WYX-DFPYFW5U.js} +1 -1
- package/dist/client/assets/{index-TwNCxbCv.js → index-3ElsPCL7.js} +4 -4
- package/dist/client/assets/{infoDiagram-FWYZ7A6U-BthDqptH.js → infoDiagram-FWYZ7A6U-KCOhq69d.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-FXEZZL3T-CYkLo1YB.js → ishikawaDiagram-FXEZZL3T-Bdl2H5MI.js} +1 -1
- package/dist/client/assets/{journeyDiagram-5HDEW3XC-DzQyOmNf.js → journeyDiagram-5HDEW3XC-C6V47rjZ.js} +1 -1
- package/dist/client/assets/{kanban-definition-HUTT4EX6-CbbEHuPP.js → kanban-definition-HUTT4EX6-BWH2ZSuc.js} +1 -1
- package/dist/client/assets/{linear-B5rF1aO7.js → linear-DQ3tRh7A.js} +1 -1
- package/dist/client/assets/{mermaid.core-DGVMdiUK.js → mermaid.core-CHCmGRgc.js} +4 -4
- package/dist/client/assets/{mindmap-definition-LN4V7U3C-DBF4RytT.js → mindmap-definition-LN4V7U3C-g2q_FdYk.js} +1 -1
- package/dist/client/assets/{pegDiagram-2B236MQR-J3jKmNbp.js → pegDiagram-2B236MQR-DQKuBB9K.js} +1 -1
- package/dist/client/assets/{pieDiagram-ENE6RG2P-x8xlIG5r.js → pieDiagram-ENE6RG2P-t5AUye9v.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-ABIIQ3AL-DsnF6sZw.js → quadrantDiagram-ABIIQ3AL-C0hokDN5.js} +1 -1
- package/dist/client/assets/{railroadDiagram-RFXS5EU6-DhLA8ds9.js → railroadDiagram-RFXS5EU6-6IQoHtT4.js} +1 -1
- package/dist/client/assets/{requirementDiagram-TGXJPOKE-BvizD8H1.js → requirementDiagram-TGXJPOKE-B6B4Mo5b.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-HTMAVEWB-qAaLgSCr.js → sankeyDiagram-HTMAVEWB-DUN3UMRa.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-DBY2YBRQ-jwujK29p.js → sequenceDiagram-DBY2YBRQ-DtyniVVh.js} +1 -1
- package/dist/client/assets/{sizeCapture-X5ZJPWSS-uANN47oH.js → sizeCapture-X5ZJPWSS-CoWWUl2j.js} +1 -1
- package/dist/client/assets/{stateDiagram-2N3HPSRC-Dw02nnbd.js → stateDiagram-2N3HPSRC-DuH1E4Ds.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-6OUMAXLB-Bp4o1_mE.js +1 -0
- package/dist/client/assets/{swimlanes-5IMT3BWC-CDf-cpjn.js → swimlanes-5IMT3BWC-B0f2KqC6.js} +2 -2
- package/dist/client/assets/swimlanesDiagram-G3AALYLV-DAOIj_nK.js +8 -0
- package/dist/client/assets/{timeline-definition-FHXFAJF6-lRaHOGyu.js → timeline-definition-FHXFAJF6-CqSjoFs4.js} +1 -1
- package/dist/client/assets/{vennDiagram-L72KCM5P-B3EN6us7.js → vennDiagram-L72KCM5P-BJonFhvA.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-EHGQE667-BgYS19Hm.js → wardleyDiagram-EHGQE667-xD58cIR3.js} +1 -1
- package/dist/client/assets/{xychartDiagram-FW5EYKEG-CB-I_AUk.js → xychartDiagram-FW5EYKEG-UhBPaGOY.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/client/sw.js +1 -1
- package/dist/server/routes/filesystem.js +32 -0
- package/dist/server/utils/binaryFile.js +31 -0
- package/package.json +1 -1
- package/dist/client/assets/channel-BJzojt-W.js +0 -1
- package/dist/client/assets/classDiagram-OUVF2IWQ-D0EYQ_Kn.js +0 -1
- package/dist/client/assets/classDiagram-v2-EOCWNBFH-D0EYQ_Kn.js +0 -1
- package/dist/client/assets/stateDiagram-v2-6OUMAXLB-DjRCKk-k.js +0 -1
- package/dist/client/assets/swimlanesDiagram-G3AALYLV-Dgir5Eox.js +0 -8
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Ca-rq7yX.js","assets/react-XDCjal2T.js","assets/katex-55ZPZeOF.css","assets/mermaid.core-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Ca-rq7yX.js","assets/react-XDCjal2T.js","assets/katex-55ZPZeOF.css","assets/mermaid.core-CHCmGRgc.js","assets/purify.es-CC4Brkr_.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{r as Dp,a as CT,g as g6}from"./react-XDCjal2T.js";import{b as A,R as j,r as Bc,a as _T}from"./dnd-BCFAPC0L.js";import{L as LT,l as kT}from"./terminal-C7X98Amf.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))n(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function r(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(s){if(s.ep)return;s.ep=!0;const i=r(s);fetch(s.href,i)}})();var jm={exports:{}},z0={};var ab;function ET(){if(ab)return z0;ab=1;var e=Dp(),t=Symbol.for("react.element"),r=Symbol.for("react.fragment"),n=Object.prototype.hasOwnProperty,s=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function a(u,d,f){var g,b={},x=null,v=null;f!==void 0&&(x=""+f),d.key!==void 0&&(x=""+d.key),d.ref!==void 0&&(v=d.ref);for(g in d)n.call(d,g)&&!i.hasOwnProperty(g)&&(b[g]=d[g]);if(u&&u.defaultProps)for(g in d=u.defaultProps,d)b[g]===void 0&&(b[g]=d[g]);return{$$typeof:t,type:u,key:x,ref:v,props:b,_owner:s.current}}return z0.Fragment=r,z0.jsx=a,z0.jsxs=a,z0}var lb;function IT(){return lb||(lb=1,jm.exports=ET()),jm.exports}var c=IT(),zh={},cb;function MT(){if(cb)return zh;cb=1;var e=CT();return zh.createRoot=e.createRoot,zh.hydrateRoot=e.hydrateRoot,zh}var RT=MT();const NT=g6(RT);function ub(e){return e!==null&&typeof e=="object"&&"constructor"in e&&e.constructor===Object}function k2(e={},t={}){const r=["__proto__","constructor","prototype"];Object.keys(t).filter(n=>r.indexOf(n)<0).forEach(n=>{typeof e[n]>"u"?e[n]=t[n]:ub(t[n])&&ub(e[n])&&Object.keys(t[n]).length>0&&k2(e[n],t[n])})}const b6={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector(){return null},querySelectorAll(){return[]},getElementById(){return null},createEvent(){return{initEvent(){}}},createElement(){return{children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName(){return[]}}},createElementNS(){return{}},importNode(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function Pc(){const e=typeof document<"u"?document:{};return k2(e,b6),e}const DT={document:b6,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle(){return{getPropertyValue(){return""}}},Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia(){return{}},requestAnimationFrame(e){return typeof setTimeout>"u"?(e(),null):setTimeout(e,0)},cancelAnimationFrame(e){typeof setTimeout>"u"||clearTimeout(e)}};function Wi(){const e=typeof window<"u"?window:{};return k2(e,DT),e}function BT(e=""){return e.trim().split(" ").filter(t=>!!t.trim())}function PT(e){const t=e;Object.keys(t).forEach(r=>{try{t[r]=null}catch{}try{delete t[r]}catch{}})}function x6(e,t=0){return setTimeout(e,t)}function Jf(){return Date.now()}function jT(e){const t=Wi();let r;return t.getComputedStyle&&(r=t.getComputedStyle(e,null)),!r&&e.currentStyle&&(r=e.currentStyle),r||(r=e.style),r}function QT(e,t="x"){const r=Wi();let n,s,i;const a=jT(e);return r.WebKitCSSMatrix?(s=a.transform||a.webkitTransform,s.split(",").length>6&&(s=s.split(", ").map(u=>u.replace(",",".")).join(", ")),i=new r.WebKitCSSMatrix(s==="none"?"":s)):(i=a.MozTransform||a.OTransform||a.MsTransform||a.msTransform||a.transform||a.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),n=i.toString().split(",")),t==="x"&&(r.WebKitCSSMatrix?s=i.m41:n.length===16?s=parseFloat(n[12]):s=parseFloat(n[4])),t==="y"&&(r.WebKitCSSMatrix?s=i.m42:n.length===16?s=parseFloat(n[13]):s=parseFloat(n[5])),s||0}function Wh(e){return typeof e=="object"&&e!==null&&e.constructor&&Object.prototype.toString.call(e).slice(8,-1)==="Object"}function FT(e){return typeof window<"u"&&typeof window.HTMLElement<"u"?e instanceof HTMLElement:e&&(e.nodeType===1||e.nodeType===11)}function So(...e){const t=Object(e[0]);for(let r=1;r<e.length;r+=1){const n=e[r];if(n!=null&&!FT(n)){const s=Object.keys(Object(n)).filter(i=>i!=="__proto__"&&i!=="constructor"&&i!=="prototype");for(let i=0,a=s.length;i<a;i+=1){const u=s[i],d=Object.getOwnPropertyDescriptor(n,u);d!==void 0&&d.enumerable&&(Wh(t[u])&&Wh(n[u])?n[u].__swiper__?t[u]=n[u]:So(t[u],n[u]):!Wh(t[u])&&Wh(n[u])?(t[u]={},n[u].__swiper__?t[u]=n[u]:So(t[u],n[u])):t[u]=n[u])}}}return t}function su(e,t,r){e.style.setProperty(t,r)}function y6({swiper:e,targetPosition:t,side:r}){const n=Wi(),s=-e.translate;let i=null,a;const u=e.params.speed;e.wrapperEl.style.scrollSnapType="none",n.cancelAnimationFrame(e.cssModeFrameID);const d=t>s?"next":"prev",f=(b,x)=>d==="next"&&b>=x||d==="prev"&&b<=x,g=()=>{a=new Date().getTime(),i===null&&(i=a);const b=Math.max(Math.min((a-i)/u,1),0),x=.5-Math.cos(b*Math.PI)/2;let v=s+x*(t-s);if(f(v,t)&&(v=t),e.wrapperEl.scrollTo({[r]:v}),f(v,t)){e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.scrollSnapType="",setTimeout(()=>{e.wrapperEl.style.overflow="",e.wrapperEl.scrollTo({[r]:v})}),n.cancelAnimationFrame(e.cssModeFrameID);return}e.cssModeFrameID=n.requestAnimationFrame(g)};g()}function Ja(e,t=""){const r=Wi(),n=[...e.children];return r.HTMLSlotElement&&e instanceof HTMLSlotElement&&n.push(...e.assignedElements()),t?n.filter(s=>s.matches(t)):n}function OT(e,t){const r=[t];for(;r.length>0;){const n=r.shift();if(e===n)return!0;r.push(...n.children,...n.shadowRoot?n.shadowRoot.children:[],...n.assignedElements?n.assignedElements():[])}}function $T(e,t){const r=Wi();let n=t.contains(e);return!n&&r.HTMLSlotElement&&t instanceof HTMLSlotElement&&(n=[...t.assignedElements()].includes(e),n||(n=OT(e,t))),n}function ep(e){try{console.warn(e);return}catch{}}function b1(e,t=[]){const r=document.createElement(e);return r.classList.add(...Array.isArray(t)?t:BT(t)),r}function HT(e,t){const r=[];for(;e.previousElementSibling;){const n=e.previousElementSibling;t?n.matches(t)&&r.push(n):r.push(n),e=n}return r}function UT(e,t){const r=[];for(;e.nextElementSibling;){const n=e.nextElementSibling;t?n.matches(t)&&r.push(n):r.push(n),e=n}return r}function Bl(e,t){return Wi().getComputedStyle(e,null).getPropertyValue(t)}function db(e){let t=e,r;if(t){for(r=0;(t=t.previousSibling)!==null;)t.nodeType===1&&(r+=1);return r}}function GT(e,t){const r=[];let n=e.parentElement;for(;n;)r.push(n),n=n.parentElement;return r}function hb(e,t,r){const n=Wi();return e[t==="width"?"offsetWidth":"offsetHeight"]+parseFloat(n.getComputedStyle(e,null).getPropertyValue(t==="width"?"margin-right":"margin-top"))+parseFloat(n.getComputedStyle(e,null).getPropertyValue(t==="width"?"margin-left":"margin-bottom"))}function fb(e,t=""){typeof trustedTypes<"u"?e.innerHTML=trustedTypes.createPolicy("html",{createHTML:r=>r}).createHTML(t):e.innerHTML=t}let Qm;function zT(){const e=Wi(),t=Pc();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}function v6(){return Qm||(Qm=zT()),Qm}let Fm;function WT({userAgent:e}={}){const t=v6(),r=Wi(),n=r.navigator.platform,s=e||r.navigator.userAgent,i={ios:!1,android:!1},a=r.screen.width,u=r.screen.height,d=s.match(/(Android);?[\s\/]+([\d.]+)?/);let f=s.match(/(iPad)(?!\1).*OS\s([\d_]+)/);const g=s.match(/(iPod)(.*OS\s([\d_]+))?/),b=!f&&s.match(/(iPhone\sOS|iOS)\s([\d_]+)/),x=n==="Win32";let v=n==="MacIntel";const w=["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"];return!f&&v&&t.touch&&w.indexOf(`${a}x${u}`)>=0&&(f=s.match(/(Version)\/([\d.]+)/),f||(f=[0,1,"13_0_0"]),v=!1),d&&!x&&(i.os="android",i.android=!0),(f||b||g)&&(i.os="ios",i.ios=!0),i}function w6(e={}){return Fm||(Fm=WT(e)),Fm}let Om;function VT(){const e=Wi(),t=w6();let r=!1;function n(){const u=e.navigator.userAgent.toLowerCase();return u.indexOf("safari")>=0&&u.indexOf("chrome")<0&&u.indexOf("android")<0}if(n()){const u=String(e.navigator.userAgent);if(u.includes("Version/")){const[d,f]=u.split("Version/")[1].split(" ")[0].split(".").map(g=>Number(g));r=d<16||d===16&&f<2}}const s=/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent),i=n(),a=i||s&&t.ios;return{isSafari:r||i,needPerspectiveFix:r,need3dFix:a,isWebView:s}}function A6(){return Om||(Om=VT()),Om}function qT({swiper:e,on:t,emit:r}){const n=Wi();let s=null,i=null;const a=()=>{!e||e.destroyed||!e.initialized||(r("beforeResize"),r("resize"))},u=()=>{!e||e.destroyed||!e.initialized||(s=new ResizeObserver(g=>{i=n.requestAnimationFrame(()=>{const{width:b,height:x}=e;let v=b,w=x;g.forEach(({contentBoxSize:T,contentRect:_,target:M})=>{M&&M!==e.el||(v=_?_.width:(T[0]||T).inlineSize,w=_?_.height:(T[0]||T).blockSize)}),(v!==b||w!==x)&&a()})}),s.observe(e.el))},d=()=>{i&&n.cancelAnimationFrame(i),s&&s.unobserve&&e.el&&(s.unobserve(e.el),s=null)},f=()=>{!e||e.destroyed||!e.initialized||r("orientationchange")};t("init",()=>{if(e.params.resizeObserver&&typeof n.ResizeObserver<"u"){u();return}n.addEventListener("resize",a),n.addEventListener("orientationchange",f)}),t("destroy",()=>{d(),n.removeEventListener("resize",a),n.removeEventListener("orientationchange",f)})}function YT({swiper:e,extendParams:t,on:r,emit:n}){const s=[],i=Wi(),a=(f,g={})=>{const b=i.MutationObserver||i.WebkitMutationObserver,x=new b(v=>{if(e.__preventObserver__)return;if(v.length===1){n("observerUpdate",v[0]);return}const w=function(){n("observerUpdate",v[0])};i.requestAnimationFrame?i.requestAnimationFrame(w):i.setTimeout(w,0)});x.observe(f,{attributes:typeof g.attributes>"u"?!0:g.attributes,childList:e.isElement||(typeof g.childList>"u"?!0:g).childList,characterData:typeof g.characterData>"u"?!0:g.characterData}),s.push(x)},u=()=>{if(e.params.observer){if(e.params.observeParents){const f=GT(e.hostEl);for(let g=0;g<f.length;g+=1)a(f[g])}a(e.hostEl,{childList:e.params.observeSlideChildren}),a(e.wrapperEl,{attributes:!1})}},d=()=>{s.forEach(f=>{f.disconnect()}),s.splice(0,s.length)};t({observer:!1,observeParents:!1,observeSlideChildren:!1}),r("init",u),r("destroy",d)}var KT={on(e,t,r){const n=this;if(!n.eventsListeners||n.destroyed||typeof t!="function")return n;const s=r?"unshift":"push";return e.split(" ").forEach(i=>{n.eventsListeners[i]||(n.eventsListeners[i]=[]),n.eventsListeners[i][s](t)}),n},once(e,t,r){const n=this;if(!n.eventsListeners||n.destroyed||typeof t!="function")return n;function s(...i){n.off(e,s),s.__emitterProxy&&delete s.__emitterProxy,t.apply(n,i)}return s.__emitterProxy=t,n.on(e,s,r)},onAny(e,t){const r=this;if(!r.eventsListeners||r.destroyed||typeof e!="function")return r;const n=t?"unshift":"push";return r.eventsAnyListeners.indexOf(e)<0&&r.eventsAnyListeners[n](e),r},offAny(e){const t=this;if(!t.eventsListeners||t.destroyed||!t.eventsAnyListeners)return t;const r=t.eventsAnyListeners.indexOf(e);return r>=0&&t.eventsAnyListeners.splice(r,1),t},off(e,t){const r=this;return!r.eventsListeners||r.destroyed||!r.eventsListeners||e.split(" ").forEach(n=>{typeof t>"u"?r.eventsListeners[n]=[]:r.eventsListeners[n]&&r.eventsListeners[n].forEach((s,i)=>{(s===t||s.__emitterProxy&&s.__emitterProxy===t)&&r.eventsListeners[n].splice(i,1)})}),r},emit(...e){const t=this;if(!t.eventsListeners||t.destroyed||!t.eventsListeners)return t;let r,n,s;return typeof e[0]=="string"||Array.isArray(e[0])?(r=e[0],n=e.slice(1,e.length),s=t):(r=e[0].events,n=e[0].data,s=e[0].context||t),n.unshift(s),(Array.isArray(r)?r:r.split(" ")).forEach(a=>{t.eventsAnyListeners&&t.eventsAnyListeners.length&&t.eventsAnyListeners.forEach(u=>{u.apply(s,[a,...n])}),t.eventsListeners&&t.eventsListeners[a]&&t.eventsListeners[a].forEach(u=>{u.apply(s,n)})}),t}};function ZT(){const e=this;let t,r;const n=e.el;typeof e.params.width<"u"&&e.params.width!==null?t=e.params.width:t=n.clientWidth,typeof e.params.height<"u"&&e.params.height!==null?r=e.params.height:r=n.clientHeight,!(t===0&&e.isHorizontal()||r===0&&e.isVertical())&&(t=t-parseInt(Bl(n,"padding-left")||0,10)-parseInt(Bl(n,"padding-right")||0,10),r=r-parseInt(Bl(n,"padding-top")||0,10)-parseInt(Bl(n,"padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(r)&&(r=0),Object.assign(e,{width:t,height:r,size:e.isHorizontal()?t:r}))}function XT(){const e=this;function t(G,W){return parseFloat(G.getPropertyValue(e.getDirectionLabel(W))||0)}const r=e.params,{wrapperEl:n,slidesEl:s,rtlTranslate:i,wrongRTL:a}=e,u=e.virtual&&r.virtual.enabled,d=u?e.virtual.slides.length:e.slides.length,f=Ja(s,`.${e.params.slideClass}, swiper-slide`),g=u?e.virtual.slides.length:f.length;let b=[];const x=[],v=[];let w=r.slidesOffsetBefore;typeof w=="function"&&(w=r.slidesOffsetBefore.call(e));let T=r.slidesOffsetAfter;typeof T=="function"&&(T=r.slidesOffsetAfter.call(e));const _=e.snapGrid.length,M=e.slidesGrid.length,N=e.size-w-T;let B=r.spaceBetween,R=-w,C=0,E=0;if(typeof N>"u")return;typeof B=="string"&&B.indexOf("%")>=0?B=parseFloat(B.replace("%",""))/100*N:typeof B=="string"&&(B=parseFloat(B)),e.virtualSize=-B-w-T,f.forEach(G=>{i?G.style.marginLeft="":G.style.marginRight="",G.style.marginBottom="",G.style.marginTop=""}),r.centeredSlides&&r.cssMode&&(su(n,"--swiper-centered-offset-before",""),su(n,"--swiper-centered-offset-after","")),r.cssMode&&(su(n,"--swiper-slides-offset-before",`${w}px`),su(n,"--swiper-slides-offset-after",`${T}px`));const D=r.grid&&r.grid.rows>1&&e.grid;D?e.grid.initSlides(f):e.grid&&e.grid.unsetSlides();let H;const U=r.slidesPerView==="auto"&&r.breakpoints&&Object.keys(r.breakpoints).filter(G=>typeof r.breakpoints[G].slidesPerView<"u").length>0;for(let G=0;G<g;G+=1){H=0;const W=f[G];if(!(W&&(D&&e.grid.updateSlide(G,W,f),Bl(W,"display")==="none"))){if(u&&r.slidesPerView==="auto")r.virtual.slidesPerViewAutoSlideSize&&(H=r.virtual.slidesPerViewAutoSlideSize),H&&W&&(r.roundLengths&&(H=Math.floor(H)),W.style[e.getDirectionLabel("width")]=`${H}px`);else if(r.slidesPerView==="auto"){U&&(W.style[e.getDirectionLabel("width")]="");const J=getComputedStyle(W),ee=W.style.transform,ce=W.style.webkitTransform;if(ee&&(W.style.transform="none"),ce&&(W.style.webkitTransform="none"),r.roundLengths)H=e.isHorizontal()?hb(W,"width"):hb(W,"height");else{const Te=t(J,"width"),Me=t(J,"padding-left"),Se=t(J,"padding-right"),oe=t(J,"margin-left"),ae=t(J,"margin-right"),pe=J.getPropertyValue("box-sizing");if(pe&&pe==="border-box")H=Te+oe+ae;else{const{clientWidth:Ge,offsetWidth:he}=W;H=Te+Me+Se+oe+ae+(he-Ge)}}ee&&(W.style.transform=ee),ce&&(W.style.webkitTransform=ce),r.roundLengths&&(H=Math.floor(H))}else H=(N-(r.slidesPerView-1)*B)/r.slidesPerView,r.roundLengths&&(H=Math.floor(H)),W&&(W.style[e.getDirectionLabel("width")]=`${H}px`);W&&(W.swiperSlideSize=H),v.push(H),r.centeredSlides?(R=R+H/2+C/2+B,C===0&&G!==0&&(R=R-N/2-B),G===0&&(R=R-N/2-B),Math.abs(R)<1/1e3&&(R=0),r.roundLengths&&(R=Math.floor(R)),E%r.slidesPerGroup===0&&b.push(R),x.push(R)):(r.roundLengths&&(R=Math.floor(R)),(E-Math.min(e.params.slidesPerGroupSkip,E))%e.params.slidesPerGroup===0&&b.push(R),x.push(R),R=R+H+B),e.virtualSize+=H+B,C=H,E+=1}}if(e.virtualSize=Math.max(e.virtualSize,N)+T,i&&a&&(r.effect==="slide"||r.effect==="coverflow")&&(n.style.width=`${e.virtualSize+B}px`),r.setWrapperSize&&(n.style[e.getDirectionLabel("width")]=`${e.virtualSize+B}px`),D&&e.grid.updateWrapperSize(H,b),!r.centeredSlides){const G=r.slidesPerView!=="auto"&&r.slidesPerView%1!==0,W=r.snapToSlideEdge&&!r.loop&&(r.slidesPerView==="auto"||G);let J=b.length;if(W){let ce;if(r.slidesPerView==="auto"){ce=1;let Te=0;for(let Me=v.length-1;Me>=0&&(Te+=v[Me]+(Me<v.length-1?B:0),Te<=N);Me-=1)ce=v.length-Me}else ce=Math.floor(r.slidesPerView);J=Math.max(g-ce,0)}const ee=[];for(let ce=0;ce<b.length;ce+=1){let Te=b[ce];r.roundLengths&&(Te=Math.floor(Te)),W?ce<=J&&ee.push(Te):b[ce]<=e.virtualSize-N&&ee.push(Te)}b=ee,Math.floor(e.virtualSize-N)-Math.floor(b[b.length-1])>1&&(W||b.push(e.virtualSize-N))}if(u&&r.loop){const G=v[0]+B;if(r.slidesPerGroup>1){const W=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/r.slidesPerGroup),J=G*r.slidesPerGroup;for(let ee=0;ee<W;ee+=1)b.push(b[b.length-1]+J)}for(let W=0;W<e.virtual.slidesBefore+e.virtual.slidesAfter;W+=1)r.slidesPerGroup===1&&b.push(b[b.length-1]+G),x.push(x[x.length-1]+G),e.virtualSize+=G}if(b.length===0&&(b=[0]),B!==0){const G=e.isHorizontal()&&i?"marginLeft":e.getDirectionLabel("marginRight");f.filter((W,J)=>!r.cssMode||r.loop?!0:J!==f.length-1).forEach(W=>{W.style[G]=`${B}px`})}if(r.centeredSlides&&r.centeredSlidesBounds){let G=0;v.forEach(J=>{G+=J+(B||0)}),G-=B;const W=G>N?G-N:0;b=b.map(J=>J<=0?-w:J>W?W+T:J)}if(r.centerInsufficientSlides){let G=0;if(v.forEach(W=>{G+=W+(B||0)}),G-=B,G<N){const W=(N-G)/2;b.forEach((J,ee)=>{b[ee]=J-W}),x.forEach((J,ee)=>{x[ee]=J+W})}}if(Object.assign(e,{slides:f,snapGrid:b,slidesGrid:x,slidesSizesGrid:v}),r.centeredSlides&&r.cssMode&&!r.centeredSlidesBounds){su(n,"--swiper-centered-offset-before",`${-b[0]}px`),su(n,"--swiper-centered-offset-after",`${e.size/2-v[v.length-1]/2}px`);const G=-e.snapGrid[0],W=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map(J=>J+G),e.slidesGrid=e.slidesGrid.map(J=>J+W)}if(g!==d&&e.emit("slidesLengthChange"),b.length!==_&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),x.length!==M&&e.emit("slidesGridLengthChange"),r.watchSlidesProgress&&e.updateSlidesOffset(),e.emit("slidesUpdated"),!u&&!r.cssMode&&(r.effect==="slide"||r.effect==="fade")){const G=`${r.containerModifierClass}backface-hidden`,W=e.el.classList.contains(G);g<=r.maxBackfaceHiddenSlides?W||e.el.classList.add(G):W&&e.el.classList.remove(G)}}function JT(e){const t=this,r=[],n=t.virtual&&t.params.virtual.enabled;let s=0,i;typeof e=="number"?t.setTransition(e):e===!0&&t.setTransition(t.params.speed);const a=u=>n?t.slides[t.getSlideIndexByData(u)]:t.slides[u];if(t.params.slidesPerView!=="auto"&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach(u=>{r.push(u)});else for(i=0;i<Math.ceil(t.params.slidesPerView);i+=1){const u=t.activeIndex+i;if(u>t.slides.length&&!n)break;r.push(a(u))}else r.push(a(t.activeIndex));for(i=0;i<r.length;i+=1)if(typeof r[i]<"u"){const u=r[i].offsetHeight;s=u>s?u:s}(s||s===0)&&(t.wrapperEl.style.height=`${s}px`)}function eS(){const e=this,t=e.slides,r=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let n=0;n<t.length;n+=1)t[n].swiperSlideOffset=(e.isHorizontal()?t[n].offsetLeft:t[n].offsetTop)-r-e.cssOverflowAdjustment()}const pb=(e,t,r)=>{t&&!e.classList.contains(r)?e.classList.add(r):!t&&e.classList.contains(r)&&e.classList.remove(r)};function tS(e=this&&this.translate||0){const t=this,r=t.params,{slides:n,rtlTranslate:s,snapGrid:i}=t;if(n.length===0)return;typeof n[0].swiperSlideOffset>"u"&&t.updateSlidesOffset();let a=-e;s&&(a=e),t.visibleSlidesIndexes=[],t.visibleSlides=[];let u=r.spaceBetween;typeof u=="string"&&u.indexOf("%")>=0?u=parseFloat(u.replace("%",""))/100*t.size:typeof u=="string"&&(u=parseFloat(u));for(let d=0;d<n.length;d+=1){const f=n[d];let g=f.swiperSlideOffset;r.cssMode&&r.centeredSlides&&(g-=n[0].swiperSlideOffset);const b=(a+(r.centeredSlides?t.minTranslate():0)-g)/(f.swiperSlideSize+u),x=(a-i[0]+(r.centeredSlides?t.minTranslate():0)-g)/(f.swiperSlideSize+u),v=-(a-g),w=v+t.slidesSizesGrid[d],T=v>=0&&v<=t.size-t.slidesSizesGrid[d],_=v>=0&&v<t.size-1||w>1&&w<=t.size||v<=0&&w>=t.size;_&&(t.visibleSlides.push(f),t.visibleSlidesIndexes.push(d)),pb(f,_,r.slideVisibleClass),pb(f,T,r.slideFullyVisibleClass),f.progress=s?-b:b,f.originalProgress=s?-x:x}}function rS(e){const t=this;if(typeof e>"u"){const g=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*g||0}const r=t.params,n=t.maxTranslate()-t.minTranslate();let{progress:s,isBeginning:i,isEnd:a,progressLoop:u}=t;const d=i,f=a;if(n===0)s=0,i=!0,a=!0;else{s=(e-t.minTranslate())/n;const g=Math.abs(e-t.minTranslate())<1,b=Math.abs(e-t.maxTranslate())<1;i=g||s<=0,a=b||s>=1,g&&(s=0),b&&(s=1)}if(r.loop){const g=t.getSlideIndexByData(0),b=t.getSlideIndexByData(t.slides.length-1),x=t.slidesGrid[g],v=t.slidesGrid[b],w=t.slidesGrid[t.slidesGrid.length-1],T=Math.abs(e);T>=x?u=(T-x)/w:u=(T+w-v)/w,u>1&&(u-=1)}Object.assign(t,{progress:s,progressLoop:u,isBeginning:i,isEnd:a}),(r.watchSlidesProgress||r.centeredSlides&&r.autoHeight)&&t.updateSlidesProgress(e),i&&!d&&t.emit("reachBeginning toEdge"),a&&!f&&t.emit("reachEnd toEdge"),(d&&!i||f&&!a)&&t.emit("fromEdge"),t.emit("progress",s)}const $m=(e,t,r)=>{t&&!e.classList.contains(r)?e.classList.add(r):!t&&e.classList.contains(r)&&e.classList.remove(r)};function nS(){const e=this,{slides:t,params:r,slidesEl:n,activeIndex:s}=e,i=e.virtual&&r.virtual.enabled,a=e.grid&&r.grid&&r.grid.rows>1,u=b=>Ja(n,`.${r.slideClass}${b}, swiper-slide${b}`)[0];let d,f,g;if(i)if(r.loop){let b=s-e.virtual.slidesBefore;b<0&&(b=e.virtual.slides.length+b),b>=e.virtual.slides.length&&(b-=e.virtual.slides.length),d=u(`[data-swiper-slide-index="${b}"]`)}else d=u(`[data-swiper-slide-index="${s}"]`);else a?(d=t.find(b=>b.column===s),g=t.find(b=>b.column===s+1),f=t.find(b=>b.column===s-1)):d=t[s];d&&(a||(g=UT(d,`.${r.slideClass}, swiper-slide`)[0],r.loop&&!g&&(g=t[0]),f=HT(d,`.${r.slideClass}, swiper-slide`)[0],r.loop&&!f===0&&(f=t[t.length-1]))),t.forEach(b=>{$m(b,b===d,r.slideActiveClass),$m(b,b===g,r.slideNextClass),$m(b,b===f,r.slidePrevClass)}),e.emitSlidesClasses()}const Nf=(e,t)=>{if(!e||e.destroyed||!e.params)return;const r=()=>e.isElement?"swiper-slide":`.${e.params.slideClass}`,n=t.closest(r());if(n){let s=n.querySelector(`.${e.params.lazyPreloaderClass}`);!s&&e.isElement&&(n.shadowRoot?s=n.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame(()=>{n.shadowRoot&&(s=n.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),s&&!s.lazyPreloaderManaged&&s.remove())})),s&&!s.lazyPreloaderManaged&&s.remove()}},Hm=(e,t)=>{if(!e.slides[t])return;const r=e.slides[t].querySelector('[loading="lazy"]');r&&r.removeAttribute("loading")},x1=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const r=e.slides.length;if(!r||!t||t<0)return;t=Math.min(t,r);const n=e.params.slidesPerView==="auto"?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),s=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const a=s,u=[a-t];u.push(...Array.from({length:t}).map((d,f)=>a+n+f)),e.slides.forEach((d,f)=>{u.includes(d.column)&&Hm(e,f)});return}const i=s+n-1;if(e.params.rewind||e.params.loop)for(let a=s-t;a<=i+t;a+=1){const u=(a%r+r)%r;(u<s||u>i)&&Hm(e,u)}else for(let a=Math.max(s-t,0);a<=Math.min(i+t,r-1);a+=1)a!==s&&(a>i||a<s)&&Hm(e,a)};function sS(e){const{slidesGrid:t,params:r}=e,n=e.rtlTranslate?e.translate:-e.translate;let s;for(let i=0;i<t.length;i+=1)typeof t[i+1]<"u"?n>=t[i]&&n<t[i+1]-(t[i+1]-t[i])/2?s=i:n>=t[i]&&n<t[i+1]&&(s=i+1):n>=t[i]&&(s=i);return r.normalizeSlideIndex&&(s<0||typeof s>"u")&&(s=0),s}function iS(e){const t=this,r=t.rtlTranslate?t.translate:-t.translate,{snapGrid:n,params:s,activeIndex:i,realIndex:a,snapIndex:u}=t;let d=e,f;const g=v=>{let w=v-t.virtual.slidesBefore;return w<0&&(w=t.virtual.slides.length+w),w>=t.virtual.slides.length&&(w-=t.virtual.slides.length),w};if(typeof d>"u"&&(d=sS(t)),n.indexOf(r)>=0)f=n.indexOf(r);else{const v=Math.min(s.slidesPerGroupSkip,d);f=v+Math.floor((d-v)/s.slidesPerGroup)}if(f>=n.length&&(f=n.length-1),d===i&&!t.params.loop){f!==u&&(t.snapIndex=f,t.emit("snapIndexChange"));return}if(d===i&&t.params.loop&&t.virtual&&t.params.virtual.enabled){t.realIndex=g(d);return}const b=t.grid&&s.grid&&s.grid.rows>1;let x;if(t.virtual&&s.virtual.enabled)s.loop?x=g(d):x=d;else if(b){const v=t.slides.find(T=>T.column===d);let w=parseInt(v.getAttribute("data-swiper-slide-index"),10);Number.isNaN(w)&&(w=Math.max(t.slides.indexOf(v),0)),x=Math.floor(w/s.grid.rows)}else if(t.slides[d]){const v=t.slides[d].getAttribute("data-swiper-slide-index");v?x=parseInt(v,10):x=d}else x=d;Object.assign(t,{previousSnapIndex:u,snapIndex:f,previousRealIndex:a,realIndex:x,previousIndex:i,activeIndex:d}),t.initialized&&x1(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(a!==x&&t.emit("realIndexChange"),t.emit("slideChange"))}function oS(e,t){const r=this,n=r.params;let s=e.closest(`.${n.slideClass}, swiper-slide`);!s&&r.isElement&&t&&t.length>1&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach(u=>{!s&&u.matches&&u.matches(`.${n.slideClass}, swiper-slide`)&&(s=u)});let i=!1,a;if(s){for(let u=0;u<r.slides.length;u+=1)if(r.slides[u]===s){i=!0,a=u;break}}if(s&&i)r.clickedSlide=s,r.virtual&&r.params.virtual.enabled?r.clickedIndex=parseInt(s.getAttribute("data-swiper-slide-index"),10):r.clickedIndex=a;else{r.clickedSlide=void 0,r.clickedIndex=void 0;return}n.slideToClickedSlide&&r.clickedIndex!==void 0&&r.clickedIndex!==r.activeIndex&&r.slideToClickedSlide()}var aS={updateSize:ZT,updateSlides:XT,updateAutoHeight:JT,updateSlidesOffset:eS,updateSlidesProgress:tS,updateProgress:rS,updateSlidesClasses:nS,updateActiveIndex:iS,updateClickedSlide:oS};function lS(e=this.isHorizontal()?"x":"y"){const t=this,{params:r,rtlTranslate:n,translate:s,wrapperEl:i}=t;if(r.virtualTranslate)return n?-s:s;if(r.cssMode)return s;let a=QT(i,e);return a+=t.cssOverflowAdjustment(),n&&(a=-a),a||0}function cS(e,t){const r=this,{rtlTranslate:n,params:s,wrapperEl:i,progress:a}=r;let u=0,d=0;const f=0;r.isHorizontal()?u=n?-e:e:d=e,s.roundLengths&&(u=Math.floor(u),d=Math.floor(d)),r.previousTranslate=r.translate,r.translate=r.isHorizontal()?u:d,s.cssMode?i[r.isHorizontal()?"scrollLeft":"scrollTop"]=r.isHorizontal()?-u:-d:s.virtualTranslate||(r.isHorizontal()?u-=r.cssOverflowAdjustment():d-=r.cssOverflowAdjustment(),i.style.transform=`translate3d(${u}px, ${d}px, ${f}px)`);let g;const b=r.maxTranslate()-r.minTranslate();b===0?g=0:g=(e-r.minTranslate())/b,g!==a&&r.updateProgress(e),r.emit("setTranslate",r.translate,t)}function uS(){return-this.snapGrid[0]}function dS(){return-this.snapGrid[this.snapGrid.length-1]}function hS(e=0,t=this.params.speed,r=!0,n=!0,s){const i=this,{params:a,wrapperEl:u}=i;if(i.animating&&a.preventInteractionOnTransition)return!1;const d=i.minTranslate(),f=i.maxTranslate();let g;if(n&&e>d?g=d:n&&e<f?g=f:g=e,i.updateProgress(g),a.cssMode){const b=i.isHorizontal();if(t===0)u[b?"scrollLeft":"scrollTop"]=-g;else{if(!i.support.smoothScroll)return y6({swiper:i,targetPosition:-g,side:b?"left":"top"}),!0;u.scrollTo({[b?"left":"top"]:-g,behavior:"smooth"})}return!0}return t===0?(i.setTransition(0),i.setTranslate(g),r&&(i.emit("beforeTransitionStart",t,s),i.emit("transitionEnd"))):(i.setTransition(t),i.setTranslate(g),r&&(i.emit("beforeTransitionStart",t,s),i.emit("transitionStart")),i.animating||(i.animating=!0,i.onTranslateToWrapperTransitionEnd||(i.onTranslateToWrapperTransitionEnd=function(x){!i||i.destroyed||x.target===this&&(i.wrapperEl.removeEventListener("transitionend",i.onTranslateToWrapperTransitionEnd),i.onTranslateToWrapperTransitionEnd=null,delete i.onTranslateToWrapperTransitionEnd,i.animating=!1,r&&i.emit("transitionEnd"))}),i.wrapperEl.addEventListener("transitionend",i.onTranslateToWrapperTransitionEnd))),!0}var fS={getTranslate:lS,setTranslate:cS,minTranslate:uS,maxTranslate:dS,translateTo:hS};function pS(e,t){const r=this;r.params.cssMode||(r.wrapperEl.style.transitionDuration=`${e}ms`,r.wrapperEl.style.transitionDelay=e===0?"0ms":""),r.emit("setTransition",e,t)}function T6({swiper:e,runCallbacks:t,direction:r,step:n}){const{activeIndex:s,previousIndex:i}=e;let a=r;a||(s>i?a="next":s<i?a="prev":a="reset"),e.emit(`transition${n}`),t&&a==="reset"?e.emit(`slideResetTransition${n}`):t&&s!==i&&(e.emit(`slideChangeTransition${n}`),a==="next"?e.emit(`slideNextTransition${n}`):e.emit(`slidePrevTransition${n}`))}function mS(e=!0,t){const r=this,{params:n}=r;n.cssMode||(n.autoHeight&&r.updateAutoHeight(),T6({swiper:r,runCallbacks:e,direction:t,step:"Start"}))}function gS(e=!0,t){const r=this,{params:n}=r;r.animating=!1,!n.cssMode&&(r.setTransition(0),T6({swiper:r,runCallbacks:e,direction:t,step:"End"}))}var bS={setTransition:pS,transitionStart:mS,transitionEnd:gS};function xS(e=0,t,r=!0,n,s){typeof e=="string"&&(e=parseInt(e,10));const i=this;let a=e;a<0&&(a=0);const{params:u,snapGrid:d,slidesGrid:f,previousIndex:g,activeIndex:b,rtlTranslate:x,wrapperEl:v,enabled:w}=i;if(!w&&!n&&!s||i.destroyed||i.animating&&u.preventInteractionOnTransition)return!1;typeof t>"u"&&(t=i.params.speed);const T=Math.min(i.params.slidesPerGroupSkip,a);let _=T+Math.floor((a-T)/i.params.slidesPerGroup);_>=d.length&&(_=d.length-1);const M=-d[_];if(u.normalizeSlideIndex)for(let D=0;D<f.length;D+=1){const H=-Math.floor(M*100),U=Math.floor(f[D]*100),G=Math.floor(f[D+1]*100);typeof f[D+1]<"u"?H>=U&&H<G-(G-U)/2?a=D:H>=U&&H<G&&(a=D+1):H>=U&&(a=D)}if(i.initialized&&a!==b&&(!i.allowSlideNext&&(x?M>i.translate&&M>i.minTranslate():M<i.translate&&M<i.minTranslate())||!i.allowSlidePrev&&M>i.translate&&M>i.maxTranslate()&&(b||0)!==a))return!1;a!==(g||0)&&r&&i.emit("beforeSlideChangeStart"),i.updateProgress(M);let N;a>b?N="next":a<b?N="prev":N="reset";const B=i.virtual&&i.params.virtual.enabled;if(!(B&&s)&&(x&&-M===i.translate||!x&&M===i.translate))return i.updateActiveIndex(a),u.autoHeight&&i.updateAutoHeight(),i.updateSlidesClasses(),u.effect!=="slide"&&i.setTranslate(M),N!=="reset"&&(i.transitionStart(r,N),i.transitionEnd(r,N)),!1;if(u.cssMode){const D=i.isHorizontal(),H=x?M:-M;if(t===0)B&&(i.wrapperEl.style.scrollSnapType="none",i._immediateVirtual=!0),B&&!i._cssModeVirtualInitialSet&&i.params.initialSlide>0?(i._cssModeVirtualInitialSet=!0,requestAnimationFrame(()=>{v[D?"scrollLeft":"scrollTop"]=H})):v[D?"scrollLeft":"scrollTop"]=H,B&&requestAnimationFrame(()=>{i.wrapperEl.style.scrollSnapType="",i._immediateVirtual=!1});else{if(!i.support.smoothScroll)return y6({swiper:i,targetPosition:H,side:D?"left":"top"}),!0;v.scrollTo({[D?"left":"top"]:H,behavior:"smooth"})}return!0}const E=A6().isSafari;return B&&!s&&E&&i.isElement&&i.virtual.update(!1,!1,a),i.setTransition(t),i.setTranslate(M),i.updateActiveIndex(a),i.updateSlidesClasses(),i.emit("beforeTransitionStart",t,n),i.transitionStart(r,N),t===0?i.transitionEnd(r,N):i.animating||(i.animating=!0,i.onSlideToWrapperTransitionEnd||(i.onSlideToWrapperTransitionEnd=function(H){!i||i.destroyed||H.target===this&&(i.wrapperEl.removeEventListener("transitionend",i.onSlideToWrapperTransitionEnd),i.onSlideToWrapperTransitionEnd=null,delete i.onSlideToWrapperTransitionEnd,i.transitionEnd(r,N))}),i.wrapperEl.addEventListener("transitionend",i.onSlideToWrapperTransitionEnd)),!0}function yS(e=0,t,r=!0,n){typeof e=="string"&&(e=parseInt(e,10));const s=this;if(s.destroyed)return;typeof t>"u"&&(t=s.params.speed);const i=s.grid&&s.params.grid&&s.params.grid.rows>1;let a=e;if(s.params.loop)if(s.virtual&&s.params.virtual.enabled)a=a+s.virtual.slidesBefore;else{let u;if(i){const T=a*s.params.grid.rows;u=s.slides.find(_=>_.getAttribute("data-swiper-slide-index")*1===T).column}else u=s.getSlideIndexByData(a);const d=i?Math.ceil(s.slides.length/s.params.grid.rows):s.slides.length,{centeredSlides:f,slidesOffsetBefore:g,slidesOffsetAfter:b}=s.params,x=f||!!g||!!b;let v=s.params.slidesPerView;v==="auto"?v=s.slidesPerViewDynamic():(v=Math.ceil(parseFloat(s.params.slidesPerView,10)),x&&v%2===0&&(v=v+1));let w=d-u<v;if(x&&(w=w||u<Math.ceil(v/2)),n&&x&&s.params.slidesPerView!=="auto"&&!i&&(w=!1),w){const T=x?u<s.activeIndex?"prev":"next":u-s.activeIndex-1<s.params.slidesPerView?"next":"prev";s.loopFix({direction:T,slideTo:!0,activeSlideIndex:T==="next"?u+1:u-d+1,slideRealIndex:T==="next"?s.realIndex:void 0})}if(i){const T=a*s.params.grid.rows;a=s.slides.find(_=>_.getAttribute("data-swiper-slide-index")*1===T).column}else a=s.getSlideIndexByData(a)}return requestAnimationFrame(()=>{s.slideTo(a,t,r,n)}),s}function vS(e,t=!0,r){const n=this,{enabled:s,params:i,animating:a}=n;if(!s||n.destroyed)return n;typeof e>"u"&&(e=n.params.speed);let u=i.slidesPerGroup;i.slidesPerView==="auto"&&i.slidesPerGroup===1&&i.slidesPerGroupAuto&&(u=Math.max(n.slidesPerViewDynamic("current",!0),1));const d=n.activeIndex<i.slidesPerGroupSkip?1:u,f=n.virtual&&i.virtual.enabled;if(i.loop){if(a&&!f&&i.loopPreventsSliding)return!1;if(n.loopFix({direction:"next"}),n._clientLeft=n.wrapperEl.clientLeft,n.activeIndex===n.slides.length-1&&i.cssMode)return requestAnimationFrame(()=>{n.slideTo(n.activeIndex+d,e,t,r)}),!0}return i.rewind&&n.isEnd?n.slideTo(0,e,t,r):n.slideTo(n.activeIndex+d,e,t,r)}function wS(e,t=!0,r){const n=this,{params:s,snapGrid:i,slidesGrid:a,rtlTranslate:u,enabled:d,animating:f}=n;if(!d||n.destroyed)return n;typeof e>"u"&&(e=n.params.speed);const g=n.virtual&&s.virtual.enabled;if(s.loop){if(f&&!g&&s.loopPreventsSliding)return!1;n.loopFix({direction:"prev"}),n._clientLeft=n.wrapperEl.clientLeft}const b=u?n.translate:-n.translate;function x(N){return N<0?-Math.floor(Math.abs(N)):Math.floor(N)}const v=x(b),w=i.map(N=>x(N)),T=s.freeMode&&s.freeMode.enabled;let _=i[w.indexOf(v)-1];if(typeof _>"u"&&(s.cssMode||T)){let N;i.forEach((B,R)=>{v>=B&&(N=R)}),typeof N<"u"&&(_=T?i[N]:i[N>0?N-1:N])}let M=0;if(typeof _<"u"&&(M=a.indexOf(_),M<0&&(M=n.activeIndex-1),s.slidesPerView==="auto"&&s.slidesPerGroup===1&&s.slidesPerGroupAuto&&(M=M-n.slidesPerViewDynamic("previous",!0)+1,M=Math.max(M,0))),s.rewind&&n.isBeginning){const N=n.params.virtual&&n.params.virtual.enabled&&n.virtual?n.virtual.slides.length-1:n.slides.length-1;return n.slideTo(N,e,t,r)}else if(s.loop&&n.activeIndex===0&&s.cssMode)return requestAnimationFrame(()=>{n.slideTo(M,e,t,r)}),!0;return n.slideTo(M,e,t,r)}function AS(e,t=!0,r){const n=this;if(!n.destroyed)return typeof e>"u"&&(e=n.params.speed),n.slideTo(n.activeIndex,e,t,r)}function TS(e,t=!0,r,n=.5){const s=this;if(s.destroyed)return;typeof e>"u"&&(e=s.params.speed);let i=s.activeIndex;const a=Math.min(s.params.slidesPerGroupSkip,i),u=a+Math.floor((i-a)/s.params.slidesPerGroup),d=s.rtlTranslate?s.translate:-s.translate;if(d>=s.snapGrid[u]){const f=s.snapGrid[u],g=s.snapGrid[u+1];d-f>(g-f)*n&&(i+=s.params.slidesPerGroup)}else{const f=s.snapGrid[u-1],g=s.snapGrid[u];d-f<=(g-f)*n&&(i-=s.params.slidesPerGroup)}return i=Math.max(i,0),i=Math.min(i,s.slidesGrid.length-1),s.slideTo(i,e,t,r)}function SS(){const e=this;if(e.destroyed)return;const{params:t,slidesEl:r}=e,n=t.slidesPerView==="auto"?e.slidesPerViewDynamic():t.slidesPerView;let s=e.getSlideIndexWhenGrid(e.clickedIndex),i;const a=e.isElement?"swiper-slide":`.${t.slideClass}`,u=e.grid&&e.params.grid&&e.params.grid.rows>1;if(t.loop){if(e.animating)return;i=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?e.slideToLoop(i):s>(u?(e.slides.length-n)/2-(e.params.grid.rows-1):e.slides.length-n)?(e.loopFix(),s=e.getSlideIndex(Ja(r,`${a}[data-swiper-slide-index="${i}"]`)[0]),x6(()=>{e.slideTo(s)})):e.slideTo(s)}else e.slideTo(s)}var CS={slideTo:xS,slideToLoop:yS,slideNext:vS,slidePrev:wS,slideReset:AS,slideToClosest:TS,slideToClickedSlide:SS};function _S(e,t){const r=this,{params:n,slidesEl:s}=r;if(!n.loop||r.virtual&&r.params.virtual.enabled)return;const i=()=>{Ja(s,`.${n.slideClass}, swiper-slide`).forEach((w,T)=>{w.setAttribute("data-swiper-slide-index",T)})},a=()=>{const v=Ja(s,`.${n.slideBlankClass}`);v.forEach(w=>{w.remove()}),v.length>0&&(r.recalcSlides(),r.updateSlides())},u=r.grid&&n.grid&&n.grid.rows>1;n.loopAddBlankSlides&&(n.slidesPerGroup>1||u)&&a();const d=n.slidesPerGroup*(u?n.grid.rows:1),f=r.slides.length%d!==0,g=u&&r.slides.length%n.grid.rows!==0,b=v=>{for(let w=0;w<v;w+=1){const T=r.isElement?b1("swiper-slide",[n.slideBlankClass]):b1("div",[n.slideClass,n.slideBlankClass]);r.slidesEl.append(T)}};if(f){if(n.loopAddBlankSlides){const v=d-r.slides.length%d;b(v),r.recalcSlides(),r.updateSlides()}else ep("Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)");i()}else if(g){if(n.loopAddBlankSlides){const v=n.grid.rows-r.slides.length%n.grid.rows;b(v),r.recalcSlides(),r.updateSlides()}else ep("Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)");i()}else i();const x=n.centeredSlides||!!n.slidesOffsetBefore||!!n.slidesOffsetAfter;r.loopFix({slideRealIndex:e,direction:x?void 0:"next",initial:t})}function LS({slideRealIndex:e,slideTo:t=!0,direction:r,setTranslate:n,activeSlideIndex:s,initial:i,byController:a,byMousewheel:u}={}){const d=this;if(!d.params.loop)return;d.emit("beforeLoopFix");const{slides:f,allowSlidePrev:g,allowSlideNext:b,slidesEl:x,params:v}=d,{centeredSlides:w,slidesOffsetBefore:T,slidesOffsetAfter:_,initialSlide:M}=v,N=w||!!T||!!_;if(d.allowSlidePrev=!0,d.allowSlideNext=!0,d.virtual&&v.virtual.enabled){t&&(!N&&d.snapIndex===0?d.slideTo(d.virtual.slides.length,0,!1,!0):N&&d.snapIndex<v.slidesPerView?d.slideTo(d.virtual.slides.length+d.snapIndex,0,!1,!0):d.snapIndex===d.snapGrid.length-1&&d.slideTo(d.virtual.slidesBefore,0,!1,!0)),d.allowSlidePrev=g,d.allowSlideNext=b,d.emit("loopFix");return}let B=v.slidesPerView;B==="auto"?B=d.slidesPerViewDynamic():(B=Math.ceil(parseFloat(v.slidesPerView,10)),N&&B%2===0&&(B=B+1));const R=v.slidesPerGroupAuto?B:v.slidesPerGroup;let C=N?Math.max(R,Math.ceil(B/2)):R;C%R!==0&&(C+=R-C%R),C+=v.loopAdditionalSlides,d.loopedSlides=C;const E=d.grid&&v.grid&&v.grid.rows>1;f.length<B+C||d.params.effect==="cards"&&f.length<B+C*2?ep("Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters"):E&&v.grid.fill==="row"&&ep("Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`");const D=[],H=[],U=E?Math.ceil(f.length/v.grid.rows):f.length,G=i&&U-M<B&&!N;let W=G?M:d.activeIndex;typeof s>"u"?s=d.getSlideIndex(f.find(oe=>oe.classList.contains(v.slideActiveClass))):W=s;const J=r==="next"||!r,ee=r==="prev"||!r;let ce=0,Te=0;const Se=(E?f[s].column:s)+(N&&typeof n>"u"?-B/2+.5:0);if(Se<C){ce=Math.max(C-Se,R);for(let oe=0;oe<C-Se;oe+=1){const ae=oe-Math.floor(oe/U)*U;if(E){const pe=U-ae-1;for(let Ge=f.length-1;Ge>=0;Ge-=1)f[Ge].column===pe&&D.push(Ge)}else D.push(U-ae-1)}}else if(Se+B>U-C){Te=Math.max(Se-(U-C*2),R),G&&(Te=Math.max(Te,B-U+M+1));for(let oe=0;oe<Te;oe+=1){const ae=oe-Math.floor(oe/U)*U;E?f.forEach((pe,Ge)=>{pe.column===ae&&H.push(Ge)}):H.push(ae)}}if(d.__preventObserver__=!0,requestAnimationFrame(()=>{d.__preventObserver__=!1}),d.params.effect==="cards"&&f.length<B+C*2&&(H.includes(s)&&H.splice(H.indexOf(s),1),D.includes(s)&&D.splice(D.indexOf(s),1)),ee&&D.forEach(oe=>{f[oe].swiperLoopMoveDOM=!0,x.prepend(f[oe]),f[oe].swiperLoopMoveDOM=!1}),J&&H.forEach(oe=>{f[oe].swiperLoopMoveDOM=!0,x.append(f[oe]),f[oe].swiperLoopMoveDOM=!1}),d.recalcSlides(),v.slidesPerView==="auto"?d.updateSlides():E&&(D.length>0&&ee||H.length>0&&J)&&d.slides.forEach((oe,ae)=>{d.grid.updateSlide(ae,oe,d.slides)}),v.watchSlidesProgress&&d.updateSlidesOffset(),t){if(D.length>0&&ee){if(typeof e>"u"){const oe=d.slidesGrid[W],pe=d.slidesGrid[W+ce]-oe;u?d.setTranslate(d.translate-pe):(d.slideTo(W+Math.ceil(ce),0,!1,!0),n&&(d.touchEventsData.startTranslate=d.touchEventsData.startTranslate-pe,d.touchEventsData.currentTranslate=d.touchEventsData.currentTranslate-pe))}else if(n){const oe=E?D.length/v.grid.rows:D.length;d.slideTo(d.activeIndex+oe,0,!1,!0),d.touchEventsData.currentTranslate=d.translate}}else if(H.length>0&&J)if(typeof e>"u"){const oe=d.slidesGrid[W],pe=d.slidesGrid[W-Te]-oe;u?d.setTranslate(d.translate-pe):(d.slideTo(W-Te,0,!1,!0),n&&(d.touchEventsData.startTranslate=d.touchEventsData.startTranslate-pe,d.touchEventsData.currentTranslate=d.touchEventsData.currentTranslate-pe))}else{const oe=E?H.length/v.grid.rows:H.length;d.slideTo(d.activeIndex-oe,0,!1,!0)}}if(d.allowSlidePrev=g,d.allowSlideNext=b,d.controller&&d.controller.control&&!a){const oe={slideRealIndex:e,direction:r,setTranslate:n,activeSlideIndex:s,byController:!0};Array.isArray(d.controller.control)?d.controller.control.forEach(ae=>{!ae.destroyed&&ae.params.loop&&ae.loopFix({...oe,slideTo:ae.params.slidesPerView===v.slidesPerView?t:!1})}):d.controller.control instanceof d.constructor&&d.controller.control.params.loop&&d.controller.control.loopFix({...oe,slideTo:d.controller.control.params.slidesPerView===v.slidesPerView?t:!1})}d.emit("loopFix")}function kS(){const e=this,{params:t,slidesEl:r}=e;if(!t.loop||!r||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const n=[];e.slides.forEach(s=>{const i=typeof s.swiperSlideIndex>"u"?s.getAttribute("data-swiper-slide-index")*1:s.swiperSlideIndex;n[i]=s}),e.slides.forEach(s=>{s.removeAttribute("data-swiper-slide-index")}),n.forEach(s=>{r.append(s)}),e.recalcSlides(),e.slideTo(e.realIndex,0)}var ES={loopCreate:_S,loopFix:LS,loopDestroy:kS};function IS(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const r=t.params.touchEventsTarget==="container"?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),r.style.cursor="move",r.style.cursor=e?"grabbing":"grab",t.isElement&&requestAnimationFrame(()=>{t.__preventObserver__=!1})}function MS(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.isElement&&(e.__preventObserver__=!0),e[e.params.touchEventsTarget==="container"?"el":"wrapperEl"].style.cursor="",e.isElement&&requestAnimationFrame(()=>{e.__preventObserver__=!1}))}var RS={setGrabCursor:IS,unsetGrabCursor:MS};function NS(e,t=this){function r(n){if(!n||n===Pc()||n===Wi())return null;n.assignedSlot&&(n=n.assignedSlot);const s=n.closest(e);return!s&&!n.getRootNode?null:s||r(n.getRootNode().host)}return r(t)}function mb(e,t,r){const n=Wi(),{params:s}=e,i=s.edgeSwipeDetection,a=s.edgeSwipeThreshold;return i&&(r<=a||r>=n.innerWidth-a)?i==="prevent"?(t.preventDefault(),!0):!1:!0}function DS(e){const t=this;if(t.destroyed)return;const r=Pc();let n=e;n.originalEvent&&(n=n.originalEvent);const s=t.touchEventsData;if(n.type==="pointerdown"){if(s.pointerId!==null&&s.pointerId!==n.pointerId)return;s.pointerId=n.pointerId}else n.type==="touchstart"&&n.targetTouches.length===1&&(s.touchId=n.targetTouches[0].identifier);if(n.type==="touchstart"){mb(t,n,n.targetTouches[0].pageX);return}const{params:i,touches:a,enabled:u}=t;if(!u||!i.simulateTouch&&n.pointerType==="mouse"||t.animating&&i.preventInteractionOnTransition)return;!t.animating&&i.cssMode&&i.loop&&t.loopFix();let d=n.target;if(i.touchEventsTarget==="wrapper"&&!$T(d,t.wrapperEl)||"which"in n&&n.which===3||"button"in n&&n.button>0||s.isTouched&&s.isMoved)return;const f=!!i.noSwipingClass&&i.noSwipingClass!=="",g=n.composedPath?n.composedPath():n.path;f&&n.target&&n.target.shadowRoot&&g&&(d=g[0]);const b=i.noSwipingSelector?i.noSwipingSelector:`.${i.noSwipingClass}`,x=!!(n.target&&n.target.shadowRoot);if(i.noSwiping&&(x?NS(b,d):d.closest(b))){t.allowClick=!0;return}if(i.swipeHandler&&!d.closest(i.swipeHandler))return;a.currentX=n.pageX,a.currentY=n.pageY;const v=a.currentX,w=a.currentY;if(!mb(t,n,v))return;Object.assign(s,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),a.startX=v,a.startY=w,s.touchStartTime=Jf(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,i.threshold>0&&(s.allowThresholdMove=!1);let T=!0;d.matches(s.focusableElements)&&(T=!1,d.nodeName==="SELECT"&&(s.isTouched=!1)),r.activeElement&&r.activeElement.matches(s.focusableElements)&&r.activeElement!==d&&(n.pointerType==="mouse"||n.pointerType!=="mouse"&&!d.matches(s.focusableElements))&&r.activeElement.blur();const _=T&&t.allowTouchMove&&i.touchStartPreventDefault;(i.touchStartForcePreventDefault||_)&&!d.isContentEditable&&n.preventDefault(),i.freeMode&&i.freeMode.enabled&&t.freeMode&&t.animating&&!i.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",n)}function BS(e){const t=Pc(),r=this;if(r.destroyed)return;const n=r.touchEventsData,{params:s,touches:i,rtlTranslate:a,enabled:u}=r;if(!u||!s.simulateTouch&&e.pointerType==="mouse")return;let d=e;if(d.originalEvent&&(d=d.originalEvent),d.type==="pointermove"&&(n.touchId!==null||d.pointerId!==n.pointerId))return;let f;if(d.type==="touchmove"){if(f=[...d.changedTouches].find(C=>C.identifier===n.touchId),!f||f.identifier!==n.touchId)return}else f=d;if(!n.isTouched){n.startMoving&&n.isScrolling&&r.emit("touchMoveOpposite",d);return}const g=f.pageX,b=f.pageY;if(d.preventedByNestedSwiper){i.startX=g,i.startY=b;return}if(!r.allowTouchMove){d.target.matches(n.focusableElements)||(r.allowClick=!1),n.isTouched&&(Object.assign(i,{startX:g,startY:b,currentX:g,currentY:b}),n.touchStartTime=Jf());return}if(s.touchReleaseOnEdges&&!s.loop)if(r.isVertical()){if(b<i.startY&&r.translate<=r.maxTranslate()||b>i.startY&&r.translate>=r.minTranslate()){n.isTouched=!1,n.isMoved=!1;return}}else{if(a&&(g>i.startX&&-r.translate<=r.maxTranslate()||g<i.startX&&-r.translate>=r.minTranslate()))return;if(!a&&(g<i.startX&&r.translate<=r.maxTranslate()||g>i.startX&&r.translate>=r.minTranslate()))return}if(t.activeElement&&t.activeElement.matches(n.focusableElements)&&t.activeElement!==d.target&&d.pointerType!=="mouse"&&t.activeElement.blur(),t.activeElement&&d.target===t.activeElement&&d.target.matches(n.focusableElements)){n.isMoved=!0,r.allowClick=!1;return}n.allowTouchCallbacks&&r.emit("touchMove",d),i.previousX=i.currentX,i.previousY=i.currentY,i.currentX=g,i.currentY=b;const x=i.currentX-i.startX,v=i.currentY-i.startY;if(r.params.threshold&&Math.sqrt(x**2+v**2)<r.params.threshold)return;if(typeof n.isScrolling>"u"){let C;r.isHorizontal()&&i.currentY===i.startY||r.isVertical()&&i.currentX===i.startX?n.isScrolling=!1:x*x+v*v>=25&&(C=Math.atan2(Math.abs(v),Math.abs(x))*180/Math.PI,n.isScrolling=r.isHorizontal()?C>s.touchAngle:90-C>s.touchAngle)}if(n.isScrolling&&r.emit("touchMoveOpposite",d),typeof n.startMoving>"u"&&(i.currentX!==i.startX||i.currentY!==i.startY)&&(n.startMoving=!0),n.isScrolling||d.type==="touchmove"&&n.preventTouchMoveFromPointerMove){n.isTouched=!1;return}if(!n.startMoving)return;r.allowClick=!1,!s.cssMode&&d.cancelable&&d.preventDefault(),s.touchMoveStopPropagation&&!s.nested&&d.stopPropagation();let w=r.isHorizontal()?x:v,T=r.isHorizontal()?i.currentX-i.previousX:i.currentY-i.previousY;s.oneWayMovement&&(w=Math.abs(w)*(a?1:-1),T=Math.abs(T)*(a?1:-1)),i.diff=w,w*=s.touchRatio,a&&(w=-w,T=-T);const _=r.touchesDirection;r.swipeDirection=w>0?"prev":"next",r.touchesDirection=T>0?"prev":"next";const M=r.params.loop&&!s.cssMode,N=r.touchesDirection==="next"&&r.allowSlideNext||r.touchesDirection==="prev"&&r.allowSlidePrev;if(!n.isMoved){if(M&&N&&r.loopFix({direction:r.swipeDirection}),n.startTranslate=r.getTranslate(),r.setTransition(0),r.animating){const C=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0,detail:{bySwiperTouchMove:!0}});r.wrapperEl.dispatchEvent(C)}n.allowMomentumBounce=!1,s.grabCursor&&(r.allowSlideNext===!0||r.allowSlidePrev===!0)&&r.setGrabCursor(!0),r.emit("sliderFirstMove",d)}if(new Date().getTime(),s._loopSwapReset!==!1&&n.isMoved&&n.allowThresholdMove&&_!==r.touchesDirection&&M&&N&&Math.abs(w)>=1){Object.assign(i,{startX:g,startY:b,currentX:g,currentY:b,startTranslate:n.currentTranslate}),n.loopSwapReset=!0,n.startTranslate=n.currentTranslate;return}r.emit("sliderMove",d),n.isMoved=!0,n.currentTranslate=w+n.startTranslate;let B=!0,R=s.resistanceRatio;if(s.touchReleaseOnEdges&&(R=0),w>0?(M&&N&&n.allowThresholdMove&&n.currentTranslate>(s.centeredSlides?r.minTranslate()-r.slidesSizesGrid[r.activeIndex+1]-(s.slidesPerView!=="auto"&&r.slides.length-s.slidesPerView>=2?r.slidesSizesGrid[r.activeIndex+1]+r.params.spaceBetween:0)-r.params.spaceBetween:r.minTranslate())&&r.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),n.currentTranslate>r.minTranslate()&&(B=!1,s.resistance&&(n.currentTranslate=r.minTranslate()-1+(-r.minTranslate()+n.startTranslate+w)**R))):w<0&&(M&&N&&n.allowThresholdMove&&n.currentTranslate<(s.centeredSlides?r.maxTranslate()+r.slidesSizesGrid[r.slidesSizesGrid.length-1]+r.params.spaceBetween+(s.slidesPerView!=="auto"&&r.slides.length-s.slidesPerView>=2?r.slidesSizesGrid[r.slidesSizesGrid.length-1]+r.params.spaceBetween:0):r.maxTranslate())&&r.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:r.slides.length-(s.slidesPerView==="auto"?r.slidesPerViewDynamic():Math.ceil(parseFloat(s.slidesPerView,10)))}),n.currentTranslate<r.maxTranslate()&&(B=!1,s.resistance&&(n.currentTranslate=r.maxTranslate()+1-(r.maxTranslate()-n.startTranslate-w)**R))),B&&(d.preventedByNestedSwiper=!0),!r.allowSlideNext&&r.swipeDirection==="next"&&n.currentTranslate<n.startTranslate&&(n.currentTranslate=n.startTranslate),!r.allowSlidePrev&&r.swipeDirection==="prev"&&n.currentTranslate>n.startTranslate&&(n.currentTranslate=n.startTranslate),!r.allowSlidePrev&&!r.allowSlideNext&&(n.currentTranslate=n.startTranslate),s.threshold>0)if(Math.abs(w)>s.threshold||n.allowThresholdMove){if(!n.allowThresholdMove){n.allowThresholdMove=!0,i.startX=i.currentX,i.startY=i.currentY,n.currentTranslate=n.startTranslate,i.diff=r.isHorizontal()?i.currentX-i.startX:i.currentY-i.startY;return}}else{n.currentTranslate=n.startTranslate;return}!s.followFinger||s.cssMode||((s.freeMode&&s.freeMode.enabled&&r.freeMode||s.watchSlidesProgress)&&(r.updateActiveIndex(),r.updateSlidesClasses()),s.freeMode&&s.freeMode.enabled&&r.freeMode&&r.freeMode.onTouchMove(),r.updateProgress(n.currentTranslate),r.setTranslate(n.currentTranslate))}function PS(e){const t=this;if(t.destroyed)return;const r=t.touchEventsData;let n=e;n.originalEvent&&(n=n.originalEvent);let s;if(n.type==="touchend"||n.type==="touchcancel"){if(s=[...n.changedTouches].find(C=>C.identifier===r.touchId),!s||s.identifier!==r.touchId)return}else{if(r.touchId!==null||n.pointerId!==r.pointerId)return;s=n}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(n.type)&&!(["pointercancel","contextmenu"].includes(n.type)&&(t.browser.isSafari||t.browser.isWebView)))return;r.pointerId=null,r.touchId=null;const{params:a,touches:u,rtlTranslate:d,slidesGrid:f,enabled:g}=t;if(!g||!a.simulateTouch&&n.pointerType==="mouse")return;if(r.allowTouchCallbacks&&t.emit("touchEnd",n),r.allowTouchCallbacks=!1,!r.isTouched){r.isMoved&&a.grabCursor&&t.setGrabCursor(!1),r.isMoved=!1,r.startMoving=!1;return}a.grabCursor&&r.isMoved&&r.isTouched&&(t.allowSlideNext===!0||t.allowSlidePrev===!0)&&t.setGrabCursor(!1);const b=Jf(),x=b-r.touchStartTime;if(t.allowClick){const C=n.path||n.composedPath&&n.composedPath();t.updateClickedSlide(C&&C[0]||n.target,C),t.emit("tap click",n),x<300&&b-r.lastClickTime<300&&t.emit("doubleTap doubleClick",n)}if(r.lastClickTime=Jf(),x6(()=>{t.destroyed||(t.allowClick=!0)}),!r.isTouched||!r.isMoved||!t.swipeDirection||u.diff===0&&!r.loopSwapReset||r.currentTranslate===r.startTranslate&&!r.loopSwapReset){r.isTouched=!1,r.isMoved=!1,r.startMoving=!1;return}r.isTouched=!1,r.isMoved=!1,r.startMoving=!1;let v;if(a.followFinger?v=d?t.translate:-t.translate:v=-r.currentTranslate,a.cssMode)return;if(a.freeMode&&a.freeMode.enabled){t.freeMode.onTouchEnd({currentPos:v});return}const w=v>=-t.maxTranslate()&&!t.params.loop;let T=0,_=t.slidesSizesGrid[0];for(let C=0;C<f.length;C+=C<a.slidesPerGroupSkip?1:a.slidesPerGroup){const E=C<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;typeof f[C+E]<"u"?(w||v>=f[C]&&v<f[C+E])&&(T=C,_=f[C+E]-f[C]):(w||v>=f[C])&&(T=C,_=f[f.length-1]-f[f.length-2])}let M=null,N=null;a.rewind&&(t.isBeginning?N=a.virtual&&a.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(M=0));const B=(v-f[T])/_,R=T<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;if(x>a.longSwipesMs){if(!a.longSwipes){t.slideTo(t.activeIndex);return}t.swipeDirection==="next"&&(B>=a.longSwipesRatio?t.slideTo(a.rewind&&t.isEnd?M:T+R):t.slideTo(T)),t.swipeDirection==="prev"&&(B>1-a.longSwipesRatio?t.slideTo(T+R):N!==null&&B<0&&Math.abs(B)>a.longSwipesRatio?t.slideTo(N):t.slideTo(T))}else{if(!a.shortSwipes){t.slideTo(t.activeIndex);return}t.navigation&&(n.target===t.navigation.nextEl||n.target===t.navigation.prevEl)?n.target===t.navigation.nextEl?t.slideTo(T+R):t.slideTo(T):(t.swipeDirection==="next"&&t.slideTo(M!==null?M:T+R),t.swipeDirection==="prev"&&t.slideTo(N!==null?N:T))}}function gb(){const e=this,{params:t,el:r}=e;if(r&&r.offsetWidth===0)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:n,allowSlidePrev:s,snapGrid:i}=e,a=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const u=a&&t.loop;if((t.slidesPerView==="auto"||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides&&!u){const d=a?e.virtual.slides:e.slides;e.slideTo(d.length-1,0,!1,!0)}else e.params.loop&&!a?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0);e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(e.autoplay.resizeTimeout),e.autoplay.resizeTimeout=setTimeout(()=>{e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.resume()},500)),e.allowSlidePrev=s,e.allowSlideNext=n,e.params.watchOverflow&&i!==e.snapGrid&&e.checkOverflow()}function jS(e){const t=this;t.destroyed||t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function QS(){const e=this;if(e.destroyed)return;const{wrapperEl:t,rtlTranslate:r,enabled:n}=e;if(!n)return;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,e.translate===0&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();let s;const i=e.maxTranslate()-e.minTranslate();i===0?s=0:s=(e.translate-e.minTranslate())/i,s!==e.progress&&e.updateProgress(r?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function FS(e){const t=this;t.destroyed||(Nf(t,e.target),!(t.params.cssMode||t.params.slidesPerView!=="auto"&&!t.params.autoHeight)&&t.update())}function OS(){const e=this;e.destroyed||e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}const S6=(e,t)=>{const r=Pc(),{params:n,el:s,wrapperEl:i,device:a}=e,u=!!n.nested,d=t==="on"?"addEventListener":"removeEventListener",f=t;!s||typeof s=="string"||(r[d]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:u}),s[d]("touchstart",e.onTouchStart,{passive:!1}),s[d]("pointerdown",e.onTouchStart,{passive:!1}),r[d]("touchmove",e.onTouchMove,{passive:!1,capture:u}),r[d]("pointermove",e.onTouchMove,{passive:!1,capture:u}),r[d]("touchend",e.onTouchEnd,{passive:!0}),r[d]("pointerup",e.onTouchEnd,{passive:!0}),r[d]("pointercancel",e.onTouchEnd,{passive:!0}),r[d]("touchcancel",e.onTouchEnd,{passive:!0}),r[d]("pointerout",e.onTouchEnd,{passive:!0}),r[d]("pointerleave",e.onTouchEnd,{passive:!0}),r[d]("contextmenu",e.onTouchEnd,{passive:!0}),(n.preventClicks||n.preventClicksPropagation)&&s[d]("click",e.onClick,!0),n.cssMode&&i[d]("scroll",e.onScroll),n.updateOnWindowResize?e[f](a.ios||a.android?"resize orientationchange observerUpdate":"resize observerUpdate",gb,!0):e[f]("observerUpdate",gb,!0),s[d]("load",e.onLoad,{capture:!0}))};function $S(){const e=this,{params:t}=e;e.onTouchStart=DS.bind(e),e.onTouchMove=BS.bind(e),e.onTouchEnd=PS.bind(e),e.onDocumentTouchStart=OS.bind(e),t.cssMode&&(e.onScroll=QS.bind(e)),e.onClick=jS.bind(e),e.onLoad=FS.bind(e),S6(e,"on")}function HS(){S6(this,"off")}var US={attachEvents:$S,detachEvents:HS};const bb=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;function GS(){const e=this,{realIndex:t,initialized:r,params:n,el:s}=e,i=n.breakpoints;if(!i||i&&Object.keys(i).length===0)return;const a=Pc(),u=n.breakpointsBase==="window"||!n.breakpointsBase?n.breakpointsBase:"container",d=["window","container"].includes(n.breakpointsBase)||!n.breakpointsBase?e.el:a.querySelector(n.breakpointsBase),f=e.getBreakpoint(i,u,d);if(!f||e.currentBreakpoint===f)return;const b=(f in i?i[f]:void 0)||e.originalParams,x=bb(e,n),v=bb(e,b),w=e.params.grabCursor,T=b.grabCursor,_=n.enabled;x&&!v?(s.classList.remove(`${n.containerModifierClass}grid`,`${n.containerModifierClass}grid-column`),e.emitContainerClasses()):!x&&v&&(s.classList.add(`${n.containerModifierClass}grid`),(b.grid.fill&&b.grid.fill==="column"||!b.grid.fill&&n.grid.fill==="column")&&s.classList.add(`${n.containerModifierClass}grid-column`),e.emitContainerClasses()),w&&!T?e.unsetGrabCursor():!w&&T&&e.setGrabCursor(),["navigation","pagination","scrollbar"].forEach(E=>{if(typeof b[E]>"u")return;const D=n[E]&&n[E].enabled,H=b[E]&&b[E].enabled;D&&!H&&e[E].disable(),!D&&H&&e[E].enable()});const M=b.direction&&b.direction!==n.direction,N=n.loop&&(b.slidesPerView!==n.slidesPerView||M),B=n.loop;M&&r&&e.changeDirection(),So(e.params,b);const R=e.params.enabled,C=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),_&&!R?e.disable():!_&&R&&e.enable(),e.currentBreakpoint=f,e.emit("_beforeBreakpoint",b),r&&(N?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!B&&C?(e.loopCreate(t),e.updateSlides()):B&&!C&&e.loopDestroy()),e.emit("breakpoint",b)}function zS(e,t="window",r){if(!e||t==="container"&&!r)return;let n=!1;const s=Wi(),i=t==="window"?s.innerHeight:r.clientHeight,a=Object.keys(e).map(u=>{if(typeof u=="string"&&u.indexOf("@")===0){const d=parseFloat(u.substr(1));return{value:i*d,point:u}}return{value:u,point:u}});a.sort((u,d)=>parseInt(u.value,10)-parseInt(d.value,10));for(let u=0;u<a.length;u+=1){const{point:d,value:f}=a[u];t==="window"?s.matchMedia(`(min-width: ${f}px)`).matches&&(n=d):f<=r.clientWidth&&(n=d)}return n||"max"}var WS={setBreakpoint:GS,getBreakpoint:zS};function VS(e,t){const r=[];return e.forEach(n=>{typeof n=="object"?Object.keys(n).forEach(s=>{n[s]&&r.push(t+s)}):typeof n=="string"&&r.push(t+n)}),r}function qS(){const e=this,{classNames:t,params:r,rtl:n,el:s,device:i}=e,a=VS(["initialized",r.direction,{"free-mode":e.params.freeMode&&r.freeMode.enabled},{autoheight:r.autoHeight},{rtl:n},{grid:r.grid&&r.grid.rows>1},{"grid-column":r.grid&&r.grid.rows>1&&r.grid.fill==="column"},{android:i.android},{ios:i.ios},{"css-mode":r.cssMode},{centered:r.cssMode&&r.centeredSlides},{"watch-progress":r.watchSlidesProgress}],r.containerModifierClass);t.push(...a),s.classList.add(...t),e.emitContainerClasses()}function YS(){const e=this,{el:t,classNames:r}=e;!t||typeof t=="string"||(t.classList.remove(...r),e.emitContainerClasses())}var KS={addClasses:qS,removeClasses:YS};function ZS(){const e=this,{isLocked:t,params:r}=e,{slidesOffsetBefore:n}=r;if(n){const s=e.slides.length-1,i=e.slidesGrid[s]+e.slidesSizesGrid[s]+n*2;e.isLocked=e.size>i}else e.isLocked=e.snapGrid.length===1;r.allowSlideNext===!0&&(e.allowSlideNext=!e.isLocked),r.allowSlidePrev===!0&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}var XS={checkOverflow:ZS},y1={init:!0,direction:"horizontal",oneWayMovement:!1,swiperElementNodeName:"SWIPER-CONTAINER",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,snapToSlideEdge:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopAddBlankSlides:!0,loopAdditionalSlides:0,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function JS(e,t){return function(n={}){const s=Object.keys(n)[0],i=n[s];if(typeof i!="object"||i===null){So(t,n);return}if(e[s]===!0&&(e[s]={enabled:!0}),s==="navigation"&&e[s]&&e[s].enabled&&!e[s].prevEl&&!e[s].nextEl&&(e[s].auto=!0),["pagination","scrollbar"].indexOf(s)>=0&&e[s]&&e[s].enabled&&!e[s].el&&(e[s].auto=!0),!(s in e&&"enabled"in i)){So(t,n);return}typeof e[s]=="object"&&!("enabled"in e[s])&&(e[s].enabled=!0),e[s]||(e[s]={enabled:!1}),So(t,n)}}const Um={eventsEmitter:KT,update:aS,translate:fS,transition:bS,slide:CS,loop:ES,grabCursor:RS,events:US,breakpoints:WS,checkOverflow:XS,classes:KS},Gm={};let E2=class Xa{constructor(...t){let r,n;t.length===1&&t[0].constructor&&Object.prototype.toString.call(t[0]).slice(8,-1)==="Object"?n=t[0]:[r,n]=t,n||(n={}),n=So({},n),r&&!n.el&&(n.el=r);const s=Pc();if(n.el&&typeof n.el=="string"&&s.querySelectorAll(n.el).length>1){const d=[];return s.querySelectorAll(n.el).forEach(f=>{const g=So({},n,{el:f});d.push(new Xa(g))}),d}const i=this;i.__swiper__=!0,i.support=v6(),i.device=w6({userAgent:n.userAgent}),i.browser=A6(),i.eventsListeners={},i.eventsAnyListeners=[],i.modules=[...i.__modules__],n.modules&&Array.isArray(n.modules)&&n.modules.forEach(d=>{typeof d=="function"&&i.modules.indexOf(d)<0&&i.modules.push(d)});const a={};i.modules.forEach(d=>{d({params:n,swiper:i,extendParams:JS(n,a),on:i.on.bind(i),once:i.once.bind(i),off:i.off.bind(i),emit:i.emit.bind(i)})});const u=So({},y1,a);return i.params=So({},u,Gm,n),i.originalParams=So({},i.params),i.passedParams=So({},n),i.params&&i.params.on&&Object.keys(i.params.on).forEach(d=>{i.on(d,i.params.on[d])}),i.params&&i.params.onAny&&i.onAny(i.params.onAny),Object.assign(i,{enabled:i.params.enabled,el:r,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal(){return i.params.direction==="horizontal"},isVertical(){return i.params.direction==="vertical"},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:i.params.allowSlideNext,allowSlidePrev:i.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:i.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:i.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),i.emit("_swiper"),i.params.init&&i.init(),i}getDirectionLabel(t){return this.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}getSlideIndex(t){const{slidesEl:r,params:n}=this,s=Ja(r,`.${n.slideClass}, swiper-slide`),i=db(s[0]);return db(t)-i}getSlideIndexByData(t){return this.getSlideIndex(this.slides.find(r=>r.getAttribute("data-swiper-slide-index")*1===t))}getSlideIndexWhenGrid(t){return this.grid&&this.params.grid&&this.params.grid.rows>1&&(this.params.grid.fill==="column"?t=Math.floor(t/this.params.grid.rows):this.params.grid.fill==="row"&&(t=t%Math.ceil(this.slides.length/this.params.grid.rows))),t}recalcSlides(){const t=this,{slidesEl:r,params:n}=t;t.slides=Ja(r,`.${n.slideClass}, swiper-slide`)}enable(){const t=this;t.enabled||(t.enabled=!0,t.params.grabCursor&&t.setGrabCursor(),t.emit("enable"))}disable(){const t=this;t.enabled&&(t.enabled=!1,t.params.grabCursor&&t.unsetGrabCursor(),t.emit("disable"))}setProgress(t,r){const n=this;t=Math.min(Math.max(t,0),1);const s=n.minTranslate(),a=(n.maxTranslate()-s)*t+s;n.translateTo(a,typeof r>"u"?0:r),n.updateActiveIndex(),n.updateSlidesClasses()}emitContainerClasses(){const t=this;if(!t.params._emitClasses||!t.el)return;const r=t.el.className.split(" ").filter(n=>n.indexOf("swiper")===0||n.indexOf(t.params.containerModifierClass)===0);t.emit("_containerClasses",r.join(" "))}getSlideClasses(t){const r=this;return r.destroyed?"":t.className.split(" ").filter(n=>n.indexOf("swiper-slide")===0||n.indexOf(r.params.slideClass)===0).join(" ")}emitSlidesClasses(){const t=this;if(!t.params._emitClasses||!t.el)return;const r=[];t.slides.forEach(n=>{const s=t.getSlideClasses(n);r.push({slideEl:n,classNames:s}),t.emit("_slideClass",n,s)}),t.emit("_slideClasses",r)}slidesPerViewDynamic(t="current",r=!1){const n=this,{params:s,slides:i,slidesGrid:a,slidesSizesGrid:u,size:d,activeIndex:f}=n;let g=1;if(typeof s.slidesPerView=="number")return s.slidesPerView;if(s.centeredSlides){let b=i[f]?Math.ceil(i[f].swiperSlideSize):0,x;for(let v=f+1;v<i.length;v+=1)i[v]&&!x&&(b+=Math.ceil(i[v].swiperSlideSize),g+=1,b>d&&(x=!0));for(let v=f-1;v>=0;v-=1)i[v]&&!x&&(b+=i[v].swiperSlideSize,g+=1,b>d&&(x=!0))}else if(t==="current")for(let b=f+1;b<i.length;b+=1)(r?a[b]+u[b]-a[f]<d:a[b]-a[f]<d)&&(g+=1);else for(let b=f-1;b>=0;b-=1)a[f]-a[b]<d&&(g+=1);return g}update(){const t=this;if(!t||t.destroyed)return;const{snapGrid:r,params:n}=t;n.breakpoints&&t.setBreakpoint(),[...t.el.querySelectorAll('[loading="lazy"]')].forEach(a=>{a.complete&&Nf(t,a)}),t.updateSize(),t.updateSlides(),t.updateProgress(),t.updateSlidesClasses();function s(){const a=t.rtlTranslate?t.translate*-1:t.translate,u=Math.min(Math.max(a,t.maxTranslate()),t.minTranslate());t.setTranslate(u),t.updateActiveIndex(),t.updateSlidesClasses()}let i;if(n.freeMode&&n.freeMode.enabled&&!n.cssMode)s(),n.autoHeight&&t.updateAutoHeight();else{if((n.slidesPerView==="auto"||n.slidesPerView>1)&&t.isEnd&&!n.centeredSlides){const a=t.virtual&&n.virtual.enabled?t.virtual.slides:t.slides;i=t.slideTo(a.length-1,0,!1,!0)}else i=t.slideTo(t.activeIndex,0,!1,!0);i||s()}n.watchOverflow&&r!==t.snapGrid&&t.checkOverflow(),t.emit("update")}changeDirection(t,r=!0){const n=this,s=n.params.direction;return t||(t=s==="horizontal"?"vertical":"horizontal"),t===s||t!=="horizontal"&&t!=="vertical"||(n.el.classList.remove(`${n.params.containerModifierClass}${s}`),n.el.classList.add(`${n.params.containerModifierClass}${t}`),n.emitContainerClasses(),n.params.direction=t,n.slides.forEach(i=>{t==="vertical"?i.style.width="":i.style.height=""}),n.emit("changeDirection"),r&&n.update()),n}changeLanguageDirection(t){const r=this;r.rtl&&t==="rtl"||!r.rtl&&t==="ltr"||(r.rtl=t==="rtl",r.rtlTranslate=r.params.direction==="horizontal"&&r.rtl,r.rtl?(r.el.classList.add(`${r.params.containerModifierClass}rtl`),r.el.dir="rtl"):(r.el.classList.remove(`${r.params.containerModifierClass}rtl`),r.el.dir="ltr"),r.update())}mount(t){const r=this;if(r.mounted)return!0;let n=t||r.params.el;if(typeof n=="string"&&(n=document.querySelector(n)),!n)return!1;n.swiper=r,n.parentNode&&n.parentNode.host&&n.parentNode.host.nodeName===r.params.swiperElementNodeName.toUpperCase()&&(r.isElement=!0);const s=()=>`.${(r.params.wrapperClass||"").trim().split(" ").join(".")}`;let a=n&&n.shadowRoot&&n.shadowRoot.querySelector?n.shadowRoot.querySelector(s()):Ja(n,s())[0];return!a&&r.params.createElements&&(a=b1("div",r.params.wrapperClass),n.append(a),Ja(n,`.${r.params.slideClass}`).forEach(u=>{a.append(u)})),Object.assign(r,{el:n,wrapperEl:a,slidesEl:r.isElement&&!n.parentNode.host.slideSlots?n.parentNode.host:a,hostEl:r.isElement?n.parentNode.host:n,mounted:!0,rtl:n.dir.toLowerCase()==="rtl"||Bl(n,"direction")==="rtl",rtlTranslate:r.params.direction==="horizontal"&&(n.dir.toLowerCase()==="rtl"||Bl(n,"direction")==="rtl"),wrongRTL:Bl(a,"display")==="-webkit-box"}),!0}init(t){const r=this;if(r.initialized||r.mount(t)===!1)return r;r.emit("beforeInit"),r.params.breakpoints&&r.setBreakpoint(),r.addClasses(),r.updateSize(),r.updateSlides(),r.params.watchOverflow&&r.checkOverflow(),r.params.grabCursor&&r.enabled&&r.setGrabCursor(),r.params.loop&&r.virtual&&r.params.virtual.enabled?r.slideTo(r.params.initialSlide+r.virtual.slidesBefore,0,r.params.runCallbacksOnInit,!1,!0):r.slideTo(r.params.initialSlide,0,r.params.runCallbacksOnInit,!1,!0),r.params.loop&&r.loopCreate(void 0,!0),r.attachEvents();const s=[...r.el.querySelectorAll('[loading="lazy"]')];return r.isElement&&s.push(...r.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach(i=>{i.complete?Nf(r,i):i.addEventListener("load",a=>{Nf(r,a.target)})}),x1(r),r.initialized=!0,x1(r),r.emit("init"),r.emit("afterInit"),r}destroy(t=!0,r=!0){const n=this,{params:s,el:i,wrapperEl:a,slides:u}=n;return typeof n.params>"u"||n.destroyed||(n.emit("beforeDestroy"),n.initialized=!1,n.detachEvents(),s.loop&&n.loopDestroy(),r&&(n.removeClasses(),i&&typeof i!="string"&&i.removeAttribute("style"),a&&a.removeAttribute("style"),u&&u.length&&u.forEach(d=>{d.classList.remove(s.slideVisibleClass,s.slideFullyVisibleClass,s.slideActiveClass,s.slideNextClass,s.slidePrevClass),d.removeAttribute("style"),d.removeAttribute("data-swiper-slide-index")})),n.emit("destroy"),Object.keys(n.eventsListeners).forEach(d=>{n.off(d)}),t!==!1&&(n.el&&typeof n.el!="string"&&(n.el.swiper=null),PT(n)),n.destroyed=!0),null}static extendDefaults(t){So(Gm,t)}static get extendedDefaults(){return Gm}static get defaults(){return y1}static installModule(t){Xa.prototype.__modules__||(Xa.prototype.__modules__=[]);const r=Xa.prototype.__modules__;typeof t=="function"&&r.indexOf(t)<0&&r.push(t)}static use(t){return Array.isArray(t)?(t.forEach(r=>Xa.installModule(r)),Xa):(Xa.installModule(t),Xa)}};Object.keys(Um).forEach(e=>{Object.keys(Um[e]).forEach(t=>{E2.prototype[t]=Um[e][t]})});E2.use([qT,YT]);const C6=["eventsPrefix","injectStyles","injectStylesUrls","modules","init","_direction","oneWayMovement","swiperElementNodeName","touchEventsTarget","initialSlide","_speed","cssMode","updateOnWindowResize","resizeObserver","nested","focusableElements","_enabled","_width","_height","preventInteractionOnTransition","userAgent","url","_edgeSwipeDetection","_edgeSwipeThreshold","_freeMode","_autoHeight","setWrapperSize","virtualTranslate","_effect","breakpoints","breakpointsBase","_spaceBetween","_slidesPerView","maxBackfaceHiddenSlides","_grid","_slidesPerGroup","_slidesPerGroupSkip","_slidesPerGroupAuto","_centeredSlides","_centeredSlidesBounds","_slidesOffsetBefore","_slidesOffsetAfter","normalizeSlideIndex","_centerInsufficientSlides","_snapToSlideEdge","_watchOverflow","roundLengths","touchRatio","touchAngle","simulateTouch","_shortSwipes","_longSwipes","longSwipesRatio","longSwipesMs","_followFinger","allowTouchMove","_threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","_resistance","_resistanceRatio","_watchSlidesProgress","_grabCursor","preventClicks","preventClicksPropagation","_slideToClickedSlide","_loop","loopAdditionalSlides","loopAddBlankSlides","loopPreventsSliding","_rewind","_allowSlidePrev","_allowSlideNext","_swipeHandler","_noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideClass","slideActiveClass","slideVisibleClass","slideFullyVisibleClass","slideNextClass","slidePrevClass","slideBlankClass","wrapperClass","lazyPreloaderClass","lazyPreloadPrevNext","runCallbacksOnInit","observer","observeParents","observeSlideChildren","a11y","_autoplay","_controller","coverflowEffect","cubeEffect","fadeEffect","flipEffect","creativeEffect","cardsEffect","hashNavigation","history","keyboard","mousewheel","_navigation","_pagination","parallax","_scrollbar","_thumbs","virtual","zoom","control"];function Ec(e){return typeof e=="object"&&e!==null&&e.constructor&&Object.prototype.toString.call(e).slice(8,-1)==="Object"&&!e.__swiper__}function Ru(e,t){const r=["__proto__","constructor","prototype"];Object.keys(t).filter(n=>r.indexOf(n)<0).forEach(n=>{typeof e[n]>"u"?e[n]=t[n]:Ec(t[n])&&Ec(e[n])&&Object.keys(t[n]).length>0?t[n].__swiper__?e[n]=t[n]:Ru(e[n],t[n]):e[n]=t[n]})}function _6(e={}){return e.navigation&&typeof e.navigation.nextEl>"u"&&typeof e.navigation.prevEl>"u"}function L6(e={}){return e.pagination&&typeof e.pagination.el>"u"}function k6(e={}){return e.scrollbar&&typeof e.scrollbar.el>"u"}function E6(e=""){const t=e.split(" ").map(n=>n.trim()).filter(n=>!!n),r=[];return t.forEach(n=>{r.indexOf(n)<0&&r.push(n)}),r.join(" ")}function eC(e=""){return e?e.includes("swiper-wrapper")?e:`swiper-wrapper ${e}`:"swiper-wrapper"}function tC({swiper:e,slides:t,passedParams:r,changedParams:n,nextEl:s,prevEl:i,scrollbarEl:a,paginationEl:u}){const d=n.filter(H=>H!=="children"&&H!=="direction"&&H!=="wrapperClass"),{params:f,pagination:g,navigation:b,scrollbar:x,virtual:v,thumbs:w}=e;let T,_,M,N,B,R,C,E;n.includes("thumbs")&&r.thumbs&&r.thumbs.swiper&&!r.thumbs.swiper.destroyed&&f.thumbs&&(!f.thumbs.swiper||f.thumbs.swiper.destroyed)&&(T=!0),n.includes("controller")&&r.controller&&r.controller.control&&f.controller&&!f.controller.control&&(_=!0),n.includes("pagination")&&r.pagination&&(r.pagination.el||u)&&(f.pagination||f.pagination===!1)&&g&&!g.el&&(M=!0),n.includes("scrollbar")&&r.scrollbar&&(r.scrollbar.el||a)&&(f.scrollbar||f.scrollbar===!1)&&x&&!x.el&&(N=!0),n.includes("navigation")&&r.navigation&&(r.navigation.prevEl||i)&&(r.navigation.nextEl||s)&&(f.navigation||f.navigation===!1)&&b&&!b.prevEl&&!b.nextEl&&(B=!0);const D=H=>{e[H]&&(e[H].destroy(),H==="navigation"?(e.isElement&&(e[H].prevEl.remove(),e[H].nextEl.remove()),f[H].prevEl=void 0,f[H].nextEl=void 0,e[H].prevEl=void 0,e[H].nextEl=void 0):(e.isElement&&e[H].el.remove(),f[H].el=void 0,e[H].el=void 0))};n.includes("loop")&&e.isElement&&(f.loop&&!r.loop?R=!0:!f.loop&&r.loop?C=!0:E=!0),d.forEach(H=>{if(Ec(f[H])&&Ec(r[H]))Object.assign(f[H],r[H]),(H==="navigation"||H==="pagination"||H==="scrollbar")&&"enabled"in r[H]&&!r[H].enabled&&D(H);else{const U=r[H];(U===!0||U===!1)&&(H==="navigation"||H==="pagination"||H==="scrollbar")?U===!1&&D(H):f[H]=r[H]}}),d.includes("controller")&&!_&&e.controller&&e.controller.control&&f.controller&&f.controller.control&&(e.controller.control=f.controller.control),n.includes("children")&&t&&v&&f.virtual.enabled?(v.slides=t,v.update(!0)):n.includes("virtual")&&v&&f.virtual.enabled&&(t&&(v.slides=t),v.update(!0)),n.includes("children")&&t&&f.loop&&(E=!0),T&&w.init()&&w.update(!0),_&&(e.controller.control=f.controller.control),M&&(e.isElement&&(!u||typeof u=="string")&&(u=document.createElement("div"),u.classList.add("swiper-pagination"),u.part.add("pagination"),e.el.appendChild(u)),u&&(f.pagination.el=u),g.init(),g.render(),g.update()),N&&(e.isElement&&(!a||typeof a=="string")&&(a=document.createElement("div"),a.classList.add("swiper-scrollbar"),a.part.add("scrollbar"),e.el.appendChild(a)),a&&(f.scrollbar.el=a),x.init(),x.updateSize(),x.setTranslate()),B&&(e.isElement&&((!s||typeof s=="string")&&(s=document.createElement("div"),s.classList.add("swiper-button-next"),fb(s,e.navigation.arrowSvg),s.part.add("button-next"),e.el.appendChild(s)),(!i||typeof i=="string")&&(i=document.createElement("div"),i.classList.add("swiper-button-prev"),fb(i,e.navigation.arrowSvg),i.part.add("button-prev"),e.el.appendChild(i))),s&&(f.navigation.nextEl=s),i&&(f.navigation.prevEl=i),b.init(),b.update()),n.includes("allowSlideNext")&&(e.allowSlideNext=r.allowSlideNext),n.includes("allowSlidePrev")&&(e.allowSlidePrev=r.allowSlidePrev),n.includes("direction")&&e.changeDirection(r.direction,!1),(R||E)&&e.loopDestroy(),(C||E)&&e.loopCreate(),e.update()}function rC(e={},t=!0){const r={on:{}},n={},s={};Ru(r,y1),r._emitClasses=!0,r.init=!1;const i={},a=C6.map(d=>d.replace(/_/,"")),u=Object.assign({},e);return Object.keys(u).forEach(d=>{typeof e[d]>"u"||(a.indexOf(d)>=0?Ec(e[d])?(r[d]={},s[d]={},Ru(r[d],e[d]),Ru(s[d],e[d])):(r[d]=e[d],s[d]=e[d]):d.search(/on[A-Z]/)===0&&typeof e[d]=="function"?t?n[`${d[2].toLowerCase()}${d.substr(3)}`]=e[d]:r.on[`${d[2].toLowerCase()}${d.substr(3)}`]=e[d]:i[d]=e[d])}),["navigation","pagination","scrollbar"].forEach(d=>{r[d]===!0&&(r[d]={}),r[d]===!1&&delete r[d]}),{params:r,passedParams:s,rest:i,events:n}}function nC({el:e,nextEl:t,prevEl:r,paginationEl:n,scrollbarEl:s,swiper:i},a){_6(a)&&t&&r&&(i.params.navigation.nextEl=t,i.originalParams.navigation.nextEl=t,i.params.navigation.prevEl=r,i.originalParams.navigation.prevEl=r),L6(a)&&n&&(i.params.pagination.el=n,i.originalParams.pagination.el=n),k6(a)&&s&&(i.params.scrollbar.el=s,i.originalParams.scrollbar.el=s),i.init(e)}function sC(e,t,r,n,s){const i=[];if(!t)return i;const a=d=>{i.indexOf(d)<0&&i.push(d)};if(r&&n){const d=n.map(s),f=r.map(s);d.join("")!==f.join("")&&a("children"),n.length!==r.length&&a("children")}return C6.filter(d=>d[0]==="_").map(d=>d.replace(/_/,"")).forEach(d=>{if(d in e&&d in t)if(Ec(e[d])&&Ec(t[d])){const f=Object.keys(e[d]),g=Object.keys(t[d]);f.length!==g.length?a(d):(f.forEach(b=>{e[d][b]!==t[d][b]&&a(d)}),g.forEach(b=>{e[d][b]!==t[d][b]&&a(d)}))}else e[d]!==t[d]&&a(d)}),i}const iC=e=>{!e||e.destroyed||!e.params.virtual||e.params.virtual&&!e.params.virtual.enabled||(e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.emit("_virtualUpdated"),e.parallax&&e.params.parallax&&e.params.parallax.enabled&&e.parallax.setTranslate())};function tp(){return tp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},tp.apply(this,arguments)}function I6(e){return e.type&&e.type.displayName&&e.type.displayName.includes("SwiperSlide")}function M6(e){const t=[];return j.Children.toArray(e).forEach(r=>{I6(r)?t.push(r):r.props&&r.props.children&&M6(r.props.children).forEach(n=>t.push(n))}),t}function oC(e){const t=[],r={"container-start":[],"container-end":[],"wrapper-start":[],"wrapper-end":[]};return j.Children.toArray(e).forEach(n=>{if(I6(n))t.push(n);else if(n.props&&n.props.slot&&r[n.props.slot])r[n.props.slot].push(n);else if(n.props&&n.props.children){const s=M6(n.props.children);s.length>0?s.forEach(i=>t.push(i)):r["container-end"].push(n)}else r["container-end"].push(n)}),{slides:t,slots:r}}function aC(e,t,r){if(!r)return null;const n=g=>{let b=g;return g<0?b=t.length+g:b>=t.length&&(b=b-t.length),b},s=e.isHorizontal()?{[e.rtlTranslate?"right":"left"]:`${r.offset}px`}:{top:`${r.offset}px`},{from:i,to:a}=r,u=e.params.loop?-t.length:0,d=e.params.loop?t.length*2:t.length,f=[];for(let g=u;g<d;g+=1)g>=i&&g<=a&&f.push(t[n(g)]);return f.map((g,b)=>j.cloneElement(g,{swiper:e,style:s,key:g.props.virtualIndex||g.key||`slide-${b}`}))}function Sd(e,t){return typeof window>"u"?A.useEffect(e,t):A.useLayoutEffect(e,t)}const xb=A.createContext(null),lC=A.createContext(null),oh=A.forwardRef(({className:e,tag:t="div",wrapperTag:r="div",children:n,onSwiper:s,...i}={},a)=>{let u=!1;const[d,f]=A.useState("swiper"),[g,b]=A.useState(null),[x,v]=A.useState(!1),w=A.useRef(!1),T=A.useRef(null),_=A.useRef(null),M=A.useRef(null),N=A.useRef(null),B=A.useRef(null),R=A.useRef(null),C=A.useRef(null),E=A.useRef(null),{params:D,passedParams:H,rest:U,events:G}=rC(i),{slides:W,slots:J}=oC(n),ee=()=>{v(!x)};Object.assign(D.on,{_containerClasses(oe,ae){f(ae)}});const ce=()=>{Object.assign(D.on,G),u=!0;const oe={...D};if(delete oe.wrapperClass,_.current=new E2(oe),_.current.virtual&&_.current.params.virtual.enabled){_.current.virtual.slides=W;const ae={cache:!1,slides:W,renderExternal:b,renderExternalUpdate:!1};Ru(_.current.params.virtual,ae),Ru(_.current.originalParams.virtual,ae)}};T.current||ce(),_.current&&_.current.on("_beforeBreakpoint",ee);const Te=()=>{u||!G||!_.current||Object.keys(G).forEach(oe=>{_.current.on(oe,G[oe])})},Me=()=>{!G||!_.current||Object.keys(G).forEach(oe=>{_.current.off(oe,G[oe])})};A.useEffect(()=>()=>{_.current&&_.current.off("_beforeBreakpoint",ee)}),A.useEffect(()=>{!w.current&&_.current&&(_.current.emitSlidesClasses(),w.current=!0)}),Sd(()=>{if(a&&(a.current=T.current),!!T.current)return _.current.destroyed&&ce(),nC({el:T.current,nextEl:B.current,prevEl:R.current,paginationEl:C.current,scrollbarEl:E.current,swiper:_.current},D),s&&!_.current.destroyed&&s(_.current),()=>{_.current&&!_.current.destroyed&&_.current.destroy(!0,!1)}},[]),Sd(()=>{Te();const oe=sC(H,M.current,W,N.current,ae=>ae.key);return M.current=H,N.current=W,oe.length&&_.current&&!_.current.destroyed&&tC({swiper:_.current,slides:W,passedParams:H,changedParams:oe,nextEl:B.current,prevEl:R.current,scrollbarEl:E.current,paginationEl:C.current}),()=>{Me()}}),Sd(()=>{iC(_.current)},[g]);function Se(){return D.virtual?aC(_.current,W,g):W.map((oe,ae)=>j.cloneElement(oe,{swiper:_.current,swiperSlideIndex:ae}))}return j.createElement(t,tp({ref:T,className:E6(`${d}${e?` ${e}`:""}`)},U),j.createElement(lC.Provider,{value:_.current},J["container-start"],j.createElement(r,{className:eC(D.wrapperClass)},J["wrapper-start"],Se(),J["wrapper-end"]),_6(D)&&j.createElement(j.Fragment,null,j.createElement("div",{ref:R,className:"swiper-button-prev"}),j.createElement("div",{ref:B,className:"swiper-button-next"})),k6(D)&&j.createElement("div",{ref:E,className:"swiper-scrollbar"}),L6(D)&&j.createElement("div",{ref:C,className:"swiper-pagination"}),J["container-end"]))});oh.displayName="Swiper";const Ic=A.forwardRef(({tag:e="div",children:t,className:r="",swiper:n,zoom:s,lazy:i,virtualIndex:a,swiperSlideIndex:u,...d}={},f)=>{const g=A.useRef(null),[b,x]=A.useState("swiper-slide"),[v,w]=A.useState(!1);function T(B,R,C){R===g.current&&x(C)}Sd(()=>{if(typeof u<"u"&&(g.current.swiperSlideIndex=u),f&&(f.current=g.current),!(!g.current||!n)){if(n.destroyed){b!=="swiper-slide"&&x("swiper-slide");return}return n.on("_slideClass",T),()=>{n&&n.off("_slideClass",T)}}}),Sd(()=>{n&&g.current&&!n.destroyed&&x(n.getSlideClasses(g.current))},[n]);const _={isActive:b.indexOf("swiper-slide-active")>=0,isVisible:b.indexOf("swiper-slide-visible")>=0,isFullyVisible:b.indexOf("swiper-slide-fully-visible")>=0,isPrev:b.indexOf("swiper-slide-prev")>=0,isNext:b.indexOf("swiper-slide-next")>=0},M=()=>typeof t=="function"?t(_):t,N=()=>{w(!0)};return j.createElement(e,tp({ref:g,className:E6(`${b}${r?` ${r}`:""}`),"data-swiper-slide-index":a,onLoad:N},d),s&&j.createElement(xb.Provider,{value:_},j.createElement("div",{className:"swiper-zoom-container","data-swiper-zoom":typeof s=="number"?s:void 0},M(),i&&!v&&j.createElement("div",{className:"swiper-lazy-preloader",ref:B=>{B&&(B.lazyPreloaderManaged=!0)}}))),!s&&j.createElement(xb.Provider,{value:_},M(),i&&!v&&j.createElement("div",{className:"swiper-lazy-preloader",ref:B=>{B&&(B.lazyPreloaderManaged=!0)}})))});Ic.displayName="SwiperSlide";const ai=[];for(let e=0;e<256;++e)ai.push((e+256).toString(16).slice(1));function cC(e,t=0){return(ai[e[t+0]]+ai[e[t+1]]+ai[e[t+2]]+ai[e[t+3]]+"-"+ai[e[t+4]]+ai[e[t+5]]+"-"+ai[e[t+6]]+ai[e[t+7]]+"-"+ai[e[t+8]]+ai[e[t+9]]+"-"+ai[e[t+10]]+ai[e[t+11]]+ai[e[t+12]]+ai[e[t+13]]+ai[e[t+14]]+ai[e[t+15]]).toLowerCase()}let zm;const uC=new Uint8Array(16);function dC(){if(!zm){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");zm=crypto.getRandomValues.bind(crypto)}return zm(uC)}const hC=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),yb={randomUUID:hC};function fC(e,t,r){e=e||{};const n=e.random??e.rng?.()??dC();if(n.length<16)throw new Error("Random bytes length must be >= 16");return n[6]=n[6]&15|64,n[8]=n[8]&63|128,cC(n)}function pC(e,t,r){return yb.randomUUID&&!e?yb.randomUUID():fC(e)}const mC={},vb=e=>{let t;const r=new Set,n=(g,b)=>{const x=typeof g=="function"?g(t):g;if(!Object.is(x,t)){const v=t;t=b??(typeof x!="object"||x===null)?x:Object.assign({},t,x),r.forEach(w=>w(t,v))}},s=()=>t,d={setState:n,getState:s,getInitialState:()=>f,subscribe:g=>(r.add(g),()=>r.delete(g)),destroy:()=>{(mC?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}},f=t=e(n,s,d);return d},gC=e=>e?vb(e):vb;var Wm={exports:{}},Vm={},qm={exports:{}},Ym={};var wb;function bC(){if(wb)return Ym;wb=1;var e=Dp();function t(b,x){return b===x&&(b!==0||1/b===1/x)||b!==b&&x!==x}var r=typeof Object.is=="function"?Object.is:t,n=e.useState,s=e.useEffect,i=e.useLayoutEffect,a=e.useDebugValue;function u(b,x){var v=x(),w=n({inst:{value:v,getSnapshot:x}}),T=w[0].inst,_=w[1];return i(function(){T.value=v,T.getSnapshot=x,d(T)&&_({inst:T})},[b,v,x]),s(function(){return d(T)&&_({inst:T}),b(function(){d(T)&&_({inst:T})})},[b]),a(v),v}function d(b){var x=b.getSnapshot;b=b.value;try{var v=x();return!r(b,v)}catch{return!0}}function f(b,x){return x()}var g=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return Ym.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:g,Ym}var Ab;function xC(){return Ab||(Ab=1,qm.exports=bC()),qm.exports}var Tb;function yC(){if(Tb)return Vm;Tb=1;var e=Dp(),t=xC();function r(f,g){return f===g&&(f!==0||1/f===1/g)||f!==f&&g!==g}var n=typeof Object.is=="function"?Object.is:r,s=t.useSyncExternalStore,i=e.useRef,a=e.useEffect,u=e.useMemo,d=e.useDebugValue;return Vm.useSyncExternalStoreWithSelector=function(f,g,b,x,v){var w=i(null);if(w.current===null){var T={hasValue:!1,value:null};w.current=T}else T=w.current;w=u(function(){function M(E){if(!N){if(N=!0,B=E,E=x(E),v!==void 0&&T.hasValue){var D=T.value;if(v(D,E))return R=D}return R=E}if(D=R,n(B,E))return D;var H=x(E);return v!==void 0&&v(D,H)?(B=E,D):(B=E,R=H)}var N=!1,B,R,C=b===void 0?null:b;return[function(){return M(g())},C===null?void 0:function(){return M(C())}]},[g,b,x,v]);var _=s(f,w[0],w[1]);return a(function(){T.hasValue=!0,T.value=_},[_]),d(_),_},Vm}var Sb;function vC(){return Sb||(Sb=1,Wm.exports=yC()),Wm.exports}var wC=vC();const AC=g6(wC),R6={},{useDebugValue:TC}=j,{useSyncExternalStoreWithSelector:SC}=AC;let Cb=!1;const CC=e=>e;function _C(e,t=CC,r){(R6?"production":void 0)!=="production"&&r&&!Cb&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),Cb=!0);const n=SC(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,r);return TC(n),n}const _b=e=>{(R6?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?gC(e):e,r=(n,s)=>_C(t,n,s);return Object.assign(r,t),r},N6=e=>e?_b(e):_b,rp="auth:unauthorized";let Lu=null;class D6 extends Error{constructor(t,r,n){super(t),this.status=r,this.code=n,this.name="TerminalApiError"}status;code}const Xu=8e3,ja=1e4,Nu=45e3;let LC=0;const Df=[];let Km=!1;function _l(e,t={}){if(typeof window>"u")return;const r=JSON.stringify({level:e==="error"||e==="timeout_or_abort"||e==="response_body_timeout"||e==="response_body_parse_error"?"warn":"info",message:`DIFF_API ${e}`,data:{seq:++LC,ts:Date.now(),...t}});Df.push(r),kC()}async function kC(){if(!Km){Km=!0;try{for(;Df.length>0;){const e=Df[0];try{await fetch("/api/client-log",{method:"POST",headers:{"Content-Type":"application/json"},body:e,keepalive:!0}),Df.shift()}catch{break}}}finally{Km=!1}}}function EC(e,t,r){const n=new AbortController;let s=setTimeout(()=>{n.abort(new DOMException(r,"TimeoutError"))},t);const i=()=>n.abort(e?.reason);return e&&(e.aborted?i():e.addEventListener("abort",i,{once:!0})),{signal:n.signal,cleanup:()=>{s&&(clearTimeout(s),s=null),e?.removeEventListener("abort",i)}}}async function Xs(e,t,r,n){const{signal:s,cleanup:i}=EC(t?.signal??void 0,r,n);try{return await fetch(e,{...t,signal:s})}catch(a){throw a instanceof DOMException&&a.name==="TimeoutError"?new Error(n):a}finally{i()}}async function IC(e,t,r){let n=null;const s=new Promise((i,a)=>{n=setTimeout(()=>a(new Error(r)),t)});try{return await Promise.race([e.text(),s])}finally{n&&clearTimeout(n)}}if(typeof window<"u"&&!window.__termdockFetchPatched){window.__termdockFetchPatched=!0;const e=window.fetch.bind(window);window.fetch=async(...t)=>{const r=await e(...t);if(r.status===401){Lu=null;try{window.dispatchEvent(new CustomEvent(rp))}catch{}}return r}}async function un(){if(Lu)return Lu;const e=await fetch("/api/csrf-token");if(!e.ok)throw new Error("Failed to get CSRF token");return Lu=(await e.json()).csrfToken,Lu}function B6(){Lu=null}const MC=2e4,Lb=8e3,RC=1500,Io=new Map,NC=24,DC=40,BC=40;function PC(e){return e.retryState.retryCount>=2||e.pendingInputs.length>=BC?"congested":e.retryState.retryCount>=1||e.pendingInputs.length>=8?"degraded":"good"}function kb(e){if(e.pendingInputs.length===0||e.ws.readyState!==WebSocket.OPEN)return;const t=e.pendingInputs.splice(0);for(const r of t)try{e.ws.send(JSON.stringify({type:"input",data:r}))}catch{}}function P6(e){if(e.ws.readyState!==WebSocket.OPEN)return;const t=PC(e);if(t==="good"){kb(e);return}if(e.inputFlushTimer)return;const r=t==="congested"?DC:NC;e.inputFlushTimer=setTimeout(()=>{e.inputFlushTimer=null,kb(e)},r)}const Cd=new Map;function jC(e,t,r,n){const s=Cd.get(e);s&&(Cd.delete(e),t?s.resolve({success:!0,layout:r}):s.reject(new Error(n||"Tmux action failed")))}function QC(e,t){const n=`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}/api/terminal/${e}/ws`;return t>0?`${n}?since=${t}`:n}const Eb=new Map;async function FC(e){const t=await un(),r=await fetch("/api/terminal/create",{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify({cols:e.cols||80,rows:e.rows||24,mode:e.mode||"shell",tmuxSessionName:e.tmuxSessionName,cwd:e.cwd,termType:e.termType})});if(!r.ok){const n=await r.json().catch(()=>({error:"Failed to create terminal"}));throw new Error(n.error||"Failed to create terminal session")}return r.json()}function OC(e,t,r,n={}){const{maxRetries:s=10,initialRetryDelay:i=1e3,maxRetryDelay:a=2e4,connectionTimeout:u=15e3}=n,d={maxRetries:s,initialDelayMs:i,maxDelayMs:a,connectionTimeoutMs:u,retryCount:0,retryTimeout:null,connectionTimeoutId:null,isClosed:!1};let f=null,g=Eb.get(e)??0;Eb.delete(e);const b=[];let x=!1,v=null;const w=new WeakSet,T=()=>{d.retryTimeout&&(clearTimeout(d.retryTimeout),d.retryTimeout=null),d.connectionTimeoutId&&(clearTimeout(d.connectionTimeoutId),d.connectionTimeoutId=null),v&&(clearTimeout(v),v=null)},_=C=>{C.heartbeatTimer&&(clearInterval(C.heartbeatTimer),C.heartbeatTimer=null),C.pongTimer&&(clearTimeout(C.pongTimer),C.pongTimer=null),C.inputFlushTimer&&(clearTimeout(C.inputFlushTimer),C.inputFlushTimer=null)},M=C=>{_(C),C.heartbeatTimer=setInterval(()=>{if(C.ws.readyState===WebSocket.OPEN){try{C.ws.send(JSON.stringify({type:"ping"}))}catch{}C.pongTimer&&clearTimeout(C.pongTimer),C.pongTimer=setTimeout(()=>{if(Date.now()-C.lastInboundAt>=Lb)try{C.ws.close()}catch{}},Lb)}},MC)},N=()=>{if(d.isClosed=!0,T(),f){_(f),Io.delete(e);try{f.ws.close()}catch{}f=null}},B=()=>{if(d.isClosed)return;if(f){w.add(f.ws),_(f);try{f.ws.close()}catch{}}const C=QC(e,g),E=new WebSocket(C);x=!1,d.connectionTimeoutId=setTimeout(()=>{E.readyState!==WebSocket.OPEN&&(E.close(),R(new Error("WebSocket connection timeout"),!1))},u);const D={ws:E,onEvent:t,onError:r,reconnectNow:()=>{if(!d.isClosed&&!v){if(T(),f){w.add(f.ws),_(f);try{f.ws.close()}catch{}}t({type:"reconnecting",attempt:Math.min(d.retryCount+1,s),maxAttempts:s}),d.retryCount=Math.min(d.retryCount+1,s),x=!0,v=setTimeout(()=>{v=null,x=!1,B()},0)}},retryState:d,lastSeq:g,pendingInputs:b,inputFlushTimer:null,heartbeatTimer:null,pongTimer:null,lastInboundAt:Date.now()};E.onopen=()=>{T(),d.retryCount=0,D.lastInboundAt=Date.now(),M(D),P6(D)},E.onmessage=H=>{D.lastInboundAt=Date.now();try{const U=JSON.parse(H.data);if(U.type==="pong"){D.pongTimer&&(clearTimeout(D.pongTimer),D.pongTimer=null);return}if(U.type==="tmux-result"&&U.reqId){jC(U.reqId,U.success!==!1,U.layout,U.error);return}if(U.type==="tmux-layout"&&U.layout){t({type:"tmux-layout",layout:U.layout});return}if(U.type==="active-program"){t({type:"active-program",activeProgram:U.activeProgram,activeProgramRaw:U.activeProgramRaw,activeProgramSource:U.activeProgramSource});return}if(U.type==="cwd"){t({type:"cwd",cwd:U.cwd});return}if(U.type==="agent-status"){t({type:"agent-status",agentStatus:U.agentStatus??null,agentIndicator:U.agentIndicator??null,agent:U.agent??null,agentMessage:U.agentMessage??null,agentNativeSessionId:U.agentNativeSessionId??null,agentRich:U.agentRich===!0,agentActivity:typeof U.agentActivity=="number"?U.agentActivity:0,agentCwd:U.agentCwd??null,reviewed:typeof U.reviewed=="boolean"?U.reviewed:null});return}if(U.type==="git-status"){t({type:"git-status",gitStatus:U.gitStatus??null});return}if(U.type==="focus-mode"){t({type:"focus-mode",focusTrackingRequested:U.focusTrackingRequested===!0});return}if(U.type==="resize-ack"){t({type:"resize-ack",seq:typeof U.seq=="number"?U.seq:void 0,cols:typeof U.cols=="number"?U.cols:void 0,rows:typeof U.rows=="number"?U.rows:void 0,ok:U.ok!==!1,error:typeof U.error=="string"?U.error:void 0});return}if(U.type==="pty-size"){t({type:"pty-size",cols:typeof U.cols=="number"?U.cols:void 0,rows:typeof U.rows=="number"?U.rows:void 0,source:typeof U.source=="string"?U.source:void 0});return}if(U.type==="shell-title"){t({type:"shell-title",title:typeof U.title=="string"?U.title:""});return}if(U.type==="prompt-state"){t({type:"prompt-state",state:U.state==="running"?"running":"idle",exitCode:typeof U.exitCode=="number"?U.exitCode:void 0});return}const G=U;if(G.type==="connected"){typeof G.replayLastSeq=="number"&&G.replayLastSeq>0&&(g=G.replayLastSeq,D.lastSeq=g),t(G);return}if(G.type==="exit"){N(),t(G);return}t(G),G.type==="data"&&typeof G.seq=="number"&&Number.isFinite(G.seq)&&G.seq>g&&(g=G.seq,D.lastSeq=g)}catch(U){r?.(U,!1)}},E.onerror=()=>{w.has(E)||(T(),_(D),x||(x=!0,R(new Error("WebSocket connection error"),!1)))},E.onclose=H=>{if(!w.has(E)&&(T(),_(D),!d.isClosed&&!x)){if(x=!0,H.code===4001){console.warn("[Terminal] WS 4001: Session not found on server",{code:H.code,reason:H.reason,stack:new Error().stack}),R(new Error("Session not found on server"),!0);return}if(H.code===4003||H.code===4401){try{window.dispatchEvent(new CustomEvent(rp))}catch{}R(new Error("Authentication required"),!0);return}R(new Error("WebSocket connection closed"),!1)}},f=D,Io.set(e,f)},R=(C,E)=>{if(!d.isClosed)if(d.retryCount<s&&!E){d.retryCount++;const D=Math.min(i*Math.pow(2,d.retryCount-1),a);t({type:"reconnecting",attempt:d.retryCount,maxAttempts:s}),d.retryTimeout=setTimeout(()=>{d.isClosed||B()},D)}else r?.(C,E||d.retryCount>=s),N()};return B(),N}async function $C(e,t){const r=Io.get(e);if(r){if(r.ws.readyState===WebSocket.OPEN){r.pendingInputs.push(t),P6(r);return}if(r.ws.readyState===WebSocket.CONNECTING){r.pendingInputs.push(t);return}}const n=await un(),s=await fetch(`/api/terminal/${e}/input`,{method:"POST",headers:{"Content-Type":"text/plain","X-XSRF-TOKEN":n},body:t});if(!s.ok){const i=await s.json().catch(()=>({error:"Failed to send input"}));throw new Error(i.error||"Failed to send terminal input")}}function HC(e){const t=Io.get(e);if(!t)return!1;if(t.ws.readyState!==WebSocket.OPEN)return t.reconnectNow(),!0;const r=t.lastInboundAt;try{t.ws.send(JSON.stringify({type:"ping"}))}catch{}return setTimeout(()=>{t.lastInboundAt<=r&&t.reconnectNow()},RC),!0}function UC(e,t,r){const n=Io.get(e);if(!(!n||n.ws.readyState!==WebSocket.OPEN))try{n.ws.send(JSON.stringify({type:"focus",focused:t,reason:r}))}catch{}}function Ib(e){const t=Io.get(e);if(!(!t||t.ws.readyState!==WebSocket.OPEN))try{t.ws.send(JSON.stringify({type:"agent-review-ack"}))}catch{}}function Mb(e,t,r){const n=Io.get(e);if(!(!n||n.ws.readyState!==WebSocket.OPEN))try{n.ws.send(JSON.stringify({type:"flow-control",paused:t,reason:r}))}catch{}}async function GC(e,t,r,n){const s=Io.get(e);if(s&&s.ws.readyState===WebSocket.OPEN)try{s.ws.send(JSON.stringify({type:"resize",cols:t,rows:r,seq:n}));return}catch{}const i=await un(),a=await fetch(`/api/terminal/${e}/resize`,{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":i},body:JSON.stringify({cols:t,rows:r,seq:n})});if(!a.ok){const d=await a.json().catch(()=>({error:"Failed to resize terminal"}));throw new Error(d.error||"Failed to resize terminal")}const u=await a.json().catch(()=>({success:!0}));if(u?.success===!1||u?.ok===!1)throw new Error(u?.error||"Failed to resize terminal")}async function zC(e,t){const r=Io.get(e);if(r&&r.ws.readyState===WebSocket.OPEN)return t.action==="scroll"?(r.ws.send(JSON.stringify({type:"tmux",...t})),{success:!0}):new Promise((i,a)=>{const u=Math.random().toString(36).substring(7);Cd.set(u,{resolve:i,reject:a}),r.ws.send(JSON.stringify({type:"tmux",reqId:u,...t})),setTimeout(()=>{Cd.has(u)&&(Cd.delete(u),a(new Error("Tmux action timed out")))},3e4)});const n=await un(),s=await fetch(`/api/terminal/${e}/tmux`,{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":n},body:JSON.stringify(t)});if(!s.ok){const i=await s.json().catch(()=>({error:"Failed to execute tmux action"}));throw new Error(i.error||"Failed to execute tmux action")}return s.json()}async function j6(e){const t=Io.get(e);if(t){t.retryState.isClosed=!0;try{t.ws.close()}catch{}Io.delete(e)}const r=await un(),n=await fetch(`/api/terminal/${e}`,{method:"DELETE",headers:{"X-XSRF-TOKEN":r}});if(n.status!==404&&!n.ok){const s=await n.json().catch(()=>({error:"Failed to close terminal"}));throw new Error(s.error||"Failed to close terminal")}}async function WC(e,t){const r=Io.get(e);if(r){r.retryState.isClosed=!0;try{r.ws.close()}catch{}Io.delete(e)}const n=await un(),s=await fetch(`/api/terminal/${e}/restart`,{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":n},body:JSON.stringify({...t.cwd?{cwd:t.cwd}:{},cols:t.cols??80,rows:t.rows??24,mode:t.mode,tmuxSessionName:t.tmuxSessionName})});if(!s.ok){const i=await s.json().catch(()=>({error:"Failed to restart terminal"}));throw new Error(i.error||"Failed to restart terminal session")}return s.json()}async function VC(e){const t=await fetch(`/api/terminal/${e}/health`,{method:"GET"});if(!t.ok){if(t.status===404)return{healthy:!1,sessionId:e};const r=await t.json().catch(()=>({error:"Failed to check terminal health"}));throw new Error(r.error||"Failed to check terminal health")}return t.json()}async function qC(e){const t=await un(),r=await fetch("/api/terminal/force-kill",{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify(e)});if(!r.ok){const n=await r.json().catch(()=>({error:"Failed to force kill terminal"}));throw new Error(n.error||"Failed to force kill terminal")}}async function v1(){const e=await fetch("/api/terminal/tmux/sessions",{method:"GET"});if(!e.ok){const r=await e.json().catch(()=>({error:"Failed to list tmux sessions"}));throw new Error(r.error||"Failed to list tmux sessions")}const t=await e.json();return Array.isArray(t.sessions)?t.sessions:[]}async function w1(){const e=await fetch("/api/terminal/tmux/status",{method:"GET"});if(!e.ok){const t=await e.json().catch(()=>({error:"Failed to get tmux status"}));throw new Error(t.error||"Failed to get tmux status")}return e.json()}async function Q6(e){const t=e.trim();if(!t)throw new Error("tmux session name is required");const r=await un(),n=await fetch(`/api/terminal/tmux/sessions/${encodeURIComponent(t)}`,{method:"DELETE",headers:{"X-XSRF-TOKEN":r}});if(!n.ok){const i=await n.json().catch(()=>({error:"Failed to kill tmux session"}));throw new Error(i.error||"Failed to kill tmux session")}const s=await n.json();return{cleanedSessions:Array.isArray(s.cleanedSessions)?s.cleanedSessions:[],alreadyGone:!!s.alreadyGone}}const Vh=new Map;function YC(e){return JSON.stringify({preferredFrontendSessionId:e.preferredFrontendSessionId??null,mode:e.mode??null,tmuxSessionName:e.tmuxSessionName??null,cwd:e.cwd??null,termType:e.termType??null,createIfEmpty:e.createIfEmpty===!0,requireExisting:e.requireExisting===!0})}async function KC(){const e=await fetch("/api/terminal/session-inventory",{method:"GET"});if(!e.ok){const t=await e.json().catch(()=>({error:"Failed to load session inventory"}));throw new Error(t.error||"Failed to load session inventory")}return e.json()}async function F6(e){const t=YC(e),r=Vh.get(t);if(r)return r;const n=await un(),s=fetch("/api/terminal/session-inventory/open",{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":n},body:JSON.stringify(e)}).then(async i=>{if(!i.ok){const a=await i.json().catch(()=>({error:"Failed to open session"}));throw new D6(a.error||"Failed to open session",i.status,typeof a.code=="string"?a.code:void 0)}return i.json()}).finally(()=>{Vh.get(t)===s&&Vh.delete(t)});return Vh.set(t,s),s}async function Bf(e,t){const r=await un(),n=await fetch(`/api/terminal/session-inventory/sessions/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":r},body:JSON.stringify(t)});if(!n.ok){const s=await n.json().catch(()=>({error:"Failed to update session"}));throw new Error(s.error||"Failed to update session")}return n.json()}async function ZC(e){const t=await un(),r=await fetch("/api/terminal/session-inventory/reorder",{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify({sessionIds:e})});if(!r.ok){const n=await r.json().catch(()=>({error:"Failed to reorder sessions"}));throw new Error(n.error||"Failed to reorder sessions")}return r.json()}async function XC(e){const t=await un(),r=await fetch(`/api/terminal/session-inventory/sessions/${encodeURIComponent(e)}`,{method:"DELETE",headers:{"X-XSRF-TOKEN":t}});if(!r.ok){const n=await r.json().catch(()=>({error:"Failed to remove session"}));throw new Error(n.error||"Failed to remove session")}}async function JC(){const e=await un(),t=await fetch("/api/terminal/session-inventory/sessions",{method:"DELETE",headers:{"X-XSRF-TOKEN":e}});if(!t.ok){const r=await t.json().catch(()=>({error:"Failed to clear sessions"}));throw new Error(r.error||"Failed to clear sessions")}}async function Rb(){const e=await fetch("/api/terminal/toolbar-presets",{method:"GET"});if(!e.ok){const t=await e.json().catch(()=>({error:"Failed to load toolbar presets"}));throw new Error(t.error||"Failed to load toolbar presets")}return e.json()}async function e_(e){const t=await un(),r=await fetch("/api/terminal/toolbar-presets",{method:"PUT",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify(e)});if(!r.ok){const n=await r.json().catch(()=>({error:"Failed to save toolbar presets"})),s=new Error(n.error||"Failed to save toolbar presets");throw s.current=n.current,s.code=n.code,s}return r.json()}async function t_(){const e=await fetch("/api/terminal/settings",{method:"GET"});if(!e.ok){const t=await e.json().catch(()=>({error:"Failed to load settings"}));throw new Error(t.error||"Failed to load settings")}return e.json()}async function Zm(e){const t=await un(),r=await fetch("/api/terminal/settings",{method:"PUT",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify(e)});if(!r.ok){const n=await r.json().catch(()=>({error:"Failed to update settings"}));throw new Error(n.error||"Failed to update settings")}return r.json()}async function r_(){const e=await fetch("/api/terminal/settings/activity-reorder",{method:"GET"});return e.ok?(await e.json()).enabled!==!1:!0}async function n_(e){const t=await un(),r=await fetch("/api/terminal/settings/activity-reorder",{method:"PUT",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify({enabled:e})});return r.ok?(await r.json()).enabled:e}async function s_(){const e=await fetch("/api/auth/status");if(!e.ok)throw new Error("Failed to query auth status");return e.json()}async function i_(e){const t=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:e})});if(t.ok)return B6(),{ok:!0};const r=await t.json().catch(()=>null);return t.status===429?{ok:!1,rateLimited:!0,retryAfterMs:typeof r?.retryAfterMs=="number"?r.retryAfterMs:void 0,error:r?.error||"Too many failed attempts. Please wait and try again."}:{ok:!1,error:r?.error||"Login failed"}}async function o_(){const e=await un();await fetch("/api/auth/logout",{method:"POST",headers:{"X-XSRF-TOKEN":e}}),B6()}async function a_(){const e=await fetch("/api/terminal/agent-hooks");if(!e.ok)throw new Error("Failed to get agent hooks");const t=await e.json();return Array.isArray(t?.agents)?t.agents:[]}async function l_(e){const t=await un(),r=await fetch(`/api/terminal/agent-hooks/${encodeURIComponent(e)}/install`,{method:"POST",headers:{"X-XSRF-TOKEN":t}}),n=await r.json().catch(()=>({}));if(!r.ok)throw new Error(n.error||"Failed to install agent hooks");return{summary:n.summary??"Installed",devMode:n.devMode===!0}}async function c_(e){const t=await un(),r=await fetch(`/api/terminal/agent-hooks/${encodeURIComponent(e)}/uninstall`,{method:"POST",headers:{"X-XSRF-TOKEN":t}}),n=await r.json().catch(()=>({}));if(!r.ok)throw new Error(n.error||"Failed to uninstall agent hooks");return n.summary??"Removed"}async function u_(){const e=await fetch("/api/terminal/agent-plugins");if(!e.ok)throw new Error("Failed to get agent plugins");return await e.json()}async function d_(e){const t=await un(),r=await fetch("/api/terminal/agent-plugins",{method:"POST",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify(e)}),n=await r.json().catch(()=>({}));if(!r.ok)throw new Error(n.error||"Failed to create agent plugin");return n}async function h_(e){const t=await un(),r=await fetch(`/api/terminal/agent-plugins/${encodeURIComponent(e)}`,{method:"DELETE",headers:{"X-XSRF-TOKEN":t}});if(!r.ok){const n=await r.json().catch(()=>({}));throw new Error(n.error||"Failed to delete agent plugin")}}async function f_(e){const t=await un(),r=await fetch(`/api/terminal/${encodeURIComponent(e)}/agent-resume`,{method:"POST",headers:{"X-XSRF-TOKEN":t}}),n=await r.json().catch(()=>({}));if(!r.ok)throw new Error(n.error||"Failed to resume agent session");return{command:n.command??""}}async function iu(e){const t=await un(),r=await fetch("/api/terminal/program-rules",{method:"PUT",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify(e)});if(!r.ok){const n=await r.json().catch(()=>({error:"Failed to update program rules"}));throw new Error(n.error||"Failed to update program rules")}return r.json()}async function p_(){const e=await un(),t=await fetch("/api/terminal/program-rules",{method:"DELETE",headers:{"X-XSRF-TOKEN":e}});if(!t.ok)throw new Error("Failed to reset program rules");return t.json()}async function m_(){const e=await fetch("/api/terminal/program-detection");if(!e.ok)throw new Error("Failed to get program detection config");return e.json()}async function Nb(e){const t=await un(),r=await fetch("/api/terminal/program-detection",{method:"PUT",headers:{"Content-Type":"application/json","X-XSRF-TOKEN":t},body:JSON.stringify(e)});if(!r.ok)throw new Error("Failed to save program detection config");return r.json()}async function g_(){const e=await un(),t=await fetch("/api/terminal/program-detection",{method:"DELETE",headers:{"X-XSRF-TOKEN":e}});if(!t.ok)throw new Error("Failed to reset program detection config");return t.json()}const b_={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".avif":"image/avif",".bmp":"image/bmp",".ico":"image/x-icon",".svg":"image/svg+xml"};function O6(e){const t=e.lastIndexOf(".");return t<0?null:b_[e.slice(t).toLowerCase()]??null}function I2(e){return O6(e)!==null}async function $6(e,t,r,n="list_directory",s){const i=new URLSearchParams({path:e});r&&i.set("showHidden","true"),i.set("action",n),s&&i.set("requestSlotId",s);const a=await Xs(`/api/terminal/fs/list?${i}`,{signal:t},Xu,"Directory listing took too long. The folder may be on slow storage or blocked by another process.");if(!a.ok){const u=await a.json().catch(()=>({error:"Failed to list directory"}));throw new Error(u.error||"Failed to list directory")}return a.json()}async function x_(e,t,r,n,s,i="name",a){const u=new URLSearchParams({path:e,query:t,stream:"true"});s&&u.set("showHidden","true"),i==="content"&&u.set("mode","content"),a&&u.set("requestSlotId",a);const d=await fetch(`/api/terminal/fs/search?${u}`,{signal:n});if(!d.ok||!d.body){const v=await d.json().catch(()=>({error:"Failed to search files"}));throw new Error(v.error||"Failed to search files")}const f=d.body.getReader(),g=new TextDecoder;let b="";const x=v=>{if(!v.trim())return;const w=JSON.parse(v);if(w.type==="meta")r({path:w.path,query:w.query,engine:w.engine,mode:w.mode,limited:w.limited});else if(w.type==="batch")r({entries:w.entries??[]});else if(w.type==="content-batch")r({contentEntries:w.contentEntries??[]});else{if(w.type==="error")throw new Error(w.message||"Search failed");w.type==="done"&&r({total:w.total,truncated:w.truncated,limited:w.limited,engine:w.engine,mode:w.mode,done:!0})}};for(;;){const{value:v,done:w}=await f.read();if(w)break;b+=g.decode(v,{stream:!0});let T=b.indexOf(`
|
|
3
3
|
`);for(;T>=0;)x(b.slice(0,T)),b=b.slice(T+1),T=b.indexOf(`
|
|
4
4
|
`)}b+=g.decode(),x(b)}async function y_(e,t,r){const n=new URLSearchParams;n.set("roots",e.join("|"));const s=await fetch(`/api/terminal/fs/watch?${n}`,{signal:r});if(!s.ok||!s.body){const f=await s.json().catch(()=>({error:"Failed to watch files"}));throw new Error(f.error||"Failed to watch files")}const i=s.body.getReader(),a=new TextDecoder;let u="";const d=f=>{if(!f.trim())return;const g=JSON.parse(f);g.type==="events"&&g.events?.length&&t(g.events)};for(;;){const{value:f,done:g}=await i.read();if(g)break;u+=a.decode(f,{stream:!0});let b=u.indexOf(`
|
|
@@ -152,7 +152,7 @@ ${n.length>0?`${n.join(`
|
|
|
152
152
|
`),{hunks:[a]})}function UG(e){const t=e.changes.filter(s=>s.type==="insert"||s.type==="delete").map(s=>`${s.type}:${s.content}`),r=t.length>0?t.join(`
|
|
153
153
|
`):e.changes.map(s=>s.content).join(`
|
|
154
154
|
`);let n=2166136261;for(let s=0;s<r.length;s+=1)n^=r.charCodeAt(s),n=Math.imul(n,16777619);return(n>>>0).toString(16).padStart(8,"0")}function M8(e){const t=e.changes.filter(n=>n.type==="insert"||n.type==="delete").map(n=>`${n.type}:${n.content}`).join(`
|
|
155
|
-
`);let r=2166136261;for(let n=0;n<t.length;n+=1)r^=t.charCodeAt(n),r=Math.imul(r,16777619);return(r>>>0).toString(16).padStart(8,"0")}function Iu(e){return e&&"lineNumber"in e&&typeof e.lineNumber=="number"?e.lineNumber:null}function GG(e){const t=e.trim();return t?/^(import|export\s+type|using|#include)\b/.test(t)||/^from\s+[\w.'"/-]+\s+import\b/.test(t)||/^package\s+[\w.]+;?$/.test(t):!0}function zG(e){const t=e.changes.filter(n=>n.type==="insert"||n.type==="delete");if(t.length===0||!t.every(n=>GG(n.content)))return!1;const r=new Set;for(const n of t){const s=Iu(n);if(s!==null){if(r.has(s))return!1;r.add(s)}}return!0}function WG(e){const t=[];let r=0;for(;r<e.changes.length;){const n=e.changes[r];if(n.type==="normal"){t.push(n),r+=1;continue}const s=[];for(;r<e.changes.length&&e.changes[r].type!=="normal";)s.push(e.changes[r]),r+=1;const i=s.filter(x=>x.type==="delete"),a=s.filter(x=>x.type==="insert"),u=yG(i.map(x=>({content:x.content,lineNumber:Iu(x)??-1})),a.map(x=>({content:x.content,lineNumber:Iu(x)??-1}))),d=new Map(i.map((x,v)=>[Iu(x)??-1,v])),f=new Map(a.map((x,v)=>[Iu(x)??-1,v]));let g=0,b=0;for(const x of u){const v=d.get(x.oldLineNumber),w=f.get(x.newLineNumber);if(!(v===void 0||w===void 0)){for(;b<w;)t.push(a[b++]);for(;g<v;)t.push(i[g++]);t.push(i[v],a[w]),g=v+1,b=w+1}}for(;g<i.length;)t.push(i[g++]);for(;b<a.length;)t.push(a[b++])}return{...e,changes:t}}function Cp(e,t){return`${e??""}\0${t}`}function R8(e,t){return e===t||t.endsWith(`/${e}`)||e.endsWith(`/${t}`)}function VG(e){return typeof e.sectionIndex=="number"||typeof e.sectionFingerprint=="string"&&e.sectionFingerprint.length>0}function qG(e,t,r,n,s){if(!e||e.length===0)return{fingerprint:s};const i=Cp(t,r);let a;for(const u of e){if(VG(u))continue;const d=[u.filePath,u.newPath,u.oldPath].filter(x=>typeof x=="string"&&x.length>0),f=d.some(x=>Cp(u.repoRoot,x)===i),g=d.some(x=>R8(x,r));if(f||g){if(u.fingerprint===s)return{current:u,fingerprint:s};!a&&u.hunkHeader===n&&(a=u)}}return{stale:a,fingerprint:s}}function YG(e,t,r,n,s,i,a){if(!e||e.length===0)return{fingerprint:a};const u=Cp(t,r);let d;for(const f of e){const g=[f.filePath,f.newPath,f.oldPath].filter(x=>typeof x=="string"&&x.length>0);if(!(!(g.some(x=>Cp(f.repoRoot,x)===u)||g.some(x=>R8(x,r)))||f.hunkHeader!==n)){if(f.sectionFingerprint===a)return{current:f,fingerprint:a};!d&&f.fingerprint===s&&f.sectionIndex===i&&(d=f)}}return{stale:d,fingerprint:a}}function KG(e){const t=e.changes[e.changes.length-1];return t?il(t):null}function ZG(e){let t=0;for(const r of e)t=Math.max(t,r.oldStart+Math.max(0,r.oldLines-1),r.newStart+Math.max(0,r.newLines-1));return Math.max(3,String(t).length+.5)}function XG(e){return e instanceof DOMException&&e.name==="AbortError"}function Xg(e){return typeof e!="number"||!Number.isFinite(e)?null:e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:e>=1024?`${Math.ceil(e/1024)} KB`:`${e} bytes`}function f2(e){if(e.tooLarge){const t=Xg(e.size),r=Xg(e.maxBytes);return`Diff is too large${t?` (${t}`:""}${r?`${t?", ":" ("}limit ${r}`:""}${t||r?")":""}.`}if(e.skippedFiles&&e.skippedFiles.length>0){const t=e.skippedFiles[0],r=Xg(t.size),n=e.skippedFiles.length>1?` and ${e.skippedFiles.length-1} more file(s)`:"";return`Skipped large untracked file ${t.path}${r?` (${r})`:""}${n}.`}return null}function N8(e){if(!e)return!1;let t=1;for(let r=0;r<e.length;r+=1)if(e.charCodeAt(r)===10&&(t+=1,t>EG))return!0;return!1}function JG(e){return e==="unified"||e==="split"}function ez(){return Qn(C8,JG)??"unified"}function tz(e,t){return typeof e!="number"||!Number.isFinite(e)||e<=0?null:new Intl.DateTimeFormat(t==="zh"?"zh-CN":"en",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(new Date(e))}function rz(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia(_8).matches}function nz(){const{t:e}=Fn(),[t,r]=A.useState(!1);return t?null:c.jsxs("button",{type:"button",onClick:()=>r(!0),className:"flex w-full items-center justify-center gap-1.5 border-b border-border/15 bg-surface-2/40 px-2 py-1 text-[10px] text-muted-foreground transition active:scale-[0.99] hover:bg-surface-2 hover:text-foreground",title:e("rightSidebar.horizontalScrollHint"),children:[c.jsx(bk,{size:11,className:"shrink-0"}),c.jsx("span",{className:"truncate",children:e("rightSidebar.horizontalScrollHint")})]})}function D8({filePath:e,repoRoot:t,referenceFilePath:r,interactionId:n,requestSlotId:s,changedFile:i,onInsertDiffReference:a,onReferenceCopied:u,insertedReferenceKey:d,copiedReferenceKey:f,wrap:g=!1,showScrollHint:b=!1,reloadKey:x=0,embedded:v=!1,active:w=!0,lightweight:T=!1,auditRecords:_,diffOverride:M,preparedDiff:N,viewType:B,inlineMode:R="words",diffOptions:C,oldSourceOverride:E,onClearAuditRecord:D,onContentReady:H,onSummaryChange:U}){const{t:G,locale:W}=Fn(),[J,ee]=A.useState(()=>ez()),[ce,Te]=A.useState(()=>rz()),[Me,Se]=A.useState(null),[oe,ae]=A.useState(null),[pe,Ge]=A.useState(!1),[he,Qe]=A.useState(null),[qe,at]=A.useState([]),[ke,ie]=A.useState(()=>new Map),[je,Ne]=A.useState(null),[_e,me]=A.useState(()=>new Set),[Pe,ut]=A.useState(null),Ee=ct(ft=>ft.rootPath),Ze=A.useRef(x),ze=s0(u),we=(B??J)==="split"&&ce?"split":"unified";A.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const ft=window.matchMedia(_8),Ke=()=>Te(ft.matches);return Ke(),ft.addEventListener?.("change",Ke),()=>ft.removeEventListener?.("change",Ke)},[]);const De=A.useCallback(ft=>{ee(ft),Sr(C8,ft)},[]),mt=i?.repoRoot??null,Lt=i?.status??null,lr=mt??t??Ee,Mt=mt??t??Ee,or=r??i?.absolutePath??I8(Mt,e);A.useEffect(()=>{if(N!==void 0){Ne(null);return}if(E!==void 0){Ne(E);return}const ft=mt??t??Ee;if(!w||M||!ft||!e||i?.untracked||Lt==="added"){Ne(null);return}const Ke=new AbortController;return H6(e,ft,"HEAD",Ke.signal,"ref").then(It=>{Ke.signal.aborted||Ne(It.truncated||It.error?null:It.content)}).catch(()=>{Ke.signal.aborted||Ne(null)}),()=>Ke.abort()},[w,i?.untracked,mt,Lt,M,e,E,N,t,Ee]),A.useEffect(()=>{if(N!==void 0)return;if(M!==void 0){Se(M),ae(null),Qe(null),Ge(!1),ut(null);return}if(!w){Ge(!1),Hs("effect_skip_inactive",{interactionId:n,requestSlotId:s,filePath:e,repoRoot:t,changedFileRepoRoot:mt,rootPath:Ee});return}let ft=!1,Ke=null;const vt=new AbortController,It=e,lt=mt??t??(It?.startsWith("/")?null:Ee),vr=++MG,ir=`diff-${Date.now().toString(36)}-${(++RG).toString(36)}`;let gr=!1;const Lr=performance.now(),xr=(Nt,Yr={})=>{gr||(gr=!0,Af("end",{loadingId:vr,interactionId:n,requestSlotId:s,traceId:ir,reason:Nt,durationMs:Math.round(performance.now()-Lr),filePath:It,gitRoot:lt,...Yr}))},ue=PG(It,lt),Ln=It&<&&!It.startsWith("/")?`${lt}/${It}`:It,tt=Ze.current!==x;if(Ze.current=x,It&&!lt){Hs("effect_wait_for_repo_root",{interactionId:n,requestSlotId:s,traceId:ir,filePath:It,repoRoot:t,changedFileRepoRoot:mt,rootPath:Ee}),Se(null),ae(null),Qe(null),ut(null),Ge(!1),xr("waiting_for_repo_root");return}const Rt=BG(ue,lt??void 0,C);Af("start",{loadingId:vr,interactionId:n,requestSlotId:s,traceId:ir,filePath:It,requestPath:ue,gitRoot:lt,readablePath:Ln,forceReload:tt,hasCachedDiff:!!Rt,embedded:v,active:w});const dn=window.setTimeout(()=>{gr||ft||Af("still_active",{loadingId:vr,interactionId:n,requestSlotId:s,traceId:ir,filePath:It,requestPath:ue,gitRoot:lt,durationMs:Math.round(performance.now()-Lr),hasCachedDiff:!!Rt,controllerAborted:vt.signal.aborted,abortReason:vt.signal.aborted?String(vt.signal.reason??""):void 0,cacheSize:Co.size,promiseSize:oo.size})},3e3),wr=window.setTimeout(()=>{gr||ft||(Af("still_active_long",{loadingId:vr,interactionId:n,requestSlotId:s,traceId:ir,filePath:It,requestPath:ue,gitRoot:lt,durationMs:Math.round(performance.now()-Lr),hasCachedDiff:!!Rt,controllerAborted:vt.signal.aborted,abortReason:vt.signal.aborted?String(vt.signal.reason??""):void 0,cacheSize:Co.size,promiseSize:oo.size}),Qe("Diff response is taking too long to finish in the browser. Try selecting the file again."),Ge(!1),xr("client_watchdog_timeout"))},1e4);Hs("effect_start",{interactionId:n,requestSlotId:s,traceId:ir,loadingId:vr,filePath:It,requestPath:ue,gitRoot:lt,readablePath:Ln,forceReload:tt,hasCachedDiff:!!Rt,cachedBytes:Rt?.diff?.length??0}),Se(Rt?.diff??null),ae(Rt?f2(Rt):null),Ge(!Rt),Qe(Rt?.error??null),ut(null);const dr=()=>(tt&&Rt?k8(ue,lt??void 0,C):E8(ue,lt??void 0,vt.signal,tt,ir,n,s,C)).then(Nt=>{if(ft)return;const Yr=f2(Nt),on=N8(Nt.diff);ae(on?"Diff has too many lines to preview safely.":Yr),Se(Nt.tooLarge||on?"":Nt.diff),Qe(Nt.error??null),Hs("state_set_result",{interactionId:n,requestSlotId:s,traceId:ir,loadingId:vr,filePath:It,requestPath:ue,gitRoot:lt,bytes:Nt.diff?.length??0,tooLargeToRender:on,resultTooLarge:!!Nt.tooLarge,error:Nt.error??null})}).catch(Nt=>{if(ft||XG(Nt))return;const Yr=Nt instanceof Error?Nt.message:"Failed to load diff";Rt?.diff?(ae(Yr),Qe(null)):(Se(null),ae(null),Qe(Yr)),Hs("state_set_error",{interactionId:n,requestSlotId:s,traceId:ir,filePath:It,requestPath:ue,gitRoot:lt,error:Yr,hadCachedDiff:!!Rt?.diff})}).finally(()=>{ft||Ge(!1),xr(ft?"cancelled_finally":"finally"),Hs("load_text_finally",{interactionId:n,requestSlotId:s,traceId:ir,loadingId:vr,filePath:It,requestPath:ue,gitRoot:lt,cancelled:ft})});return Rt&&!tt?(Ge(!1),xr("cache_hit")):Rt&&tt?dr():jG(Ln,Lt?{status:Lt}:null)?U6(Ln,vt.signal,"view_diff_image",s?`${s}:image`:void 0).then(Nt=>{ft||(Ke=URL.createObjectURL(Nt.blob),ut({objectUrl:Ke,size:Nt.size,mimeType:Nt.mimeType}),xr("image_preview_loaded",{bytes:Nt.size,mimeType:Nt.mimeType}))}).catch(()=>{if(!(ft||vt.signal.aborted))return dr()}).finally(()=>{ft||Ge(!1),ft&&xr("image_cancelled_finally")}):dr(),()=>{ft=!0,vt.abort(),di(s),window.clearTimeout(dn),window.clearTimeout(wr),Ke&&URL.revokeObjectURL(Ke),xr("cleanup"),Hs("effect_cleanup",{interactionId:n,requestSlotId:s,traceId:ir,loadingId:vr,filePath:It,requestPath:ue,gitRoot:lt,loadingEnded:gr,signalAborted:vt.signal.aborted,abortReason:vt.signal.aborted?String(vt.signal.reason??""):void 0,cacheSize:Co.size,promiseSize:oo.size})}},[w,mt,Lt,C,M,e,n,N,x,t,s,Ee]),A.useEffect(()=>{if(N!==void 0)return;if(!Me||Me.trim()===""){at([]),ie(new Map);return}let ft=!1;const Ke=performance.now();return w8(Me,T?"none":R,je??void 0,B5(e)??void 0).then(vt=>{ft||(at(vt.files),ie(vt.tokens),Hs("worker_parse_done",{filePath:e,bytes:Me.length,files:vt.files.length,parseMs:vt.parseMs,tokenizeMs:vt.tokenizeMs,durationMs:Math.round(performance.now()-Ke)}))}).catch(vt=>{ft||(at([]),ie(new Map),Qe(vt instanceof Error?vt.message:String(vt)),Hs("worker_parse_error",{filePath:e,bytes:Me.length,durationMs:Math.round(performance.now()-Ke),error:vt instanceof Error?vt.message:String(vt)}))}),()=>{ft=!0}},[Me,e,R,T,je,N]);const de=N!==void 0?N?.diffContent??null:Me,ye=N!==void 0?N?.diffNotice??null:oe,Ve=N!==void 0?N?.diffError??null:he,Ct=Ve?.toLowerCase().includes("signal is aborted")?null:Ve,Vt=N!==void 0?!1:pe,st=N!==void 0?N?.files??[]:qe;A.useEffect(()=>{!w||Vt||de===null&&!Ct&&!Pe&&M===void 0&&N===void 0||H?.()},[w,de,Ct,Vt,M,Pe,H,N]);const er=_??[],Fe=N!==void 0?N?.tokens??new Map:ke,jt=A.useMemo(()=>{let ft=0,Ke=0;for(const vt of st)for(const It of vt.hunks)for(const lt of It.changes)lt.type==="insert"&&(ft+=1),lt.type==="delete"&&(Ke+=1);return{additions:ft,deletions:Ke}},[st]);A.useEffect(()=>{U&&U(st.length>0?{files:st.length,...jt}:null)},[st.length,U,jt]);const et=A.useMemo(()=>{const ft=new Map;for(const Ke of st){let vt=0,It=0;for(const lt of Ke.hunks)for(const vr of lt.changes)vr.type==="insert"&&(vt+=1),vr.type==="delete"&&(It+=1);ft.set(`${Ke.oldRevision}-${Ke.newRevision}-${Ke.newPath}`,{additions:vt,deletions:It})}return ft},[st]),Re=d3(e,{name:G("diffViewer.workingTree"),dir:G("diffViewer.allUnstaged")}),it=`diff:whole:${e??"all"}`,yt=A.useMemo(()=>{if(!de)return"";const ft={repoRoot:Mt,selectedFilePath:e,referenceFilePath:or},Ke=st.flatMap(vt=>{const It=vt.newPath&&!sl(vt.newPath)?vt.newPath:vt.oldPath&&!sl(vt.oldPath)?vt.oldPath:"unknown file",lt=Pa(It,ft);return vt.hunks.map((vr,ir)=>({filePath:lt,hunkIndex:ir,hunk:vr}))});return Yf(QG(de,st,ft),{hunks:Ke})},[de,e,st,Mt,or]),Et=A.useCallback(()=>{!yt||!a||a(e?`${Re.name} diff`:G("diffViewer.allDiffLabel"),yt,it)},[e,a,G,Re.name,it,yt]),xe=A.useMemo(()=>{const ft=new Map;for(const Ke of st)for(const vt of Ke.hunks){const It=T?[]:vt.changes.filter(ir=>ir.type==="delete").map(ir=>({content:ir.content,lineNumber:ir.lineNumber})),lt=T?[]:vt.changes.filter(ir=>ir.type==="insert").map(ir=>({content:ir.content,lineNumber:ir.lineNumber})),vr=T?[]:vG(It,lt);ft.set(vt,{hunkSections:T?[]:$G(vt),movedCandidates:vr,movedOldLines:new Set(vr.map(ir=>ir.oldLineNumber)),movedNewLines:new Set(vr.map(ir=>ir.newLineNumber)),importOnlyHunk:zG(vt),displayHunk:we==="split"?WG(vt):vt})}return ft},[st,T,we]),Bt=ft=>c.jsx(c.Fragment,{children:st.map(Ke=>{const vt=`${Ke.oldRevision}-${Ke.newRevision}-${Ke.newPath}`,It=et.get(vt)??{additions:0,deletions:0},lt=Ke.newPath&&!sl(Ke.newPath)?Ke.newPath:Ke.oldPath&&!sl(Ke.oldPath)?Ke.oldPath:"unknown file",vr={repoRoot:Mt,selectedFilePath:e,referenceFilePath:or},ir=Pa(lt,vr),gr=Pa(Ke.oldPath||lt,vr),Lr=Pa(Ke.newPath||lt,vr),xr=d3(lt,{name:"unknown file",dir:""}),ue=!ft||st.length>1,Ln=[`diff --git ${Ql("a",gr)} ${Ql("b",Lr)}`,...Ke.hunks.flatMap(dr=>[dr.content,...dr.changes.map(Dd)])].join(`
|
|
155
|
+
`);let r=2166136261;for(let n=0;n<t.length;n+=1)r^=t.charCodeAt(n),r=Math.imul(r,16777619);return(r>>>0).toString(16).padStart(8,"0")}function Iu(e){return e&&"lineNumber"in e&&typeof e.lineNumber=="number"?e.lineNumber:null}function GG(e){const t=e.trim();return t?/^(import|export\s+type|using|#include)\b/.test(t)||/^from\s+[\w.'"/-]+\s+import\b/.test(t)||/^package\s+[\w.]+;?$/.test(t):!0}function zG(e){const t=e.changes.filter(n=>n.type==="insert"||n.type==="delete");if(t.length===0||!t.every(n=>GG(n.content)))return!1;const r=new Set;for(const n of t){const s=Iu(n);if(s!==null){if(r.has(s))return!1;r.add(s)}}return!0}function WG(e){const t=[];let r=0;for(;r<e.changes.length;){const n=e.changes[r];if(n.type==="normal"){t.push(n),r+=1;continue}const s=[];for(;r<e.changes.length&&e.changes[r].type!=="normal";)s.push(e.changes[r]),r+=1;const i=s.filter(x=>x.type==="delete"),a=s.filter(x=>x.type==="insert"),u=yG(i.map(x=>({content:x.content,lineNumber:Iu(x)??-1})),a.map(x=>({content:x.content,lineNumber:Iu(x)??-1}))),d=new Map(i.map((x,v)=>[Iu(x)??-1,v])),f=new Map(a.map((x,v)=>[Iu(x)??-1,v]));let g=0,b=0;for(const x of u){const v=d.get(x.oldLineNumber),w=f.get(x.newLineNumber);if(!(v===void 0||w===void 0)){for(;b<w;)t.push(a[b++]);for(;g<v;)t.push(i[g++]);t.push(i[v],a[w]),g=v+1,b=w+1}}for(;g<i.length;)t.push(i[g++]);for(;b<a.length;)t.push(a[b++])}return{...e,changes:t}}function Cp(e,t){return`${e??""}\0${t}`}function R8(e,t){return e===t||t.endsWith(`/${e}`)||e.endsWith(`/${t}`)}function VG(e){return typeof e.sectionIndex=="number"||typeof e.sectionFingerprint=="string"&&e.sectionFingerprint.length>0}function qG(e,t,r,n,s){if(!e||e.length===0)return{fingerprint:s};const i=Cp(t,r);let a;for(const u of e){if(VG(u))continue;const d=[u.filePath,u.newPath,u.oldPath].filter(x=>typeof x=="string"&&x.length>0),f=d.some(x=>Cp(u.repoRoot,x)===i),g=d.some(x=>R8(x,r));if(f||g){if(u.fingerprint===s)return{current:u,fingerprint:s};!a&&u.hunkHeader===n&&(a=u)}}return{stale:a,fingerprint:s}}function YG(e,t,r,n,s,i,a){if(!e||e.length===0)return{fingerprint:a};const u=Cp(t,r);let d;for(const f of e){const g=[f.filePath,f.newPath,f.oldPath].filter(x=>typeof x=="string"&&x.length>0);if(!(!(g.some(x=>Cp(f.repoRoot,x)===u)||g.some(x=>R8(x,r)))||f.hunkHeader!==n)){if(f.sectionFingerprint===a)return{current:f,fingerprint:a};!d&&f.fingerprint===s&&f.sectionIndex===i&&(d=f)}}return{stale:d,fingerprint:a}}function KG(e){const t=e.changes[e.changes.length-1];return t?il(t):null}function ZG(e){let t=0;for(const r of e)t=Math.max(t,r.oldStart+Math.max(0,r.oldLines-1),r.newStart+Math.max(0,r.newLines-1));return Math.max(3,String(t).length+.5)}function XG(e){return e instanceof DOMException&&e.name==="AbortError"}function Xg(e){return typeof e!="number"||!Number.isFinite(e)?null:e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:e>=1024?`${Math.ceil(e/1024)} KB`:`${e} bytes`}function f2(e){if(e.tooLarge){const t=Xg(e.size),r=Xg(e.maxBytes);return`Diff is too large${t?` (${t}`:""}${r?`${t?", ":" ("}limit ${r}`:""}${t||r?")":""}.`}if(e.skippedFiles&&e.skippedFiles.length>0){const t=e.skippedFiles[0],r=Xg(t.size),n=e.skippedFiles.length>1?` and ${e.skippedFiles.length-1} more file(s)`:"";return t.reason==="binary-file"?`Binary file changed: ${t.path}${r?` (${r})`:""}. Content was not loaded${n}.`:`Skipped large untracked file ${t.path}${r?` (${r})`:""}${n}.`}return null}function N8(e){if(!e)return!1;let t=1;for(let r=0;r<e.length;r+=1)if(e.charCodeAt(r)===10&&(t+=1,t>EG))return!0;return!1}function JG(e){return e==="unified"||e==="split"}function ez(){return Qn(C8,JG)??"unified"}function tz(e,t){return typeof e!="number"||!Number.isFinite(e)||e<=0?null:new Intl.DateTimeFormat(t==="zh"?"zh-CN":"en",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(new Date(e))}function rz(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia(_8).matches}function nz(){const{t:e}=Fn(),[t,r]=A.useState(!1);return t?null:c.jsxs("button",{type:"button",onClick:()=>r(!0),className:"flex w-full items-center justify-center gap-1.5 border-b border-border/15 bg-surface-2/40 px-2 py-1 text-[10px] text-muted-foreground transition active:scale-[0.99] hover:bg-surface-2 hover:text-foreground",title:e("rightSidebar.horizontalScrollHint"),children:[c.jsx(bk,{size:11,className:"shrink-0"}),c.jsx("span",{className:"truncate",children:e("rightSidebar.horizontalScrollHint")})]})}function D8({filePath:e,repoRoot:t,referenceFilePath:r,interactionId:n,requestSlotId:s,changedFile:i,onInsertDiffReference:a,onReferenceCopied:u,insertedReferenceKey:d,copiedReferenceKey:f,wrap:g=!1,showScrollHint:b=!1,reloadKey:x=0,embedded:v=!1,active:w=!0,lightweight:T=!1,auditRecords:_,diffOverride:M,preparedDiff:N,viewType:B,inlineMode:R="words",diffOptions:C,oldSourceOverride:E,onClearAuditRecord:D,onContentReady:H,onSummaryChange:U}){const{t:G,locale:W}=Fn(),[J,ee]=A.useState(()=>ez()),[ce,Te]=A.useState(()=>rz()),[Me,Se]=A.useState(null),[oe,ae]=A.useState(null),[pe,Ge]=A.useState(!1),[he,Qe]=A.useState(null),[qe,at]=A.useState([]),[ke,ie]=A.useState(()=>new Map),[je,Ne]=A.useState(null),[_e,me]=A.useState(()=>new Set),[Pe,ut]=A.useState(null),Ee=ct(ft=>ft.rootPath),Ze=A.useRef(x),ze=s0(u),we=(B??J)==="split"&&ce?"split":"unified";A.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const ft=window.matchMedia(_8),Ke=()=>Te(ft.matches);return Ke(),ft.addEventListener?.("change",Ke),()=>ft.removeEventListener?.("change",Ke)},[]);const De=A.useCallback(ft=>{ee(ft),Sr(C8,ft)},[]),mt=i?.repoRoot??null,Lt=i?.status??null,lr=mt??t??Ee,Mt=mt??t??Ee,or=r??i?.absolutePath??I8(Mt,e);A.useEffect(()=>{if(N!==void 0){Ne(null);return}if(E!==void 0){Ne(E);return}const ft=mt??t??Ee;if(!w||M||!ft||!e||i?.untracked||Lt==="added"){Ne(null);return}const Ke=new AbortController;return H6(e,ft,"HEAD",Ke.signal,"ref").then(It=>{Ke.signal.aborted||Ne(It.truncated||It.error?null:It.content)}).catch(()=>{Ke.signal.aborted||Ne(null)}),()=>Ke.abort()},[w,i?.untracked,mt,Lt,M,e,E,N,t,Ee]),A.useEffect(()=>{if(N!==void 0)return;if(M!==void 0){Se(M),ae(null),Qe(null),Ge(!1),ut(null);return}if(!w){Ge(!1),Hs("effect_skip_inactive",{interactionId:n,requestSlotId:s,filePath:e,repoRoot:t,changedFileRepoRoot:mt,rootPath:Ee});return}let ft=!1,Ke=null;const vt=new AbortController,It=e,lt=mt??t??(It?.startsWith("/")?null:Ee),vr=++MG,ir=`diff-${Date.now().toString(36)}-${(++RG).toString(36)}`;let gr=!1;const Lr=performance.now(),xr=(Nt,Yr={})=>{gr||(gr=!0,Af("end",{loadingId:vr,interactionId:n,requestSlotId:s,traceId:ir,reason:Nt,durationMs:Math.round(performance.now()-Lr),filePath:It,gitRoot:lt,...Yr}))},ue=PG(It,lt),Ln=It&<&&!It.startsWith("/")?`${lt}/${It}`:It,tt=Ze.current!==x;if(Ze.current=x,It&&!lt){Hs("effect_wait_for_repo_root",{interactionId:n,requestSlotId:s,traceId:ir,filePath:It,repoRoot:t,changedFileRepoRoot:mt,rootPath:Ee}),Se(null),ae(null),Qe(null),ut(null),Ge(!1),xr("waiting_for_repo_root");return}const Rt=BG(ue,lt??void 0,C);Af("start",{loadingId:vr,interactionId:n,requestSlotId:s,traceId:ir,filePath:It,requestPath:ue,gitRoot:lt,readablePath:Ln,forceReload:tt,hasCachedDiff:!!Rt,embedded:v,active:w});const dn=window.setTimeout(()=>{gr||ft||Af("still_active",{loadingId:vr,interactionId:n,requestSlotId:s,traceId:ir,filePath:It,requestPath:ue,gitRoot:lt,durationMs:Math.round(performance.now()-Lr),hasCachedDiff:!!Rt,controllerAborted:vt.signal.aborted,abortReason:vt.signal.aborted?String(vt.signal.reason??""):void 0,cacheSize:Co.size,promiseSize:oo.size})},3e3),wr=window.setTimeout(()=>{gr||ft||(Af("still_active_long",{loadingId:vr,interactionId:n,requestSlotId:s,traceId:ir,filePath:It,requestPath:ue,gitRoot:lt,durationMs:Math.round(performance.now()-Lr),hasCachedDiff:!!Rt,controllerAborted:vt.signal.aborted,abortReason:vt.signal.aborted?String(vt.signal.reason??""):void 0,cacheSize:Co.size,promiseSize:oo.size}),Qe("Diff response is taking too long to finish in the browser. Try selecting the file again."),Ge(!1),xr("client_watchdog_timeout"))},1e4);Hs("effect_start",{interactionId:n,requestSlotId:s,traceId:ir,loadingId:vr,filePath:It,requestPath:ue,gitRoot:lt,readablePath:Ln,forceReload:tt,hasCachedDiff:!!Rt,cachedBytes:Rt?.diff?.length??0}),Se(Rt?.diff??null),ae(Rt?f2(Rt):null),Ge(!Rt),Qe(Rt?.error??null),ut(null);const dr=()=>(tt&&Rt?k8(ue,lt??void 0,C):E8(ue,lt??void 0,vt.signal,tt,ir,n,s,C)).then(Nt=>{if(ft)return;const Yr=f2(Nt),on=N8(Nt.diff);ae(on?"Diff has too many lines to preview safely.":Yr),Se(Nt.tooLarge||on?"":Nt.diff),Qe(Nt.error??null),Hs("state_set_result",{interactionId:n,requestSlotId:s,traceId:ir,loadingId:vr,filePath:It,requestPath:ue,gitRoot:lt,bytes:Nt.diff?.length??0,tooLargeToRender:on,resultTooLarge:!!Nt.tooLarge,error:Nt.error??null})}).catch(Nt=>{if(ft||XG(Nt))return;const Yr=Nt instanceof Error?Nt.message:"Failed to load diff";Rt?.diff?(ae(Yr),Qe(null)):(Se(null),ae(null),Qe(Yr)),Hs("state_set_error",{interactionId:n,requestSlotId:s,traceId:ir,filePath:It,requestPath:ue,gitRoot:lt,error:Yr,hadCachedDiff:!!Rt?.diff})}).finally(()=>{ft||Ge(!1),xr(ft?"cancelled_finally":"finally"),Hs("load_text_finally",{interactionId:n,requestSlotId:s,traceId:ir,loadingId:vr,filePath:It,requestPath:ue,gitRoot:lt,cancelled:ft})});return Rt&&!tt?(Ge(!1),xr("cache_hit")):Rt&&tt?dr():jG(Ln,Lt?{status:Lt}:null)?U6(Ln,vt.signal,"view_diff_image",s?`${s}:image`:void 0).then(Nt=>{ft||(Ke=URL.createObjectURL(Nt.blob),ut({objectUrl:Ke,size:Nt.size,mimeType:Nt.mimeType}),xr("image_preview_loaded",{bytes:Nt.size,mimeType:Nt.mimeType}))}).catch(()=>{if(!(ft||vt.signal.aborted))return dr()}).finally(()=>{ft||Ge(!1),ft&&xr("image_cancelled_finally")}):dr(),()=>{ft=!0,vt.abort(),di(s),window.clearTimeout(dn),window.clearTimeout(wr),Ke&&URL.revokeObjectURL(Ke),xr("cleanup"),Hs("effect_cleanup",{interactionId:n,requestSlotId:s,traceId:ir,loadingId:vr,filePath:It,requestPath:ue,gitRoot:lt,loadingEnded:gr,signalAborted:vt.signal.aborted,abortReason:vt.signal.aborted?String(vt.signal.reason??""):void 0,cacheSize:Co.size,promiseSize:oo.size})}},[w,mt,Lt,C,M,e,n,N,x,t,s,Ee]),A.useEffect(()=>{if(N!==void 0)return;if(!Me||Me.trim()===""){at([]),ie(new Map);return}let ft=!1;const Ke=performance.now();return w8(Me,T?"none":R,je??void 0,B5(e)??void 0).then(vt=>{ft||(at(vt.files),ie(vt.tokens),Hs("worker_parse_done",{filePath:e,bytes:Me.length,files:vt.files.length,parseMs:vt.parseMs,tokenizeMs:vt.tokenizeMs,durationMs:Math.round(performance.now()-Ke)}))}).catch(vt=>{ft||(at([]),ie(new Map),Qe(vt instanceof Error?vt.message:String(vt)),Hs("worker_parse_error",{filePath:e,bytes:Me.length,durationMs:Math.round(performance.now()-Ke),error:vt instanceof Error?vt.message:String(vt)}))}),()=>{ft=!0}},[Me,e,R,T,je,N]);const de=N!==void 0?N?.diffContent??null:Me,ye=N!==void 0?N?.diffNotice??null:oe,Ve=N!==void 0?N?.diffError??null:he,Ct=Ve?.toLowerCase().includes("signal is aborted")?null:Ve,Vt=N!==void 0?!1:pe,st=N!==void 0?N?.files??[]:qe;A.useEffect(()=>{!w||Vt||de===null&&!Ct&&!Pe&&M===void 0&&N===void 0||H?.()},[w,de,Ct,Vt,M,Pe,H,N]);const er=_??[],Fe=N!==void 0?N?.tokens??new Map:ke,jt=A.useMemo(()=>{let ft=0,Ke=0;for(const vt of st)for(const It of vt.hunks)for(const lt of It.changes)lt.type==="insert"&&(ft+=1),lt.type==="delete"&&(Ke+=1);return{additions:ft,deletions:Ke}},[st]);A.useEffect(()=>{U&&U(st.length>0?{files:st.length,...jt}:null)},[st.length,U,jt]);const et=A.useMemo(()=>{const ft=new Map;for(const Ke of st){let vt=0,It=0;for(const lt of Ke.hunks)for(const vr of lt.changes)vr.type==="insert"&&(vt+=1),vr.type==="delete"&&(It+=1);ft.set(`${Ke.oldRevision}-${Ke.newRevision}-${Ke.newPath}`,{additions:vt,deletions:It})}return ft},[st]),Re=d3(e,{name:G("diffViewer.workingTree"),dir:G("diffViewer.allUnstaged")}),it=`diff:whole:${e??"all"}`,yt=A.useMemo(()=>{if(!de)return"";const ft={repoRoot:Mt,selectedFilePath:e,referenceFilePath:or},Ke=st.flatMap(vt=>{const It=vt.newPath&&!sl(vt.newPath)?vt.newPath:vt.oldPath&&!sl(vt.oldPath)?vt.oldPath:"unknown file",lt=Pa(It,ft);return vt.hunks.map((vr,ir)=>({filePath:lt,hunkIndex:ir,hunk:vr}))});return Yf(QG(de,st,ft),{hunks:Ke})},[de,e,st,Mt,or]),Et=A.useCallback(()=>{!yt||!a||a(e?`${Re.name} diff`:G("diffViewer.allDiffLabel"),yt,it)},[e,a,G,Re.name,it,yt]),xe=A.useMemo(()=>{const ft=new Map;for(const Ke of st)for(const vt of Ke.hunks){const It=T?[]:vt.changes.filter(ir=>ir.type==="delete").map(ir=>({content:ir.content,lineNumber:ir.lineNumber})),lt=T?[]:vt.changes.filter(ir=>ir.type==="insert").map(ir=>({content:ir.content,lineNumber:ir.lineNumber})),vr=T?[]:vG(It,lt);ft.set(vt,{hunkSections:T?[]:$G(vt),movedCandidates:vr,movedOldLines:new Set(vr.map(ir=>ir.oldLineNumber)),movedNewLines:new Set(vr.map(ir=>ir.newLineNumber)),importOnlyHunk:zG(vt),displayHunk:we==="split"?WG(vt):vt})}return ft},[st,T,we]),Bt=ft=>c.jsx(c.Fragment,{children:st.map(Ke=>{const vt=`${Ke.oldRevision}-${Ke.newRevision}-${Ke.newPath}`,It=et.get(vt)??{additions:0,deletions:0},lt=Ke.newPath&&!sl(Ke.newPath)?Ke.newPath:Ke.oldPath&&!sl(Ke.oldPath)?Ke.oldPath:"unknown file",vr={repoRoot:Mt,selectedFilePath:e,referenceFilePath:or},ir=Pa(lt,vr),gr=Pa(Ke.oldPath||lt,vr),Lr=Pa(Ke.newPath||lt,vr),xr=d3(lt,{name:"unknown file",dir:""}),ue=!ft||st.length>1,Ln=[`diff --git ${Ql("a",gr)} ${Ql("b",Lr)}`,...Ke.hunks.flatMap(dr=>[dr.content,...dr.changes.map(Dd)])].join(`
|
|
156
156
|
`),tt=Yf(Ln,{hunks:Ke.hunks.map((dr,Nt)=>({filePath:ir,hunkIndex:Nt,hunk:dr}))}),Rt=`diff:file:${lt}`,dn=d===Rt||f===Rt,wr={"--termdock-diff-gutter-width":`${ZG(Ke.hunks)}ch`};return c.jsxs("div",{"data-diff-file-anchor":lt,className:v?"overflow-hidden bg-surface":"mt-3 border border-border/20 bg-surface",style:wr,children:[ue&&c.jsxs("div",{className:"sticky top-0 z-10 flex items-center justify-between gap-3 border-b border-border/15 bg-surface-2/95 px-2 py-1.5 backdrop-blur",children:[c.jsxs("div",{className:"min-w-0",title:Ke.newPath||Ke.oldPath,children:[c.jsx("div",{className:"truncate font-mono text-[11px] text-foreground",children:xr.name}),xr.dir&&c.jsx("div",{className:"truncate font-mono text-[10px] text-muted-foreground/70",children:xr.dir})]}),c.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[c.jsxs("span",{className:"text-[10px] font-medium text-[color:var(--diff-insert-strong)]",children:["+",It.additions]}),c.jsxs("span",{className:"text-[10px] font-medium text-[color:var(--diff-delete-strong)]",children:["-",It.deletions]}),a&&st.length>1&&c.jsx("button",{type:"button",onClick:()=>a(`${xr.name} diff`,tt,Rt),...ze(tt,Rt),className:`rounded-full px-2 py-0.5 text-[10px] font-semibold active:scale-95 ${dn?"bg-surface-elevated text-foreground":"bg-primary/10 text-primary hover:bg-primary/20"}`,title:G("diffViewer.insertFileDiff"),children:G(f===Rt?"rightSidebar.copied":d===Rt?"rightSidebar.inserted":"diffViewer.insertFileShort")}),c.jsx("span",{className:"text-[10px] font-medium uppercase tracking-[0.12em] text-muted-foreground",children:Ke.type})]})]}),b&&!g&&Ke.hunks.length>0&&c.jsx(nz,{}),Ke.hunks.length===0?c.jsxs("div",{className:"bg-surface-2 px-3 py-5 text-center text-xs text-muted-foreground",children:[c.jsx(kd,{size:18,className:"mx-auto mb-2 text-muted-foreground/80"}),G("diffViewer.binaryOrEmpty")]}):c.jsx("div",{className:`termdock-native-select overflow-x-auto termdock-diff-scroll ${we==="split"?"diff-split":""} ${g?"termdock-diff-wrap":""}`,children:c.jsx("div",{className:"min-w-full",children:Ke.hunks.map((dr,Nt)=>{const Yr=`diff --git ${Ql("a",gr)} ${Ql("b",Lr)}`,on=Yf([Yr,dr.content,...dr.changes.map(Dd)].join(`
|
|
157
157
|
`),{hunks:[{filePath:ir,hunkIndex:Nt,hunk:dr}]}),hn=UG(dr),Pr=qG(er,lr,lt,dr.content,hn),se=`diff:hunk:${lt}:${Nt}`,Ce=d===se||f===se,Ie=`${lt}\0${Nt}\0${dr.content}`,rt=xe.get(dr),dt=rt?.hunkSections??[],At=rt?.movedCandidates??[],Gt=rt?.importOnlyHunk??!1,hr=Gt&&!_e.has(Ie),kt=rt?.movedOldLines??new Set,rr=rt?.movedNewLines??new Set,qt=rt?.displayHunk??dr,Tr=dt.reduce((Yt,fr)=>{const Nr=M8(fr),bn=YG(er,lr,lt,dr.content,hn,fr.index,Nr),Rr=bn.current??bn.stale;if(!Rr&&!a)return Yt;const tn=KG(fr);if(!tn)return Yt;const Dr=`diff:section:${lt}:${Nt}:${fr.index}`,Vr=a?HG(ir,Nt,dr,fr,Yr):"",Mn=d===Dr||f===Dr,rn=a?c.jsx("button",{type:"button",onClick:()=>a(`${xr.name} hunk ${Nt+1}.${fr.index+1}`,Vr,Dr),...ze(Vr,Dr),className:`shrink-0 rounded px-1.5 py-0.5 text-[10px] font-medium transition active:scale-95 ${Mn?"bg-surface-elevated text-foreground":Rr?"text-primary/80 hover:bg-primary/10 hover:text-primary":"text-muted-foreground/45 hover:bg-surface-2 hover:text-muted-foreground"}`,title:Rr?Rr.summary??Rr.explanation:"Insert this hunk section",children:G(f===Dr?"rightSidebar.copied":d===Dr?"rightSidebar.inserted":"diffViewer.insertHunkShort")}):null;return Yt[tn]=c.jsx("div",{"data-diff-section-anchor":lt,"data-diff-section-audit":lt,"data-diff-hunk-index":Nt,"data-diff-section-index":fr.index,"data-diff-section-fingerprint":Nr,className:Rr?`mx-2 my-1 min-w-0 rounded-md border px-2 py-1.5 text-[11px] leading-relaxed ${g?"max-w-full overflow-hidden":"w-max"} ${bn.current?"border-primary/20 bg-primary/10 text-foreground":"border-[rgb(var(--warning-rgb)_/_0.26)] bg-[rgb(var(--warning-rgb)_/_0.12)] text-muted-foreground"}`:"mx-2 my-0.5 flex min-w-0 justify-end text-[10px] leading-none",children:Rr?c.jsxs(c.Fragment,{children:[(Rr.summary||rn||D)&&c.jsxs("div",{className:"mb-0.5 flex min-w-0 items-center gap-1.5",children:[Rr.summary?c.jsx("span",{className:"min-w-0 flex-1 truncate text-[10px] font-semibold text-foreground",children:Rr.summary}):c.jsx("span",{className:"min-w-0 flex-1"}),rn,D&&c.jsx("button",{type:"button",onClick:()=>D(Rr.id),className:"ml-auto shrink-0 rounded p-0.5 text-muted-foreground/60 transition hover:bg-surface-2 hover:text-foreground",title:G("diffViewer.auditClear"),children:c.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M18 6 6 18"}),c.jsx("path",{d:"m6 6 12 12"})]})})]}),c.jsx("div",{className:"termdock-diff-audit-explanation min-w-0",children:Rr.explanation})]}):rn}),Yt},{}),mr=({changes:Yt,defaultGenerate:fr})=>{const Nr=fr();return Yt.some(Rr=>{const tn=Iu(Rr);return tn===null?!1:Rr?.type==="delete"?kt.has(tn):Rr?.type==="insert"&&rr.has(tn)})?`${Nr} diff-line-moved`:Nr};return c.jsxs("div",{className:`diff-hunk ${Gt?"diff-hunk-imports":""}`,"data-diff-hunk-anchor":lt,"data-diff-hunk-index":Nt,"data-diff-hunk-fingerprint":hn,children:[c.jsxs("div",{className:"diff-decoration diff-hunk-meta-row bg-[rgba(var(--diff-accent-rgb),0.035)] px-2 py-1",children:[c.jsxs("div",{className:`diff-hunk-header flex min-w-0 items-center gap-2 ${g?"max-w-full flex-wrap overflow-hidden":"w-max whitespace-nowrap"}`,children:[a&&c.jsx("button",{type:"button",onClick:()=>a(`${xr.name} hunk ${Nt+1}`,on,se),...ze(on,se),className:`inline-flex h-6 shrink-0 items-center rounded-full px-2 text-[10px] font-semibold active:scale-95 ${Ce?"bg-surface-elevated text-foreground":"bg-primary/15 text-primary hover:bg-primary/25"}`,title:G("diffViewer.insertHunkDiff"),children:G(f===se?"rightSidebar.copied":d===se?"rightSidebar.inserted":"diffViewer.insertHunkShort")}),c.jsx("span",{className:"min-w-0 flex-1 truncate",children:dr.content}),At.length>0&&c.jsxs("span",{className:"shrink-0 rounded bg-surface-2 px-1.5 py-0.5 text-[10px] font-semibold text-[color:var(--diff-hunk-accent)]",title:At.map(Yt=>`-${Yt.oldLineNumber} -> +${Yt.newLineNumber}`).join(", "),children:["moved ",At.length]}),Gt&&c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"shrink-0 rounded bg-surface-2 px-1.5 py-0.5 text-[10px] font-semibold text-muted-foreground",children:"imports"}),c.jsx("button",{type:"button",onClick:()=>{me(Yt=>{const fr=new Set(Yt);return fr.has(Ie)?fr.delete(Ie):fr.add(Ie),fr})},className:"shrink-0 rounded bg-surface-2 px-1.5 py-0.5 text-[10px] font-semibold text-muted-foreground transition hover:text-foreground",children:hr?"show":"hide"})]})]}),hr&&c.jsx("div",{className:"mt-1 rounded bg-surface-2 px-2 py-1 text-[10px] text-muted-foreground",children:"Import-only changes collapsed."}),(Pr.current||Pr.stale)&&(()=>{const Yt=Pr.current??Pr.stale,fr=tz(Yt?.injectedAt,W);return c.jsxs("div",{className:`mt-1 min-w-0 rounded-md border px-2 py-1.5 text-[11px] leading-relaxed ${g?"max-w-full overflow-hidden":"w-max"} ${Pr.current?"border-primary/20 bg-primary/10 text-foreground":"border-[rgb(var(--warning-rgb)_/_0.26)] bg-[rgb(var(--warning-rgb)_/_0.12)] text-muted-foreground"}`,children:[c.jsxs("div",{className:"mb-0.5 flex min-w-0 items-center gap-1.5",children:[c.jsx("span",{className:"font-semibold text-foreground",children:Pr.current?G("diffViewer.auditExplanation"):G("diffViewer.auditStale")}),c.jsx("span",{className:"font-mono text-[10px] text-muted-foreground",children:Pr.fingerprint}),fr&&c.jsx("span",{className:"truncate text-[10px] text-muted-foreground/70",children:G("diffViewer.auditGeneratedAt",{time:fr})}),D&&c.jsx("button",{type:"button",onClick:()=>Yt&&D(Yt.id),className:"ml-auto shrink-0 rounded p-0.5 text-muted-foreground/60 transition hover:bg-surface-2 hover:text-foreground",title:G("diffViewer.auditClear"),children:c.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M18 6 6 18"}),c.jsx("path",{d:"m6 6 12 12"})]})})]}),c.jsx("div",{className:"termdock-diff-audit-explanation min-w-0",children:Pr.current?.explanation??Pr.stale?.explanation})]})})()]}),!hr&&c.jsx(gG,{viewType:we,diffType:Ke.type,hunks:[qt],tokens:Fe.get(vt),generateLineClassName:mr,widgets:Tr,children:Yt=>Yt.map(fr=>c.jsx(y8,{hunk:fr},fr.content))})]},dr.content)})})})]},vt)})});if(Vt)return v?c.jsxs("div",{className:"flex items-center justify-center gap-2 bg-surface-2 py-6 text-xs text-muted-foreground",children:[c.jsx(Or,{size:18,className:"animate-spin"}),c.jsx("span",{children:G("diffViewer.loading")})]}):c.jsxs("div",{className:"mx-3 mt-3 flex items-center justify-center gap-2 border border-border/15 bg-surface-2 py-8 text-sm text-muted-foreground",children:[c.jsx(Or,{size:20,className:"animate-spin"}),c.jsx("span",{children:G("diffViewer.loading")})]});if(Ct)return v?c.jsx("div",{className:"bg-destructive/5 px-3 py-3 text-xs text-destructive",children:Ct}):c.jsx("div",{className:"mx-3 mt-3 border border-destructive/20 bg-destructive/5 px-4 py-4 text-sm text-destructive",children:Ct});if(ye&&!de)return v?c.jsx("div",{className:"bg-[rgb(var(--warning-rgb)_/_0.12)] px-3 py-3 text-xs text-[color:var(--warning)]",children:ye}):c.jsx("div",{className:"mx-3 mt-3 border border-[rgb(var(--warning-rgb)_/_0.24)] bg-[rgb(var(--warning-rgb)_/_0.12)] px-4 py-4 text-sm text-[color:var(--warning)]",children:ye});if(Pe){const ft=c.jsxs("div",{className:"bg-surface p-3",children:[c.jsxs("div",{className:"mb-2 flex flex-wrap items-center gap-2 text-[10px] text-muted-foreground",children:[c.jsx("span",{children:G("rightSidebar.imagePreviewHint")}),Pe.size!==null&&c.jsxs("span",{children:[Pe.size.toLocaleString()," bytes"]}),c.jsx("span",{children:Pe.mimeType}),Pe.dimensions&&c.jsxs("span",{children:[Pe.dimensions.width," × ",Pe.dimensions.height]})]}),c.jsx("div",{className:"flex min-h-64 items-center justify-center",children:c.jsx("img",{src:Pe.objectUrl,alt:Re.name,className:"max-h-[70vh] max-w-full rounded border border-border/15 bg-surface object-contain shadow-sm",onLoad:Ke=>{const vt=Ke.currentTarget;ut(It=>It&&{...It,dimensions:{width:vt.naturalWidth,height:vt.naturalHeight}})},onError:()=>Qe(G("rightSidebar.imageLoadFailed"))})})]});return v?c.jsxs("div",{className:"termdock-native-select overflow-hidden bg-surface",children:[ze.popoverNode,ft]}):c.jsxs("div",{className:"termdock-diff px-3 py-2",children:[ze.popoverNode,c.jsxs("div",{className:"border-b border-border/15 px-1 pb-2",children:[c.jsx("div",{className:"truncate text-sm font-medium text-foreground",title:e??void 0,children:Re.name}),c.jsx("div",{className:"mt-0.5 flex min-w-0 items-center gap-2 text-[11px] text-muted-foreground",children:Re.dir&&c.jsx("span",{className:"min-w-0 truncate",children:Re.dir})})]}),c.jsx("div",{className:"mt-3 overflow-hidden border border-border/20 bg-surface",children:ft})]})}const Dt=ye?c.jsx("div",{className:"mb-2 border border-[rgb(var(--warning-rgb)_/_0.24)] bg-[rgb(var(--warning-rgb)_/_0.12)] px-3 py-2 text-xs text-[color:var(--warning)]",children:ye}):null;if(st.length===0)return v?c.jsxs("div",{className:"bg-surface-2 px-3 py-5 text-center text-xs text-muted-foreground",children:[c.jsx(kd,{size:20,className:"mx-auto mb-2 text-muted-foreground/80"}),G(e?"diffViewer.noFileChanges":"diffViewer.noUnstagedChanges")]}):c.jsxs("div",{className:"mx-3 mt-3 border border-border/15 bg-surface-2 px-4 py-8 text-center text-sm text-muted-foreground",children:[c.jsx(kd,{size:24,className:"mx-auto mb-2 text-muted-foreground/80"}),G(e?"diffViewer.noFileChanges":"diffViewer.noUnstagedChanges")]});if(v)return c.jsxs("div",{className:"termdock-diff termdock-native-select termdock-diff-card-mobile overflow-hidden rounded-b-xl","data-diff-viewer":!0,"data-diff-view-type":we,"data-diff-inline-mode":R,children:[ze.popoverNode,Dt,Bt(!0)]});const Cr=d===it||f===it;return c.jsxs("div",{className:"termdock-diff termdock-native-select px-3 py-2","data-diff-viewer":!0,"data-diff-view-type":we,"data-diff-inline-mode":R,children:[ze.popoverNode,c.jsx("div",{className:"sticky top-0 z-10 border-b border-border/15 bg-surface/95 px-1 pb-2 pt-0 backdrop-blur",children:c.jsxs("div",{className:"flex items-start justify-between gap-2",children:[c.jsxs("div",{className:"min-w-0",children:[c.jsx("div",{className:"truncate text-sm font-medium text-foreground",title:e??void 0,children:Re.name}),c.jsxs("div",{className:"mt-0.5 flex min-w-0 items-center gap-2 text-[11px] text-muted-foreground",children:[Re.dir&&c.jsx("span",{className:"min-w-0 truncate",children:Re.dir}),c.jsxs("span",{children:[st.length," file",st.length>1?"s":""]}),c.jsxs("span",{className:"text-[color:var(--diff-insert-strong)]",children:["+",jt.additions]}),c.jsxs("span",{className:"text-[color:var(--diff-delete-strong)]",children:["-",jt.deletions]})]})]}),c.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[c.jsxs("div",{className:"inline-flex h-7 shrink-0 overflow-hidden rounded-full bg-surface-2 p-0.5","aria-label":G("diffViewer.view"),children:[c.jsx("button",{type:"button",onClick:()=>De("unified"),"aria-pressed":we==="unified",className:`inline-flex h-6 items-center rounded-full px-2 text-[10px] font-semibold transition active:scale-95 ${we==="unified"?"bg-surface-elevated text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,title:G("diffViewer.unifiedMode"),children:G("diffViewer.unified")}),c.jsx("button",{type:"button",onClick:()=>De("split"),disabled:!ce,"aria-pressed":we==="split",className:`inline-flex h-6 items-center rounded-full px-2 text-[10px] font-semibold transition active:scale-95 disabled:cursor-not-allowed disabled:opacity-45 ${we==="split"?"bg-surface-elevated text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,title:G(ce?"diffViewer.splitMode":"diffViewer.unifiedMode"),children:G("diffViewer.split")})]}),a&&c.jsx("button",{type:"button",onClick:Et,...ze(yt,it),className:`inline-flex h-8 shrink-0 items-center rounded-full px-3 text-[11px] font-semibold transition active:scale-95 ${Cr?"bg-surface-elevated text-foreground":"bg-primary/15 text-primary hover:bg-primary/25"}`,title:G("diffViewer.insertAllDiff"),children:G(f===it?"rightSidebar.copied":d===it?"rightSidebar.inserted":"diffViewer.insertAllShort")})]})]})}),Dt,Bt(!1)]})}function sz({file:e,repoRoot:t,selectionPath:r,displayName:n,displayDir:s,selected:i,activePane:a,eager:u=!1,lightweight:d=!1,wrap:f,showScrollHint:g,viewType:b,inlineMode:x,diffOptions:v,reloadKey:w=0,auditRecords:T,diffOverride:_,preparedDiff:M,renderBadge:N,onInsertDiffReference:B,onReferenceCopied:R,insertedReferenceKey:C,copiedReferenceKey:E,onVisibleChange:D,onClearAuditRecord:H,onContentReady:U}){const G=A.useRef(null),[W,J]=A.useState(u),ee=e.absolutePath||(t?`${t}/${e.path}`:e.path);return A.useEffect(()=>{if(u){J(!0);return}const ce=G.current;if(!ce||typeof IntersectionObserver>"u"){J(!0);return}const Te=iz(ce),Me=new IntersectionObserver(Se=>{const oe=Se.some(ae=>ae.isIntersecting);J(ae=>ae||oe),D?.(oe)},{root:Te,rootMargin:"3000px 0px 3000px 0px"});return Me.observe(ce),()=>Me.disconnect()},[u,D]),c.jsxs("div",{ref:G,"data-diff-stream-item":r,"data-diff-selection-path":r,"data-diff-file-path":e.path,"data-diff-absolute-path":ee,className:`scroll-mt-3 border-b border-border/15 last:border-b-0 ${i?"bg-surface-elevated/35":""}`,children:[c.jsxs("div",{className:`sticky top-0 z-10 flex min-w-0 items-center gap-2 border-b border-border/15 px-3 py-2 backdrop-blur ${i?"bg-surface-elevated/95":"bg-surface/95"}`,children:[N(e.status),c.jsxs("div",{className:"min-w-0 flex-1",title:ee,children:[c.jsx("div",{className:"truncate text-xs font-semibold text-foreground",children:n}),s&&c.jsx("div",{className:"truncate text-[10px] text-muted-foreground",children:s})]})]}),W?c.jsx(D8,{active:a&&W,repoRoot:t,filePath:e.path,referenceFilePath:ee,changedFile:e,wrap:f,showScrollHint:g,viewType:b,inlineMode:x,diffOptions:v,reloadKey:w,embedded:!0,lightweight:d,auditRecords:T,diffOverride:_,preparedDiff:M,onClearAuditRecord:H,onContentReady:()=>U?.(r),onInsertDiffReference:B,onReferenceCopied:R,insertedReferenceKey:C,copiedReferenceKey:E}):c.jsx("div",{className:"flex h-full items-center justify-center bg-surface px-3 py-6 text-center text-xs text-muted-foreground",children:e.path})]})}function iz(e){let t=e.parentElement;for(;t;){if(t.classList.contains("termdock-diff-stream-scroller"))return t;t=t.parentElement}return null}const f3=160,oz={added:{label:"A",className:"text-[color:var(--diff-insert-strong)]",title:"Added"},modified:{label:"M",className:"text-[color:var(--diff-hunk-accent)]",title:"Modified"},deleted:{label:"D",className:"text-[color:var(--diff-delete-strong)]",title:"Deleted"},renamed:{label:"R",className:"text-muted-foreground",title:"Renamed"},copied:{label:"C",className:"text-[color:var(--diff-insert-strong)]",title:"Copied"},untracked:{label:"U",className:"text-[color:var(--diff-insert-strong)]",title:"Untracked (new file)"},conflicted:{label:"!",className:"text-destructive",title:"Conflicted"},unknown:{label:"?",className:"text-muted-foreground",title:"Unknown"}};function Mu({status:e}){const t=oz[e]??{label:"?",className:"text-muted-foreground",title:e};return c.jsx("span",{className:`w-4 shrink-0 text-center text-[10px] font-mono font-bold ${t.className}`,title:t.title,children:t.label})}function Bd({files:e,groups:t,selectedKey:r,onSelectFile:n,mode:s,onModeChange:i,collapsedDirectoryKeys:a,onToggleDirectory:u,renderLeading:d,renderTrailing:f,renderSubtitle:g,renderStreamBadge:b,onInsertDiffReference:x,onReferenceCopied:v,insertedReferenceKey:w,copiedReferenceKey:T,onClearAuditRecord:_,mobile:M,backLabel:N,compact:B,desktopLayout:R,wrap:C,showScrollHint:E,diffViewType:D,inlineMode:H,diffOptions:U,activePane:G,reloadKey:W=0,renderListHeader:J,renderMobileDetailHeader:ee,emptyContent:ce,listPrefix:Te,aiContent:Me,listContainerClassName:Se,detailContainerClassName:oe,desktopSidePanel:ae,desktopListClassName:pe,onDetailScroll:Ge,initialDetailScrollTop:he,scrollToKey:Qe,scrollToKeyNonce:qe=0,externalSwiperRef:at,onMobileSlideChange:ke,slideToDetailOnMobile:ie}){const je=A.useMemo(()=>Fe=>r===Fe.key||r===Fe.path||r===Fe.absolutePath,[r]),Ne=A.useMemo(()=>{const Fe=new Map;for(const Re of e)Fe.set(Re.key,Re),Re.path&&Fe.set(Re.path,Re),Re.absolutePath&&Fe.set(Re.absolutePath,Re);const jt=[],et=new Set;for(const Re of t){const it=s==="tree"?K7(Re.files):Re.files;for(const yt of it){const Et=Fe.get(yt.key);!Et||et.has(Et.key)||(jt.push(Et),et.add(Et.key))}}for(const Re of e)et.has(Re.key)||jt.push(Re);return jt},[e,t,s]),_e=A.useRef(null),me=A.useRef(0),Pe=A.useRef(null),ut=A.useRef(null),Ee=A.useRef(0),[Ze,ze]=A.useState(null),[we,De]=A.useState(null),[mt,Lt]=A.useState(0),lr=A.useMemo(()=>U?{algorithm:U.algorithm,whitespace:U.whitespace}:void 0,[U?.algorithm,U?.whitespace]),Mt=Ne.map(Fe=>[Fe.key,Fe.path,Fe.status,Fe.repoRoot??"",Fe.diffOverride??""].join("")).join(""),or=A.useMemo(()=>Ne.map(Fe=>[Fe.key,Fe.path,Fe.status,Fe.repoRoot??"",Fe.diffOverride??"",U?.algorithm??"default",U?.whitespace??"default",H??"words",mt].join("")).join(""),[Ne,mt,U?.algorithm,U?.whitespace,H]);A.useEffect(()=>{if(ze(null),De(null),Ne.length===0){ze({key:or,files:[],preparedDiffs:new Map});return}let Fe=!1;const jt=new AbortController,et=async Re=>{const it=Re.repoRoot,yt=p2(Re.path,it);try{const Et=Re.diffOverride!==void 0?{path:Re.path,diff:Re.diffOverride??"",error:void 0,tooLarge:!1}:await E8(yt,it??void 0,jt.signal,!1,void 0,void 0,void 0,lr),xe=Re.diffOverride!==void 0?null:f2(Et),Bt=N8(Et.diff),Dt=Et.tooLarge||Bt?"":Et.diff;if(!Dt||Dt.trim()==="")return{key:Re.key,diffContent:Dt,diffNotice:Bt?"Diff has too many lines to preview safely.":xe,diffError:Et.error??null,files:[],tokens:new Map};const Cr=await lz(Re,jt.signal),ft=await w8(Dt,H??"words",Cr??void 0);return{key:Re.key,diffContent:Dt,diffNotice:Bt?"Diff has too many lines to preview safely.":xe,diffError:Et.error??null,files:ft.files,tokens:ft.tokens}}catch(Et){if(jt.signal.aborted||uz(Et))throw Et;return{key:Re.key,diffContent:null,diffNotice:null,diffError:Et instanceof Error?Et.message:String(Et),files:[],tokens:new Map}}};return Promise.all(Ne.map(et)).then(Re=>{Fe||ze({key:or,files:Ne,preparedDiffs:new Map(Re.map(it=>[it.key,it]))})}).catch(Re=>{Fe||De(Re instanceof Error?Re.message:String(Re))}).finally(()=>{}),()=>{Fe=!0,jt.abort()}},[or]),A.useEffect(()=>{if(W===0||Ne.length===0)return;const Fe=me.current+1;me.current=Fe;const jt=Ne.filter(et=>et.diffOverride===void 0).map(et=>{const Re=et.repoRoot,it=p2(et.path,Re);return k8(it,Re??void 0,lr)});jt.length!==0&&Promise.allSettled(jt).then(()=>{me.current===Fe&&Lt(et=>et+1)})},[Mt,W,lr]);const de=A.useCallback(Fe=>{_e.current=Fe,!(performance.now()<Ee.current)&&Ge?.(Fe)},[Ge]),ye=Ze?.key===or?Ze:null,Ve=ye?.files??[],Ct=ye?.preparedDiffs??null;A.useEffect(()=>{if(!Qe||Pe.current===qe)return;const Fe=Ve.find(et=>Qe===et.key||Qe===et.path||Qe===et.absolutePath);if(!Fe)return;const jt=window.requestAnimationFrame(()=>{const et=_e.current;if(!et)return;const Re=et.querySelector(`[data-diff-stream-item="${CSS.escape(Fe.key)}"]`);if(!Re)return;Pe.current=qe;const it=et.getBoundingClientRect(),yt=Re.getBoundingClientRect();if(yt.top>=it.top&&yt.top<it.bottom)return;const Et=yt.top-it.top+et.scrollTop;Ee.current=performance.now()+f3,et.scrollTo({top:Math.max(0,Et),behavior:"instant"})});return()=>window.cancelAnimationFrame(jt)},[Ve,Qe,qe]),A.useEffect(()=>{if(he===void 0)return;const Fe=`${ye?.key??or}\0${r??""}`;if(ut.current===Fe)return;const jt=_e.current;if(!jt)return;const et=Math.max(0,he),Re=window.requestAnimationFrame(()=>{ut.current=Fe,Ee.current=performance.now()+f3,jt.scrollTo({top:et,behavior:"instant"})});return()=>window.cancelAnimationFrame(Re)},[ye?.key,or,he]);const Vt=A.useCallback((Fe,jt)=>{const et=je(Fe);return c.jsx(sz,{file:az(Fe),repoRoot:Fe.repoRoot,selectionPath:Fe.key,displayName:Fe.displayName,displayDir:Fe.displayDir,selected:et,activePane:G,eager:!0,lightweight:!1,wrap:C,showScrollHint:E,viewType:D,inlineMode:H,diffOptions:U,reloadKey:W,auditRecords:Fe.auditRecords,diffOverride:Fe.diffOverride,preparedDiff:jt,renderBadge:Re=>b(Re,Fe),onInsertDiffReference:Fe.onInsertDiffReference??x,onReferenceCopied:v,insertedReferenceKey:w,copiedReferenceKey:T,onClearAuditRecord:_})},[G,T,U,D,H,w,je,_,x,v,W,b,E,C]),st=we?c.jsx("div",{className:"flex h-full items-center justify-center bg-surface px-4 py-8 text-center text-xs text-destructive",children:we}):ye?c.jsx("div",{className:"termdock-diff-stream divide-y divide-border/15 bg-surface",children:Ve.map(Fe=>c.jsx("div",{children:Vt(Fe,Ct?.get(Fe.key)??cz())},Fe.key))}):c.jsx("div",{className:"flex h-full items-center justify-center bg-surface px-4 py-8 text-center text-xs text-muted-foreground",children:"正在准备完整 diff,完成后列表会一次性显示…"}),er=M?c.jsx("div",{ref:_e,className:"termdock-diff-stream termdock-diff-stream-scroller h-full max-h-full min-h-0 overflow-y-auto overscroll-contain bg-surface",onScroll:Fe=>de(Fe.currentTarget),children:st}):c.jsx("div",{ref:_e,className:"termdock-diff-stream termdock-diff-stream-scroller h-full max-h-full min-h-0 overflow-y-auto overscroll-contain bg-surface",onScroll:Fe=>de(Fe.currentTarget),children:st});return c.jsx(z$,{groups:t,mode:s,onModeChange:i,selectedKey:r,collapsedDirectoryKeys:a,onToggleDirectory:u,onSelectFile:n,renderLeading:d,renderTrailing:f,renderSubtitle:g,detail:er,mobile:M,backLabel:N,compact:B,emptyContent:ce,listPrefix:Te,aiContent:Me,listContainerClassName:Se,detailContainerClassName:oe,renderListHeader:J,renderMobileDetailHeader:ee,externalSwiperRef:at,onMobileSlideChange:ke,slideToDetailOnMobile:ie,desktopLayout:R,onDetailScroll:de,desktopSidePanel:ae,desktopListClassName:pe,detailOwnsScroll:!0})}function az(e){return{path:e.path,absolutePath:e.absolutePath,status:e.status}}function p2(e,t){if(e)return t&&e.startsWith(`${t}/`)?e.slice(t.length+1):e}async function lz(e,t){const r=e.repoRoot;if(!r||!e.path||e.diffOverride!==void 0||e.status==="added"||e.status==="untracked")return null;try{const n=p2(e.path,r);if(!n)return null;const s=await H6(n,r,"HEAD",t,"ref");return s.truncated||s.error?null:s.content}catch{return null}}function cz(){return{diffContent:null,diffNotice:null,diffError:null,files:[],tokens:new Map}}function uz(e){return e instanceof DOMException&&e.name==="AbortError"?!0:(e instanceof Error?e.message:String(e)).toLowerCase().includes("signal is aborted")}function dz(e,t){return e===t||t.endsWith(`/${e}`)||e.endsWith(`/${t}`)}function p3(e,t){return`${e??""}\0${t}`}function hz(e,t,r){if(!e||e.length===0||!r)return{explained:0,stale:0};const n=p3(t,r);let s=0,i=0;for(const a of e){const u=[a.filePath,a.newPath,a.oldPath].filter(f=>typeof f=="string"&&f.length>0);(u.some(f=>p3(a.repoRoot,f)===n)||u.some(f=>dz(f,r)))&&(s+=1)}return{explained:s,stale:i}}function fz({status:e}){if(!e)return null;const t=e.stale>0&&e.explained===0;if(!(e.explained>0||e.stale>0))return null;const n=t?"AI audit explanation is stale":"AI audit explanation available";return c.jsx("span",{className:`inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full ${t?"bg-[color:var(--warning)]/15 text-[color:var(--warning)]":"bg-accent/10 text-accent"}`,title:n,"aria-label":n,children:t?c.jsx(P2,{size:10}):c.jsx(Fl,{size:10})})}function m2({changeStatus:e,auditStatus:t,renderChangeBadge:r}){return c.jsxs("span",{className:"inline-flex items-center gap-1",children:[r(e),c.jsx(fz,{status:t})]})}function pz(e,t){return(t?e.filter(n=>n.repoRoot===t):e).slice().sort((n,s)=>s.injectedAt-n.injectedAt)[0]??null}function mz(e){switch(e){case"entry":case"source":return"bg-sky-400";case"ui":return"bg-fuchsia-400";case"risk":return"bg-destructive";case"test":return"bg-emerald-400";default:return"bg-primary"}}function gz(e){if(!e)return;const t=typeof e.sectionIndex=="number"?` section ${e.sectionIndex+1}`:"",r=typeof e.hunkIndex=="number"?` hunk ${e.hunkIndex+1}`:"";return`${e.filePath}${r}${t}`}function m3({anchor:e,children:t,onNavigate:r,className:n,style:s,elementRef:i}){return e?c.jsx("button",{ref:i,type:"button",onClick:()=>r(e),title:gz(e),className:`${n} text-left transition hover:border-primary/35 hover:bg-primary/15 active:scale-[0.99]`,style:s,children:t}):c.jsx("span",{ref:i,className:n,style:s,children:t})}const Zu=190,g2=92,g3=132,bz=28,Ac=16,b3=18,Jg=54,x3=24,B8=18,xz=8,Kf=24,_p=["rgb(var(--primary-rgb))","rgb(var(--accent-rgb))","rgb(var(--warning-rgb))","rgb(var(--success-rgb))","rgb(192 132 252)"];function y3(e){return _p[e%_p.length]}function yz(e,t){return`${e.from}->${e.to}:${t}`}function vz(e,t,r){const n=Math.max(t.get(e)?.length??0,r.get(e)?.length??0);return Math.max(g2,36+Math.max(0,n-1)*B8)}function v3(e,t,r){if(r<=1)return e.y+e.height/2;const n=Math.max(0,e.height-36),s=Math.min(n,(r-1)*B8);return e.y+e.height/2-s/2+s/(r-1)*t}function w3(e,t,r){return e.slice().sort((n,s)=>{const i=t[n],a=t[s],u=r==="from"?i.toNode:i.fromNode,d=r==="from"?a.toNode:a.fromNode;return u.y-d.y||u.index-d.index||i.index-a.index})}function wz(e,t){const r=new Map;for(const n of e){if(Math.abs(n.toNode.layer-n.fromNode.layer)!==1)continue;const s=`${n.fromNode.layer}:${n.toNode.layer}`,i=r.get(s)??[];i.push(n),r.set(s,i)}for(const n of r.values()){n.sort((d,f)=>(d.fromY+d.toY)/2-(f.fromY+f.toY)/2||d.index-f.index);const s=[];n.forEach((d,f)=>{const g=(d.fromY+d.toY)/2,b=Math.max(Kf,t[d.key]??0)/2;if(f===0){s.push(g);return}const x=n[f-1],v=Math.max(Kf,t[x.key]??0)/2;s.push(Math.max(g,s[f-1]+v+b+xz))});const i=s.reduce((d,f,g)=>d+f-(n[g].fromY+n[g].toY)/2,0)/Math.max(1,s.length),a=Math.min(...s.map((d,f)=>d-i-Math.max(Kf,t[n[f].key]??0)/2)),u=Math.max(0,Ac-a);n.forEach((d,f)=>{d.laneY=s[f]-i+u})}}function Az(e,t,r={},n={}){const s=new Map(e.map((R,C)=>[R.id,{node:R,index:C}])),i=t.filter(R=>s.has(R.from)&&s.has(R.to)),a=new Map,u=new Map;for(const R of e)a.set(R.id,[]),u.set(R.id,[]);for(const R of i)a.get(R.to)?.push(R.from),u.get(R.from)?.push(R.to);const d=new Map,f=new Set,g=R=>{const C=d.get(R);if(C!==void 0)return C;if(f.has(R))return 0;f.add(R);const E=a.get(R)??[],D=E.length===0?0:Math.max(...E.map(g))+1;return f.delete(R),d.set(R,D),D};for(const R of e)g(R.id);const b=new Map;for(const R of e){const C=d.get(R.id)??0,E=b.get(C)??[],D=s.get(R.id);D&&E.push(D),b.set(C,E)}const x=[];for(const[R,C]of b.entries()){C.sort((D,H)=>D.index-H.index);let E=Ac+Jg;C.forEach(({node:D,index:H},U)=>{const G=Math.max(vz(D.id,a,u),Math.ceil(r[D.id]??g2));x.push({node:D,index:H,layer:R,row:U,x:Ac+R*(Zu+g3),y:E,height:G}),E+=G+bz})}const v=new Map(x.map(R=>[R.node.id,R])),w=i.flatMap((R,C)=>{const E=v.get(R.from),D=v.get(R.to);return!E||!D?[]:[{...R,key:yz(R,C),index:C,fromNode:E,toNode:D,routeIndex:C,fromPortIndex:0,toPortIndex:0,fromY:E.y+E.height/2,toY:D.y+D.height/2,laneY:(E.y+E.height/2+D.y+D.height/2)/2}]}),T=new Map,_=new Map;w.forEach((R,C)=>{T.set(R.from,[...T.get(R.from)??[],C]),_.set(R.to,[..._.get(R.to)??[],C])});for(const[R,C]of T){const E=w3(C,w,"from");E.forEach((D,H)=>{const U=w[D];U.fromPortIndex=H,U.fromY=v3(v.get(R),H,E.length)})}for(const[R,C]of _){const E=w3(C,w,"to");E.forEach((D,H)=>{const U=w[D];U.toPortIndex=H,U.toY=v3(v.get(R),H,E.length)})}wz(w,n);let M=0;w.forEach(R=>{const C=Math.min(R.fromNode.layer,R.toNode.layer),E=Math.max(R.fromNode.layer,R.toNode.layer);if(E-C<=1)return;const H=M;M+=1,R.routeIndex=H;const U=x.filter(J=>J.layer>=C&&J.layer<=E),G=Math.min(...U.map(J=>J.y))-x3-(Math.floor(H/2)+1)*b3,W=Math.max(...U.map(J=>J.y+J.height))+x3+(Math.floor(H/2)+1)*b3;R.laneY=H%2===0?Math.max(Ac,G):W});const N=Math.max(0,...x.map(R=>R.layer)),B=Math.max(Ac+Jg+g2,...x.map(R=>R.y+R.height),...w.map(R=>R.laneY+Math.max(Kf,n[R.key]??0)/2));return{nodes:x,edges:w,width:Ac*2+(N+1)*Zu+N*g3,height:B+Ac+Jg}}function A3(e,t=12){const r=e[0];if(!r)return"";const n=[`M ${r.x} ${r.y}`];for(let s=1;s<e.length;s+=1){const i=e[s-1],a=e[s],u=e[s+1];if(!u){n.push(`L ${a.x} ${a.y}`);continue}const d=a.x-i.x,f=a.y-i.y,g=u.x-a.x,b=u.y-a.y,x=Math.abs(d)+Math.abs(f),v=Math.abs(g)+Math.abs(b);if(x===0||v===0||d&&g||f&&b){n.push(`L ${a.x} ${a.y}`);continue}const w=Math.min(t,x/2,v/2),T={x:a.x-Math.sign(d)*w,y:a.y-Math.sign(f)*w},_={x:a.x+Math.sign(g)*w,y:a.y+Math.sign(b)*w};n.push(`L ${T.x} ${T.y}`),n.push(`Q ${a.x} ${a.y} ${_.x} ${_.y}`)}return n.join(" ")}function Tz(e){const t=e.fromNode.x+Zu+8,r=e.fromY,n=e.toNode.x-8,s=e.toY,i=Math.abs(e.toNode.layer-e.fromNode.layer),a=t+22+e.fromPortIndex*5,u=n-22-e.toPortIndex*5;return i<=1?A3([{x:t,y:r},{x:a,y:r},{x:a,y:e.laneY},{x:u,y:e.laneY},{x:u,y:s},{x:n,y:s}]):A3([{x:t,y:r},{x:a,y:r},{x:a,y:e.laneY},{x:u,y:e.laneY},{x:u,y:s},{x:n,y:s}])}function Sz(e){const t=e.fromNode.x+Zu+8,r=e.toNode.x-8,n=Math.abs(e.toNode.layer-e.fromNode.layer),s=Math.max(34,Math.abs(r-t));return n<=1?{x:(t+r)/2,y:e.laneY,maxWidth:Math.max(72,Math.min(108,s-34))}:{x:(t+r)/2,y:e.laneY,maxWidth:Math.max(84,Math.min(120,s*.3))}}function Lp({walkthroughs:e,repoRoot:t,onNavigate:r}){const n=A.useId(),s=pz(e,t),i=A.useRef(new Map),a=A.useRef(new Map),[u,d]=A.useState({}),[f,g]=A.useState({}),[b,x]=A.useState(null),[v,w]=A.useState(null),T=A.useMemo(()=>s?Az(s.nodes,s.edges,u,f):null,[u,f,s]);if(A.useLayoutEffect(()=>{if(!s)return;const E={};for(const H of s.nodes){const U=i.current.get(H.id);U&&(E[H.id]=U.offsetHeight)}d(H=>{const U=Object.keys(H),G=Object.keys(E);return U.length===G.length&&G.every(W=>H[W]===E[W])?H:E});const D={};for(const[H,U]of a.current)D[H]=U.offsetHeight;g(H=>{const U=Object.keys(H),G=Object.keys(D);return U.length===G.length&&G.every(W=>H[W]===D[W])?H:D})},[s]),!s||!T)return null;const _=`walkthrough-arrow-${n.replace(/[^a-zA-Z0-9_-]/g,"")||"default"}`,M=b??v,N=T.edges.some(E=>E.key===M)?M:null,B=T.edges.find(E=>E.key===N),R=B?new Set([B.from,B.to]):null,C=new Map(s.sections.filter(E=>E.nodeId&&E.anchor).map(E=>[E.nodeId,E.anchor]));return c.jsxs("section",{className:"mb-2 px-0 py-0",children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-primary/12 text-primary",children:c.jsx(Fl,{size:14})}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"whitespace-normal break-words text-[12px] font-semibold leading-snug text-foreground",children:s.title}),s.summary&&c.jsx("div",{className:"mt-0.5 text-[10px] leading-snug text-muted-foreground",children:s.summary})]})]}),s.highlights.length>0&&c.jsx("div",{className:"mt-2 grid gap-1.5",children:s.highlights.slice(0,4).map((E,D)=>c.jsxs("div",{className:"rounded-md bg-surface-2 px-2 py-1.5",children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[E.tag&&c.jsx("span",{className:"shrink-0 rounded bg-surface-elevated px-1.5 py-0.5 text-[9px] font-semibold text-primary",children:E.tag}),c.jsx("span",{className:"min-w-0 flex-1 whitespace-normal break-words text-[11px] font-semibold leading-snug text-foreground",children:E.what})]}),c.jsx("div",{className:"mt-0.5 text-[10px] leading-snug text-muted-foreground",children:E.effect})]},`${E.what}-${D}`))}),s.nodes.length>0&&c.jsxs("div",{className:"mt-2",children:[c.jsxs("div",{className:"mb-1 flex items-center justify-between gap-2 text-[10px] text-muted-foreground",children:[c.jsxs("div",{className:"flex items-center gap-1.5 font-semibold uppercase tracking-[0.12em]",children:[c.jsx(Yo,{size:11}),"DAG"]}),s.edges.some(E=>E.label?.trim())&&c.jsx("span",{className:"normal-case tracking-normal",children:"点击标注聚焦路径"})]}),c.jsx("div",{className:"overflow-x-auto rounded-md border border-border/15 bg-surface-2 p-1.5",onWheel:E=>E.stopPropagation(),children:c.jsxs("div",{className:"relative",style:{width:T.width,height:T.height},children:[c.jsxs("svg",{className:"absolute inset-0",width:T.width,height:T.height,"aria-hidden":"true",children:[c.jsx("defs",{children:_p.map((E,D)=>c.jsx("marker",{id:`${_}-${D}`,viewBox:"0 0 10 10",refX:"8.5",refY:"5",markerWidth:"5",markerHeight:"5",orient:"auto",markerUnits:"strokeWidth",children:c.jsx("path",{d:"M0,0 L10,5 L0,10 Z",fill:E})},E))}),T.edges.map(E=>{const D=Tz(E),H=y3(E.index),U=N===E.key,G=!!(N&&!U);return c.jsxs("g",{className:"transition-opacity duration-150",style:{opacity:G?.14:1},children:[c.jsx("path",{className:"pointer-events-none",d:D,fill:"none",stroke:"var(--surface-2)",strokeWidth:U?7:5,strokeLinecap:"round"}),c.jsx("path",{className:"pointer-events-none transition-[stroke-width,opacity] duration-150",d:D,fill:"none",stroke:H,strokeWidth:U?3:1.8,strokeLinecap:"round",markerEnd:`url(#${_}-${E.index%_p.length})`}),c.jsx("path",{"data-dag-edge":E.key,d:D,fill:"none",stroke:"transparent",strokeWidth:"14",className:"cursor-pointer",onPointerEnter:()=>x(E.key),onPointerLeave:()=>x(W=>W===E.key?null:W),onClick:()=>w(W=>W===E.key?null:E.key)}),c.jsx("circle",{className:"pointer-events-none",cx:E.fromNode.x+Zu+8,cy:E.fromY,r:U?4:3,fill:H,stroke:"var(--surface-2)",strokeWidth:"2"}),c.jsx("circle",{className:"pointer-events-none",cx:E.toNode.x-8,cy:E.toY,r:U?4:3,fill:H,stroke:"var(--surface-2)",strokeWidth:"2"})]},E.key)})]}),T.edges.map(E=>{const D=E.label?.trim();if(!D)return null;const{x:H,y:U,maxWidth:G}=Sz(E),W=y3(E.index),J=N===E.key,ee=!!(N&&!J);return c.jsxs("button",{ref:ce=>{ce?a.current.set(E.key,ce):a.current.delete(E.key)},type:"button","data-dag-edge-label":E.key,className:"absolute -translate-x-1/2 -translate-y-1/2 whitespace-normal break-words rounded-md border bg-surface-elevated px-1.5 py-1 text-center text-[9px] leading-[11px] shadow-sm transition-[opacity,box-shadow,transform] duration-150 [overflow-wrap:anywhere] hover:shadow-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/60",style:{left:H,top:U,maxWidth:G,width:"max-content",borderColor:W,color:W,opacity:ee?.24:1,boxShadow:J?`0 0 0 2px ${W}, 0 6px 18px rgb(0 0 0 / 0.24)`:void 0},title:`${E.fromNode.index+1} ${E.fromNode.node.title} → ${E.toNode.index+1} ${E.toNode.node.title}${E.desc?`
|
|
158
158
|
${E.desc}`:""}`,"aria-pressed":v===E.key,onPointerEnter:()=>x(E.key),onPointerLeave:()=>x(ce=>ce===E.key?null:ce),onClick:()=>w(ce=>ce===E.key?null:E.key),children:[c.jsxs("span",{className:"block font-bold tabular-nums",children:[E.fromNode.index+1," → ",E.toNode.index+1]}),c.jsx("span",{className:"block text-muted-foreground",children:D})]},`${E.key}-label`)}),T.nodes.map(({node:E,index:D,x:H,y:U,height:G})=>c.jsxs(m3,{elementRef:W=>{W?i.current.set(E.id,W):i.current.delete(E.id)},anchor:E.anchor??C.get(E.id),onNavigate:r,className:`absolute overflow-hidden rounded-lg border bg-surface/95 px-2.5 py-2 text-foreground shadow-[0_10px_24px_rgba(0,0,0,0.18)] transition-[opacity,border-color,box-shadow] duration-150 ${R?.has(E.id)?"border-primary/60 shadow-[0_0_0_1px_rgb(var(--primary-rgb)/0.28),0_10px_24px_rgba(0,0,0,0.22)]":R?"border-border/15 opacity-40":"border-border/25"}`,style:{left:H,top:U,width:Zu,minHeight:G},children:[c.jsx("span",{className:`absolute bottom-2 left-0 top-2 w-[3px] rounded-r-full ${mz(E.kind)}`}),c.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[c.jsx("span",{className:"flex h-4 w-4 shrink-0 items-center justify-center rounded-full bg-primary/15 text-[9px] font-bold text-primary",children:D+1}),c.jsx("span",{className:"min-w-0 flex-1 whitespace-normal break-words text-[11px] font-semibold leading-snug text-foreground",children:E.title}),E.anchor&&c.jsx(Hu,{size:11,className:"shrink-0 opacity-70"})]}),E.kind&&c.jsx("div",{className:"mt-0.5 truncate text-[9px] font-semibold uppercase tracking-[0.08em] text-muted-foreground/80",children:E.kind}),c.jsx("div",{className:"mt-0.5 whitespace-normal break-words text-[10px] leading-snug text-muted-foreground",children:E.business})]},E.id))]})})]}),(s.risks.length>0||s.checks.length>0)&&c.jsxs("div",{className:"mt-2 grid gap-1.5",children:[s.risks.slice(0,3).map((E,D)=>c.jsxs(m3,{anchor:E.anchor,onNavigate:r,className:"flex w-full items-start gap-1.5 rounded-md border border-[rgb(var(--warning-rgb)_/_0.25)] bg-[rgb(var(--warning-rgb)_/_0.10)] px-2 py-1.5 text-[10px] text-muted-foreground",children:[c.jsx(P2,{size:12,className:"mt-0.5 shrink-0 text-[color:var(--warning)]"}),c.jsx("span",{className:"min-w-0 whitespace-normal break-words leading-snug",children:E.title})]},`${E.title}-${D}`)),s.checks.slice(0,3).map((E,D)=>c.jsxs("div",{className:"flex items-start gap-1.5 rounded-md bg-surface-2 px-2 py-1.5 text-[10px] text-muted-foreground",children:[c.jsx(tw,{size:12,className:"mt-0.5 shrink-0 text-primary"}),c.jsx("span",{className:"min-w-0 whitespace-normal break-words leading-snug",children:E})]},`${E}-${D}`))]})]})}const P8="termdock:right-sidebar:diff-change-list-mode:v1";function Cz(e){return e==="list"||e==="tree"}function _z(){return Qn(P8,Cz)??"tree"}function Lz(e){for(const n of e){const s=n.hunk;if(s.oldPath&&s.newPath&&s.oldPath!==s.newPath)return"renamed";if(!s.oldPath&&s.newPath)return"added";if(s.oldPath&&!s.newPath)return"deleted"}const t=e.some(n=>n.hunk.additions>0),r=e.some(n=>n.hunk.deletions>0);return t&&!r?"added":!t&&r?"deleted":"modified"}function kz(e){const t=new Map;for(const n of e){const s=t.get(n.hunk.filePath)??{key:n.hunk.filePath,filePath:n.hunk.filePath,items:[],additions:0,deletions:0,explained:0,stale:0,changeType:"modified"};s.items.push(n),s.additions+=n.hunk.additions,s.deletions+=n.hunk.deletions,n.current&&(s.explained+=1),n.stale&&(s.stale+=1),t.set(n.hunk.filePath,s)}const r=Array.from(t.values()).sort((n,s)=>n.filePath.localeCompare(s.filePath));for(const n of r)n.changeType=Lz(n.items);return r}function Ez(e){const t=e.filePath.split("/").pop()??e.filePath;return{key:e.key,path:e.filePath,displayName:t,displayDir:e.filePath.includes("/")?e.filePath.slice(0,-t.length-1):"",status:e.changeType,title:e.filePath}}function Iz(e,t){const r=e.filter(i=>i.trim().length>0);if(r.length<=1)return r[0]??"";const n=[],s=new Set;for(const[i,a]of r.entries()){const u=a.split(`
|
|
@@ -163,7 +163,7 @@ ${E.desc}`:""}`,"aria-pressed":v===E.key,onPointerEnter:()=>x(E.key),onPointerLe
|
|
|
163
163
|
`),blockKey:`${t}-code-${_}`},`${t}-code-${_}`):["math","latex","tex"].includes(T.toLowerCase())?c.jsx(nh,{tex:v.join(`
|
|
164
164
|
`),display:!0},`${t}-code-${_}`):c.jsx(ih,{code:v.join(`
|
|
165
165
|
`),lang:T,blockKey:`${t}-code-${_}`},`${t}-code-${_}`));continue}if(Ip(i)){const v=[],w=s;for(;s<e.length&&(Ip(e[s])||!e[s].trim());)v.push(e[s].trim()?f9(e[s]):""),s+=1;n.push(c.jsx(ih,{code:v.join(`
|
|
166
|
-
`).replace(/\n+$/,""),lang:"",blockKey:`${t}-indented-code-${w}`},`${t}-indented-code-${w}`));continue}const f=a.match(/^(#{1,6})\s+(.+)$/);if(f){const w=`h${Math.min(6,f[1].length+1)}`,T=i9(f[2]),_=w2(T,r);n.push(c.jsx(w,{id:_,className:"scroll-mt-16 font-semibold text-foreground",children:Ys(T,`${t}-heading-${s}`,!0,r)},`${t}-heading-${s}`)),s+=1;continue}if(s+1<e.length&&i.includes("|")&&Rp(e[s+1])){const v=sh(i),w=p9(e[s+1]),T=[],_=s;for(s+=2;s<e.length&&e[s].includes("|")&&e[s].trim();)T.push(sh(e[s])),s+=1;n.push(c.jsx("div",{className:q8,"data-markdown-table-scroll":!0,children:c.jsxs("table",{className:"w-max min-w-full max-w-none table-auto border-collapse text-left text-[11px] sm:text-xs",children:[c.jsx("thead",{className:"bg-surface-2 text-foreground",children:c.jsx("tr",{children:v.map((M,N)=>c.jsx("th",{className:`${W8} ${Mp(w[N]??null)}`,children:c.jsx("div",{className:kp,children:Ys(M,`${t}-th-${_}-${N}`,!0,r)})},`h-${N}`))})}),c.jsx("tbody",{children:T.map((M,N)=>c.jsx("tr",{className:"border-t border-border/10",children:v.map((B,R)=>c.jsx("td",{className:`${V8} ${Mp(w[R]??null)}`,children:c.jsx("div",{className:kp,children:Ys(M[R]??"",`${t}-td-${_}-${N}-${R}`,!0,r)})},`c-${R}`))},`r-${N}`))})]})},`${t}-table-${_}`));continue}const g=H5(i);if(g){const v=g.ordered,w=$5(i),T=g.start,_=s,M=m9(e,s,w,v,!1);s=M.nextIndex;const N=v?"ol":"ul";n.push(c.jsx(N,{start:v?T:void 0,className:`${v?"list-decimal":"list-disc"} space-y-0.5 pl-4 marker:text-muted-foreground/70`,children:U5(M.items,_,r)},`${t}-list-${_}`));continue}const b=[i.trimStart()],x=s;for(s+=1;s<e.length&&e[s].trim()&&!v2(e[s])&&!(s+1<e.length&&e[s].includes("|")&&Rp(e[s+1]));)b.push(e[s].trimStart()),s+=1;n.push(c.jsx("p",{children:Pd(b,`${t}-p-${x}`,r)},`${t}-p-${x}`))}return n}let Lf=null,O3=!1;const kf=16,g9=192;function $W(){return Lf||(Lf=Kd(()=>import("./mermaid.core-
|
|
166
|
+
`).replace(/\n+$/,""),lang:"",blockKey:`${t}-indented-code-${w}`},`${t}-indented-code-${w}`));continue}const f=a.match(/^(#{1,6})\s+(.+)$/);if(f){const w=`h${Math.min(6,f[1].length+1)}`,T=i9(f[2]),_=w2(T,r);n.push(c.jsx(w,{id:_,className:"scroll-mt-16 font-semibold text-foreground",children:Ys(T,`${t}-heading-${s}`,!0,r)},`${t}-heading-${s}`)),s+=1;continue}if(s+1<e.length&&i.includes("|")&&Rp(e[s+1])){const v=sh(i),w=p9(e[s+1]),T=[],_=s;for(s+=2;s<e.length&&e[s].includes("|")&&e[s].trim();)T.push(sh(e[s])),s+=1;n.push(c.jsx("div",{className:q8,"data-markdown-table-scroll":!0,children:c.jsxs("table",{className:"w-max min-w-full max-w-none table-auto border-collapse text-left text-[11px] sm:text-xs",children:[c.jsx("thead",{className:"bg-surface-2 text-foreground",children:c.jsx("tr",{children:v.map((M,N)=>c.jsx("th",{className:`${W8} ${Mp(w[N]??null)}`,children:c.jsx("div",{className:kp,children:Ys(M,`${t}-th-${_}-${N}`,!0,r)})},`h-${N}`))})}),c.jsx("tbody",{children:T.map((M,N)=>c.jsx("tr",{className:"border-t border-border/10",children:v.map((B,R)=>c.jsx("td",{className:`${V8} ${Mp(w[R]??null)}`,children:c.jsx("div",{className:kp,children:Ys(M[R]??"",`${t}-td-${_}-${N}-${R}`,!0,r)})},`c-${R}`))},`r-${N}`))})]})},`${t}-table-${_}`));continue}const g=H5(i);if(g){const v=g.ordered,w=$5(i),T=g.start,_=s,M=m9(e,s,w,v,!1);s=M.nextIndex;const N=v?"ol":"ul";n.push(c.jsx(N,{start:v?T:void 0,className:`${v?"list-decimal":"list-disc"} space-y-0.5 pl-4 marker:text-muted-foreground/70`,children:U5(M.items,_,r)},`${t}-list-${_}`));continue}const b=[i.trimStart()],x=s;for(s+=1;s<e.length&&e[s].trim()&&!v2(e[s])&&!(s+1<e.length&&e[s].includes("|")&&Rp(e[s+1]));)b.push(e[s].trimStart()),s+=1;n.push(c.jsx("p",{children:Pd(b,`${t}-p-${x}`,r)},`${t}-p-${x}`))}return n}let Lf=null,O3=!1;const kf=16,g9=192;function $W(){return Lf||(Lf=Kd(()=>import("./mermaid.core-CHCmGRgc.js").then(e=>e.aJ),__vite__mapDeps([3,1,4])).then(e=>e.default??e).catch(e=>{throw Lf=null,e})),Lf}function HW(e){O3||(e.initialize({startOnLoad:!1,securityLevel:"strict",theme:"neutral"}),O3=!0)}function UW(e){const t=e.match(/\sviewBox=(["'])([^"']+)\1/i);if(!t)return e;const[,,r]=t,n=r.trim().split(/[\s,]+/).map(Number),[,,s,i]=n;if(!Number.isFinite(s)||!Number.isFinite(i)||s<=0||i<=0)return e;const a=Math.max(g9,Math.ceil(s)),u=Math.ceil(a/s*i);return e.replace(/<svg\b([^>]*)>/i,(d,f)=>`<svg${f.replace(/\s(?:width|height)=(["']).*?\1/gi,"").replace(/\sstyle=(["']).*?\1/gi,"")} width="${a}" height="${u}">`)}function GW(e){const t=e?.querySelector("svg");if(!t)return;let r;try{r=t.getBBox()}catch{return}if(!Number.isFinite(r.width)||!Number.isFinite(r.height)||r.width<=0||r.height<=0)return;const n=r.x-kf,s=r.y-kf,i=r.width+kf*2,a=r.height+kf*2,u=Math.max(g9,Math.ceil(i)),d=Math.ceil(u/i*a);t.setAttribute("viewBox",`${n} ${s} ${i} ${a}`),t.setAttribute("width",String(u)),t.setAttribute("height",String(d)),t.removeAttribute("style")}function zW(e){const t=e.trim().split(/\s+/,1)[0]?.toLowerCase();if(!t)return null;const r=t.replace(/^language-/,"");return B5(`code.${r}`)??r}function b9({code:e,blockKey:t}){const[r,n]=A.useState(null),[s,i]=A.useState(!1),a=A.useRef(null),u=A.useContext(n9);A.useEffect(()=>{let f=!1;return n(null),i(!1),$W().then(async g=>{HW(g);const b=`termdock-md-mermaid-${t.replace(/[^a-zA-Z0-9_-]/g,"-")}`,{svg:x}=await g.render(b,e);f||n(UW(x))}).catch(()=>{f||i(!0)}),()=>{f=!0}},[t,e]),A.useLayoutEffect(()=>{r&&GW(a.current)},[r]);const d=A.useCallback(()=>{const f=a.current?.querySelector("svg")?.outerHTML??r;f&&u?.(f)},[u,r]);return s?c.jsx(ih,{code:e,lang:"mermaid",blockKey:`${t}-fallback`}):c.jsxs("div",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface shadow-sm",children:[c.jsx("div",{className:"border-b border-border/15 bg-surface-2 px-3 py-1.5 text-[10px] uppercase tracking-wide text-muted-foreground",children:"mermaid"}),c.jsx("div",{className:"bg-surface p-3",children:r?c.jsx("button",{type:"button",className:"block max-w-full rounded text-left focus:outline-none focus:ring-2 focus:ring-ring/45",title:"Open Mermaid diagram",onClick:f=>{f.stopPropagation(),d()},children:c.jsx("span",{ref:a,role:"img","aria-label":"Mermaid diagram",className:"block max-h-[70vh] max-w-full overflow-auto rounded bg-white p-2 text-slate-900 [&_svg]:block [&_svg]:h-auto [&_svg]:max-w-full",dangerouslySetInnerHTML:{__html:r}})}):c.jsx("div",{className:"py-6 text-center text-xs text-muted-foreground",children:"Rendering diagram..."})})]})}function ih({code:e,lang:t,blockKey:r}){const n=zW(t),[s,i]=A.useState(null);return A.useEffect(()=>{if(!n||!A8(e)){i(null);return}let a=!1;return T8().then(u=>{if(a||!u.registered(n)){a||i(null);return}try{i(S8(u.highlight(e,n),`md-code-${r}`))}catch{a||i(null)}}).catch(()=>{a||i(null)}),()=>{a=!0}},[r,e,n]),c.jsxs("div",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface shadow-sm",children:[t&&c.jsx("div",{className:"border-b border-border/15 bg-surface-2 px-3 py-1.5 text-[10px] uppercase tracking-wide text-muted-foreground",children:t}),c.jsx("pre",{className:`${F5} termdock-code overflow-auto p-3 text-[11px] leading-relaxed text-foreground`,children:c.jsx("code",{children:s??(e||" ")})})]})}function WW(e,t,r,n){e=AW(e);const s=yW(e),i=wW(e),a=[],u={markdownFilePath:t,rootPath:r,referenceDefinitions:s,footnoteDefinitions:vW(e),headingSlugCounts:new Map,images:a,onImageOpen:n},d=[];let f=0;for(;f<e.length;){const b=e[f],x=b.trim();if(Ep(b)||i.has(f)){f+=1;continue}if(!x){f+=1;continue}if(/^<details>\s*$/i.test(x)){const B=f;let R="Details";const C=[];for(f+=1;f<e.length&&!/^<\/details>\s*$/i.test(e[f].trim());){const E=e[f].trim().match(/^<summary>(.*?)<\/summary>\s*$/i);E?R=E[1].trim()||R:C.push(e[f].trimStart()),f+=1}f<e.length&&(f+=1),d.push({key:`details-${B}`,startLine:B+1,endLine:f,content:c.jsxs("details",{className:"overflow-hidden rounded-lg border border-border/20 bg-surface px-3 py-2 text-muted-foreground",children:[c.jsx("summary",{className:"cursor-pointer text-sm font-semibold text-foreground",children:Ys(R,`details-${B}-summary`,!0,u)}),C.length>0&&c.jsx("div",{className:"mt-2 text-sm leading-6",children:Pd(C,`details-${B}`,u)})]})});continue}const v=h9(b);if(v){const B=[b],R=f;for(f+=1;f<e.length&&!v.selfContained&&!new RegExp(`</${v.tag}>`,"i").test(e[f]);)B.push(e[f]),f+=1;f<e.length&&!v.selfContained&&(B.push(e[f]),f+=1),d.push({key:`html-${R}`,startLine:R+1,endLine:f,content:c.jsx(d9,{html:B.join(`
|
|
167
167
|
`)})});continue}const w=x.match(/^(```|~~~)\s*(.*)$/);if(w){const B=[],R=w[1],C=w[2]?.trim(),E=f;for(f+=1;f<e.length&&!e[f].trim().startsWith(R);)B.push(e[f]),f+=1;f<e.length&&(f+=1),d.push({key:`code-${E}`,startLine:E+1,endLine:f,content:C.toLowerCase()==="mermaid"?c.jsx(b9,{code:B.join(`
|
|
168
168
|
`),blockKey:`code-${E}`}):["math","latex","tex"].includes(C.toLowerCase())?c.jsx(nh,{tex:B.join(`
|
|
169
169
|
`),display:!0}):c.jsx(ih,{code:B.join(`
|
|
@@ -419,4 +419,4 @@ ${Et}
|
|
|
419
419
|
+ }
|
|
420
420
|
return context;
|
|
421
421
|
}`}};function c6(){if(typeof window>"u")return"kotlin";const t=new URLSearchParams(window.location.search).get("fixture");return t&&t in C2?t:"kotlin"}function u6(){return typeof window>"u"?"unified":new URLSearchParams(window.location.search).get("view")==="split"?"split":"unified"}function d6(){if(typeof window>"u")return"words";const e=new URLSearchParams(window.location.search).get("inline");return e==="none"||e==="chars"||e==="words"?e:"words"}function h6(){return typeof window>"u"?!0:new URLSearchParams(window.location.search).get("wrap")!=="off"}function KV(){const[e,t]=A.useState(()=>c6()),[r,n]=A.useState(()=>u6()),[s,i]=A.useState(()=>d6()),[a,u]=A.useState(()=>h6()),d=C2[e],f=A.useMemo(()=>Object.entries(C2),[]);return A.useEffect(()=>{if(typeof window>"u")return;let g=window.location.search;const b=()=>{window.location.search!==g&&(g=window.location.search,t(c6()),n(u6()),i(d6()),u(h6()))};window.addEventListener("popstate",b),window.addEventListener("pageshow",b),window.addEventListener("focus",b);const x=window.setInterval(b,250);return()=>{window.removeEventListener("popstate",b),window.removeEventListener("pageshow",b),window.removeEventListener("focus",b),window.clearInterval(x)}},[]),c.jsx("div",{className:"min-h-screen bg-background-subtle text-foreground","data-diff-lab":!0,"data-diff-lab-fixture":e,"data-diff-lab-view":r,"data-diff-lab-inline":s,"data-diff-lab-wrap":a?"on":"off",children:c.jsxs("div",{className:"mx-auto flex min-h-screen max-w-[1180px] flex-col px-4 py-4",children:[c.jsxs("header",{className:"mb-3 flex flex-wrap items-center justify-between gap-3 border-b border-border/20 pb-3",children:[c.jsxs("div",{children:[c.jsx("div",{className:"text-sm font-semibold",children:"Diff Lab"}),c.jsx("div",{className:"mt-0.5 text-[11px] text-muted-foreground",children:"Fixed fixtures for iterating diff rendering without app auth, PWA state, or live Git data."})]}),c.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[c.jsx("select",{value:e,onChange:g=>t(g.target.value),className:"h-8 rounded-md border border-border/30 bg-surface px-2 text-xs text-foreground outline-none",children:f.map(([g,b])=>c.jsx("option",{value:g,children:b.label},g))}),c.jsxs("div",{className:"inline-flex h-8 overflow-hidden rounded-full bg-surface-2 p-0.5",children:[c.jsx("button",{type:"button",onClick:()=>n("unified"),className:`rounded-full px-3 text-xs font-semibold ${r==="unified"?"bg-surface-elevated text-foreground":"text-muted-foreground"}`,children:"Unified"}),c.jsx("button",{type:"button",onClick:()=>n("split"),className:`rounded-full px-3 text-xs font-semibold ${r==="split"?"bg-surface-elevated text-foreground":"text-muted-foreground"}`,children:"Split"})]}),c.jsx("div",{className:"inline-flex h-8 overflow-hidden rounded-full bg-surface-2 p-0.5",children:["none","words","chars"].map(g=>c.jsx("button",{type:"button",onClick:()=>i(g),className:`rounded-full px-3 text-xs font-semibold ${s===g?"bg-surface-elevated text-foreground":"text-muted-foreground"}`,children:g},g))}),c.jsxs("button",{type:"button",onClick:()=>u(g=>!g),className:`h-8 rounded-full px-3 text-xs font-semibold ${a?"bg-primary/15 text-primary":"bg-surface-2 text-muted-foreground"}`,children:["Wrap ",a?"on":"off"]})]})]}),c.jsx("main",{className:"min-h-0 flex-1 overflow-auto rounded-lg border border-border/20 bg-surface",children:c.jsx(D8,{filePath:d.path,repoRoot:"/tmp/termdock-diff-lab",changedFile:{path:d.path,absolutePath:`/tmp/termdock-diff-lab/${d.path}`,repoRoot:"/tmp/termdock-diff-lab",status:"modified",staged:!1,unstaged:!0,untracked:!1,tracked:!0,canStage:!1,canUnstage:!1,canStash:!1,canRestoreWorktree:!1},diffOverride:d.diff,oldSourceOverride:d.oldSource,active:!0,wrap:a,showScrollHint:!a,viewType:r,inlineMode:s})})]})})}const E9=40,_2="/tmp/termdock-diff-review-lab";function f6(e,t){const r=[`diff --git a/${e} b/${e}`,`--- a/${e}`,`+++ b/${e}`,`@@ -1,${t} +1,${t} @@`];for(let n=0;n<t;n+=1)n%5===0&&r.push(`-const removed_${n} = ${n};`),n%3===0&&r.push(`+const added_${n} = ${n} * 2;`),r.push(` context line ${n} in ${e}`);return r.join(`
|
|
422
|
-
`)}function ZV(e,t){return Array.from({length:E9},(r,n)=>{const s=6+n*7%60,i=`src/module${String(n).padStart(2,"0")}/File${n}.ts`,a=`${_2}/${i}`,u=f6(i,s),d=f6(i,1);return{key:a,path:i,absolutePath:a,status:"modified",repoRoot:_2,displayName:`File${n}.ts`,displayDir:`src/module${String(n).padStart(2,"0")} · ${s} lines`,diffOverride:!t||e.has(n)?u:d,auditRecords:[]}})}function XV(){const e=A.useMemo(()=>{if(typeof window>"u")return 0;const T=new URLSearchParams(window.location.search).get("delay"),_=T===null?0:Number.parseInt(T,10);return Number.isInteger(_)&&_>0?_:0},[]),t=e>0,[r,n]=A.useState(()=>new Set);A.useEffect(()=>{if(!t)return;const T=Array.from({length:E9},(_,M)=>window.setTimeout(()=>{n(N=>{const B=new Set(N);return B.add(M),B})},e+M*20));return()=>T.forEach(_=>window.clearTimeout(_))},[t,e]);const s=A.useMemo(()=>ZV(r,t),[r,t]),i=A.useMemo(()=>[{key:"mock-repo",root:_2,label:"diff-review-lab",files:s.map(T=>({key:T.key,path:T.path,absolutePath:T.absolutePath,displayName:T.displayName,displayDir:T.displayDir,status:T.status}))}],[s]),a=A.useMemo(()=>{if(typeof window>"u")return null;const T=new URLSearchParams(window.location.search).get("select");if(T===null)return null;const _=Number.parseInt(T,10);return Number.isInteger(_)&&_>=0&&_<s.length?_:null},[s.length]),[u,d]=A.useState(()=>a!==null?s[a].key:null),[f,g]=A.useState("list"),[b,x]=A.useState(new Set),[v,w]=A.useState(a!==null?1:0);return c.jsxs("div",{className:"flex h-screen flex-col bg-background text-foreground","data-diff-review-lab":!0,children:[c.jsxs("div",{className:"shrink-0 border-b border-border/20 px-3 py-2 text-xs text-muted-foreground",children:["DiffReview Lab · ",s.length," mock files · selected: ",c.jsx("span",{"data-lab-selected":!0,children:u??"none"})," · slide ",v]}),c.jsx("div",{className:"min-h-0 flex-1",children:c.jsx(Bd,{mobile:!0,backLabel:"Back",files:s,groups:i,selectedKey:u,mode:f,onModeChange:T=>{T!=="ai"&&g(T)},collapsedDirectoryKeys:b,onToggleDirectory:T=>x(_=>{const M=new Set(_);return M.has(T)?M.delete(T):M.add(T),M}),onSelectFile:T=>d(T.key),onMobileSlideChange:w,renderLeading:()=>null,renderStreamBadge:T=>c.jsx("span",{className:"text-[10px] text-muted-foreground",children:T}),wrap:!0,showScrollHint:!1,activePane:!0})})]})}const JV=6e4,g1="termdock:build-id:v1";let p6=!1;function m6(){p6||(p6=!0,window.setTimeout(()=>{window.location.reload()},80))}function L2(e){e.waiting?.postMessage({type:"SKIP_WAITING"})}async function eq(){if(typeof caches>"u")return;const e=await caches.keys();await Promise.all(e.map(t=>caches.delete(t)))}function tq(e){e.addEventListener("updatefound",()=>{const t=e.installing;t&&t.addEventListener("statechange",()=>{t.state==="installed"&&navigator.serviceWorker.controller&&L2(e)})})}function rq(){if(typeof window>"u"||!("serviceWorker"in navigator))return;const e="
|
|
422
|
+
`)}function ZV(e,t){return Array.from({length:E9},(r,n)=>{const s=6+n*7%60,i=`src/module${String(n).padStart(2,"0")}/File${n}.ts`,a=`${_2}/${i}`,u=f6(i,s),d=f6(i,1);return{key:a,path:i,absolutePath:a,status:"modified",repoRoot:_2,displayName:`File${n}.ts`,displayDir:`src/module${String(n).padStart(2,"0")} · ${s} lines`,diffOverride:!t||e.has(n)?u:d,auditRecords:[]}})}function XV(){const e=A.useMemo(()=>{if(typeof window>"u")return 0;const T=new URLSearchParams(window.location.search).get("delay"),_=T===null?0:Number.parseInt(T,10);return Number.isInteger(_)&&_>0?_:0},[]),t=e>0,[r,n]=A.useState(()=>new Set);A.useEffect(()=>{if(!t)return;const T=Array.from({length:E9},(_,M)=>window.setTimeout(()=>{n(N=>{const B=new Set(N);return B.add(M),B})},e+M*20));return()=>T.forEach(_=>window.clearTimeout(_))},[t,e]);const s=A.useMemo(()=>ZV(r,t),[r,t]),i=A.useMemo(()=>[{key:"mock-repo",root:_2,label:"diff-review-lab",files:s.map(T=>({key:T.key,path:T.path,absolutePath:T.absolutePath,displayName:T.displayName,displayDir:T.displayDir,status:T.status}))}],[s]),a=A.useMemo(()=>{if(typeof window>"u")return null;const T=new URLSearchParams(window.location.search).get("select");if(T===null)return null;const _=Number.parseInt(T,10);return Number.isInteger(_)&&_>=0&&_<s.length?_:null},[s.length]),[u,d]=A.useState(()=>a!==null?s[a].key:null),[f,g]=A.useState("list"),[b,x]=A.useState(new Set),[v,w]=A.useState(a!==null?1:0);return c.jsxs("div",{className:"flex h-screen flex-col bg-background text-foreground","data-diff-review-lab":!0,children:[c.jsxs("div",{className:"shrink-0 border-b border-border/20 px-3 py-2 text-xs text-muted-foreground",children:["DiffReview Lab · ",s.length," mock files · selected: ",c.jsx("span",{"data-lab-selected":!0,children:u??"none"})," · slide ",v]}),c.jsx("div",{className:"min-h-0 flex-1",children:c.jsx(Bd,{mobile:!0,backLabel:"Back",files:s,groups:i,selectedKey:u,mode:f,onModeChange:T=>{T!=="ai"&&g(T)},collapsedDirectoryKeys:b,onToggleDirectory:T=>x(_=>{const M=new Set(_);return M.has(T)?M.delete(T):M.add(T),M}),onSelectFile:T=>d(T.key),onMobileSlideChange:w,renderLeading:()=>null,renderStreamBadge:T=>c.jsx("span",{className:"text-[10px] text-muted-foreground",children:T}),wrap:!0,showScrollHint:!1,activePane:!0})})]})}const JV=6e4,g1="termdock:build-id:v1";let p6=!1;function m6(){p6||(p6=!0,window.setTimeout(()=>{window.location.reload()},80))}function L2(e){e.waiting?.postMessage({type:"SKIP_WAITING"})}async function eq(){if(typeof caches>"u")return;const e=await caches.keys();await Promise.all(e.map(t=>caches.delete(t)))}function tq(e){e.addEventListener("updatefound",()=>{const t=e.installing;t&&t.addEventListener("statechange",()=>{t.state==="installed"&&navigator.serviceWorker.controller&&L2(e)})})}function rq(){if(typeof window>"u"||!("serviceWorker"in navigator))return;const e="1785295242148",t=window.localStorage.getItem(g1);if(t&&t!==e){eq().finally(()=>{window.localStorage.setItem(g1,e),m6()});return}t!==e&&window.localStorage.setItem(g1,e);let r=null;navigator.serviceWorker.addEventListener("controllerchange",m6),window.addEventListener("load",()=>{navigator.serviceWorker.register("/sw.js",{scope:"/"}).then(n=>{tq(n),L2(n);const s=()=>{document.visibilityState==="visible"&&n.update().then(()=>L2(n)).catch(()=>{})};s(),r=window.setInterval(s,JV),document.addEventListener("visibilitychange",s)}).catch(()=>{})}),window.addEventListener("beforeunload",()=>{r!==null&&window.clearInterval(r)})}RF();rq();try{const e=JSON.parse(window.localStorage.getItem("termdock-color-theme")||"null");(e==="dark"||e==="light")&&(document.documentElement.dataset.theme=e,E7(e))}catch{}function nq(){const{t:e}=Fn(),[t,r]=A.useState(null),[n,s]=A.useState(null),i=A.useCallback(async()=>{try{const a=await s_();r(a),s(null)}catch(a){s(a instanceof Error?a.message:"Failed to query auth status")}},[]);return A.useEffect(()=>{i()},[i]),A.useEffect(()=>{const a=()=>{r(u=>u&&{...u,authenticated:!1})};return window.addEventListener(rp,a),()=>window.removeEventListener(rp,a)},[]),t===null?c.jsx("div",{className:"flex w-screen items-center justify-center bg-background text-muted-foreground",style:{height:"var(--app-vh, 100vh)"},children:n?`${e("common.error")}: ${n}`:e("common.loading")}):t.enabled&&!t.authenticated?c.jsx(qV,{onLoginSuccess:i}):c.jsx(WV,{})}NT.createRoot(document.getElementById("root")).render(c.jsx(j.StrictMode,{children:c.jsx(KR,{children:c.jsx(zw,{children:(()=>{const e=new URLSearchParams(window.location.search);return e.get("dag-playground")==="1"?c.jsx(YV,{}):e.get("diff-review-lab")==="1"?c.jsx(XV,{}):e.get("diff-lab")==="1"?c.jsx(KV,{}):c.jsx(nq,{})})()})})}));export{Kd as _,pC as v};
|
package/dist/client/assets/{infoDiagram-FWYZ7A6U-BthDqptH.js → infoDiagram-FWYZ7A6U-KCOhq69d.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as e,aE as o,b0 as i,E as n}from"./mermaid.core-
|
|
1
|
+
import{b as e,aE as o,b0 as i,E as n}from"./mermaid.core-CHCmGRgc.js";import{p}from"./cynefin-VYW2F7L2-C2USAXqz.js";import"./index-3ElsPCL7.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-C7X98Amf.js";import"./purify.es-CC4Brkr_.js";var g={parse:e(async r=>{const a=await p("info",r);o.debug(a)},"parse")},m={version:"11.16.0"},v=e(()=>m.version,"getVersion"),d={getVersion:v},c=e((r,a,s)=>{o.debug(`rendering info diagram
|
|
2
2
|
`+r);const t=i(a);n(t,100,400,!0),t.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${s}`)},"draw"),f={draw:c},S={parser:g,db:d,renderer:f};export{S as diagram};
|