@cristianmpx/react-import-sheet-headless 1.0.5 → 1.0.6
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/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -79,7 +79,7 @@ xlsx/xlsx.mjs:
|
|
|
79
79
|
xlsx/xlsx.mjs:
|
|
80
80
|
(*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com *)
|
|
81
81
|
*/
|
|
82
|
-
//# sourceMappingURL=parser.worker.js.map`,r=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(r)}function Xe(){let{setActiveWorker:e,dispatchProgress:r}=w(),[t,i]=Ir(null),a=Nr(null);Or(()=>{let s=new Worker(je(),{type:"module"});a.current=s,e(s);let c=U(s);return queueMicrotask(()=>i(c)),()=>{s.terminate(),a.current=null,e(null)}},[e]);let n=Ge(async(s,c={})=>{if(!t)throw new Error("Parser worker not ready");return t.load(s,c)},[t]),o=Ge(async s=>{if(!t)throw new Error("Parser worker not ready");let c=s?he(s):void 0;return t.parseAll(c)},[t]);return{load:n,parseAll:o,dispatchProgress:r,isReady:!!t}}function Ye(e){let r=Object.keys(e.sheets);return r.length===0?null:e.sheets[r[0]??""]??null}function re(){let e=w(),{load:r,parseAll:t,isReady:i}=Xe();return Pr(()=>{let{file:n,status:o,engine:s}=e;!i||!n||o!=="loading"||r(n,{maxRows:10,fileName:n.name,engine:s??void 0}).then(c=>{if(!Ye(c)){let d={code:"PARSER_NO_SHEETS",level:"fatal",message:"No sheets found in the file. The file may be empty or corrupted.",params:{fileName:n.name,fileSize:n.size,fileType:n.type}};e.setGlobalErrors([d]),e.setStatus("error");return}let u=c.sheets[Object.keys(c.sheets)[0]??""];if(!u){let d={code:"PARSER_SHEET_ACCESS_FAILED",level:"fatal",message:"Failed to access the first sheet in the file.",params:{fileName:n.name}};e.setGlobalErrors([d]),e.setStatus("error");return}e.setRawData(u),e.setDocumentHash(u.documentHash),e.setStatus("success")}).catch(c=>{let f={code:"PARSER_FAILED",level:"fatal",message:c instanceof Error?c.message:"Failed to parse the file. The file may be corrupted or in an unsupported format.",params:{fileName:n.name,fileSize:n.size,fileType:n.type,originalError:c instanceof Error?c.message:String(c)}};e.setGlobalErrors([f]),e.setStatus("error")})},[i,e.file,e.status,e.setRawData,e.setDocumentHash,e.setStatus,e.setGlobalErrors,r]),{startFullImport:Dr(()=>{let{file:n}=e;if(!n)return Promise.reject(new Error("No file loaded"));e.setStatus("loading");let o=performance.now();return t(s=>e.dispatchProgress(s)).then(s=>{let c=performance.now();if(e.setPhaseTiming("parse",c-o),!Ye(s)){let d={code:"PARSER_NO_SHEETS",level:"fatal",message:"No sheets found in the file. The file may be empty or corrupted.",params:{fileName:n.name,fileSize:n.size,fileType:n.type}};return e.setGlobalErrors([d]),e.setStatus("error"),s}let u=s.sheets[Object.keys(s.sheets)[0]??""];if(!u){let d={code:"PARSER_SHEET_ACCESS_FAILED",level:"fatal",message:"Failed to access the first sheet in the file.",params:{fileName:n.name}};return e.setGlobalErrors([d]),e.setStatus("error"),s}return e.setRawData(u),e.setDocumentHash(u.documentHash),e.setStatus("success"),s}).catch(s=>{let c={code:"PARSER_FAILED",level:"fatal",message:s instanceof Error?s.message:"Failed to parse the file. The file may be corrupted or in an unsupported format.",params:{fileName:n.name,fileSize:n.size,fileType:n.type,originalError:s instanceof Error?s.message:String(s)}};throw e.setGlobalErrors([c]),e.setStatus("error"),s})},[e,t])}}import{jsx as Mr,jsxs as Br}from"react/jsx-runtime";function Lr(){return re(),null}function pe({children:e,layout:r,engine:t,persist:i=!1,persistKey:a=oe,onSubmit:n=null,submitKeyMap:o=null}){let[s,c]=de(Ae),[f,u]=de(r??null),[d,l]=de(t??null),h=V(()=>new EventTarget,[]),v=V(()=>new O,[]),k=V(()=>new O,[]),T=V(()=>new O,[]),p=Ke(null),m=Ke({parse:0,sanitize:0,validate:0,transform:0}),A=J({setState:c,setLayoutState:u,setEngineState:l}),b=Pe(i,a,s.rawData,s.result,A.setRawData,A.setResult,f?.version??null),g=_e({setState:c,setLayoutState:u,setEngineState:l,progressEventTarget:h,validatorRegistry:v,sanitizerRegistry:k,transformRegistry:T,activeWorkerRef:p,phaseTimingsRef:m});Fr(()=>()=>{let y=p.current;y&&(y.terminate(),p.current=null)},[]);let E=V(()=>({...s,layout:f,engine:d,progressEventTarget:h,...g,onSubmit:n??null,submitKeyMap:o??null,persist:i,persistKey:a,hasRecoverableSession:b.hasRecoverableSession,recoverSession:b.recoverSession,clearPersistedState:b.clearPersistedState}),[s,f,d,h,n,o,g,i,a,b.hasRecoverableSession,b.recoverSession,b.clearPersistedState]);return Br(X.Provider,{value:E,children:[Mr(Lr,{}),e]})}import{useContext as Ur}from"react";function w(){let e=Ur(X);if(e===null)throw new Error("useImporter must be used within an ImporterProvider");return e}import{useCallback as Vr,useEffect as Je,useMemo as $e}from"react";function H(e){return e.rows.filter(r=>r.errors.length>0)}function z(e){return e?te(e).totalErrors>0:!1}function te(e){let r=e.rows.length,t=H(e),i=e.errors.length+e.rows.reduce((a,n)=>a+n.errors.length+n.cells.reduce((o,s)=>o+s.errors.length,0),0);return{totalRows:r,rowsWithErrors:t.length,totalErrors:i}}function me(e,r){return e.cells.find(i=>i.key===r)?.value}function ge(e,r){return e.map(r)}function W(e,r){return e?e.rows.map(t=>{let i={};for(let[a,n]of Object.entries(r))i[n]=me(t,a);return i}):[]}function Hr(e){return e.rows.map(r=>r.cells.reduce((t,i)=>({...t,[i.key]:i.value}),{}))}function qe(e={}){let r=w(),{layout:t,engine:i}=e;Je(()=>{t!==void 0&&r.setLayout(t)},[r,t]),Je(()=>{i!==void 0&&r.setEngine(i)},[r,i]);let a=$e(()=>!!(r.result&&r.status==="success"&&!r.submitDone&&!z(r.result)),[r.result,r.status,r.submitDone]),n=Vr(()=>{if(!r.result||r.submitDone||z(r.result)||!r.onSubmit)return;let o=r.submitKeyMap?W(r.result,r.submitKeyMap):Hr(r.result);r.onSubmit(o),r.setSubmitDone(!0)},[r]);return $e(()=>({processFile:r.processFile,registerValidator:r.registerValidator,registerSanitizer:r.registerSanitizer,registerTransform:r.registerTransform,abort:r.abort,metrics:r.metrics,submit:n,canSubmit:a,submitDone:r.submitDone}),[r.processFile,r.registerValidator,r.registerSanitizer,r.registerTransform,r.abort,r.metrics,n,a,r.submitDone])}import{useCallback as ne,useMemo as er}from"react";function ve(e,r,t,i){let a=[...t],n=new Map;e.headers.forEach((s,c)=>n.set(s,c));let o=e.rows.map(s=>{let c=t.map(f=>{let u=i[f],d=u!=null?(()=>{let l=n.get(u);return l==null?null:s.cells[l]?.value??null})():null;return{key:f,value:d??null}});return{index:s.index,cells:c}});return{name:e.name,filesize:e.filesize,documentHash:e.documentHash,rowsCount:e.rowsCount,headersCount:e.headersCount,headers:a,rows:o}}function Ze(e){return e.trim().toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu,"")}function zr(e,r){if(e.length===0)return r.length;if(r.length===0)return e.length;let t=Array.from({length:r.length+1},(i,a)=>a);for(let i=1;i<=e.length;i++){let a=[i];for(let n=1;n<=r.length;n++){let o=e[i-1]===r[n-1]?0:1;a[n]=Math.min(a[n-1]+1,t[n]+1,t[n-1]+o)}t=a}return t[r.length]}function Wr(e,r){let t=Ze(e),i=Ze(r),a=t.length>=i.length?t:i,n=t.length<i.length?t:i;if(a.length===0)return 1;let o=zr(a,n);return(a.length-o)/a.length}var jr=.8;function Qe(e,r,t={}){let i=t.threshold??jr,a=[];for(let c of r)for(let f of e){let u=Wr(c,f);u>=i&&a.push({key:c,header:f,score:u})}a.sort((c,f)=>f.score-c.score);let n=new Set,o=new Set,s={};for(let c of r)s[c]=null;for(let{key:c,header:f,score:u}of a)n.has(c)||o.has(f)||(s[c]=f,n.add(c),o.add(f));return r.map(c=>({key:c,matchedHeader:s[c]??null}))}function Gr(e,r){let t=e.trim();return r?t:t.toLowerCase()}function be(e,r,t={},i={}){let a=i.caseSensitive??!1,n=i.normalizer??(l=>Gr(l,a)),o=Object.keys(r.fields),s=e.headers,c=new Map;for(let l of s)c.set(n(l),l);let f={},u=new Set;for(let[l,h]of Object.entries(t))o.includes(h)&&(f[h]=s.includes(l)?l:null,f[h]&&u.add(l));for(let l of o){if(f[l]!=null)continue;let h=n(l),v=c.get(h);v!=null&&!u.has(v)?(f[l]=v,u.add(v)):f[l]=null}if(i.fuzzyHeaders===!0){let l=o.filter(T=>f[T]==null),h=s.filter(T=>!u.has(T)),v=i.fuzzyThreshold??.8,k=Qe(h,l,{threshold:v});for(let{key:T,matchedHeader:p}of k)p!=null&&!u.has(p)&&(f[T]=p,u.add(p))}let d=[];for(let l of o)if(f[l]==null){let k=r.fields[l]?.required!==!1;d.push({expected:l,found:null,message:`Column '${l}' not found in file`,required:k})}return{fieldToHeader:f,mismatches:d}}function ae(e,r,t={},i){let a=Object.keys(r.fields),n=i?.columnOrder?.length?i.columnOrder:a,o=i?.headerToFieldMap??{},{fieldToHeader:s,mismatches:c}=be(e,r,o,t),u=a.filter(h=>r.fields[h]?.required!==!1).every(h=>s[h]!=null);if(c.length===0||u)return{kind:"success",sheet:ve(e,r,n,s)};let l=c.some(h=>h.required===!0);return{kind:"mismatch",headersFound:[...e.headers],mismatches:c,columnOrder:[...n],headerToFieldMap:{...o},layoutError:l}}function se(){let e=w(),{rawData:r,layout:t,convertedSheet:i,convertResultData:a,setConvertedSheet:n,setConvertResultData:o}=e,s=ne(l=>{if(!r||!t)return;let h=ae(r,t,l,a??void 0);h.kind==="success"?n(h.sheet):o({headersFound:h.headersFound,mismatches:h.mismatches,columnOrder:h.columnOrder,headerToFieldMap:h.headerToFieldMap})},[r,t,a,n,o]),c=ne(()=>{if(!r||!t||!a)return;let l=ae(r,t,{},{columnOrder:a.columnOrder,headerToFieldMap:a.headerToFieldMap});return l.kind==="success"?(n(l.sheet),{kind:"success",sheet:l.sheet}):(o({headersFound:l.headersFound,mismatches:l.mismatches,columnOrder:l.columnOrder,headerToFieldMap:l.headerToFieldMap}),{kind:"mismatch",result:l})},[r,t,a,n,o]),f=ne(l=>{o(h=>h&&{...h,columnOrder:l})},[o]),u=ne((l,h)=>{o(v=>v&&{...v,headerToFieldMap:{...v.headerToFieldMap,[l]:h}})},[o]),d=er(()=>a?{kind:"mismatch",headersFound:a.headersFound,mismatches:a.mismatches,columnOrder:[...a.columnOrder],headerToFieldMap:{...a.headerToFieldMap},reorderColumns:f,renameColumn:u,applyMapping:()=>c()??{kind:"mismatch",result:{...a,kind:"mismatch"}}}:null,[a,f,u,c]);return er(()=>({convert:s,convertedSheet:i,convertResult:d}),[s,i,d])}import{useMemo as Xr}from"react";function rr(){let e=w();return Xr(()=>({status:e.status,progressEventTarget:e.progressEventTarget}),[e.status,e.progressEventTarget])}import{useCallback as tr,useMemo as ar}from"react";function nr(){let e=w(),r=e.result,t=ar(()=>{let n=r?[...r.errors]:[];return[...[...e.globalErrors],...n]},[r,e.globalErrors]),i=tr(n=>r?ge(r.rows,n):[],[r]),a=tr(n=>W(r,n),[r]);return ar(()=>({sheet:r,errors:t,toObjects:i,toObjectsWithKeyMap:a}),[r,t,i,a])}import{useCallback as Te,useMemo as we,useRef as qr}from"react";function j(e,r){return e.rows.find(t=>t.index===r)}function sr(e,r){return e.cells.find(t=>t.key===r)}function ir(e,r){if(!j(e,r))return e;let i=e.rows.filter(a=>a.index!==r).map((a,n)=>({...a,index:n}));return{...e,rows:i}}import{useCallback as Yr,useEffect as Kr,useRef as Jr,useState as $r}from"react";function or(){let e='var P=Symbol("Comlink.proxy"),dr=Symbol("Comlink.endpoint"),mr=Symbol("Comlink.releaseProxy"),F=Symbol("Comlink.finalizer"),_=Symbol("Comlink.thrown"),j=e=>typeof e=="object"&&e!==null||typeof e=="function",ur={canHandle:e=>j(e)&&e[P],serialize(e){let{port1:r,port2:t}=new MessageChannel;return C(e,r),[t,[t]]},deserialize(e){return e.start(),yr(e)}},pr={canHandle:e=>j(e)&&_ in e,serialize({value:e}){let r;return e instanceof Error?r={isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:r={isError:!1,value:e},[r,[]]},deserialize(e){throw e.isError?Object.assign(new Error(e.value.message),e.value):e.value}},v=new Map([["proxy",ur],["throw",pr]]);function fr(e,r){for(let t of e)if(r===t||t==="*"||t instanceof RegExp&&t.test(r))return!0;return!1}function C(e,r=globalThis,t=["*"]){r.addEventListener("message",function n(o){if(!o||!o.data)return;if(!fr(t,o.origin)){console.warn(`Invalid origin \'${o.origin}\' for comlink proxy`);return}let{id:i,type:a,path:l}=Object.assign({path:[]},o.data),s=(o.data.argumentList||[]).map(g),d;try{let m=l.slice(0,-1).reduce((p,y)=>p[y],e),f=l.reduce((p,y)=>p[y],e);switch(a){case"GET":d=f;break;case"SET":m[l.slice(-1)[0]]=g(o.data.value),d=!0;break;case"APPLY":d=f.apply(m,s);break;case"CONSTRUCT":{let p=new f(...s);d=Tr(p)}break;case"ENDPOINT":{let{port1:p,port2:y}=new MessageChannel;C(e,y),d=Sr(p,[p])}break;case"RELEASE":d=void 0;break;default:return}}catch(m){d={value:m,[_]:0}}Promise.resolve(d).catch(m=>({value:m,[_]:0})).then(m=>{let[f,p]=x(m);r.postMessage(Object.assign(Object.assign({},f),{id:i}),p),a==="RELEASE"&&(r.removeEventListener("message",n),G(r),F in e&&typeof e[F]=="function"&&e[F]())}).catch(m=>{let[f,p]=x({value:new TypeError("Unserializable return value"),[_]:0});r.postMessage(Object.assign(Object.assign({},f),{id:i}),p)})}),r.start&&r.start()}function cr(e){return e.constructor.name==="MessagePort"}function G(e){cr(e)&&e.close()}function yr(e,r){let t=new Map;return e.addEventListener("message",function(o){let{data:i}=o;if(!i||!i.id)return;let a=t.get(i.id);if(a)try{a(i)}finally{t.delete(i.id)}}),M(e,t,[],r)}function h(e){if(e)throw new Error("Proxy has been released and is not useable")}function U(e){return w(e,new Map,{type:"RELEASE"}).then(()=>{G(e)})}var b=new WeakMap,E="FinalizationRegistry"in globalThis&&new FinalizationRegistry(e=>{let r=(b.get(e)||0)-1;b.set(e,r),r===0&&U(e)});function gr(e,r){let t=(b.get(r)||0)+1;b.set(r,t),E&&E.register(e,r,e)}function Rr(e){E&&E.unregister(e)}function M(e,r,t=[],n=function(){}){let o=!1,i=new Proxy(n,{get(a,l){if(h(o),l===mr)return()=>{Rr(i),U(e),r.clear(),o=!0};if(l==="then"){if(t.length===0)return{then:()=>i};let s=w(e,r,{type:"GET",path:t.map(d=>d.toString())}).then(g);return s.then.bind(s)}return M(e,r,[...t,l])},set(a,l,s){h(o);let[d,m]=x(s);return w(e,r,{type:"SET",path:[...t,l].map(f=>f.toString()),value:d},m).then(g)},apply(a,l,s){h(o);let d=t[t.length-1];if(d===dr)return w(e,r,{type:"ENDPOINT"}).then(g);if(d==="bind")return M(e,r,t.slice(0,-1));let[m,f]=z(s);return w(e,r,{type:"APPLY",path:t.map(p=>p.toString()),argumentList:m},f).then(g)},construct(a,l){h(o);let[s,d]=z(l);return w(e,r,{type:"CONSTRUCT",path:t.map(m=>m.toString()),argumentList:s},d).then(g)}});return gr(i,e),i}function wr(e){return Array.prototype.concat.apply([],e)}function z(e){let r=e.map(x);return[r.map(t=>t[0]),wr(r.map(t=>t[1]))]}var B=new WeakMap;function Sr(e,r){return B.set(e,r),e}function Tr(e){return Object.assign(e,{[P]:!0})}function x(e){for(let[r,t]of v)if(t.canHandle(e)){let[n,o]=t.serialize(e);return[{type:"HANDLER",name:r,value:n},o]}return[{type:"RAW",value:e},B.get(e)||[]]}function g(e){switch(e.type){case"HANDLER":return v.get(e.name).deserialize(e.value);case"RAW":return e.value}}function w(e,r,t,n){return new Promise(o=>{let i=Nr();r.set(i,o),e.start&&e.start(),e.postMessage(Object.assign({id:i},t),n)})}function Nr(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}function S(e){return typeof e=="string"?{name:e}:{name:e.name,params:e.params}}function Y(e,r,t,n){let o=t.validators;if(!o?.length)return[];let i=[];for(let a of o){let{name:l,params:s}=S(a),d=n(l);if(d){let m=d(e.value,r,s);if(m?.length&&(i.push(...m),m.some(p=>p.level==="fatal")))break}}return i}function X(e,r,t){let n=r.rowValidators;if(!n?.length)return[];let o=[];for(let i of n){let{name:a,params:l}=S(i),s=t(a);if(s){let d=s(e,l);if(d?.length&&(o.push(...d),d.some(f=>f.level==="fatal")))break}}return o}var hr="EXTERNAL_VALIDATION_FAILED";function _r(e){return e.map(r=>({error:r}))}async function $(e,r,t,n){let o=r.sheetValidators;if(!o?.length)return[];let i=[];for(let a of o){let{name:l,params:s}=S(a),d=t(l);if(d)try{let m=await Promise.resolve(d(e,s,n));m?.length&&i.push(..._r(m))}catch{i.push({error:{code:hr,level:"fatal",params:{reason:"network"}}})}}return i}function H(e){return!("rowIndex"in e)&&!("cellKey"in e)}function T(e){return typeof e=="string"?{name:e}:{name:e.name,params:e.params}}function Z(e,r,t,n){if(e.errors.length>0)return e.value;let o=t.transformations;if(!o?.length)return e.value;let i=e.value;for(let a of o){let{name:l,params:s}=T(a),d=n(l);d&&(i=d(i,e,r,s))}return i}function W(e,r,t){if(e.errors.length>0)return e;let n=r.rowTransformations;if(!n?.length)return e;let o=e;for(let i of n){let{name:a,params:l}=T(i),s=t(a);s&&(o=s(o,l))}return o}var br="EXTERNAL_TRANSFORM_FAILED";async function q(e,r,t,n){let o=r.sheetTransformations;if(!o?.length)return{deltas:[],errors:[]};let i=[],a=[];for(let l of o){let{name:s,params:d}=T(l),m=t(s);if(m)try{let f=await Promise.resolve(m(e,d,n));f?.length&&i.push(...f)}catch{a.push({code:br,level:"fatal",params:{reason:"network"}})}}return{deltas:i,errors:a}}function Er(e,r,t,n){return e.map(o=>{if(o.index!==r)return o;let i=o.cells.map(a=>a.key===t?{...a,value:n}:a);return{...o,cells:i}})}function Q(e,r){if(!r.deltas.length)return e;let t=[...e.rows];for(let n of r.deltas)n.row<0||(t=Er(t,n.row,n.col,n.newValue));return{...e,rows:t}}function k(e,r){return e.rows.find(t=>t.index===r)}function K(e,r){return e.cells.find(t=>t.key===r)}function J(e,r,t,n){let o=k(e,r);if(!o)return e;let i=o.cells.findIndex(m=>m.key===t);if(i<0)return e;let a={...o.cells[i],value:n,errors:[]},l=o.cells.map((m,f)=>f===i?a:m),s={...o,cells:l,errors:[]},d=e.rows.map(m=>m.index===r?s:m);return{...e,rows:d}}async function ee(e,r,t,n,o,i,a){let l=J(e,t,n,o),s=k(l,t);if(!s)return l;let d=K(s,n);if(!d)return l;let m=r.fields[n];if(!m)return l;let f=Y(d,s,m,i.validator.getCellValidator),p={...d,errors:f},y={...s,cells:s.cells.map(c=>c.key===n?p:c),errors:[]},tr=X(y,r,i.validator.getRowValidator),N={...y,errors:tr},or=l.rows.map(c=>c.index===t?N:c),D={...l,rows:or},ir=(await $(D,r,i.validator.getTableValidator,a)).filter(H).map(c=>c.error),V={...D,errors:[...D.errors,...ir]};if(V.errors.length>0)return V;let ar=p.errors.length===0?Z(p,N,m,i.transform.getCellTransform):p.value,lr={...p,value:ar},L={...N,cells:N.cells.map(c=>c.key===n?lr:c)},sr=N.errors.length===0?W(L,r,i.transform.getRowTransform):L,O={...V,rows:V.rows.map(c=>c.index===t?sr:c)},A=await q(O,r,i.transform.getSheetTransform,a),I=Q(O,{deltas:A.deltas});return A.errors.length>0?{...I,errors:[...I.errors,...A.errors]}:I}var R=class{entries=new Map;register(r,t,n){this.entries.set(r,{fn:t,type:n.type})}get(r){return this.entries.get(r)}getByType(r){return[...this.entries.entries()].filter(([,t])=>t.type===r).map(([t,n])=>({name:t,entry:n}))}has(r){return this.entries.has(r)}clear(){this.entries.clear()}};var xr="required";function Cr(e,r,t){return e==null||typeof e=="string"&&e.trim()===""?[{code:"REQUIRED",level:"error",params:{value:e}}]:null}function re(e){e(xr,Cr,{type:"cell"})}var kr="string:byregex";function Dr(e,r,t){let{pattern:n="",flags:o=""}=t??{};if(!n)return[{code:"STRING_BYREGEX_INVALID_PARAMS",level:"error",params:{reason:"missing pattern"}}];let i=e==null?"":String(e);try{if(!new RegExp(n,o).test(i))return[{code:"STRING_BYREGEX_MISMATCH",level:"error",params:{value:i,pattern:n}}]}catch{return[{code:"STRING_BYREGEX_INVALID_PATTERN",level:"error",params:{pattern:n}}]}return null}function ne(e){e(kr,Dr,{type:"cell"})}var Ar="string:maxLength";function Ir(e,r,t){let{maxLength:n}=t??{},o=typeof n=="number"&&Number.isFinite(n)?n:void 0;if(o===void 0||o<0)return[{code:"STRING_MAX_LENGTH_INVALID_PARAMS",level:"error",params:{maxLength:n}}];let i=e==null?"":String(e);return i.length>o?[{code:"STRING_MAX_LENGTH",level:"error",params:{value:i,maxLength:o,length:i.length}}]:null}function te(e){e(Ar,Ir,{type:"cell"})}var Fr="string:minLength";function Mr(e,r,t){let{minLength:n}=t??{},o=typeof n=="number"&&Number.isFinite(n)&&n>=0?n:void 0;if(o===void 0)return[{code:"STRING_MIN_LENGTH_INVALID_PARAMS",level:"error",params:{minLength:n}}];let i=e==null?"":String(e);return i.length<o?[{code:"STRING_MIN_LENGTH",level:"error",params:{value:i,minLength:o,length:i.length}}]:null}function oe(e){e(Fr,Mr,{type:"cell"})}var Lr="string:email",Or=/^[a-zA-Z0-9.!#$%&\'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;function zr(e,r,t){let n=e==null?"":String(e).trim();return n?Or.test(n)?null:[{code:"STRING_EMAIL_INVALID",level:"error",params:{value:n}}]:null}function ie(e){e(Lr,zr,{type:"cell"})}var Pr="string:phone",jr=/^[\\d\\s\\-+.()]{7,20}$/;function vr(e,r,t){let n=e==null?"":String(e).trim();if(!n)return null;let o=n.replace(/\\D/g,"");return o.length<7||o.length>15||!jr.test(n)?[{code:"STRING_PHONE_INVALID",level:"error",params:{value:n}}]:null}function ae(e){e(Pr,vr,{type:"cell"})}var Gr="string:phoneInternational",Ur=/^\\+?[1-9]\\d{0,3}/;function Br(e,r,t){let n=e==null?"":String(e).trim().replace(/\\s/g,"");if(!n)return null;let o=n.replace(/\\D/g,""),i=n.startsWith("+")?n:`+${n}`;return o.length<10||o.length>15||!Ur.test(i)?[{code:"STRING_PHONE_INTERNATIONAL_INVALID",level:"error",params:{value:n}}]:null}function le(e){e(Gr,Br,{type:"cell"})}var Yr="string:phoneLocal";function Xr(e,r,t){let{minDigits:n=6,maxDigits:o=11}=t??{},i=typeof n=="number"&&n>=0?n:6,a=typeof o=="number"&&o>=i?o:11,l=e==null?"":String(e).trim();if(!l)return null;let s=l.replace(/\\D/g,"");return l.startsWith("+")&&s.length>3?[{code:"STRING_PHONE_LOCAL_INVALID",level:"error",params:{value:l,reason:"international"}}]:s.length<i||s.length>a?[{code:"STRING_PHONE_LOCAL_INVALID",level:"error",params:{value:l,minDigits:i,maxDigits:a}}]:null}function se(e){e(Yr,Xr,{type:"cell"})}var $r="string:onlyNumbers",Hr=/^\\d+$/;function Zr(e,r,t){if(e==null)return null;let n=String(e).trim();return n?Hr.test(n)?null:[{code:"STRING_ONLY_NUMBERS_INVALID",level:"error",params:{value:n}}]:null}function de(e){e($r,Zr,{type:"cell"})}var Wr="string:onlyLetters",qr=/^[a-zA-Z\\u00C0-\\u024F\\u1E00-\\u1EFF]+$/,Qr=/^[a-zA-Z\\u00C0-\\u024F\\u1E00-\\u1EFF\\s]+$/;function Kr(e,r,t){let{allowSpaces:n=!1}=t??{};if(e==null)return null;let o=String(e).trim();return o?(n?Qr:qr).test(o)?null:[{code:"STRING_ONLY_LETTERS_INVALID",level:"error",params:{value:o}}]:null}function me(e){e(Wr,Kr,{type:"cell"})}var Jr="number:min";function en(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;let r=Number(e);return Number.isFinite(r)?r:null}function rn(e,r,t){let{min:n}=t??{},o=typeof n=="number"&&Number.isFinite(n)?n:void 0;if(o===void 0)return[{code:"NUMBER_MIN_INVALID_PARAMS",level:"error",params:{min:n}}];let i=en(e);return i===null?[{code:"NUMBER_MIN_NOT_A_NUMBER",level:"error",params:{value:e}}]:i<o?[{code:"NUMBER_MIN",level:"error",params:{value:i,min:o}}]:null}function ue(e){e(Jr,rn,{type:"cell"})}var nn="number:max";function tn(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;let r=Number(e);return Number.isFinite(r)?r:null}function on(e,r,t){let{max:n}=t??{},o=typeof n=="number"&&Number.isFinite(n)?n:void 0;if(o===void 0)return[{code:"NUMBER_MAX_INVALID_PARAMS",level:"error",params:{max:n}}];let i=tn(e);return i===null?[{code:"NUMBER_MAX_NOT_A_NUMBER",level:"error",params:{value:e}}]:i>o?[{code:"NUMBER_MAX",level:"error",params:{value:i,max:o}}]:null}function pe(e){e(nn,on,{type:"cell"})}var an="number:float";function ln(e){if(e==null)return!1;if(typeof e=="number")return Number.isFinite(e);let r=String(e).trim();if(!r)return!1;let t=parseFloat(r);return Number.isFinite(t)}function sn(e,r,t){return e==null||e===""||ln(e)?null:[{code:"NUMBER_FLOAT_INVALID",level:"error",params:{value:e}}]}function fe(e){e(an,sn,{type:"cell"})}var dn="number:integer";function mn(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e))return e;let r=Number(e);return Number.isFinite(r)&&Number.isInteger(r)?r:null}function un(e,r,t){return e==null||e===""?null:mn(e)===null?[{code:"NUMBER_INTEGER_INVALID",level:"error",params:{value:e}}]:null}function ce(e){e(dn,un,{type:"cell"})}var pn="number:nonNegative";function fn(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;let r=Number(e);return Number.isFinite(r)?r:null}function cn(e,r,t){if(e==null||e==="")return null;let n=fn(e);return n===null?[{code:"NUMBER_NON_NEGATIVE_NOT_A_NUMBER",level:"error",params:{value:e}}]:n<0?[{code:"NUMBER_NON_NEGATIVE",level:"error",params:{value:n}}]:null}function ye(e){e(pn,cn,{type:"cell"})}var yn="number:nonPositive";function gn(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;let r=Number(e);return Number.isFinite(r)?r:null}function Rn(e,r,t){if(e==null||e==="")return null;let n=gn(e);return n===null?[{code:"NUMBER_NON_POSITIVE_NOT_A_NUMBER",level:"error",params:{value:e}}]:n>0?[{code:"NUMBER_NON_POSITIVE",level:"error",params:{value:n}}]:null}function ge(e){e(yn,Rn,{type:"cell"})}var wn="number:nonZero";function Sn(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;let r=Number(e);return Number.isFinite(r)?r:null}function Tn(e,r,t){if(e==null||e==="")return null;let n=Sn(e);return n===null?[{code:"NUMBER_NON_ZERO_NOT_A_NUMBER",level:"error",params:{value:e}}]:n===0?[{code:"NUMBER_NON_ZERO",level:"error",params:{value:n}}]:null}function Re(e){e(wn,Tn,{type:"cell"})}var Nn="date:min";function we(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;if(e instanceof Date&&!Number.isNaN(e.getTime()))return e.getTime();let r=Date.parse(String(e).trim());return Number.isNaN(r)?null:r}function Vn(e,r,t){let{min:n}=t??{},o=n!==void 0?we(n):void 0;if(o==null)return[{code:"DATE_MIN_INVALID_PARAMS",level:"error",params:{min:n}}];let i=we(e);return i===null?[{code:"DATE_MIN_NOT_A_DATE",level:"error",params:{value:e}}]:i<o?[{code:"DATE_MIN",level:"error",params:{value:i,min:o}}]:null}function Se(e){e(Nn,Vn,{type:"cell"})}var hn="date:max";function Te(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;if(e instanceof Date&&!Number.isNaN(e.getTime()))return e.getTime();let r=Date.parse(String(e).trim());return Number.isNaN(r)?null:r}function _n(e,r,t){let{max:n}=t??{},o=n!==void 0?Te(n):void 0;if(o==null)return[{code:"DATE_MAX_INVALID_PARAMS",level:"error",params:{max:n}}];let i=Te(e);return i===null?[{code:"DATE_MAX_NOT_A_DATE",level:"error",params:{value:e}}]:i>o?[{code:"DATE_MAX",level:"error",params:{value:i,max:o}}]:null}function Ne(e){e(hn,_n,{type:"cell"})}var bn="date:onlyYear",En=/^(?:19|20)\\d{2}$/;function xn(e,r,t){if(e==null)return null;let n=String(e).trim();if(!n)return null;let o=Number(n),i=En.test(n),a=Number.isInteger(o)&&o>=1900&&o<=2099;return!i&&!a?[{code:"DATE_ONLY_YEAR_INVALID",level:"error",params:{value:n}}]:null}function Ve(e){e(bn,xn,{type:"cell"})}var Cn="date:onlyTime",kn=/^([01]?\\d|2[0-3]):([0-5]\\d)(?::([0-5]\\d))?(?:\\.\\d+)?$/;function Dn(e,r,t){if(e==null)return null;let n=String(e).trim();return n?kn.test(n)?null:[{code:"DATE_ONLY_TIME_INVALID",level:"error",params:{value:n}}]:null}function he(e){e(Cn,Dn,{type:"cell"})}var An="date:datetime";function In(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;if(e instanceof Date&&!Number.isNaN(e.getTime()))return e.getTime();let r=Date.parse(String(e).trim());return Number.isNaN(r)?null:r}function Fn(e,r,t){if(e==null)return null;let n=String(e).trim();return n&&In(e)===null?[{code:"DATE_DATETIME_INVALID",level:"error",params:{value:n}}]:null}function _e(e){e(An,Fn,{type:"cell"})}var Mn="date:timestamp";function Ln(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;if(e instanceof Date&&!Number.isNaN(e.getTime()))return e.getTime();let r=String(e).trim();if(/^\\d+$/.test(r)){let n=Number(r);return Number.isFinite(n)?n:null}let t=Date.parse(r);return Number.isNaN(t)?null:t}function On(e,r,t){if(e==null)return null;let n=String(e).trim();if(!n)return null;let o=Ln(e);return o===null?[{code:"DATE_TIMESTAMP_INVALID",level:"error",params:{value:n}}]:o<-864e10||o>864e10?[{code:"DATE_TIMESTAMP_OUT_OF_RANGE",level:"error",params:{value:o}}]:null}function be(e){e(Mn,On,{type:"cell"})}var zn="date:utc";function Pn(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;if(e instanceof Date&&!Number.isNaN(e.getTime()))return e.getTime();let r=Date.parse(String(e).trim());return Number.isNaN(r)?null:r}function jn(e,r,t){if(e==null)return null;let n=String(e).trim();return n?Pn(e)===null?[{code:"DATE_UTC_NOT_A_DATE",level:"error",params:{value:n}}]:typeof e=="number"||n.endsWith("Z")||/[+-]00:00$/.test(n)||/^\\d+$/.test(n)?null:[{code:"DATE_UTC_REQUIRED",level:"error",params:{value:n}}]:null}function Ee(e){e(zn,jn,{type:"cell"})}var vn="bool:onlyTrue";function Gn(e){if(e===!0)return!0;if(typeof e=="string"){let r=e.trim().toLowerCase();return r==="true"||r==="1"||r==="yes"}return e===1}function Un(e,r,t){return e==null||e===""||Gn(e)?null:[{code:"BOOL_ONLY_TRUE",level:"error",params:{value:e}}]}function xe(e){e(vn,Un,{type:"cell"})}var Bn="bool:onlyFalse";function Yn(e){if(e===!1)return!0;if(typeof e=="string"){let r=e.trim().toLowerCase();return r==="false"||r==="0"||r==="no"}return e===0}function Xn(e,r,t){return e==null||e===""||Yn(e)?null:[{code:"BOOL_ONLY_FALSE",level:"error",params:{value:e}}]}function Ce(e){e(Bn,Xn,{type:"cell"})}var ke=new R;function $n(e){re(e),ne(e),te(e),oe(e),ie(e),ae(e),le(e),se(e),de(e),me(e),ue(e),pe(e),fe(e),ce(e),ye(e),ge(e),Re(e),Se(e),Ne(e),Ve(e),he(e),_e(e),be(e),Ee(e),xe(e),Ce(e)}$n((e,r,t)=>{ke.register(e,r,t)});function Hn(e){let r=ke.get(e);if(!(!r||r.type!=="cell"))return r.fn}function Zn(e){}function Wn(e){}function De(){return{getCellValidator:Hn,getRowValidator:Zn,getTableValidator:Wn}}var qn="toUpperCase";function Qn(e,r,t,n){return typeof e!="string"?e:e.toUpperCase()}function Ae(e){e(qn,Qn,{type:"cell"})}var Kn="toLowerCase";function Jn(e,r,t,n){return typeof e!="string"?e:e.toLowerCase()}function Ie(e){e(Kn,Jn,{type:"cell"})}var et="slice";function rt(e,r,t,n){if(typeof e!="string")return e;let{start:o,end:i}=n??{},a=Number(o),l=Number(i);return Number.isNaN(a)&&Number.isNaN(l)?e:Number.isNaN(l)?e.slice(Number.isNaN(a)?void 0:a):e.slice(Number.isNaN(a)?void 0:a,l)}function Fe(e){e(et,rt,{type:"cell"})}var nt="replace";function tt(e,r,t,n){if(typeof e!="string")return e;let{search:o="",replacement:i=""}=n??{};return e.split(String(o)).join(String(i))}function Me(e){e(nt,tt,{type:"cell"})}var ot="replaceByRegex";function it(e,r,t,n){if(typeof e!="string")return e;let{pattern:o="",flags:i="g",replacement:a=""}=n??{};if(!o)return e;try{let l=new RegExp(o,i);return e.replace(l,String(a))}catch{return e}}function Le(e){e(ot,it,{type:"cell"})}var at="fillStart";function lt(e,r,t,n){let o=typeof e=="string"?e:e==null?"":String(e),{length:i=0,fill:a=" "}=n??{},l=Math.max(0,Number(i)||0);return l>0?o.padStart(l,String(a)):o}function Oe(e){e(at,lt,{type:"cell"})}var st="fillEnd";function dt(e,r,t,n){let o=typeof e=="string"?e:e==null?"":String(e),{length:i=0,fill:a=" "}=n??{},l=Math.max(0,Number(i)||0);return l>0?o.padEnd(l,String(a)):o}function ze(e){e(st,dt,{type:"cell"})}var mt="extractByRegex";function ut(e,r,t,n){let o=typeof e=="string"?e:e==null?"":String(e),{pattern:i="",flags:a="",group:l=0}=n??{};if(!i)return o;try{let s=new RegExp(i,a),d=o.match(s);if(!d)return"";let m=Math.max(0,Number(l)||0);return d[m]??d[0]??""}catch{return o}}function Pe(e){e(mt,ut,{type:"cell"})}var pt="numberAdd";function ft(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function ct(e,r,t,n){let o=ft(e);if(o===null)return e;let{value:i=0}=n??{},a=Number(i);return Number.isNaN(a)?e:o+a}function je(e){e(pt,ct,{type:"cell"})}var yt="numberMultiply";function gt(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function Rt(e,r,t,n){let o=gt(e);if(o===null)return e;let{value:i=1}=n??{},a=Number(i);return Number.isNaN(a)?e:o*a}function ve(e){e(yt,Rt,{type:"cell"})}var wt="numberDivide";function St(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function Tt(e,r,t,n){let o=St(e);if(o===null)return e;let{value:i=1}=n??{},a=Number(i);return Number.isNaN(a)||a===0?e:o/a}function Ge(e){e(wt,Tt,{type:"cell"})}var Nt="numberSubtract";function Vt(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function ht(e,r,t,n){let o=Vt(e);if(o===null)return e;let{value:i=0}=n??{},a=Number(i);return Number.isNaN(a)?e:o-a}function Ue(e){e(Nt,ht,{type:"cell"})}var _t="numberRound";function bt(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function Et(e,r,t,n){let o=bt(e);if(o===null)return e;let{mode:i="round"}=n??{};return i==="ceil"?Math.ceil(o):i==="floor"?Math.floor(o):Math.round(o)}function Be(e){e(_t,Et,{type:"cell"})}var xt="numberAbs";function Ct(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function kt(e,r,t,n){let o=Ct(e);return o===null?e:Math.abs(o)}function Ye(e){e(xt,kt,{type:"cell"})}var Dt="numberSqrt";function At(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function It(e,r,t,n){let o=At(e);return o===null||o<0?e:Math.sqrt(o)}function Xe(e){e(Dt,It,{type:"cell"})}var Ft="numberLimit";function Mt(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function Lt(e,r,t,n){let o=Mt(e);if(o===null)return e;let{min:i,max:a}=n??{},l=o,s=Number(i);!Number.isNaN(s)&&l<s&&(l=s);let d=Number(a);return!Number.isNaN(d)&&l>d&&(l=d),l}function $e(e){e(Ft,Lt,{type:"cell"})}var Ot="numberPercent";function zt(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function Pt(e,r,t,n){let o=zt(e);if(o===null)return e;let{total:i}=n??{},a=Number(i);return Number.isNaN(a)||a===0?e:o/a*100}function He(e){e(Ot,Pt,{type:"cell"})}var jt="dateToOnlyTime";function vt(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);return Number.isNaN(t)?null:new Date(t)}function Gt(e){let r=String(e.getHours()).padStart(2,"0"),t=String(e.getMinutes()).padStart(2,"0"),n=String(e.getSeconds()).padStart(2,"0");return`${r}:${t}:${n}`}function Ut(e,r,t,n){let o=vt(e);return o?Gt(o):e}function Ze(e){e(jt,Ut,{type:"cell"})}var Bt="dateToOnlyDate";function Yt(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);return Number.isNaN(t)?null:new Date(t)}function Xt(e){let r=e.getFullYear(),t=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${r}-${t}-${n}`}function $t(e,r,t,n){let o=Yt(e);return o?Xt(o):e}function We(e){e(Bt,$t,{type:"cell"})}var Ht="dateToTimeDate";function Zt(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);return Number.isNaN(t)?null:new Date(t)}function Wt(e){let r=e.getFullYear(),t=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${r}-${t}-${n}`}function qt(e){let r=String(e.getHours()).padStart(2,"0"),t=String(e.getMinutes()).padStart(2,"0"),n=String(e.getSeconds()).padStart(2,"0");return`${r}:${t}:${n}`}function Qt(e,r,t,n){let o=Zt(e);return o?`${Wt(o)}T${qt(o)}`:e}function qe(e){e(Ht,Qt,{type:"cell"})}var Kt="dateToUtc";function Jt(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);return Number.isNaN(t)?null:new Date(t)}function eo(e,r,t,n){let o=Jt(e);return o?o.toISOString():e}function Qe(e){e(Kt,eo,{type:"cell"})}var ro="dateLimit";function no(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);if(!Number.isNaN(t))return new Date(t);let n=Number(e);return Number.isFinite(n)?new Date(n):null}function to(e,r,t,n){let o=no(e);if(!o)return e;let{min:i,max:a}=n??{},l=o.getTime();if(i!==void 0){let s=typeof i=="number"?new Date(i):new Date(String(i));!Number.isNaN(s.getTime())&&l<s.getTime()&&(l=s.getTime())}if(a!==void 0){let s=typeof a=="number"?new Date(a):new Date(String(a));!Number.isNaN(s.getTime())&&l>s.getTime()&&(l=s.getTime())}return new Date(l).toISOString()}function Ke(e){e(ro,to,{type:"cell"})}var oo="dateAdd";function io(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);return Number.isNaN(t)?null:new Date(t)}function ao(e,r){let t=new Date(e.getTime()),n=Number(r.ms)||0,o=Number(r.seconds)||0,i=Number(r.minutes)||0,a=Number(r.hours)||0,l=Number(r.days)||0;t.setTime(t.getTime()+n+o*1e3+i*6e4+a*36e5+l*864e5);let s=Number(r.months)||0,d=Number(r.years)||0;return(s||d)&&(t.setFullYear(t.getFullYear()+d),t.setMonth(t.getMonth()+s)),t}function lo(e,r,t,n){let o=io(e);return o?ao(o,n??{}).toISOString():e}function Je(e){e(oo,lo,{type:"cell"})}var so="dateSubtract";function mo(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);return Number.isNaN(t)?null:new Date(t)}function uo(e,r){let t=new Date(e.getTime()),n=Number(r.ms)||0,o=Number(r.seconds)||0,i=Number(r.minutes)||0,a=Number(r.hours)||0,l=Number(r.days)||0;t.setTime(t.getTime()-n-o*1e3-i*6e4-a*36e5-l*864e5);let s=Number(r.months)||0,d=Number(r.years)||0;return(s||d)&&(t.setFullYear(t.getFullYear()-d),t.setMonth(t.getMonth()-s)),t}function po(e,r,t,n){let o=mo(e);return o?uo(o,n??{}).toISOString():e}function er(e){e(so,po,{type:"cell"})}var rr=new R;function u(e,r,t){rr.register(e,r,t)}Ae(u);Ie(u);Fe(u);Me(u);Le(u);Oe(u);ze(u);Pe(u);je(u);ve(u);Ge(u);Ue(u);Be(u);Ye(u);Xe(u);$e(u);He(u);Ze(u);We(u);qe(u);Qe(u);Ke(u);Je(u);er(u);function fo(e){let r=rr.get(e);if(!(!r||r.type!=="cell"))return r.fn}function co(e){}function yo(e){}function nr(){return{getCellTransform:fo,getRowTransform:co,getSheetTransform:yo}}var go={async runEdit(e,r,t,n,o,i){let a=De(),l=nr();return ee(e,r,t,n,o,{validator:a,transform:l},i?.signal)}};C(go);\n/*! Bundled license information:\n\ncomlink/dist/esm/comlink.mjs:\n (**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n *)\n*/\n//# sourceMappingURL=edit.worker.js.map',r=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(r)}function cr(){let[e,r]=$r(null),t=Jr(null);return Kr(()=>{let a=new Worker(or(),{type:"module"});t.current=a;let n=U(a);return queueMicrotask(()=>r(n)),()=>{a.terminate(),t.current=null}},[]),{runEdit:Yr(async(a,n,o,s,c,f)=>{if(!e)throw new Error("Edit worker not ready");return e.runEdit(a,n,o,s,c,f??{})},[e]),isReady:!!e}}function lr(e,r,t){return Ee(e.rows,r,t)}function Ee(e,r,t){let i=e.length,a=t<=0?0:Math.max(1,Math.ceil(i/t)),n=Math.max(1,Math.min(r,a)),o=(n-1)*t,s=Math.min(o+t,i),c=e.slice(o,s);return{page:n,pageSize:t,totalCount:i,totalPages:a,rows:c}}function ie(e={}){let{result:r,setResult:t,layout:i,changeLog:a,addChangeLogEntry:n,submitDone:o}=w(),{runEdit:s,isReady:c}=cr(),f=!o,{page:u=1,pageSize:d=25,debounceMs:l}=e,h=qr(null),v=we(()=>r?lr(r,u,d):{page:1,pageSize:d,totalCount:0,totalPages:0,rows:[]},[r,u,d]),k=v.totalPages,T=Te(b=>{if(!r||!i||o)return Promise.resolve();let g=j(r,b.rowIndex)&&sr(j(r,b.rowIndex),b.cellKey)?.value;return s(r,i,b.rowIndex,b.cellKey,b.value).then(E=>{t(E),queueMicrotask(()=>{let y={type:"cell_edit",rowIndex:b.rowIndex,cellKey:b.cellKey,value:b.value,previousValue:g,timestamp:Date.now()};n(y)})})},[r,i,o,s,t,n]),p=Te(b=>{if(l!=null&&l>0){h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{h.current=null,T(b)},l);return}return T(b)},[l,T]),m=Te(b=>{if(!r||o)return;let g=ir(r,b);t(g),queueMicrotask(()=>{let E={type:"row_remove",rowIndex:b,timestamp:Date.now()};n(E)})},[r,o,t,n]),A=we(()=>Y(a),[a]);return we(()=>({sheet:r,editCell:p,removeRow:m,pageData:v,totalPages:k,isReady:c,canEdit:f,changeLog:a,changeLogAsText:A}),[r,p,m,v,k,c,f,a,A])}import{useCallback as M,useMemo as G,useState as et}from"react";function fr(e,r){return e.includes(r)||e.includes('"')||e.includes(`
|
|
82
|
+
//# sourceMappingURL=parser.worker.js.map`,r=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(r)}function Xe(){let{setActiveWorker:e,dispatchProgress:r}=w(),[t,i]=Ir(null),a=Nr(null);Or(()=>{let s=new Worker(je());a.current=s,e(s);let c=U(s);return queueMicrotask(()=>i(c)),()=>{s.terminate(),a.current=null,e(null)}},[e]);let n=Ge(async(s,c={})=>{if(!t)throw new Error("Parser worker not ready");return t.load(s,c)},[t]),o=Ge(async s=>{if(!t)throw new Error("Parser worker not ready");let c=s?he(s):void 0;return t.parseAll(c)},[t]);return{load:n,parseAll:o,dispatchProgress:r,isReady:!!t}}function Ye(e){let r=Object.keys(e.sheets);return r.length===0?null:e.sheets[r[0]??""]??null}function re(){let e=w(),{load:r,parseAll:t,isReady:i}=Xe();return Pr(()=>{let{file:n,status:o,engine:s}=e;!i||!n||o!=="loading"||r(n,{maxRows:10,fileName:n.name,engine:s??void 0}).then(c=>{if(!Ye(c)){let d={code:"PARSER_NO_SHEETS",level:"fatal",message:"No sheets found in the file. The file may be empty or corrupted.",params:{fileName:n.name,fileSize:n.size,fileType:n.type}};e.setGlobalErrors([d]),e.setStatus("error");return}let u=c.sheets[Object.keys(c.sheets)[0]??""];if(!u){let d={code:"PARSER_SHEET_ACCESS_FAILED",level:"fatal",message:"Failed to access the first sheet in the file.",params:{fileName:n.name}};e.setGlobalErrors([d]),e.setStatus("error");return}e.setRawData(u),e.setDocumentHash(u.documentHash),e.setStatus("success")}).catch(c=>{let f={code:"PARSER_FAILED",level:"fatal",message:c instanceof Error?c.message:"Failed to parse the file. The file may be corrupted or in an unsupported format.",params:{fileName:n.name,fileSize:n.size,fileType:n.type,originalError:c instanceof Error?c.message:String(c)}};e.setGlobalErrors([f]),e.setStatus("error")})},[i,e.file,e.status,e.setRawData,e.setDocumentHash,e.setStatus,e.setGlobalErrors,r]),{startFullImport:Dr(()=>{let{file:n}=e;if(!n)return Promise.reject(new Error("No file loaded"));e.setStatus("loading");let o=performance.now();return t(s=>e.dispatchProgress(s)).then(s=>{let c=performance.now();if(e.setPhaseTiming("parse",c-o),!Ye(s)){let d={code:"PARSER_NO_SHEETS",level:"fatal",message:"No sheets found in the file. The file may be empty or corrupted.",params:{fileName:n.name,fileSize:n.size,fileType:n.type}};return e.setGlobalErrors([d]),e.setStatus("error"),s}let u=s.sheets[Object.keys(s.sheets)[0]??""];if(!u){let d={code:"PARSER_SHEET_ACCESS_FAILED",level:"fatal",message:"Failed to access the first sheet in the file.",params:{fileName:n.name}};return e.setGlobalErrors([d]),e.setStatus("error"),s}return e.setRawData(u),e.setDocumentHash(u.documentHash),e.setStatus("success"),s}).catch(s=>{let c={code:"PARSER_FAILED",level:"fatal",message:s instanceof Error?s.message:"Failed to parse the file. The file may be corrupted or in an unsupported format.",params:{fileName:n.name,fileSize:n.size,fileType:n.type,originalError:s instanceof Error?s.message:String(s)}};throw e.setGlobalErrors([c]),e.setStatus("error"),s})},[e,t])}}import{jsx as Mr,jsxs as Br}from"react/jsx-runtime";function Lr(){return re(),null}function pe({children:e,layout:r,engine:t,persist:i=!1,persistKey:a=oe,onSubmit:n=null,submitKeyMap:o=null}){let[s,c]=de(Ae),[f,u]=de(r??null),[d,l]=de(t??null),h=V(()=>new EventTarget,[]),v=V(()=>new O,[]),k=V(()=>new O,[]),T=V(()=>new O,[]),p=Ke(null),m=Ke({parse:0,sanitize:0,validate:0,transform:0}),A=J({setState:c,setLayoutState:u,setEngineState:l}),b=Pe(i,a,s.rawData,s.result,A.setRawData,A.setResult,f?.version??null),g=_e({setState:c,setLayoutState:u,setEngineState:l,progressEventTarget:h,validatorRegistry:v,sanitizerRegistry:k,transformRegistry:T,activeWorkerRef:p,phaseTimingsRef:m});Fr(()=>()=>{let y=p.current;y&&(y.terminate(),p.current=null)},[]);let E=V(()=>({...s,layout:f,engine:d,progressEventTarget:h,...g,onSubmit:n??null,submitKeyMap:o??null,persist:i,persistKey:a,hasRecoverableSession:b.hasRecoverableSession,recoverSession:b.recoverSession,clearPersistedState:b.clearPersistedState}),[s,f,d,h,n,o,g,i,a,b.hasRecoverableSession,b.recoverSession,b.clearPersistedState]);return Br(X.Provider,{value:E,children:[Mr(Lr,{}),e]})}import{useContext as Ur}from"react";function w(){let e=Ur(X);if(e===null)throw new Error("useImporter must be used within an ImporterProvider");return e}import{useCallback as Vr,useEffect as Je,useMemo as $e}from"react";function H(e){return e.rows.filter(r=>r.errors.length>0)}function z(e){return e?te(e).totalErrors>0:!1}function te(e){let r=e.rows.length,t=H(e),i=e.errors.length+e.rows.reduce((a,n)=>a+n.errors.length+n.cells.reduce((o,s)=>o+s.errors.length,0),0);return{totalRows:r,rowsWithErrors:t.length,totalErrors:i}}function me(e,r){return e.cells.find(i=>i.key===r)?.value}function ge(e,r){return e.map(r)}function W(e,r){return e?e.rows.map(t=>{let i={};for(let[a,n]of Object.entries(r))i[n]=me(t,a);return i}):[]}function Hr(e){return e.rows.map(r=>r.cells.reduce((t,i)=>({...t,[i.key]:i.value}),{}))}function qe(e={}){let r=w(),{layout:t,engine:i}=e;Je(()=>{t!==void 0&&r.setLayout(t)},[r,t]),Je(()=>{i!==void 0&&r.setEngine(i)},[r,i]);let a=$e(()=>!!(r.result&&r.status==="success"&&!r.submitDone&&!z(r.result)),[r.result,r.status,r.submitDone]),n=Vr(()=>{if(!r.result||r.submitDone||z(r.result)||!r.onSubmit)return;let o=r.submitKeyMap?W(r.result,r.submitKeyMap):Hr(r.result);r.onSubmit(o),r.setSubmitDone(!0)},[r]);return $e(()=>({processFile:r.processFile,registerValidator:r.registerValidator,registerSanitizer:r.registerSanitizer,registerTransform:r.registerTransform,abort:r.abort,metrics:r.metrics,submit:n,canSubmit:a,submitDone:r.submitDone}),[r.processFile,r.registerValidator,r.registerSanitizer,r.registerTransform,r.abort,r.metrics,n,a,r.submitDone])}import{useCallback as ne,useMemo as er}from"react";function ve(e,r,t,i){let a=[...t],n=new Map;e.headers.forEach((s,c)=>n.set(s,c));let o=e.rows.map(s=>{let c=t.map(f=>{let u=i[f],d=u!=null?(()=>{let l=n.get(u);return l==null?null:s.cells[l]?.value??null})():null;return{key:f,value:d??null}});return{index:s.index,cells:c}});return{name:e.name,filesize:e.filesize,documentHash:e.documentHash,rowsCount:e.rowsCount,headersCount:e.headersCount,headers:a,rows:o}}function Ze(e){return e.trim().toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu,"")}function zr(e,r){if(e.length===0)return r.length;if(r.length===0)return e.length;let t=Array.from({length:r.length+1},(i,a)=>a);for(let i=1;i<=e.length;i++){let a=[i];for(let n=1;n<=r.length;n++){let o=e[i-1]===r[n-1]?0:1;a[n]=Math.min(a[n-1]+1,t[n]+1,t[n-1]+o)}t=a}return t[r.length]}function Wr(e,r){let t=Ze(e),i=Ze(r),a=t.length>=i.length?t:i,n=t.length<i.length?t:i;if(a.length===0)return 1;let o=zr(a,n);return(a.length-o)/a.length}var jr=.8;function Qe(e,r,t={}){let i=t.threshold??jr,a=[];for(let c of r)for(let f of e){let u=Wr(c,f);u>=i&&a.push({key:c,header:f,score:u})}a.sort((c,f)=>f.score-c.score);let n=new Set,o=new Set,s={};for(let c of r)s[c]=null;for(let{key:c,header:f,score:u}of a)n.has(c)||o.has(f)||(s[c]=f,n.add(c),o.add(f));return r.map(c=>({key:c,matchedHeader:s[c]??null}))}function Gr(e,r){let t=e.trim();return r?t:t.toLowerCase()}function be(e,r,t={},i={}){let a=i.caseSensitive??!1,n=i.normalizer??(l=>Gr(l,a)),o=Object.keys(r.fields),s=e.headers,c=new Map;for(let l of s)c.set(n(l),l);let f={},u=new Set;for(let[l,h]of Object.entries(t))o.includes(h)&&(f[h]=s.includes(l)?l:null,f[h]&&u.add(l));for(let l of o){if(f[l]!=null)continue;let h=n(l),v=c.get(h);v!=null&&!u.has(v)?(f[l]=v,u.add(v)):f[l]=null}if(i.fuzzyHeaders===!0){let l=o.filter(T=>f[T]==null),h=s.filter(T=>!u.has(T)),v=i.fuzzyThreshold??.8,k=Qe(h,l,{threshold:v});for(let{key:T,matchedHeader:p}of k)p!=null&&!u.has(p)&&(f[T]=p,u.add(p))}let d=[];for(let l of o)if(f[l]==null){let k=r.fields[l]?.required!==!1;d.push({expected:l,found:null,message:`Column '${l}' not found in file`,required:k})}return{fieldToHeader:f,mismatches:d}}function ae(e,r,t={},i){let a=Object.keys(r.fields),n=i?.columnOrder?.length?i.columnOrder:a,o=i?.headerToFieldMap??{},{fieldToHeader:s,mismatches:c}=be(e,r,o,t),u=a.filter(h=>r.fields[h]?.required!==!1).every(h=>s[h]!=null);if(c.length===0||u)return{kind:"success",sheet:ve(e,r,n,s)};let l=c.some(h=>h.required===!0);return{kind:"mismatch",headersFound:[...e.headers],mismatches:c,columnOrder:[...n],headerToFieldMap:{...o},layoutError:l}}function se(){let e=w(),{rawData:r,layout:t,convertedSheet:i,convertResultData:a,setConvertedSheet:n,setConvertResultData:o}=e,s=ne(l=>{if(!r||!t)return;let h=ae(r,t,l,a??void 0);h.kind==="success"?n(h.sheet):o({headersFound:h.headersFound,mismatches:h.mismatches,columnOrder:h.columnOrder,headerToFieldMap:h.headerToFieldMap})},[r,t,a,n,o]),c=ne(()=>{if(!r||!t||!a)return;let l=ae(r,t,{},{columnOrder:a.columnOrder,headerToFieldMap:a.headerToFieldMap});return l.kind==="success"?(n(l.sheet),{kind:"success",sheet:l.sheet}):(o({headersFound:l.headersFound,mismatches:l.mismatches,columnOrder:l.columnOrder,headerToFieldMap:l.headerToFieldMap}),{kind:"mismatch",result:l})},[r,t,a,n,o]),f=ne(l=>{o(h=>h&&{...h,columnOrder:l})},[o]),u=ne((l,h)=>{o(v=>v&&{...v,headerToFieldMap:{...v.headerToFieldMap,[l]:h}})},[o]),d=er(()=>a?{kind:"mismatch",headersFound:a.headersFound,mismatches:a.mismatches,columnOrder:[...a.columnOrder],headerToFieldMap:{...a.headerToFieldMap},reorderColumns:f,renameColumn:u,applyMapping:()=>c()??{kind:"mismatch",result:{...a,kind:"mismatch"}}}:null,[a,f,u,c]);return er(()=>({convert:s,convertedSheet:i,convertResult:d}),[s,i,d])}import{useMemo as Xr}from"react";function rr(){let e=w();return Xr(()=>({status:e.status,progressEventTarget:e.progressEventTarget}),[e.status,e.progressEventTarget])}import{useCallback as tr,useMemo as ar}from"react";function nr(){let e=w(),r=e.result,t=ar(()=>{let n=r?[...r.errors]:[];return[...[...e.globalErrors],...n]},[r,e.globalErrors]),i=tr(n=>r?ge(r.rows,n):[],[r]),a=tr(n=>W(r,n),[r]);return ar(()=>({sheet:r,errors:t,toObjects:i,toObjectsWithKeyMap:a}),[r,t,i,a])}import{useCallback as Te,useMemo as we,useRef as qr}from"react";function j(e,r){return e.rows.find(t=>t.index===r)}function sr(e,r){return e.cells.find(t=>t.key===r)}function ir(e,r){if(!j(e,r))return e;let i=e.rows.filter(a=>a.index!==r).map((a,n)=>({...a,index:n}));return{...e,rows:i}}import{useCallback as Yr,useEffect as Kr,useRef as Jr,useState as $r}from"react";function or(){let e='var P=Symbol("Comlink.proxy"),dr=Symbol("Comlink.endpoint"),mr=Symbol("Comlink.releaseProxy"),F=Symbol("Comlink.finalizer"),_=Symbol("Comlink.thrown"),j=e=>typeof e=="object"&&e!==null||typeof e=="function",ur={canHandle:e=>j(e)&&e[P],serialize(e){let{port1:r,port2:t}=new MessageChannel;return C(e,r),[t,[t]]},deserialize(e){return e.start(),yr(e)}},pr={canHandle:e=>j(e)&&_ in e,serialize({value:e}){let r;return e instanceof Error?r={isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:r={isError:!1,value:e},[r,[]]},deserialize(e){throw e.isError?Object.assign(new Error(e.value.message),e.value):e.value}},v=new Map([["proxy",ur],["throw",pr]]);function fr(e,r){for(let t of e)if(r===t||t==="*"||t instanceof RegExp&&t.test(r))return!0;return!1}function C(e,r=globalThis,t=["*"]){r.addEventListener("message",function n(o){if(!o||!o.data)return;if(!fr(t,o.origin)){console.warn(`Invalid origin \'${o.origin}\' for comlink proxy`);return}let{id:i,type:a,path:l}=Object.assign({path:[]},o.data),s=(o.data.argumentList||[]).map(g),d;try{let m=l.slice(0,-1).reduce((p,y)=>p[y],e),f=l.reduce((p,y)=>p[y],e);switch(a){case"GET":d=f;break;case"SET":m[l.slice(-1)[0]]=g(o.data.value),d=!0;break;case"APPLY":d=f.apply(m,s);break;case"CONSTRUCT":{let p=new f(...s);d=Tr(p)}break;case"ENDPOINT":{let{port1:p,port2:y}=new MessageChannel;C(e,y),d=Sr(p,[p])}break;case"RELEASE":d=void 0;break;default:return}}catch(m){d={value:m,[_]:0}}Promise.resolve(d).catch(m=>({value:m,[_]:0})).then(m=>{let[f,p]=x(m);r.postMessage(Object.assign(Object.assign({},f),{id:i}),p),a==="RELEASE"&&(r.removeEventListener("message",n),G(r),F in e&&typeof e[F]=="function"&&e[F]())}).catch(m=>{let[f,p]=x({value:new TypeError("Unserializable return value"),[_]:0});r.postMessage(Object.assign(Object.assign({},f),{id:i}),p)})}),r.start&&r.start()}function cr(e){return e.constructor.name==="MessagePort"}function G(e){cr(e)&&e.close()}function yr(e,r){let t=new Map;return e.addEventListener("message",function(o){let{data:i}=o;if(!i||!i.id)return;let a=t.get(i.id);if(a)try{a(i)}finally{t.delete(i.id)}}),M(e,t,[],r)}function h(e){if(e)throw new Error("Proxy has been released and is not useable")}function U(e){return w(e,new Map,{type:"RELEASE"}).then(()=>{G(e)})}var b=new WeakMap,E="FinalizationRegistry"in globalThis&&new FinalizationRegistry(e=>{let r=(b.get(e)||0)-1;b.set(e,r),r===0&&U(e)});function gr(e,r){let t=(b.get(r)||0)+1;b.set(r,t),E&&E.register(e,r,e)}function Rr(e){E&&E.unregister(e)}function M(e,r,t=[],n=function(){}){let o=!1,i=new Proxy(n,{get(a,l){if(h(o),l===mr)return()=>{Rr(i),U(e),r.clear(),o=!0};if(l==="then"){if(t.length===0)return{then:()=>i};let s=w(e,r,{type:"GET",path:t.map(d=>d.toString())}).then(g);return s.then.bind(s)}return M(e,r,[...t,l])},set(a,l,s){h(o);let[d,m]=x(s);return w(e,r,{type:"SET",path:[...t,l].map(f=>f.toString()),value:d},m).then(g)},apply(a,l,s){h(o);let d=t[t.length-1];if(d===dr)return w(e,r,{type:"ENDPOINT"}).then(g);if(d==="bind")return M(e,r,t.slice(0,-1));let[m,f]=z(s);return w(e,r,{type:"APPLY",path:t.map(p=>p.toString()),argumentList:m},f).then(g)},construct(a,l){h(o);let[s,d]=z(l);return w(e,r,{type:"CONSTRUCT",path:t.map(m=>m.toString()),argumentList:s},d).then(g)}});return gr(i,e),i}function wr(e){return Array.prototype.concat.apply([],e)}function z(e){let r=e.map(x);return[r.map(t=>t[0]),wr(r.map(t=>t[1]))]}var B=new WeakMap;function Sr(e,r){return B.set(e,r),e}function Tr(e){return Object.assign(e,{[P]:!0})}function x(e){for(let[r,t]of v)if(t.canHandle(e)){let[n,o]=t.serialize(e);return[{type:"HANDLER",name:r,value:n},o]}return[{type:"RAW",value:e},B.get(e)||[]]}function g(e){switch(e.type){case"HANDLER":return v.get(e.name).deserialize(e.value);case"RAW":return e.value}}function w(e,r,t,n){return new Promise(o=>{let i=Nr();r.set(i,o),e.start&&e.start(),e.postMessage(Object.assign({id:i},t),n)})}function Nr(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}function S(e){return typeof e=="string"?{name:e}:{name:e.name,params:e.params}}function Y(e,r,t,n){let o=t.validators;if(!o?.length)return[];let i=[];for(let a of o){let{name:l,params:s}=S(a),d=n(l);if(d){let m=d(e.value,r,s);if(m?.length&&(i.push(...m),m.some(p=>p.level==="fatal")))break}}return i}function X(e,r,t){let n=r.rowValidators;if(!n?.length)return[];let o=[];for(let i of n){let{name:a,params:l}=S(i),s=t(a);if(s){let d=s(e,l);if(d?.length&&(o.push(...d),d.some(f=>f.level==="fatal")))break}}return o}var hr="EXTERNAL_VALIDATION_FAILED";function _r(e){return e.map(r=>({error:r}))}async function $(e,r,t,n){let o=r.sheetValidators;if(!o?.length)return[];let i=[];for(let a of o){let{name:l,params:s}=S(a),d=t(l);if(d)try{let m=await Promise.resolve(d(e,s,n));m?.length&&i.push(..._r(m))}catch{i.push({error:{code:hr,level:"fatal",params:{reason:"network"}}})}}return i}function H(e){return!("rowIndex"in e)&&!("cellKey"in e)}function T(e){return typeof e=="string"?{name:e}:{name:e.name,params:e.params}}function Z(e,r,t,n){if(e.errors.length>0)return e.value;let o=t.transformations;if(!o?.length)return e.value;let i=e.value;for(let a of o){let{name:l,params:s}=T(a),d=n(l);d&&(i=d(i,e,r,s))}return i}function W(e,r,t){if(e.errors.length>0)return e;let n=r.rowTransformations;if(!n?.length)return e;let o=e;for(let i of n){let{name:a,params:l}=T(i),s=t(a);s&&(o=s(o,l))}return o}var br="EXTERNAL_TRANSFORM_FAILED";async function q(e,r,t,n){let o=r.sheetTransformations;if(!o?.length)return{deltas:[],errors:[]};let i=[],a=[];for(let l of o){let{name:s,params:d}=T(l),m=t(s);if(m)try{let f=await Promise.resolve(m(e,d,n));f?.length&&i.push(...f)}catch{a.push({code:br,level:"fatal",params:{reason:"network"}})}}return{deltas:i,errors:a}}function Er(e,r,t,n){return e.map(o=>{if(o.index!==r)return o;let i=o.cells.map(a=>a.key===t?{...a,value:n}:a);return{...o,cells:i}})}function Q(e,r){if(!r.deltas.length)return e;let t=[...e.rows];for(let n of r.deltas)n.row<0||(t=Er(t,n.row,n.col,n.newValue));return{...e,rows:t}}function k(e,r){return e.rows.find(t=>t.index===r)}function K(e,r){return e.cells.find(t=>t.key===r)}function J(e,r,t,n){let o=k(e,r);if(!o)return e;let i=o.cells.findIndex(m=>m.key===t);if(i<0)return e;let a={...o.cells[i],value:n,errors:[]},l=o.cells.map((m,f)=>f===i?a:m),s={...o,cells:l,errors:[]},d=e.rows.map(m=>m.index===r?s:m);return{...e,rows:d}}async function ee(e,r,t,n,o,i,a){let l=J(e,t,n,o),s=k(l,t);if(!s)return l;let d=K(s,n);if(!d)return l;let m=r.fields[n];if(!m)return l;let f=Y(d,s,m,i.validator.getCellValidator),p={...d,errors:f},y={...s,cells:s.cells.map(c=>c.key===n?p:c),errors:[]},tr=X(y,r,i.validator.getRowValidator),N={...y,errors:tr},or=l.rows.map(c=>c.index===t?N:c),D={...l,rows:or},ir=(await $(D,r,i.validator.getTableValidator,a)).filter(H).map(c=>c.error),V={...D,errors:[...D.errors,...ir]};if(V.errors.length>0)return V;let ar=p.errors.length===0?Z(p,N,m,i.transform.getCellTransform):p.value,lr={...p,value:ar},L={...N,cells:N.cells.map(c=>c.key===n?lr:c)},sr=N.errors.length===0?W(L,r,i.transform.getRowTransform):L,O={...V,rows:V.rows.map(c=>c.index===t?sr:c)},A=await q(O,r,i.transform.getSheetTransform,a),I=Q(O,{deltas:A.deltas});return A.errors.length>0?{...I,errors:[...I.errors,...A.errors]}:I}var R=class{entries=new Map;register(r,t,n){this.entries.set(r,{fn:t,type:n.type})}get(r){return this.entries.get(r)}getByType(r){return[...this.entries.entries()].filter(([,t])=>t.type===r).map(([t,n])=>({name:t,entry:n}))}has(r){return this.entries.has(r)}clear(){this.entries.clear()}};var xr="required";function Cr(e,r,t){return e==null||typeof e=="string"&&e.trim()===""?[{code:"REQUIRED",level:"error",params:{value:e}}]:null}function re(e){e(xr,Cr,{type:"cell"})}var kr="string:byregex";function Dr(e,r,t){let{pattern:n="",flags:o=""}=t??{};if(!n)return[{code:"STRING_BYREGEX_INVALID_PARAMS",level:"error",params:{reason:"missing pattern"}}];let i=e==null?"":String(e);try{if(!new RegExp(n,o).test(i))return[{code:"STRING_BYREGEX_MISMATCH",level:"error",params:{value:i,pattern:n}}]}catch{return[{code:"STRING_BYREGEX_INVALID_PATTERN",level:"error",params:{pattern:n}}]}return null}function ne(e){e(kr,Dr,{type:"cell"})}var Ar="string:maxLength";function Ir(e,r,t){let{maxLength:n}=t??{},o=typeof n=="number"&&Number.isFinite(n)?n:void 0;if(o===void 0||o<0)return[{code:"STRING_MAX_LENGTH_INVALID_PARAMS",level:"error",params:{maxLength:n}}];let i=e==null?"":String(e);return i.length>o?[{code:"STRING_MAX_LENGTH",level:"error",params:{value:i,maxLength:o,length:i.length}}]:null}function te(e){e(Ar,Ir,{type:"cell"})}var Fr="string:minLength";function Mr(e,r,t){let{minLength:n}=t??{},o=typeof n=="number"&&Number.isFinite(n)&&n>=0?n:void 0;if(o===void 0)return[{code:"STRING_MIN_LENGTH_INVALID_PARAMS",level:"error",params:{minLength:n}}];let i=e==null?"":String(e);return i.length<o?[{code:"STRING_MIN_LENGTH",level:"error",params:{value:i,minLength:o,length:i.length}}]:null}function oe(e){e(Fr,Mr,{type:"cell"})}var Lr="string:email",Or=/^[a-zA-Z0-9.!#$%&\'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;function zr(e,r,t){let n=e==null?"":String(e).trim();return n?Or.test(n)?null:[{code:"STRING_EMAIL_INVALID",level:"error",params:{value:n}}]:null}function ie(e){e(Lr,zr,{type:"cell"})}var Pr="string:phone",jr=/^[\\d\\s\\-+.()]{7,20}$/;function vr(e,r,t){let n=e==null?"":String(e).trim();if(!n)return null;let o=n.replace(/\\D/g,"");return o.length<7||o.length>15||!jr.test(n)?[{code:"STRING_PHONE_INVALID",level:"error",params:{value:n}}]:null}function ae(e){e(Pr,vr,{type:"cell"})}var Gr="string:phoneInternational",Ur=/^\\+?[1-9]\\d{0,3}/;function Br(e,r,t){let n=e==null?"":String(e).trim().replace(/\\s/g,"");if(!n)return null;let o=n.replace(/\\D/g,""),i=n.startsWith("+")?n:`+${n}`;return o.length<10||o.length>15||!Ur.test(i)?[{code:"STRING_PHONE_INTERNATIONAL_INVALID",level:"error",params:{value:n}}]:null}function le(e){e(Gr,Br,{type:"cell"})}var Yr="string:phoneLocal";function Xr(e,r,t){let{minDigits:n=6,maxDigits:o=11}=t??{},i=typeof n=="number"&&n>=0?n:6,a=typeof o=="number"&&o>=i?o:11,l=e==null?"":String(e).trim();if(!l)return null;let s=l.replace(/\\D/g,"");return l.startsWith("+")&&s.length>3?[{code:"STRING_PHONE_LOCAL_INVALID",level:"error",params:{value:l,reason:"international"}}]:s.length<i||s.length>a?[{code:"STRING_PHONE_LOCAL_INVALID",level:"error",params:{value:l,minDigits:i,maxDigits:a}}]:null}function se(e){e(Yr,Xr,{type:"cell"})}var $r="string:onlyNumbers",Hr=/^\\d+$/;function Zr(e,r,t){if(e==null)return null;let n=String(e).trim();return n?Hr.test(n)?null:[{code:"STRING_ONLY_NUMBERS_INVALID",level:"error",params:{value:n}}]:null}function de(e){e($r,Zr,{type:"cell"})}var Wr="string:onlyLetters",qr=/^[a-zA-Z\\u00C0-\\u024F\\u1E00-\\u1EFF]+$/,Qr=/^[a-zA-Z\\u00C0-\\u024F\\u1E00-\\u1EFF\\s]+$/;function Kr(e,r,t){let{allowSpaces:n=!1}=t??{};if(e==null)return null;let o=String(e).trim();return o?(n?Qr:qr).test(o)?null:[{code:"STRING_ONLY_LETTERS_INVALID",level:"error",params:{value:o}}]:null}function me(e){e(Wr,Kr,{type:"cell"})}var Jr="number:min";function en(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;let r=Number(e);return Number.isFinite(r)?r:null}function rn(e,r,t){let{min:n}=t??{},o=typeof n=="number"&&Number.isFinite(n)?n:void 0;if(o===void 0)return[{code:"NUMBER_MIN_INVALID_PARAMS",level:"error",params:{min:n}}];let i=en(e);return i===null?[{code:"NUMBER_MIN_NOT_A_NUMBER",level:"error",params:{value:e}}]:i<o?[{code:"NUMBER_MIN",level:"error",params:{value:i,min:o}}]:null}function ue(e){e(Jr,rn,{type:"cell"})}var nn="number:max";function tn(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;let r=Number(e);return Number.isFinite(r)?r:null}function on(e,r,t){let{max:n}=t??{},o=typeof n=="number"&&Number.isFinite(n)?n:void 0;if(o===void 0)return[{code:"NUMBER_MAX_INVALID_PARAMS",level:"error",params:{max:n}}];let i=tn(e);return i===null?[{code:"NUMBER_MAX_NOT_A_NUMBER",level:"error",params:{value:e}}]:i>o?[{code:"NUMBER_MAX",level:"error",params:{value:i,max:o}}]:null}function pe(e){e(nn,on,{type:"cell"})}var an="number:float";function ln(e){if(e==null)return!1;if(typeof e=="number")return Number.isFinite(e);let r=String(e).trim();if(!r)return!1;let t=parseFloat(r);return Number.isFinite(t)}function sn(e,r,t){return e==null||e===""||ln(e)?null:[{code:"NUMBER_FLOAT_INVALID",level:"error",params:{value:e}}]}function fe(e){e(an,sn,{type:"cell"})}var dn="number:integer";function mn(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e)&&Number.isInteger(e))return e;let r=Number(e);return Number.isFinite(r)&&Number.isInteger(r)?r:null}function un(e,r,t){return e==null||e===""?null:mn(e)===null?[{code:"NUMBER_INTEGER_INVALID",level:"error",params:{value:e}}]:null}function ce(e){e(dn,un,{type:"cell"})}var pn="number:nonNegative";function fn(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;let r=Number(e);return Number.isFinite(r)?r:null}function cn(e,r,t){if(e==null||e==="")return null;let n=fn(e);return n===null?[{code:"NUMBER_NON_NEGATIVE_NOT_A_NUMBER",level:"error",params:{value:e}}]:n<0?[{code:"NUMBER_NON_NEGATIVE",level:"error",params:{value:n}}]:null}function ye(e){e(pn,cn,{type:"cell"})}var yn="number:nonPositive";function gn(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;let r=Number(e);return Number.isFinite(r)?r:null}function Rn(e,r,t){if(e==null||e==="")return null;let n=gn(e);return n===null?[{code:"NUMBER_NON_POSITIVE_NOT_A_NUMBER",level:"error",params:{value:e}}]:n>0?[{code:"NUMBER_NON_POSITIVE",level:"error",params:{value:n}}]:null}function ge(e){e(yn,Rn,{type:"cell"})}var wn="number:nonZero";function Sn(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;let r=Number(e);return Number.isFinite(r)?r:null}function Tn(e,r,t){if(e==null||e==="")return null;let n=Sn(e);return n===null?[{code:"NUMBER_NON_ZERO_NOT_A_NUMBER",level:"error",params:{value:e}}]:n===0?[{code:"NUMBER_NON_ZERO",level:"error",params:{value:n}}]:null}function Re(e){e(wn,Tn,{type:"cell"})}var Nn="date:min";function we(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;if(e instanceof Date&&!Number.isNaN(e.getTime()))return e.getTime();let r=Date.parse(String(e).trim());return Number.isNaN(r)?null:r}function Vn(e,r,t){let{min:n}=t??{},o=n!==void 0?we(n):void 0;if(o==null)return[{code:"DATE_MIN_INVALID_PARAMS",level:"error",params:{min:n}}];let i=we(e);return i===null?[{code:"DATE_MIN_NOT_A_DATE",level:"error",params:{value:e}}]:i<o?[{code:"DATE_MIN",level:"error",params:{value:i,min:o}}]:null}function Se(e){e(Nn,Vn,{type:"cell"})}var hn="date:max";function Te(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;if(e instanceof Date&&!Number.isNaN(e.getTime()))return e.getTime();let r=Date.parse(String(e).trim());return Number.isNaN(r)?null:r}function _n(e,r,t){let{max:n}=t??{},o=n!==void 0?Te(n):void 0;if(o==null)return[{code:"DATE_MAX_INVALID_PARAMS",level:"error",params:{max:n}}];let i=Te(e);return i===null?[{code:"DATE_MAX_NOT_A_DATE",level:"error",params:{value:e}}]:i>o?[{code:"DATE_MAX",level:"error",params:{value:i,max:o}}]:null}function Ne(e){e(hn,_n,{type:"cell"})}var bn="date:onlyYear",En=/^(?:19|20)\\d{2}$/;function xn(e,r,t){if(e==null)return null;let n=String(e).trim();if(!n)return null;let o=Number(n),i=En.test(n),a=Number.isInteger(o)&&o>=1900&&o<=2099;return!i&&!a?[{code:"DATE_ONLY_YEAR_INVALID",level:"error",params:{value:n}}]:null}function Ve(e){e(bn,xn,{type:"cell"})}var Cn="date:onlyTime",kn=/^([01]?\\d|2[0-3]):([0-5]\\d)(?::([0-5]\\d))?(?:\\.\\d+)?$/;function Dn(e,r,t){if(e==null)return null;let n=String(e).trim();return n?kn.test(n)?null:[{code:"DATE_ONLY_TIME_INVALID",level:"error",params:{value:n}}]:null}function he(e){e(Cn,Dn,{type:"cell"})}var An="date:datetime";function In(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;if(e instanceof Date&&!Number.isNaN(e.getTime()))return e.getTime();let r=Date.parse(String(e).trim());return Number.isNaN(r)?null:r}function Fn(e,r,t){if(e==null)return null;let n=String(e).trim();return n&&In(e)===null?[{code:"DATE_DATETIME_INVALID",level:"error",params:{value:n}}]:null}function _e(e){e(An,Fn,{type:"cell"})}var Mn="date:timestamp";function Ln(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;if(e instanceof Date&&!Number.isNaN(e.getTime()))return e.getTime();let r=String(e).trim();if(/^\\d+$/.test(r)){let n=Number(r);return Number.isFinite(n)?n:null}let t=Date.parse(r);return Number.isNaN(t)?null:t}function On(e,r,t){if(e==null)return null;let n=String(e).trim();if(!n)return null;let o=Ln(e);return o===null?[{code:"DATE_TIMESTAMP_INVALID",level:"error",params:{value:n}}]:o<-864e10||o>864e10?[{code:"DATE_TIMESTAMP_OUT_OF_RANGE",level:"error",params:{value:o}}]:null}function be(e){e(Mn,On,{type:"cell"})}var zn="date:utc";function Pn(e){if(e==null)return null;if(typeof e=="number"&&Number.isFinite(e))return e;if(e instanceof Date&&!Number.isNaN(e.getTime()))return e.getTime();let r=Date.parse(String(e).trim());return Number.isNaN(r)?null:r}function jn(e,r,t){if(e==null)return null;let n=String(e).trim();return n?Pn(e)===null?[{code:"DATE_UTC_NOT_A_DATE",level:"error",params:{value:n}}]:typeof e=="number"||n.endsWith("Z")||/[+-]00:00$/.test(n)||/^\\d+$/.test(n)?null:[{code:"DATE_UTC_REQUIRED",level:"error",params:{value:n}}]:null}function Ee(e){e(zn,jn,{type:"cell"})}var vn="bool:onlyTrue";function Gn(e){if(e===!0)return!0;if(typeof e=="string"){let r=e.trim().toLowerCase();return r==="true"||r==="1"||r==="yes"}return e===1}function Un(e,r,t){return e==null||e===""||Gn(e)?null:[{code:"BOOL_ONLY_TRUE",level:"error",params:{value:e}}]}function xe(e){e(vn,Un,{type:"cell"})}var Bn="bool:onlyFalse";function Yn(e){if(e===!1)return!0;if(typeof e=="string"){let r=e.trim().toLowerCase();return r==="false"||r==="0"||r==="no"}return e===0}function Xn(e,r,t){return e==null||e===""||Yn(e)?null:[{code:"BOOL_ONLY_FALSE",level:"error",params:{value:e}}]}function Ce(e){e(Bn,Xn,{type:"cell"})}var ke=new R;function $n(e){re(e),ne(e),te(e),oe(e),ie(e),ae(e),le(e),se(e),de(e),me(e),ue(e),pe(e),fe(e),ce(e),ye(e),ge(e),Re(e),Se(e),Ne(e),Ve(e),he(e),_e(e),be(e),Ee(e),xe(e),Ce(e)}$n((e,r,t)=>{ke.register(e,r,t)});function Hn(e){let r=ke.get(e);if(!(!r||r.type!=="cell"))return r.fn}function Zn(e){}function Wn(e){}function De(){return{getCellValidator:Hn,getRowValidator:Zn,getTableValidator:Wn}}var qn="toUpperCase";function Qn(e,r,t,n){return typeof e!="string"?e:e.toUpperCase()}function Ae(e){e(qn,Qn,{type:"cell"})}var Kn="toLowerCase";function Jn(e,r,t,n){return typeof e!="string"?e:e.toLowerCase()}function Ie(e){e(Kn,Jn,{type:"cell"})}var et="slice";function rt(e,r,t,n){if(typeof e!="string")return e;let{start:o,end:i}=n??{},a=Number(o),l=Number(i);return Number.isNaN(a)&&Number.isNaN(l)?e:Number.isNaN(l)?e.slice(Number.isNaN(a)?void 0:a):e.slice(Number.isNaN(a)?void 0:a,l)}function Fe(e){e(et,rt,{type:"cell"})}var nt="replace";function tt(e,r,t,n){if(typeof e!="string")return e;let{search:o="",replacement:i=""}=n??{};return e.split(String(o)).join(String(i))}function Me(e){e(nt,tt,{type:"cell"})}var ot="replaceByRegex";function it(e,r,t,n){if(typeof e!="string")return e;let{pattern:o="",flags:i="g",replacement:a=""}=n??{};if(!o)return e;try{let l=new RegExp(o,i);return e.replace(l,String(a))}catch{return e}}function Le(e){e(ot,it,{type:"cell"})}var at="fillStart";function lt(e,r,t,n){let o=typeof e=="string"?e:e==null?"":String(e),{length:i=0,fill:a=" "}=n??{},l=Math.max(0,Number(i)||0);return l>0?o.padStart(l,String(a)):o}function Oe(e){e(at,lt,{type:"cell"})}var st="fillEnd";function dt(e,r,t,n){let o=typeof e=="string"?e:e==null?"":String(e),{length:i=0,fill:a=" "}=n??{},l=Math.max(0,Number(i)||0);return l>0?o.padEnd(l,String(a)):o}function ze(e){e(st,dt,{type:"cell"})}var mt="extractByRegex";function ut(e,r,t,n){let o=typeof e=="string"?e:e==null?"":String(e),{pattern:i="",flags:a="",group:l=0}=n??{};if(!i)return o;try{let s=new RegExp(i,a),d=o.match(s);if(!d)return"";let m=Math.max(0,Number(l)||0);return d[m]??d[0]??""}catch{return o}}function Pe(e){e(mt,ut,{type:"cell"})}var pt="numberAdd";function ft(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function ct(e,r,t,n){let o=ft(e);if(o===null)return e;let{value:i=0}=n??{},a=Number(i);return Number.isNaN(a)?e:o+a}function je(e){e(pt,ct,{type:"cell"})}var yt="numberMultiply";function gt(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function Rt(e,r,t,n){let o=gt(e);if(o===null)return e;let{value:i=1}=n??{},a=Number(i);return Number.isNaN(a)?e:o*a}function ve(e){e(yt,Rt,{type:"cell"})}var wt="numberDivide";function St(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function Tt(e,r,t,n){let o=St(e);if(o===null)return e;let{value:i=1}=n??{},a=Number(i);return Number.isNaN(a)||a===0?e:o/a}function Ge(e){e(wt,Tt,{type:"cell"})}var Nt="numberSubtract";function Vt(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function ht(e,r,t,n){let o=Vt(e);if(o===null)return e;let{value:i=0}=n??{},a=Number(i);return Number.isNaN(a)?e:o-a}function Ue(e){e(Nt,ht,{type:"cell"})}var _t="numberRound";function bt(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function Et(e,r,t,n){let o=bt(e);if(o===null)return e;let{mode:i="round"}=n??{};return i==="ceil"?Math.ceil(o):i==="floor"?Math.floor(o):Math.round(o)}function Be(e){e(_t,Et,{type:"cell"})}var xt="numberAbs";function Ct(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function kt(e,r,t,n){let o=Ct(e);return o===null?e:Math.abs(o)}function Ye(e){e(xt,kt,{type:"cell"})}var Dt="numberSqrt";function At(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function It(e,r,t,n){let o=At(e);return o===null||o<0?e:Math.sqrt(o)}function Xe(e){e(Dt,It,{type:"cell"})}var Ft="numberLimit";function Mt(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function Lt(e,r,t,n){let o=Mt(e);if(o===null)return e;let{min:i,max:a}=n??{},l=o,s=Number(i);!Number.isNaN(s)&&l<s&&(l=s);let d=Number(a);return!Number.isNaN(d)&&l>d&&(l=d),l}function $e(e){e(Ft,Lt,{type:"cell"})}var Ot="numberPercent";function zt(e){if(typeof e=="number"&&!Number.isNaN(e))return e;let r=Number(e);return Number.isNaN(r)?null:r}function Pt(e,r,t,n){let o=zt(e);if(o===null)return e;let{total:i}=n??{},a=Number(i);return Number.isNaN(a)||a===0?e:o/a*100}function He(e){e(Ot,Pt,{type:"cell"})}var jt="dateToOnlyTime";function vt(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);return Number.isNaN(t)?null:new Date(t)}function Gt(e){let r=String(e.getHours()).padStart(2,"0"),t=String(e.getMinutes()).padStart(2,"0"),n=String(e.getSeconds()).padStart(2,"0");return`${r}:${t}:${n}`}function Ut(e,r,t,n){let o=vt(e);return o?Gt(o):e}function Ze(e){e(jt,Ut,{type:"cell"})}var Bt="dateToOnlyDate";function Yt(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);return Number.isNaN(t)?null:new Date(t)}function Xt(e){let r=e.getFullYear(),t=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${r}-${t}-${n}`}function $t(e,r,t,n){let o=Yt(e);return o?Xt(o):e}function We(e){e(Bt,$t,{type:"cell"})}var Ht="dateToTimeDate";function Zt(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);return Number.isNaN(t)?null:new Date(t)}function Wt(e){let r=e.getFullYear(),t=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${r}-${t}-${n}`}function qt(e){let r=String(e.getHours()).padStart(2,"0"),t=String(e.getMinutes()).padStart(2,"0"),n=String(e.getSeconds()).padStart(2,"0");return`${r}:${t}:${n}`}function Qt(e,r,t,n){let o=Zt(e);return o?`${Wt(o)}T${qt(o)}`:e}function qe(e){e(Ht,Qt,{type:"cell"})}var Kt="dateToUtc";function Jt(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);return Number.isNaN(t)?null:new Date(t)}function eo(e,r,t,n){let o=Jt(e);return o?o.toISOString():e}function Qe(e){e(Kt,eo,{type:"cell"})}var ro="dateLimit";function no(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);if(!Number.isNaN(t))return new Date(t);let n=Number(e);return Number.isFinite(n)?new Date(n):null}function to(e,r,t,n){let o=no(e);if(!o)return e;let{min:i,max:a}=n??{},l=o.getTime();if(i!==void 0){let s=typeof i=="number"?new Date(i):new Date(String(i));!Number.isNaN(s.getTime())&&l<s.getTime()&&(l=s.getTime())}if(a!==void 0){let s=typeof a=="number"?new Date(a):new Date(String(a));!Number.isNaN(s.getTime())&&l>s.getTime()&&(l=s.getTime())}return new Date(l).toISOString()}function Ke(e){e(ro,to,{type:"cell"})}var oo="dateAdd";function io(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);return Number.isNaN(t)?null:new Date(t)}function ao(e,r){let t=new Date(e.getTime()),n=Number(r.ms)||0,o=Number(r.seconds)||0,i=Number(r.minutes)||0,a=Number(r.hours)||0,l=Number(r.days)||0;t.setTime(t.getTime()+n+o*1e3+i*6e4+a*36e5+l*864e5);let s=Number(r.months)||0,d=Number(r.years)||0;return(s||d)&&(t.setFullYear(t.getFullYear()+d),t.setMonth(t.getMonth()+s)),t}function lo(e,r,t,n){let o=io(e);return o?ao(o,n??{}).toISOString():e}function Je(e){e(oo,lo,{type:"cell"})}var so="dateSubtract";function mo(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e;if(e==null)return null;let r=String(e).trim();if(!r)return null;let t=Date.parse(r);return Number.isNaN(t)?null:new Date(t)}function uo(e,r){let t=new Date(e.getTime()),n=Number(r.ms)||0,o=Number(r.seconds)||0,i=Number(r.minutes)||0,a=Number(r.hours)||0,l=Number(r.days)||0;t.setTime(t.getTime()-n-o*1e3-i*6e4-a*36e5-l*864e5);let s=Number(r.months)||0,d=Number(r.years)||0;return(s||d)&&(t.setFullYear(t.getFullYear()-d),t.setMonth(t.getMonth()-s)),t}function po(e,r,t,n){let o=mo(e);return o?uo(o,n??{}).toISOString():e}function er(e){e(so,po,{type:"cell"})}var rr=new R;function u(e,r,t){rr.register(e,r,t)}Ae(u);Ie(u);Fe(u);Me(u);Le(u);Oe(u);ze(u);Pe(u);je(u);ve(u);Ge(u);Ue(u);Be(u);Ye(u);Xe(u);$e(u);He(u);Ze(u);We(u);qe(u);Qe(u);Ke(u);Je(u);er(u);function fo(e){let r=rr.get(e);if(!(!r||r.type!=="cell"))return r.fn}function co(e){}function yo(e){}function nr(){return{getCellTransform:fo,getRowTransform:co,getSheetTransform:yo}}var go={async runEdit(e,r,t,n,o,i){let a=De(),l=nr();return ee(e,r,t,n,o,{validator:a,transform:l},i?.signal)}};C(go);\n/*! Bundled license information:\n\ncomlink/dist/esm/comlink.mjs:\n (**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n *)\n*/\n//# sourceMappingURL=edit.worker.js.map',r=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(r)}function cr(){let[e,r]=$r(null),t=Jr(null);return Kr(()=>{let a=new Worker(or());t.current=a;let n=U(a);return queueMicrotask(()=>r(n)),()=>{a.terminate(),t.current=null}},[]),{runEdit:Yr(async(a,n,o,s,c,f)=>{if(!e)throw new Error("Edit worker not ready");return e.runEdit(a,n,o,s,c,f??{})},[e]),isReady:!!e}}function lr(e,r,t){return Ee(e.rows,r,t)}function Ee(e,r,t){let i=e.length,a=t<=0?0:Math.max(1,Math.ceil(i/t)),n=Math.max(1,Math.min(r,a)),o=(n-1)*t,s=Math.min(o+t,i),c=e.slice(o,s);return{page:n,pageSize:t,totalCount:i,totalPages:a,rows:c}}function ie(e={}){let{result:r,setResult:t,layout:i,changeLog:a,addChangeLogEntry:n,submitDone:o}=w(),{runEdit:s,isReady:c}=cr(),f=!o,{page:u=1,pageSize:d=25,debounceMs:l}=e,h=qr(null),v=we(()=>r?lr(r,u,d):{page:1,pageSize:d,totalCount:0,totalPages:0,rows:[]},[r,u,d]),k=v.totalPages,T=Te(b=>{if(!r||!i||o)return Promise.resolve();let g=j(r,b.rowIndex)&&sr(j(r,b.rowIndex),b.cellKey)?.value;return s(r,i,b.rowIndex,b.cellKey,b.value).then(E=>{t(E),queueMicrotask(()=>{let y={type:"cell_edit",rowIndex:b.rowIndex,cellKey:b.cellKey,value:b.value,previousValue:g,timestamp:Date.now()};n(y)})})},[r,i,o,s,t,n]),p=Te(b=>{if(l!=null&&l>0){h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{h.current=null,T(b)},l);return}return T(b)},[l,T]),m=Te(b=>{if(!r||o)return;let g=ir(r,b);t(g),queueMicrotask(()=>{let E={type:"row_remove",rowIndex:b,timestamp:Date.now()};n(E)})},[r,o,t,n]),A=we(()=>Y(a),[a]);return we(()=>({sheet:r,editCell:p,removeRow:m,pageData:v,totalPages:k,isReady:c,canEdit:f,changeLog:a,changeLogAsText:A}),[r,p,m,v,k,c,f,a,A])}import{useCallback as M,useMemo as G,useState as et}from"react";function fr(e,r){return e.includes(r)||e.includes('"')||e.includes(`
|
|
83
83
|
`)||e.includes("\r")?'"'+e.replace(/"/g,'""')+'"':e}function Zr(e,r){return e==null?"":e instanceof Date?r?e.toLocaleString():e.toISOString():String(e)}function ke(e,r,t={}){let{includeHeaders:i=!0,csvSeparator:a=",",formatDatesForExport:n=!1}=t,o=r!=null?Object.keys(r.fields):[],s=o.length>0?o:e.rows[0]?.cells.map(u=>u.key)??e.headers.slice(),c=[];i&&s.length>0&&c.push(s.map(u=>fr(u,a)).join(a));for(let u of e.rows){let d=s.map(l=>{let v=u.cells.find(k=>k.key===l)?.value??"";return fr(Zr(v,n),a)});c.push(d.join(a))}return"\uFEFF"+c.join(`\r
|
|
84
84
|
`)}function Qr(e,r){return e==null?null:e instanceof Date?r?e.toLocaleString():e.toISOString():e}function ye(e,r,t={}){let{formatDatesForExport:i=!1}=t,a=e.rows.map(n=>{let o={};for(let s of n.cells)o[s.key]=Qr(s.value,i);return o});return JSON.stringify(a,null,0)}function Se(e={}){let{page:r=1,defaultPageSize:t=25,filterMode:i="all"}=e,[a,n]=et(r),o=t,{sheet:s,editCell:c,removeRow:f,changeLog:u,changeLogAsText:d}=ie({}),l=w(),h=G(()=>s?H(s):[],[s]),v=G(()=>i==="errors-only"?h:s?.rows??[],[i,h,s]),k=v.length,T=M((S,R)=>Ee(v,S??a,R??o),[a,o,v]),p=G(()=>T(a,o).rows,[T,a,o]),m=M((S,R)=>{let N=(S-1)*R;return v.slice(N,N+R)},[v]),A=G(()=>s?te(s):{totalRows:0,rowsWithErrors:0,totalErrors:0},[s]),b=M(S=>!s||!l.layout?"":ke(s,l.layout,S??{}),[s,l.layout]),g=M(S=>s?ye(s,l.layout??null,S??{}):"[]",[s,l.layout]),E=M(async S=>{let R=b(S);if(!R)return;let N=new Blob([R],{type:"text/csv;charset=utf-8"}),F=URL.createObjectURL(N),I=document.createElement("a");I.href=F,I.download=(S?.filename??"export")+".csv",I.click(),URL.revokeObjectURL(F)},[b]),y=M(async S=>{let R=g(S),N=new Blob([R],{type:"application/json"}),F=URL.createObjectURL(N),I=document.createElement("a");I.href=F,I.download=(S?.filename??"export")+".json",I.click(),URL.revokeObjectURL(F)},[g]);return G(()=>({sheet:s,getPaginatedResult:T,paginatedRows:p,page:a,setPage:n,pageSize:o,totalRows:k,getRows:m,rowsWithErrors:h,counts:A,editCell:c,removeRow:f,changeLog:u,changeLogAsText:d,exportToCSV:b,exportToJSON:g,downloadCSV:E,downloadJSON:y,hasRecoverableSession:l.hasRecoverableSession,recoverSession:l.recoverSession,clearPersistedState:l.clearPersistedState}),[s,T,p,a,o,k,m,h,A,c,f,u,d,b,g,E,y,l.hasRecoverableSession,l.recoverSession,l.clearPersistedState])}import{useCallback as rt,useEffect as tt}from"react";function xe(){let r=w().progressEventTarget,t=rt(i=>{let a=n=>{i(n.detail)};return r.addEventListener(D,a),()=>{r.removeEventListener(D,a)}},[r]);return{progressEventTarget:r,subscribeToProgress:t}}function ur(e){let{subscribeToProgress:r}=xe();tt(()=>r(e),[r,e])}export{K as IMPORTER_ABORTED_EVENT,D as IMPORTER_PROGRESS_EVENT,pe as ImportProvider,pe as ImporterProvider,O as Registry,Y as formatChangeLogAsText,me as getCellValue,z as hasValidationErrors,se as useConvert,re as useImportSheet,qe as useImporter,xe as useImporterEventTarget,ur as useImporterProgressSubscription,rr as useImporterStatus,nr as useSheetData,ie as useSheetEditor,Se as useSheetView};
|
|
85
85
|
/*! Bundled license information:
|