@cristianmpx/react-import-sheet-headless 1.0.6 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @cristianmpx/react-import-sheet-headless
2
2
 
3
- Headless **React** library for **importing** and validating **Excel**/CSV sheet data. No built-in table UI—you bring your own components; the library provides the logic, **Web Worker** speed, and bulk validation.
3
+ Headless **React** library for **importing** and validating **Excel**/CSV sheet data. No built-in table UI—you bring your own components; the library provides the logic and bulk validation.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/@cristianm/react-import-sheet-headless.svg)](https://www.npmjs.com/package/@cristianm/react-import-sheet-headless) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
 
@@ -14,36 +14,28 @@ npm install @cristianmpx/react-import-sheet-headless
14
14
 
15
15
  ### ⚙️ Framework Setup
16
16
 
17
- **Good news:** As of version 1.0.5, **no special configuration is required!** Workers are now inlined as Blob URLs, so the library works out-of-the-box with all bundlers (Vite, Webpack, Rollup, etc.).
18
-
19
- **For Next.js:** Use `dynamic` import with `ssr: false` to avoid server-side rendering issues:
20
-
21
- ```typescript
22
- const Importer = dynamic(() => import('./Importer'), { ssr: false });
23
- ```
24
-
25
- **Previous versions (1.0.4 and earlier):** If you're using an older version, you may need bundler-specific configuration. See [FRAMEWORK-SETUP.md](./FRAMEWORK-SETUP.md) for details, or upgrade to 1.0.5+ for automatic compatibility.
17
+ **Good news:** As of version 2.0.0, **no special configuration is required!** The library runs entirely on the main thread, so it works out-of-the-box with all bundlers (Vite, Webpack, Rollup, etc.) and frameworks (Next.js, Remix, etc.).
26
18
 
27
19
  ## Why Headless
28
20
 
29
- Bring your own components; we provide the logic, Web Worker performance, and bulk validation. No prebuilt `<Table />`—you own the UI and the UX.
21
+ Bring your own components; we provide the logic and bulk validation. No prebuilt `<Table />`—you own the UI and the UX.
30
22
 
31
23
  ## Pipeline
32
24
 
33
- Data flows through a single pipeline. Heavy steps run in Web Workers so the main thread stays responsive.
25
+ Data flows through a single pipeline on the main thread.
34
26
 
35
27
  ```mermaid
36
28
  flowchart LR
37
- A[Input File] --> B[Parser Worker]
29
+ A[Input File] --> B[Parser]
38
30
  B --> C[Convert]
39
- C --> D[Sanitizer Worker]
40
- D --> E[Validator Worker]
41
- E --> F[Transform Worker]
31
+ C --> D[Sanitizer]
32
+ D --> E[Validator]
33
+ E --> F[Transform]
42
34
  F --> G[Sheet + Errors]
43
35
  G -.-> H[Edit optional]
44
36
  ```
45
37
 
46
- **Order:** Input File → Parser (Worker) → Convert (main thread) → Sanitizer (Worker) → Validator (Worker) → Transform (Worker) → Result (sheet) + Errors. Optional: cell-level edit on the result.
38
+ **Order:** Input File → Parser → Convert → Sanitizer → Validator → Transform → Result (sheet) + Errors. Optional: cell-level edit on the result.
47
39
 
48
40
  ## Quick Start
49
41
 
@@ -126,7 +118,7 @@ function VirtualizedTable() {
126
118
 
127
119
  ## Error Handling
128
120
 
129
- The library exposes errors through `useSheetData().errors`. Errors include both **global errors** (parser failures, worker crashes) and **validation errors** (cell/row/sheet level).
121
+ The library exposes errors through `useSheetData().errors`. Errors include both **global errors** (parser failures) and **validation errors** (cell/row/sheet level).
130
122
 
131
123
  ```typescript
132
124
  const { errors, sheet } = useSheetData();
@@ -1,4 +1,4 @@
1
- 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);
1
+ 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,self);
2
2
  /*! Bundled license information:
3
3
 
4
4
  comlink/dist/esm/comlink.mjs: