Files
Notes/.obsidian/plugins/csv-lite/main.js
2025-11-12 12:52:06 +01:00

103 lines
66 KiB
JavaScript

/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
var et=Object.create;var ye=Object.defineProperty;var tt=Object.getOwnPropertyDescriptor;var st=Object.getOwnPropertyNames;var rt=Object.getPrototypeOf,it=Object.prototype.hasOwnProperty;var nt=(w,t)=>()=>(t||w((t={exports:{}}).exports,t),t.exports),at=(w,t)=>{for(var e in t)ye(w,e,{get:t[e],enumerable:!0})},Ue=(w,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of st(t))!it.call(w,a)&&a!==e&&ye(w,a,{get:()=>t[a],enumerable:!(r=tt(t,a))||r.enumerable});return w};var ot=(w,t,e)=>(e=w!=null?et(rt(w)):{},Ue(t||!w||!w.__esModule?ye(e,"default",{value:w,enumerable:!0}):e,w)),lt=w=>Ue(ye({},"__esModule",{value:!0}),w);var $e=nt((He,Ae)=>{((w,t)=>{typeof define=="function"&&define.amd?define([],t):typeof Ae=="object"&&typeof He!="undefined"?Ae.exports=t():w.Papa=t()})(He,function w(){var t=typeof self!="undefined"?self:typeof window!="undefined"?window:t!==void 0?t:{},e,r=!t.document&&!!t.postMessage,a=t.IS_PAPA_WORKER||!1,o={},p=0,s={};function c(i){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(n){var l=oe(n);l.chunkSize=parseInt(l.chunkSize),n.step||n.chunk||(l.chunkSize=null),this._handle=new C(l),(this._handle.streamer=this)._config=l}.call(this,i),this.parseChunk=function(n,l){var g=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<g){let x=this._config.newline;x||(f=this._config.quoteChar||'"',x=this._handle.guessLineEndings(n,f)),n=[...n.split(x).slice(g)].join(x)}this.isFirstChunk&&P(this._config.beforeFirstChunk)&&(f=this._config.beforeFirstChunk(n))!==void 0&&(n=f),this.isFirstChunk=!1,this._halted=!1;var g=this._partialLine+n,f=(this._partialLine="",this._handle.parse(g,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(n=f.meta.cursor,g=(this._finished||(this._partialLine=g.substring(n-this._baseIndex),this._baseIndex=n),f&&f.data&&(this._rowCount+=f.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview),a)t.postMessage({results:f,workerId:s.WORKER_ID,finished:g});else if(P(this._config.chunk)&&!l){if(this._config.chunk(f,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=f=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(f.data),this._completeResults.errors=this._completeResults.errors.concat(f.errors),this._completeResults.meta=f.meta),this._completed||!g||!P(this._config.complete)||f&&f.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),g||f&&f.meta.paused||this._nextChunk(),f}this._halted=!0},this._sendError=function(n){P(this._config.error)?this._config.error(n):a&&this._config.error&&t.postMessage({workerId:s.WORKER_ID,error:n,finished:!1})}}function u(i){var n;(i=i||{}).chunkSize||(i.chunkSize=s.RemoteChunkSize),c.call(this,i),this._nextChunk=r?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(l){this._input=l,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(n=new XMLHttpRequest,this._config.withCredentials&&(n.withCredentials=this._config.withCredentials),r||(n.onload=N(this._chunkLoaded,this),n.onerror=N(this._chunkError,this)),n.open(this._config.downloadRequestBody?"POST":"GET",this._input,!r),this._config.downloadRequestHeaders){var l,g=this._config.downloadRequestHeaders;for(l in g)n.setRequestHeader(l,g[l])}var f;this._config.chunkSize&&(f=this._start+this._config.chunkSize-1,n.setRequestHeader("Range","bytes="+this._start+"-"+f));try{n.send(this._config.downloadRequestBody)}catch(x){this._chunkError(x.message)}r&&n.status===0&&this._chunkError()}},this._chunkLoaded=function(){n.readyState===4&&(n.status<200||400<=n.status?this._chunkError():(this._start+=this._config.chunkSize||n.responseText.length,this._finished=!this._config.chunkSize||this._start>=(l=>(l=l.getResponseHeader("Content-Range"))!==null?parseInt(l.substring(l.lastIndexOf("/")+1)):-1)(n),this.parseChunk(n.responseText)))},this._chunkError=function(l){l=n.statusText||l,this._sendError(new Error(l))}}function b(i){(i=i||{}).chunkSize||(i.chunkSize=s.LocalChunkSize),c.call(this,i);var n,l,g=typeof FileReader!="undefined";this.stream=function(f){this._input=f,l=f.slice||f.webkitSlice||f.mozSlice,g?((n=new FileReader).onload=N(this._chunkLoaded,this),n.onerror=N(this._chunkError,this)):n=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var f=this._input,x=(this._config.chunkSize&&(x=Math.min(this._start+this._config.chunkSize,this._input.size),f=l.call(f,this._start,x)),n.readAsText(f,this._config.encoding));g||this._chunkLoaded({target:{result:x}})},this._chunkLoaded=function(f){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(f.target.result)},this._chunkError=function(){this._sendError(n.error)}}function S(i){var n;c.call(this,i=i||{}),this.stream=function(l){return n=l,this._nextChunk()},this._nextChunk=function(){var l,g;if(!this._finished)return l=this._config.chunkSize,n=l?(g=n.substring(0,l),n.substring(l)):(g=n,""),this._finished=!n,this.parseChunk(g)}}function $(i){c.call(this,i=i||{});var n=[],l=!0,g=!1;this.pause=function(){c.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){c.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(f){this._input=f,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){g&&n.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),n.length?this.parseChunk(n.shift()):l=!0},this._streamData=N(function(f){try{n.push(typeof f=="string"?f:f.toString(this._config.encoding)),l&&(l=!1,this._checkIsFinished(),this.parseChunk(n.shift()))}catch(x){this._streamError(x)}},this),this._streamError=N(function(f){this._streamCleanUp(),this._sendError(f)},this),this._streamEnd=N(function(){this._streamCleanUp(),g=!0,this._streamData("")},this),this._streamCleanUp=N(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function C(i){var n,l,g,f,x=Math.pow(2,53),j=-x,B=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,Q=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,M=this,U=0,k=0,J=!1,d=!1,m=[],h={data:[],errors:[],meta:{}};function T(y){return i.skipEmptyLines==="greedy"?y.join("").trim()==="":y.length===1&&y[0].length===0}function v(){if(h&&g&&(I("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+s.DefaultDelimiter+"'"),g=!1),i.skipEmptyLines&&(h.data=h.data.filter(function(F){return!T(F)})),E()){let F=function(X,V){P(i.transformHeader)&&(X=i.transformHeader(X,V)),m.push(X)};var D=F;if(h)if(Array.isArray(h.data[0])){for(var y=0;E()&&y<h.data.length;y++)h.data[y].forEach(F);h.data.splice(0,1)}else h.data.forEach(F)}function L(F,X){for(var V=i.header?{}:[],z=0;z<F.length;z++){var _=z,ee=F[z],ee=((A,W)=>(Y=>(i.dynamicTypingFunction&&i.dynamicTyping[Y]===void 0&&(i.dynamicTyping[Y]=i.dynamicTypingFunction(Y)),(i.dynamicTyping[Y]||i.dynamicTyping)===!0))(A)?W==="true"||W==="TRUE"||W!=="false"&&W!=="FALSE"&&((Y=>{if(B.test(Y)&&(Y=parseFloat(Y),j<Y&&Y<x))return 1})(W)?parseFloat(W):Q.test(W)?new Date(W):W===""?null:W):W)(_=i.header?z>=m.length?"__parsed_extra":m[z]:_,ee=i.transform?i.transform(ee,_):ee);_==="__parsed_extra"?(V[_]=V[_]||[],V[_].push(ee)):V[_]=ee}return i.header&&(z>m.length?I("FieldMismatch","TooManyFields","Too many fields: expected "+m.length+" fields but parsed "+z,k+X):z<m.length&&I("FieldMismatch","TooFewFields","Too few fields: expected "+m.length+" fields but parsed "+z,k+X)),V}var K;h&&(i.header||i.dynamicTyping||i.transform)&&(K=1,!h.data.length||Array.isArray(h.data[0])?(h.data=h.data.map(L),K=h.data.length):h.data=L(h.data,0),i.header&&h.meta&&(h.meta.fields=m),k+=K)}function E(){return i.header&&m.length===0}function I(y,L,K,D){y={type:y,code:L,message:K},D!==void 0&&(y.row=D),h.errors.push(y)}P(i.step)&&(f=i.step,i.step=function(y){h=y,E()?v():(v(),h.data.length!==0&&(U+=y.data.length,i.preview&&U>i.preview?l.abort():(h.data=h.data[0],f(h,M))))}),this.parse=function(y,L,K){var D=i.quoteChar||'"',D=(i.newline||(i.newline=this.guessLineEndings(y,D)),g=!1,i.delimiter?P(i.delimiter)&&(i.delimiter=i.delimiter(y),h.meta.delimiter=i.delimiter):((D=((F,X,V,z,_)=>{var ee,A,W,Y;_=_||[","," ","|",";",s.RECORD_SEP,s.UNIT_SEP];for(var pe=0;pe<_.length;pe++){for(var le,me=_[pe],te=0,ce=0,G=0,re=(W=void 0,new q({comments:z,delimiter:me,newline:X,preview:10}).parse(F)),de=0;de<re.data.length;de++)V&&T(re.data[de])?G++:(le=re.data[de].length,ce+=le,W===void 0?W=le:0<le&&(te+=Math.abs(le-W),W=le));0<re.data.length&&(ce/=re.data.length-G),(A===void 0||te<=A)&&(Y===void 0||Y<ce)&&1.99<ce&&(A=te,ee=me,Y=ce)}return{successful:!!(i.delimiter=ee),bestDelimiter:ee}})(y,i.newline,i.skipEmptyLines,i.comments,i.delimitersToGuess)).successful?i.delimiter=D.bestDelimiter:(g=!0,i.delimiter=s.DefaultDelimiter),h.meta.delimiter=i.delimiter),oe(i));return i.preview&&i.header&&D.preview++,n=y,l=new q(D),h=l.parse(n,L,K),v(),J?{meta:{paused:!0}}:h||{meta:{paused:!1}}},this.paused=function(){return J},this.pause=function(){J=!0,l.abort(),n=P(i.chunk)?"":n.substring(l.getCharIndex())},this.resume=function(){M.streamer._halted?(J=!1,M.streamer.parseChunk(n,!0)):setTimeout(M.resume,3)},this.aborted=function(){return d},this.abort=function(){d=!0,l.abort(),h.meta.aborted=!0,P(i.complete)&&i.complete(h),n=""},this.guessLineEndings=function(F,D){F=F.substring(0,1048576);var D=new RegExp(R(D)+"([^]*?)"+R(D),"gm"),K=(F=F.replace(D,"")).split("\r"),D=F.split(`
`),F=1<D.length&&D[0].length<K[0].length;if(K.length===1||F)return`
`;for(var X=0,V=0;V<K.length;V++)K[V][0]===`
`&&X++;return X>=K.length/2?`\r
`:"\r"}}function R(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function q(i){var n=(i=i||{}).delimiter,l=i.newline,g=i.comments,f=i.step,x=i.preview,j=i.fastMode,B=null,Q=!1,M=i.quoteChar==null?'"':i.quoteChar,U=M;if(i.escapeChar!==void 0&&(U=i.escapeChar),(typeof n!="string"||-1<s.BAD_DELIMITERS.indexOf(n))&&(n=","),g===n)throw new Error("Comment character same as delimiter");g===!0?g="#":(typeof g!="string"||-1<s.BAD_DELIMITERS.indexOf(g))&&(g=!1),l!==`
`&&l!=="\r"&&l!==`\r
`&&(l=`
`);var k=0,J=!1;this.parse=function(d,m,h){if(typeof d!="string")throw new Error("Input must be a string");var T=d.length,v=n.length,E=l.length,I=g.length,y=P(f),L=[],K=[],D=[],F=k=0;if(!d)return te();if(j||j!==!1&&d.indexOf(M)===-1){for(var X=d.split(l),V=0;V<X.length;V++){if(D=X[V],k+=D.length,V!==X.length-1)k+=l.length;else if(h)return te();if(!g||D.substring(0,I)!==g){if(y){if(L=[],Y(D.split(n)),ce(),J)return te()}else Y(D.split(n));if(x&&x<=V)return L=L.slice(0,x),te(!0)}}return te()}for(var z=d.indexOf(n,k),_=d.indexOf(l,k),ee=new RegExp(R(U)+R(M),"g"),A=d.indexOf(M,k);;)if(d[k]===M)for(A=k,k++;;){if((A=d.indexOf(M,A+1))===-1)return h||K.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:L.length,index:k}),le();if(A===T-1)return le(d.substring(k,A).replace(ee,M));if(M===U&&d[A+1]===U)A++;else if(M===U||A===0||d[A-1]!==U){z!==-1&&z<A+1&&(z=d.indexOf(n,A+1));var W=pe((_=_!==-1&&_<A+1?d.indexOf(l,A+1):_)===-1?z:Math.min(z,_));if(d.substr(A+1+W,v)===n){D.push(d.substring(k,A).replace(ee,M)),d[k=A+1+W+v]!==M&&(A=d.indexOf(M,k)),z=d.indexOf(n,k),_=d.indexOf(l,k);break}if(W=pe(_),d.substring(A+1+W,A+1+W+E)===l){if(D.push(d.substring(k,A).replace(ee,M)),me(A+1+W+E),z=d.indexOf(n,k),A=d.indexOf(M,k),y&&(ce(),J))return te();if(x&&L.length>=x)return te(!0);break}K.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:L.length,index:k}),A++}}else if(g&&D.length===0&&d.substring(k,k+I)===g){if(_===-1)return te();k=_+E,_=d.indexOf(l,k),z=d.indexOf(n,k)}else if(z!==-1&&(z<_||_===-1))D.push(d.substring(k,z)),k=z+v,z=d.indexOf(n,k);else{if(_===-1)break;if(D.push(d.substring(k,_)),me(_+E),y&&(ce(),J))return te();if(x&&L.length>=x)return te(!0)}return le();function Y(G){L.push(G),F=k}function pe(G){var re=0;return re=G!==-1&&(G=d.substring(A+1,G))&&G.trim()===""?G.length:re}function le(G){return h||(G===void 0&&(G=d.substring(k)),D.push(G),k=T,Y(D),y&&ce()),te()}function me(G){k=G,Y(D),D=[],_=d.indexOf(l,k)}function te(G){if(i.header&&!m&&L.length&&!Q){var re=L[0],de={},Ie=new Set(re);let We=!1;for(let fe=0;fe<re.length;fe++){let he=re[fe];if(de[he=P(i.transformHeader)?i.transformHeader(he,fe):he]){let ve,Ne=de[he];for(;ve=he+"_"+Ne,Ne++,Ie.has(ve););Ie.add(ve),re[fe]=ve,de[he]++,We=!0,(B=B===null?{}:B)[ve]=he}else de[he]=1,re[fe]=he;Ie.add(he)}We&&console.warn("Duplicate headers found and renamed."),Q=!0}return{data:L,errors:K,meta:{delimiter:n,linebreak:l,aborted:J,truncated:!!G,cursor:F+(m||0),renamedHeaders:B}}}function ce(){f(te()),L=[],K=[]}},this.abort=function(){J=!0},this.getCharIndex=function(){return k}}function Z(i){var n=i.data,l=o[n.workerId],g=!1;if(n.error)l.userError(n.error,n.file);else if(n.results&&n.results.data){var f={abort:function(){g=!0,H(n.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:ie,resume:ie};if(P(l.userStep)){for(var x=0;x<n.results.data.length&&(l.userStep({data:n.results.data[x],errors:n.results.errors,meta:n.results.meta},f),!g);x++);delete n.results}else P(l.userChunk)&&(l.userChunk(n.results,f,n.file),delete n.results)}n.finished&&!g&&H(n.workerId,n.results)}function H(i,n){var l=o[i];P(l.userComplete)&&l.userComplete(n),l.terminate(),delete o[i]}function ie(){throw new Error("Not implemented.")}function oe(i){if(typeof i!="object"||i===null)return i;var n,l=Array.isArray(i)?[]:{};for(n in i)l[n]=oe(i[n]);return l}function N(i,n){return function(){i.apply(n,arguments)}}function P(i){return typeof i=="function"}return s.parse=function(i,n){var l=(n=n||{}).dynamicTyping||!1;if(P(l)&&(n.dynamicTypingFunction=l,l={}),n.dynamicTyping=l,n.transform=!!P(n.transform)&&n.transform,!n.worker||!s.WORKERS_SUPPORTED)return l=null,s.NODE_STREAM_INPUT,typeof i=="string"?(i=(g=>g.charCodeAt(0)!==65279?g:g.slice(1))(i),l=new(n.download?u:S)(n)):i.readable===!0&&P(i.read)&&P(i.on)?l=new $(n):(t.File&&i instanceof File||i instanceof Object)&&(l=new b(n)),l.stream(i);(l=(()=>{var g;return!!s.WORKERS_SUPPORTED&&(g=(()=>{var f=t.URL||t.webkitURL||null,x=w.toString();return s.BLOB_URL||(s.BLOB_URL=f.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",x,")();"],{type:"text/javascript"})))})(),(g=new t.Worker(g)).onmessage=Z,g.id=p++,o[g.id]=g)})()).userStep=n.step,l.userChunk=n.chunk,l.userComplete=n.complete,l.userError=n.error,n.step=P(n.step),n.chunk=P(n.chunk),n.complete=P(n.complete),n.error=P(n.error),delete n.worker,l.postMessage({input:i,config:n,workerId:l.id})},s.unparse=function(i,n){var l=!1,g=!0,f=",",x=`\r
`,j='"',B=j+j,Q=!1,M=null,U=!1,k=((()=>{if(typeof n=="object"){if(typeof n.delimiter!="string"||s.BAD_DELIMITERS.filter(function(m){return n.delimiter.indexOf(m)!==-1}).length||(f=n.delimiter),typeof n.quotes!="boolean"&&typeof n.quotes!="function"&&!Array.isArray(n.quotes)||(l=n.quotes),typeof n.skipEmptyLines!="boolean"&&typeof n.skipEmptyLines!="string"||(Q=n.skipEmptyLines),typeof n.newline=="string"&&(x=n.newline),typeof n.quoteChar=="string"&&(j=n.quoteChar),typeof n.header=="boolean"&&(g=n.header),Array.isArray(n.columns)){if(n.columns.length===0)throw new Error("Option columns is empty");M=n.columns}n.escapeChar!==void 0&&(B=n.escapeChar+j),n.escapeFormulae instanceof RegExp?U=n.escapeFormulae:typeof n.escapeFormulae=="boolean"&&n.escapeFormulae&&(U=/^[=+\-@\t\r].*$/)}})(),new RegExp(R(j),"g"));if(typeof i=="string"&&(i=JSON.parse(i)),Array.isArray(i)){if(!i.length||Array.isArray(i[0]))return J(null,i,Q);if(typeof i[0]=="object")return J(M||Object.keys(i[0]),i,Q)}else if(typeof i=="object")return typeof i.data=="string"&&(i.data=JSON.parse(i.data)),Array.isArray(i.data)&&(i.fields||(i.fields=i.meta&&i.meta.fields||M),i.fields||(i.fields=Array.isArray(i.data[0])?i.fields:typeof i.data[0]=="object"?Object.keys(i.data[0]):[]),Array.isArray(i.data[0])||typeof i.data[0]=="object"||(i.data=[i.data])),J(i.fields||[],i.data||[],Q);throw new Error("Unable to serialize unrecognized input");function J(m,h,T){var v="",E=(typeof m=="string"&&(m=JSON.parse(m)),typeof h=="string"&&(h=JSON.parse(h)),Array.isArray(m)&&0<m.length),I=!Array.isArray(h[0]);if(E&&g){for(var y=0;y<m.length;y++)0<y&&(v+=f),v+=d(m[y],y);0<h.length&&(v+=x)}for(var L=0;L<h.length;L++){var K=(E?m:h[L]).length,D=!1,F=E?Object.keys(h[L]).length===0:h[L].length===0;if(T&&!E&&(D=T==="greedy"?h[L].join("").trim()==="":h[L].length===1&&h[L][0].length===0),T==="greedy"&&E){for(var X=[],V=0;V<K;V++){var z=I?m[V]:V;X.push(h[L][z])}D=X.join("").trim()===""}if(!D){for(var _=0;_<K;_++){0<_&&!F&&(v+=f);var ee=E&&I?m[_]:_;v+=d(h[L][ee],_)}L<h.length-1&&(!T||0<K&&!F)&&(v+=x)}}return v}function d(m,h){var T,v;return m==null?"":m.constructor===Date?JSON.stringify(m).slice(1,25):(v=!1,U&&typeof m=="string"&&U.test(m)&&(m="'"+m,v=!0),T=m.toString().replace(k,B),(v=v||l===!0||typeof l=="function"&&l(m,h)||Array.isArray(l)&&l[h]||((E,I)=>{for(var y=0;y<I.length;y++)if(-1<E.indexOf(I[y]))return!0;return!1})(T,s.BAD_DELIMITERS)||-1<T.indexOf(f)||T.charAt(0)===" "||T.charAt(T.length-1)===" ")?j+T+j:T)}},s.RECORD_SEP=String.fromCharCode(30),s.UNIT_SEP=String.fromCharCode(31),s.BYTE_ORDER_MARK="\uFEFF",s.BAD_DELIMITERS=["\r",`
`,'"',s.BYTE_ORDER_MARK],s.WORKERS_SUPPORTED=!r&&!!t.Worker,s.NODE_STREAM_INPUT=1,s.LocalChunkSize=10485760,s.RemoteChunkSize=5242880,s.DefaultDelimiter=",",s.Parser=q,s.ParserHandle=C,s.NetworkStreamer=u,s.FileStreamer=b,s.StringStreamer=S,s.ReadableStreamStreamer=$,t.jQuery&&((e=t.jQuery).fn.parse=function(i){var n=i.config||{},l=[];return this.each(function(x){if(!(e(this).prop("tagName").toUpperCase()==="INPUT"&&e(this).attr("type").toLowerCase()==="file"&&t.FileReader)||!this.files||this.files.length===0)return!0;for(var j=0;j<this.files.length;j++)l.push({file:this.files[j],inputElem:this,instanceConfig:e.extend({},n)})}),g(),this;function g(){if(l.length===0)P(i.complete)&&i.complete();else{var x,j,B,Q,M=l[0];if(P(i.before)){var U=i.before(M.file,M.inputElem);if(typeof U=="object"){if(U.action==="abort")return x="AbortError",j=M.file,B=M.inputElem,Q=U.reason,void(P(i.error)&&i.error({name:x},j,B,Q));if(U.action==="skip")return void f();typeof U.config=="object"&&(M.instanceConfig=e.extend(M.instanceConfig,U.config))}else if(U==="skip")return void f()}var k=M.instanceConfig.complete;M.instanceConfig.complete=function(J){P(k)&&k(J,M.file,M.inputElem),f()},s.parse(M.file,M.instanceConfig)}}function f(){l.splice(0,1),g()}}),a&&(t.onmessage=function(i){i=i.data,s.WORKER_ID===void 0&&i&&(s.WORKER_ID=i.workerId),typeof i.input=="string"?t.postMessage({workerId:s.WORKER_ID,results:s.parse(i.input,i.config),finished:!0}):(t.File&&i.input instanceof File||i.input instanceof Object)&&(i=s.parse(i.input,i.config))&&t.postMessage({workerId:s.WORKER_ID,results:i,finished:!0})}),(u.prototype=Object.create(c.prototype)).constructor=u,(b.prototype=Object.create(c.prototype)).constructor=b,(S.prototype=Object.create(S.prototype)).constructor=S,($.prototype=Object.create(c.prototype)).constructor=$,s})});var ut={};at(ut,{default:()=>_e});module.exports=lt(ut);var De=require("obsidian");var ne=require("obsidian");var Ee=ot($e()),qe=require("obsidian");var je={buttons:{undo:"\u64A4\u9500",redo:"\u91CD\u505A",addRow:"\u6DFB\u52A0\u884C",deleteRow:"\u5220\u9664\u884C",addColumn:"\u6DFB\u52A0\u5217",deleteColumn:"\u5220\u9664\u5217",resetColumnWidth:"\u91CD\u7F6E\u5217\u5BBD",sourceMode:"\u6E90\u7801\u6A21\u5F0F",tableMode:"\u8868\u683C\u6A21\u5F0F",insertRowBefore:"\u4E0A\u65B9\u63D2\u5165\u884C",insertRowAfter:"\u4E0B\u65B9\u63D2\u5165\u884C"},editBar:{placeholder:"\u7F16\u8F91\u9009\u4E2D\u5355\u5143\u683C..."},csv:{error:"\u9519\u8BEF",parsingFailed:"CSV\u89E3\u6790\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u6587\u4EF6\u683C\u5F0F"},settings:{fieldSeparator:"\u5B57\u6BB5\u5206\u9694\u7B26",fieldSeparatorDesc:"\u7528\u4E8E\u5206\u9694\u5B57\u6BB5\u7684\u5B57\u7B26\uFF08\u4F8B\u5982\uFF1A\u9017\u53F7\u3001\u5206\u53F7\u3001\u5236\u8868\u7B26\uFF09",quoteChar:"\u5F15\u53F7\u5B57\u7B26",quoteCharDesc:"\u7528\u4E8E\u5305\u56F4\u542B\u6709\u7279\u6B8A\u5B57\u7B26\u7684\u5B57\u6BB5"},search:{placeholder:"\u641C\u7D22\u8868\u683C\u5185\u5BB9...",noResults:"\u672A\u627E\u5230\u5339\u914D\u7ED3\u679C",moreResults:"\u8FD8\u6709 {count} \u4E2A\u7ED3\u679C...",rowColumn:"\u7B2C{row}\u884C\uFF0C\u7B2C{col}\u5217"},table:{headerRow:"\u8868\u5934\u884C",dataRow:"\u6570\u636E\u884C"},contextMenu:{insertRowAbove:"\u4E0A\u65B9\u63D2\u5165\u884C",insertRowBelow:"\u4E0B\u65B9\u63D2\u5165\u884C",deleteRow:"\u5220\u9664\u672C\u884C",moveRowUp:"\u5411\u4E0A\u79FB\u52A8\u4E00\u884C",moveRowDown:"\u5411\u4E0B\u79FB\u52A8\u4E00\u884C",insertColLeft:"\u5DE6\u4FA7\u63D2\u5165\u5217",insertColRight:"\u53F3\u4FA7\u63D2\u5165\u5217",deleteCol:"\u5220\u9664\u672C\u5217",moveColLeft:"\u5411\u5DE6\u79FB\u52A8\u4E00\u5217",moveColRight:"\u5411\u53F3\u79FB\u52A8\u4E00\u5217"}};var Ke={buttons:{undo:"Undo",redo:"Redo",addRow:"Add row",deleteRow:"Delete row",addColumn:"Add column",deleteColumn:"Delete column",resetColumnWidth:"Reset column width",sourceMode:"Source Mode",tableMode:"Table Mode"},editBar:{placeholder:"Edit selected cell..."},csv:{error:"Error",parsingFailed:"Failed to parse CSV. Please check file format."},settings:{fieldSeparator:"Field Separator",fieldSeparatorDesc:"The character used to separate fields (e.g., comma, semicolon, tab)",quoteChar:"Quote Character",quoteCharDesc:"Character used to enclose fields containing special characters"},search:{placeholder:"Search table content...",noResults:"No matching results found",moreResults:"{count} more results...",rowColumn:"Row {row}, Column {col}"},table:{headerRow:"Header Row",dataRow:"Data Row"},contextMenu:{insertRowAbove:"Insert row above",insertRowBelow:"Insert row below",deleteRow:"Delete this row",moveRowUp:"Move row up",moveRowDown:"Move row down",insertColLeft:"Insert column left",insertColRight:"Insert column right",deleteCol:"Delete this column",moveColLeft:"Move column left",moveColRight:"Move column right"}};var Qe={"zh-cn":je,en:Ke},Oe=class{constructor(t){this.locale="en";this.setLocale(t||"en")}setLocale(t){console.log(`I18n: Attempting to set locale to '${t}'`);let e=t.toLowerCase(),r="en";e.startsWith("zh")?r="zh-cn":e.startsWith("en")&&(r="en"),r in Qe?(this.locale=r,console.log(`I18n: Successfully set locale to '${this.locale}'`)):(this.locale="en",console.warn(`I18n: Locale '${r}' is not fully supported, falling back to 'en'`))}t(t,e){let r=this.getTranslation(t,this.locale);r===null&&this.locale!=="en"&&(console.warn(`I18n: Key '${t}' not found in '${this.locale}', falling back to 'en'.`),r=this.getTranslation(t,"en"));let a=r!=null?r:t;return e&&Object.keys(e).forEach(o=>{let p=`{${o}}`;a=a.replace(new RegExp(p,"g"),String(e[o]))}),a}getTranslation(t,e){let r=Qe[e],a=t.split("."),o=r;for(let p of a)if(o&&typeof o=="object"&&p in o)o=o[p];else return null;return typeof o=="string"?o:null}getCurrentLocale(){return this.locale}},O=new Oe;var ue=class{static detectDelimiter(t,e='"'){if(!t||t.length===0)return",";let r=[",",";"," ","|"],a=[],o="",p=!1;for(let b=0;b<t.length;b++){let S=t[b];if(S===e){if(b+1<t.length&&t[b+1]===e){o+=e,b++;continue}p=!p,o+=S;continue}if(!p&&S===`
`){a.push(o),o="";continue}!p&&S==="\r"||(o+=S)}o.length>0&&a.push(o);let s=a.map(b=>b).filter(b=>b.trim().length>0).slice(0,20);if(s.length===0)return",";function c(b,S){let $=!1,C=0;for(let R=0;R<b.length;R++){let q=b[R];if(q===e){if(R+1<b.length&&b[R+1]===e){R++;continue}$=!$;continue}!$&&q===S&&C++}return C+1}let u=null;for(let b of r){let S=s.map(q=>c(q,b)),$=S.reduce((q,Z)=>q+Z,0)/S.length,C=S.reduce((q,Z)=>q+Math.pow(Z-$,2),0)/S.length,R=($>1?$:0)-C*.1;(!u||R>u.score)&&(u={delim:b,score:R,avgFields:$,consistency:C})}return u&&u.avgFields>=1.5?u.delim:","}static parseCSV(t,e){try{let r={...this.defaultConfig,...e};if(!r.delimiter||r.delimiter==="auto"){let o=this.detectDelimiter(t,r.quoteChar);r.delimiter=o}let a=Ee.parse(t,r);return a.errors&&a.errors.length>0&&(console.warn("CSV\u89E3\u6790\u8B66\u544A:",a.errors),new qe.Notice(`CSV\u89E3\u6790\u63D0\u793A: ${a.errors[0].message}`)),a.data}catch(r){return console.error("CSV\u89E3\u6790\u9519\u8BEF:",r),new qe.Notice(`${O.t("csv.error")}: CSV\u89E3\u6790\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u6587\u4EF6\u683C\u5F0F`),[[""]]}}static unparseCSV(t,e){return Ee.unparse(t,{...{header:!1,newline:`
`},...e})}static normalizeTableData(t){if(!t||t.length===0)return[[""]];let e=0;for(let a of t)a&&(e=Math.max(e,a.length));return t.map(a=>{let o=a?[...a]:[];for(;o.length<e;)o.push("");return o})}};ue.defaultConfig={header:!1,dynamicTyping:!1,skipEmptyLines:!1,delimiter:"auto",quoteChar:'"',escapeChar:'"'};var be=require("obsidian"),ze=class{constructor(t,e=50){this.history=[];this.currentIndex=-1;this.maxSize=e,t&&this.push(t)}push(t){this.currentIndex<this.history.length-1&&(this.history=this.history.slice(0,this.currentIndex+1)),this.history.push(this.cloneState(t)),this.history.length>this.maxSize?this.history.shift():this.currentIndex++}undo(){return this.canUndo()?(this.currentIndex--,new be.Notice("\u5DF2\u64A4\u9500\u4E0A\u4E00\u6B65\u64CD\u4F5C"),this.getCurrentState()):(new be.Notice("\u6CA1\u6709\u66F4\u591A\u53EF\u64A4\u9500\u7684\u64CD\u4F5C"),null)}redo(){return this.canRedo()?(this.currentIndex++,new be.Notice("\u5DF2\u91CD\u505A\u64CD\u4F5C"),this.getCurrentState()):(new be.Notice("\u6CA1\u6709\u66F4\u591A\u53EF\u91CD\u505A\u7684\u64CD\u4F5C"),null)}getCurrentState(){return this.currentIndex>=0&&this.currentIndex<this.history.length?this.cloneState(this.history[this.currentIndex]):null}canUndo(){return this.currentIndex>0}canRedo(){return this.currentIndex<this.history.length-1}reset(t){this.history=[],this.currentIndex=-1,t&&this.push(t)}cloneState(t){return Array.isArray(t)?t.length>0&&Array.isArray(t[0])?t.map(e=>[...e]):[...t]:typeof t=="object"&&t!==null?JSON.parse(JSON.stringify(t)):t}},we=class extends ze{cloneState(t){return t.map(e=>[...e])}};var Pe=require("obsidian"),ae=class{static calculateColumnWidths(t){if(!t||t.length===0||!t[0])return[];let e=t[0].map(()=>100);return t.forEach(r=>{r.forEach((a,o)=>{let p=Math.max(50,Math.min(300,a.length*10));e[o]=Math.max(e[o],p)})}),e}static addRow(t){let e=t.length>0?t[0].length:1,r=Array(e).fill("");return[...t,r]}static deleteRow(t){return t.length<=1?(new Pe.Notice("\u81F3\u5C11\u9700\u8981\u4FDD\u7559\u4E00\u884C"),t):t.slice(0,-1)}static addColumn(t){return t.map(e=>[...e,""])}static deleteColumn(t){return!t[0]||t[0].length<=1?(new Pe.Notice("\u81F3\u5C11\u9700\u8981\u4FDD\u7559\u4E00\u5217"),t):t.map(e=>e.slice(0,-1))}static addColumnToLeft(t,e){return!t||t.length===0?[]:t.map(r=>{let a=[...r];return a.splice(e,0,""),a})}static addColumnToRight(t,e){return!t||t.length===0?[]:t.map(r=>{let a=[...r];return a.splice(e+1,0,""),a})}static getColumnLabel(t){let e="",r=t;for(;r>=0;)e=String.fromCharCode(65+r%26)+e,r=Math.floor(r/26)-1;return e}static getCellAddress(t,e){let r=this.getColumnLabel(e),a=t+1;return`${r}${a}`}static getTableData(t){return Array.from(t.querySelectorAll("tr")).map(r=>Array.from(r.querySelectorAll("td, th")).map(o=>o.textContent||""))}};var Ye=require("obsidian"),Ce=class{static async withRetry(t,e=3,r=500){let a=new Error("Unknown error occurred");for(let o=0;o<=e;o++)try{return await t()}catch(p){if(a=p,!(p instanceof Error&&(p.message.includes("EBUSY")||p.message.includes("busy")||p.message.includes("locked")))||o===e)break;o===0&&new Ye.Notice(`File is busy. Retrying... (${o+1}/${e})`),await new Promise(c=>setTimeout(c,r))}throw a}};function Se(w){let{editBarEl:t,editInput:e,activeCellEl:r,activeRowIndex:a,activeColIndex:o,tableData:p,onEdit:s}=w;if(r){e.value=r.value;let c=ae.getCellAddress(a,o);t.setAttribute("data-cell-address",c),r.value?e.placeholder="":e.placeholder=c}else e.value="",e.placeholder=O.t("editBar.placeholder"),t.removeAttribute("data-cell-address");e.oninput=null,e.oninput=()=>{r&&a>=0&&o>=0&&(r.value=e.value,p[a][o]!==e.value&&s(a,o,e.value))}}var Re=class{constructor(t,e){this.searchMatches=[];this.currentSearchIndex=-1;this.options=e,this.searchContainer=t.createEl("div",{cls:"csv-search-container"}),this.searchInput=this.searchContainer.createEl("input",{cls:"csv-search-input",attr:{type:"text",placeholder:O.t("search.placeholder")}}),this.searchResults=this.searchContainer.createEl("div",{cls:"csv-search-results"}),this.setupSearchEvents()}setupSearchEvents(){let t;this.searchInput.addEventListener("input",()=>{clearTimeout(t),t=setTimeout(()=>{this.performSearch(this.searchInput.value)},300)}),this.searchInput.addEventListener("focus",()=>{this.searchMatches.length>0&&this.searchResults.classList.add("show")}),this.searchInput.addEventListener("keydown",e=>{e.key==="ArrowDown"?(e.preventDefault(),this.navigateSearchResults(1)):e.key==="ArrowUp"?(e.preventDefault(),this.navigateSearchResults(-1)):e.key==="Enter"?(e.preventDefault(),this.selectCurrentSearchResult()):e.key==="Escape"&&(this.searchInput.value="",this.performSearch(""),this.hideSearchResults())}),document.addEventListener("click",e=>{this.searchContainer.contains(e.target)||this.hideSearchResults()})}performSearch(t){if(this.searchMatches=[],this.currentSearchIndex=-1,!t.trim()){this.hideSearchResults(),this.options.clearSearchHighlights();return}let e=t.toLowerCase().trim(),r=this.options.getTableData();for(let a=0;a<r.length;a++)for(let o=0;o<r[a].length;o++){let p=r[a][o];p.toLowerCase().includes(e)&&this.searchMatches.push({row:a,col:o,value:p})}this.displaySearchResults(t)}displaySearchResults(t){if(this.searchResults.empty(),this.searchMatches.length===0){let r=this.searchResults.createEl("div",{cls:"csv-search-result-item",text:O.t("search.noResults")});r.style.color="var(--text-muted)",this.searchResults.classList.add("show");return}if(this.searchMatches.slice(0,10).forEach((r,a)=>{let o=this.searchResults.createEl("div",{cls:"csv-search-result-item"}),p=o.createEl("div");p.createEl("span",{cls:"csv-search-result-cell",text:this.options.getCellAddress(r.row,r.col)}),p.createEl("span",{cls:"csv-search-result-address",text:O.t("search.rowColumn",{row:(r.row+1).toString(),col:(r.col+1).toString()})});let s=o.createEl("div",{cls:"csv-search-result-preview"});s.innerHTML=this.highlightSearchTerm(r.value,t),o.addEventListener("click",()=>{this.options.jumpToCell(r.row,r.col),this.hideSearchResults()}),o.setAttribute("data-index",a.toString())}),this.searchMatches.length>10){let r=this.searchResults.createEl("div",{cls:"csv-search-result-item",text:O.t("search.moreResults",{count:(this.searchMatches.length-10).toString()})});r.style.color="var(--text-muted)",r.style.fontStyle="italic"}this.searchResults.classList.add("show")}highlightSearchTerm(t,e){if(!e.trim())return t;let r=new RegExp(`(${e.replace(/[.*+?^${}()|[\\]\\]/g,"\\$&")})`,"gi");return t.replace(r,'<span class="csv-search-highlight">$1</span>')}navigateSearchResults(t){let e=this.searchResults.querySelectorAll(".csv-search-result-item[data-index]");if(e.length===0)return;e.forEach(a=>a.classList.remove("csv-search-result-hover")),this.currentSearchIndex=Math.max(0,Math.min(e.length-1,this.currentSearchIndex+t));let r=e[this.currentSearchIndex];r&&(r.classList.add("csv-search-result-hover"),r.scrollIntoView({block:"nearest"}))}selectCurrentSearchResult(){if(this.currentSearchIndex>=0&&this.currentSearchIndex<this.searchMatches.length){let t=this.searchMatches[this.currentSearchIndex];this.options.jumpToCell(t.row,t.col),this.hideSearchResults()}}hideSearchResults(){this.searchResults.classList.remove("show"),this.currentSearchIndex=-1}};var Be=require("obsidian");function Je(w){let{tableData:t,columnWidths:e,autoResize:r,tableEl:a,editInput:o,activeCellEl:p,activeRowIndex:s,activeColIndex:c,setActiveCell:u,saveSnapshot:b,requestSave:S,setupAutoResize:$,adjustInputHeight:C,selectRow:R,selectColumn:q,getColumnLabel:Z,setupColumnResize:H,insertRowAt:ie,deleteRowAt:oe,insertColAt:N,deleteColAt:P,renderEditBar:i,onColumnReorder:n,onRowReorder:l,stickyRows:g,stickyColumns:f,toggleRowSticky:x,toggleColumnSticky:j}=w;a.empty(),window._csvLiteDragState||(window._csvLiteDragState={type:null,index:null});let B=window._csvLiteDragState;function Q(d,m){B.type=d,B.index=m,a.classList.remove("csv-dragging-row","csv-dragging-col"),d==="row"&&a.classList.add("csv-dragging-row"),d==="col"&&a.classList.add("csv-dragging-col")}if(e.length===0&&t[0]){let d=ae.calculateColumnWidths(t);e.splice(0,e.length,...d)}let M=a.createEl("thead").createEl("tr"),U=M.createEl("th",{cls:"csv-corner-cell"});t[0]&&t[0].forEach((d,m)=>{let h=M.createEl("th",{cls:"csv-col-number",attr:{style:`width: ${e[m]||100}px`,draggable:"true"}});if(h.textContent=Z(m),h.onclick=v=>{v.stopPropagation(),q(m)},j){let v=(f==null?void 0:f.has(m))||!1,E=h.createEl("button",{cls:`csv-pin-btn csv-pin-col ${v?"pinned":""}`,attr:{title:v?"Unpin column":"Pin column"}});(0,Be.setIcon)(E,v?"pin-off":"pin"),E.onclick=I=>{I.stopPropagation(),j(m)}}if(h.ondragstart=v=>{var E;(E=v.dataTransfer)==null||E.setData("text/col-index",String(m)),h.classList.add("dragging"),Q("col",m),typeof S=="function"&&S()},h.ondragend=()=>{h.classList.remove("dragging"),Q(null,null),typeof S=="function"&&S()},h.ondragover=v=>{v.preventDefault(),h.classList.add("drag-over")},h.ondragleave=()=>{h.classList.remove("drag-over")},h.ondrop=v=>{var y;v.preventDefault(),h.classList.remove("drag-over"),Q(null,null);let E=Number((y=v.dataTransfer)==null?void 0:y.getData("text/col-index")),I=m;n&&E!==I&&n(E,I)},B.type!=="col"){let v=h.createEl("button",{cls:"csv-insert-col-btn left"});v.innerText="+",v.title=O.t("buttons.insertColBefore")||"Insert column before",v.onclick=y=>{y.stopPropagation(),w.insertColAt(m,!1)};let E=h.createEl("button",{cls:"csv-insert-col-btn right"});E.innerText="+",E.title=O.t("buttons.insertColAfter")||"Insert column after",E.onclick=y=>{y.stopPropagation(),w.insertColAt(m,!0)};let I=h.createEl("button",{cls:"csv-del-col-btn"});I.innerText="-",I.title=O.t("buttons.deleteColumn")||"Delete column",I.onclick=y=>{y.stopPropagation(),w.deleteColAt(m)}}if(B.type==="col"&&B.index!==null){let v=Math.max(0,B.index-2),E=Math.min(t[0].length-1,B.index+2);m>=v&&m<=E&&h.classList.add("csv-dragging-highlight")}let T=h.createEl("div",{cls:"resize-handle"});H(T,m)});let k=a.createEl("tbody");for(let d=0;d<t.length;d++){let m=t[d],h=k.createEl("tr"),T=h.createEl("td",{cls:"csv-row-number",attr:{draggable:"true"}});if(T.textContent=d.toString(),T.onclick=v=>{v.stopPropagation(),R(d)},x){let v=(g==null?void 0:g.has(d))||!1,E=T.createEl("button",{cls:`csv-pin-btn csv-pin-row ${v?"pinned":""}`,attr:{title:v?"Unpin row":"Pin row"}});(0,Be.setIcon)(E,v?"pin-off":"pin"),E.onclick=I=>{I.stopPropagation(),x(d)}}if(T.ondragstart=v=>{var E;(E=v.dataTransfer)==null||E.setData("text/row-index",String(d)),T.classList.add("dragging"),Q("row",d),typeof S=="function"&&S()},T.ondragend=()=>{T.classList.remove("dragging"),Q(null,null),typeof S=="function"&&S()},T.ondragover=v=>{v.preventDefault(),T.classList.add("drag-over")},T.ondragleave=()=>{T.classList.remove("drag-over")},T.ondrop=v=>{var y;v.preventDefault(),T.classList.remove("drag-over"),Q(null,null);let E=Number((y=v.dataTransfer)==null?void 0:y.getData("text/row-index")),I=d;l&&E!==I&&l(E,I)},B.type!=="row"){let v=T.createEl("button",{cls:"csv-insert-row-btn above"});v.innerText="+",v.title=O.t("buttons.insertRowBefore")||"Insert row before",v.onclick=y=>{y.stopPropagation(),w.insertRowAt(d,!1)};let E=T.createEl("button",{cls:"csv-insert-row-btn below"});E.innerText="+",E.title=O.t("buttons.insertRowAfter")||"Insert row after",E.onclick=y=>{y.stopPropagation(),w.insertRowAt(d,!0)};let I=T.createEl("button",{cls:"csv-del-row-btn"});I.innerText="-",I.title=O.t("buttons.deleteRow")||"Delete row",I.onclick=y=>{y.stopPropagation(),w.deleteRowAt(d)}}if(B.type==="row"&&B.index!==null){let v=Math.max(0,B.index-2),E=Math.min(t.length-1,B.index+2);d>=v&&d<=E&&(T.classList.add("csv-dragging-highlight"),Array.from(h.children).forEach(I=>{I.classList.add("csv-dragging-highlight")}))}m.forEach((v,E)=>{let y=h.createEl("td",{attr:{style:`width: ${e[E]||100}px`}}).createEl("input",{cls:"csv-cell-input",attr:{value:v}});$(y),y.oninput=L=>{L.currentTarget instanceof HTMLInputElement&&(b(),t[d][E]=L.currentTarget.value,p===L.currentTarget&&o&&(o.value=L.currentTarget.value),i&&i(d,E,L.currentTarget),S(),r&&C(L.currentTarget))},y.onfocus=L=>{u(d,E,L.currentTarget)}})}let J=()=>{a.querySelectorAll(".csv-col-number.active, .csv-row-number.active").forEach(m=>m.classList.remove("active"))};document.addEventListener("click",d=>{let m=d.target;(m==null?void 0:m.closest(".csv-col-number, .csv-row-number"))||J()})}var ke=class{constructor(t){this.selectedRow=-1;this.selectedCol=-1;this.tableEl=t}selectRow(t){if(console.log("[HighlightManager] selectRow called with index:",t),this.selectedRow===t){this.clearSelection();return}this.clearSelection(),this.selectedRow=t,this.highlightRow(t)}selectColumn(t){if(console.log("[HighlightManager] selectColumn called with index:",t),this.selectedCol===t){this.clearSelection();return}this.clearSelection(),this.selectedCol=t,this.highlightColumn(t)}clearSelection(){console.log("[HighlightManager] clearSelection called"),this.selectedRow=-1,this.selectedCol=-1,this.clearHighlight()}getSelectedRow(){return this.selectedRow}getSelectedCol(){return this.selectedCol}setTableEl(t){this.tableEl=t}highlightRow(t){var a;console.log("[HighlightManager] highlightRow called with index:",t);let e=(a=this.tableEl)==null?void 0:a.querySelectorAll("tbody tr");console.log("[HighlightManager] \u627E\u5230\u7684tbody\u884C\u6570:",e==null?void 0:e.length);let r=t;e&&e[r]?(console.log("[HighlightManager] \u9AD8\u4EAE\u76EE\u6807\u884C:",e[r]),e[r].classList.add("csv-row-selected")):console.log("[HighlightManager] \u672A\u627E\u5230\u76EE\u6807\u884C\uFF0CrowIndex:",t,"targetRowIndex:",r)}highlightColumn(t){var r;console.log("[HighlightManager] highlightColumn called with index:",t);let e=(r=this.tableEl)==null?void 0:r.querySelectorAll(`th:nth-child(${t+2}), td:nth-child(${t+2})`);console.log("[HighlightManager] \u627E\u5230\u7684\u5217\u5355\u5143\u683C\u6570:",e==null?void 0:e.length),e&&console.log("[HighlightManager] \u5217\u5355\u5143\u683C:",e),e==null||e.forEach(a=>{a instanceof HTMLElement&&a.classList.add("csv-col-selected")})}clearHighlight(){var e;console.log("[HighlightManager] clearHighlight called");let t=(e=this.tableEl)==null?void 0:e.querySelectorAll(".csv-row-selected, .csv-col-selected");console.log("[HighlightManager] \u6E05\u9664\u9AD8\u4EAE\u5143\u7D20\u6570:",t==null?void 0:t.length),t==null||t.forEach(r=>{r instanceof HTMLElement&&(r.classList.remove("csv-row-selected"),r.classList.remove("csv-col-selected"))})}};var Fe=class{constructor(){this.menuEl=null;this.outsideHandler=null;this.keyHandler=null}showMenu(t,e,r,a){this.closeMenu(),this.menuEl=document.createElement("div"),this.menuEl.className="csv-header-context-menu menu",Object.assign(this.menuEl.style,{position:"absolute",left:`${e}px`,top:`${r}px`,zIndex:"9999",minWidth:"160px"}),t.forEach(o=>{let p=document.createElement("div");p.className="menu-item csv-header-context-menu-item",p.textContent=O.t(o.label)||o.label,Object.assign(p.style,{padding:"6px 18px",cursor:"pointer"}),p.onclick=s=>{s.stopPropagation(),s.preventDefault(),this.closeMenu(),o.onClick()},p.onmouseenter=()=>p.classList.add("is-hovered"),p.onmouseleave=()=>p.classList.remove("is-hovered"),this.menuEl.appendChild(p)}),document.body.appendChild(this.menuEl),this.outsideHandler=o=>{this.menuEl&&!this.menuEl.contains(o.target)&&this.closeMenu(a)},this.keyHandler=o=>{o.key==="Escape"&&this.closeMenu(a)},setTimeout(()=>{document.addEventListener("mousedown",this.outsideHandler),document.addEventListener("keydown",this.keyHandler)},0)}closeMenu(t){this.menuEl&&(this.menuEl.remove(),this.menuEl=null),document.removeEventListener("mousedown",this.outsideHandler),document.removeEventListener("keydown",this.keyHandler),t&&t()}};function Xe(w,t){let e=new Fe,r=a=>{let o=a.target;if(o.classList.contains("csv-row-number")){a.preventDefault();let p=o.closest("tr");if(!p)return;let c=Array.from(p.parentElement.children).indexOf(p);t.selectRow&&t.selectRow(c);let u=[{label:"contextMenu.insertRowAbove",onClick:()=>t.onInsertRowAbove(c)},{label:"contextMenu.insertRowBelow",onClick:()=>t.onInsertRowBelow(c)},{label:"contextMenu.deleteRow",onClick:()=>t.onDeleteRow(c)},{label:"contextMenu.moveRowUp",onClick:()=>t.onMoveRowUp(c)},{label:"contextMenu.moveRowDown",onClick:()=>t.onMoveRowDown(c)}];e.showMenu(u,a.pageX,a.pageY,()=>{t.clearSelection&&t.clearSelection(),t.onMenuClose&&t.onMenuClose()})}else if(o.classList.contains("csv-col-number")){a.preventDefault();let s=Array.from(w.querySelectorAll(".csv-col-number")).indexOf(o);t.selectColumn&&t.selectColumn(s);let c=[{label:"contextMenu.insertColLeft",onClick:()=>t.onInsertColLeft(s)},{label:"contextMenu.insertColRight",onClick:()=>t.onInsertColRight(s)},{label:"contextMenu.deleteCol",onClick:()=>t.onDeleteCol(s)},{label:"contextMenu.moveColLeft",onClick:()=>t.onMoveColLeft(s)},{label:"contextMenu.moveColRight",onClick:()=>t.onMoveColRight(s)}];e.showMenu(c,a.pageX,a.pageY,()=>{t.clearSelection&&t.clearSelection(),t.onMenuClose&&t.onMenuClose()})}};return w.addEventListener("contextmenu",r),()=>{w.removeEventListener("contextmenu",r),e.closeMenu()}}var Le="csv-view",xe=class extends ne.TextFileView{constructor(e){super(e);this.tableData=[[""]];this.maxHistorySize=50;this.columnWidths=[];this.autoResize=!0;this.delimiter="auto";this.quoteChar='"';this.originalFileDelimiter=null;this.activeCellEl=null;this.activeRowIndex=-1;this.activeColIndex=-1;this.searchMatches=[];this.currentSearchIndex=-1;this.isSourceMode=!1;this.sourceTextarea=null;this.sourceCursorPos={start:0,end:0};this.headerContextMenuCleanup=null;this.stickyRows=new Set;this.stickyColumns=new Set;this.stickyHeaders=!0;this.stickyRowNumbers=!0;this.historyManager=new we(void 0,this.maxHistorySize),this.file=this.file,this.headerEl=this.headerEl,this.setupSafeSave()}getIcon(){return"table"}getViewData(){let e=this.originalFileDelimiter||(this.delimiter==="auto"?void 0:this.delimiter);return ue.unparseCSV(this.tableData,e?{delimiter:e}:void 0)}setupSafeSave(){this.originalRequestSave=this.requestSave,this.requestSave=async()=>{try{await Ce.withRetry(async()=>(this.originalRequestSave(),Promise.resolve()))}catch(e){console.error("Failed to save CSV file after retries:",e),new ne.Notice(`Failed to save file: ${e.message}. The file might be open in another program.`)}}}setViewData(e,r){try{if(this.tableData=ue.parseCSV(e,{delimiter:this.delimiter,quoteChar:this.quoteChar}),!this.originalFileDelimiter)try{this.originalFileDelimiter=ue.detectDelimiter(e,this.quoteChar)}catch(a){console.warn("Failed to detect original delimiter:",a)}(!this.tableData||this.tableData.length===0)&&(this.tableData=[[""]]),this.tableData=ue.normalizeTableData(this.tableData),r&&this.historyManager.reset(this.tableData),this.refresh()}catch(a){console.error("CSV\u5904\u7406\u9519\u8BEF:",a),this.tableData=[[""]],r&&this.historyManager.reset(this.tableData),this.refresh()}}reparseAndRefresh(){let e=this.data;this.setViewData(e,!1)}refresh(){var o,p;if(!this.contentEl)return;this.contentEl.querySelectorAll(".csv-source-mode").forEach(s=>s.remove()),(!this.tableData||!Array.isArray(this.tableData)||this.tableData.length===0)&&(console.warn("Table data not properly initialized, setting default"),this.tableData=[[""]]);let e=(s,c,u)=>{Se({editBarEl:this.editBarEl,editInput:this.editInput,activeCellEl:u,activeRowIndex:s,activeColIndex:c,tableData:this.tableData,onEdit:(b,S,$)=>{this.saveSnapshot(),this.tableData[b][S]=$,this.requestSave()}})};Je({tableData:this.tableData,columnWidths:this.columnWidths,autoResize:this.autoResize,tableEl:this.tableEl,editInput:this.editInput,activeCellEl:this.activeCellEl,activeRowIndex:this.activeRowIndex,activeColIndex:this.activeColIndex,setActiveCell:(s,c,u)=>{this.setActiveCell(s,c,u),e(s,c,u)},saveSnapshot:()=>this.saveSnapshot(),requestSave:()=>this.requestSave(),setupAutoResize:s=>this.setupAutoResize(s),adjustInputHeight:s=>this.adjustInputHeight(s),selectRow:s=>this.highlightManager.selectRow(s),selectColumn:s=>this.highlightManager.selectColumn(s),getColumnLabel:s=>this.getColumnLabel(s),setupColumnResize:(s,c)=>this.setupColumnResize(s,c),insertRowAt:(s,c=!1)=>{this.saveSnapshot();let u=c?s+1:s;this.tableData.splice(u,0,Array(this.tableData[0].length).fill("")),this.refresh(),this.requestSave()},deleteRowAt:s=>{this.tableData.length<=1||(this.saveSnapshot(),this.tableData.splice(s,1),this.refresh(),this.requestSave())},insertColAt:(s,c=!1)=>{this.saveSnapshot();let u=c?s+1:s;this.tableData.forEach(b=>b.splice(u,0,"")),this.refresh(),this.requestSave()},deleteColAt:s=>{this.tableData[0].length<=1||(this.saveSnapshot(),this.tableData.forEach(c=>c.splice(s,1)),this.refresh(),this.requestSave())},renderEditBar:e,onColumnReorder:(s,c)=>{if(s!==c){this.saveSnapshot();for(let u of this.tableData){let[b]=u.splice(s,1);u.splice(c,0,b)}if(this.columnWidths&&this.columnWidths.length>0){let[u]=this.columnWidths.splice(s,1);this.columnWidths.splice(c,0,u)}this.refresh(),this.requestSave()}},onRowReorder:(s,c)=>{if(s===c)return;this.saveSnapshot();let[u]=this.tableData.splice(s,1);this.tableData.splice(c,0,u),this.refresh(),this.requestSave()},stickyRows:this.stickyRows,stickyColumns:this.stickyColumns,toggleRowSticky:s=>this.toggleRowSticky(s),toggleColumnSticky:s=>this.toggleColumnSticky(s)}),requestAnimationFrame(()=>{this.applyStickyStyles()});let r=(p=(o=this.operationEl)==null?void 0:o.querySelector)==null?void 0:p.call(o,".top-scroll");if(r&&this.tableEl){let s=this.tableEl.offsetWidth,c=()=>{let u=document.createElement("div");return u.style.width=s+"px",u.style.height="1px",u};r.empty(),r.appendChild(c())}let a=this.tableEl.parentElement;if(a){this._csvTableClickHandler&&a.removeEventListener("click",this._csvTableClickHandler);let s=c=>{let u=c.target;u.tagName==="TH"&&u.classList.contains("csv-col-number")||u.tagName==="TD"&&u.classList.contains("csv-row-number")||this.highlightManager.clearSelection()};this._csvTableClickHandler=s,a.addEventListener("click",s)}this.headerContextMenuCleanup&&(this.headerContextMenuCleanup(),this.headerContextMenuCleanup=null),this.headerContextMenuCleanup=Xe(this.tableEl,{selectRow:s=>this.highlightManager.selectRow(s),selectColumn:s=>this.highlightManager.selectColumn(s),clearSelection:()=>this.highlightManager.clearSelection(),onMenuClose:()=>{console.log("[DEBUG] Header context menu closed")},onInsertRowAbove:s=>this.refreshInsertRow(s,!1),onInsertRowBelow:s=>this.refreshInsertRow(s,!0),onDeleteRow:s=>this.refreshDeleteRow(s),onMoveRowUp:s=>this.moveRow(s,s-1),onMoveRowDown:s=>this.moveRow(s,s+1),onInsertColLeft:s=>this.refreshInsertCol(s,!1),onInsertColRight:s=>this.refreshInsertCol(s,!0),onDeleteCol:s=>this.refreshDeleteCol(s),onMoveColLeft:s=>this.moveCol(s,s-1),onMoveColRight:s=>this.moveCol(s,s+1)}),this.tableData[0].forEach((s,c)=>{let u=this.tableEl.querySelector(`.resize-handle[data-index='${c}']`);u&&this.setupColumnResize(u,c)}),this.tableData.forEach((s,c)=>{let u=this.tableEl.querySelector(`.resize-handle-row[data-row-index='${c}']`);u&&this.setupColumnResize(u,c)})}getColumnLabel(e){let r="",a=e;do r=String.fromCharCode(65+a%26)+r,a=Math.floor(a/26)-1;while(a>=0);return r}setActiveCell(e,r,a){this.activeCellEl&&this.activeCellEl.parentElement&&this.activeCellEl.parentElement.classList.remove("csv-active-cell"),this.activeRowIndex=e,this.activeColIndex=r,this.activeCellEl=a,a.parentElement&&a.parentElement.classList.add("csv-active-cell"),this.editInput&&this.editBarEl&&Se({editBarEl:this.editBarEl,editInput:this.editInput,activeCellEl:a,activeRowIndex:e,activeColIndex:r,tableData:this.tableData,onEdit:(o,p,s)=>{this.saveSnapshot(),this.tableData[o][p]=s,this.requestSave()}})}setupColumnResize(e,r){let a,o,p=u=>{a=u.clientX,o=this.columnWidths[r]||100,document.addEventListener("mousemove",s),document.addEventListener("mouseup",c),u.preventDefault()},s=u=>{let b=o+(u.clientX-a);b>=50&&(this.columnWidths[r]=b,this.refresh())},c=()=>{document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",c)};e.addEventListener("mousedown",p)}setupAutoResize(e){this.adjustInputHeight(e),e.addEventListener("input",()=>{this.autoResize&&this.adjustInputHeight(e)})}adjustInputHeight(e){let r=(e.value.match(/\n/g)||[]).length+1,p=Math.max(24,r*20);e.style.height=`${p}px`}saveSnapshot(){this.historyManager.push(this.tableData)}undo(){let e=this.historyManager.undo();e&&(this.tableData=e,this.refresh(),this.requestSave())}redo(){let e=this.historyManager.redo();e&&(this.tableData=e,this.refresh(),this.requestSave())}clear(){this.tableData=[[""]],this.historyManager.reset(this.tableData),this.refresh()}getViewType(){return Le}async onOpen(){var e,r;try{let a=(r=(e=this.headerEl)==null?void 0:e.querySelector)==null?void 0:r.call(e,".view-actions");if(a&&!a.querySelector(".csv-switch-source")){let C=document.createElement("button");C.className="clickable-icon csv-switch-source",C.setAttribute("aria-label","\u5207\u6362\u5230\u6E90\u7801\u6A21\u5F0F"),C.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-code"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><polyline points="10 13 8 15 10 17"/><polyline points="14 13 16 15 14 17"/></svg>',C.onclick=async()=>{let R=this.file;if(!R)return;let q=this.app.workspace.getLeavesOfType("csv-source-view"),Z=!1;for(let H of q)if(H.view&&H.view.file&&H.view.file.path===R.path){this.app.workspace.setActiveLeaf(H,!0,!0),Z=!0;break}if(!Z){let H=this.app.workspace.getLeaf(!0);await H.openFile(R,{active:!0,state:{mode:"source"}}),await H.setViewState({type:"csv-source-view",active:!0,state:{file:R.path}}),this.app.workspace.setActiveLeaf(H,!0,!0)}},a.appendChild(C)}this.contentEl.empty(),this.operationEl=this.contentEl.createEl("div",{cls:"csv-operations"});let o=this.operationEl.createEl("div",{cls:"csv-parser-settings"});new ne.Setting(o).setName(O.t("settings.fieldSeparator")).setDesc(O.t("settings.fieldSeparatorDesc")).addDropdown(C=>{var q,Z;try{let H=(Z=(q=this.app.plugins)==null?void 0:q.getPlugin)==null?void 0:Z.call(q,"csv-lite");H&&H.settings&&H.settings.preferredDelimiter&&(this.delimiter=H.settings.preferredDelimiter)}catch(H){}let R=ue.detectDelimiter(this.data||"",this.quoteChar);C.addOption("auto",`Auto (detected: ${R})`),C.addOption(",",","),C.addOption(";",";"),C.setValue(this.delimiter||"auto"),C.onChange(async H=>{var ie,oe;this.delimiter=H==="\\t"?" ":H;try{let N=(oe=(ie=this.app.plugins)==null?void 0:ie.getPlugin)==null?void 0:oe.call(ie,"csv-lite");N&&typeof N.saveSettings=="function"&&(N.settings={...N.settings||{},preferredDelimiter:this.delimiter},await N.saveSettings())}catch(N){}this.reparseAndRefresh()})}),new ne.Setting(o).setName(O.t("settings.quoteChar")).setDesc(O.t("settings.quoteCharDesc")).addText(C=>{C.setValue(this.quoteChar).setPlaceholder('\u9ED8\u8BA4\u4E3A\u53CC\u5F15\u53F7 "').onChange(async R=>{this.quoteChar=R||'"',this.reparseAndRefresh()})});let p=this.operationEl.createEl("div",{cls:"csv-operation-buttons"}),s=p.createEl("div",{cls:"csv-buttons-group"}),c=p.createEl("div",{cls:"csv-search-bar-container"});this.searchBar=new Re(c,{getTableData:()=>this.tableData,tableEl:this.tableEl,getColumnLabel:C=>this.getColumnLabel(C),getCellAddress:(C,R)=>this.getCellAddress(C,R),jumpToCell:(C,R)=>this.jumpToCell(C,R),clearSearchHighlights:()=>this.clearSearchHighlights()}),new ne.ButtonComponent(s).setButtonText(O.t("buttons.undo")).setIcon("undo").onClick(()=>this.undo()),new ne.ButtonComponent(s).setButtonText(O.t("buttons.redo")).setIcon("redo").onClick(()=>this.redo()),new ne.ButtonComponent(s).setButtonText(O.t("buttons.resetColumnWidth")).onClick(()=>{this.columnWidths=[],this.calculateColumnWidths(),this.refresh()});let u=s.createEl("div",{cls:"csv-delimiter-compact"});new ne.Setting(u).addDropdown(C=>{var q,Z;try{let H=(Z=(q=this.app.plugins)==null?void 0:q.getPlugin)==null?void 0:Z.call(q,"csv-lite");H&&H.settings&&H.settings.preferredDelimiter&&(this.delimiter=H.settings.preferredDelimiter)}catch(H){}let R=ue.detectDelimiter(this.data||"",this.quoteChar);C.addOption("auto",`Auto (${R})`),C.addOption(",",","),C.addOption(";",";"),C.setValue(this.delimiter||"auto"),C.onChange(async H=>{var ie,oe;this.delimiter=H==="\\t"?" ":H;try{let N=(oe=(ie=this.app.plugins)==null?void 0:ie.getPlugin)==null?void 0:oe.call(ie,"csv-lite");N&&typeof N.saveSettings=="function"&&(N.settings={...N.settings||{},preferredDelimiter:this.delimiter},await N.saveSettings())}catch(N){}this.reparseAndRefresh()})}),this.editBarEl=this.operationEl.createEl("div",{cls:"csv-edit-bar"}),this.editInput=this.editBarEl.createEl("input",{cls:"csv-edit-input",attr:{placeholder:O.t("editBar.placeholder")}}),Se({editBarEl:this.editBarEl,editInput:this.editInput,activeCellEl:this.activeCellEl,activeRowIndex:this.activeRowIndex,activeColIndex:this.activeColIndex,tableData:this.tableData,onEdit:(C,R,q)=>{this.saveSnapshot(),this.tableData[C][R]=q,this.requestSave()}});let b=this.operationEl.createEl("div",{cls:"scroll-container top-scroll"}),$=this.contentEl.createEl("div",{cls:"table-wrapper"}).createEl("div",{cls:"table-container main-scroll"});this.tableEl=$.createEl("table",{cls:"csv-lite-table"}),this.highlightManager=new ke(this.tableEl),this.setupScrollSync(b,$),this.historyManager||(this.historyManager=new we(this.tableData,this.maxHistorySize)),this.registerDomEvent(document,"keydown",C=>{(C.ctrlKey||C.metaKey)&&C.key==="z"&&(C.shiftKey?(C.preventDefault(),this.redo()):(C.preventDefault(),this.undo()))}),(!this.tableData||!Array.isArray(this.tableData)||this.tableData.length===0)&&(this.tableData=[[""]]),this.refresh(),this.tableEl&&this.tableEl.addEventListener("click",C=>{let R=C.target;R.tagName==="TH"&&(R.classList.contains("csv-row-header")||R.classList.contains("csv-col-header"))||this.highlightManager.clearSelection()}),this.operationEl.classList.add("csv-toolbar-sticky")}catch(a){console.error("Error in onOpen:",a),new ne.Notice(`Failed to open CSV view: ${a.message}`),this.contentEl.empty();let o=this.contentEl.createEl("div",{cls:"csv-error"});o.createEl("h3",{text:"Error opening CSV file"}),o.createEl("p",{text:a.message}),this.tableData=[[""]],this.tableEl=this.contentEl.createEl("table"),this.refresh()}}setTableContent(e){this.tableData=e,this.refresh()}getTableContent(){return this.tableData}calculateColumnWidths(){this.columnWidths=ae.calculateColumnWidths(this.tableData)}setupScrollSync(e,r){r.addEventListener("scroll",()=>{e.scrollLeft=r.scrollLeft}),e.addEventListener("scroll",()=>{r.scrollLeft=e.scrollLeft})}async onClose(){let e=document.head.querySelector("#csv-edit-bar-styles");e&&e.remove(),this.headerContextMenuCleanup&&(this.headerContextMenuCleanup(),this.headerContextMenuCleanup=null),this.contentEl.empty()}addRow(){this.saveSnapshot(),this.tableData=ae.addRow(this.tableData),this.refresh(),this.requestSave()}deleteRow(){this.saveSnapshot(),this.tableData=ae.deleteRow(this.tableData),this.refresh(),this.requestSave()}addColumn(){this.saveSnapshot(),this.tableData=ae.addColumn(this.tableData),this.refresh(),this.requestSave()}deleteColumn(){this.saveSnapshot(),this.tableData=ae.deleteColumn(this.tableData),this.refresh(),this.requestSave()}getCellAddress(e,r){return`${this.getColumnLabel(r)}${e+1}`}jumpToCell(e,r){var p;this.clearSearchHighlights();let a=(p=this.tableEl)==null?void 0:p.querySelectorAll("tr"),o=e===0?1:e+1;if(a&&o<a.length){let c=a[o].querySelectorAll("td, th"),u=r+1;if(u<c.length){let S=c[u].querySelector("input");S&&(S.scrollIntoView({behavior:"smooth",block:"center",inline:"center"}),setTimeout(()=>{S.focus(),S.select(),S.parentElement&&(S.parentElement.classList.add("csv-search-current"),setTimeout(()=>{S.parentElement&&S.parentElement.classList.remove("csv-search-current")},3e3))},100))}}}clearSearchHighlights(){var e;(e=this.tableEl)==null||e.querySelectorAll(".csv-search-current").forEach(r=>{r instanceof HTMLElement&&r.classList.remove("csv-search-current")})}async openSourceMode(){let e=this.file;if(!e)return;let r=this.app.workspace.getLeaf(!0);await r.openFile(e,{active:!0,state:{mode:"source"}}),await r.setViewState({type:"csv-source-view",active:!0,state:{file:e.path}}),this.leaf.detach()}moveRow(e,r){if(e<0||r<0||e>=this.tableData.length||r>=this.tableData.length)return;this.saveSnapshot();let a=this.tableData.splice(e,1)[0];this.tableData.splice(r,0,a),this.refresh(),this.requestSave()}toggleRowSticky(e){this.stickyRows.has(e)?this.stickyRows.delete(e):this.stickyRows.add(e),this.applyStickyStyles()}toggleColumnSticky(e){this.stickyColumns.has(e)?this.stickyColumns.delete(e):this.stickyColumns.add(e),this.applyStickyStyles()}applyStickyStyles(){if(!this.tableEl)return;this.tableEl.querySelectorAll(".csv-sticky-row, .csv-sticky-col, .csv-sticky-header, .csv-sticky-row-number").forEach(s=>{s.classList.remove("csv-sticky-row","csv-sticky-col","csv-sticky-header","csv-sticky-row-number"),s.style.removeProperty("left"),s.style.removeProperty("top")});let e=()=>{let s=this.tableEl.querySelector("tbody tr td:first-child");return s?s.offsetWidth:40},r=()=>{let s=this.tableEl.querySelector("thead tr");return s?s.offsetHeight:30},a=s=>{let c=e();for(let u=0;u<s;u++)if(this.stickyColumns.has(u)){let b=this.tableEl.querySelector(`thead tr th:nth-child(${u+2})`);b?c+=b.offsetWidth:c+=this.columnWidths[u]||100}return c},o=s=>{let c=r();for(let u=0;u<s;u++)if(this.stickyRows.has(u)){let b=this.tableEl.querySelector(`tbody tr:nth-child(${u+1})`);b?c+=b.offsetHeight:c+=32}return c};if(this.stickyHeaders&&this.tableEl.querySelectorAll("thead tr th").forEach(c=>{c.classList.add("csv-sticky-header"),c.style.top="0px"}),this.stickyRowNumbers){let s=e(),c=this.tableEl.querySelector("thead tr th:first-child");c&&(c.classList.add("csv-sticky-row-number"),c.style.left="0px",c.style.top="0px"),this.tableEl.querySelectorAll("tbody tr td:first-child").forEach(b=>{b.classList.add("csv-sticky-row-number"),b.style.left="0px"})}let p=r();this.stickyRows.forEach(s=>{let c=o(s);this.tableEl.querySelectorAll(`tbody tr:nth-child(${s+1}) td`).forEach(b=>{b.classList.add("csv-sticky-row"),b.style.top=`${c}px`})}),this.stickyColumns.forEach(s=>{let c=a(s),u=this.tableEl.querySelector(`thead tr th:nth-child(${s+2})`);u&&(u.classList.add("csv-sticky-col"),u.style.left=`${c}px`,u.style.top="0px"),this.tableEl.querySelectorAll(`tbody tr td:nth-child(${s+2})`).forEach(S=>{S.classList.add("csv-sticky-col"),S.style.left=`${c}px`})}),console.log("Applied sticky styles:",{stickyHeaders:this.stickyHeaders,stickyRowNumbers:this.stickyRowNumbers,stickyRows:Array.from(this.stickyRows),stickyColumns:Array.from(this.stickyColumns),rowNumberWidth:e(),headerHeight:r()})}moveCol(e,r){e<0||r<0||e>=this.tableData[0].length||r>=this.tableData[0].length||(this.saveSnapshot(),this.tableData.forEach(a=>{let o=a.splice(e,1)[0];a.splice(r,0,o)}),this.refresh(),this.requestSave())}refreshInsertRow(e,r){this.saveSnapshot();let a=r?e+1:e;this.tableData.splice(a,0,Array(this.tableData[0].length).fill("")),this.refresh(),this.requestSave()}refreshDeleteRow(e){this.tableData.length<=1||(this.saveSnapshot(),this.tableData.splice(e,1),this.refresh(),this.requestSave())}refreshInsertCol(e,r){this.saveSnapshot();let a=r?e+1:e;this.tableData.forEach(o=>o.splice(a,0,"")),this.refresh(),this.requestSave()}refreshDeleteCol(e){this.tableData[0].length<=1||(this.saveSnapshot(),this.tableData.forEach(r=>r.splice(e,1)),this.refresh(),this.requestSave())}};var Ze=require("obsidian"),Te=require("@codemirror/state"),se=require("@codemirror/view"),ge=require("@codemirror/commands"),Ve="csv-source-view",ct=se.ViewPlugin.fromClass(class{constructor(w){this.decorations=Ge(w)}update(w){(w.docChanged||w.viewportChanged)&&(this.decorations=Ge(w.view))}},{decorations:w=>w.decorations});function Ge(w){let t=new Te.RangeSetBuilder,e=/[;, ]/g;for(let{from:r,to:a}of w.visibleRanges){let o=w.state.doc.sliceString(r,a),p;for(;(p=e.exec(o))!==null;){let s=r+p.index;t.add(s,s+1,se.Decoration.mark({class:"csv-separator-highlight"}))}}return t.finish()}var Me=class extends Ze.TextFileView{constructor(e){super(e);this.file=this.file,this.headerEl=this.headerEl}getViewType(){return Ve}getDisplayText(){return this.file?`CSV source: ${this.file.basename}`:"CSV source"}getIcon(){return"file-code"}async onOpen(){var c,u;let e=(u=(c=this.headerEl)==null?void 0:c.querySelector)==null?void 0:u.call(c,".view-actions");if(e&&!e.querySelector(".csv-switch-table")){let b=document.createElement("button");b.className="clickable-icon csv-switch-table",b.setAttribute("aria-label","\u5207\u6362\u5230\u8868\u683C\u6A21\u5F0F"),b.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-table"><rect width="18" height="18" x="3" y="3" rx="2"/><path d="M3 9h18"/><path d="M3 15h18"/><path d="M9 21V3"/><path d="M15 21V3"/></svg>',b.onclick=async()=>{let S=this.file;if(!S)return;let $=this.app.workspace.getLeavesOfType("csv-view"),C=!1;for(let R of $)if(R.view&&R.view.file&&R.view.file.path===S.path){this.app.workspace.setActiveLeaf(R,!0,!0),C=!0;break}if(!C){let R=this.app.workspace.getLeaf(!0);await R.openFile(S,{active:!0}),await R.setViewState({type:"csv-view",active:!0,state:{file:S.path}}),this.app.workspace.setActiveLeaf(R,!0,!0)}},e.appendChild(b)}let r=this.containerEl.children[1];r.empty();let o=r.createDiv({cls:"csv-source-editor-container"}).createDiv({cls:"csv-source-cm-container"}),p=[(0,se.lineNumbers)(),(0,se.drawSelection)(),(0,ge.history)(),se.keymap.of([...ge.defaultKeymap,...ge.historyKeymap]),ct,(0,se.placeholder)("\u8F93\u5165 CSV \u6E90\u7801..."),se.EditorView.lineWrapping,se.EditorView.updateListener.of(b=>{b.docChanged&&this.save()})],s=Te.EditorState.create({doc:this.data||"",extensions:p});this.editor=new se.EditorView({state:s,parent:o}),this.addEditorStyles(),setTimeout(()=>this.editor.focus(),10)}addToolbarButton(e,r,a,o,p){e.createEl("button",{text:r,cls:"csv-source-button",attr:{"aria-label":o}}).addEventListener("click",p)}addEditorStyles(){let e=document.createElement("style");e.textContent=`
.csv-source-editor-container {
height: 100%;
display: flex;
flex-direction: column;
}
.csv-source-toolbar {
padding: 8px 12px;
border-bottom: 1px solid var(--background-modifier-border);
background: var(--background-secondary);
font-weight: 500;
display: flex;
justify-content: space-between;
align-items: center;
}
.csv-source-title {
font-size: 14px;
font-weight: 600;
color: var(--text-normal);
}
.csv-source-button-group {
display: flex;
gap: 4px;
}
.csv-source-button {
background: var(--interactive-normal);
color: var(--text-normal);
border: 1px solid var(--background-modifier-border);
border-radius: 4px;
padding: 4px 8px;
font-size: 12px;
cursor: pointer;
transition: all 0.1s ease;
}
.csv-source-button:hover {
background: var(--interactive-hover);
}
.csv-source-cm-container {
flex: 1;
overflow: auto;
height: 100%;
}
.csv-source-cm-container .cm-editor {
height: 100%;
}
.csv-source-cm-container .cm-scroller {
font-family: var(--font-monospace);
font-size: 14px;
line-height: 1.5;
}
.csv-source-cm-container .cm-content {
padding: 12px;
}
.cm-line .csv-separator-highlight {
color: var(--color-accent);
font-weight: bold;
background: var(--background-modifier-active-hover);
border-radius: 2px;
}
.csv-source-cm-container .cm-cursor {
border-left: 2px solid var(--color-accent);
/* \u517C\u5BB9\u660E\u6697\u4E3B\u9898\uFF0C\u4F7F\u7528\u4E3B\u9898\u4E3B\u8272 */
background: none;
opacity: 1;
z-index: 10;
}
.csv-source-cm-container .cm-gutters {
background: var(--background-secondary);
color: var(--text-faint);
border-right: 1px solid var(--background-modifier-border);
}
.csv-source-cm-container .cm-lineNumbers .cm-gutterElement {
color: var(--text-faint);
}
`,document.head.appendChild(e),this.register(()=>{document.head.removeChild(e)})}async onClose(){await this.save()}getViewData(){return this.editor?this.editor.state.doc.toString():this.data||""}setViewData(e,r){if(r&&this.clear(),this.data=e,this.editor){let a=this.editor.state.update({changes:{from:0,to:this.editor.state.doc.length,insert:e}});this.editor.dispatch(a)}}clear(){if(this.data="",this.editor){let e=this.editor.state.update({changes:{from:0,to:this.editor.state.doc.length,insert:""}});this.editor.dispatch(e)}}};var ht={csvSettings:"default",preferredDelimiter:"auto"},_e=class extends De.Plugin{async onload(){await this.loadSettings();let e=De.moment.locale();O.setLocale(e),console.log(`CSV Plugin: Setting locale to '${e}'`),console.log(`CSV Plugin: Test translation - buttons.undo: '${O.t("buttons.undo")}'`),this.registerView(Le,r=>new xe(r)),this.registerView(Ve,r=>new Me(r)),this.registerExtensions(["csv"],Le)}onunload(){}async loadSettings(){this.settings=Object.assign({},ht,await this.loadData())}async saveSettings(){await this.saveData(this.settings)}};
/*! Bundled license information:
papaparse/papaparse.min.js:
(* @license
Papa Parse
v5.5.2
https://github.com/mholt/PapaParse
License: MIT
*)
*/
/* nosourcemap */