@gridsheet/react-dev 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.js","../../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/utc.js","../../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/timezone.js","../../engine/dist/index.js","../src/Debugger.tsx"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","import H from \"dayjs\";\nimport ds from \"dayjs/plugin/utc.js\";\nimport fs from \"dayjs/plugin/timezone.js\";\nconst ps = 20, J = 24, jt = 90, Dr = 500, vr = 1e3, Re = 24, _e = 50, kr = 5, Pr = 5, $r = 5, Lr = 10, $e = 1e3, Zt = 86400, ms = \"YYYY-MM-DDTHH:mm:ss.SSSZ\", gs = {\n startY: -1,\n startX: -1,\n endY: -1,\n endX: -1\n}, ys = new Date(1900, 0, 1), Ft = \"default\", Dt = \"defaultCol\", vt = \"defaultRow\", qt = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\", gt = /* @__PURE__ */ new Map(), yt = /* @__PURE__ */ new Map(), ws = (r, t = $e) => {\n const e = gt.get(--r);\n if (e != null)\n return e;\n if (r === 0)\n return \"\";\n let s = r, i = \"\";\n do\n i = qt[--s % 26] + i, s = Math.floor(s / 26);\n while (s > 0);\n gt.set(r, i);\n const n = gt.keys();\n for (let o = n.next(); gt.size > t; o = n.next())\n gt.delete(o.value);\n return i;\n}, xs = (r, t = $e) => {\n const e = yt.get(r);\n if (e != null)\n return e;\n if (r === \"\")\n return 0;\n const s = r;\n let i = 0;\n for (let o = 0; o < s.length; o++) {\n const a = s[s.length - o - 1], l = qt.indexOf(a) + 1;\n i += qt.length ** o * l;\n }\n yt.set(r, i);\n const n = yt.keys();\n for (let o = n.next(); yt.size > t; o = n.next())\n yt.delete(o.value);\n return i;\n}, W = (r) => {\n if (r === 0)\n return \"\";\n const t = ws(r + 1);\n return r < 0 ? `$${t}` : t;\n}, _t = (r, t = !1) => {\n const e = xs(r.toUpperCase());\n return t ? -e : e;\n}, Et = (r) => r === 0 ? \"\" : r < 0 ? `$${r}` : String(r), bs = (r, t = !1) => (typeof r == \"string\" && (r = parseInt(r, 10)), t ? -r : r), D = ({ y: r, x: t, absX: e, absY: s }) => {\n if (t === -1 && r === -1)\n return \"?\";\n const i = t === void 0 ? \"\" : t === 0 ? \"0\" : `${e ? \"$\" : \"\"}${W(t)}`, n = r === void 0 ? \"\" : r === 0 ? \"0\" : `${s ? \"$\" : \"\"}${Et(r)}`;\n return `${i}${n}`;\n}, N = (r) => {\n const t = r.match(/(\\$)?([a-zA-Z]*)(\\$)?([0-9]*)/);\n if (t == null)\n return { y: -1, x: -1 };\n const [, e, s, i, n] = t.slice(), [o, a] = [e != null, i != null];\n return s === \"\" && n === \"\" ? { y: -1, x: -1, absX: !1, absY: !1 } : { y: bs(n) || 0, x: _t(s) || 0, absX: o, absY: a };\n}, Le = (r, t, e) => {\n const s = r.match(/([A-Z]*)([0-9]*)/);\n if (s == null)\n return r;\n const [, i, n] = s.slice();\n return `${t ? \"$\" : \"\"}${i.toUpperCase()}${e ? \"$\" : \"\"}${n}`;\n}, Hr = (r) => `0${r}`, Yr = (r) => typeof r == \"number\" ? `${W(r)}0` : `${r.toUpperCase()}0`, Br = (r) => r.replace(/\\$/g, \"\"), He = (r, t = !1, e = !1) => `${t ? \"$\" : \"\"}#${r}${e ? \"$\" : \"\"}`, Ur = (r, t) => {\n const { rows: e, cols: s } = Ae(r), { rows: i, cols: n } = Ae(t);\n return {\n rows: e > i ? e : i,\n cols: s > n ? s : n\n };\n}, Ss = (r, t) => {\n const e = { ...r };\n return t.left < r.left && (e.left = t.left), t.right > r.right && (e.right = t.right), t.top < r.top && (e.top = t.top), t.bottom > r.bottom && (e.bottom = t.bottom), e;\n}, Rs = (r) => {\n if (r.endY === -1 || r.endX === -1)\n return { top: -1, left: -1, bottom: -1, right: -1 };\n const [t, e] = r.startY < r.endY ? [r.startY, r.endY] : [r.endY, r.startY], [s, i] = r.startX < r.endX ? [r.startX, r.endX] : [r.endX, r.startX];\n return { top: t, left: s, bottom: e, right: i };\n}, Ee = (r) => ({\n startY: r.top,\n startX: r.left,\n endY: r.bottom,\n endX: r.right\n}), zr = (r) => {\n const { top: t, left: e, bottom: s, right: i } = r;\n if (t === s && e === i)\n return D({ y: t, x: e });\n const n = D({ y: t, x: e }), o = D({ y: s, x: i });\n return `${n}:${o}`;\n}, Vr = (r, t) => r.start === -1 || r.end === -1 ? !1 : r.start <= t && t <= r.end || r.end <= t && t <= r.start, Wr = (r, t) => {\n if (r.top === -1 || r.left === -1 || r.bottom === -1 || r.right === -1)\n return !1;\n const { y: e, x: s } = t, { top: i, left: n, bottom: o, right: a } = r;\n return i <= e && e <= o && n <= s && s <= a;\n}, _s = (r) => r.endY === -1 || r.endX === -1 ? { rows: 0, cols: 0 } : {\n rows: Math.abs(r.startY - r.endY),\n cols: Math.abs(r.startX - r.endX)\n}, Xr = (r) => r.endY === -1 || r.endX === -1 ? { rows: 1, cols: 1 } : {\n rows: 1 + Math.abs(r.startY - r.endY),\n cols: 1 + Math.abs(r.startX - r.endX)\n}, Ae = (r) => ({\n rows: Math.abs(r.top - r.bottom),\n cols: Math.abs(r.left - r.right)\n}), Kt = (r) => ({\n rows: 1 + Math.abs(r.top - r.bottom),\n cols: 1 + Math.abs(r.left - r.right)\n}), Nt = ({ base: r = 0, matrix: t }) => {\n const e = t.length;\n return e === 0 ? { rows: 0, cols: 0 } : { rows: r + e, cols: r + t[0].length };\n}, jr = (r, t, e = 1) => Array.from({ length: (t - r - 1) / e + 1 }, (s, i) => r + i * e), Gr = (r, t) => {\n const e = [];\n return r.forEach((s) => {\n const i = [];\n t.forEach((n) => {\n i.push(s[n]);\n }), e.push(i);\n }), e;\n}, Zr = (r, t) => {\n const e = [];\n return r.forEach((s) => {\n const i = {};\n s.forEach((n, o) => {\n if (o >= t.length)\n return;\n const a = t[o];\n i[a] = n;\n }), e.push(i);\n }), e;\n}, se = (r, t, e) => [...Array(r)].map(() => Array(t).fill(e)), qr = ({\n cells: r = {},\n ensured: t = {},\n matrix: e = [],\n flattenAs: s = \"value\",\n origin: i = \"A1\"\n}) => Es({\n cells: r,\n ensured: t,\n matrices: { [i]: e },\n flattenAs: s\n}), Es = ({\n cells: r = {},\n ensured: t = {},\n matrices: e = {},\n flattenAs: s = \"value\"\n} = {}) => {\n const i = Object.keys(r), a = Object.values(e).reduce((c, f) => {\n var d;\n return c + f.length * (((d = f[0]) == null ? void 0 : d.length) ?? 0);\n }, 0) > 1e5;\n a ? (Object.defineProperty(r, \"__matrices\", { value: e, configurable: !0 }), Object.defineProperty(r, \"__flattenAs\", { value: s, configurable: !0 })) : As({ cells: r, flattenAs: s, matrices: e });\n const { numRows: l, numCols: u } = Object.assign({ numRows: 1, numCols: 1 }, t), h = D({ y: l, x: u });\n return r[h] == null && (r[h] = {}), a && (i.push(h), Object.defineProperty(r, \"__userKeys\", { value: i, configurable: !0 })), r;\n}, As = ({\n cells: r = {},\n matrices: t = {},\n flattenAs: e\n}) => (Object.keys(t).forEach((s) => {\n const i = t[s], { y: n, x: o } = N(s), a = [];\n for (let l = 0; l < i.length; l++) {\n const u = i[l], h = String(n + l);\n for (let c = 0; c < u.length; c++) {\n a[c] == null && (a[c] = W(o + c));\n const f = a[c] + h;\n if (e) {\n const d = r[f];\n d ? e in d || (d[e] = u[c]) : r[f] = { [e]: u[c] };\n } else\n r[f] = u[c];\n }\n }\n}), r), Cs = (r = {}, t) => {\n let [e, s] = [0, 0];\n return (t ?? Object.keys(r)).forEach((i) => {\n if (i === Ft || i === Dt || i === vt)\n return;\n const { y: n, x: o } = N(i);\n e < n && (e = n), s < o && (s = o);\n }), { numRows: e, numCols: s };\n}, Kr = (r, t) => {\n const e = [];\n for (let s = r; s <= t; s++)\n e.push(s);\n return e;\n}, Is = (r, t) => (r.left === -1 && (r = {\n left: t.x,\n top: t.y,\n right: t.x,\n bottom: t.y\n}), r), Ts = (r) => {\n if (r.indexOf(\":\") === -1)\n return [r];\n const t = [];\n if (/^\\d+\\:\\d+$/.test(r)) {\n const [h, c] = r.split(\":\").map(Number);\n for (let f = h; f <= c; f++)\n t.push(`${f}`);\n return t;\n }\n const s = r.match(/^([A-Z]*)(\\d+)?\\:([A-Z]*)(\\d+)?$/);\n if (!s)\n return console.error(\"Invalid range format\", r), [r];\n const [, i, n, o, a] = s, l = i ? _t(i) : 1, u = o ? _t(o) : 1;\n for (let h = l; h <= u; h++) {\n const c = i || o ? W(h) : \"\";\n if (n && a)\n for (let f = Number(n); f <= Number(a); f++)\n t.push(`${c}${f}`);\n else !n && !a && t.push(c);\n }\n return t;\n}, Jr = (r) => {\n const t = _s(r);\n return t.rows + t.cols === 0 ? { startY: -1, startX: -1, endY: -1, endX: -1 } : { ...r };\n}, Qr = (r, t, e, s) => {\n for (; r <= t; ) {\n const i = Math.floor((r + t) / 2);\n e(i) ? s ? t = i - 1 : r = i + 1 : s ? r = i + 1 : t = i - 1;\n }\n return s ? r : t;\n}, tn = (r) => {\n if (r.length === 0)\n return [];\n const t = r.map((o) => {\n const { y: a, x: l } = N(o);\n return { y: a, x: l };\n }), e = (o, a) => `${o},${a}`, s = new Set(t.map((o) => e(o.y, o.x))), i = /* @__PURE__ */ new Set(), n = [];\n for (const o of t) {\n const a = e(o.y, o.x);\n if (i.has(a))\n continue;\n let l = o.y, u = o.x, h = o.y, c = o.x;\n const f = [o];\n for (i.add(a); f.length > 0; ) {\n const { y: d, x: p } = f.shift();\n d < l && (l = d), d > h && (h = d), p < u && (u = p), p > c && (c = p);\n for (const [m, g] of [\n [0, 1],\n [0, -1],\n [1, 0],\n [-1, 0]\n ]) {\n const y = e(d + m, p + g);\n s.has(y) && !i.has(y) && (i.add(y), f.push({ y: d + m, x: p + g }));\n }\n }\n n.push({ top: l, left: u, bottom: h, right: c });\n }\n return n;\n}, en = (r, t = !0) => {\n const e = /* @__PURE__ */ new Set(), s = [];\n for (const i of r) {\n const { x: n } = N(i);\n e.has(n) || (e.add(n), s.push(n));\n }\n return t === !0 ? s.sort((i, n) => i - n) : t === !1 && s.sort((i, n) => n - i), s;\n}, sn = (r, t = !0) => {\n const e = /* @__PURE__ */ new Set(), s = [];\n for (const i of r) {\n const { y: n } = N(i);\n e.has(n) || (e.add(n), s.push(n));\n }\n return t === !0 ? s.sort((i, n) => i - n) : t === !1 && s.sort((i, n) => n - i), s;\n}, rn = (r) => r.startY === -1 || r.startX === -1 || r.endY === -1 || r.endX === -1, et = 864e5;\nclass b {\n constructor(t, e = \"HH:mm:ss\") {\n this.__gsType = \"Time\", this.days = t, this.format = e;\n }\n add(t) {\n return new Date(t.getTime() + this.days * et);\n }\n sub(t) {\n return new Date(t.getTime() - this.days * et);\n }\n stringify(t) {\n const e = this.toMilliseconds(), s = Math.abs(e), i = e < 0 ? \"-\" : \"\", n = s % 1e3;\n let o = Math.floor(s / 1e3);\n const a = o % 60;\n o = Math.floor(o / 60);\n const l = o % 60, u = Math.floor(o / 60);\n let c = t ?? (n === 0 ? \"HH:mm:ss\" : \"HH:mm:ss.SSS\");\n return c = c.replace(\"HH\", i + String(u).padStart(2, \"0\")), c = c.replace(\"H\", i + String(u)), c = c.replace(\"mm\", String(l).padStart(2, \"0\")), c = c.replace(\"ss\", String(a).padStart(2, \"0\")), c = c.replace(\"SSS\", String(n).padStart(3, \"0\")), c = c.replace(\"SS\", String(n).padStart(3, \"0\").substring(0, 2)), c = c.replace(\"S\", String(n).padStart(3, \"0\").substring(0, 1)), c;\n }\n toMilliseconds() {\n return this.days * et;\n }\n toDate() {\n return new Date(ys.getTime() + this.days * et);\n }\n toJSON() {\n return { __gsType: \"Time\", days: this.days, format: this.format };\n }\n toString() {\n return this.stringify();\n }\n static create(t = 0, e = 0, s = 0, i = 0) {\n const n = t * 36e5 + e * 6e4 + s * 1e3 + i;\n return new b(n / et);\n }\n static fromDate(t) {\n const e = t.getHours() * 36e5 + t.getMinutes() * 6e4 + t.getSeconds() * 1e3 + t.getMilliseconds();\n return new b(e / et);\n }\n static fromDates(t, e) {\n return new b((t.getTime() - e.getTime()) / et);\n }\n static fromObject(t) {\n return new b(t.days, t.format);\n }\n static is(t) {\n return t instanceof b || (t == null ? void 0 : t.__gsType) === \"Time\";\n }\n static ensure(t) {\n return t instanceof b ? t : (t == null ? void 0 : t.__gsType) === \"Time\" ? b.fromObject(t) : b.create();\n }\n static parse(t, e, s = !1) {\n if (e != null) {\n const i = Ms(e), n = t.match(i);\n if (n != null && n.groups)\n return b.create(\n Number(n.groups.HH || n.groups.H || 0),\n Number(n.groups.mm || n.groups.m || 0),\n Number(n.groups.ss || n.groups.s || 0),\n Number(n.groups.SSS || n.groups.SS || n.groups.S || 0)\n );\n }\n if (!s) {\n {\n const i = t.match(/^([+-]?)(\\d+):(\\d{2})$/);\n if (i) {\n const [, n, o, a] = i, l = n === \"-\" ? -1 : 1;\n return b.create(l * Number(o), l * Number(a));\n }\n }\n {\n const i = t.match(/^([+-]?)(\\d+):(\\d{2}):(\\d{2})$/);\n if (i) {\n const [, n, o, a, l] = i, u = n === \"-\" ? -1 : 1;\n return b.create(u * Number(o), u * Number(a), u * Number(l));\n }\n }\n {\n const i = t.match(/^([+-]?)(\\d+):(\\d{2}):(\\d{2})\\.(\\d+)$/);\n if (i) {\n const [, n, o, a, l, u] = i, h = n === \"-\" ? -1 : 1;\n return b.create(h * Number(o), h * Number(a), h * Number(l), h * Number(u));\n }\n }\n }\n }\n}\nconst Ce = {\n HH: { group: \"HH\", pattern: \"(?<HH>\\\\d+)\" },\n H: { group: \"H\", pattern: \"(?<HH>\\\\d+)\" },\n mm: { group: \"mm\", pattern: \"(?<mm>[0-5]\\\\d)\" },\n m: { group: \"m\", pattern: \"(?<m>\\\\d|[1-5]\\\\d)\" },\n ss: { group: \"ss\", pattern: \"(?<ss>[0-5]\\\\d)\" },\n s: { group: \"s\", pattern: \"(?<s>\\\\d|[1-5]\\\\d)\" },\n SSS: { group: \"SSS\", pattern: \"(?<SSS>\\\\d{3})\" },\n SS: { group: \"SS\", pattern: \"(?<SS>\\\\d{2})\" },\n S: { group: \"S\", pattern: \"(?<S>\\\\d)\" }\n};\nfunction Ms(r) {\n const t = Object.keys(Ce).sort((n, o) => o.length - n.length), e = new RegExp(t.join(\"|\"), \"g\"), i = r.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\").replace(e, (n) => {\n var o;\n return ((o = Ce[n]) == null ? void 0 : o.pattern) ?? n;\n });\n return new RegExp(`^${i}$`);\n}\nclass x {\n constructor(t, e, s) {\n this.__gsType = \"FormulaError\", this.code = t, this.message = e, this.error = s;\n }\n static is(t) {\n return t instanceof x || (t == null ? void 0 : t.__gsType) === \"FormulaError\";\n }\n toString() {\n return this.code;\n }\n}\nclass ut {\n constructor(t) {\n this.code = t, this.__gsType = \"Sentinel\";\n }\n is(t) {\n return ut.is(t, this.code);\n }\n static is(t, e) {\n return t instanceof ut || (t == null ? void 0 : t.__gsType) === \"Sentinel\" ? e == null || t.code === e : !1;\n }\n}\nconst At = new ut(\"solving\"), wt = new ut(\"none\");\nclass k {\n constructor(t) {\n this.__gsType = \"Pending\", this.promise = t, this.timestamp = Date.now();\n }\n static is(t) {\n return t instanceof k || (t == null ? void 0 : t.__gsType) === \"Pending\";\n }\n toString() {\n return `<Pending #${this.timestamp}>`;\n }\n}\nclass B {\n constructor(t) {\n this.__gsType = \"Spilling\", this.matrix = this.ensure2D(t);\n }\n ensure2D(t) {\n return t.length === 0 ? [] : Array.isArray(t[0]) ? t : [t];\n }\n static is(t) {\n return t instanceof B || (t == null ? void 0 : t.__gsType) === \"Spilling\";\n }\n}\nconst Pt = (r, t = !0) => {\n let e = r;\n return t && e.startsWith(\"$\") && (e = e.slice(1)), t && e.endsWith(\"$\") && (e = e.slice(0, -1)), e.replace(\"#\", \"\");\n};\nclass rt {\n constructor(t) {\n this.ids = [], this.value = t;\n }\n}\nclass ie extends rt {\n evaluate() {\n return this.value;\n }\n}\nclass Os extends rt {\n evaluate() {\n throw new x(\"#REF!\", \"Reference does not exist.\");\n }\n}\nclass Ns extends rt {\n evaluate() {\n throw new x(\"#NAME?\", `Invalid ref: ${this.value}`);\n }\n}\nclass Ye extends rt {\n constructor(t) {\n super(t);\n }\n stringify() {\n return this.value.toUpperCase();\n }\n evaluate({ sheet: t }) {\n const e = dt(this.value, { sheet: t, dependency: \"\" });\n if (e.sheet == null)\n throw new x(\"#REF!\", `Unknown sheet: ${e.sheetName}`);\n if (e.addresses.length === 0)\n throw new x(\"#REF!\", `Invalid address: ${this.value}`);\n const { y: s, x: i } = N(e.addresses[0]);\n return e.sheet.trim({ top: s, left: i, bottom: s, right: i });\n }\n identify(t) {\n const { slideY: e = 0, slideX: s = 0 } = t, i = dt(this.value, t);\n if (i.sheet == null)\n return this.value;\n const n = i.addresses[0], { y: o, x: a, absX: l, absY: u } = N(n), h = {\n y: o + e,\n x: a + s,\n absX: l,\n absY: u\n }, c = i.sheet.getId(h);\n return c == null ? this.value : (this.ids = [c], `#${i.sheet.id}!${He(c, l, u)}`);\n }\n}\nclass Be extends rt {\n stringify() {\n return this.value.toUpperCase();\n }\n evaluate({ sheet: t }) {\n const e = dt(this.value, { sheet: t, dependency: \"\" });\n if (e.sheet == null)\n throw new x(\"#REF!\", `Unknown sheet: ${e.sheetName}`);\n if (e.addresses.length === 0)\n throw new x(\"#REF!\", `Invalid address: ${this.value}`);\n const s = e.sheet.rangeToArea(e.addresses.join(\":\"));\n return e.sheet.trim(s);\n }\n identify(t) {\n const { slideY: e = 0, slideX: s = 0 } = t, i = dt(this.value, t);\n if (i.sheet == null)\n return this.value;\n const n = [];\n for (let o = 0; o < i.addresses.length; o++) {\n const a = i.addresses[o], { y: l, x: u, absX: h, absY: c } = N(a), f = {\n y: l + e,\n x: u + s,\n absX: h,\n absY: c\n }, d = i.sheet.getId(f);\n if (d == null)\n return this.value;\n this.ids.push(d), n.push(He(d, h, c));\n }\n return `#${i.sheet.id}!${n.join(\":\")}`;\n }\n}\nclass Jt extends rt {\n parse(t) {\n if (this.value.indexOf(\"!\") !== -1) {\n const [e, s] = this.value.split(\"!\"), i = Number(e.slice(1));\n return { sheet: t.getSheetBySheetId(i), id: Pt(s, !1) };\n }\n return { sheet: t, id: Pt(this.value, !1) };\n }\n evaluate({ sheet: t }) {\n const e = this.parse(t);\n if (e.id === \"?\")\n throw new x(\"#REF!\", \"Reference does not exist\");\n const { y: s, x: i } = e.sheet.getPointById(e.id), [n, o] = [Math.abs(s), Math.abs(i)];\n return e.sheet.trim({\n top: n,\n left: o,\n bottom: n,\n right: o\n });\n }\n display({ sheet: t, slideY: e = 0, slideX: s = 0 }) {\n const i = this.parse(t), n = i.sheet.getAddressById(i.id, e, s);\n return n ? i.sheet.id === t.id ? n : `${i.sheet.sheetPrefix()}${n}` : \"#REF!\";\n }\n identify(t) {\n const { sheet: e, slideY: s = 0, slideX: i = 0 } = t, n = this.display({ sheet: e, slideY: s, slideX: i });\n if (n == null || n.length < 2)\n return \"#?\";\n const { formula: o, ids: a } = dt(n, t);\n return this.ids = a, o || \"#?\";\n }\n}\nclass Qt extends rt {\n parse(t) {\n const e = this.value;\n if (e.indexOf(\"!\") !== -1) {\n const [s, i] = e.split(\"!\"), n = Number(s.slice(1));\n return { sheet: t.getSheetBySheetId(n), ids: i.split(\":\") };\n }\n return { sheet: t, ids: e.split(\":\") };\n }\n evaluate({ sheet: t }) {\n const e = this.parse(t), s = e.ids.map((c) => Pt(c)), i = [];\n for (let c = 0; c < s.length; c++) {\n const f = s[c];\n if (f === \"?\")\n throw new x(\"#REF!\", \"Reference does not exist\");\n const d = e.sheet.getPointById(f);\n i.push(d);\n }\n const [n, o] = i, [a, l, u, h] = [n.y, n.x, o.y || e.sheet.numRows, o.x || e.sheet.numCols];\n return e.sheet.trim({ top: a, left: l, bottom: u, right: h });\n }\n display({ sheet: t, slideY: e = 0, slideX: s = 0 }) {\n const i = this.parse(t), n = i.ids.map((o) => Pt(o, !1)).map((o) => i.sheet.getAddressById(o, e, s) || \"#REF!\").join(\":\");\n return i.sheet.id === t.id ? n : `${i.sheet.sheetPrefix()}${n}`;\n }\n identify(t) {\n const { sheet: e, slideY: s = 0, slideX: i = 0 } = t, n = this.display({ sheet: e, slideY: s, slideX: i }), { formula: o, ids: a } = dt(n, t);\n return this.ids = a, o ?? \"\";\n }\n}\nclass kt {\n constructor(t, e = 0, s = [], i) {\n this.name = t, this.precedence = e, this.args = s, this.at = i;\n }\n evaluate({ sheet: t }) {\n const e = this.name.toLowerCase(), s = t.getFunctionByName(e);\n if (s == null)\n throw new x(\"#NAME?\", `Unknown function: ${e}`);\n return new s({ args: this.args, sheet: t, at: this.at }).call();\n }\n}\nconst Fs = new ie(0), Ds = {\n \"+\": \"add\",\n \"-\": \"minus\",\n \"/\": \"divide\",\n \"*\": \"multiply\",\n \"^\": \"power\",\n \"&\": \"concat\",\n \"=\": \"eq\",\n \"<>\": \"ne\",\n \">\": \"gt\",\n \">=\": \"gte\",\n \"<\": \"lt\",\n \"<=\": \"lte\"\n}, vs = {\n \"-\": \"uminus\"\n}, Ue = /* @__PURE__ */ new Set([\" \", `\n`, \"\\r\", \"\t\", \"\\f\"]), ks = /* @__PURE__ */ new Set([...Ue, \"+\", \"-\", \"/\", \"*\", \"^\", \"&\", \"=\", \"<\", \">\", \")\", \",\", \"%\"]);\nclass I {\n constructor(t, e, s = 0, i, n = !0) {\n this.type = t, this.entity = e, this.precedence = s, this.at = i, this.closed = n;\n }\n length() {\n return this.type === \"VALUE\" && typeof this.entity == \"string\" ? this.entity.length + (this.closed ? 2 : 1) : new String(this.entity).length;\n }\n stringify() {\n if (this.type === \"VALUE\") {\n if (typeof this.entity == \"string\")\n return this.closed ? `\"${this.entity}\"` : `\"${this.entity}`;\n if (typeof this.entity == \"boolean\")\n return this.entity ? \"TRUE\" : \"FALSE\";\n if (this.raw != null)\n return this.raw;\n }\n return this.entity;\n }\n convert() {\n switch (this.type) {\n case \"VALUE\":\n return new ie(this.entity);\n case \"ID\":\n return new Jt(this.entity);\n case \"ID_RANGE\":\n return new Qt(this.entity);\n case \"REF\":\n return new Ye(this.entity);\n case \"RANGE\":\n return new Be(this.entity);\n case \"INFIX_OPERATOR\": {\n const t = Ds[this.entity];\n return new kt(t, this.precedence, void 0, this.at);\n }\n case \"PREFIX_OPERATOR\": {\n const t = vs[this.entity];\n return new kt(t, this.precedence, void 0, this.at);\n }\n case \"FUNCTION\":\n return new kt(this.entity, 0, [], this.at);\n case \"UNREFERENCED\":\n return new Os(this.entity);\n case \"INVALID_REF\":\n return new Ns(this.entity);\n }\n }\n}\nconst Ps = (r) => Ue.has(r), $s = { true: !0, false: !1 }, Ie = new I(\"OPEN\", \"(\"), Ls = new I(\"CLOSE\", \")\"), Hs = new I(\"COMMA\", \",\"), L = \"INFIX_OPERATOR\", Ys = \"PREFIX_OPERATOR\", Bs = \"POSTFIX_OPERATOR\";\nclass $t {\n constructor(t, e) {\n this.tokens = [], this.foreign = !1, this.identifiedFormula = \"\", this.dependencyIds = [], this.formula = t, this.index = 0, this.tokens = [], this.at = e == null ? void 0 : e.at;\n }\n isWhiteSpace() {\n return Ps(this.formula[this.index]);\n }\n next(t = 1) {\n this.index += t;\n }\n get(t = 0) {\n return this.formula[this.index + t];\n }\n getToken(t = 0) {\n return this.tokens[this.tokens.length + t];\n }\n getTokenIndexByCharPosition(t) {\n let e = 0, s = 0;\n for (let i = 0; i < this.tokens.length; i++) {\n const n = this.tokens[i];\n if (s = e + n.length(), e <= t && t <= s)\n return [i, t === e || t === s];\n e = s;\n }\n return [-1, !1];\n }\n getTokenPositionRange(t, e = 1) {\n let s = 0, i = 0;\n for (let n = 0; n < t; n++)\n s = i, i += this.tokens[n].length();\n return [s + e, i + e];\n }\n stringify() {\n return this.tokens.map((t) => t.stringify()).join(\"\");\n }\n identify(t) {\n const e = [], s = [];\n for (const i of this.tokens)\n switch (i.type) {\n case \"VALUE\":\n typeof i.entity == \"number\" || typeof i.entity == \"boolean\" ? e.push(String(i.entity)) : e.push(i.closed ? `\"${i.entity}\"` : `\"${i.entity}`);\n break;\n case \"ID\": {\n const n = new Jt(i.entity);\n e.push(n.identify(t)), s.push(...n.ids);\n break;\n }\n case \"ID_RANGE\": {\n const n = new Qt(i.entity);\n e.push(n.identify(t)), s.push(...n.ids);\n break;\n }\n case \"REF\": {\n const n = new Ye(i.entity);\n e.push(n.identify(t)), s.push(...n.ids);\n break;\n }\n case \"RANGE\": {\n const n = new Be(i.entity);\n e.push(n.identify(t)), s.push(...n.ids);\n break;\n }\n default:\n e.push(i.entity);\n break;\n }\n this.identifiedFormula = e.join(\"\"), this.dependencyIds = s;\n }\n display({ sheet: t }) {\n return this.tokens.map((e) => {\n switch (e.type) {\n case \"VALUE\":\n return typeof e.entity == \"number\" || typeof e.entity == \"boolean\" ? e.raw ?? e.entity : e.closed ? `\"${e.entity}\"` : `\"${e.entity}`;\n case \"ID\":\n return new Jt(e.entity).display({ sheet: t });\n case \"ID_RANGE\":\n return new Qt(e.entity).display({ sheet: t });\n }\n return e.entity;\n }).join(\"\");\n }\n tokenize(t = {}) {\n var e, s;\n for (; this.index <= this.formula.length; ) {\n this.skipSpaces();\n let i = this.get();\n switch (this.next(), i) {\n case void 0:\n return;\n case \"(\":\n this.tokens.push(Ie);\n continue;\n case \")\":\n this.tokens.push(Ls);\n continue;\n case \",\":\n this.tokens.push(Hs);\n continue;\n case \"+\":\n this.tokens.push(new I(L, \"+\", 3, this.at));\n continue;\n case \"-\": {\n const o = (e = this.getToken(-1)) == null ? void 0 : e.type, a = (s = this.getToken(-2)) == null ? void 0 : s.type;\n o === L || o === \"SPACE\" && a === L ? this.tokens.push(new I(Ys, \"-\", 6, this.at)) : this.tokens.push(new I(L, \"-\", 3, this.at));\n continue;\n }\n case \"/\":\n this.tokens.push(new I(L, \"/\", 4, this.at));\n continue;\n case \"*\":\n this.tokens.push(new I(L, \"*\", 4, this.at));\n continue;\n case \"^\":\n this.tokens.push(new I(L, \"^\", 5, this.at));\n continue;\n case \"&\":\n this.tokens.push(new I(L, \"&\", 4, this.at));\n continue;\n case \"=\":\n this.tokens.push(new I(L, \"=\", 1, this.at));\n continue;\n case \">\":\n if (this.get() === \"=\") {\n this.next(), this.tokens.push(new I(L, \">=\", 2, this.at));\n continue;\n }\n this.tokens.push(new I(L, \">\", 2, this.at));\n continue;\n case \"<\":\n if (this.get() === \"=\") {\n this.next(), this.tokens.push(new I(L, \"<=\", 2, this.at));\n continue;\n }\n if (this.get() === \">\") {\n this.next(), this.tokens.push(new I(L, \"<>\", 1, this.at));\n continue;\n }\n this.tokens.push(new I(L, \"<\", 2, this.at));\n continue;\n case '\"': {\n const { buf: o, closed: a } = this.getString('\"');\n this.tokens.push(new I(\"VALUE\", o, 0, this.at, a));\n continue;\n }\n case \"'\": {\n const { buf: o } = this.getString(\"'\");\n i = `'${o}'`;\n break;\n }\n case \"!\": {\n this.foreign = !0;\n break;\n }\n case \"%\": {\n this.tokens.push(new I(Bs, \"%\", 4, this.at));\n continue;\n }\n }\n let n = i;\n for (; ; ) {\n const o = this.get();\n if (o === \"(\") {\n this.tokens.push(new I(\"FUNCTION\", n, 0, this.at), Ie), this.next();\n break;\n }\n if (o == null || ks.has(o)) {\n if (n.length === 0)\n break;\n if (n.match(/^[+-]?(\\d*[.])?\\d+$/)) {\n const a = new I(\"VALUE\", parseFloat(n), 0, this.at);\n a.raw = n, this.tokens.push(a);\n } else {\n const a = $s[n.toLowerCase()];\n a != null ? this.tokens.push(new I(\"VALUE\", a, 0, this.at)) : n.startsWith(\"#\") ? n.indexOf(\"#REF!\") !== -1 ? this.tokens.push(new I(\"UNREFERENCED\", n, 0, this.at)) : n.indexOf(\":\") !== -1 ? this.tokens.push(new I(\"ID_RANGE\", Us(n, t), 0, this.at)) : this.tokens.push(new I(\"ID\", n, 0, this.at)) : n.indexOf(\":\") !== -1 ? this.tokens.push(new I(\"RANGE\", n, 0, this.at)) : !n.startsWith(\"'\") && n.indexOf(\"!\") === -1 && n.includes(\".\") && /[a-zA-Z]/.test(n) || isNaN(n[n.length - 1]) ? this.tokens.push(new I(\"INVALID_REF\", n, 0, this.at)) : this.tokens.push(new I(\"REF\", n, 0, this.at));\n }\n break;\n }\n n += o, this.next();\n }\n }\n }\n skipSpaces() {\n let t = \"\";\n for (; this.isWhiteSpace(); )\n t += this.formula[this.index++];\n t !== \"\" && this.tokens.push(new I(\"SPACE\", t, 0, this.at));\n }\n getString(t = '\"') {\n let e = \"\";\n for (; ; ) {\n const s = this.get();\n if (this.next(), s == null)\n return { buf: e, closed: !1 };\n if (s === t)\n if (t === '\"' && this.get() === t) {\n e += t, this.next();\n continue;\n } else if (t === \"'\" && this.get() === t) {\n e += s;\n continue;\n } else\n return { buf: e, closed: !0 };\n else\n e += s;\n }\n }\n}\nconst Us = (r, t) => {\n const [e, s] = r.split(\"!\"), i = s.split(\":\"), n = /* @__PURE__ */ new Set();\n return Object.keys(t).forEach((o) => {\n const a = t[o], l = new RegExp(`(\\\\$)?#${o}\\\\b(\\\\$)?`);\n for (let u = 0; u < i.length; u++) {\n if (n.has(u))\n continue;\n const h = i[u], c = h.replace(l, (f, d, p) => `${d || \"\"}#${a}${p || \"\"}`);\n c !== h && (i[u] = c, n.add(u));\n }\n }), `${e}!${i.join(\":\")}`;\n};\nclass ze {\n constructor(t) {\n this.index = 0, this.depth = 0, this.tokens = t;\n }\n build() {\n const { expr: t } = this.parse(!1);\n return t;\n }\n parse(t) {\n const e = [];\n let s;\n const i = (n = !1) => {\n if (s) {\n const o = e.pop();\n s.args.push(o);\n }\n return { hasNext: n, expr: e.shift() };\n };\n for (; this.tokens.length > this.index; ) {\n const n = this.tokens[this.index++];\n if (n.type !== \"SPACE\") {\n if (n.type === \"COMMA\") {\n if (!t)\n throw new x(\"#ERROR!\", \"Invalid comma\");\n return i(!0);\n } else if (n.type === \"VALUE\" || n.type === \"ID\" || n.type === \"ID_RANGE\" || n.type === \"REF\" || n.type === \"RANGE\" || n.type === \"UNREFERENCED\" || n.type === \"INVALID_REF\") {\n const o = n.convert();\n e.push(o);\n } else if (n.type === \"POSTFIX_OPERATOR\" && n.entity === \"%\") {\n const o = e.pop();\n if (!o)\n throw new x(\"#ERROR!\", \"Missing expression before %\");\n const a = new kt(\"divide\", 4, [o, new ie(100)]);\n e.push(a);\n } else if (n.type === \"FUNCTION\") {\n this.index++, this.depth++;\n const o = n.convert();\n for (e.push(o); ; ) {\n const { expr: a, hasNext: l } = this.parse(!0);\n if (a && o.args.push(a), !l)\n break;\n }\n } else if (n.type === \"OPEN\") {\n this.depth++;\n const { expr: o } = this.parse(!1);\n e.push(o);\n } else if (n.type === \"CLOSE\") {\n if (this.depth-- === 0)\n throw new x(\"#ERROR!\", \"Unexpected end paren\");\n return i();\n } else if (n.type === \"INFIX_OPERATOR\") {\n const o = n.convert();\n let a = e.pop();\n if (a == null)\n if (o.name === \"minus\" || o.name === \"add\")\n a = Fs;\n else\n throw new x(\"#ERROR!\", \"Missing left expression\");\n if (s == null)\n o.args.push(a), e.unshift(o);\n else if (o.precedence > s.precedence)\n o.args.push(a), s.args.push(o), e.unshift(s);\n else {\n const l = e.shift();\n o.args.push(l), s.args.push(a), e.unshift(o);\n }\n s = o;\n } else if (n.type === \"PREFIX_OPERATOR\") {\n const o = n.convert();\n s ? s.args.push(o) : e.unshift(o), s = o;\n }\n }\n }\n return i();\n }\n}\nconst nn = ze, on = (r) => (r.charAt(0) === \"'\" && (r = r.slice(1)), r.charAt(r.length - 1) === \"'\" && (r = r.slice(0, -1)), r);\nfunction zs(r) {\n let t, e = [];\n if (r.startsWith(\"'\")) {\n let s = 1, i = \"\";\n for (; s < r.length; ) {\n const o = r[s], a = r[s + 1];\n if (o === \"'\")\n if (a === \"'\")\n i += \"'\", s += 2;\n else if (a === \"!\") {\n s += 2;\n break;\n } else\n return { sheetName: void 0, addresses: [] };\n else\n i += o, s++;\n }\n t = i, e = r.slice(s).trim().split(\":\");\n } else {\n const s = r.indexOf(\"!\");\n s !== -1 ? (t = r.slice(0, s), e = r.slice(s + 1).trim().split(\":\")) : e = r.trim().split(\":\");\n }\n return { sheetName: t, addresses: e };\n}\nconst dt = (r, { sheet: t, operation: e, dependency: s }) => {\n const { sheetName: i, addresses: n } = zs(r), o = [];\n if (i && (t = t.getSheetBySheetName(i), t == null))\n return { sheet: t, sheetName: i, addresses: n, ids: o };\n if (n.length === 0)\n return { sheet: t, sheetName: i, addresses: n, ids: o };\n const a = [];\n for (let u = 0; u < n.length; u++) {\n const h = n[u], { y: c, x: f, absX: d, absY: p } = N(h);\n let m = t.getId({ y: c, x: f });\n if (m === s && (e === \"removeRows\" ? m = t.getId({ y: c - 1, x: f }) : e === \"removeCols\" && (m = t.getId({ y: c, x: f - 1 }))), m == null) {\n a.push(Le(h, !!d, !!p) || \"?\");\n continue;\n }\n o.push(m), a.push(`${d ? \"$\" : \"\"}#${m}${p ? \"$\" : \"\"}`);\n }\n let l = `#${t.id}!${a.join(\":\")}`;\n return {\n sheet: t,\n sheetName: i,\n addresses: n,\n ids: o,\n formula: l\n };\n}, Ct = (r, t) => t.length === 0 ? r : Object.fromEntries(\n Object.entries(r).filter(([e]) => !t.includes(e))\n), bt = (r, t, e = {}) => {\n r.systems[t] == null && (r.systems[t] = {});\n const s = r.systems[t];\n for (const i of Object.keys(e))\n s[i] ?? (s[i] = e[i]);\n return s;\n}, Lt = (r, t, e) => {\n r.asyncCaches || (r.asyncCaches = {}), r.asyncCaches[t] = e;\n}, tt = () => !0, Ve = (r, t, e = {}) => {\n const s = N(t);\n return r.getCell(s, e);\n}, Vs = (r, { area: t, resolution: e = \"RESOLVED\", raise: s = !1, filter: i = tt, asScalar: n = !1 } = {}) => r.__raw__._toValueMatrix({ area: t, resolution: e, raise: s, filter: i, asScalar: n }), an = (r, {\n resolution: t = \"RESOLVED\",\n raise: e = !1,\n filter: s = tt,\n addresses: i,\n area: n,\n asScalar: o = !1\n} = {}) => {\n const a = {};\n if (i) {\n for (const f of i) {\n const d = N(f), p = Ve(r, f, { resolution: t, raise: e }) ?? {};\n if (s(p)) {\n let m = p.value;\n o && (m = r.getPolicy(d).toScalar({ value: p.value, cell: p, sheet: r.__raw__, point: d })), a[f] = m;\n }\n }\n return a;\n }\n const { top: l, left: u, bottom: h, right: c } = n ?? r.area;\n for (let f = l; f <= h; f++)\n for (let d = u; d <= c; d++) {\n const p = r.getCell({ y: f, x: d }, { resolution: t, raise: e }) ?? {};\n if (s(p)) {\n let m = p.value;\n o && (m = r.getPolicy({ y: f, x: d }).toScalar({ value: p.value, cell: p, sheet: r.__raw__, point: { y: f, x: d } })), a[D({ y: f, x: d })] = m;\n }\n }\n return a;\n}, cn = (r, { resolution: t = \"RESOLVED\", raise: e = !1, filter: s = tt, rows: i, area: n, asScalar: o = !1 } = {}) => {\n const a = [], { top: l, left: u, bottom: h, right: c } = n ?? r.area, f = i ?? Array.from({ length: r.numRows }, (d, p) => l + p);\n for (const d of f) {\n const p = {};\n a.push(p);\n for (let m = u; m <= c; m++) {\n const g = r.getCell({ y: d, x: m }, { resolution: t, raise: e }) ?? {};\n if (s(g)) {\n let y = g.value;\n o && (y = r.getPolicy({ y: d, x: m }).toScalar({ value: g.value, cell: g, sheet: r.__raw__, point: { y: d, x: m } })), p[W(m)] = y;\n }\n }\n }\n return a;\n}, ln = (r, { resolution: t = \"RESOLVED\", raise: e = !1, filter: s = tt, cols: i, area: n, asScalar: o = !1 } = {}) => {\n const a = [], { top: l, left: u, bottom: h, right: c } = n ?? r.area, f = i ? i.map((d) => typeof d == \"string\" ? _t(d) : d) : Array.from({ length: r.numCols }, (d, p) => u + p);\n for (const d of f) {\n const p = {};\n a.push(p);\n for (let m = l; m <= h; m++) {\n const g = r.getCell({ y: m, x: d }, { resolution: t, raise: e }) ?? {};\n if (s(g)) {\n let y = g.value;\n o && (y = r.getPolicy({ y: m, x: d }).toScalar({ value: g.value, cell: g, sheet: r.__raw__, point: { y: m, x: d } })), p[Et(m)] = y;\n }\n }\n }\n return a;\n}, hn = (r, { area: t, resolution: e = \"RESOLVED\", raise: s = !1, filter: i = tt, ignoreFields: n = [] } = {}) => {\n const { top: o, left: a, bottom: l, right: u } = t ?? r.area, h = se(l - o + 1, u - a + 1);\n for (let c = o; c <= l; c++)\n for (let f = a; f <= u; f++) {\n const d = r.getCell({ y: c, x: f }, { resolution: e, raise: s }) ?? {};\n if (i(d)) {\n const p = Ct(d, n);\n h[c - o][f - a] = p;\n }\n }\n return h;\n}, un = (r, {\n resolution: t = \"RESOLVED\",\n raise: e = !1,\n filter: s = tt,\n addresses: i,\n area: n,\n ignoreFields: o = []\n} = {}) => {\n const a = {};\n if (i) {\n for (const f of i) {\n const d = Ve(r, f, { resolution: t, raise: e }) ?? {};\n s(d) && (a[f] = Ct(d, o));\n }\n return a;\n }\n const { top: l, left: u, bottom: h, right: c } = n ?? r.area;\n for (let f = l; f <= h; f++)\n for (let d = u; d <= c; d++) {\n const p = r.getCell({ y: f, x: d }, { resolution: t, raise: e }) ?? {};\n s(p) && (a[D({ y: f, x: d })] = Ct(p, o));\n }\n return a;\n}, dn = (r, { resolution: t = \"RESOLVED\", raise: e = !1, filter: s = tt, rows: i, area: n, ignoreFields: o = [] } = {}) => {\n const a = [], { top: l, left: u, bottom: h, right: c } = n ?? r.area, f = i ?? Array.from({ length: r.numRows }, (d, p) => l + p);\n for (const d of f) {\n const p = {};\n a.push(p);\n for (let m = u; m <= c; m++) {\n const g = r.getCell({ y: d, x: m }, { resolution: t, raise: e }) ?? {};\n s(g) && (p[W(m)] = Ct(g, o));\n }\n }\n return a;\n}, We = (r) => `'${r.replace(/'/g, \"''\")}'`, Ws = (r) => r ? `${We(r)}!` : \"\", fn = (r, { resolution: t = \"RESOLVED\", raise: e = !1, filter: s = tt, cols: i, area: n, ignoreFields: o = [] } = {}) => {\n const a = [], { top: l, left: u, bottom: h, right: c } = n ?? r.area, f = i ? i.map((d) => typeof d == \"string\" ? _t(d) : d) : Array.from({ length: r.numCols }, (d, p) => u + p);\n for (const d of f) {\n const p = {};\n a.push(p);\n for (let m = l; m <= h; m++) {\n const g = r.getCell({ y: m, x: d }, { resolution: t, raise: e }) ?? {};\n s(g) && (p[Et(m)] = Ct(g, o));\n }\n }\n return a;\n}, Bt = 1, Ut = 2, re = 4, ne = 8, oe = 16, ae = 32, It = 64, Tt = 128, ht = 256, zt = 512, ce = 8192, Vt = 1024, le = 16384, he = 32768, ue = 65536, Wt = 131072, Xs = 0, Xe = It | Tt, St = ht | zt | ce | Vt | le | Wt, je = re | ne, Ge = oe | ae, Ze = je | Ge, qe = Bt | Ut, Ke = St | qe | Ze | Xe, Je = ue | he | Wt, js = 524288, Gs = Ke | Je, O = (r, t) => r === void 0 ? !1 : (r & t) === t, Zs = (r) => {\n const t = [];\n return O(r, Bt) && t.push(\"RemoveRow\"), O(r, Ut) && t.push(\"RemoveCol\"), O(r, re) && t.push(\"InsertRowAbove\"), O(r, ne) && t.push(\"InsertRowBelow\"), O(r, oe) && t.push(\"InsertColLeft\"), O(r, ae) && t.push(\"InsertColRight\"), O(r, It) && t.push(\"MoveFrom\"), O(r, Tt) && t.push(\"MoveTo\"), O(r, ht) && t.push(\"Write\"), O(r, zt) && t.push(\"Style\"), O(r, Vt) && t.push(\"Resize\"), O(r, le) && t.push(\"SetPolicy\"), O(r, Wt) && t.push(\"SetLabel\"), O(r, he) && t.push(\"Sort\"), O(r, ue) && t.push(\"Filter\"), t;\n}, pn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Add: Ze,\n ColumnMenu: Je,\n Copy: ce,\n Delete: qe,\n Filter: ue,\n InsertCols: Ge,\n InsertColsLeft: oe,\n InsertColsRight: ae,\n InsertRows: je,\n InsertRowsAbove: re,\n InsertRowsBelow: ne,\n Move: Xe,\n MoveFrom: It,\n MoveTo: Tt,\n NoOperation: Xs,\n ReadOnly: Ke,\n RemoveCols: Ut,\n RemoveRows: Bt,\n Resize: Vt,\n RowMenu: js,\n SetLabel: Wt,\n SetPolicy: le,\n Sort: he,\n Style: zt,\n Update: St,\n ViewOnly: Gs,\n Write: ht,\n debugOperations: Zs,\n hasOperation: O\n}, Symbol.toStringTag, { value: \"Module\" }));\nH.extend(fs);\nH.extend(ds);\nconst Qe = /* @__PURE__ */ new Set([\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"]), qs = /* @__PURE__ */ new Set([...Qe, \"Z\", \"z\"]), Ks = /* @__PURE__ */ new Set([\"J\", \"F\", \"M\", \"A\", \"S\", \"O\", \"N\", \"D\", ...Qe]), Js = /* @__PURE__ */ new Set([\"N\", \"B\", \"R\", \"Y\", \"N\", \"L\", \"G\", \"P\", \"T\", \"V\", \"C\", ...qs]), Qs = /* @__PURE__ */ new Set([\n \"jan\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"may\",\n \"jun\",\n \"jul\",\n \"aug\",\n \"sep\",\n \"oct\",\n \"nov\",\n \"dec\",\n \"january\",\n \"february\",\n \"march\",\n \"april\",\n \"june\",\n \"july\",\n \"august\",\n \"september\",\n \"october\",\n \"november\",\n \"december\",\n \"mon\",\n \"tue\",\n \"wed\",\n \"thu\",\n \"fri\",\n \"sat\",\n \"sun\",\n \"monday\",\n \"tuesday\",\n \"wednesday\",\n \"thursday\",\n \"friday\",\n \"saturday\",\n \"sunday\",\n \"am\",\n \"pm\",\n \"utc\",\n \"gmt\",\n \"est\",\n \"cst\",\n \"mst\",\n \"pst\",\n \"jst\",\n \"cet\",\n \"eet\",\n \"ist\",\n \"aest\",\n \"edt\",\n \"cdt\",\n \"mdt\",\n \"pdt\",\n \"bst\",\n \"hst\",\n \"akst\",\n \"akdt\",\n \"nzst\",\n \"nzdt\",\n \"t\",\n \"z\"\n]);\nfunction ts(r) {\n const t = r[0];\n if (t == null || !Ks.has(t.toUpperCase()) || !Js.has(r[r.length - 1].toUpperCase()) || r.match(/[=*&#@!?[\\]{}\"'()|%\\\\<>~+\\r\\n]/))\n return;\n const e = r.split(/[\\s,/\\-:.]+/).filter(Boolean);\n for (const i of e)\n if (/^[a-zA-Z]+$/.test(i) && !Qs.has(i.toLowerCase()))\n return;\n let s = \"UTC\";\n try {\n s = Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch {\n }\n try {\n return H.tz(r, s).toDate();\n } catch {\n }\n}\nconst ti = { true: !0, false: !1 };\nclass de {\n constructor(t) {\n this.priority = 0, this.datetimeFormat = \"YYYY-MM-DD HH:mm:ss\", this.dateFormat = \"YYYY-MM-DD\", this.timeFormat = \"HH:mm:ss\", this.decimalPrecision = 14, this.deserializeFunctions = [], this.priority = (t == null ? void 0 : t.priority) ?? 1, this.applyMixins(t == null ? void 0 : t.mixins), this.registerDeserializeFunctions();\n }\n registerDeserializeFunctions() {\n this.deserializeFunctions = [\n ...this.deserializeFirst ? [this.deserializeFirst.bind(this)] : [],\n this.deserializeNumber.bind(this),\n this.deserializeTime.bind(this),\n this.deserializeDate.bind(this),\n this.deserializeBool.bind(this),\n this.deserializeAny.bind(this)\n ];\n }\n applyMixins(t) {\n if (t == null)\n return;\n const e = Object.getPrototypeOf(this);\n for (const s of t)\n for (const i in s)\n e !== de.prototype && Object.prototype.hasOwnProperty.call(e, i) || (this[i] = s[i]);\n }\n // --- RENDER ---\n render(t) {\n let { value: e, cell: s } = t;\n const { sheet: i, point: n } = t;\n s == null && (s = i.getCell(n, { resolution: \"EVALUATED\", raise: !0 }) ?? {}, e = s.value);\n let o;\n if (k.is(e))\n o = \"\";\n else if (e == null)\n o = this.renderNull({ ...t, value: e, cell: s });\n else\n switch (typeof e) {\n case \"object\":\n if (e instanceof Date)\n o = this.renderDate({ ...t, value: e, cell: s });\n else if (b.is(e))\n o = this.renderTime({ value: b.ensure(e), cell: s, sheet: i, point: n });\n else if (Array.isArray(e))\n o = this.renderArray({ ...t, value: e, cell: s });\n else {\n if (x.is(e))\n throw e;\n Q(e) ? o = this.renderSheet({ ...t, value: e, cell: s }) : o = this.renderObject({ ...t, value: e, cell: s });\n }\n break;\n case \"string\":\n o = this.renderString({ ...t, value: e, cell: s });\n break;\n case \"number\":\n o = this.renderNumber({ ...t, value: e, cell: s });\n break;\n case \"boolean\":\n o = this.renderBool({ ...t, value: e, cell: s });\n break;\n case \"function\":\n o = e();\n break;\n default:\n o = \"\";\n }\n return this.renderCallback ? this.renderCallback(o, { ...t, value: e, cell: s }) : o;\n }\n renderString({ value: t }) {\n return t;\n }\n renderBool({ value: t }) {\n return t ? \"TRUE\" : \"FALSE\";\n }\n renderNumber({ value: t }) {\n return isNaN(t) ? \"NaN\" : parseFloat(t.toPrecision(this.decimalPrecision));\n }\n renderDate({ value: t }) {\n return t.getHours() + t.getMinutes() + t.getSeconds() === 0 ? H(t).format(this.dateFormat) : H(t).format(this.datetimeFormat);\n }\n renderTime({ value: t }) {\n return t.stringify(this.timeFormat);\n }\n renderArray(t) {\n let { value: e, cell: s } = t;\n return e = e == null ? void 0 : e[0], Array.isArray(e) && (e = e[0]), this.render({ ...t, value: e, cell: s });\n }\n renderObject({ value: t }) {\n return JSON.stringify(t);\n }\n renderNull(t) {\n return \"\";\n }\n renderSheet({ value: t, ...e }) {\n const s = e.sheet.getId(e.point), i = t.__raw__.strip({ raise: !0, at: s });\n return this.render({ ...e, value: i });\n }\n renderRowHeaderLabel(t) {\n return null;\n }\n renderColHeaderLabel(t) {\n return null;\n }\n // --- TO SCALAR ---\n toScalar(t) {\n const { value: e, cell: s, sheet: i, point: n } = t;\n if (!k.is(e)) {\n if (e == null)\n return this.toScalarNull({ value: e, cell: s, sheet: i, point: n });\n switch (typeof e) {\n case \"string\":\n return this.toScalarString({ value: e, cell: s, sheet: i, point: n });\n case \"number\":\n return this.toScalarNumber({ value: e, cell: s, sheet: i, point: n });\n case \"boolean\":\n return this.toScalarBool({ value: e, cell: s, sheet: i, point: n });\n case \"object\":\n if (e instanceof Date)\n return this.toScalarDate({ value: e, cell: s, sheet: i, point: n });\n if (b.is(e))\n return this.toScalarTime({ value: b.ensure(e), cell: s, sheet: i, point: n });\n if (Array.isArray(e))\n return this.toScalarArray({ value: e, cell: s, sheet: i, point: n });\n if (x.is(e))\n throw e;\n return;\n default:\n return;\n }\n }\n }\n toScalarString({ value: t }) {\n return t;\n }\n toScalarNumber({ value: t }) {\n return t == null ? void 0 : t.toPrecision(this.decimalPrecision);\n }\n toScalarBool({ value: t }) {\n return t;\n }\n toScalarDate({ value: t }) {\n return t.getHours() + t.getMinutes() + t.getSeconds() === 0 ? H(t).format(this.dateFormat) : H(t).format(this.datetimeFormat);\n }\n toScalarTime({ value: t }) {\n return t.stringify(this.timeFormat);\n }\n toScalarArray({ value: t, cell: e, sheet: s, point: i }) {\n let n = t == null ? void 0 : t[0];\n return Array.isArray(n) && (n = n[0]), this.toScalar({ value: n, cell: e, sheet: s, point: i });\n }\n toScalarNull(t) {\n return null;\n }\n // --- SERIALIZE ---\n serialize({ value: t, cell: e, sheet: s, point: i }) {\n return t === void 0 && (t = e == null ? void 0 : e.value), k.is(t) ? \"\" : t instanceof Date ? this.serializeDate({ value: t, cell: e, sheet: s, point: i }) : b.is(t) ? this.serializeTime({ value: b.ensure(t), cell: e, sheet: s, point: i }) : t == null ? this.serializeNull({ cell: e, sheet: s, point: i }) : Array.isArray(t) ? this.serializeArray({ value: t, cell: e, sheet: s, point: i }) : t instanceof x ? this.serializeFormulaError({ value: t, cell: e, sheet: s, point: i }) : t instanceof Error ? this.serializeError({ value: t, cell: e, sheet: s, point: i }) : t.toString();\n }\n serializeString({ value: t }) {\n return t;\n }\n serializeBool({ value: t }) {\n return t ? \"true\" : \"false\";\n }\n serializeNumber({ value: t }) {\n return isNaN(t) ? \"NaN\" : parseFloat(t.toPrecision(this.decimalPrecision)).toString();\n }\n serializeDate({ value: t }) {\n return t.getHours() + t.getMinutes() + t.getSeconds() === 0 ? H(t).format(this.dateFormat) : H(t).format(this.datetimeFormat);\n }\n serializeTime({ value: t }) {\n return t.stringify(this.timeFormat);\n }\n serializeArray(t) {\n let { value: e } = t;\n return e = e == null ? void 0 : e[0], Array.isArray(e) && (e = e[0]), this.serialize({ ...t, value: e });\n }\n serializeNull(t) {\n return \"\";\n }\n serializeFormulaError({ value: t }) {\n return t.code;\n }\n serializeError(t) {\n return \"\";\n }\n serializeForClipboard(t) {\n const { point: e, sheet: s } = t;\n return s.getSerializedValue({ point: e }) ?? \"\";\n }\n // --- DESERIALIZE ---\n deserializeValue(t, e) {\n try {\n const s = typeof t != \"string\" ? this.deserializeRaw(t, e) : this.deserialize(t, e);\n return this.deserializeCallback ? this.deserializeCallback(s, e) : s;\n } catch (s) {\n return { ...e, value: String(s) };\n }\n }\n deserializeRaw(t, e) {\n return b.is(t) && (t = b.ensure(t)), { ...e, value: t };\n }\n deserialize(t, e) {\n if (t[0] === \"'\")\n return { ...e, value: t };\n for (let s = 0; s < this.deserializeFunctions.length; s++) {\n const i = this.deserializeFunctions[s](t, e);\n if ((i == null ? void 0 : i.value) !== void 0)\n return { ...e, ...i };\n }\n return t === \"\" ? { ...e, value: void 0 } : { ...e, value: t };\n }\n deserializeAny(t, e) {\n return t == null || t === \"\" ? { value: void 0 } : { value: t };\n }\n deserializeBool(t, e) {\n return { value: ti[t.toLowerCase()] };\n }\n deserializeNumber(t, e) {\n return t.match(/^-?[\\d.]+$/) != null && t.match(/\\.$/) == null && (t.match(/\\./g) || []).length <= 1 ? { value: parseFloat(t) } : { value: void 0 };\n }\n deserializeTime(t, e) {\n return t.length < 3 || isNaN(t[t.length - 1]) ? { value: void 0 } : { value: b.parse(t) };\n }\n deserializeDate(t, e) {\n return { value: ts(t) };\n }\n // --- SELECT ---\n getSelectFallback(t) {\n return { value: null };\n }\n getSelectOptions() {\n return [];\n }\n select(t) {\n const { next: e, sheet: s, point: i } = t, n = this.getSelectOptions();\n return n.length === 0 || n.some((a) => a.value === (e == null ? void 0 : e.value)) ? e : { ...e, ...this.getSelectFallback({ sheet: s, point: i, value: e == null ? void 0 : e.value }) };\n }\n}\nconst xt = \"default\", ei = new de({ priority: 0 }), j = (r) => r == null ? \"\" : String(r);\nfunction ft(r) {\n return typeof r == \"number\" ? \"number\" : r instanceof Date ? \"date\" : b.is(r) ? \"time\" : typeof r == \"boolean\" ? \"boolean\" : \"string\";\n}\nfunction pt(r, t) {\n switch (t) {\n case \"number\": {\n let e = r.replace(/[,_]/g, \"\"), s = 1;\n e.endsWith(\"%\") && (e = e.slice(0, -1), s = 0.01);\n const i = Number(e);\n return { ok: !isNaN(i), num: i * s };\n }\n case \"date\": {\n const e = ts(r);\n return e ? { ok: !0, num: e.getTime() } : { ok: !1, num: NaN };\n }\n case \"time\": {\n const e = b.parse(r);\n return e ? { ok: !0, num: e.toMilliseconds() } : { ok: !1, num: NaN };\n }\n case \"boolean\": {\n const e = r.toLowerCase();\n return e === \"true\" ? { ok: !0, num: 1 } : e === \"false\" ? { ok: !0, num: 0 } : { ok: !1, num: NaN };\n }\n default:\n return { ok: !1, num: NaN };\n }\n}\nfunction mt(r, t) {\n switch (t) {\n case \"number\":\n return r;\n case \"date\":\n return r.getTime();\n case \"time\":\n return b.ensure(r).toMilliseconds();\n case \"boolean\":\n return r ? 1 : 0;\n default:\n return NaN;\n }\n}\nconst si = (r, t) => {\n const e = ft(t);\n if (e === \"string\") {\n const i = j(t);\n return r.value.some((n) => i === n);\n }\n const s = mt(t, e);\n return r.value.some((i) => {\n const n = pt(i, e);\n return n.ok && s === n.num;\n });\n}, ii = (r, t) => {\n const e = ft(t);\n if (e === \"string\") {\n const i = j(t);\n return !r.value.some((n) => i === n);\n }\n const s = mt(t, e);\n return !r.value.some((i) => {\n const n = pt(i, e);\n return n.ok && s === n.num;\n });\n}, ri = (r, t) => {\n const e = ft(t);\n if (e === \"string\")\n return j(t) > r.value[0];\n const s = mt(t, e), i = pt(r.value[0], e);\n return i.ok && s > i.num;\n}, ni = (r, t) => {\n const e = ft(t);\n if (e === \"string\")\n return j(t) >= r.value[0];\n const s = mt(t, e), i = pt(r.value[0], e);\n return i.ok && s >= i.num;\n}, oi = (r, t) => {\n const e = ft(t);\n if (e === \"string\")\n return j(t) < r.value[0];\n const s = mt(t, e), i = pt(r.value[0], e);\n return i.ok && s < i.num;\n}, ai = (r, t) => {\n const e = ft(t);\n if (e === \"string\")\n return j(t) <= r.value[0];\n const s = mt(t, e), i = pt(r.value[0], e);\n return i.ok && s <= i.num;\n}, ci = (r, t) => t == null || j(t) === \"\", li = (r, t) => t != null && j(t) !== \"\", hi = (r, t) => {\n const e = j(t).toLowerCase();\n return r.value.some((s) => e.includes(s.toLowerCase()));\n}, ui = (r, t) => {\n const e = j(t).toLowerCase();\n return !r.value.some((s) => e.includes(s.toLowerCase()));\n}, di = {\n eq: si,\n ne: ii,\n gt: ri,\n gte: ni,\n lt: oi,\n lte: ai,\n blank: ci,\n nonblank: li,\n includes: hi,\n excludes: ui\n};\nfunction Te(r, t) {\n const e = di[r.method];\n return e ? e(r, t) : !0;\n}\nfunction fi(r, t) {\n const e = r.mode ?? \"or\";\n return r.conditions.length === 0 ? !0 : e === \"and\" ? r.conditions.every((s) => Te(s, t)) : r.conditions.some((s) => Te(s, t));\n}\nclass lt {\n constructor(t) {\n this.map = {}, this.dependentIds = /* @__PURE__ */ new Set(), this.sheet = t;\n }\n collectDependents(...t) {\n t.forEach((e) => {\n var s, i;\n (i = (s = this.sheet.registry.systems[e]) == null ? void 0 : s.dependents) == null || i.forEach((n) => {\n this.dependentIds.add(n);\n });\n });\n }\n /**\n * Compare two idMatrix snapshots (`before` and `after`) and populate\n * `this.map` and collect dependents for every position where the occupying\n * cell ID changed. Works for any rearrangement (sort, move, etc.).\n */\n buildMap(t, e) {\n for (let s = 0; s < t.length; s++) {\n const i = t[s], n = e[s];\n i != null && n != null && i !== n && (this.collectDependents(i, n), this.map[i] = n);\n }\n }\n resolveDependents(t) {\n this.sheet.clearAddressCaches();\n const e = {};\n return this.dependentIds.forEach((s) => {\n const i = this.sheet.registry.data[s];\n i != null && (e[s] = { ...i }, this.sheet.clearDependencies(s), i.value = this.sheet.processFormula(i.value, {\n dependency: s,\n idMap: this.map,\n operation: t\n }));\n }), e;\n }\n}\nconst Me = (r) => {\n switch (r) {\n case \"INSERT_ROWS\":\n case \"INSERT_COLS\":\n case \"REMOVE_ROWS\":\n case \"REMOVE_COLS\":\n case \"MOVE\":\n case \"SORT_ROWS\":\n return !0;\n }\n return !1;\n}, pi = () => !0;\nclass $ {\n constructor({ limits: t = {}, name: e, registry: s = ye({}), eager: i = !1 }) {\n this.__gsType = \"Sheet\", this._stripped = wt, this.area = { top: 0, left: 0, bottom: 0, right: 0 }, this.id = 0, this.name = \"\", this.eager = !1, this.prevName = \"\", this.status = 0, this.idsToBeIdentified = [], this.totalWidth = 0, this.totalHeight = 0, this.fullHeight = 0, this.defaultColWidth = jt, this.defaultRowHeight = J, this.version = 0, this.addressCaches = /* @__PURE__ */ new Map(), this.lastChangedAddresses = [], this._initCells = null, this._initMatrices = null, this._matrixBases = [], this._matrixByBase = [], this._colLetters = [], this._rowHeightOverrides = /* @__PURE__ */ new Map(), this._filteredRows = /* @__PURE__ */ new Set(), this.idMatrix = [], this.changedTime = Date.now(), this.eager = i, this._limits = {\n minRows: t.minRows ?? 1,\n maxRows: t.maxRows ?? -1,\n minCols: t.minCols ?? 1,\n maxCols: t.maxCols ?? -1\n }, this.name = e || \"\", this.prevName = this.name, this.registry = s;\n }\n get minNumRows() {\n return this._limits.minRows;\n }\n get maxNumRows() {\n return this._limits.maxRows;\n }\n get minNumCols() {\n return this._limits.minCols;\n }\n get maxNumCols() {\n return this._limits.maxCols;\n }\n static is(t) {\n return (t == null ? void 0 : t.__gsType) === \"Sheet\";\n }\n toString() {\n return `Sheet(name=${We(this.name)}, top=${this.top}, left=${this.left}, bottom=${this.bottom}, right=${this.right})`;\n }\n get headerHeight() {\n var t;\n return ((t = this.getCell({ y: 0, x: 0 }, { resolution: \"SYSTEM\" })) == null ? void 0 : t.height) || Re;\n }\n setHeaderHeight(t, e = !0) {\n return this.update({\n diff: { 0: { height: t } },\n partial: !0,\n historicize: e\n });\n }\n get headerWidth() {\n var t;\n return ((t = this.getCell({ y: 0, x: 0 }, { resolution: \"SYSTEM\" })) == null ? void 0 : t.width) || _e;\n }\n setHeaderWidth(t, e = !0) {\n return this.update({\n diff: { 0: { width: t } },\n partial: !0,\n historicize: e\n });\n }\n /**\n * Get the raw (mutable) cell data for a point. Unlike getCell, this returns the actual registry.data reference.\n * @internal\n */\n _pointToRawCell({ y: t, x: e }) {\n const s = this.getId({ y: t, x: e });\n if (s != null)\n return this._ensureCellPopulated(t, e, s), this.registry.data[s];\n }\n isRowFiltered(t) {\n var e;\n return !!((e = this._pointToRawCell({ y: t, x: 0 })) != null && e.filtered);\n }\n hasActiveFilters() {\n const t = this.numCols;\n for (let e = 1; e <= t; e++) {\n const s = this._pointToRawCell({ y: 0, x: e });\n if (s != null && s.filter && s.filter.conditions.length > 0)\n return !0;\n }\n return !1;\n }\n /**\n * Returns true if any data cell in this sheet currently holds a Pending value\n * (i.e. an async formula that hasn't resolved yet).\n */\n hasPendingCells() {\n for (const t of Object.keys(this.registry.data)) {\n const e = this.registry.data[t];\n if (k.is(e == null ? void 0 : e.value))\n return !0;\n }\n return !1;\n }\n /**\n * Returns a Promise that resolves when all in-flight async formula computations\n * have completed and no data cells hold Pending values.\n * If nothing is pending, resolves immediately.\n * Useful for waiting before sort/filter so that cell values are fully resolved.\n */\n waitForPending() {\n const t = this.registry.asyncPending;\n if (t.size > 0) {\n const e = Array.from(t.values()).map((s) => s.promise);\n return Promise.all(e).then(() => this.waitForPending());\n }\n return this.hasPendingCells() ? new Promise((e) => {\n const s = () => {\n if (this.registry.asyncPending.size > 0) {\n const i = Array.from(this.registry.asyncPending.values()).map((n) => n.promise);\n Promise.all(i).then(s);\n } else this.hasPendingCells() ? setTimeout(s, 50) : e();\n };\n s();\n }) : Promise.resolve();\n }\n /**\n * Returns the addresses that were changed in the most recent `_update()` call.\n * Useful inside `onChange` to know which cells were modified.\n */\n getLastChangedAddresses() {\n return this.lastChangedAddresses;\n }\n /**\n * Eagerly fire every async formula cell in this sheet, ignoring the visible\n * range.\n *\n * GridSheet is virtualized: normally only cells the UI renders get solved, so\n * an off-screen `=…` formula that calls an async function never fires. Only\n * async cells need this — sync formulas have no side effects and resolve when\n * read (e.g. by serialization), whereas an async cell must be *fired* and given\n * time to settle before its value can be read. `resolveAll()` therefore walks\n * the async-formula index ({@link Registry.asyncFormulaCells}) and solves each\n * one, which fires it through the usual machinery: it resolves, populates the\n * per-cell async cache, and triggers a re-render via `transmit()`. Sync cells\n * that depend on those results resolve normally on the next read.\n *\n * Cells already resolved (async-cache hit) or in flight (Pending) are not\n * re-fired — solving is a cache hit for them — so repeated calls converge and\n * are cheap. After awaiting {@link waitForPending}, serialization helpers such\n * as `toValueMatrix` return resolved values for off-screen cells too.\n *\n * This is the building block behind the opt-in `eager` sheet option; call it\n * directly to resolve on demand without enabling eager mode.\n *\n * @returns the number of async formula cells visited (for diagnostics/tests).\n */\n resolveAll() {\n var s;\n const t = this.registry;\n let e = 0;\n for (const i of Array.from(t.asyncFormulaCells)) {\n const n = t.data[i];\n if (n == null || typeof n.value != \"string\" || n.value.charAt(0) !== \"=\") {\n t.asyncFormulaCells.delete(i);\n continue;\n }\n if (((s = t.systems[i]) == null ? void 0 : s.sheetId) !== this.id)\n continue;\n const { y: o, x: a } = this.getPointById(i);\n if (o < 0 || a < 0) {\n t.asyncFormulaCells.delete(i);\n continue;\n }\n this.getCell({ y: o, x: a }, { resolution: \"RESOLVED\", raise: !1 }), e++;\n }\n return e;\n }\n /**\n * Capture the full cell state of all filter-related header cells as a CellsByIdType snapshot.\n * @internal\n */\n _captureFilterCellStates() {\n var i, n;\n const t = {}, e = this.numCols, s = this.numRows;\n for (let o = 1; o <= e; o++) {\n const a = this.getId({ y: 0, x: o });\n a != null && (t[a] = { filter: ((i = this.registry.data[a]) == null ? void 0 : i.filter) ?? null });\n }\n for (let o = 1; o <= s; o++) {\n const a = this.getId({ y: o, x: 0 });\n a != null && (t[a] = { filtered: ((n = this.registry.data[a]) == null ? void 0 : n.filtered) ?? !1 });\n }\n return t;\n }\n filterRows({\n x: t,\n filter: e\n } = {}) {\n const s = this._captureFilterCellStates();\n if (t == null) {\n const o = this.numCols;\n for (let a = 1; a <= o; a++) {\n const l = this._pointToRawCell({ y: 0, x: a });\n l == null || delete l.filter;\n }\n } else {\n const o = this._pointToRawCell({ y: 0, x: t });\n o && (e ? o.filter = e : delete o.filter);\n }\n this._reapplyFilters();\n const i = this._captureFilterCellStates(), n = Object.keys(s).filter(\n (o) => JSON.stringify(s[o]) !== JSON.stringify(i[o])\n );\n if (n.length > 0) {\n const o = {}, a = {};\n for (const l of n)\n o[l] = s[l], a[l] = i[l];\n this._pushHistory({\n applyed: !0,\n operation: \"UPDATE\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n diffBefore: o,\n diffAfter: a,\n partial: !0\n });\n }\n return this.refresh(!1, !0);\n }\n /** @internal */\n _reapplyFilters() {\n const t = this.numCols, e = [], s = [];\n for (let n = 1; n <= t; n++) {\n const o = this._pointToRawCell({ y: 0, x: n });\n o != null && o.filter && o.filter.conditions.length > 0 && e.push({ x: n, filter: o.filter }), s.push(D({ y: 0, x: n }));\n }\n const i = this.numRows;\n for (let n = 1; n <= i; n++) {\n const o = this._pointToRawCell({ y: n, x: 0 });\n if (!o || o.filterFixed)\n continue;\n let a = !1;\n for (const { x: u, filter: h } of e) {\n const c = this.getCell({ y: n, x: u }, { resolution: \"RESOLVED\" });\n if (!fi(h, c == null ? void 0 : c.value)) {\n a = !0;\n break;\n }\n }\n const l = !!o.filtered;\n a ? (o.filtered = !0, this._filteredRows.add(n)) : (delete o.filtered, this._filteredRows.delete(n)), l !== a && s.push(D({ y: n, x: 0 }));\n }\n this.lastChangedAddresses = s;\n }\n sortRows({ x: t, direction: e }) {\n const s = this.numRows;\n if (s <= 1)\n return this;\n const i = /* @__PURE__ */ new Set(), n = [];\n for (let c = 1; c <= s; c++) {\n const f = this._pointToRawCell({ y: c, x: 0 });\n f != null && f.sortFixed ? i.add(c) : n.push(c);\n }\n n.sort((c, f) => {\n const d = this.getCell({ y: c, x: t }, { resolution: \"RESOLVED\" }), p = this.getCell({ y: f, x: t }, { resolution: \"RESOLVED\" }), m = d == null ? void 0 : d.value, g = p == null ? void 0 : p.value;\n if (m == null && g == null)\n return 0;\n if (m == null)\n return 1;\n if (g == null)\n return -1;\n let y = 0;\n return typeof m == \"number\" && typeof g == \"number\" ? y = m - g : m instanceof Date && g instanceof Date ? y = m.getTime() - g.getTime() : y = String(m).localeCompare(String(g)), e === \"asc\" ? y : -y;\n });\n const o = [];\n for (let c = 1; c <= s; c++)\n i.has(c) || o.push(c);\n let a = !1;\n for (let c = 0; c < n.length; c++)\n if (n[c] !== o[c]) {\n a = !0;\n break;\n }\n if (!a)\n return this;\n const l = {};\n for (const c of i)\n l[c] = c;\n for (let c = 0; c < n.length; c++)\n l[n[c]] = o[c];\n this._materializeIdMatrix();\n const u = this.idMatrix.slice();\n for (const [c, f] of Object.entries(l))\n this.idMatrix[Number(f)] = u[Number(c)];\n this.addressCaches.clear();\n const h = new lt(this);\n return h.buildMap(u.flat(), this.idMatrix.flat()), h.resolveDependents(), this._pushHistory({\n applyed: !0,\n operation: \"SORT_ROWS\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n sortedRowMapping: l\n }), this.refresh(!0, !0);\n }\n /** @internal */\n _sortRowMapping(t, e = !1) {\n const s = new Array(this.numRows);\n if (e)\n for (const [n, o] of Object.entries(t)) {\n const a = Number(n);\n s[a - 1] = o;\n }\n else\n for (const [n, o] of Object.entries(t)) {\n const a = Number(n);\n s[o - 1] = a;\n }\n this._materializeIdMatrix();\n const i = [];\n for (let n = 0; n < s.length; n++)\n i.push(this.idMatrix[s[n]]);\n for (let n = 0; n < s.length; n++)\n this.idMatrix[n + 1] = i[n];\n this.addressCaches.clear();\n }\n get isInitialized() {\n return this.status === 2;\n }\n get policies() {\n return this.registry.policies;\n }\n /** @internal */\n getSystem(t) {\n const e = this.getId(t);\n if (e != null)\n return this.registry.systems[e];\n }\n /** @internal */\n processFormula(t, { idMap: e, ...s }) {\n if ((typeof t == \"string\" || t instanceof String) && t.charAt(0) === \"=\") {\n const i = new $t(t.substring(1));\n return i.tokenize(e), i.identify({ ...s, sheet: this }), i.dependencyIds.forEach((n) => this.addDependency(n, s.dependency)), s.dependency != null && (this._formulaHasAsync(i) ? this.registry.asyncFormulaCells.add(s.dependency) : this.registry.asyncFormulaCells.delete(s.dependency)), \"=\" + i.identifiedFormula;\n }\n return s.dependency != null && this.registry.asyncFormulaCells.delete(s.dependency), t;\n }\n /**\n * Whether a tokenized formula calls at least one async function, decided via\n * the function class's static `isAsync` flag (no instantiation). Drives the\n * async-formula index that {@link resolveAll} walks.\n * @internal\n */\n _formulaHasAsync(t) {\n for (const e of t.tokens)\n if (e.type === \"FUNCTION\") {\n const s = this.registry.functions[String(e.entity).toLowerCase()];\n if (s != null && s.isAsync)\n return !0;\n }\n return !1;\n }\n /** @internal */\n resolveFormulas() {\n this.idsToBeIdentified.forEach((t) => {\n var s;\n const e = this.registry.data[t];\n ((s = this.registry.systems[t]) == null ? void 0 : s.sheetId) != null && e != null && (this.clearDependencies(t), e.value = this.processFormula(e == null ? void 0 : e.value, { dependency: t }));\n }), this.idsToBeIdentified = [], this.status = 2;\n }\n /** @internal */\n getSheetBySheetName(t) {\n const e = this.registry.sheetIdsByName[t];\n return this.getSheetBySheetId(e);\n }\n /** @internal */\n getSheetBySheetId(t) {\n var e, s, i;\n return (i = (s = (e = this.registry.contextsBySheetId[t]) == null ? void 0 : e.store) == null ? void 0 : s.sheetReactive) == null ? void 0 : i.current;\n }\n /** @internal */\n static _stack(...t) {\n const e = {};\n return t.forEach((s) => {\n s != null && s.style && (e.style = { ...e.style, ...s.style }), s != null && s.prevention && (e.prevention = (e.prevention || 0) | s.prevention);\n }), e;\n }\n /** @internal */\n initialize(t) {\n var o, a;\n if (this.status > 1)\n return;\n t[0] == null && (t[0] = { width: _e, height: Re });\n const e = Cs(t, t.__userKeys);\n this.area = {\n top: 1,\n left: 1,\n bottom: e.numRows,\n right: e.numCols\n }, this.idMatrix = new Array(e.numRows + 1), this._colLetters = [];\n for (let l = 0; l <= e.numCols; l++)\n this._colLetters[l] = W(l);\n const s = t.__userKeys ?? Object.keys(t);\n s.forEach((l) => {\n if (l === Ft || l === Dt || l === vt)\n return;\n const u = Ts(l), h = t[l];\n u.forEach((c) => {\n const f = t[c];\n t[c] = {\n ...f,\n ...h,\n ...$._stack(f, h)\n };\n });\n }), this._common = t == null ? void 0 : t[Ft], this._commonCol = t == null ? void 0 : t[Dt], this._commonRow = t == null ? void 0 : t[vt], this._initCells = t;\n const i = t.__matrices;\n if (i) {\n this._initMatrices = i, this._initFlattenAs = t.__flattenAs, this._matrixByBase = [];\n for (const l of Object.keys(i)) {\n const { y: u, x: h } = N(l);\n this._matrixByBase.push({ baseY: u, baseX: h, matrix: i[l] });\n }\n }\n ((o = this._commonCol) == null ? void 0 : o.width) != null && (this.defaultColWidth = this._commonCol.width), ((a = this._commonRow) == null ? void 0 : a.height) != null && (this.defaultRowHeight = this._commonRow.height), this._ensureIdRow(0);\n for (let l = 0; l <= e.numCols; l++) {\n const u = this.idMatrix[0][l];\n this._ensureCellPopulated(0, l, u);\n }\n const n = s;\n for (const l of n) {\n if (l === Ft || l === Dt || l === vt)\n continue;\n const u = N(l), { y: h, x: c } = u;\n if (h === 0 && c === 0 || h === 0 || c === 0 || h <= 0 || c <= 0 || h > e.numRows || c > e.numCols)\n continue;\n const d = this._ensureIdRow(h)[c];\n d != null && this._ensureCellPopulated(h, c, d);\n }\n this.status = 1, this.registry.sheetIdsByName[this.name] = this.id;\n }\n /** @internal */\n _incrementVersion() {\n this.version++, this.version >= Number.MAX_SAFE_INTEGER && (this.version = 1);\n }\n /** @internal */\n _xsheetDispatch(t) {\n if (t === this)\n return;\n t.refresh(!0);\n const e = this.registry.contextsBySheetId[t.id];\n if (e !== null) {\n const { dispatch: s } = e;\n requestAnimationFrame(() => {\n s(this.registry.updateSheet(t));\n });\n }\n }\n /** @internal */\n _generateId() {\n return (this.registry.cellHead++).toString();\n }\n /**\n * Lazily generate the ID row for the given y-coordinate.\n * If the row already exists, returns it immediately.\n * @internal\n */\n _ensureIdRow(t) {\n let e = this.idMatrix[t];\n if (e != null)\n return e;\n const s = this.area.right;\n e = [];\n for (let i = 0; i <= s; i++) {\n const n = this._generateId();\n e.push(n);\n const o = this._colLetters[i] || W(i);\n this.addressCaches.set(n, t === 0 ? `${o}0` : i === 0 ? `0${t}` : `${o}${t}`);\n }\n return this.idMatrix[t] = e, e;\n }\n /**\n * Ensure that registry.data and registry.systems exist for a given cell.\n * Performs lazy cell stacking using stored initialization defaults.\n * @internal\n */\n _ensureCellPopulated(t, e, s) {\n var l, u;\n if (this.registry.data[s] != null)\n return;\n const i = this._initCells, n = Date.now();\n let o;\n if (t === 0 && e > 0) {\n const h = this._colLetters[e] || W(e), c = i == null ? void 0 : i[h], { style: f, ...d } = c ?? {}, p = i == null ? void 0 : i[h + \"0\"];\n o = {\n ...this._commonCol,\n ...d,\n ...p,\n ...$._stack(this._commonCol, p)\n };\n } else if (e === 0 && t > 0) {\n const h = Et(t), c = i == null ? void 0 : i[h], { style: f, ...d } = c ?? {}, p = i == null ? void 0 : i[\"0\" + h];\n o = {\n ...this._commonRow,\n ...d,\n ...p,\n ...$._stack(this._commonRow, p)\n };\n } else if (t === 0 && e === 0) {\n const h = i == null ? void 0 : i[\"0\"];\n o = { ...h, ...$._stack(h) };\n } else {\n const h = this._colLetters[e] || W(e), c = Et(t), f = `${h}${c}`, d = i == null ? void 0 : i[c], p = i == null ? void 0 : i[h];\n let m = i == null ? void 0 : i[f];\n if ((m == null || !(\"value\" in m)) && this._matrixByBase.length > 0)\n for (const { baseY: g, baseX: y, matrix: R } of this._matrixByBase) {\n const A = t - g, w = e - y;\n if (A >= 0 && A < R.length && w >= 0 && w < R[A].length) {\n const S = R[A][w];\n let _;\n this._initFlattenAs ? _ = { [this._initFlattenAs]: S } : _ = S, m = m ? { ..._, ...m } : _;\n break;\n }\n }\n o = {\n ...this._common,\n ...d,\n ...p,\n ...m,\n ...$._stack(this._common, d, p, m)\n };\n }\n (u = (l = o == null ? void 0 : o.value) == null ? void 0 : l.startsWith) != null && u.call(l, \"=\") && ((o == null ? void 0 : o.formulaEnabled) ?? !0) && this.idsToBeIdentified.push(s), t === 0 ? o.width == null && (o.width = jt) : e === 0 ? (o.height == null && (o.height = J), o.height !== (this.defaultRowHeight || J) && this._rowHeightOverrides.set(t, o.height), o.filtered && this._filteredRows.add(t)) : (delete o.height, delete o.width, delete o.label), o = (this.policies[o.policy ?? \"\"] ?? this.defaultPolicy).deserializeValue(o.value, o) ?? {}, this.registry.systems[s] = { ...this.registry.systems[s], id: s, changedTime: n, sheetId: this.id }, this.registry.data[s] = o;\n }\n /**\n * Materialize all lazy ID rows. Call this before operations that need the full\n * idMatrix (e.g. .flat(), .map(), .slice() for sort/move/undo/redo).\n * @internal\n */\n _materializeIdMatrix() {\n for (let t = 0; t < this.idMatrix.length; t++)\n this.idMatrix[t] == null && this._ensureIdRow(t);\n }\n /**\n * Compute the absolute top offset for a given row using arithmetic + overrides.\n * Avoids iterating all rows — O(overrides) instead of O(numRows).\n * @internal\n */\n getOffsetTop(t) {\n const e = this.headerHeight, s = this.defaultRowHeight || J;\n let i = e + (t - 1) * s;\n for (const [n, o] of this._rowHeightOverrides)\n n < t && (i += o - s);\n for (const n of this._filteredRows)\n if (n < t) {\n const o = this._rowHeightOverrides.get(n) ?? s;\n i -= o;\n }\n return i;\n }\n /**\n * Re-key the row-metadata caches after rows are removed at [y, y+numRows).\n * These maps are keyed by absolute row number, so deletions must drop the removed\n * keys and shift later keys down — otherwise stale entries corrupt getOffsetTop().\n * @internal\n */\n _shiftRowMetaForRemove(t, e) {\n const s = /* @__PURE__ */ new Map();\n for (const [n, o] of this._rowHeightOverrides)\n n < t ? s.set(n, o) : n >= t + e && s.set(n - e, o);\n this._rowHeightOverrides = s;\n const i = /* @__PURE__ */ new Set();\n for (const n of this._filteredRows)\n n < t ? i.add(n) : n >= t + e && i.add(n - e);\n this._filteredRows = i;\n }\n /**\n * Re-key the row-metadata caches after numRows are inserted at y, shifting keys >= y up.\n * @internal\n */\n _shiftRowMetaForInsert(t, e) {\n const s = /* @__PURE__ */ new Map();\n for (const [n, o] of this._rowHeightOverrides)\n s.set(n < t ? n : n + e, o);\n this._rowHeightOverrides = s;\n const i = /* @__PURE__ */ new Set();\n for (const n of this._filteredRows)\n i.add(n < t ? n : n + e);\n this._filteredRows = i;\n }\n /**\n * (Re)seed row-metadata for the rows at [y, y+numRows) from their current header cells.\n * Used after rows are added (insert / undo-remove / redo-insert) so non-default heights\n * and filtered state are reflected immediately rather than only on the next lazy read.\n * @internal\n */\n _seedRowMeta(t, e) {\n const s = this.defaultRowHeight || J;\n for (let i = 0; i < e; i++) {\n const n = t + i, o = this.getId({ y: n, x: 0 }), a = o ? this.registry.data[o] : void 0;\n (a == null ? void 0 : a.height) != null && a.height !== s ? this._rowHeightOverrides.set(n, a.height) : this._rowHeightOverrides.delete(n), a != null && a.filtered ? this._filteredRows.add(n) : this._filteredRows.delete(n);\n }\n }\n getRectSize({ top: t, left: e, bottom: s, right: i }) {\n var d, p;\n const n = e || 1, o = t || 1, a = ((d = this.registry.systems[this.getId({ y: 0, x: i })]) == null ? void 0 : d.offsetLeft) ?? 0, l = ((p = this.registry.systems[this.getId({ y: 0, x: n })]) == null ? void 0 : p.offsetLeft) ?? 0, u = this.getOffsetTop(s), h = this.getOffsetTop(o), c = Math.max(0, a - l), f = Math.max(0, u - h);\n return { y: o, x: n, height: f, width: c };\n }\n /** @internal */\n setTotalSize() {\n const t = this.numCols, e = this.numRows, s = this.headerWidth, i = this.headerHeight, n = this.defaultRowHeight || J;\n let o = 0;\n for (let h = 1; h <= t; h++) {\n const c = this.getCell({ y: 0, x: h }, { resolution: \"SYSTEM\" }), f = (c == null ? void 0 : c.width) || this.defaultColWidth || jt, d = this.registry.systems[this.getId({ y: 0, x: h })];\n d != null && (d.offsetLeft = s + o), o += f;\n }\n this.totalWidth = s + o;\n let a = 0, l = 0;\n for (const [h, c] of this._rowHeightOverrides)\n h >= 1 && h <= e && (a += c - n);\n for (const h of this._filteredRows)\n if (h >= 1 && h <= e) {\n const c = this._rowHeightOverrides.get(h) ?? n;\n l += c;\n }\n const u = e * n + a;\n this.totalHeight = i + u - l, this.fullHeight = i + u;\n }\n /** @internal */\n refresh(t = !1, e = !1) {\n return this._incrementVersion(), this.lastChangedTime = this.changedTime, this.changedTime = Date.now(), this.clearSolvedCaches(), this._stripped = wt, t && this.addressCaches.clear(), e && this.setTotalSize(), this;\n }\n /** @internal */\n clone(t = !1) {\n const e = Object.assign(Object.create(Object.getPrototypeOf(this)), this);\n return e._stripped = wt, e.refresh(t);\n }\n /** @internal */\n getPointById(t, e = 0, s = 0) {\n const i = t.startsWith(\"$\");\n i && (t = t.slice(1), s = 0);\n const n = t.endsWith(\"$\");\n n && (t = t.slice(0, -1), e = 0);\n const o = this.addressCaches.get(t);\n if (o) {\n const a = N(o);\n return { y: a.y + e, x: a.x + s, absCol: i, absRow: n };\n }\n this._materializeIdMatrix();\n for (let a = 0; a < this.idMatrix.length; a++) {\n const l = this.idMatrix[a];\n for (let u = 0; u < l.length; u++) {\n const h = l[u], c = D({ y: a, x: u });\n if (this.addressCaches.set(h, c), h === t)\n return {\n y: a + e,\n x: u + s,\n absCol: i,\n absRow: n\n };\n }\n }\n return { y: -1, x: -1, absCol: i, absRow: n };\n }\n /** @internal */\n getAddressById(t, e = 0, s = 0) {\n const { y: i, x: n, absCol: o, absRow: a } = this.getPointById(t, e, s);\n return Le(D({ y: i, x: n }), o, a);\n }\n /** @internal */\n clearAddressCaches() {\n this.addressCaches.clear();\n }\n /** @internal */\n _warmAddressCaches() {\n this._materializeIdMatrix();\n for (let t = 0; t < this.idMatrix.length; t++) {\n const e = this.idMatrix[t];\n for (let s = 0; s < e.length; s++)\n this.addressCaches.set(e[s], D({ y: t, x: s }));\n }\n }\n /** @internal */\n getId(t) {\n var i;\n const { y: e, x: s } = t;\n return e >= 0 && s >= 0 && e <= this.area.bottom && s <= this.area.right ? this._ensureIdRow(e)[s] : (i = this.idMatrix[e]) == null ? void 0 : i[s];\n }\n /** @internal */\n getCell(t, { resolution: e = \"RESOLVED\", raise: s = !1 } = {}) {\n const { y: i, x: n } = t;\n if (i === -1 || n === -1)\n return;\n const o = this.getId(t);\n if (o == null)\n return;\n this._ensureCellPopulated(i, n, o);\n const a = this.registry.data[o];\n if (a == null)\n return;\n let l = a.value;\n return e !== \"SYSTEM\" && (a.formulaEnabled ?? !0) && (l = te({ value: l, sheet: this, point: t, raise: s, resolution: e, at: o })), { ...a, value: l };\n }\n /** @internal */\n get numRows() {\n const { top: t, bottom: e } = this.area;\n return 1 + e - t;\n }\n get numCols() {\n const { left: t, right: e } = this.area;\n return 1 + e - t;\n }\n get top() {\n return this.area.top;\n }\n get left() {\n return this.area.left;\n }\n get bottom() {\n return this.area.bottom;\n }\n get right() {\n return this.area.right;\n }\n /** @internal */\n _toValueMatrix({\n area: t,\n at: e,\n resolution: s = \"RESOLVED\",\n raise: i = !1,\n filter: n = pi,\n asScalar: o = !1\n } = {}) {\n const { top: a, left: l, bottom: u, right: h } = t ?? this.area, c = se(u - a + 1, h - l + 1);\n for (let f = a; f <= u; f++)\n for (let d = l; d <= h; d++) {\n const p = this.getId({ y: f, x: d });\n if (e === p)\n throw new x(\"#REF!\", \"References are circulating.\");\n const m = this.getCell({ y: f, x: d }, { resolution: s, raise: i }) ?? {};\n if (n(m)) {\n let g = m.value;\n o && (g = this.getPolicy({ y: f, x: d }).toScalar({ value: m.value, cell: m, sheet: this, point: { y: f, x: d } })), c[f - a][d - l] = g;\n }\n }\n return c;\n }\n /** @internal */\n _pushHistory(t) {\n const e = this.registry;\n if (e.histories.splice(e.historyIndex + 1, e.histories.length).forEach(this._cleanStrayed.bind(this)), e.histories.push(t), e.lastHistory = e.currentHistory = t, e.histories.length > e.historyLimit) {\n const i = e.histories.splice(0, 1)[0];\n this._cleanObsolete(i);\n } else\n e.historyIndex++;\n }\n /** @internal */\n _cleanObsolete(t) {\n (t.operation === \"REMOVE_ROWS\" || t.operation === \"REMOVE_COLS\") && t.deleted.forEach((e) => {\n e.forEach((s) => {\n this._deleteOrphanedId(s);\n });\n }), t.operation === \"MOVE\" && t.moveRelations.forEach((e) => {\n e.new != null && this._deleteOrphanedId(e.new), e.lost != null && this._deleteOrphanedId(e.lost);\n });\n }\n /** @internal */\n _cleanStrayed(t) {\n (t.operation === \"INSERT_ROWS\" || t.operation === \"INSERT_COLS\") && t.idMatrix.forEach((e) => {\n e.forEach((s) => {\n this._deleteOrphanedId(s);\n });\n });\n }\n /**\n * Remove an id from registry.data and registry.dependents entirely.\n * @internal\n */\n _deleteOrphanedId(t) {\n var s;\n const e = this.registry.systems[t];\n (s = e == null ? void 0 : e.dependencies) == null || s.forEach((i) => {\n var n, o;\n (o = (n = this.registry.systems[i]) == null ? void 0 : n.dependents) == null || o.delete(t);\n }), delete this.registry.data[t], delete this.registry.systems[t];\n }\n /** @internal */\n _copyCellLayout(t) {\n if (t == null)\n return;\n const e = {};\n return t.style != null && (e.style = t.style), t.justifyContent != null && (e.justifyContent = t.justifyContent), t.alignItems != null && (e.alignItems = t.alignItems), t.policy != null && (e.policy = t.policy), t.width != null && (e.width = t.width), t.height != null && (e.height = t.height), e;\n }\n move({\n srcSheet: t = this,\n src: e,\n dst: s,\n historicize: i = !0,\n operator: n = \"SYSTEM\",\n undoReflection: o,\n redoReflection: a\n }) {\n const l = t.__raw__, u = this._createMoveRelations(l, e, this, s), { diffBefore: h, diffAfter: c } = this._moveCells(l, this, u, !1, n);\n return this._xsheetDispatch(l), i && this._pushHistory({\n applyed: !0,\n operation: \"MOVE\",\n srcSheetId: l.id,\n dstSheetId: this.id,\n undoReflection: o,\n redoReflection: a,\n diffBefore: h,\n diffAfter: c,\n moveRelations: u\n }), this.refresh(!0);\n }\n /**\n * Build MoveRelations from src area to dst area, skipping filtered rows.\n *\n * Layout of the returned array (processed in this order by _moveCells):\n * 1. Entries where [0] is a newly-generated ID — these fill the vacated src cells (processed last in forward order)\n * 2. Entries where [0] is a src address and [1] is a dst address — the actual moves (processed first in forward order, descending)\n * Entries whose [1] is an existing ID mean the destination cell is displaced/overflowed and\n * is no longer addressable; on forward pass they are skipped; on reverse pass the ID is written back.\n */\n /** @internal */\n _createMoveRelations(t, e, s, i) {\n const { top: n, left: o, bottom: a, right: l } = e, { top: u, left: h } = i, c = s.numRows, f = s.numCols, d = [];\n for (let w = n; w <= a; w++)\n t.isRowFiltered(w) || d.push(w);\n const p = l - o + 1, m = d.length, g = [];\n {\n let w = 0, S = u;\n for (; w < m; )\n s.isRowFiltered(S) || (g.push(S), w++), S++;\n }\n const y = /* @__PURE__ */ new Set();\n for (let w = 0; w < m; w++)\n for (let S = 0; S < p; S++)\n y.add(D({ y: d[w], x: o + S }));\n const R = /* @__PURE__ */ new Set();\n for (let w = 0; w < m; w++) {\n const S = g[w];\n for (let _ = 0; _ < p; _++) {\n const M = h + _;\n S <= c && M <= f && R.add(D({ y: S, x: M }));\n }\n }\n const A = [];\n for (let w = 0; w < m; w++) {\n const S = d[w], _ = g[w];\n for (let M = 0; M < p; M++) {\n const T = o + M, C = h + M, Y = D({ y: S, x: T }), U = _ <= c && C <= f, G = U ? D({ y: _, x: C }) : void 0;\n let V;\n t === s && R.has(Y) || (V = t._generateId());\n let q;\n if (U) {\n if (!(t === s && y.has(G))) {\n const P = s.getId({ y: _, x: C });\n P != null && (q = P);\n }\n } else {\n const P = t.getId({ y: S, x: T });\n P != null && (q = P);\n }\n const K = t.getCell({ y: S, x: T }, { resolution: \"SYSTEM\" }), v = U ? s.getCell({ y: _, x: C }, { resolution: \"SYSTEM\" }) : void 0;\n A.push({\n before: K == null ? void 0 : K.policy,\n after: v == null ? void 0 : v.policy,\n src: Y,\n dst: G,\n new: V,\n lost: q\n });\n }\n }\n return A;\n }\n get defaultPolicy() {\n return this.policies[xt] ?? ei;\n }\n /**\n * Apply (or reverse) a MoveRelations list.\n *\n * Forward (reverse=false): process descending — actual ID moves happen bottom-up so\n * earlier entries don't clobber later ones; vacate entries (at front of array) are\n * applied last.\n * Reverse (reverse=true): process ascending — restores IDs in the natural order.\n *\n * On forward pass: applies policy, collects diffBefore, runs ReferencePreserver.\n * On reverse pass: only moves IDs (caller is responsible for applyDiff(diffBefore)).\n */\n /** @internal */\n _moveCells(t, e, s, i, n = \"SYSTEM\") {\n const o = {}, a = new lt(e), l = {}, u = [], h = [];\n if (i)\n for (const {\n before: m,\n after: g,\n src: y,\n dst: R,\n new: A,\n lost: w\n } of s) {\n if (R != null) {\n const S = N(R), _ = e.getId(S);\n if (_ != null) {\n const M = N(y);\n u.push({ y: M.y, x: M.x, id: _ });\n }\n }\n if (w != null)\n if (R != null) {\n const S = N(R);\n h.push({ y: S.y, x: S.x, id: w });\n } else {\n const S = N(y);\n u.push({ y: S.y, x: S.x, id: w });\n }\n }\n else\n for (const {\n before: m,\n after: g,\n src: y,\n dst: R,\n new: A,\n lost: w\n } of s) {\n const S = N(y), _ = t.getId(S), M = R != null ? N(R) : void 0, T = M != null ? e.getId(M) : void 0, C = _ != null ? t.registry.data[_] : void 0, Y = T != null ? e.registry.data[T] : void 0;\n if (!(n === \"USER\" && (O(C == null ? void 0 : C.prevention, It) || O(Y == null ? void 0 : Y.prevention, Tt)))) {\n if (A != null) {\n const U = m || xt, V = (t.policies[U] ?? t.defaultPolicy).select({\n sheet: t,\n point: S,\n next: { value: null },\n current: C,\n operation: It\n });\n l[A] = {\n ...V,\n policy: m\n }, this.registry.systems[A] = { id: A, sheetId: t.id, changedTime: Date.now() }, u.push({ y: S.y, x: S.x, id: A });\n }\n if (T != null && M != null && R != null) {\n const U = g || xt, G = m || xt, V = e.policies[U] ?? e.defaultPolicy, q = t.policies[G] ?? t.defaultPolicy, K = q.priority > V.priority, P = (K ? q : V).select({\n sheet: e,\n point: M,\n next: C,\n current: Y,\n operation: Tt\n });\n if (P && (o[_] = C ?? {}, l[_] = {\n ...C,\n ...P,\n policy: K ? m : g\n }), C != null) {\n const ct = this.registry.systems[_];\n ct && (ct.changedTime = Date.now());\n }\n h.push({ y: M.y, x: M.x, id: _ });\n }\n }\n }\n i || (t._materializeIdMatrix(), t !== e && e._materializeIdMatrix());\n const c = i ? null : t.idMatrix.flat(), f = !i && t !== e ? e.idMatrix.flat() : null;\n Object.assign(this.registry.data, l);\n for (const { y: m, x: g, id: y } of u)\n t._ensureIdRow(m)[g] = y;\n for (const { y: m, x: g, id: y } of h)\n e._ensureIdRow(m)[g] = y;\n const d = s.filter((m) => m.dst != null).map((m) => m.dst), p = s.map((m) => m.src);\n if (t === e ? e.lastChangedAddresses = [.../* @__PURE__ */ new Set([...p, ...d])] : (e.lastChangedAddresses = d, t.lastChangedAddresses = p), !i) {\n a.buildMap(c.flat(), t.idMatrix.flat()), t !== e && a.buildMap(f.flat(), e.idMatrix.flat());\n const m = a.resolveDependents(\"move\");\n Object.assign(o, m);\n }\n return { diffBefore: o, diffAfter: {} };\n }\n copy({\n srcSheet: t = this,\n src: e,\n dst: s,\n onlyValue: i = !1,\n operator: n = \"SYSTEM\",\n undoReflection: o,\n redoReflection: a\n }) {\n const l = t !== this, { top: u, left: h, bottom: c, right: f } = e, { top: d, left: p, bottom: m, right: g } = s, y = {}, R = Date.now(), A = [];\n for (let T = u; T <= c; T++)\n t.isRowFiltered(T) || A.push(T);\n const w = [];\n for (let T = d; T <= m; T++)\n T > this.numRows || this.isRowFiltered(T) || w.push(T);\n const S = A.length, _ = f - h + 1, M = g - p + 1;\n for (let T = 0; T < w.length; T++) {\n const C = w[T], Y = A[T % S];\n for (let U = 0; U <= M - 1; U++) {\n const G = p + U;\n if (G > this.numCols)\n continue;\n const V = h + U % _, q = l ? 0 : C - Y, K = l ? 0 : G - V, v = {\n ...t.getCell({ y: Y, x: V }, { resolution: \"SYSTEM\" })\n }, P = { y: C, x: G }, ct = this.getCell(P, { resolution: \"SYSTEM\" }), os = this.getPolicy(P), xe = { y: Y, x: V }, as = t.getPolicy(xe), Xt = t.getCell(xe, { resolution: \"SYSTEM\" }), cs = as.priority > os.priority;\n v.policy = cs ? Xt == null ? void 0 : Xt.policy : ct == null ? void 0 : ct.policy;\n const be = this.getId(P);\n this.clearDependencies(be);\n const ls = (v == null ? void 0 : v.formulaEnabled) ?? !0 ? this.processFormula(v == null ? void 0 : v.value, {\n dependency: be,\n slideY: q,\n slideX: K\n }) : v == null ? void 0 : v.value, hs = this.getId(P), Se = this.registry.systems[hs];\n Se != null && (Se.changedTime = R);\n const us = D(P);\n if (i) {\n const Z = this.getCell(P, { resolution: \"SYSTEM\" });\n v.style = Z == null ? void 0 : Z.style, v.justifyContent = Z == null ? void 0 : Z.justifyContent, v.alignItems = Z == null ? void 0 : Z.alignItems;\n }\n y[us] = { ...v, value: ls };\n }\n }\n return this.update({\n diff: y,\n partial: !1,\n operator: n,\n operation: ce,\n undoReflection: o,\n redoReflection: a\n });\n }\n getPolicy(t) {\n const e = this.getCell(t, { resolution: \"SYSTEM\" });\n return (e == null ? void 0 : e.policy) == null ? this.defaultPolicy : this.policies[e.policy] ?? this.defaultPolicy;\n }\n /** @internal */\n _update({\n diff: t,\n partial: e = !0,\n updateChangedTime: s = !0,\n ignoreFields: i = [\"label\"],\n operator: n = \"SYSTEM\",\n operation: o = St,\n formulaIdentify: a = !0\n }) {\n const l = {}, u = {}, h = [], c = Date.now();\n let f = !1;\n return Object.keys(t).forEach((d) => {\n var w, S, _, M, T;\n const p = N(d), m = this.getId(p), g = this.registry.data[m];\n if (n === \"USER\" && O(g == null ? void 0 : g.prevention, St))\n return;\n let y = { ...t[d] };\n if (a && \"value\" in y && (y.formulaEnabled ?? (g == null ? void 0 : g.formulaEnabled) ?? !0) && (this.clearDependencies(m), y.value = this.processFormula(y.value, { dependency: m })), i.forEach((C) => {\n y[C] = g == null ? void 0 : g[C];\n }), n === \"USER\" && O(g == null ? void 0 : g.prevention, ht) && delete y.value, n === \"USER\" && O(g == null ? void 0 : g.prevention, zt) && ((w = y == null ? void 0 : y.style) == null || delete w.justifyContent, (S = y == null ? void 0 : y.style) == null || delete S.alignItems), n === \"USER\" && O(g == null ? void 0 : g.prevention, Vt) && ((_ = y == null ? void 0 : y.style) == null || delete _.width, (M = y == null ? void 0 : y.style) == null || delete M.height), (y.width != null || y.height != null) && (f = !0), l[m] = g ?? {}, y = { ...(this.policies[(g == null ? void 0 : g.policy) || xt] ?? this.defaultPolicy).select({\n sheet: this,\n point: p,\n next: y,\n current: g,\n operation: o\n }) }, s) {\n const C = this.registry.systems[m];\n C != null && (C.changedTime = c);\n }\n if (e) {\n const C = { ...g, ...y };\n this.registry.data[m] = C, u[m] = C;\n } else\n this.registry.data[m] = y, u[m] = y;\n if (p.x === 0 && p.y >= 1) {\n const C = (T = this.registry.data[m]) == null ? void 0 : T.height, Y = this.defaultRowHeight || J;\n C != null && C !== Y ? this._rowHeightOverrides.set(p.y, C) : this._rowHeightOverrides.delete(p.y);\n }\n h.push(d);\n }), this.lastChangedAddresses = h, {\n diffBefore: l,\n diffAfter: u,\n resized: f\n };\n }\n update({\n diff: t,\n partial: e = !0,\n updateChangedTime: s = !0,\n historicize: i = !0,\n operator: n = \"SYSTEM\",\n operation: o = St,\n ignoreFields: a,\n undoReflection: l,\n redoReflection: u\n }) {\n const { diffBefore: h, diffAfter: c, resized: f } = this._update({\n diff: t,\n partial: e,\n operator: n,\n operation: o,\n updateChangedTime: s,\n ...a != null ? { ignoreFields: a } : {}\n });\n return i && this._pushHistory({\n applyed: !0,\n operation: \"UPDATE\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n undoReflection: l,\n redoReflection: u,\n diffBefore: h,\n diffAfter: c,\n partial: e\n }), this.refresh(!1, f);\n }\n /** @internal */\n writeRawCellMatrix({\n point: t,\n matrix: e,\n updateChangedTime: s = !0,\n historicize: i = !0,\n onlyValue: n = !1,\n operator: o = \"SYSTEM\",\n undoReflection: a,\n redoReflection: l\n }) {\n const { y: u, x: h } = t, c = {};\n let f = 0, d = u;\n for (; f < e.length && !(d > this.bottom); ) {\n if (this.isRowFiltered(d)) {\n d++;\n continue;\n }\n e[f].forEach((m, g) => {\n const y = h + g;\n if (y > this.right)\n return;\n const R = { y: d, x: y }, A = this.parse(R, m.value ?? \"\");\n if (A.style = { ...m.style, ...A.style }, n) {\n const w = this.getCell(R, { resolution: \"SYSTEM\" });\n A.style = w == null ? void 0 : w.style, A.justifyContent = w == null ? void 0 : w.justifyContent, A.alignItems = w == null ? void 0 : w.alignItems;\n }\n c[D(R)] = A;\n }), f++, d++;\n }\n return this.update({\n diff: c,\n partial: !0,\n updateChangedTime: s,\n historicize: i,\n operator: o,\n operation: ht,\n undoReflection: a,\n redoReflection: l\n });\n }\n writeMatrix(t) {\n const e = t.matrix.map((s) => s.map((i) => ({ value: i })));\n return this.writeRawCellMatrix({ ...t, matrix: e });\n }\n write(t) {\n const { point: e, value: s } = t, i = this.parse(e, s ?? \"\"), n = this.getCell(e, { resolution: \"RAW\" });\n if (((n == null ? void 0 : n.value) ?? null) === i.value)\n return this;\n const o = { [D(e)]: i };\n return this.update({\n ...t,\n diff: o,\n partial: !0,\n operation: ht\n });\n }\n insertRows({\n y: t,\n numRows: e,\n baseY: s,\n diff: i,\n partial: n,\n updateChangedTime: o,\n operator: a = \"SYSTEM\",\n undoReflection: l,\n redoReflection: u\n }) {\n if (this.maxNumRows !== -1 && this.numRows + e > this.maxNumRows)\n return console.error(`Rows are limited to ${this.maxNumRows}.`), this;\n const h = this.numCols, c = [], f = Date.now();\n for (let d = 0; d < e; d++) {\n const p = [];\n for (let m = 0; m <= h; m++) {\n const g = this._generateId();\n p.push(g);\n const y = this.getCell({ y: s, x: m }, { resolution: \"SYSTEM\" }), R = this._copyCellLayout(y);\n this.registry.data[g] = { ...R }, this.registry.systems[g] = { id: g, sheetId: this.id, changedTime: f };\n }\n c.push(p);\n }\n if (this.idMatrix.splice(t, 0, ...c), this.area.bottom += e, this._shiftRowMetaForInsert(t, e), this._seedRowMeta(t, e), this._pushHistory({\n applyed: !0,\n operation: \"INSERT_ROWS\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n undoReflection: l,\n redoReflection: u,\n y: t,\n numRows: e,\n idMatrix: c\n }), i && Object.assign(this.registry.lastHistory, this._update({ diff: i, partial: n, updateChangedTime: o, operator: a }), {\n partial: n\n }), this.registry.onInsertRows) {\n const d = this.clone();\n d.area = {\n top: t,\n bottom: t + e - 1,\n left: this.area.left,\n right: this.area.right\n }, d.addressCaches = /* @__PURE__ */ new Map(), this.registry.onInsertRows({ sheet: d, y: t, numRows: e });\n }\n return this.refresh(!0, !0);\n }\n removeRows({\n y: t,\n numRows: e,\n operator: s = \"SYSTEM\",\n undoReflection: i,\n redoReflection: n\n }) {\n if (this.minNumRows !== -1 && this.numRows - e < this.minNumRows)\n return console.error(`At least ${this.minNumRows} row(s) are required.`), this;\n const o = new lt(this), a = [];\n this._materializeIdMatrix();\n const l = this.idMatrix.map((c) => [...c]);\n for (let c = t; c < t + e; c++) {\n const f = this.getCell({ y: c, x: 0 }, { resolution: \"SYSTEM\" });\n if (s === \"USER\" && O(f == null ? void 0 : f.prevention, Bt))\n return console.warn(`Cannot delete row ${c}.`), this;\n for (let d = 1; d <= this.numCols; d++) {\n const p = this.getId({ y: c, x: d });\n p != null && (o.collectDependents(p), o.map[p] = this.getId({ y: c + e, x: d }));\n }\n a.unshift(c);\n }\n const u = [];\n a.forEach((c) => {\n const f = this.idMatrix.splice(c, 1);\n u.unshift(f[0]);\n }), this.area.bottom -= a.length, this._shiftRowMetaForRemove(t, e);\n const h = o.resolveDependents(\"removeRows\");\n if (this._pushHistory({\n applyed: !0,\n operation: \"REMOVE_ROWS\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n undoReflection: i,\n redoReflection: n,\n ys: a.reverse(),\n diffBefore: h,\n deleted: u\n }), this.registry.onRemoveRows) {\n const c = this.clone();\n c.idMatrix = l, c.area = {\n top: t,\n bottom: t + e - 1,\n left: this.area.left,\n right: this.area.right\n }, c.addressCaches = /* @__PURE__ */ new Map(), this.registry.onRemoveRows({ sheet: c, ys: a.reverse() });\n }\n return this.refresh(!0, !0);\n }\n insertCols({\n x: t,\n numCols: e,\n baseX: s,\n diff: i,\n partial: n,\n updateChangedTime: o,\n operator: a = \"SYSTEM\",\n undoReflection: l,\n redoReflection: u\n }) {\n if (this.maxNumCols !== -1 && this.numCols + e > this.maxNumCols)\n return console.error(`Columns are limited to ${this.maxNumCols}.`), this;\n const h = this.numRows, c = [], f = Date.now();\n for (let d = 0; d <= h; d++) {\n const p = [];\n for (let m = 0; m < e; m++) {\n const g = this._generateId();\n p.push(g);\n const y = this.getCell({ y: d, x: s }, { resolution: \"SYSTEM\" }), R = this._copyCellLayout(y);\n this._ensureIdRow(d).splice(t, 0, g), this.registry.data[g] = { ...R }, this.registry.systems[g] = { id: g, sheetId: this.id, changedTime: f };\n }\n c.push(p);\n }\n if (this.area.right += e, this._pushHistory({\n applyed: !0,\n operation: \"INSERT_COLS\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n undoReflection: l,\n redoReflection: u,\n x: t,\n numCols: e,\n idMatrix: c\n }), i && Object.assign(this.registry.lastHistory, this._update({ diff: i, partial: n, updateChangedTime: o, operator: a }), {\n partial: n\n }), this.registry.onInsertCols) {\n const d = this.clone();\n d.area = {\n top: this.area.top,\n bottom: this.area.bottom,\n left: t,\n right: t + e - 1\n }, d.addressCaches = /* @__PURE__ */ new Map(), this.registry.onInsertCols({ sheet: d, x: t, numCols: e });\n }\n return this.refresh(!0, !0);\n }\n removeCols({\n x: t,\n numCols: e,\n operator: s = \"SYSTEM\",\n undoReflection: i,\n redoReflection: n\n }) {\n if (this.minNumCols !== -1 && this.numCols - e < this.minNumCols)\n return console.error(`At least ${this.minNumCols} column(s) are required.`), this;\n const o = new lt(this), a = [];\n this._materializeIdMatrix();\n const l = this.idMatrix.map((c) => [...c]);\n for (let c = t; c < t + e; c++) {\n const f = this.getCell({ y: 0, x: c }, { resolution: \"SYSTEM\" });\n if (s === \"USER\" && O(f == null ? void 0 : f.prevention, Ut)) {\n console.warn(`Cannot delete col ${c}.`);\n continue;\n }\n for (let d = 1; d <= this.numRows; d++) {\n const p = this.getId({ y: d, x: c });\n p != null && (o.collectDependents(p), o.map[p] = this.getId({ y: d, x: c + e }));\n }\n a.unshift(c);\n }\n const u = [];\n this.idMatrix.forEach((c) => {\n const f = [];\n u.push(f), a.forEach((d) => {\n f.unshift(...c.splice(d, 1));\n });\n }), this.area.right -= a.length;\n const h = o.resolveDependents(\"removeCols\");\n if (this._pushHistory({\n applyed: !0,\n operation: \"REMOVE_COLS\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n undoReflection: i,\n redoReflection: n,\n xs: a.reverse(),\n diffBefore: h,\n deleted: u\n }), this.registry.onRemoveCols) {\n const c = this.clone();\n c.idMatrix = l, c.area = {\n top: this.area.top,\n bottom: this.area.bottom,\n left: t,\n right: t + e - 1\n }, c.addressCaches = /* @__PURE__ */ new Map(), this.registry.onRemoveCols({ sheet: c, xs: a.reverse() });\n }\n return this.refresh(!0, !0);\n }\n /** @internal */\n histories() {\n return [...this.registry.histories];\n }\n /** @internal */\n historyIndex() {\n return this.registry.historyIndex;\n }\n /** @internal */\n historySize() {\n return this.registry.histories.length;\n }\n /** @internal */\n getHistoryLimit() {\n return this.registry.historyLimit;\n }\n /** @internal */\n parse(t, e) {\n const s = this.getCell(t, { resolution: \"SYSTEM\" }) ?? {};\n return this.getPolicy(t).deserializeValue(e, s);\n }\n /** @internal */\n render(t) {\n const { point: e, apply: s } = t;\n return this.getId(e), this.getPolicy(e).render({ sheet: this, point: e, apply: s, value: void 0 });\n }\n getSerializedValue({\n point: t,\n cell: e,\n resolution: s = \"RESOLVED\"\n }) {\n if (e == null) {\n const o = this.getId(t);\n e = o != null ? this.registry.data[o] : void 0;\n }\n if (e == null)\n return \"\";\n const i = this.getPolicy(t), n = e.value;\n if (typeof n == \"string\" && n[0] === \"=\") {\n if (s === \"SYSTEM\")\n return n;\n if (s === \"RAW\" || (e == null ? void 0 : e.formulaEnabled) === !1) {\n const o = new $t(n.substring(1));\n return o.tokenize(), \"=\" + o.display({ sheet: this });\n }\n try {\n const o = this.getId(t), a = te({ value: n, sheet: this, point: t, raise: !0, resolution: s, at: o }), l = nt({ value: a, raise: !1 });\n return i.serialize({ value: l, cell: e, sheet: this, point: t });\n } catch (o) {\n return i.serialize({ value: o, cell: e, sheet: this, point: t });\n }\n }\n return i.serialize({ value: n, cell: e, sheet: this, point: t });\n }\n /** @internal */\n trim(t) {\n const e = Object.assign(Object.create(Object.getPrototypeOf(this)), this);\n return e.area = t, e._stripped = wt, e;\n }\n /**\n * Solve all formulas in this sheet and return a 2D matrix of resolved values.\n * @internal\n */\n solve({ raise: t = !1, at: e }) {\n return Oe({ sheet: this, raise: t, at: e });\n }\n /**\n * Collapse this sheet to a scalar (top-left cell value).\n * @internal\n */\n strip({ raise: t = !1, at: e }) {\n var i;\n if (!wt.is(this._stripped))\n return this._stripped;\n let s = this;\n for (; s instanceof $; )\n s = (i = Oe({ sheet: s, raise: t, at: e })[0]) == null ? void 0 : i[0];\n return this._stripped = s, this._stripped;\n }\n /** @internal */\n _applyDiff(t = {}, e = !0) {\n const s = Object.keys(t);\n s.forEach((n) => {\n const o = t[n] ?? {};\n let a;\n e ? (a = { ...this.registry.data[n] }, Object.keys(o).forEach((h) => {\n o[h] === void 0 ? delete a[h] : a[h] = o[h];\n })) : a = { ...o };\n const l = this.registry.systems[n];\n l != null && (l.changedTime = Date.now()), this.registry.data[n] = a, this.clearDependencies(n), this.processFormula(a.value, { dependency: n });\n const u = this.addressCaches.get(n);\n if (u) {\n const h = N(u);\n if (h.x === 0 && h.y > 0) {\n const c = this.defaultRowHeight || J, f = a.height ?? c;\n f !== c ? this._rowHeightOverrides.set(h.y, f) : this._rowHeightOverrides.delete(h.y), a.filtered ? this._filteredRows.add(h.y) : this._filteredRows.delete(h.y);\n }\n }\n }), this._warmAddressCaches();\n const i = [];\n for (const n of s) {\n const o = this.getAddressById(n);\n o && i.push(o);\n }\n this.lastChangedAddresses = i;\n }\n undo() {\n if (this.registry.historyIndex < 0)\n return { history: null, newSheet: this.__raw__ };\n const t = this.registry.histories[this.registry.historyIndex--];\n t.applyed = !1, this.registry.currentHistory = this.registry.histories[this.registry.historyIndex];\n const e = this.getSheetBySheetId(t.srcSheetId), s = this.getSheetBySheetId(t.dstSheetId);\n if (!s)\n return { history: null, newSheet: this.__raw__ };\n switch (t.operation) {\n case \"UPDATE\":\n s._applyDiff(t.diffBefore, t.partial ?? !1);\n break;\n case \"INSERT_ROWS\": {\n t.diffBefore && s._applyDiff(t.diffBefore, !1);\n const { rows: i } = Nt({ matrix: t.idMatrix });\n s._materializeIdMatrix(), s.idMatrix.splice(t.y, i), s.area.bottom -= i, s._shiftRowMetaForRemove(t.y, i);\n break;\n }\n case \"INSERT_COLS\": {\n t.diffBefore && s._applyDiff(t.diffBefore, !1);\n const { cols: i } = Nt({ matrix: t.idMatrix });\n s._materializeIdMatrix(), s.idMatrix.forEach((n) => {\n n.splice(t.x, i);\n }), s.area.right -= i;\n break;\n }\n case \"REMOVE_ROWS\": {\n const { ys: i, deleted: n } = t;\n s._materializeIdMatrix(), i.forEach((a, l) => {\n s.idMatrix.splice(a, 0, n[l]);\n }), s.area.bottom += i.length;\n const o = Math.min(...i);\n s._shiftRowMetaForInsert(o, i.length), s._seedRowMeta(o, i.length), this._applyDiff(t.diffBefore, !1);\n break;\n }\n case \"REMOVE_COLS\": {\n const { xs: i, deleted: n } = t;\n s._materializeIdMatrix(), s.idMatrix.forEach((o, a) => {\n for (let l = 0; l < i.length; l++)\n o.splice(i[l], 0, n[a][l]);\n }), s.area.right += i.length, this._applyDiff(t.diffBefore, !1);\n break;\n }\n case \"MOVE\": {\n e && this._moveCells(e, s, t.moveRelations, !0);\n const i = s.lastChangedAddresses;\n s._applyDiff(t.diffBefore, !1), s.lastChangedAddresses = [.../* @__PURE__ */ new Set([...i, ...s.lastChangedAddresses])];\n break;\n }\n case \"SORT_ROWS\": {\n s._materializeIdMatrix();\n const i = s.idMatrix.flat();\n s._sortRowMapping(t.sortedRowMapping, !0);\n const n = new lt(s);\n n.buildMap(i, s.idMatrix.flat()), n.resolveDependents(), s._reapplyFilters();\n break;\n }\n }\n return this.refresh(Me(t.operation), !0), s !== this && (s.addressCaches.clear(), s.setTotalSize()), t.operation === \"MOVE\" && e && e !== s && this._xsheetDispatch(e), {\n history: t,\n callback: ({ sheetReactive: i }) => {\n var n, o;\n (o = i.current) == null || o.registry.transmit((n = t.undoReflection) == null ? void 0 : n.transmit);\n }\n };\n }\n redo() {\n if (this.registry.historyIndex + 1 >= this.registry.histories.length)\n return { history: null, newSheet: this.__raw__ };\n const t = this.registry.histories[++this.registry.historyIndex];\n t.applyed = !0, this.registry.currentHistory = t;\n const e = this.getSheetBySheetId(t.srcSheetId), s = this.getSheetBySheetId(t.dstSheetId);\n if (!s)\n return { history: null, newSheet: this.__raw__ };\n switch (t.operation) {\n case \"UPDATE\":\n s._applyDiff(t.diffAfter, t.partial ?? !1);\n break;\n case \"INSERT_ROWS\": {\n t.diffAfter && s._applyDiff(t.diffAfter, !1);\n const { rows: i } = Nt({ matrix: t.idMatrix });\n s._materializeIdMatrix(), s.idMatrix.splice(t.y, 0, ...t.idMatrix), s.area.bottom += i, s._shiftRowMetaForInsert(t.y, i), s._seedRowMeta(t.y, i);\n break;\n }\n case \"INSERT_COLS\": {\n t.diffAfter && s._applyDiff(t.diffAfter, !1);\n const { cols: i } = Nt({ matrix: t.idMatrix });\n s._materializeIdMatrix(), s.idMatrix.map((n, o) => {\n n.splice(t.x, 0, ...t.idMatrix[o]);\n }), s.area.right += i;\n break;\n }\n case \"REMOVE_ROWS\": {\n s.removeRows({\n y: t.ys[0],\n numRows: t.ys.length,\n operator: \"SYSTEM\",\n undoReflection: t.undoReflection,\n redoReflection: t.redoReflection\n });\n break;\n }\n case \"REMOVE_COLS\": {\n s.removeCols({\n x: t.xs[0],\n numCols: t.xs.length,\n operator: \"SYSTEM\",\n undoReflection: t.undoReflection,\n redoReflection: t.redoReflection\n });\n break;\n }\n case \"MOVE\": {\n e && this._moveCells(e, s, t.moveRelations, !1);\n break;\n }\n case \"SORT_ROWS\": {\n s._materializeIdMatrix();\n const i = s.idMatrix.flat();\n s._sortRowMapping(t.sortedRowMapping, !1);\n const n = new lt(s);\n n.buildMap(i, s.idMatrix.flat()), n.resolveDependents(), s._reapplyFilters();\n break;\n }\n }\n return this.refresh(Me(t.operation), !0), s !== this && (s.addressCaches.clear(), s.setTotalSize()), t.operation === \"MOVE\" && e && e !== s && this._xsheetDispatch(e), {\n history: t,\n callback: ({ sheetReactive: i }) => {\n var n, o;\n (o = i.current) == null || o.registry.transmit((n = t.redoReflection) == null ? void 0 : n.transmit);\n }\n };\n }\n /** @internal */\n getFunctionByName(t) {\n return this.registry.functions[t];\n }\n /** @internal */\n clearDependencies(t) {\n var s;\n const e = this.registry.systems[t];\n (s = e == null ? void 0 : e.dependencies) == null || s.forEach((i) => {\n var n, o;\n (o = (n = this.registry.systems[i]) == null ? void 0 : n.dependents) == null || o.delete(t);\n }), e != null && (e.dependencies = /* @__PURE__ */ new Set());\n }\n /** @internal */\n addDependency(t, e) {\n const s = bt(this.registry, t);\n s.dependents == null && (s.dependents = /* @__PURE__ */ new Set()), s.dependents.add(e);\n const i = bt(this.registry, e);\n i.dependencies == null && (i.dependencies = /* @__PURE__ */ new Set()), i.dependencies.add(t);\n }\n /** @internal */\n getSolvedCache(t) {\n const e = this.getId(t);\n return [this.registry.solvedCaches.has(e), this.registry.solvedCaches.get(e)];\n }\n /** @internal */\n setSolvingCache(t) {\n const e = this.getId(t);\n this.registry.solvedCaches.set(e, At), bt(this.registry, e, { tmpAsyncCaches: {} });\n }\n /** @internal */\n finishSolvedCache(t, e) {\n if (At.is(e))\n return;\n const s = this.getId(t);\n this.registry.solvedCaches.set(s, e);\n const i = this.registry.data[s];\n if (i == null)\n return;\n const n = this.registry.systems[s], o = n == null ? void 0 : n.tmpAsyncCaches;\n o != null && (Object.keys(o).length > 0 ? i.asyncCaches = o : delete i.asyncCaches, delete n.tmpAsyncCaches);\n }\n /** @internal */\n clearSolvedCaches() {\n this.registry.solvedCaches.clear();\n for (const t of this.registry.lastSpilledTargetIds) {\n const e = this.registry.systems[t];\n (e == null ? void 0 : e.spilledFrom) != null && delete e.spilledFrom;\n }\n this.registry.lastSpilledTargetIds.clear();\n }\n /**\n * Spill a 2D matrix of values starting from the origin cell.\n * The origin cell receives matrix[0][0] and adjacent cells receive spill values in solvedCaches.\n * For a 1×1 matrix, no spill occurs — the single value is cached directly.\n * Throws FormulaError('#REF!') if the spill range is obstructed.\n *\n * @param origin The anchor cell that produced the spill.\n * @param matrix The 2D array of resolved scalar values.\n * @returns The top-left value (matrix[0][0]).\n * @internal\n */\n spill(t, e) {\n var a;\n const s = e.length, i = s > 0 ? e[0].length : 0;\n if (s <= 1 && i <= 1)\n return (a = e[0]) == null ? void 0 : a[0];\n for (let l = 0; l < s; l++)\n for (let u = 0; u < i; u++) {\n if (l === 0 && u === 0)\n continue;\n const h = { y: t.y + l, x: t.x + u }, c = this.getId(h), f = D(h);\n if (c == null) {\n console.warn(`Spill target ${f} is out of bounds.`);\n continue;\n }\n const d = this.registry.data[c];\n if ((d == null ? void 0 : d.value) != null && d.value !== \"\")\n throw new x(\n \"#REF!\",\n `Array result was not expanded because it would overwrite data in ${f}.`\n );\n if (this.registry.solvedCaches.has(c))\n throw new x(\n \"#REF!\",\n `Array result was not expanded because ${f} is already occupied by another formula.`\n );\n }\n const n = this.getId(t), o = [];\n for (let l = 0; l < s; l++)\n for (let u = 0; u < i; u++) {\n const h = { y: t.y + l, x: t.x + u }, c = this.getId(h);\n if (c != null && (this.finishSolvedCache(h, e[l][u]), (l !== 0 || u !== 0) && (o.push(D(h)), n != null))) {\n const f = bt(this.registry, c, {});\n f.spilledFrom = D(t), this.registry.lastSpilledTargetIds.add(c);\n }\n }\n return e[0][0];\n }\n /** @internal */\n sheetPrefix(t = !1) {\n return t ? \"\" : Ws(this.name);\n }\n /** @internal */\n rangeToArea(t) {\n const e = t.split(\":\");\n let [s, i] = e;\n s.match(/[a-zA-Z]$/) && (s += \"1\"), s.match(/^[1-9]/) && (s = `A${s}`), i != null && i.match(/[a-zA-Z]$/) && (i += this.bottom), i != null && i.match(/^[1-9]/) && (i = `${W(this.right)}${i}`);\n const { y: n, x: o } = N(s), { y: a, x: l } = N(i || s);\n return {\n top: Math.abs(n),\n left: Math.abs(o),\n bottom: Math.abs(a),\n right: Math.abs(l)\n };\n }\n get __raw__() {\n return this;\n }\n get shape() {\n return Kt(this.area);\n }\n get hasSingleCell() {\n const t = this.shape;\n return t.rows === 1 && t.cols === 1;\n }\n get currentVersion() {\n return this.version;\n }\n}\nconst te = ({ value: r, sheet: t, point: e, raise: s = !0, resolution: i = \"RESOLVED\", at: n }) => {\n var u;\n const [o, a] = t.getSolvedCache(e);\n if (o && r == null && !At.is(a))\n return a;\n if (typeof r != \"string\" || i === \"SYSTEM\")\n return r;\n if (r.charAt(0) === \"'\")\n return i === \"RAW\" ? r : r.substring(1);\n if (r.charAt(0) !== \"=\")\n return r;\n if (i === \"RAW\") {\n const h = new $t(r.substring(1), { at: n });\n return h.tokenize(), \"=\" + h.display({ sheet: t });\n }\n let l = r;\n if (o && !At.is(a))\n l = a;\n else\n try {\n const h = new $t(r.substring(1), { at: n });\n h.tokenize();\n const f = new ze(h.tokens).build();\n l = (u = f == null ? void 0 : f.evaluate) == null ? void 0 : u.call(f, { sheet: t });\n } catch (h) {\n if (s)\n throw t.finishSolvedCache(e, h), h;\n return h;\n }\n return B.is(l) ? l = t.spill(e, l.matrix) : t.finishSolvedCache(e, l), i === \"RESOLVED\" && l instanceof $ && (l = nt({ value: l, raise: s, at: n })), k.is(l) && t.finishSolvedCache(e, l), l;\n}, Oe = ({ sheet: r, raise: t = !0, at: e }) => {\n const s = r.area;\n return r._toValueMatrix({ area: s, at: e, resolution: \"SYSTEM\" }).map((n, o) => {\n const a = s.top + o;\n return n.map((l, u) => {\n const h = s.left + u, c = { y: a, x: h }, [f, d] = r.getSolvedCache(c);\n try {\n if (At.is(d))\n throw new x(\"#REF!\", \"References are circulating.\", new Error(l));\n if (k.is(d))\n return d;\n if (x.is(d))\n throw d;\n if (d != null)\n return d;\n r.setSolvingCache(c);\n const p = te({ value: l, sheet: r, point: c, raise: t, at: e, resolution: \"RESOLVED\" });\n return r.finishSolvedCache(c, p), p;\n } catch (p) {\n if (r.finishSolvedCache(c, p), t)\n throw p;\n return p;\n }\n });\n });\n}, nt = ({ value: r, at: t, raise: e = !0 }) => r instanceof $ ? r.strip({ raise: e, at: t }) : r, ee = new ut(\"asyncCacheMiss\"), mi = (r) => r.some((t) => k.is(t)), es = (r) => (r == null ? void 0 : r.__gsType) === \"Sheet\", Rt = (r, t) => {\n for (const e of r)\n if (k.is(e) || Array.isArray(e) && Rt(e, t) || B.is(e) && Rt(e.matrix, t) || es(e) && Rt(e._toValueMatrix({ at: t }), t))\n return !0;\n return !1;\n}, gi = (r, t = 0) => {\n let e = 3735928559 ^ t, s = 1103547991 ^ t;\n for (let i = 0; i < r.length; i++) {\n const n = r.charCodeAt(i);\n e = Math.imul(e ^ n, 2654435761), s = Math.imul(s ^ n, 1597334677);\n }\n return e = Math.imul(e ^ e >>> 16, 2246822507), e ^= Math.imul(s ^ s >>> 13, 3266489909), s = Math.imul(s ^ s >>> 16, 2246822507), s ^= Math.imul(e ^ e >>> 13, 3266489909), 4294967296 * (2097151 & s) + (e >>> 0);\n}, yi = (r, t, e = 1) => {\n const s = JSON.stringify(t, (n, o) => es(o) ? Vs(o) : k.is(o) ? null : o), i = Array.from({ length: e }, (n, o) => gi(s, o).toString(36));\n return `${r}:${s.length}:${i.join(\"-\")}`;\n}, wi = (r, t, e, s = !1) => {\n var l;\n const i = r.registry, n = i.data[t];\n if (n == null)\n return ee;\n const o = bt(i, t, { tmpAsyncCaches: {} });\n if (n.asyncCaches != null) {\n const u = n.asyncCaches[e];\n if (u != null && (u.expireTime == null || Date.now() < u.expireTime))\n return o.tmpAsyncCaches[e] = u, u.value;\n }\n const a = `${t}:${e}`;\n if (i.asyncPending.has(a))\n return i.asyncPending.get(a);\n if (s && ((l = i.asyncInflight) != null && l.has(e))) {\n const u = i.asyncInflight.get(e);\n return i.asyncPending.set(a, u.pending), u.pending.promise.then((h) => {\n const c = i.data[t];\n c != null && Lt(c, e, { value: h, expireTime: u.expireTime });\n }).catch((h) => {\n x.is(h) || (h = new x(\"#ASYNC!\", (h == null ? void 0 : h.message) ?? String(h), h instanceof Error ? h : void 0));\n const c = i.data[t];\n c != null && Lt(c, e, { value: h, expireTime: u.expireTime });\n }).finally(() => {\n i.asyncPending.delete(a);\n }), u.pending;\n }\n return ee;\n}, xi = (r, t, e, s, i, n = !1) => {\n const o = t.registry, a = i != null ? Date.now() + i : void 0, l = `${e}:${s}`, u = new k(r);\n return o.asyncPending.set(l, u), n && (o.asyncInflight || (o.asyncInflight = /* @__PURE__ */ new Map()), o.asyncInflight.set(s, { pending: u, expireTime: a })), r.then((h) => {\n const c = o.data[e];\n c != null && Lt(c, s, { value: h, expireTime: a });\n }).catch((h) => {\n x.is(h) || (h = new x(\"#ASYNC!\", (h == null ? void 0 : h.message) ?? String(h), h instanceof Error ? h : void 0));\n const c = o.data[e];\n c != null && Lt(c, s, { value: h, expireTime: a });\n }).finally(() => {\n o.asyncPending.delete(l), n && o.asyncInflight && o.asyncInflight.delete(s), o.solvedCaches.clear(), o.transmit();\n }), u;\n}, Gt = () => new k(Promise.resolve()), fe = (r, t) => {\n if (typeof r == \"string\" || typeof t == \"string\")\n return X(r) > X(t);\n try {\n return F(r) > F(t);\n } catch {\n return !1;\n }\n}, pe = (r, t) => {\n if (typeof r == \"string\" || typeof t == \"string\")\n return X(r) >= X(t);\n try {\n return F(r) >= F(t);\n } catch {\n return !1;\n }\n}, ss = (r, t) => !pe(r, t), is = (r, t) => !fe(r, t), me = (r, t) => X(r).toLowerCase() === X(t).toLowerCase(), bi = (r, t) => !me(r, t), ge = (r) => typeof r != \"string\" || !r.endsWith(\"%\") ? !1 : !isNaN(parseFloat(r.slice(0, -1))), Mt = (r) => typeof r == \"number\" || ge(r) ? !0 : typeof r == \"string\" ? !isNaN(parseFloat(r)) && isFinite(Number(r)) : !1, F = (r, t) => {\n const { alternative: e, ignore: s } = t || {};\n if (k.is(r))\n return r;\n if (typeof r > \"u\" && typeof e < \"u\")\n return e;\n if (!r)\n return 0;\n if (r instanceof $) {\n const n = nt({ value: r });\n return F(n, { alternative: e });\n }\n if (r instanceof Date)\n return r.getTime();\n if (b.is(r))\n return r.days;\n if (ge(r))\n return parseFloat(r.slice(0, -1)) / 100;\n const i = parseFloat(r);\n if (isNaN(i)) {\n if (s)\n return e ?? 0;\n throw new x(\"#VALUE!\", `${r} cannot be converted to a number`);\n }\n return i;\n}, X = (r) => {\n if (k.is(r))\n return r;\n if (r === 0)\n return \"0\";\n if (!r)\n return \"\";\n if (r instanceof $) {\n const t = nt({ value: r });\n return X(t);\n }\n switch (r.constructor.name) {\n case \"Date\":\n return H(r).format(ms);\n default:\n return String(r);\n }\n}, Ot = (r, t) => {\n const { alternative: e, ignore: s } = t ?? {};\n if (k.is(r))\n return r;\n if (typeof r > \"u\" && typeof e < \"u\")\n return e;\n if (r === null)\n return !1;\n if (r instanceof $) {\n const i = nt({ value: r });\n return Ot(i, t);\n }\n if (typeof r == \"string\" || r instanceof String) {\n const i = { true: !0, false: !1 }[r.toLowerCase()];\n if (i == null) {\n if (s)\n return !1;\n throw new x(\"#VALUE!\", `text '${r}' cannot be converted to a boolean`);\n }\n return i;\n }\n return !!r;\n};\nfunction Si(r) {\n if (k.is(r) || r instanceof Date)\n return r;\n if (r instanceof $) {\n const t = nt({ value: r });\n return Si(t);\n }\n if (typeof r == \"number\")\n return new Date(r);\n if (typeof r == \"string\") {\n const t = new Date(r);\n if (!isNaN(t.getTime()))\n return t;\n }\n throw new x(\"#VALUE!\", `${r} cannot be converted to a date`);\n}\nconst Ri = /^(<=|>=|<>|>|<|=)?(.*)$/, _i = (r, t) => {\n const e = t.match(Ri), [, s = \"\", i = \"\"] = e || [];\n let n = i;\n if (s === \">\" || s === \"<\" || s === \">=\" || s === \"<=\")\n switch (typeof r == \"number\" && (n = parseFloat(i)), s) {\n case \">\":\n return fe(r, n);\n case \">=\":\n return pe(r, n);\n case \"<\":\n return ss(r, n);\n case \"<=\":\n return is(r, n);\n }\n const o = s === \"\" || s === \"=\";\n if (i === \"\")\n return (r == null || r === \"\") === o;\n if (typeof r == \"string\" || r instanceof String) {\n const a = i.replace(/~\\*/g, \"(\\\\*)\").replace(/~\\?/g, \"(\\\\?)\").replace(/\\*/g, \"(.*)\").replace(/\\?/g, \"(.)\");\n return RegExp(`^${a}$`, \"i\").test(r) === o;\n }\n return me(r, n) === o;\n}, ot = (r, t, e) => {\n if (r instanceof $) {\n const s = r.solve({ at: e });\n for (let i = 0; i < s.length; i++)\n for (let n = 0; n < s[i].length; n++)\n t(s[i][n], { y: i, x: n });\n } else if (B.is(r)) {\n const s = r.matrix;\n for (let i = 0; i < s.length; i++)\n for (let n = 0; n < s[i].length; n++)\n t(s[i][n], { y: i, x: n });\n } else if (Array.isArray(r) && Array.isArray(r[0]))\n for (let s = 0; s < r.length; s++)\n for (let i = 0; i < r[s].length; i++)\n t(r[s][i], { y: s, x: i });\n else\n t(r, { y: 0, x: 0 });\n}, mn = (r, t, e) => {\n if (r.length === 0)\n return [];\n const s = r[0], i = s.numRows, n = s.numCols, o = Array.from({ length: i }, () => Array(n).fill(!0));\n for (let a = 0; a < r.length; a++) {\n const l = r[a], u = t[a];\n ot(\n l,\n (h, c) => {\n var f, d;\n (f = o[c.y])[d = c.x] && (f[d] = _i(h, u));\n },\n e\n );\n }\n return o;\n}, Q = (r) => (r == null ? void 0 : r.__gsType) === \"Sheet\", gn = {\n name: \"condition\",\n description: 'The condition to evaluate. Use \"=\" for equal, \"<\" for less than, \">\" for greater than, \"<=\" for less than or equal, \">=\" for greater than or equal, \"<>\" for not equal.',\n acceptedTypes: [\"any\"]\n}, Ei = (r, { nullable: t = !0, errorTolerant: e = !1, acceptedTypes: s }) => {\n if (!s || s.length === 0)\n return !0;\n if (r == null)\n return t;\n if (x.is(r) || r instanceof Error) {\n if (e)\n return !0;\n throw r;\n }\n for (const i of s)\n switch (i) {\n case \"any\":\n return !0;\n case \"number\":\n if (Mt(r))\n return !0;\n break;\n case \"string\":\n if (typeof r == \"string\")\n return !0;\n break;\n case \"boolean\":\n if (typeof r == \"boolean\")\n return !0;\n break;\n case \"date\":\n if (r instanceof Date)\n return !0;\n break;\n case \"time\":\n if (b.is(r))\n return !0;\n break;\n case \"matrix\":\n if (at(r))\n return !0;\n break;\n case \"reference\":\n if (Q(r))\n return !0;\n break;\n }\n return !1;\n}, at = (r) => Q(r) || B.is(r) || Array.isArray(r) && Array.isArray(r[0]), Ai = (r, t) => {\n var i;\n if (!at(r))\n return r;\n if (Q(r))\n return nt({ value: r, raise: !1, at: t });\n const e = B.is(r) ? r.matrix : r;\n return (i = e == null ? void 0 : e[0]) == null ? void 0 : i[0];\n}, Ne = (r) => {\n if (Q(r))\n return !r.hasSingleCell;\n if (B.is(r)) {\n const t = r.matrix;\n return t.length > 1 || t.length === 1 && t[0].length > 1;\n }\n return Array.isArray(r) && Array.isArray(r[0]) ? r.length > 1 || r[0].length > 1 : !1;\n}, Fe = (r, t) => {\n const e = [];\n let s = -1, i = 0;\n for (let n = 0; n < r.length; n++)\n r[n].variadic && (s < 0 && (s = n), i++);\n for (let n = 0; n < t; n++)\n if (s >= 0 && n >= s) {\n const o = (n - s) % i;\n e.push(s + o);\n } else n < r.length ? e.push(n) : e.push(r.length - 1);\n return e;\n}, Yt = class Yt {\n constructor({ args: t, sheet: e, at: s }) {\n this.defs = [], this.description = \"\", this.category = \"other\", this.isAsync = !1, this.hashPrecision = 1, this.useInflight = !0, this.broadcastDisabled = !1, this.autoSpilling = !1, this.eachMatrix = (i, n) => {\n if (Q(i)) {\n const o = i.solve({ at: this.at, raise: !0 });\n for (let a = 0; a < o.length; a++)\n for (let l = 0; l < o[a].length; l++)\n n(o[a][l]);\n } else if (B.is(i)) {\n const o = i.matrix;\n for (let a = 0; a < o.length; a++)\n for (let l = 0; l < o[a].length; l++)\n n(o[a][l]);\n } else if (Array.isArray(i) && Array.isArray(i[0]))\n for (let o = 0; o < i.length; o++)\n for (let a = 0; a < i[o].length; a++)\n n(i[o][a]);\n else\n n(i);\n }, this.args = t.map((i) => {\n try {\n return i.evaluate({ sheet: e });\n } catch (n) {\n return n;\n }\n }), this.sheet = e, this.at = s ?? \"?\";\n }\n _main(...t) {\n return this.autoSpilling ? new B(this.main(...t)) : this.main(...t);\n }\n /**\n * Validate and normalise arguments before `main()` is called.\n *\n * Checks:\n * 1. Argument count satisfies defs (respecting optional / variadic).\n * 2. Each argument's runtime type matches the corresponding def's `type` list.\n *\n * Subclasses may override for additional coercion / spreading.\n */\n validate(t) {\n const e = [...t], s = this.defs;\n if (s.length === 0) {\n if (t.length !== 0)\n throw new x(\"#N/A\", \"Too many arguments: expected 0, got \" + t.length + \".\");\n return e;\n }\n let i = 0, n = !1;\n for (const a of s)\n a.variadic && (n = !0), a.optional || i++;\n if (t.length < i)\n throw new x(\"#N/A\", `Too few arguments: expected at least ${i}, got ${t.length}.`);\n if (!n && t.length > s.length)\n throw new x(\"#N/A\", `Too many arguments: expected at most ${s.length}, got ${t.length}.`);\n const o = Fe(s, t.length);\n for (let a = 0; a < t.length; a++) {\n const l = s[o[a]];\n if (!l)\n continue;\n let u = t[a];\n if (!(!l.acceptedTypes || l.acceptedTypes.length === 0)) {\n if (Ne(u)) {\n if (!l.takesMatrix)\n continue;\n } else at(u) && (l.takesMatrix || (u = Ai(u, this.at)));\n if (ge(u) && (u = parseFloat(u.slice(0, -1)) / 100), !Ei(u, l))\n throw new x(\n \"#VALUE!\",\n `Argument \"${l.name}\" (position ${a + 1}) expected ${l.acceptedTypes.join(\" | \")}, got ${typeof u}.`\n );\n e[a] = u;\n }\n }\n return e;\n }\n /**\n * Extract a 2D array from a matrix value (Spilling, Sheet, or nested array).\n * Default behavior for Sheet is value.solve(). Functions like COL can override\n * this to preserve Sheet metadata per cell.\n */\n toMatrix(t) {\n return B.is(t) ? t.matrix : Q(t) ? t.solve({ at: this.at }) : Array.isArray(t) && Array.isArray(t[0]) ? t : [[t]];\n }\n /**\n * Collapse a 1×1 matrix value (Sheet, Spilling, or 2D array) to a scalar.\n * Non-matrix values pass through unchanged.\n *\n * Override in sub-classes that need the original Sheet / reference\n * metadata (e.g. COL, ROW) — for instance, to extract position\n * information before collapsing.\n */\n toScalar(t) {\n var e, s, i;\n if (Q(t)) {\n const { rows: n, cols: o } = t.shape;\n return n === 1 && o === 1 ? t.strip({}) : t;\n }\n return B.is(t) ? (s = (e = t.matrix) == null ? void 0 : e[0]) == null ? void 0 : s[0] : Array.isArray(t) ? Array.isArray(t[0]) ? (i = t[0]) == null ? void 0 : i[0] : t[0] : t;\n }\n call() {\n const t = this.broadcast();\n if (t !== void 0)\n return t;\n if (Rt(this.args, this.at))\n return Gt();\n if (this.args = this.validate(this.args), this.isAsync) {\n const e = yi(this.constructor.name, this.args, this.hashPrecision), s = wi(this.sheet, this.at, e, this.useInflight);\n if (s !== ee)\n return s;\n const i = this._main(...this.args);\n return xi(i, this.sheet, this.at, e, this.ttlMilliseconds, this.useInflight);\n }\n return this._main(...this.args);\n }\n /**\n * If any broadcastable argument is a matrix (multi-cell), expand the call\n * across all element positions and return a Spilling.\n * Returns `undefined` when no broadcast is necessary.\n *\n * Rules:\n * - broadcastDisabled = true → never broadcast\n * - An arg is broadcastable when its corresponding args[].takesMatrix is not true\n * - A Sheet/Spilling/2D-array whose size is (1,1) is treated as a scalar\n * (not broadcast); only multi-cell matrices trigger broadcast\n * - For variadic args, extra args are assigned round-robin\n * across the variadic helpArg positions\n */\n broadcast() {\n if (this.broadcastDisabled)\n return;\n const t = Fe(this.defs, this.args.length), e = this.args.map((u, h) => {\n var f;\n const c = t[h];\n return !((f = this.defs[c]) != null && f.takesMatrix);\n }), s = this.args.map((u, h) => e[h] && Ne(u) ? this.toMatrix(u) : null);\n if (s.every((u) => u === null))\n return;\n const i = this.args.map((u, h) => s[h] !== null ? u : this.toScalar(u));\n let n = 1, o = 1;\n for (const u of s)\n u && (n = Math.max(n, u.length), o = Math.max(\n o,\n u.reduce((h, c) => Math.max(h, c.length), 0)\n ));\n const a = this.args, l = [];\n for (let u = 0; u < n; u++) {\n const h = [];\n for (let c = 0; c < o; c++) {\n const f = i.map((d, p) => {\n var g;\n const m = s[p];\n return m ? ((g = m == null ? void 0 : m[u]) == null ? void 0 : g[c]) ?? null : d;\n });\n try {\n if (mi(f))\n h.push(Gt());\n else {\n const d = this.validate(f);\n Rt(d, this.at) ? h.push(Gt()) : h.push(this._main(...d));\n }\n } catch (d) {\n h.push(d);\n }\n }\n l.push(h);\n }\n return this.args = a, l;\n }\n};\nYt.__name = \"\", Yt.isAsync = !1;\nlet E = Yt;\nconst we = class we extends E {\n constructor() {\n super(...arguments), this.isAsync = !0;\n }\n};\nwe.isAsync = !0;\nlet De = we;\nconst Ci = `Returns the sum of two numbers.\nThis is the same as the '+' operator.`;\nclass Ii extends E {\n constructor() {\n super(...arguments), this.example = \"ADD(2, 3)\", this.description = Ci, this.defs = [\n { name: \"value1\", description: \"First additive.\", acceptedTypes: [\"number\", \"date\", \"time\"] },\n { name: \"value2\", description: \"Second additive.\", acceptedTypes: [\"number\", \"date\", \"time\"] }\n ], this.category = \"math\";\n }\n main(t, e) {\n if (typeof t == \"number\" && typeof e == \"number\")\n return t + e;\n if (t instanceof Date && b.is(e))\n return b.ensure(e).add(t);\n if (b.is(t) && e instanceof Date)\n return b.ensure(t).add(e);\n if (t instanceof Date && typeof e == \"number\")\n return H(t).add(e * Zt, \"second\").toDate();\n if (typeof t == \"number\" && e instanceof Date)\n return H(e).add(t * Zt, \"second\").toDate();\n try {\n return F(t, { alternative: 0 }) + F(e, { alternative: 0 });\n } catch {\n throw new x(\"#VALUE!\", \"Mismatched types for augend or addend.\");\n }\n }\n}\nconst Ti = `Returns the difference of two numbers.\nThis is the same as the '-' operator.`;\nclass Mi extends E {\n constructor() {\n super(...arguments), this.example = \"MINUS(8, 3)\", this.description = Ti, this.defs = [\n { name: \"value1\", description: \"A number that will be subtracted.\", acceptedTypes: [\"number\", \"date\", \"time\"] },\n {\n name: \"value2\",\n description: \"A number that will subtract from value1.\",\n acceptedTypes: [\"number\", \"date\", \"time\"]\n }\n ], this.category = \"math\";\n }\n main(t, e) {\n if (typeof t == \"number\" && typeof e == \"number\")\n return t - e;\n if (t instanceof Date && e instanceof Date)\n return b.fromDates(t, e);\n if (t instanceof Date && b.is(e))\n return b.ensure(e).sub(t);\n if (b.is(t) && e instanceof Date)\n return b.ensure(t).sub(e);\n if (t instanceof Date && typeof e == \"number\")\n return H(t).subtract(e * Zt, \"second\").toDate();\n try {\n return F(t, { alternative: 0 }) - F(e, { alternative: 0 });\n } catch {\n throw new x(\"#VALUE!\", \"Mismatched types for minuend or subtrahend.\");\n }\n }\n}\nconst Oi = `Returns the product of two numbers.\nThis is the same as the '*' operator.`;\nclass Ni extends E {\n constructor() {\n super(...arguments), this.example = \"MULTIPLY(6, 7)\", this.description = Oi, this.defs = [\n { name: \"factor1\", description: \"First factor.\", acceptedTypes: [\"number\"] },\n { name: \"factor2\", description: \"Second factor.\", acceptedTypes: [\"number\"] }\n ], this.category = \"math\";\n }\n main(t, e) {\n return F(t) * F(e);\n }\n}\nconst Fi = `Returns the result of dividing one number by another.\nThis is the same as the '/' operator.`;\nclass Di extends E {\n constructor() {\n super(...arguments), this.example = \"DIVIDE(4, 2)\", this.description = Fi, this.defs = [\n {\n name: \"dividend\",\n description: \"A number that will be divided by divisor.\",\n acceptedTypes: [\"number\"]\n },\n {\n name: \"divisor\",\n description: \"A number that will divide a dividend. Must be non-zero.\",\n acceptedTypes: [\"number\"]\n }\n ], this.category = \"math\";\n }\n validate(t) {\n const e = super.validate(t).map((s) => F(s));\n if (e[1] === 0)\n throw new x(\"#DIV/0!\", \"The second argument must be non-zero.\");\n return e;\n }\n main(t, e) {\n return t / e;\n }\n}\nconst vi = \"Returns the sum of a series of numbers or cells.\";\nclass ki extends E {\n constructor() {\n super(...arguments), this.example = \"SUM(A2:A100, 101)\", this.description = vi, this.defs = [\n {\n name: \"value\",\n description: \"Numbers or ranges to sum.\",\n takesMatrix: !0,\n acceptedTypes: [\"number\", \"matrix\"],\n variadic: !0\n }\n ], this.category = \"math\";\n }\n main(...t) {\n if (t.length === 0)\n return 0;\n let e = 0;\n return t.forEach((s) => {\n ot(\n s,\n (i) => {\n e += F(i, { ignore: !0 });\n },\n this.at\n );\n }), e;\n }\n}\nconst Pi = `Returns the concatenation of two values.\nThis is the same as the '&' operator.`;\nclass $i extends E {\n constructor() {\n super(...arguments), this.example = 'CONCAT(\"Hello\", \"World\")', this.description = Pi, this.defs = [\n {\n name: \"value1\",\n description: \"A value to be concatenated with value2.\",\n acceptedTypes: [\"string\", \"number\", \"boolean\"]\n },\n {\n name: \"value2\",\n description: \"A value to be concatenated with value1\",\n acceptedTypes: [\"string\", \"number\", \"boolean\"]\n }\n ], this.category = \"text\";\n }\n main(t, e) {\n return X(t) + X(e);\n }\n}\nconst Li = `Returns TRUE if the two specified values are equal, FALSE if they are not.\nThis is the same as the '=' operator.`;\nclass Hi extends E {\n constructor() {\n super(...arguments), this.example = \"EQ(6, 7)\", this.description = Li, this.defs = [\n { name: \"value1\", description: \"First value.\", acceptedTypes: [\"any\"] },\n { name: \"value2\", description: \"A value to be compared with value1.\", acceptedTypes: [\"any\"] }\n ], this.category = \"logical\";\n }\n main(t, e) {\n return me(t, e);\n }\n}\nconst Yi = `Returns TRUE if the two specified values are not equal, FALSE if they are.\nThis is the same as the '<>' operator.`;\nclass Bi extends E {\n constructor() {\n super(...arguments), this.example = \"NE(6, 7)\", this.description = Yi, this.defs = [\n { name: \"value1\", description: \"First value.\", acceptedTypes: [\"any\"] },\n { name: \"value2\", description: \"A value to be compared with value1.\", acceptedTypes: [\"any\"] }\n ], this.category = \"logical\";\n }\n main(t, e) {\n return bi(t, e);\n }\n}\nconst Ui = `Returns TRUE if the first argument is truly greater than the second, FALSE otherwise.\nThis is the same as the '>' operator.`;\nclass zi extends E {\n constructor() {\n super(...arguments), this.example = \"GT(5, 3)\", this.description = Ui, this.defs = [\n { name: \"value1\", description: \"First value.\", acceptedTypes: [\"any\"] },\n { name: \"value2\", description: \"A value to be compared with value1.\", acceptedTypes: [\"any\"] }\n ], this.category = \"logical\";\n }\n main(t, e) {\n return fe(t, e);\n }\n}\nconst Vi = `Returns TRUE if the first argument is greater than the second, FALSE otherwise.\nThis is the same as the '>=' operator.`;\nclass Wi extends E {\n constructor() {\n super(...arguments), this.example = \"GTE(5, 3)\", this.description = Vi, this.defs = [\n { name: \"value1\", description: \"First value.\", acceptedTypes: [\"any\"] },\n { name: \"value2\", description: \"A value to be compared with value1.\", acceptedTypes: [\"any\"] }\n ], this.category = \"logical\";\n }\n main(t, e) {\n return pe(t, e);\n }\n}\nconst Xi = `Returns TRUE if the first argument is truely less than the second argument, FALSE otherwise.\nThis is the same as the '<' operator.`;\nclass ji extends E {\n constructor() {\n super(...arguments), this.example = \"LT(3, 6)\", this.description = Xi, this.defs = [\n { name: \"value1\", description: \"First value.\", acceptedTypes: [\"any\"] },\n { name: \"value2\", description: \"A value to be compared with value1.\", acceptedTypes: [\"any\"] }\n ], this.category = \"logical\";\n }\n main(t, e) {\n return ss(t, e);\n }\n}\nconst Gi = `Returns TRUE if the first argument is less than the second argument, FALSE otherwise.\nThis is the same as the '<=' operator.`;\nclass Zi extends E {\n constructor() {\n super(...arguments), this.example = \"LTE(3, 6)\", this.description = Gi, this.defs = [\n { name: \"value1\", description: \"First value.\", acceptedTypes: [\"any\"] },\n { name: \"value2\", description: \"A value to be compared with value1.\", acceptedTypes: [\"any\"] }\n ], this.category = \"logical\";\n }\n main(t, e) {\n return is(t, e);\n }\n}\nconst qi = \"Returns a serial value corresponding to the current date and time.\";\nclass Ki extends E {\n constructor() {\n super(...arguments), this.example = \"NOW()\", this.description = qi, this.defs = [], this.category = \"time\";\n }\n main() {\n return /* @__PURE__ */ new Date();\n }\n}\nconst Ji = `Returns TRUE if all arguments are logically TRUE.\nReturns FALSE if any argument is logically FALSE.`;\nclass Qi extends E {\n constructor() {\n super(...arguments), this.example = \"AND(A1=1, A2=2)\", this.description = Ji, this.defs = [\n {\n name: \"expression\",\n description: \"Logical expressions to evaluate.\",\n acceptedTypes: [\"boolean\", \"number\"],\n variadic: !0\n }\n ], this.category = \"logical\";\n }\n main(...t) {\n return t.map((e) => Ot(e)).reduce((e, s) => e && s);\n }\n}\nconst tr = `Returns TRUE if any argument is logically true.\nReturns FALSE if all arguments are logically false.`;\nclass er extends E {\n constructor() {\n super(...arguments), this.example = \"OR(A1=1, A2=2)\", this.description = tr, this.defs = [\n {\n name: \"expression\",\n description: \"Logical expressions to evaluate.\",\n acceptedTypes: [\"boolean\", \"number\"],\n variadic: !0\n }\n ], this.category = \"logical\";\n }\n main(...t) {\n return t.map((e) => Ot(e)).reduce((e, s) => e || s);\n }\n}\nconst sr = `If the logical expression is TRUE, the second argument is returned.\nIf FALSE, the third argument is returned.`;\nclass ir extends E {\n constructor() {\n super(...arguments), this.example = 'IF(A2 = \"Human\", \"Hello\", \"World\")', this.description = sr, this.defs = [\n { name: \"condition\", description: \"An expression as a condition\", acceptedTypes: [\"any\"] },\n {\n name: \"value1\",\n description: \"value to be returned if the condition is true.\",\n acceptedTypes: [\"any\"]\n },\n {\n name: \"value2\",\n description: \"value to be returned if the condition is false.\",\n optional: !0,\n acceptedTypes: [\"any\"]\n }\n ], this.category = \"logical\";\n }\n main(t, e, s = !1) {\n return Ot(t) ? e : s;\n }\n}\nconst rr = \"Returns the first argument if it is not an error value, otherwise returns the second argument if present, or a blank if the second argument is absent.\";\nclass nr extends E {\n constructor() {\n super(...arguments), this.example = 'IFERROR(A1, \"Error in cell A1\")', this.description = rr, this.defs = [\n {\n name: \"value\",\n description: \"The value to return if value itself is not an error.\",\n acceptedTypes: [\"any\"],\n errorTolerant: !0\n },\n {\n name: \"value_if_error\",\n description: \"The value the function returns if value is an error.\",\n optional: !0,\n acceptedTypes: [\"any\"]\n }\n ], this.category = \"logical\", this.broadcastDisabled = !0;\n }\n main(t, e) {\n return x.is(t) || t instanceof Error ? e : t;\n }\n}\nconst or = `Returns the inverse of the Boolean; if TRUE, NOT returns FALSE.\nIf FALSE, NOT returns TRUE.`;\nclass ar extends E {\n constructor() {\n super(...arguments), this.example = \"NOT(TRUE)\", this.description = or, this.defs = [\n {\n name: \"logical expression\",\n description: \"A logical expression as a boolean.\",\n acceptedTypes: [\"boolean\", \"number\"]\n }\n ], this.category = \"logical\";\n }\n main(t) {\n return !Ot(t);\n }\n}\nconst cr = \"Returns the count of a series of numbers or cells.\";\nclass lr extends E {\n constructor() {\n super(...arguments), this.example = \"COUNT(A2:A100,B2:B100,4,26)\", this.description = cr, this.defs = [\n {\n name: \"value\",\n description: \"Numbers or ranges to count.\",\n takesMatrix: !0,\n acceptedTypes: [\"number\", \"matrix\"],\n variadic: !0\n }\n ], this.category = \"math\";\n }\n main(...t) {\n let e = 0;\n return t.forEach((s) => {\n at(s) ? ot(\n s,\n (i) => {\n Mt(i) && e++;\n },\n this.at\n ) : (F(s), e++);\n }), e;\n }\n}\nconst hr = \"Returns the absolute value of a number\";\nclass ur extends E {\n constructor() {\n super(...arguments), this.example = \"ABS(-2)\", this.description = hr, this.defs = [{ name: \"value\", description: \"target number\", acceptedTypes: [\"number\"] }], this.category = \"math\";\n }\n main(t) {\n return Math.abs(F(t));\n }\n}\nconst dr = \"Returns a number multiplied by an exponent.\";\nclass ve extends E {\n constructor() {\n super(...arguments), this.example = \"POWER(4,0.5)\", this.description = dr, this.defs = [\n { name: \"base\", description: \"A number to be multiplied by an exponent.\", acceptedTypes: [\"number\"] },\n { name: \"exponent\", description: \"An exponent to power the base.\", acceptedTypes: [\"number\"] }\n ], this.category = \"math\";\n }\n main(t, e) {\n return Math.pow(F(t), F(e));\n }\n}\nconst fr = \"Returns the number of values in the data set.\";\nclass pr extends E {\n constructor() {\n super(...arguments), this.example = \"COUNTA(A2:A100,B2:B100,4,26)\", this.description = fr, this.defs = [\n {\n name: \"value\",\n description: \"Values or ranges to count.\",\n takesMatrix: !0,\n acceptedTypes: [\"number\", \"matrix\"],\n variadic: !0\n }\n ], this.category = \"math\";\n }\n main(...t) {\n let e = 0;\n return t.forEach((s) => {\n ot(\n s,\n (i) => {\n i != null && i !== \"\" && e++;\n },\n this.at\n );\n }), e;\n }\n}\nconst mr = \"Returns the average of a series of numbers or cells.\";\nclass gr extends E {\n constructor() {\n super(...arguments), this.example = \"AVERAGE(A2:A100, 101)\", this.description = mr, this.defs = [\n {\n name: \"value\",\n description: \"Numbers or ranges to average.\",\n takesMatrix: !0,\n acceptedTypes: [\"number\", \"matrix\"],\n variadic: !0\n }\n ], this.category = \"statistics\";\n }\n main(...t) {\n let e = 0, s = 0;\n if (t.forEach((i) => {\n if (at(i))\n ot(\n i,\n (n) => {\n Mt(n) && (e += F(n), s++);\n },\n this.at\n );\n else {\n const n = F(i);\n e += n, s++;\n }\n }), s === 0)\n throw new x(\"#DIV/0!\", \"Evaluation of function AVERAGE caused a divide by zero error.\");\n return e / s;\n }\n}\nconst yr = \"Returns the max in a series of numbers or cells.\";\nclass wr extends E {\n constructor() {\n super(...arguments), this.example = \"MAX(A2:A100, 101)\", this.description = yr, this.defs = [\n {\n name: \"value\",\n description: \"Numbers or ranges to find max from.\",\n acceptedTypes: [\"number\", \"matrix\"],\n takesMatrix: !0,\n variadic: !0\n }\n ], this.category = \"statistics\";\n }\n main(...t) {\n let e = -1 / 0, s = !1;\n return t.forEach((i) => {\n if (at(i))\n ot(\n i,\n (n) => {\n if (Mt(n)) {\n const o = F(n);\n o > e && (e = o), s = !0;\n }\n },\n this.at\n );\n else {\n const n = F(i);\n n > e && (e = n), s = !0;\n }\n }), s ? e : 0;\n }\n}\nconst xr = \"Returns the min in a series of numbers or cells.\";\nclass br extends E {\n constructor() {\n super(...arguments), this.example = \"MIN(A2:A100, 101)\", this.description = xr, this.defs = [\n {\n name: \"value\",\n description: \"Numbers or ranges to find min from.\",\n acceptedTypes: [\"number\", \"matrix\"],\n takesMatrix: !0,\n variadic: !0\n }\n ], this.category = \"statistics\";\n }\n main(...t) {\n let e = 1 / 0, s = !1;\n return t.forEach((i) => {\n if (at(i))\n ot(\n i,\n (n) => {\n if (Mt(n)) {\n const o = F(n);\n o < e && (e = o), s = !0;\n }\n },\n this.at\n );\n else {\n const n = F(i);\n n < e && (e = n), s = !0;\n }\n }), s ? e : 0;\n }\n}\nconst Sr = \"Returns the length of a string.\";\nclass Rr extends E {\n constructor() {\n super(...arguments), this.example = \"LEN(A2)\", this.description = Sr, this.defs = [\n {\n name: \"text\",\n description: \"A text to be returned the length.\",\n acceptedTypes: [\"string\", \"number\"]\n }\n ], this.category = \"text\";\n }\n main(t) {\n return X(t).length;\n }\n}\nconst _r = \"Returns a number with positive and negative values reversed.\";\nclass Er extends E {\n constructor() {\n super(...arguments), this.example = \"UMINUS(4)\", this.description = _r, this.defs = [\n { name: \"value1\", description: \"A number that will be subtracted.\", acceptedTypes: [\"number\"] }\n ], this.category = \"math\";\n }\n main(t) {\n return -F(t);\n }\n}\nconst Ar = `Enables the display of values returned from an array formula into multiple rows and/or columns.\nIf the argument is already a Spilling, it is returned as-is. If it is a Sheet (range reference), the field matrix is extracted and wrapped in a Spilling. Otherwise the value is wrapped as a single-element Spilling.`;\nclass Cr extends E {\n constructor() {\n super(...arguments), this.autoSpilling = !0, this.example = \"ARRAYFORMULA(A1:A10 * B1:B10)\", this.description = Ar, this.defs = [\n {\n name: \"value\",\n description: \"The array expression or value to evaluate.\",\n takesMatrix: !0,\n acceptedTypes: [\"matrix\", \"any\"]\n }\n ], this.category = \"logical\", this.broadcastDisabled = !0;\n }\n main(t) {\n return B.is(t) ? t : t instanceof $ ? t._toValueMatrix() : Array.isArray(t) ? t : [[t]];\n }\n}\nconst rs = {\n // Arithmetic & Comparison\n add: Ii,\n minus: Mi,\n uminus: Er,\n multiply: Ni,\n divide: Di,\n pow: ve,\n power: ve,\n concat: $i,\n eq: Hi,\n ne: Bi,\n gt: zi,\n gte: Wi,\n lt: ji,\n lte: Zi,\n // Logical\n if: ir,\n iferror: nr,\n and: Qi,\n or: er,\n not: ar,\n arrayformula: Cr,\n // Statistics & Aggregation\n sum: ki,\n max: wr,\n min: br,\n average: gr,\n count: lr,\n counta: pr,\n // Text\n len: Rr,\n // Math\n abs: ur,\n // Time\n now: Ki\n}, ke = /* @__PURE__ */ new Map(), yn = (r = rs) => {\n let t = ke.get(r);\n return t || (t = Object.keys(r).map((e) => {\n const s = r[e], i = new s({ args: [], sheet: {} });\n return {\n name: e.toUpperCase(),\n category: i.category,\n example: i.example ?? (s == null ? void 0 : s.__name) ?? \"Unknown\",\n description: i.description ?? \"\",\n defs: i.defs || []\n };\n }), ke.set(r, t)), t;\n};\nclass Ir {\n constructor({\n historyLimit: t,\n additionalFunctions: e,\n policies: s = {},\n onSave: i,\n onChange: n,\n onRemoveRows: o,\n onRemoveCols: a,\n onInsertRows: l,\n onInsertCols: u,\n onSelect: h,\n onKeyUp: c,\n onInit: f\n } = {}) {\n this.sheetHead = 0, this.cellHead = 0, this.data = {}, this.systems = {}, this.sheetIdsByName = {}, this.contextsBySheetId = {}, this.choosingSheetId = 0, this.choosingAddress = \"\", this.editingSheetId = 0, this.editingAddress = \"\", this.paletteBySheetName = {}, this.lastFocused = null, this.solvedCaches = /* @__PURE__ */ new Map(), this.lastSpilledTargetIds = /* @__PURE__ */ new Set(), this.asyncFormulaCells = /* @__PURE__ */ new Set(), this.asyncPending = /* @__PURE__ */ new Map(), this.copyingSheetId = 0, this.copyingZone = gs, this.cutting = !1, this.histories = [], this.historyIndex = -1, this.historyLimit = ps, this._componentSheetIds = /* @__PURE__ */ new Map(), this.ready = !1, this.functions = {}, this.policies = {}, this.transmit = (d) => {\n }, this.updateSheet = (d) => ({ type: 0, value: d }), t != null && (this.historyLimit = t), this.functions = {\n ...rs,\n ...e\n };\n for (const d in this.functions) {\n const p = this.functions[d];\n p.__name = d;\n }\n this.policies = s, this.onSave = i, this.onChange = n, this.onRemoveRows = o, this.onRemoveCols = a, this.onInsertRows = l, this.onInsertCols = u, this.onSelect = h, this.onKeyUp = c, this.onInit = f;\n }\n boot() {\n if (this.ready || Object.keys(this.contextsBySheetId).length === 0)\n return;\n const t = Object.keys(this.contextsBySheetId), e = [];\n for (let s = 0; s < t.length; s++) {\n const i = t[s], n = this.contextsBySheetId[i], o = n.store.sheetReactive.current;\n if (!o || o.status === 0)\n return;\n e.push(n);\n }\n for (let s = 0; s < e.length; s++) {\n const { store: i, dispatch: n } = e[s], o = i.sheetReactive.current;\n o && (o.resolveFormulas(), n(this.updateSheet(o)));\n }\n this.ready = !0;\n }\n}\nconst ye = (r = {}) => new Ir(r), wn = ye, xn = (r = {}) => ({ registry: ye(r) }), Tr = (r) => ({\n renderNumber({ value: t }) {\n if (t == null || isNaN(t))\n return \"NaN\";\n const [e, s] = String(parseFloat(t.toPrecision(this.decimalPrecision))).split(\".\"), i = e.replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, `$1${r}`);\n return s == null ? i : `${i}.${s}`;\n }\n}), bn = Tr(\",\"), Sn = {\n renderNumber({ value: r }) {\n return r == null || isNaN(r) ? \"0%\" : `${parseFloat((r * 100).toPrecision(this.decimalPrecision))}%`;\n }\n}, Rn = (r, t, e, s) => {\n if (t != null)\n return t;\n const i = r.getPolicy(e);\n return (e.x === 0 ? i.renderRowHeaderLabel(s) : i.renderColHeaderLabel(s)) ?? null;\n}, _n = [\n // orange\n \"#FF6600\",\n // purple\n \"#AA44FF\",\n // emeraldblue\n \"#00CCCC\",\n // peach\n \"#EEAAEE\",\n // yellow\n \"#DDDD00\",\n // winered\n \"#AA4444\",\n // lightgreen\n \"#00FF00\",\n // pink\n \"#FF00FF\",\n // navy\n \"#3366FF\",\n // cyan\n \"#008888\"\n], z = \"dashed 1px #888888\", Pe = {\n left: [\"horizontal\", -1],\n right: [\"horizontal\", 1],\n up: [\"vertical\", -1],\n down: [\"vertical\", 1],\n none: [\"none\", 0]\n};\nclass En {\n constructor(t, e) {\n const { sheetReactive: s, choosing: i, selectingZone: n } = t, o = s.current;\n if (!o)\n throw new Error(\"Sheet is not available\");\n this.src = Is(Rs(n), i), this.direction = this.suggestDirection(e), this.dst = this.getDestinationArea(e), this.sheet = o;\n }\n get applied() {\n var f, d;\n const [t, e] = Pe[this.direction], { top: s, left: i, bottom: n, right: o } = this.src, a = se(n - s + 1, o - i + 1);\n for (let p = s; p <= n; p++)\n for (let m = i; m <= o; m++)\n a[p - s][m - i] = this.sheet.getCell({ y: p, x: m }, { resolution: \"SYSTEM\" }) ?? null;\n const l = Kt(this.src), u = Kt(this.dst), h = {};\n if (t === \"horizontal\")\n for (let p = 0; p < u.rows; p++) {\n const m = this.getChangePatterns(a[p], \"\");\n for (let g = 0; g < u.cols; g++) {\n const y = (f = a[p % l.rows]) == null ? void 0 : f[g % l.cols], R = e > 0 ? this.dst.left + g : this.dst.right - g, A = e > 0 ? g % l.cols : (l.cols - 1 - g % l.cols) % l.cols, w = { y: this.dst.top + p, x: R }, S = this.sheet.getId(w), _ = m[A].next().value, M = (y == null ? void 0 : y.formulaEnabled) ?? !0 ? this.sheet.processFormula(_, {\n dependency: S\n }) : _;\n h[D(w)] = {\n ...y,\n value: M\n };\n }\n }\n else if (t === \"vertical\")\n for (let p = 0; p < u.cols; p++) {\n const m = this.getChangePatterns(\n a.map((g) => g[p]),\n \"\"\n );\n for (let g = 0; g < u.rows; g++) {\n const y = (d = a[g % l.rows]) == null ? void 0 : d[p % l.cols], R = e > 0 ? this.dst.top + g : this.dst.bottom - g, A = e > 0 ? g % l.rows : (l.rows - 1 - g % l.rows) % l.rows, w = m[A].next().value;\n h[D({ y: R, x: this.dst.left + p })] = { ...y, value: w };\n }\n }\n return this.sheet.update({\n diff: h,\n operator: \"USER\",\n undoReflection: {\n sheetId: this.sheet.id,\n selectingZone: Ee(this.src)\n },\n redoReflection: {\n sheetId: this.sheet.id,\n selectingZone: Ee(this.dst)\n }\n });\n }\n get wholeArea() {\n return Ss(this.src, this.dst);\n }\n getCellStyle(t) {\n const { x: e, y: s } = t, i = {}, { top: n, left: o, bottom: a, right: l } = this.src;\n switch (this.direction) {\n case \"left\": {\n this.dst.left <= e && e <= this.dst.right && (n === s && (i.borderTop = z), a === s - 1 && (i.borderTop = z)), this.dst.left === e && n <= s && s <= a && (i.borderLeft = z);\n break;\n }\n case \"right\": {\n this.dst.left <= e && e <= this.dst.right && (n === s && (i.borderTop = z), a === s - 1 && (i.borderTop = z)), this.dst.right === e - 1 && n <= s && s <= a && (i.borderLeft = z);\n break;\n }\n case \"up\": {\n this.dst.top <= s && s <= this.dst.bottom && (o === e && (i.borderLeft = z), l === e - 1 && (i.borderLeft = z)), this.dst.top === s && o <= e && e <= l && (i.borderTop = z);\n break;\n }\n case \"down\": {\n this.dst.top <= s && s <= this.dst.bottom && (o === e && (i.borderLeft = z), l === e - 1 && (i.borderLeft = z)), this.dst.bottom === s - 1 && o <= e && e <= l && (i.borderTop = z);\n break;\n }\n }\n return i;\n }\n getDestinationArea(t) {\n const { x: e, y: s } = t, { top: i, left: n, bottom: o, right: a } = this.src;\n switch (this.direction) {\n case \"left\":\n return { top: i, bottom: o, left: e, right: n - 1 };\n case \"right\":\n return { top: i, bottom: o, left: a + 1, right: e };\n case \"up\":\n return { left: n, right: a, top: s, bottom: i - 1 };\n case \"down\":\n return { left: n, right: a, top: o + 1, bottom: s };\n }\n return this.src;\n }\n suggestDirection(t) {\n const { top: e, left: s, bottom: i, right: n } = this.src;\n let o = 0, a = 0;\n return t.x < s ? o = t.x - s : t.x > n && (o = t.x - n), t.y < e ? a = t.y - e : t.y > i && (a = t.y - i), Math.abs(o) > 0 && Math.abs(a) > 0 ? Math.abs(o) > Math.abs(a) ? o < 0 ? \"left\" : \"right\" : a < 0 ? \"up\" : \"down\" : o !== 0 ? o < 0 ? \"left\" : \"right\" : a !== 0 ? a < 0 ? \"up\" : \"down\" : \"none\";\n }\n getChangePatterns(t, e) {\n const s = [], i = Mr(t), [n, o] = Pe[this.direction];\n return i.forEach((a) => {\n const l = o > 0 ? a.last : a.first;\n switch (a.kind) {\n case \"other\": {\n s.push(st(a.first));\n return;\n }\n case \"formula\": {\n const u = a.first, h = this.sheet;\n function* c() {\n let f = 0;\n const d = t.length * o;\n for (; ; )\n f += d, yield h.processFormula(u, {\n dependency: e,\n slideY: n === \"vertical\" ? f : 0,\n slideX: n === \"horizontal\" ? f : 0\n });\n }\n s.push(c());\n return;\n }\n case \"number\": {\n if (!a.equidistant) {\n s.push(st(a.first), ...a.nexts.map((c) => st(c)));\n return;\n }\n function* u() {\n let c = l;\n const f = a.numericDelta * o;\n for (; ; )\n c += f, yield c;\n }\n const h = u();\n s.push(h, ...a.nexts.map(() => h));\n return;\n }\n case \"date\": {\n const u = (f) => o > 0 ? a.time.add(f) : a.time.sub(f);\n if (!a.equidistant) {\n s.push(st(a.first), ...a.nexts.map((f) => st(f)));\n return;\n }\n function* h() {\n let f = l;\n for (; ; )\n f = u(f), yield new Date(f);\n }\n const c = h();\n s.push(c, ...a.nexts.map(() => c));\n return;\n }\n case \"string+number\": {\n if (!a.equidistant) {\n s.push(st(a.first), ...a.nexts.map((c) => st(c)));\n return;\n }\n function* u() {\n const { prefix: c } = it(a.first), { number: f } = it(l);\n let d = f;\n const p = a.numericDelta * o;\n for (; ; )\n d += p, yield `${c}${Math.abs(d)}`;\n }\n const h = u();\n s.push(h, ...a.nexts.map(() => h));\n return;\n }\n }\n }), s;\n }\n}\nfunction* st(r) {\n for (; ; )\n yield r;\n}\nconst ns = new RegExp(\"(.+?)(\\\\d+)$\"), it = (r) => {\n const t = r.match(ns);\n if (t) {\n const [, e, s] = t;\n return { prefix: e, number: Number(s) };\n }\n return { prefix: \"\", number: 0 };\n};\nclass Ht {\n constructor(t) {\n this.time = b.create(), this.numericDelta = 0, this.equidistant = !0, this.first = t, this.nexts = [], this.kind = this.discriminate(t);\n }\n discriminate(t) {\n const e = t instanceof Date ? \"date\" : typeof t;\n return e === \"number\" || e === \"date\" ? e : e === \"string\" && t[0] === \"=\" ? \"formula\" : e === \"string\" && t.match(ns) ? \"string+number\" : \"other\";\n }\n get last() {\n return this.nexts.length === 0 ? this.first : this.nexts[this.nexts.length - 1];\n }\n add(t) {\n const e = this.discriminate(t);\n if (this.kind !== e || e === \"other\" || e === \"formula\")\n return new Ht(t);\n if (this.nexts.length === 0)\n switch (e) {\n case \"date\": {\n this.time = b.fromDates(t, this.first);\n break;\n }\n case \"number\": {\n this.numericDelta = t - this.first;\n break;\n }\n case \"string+number\": {\n const { prefix: s, number: i } = it(this.first), { prefix: n, number: o } = it(t);\n s === n && (this.numericDelta = o - i);\n break;\n }\n }\n this.nexts.push(t);\n }\n subdivide() {\n if (this.nexts.length === 0)\n return [];\n const t = [];\n let e = this;\n switch (this.kind) {\n case \"date\": {\n const s = this.nexts.every((i, n) => n === 0 || H(i).isSame(this.time.add(this.nexts[n - 1])));\n return this.equidistant = s, [];\n }\n case \"number\": {\n const s = this.nexts.every((i, n) => n === 0 || i === this.first + this.numericDelta * (n + 1));\n return this.equidistant = s, [];\n }\n case \"string+number\": {\n const { prefix: s } = it(this.first);\n for (let i = 0; i < e.nexts.length; i++) {\n const n = e.nexts[i], { prefix: o, number: a } = it(n);\n if (s !== o) {\n const l = this.nexts.splice(i, this.nexts.length);\n e = new Ht(l.splice(0, 1)[0]), l.forEach(e.add.bind(e)), t.push(e, ...e.subdivide());\n break;\n } else {\n const { number: l } = it(e.first);\n a !== l + (i + 1) * e.numericDelta && (e.equidistant = !1);\n }\n }\n break;\n }\n }\n return t;\n }\n}\nfunction Mr(r) {\n var s, i;\n let t = new Ht((s = r[0]) == null ? void 0 : s.value);\n const e = [t];\n for (let n = 1; n < r.length; n++) {\n const o = (i = r[n]) == null ? void 0 : i.value, a = t.add(o);\n a && (e.push(a), t = a);\n }\n for (let n = e.length - 1; n >= 0; n--) {\n const o = e[n];\n e.splice(n + 1, 0, ...o.subdivide());\n }\n return e;\n}\nexport {\n En as Autofill,\n E as BaseFunction,\n De as BaseFunctionAsync,\n _n as COLOR_PALETTE,\n Dt as DEFAULT_COL_KEY,\n J as DEFAULT_HEIGHT,\n ps as DEFAULT_HISTORY_LIMIT,\n vt as DEFAULT_ROW_KEY,\n jt as DEFAULT_WIDTH,\n x as FormulaError,\n nn as FormulaParser,\n Re as HEADER_HEIGHT,\n _e as HEADER_WIDTH,\n $t as Lexer,\n Pr as MIN_HEIGHT,\n kr as MIN_WIDTH,\n $r as OVERSCAN_X,\n Lr as OVERSCAN_Y,\n k as Pending,\n Sn as PercentagePolicyMixin,\n de as Policy,\n Be as RangeEntity,\n Ye as RefEntity,\n Ir as Registry,\n Dr as SHEET_HEIGHT,\n vr as SHEET_WIDTH,\n $ as Sheet,\n B as Spilling,\n bn as ThousandSeparatorPolicyMixin,\n b as Time,\n ie as ValueEntity,\n N as a2p,\n Zr as aa2oa,\n tn as addressesToAreas,\n en as addressesToCols,\n sn as addressesToRows,\n Wr as among,\n Ae as areaDiff,\n Kt as areaShape,\n zr as areaToRange,\n Ee as areaToZone,\n Vr as between,\n Qr as binarySearch,\n Es as buildInitialCells,\n qr as buildInitialCellsFromOrigin,\n _t as c2x,\n Yr as ch,\n _i as check,\n Is as complementSelectingArea,\n Ss as concatAreas,\n gn as conditionArg,\n wn as createBinding,\n xn as createBook,\n mn as createBooleanMask,\n se as createMatrix,\n ye as createRegistry,\n ot as eachMatrix,\n Ot as ensureBoolean,\n Si as ensureDate,\n F as ensureNumber,\n X as ensureString,\n yn as getFunctionHelps,\n Rn as getLabel,\n Cs as getMaxSizesFromCells,\n Le as grantAddressAbsolute,\n Mt as isNumeric,\n ge as isPercentage,\n rn as isZoneNotSelected,\n jr as makeSequence,\n Nt as matrixShape,\n Gr as oa2aa,\n pn as operations,\n D as p2a,\n bs as r2y,\n Kr as range,\n Jr as restrictZone,\n Hr as rh,\n zs as splitRef,\n Br as stripAddressAbsolute,\n Ai as stripMatrix,\n on as stripSheetName,\n Ur as superposeArea,\n fn as toCellCols,\n hn as toCellMatrix,\n un as toCellObject,\n dn as toCellRows,\n Ws as toSheetPrefix,\n ln as toValueCols,\n Vs as toValueMatrix,\n an as toValueObject,\n cn as toValueRows,\n W as x2c,\n Et as y2r,\n Xr as zoneShape,\n Rs as zoneToArea\n};\n//# sourceMappingURL=index.js.map\n","import React, { useEffect, useState } from 'react';\nimport type { BookType } from '@gridsheet/web';\nimport { a2p, x2c, Lexer, FormulaParser, Sheet } from '@gridsheet/web';\nimport { Light as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport type { SyntaxHighlighterProps } from 'react-syntax-highlighter';\nimport jsonLang from 'react-syntax-highlighter/dist/esm/languages/hljs/json';\nimport atomOneLight from 'react-syntax-highlighter/dist/esm/styles/hljs/atom-one-light';\nimport tomorrowNight from 'react-syntax-highlighter/dist/esm/styles/hljs/tomorrow-night';\nimport solarizedDark from 'react-syntax-highlighter/dist/esm/styles/hljs/solarized-dark';\nimport solarizedLight from 'react-syntax-highlighter/dist/esm/styles/hljs/solarized-light';\nimport docco from 'react-syntax-highlighter/dist/esm/styles/hljs/docco';\nimport atelierSeasideLight from 'react-syntax-highlighter/dist/esm/styles/hljs/atelier-seaside-light';\nimport atelierHeathLight from 'react-syntax-highlighter/dist/esm/styles/hljs/atelier-heath-light';\n\nSyntaxHighlighter.registerLanguage('json', jsonLang);\n\nconst ss = {\n get: (key: string) => (typeof window !== 'undefined' ? sessionStorage.getItem(key) : null),\n set: (key: string, value: string) => {\n if (typeof window !== 'undefined') {\n sessionStorage.setItem(key, value);\n }\n },\n};\n\ntype HljsStyle = SyntaxHighlighterProps['style'];\n\nconst JsonCode: React.FC<{ data: any; replacer?: (k: string, v: any) => any; theme: HljsStyle }> = ({\n data,\n replacer,\n theme,\n}) => {\n const code = JSON.stringify(data, replacer, 2) ?? '';\n return (\n <SyntaxHighlighter\n language=\"json\"\n style={theme}\n showLineNumbers\n customStyle={{ margin: 0, fontSize: '10px', minHeight: '100%', borderRadius: 0, whiteSpace: 'pre' }}\n codeTagProps={{ style: { display: 'block', whiteSpace: 'pre', fontSize: '10px' } }}\n >\n {code}\n </SyntaxHighlighter>\n );\n};\n\nexport type DebuggerProps = {\n book: BookType;\n intervalMs?: number;\n};\n\nexport const Debugger: React.FC<DebuggerProps> = ({ book, intervalMs = 500 }) => {\n const { registry } = book;\n const [snapshot, setSnapshot] = useState<any>({});\n const [activeTabId, setActiveTabId] = useState<number | null>(null);\n const [topHeight, setTopHeight] = useState<number>(200);\n const [bottomHeight, setBottomHeight] = useState<number>(200);\n const [formulaView, setFormulaView] = useState<'expressions' | 'tokens'>('expressions');\n\n useEffect(() => {\n const savedTop = ss.get('gs-debugger-top-height');\n if (savedTop) {\n setTopHeight(Number(savedTop));\n }\n const savedBottom = ss.get('gs-debugger-bottom-height');\n if (savedBottom) {\n setBottomHeight(Number(savedBottom));\n }\n const savedFormula = ss.get('gs-debugger-formula-view') as 'expressions' | 'tokens';\n if (savedFormula) {\n setFormulaView(savedFormula);\n }\n }, []);\n\n useEffect(() => {\n const updateSnapshot = () => {\n if (!registry) {\n return;\n }\n\n const {\n choosingAddress,\n choosingSheetId,\n editingAddress,\n editingSheetId,\n ready,\n sheetIdsByName,\n sheetHead,\n cellHead,\n paletteBySheetName,\n solvedCaches,\n copyingSheetId,\n copyingZone,\n cutting,\n historyIndex,\n historyLimit,\n histories,\n asyncPending,\n asyncInflight,\n } = registry;\n\n setSnapshot({\n asyncPending,\n asyncInflight,\n ready,\n sheetIdsByName,\n sheetHead,\n cellHead,\n paletteBySheetName,\n solvedCaches,\n choosingAddress,\n choosingSheetId,\n editingAddress,\n editingSheetId,\n copyingSheetId,\n copyingZone,\n cutting,\n historyIndex,\n historyLimit,\n histories,\n });\n };\n\n updateSnapshot();\n\n const intervalId = setInterval(updateSnapshot, intervalMs);\n return () => clearInterval(intervalId);\n }, [registry, intervalMs]);\n\n const sheets = snapshot.sheetIdsByName\n ? Object.entries(snapshot.sheetIdsByName)\n .map(([name, id]) => ({ id: id as number, name }))\n .sort((a, b) => a.id - b.id)\n : [];\n\n useEffect(() => {\n if (activeTabId === null && sheets.length > 0) {\n setActiveTabId(sheets[0].id);\n }\n }, [sheets.length, activeTabId]);\n\n let activeStoreData = null;\n let activeTableData = null;\n\n // Cell data for the currently selected cell (registry.choosingSheetId / choosingAddress)\n let registryCellData = null;\n let registrySystemData = null;\n let registryCellAddress = registry?.choosingAddress || '';\n let registryCellSheetName = '';\n let registryFormulaExpr = null;\n let registryFormulaTokens = null;\n\n if (registry && activeTabId !== null) {\n const { contextsBySheetId } = registry;\n const context = contextsBySheetId[activeTabId];\n\n if (context) {\n activeStoreData = context.store;\n\n const sheet = context.store.sheetReactive.current;\n if (sheet) {\n activeTableData = sheet;\n }\n }\n }\n\n // Resolve cell data for the currently selected cell (registry.choosingSheetId / choosingAddress)\n if (registry && registry.choosingSheetId != null) {\n const { contextsBySheetId } = registry;\n const choosingContext = contextsBySheetId[registry.choosingSheetId];\n\n // Resolve sheet name\n if (registry.sheetIdsByName) {\n const entry = Object.entries(registry.sheetIdsByName).find(([, id]) => id === registry.choosingSheetId);\n if (entry) {\n registryCellSheetName = entry[0];\n }\n }\n\n if (choosingContext) {\n const sheet = choosingContext.store.sheetReactive.current;\n const store = choosingContext.store;\n if (sheet) {\n const rawTable = (sheet as any).__raw__ || sheet;\n\n // When a header cell is selected, use y=0 (top header) or x=0 (left header)\n const isTopHeaderSelecting = store.topHeaderSelecting;\n const isLeftHeaderSelecting = store.leftHeaderSelecting;\n const pos = isTopHeaderSelecting\n ? { y: 0, x: store.choosing.x }\n : isLeftHeaderSelecting\n ? { y: store.choosing.y, x: 0 }\n : a2p(registry.choosingAddress);\n\n if (isTopHeaderSelecting) {\n registryCellAddress = `header:${x2c(store.choosing.x)}`;\n } else if (isLeftHeaderSelecting) {\n registryCellAddress = `header:${store.choosing.y}`;\n }\n\n if (pos) {\n const id = rawTable.getId(pos);\n if (id) {\n registryCellData = registry.data[id];\n registrySystemData = registry.systems[id] ?? null;\n\n // Parse formula\n const text = registryCellData?.value;\n if (typeof text === 'string' && text.startsWith('=')) {\n try {\n const lexer = new Lexer(text.substring(1));\n lexer.tokenize();\n registryFormulaTokens = lexer.tokens;\n const parser = new FormulaParser(lexer.tokens);\n registryFormulaExpr = parser.build();\n } catch (e) {\n registryFormulaExpr = { error: String(e) };\n }\n }\n }\n }\n }\n }\n }\n\n const baseReplacer = (key: string, value: any) => {\n // Avoid circular refs, noisy internals, and React RefObjects\n if (\n key === 'registry' ||\n key === '__raw__' ||\n (value && typeof value === 'object' && 'current' in value && Object.keys(value).length === 1) // heuristic to skip React ref objects\n ) {\n return undefined;\n }\n if (value instanceof Map) {\n return Object.fromEntries(value.entries());\n }\n if (value instanceof Set) {\n return Array.from(value);\n }\n return value;\n };\n\n // Replace nested Sheet instances with their string representation (for Registry State / Store Data panels)\n const jsonReplacer = (key: string, value: any) => {\n if (value instanceof Sheet) {\n return value.toString();\n }\n return baseReplacer(key, value);\n };\n\n const startDrag = (e: React.MouseEvent) => {\n e.preventDefault();\n const startY = e.clientY;\n const startHeight = topHeight;\n const onMouseMove = (moveEvent: MouseEvent) => {\n const h = Math.max(100, startHeight + moveEvent.clientY - startY);\n setTopHeight(h);\n ss.set('gs-debugger-top-height', String(h));\n };\n const onMouseUp = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n };\n\n const startDragBottom = (e: React.MouseEvent) => {\n e.preventDefault();\n const startY = e.clientY;\n const startHeight = bottomHeight;\n const onMouseMove = (moveEvent: MouseEvent) => {\n const h = Math.max(100, startHeight + moveEvent.clientY - startY);\n setBottomHeight(h);\n ss.set('gs-debugger-bottom-height', String(h));\n };\n const onMouseUp = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n };\n\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n fontFamily: 'monospace',\n fontSize: '12px',\n color: '#212529',\n border: '1px solid #dee2e6',\n borderRadius: '6px',\n overflow: 'hidden',\n }}\n >\n {/* Top pane: Registry State | Cell | System | Formula */}\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n height: `${topHeight}px`,\n overflow: 'hidden',\n }}\n >\n {/* Registry State panel */}\n <div\n style={{\n flex: 1,\n borderRight: '1px solid #dee2e6',\n backgroundColor: '#fafafa',\n overflow: 'auto',\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n background: '#fafafa',\n zIndex: 1,\n padding: '8px 12px',\n fontWeight: 'bold',\n borderBottom: '2px solid #ccc',\n }}\n >\n Registry State\n </div>\n <JsonCode data={snapshot} replacer={jsonReplacer} theme={atomOneLight} />\n </div>\n\n {/* Registry Cell Value: cell data for registry.choosingSheetId / choosingAddress */}\n <div\n style={{\n flex: 1,\n borderRight: '1px solid #dee2e6',\n overflow: 'auto',\n backgroundColor: '#f0f8f0',\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n background: '#f0f8f0',\n zIndex: 1,\n padding: '8px 12px',\n fontWeight: 'bold',\n borderBottom: '2px solid #ccc',\n }}\n >\n Cell: {registryCellSheetName && `'${registryCellSheetName}'!`}\n {registryCellAddress}\n </div>\n {registryCellData ? (\n <JsonCode data={registryCellData} replacer={baseReplacer} theme={atelierSeasideLight} />\n ) : (\n <div style={{ fontStyle: 'italic', color: '#6c757d', padding: '12px' }}>No cell data</div>\n )}\n </div>\n\n {/* System: systems[id] for the choosing cell */}\n <div\n style={{\n flex: 1,\n borderRight: '1px solid #dee2e6',\n overflow: 'auto',\n backgroundColor: '#fdf0f2',\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n background: '#fdf0f2',\n zIndex: 1,\n padding: '8px 12px',\n fontWeight: 'bold',\n borderBottom: '2px solid #ccc',\n }}\n >\n System: {registryCellSheetName && `'${registryCellSheetName}'!`}\n {registryCellAddress}\n </div>\n {registrySystemData ? (\n <JsonCode data={registrySystemData} replacer={baseReplacer} theme={atelierHeathLight} />\n ) : (\n <div style={{ fontStyle: 'italic', color: '#6c757d', padding: '12px' }}>No system data</div>\n )}\n </div>\n\n {/* Formula: toggling between Expressions and Tokens */}\n <div\n style={{\n flex: 1,\n overflow: 'auto',\n backgroundColor: formulaView === 'expressions' ? '#fffbf0' : '#f5f0ff',\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n background: formulaView === 'expressions' ? '#fffbf0' : '#f5f0ff',\n zIndex: 1,\n padding: '6px 12px',\n fontWeight: 'bold',\n borderBottom: '2px solid #ccc',\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n }}\n >\n <span>{formulaView === 'expressions' ? 'Formula Expressions' : 'Formula Tokens'}</span>\n <button\n onClick={() => {\n const next = formulaView === 'expressions' ? 'tokens' : 'expressions';\n setFormulaView(next);\n ss.set('gs-debugger-formula-view', next);\n }}\n style={{\n marginLeft: 'auto',\n fontSize: '11px',\n padding: '2px 8px',\n cursor: 'pointer',\n border: '1px solid #aaa',\n borderRadius: '4px',\n background: '#fff',\n }}\n >\n {formulaView === 'expressions' ? '→ Tokens' : '→ Expressions'}\n </button>\n </div>\n {registryCellData ? (\n <JsonCode\n data={formulaView === 'expressions' ? registryFormulaExpr : registryFormulaTokens}\n replacer={baseReplacer}\n theme={formulaView === 'expressions' ? solarizedLight : docco}\n />\n ) : (\n <div style={{ fontStyle: 'italic', color: '#6c757d', padding: '12px' }}>No cell selected</div>\n )}\n </div>\n </div>\n\n {/* Resizer for top pane */}\n <div\n onMouseDown={startDrag}\n style={{\n height: '6px',\n backgroundColor: '#dee2e6',\n cursor: 'row-resize',\n transition: 'background-color 0.2s',\n zIndex: 10,\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#adb5bd';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = '#dee2e6';\n }}\n />\n\n {/* Sheet tabs */}\n <div\n style={{\n display: 'flex',\n borderBottom: '1px solid #dee2e6',\n borderTop: '1px solid #dee2e6',\n backgroundColor: '#f8f9fa',\n }}\n >\n {sheets.map((sheet) => (\n <div\n key={sheet.id}\n onClick={() => setActiveTabId(sheet.id)}\n style={{\n padding: '8px 16px',\n cursor: 'pointer',\n fontWeight: 'bold',\n borderBottom: activeTabId === sheet.id ? '2px solid #0d6efd' : '2px solid transparent',\n color: activeTabId === sheet.id ? '#0d6efd' : '#495057',\n }}\n >\n {sheet.name} (ID: {sheet.id})\n </div>\n ))}\n {sheets.length === 0 && <div style={{ padding: '8px 16px', color: '#6c757d' }}>No sheets detected</div>}\n </div>\n\n {/* Bottom pane: Sheet Data | Store Data */}\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n height: `${bottomHeight}px`,\n backgroundColor: '#282c34',\n overflow: 'hidden',\n }}\n >\n <div\n style={{\n flex: 1,\n borderRight: '1px solid #3a3a3a',\n overflow: 'auto',\n position: 'relative',\n backgroundColor: '#282c34',\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n background: '#21252b',\n zIndex: 1,\n padding: '8px 12px',\n fontWeight: 'bold',\n borderBottom: '2px solid #3a3a3a',\n color: '#abb2bf',\n }}\n >\n Sheet Data\n </div>\n {activeTableData ? (\n <JsonCode data={activeTableData} replacer={baseReplacer} theme={tomorrowNight} />\n ) : (\n <div style={{ fontStyle: 'italic', color: '#6c757d', padding: '12px' }}>Sheet instance not found</div>\n )}\n </div>\n\n <div\n style={{\n flex: 1,\n overflow: 'auto',\n backgroundColor: '#282c34',\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n background: '#21252b',\n zIndex: 1,\n padding: '8px 12px',\n fontWeight: 'bold',\n borderBottom: '2px solid #3a3a3a',\n color: '#abb2bf',\n }}\n >\n Store Data\n </div>\n {activeStoreData ? (\n <JsonCode data={activeStoreData} replacer={jsonReplacer} theme={solarizedDark} />\n ) : (\n <div style={{ fontStyle: 'italic', color: '#6c757d', padding: '12px' }}>Store state not found</div>\n )}\n </div>\n </div>\n\n {/* Resizer for bottom pane */}\n <div\n onMouseDown={startDragBottom}\n style={{\n height: '6px',\n backgroundColor: '#dee2e6',\n cursor: 'row-resize',\n transition: 'background-color 0.2s',\n zIndex: 10,\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#adb5bd';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = '#dee2e6';\n }}\n />\n </div>\n );\n};\n"],"names":["e","module","this","n","i","s","u","a","o","c","h","d","l","$","y","M","t","m","r","v","g","D","p","S","_","w","O","b","f","k","ps","J","jt","Re","_e","$e","Zt","ms","gs","ys","Ft","Dt","vt","qt","gt","yt","ws","xs","W","_t","Et","bs","N","Le","He","Kt","Nt","se","Cs","Ts","et","Ms","Ce","x","ut","At","wt","B","Pt","rt","ie","Os","Ns","Ye","dt","Be","Jt","Qt","kt","Fs","Ds","vs","Ue","ks","I","Ps","Ie","Ls","Hs","L","Ys","Bs","$t","Us","ze","nn","zs","bt","Lt","tt","Vs","We","Ws","Bt","Ut","It","Tt","ht","zt","ce","Vt","le","Wt","St","H","fs","ds","Qe","qs","Ks","Js","Qs","ts","ti","de","Q","xt","ei","j","ft","pt","mt","si","ii","ri","ni","oi","ai","ci","li","hi","ui","di","Te","fi","lt","Me","pi","ye","R","A","te","T","C","Y","U","G","V","q","P","K","ct","os","xe","as","Xt","cs","be","ls","hs","Se","us","Z","nt","Oe","ee","mi","es","Rt","gi","yi","wi","xi","Gt","fe","X","F","pe","ss","is","me","bi","ge","Mt","Ot","ot","Ei","at","Ai","Ne","Fe","Yt","E","we","Ci","Ii","Ti","Oi","Ni","Fi","Di","vi","ki","Pi","$i","Li","Hi","Yi","Bi","Ui","zi","Vi","Wi","Xi","ji","Gi","Zi","qi","Ki","Ji","Qi","tr","er","sr","ir","rr","nr","or","ar","cr","lr","hr","ur","dr","ve","fr","pr","mr","gr","yr","wr","xr","br","Sr","Rr","_r","Er","Ar","Cr","rs","Ir","SyntaxHighlighter","jsonLang","key","value","JsonCode","data","replacer","theme","code","jsx","Debugger","book","intervalMs","registry","snapshot","setSnapshot","useState","activeTabId","setActiveTabId","topHeight","setTopHeight","bottomHeight","setBottomHeight","formulaView","setFormulaView","useEffect","savedTop","savedBottom","savedFormula","updateSnapshot","choosingAddress","choosingSheetId","editingAddress","editingSheetId","ready","sheetIdsByName","sheetHead","cellHead","paletteBySheetName","solvedCaches","copyingSheetId","copyingZone","cutting","historyIndex","historyLimit","histories","asyncPending","asyncInflight","intervalId","sheets","name","id","activeStoreData","activeTableData","registryCellData","registrySystemData","registryCellAddress","registryCellSheetName","registryFormulaExpr","registryFormulaTokens","contextsBySheetId","context","sheet","choosingContext","entry","store","rawTable","isTopHeaderSelecting","isLeftHeaderSelecting","pos","a2p","x2c","text","lexer","Lexer","FormulaParser","baseReplacer","jsonReplacer","Sheet","startDrag","startY","startHeight","onMouseMove","moveEvent","onMouseUp","startDragBottom","jsxs","atomOneLight","atelierSeasideLight","atelierHeathLight","next","solarizedLight","docco","tomorrowNight","solarizedDark"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.js","../../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/utc.js","../../../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/timezone.js","../../engine/dist/index.js","../src/Debugger.tsx"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","import z from \"dayjs\";\nimport As from \"dayjs/plugin/utc.js\";\nimport Is from \"dayjs/plugin/timezone.js\";\nconst Cs = 20, rt = 24, he = 90, jr = 500, Gr = 1e3, $e = 24, Le = 50, Zr = 5, qr = 5, Kr = 5, Jr = 10, qe = 1e3, fe = 86400, Ts = \"YYYY-MM-DDTHH:mm:ss.SSSZ\", Ms = {\n startY: -1,\n startX: -1,\n endY: -1,\n endX: -1\n}, Fs = new Date(1900, 0, 1), vt = \"default\", kt = \"defaultCol\", $t = \"defaultRow\", pe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\", Ft = /* @__PURE__ */ new Map(), Ot = /* @__PURE__ */ new Map(), Os = (r, t = qe) => {\n const e = Ft.get(--r);\n if (e != null)\n return e;\n if (r === 0)\n return \"\";\n let s = r, i = \"\";\n do\n i = pe[--s % 26] + i, s = Math.floor(s / 26);\n while (s > 0);\n Ft.set(r, i);\n const n = Ft.keys();\n for (let o = n.next(); Ft.size > t; o = n.next())\n Ft.delete(o.value);\n return i;\n}, Ds = (r, t = qe) => {\n const e = Ot.get(r);\n if (e != null)\n return e;\n if (r === \"\")\n return 0;\n const s = r;\n let i = 0;\n for (let o = 0; o < s.length; o++) {\n const a = s[s.length - o - 1], l = pe.indexOf(a) + 1;\n i += pe.length ** o * l;\n }\n Ot.set(r, i);\n const n = Ot.keys();\n for (let o = n.next(); Ot.size > t; o = n.next())\n Ot.delete(o.value);\n return i;\n}, G = (r) => {\n if (r === 0)\n return \"\";\n const t = Os(r + 1);\n return r < 0 ? `$${t}` : t;\n}, Ht = (r, t = !1) => {\n const e = Ds(r.toUpperCase());\n return t ? -e : e;\n}, bt = (r) => r === 0 ? \"\" : r < 0 ? `$${r}` : String(r), Ns = (r, t = !1) => (typeof r == \"string\" && (r = parseInt(r, 10)), t ? -r : r), M = ({ y: r, x: t, absX: e, absY: s }) => {\n if (t === -1 && r === -1)\n return \"?\";\n const i = t === void 0 ? \"\" : t === 0 ? \"0\" : `${e ? \"$\" : \"\"}${G(t)}`, n = r === void 0 ? \"\" : r === 0 ? \"0\" : `${s ? \"$\" : \"\"}${bt(r)}`;\n return `${i}${n}`;\n}, T = (r) => {\n const t = r.match(/(\\$)?([a-zA-Z]*)(\\$)?([0-9]*)/);\n if (t == null)\n return { y: -1, x: -1 };\n const [, e, s, i, n] = t.slice(), [o, a] = [e != null, i != null];\n return s === \"\" && n === \"\" ? { y: -1, x: -1, absX: !1, absY: !1 } : { y: Ns(n) || 0, x: Ht(s) || 0, absX: o, absY: a };\n}, Ke = (r, t, e) => {\n const s = r.match(/([A-Z]*)([0-9]*)/);\n if (s == null)\n return r;\n const [, i, n] = s.slice();\n return `${t ? \"$\" : \"\"}${i.toUpperCase()}${e ? \"$\" : \"\"}${n}`;\n}, Qr = (r) => `0${r}`, tn = (r) => typeof r == \"number\" ? `${G(r)}0` : `${r.toUpperCase()}0`, en = (r) => r.replace(/\\$/g, \"\"), Je = (r, t = !1, e = !1) => `${t ? \"$\" : \"\"}#${r}${e ? \"$\" : \"\"}`, sn = (r, t) => {\n const { rows: e, cols: s } = He(r), { rows: i, cols: n } = He(t);\n return {\n rows: e > i ? e : i,\n cols: s > n ? s : n\n };\n}, vs = (r, t) => {\n const e = { ...r };\n return t.left < r.left && (e.left = t.left), t.right > r.right && (e.right = t.right), t.top < r.top && (e.top = t.top), t.bottom > r.bottom && (e.bottom = t.bottom), e;\n}, ks = (r) => {\n if (r.endY === -1 || r.endX === -1)\n return { top: -1, left: -1, bottom: -1, right: -1 };\n const [t, e] = r.startY < r.endY ? [r.startY, r.endY] : [r.endY, r.startY], [s, i] = r.startX < r.endX ? [r.startX, r.endX] : [r.endX, r.startX];\n return { top: t, left: s, bottom: e, right: i };\n}, Pe = (r) => ({\n startY: r.top,\n startX: r.left,\n endY: r.bottom,\n endX: r.right\n}), rn = (r) => {\n const { top: t, left: e, bottom: s, right: i } = r;\n if (t === s && e === i)\n return M({ y: t, x: e });\n const n = M({ y: t, x: e }), o = M({ y: s, x: i });\n return `${n}:${o}`;\n}, nn = (r, t) => r.start === -1 || r.end === -1 ? !1 : r.start <= t && t <= r.end || r.end <= t && t <= r.start, on = (r, t) => {\n if (r.top === -1 || r.left === -1 || r.bottom === -1 || r.right === -1)\n return !1;\n const { y: e, x: s } = t, { top: i, left: n, bottom: o, right: a } = r;\n return i <= e && e <= o && n <= s && s <= a;\n}, $s = (r) => r.endY === -1 || r.endX === -1 ? { rows: 0, cols: 0 } : {\n rows: Math.abs(r.startY - r.endY),\n cols: Math.abs(r.startX - r.endX)\n}, an = (r) => r.endY === -1 || r.endX === -1 ? { rows: 1, cols: 1 } : {\n rows: 1 + Math.abs(r.startY - r.endY),\n cols: 1 + Math.abs(r.startX - r.endX)\n}, He = (r) => ({\n rows: Math.abs(r.top - r.bottom),\n cols: Math.abs(r.left - r.right)\n}), me = (r) => ({\n rows: 1 + Math.abs(r.top - r.bottom),\n cols: 1 + Math.abs(r.left - r.right)\n}), Zt = ({ base: r = 0, matrix: t }) => {\n const e = t.length;\n return e === 0 ? { rows: 0, cols: 0 } : { rows: r + e, cols: r + t[0].length };\n}, cn = (r, t, e = 1) => Array.from({ length: (t - r - 1) / e + 1 }, (s, i) => r + i * e), ln = (r, t) => {\n const e = [];\n return r.forEach((s) => {\n const i = [];\n t.forEach((n) => {\n i.push(s[n]);\n }), e.push(i);\n }), e;\n}, hn = (r, t) => {\n const e = [];\n return r.forEach((s) => {\n const i = {};\n s.forEach((n, o) => {\n if (o >= t.length)\n return;\n const a = t[o];\n i[a] = n;\n }), e.push(i);\n }), e;\n}, Jt = (r, t, e) => [...Array(r)].map(() => Array(t).fill(e)), un = ({\n cells: r = {},\n ensured: t = {},\n matrix: e = [],\n flattenAs: s = \"value\",\n origin: i = \"A1\"\n}) => Ls({\n cells: r,\n ensured: t,\n matrices: { [i]: e },\n flattenAs: s\n}), Ls = ({\n cells: r = {},\n ensured: t = {},\n matrices: e = {},\n flattenAs: s = \"value\"\n} = {}) => {\n const i = Object.keys(r), a = Object.values(e).reduce((c, f) => {\n var d;\n return c + f.length * (((d = f[0]) == null ? void 0 : d.length) ?? 0);\n }, 0) > 1e5;\n a ? (Object.defineProperty(r, \"__matrices\", { value: e, configurable: !0 }), Object.defineProperty(r, \"__flattenAs\", { value: s, configurable: !0 })) : Ps({ cells: r, flattenAs: s, matrices: e });\n const { numRows: l, numCols: h } = Object.assign({ numRows: 1, numCols: 1 }, t), u = M({ y: l, x: h });\n return r[u] == null && (r[u] = {}), a && (i.push(u), Object.defineProperty(r, \"__userKeys\", { value: i, configurable: !0 })), r;\n}, Ps = ({\n cells: r = {},\n matrices: t = {},\n flattenAs: e\n}) => (Object.keys(t).forEach((s) => {\n const i = t[s], { y: n, x: o } = T(s), a = [];\n for (let l = 0; l < i.length; l++) {\n const h = i[l], u = String(n + l);\n for (let c = 0; c < h.length; c++) {\n a[c] == null && (a[c] = G(o + c));\n const f = a[c] + u;\n if (e) {\n const d = r[f];\n d ? e in d || (d[e] = h[c]) : r[f] = { [e]: h[c] };\n } else\n r[f] = h[c];\n }\n }\n}), r), Hs = (r = {}, t) => {\n let [e, s] = [0, 0];\n return (t ?? Object.keys(r)).forEach((i) => {\n if (i === vt || i === kt || i === $t)\n return;\n const { y: n, x: o } = T(i);\n e < n && (e = n), s < o && (s = o);\n }), { numRows: e, numCols: s };\n}, dn = (r, t) => {\n const e = [];\n for (let s = r; s <= t; s++)\n e.push(s);\n return e;\n}, Ys = (r, t) => (r.left === -1 && (r = {\n left: t.x,\n top: t.y,\n right: t.x,\n bottom: t.y\n}), r), Bs = (r) => {\n if (r.indexOf(\":\") === -1)\n return [r];\n const t = [];\n if (/^\\d+\\:\\d+$/.test(r)) {\n const [u, c] = r.split(\":\").map(Number);\n for (let f = u; f <= c; f++)\n t.push(`${f}`);\n return t;\n }\n const s = r.match(/^([A-Z]*)(\\d+)?\\:([A-Z]*)(\\d+)?$/);\n if (!s)\n return console.error(\"Invalid range format\", r), [r];\n const [, i, n, o, a] = s, l = i ? Ht(i) : 1, h = o ? Ht(o) : 1;\n for (let u = l; u <= h; u++) {\n const c = i || o ? G(u) : \"\";\n if (n && a)\n for (let f = Number(n); f <= Number(a); f++)\n t.push(`${c}${f}`);\n else !n && !a && t.push(c);\n }\n return t;\n}, fn = (r) => {\n const t = $s(r);\n return t.rows + t.cols === 0 ? { startY: -1, startX: -1, endY: -1, endX: -1 } : { ...r };\n}, pn = (r, t, e, s) => {\n for (; r <= t; ) {\n const i = Math.floor((r + t) / 2);\n e(i) ? s ? t = i - 1 : r = i + 1 : s ? r = i + 1 : t = i - 1;\n }\n return s ? r : t;\n}, mn = (r) => {\n if (r.length === 0)\n return [];\n const t = r.map((o) => {\n const { y: a, x: l } = T(o);\n return { y: a, x: l };\n }), e = (o, a) => `${o},${a}`, s = new Set(t.map((o) => e(o.y, o.x))), i = /* @__PURE__ */ new Set(), n = [];\n for (const o of t) {\n const a = e(o.y, o.x);\n if (i.has(a))\n continue;\n let l = o.y, h = o.x, u = o.y, c = o.x;\n const f = [o];\n for (i.add(a); f.length > 0; ) {\n const { y: d, x: p } = f.shift();\n d < l && (l = d), d > u && (u = d), p < h && (h = p), p > c && (c = p);\n for (const [m, y] of [\n [0, 1],\n [0, -1],\n [1, 0],\n [-1, 0]\n ]) {\n const g = e(d + m, p + y);\n s.has(g) && !i.has(g) && (i.add(g), f.push({ y: d + m, x: p + y }));\n }\n }\n n.push({ top: l, left: h, bottom: u, right: c });\n }\n return n;\n}, yn = (r, t = !0) => {\n const e = /* @__PURE__ */ new Set(), s = [];\n for (const i of r) {\n const { x: n } = T(i);\n e.has(n) || (e.add(n), s.push(n));\n }\n return t === !0 ? s.sort((i, n) => i - n) : t === !1 && s.sort((i, n) => n - i), s;\n}, gn = (r, t = !0) => {\n const e = /* @__PURE__ */ new Set(), s = [];\n for (const i of r) {\n const { y: n } = T(i);\n e.has(n) || (e.add(n), s.push(n));\n }\n return t === !0 ? s.sort((i, n) => i - n) : t === !1 && s.sort((i, n) => n - i), s;\n}, wn = (r) => r.startY === -1 || r.startX === -1 || r.endY === -1 || r.endX === -1, at = 864e5;\nclass R {\n constructor(t, e = \"HH:mm:ss\") {\n this.__gsType = \"Time\", this.days = t, this.format = e;\n }\n add(t) {\n return new Date(t.getTime() + this.days * at);\n }\n sub(t) {\n return new Date(t.getTime() - this.days * at);\n }\n stringify(t) {\n const e = this.toMilliseconds(), s = Math.abs(e), i = e < 0 ? \"-\" : \"\", n = s % 1e3;\n let o = Math.floor(s / 1e3);\n const a = o % 60;\n o = Math.floor(o / 60);\n const l = o % 60, h = Math.floor(o / 60);\n let c = t ?? (n === 0 ? \"HH:mm:ss\" : \"HH:mm:ss.SSS\");\n return c = c.replace(\"HH\", i + String(h).padStart(2, \"0\")), c = c.replace(\"H\", i + String(h)), c = c.replace(\"mm\", String(l).padStart(2, \"0\")), c = c.replace(\"ss\", String(a).padStart(2, \"0\")), c = c.replace(\"SSS\", String(n).padStart(3, \"0\")), c = c.replace(\"SS\", String(n).padStart(3, \"0\").substring(0, 2)), c = c.replace(\"S\", String(n).padStart(3, \"0\").substring(0, 1)), c;\n }\n toMilliseconds() {\n return this.days * at;\n }\n toDate() {\n return new Date(Fs.getTime() + this.days * at);\n }\n toJSON() {\n return { __gsType: \"Time\", days: this.days, format: this.format };\n }\n toString() {\n return this.stringify();\n }\n static create(t = 0, e = 0, s = 0, i = 0) {\n const n = t * 36e5 + e * 6e4 + s * 1e3 + i;\n return new R(n / at);\n }\n static fromDate(t) {\n const e = t.getHours() * 36e5 + t.getMinutes() * 6e4 + t.getSeconds() * 1e3 + t.getMilliseconds();\n return new R(e / at);\n }\n static fromDates(t, e) {\n return new R((t.getTime() - e.getTime()) / at);\n }\n static fromObject(t) {\n return new R(t.days, t.format);\n }\n static is(t) {\n return t instanceof R || (t == null ? void 0 : t.__gsType) === \"Time\";\n }\n static ensure(t) {\n return t instanceof R ? t : (t == null ? void 0 : t.__gsType) === \"Time\" ? R.fromObject(t) : R.create();\n }\n static parse(t, e, s = !1) {\n if (e != null) {\n const i = Us(e), n = t.match(i);\n if (n != null && n.groups)\n return R.create(\n Number(n.groups.HH || n.groups.H || 0),\n Number(n.groups.mm || n.groups.m || 0),\n Number(n.groups.ss || n.groups.s || 0),\n Number(n.groups.SSS || n.groups.SS || n.groups.S || 0)\n );\n }\n if (!s) {\n {\n const i = t.match(/^([+-]?)(\\d+):(\\d{2})$/);\n if (i) {\n const [, n, o, a] = i, l = n === \"-\" ? -1 : 1;\n return R.create(l * Number(o), l * Number(a));\n }\n }\n {\n const i = t.match(/^([+-]?)(\\d+):(\\d{2}):(\\d{2})$/);\n if (i) {\n const [, n, o, a, l] = i, h = n === \"-\" ? -1 : 1;\n return R.create(h * Number(o), h * Number(a), h * Number(l));\n }\n }\n {\n const i = t.match(/^([+-]?)(\\d+):(\\d{2}):(\\d{2})\\.(\\d+)$/);\n if (i) {\n const [, n, o, a, l, h] = i, u = n === \"-\" ? -1 : 1;\n return R.create(u * Number(o), u * Number(a), u * Number(l), u * Number(h));\n }\n }\n }\n }\n}\nconst Ye = {\n HH: { group: \"HH\", pattern: \"(?<HH>\\\\d+)\" },\n H: { group: \"H\", pattern: \"(?<HH>\\\\d+)\" },\n mm: { group: \"mm\", pattern: \"(?<mm>[0-5]\\\\d)\" },\n m: { group: \"m\", pattern: \"(?<m>\\\\d|[1-5]\\\\d)\" },\n ss: { group: \"ss\", pattern: \"(?<ss>[0-5]\\\\d)\" },\n s: { group: \"s\", pattern: \"(?<s>\\\\d|[1-5]\\\\d)\" },\n SSS: { group: \"SSS\", pattern: \"(?<SSS>\\\\d{3})\" },\n SS: { group: \"SS\", pattern: \"(?<SS>\\\\d{2})\" },\n S: { group: \"S\", pattern: \"(?<S>\\\\d)\" }\n};\nfunction Us(r) {\n const t = Object.keys(Ye).sort((n, o) => o.length - n.length), e = new RegExp(t.join(\"|\"), \"g\"), i = r.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\").replace(e, (n) => {\n var o;\n return ((o = Ye[n]) == null ? void 0 : o.pattern) ?? n;\n });\n return new RegExp(`^${i}$`);\n}\nclass S {\n constructor(t, e, s) {\n this.__gsType = \"FormulaError\", this.code = t, this.message = e, this.error = s;\n }\n static is(t) {\n return t instanceof S || (t == null ? void 0 : t.__gsType) === \"FormulaError\";\n }\n toString() {\n return this.code;\n }\n}\nclass _t {\n constructor(t) {\n this.code = t, this.__gsType = \"Sentinel\";\n }\n is(t) {\n return _t.is(t, this.code);\n }\n static is(t, e) {\n return t instanceof _t || (t == null ? void 0 : t.__gsType) === \"Sentinel\" ? e == null || t.code === e : !1;\n }\n}\nconst Yt = new _t(\"solving\"), Dt = new _t(\"none\");\nclass L {\n constructor(t) {\n this.__gsType = \"Pending\", this.promise = t, this.timestamp = Date.now();\n }\n static is(t) {\n return t instanceof L || (t == null ? void 0 : t.__gsType) === \"Pending\";\n }\n toString() {\n return `<Pending #${this.timestamp}>`;\n }\n}\nclass W {\n constructor(t) {\n this.__gsType = \"Spilling\", this.matrix = this.ensure2D(t);\n }\n ensure2D(t) {\n return t.length === 0 ? [] : Array.isArray(t[0]) ? t : [t];\n }\n static is(t) {\n return t instanceof W || (t == null ? void 0 : t.__gsType) === \"Spilling\";\n }\n}\nconst Qt = (r, t = !0) => {\n let e = r;\n return t && e.startsWith(\"$\") && (e = e.slice(1)), t && e.endsWith(\"$\") && (e = e.slice(0, -1)), e.replace(\"#\", \"\");\n};\nclass ht {\n constructor(t) {\n this.ids = [], this.value = t;\n }\n}\nclass be extends ht {\n evaluate() {\n return this.value;\n }\n}\nclass Vs extends ht {\n evaluate() {\n throw new S(\"#REF!\", \"Reference does not exist.\");\n }\n}\nclass zs extends ht {\n evaluate() {\n throw new S(\"#NAME?\", `Invalid ref: ${this.value}`);\n }\n}\nclass Qe extends ht {\n constructor(t) {\n super(t);\n }\n stringify() {\n return this.value.toUpperCase();\n }\n evaluate({ sheet: t }) {\n const e = Rt(this.value, { sheet: t, dependency: \"\" });\n if (e.sheet == null)\n throw new S(\"#REF!\", `Unknown sheet: ${e.sheetName}`);\n if (e.addresses.length === 0)\n throw new S(\"#REF!\", `Invalid address: ${this.value}`);\n const { y: s, x: i } = T(e.addresses[0]);\n return e.sheet.trim({ top: s, left: i, bottom: s, right: i });\n }\n identify(t) {\n const { slideY: e = 0, slideX: s = 0 } = t, i = Rt(this.value, t);\n if (i.sheet == null)\n return this.value;\n const n = i.addresses[0], { y: o, x: a, absX: l, absY: h } = T(n), u = {\n y: o + e,\n x: a + s,\n absX: l,\n absY: h\n }, c = i.sheet.getId(u);\n return c == null ? this.value : (this.ids = [c], `#${i.sheet.id}!${Je(c, l, h)}`);\n }\n}\nclass ts extends ht {\n stringify() {\n return this.value.toUpperCase();\n }\n evaluate({ sheet: t }) {\n const e = Rt(this.value, { sheet: t, dependency: \"\" });\n if (e.sheet == null)\n throw new S(\"#REF!\", `Unknown sheet: ${e.sheetName}`);\n if (e.addresses.length === 0)\n throw new S(\"#REF!\", `Invalid address: ${this.value}`);\n const s = e.sheet.rangeToArea(e.addresses.join(\":\"));\n return e.sheet.trim(s);\n }\n identify(t) {\n const { slideY: e = 0, slideX: s = 0 } = t, i = Rt(this.value, t);\n if (i.sheet == null)\n return this.value;\n const n = [];\n for (let o = 0; o < i.addresses.length; o++) {\n const a = i.addresses[o], { y: l, x: h, absX: u, absY: c } = T(a), f = {\n y: l + e,\n x: h + s,\n absX: u,\n absY: c\n }, d = i.sheet.getId(f);\n if (d == null)\n return this.value;\n this.ids.push(d), n.push(Je(d, u, c));\n }\n return `#${i.sheet.id}!${n.join(\":\")}`;\n }\n}\nclass ye extends ht {\n parse(t) {\n if (this.value.indexOf(\"!\") !== -1) {\n const [e, s] = this.value.split(\"!\"), i = Number(e.slice(1));\n return { sheet: t.getSheetBySheetId(i), id: Qt(s, !1) };\n }\n return { sheet: t, id: Qt(this.value, !1) };\n }\n evaluate({ sheet: t }) {\n const e = this.parse(t);\n if (e.id === \"?\")\n throw new S(\"#REF!\", \"Reference does not exist\");\n const { y: s, x: i } = e.sheet.getPointById(e.id), [n, o] = [Math.abs(s), Math.abs(i)];\n return e.sheet.trim({\n top: n,\n left: o,\n bottom: n,\n right: o\n });\n }\n display({ sheet: t, slideY: e = 0, slideX: s = 0 }) {\n const i = this.parse(t), n = i.sheet.getAddressById(i.id, e, s);\n return n ? i.sheet.id === t.id ? n : `${i.sheet.sheetPrefix()}${n}` : \"#REF!\";\n }\n identify(t) {\n const { sheet: e, slideY: s = 0, slideX: i = 0 } = t, n = this.display({ sheet: e, slideY: s, slideX: i });\n if (n == null || n.length < 2)\n return \"#?\";\n const { formula: o, ids: a } = Rt(n, t);\n return this.ids = a, o || \"#?\";\n }\n}\nclass ge extends ht {\n parse(t) {\n const e = this.value;\n if (e.indexOf(\"!\") !== -1) {\n const [s, i] = e.split(\"!\"), n = Number(s.slice(1));\n return { sheet: t.getSheetBySheetId(n), ids: i.split(\":\") };\n }\n return { sheet: t, ids: e.split(\":\") };\n }\n evaluate({ sheet: t }) {\n const e = this.parse(t), s = e.ids.map((c) => Qt(c)), i = [];\n for (let c = 0; c < s.length; c++) {\n const f = s[c];\n if (f === \"?\")\n throw new S(\"#REF!\", \"Reference does not exist\");\n const d = e.sheet.getPointById(f);\n i.push(d);\n }\n const [n, o] = i, [a, l, h, u] = [n.y, n.x, o.y || e.sheet.numRows, o.x || e.sheet.numCols];\n return e.sheet.trim({ top: a, left: l, bottom: h, right: u });\n }\n display({ sheet: t, slideY: e = 0, slideX: s = 0 }) {\n const i = this.parse(t), n = i.ids.map((o) => Qt(o, !1)).map((o) => i.sheet.getAddressById(o, e, s) || \"#REF!\").join(\":\");\n return i.sheet.id === t.id ? n : `${i.sheet.sheetPrefix()}${n}`;\n }\n identify(t) {\n const { sheet: e, slideY: s = 0, slideX: i = 0 } = t, n = this.display({ sheet: e, slideY: s, slideX: i }), { formula: o, ids: a } = Rt(n, t);\n return this.ids = a, o || \"#?\";\n }\n}\nclass Kt {\n constructor(t, e = 0, s = [], i) {\n this.name = t, this.precedence = e, this.args = s, this.at = i;\n }\n evaluate({ sheet: t }) {\n const e = this.name.toLowerCase(), s = t.getFunctionByName(e);\n if (s == null)\n throw new S(\"#NAME?\", `Unknown function: ${e}`);\n return new s({ args: this.args, sheet: t, at: this.at }).call();\n }\n}\nconst Ws = new be(0), Xs = {\n \"+\": \"add\",\n \"-\": \"minus\",\n \"/\": \"divide\",\n \"*\": \"multiply\",\n \"^\": \"power\",\n \"&\": \"concat\",\n \"=\": \"eq\",\n \"<>\": \"ne\",\n \">\": \"gt\",\n \">=\": \"gte\",\n \"<\": \"lt\",\n \"<=\": \"lte\"\n}, js = {\n \"-\": \"uminus\"\n}, es = /* @__PURE__ */ new Set([\" \", `\n`, \"\\r\", \"\t\", \"\\f\"]), Gs = /* @__PURE__ */ new Set([...es, \"+\", \"-\", \"/\", \"*\", \"^\", \"&\", \"=\", \"<\", \">\", \")\", \",\", \"%\"]);\nclass I {\n constructor(t, e, s = 0, i, n = !0) {\n this.type = t, this.entity = e, this.precedence = s, this.at = i, this.closed = n;\n }\n length() {\n return this.type === \"VALUE\" && typeof this.entity == \"string\" ? this.entity.length + (this.closed ? 2 : 1) : new String(this.entity).length;\n }\n stringify() {\n if (this.type === \"VALUE\") {\n if (typeof this.entity == \"string\")\n return this.closed ? `\"${this.entity}\"` : `\"${this.entity}`;\n if (typeof this.entity == \"boolean\")\n return this.entity ? \"TRUE\" : \"FALSE\";\n if (this.raw != null)\n return this.raw;\n }\n return this.entity;\n }\n convert() {\n switch (this.type) {\n case \"VALUE\":\n return new be(this.entity);\n case \"ID\":\n return new ye(this.entity);\n case \"ID_RANGE\":\n return new ge(this.entity);\n case \"REF\":\n return new Qe(this.entity);\n case \"RANGE\":\n return new ts(this.entity);\n case \"INFIX_OPERATOR\": {\n const t = Xs[this.entity];\n return new Kt(t, this.precedence, void 0, this.at);\n }\n case \"PREFIX_OPERATOR\": {\n const t = js[this.entity];\n return new Kt(t, this.precedence, void 0, this.at);\n }\n case \"FUNCTION\":\n return new Kt(this.entity, 0, [], this.at);\n case \"UNREFERENCED\":\n return new Vs(this.entity);\n case \"INVALID_REF\":\n return new zs(this.entity);\n }\n }\n}\nconst Zs = (r) => es.has(r), qs = { true: !0, false: !1 }, Be = new I(\"OPEN\", \"(\"), Ks = new I(\"CLOSE\", \")\"), Js = new I(\"COMMA\", \",\"), V = \"INFIX_OPERATOR\", Qs = \"PREFIX_OPERATOR\", ti = \"POSTFIX_OPERATOR\";\nclass te {\n constructor(t, e) {\n this.tokens = [], this.foreign = !1, this.identifiedFormula = \"\", this.dependencyIds = [], this.formula = t, this.index = 0, this.tokens = [], this.at = e == null ? void 0 : e.at;\n }\n isWhiteSpace() {\n return Zs(this.formula[this.index]);\n }\n next(t = 1) {\n this.index += t;\n }\n get(t = 0) {\n return this.formula[this.index + t];\n }\n getToken(t = 0) {\n return this.tokens[this.tokens.length + t];\n }\n getTokenIndexByCharPosition(t) {\n let e = 0, s = 0;\n for (let i = 0; i < this.tokens.length; i++) {\n const n = this.tokens[i];\n if (s = e + n.length(), e <= t && t <= s)\n return [i, t === e || t === s];\n e = s;\n }\n return [-1, !1];\n }\n getTokenPositionRange(t, e = 1) {\n let s = 0, i = 0;\n for (let n = 0; n < t; n++)\n s = i, i += this.tokens[n].length();\n return [s + e, i + e];\n }\n stringify() {\n return this.tokens.map((t) => t.stringify()).join(\"\");\n }\n identify(t) {\n const e = [], s = [];\n for (const i of this.tokens)\n switch (i.type) {\n case \"VALUE\":\n typeof i.entity == \"number\" || typeof i.entity == \"boolean\" ? e.push(String(i.entity)) : e.push(i.closed ? `\"${i.entity}\"` : `\"${i.entity}`);\n break;\n case \"ID\": {\n const n = new ye(i.entity);\n e.push(n.identify(t)), s.push(...n.ids);\n break;\n }\n case \"ID_RANGE\": {\n const n = new ge(i.entity);\n e.push(n.identify(t)), s.push(...n.ids);\n break;\n }\n case \"REF\": {\n const n = new Qe(i.entity);\n e.push(n.identify(t)), s.push(...n.ids);\n break;\n }\n case \"RANGE\": {\n const n = new ts(i.entity);\n e.push(n.identify(t)), s.push(...n.ids);\n break;\n }\n default:\n e.push(i.entity);\n break;\n }\n this.identifiedFormula = e.join(\"\"), this.dependencyIds = s;\n }\n display({ sheet: t }) {\n return this.tokens.map((e) => {\n switch (e.type) {\n case \"VALUE\":\n return typeof e.entity == \"number\" || typeof e.entity == \"boolean\" ? e.raw ?? e.entity : e.closed ? `\"${e.entity}\"` : `\"${e.entity}`;\n case \"ID\":\n return new ye(e.entity).display({ sheet: t });\n case \"ID_RANGE\":\n return new ge(e.entity).display({ sheet: t });\n }\n return e.entity;\n }).join(\"\");\n }\n tokenize(t = {}) {\n var e, s;\n for (; this.index <= this.formula.length; ) {\n this.skipSpaces();\n let i = this.get();\n switch (this.next(), i) {\n case void 0:\n return;\n case \"(\":\n this.tokens.push(Be);\n continue;\n case \")\":\n this.tokens.push(Ks);\n continue;\n case \",\":\n this.tokens.push(Js);\n continue;\n case \"+\":\n this.tokens.push(new I(V, \"+\", 3, this.at));\n continue;\n case \"-\": {\n const o = (e = this.getToken(-1)) == null ? void 0 : e.type, a = (s = this.getToken(-2)) == null ? void 0 : s.type;\n o === V || o === \"SPACE\" && a === V ? this.tokens.push(new I(Qs, \"-\", 6, this.at)) : this.tokens.push(new I(V, \"-\", 3, this.at));\n continue;\n }\n case \"/\":\n this.tokens.push(new I(V, \"/\", 4, this.at));\n continue;\n case \"*\":\n this.tokens.push(new I(V, \"*\", 4, this.at));\n continue;\n case \"^\":\n this.tokens.push(new I(V, \"^\", 5, this.at));\n continue;\n case \"&\":\n this.tokens.push(new I(V, \"&\", 4, this.at));\n continue;\n case \"=\":\n this.tokens.push(new I(V, \"=\", 1, this.at));\n continue;\n case \">\":\n if (this.get() === \"=\") {\n this.next(), this.tokens.push(new I(V, \">=\", 2, this.at));\n continue;\n }\n this.tokens.push(new I(V, \">\", 2, this.at));\n continue;\n case \"<\":\n if (this.get() === \"=\") {\n this.next(), this.tokens.push(new I(V, \"<=\", 2, this.at));\n continue;\n }\n if (this.get() === \">\") {\n this.next(), this.tokens.push(new I(V, \"<>\", 1, this.at));\n continue;\n }\n this.tokens.push(new I(V, \"<\", 2, this.at));\n continue;\n case '\"': {\n const { buf: o, closed: a } = this.getString('\"');\n this.tokens.push(new I(\"VALUE\", o, 0, this.at, a));\n continue;\n }\n case \"'\": {\n const { buf: o } = this.getString(\"'\");\n i = `'${o}'`;\n break;\n }\n case \"!\": {\n this.foreign = !0;\n break;\n }\n case \"%\": {\n this.tokens.push(new I(ti, \"%\", 4, this.at));\n continue;\n }\n }\n let n = i;\n for (; ; ) {\n const o = this.get();\n if (o === \"(\") {\n this.tokens.push(new I(\"FUNCTION\", n, 0, this.at), Be), this.next();\n break;\n }\n if (o == null || Gs.has(o)) {\n if (n.length === 0)\n break;\n if (n.match(/^[+-]?(\\d*[.])?\\d+$/)) {\n const a = new I(\"VALUE\", parseFloat(n), 0, this.at);\n a.raw = n, this.tokens.push(a);\n } else {\n const a = qs[n.toLowerCase()];\n a != null ? this.tokens.push(new I(\"VALUE\", a, 0, this.at)) : n.startsWith(\"#\") ? n.indexOf(\"#REF!\") !== -1 ? this.tokens.push(new I(\"UNREFERENCED\", n, 0, this.at)) : n.indexOf(\":\") !== -1 ? this.tokens.push(new I(\"ID_RANGE\", ei(n, t), 0, this.at)) : this.tokens.push(new I(\"ID\", n, 0, this.at)) : n.indexOf(\":\") !== -1 ? this.tokens.push(new I(\"RANGE\", n, 0, this.at)) : !n.startsWith(\"'\") && n.indexOf(\"!\") === -1 && n.includes(\".\") && /[a-zA-Z]/.test(n) || isNaN(n[n.length - 1]) ? this.tokens.push(new I(\"INVALID_REF\", n, 0, this.at)) : this.tokens.push(new I(\"REF\", n, 0, this.at));\n }\n break;\n }\n n += o, this.next();\n }\n }\n }\n skipSpaces() {\n let t = \"\";\n for (; this.isWhiteSpace(); )\n t += this.formula[this.index++];\n t !== \"\" && this.tokens.push(new I(\"SPACE\", t, 0, this.at));\n }\n getString(t = '\"') {\n let e = \"\";\n for (; ; ) {\n const s = this.get();\n if (this.next(), s == null)\n return { buf: e, closed: !1 };\n if (s === t)\n if (t === '\"' && this.get() === t) {\n e += t, this.next();\n continue;\n } else if (t === \"'\" && this.get() === t) {\n e += s;\n continue;\n } else\n return { buf: e, closed: !0 };\n else\n e += s;\n }\n }\n}\nconst ei = (r, t) => {\n const [e, s] = r.split(\"!\"), i = s.split(\":\"), n = /* @__PURE__ */ new Set();\n return Object.keys(t).forEach((o) => {\n const a = t[o], l = new RegExp(`(\\\\$)?#${o}\\\\b(\\\\$)?`);\n for (let h = 0; h < i.length; h++) {\n if (n.has(h))\n continue;\n const u = i[h], c = u.replace(l, (f, d, p) => `${d || \"\"}#${a}${p || \"\"}`);\n c !== u && (i[h] = c, n.add(h));\n }\n }), `${e}!${i.join(\":\")}`;\n};\nclass ss {\n constructor(t) {\n this.index = 0, this.depth = 0, this.tokens = t;\n }\n build() {\n const { expr: t } = this.parse(!1);\n return t;\n }\n parse(t) {\n const e = [];\n let s;\n const i = (n = !1) => {\n if (s) {\n const o = e.pop();\n s.args.push(o);\n }\n return { hasNext: n, expr: e.shift() };\n };\n for (; this.tokens.length > this.index; ) {\n const n = this.tokens[this.index++];\n if (n.type !== \"SPACE\") {\n if (n.type === \"COMMA\") {\n if (!t)\n throw new S(\"#ERROR!\", \"Invalid comma\");\n return i(!0);\n } else if (n.type === \"VALUE\" || n.type === \"ID\" || n.type === \"ID_RANGE\" || n.type === \"REF\" || n.type === \"RANGE\" || n.type === \"UNREFERENCED\" || n.type === \"INVALID_REF\") {\n const o = n.convert();\n e.push(o);\n } else if (n.type === \"POSTFIX_OPERATOR\" && n.entity === \"%\") {\n const o = e.pop();\n if (!o)\n throw new S(\"#ERROR!\", \"Missing expression before %\");\n const a = new Kt(\"divide\", 4, [o, new be(100)]);\n e.push(a);\n } else if (n.type === \"FUNCTION\") {\n this.index++, this.depth++;\n const o = n.convert();\n for (e.push(o); ; ) {\n const { expr: a, hasNext: l } = this.parse(!0);\n if (a && o.args.push(a), !l)\n break;\n }\n } else if (n.type === \"OPEN\") {\n this.depth++;\n const { expr: o } = this.parse(!1);\n e.push(o);\n } else if (n.type === \"CLOSE\") {\n if (this.depth-- === 0)\n throw new S(\"#ERROR!\", \"Unexpected end paren\");\n return i();\n } else if (n.type === \"INFIX_OPERATOR\") {\n const o = n.convert();\n let a = e.pop();\n if (a == null)\n if (o.name === \"minus\" || o.name === \"add\")\n a = Ws;\n else\n throw new S(\"#ERROR!\", \"Missing left expression\");\n if (s == null)\n o.args.push(a), e.unshift(o);\n else if (o.precedence > s.precedence)\n o.args.push(a), s.args.push(o), e.unshift(s);\n else {\n const l = e.shift();\n o.args.push(l), s.args.push(a), e.unshift(o);\n }\n s = o;\n } else if (n.type === \"PREFIX_OPERATOR\") {\n const o = n.convert();\n s ? s.args.push(o) : e.unshift(o), s = o;\n }\n }\n }\n return i();\n }\n}\nconst xn = ss, bn = (r) => (r.charAt(0) === \"'\" && (r = r.slice(1)), r.charAt(r.length - 1) === \"'\" && (r = r.slice(0, -1)), r);\nfunction si(r) {\n let t, e = [];\n if (r.startsWith(\"'\")) {\n let s = 1, i = \"\";\n for (; s < r.length; ) {\n const o = r[s], a = r[s + 1];\n if (o === \"'\")\n if (a === \"'\")\n i += \"'\", s += 2;\n else if (a === \"!\") {\n s += 2;\n break;\n } else\n return { sheetName: void 0, addresses: [] };\n else\n i += o, s++;\n }\n t = i, e = r.slice(s).trim().split(\":\");\n } else {\n const s = r.indexOf(\"!\");\n s !== -1 ? (t = r.slice(0, s), e = r.slice(s + 1).trim().split(\":\")) : e = r.trim().split(\":\");\n }\n return { sheetName: t, addresses: e };\n}\nconst Rt = (r, { sheet: t, operation: e, dependency: s }) => {\n const { sheetName: i, addresses: n } = si(r), o = [];\n if (i && (t = t.getSheetBySheetName(i), t == null))\n return { sheet: t, sheetName: i, addresses: n, ids: o };\n if (n.length === 0)\n return { sheet: t, sheetName: i, addresses: n, ids: o };\n const a = [];\n for (let h = 0; h < n.length; h++) {\n const u = n[h], { y: c, x: f, absX: d, absY: p } = T(u);\n let m = t.getId({ y: c, x: f });\n if (m === s && (e === \"removeRows\" ? m = t.getId({ y: c - 1, x: f }) : e === \"removeCols\" && (m = t.getId({ y: c, x: f - 1 }))), m == null) {\n a.push(Ke(u, !!d, !!p) || \"?\");\n continue;\n }\n o.push(m), a.push(`${d ? \"$\" : \"\"}#${m}${p ? \"$\" : \"\"}`);\n }\n let l = `#${t.id}!${a.join(\":\")}`;\n return {\n sheet: t,\n sheetName: i,\n addresses: n,\n ids: o,\n formula: l\n };\n}, Bt = (r, t) => t.length === 0 ? r : Object.fromEntries(\n Object.entries(r).filter(([e]) => !t.includes(e))\n), Lt = (r, t, e = {}) => {\n r.systems[t] == null && (r.systems[t] = {});\n const s = r.systems[t];\n for (const i of Object.keys(e))\n s[i] ?? (s[i] = e[i]);\n return s;\n}, ee = (r, t, e) => {\n r.asyncCaches || (r.asyncCaches = {}), r.asyncCaches[t] = e;\n}, st = () => !0, is = (r, t, e = {}) => {\n const s = T(t);\n return r.getCell(s, e);\n}, ii = (r, { area: t, resolution: e = \"RESOLVED\", raise: s = !1, filter: i = st, asScalar: n = !1 } = {}) => r.__raw__._toValueMatrix({ area: t, resolution: e, raise: s, filter: i, asScalar: n }), Sn = (r, {\n area: t,\n resolution: e = \"RESOLVED\",\n raise: s = !1,\n filter: i = st,\n asScalar: n = !1,\n frameBudgetMs: o,\n onProgress: a,\n yieldControl: l\n} = {}) => r.__raw__._toValueMatrixAsync({\n area: t,\n resolution: e,\n raise: s,\n filter: i,\n asScalar: n,\n frameBudgetMs: o,\n onProgress: a,\n yieldControl: l\n}), _n = (r, {\n resolution: t = \"RESOLVED\",\n raise: e = !1,\n filter: s = st,\n addresses: i,\n area: n,\n asScalar: o = !1\n} = {}) => {\n const a = {};\n if (i) {\n for (const f of i) {\n const d = T(f), p = is(r, f, { resolution: t, raise: e }) ?? {};\n if (s(p)) {\n let m = p.value;\n o && (m = r.getPolicy(d).toScalar({ value: p.value, cell: p, sheet: r.__raw__, point: d })), a[f] = m;\n }\n }\n return a;\n }\n const { top: l, left: h, bottom: u, right: c } = n ?? r.area;\n for (let f = l; f <= u; f++)\n for (let d = h; d <= c; d++) {\n const p = r.getCell({ y: f, x: d }, { resolution: t, raise: e }) ?? {};\n if (s(p)) {\n let m = p.value;\n o && (m = r.getPolicy({ y: f, x: d }).toScalar({ value: p.value, cell: p, sheet: r.__raw__, point: { y: f, x: d } })), a[M({ y: f, x: d })] = m;\n }\n }\n return a;\n}, Rn = (r, { resolution: t = \"RESOLVED\", raise: e = !1, filter: s = st, rows: i, area: n, asScalar: o = !1 } = {}) => {\n const a = [], { top: l, left: h, bottom: u, right: c } = n ?? r.area, f = i ?? Array.from({ length: r.numRows }, (d, p) => l + p);\n for (const d of f) {\n const p = {};\n a.push(p);\n for (let m = h; m <= c; m++) {\n const y = r.getCell({ y: d, x: m }, { resolution: t, raise: e }) ?? {};\n if (s(y)) {\n let g = y.value;\n o && (g = r.getPolicy({ y: d, x: m }).toScalar({ value: y.value, cell: y, sheet: r.__raw__, point: { y: d, x: m } })), p[G(m)] = g;\n }\n }\n }\n return a;\n}, En = (r, { resolution: t = \"RESOLVED\", raise: e = !1, filter: s = st, cols: i, area: n, asScalar: o = !1 } = {}) => {\n const a = [], { top: l, left: h, bottom: u, right: c } = n ?? r.area, f = i ? i.map((d) => typeof d == \"string\" ? Ht(d) : d) : Array.from({ length: r.numCols }, (d, p) => h + p);\n for (const d of f) {\n const p = {};\n a.push(p);\n for (let m = l; m <= u; m++) {\n const y = r.getCell({ y: m, x: d }, { resolution: t, raise: e }) ?? {};\n if (s(y)) {\n let g = y.value;\n o && (g = r.getPolicy({ y: m, x: d }).toScalar({ value: y.value, cell: y, sheet: r.__raw__, point: { y: m, x: d } })), p[bt(m)] = g;\n }\n }\n }\n return a;\n}, An = (r, { area: t, resolution: e = \"RESOLVED\", raise: s = !1, filter: i = st, ignoreFields: n = [] } = {}) => {\n const { top: o, left: a, bottom: l, right: h } = t ?? r.area, u = Jt(l - o + 1, h - a + 1);\n for (let c = o; c <= l; c++)\n for (let f = a; f <= h; f++) {\n const d = r.getCell({ y: c, x: f }, { resolution: e, raise: s }) ?? {};\n if (i(d)) {\n const p = Bt(d, n);\n u[c - o][f - a] = p;\n }\n }\n return u;\n}, In = (r, {\n resolution: t = \"RESOLVED\",\n raise: e = !1,\n filter: s = st,\n addresses: i,\n area: n,\n ignoreFields: o = []\n} = {}) => {\n const a = {};\n if (i) {\n for (const f of i) {\n const d = is(r, f, { resolution: t, raise: e }) ?? {};\n s(d) && (a[f] = Bt(d, o));\n }\n return a;\n }\n const { top: l, left: h, bottom: u, right: c } = n ?? r.area;\n for (let f = l; f <= u; f++)\n for (let d = h; d <= c; d++) {\n const p = r.getCell({ y: f, x: d }, { resolution: t, raise: e }) ?? {};\n s(p) && (a[M({ y: f, x: d })] = Bt(p, o));\n }\n return a;\n}, Cn = (r, { resolution: t = \"RESOLVED\", raise: e = !1, filter: s = st, rows: i, area: n, ignoreFields: o = [] } = {}) => {\n const a = [], { top: l, left: h, bottom: u, right: c } = n ?? r.area, f = i ?? Array.from({ length: r.numRows }, (d, p) => l + p);\n for (const d of f) {\n const p = {};\n a.push(p);\n for (let m = h; m <= c; m++) {\n const y = r.getCell({ y: d, x: m }, { resolution: t, raise: e }) ?? {};\n s(y) && (p[G(m)] = Bt(y, o));\n }\n }\n return a;\n}, rs = (r) => `'${r.replace(/'/g, \"''\")}'`, ri = (r) => r ? `${rs(r)}!` : \"\", Tn = (r, { resolution: t = \"RESOLVED\", raise: e = !1, filter: s = st, cols: i, area: n, ignoreFields: o = [] } = {}) => {\n const a = [], { top: l, left: h, bottom: u, right: c } = n ?? r.area, f = i ? i.map((d) => typeof d == \"string\" ? Ht(d) : d) : Array.from({ length: r.numCols }, (d, p) => h + p);\n for (const d of f) {\n const p = {};\n a.push(p);\n for (let m = l; m <= u; m++) {\n const y = r.getCell({ y: m, x: d }, { resolution: t, raise: e }) ?? {};\n s(y) && (p[bt(m)] = Bt(y, o));\n }\n }\n return a;\n}, ne = 1, oe = 2, Se = 4, _e = 8, Re = 16, Ee = 32, Ut = 64, Vt = 128, St = 256, ae = 512, se = 8192, ce = 1024, Ae = 16384, Ie = 32768, Ce = 65536, le = 131072, ni = 0, ns = Ut | Vt, xt = St | ae | se | ce | Ae | le, os = Se | _e, as = Re | Ee, cs = os | as, ls = ne | oe, hs = xt | ls | cs | ns, us = Ce | Ie | le, oi = 524288, ai = hs | us, F = (r, t) => r === void 0 ? !1 : (r & t) === t, ci = (r) => {\n const t = [];\n return F(r, ne) && t.push(\"RemoveRow\"), F(r, oe) && t.push(\"RemoveCol\"), F(r, Se) && t.push(\"InsertRowAbove\"), F(r, _e) && t.push(\"InsertRowBelow\"), F(r, Re) && t.push(\"InsertColLeft\"), F(r, Ee) && t.push(\"InsertColRight\"), F(r, Ut) && t.push(\"MoveFrom\"), F(r, Vt) && t.push(\"MoveTo\"), F(r, St) && t.push(\"Write\"), F(r, ae) && t.push(\"Style\"), F(r, ce) && t.push(\"Resize\"), F(r, Ae) && t.push(\"SetPolicy\"), F(r, le) && t.push(\"SetLabel\"), F(r, Ie) && t.push(\"Sort\"), F(r, Ce) && t.push(\"Filter\"), t;\n}, Mn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Add: cs,\n ColumnMenu: us,\n Copy: se,\n Delete: ls,\n Filter: Ce,\n InsertCols: as,\n InsertColsLeft: Re,\n InsertColsRight: Ee,\n InsertRows: os,\n InsertRowsAbove: Se,\n InsertRowsBelow: _e,\n Move: ns,\n MoveFrom: Ut,\n MoveTo: Vt,\n NoOperation: ni,\n ReadOnly: hs,\n RemoveCols: oe,\n RemoveRows: ne,\n Resize: ce,\n RowMenu: oi,\n SetLabel: le,\n SetPolicy: Ae,\n Sort: Ie,\n Style: ae,\n Update: xt,\n ViewOnly: ai,\n Write: St,\n debugOperations: ci,\n hasOperation: F\n}, Symbol.toStringTag, { value: \"Module\" }));\nz.extend(Is);\nz.extend(As);\nconst ds = /* @__PURE__ */ new Set([\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"]), li = /* @__PURE__ */ new Set([...ds, \"Z\", \"z\"]), hi = /* @__PURE__ */ new Set([\"J\", \"F\", \"M\", \"A\", \"S\", \"O\", \"N\", \"D\", ...ds]), ui = /* @__PURE__ */ new Set([\"N\", \"B\", \"R\", \"Y\", \"N\", \"L\", \"G\", \"P\", \"T\", \"V\", \"C\", ...li]), di = /* @__PURE__ */ new Set([\n \"jan\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"may\",\n \"jun\",\n \"jul\",\n \"aug\",\n \"sep\",\n \"oct\",\n \"nov\",\n \"dec\",\n \"january\",\n \"february\",\n \"march\",\n \"april\",\n \"june\",\n \"july\",\n \"august\",\n \"september\",\n \"october\",\n \"november\",\n \"december\",\n \"mon\",\n \"tue\",\n \"wed\",\n \"thu\",\n \"fri\",\n \"sat\",\n \"sun\",\n \"monday\",\n \"tuesday\",\n \"wednesday\",\n \"thursday\",\n \"friday\",\n \"saturday\",\n \"sunday\",\n \"am\",\n \"pm\",\n \"utc\",\n \"gmt\",\n \"est\",\n \"cst\",\n \"mst\",\n \"pst\",\n \"jst\",\n \"cet\",\n \"eet\",\n \"ist\",\n \"aest\",\n \"edt\",\n \"cdt\",\n \"mdt\",\n \"pdt\",\n \"bst\",\n \"hst\",\n \"akst\",\n \"akdt\",\n \"nzst\",\n \"nzdt\",\n \"t\",\n \"z\"\n]);\nfunction fs(r) {\n const t = r[0];\n if (t == null || !hi.has(t.toUpperCase()) || !ui.has(r[r.length - 1].toUpperCase()) || r.match(/[=*&#@!?[\\]{}\"'()|%\\\\<>~+\\r\\n]/))\n return;\n const e = r.split(/[\\s,/\\-:.]+/).filter(Boolean);\n for (const i of e)\n if (/^[a-zA-Z]+$/.test(i) && !di.has(i.toLowerCase()))\n return;\n let s = \"UTC\";\n try {\n s = Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch {\n }\n try {\n return z.tz(r, s).toDate();\n } catch {\n }\n}\nconst fi = { true: !0, false: !1 };\nclass Te {\n constructor(t) {\n this.priority = 0, this.datetimeFormat = \"YYYY-MM-DD HH:mm:ss\", this.dateFormat = \"YYYY-MM-DD\", this.timeFormat = \"HH:mm:ss\", this.decimalPrecision = 14, this.deserializeFunctions = [], this.priority = (t == null ? void 0 : t.priority) ?? 1, this.applyMixins(t == null ? void 0 : t.mixins), this.registerDeserializeFunctions();\n }\n registerDeserializeFunctions() {\n this.deserializeFunctions = [\n ...this.deserializeFirst ? [this.deserializeFirst.bind(this)] : [],\n this.deserializeNumber.bind(this),\n this.deserializeTime.bind(this),\n this.deserializeDate.bind(this),\n this.deserializeBool.bind(this),\n this.deserializeAny.bind(this)\n ];\n }\n applyMixins(t) {\n if (t == null)\n return;\n const e = Object.getPrototypeOf(this);\n for (const s of t)\n for (const i in s)\n e !== Te.prototype && Object.prototype.hasOwnProperty.call(e, i) || (this[i] = s[i]);\n }\n // --- RENDER ---\n render(t) {\n let { value: e, cell: s } = t;\n const { sheet: i, point: n } = t;\n s == null && (s = i.getCell(n, { resolution: \"EVALUATED\", raise: !0 }) ?? {}, e = s.value);\n let o;\n if (L.is(e))\n o = \"\";\n else if (e == null)\n o = this.renderNull({ ...t, value: e, cell: s });\n else\n switch (typeof e) {\n case \"object\":\n if (e instanceof Date)\n o = this.renderDate({ ...t, value: e, cell: s });\n else if (R.is(e))\n o = this.renderTime({ value: R.ensure(e), cell: s, sheet: i, point: n });\n else if (Array.isArray(e))\n o = this.renderArray({ ...t, value: e, cell: s });\n else {\n if (S.is(e))\n throw e;\n nt(e) ? o = this.renderSheet({ ...t, value: e, cell: s }) : o = this.renderObject({ ...t, value: e, cell: s });\n }\n break;\n case \"string\":\n o = this.renderString({ ...t, value: e, cell: s });\n break;\n case \"number\":\n o = this.renderNumber({ ...t, value: e, cell: s });\n break;\n case \"boolean\":\n o = this.renderBool({ ...t, value: e, cell: s });\n break;\n case \"function\":\n o = e();\n break;\n default:\n o = \"\";\n }\n return this.renderCallback ? this.renderCallback(o, { ...t, value: e, cell: s }) : o;\n }\n renderString({ value: t }) {\n return t;\n }\n renderBool({ value: t }) {\n return t ? \"TRUE\" : \"FALSE\";\n }\n renderNumber({ value: t }) {\n return isNaN(t) ? \"NaN\" : parseFloat(t.toPrecision(this.decimalPrecision));\n }\n renderDate({ value: t }) {\n return t.getHours() + t.getMinutes() + t.getSeconds() === 0 ? z(t).format(this.dateFormat) : z(t).format(this.datetimeFormat);\n }\n renderTime({ value: t }) {\n return t.stringify(this.timeFormat);\n }\n renderArray(t) {\n let { value: e, cell: s } = t;\n return e = e == null ? void 0 : e[0], Array.isArray(e) && (e = e[0]), this.render({ ...t, value: e, cell: s });\n }\n renderObject({ value: t }) {\n return JSON.stringify(t);\n }\n renderNull(t) {\n return \"\";\n }\n renderSheet({ value: t, ...e }) {\n const s = e.sheet.getId(e.point), i = t.__raw__.strip({ raise: !0, at: s });\n return this.render({ ...e, value: i });\n }\n renderRowHeaderLabel(t) {\n return null;\n }\n renderColHeaderLabel(t) {\n return null;\n }\n // --- TO SCALAR ---\n toScalar(t) {\n const { value: e, cell: s, sheet: i, point: n } = t;\n if (!L.is(e)) {\n if (e == null)\n return this.toScalarNull({ value: e, cell: s, sheet: i, point: n });\n switch (typeof e) {\n case \"string\":\n return this.toScalarString({ value: e, cell: s, sheet: i, point: n });\n case \"number\":\n return this.toScalarNumber({ value: e, cell: s, sheet: i, point: n });\n case \"boolean\":\n return this.toScalarBool({ value: e, cell: s, sheet: i, point: n });\n case \"object\":\n if (e instanceof Date)\n return this.toScalarDate({ value: e, cell: s, sheet: i, point: n });\n if (R.is(e))\n return this.toScalarTime({ value: R.ensure(e), cell: s, sheet: i, point: n });\n if (Array.isArray(e))\n return this.toScalarArray({ value: e, cell: s, sheet: i, point: n });\n if (S.is(e))\n throw e;\n return;\n default:\n return;\n }\n }\n }\n toScalarString({ value: t }) {\n return t;\n }\n toScalarNumber({ value: t }) {\n return t == null ? void 0 : t.toPrecision(this.decimalPrecision);\n }\n toScalarBool({ value: t }) {\n return t;\n }\n toScalarDate({ value: t }) {\n return t.getHours() + t.getMinutes() + t.getSeconds() === 0 ? z(t).format(this.dateFormat) : z(t).format(this.datetimeFormat);\n }\n toScalarTime({ value: t }) {\n return t.stringify(this.timeFormat);\n }\n toScalarArray({ value: t, cell: e, sheet: s, point: i }) {\n let n = t == null ? void 0 : t[0];\n return Array.isArray(n) && (n = n[0]), this.toScalar({ value: n, cell: e, sheet: s, point: i });\n }\n toScalarNull(t) {\n return null;\n }\n // --- SERIALIZE ---\n serialize({ value: t, cell: e, sheet: s, point: i }) {\n return t === void 0 && (t = e == null ? void 0 : e.value), L.is(t) ? \"\" : t instanceof Date ? this.serializeDate({ value: t, cell: e, sheet: s, point: i }) : R.is(t) ? this.serializeTime({ value: R.ensure(t), cell: e, sheet: s, point: i }) : t == null ? this.serializeNull({ cell: e, sheet: s, point: i }) : Array.isArray(t) ? this.serializeArray({ value: t, cell: e, sheet: s, point: i }) : t instanceof S ? this.serializeFormulaError({ value: t, cell: e, sheet: s, point: i }) : t instanceof Error ? this.serializeError({ value: t, cell: e, sheet: s, point: i }) : t.toString();\n }\n serializeString({ value: t }) {\n return t;\n }\n serializeBool({ value: t }) {\n return t ? \"true\" : \"false\";\n }\n serializeNumber({ value: t }) {\n return isNaN(t) ? \"NaN\" : parseFloat(t.toPrecision(this.decimalPrecision)).toString();\n }\n serializeDate({ value: t }) {\n return t.getHours() + t.getMinutes() + t.getSeconds() === 0 ? z(t).format(this.dateFormat) : z(t).format(this.datetimeFormat);\n }\n serializeTime({ value: t }) {\n return t.stringify(this.timeFormat);\n }\n serializeArray(t) {\n let { value: e } = t;\n return e = e == null ? void 0 : e[0], Array.isArray(e) && (e = e[0]), this.serialize({ ...t, value: e });\n }\n serializeNull(t) {\n return \"\";\n }\n serializeFormulaError({ value: t }) {\n return t.code;\n }\n serializeError(t) {\n return \"\";\n }\n serializeForClipboard(t) {\n const { point: e, sheet: s } = t;\n return s.getSerializedValue({ point: e }) ?? \"\";\n }\n // --- DESERIALIZE ---\n deserializeValue(t, e) {\n try {\n const s = typeof t != \"string\" ? this.deserializeRaw(t, e) : this.deserialize(t, e);\n return this.deserializeCallback ? this.deserializeCallback(s, e) : s;\n } catch (s) {\n return { ...e, value: String(s) };\n }\n }\n deserializeRaw(t, e) {\n return R.is(t) && (t = R.ensure(t)), { ...e, value: t };\n }\n deserialize(t, e) {\n if (t[0] === \"'\")\n return { ...e, value: t };\n for (let s = 0; s < this.deserializeFunctions.length; s++) {\n const i = this.deserializeFunctions[s](t, e);\n if ((i == null ? void 0 : i.value) !== void 0)\n return { ...e, ...i };\n }\n return t === \"\" ? { ...e, value: void 0 } : { ...e, value: t };\n }\n deserializeAny(t, e) {\n return t == null || t === \"\" ? { value: void 0 } : { value: t };\n }\n deserializeBool(t, e) {\n return { value: fi[t.toLowerCase()] };\n }\n deserializeNumber(t, e) {\n return t.match(/^-?[\\d.]+$/) != null && t.match(/\\.$/) == null && (t.match(/\\./g) || []).length <= 1 ? { value: parseFloat(t) } : { value: void 0 };\n }\n deserializeTime(t, e) {\n return t.length < 3 || isNaN(t[t.length - 1]) ? { value: void 0 } : { value: R.parse(t) };\n }\n deserializeDate(t, e) {\n return { value: fs(t) };\n }\n // --- SELECT ---\n getSelectFallback(t) {\n return { value: null };\n }\n getSelectOptions() {\n return [];\n }\n select(t) {\n const { next: e, sheet: s, point: i } = t, n = this.getSelectOptions();\n return n.length === 0 || n.some((a) => a.value === (e == null ? void 0 : e.value)) ? e : { ...e, ...this.getSelectFallback({ sheet: s, point: i, value: e == null ? void 0 : e.value }) };\n }\n}\nconst Nt = \"default\", pi = new Te({ priority: 0 }), tt = (r) => r == null ? \"\" : String(r);\nfunction Et(r) {\n return typeof r == \"number\" ? \"number\" : r instanceof Date ? \"date\" : R.is(r) ? \"time\" : typeof r == \"boolean\" ? \"boolean\" : \"string\";\n}\nfunction At(r, t) {\n switch (t) {\n case \"number\": {\n let e = r.replace(/[,_]/g, \"\"), s = 1;\n e.endsWith(\"%\") && (e = e.slice(0, -1), s = 0.01);\n const i = Number(e);\n return { ok: !isNaN(i), num: i * s };\n }\n case \"date\": {\n const e = fs(r);\n return e ? { ok: !0, num: e.getTime() } : { ok: !1, num: NaN };\n }\n case \"time\": {\n const e = R.parse(r);\n return e ? { ok: !0, num: e.toMilliseconds() } : { ok: !1, num: NaN };\n }\n case \"boolean\": {\n const e = r.toLowerCase();\n return e === \"true\" ? { ok: !0, num: 1 } : e === \"false\" ? { ok: !0, num: 0 } : { ok: !1, num: NaN };\n }\n default:\n return { ok: !1, num: NaN };\n }\n}\nfunction It(r, t) {\n switch (t) {\n case \"number\":\n return r;\n case \"date\":\n return r.getTime();\n case \"time\":\n return R.ensure(r).toMilliseconds();\n case \"boolean\":\n return r ? 1 : 0;\n default:\n return NaN;\n }\n}\nconst mi = (r, t) => {\n const e = Et(t);\n if (e === \"string\") {\n const i = tt(t);\n return r.value.some((n) => i === n);\n }\n const s = It(t, e);\n return r.value.some((i) => {\n const n = At(i, e);\n return n.ok && s === n.num;\n });\n}, yi = (r, t) => {\n const e = Et(t);\n if (e === \"string\") {\n const i = tt(t);\n return !r.value.some((n) => i === n);\n }\n const s = It(t, e);\n return !r.value.some((i) => {\n const n = At(i, e);\n return n.ok && s === n.num;\n });\n}, gi = (r, t) => {\n const e = Et(t);\n if (e === \"string\")\n return tt(t) > r.value[0];\n const s = It(t, e), i = At(r.value[0], e);\n return i.ok && s > i.num;\n}, wi = (r, t) => {\n const e = Et(t);\n if (e === \"string\")\n return tt(t) >= r.value[0];\n const s = It(t, e), i = At(r.value[0], e);\n return i.ok && s >= i.num;\n}, xi = (r, t) => {\n const e = Et(t);\n if (e === \"string\")\n return tt(t) < r.value[0];\n const s = It(t, e), i = At(r.value[0], e);\n return i.ok && s < i.num;\n}, bi = (r, t) => {\n const e = Et(t);\n if (e === \"string\")\n return tt(t) <= r.value[0];\n const s = It(t, e), i = At(r.value[0], e);\n return i.ok && s <= i.num;\n}, Si = (r, t) => t == null || tt(t) === \"\", _i = (r, t) => t != null && tt(t) !== \"\", Ri = (r, t) => {\n const e = tt(t).toLowerCase();\n return r.value.some((s) => e.includes(s.toLowerCase()));\n}, Ei = (r, t) => {\n const e = tt(t).toLowerCase();\n return !r.value.some((s) => e.includes(s.toLowerCase()));\n}, Ai = {\n eq: mi,\n ne: yi,\n gt: gi,\n gte: wi,\n lt: xi,\n lte: bi,\n blank: Si,\n nonblank: _i,\n includes: Ri,\n excludes: Ei\n};\nfunction Ue(r, t) {\n const e = Ai[r.method];\n return e ? e(r, t) : !0;\n}\nfunction Ii(r, t) {\n const e = r.mode ?? \"or\";\n return r.conditions.length === 0 ? !0 : e === \"and\" ? r.conditions.every((s) => Ue(s, t)) : r.conditions.some((s) => Ue(s, t));\n}\nclass wt {\n constructor(t) {\n this.map = {}, this.dependentIds = /* @__PURE__ */ new Set(), this.sheet = t;\n }\n collectDependents(...t) {\n t.forEach((e) => {\n var s, i;\n (i = (s = this.sheet.registry.systems[e]) == null ? void 0 : s.dependents) == null || i.forEach((n) => {\n this.dependentIds.add(n);\n });\n });\n }\n /**\n * Compare two idMatrix snapshots (`before` and `after`) and populate\n * `this.map` and collect dependents for every position where the occupying\n * cell ID changed. Works for any rearrangement (sort, move, etc.).\n */\n buildMap(t, e) {\n for (let s = 0; s < t.length; s++) {\n const i = t[s], n = e[s];\n i != null && n != null && i !== n && (this.collectDependents(i, n), this.map[i] = n);\n }\n }\n resolveDependents(t) {\n this.sheet.clearAddressCaches();\n const e = {};\n return this.dependentIds.forEach((s) => {\n const i = this.sheet.registry.data[s];\n i != null && (e[s] = { ...i }, this.sheet.clearDependencies(s), i.value = this.sheet.processFormula(i.value, {\n dependency: s,\n idMap: this.map,\n operation: t\n }));\n }), e;\n }\n}\nconst qt = (r) => {\n switch (r) {\n case \"INSERT_ROWS\":\n case \"INSERT_COLS\":\n case \"REMOVE_ROWS\":\n case \"REMOVE_COLS\":\n case \"MOVE\":\n case \"SORT_ROWS\":\n return !0;\n }\n return !1;\n}, ue = () => !0;\nclass Y {\n constructor({ limits: t = {}, name: e, registry: s = Ne({}), eager: i = !1 }) {\n this.__gsType = \"Sheet\", this._stripped = Dt, this.area = { top: 0, left: 0, bottom: 0, right: 0 }, this.id = 0, this.name = \"\", this.eager = !1, this.prevName = \"\", this.status = 0, this.idsToBeIdentified = [], this.totalWidth = 0, this.totalHeight = 0, this.fullHeight = 0, this.defaultColWidth = he, this.defaultRowHeight = rt, this.version = 0, this.addressCaches = /* @__PURE__ */ new Map(), this._addressCacheWatermark = 0, this.lastChangedAddresses = [], this._initCells = null, this._hasExplicitCells = !1, this._initMatrices = null, this._matrixBases = [], this._matrixByBase = [], this._colLetters = [], this._rowHeightOverrides = /* @__PURE__ */ new Map(), this._filteredRows = /* @__PURE__ */ new Set(), this.idMatrix = [], this.changedTime = Date.now(), this.eager = i, this._limits = {\n minRows: t.minRows ?? 1,\n maxRows: t.maxRows ?? -1,\n minCols: t.minCols ?? 1,\n maxCols: t.maxCols ?? -1\n }, this.name = e || \"\", this.prevName = this.name, this.registry = s;\n }\n get minNumRows() {\n return this._limits.minRows;\n }\n get maxNumRows() {\n return this._limits.maxRows;\n }\n get minNumCols() {\n return this._limits.minCols;\n }\n get maxNumCols() {\n return this._limits.maxCols;\n }\n static is(t) {\n return (t == null ? void 0 : t.__gsType) === \"Sheet\";\n }\n toString() {\n return `Sheet(name=${rs(this.name)}, top=${this.top}, left=${this.left}, bottom=${this.bottom}, right=${this.right})`;\n }\n get headerHeight() {\n var t;\n return ((t = this.getCell({ y: 0, x: 0 }, { resolution: \"SYSTEM\" })) == null ? void 0 : t.height) || $e;\n }\n setHeaderHeight(t, e = !0) {\n return this.update({\n diff: { 0: { height: t } },\n partial: !0,\n historicize: e\n });\n }\n get headerWidth() {\n var t;\n return ((t = this.getCell({ y: 0, x: 0 }, { resolution: \"SYSTEM\" })) == null ? void 0 : t.width) || Le;\n }\n setHeaderWidth(t, e = !0) {\n return this.update({\n diff: { 0: { width: t } },\n partial: !0,\n historicize: e\n });\n }\n /**\n * Get the raw (mutable) cell data for a point. Unlike getCell, this returns the actual registry.data reference.\n * @internal\n */\n _pointToRawCell({ y: t, x: e }) {\n const s = this.getId({ y: t, x: e });\n if (s != null)\n return this._ensureCellPopulated(t, e, s), this.registry.data[s];\n }\n isRowFiltered(t) {\n var e;\n return !!((e = this._pointToRawCell({ y: t, x: 0 })) != null && e.filtered);\n }\n hasActiveFilters() {\n const t = this.numCols;\n for (let e = 1; e <= t; e++) {\n const s = this._pointToRawCell({ y: 0, x: e });\n if (s != null && s.filter && s.filter.conditions.length > 0)\n return !0;\n }\n return !1;\n }\n /**\n * Returns true if any data cell in this sheet currently holds a Pending value\n * (i.e. an async formula that hasn't resolved yet).\n */\n hasPendingCells() {\n for (const t of Object.keys(this.registry.data)) {\n const e = this.registry.data[t];\n if (L.is(e == null ? void 0 : e.value))\n return !0;\n }\n return !1;\n }\n /**\n * Returns a Promise that resolves when all in-flight async formula computations\n * have completed and no data cells hold Pending values.\n * If nothing is pending, resolves immediately.\n * Useful for waiting before sort/filter so that cell values are fully resolved.\n */\n waitForPending() {\n const t = this.registry.asyncPending;\n if (t.size > 0) {\n const e = Array.from(t.values()).map((s) => s.promise);\n return Promise.all(e).then(() => this.waitForPending());\n }\n return this.hasPendingCells() ? new Promise((e) => {\n const s = () => {\n if (this.registry.asyncPending.size > 0) {\n const i = Array.from(this.registry.asyncPending.values()).map((n) => n.promise);\n Promise.all(i).then(s);\n } else this.hasPendingCells() ? setTimeout(s, 50) : e();\n };\n s();\n }) : Promise.resolve();\n }\n /**\n * Returns the addresses that were changed in the most recent `_update()` call.\n * Useful inside `onChange` to know which cells were modified.\n */\n getLastChangedAddresses() {\n return this.lastChangedAddresses;\n }\n /**\n * Eagerly fire every async formula cell in this sheet, ignoring the visible\n * range.\n *\n * GridSheet is virtualized: normally only cells the UI renders get solved, so\n * an off-screen `=…` formula that calls an async function never fires. Only\n * async cells need this — sync formulas have no side effects and resolve when\n * read (e.g. by serialization), whereas an async cell must be *fired* and given\n * time to settle before its value can be read. `resolveAll()` therefore walks\n * the async-formula index ({@link Registry.asyncFormulaCells}) and solves each\n * one, which fires it through the usual machinery: it resolves, populates the\n * per-cell async cache, and triggers a re-render via `transmit()`. Sync cells\n * that depend on those results resolve normally on the next read.\n *\n * Cells already resolved (async-cache hit) or in flight (Pending) are not\n * re-fired — solving is a cache hit for them — so repeated calls converge and\n * are cheap. After awaiting {@link waitForPending}, serialization helpers such\n * as `toValueMatrix` return resolved values for off-screen cells too.\n *\n * This is the building block behind the opt-in `eager` sheet option; call it\n * directly to resolve on demand without enabling eager mode.\n *\n * @returns the number of async formula cells visited (for diagnostics/tests).\n */\n resolveAll() {\n var s;\n const t = this.registry;\n let e = 0;\n for (const i of Array.from(t.asyncFormulaCells)) {\n const n = t.data[i];\n if (n == null || typeof n.value != \"string\" || n.value.charAt(0) !== \"=\") {\n t.asyncFormulaCells.delete(i);\n continue;\n }\n if (((s = t.systems[i]) == null ? void 0 : s.sheetId) !== this.id)\n continue;\n const { y: o, x: a } = this.getPointById(i);\n if (o < 0 || a < 0) {\n t.asyncFormulaCells.delete(i);\n continue;\n }\n this.getCell({ y: o, x: a }, { resolution: \"RESOLVED\", raise: !1 }), e++;\n }\n return e;\n }\n /**\n * Capture the full cell state of all filter-related header cells as a CellsByIdType snapshot.\n * @internal\n */\n _captureFilterCellStates() {\n var i, n;\n const t = {}, e = this.numCols, s = this.numRows;\n for (let o = 1; o <= e; o++) {\n const a = this.getId({ y: 0, x: o });\n a != null && (t[a] = { filter: ((i = this.registry.data[a]) == null ? void 0 : i.filter) ?? null });\n }\n for (let o = 1; o <= s; o++) {\n const a = this.getId({ y: o, x: 0 });\n a != null && (t[a] = { filtered: ((n = this.registry.data[a]) == null ? void 0 : n.filtered) ?? !1 });\n }\n return t;\n }\n filterRows({\n x: t,\n filter: e\n } = {}) {\n const s = this._captureFilterCellStates();\n if (t == null) {\n const o = this.numCols;\n for (let a = 1; a <= o; a++) {\n const l = this._pointToRawCell({ y: 0, x: a });\n l == null || delete l.filter;\n }\n } else {\n const o = this._pointToRawCell({ y: 0, x: t });\n o && (e ? o.filter = e : delete o.filter);\n }\n this._reapplyFilters();\n const i = this._captureFilterCellStates(), n = Object.keys(s).filter(\n (o) => JSON.stringify(s[o]) !== JSON.stringify(i[o])\n );\n if (n.length > 0) {\n const o = {}, a = {};\n for (const l of n)\n o[l] = s[l], a[l] = i[l];\n this._pushHistory({\n applyed: !0,\n operation: \"UPDATE\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n diffBefore: o,\n diffAfter: a,\n partial: !0\n });\n }\n return this.refresh(!1, !0);\n }\n /** @internal */\n _reapplyFilters() {\n const t = this.numCols, e = [], s = [];\n for (let n = 1; n <= t; n++) {\n const o = this._pointToRawCell({ y: 0, x: n });\n o != null && o.filter && o.filter.conditions.length > 0 && e.push({ x: n, filter: o.filter }), s.push(M({ y: 0, x: n }));\n }\n const i = this.numRows;\n for (let n = 1; n <= i; n++) {\n const o = this._pointToRawCell({ y: n, x: 0 });\n if (!o || o.filterFixed)\n continue;\n let a = !1;\n for (const { x: h, filter: u } of e) {\n const c = this.getCell({ y: n, x: h }, { resolution: \"RESOLVED\" });\n if (!Ii(u, c == null ? void 0 : c.value)) {\n a = !0;\n break;\n }\n }\n const l = !!o.filtered;\n a ? (o.filtered = !0, this._filteredRows.add(n)) : (delete o.filtered, this._filteredRows.delete(n)), l !== a && s.push(M({ y: n, x: 0 }));\n }\n this.lastChangedAddresses = s;\n }\n sortRows({ x: t, direction: e }) {\n const s = this.numRows;\n if (s <= 1)\n return this;\n const i = /* @__PURE__ */ new Set(), n = [];\n for (let c = 1; c <= s; c++) {\n const f = this._pointToRawCell({ y: c, x: 0 });\n f != null && f.sortFixed ? i.add(c) : n.push(c);\n }\n n.sort((c, f) => {\n const d = this.getCell({ y: c, x: t }, { resolution: \"RESOLVED\" }), p = this.getCell({ y: f, x: t }, { resolution: \"RESOLVED\" }), m = d == null ? void 0 : d.value, y = p == null ? void 0 : p.value;\n if (m == null && y == null)\n return 0;\n if (m == null)\n return 1;\n if (y == null)\n return -1;\n let g = 0;\n return typeof m == \"number\" && typeof y == \"number\" ? g = m - y : m instanceof Date && y instanceof Date ? g = m.getTime() - y.getTime() : g = String(m).localeCompare(String(y)), e === \"asc\" ? g : -g;\n });\n const o = [];\n for (let c = 1; c <= s; c++)\n i.has(c) || o.push(c);\n let a = !1;\n for (let c = 0; c < n.length; c++)\n if (n[c] !== o[c]) {\n a = !0;\n break;\n }\n if (!a)\n return this;\n const l = {};\n for (const c of i)\n l[c] = c;\n for (let c = 0; c < n.length; c++)\n l[n[c]] = o[c];\n this._materializeIdMatrix();\n const h = this.idMatrix.slice();\n for (const [c, f] of Object.entries(l))\n this.idMatrix[Number(f)] = h[Number(c)];\n this.addressCaches.clear();\n const u = new wt(this);\n return u.buildMap(h.flat(), this.idMatrix.flat()), u.resolveDependents(), this._pushHistory({\n applyed: !0,\n operation: \"SORT_ROWS\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n sortedRowMapping: l\n }), this.refresh(!0, !0);\n }\n /** @internal */\n _sortRowMapping(t, e = !1) {\n const s = new Array(this.numRows);\n if (e)\n for (const [n, o] of Object.entries(t)) {\n const a = Number(n);\n s[a - 1] = o;\n }\n else\n for (const [n, o] of Object.entries(t)) {\n const a = Number(n);\n s[o - 1] = a;\n }\n this._materializeIdMatrix();\n const i = [];\n for (let n = 0; n < s.length; n++)\n i.push(this.idMatrix[s[n]]);\n for (let n = 0; n < s.length; n++)\n this.idMatrix[n + 1] = i[n];\n this.addressCaches.clear();\n }\n get isInitialized() {\n return this.status === 2;\n }\n get policies() {\n return this.registry.policies;\n }\n /** @internal */\n getSystem(t) {\n const e = this.getId(t);\n if (e != null)\n return this.registry.systems[e];\n }\n /** @internal */\n processFormula(t, { idMap: e, ...s }) {\n if ((typeof t == \"string\" || t instanceof String) && t.charAt(0) === \"=\") {\n const i = new te(t.substring(1));\n return i.tokenize(e), i.identify({ ...s, sheet: this }), i.dependencyIds.forEach((n) => this.addDependency(n, s.dependency)), s.dependency != null && (this._formulaHasAsync(i) ? this.registry.asyncFormulaCells.add(s.dependency) : this.registry.asyncFormulaCells.delete(s.dependency)), \"=\" + i.identifiedFormula;\n }\n return s.dependency != null && this.registry.asyncFormulaCells.delete(s.dependency), t;\n }\n /**\n * Whether a tokenized formula calls at least one async function, decided via\n * the function class's static `isAsync` flag (no instantiation). Drives the\n * async-formula index that {@link resolveAll} walks.\n * @internal\n */\n _formulaHasAsync(t) {\n for (const e of t.tokens)\n if (e.type === \"FUNCTION\") {\n const s = this.registry.functions[String(e.entity).toLowerCase()];\n if (s != null && s.isAsync)\n return !0;\n }\n return !1;\n }\n /** @internal */\n resolveFormulas() {\n this.idsToBeIdentified.forEach((t) => {\n var s;\n const e = this.registry.data[t];\n ((s = this.registry.systems[t]) == null ? void 0 : s.sheetId) != null && e != null && (this.clearDependencies(t), e.value = this.processFormula(e == null ? void 0 : e.value, { dependency: t }));\n }), this.idsToBeIdentified = [], this.status = 2;\n }\n /** @internal */\n getSheetBySheetName(t) {\n const e = this.registry.sheetIdsByName[t];\n return this.getSheetBySheetId(e);\n }\n /** @internal */\n getSheetBySheetId(t) {\n var e, s, i;\n return (i = (s = (e = this.registry.contextsBySheetId[t]) == null ? void 0 : e.store) == null ? void 0 : s.sheetReactive) == null ? void 0 : i.current;\n }\n /** @internal */\n static _stack(...t) {\n const e = {};\n return t.forEach((s) => {\n s != null && s.style && (e.style = { ...e.style, ...s.style }), s != null && s.prevention && (e.prevention = (e.prevention || 0) | s.prevention);\n }), e;\n }\n /** @internal */\n initialize(t) {\n var a, l;\n if (this.status > 1)\n return;\n t[0] == null && (t[0] = { width: Le, height: $e });\n const e = Hs(t, t.__userKeys);\n this.area = {\n top: 1,\n left: 1,\n bottom: e.numRows,\n right: e.numCols\n }, this.idMatrix = new Array(e.numRows + 1), this._colLetters = [];\n for (let h = 0; h <= e.numCols; h++)\n this._colLetters[h] = G(h);\n const s = t.__userKeys ?? Object.keys(t);\n s.forEach((h) => {\n if (h === vt || h === kt || h === $t)\n return;\n const u = Bs(h), c = t[h];\n u.forEach((f) => {\n const d = t[f];\n t[f] = {\n ...d,\n ...c,\n ...Y._stack(d, c)\n };\n });\n }), this._common = t == null ? void 0 : t[vt], this._commonCol = t == null ? void 0 : t[kt], this._commonRow = t == null ? void 0 : t[$t], this._initCells = t;\n const i = (t == null ? void 0 : t.__userKeys) ?? (t ? Object.keys(t) : []);\n this._hasExplicitCells = i.some((h) => {\n if (h === vt || h === kt || h === $t)\n return !1;\n const u = t == null ? void 0 : t[h];\n return u == null || !(\"value\" in u) ? !1 : h.includes(\":\") ? !0 : /^\\$?[A-Z]+\\$?[1-9]/.test(h);\n });\n const n = t.__matrices;\n if (n) {\n this._initMatrices = n, this._initFlattenAs = t.__flattenAs, this._matrixByBase = [];\n for (const h of Object.keys(n)) {\n const { y: u, x: c } = T(h);\n this._matrixByBase.push({ baseY: u, baseX: c, matrix: n[h] });\n }\n }\n ((a = this._commonCol) == null ? void 0 : a.width) != null && (this.defaultColWidth = this._commonCol.width), ((l = this._commonRow) == null ? void 0 : l.height) != null && (this.defaultRowHeight = this._commonRow.height), this._ensureIdRow(0);\n for (let h = 0; h <= e.numCols; h++) {\n const u = this.idMatrix[0][h];\n this._ensureCellPopulated(0, h, u);\n }\n const o = s;\n for (const h of o) {\n if (h === vt || h === kt || h === $t)\n continue;\n const u = T(h), { y: c, x: f } = u;\n if (c === 0 && f === 0 || c === 0 || f === 0 || c <= 0 || f <= 0 || c > e.numRows || f > e.numCols)\n continue;\n const p = this._ensureIdRow(c)[f];\n p != null && this._ensureCellPopulated(c, f, p);\n }\n this.status = 1, this.registry.sheetIdsByName[this.name] = this.id;\n }\n /** @internal */\n _incrementVersion() {\n this.version++, this.version >= Number.MAX_SAFE_INTEGER && (this.version = 1);\n }\n /** @internal */\n _xsheetDispatch(t) {\n if (t === this)\n return;\n t.refresh(!0);\n const e = this.registry.contextsBySheetId[t.id];\n if (e !== null) {\n const { dispatch: s } = e;\n requestAnimationFrame(() => {\n s(this.registry.updateSheet(t));\n });\n }\n }\n /** @internal */\n _generateId() {\n return (this.registry.cellHead++).toString();\n }\n /**\n * Lazily generate the ID row for the given y-coordinate.\n * If the row already exists, returns it immediately.\n * @internal\n */\n _ensureIdRow(t) {\n let e = this.idMatrix[t];\n if (e != null)\n return e;\n const s = this.area.right;\n e = [];\n for (let i = 0; i <= s; i++) {\n const n = this._generateId();\n e.push(n);\n const o = this._colLetters[i] || G(i);\n this.addressCaches.set(n, t === 0 ? `${o}0` : i === 0 ? `0${t}` : `${o}${t}`);\n }\n return this.idMatrix[t] = e, e;\n }\n /**\n * Ensure that registry.data and registry.systems exist for a given cell.\n * Performs lazy cell stacking using stored initialization defaults.\n * @internal\n */\n _ensureCellPopulated(t, e, s) {\n var l, h;\n if (this.registry.data[s] != null)\n return;\n const i = this._initCells, n = Date.now();\n let o;\n if (t === 0 && e > 0) {\n const u = this._colLetters[e] || G(e), c = i == null ? void 0 : i[u], { style: f, ...d } = c ?? {}, p = i == null ? void 0 : i[u + \"0\"];\n o = {\n ...this._commonCol,\n ...d,\n ...p,\n ...Y._stack(this._commonCol, p)\n };\n } else if (e === 0 && t > 0) {\n const u = bt(t), c = i == null ? void 0 : i[u], { style: f, ...d } = c ?? {}, p = i == null ? void 0 : i[\"0\" + u];\n o = {\n ...this._commonRow,\n ...d,\n ...p,\n ...Y._stack(this._commonRow, p)\n };\n } else if (t === 0 && e === 0) {\n const u = i == null ? void 0 : i[\"0\"];\n o = { ...u, ...Y._stack(u) };\n } else {\n const u = this._colLetters[e] || G(e), c = bt(t), f = `${u}${c}`, d = i == null ? void 0 : i[c], p = i == null ? void 0 : i[u];\n let m = i == null ? void 0 : i[f];\n if ((m == null || !(\"value\" in m)) && this._matrixByBase.length > 0)\n for (const { baseY: y, baseX: g, matrix: b } of this._matrixByBase) {\n const _ = t - y, x = e - g;\n if (_ >= 0 && _ < b.length && x >= 0 && x < b[_].length) {\n const w = b[_][x];\n let E;\n this._initFlattenAs ? E = { [this._initFlattenAs]: w } : E = w, m = m ? { ...E, ...m } : E;\n break;\n }\n }\n o = {\n ...this._common,\n ...d,\n ...p,\n ...m,\n ...Y._stack(this._common, d, p, m)\n };\n }\n (h = (l = o == null ? void 0 : o.value) == null ? void 0 : l.startsWith) != null && h.call(l, \"=\") && ((o == null ? void 0 : o.formulaEnabled) ?? !0) && this.idsToBeIdentified.push(s), t === 0 ? o.width == null && (o.width = he) : e === 0 ? (o.height == null && (o.height = rt), o.height !== (this.defaultRowHeight || rt) && this._rowHeightOverrides.set(t, o.height), o.filtered && this._filteredRows.add(t)) : (delete o.height, delete o.width, delete o.label), o = (this.policies[o.policy ?? \"\"] ?? this.defaultPolicy).deserializeValue(o.value, o) ?? {}, this.registry.systems[s] = { ...this.registry.systems[s], id: s, changedTime: n, sheetId: this.id }, this.registry.data[s] = o;\n }\n /**\n * Materialize all lazy ID rows. Call this before operations that need the full\n * idMatrix (e.g. .flat(), .map(), .slice() for sort/move/undo/redo).\n * @internal\n */\n _materializeIdMatrix() {\n for (let t = 0; t < this.idMatrix.length; t++)\n this.idMatrix[t] == null && this._ensureIdRow(t);\n }\n /**\n * Compute the absolute top offset for a given row using arithmetic + overrides.\n * Avoids iterating all rows — O(overrides) instead of O(numRows).\n * @internal\n */\n getOffsetTop(t) {\n const e = this.headerHeight, s = this.defaultRowHeight || rt;\n let i = e + (t - 1) * s;\n for (const [n, o] of this._rowHeightOverrides)\n n < t && (i += o - s);\n for (const n of this._filteredRows)\n if (n < t) {\n const o = this._rowHeightOverrides.get(n) ?? s;\n i -= o;\n }\n return i;\n }\n /**\n * Re-key the row-metadata caches after rows are removed at [y, y+numRows).\n * These maps are keyed by absolute row number, so deletions must drop the removed\n * keys and shift later keys down — otherwise stale entries corrupt getOffsetTop().\n * @internal\n */\n _shiftRowMetaForRemove(t, e) {\n const s = /* @__PURE__ */ new Map();\n for (const [n, o] of this._rowHeightOverrides)\n n < t ? s.set(n, o) : n >= t + e && s.set(n - e, o);\n this._rowHeightOverrides = s;\n const i = /* @__PURE__ */ new Set();\n for (const n of this._filteredRows)\n n < t ? i.add(n) : n >= t + e && i.add(n - e);\n this._filteredRows = i;\n }\n /**\n * Re-key the row-metadata caches after numRows are inserted at y, shifting keys >= y up.\n * @internal\n */\n _shiftRowMetaForInsert(t, e) {\n const s = /* @__PURE__ */ new Map();\n for (const [n, o] of this._rowHeightOverrides)\n s.set(n < t ? n : n + e, o);\n this._rowHeightOverrides = s;\n const i = /* @__PURE__ */ new Set();\n for (const n of this._filteredRows)\n i.add(n < t ? n : n + e);\n this._filteredRows = i;\n }\n /**\n * (Re)seed row-metadata for the rows at [y, y+numRows) from their current header cells.\n * Used after rows are added (insert / undo-remove / redo-insert) so non-default heights\n * and filtered state are reflected immediately rather than only on the next lazy read.\n * @internal\n */\n _seedRowMeta(t, e) {\n const s = this.defaultRowHeight || rt;\n for (let i = 0; i < e; i++) {\n const n = t + i, o = this.getId({ y: n, x: 0 }), a = o ? this.registry.data[o] : void 0;\n (a == null ? void 0 : a.height) != null && a.height !== s ? this._rowHeightOverrides.set(n, a.height) : this._rowHeightOverrides.delete(n), a != null && a.filtered ? this._filteredRows.add(n) : this._filteredRows.delete(n);\n }\n }\n getRectSize({ top: t, left: e, bottom: s, right: i }) {\n var d, p;\n const n = e || 1, o = t || 1, a = ((d = this.registry.systems[this.getId({ y: 0, x: i })]) == null ? void 0 : d.offsetLeft) ?? 0, l = ((p = this.registry.systems[this.getId({ y: 0, x: n })]) == null ? void 0 : p.offsetLeft) ?? 0, h = this.getOffsetTop(s), u = this.getOffsetTop(o), c = Math.max(0, a - l), f = Math.max(0, h - u);\n return { y: o, x: n, height: f, width: c };\n }\n /** @internal */\n setTotalSize() {\n const t = this.numCols, e = this.numRows, s = this.headerWidth, i = this.headerHeight, n = this.defaultRowHeight || rt;\n let o = 0;\n for (let u = 1; u <= t; u++) {\n const c = this.getCell({ y: 0, x: u }, { resolution: \"SYSTEM\" }), f = (c == null ? void 0 : c.width) || this.defaultColWidth || he, d = this.registry.systems[this.getId({ y: 0, x: u })];\n d != null && (d.offsetLeft = s + o), o += f;\n }\n this.totalWidth = s + o;\n let a = 0, l = 0;\n for (const [u, c] of this._rowHeightOverrides)\n u >= 1 && u <= e && (a += c - n);\n for (const u of this._filteredRows)\n if (u >= 1 && u <= e) {\n const c = this._rowHeightOverrides.get(u) ?? n;\n l += c;\n }\n const h = e * n + a;\n this.totalHeight = i + h - l, this.fullHeight = i + h;\n }\n /** @internal */\n refresh(t = !1, e = !1) {\n return this._incrementVersion(), this.lastChangedTime = this.changedTime, this.changedTime = Date.now(), this.clearSolvedCaches(), this._stripped = Dt, t && this.addressCaches.clear(), e && this.setTotalSize(), this;\n }\n /** @internal */\n clone(t = !1) {\n const e = Object.assign(Object.create(Object.getPrototypeOf(this)), this);\n return e._stripped = Dt, e.refresh(t);\n }\n /** @internal */\n getPointById(t, e = 0, s = 0) {\n const i = t.startsWith(\"$\");\n i && (t = t.slice(1), s = 0);\n const n = t.endsWith(\"$\");\n n && (t = t.slice(0, -1), e = 0);\n const o = this.addressCaches.get(t);\n if (o) {\n const h = T(o);\n return { y: h.y + e, x: h.x + s, absCol: i, absRow: n };\n }\n const a = this._addressCacheWatermark, l = this._scanForIdFrom(a, t);\n if (l != null)\n return { y: l.y + e, x: l.x + s, absCol: i, absRow: n };\n if (a > 0) {\n const h = this._scanForIdFrom(0, t);\n if (h != null)\n return { y: h.y + e, x: h.x + s, absCol: i, absRow: n };\n }\n return { y: -1, x: -1, absCol: i, absRow: n };\n }\n /**\n * Scan materialized rows from `fromY`, seeding addressCaches as it goes. Advances the\n * watermark past every row scanned through its last column; if `id` is found mid-row,\n * leaves the watermark at that (still partially seeded) row. Returns the point or null.\n * @internal\n */\n _scanForIdFrom(t, e) {\n let s = t;\n for (; s < this.idMatrix.length; s++) {\n const i = this.idMatrix[s];\n if (i != null)\n for (let n = 0; n < i.length; n++) {\n const o = i[n];\n if (this.addressCaches.set(o, M({ y: s, x: n })), o === e)\n return this._addressCacheWatermark = s, { y: s, x: n };\n }\n }\n return this._addressCacheWatermark = s, null;\n }\n /** @internal */\n getAddressById(t, e = 0, s = 0) {\n const { y: i, x: n, absCol: o, absRow: a } = this.getPointById(t, e, s);\n return Ke(M({ y: i, x: n }), o, a);\n }\n /** @internal */\n clearAddressCaches() {\n this.addressCaches.clear(), this._addressCacheWatermark = 0;\n }\n /** @internal */\n _warmAddressCaches() {\n this._materializeIdMatrix();\n for (let t = 0; t < this.idMatrix.length; t++) {\n const e = this.idMatrix[t];\n for (let s = 0; s < e.length; s++)\n this.addressCaches.set(e[s], M({ y: t, x: s }));\n }\n this._addressCacheWatermark = this.idMatrix.length;\n }\n /** @internal */\n getId(t) {\n var i;\n const { y: e, x: s } = t;\n return e >= 0 && s >= 0 && e <= this.area.bottom && s <= this.area.right ? this._ensureIdRow(e)[s] : (i = this.idMatrix[e]) == null ? void 0 : i[s];\n }\n /** @internal */\n getCell(t, { resolution: e = \"RESOLVED\", raise: s = !1 } = {}) {\n const { y: i, x: n } = t;\n if (i === -1 || n === -1)\n return;\n const o = this.getId(t);\n if (o == null)\n return;\n this._ensureCellPopulated(i, n, o);\n const a = this.registry.data[o];\n if (a == null)\n return;\n let l = a.value;\n return e !== \"SYSTEM\" && (a.formulaEnabled ?? !0) && (l = we({ value: l, sheet: this, point: t, raise: s, resolution: e, at: o })), { ...a, value: l };\n }\n /**\n * Cheap raw-value peek that does NOT materialize the cell. Returns the populated\n * value if the cell already exists, otherwise reads straight from the deferred\n * matrix / init cells. Lets a full-column/row scan (e.g. Ctrl+Shift+arrow's\n * \"select to data edge\") stay O(1) per cell instead of stacking every cell it\n * walks over — a million-row scan was ~1.9s (and materialized the whole column)\n * purely because the empty-check went through getCell.\n */\n peekRawValue({ y: t, x: e }) {\n var i;\n const s = this.idMatrix[t];\n if (s != null) {\n const n = s[e], o = n != null ? this.registry.data[n] : void 0;\n if (o != null)\n return o.value;\n }\n if (!(t <= 0 || e <= 0)) {\n if (this._hasExplicitCells) {\n const n = `${this._colLetters[e] || G(e)}${bt(t)}`, o = (i = this._initCells) == null ? void 0 : i[n];\n if (o != null && \"value\" in o)\n return o.value;\n }\n for (const { baseY: n, baseX: o, matrix: a } of this._matrixByBase) {\n const l = t - n, h = e - o;\n if (l >= 0 && l < a.length) {\n const u = a[l];\n if (h >= 0 && h < u.length) {\n const c = u[h];\n return this._initFlattenAs ? c : c == null ? void 0 : c.value;\n }\n }\n }\n }\n }\n /** @internal */\n get numRows() {\n const { top: t, bottom: e } = this.area;\n return 1 + e - t;\n }\n get numCols() {\n const { left: t, right: e } = this.area;\n return 1 + e - t;\n }\n get top() {\n return this.area.top;\n }\n get left() {\n return this.area.left;\n }\n get bottom() {\n return this.area.bottom;\n }\n get right() {\n return this.area.right;\n }\n /**\n * Fill one matrix row (y) from cell values. Shared by the sync and async\n * _toValueMatrix so the two never diverge. Per-row (not per-cell) call, so the\n * indirection is negligible even at a million cells. @internal\n */\n _fillValueRow(t, e, {\n top: s,\n left: i,\n right: n,\n at: o,\n resolution: a = \"RESOLVED\",\n raise: l = !1,\n filter: h = ue,\n asScalar: u = !1\n }) {\n for (let c = i; c <= n; c++) {\n const f = this.getId({ y: e, x: c });\n if (o === f)\n throw new S(\"#REF!\", \"References are circulating.\");\n const d = this.getCell({ y: e, x: c }, { resolution: a, raise: l }) ?? {};\n if (h(d)) {\n let p = d.value;\n u && (p = this.getPolicy({ y: e, x: c }).toScalar({ value: d.value, cell: d, sheet: this, point: { y: e, x: c } })), t[e - s][c - i] = p;\n }\n }\n }\n /** @internal */\n _toValueMatrix({\n area: t,\n at: e,\n resolution: s = \"RESOLVED\",\n raise: i = !1,\n filter: n = ue,\n asScalar: o = !1\n } = {}) {\n const { top: a, left: l, bottom: h, right: u } = t ?? this.area, c = Jt(h - a + 1, u - l + 1);\n for (let f = a; f <= h; f++)\n this._fillValueRow(c, f, { top: a, left: l, right: u, at: e, resolution: s, raise: i, filter: n, asScalar: o });\n return c;\n }\n /**\n * Async, time-sliced variant of _toValueMatrix. Reading every cell lazily\n * materializes the whole sheet (~hundreds of ms at a million cells), so doing\n * it synchronously freezes the host. This processes rows until `frameBudgetMs`\n * elapses, then reports progress and yields — leaving the UI responsive and\n * letting the caller paint a progress indicator. The caller supplies\n * `yieldControl` (a macrotask/rAF yielder so the host actually paints between\n * chunks); the default microtask only cooperates, which suffices for headless\n * callers that just want to avoid monopolizing the loop. @internal\n */\n async _toValueMatrixAsync({\n area: t,\n at: e,\n resolution: s = \"RESOLVED\",\n raise: i = !1,\n filter: n = ue,\n asScalar: o = !1,\n frameBudgetMs: a = 12,\n onProgress: l,\n yieldControl: h\n } = {}) {\n const { top: u, left: c, bottom: f, right: d } = t ?? this.area, p = Math.max(0, f - u + 1), m = Jt(p, d - c + 1), y = h ?? (() => Promise.resolve());\n l == null || l({ done: 0, total: p });\n let g = Date.now(), b = 0;\n for (let _ = u; _ <= f; _++)\n this._fillValueRow(m, _, { top: u, left: c, right: d, at: e, resolution: s, raise: i, filter: n, asScalar: o }), b++, Date.now() - g >= a && (l == null || l({ done: b, total: p }), await y(), g = Date.now());\n return l == null || l({ done: p, total: p }), m;\n }\n /** @internal */\n _pushHistory(t) {\n const e = this.registry;\n if (e.histories.splice(e.historyIndex + 1, e.histories.length).forEach(this._cleanStrayed.bind(this)), e.histories.push(t), e.lastHistory = e.currentHistory = t, e.histories.length > e.historyLimit) {\n const i = e.histories.splice(0, 1)[0];\n this._cleanObsolete(i);\n } else\n e.historyIndex++;\n }\n /** @internal */\n _cleanObsolete(t) {\n (t.operation === \"REMOVE_ROWS\" || t.operation === \"REMOVE_COLS\") && t.deleted.forEach((e) => {\n e.forEach((s) => {\n this._deleteOrphanedId(s);\n });\n }), t.operation === \"MOVE\" && t.moveRelations.forEach((e) => {\n e.new != null && this._deleteOrphanedId(e.new), e.lost != null && this._deleteOrphanedId(e.lost);\n });\n }\n /** @internal */\n _cleanStrayed(t) {\n (t.operation === \"INSERT_ROWS\" || t.operation === \"INSERT_COLS\") && t.idMatrix.forEach((e) => {\n e.forEach((s) => {\n this._deleteOrphanedId(s);\n });\n });\n }\n /**\n * Remove an id from registry.data and registry.dependents entirely.\n * @internal\n */\n _deleteOrphanedId(t) {\n var s;\n const e = this.registry.systems[t];\n (s = e == null ? void 0 : e.dependencies) == null || s.forEach((i) => {\n var n, o;\n (o = (n = this.registry.systems[i]) == null ? void 0 : n.dependents) == null || o.delete(t);\n }), delete this.registry.data[t], delete this.registry.systems[t];\n }\n /** @internal */\n _copyCellLayout(t) {\n if (t == null)\n return;\n const e = {};\n return t.style != null && (e.style = t.style), t.justifyContent != null && (e.justifyContent = t.justifyContent), t.alignItems != null && (e.alignItems = t.alignItems), t.policy != null && (e.policy = t.policy), t.width != null && (e.width = t.width), t.height != null && (e.height = t.height), e;\n }\n move({\n srcSheet: t = this,\n src: e,\n dst: s,\n historicize: i = !0,\n operator: n = \"SYSTEM\",\n undoReflection: o,\n redoReflection: a\n }) {\n const l = t.__raw__, h = this._createMoveRelations(l, e, this, s), { diffBefore: u, diffAfter: c } = this._moveCells(l, this, h, !1, n);\n return this._xsheetDispatch(l), i && this._pushHistory({\n applyed: !0,\n operation: \"MOVE\",\n srcSheetId: l.id,\n dstSheetId: this.id,\n undoReflection: o,\n redoReflection: a,\n diffBefore: u,\n diffAfter: c,\n moveRelations: h\n }), this.refresh(!0);\n }\n /**\n * Build MoveRelations from src area to dst area, skipping filtered rows.\n *\n * Layout of the returned array (processed in this order by _moveCells):\n * 1. Entries where [0] is a newly-generated ID — these fill the vacated src cells (processed last in forward order)\n * 2. Entries where [0] is a src address and [1] is a dst address — the actual moves (processed first in forward order, descending)\n * Entries whose [1] is an existing ID mean the destination cell is displaced/overflowed and\n * is no longer addressable; on forward pass they are skipped; on reverse pass the ID is written back.\n */\n /** @internal */\n _createMoveRelations(t, e, s, i) {\n const { top: n, left: o, bottom: a, right: l } = e, { top: h, left: u } = i, c = s.numRows, f = s.numCols, d = [];\n for (let x = n; x <= a; x++)\n t.isRowFiltered(x) || d.push(x);\n const p = l - o + 1, m = d.length, y = [];\n {\n let x = 0, w = h;\n for (; x < m; )\n s.isRowFiltered(w) || (y.push(w), x++), w++;\n }\n const g = /* @__PURE__ */ new Set();\n for (let x = 0; x < m; x++)\n for (let w = 0; w < p; w++)\n g.add(M({ y: d[x], x: o + w }));\n const b = /* @__PURE__ */ new Set();\n for (let x = 0; x < m; x++) {\n const w = y[x];\n for (let E = 0; E < p; E++) {\n const D = u + E;\n w <= c && D <= f && b.add(M({ y: w, x: D }));\n }\n }\n const _ = [];\n for (let x = 0; x < m; x++) {\n const w = d[x], E = y[x];\n for (let D = 0; D < p; D++) {\n const k = o + D, N = u + D, B = M({ y: w, x: k }), Z = E <= c && N <= f, q = Z ? M({ y: E, x: N }) : void 0;\n let C;\n t === s && b.has(B) || (C = t._generateId());\n let v;\n if (Z) {\n if (!(t === s && g.has(q))) {\n const U = s.getId({ y: E, x: N });\n U != null && (v = U);\n }\n } else {\n const U = t.getId({ y: w, x: k });\n U != null && (v = U);\n }\n const X = t.getCell({ y: w, x: k }, { resolution: \"SYSTEM\" }), it = Z ? s.getCell({ y: E, x: N }, { resolution: \"SYSTEM\" }) : void 0;\n _.push({\n before: X == null ? void 0 : X.policy,\n after: it == null ? void 0 : it.policy,\n src: B,\n dst: q,\n new: C,\n lost: v\n });\n }\n }\n return _;\n }\n get defaultPolicy() {\n return this.policies[Nt] ?? pi;\n }\n /**\n * Apply (or reverse) a MoveRelations list.\n *\n * Forward (reverse=false): process descending — actual ID moves happen bottom-up so\n * earlier entries don't clobber later ones; vacate entries (at front of array) are\n * applied last.\n * Reverse (reverse=true): process ascending — restores IDs in the natural order.\n *\n * On forward pass: applies policy, collects diffBefore, runs ReferencePreserver.\n * On reverse pass: only moves IDs (caller is responsible for applyDiff(diffBefore)).\n */\n /** @internal */\n _moveCells(t, e, s, i, n = \"SYSTEM\") {\n const o = {}, a = new wt(e), l = {}, h = [], u = [];\n if (i)\n for (const {\n before: m,\n after: y,\n src: g,\n dst: b,\n new: _,\n lost: x\n } of s) {\n if (b != null) {\n const w = T(b), E = e.getId(w);\n if (E != null) {\n const D = T(g);\n h.push({ y: D.y, x: D.x, id: E });\n }\n }\n if (x != null)\n if (b != null) {\n const w = T(b);\n u.push({ y: w.y, x: w.x, id: x });\n } else {\n const w = T(g);\n h.push({ y: w.y, x: w.x, id: x });\n }\n }\n else\n for (const {\n before: m,\n after: y,\n src: g,\n dst: b,\n new: _,\n lost: x\n } of s) {\n const w = T(g), E = t.getId(w), D = b != null ? T(b) : void 0, k = D != null ? e.getId(D) : void 0, N = E != null ? t.registry.data[E] : void 0, B = k != null ? e.registry.data[k] : void 0;\n if (!(n === \"USER\" && (F(N == null ? void 0 : N.prevention, Ut) || F(B == null ? void 0 : B.prevention, Vt)))) {\n if (_ != null) {\n const Z = m || Nt, C = (t.policies[Z] ?? t.defaultPolicy).select({\n sheet: t,\n point: w,\n next: { value: null },\n current: N,\n operation: Ut\n });\n l[_] = {\n ...C,\n policy: m\n }, this.registry.systems[_] = { id: _, sheetId: t.id, changedTime: Date.now() }, h.push({ y: w.y, x: w.x, id: _ });\n }\n if (k != null && D != null && b != null) {\n const Z = y || Nt, q = m || Nt, C = e.policies[Z] ?? e.defaultPolicy, v = t.policies[q] ?? t.defaultPolicy, X = v.priority > C.priority, U = (X ? v : C).select({\n sheet: e,\n point: D,\n next: N,\n current: B,\n operation: Vt\n });\n if (U && (o[E] = N ?? {}, l[E] = {\n ...N,\n ...U,\n policy: X ? m : y\n }), N != null) {\n const K = this.registry.systems[E];\n K && (K.changedTime = Date.now());\n }\n u.push({ y: D.y, x: D.x, id: E });\n }\n }\n }\n i || (t._materializeIdMatrix(), t !== e && e._materializeIdMatrix());\n const c = i ? null : t.idMatrix.flat(), f = !i && t !== e ? e.idMatrix.flat() : null;\n Object.assign(this.registry.data, l);\n for (const { y: m, x: y, id: g } of h)\n t._ensureIdRow(m)[y] = g;\n for (const { y: m, x: y, id: g } of u)\n e._ensureIdRow(m)[y] = g;\n const d = s.filter((m) => m.dst != null).map((m) => m.dst), p = s.map((m) => m.src);\n if (t === e ? e.lastChangedAddresses = [.../* @__PURE__ */ new Set([...p, ...d])] : (e.lastChangedAddresses = d, t.lastChangedAddresses = p), !i) {\n a.buildMap(c.flat(), t.idMatrix.flat()), t !== e && a.buildMap(f.flat(), e.idMatrix.flat());\n const m = a.resolveDependents(\"move\");\n Object.assign(o, m);\n }\n return { diffBefore: o, diffAfter: {} };\n }\n /** Build the paste (copy) diff without applying it. Shared by copy()/copyAsync(). @internal */\n _buildCopyDiff({ srcSheet: t = this, src: e, dst: s, onlyValue: i = !1 }) {\n const n = t !== this, { top: o, left: a, bottom: l, right: h } = e, { top: u, left: c, bottom: f, right: d } = s, p = {}, m = Date.now(), y = [];\n for (let w = o; w <= l; w++)\n t.isRowFiltered(w) || y.push(w);\n const g = [];\n for (let w = u; w <= f; w++)\n w > this.numRows || this.isRowFiltered(w) || g.push(w);\n const b = y.length, _ = h - a + 1, x = d - c + 1;\n for (let w = 0; w < g.length; w++) {\n const E = g[w], D = y[w % b];\n for (let k = 0; k <= x - 1; k++) {\n const N = c + k;\n if (N > this.numCols)\n continue;\n const B = a + k % _, Z = n ? 0 : E - D, q = n ? 0 : N - B, C = {\n ...t.getCell({ y: D, x: B }, { resolution: \"SYSTEM\" })\n }, v = { y: E, x: N }, X = this.getCell(v, { resolution: \"SYSTEM\" }), it = this.getPolicy(v), U = { y: D, x: B }, K = t.getPolicy(U), pt = t.getCell(U, { resolution: \"SYSTEM\" }), mt = K.priority > it.priority;\n C.policy = mt ? pt == null ? void 0 : pt.policy : X == null ? void 0 : X.policy;\n const Ct = this.getId(v);\n this.clearDependencies(Ct);\n const Tt = (C == null ? void 0 : C.formulaEnabled) ?? !0 ? this.processFormula(C == null ? void 0 : C.value, {\n dependency: Ct,\n slideY: Z,\n slideX: q\n }) : C == null ? void 0 : C.value, P = this.getId(v), et = this.registry.systems[P];\n et != null && (et.changedTime = m);\n const yt = M(v);\n if (i) {\n const $ = this.getCell(v, { resolution: \"SYSTEM\" });\n C.style = $ == null ? void 0 : $.style, C.justifyContent = $ == null ? void 0 : $.justifyContent, C.alignItems = $ == null ? void 0 : $.alignItems;\n }\n p[yt] = { ...C, value: Tt };\n }\n }\n return p;\n }\n copy(t) {\n const { operator: e = \"SYSTEM\", undoReflection: s, redoReflection: i } = t;\n return this.update({\n diff: this._buildCopyDiff(t),\n partial: !1,\n operator: e,\n operation: se,\n undoReflection: s,\n redoReflection: i\n });\n }\n /**\n * Async, progress-reporting counterpart to {@link copy} (large paste). Builds AND\n * applies the paste one dst-row-chunk at a time — never materializing the whole\n * diff — so progress advances throughout and peak memory stays to a chunk (the\n * full-diff build was what stalled a 2-million-cell paste at 0%). The source region\n * is snapshotted first so an overlapping paste (e.g. the copied cell is inside the\n * target) never reads an already-pasted value. @internal\n */\n async copyAsync(t, e) {\n const { srcSheet: s = this, src: i, dst: n, onlyValue: o = !1, operator: a = \"SYSTEM\", undoReflection: l, redoReflection: h } = t, { onProgress: u, yieldControl: c, frameBudgetMs: f = 12 } = e, d = c ?? (() => Promise.resolve()), p = s !== this, { top: m, left: y, bottom: g, right: b } = i, { top: _, left: x, bottom: w, right: E } = n, D = Date.now(), k = [];\n for (let P = m; P <= g; P++)\n s.isRowFiltered(P) || k.push(P);\n const N = k.length, B = b - y + 1, Z = E - x + 1, q = [], C = [];\n for (let P = 0; P < N; P++) {\n const et = k[P], yt = [], $ = [];\n for (let ot = 0; ot < B; ot++) {\n const gt = y + ot;\n yt.push(s.getCell({ y: et, x: gt }, { resolution: \"SYSTEM\" }) ?? null), $.push(s.getPolicy({ y: et, x: gt }));\n }\n q.push(yt), C.push($);\n }\n const v = { diffBefore: {}, diffAfter: {}, changedAddresses: [] }, X = {\n partial: !1,\n updateChangedTime: !0,\n ignoreFields: [\"label\"],\n operator: a,\n op: se,\n formulaIdentify: !1,\n // the formula is already resolved (with slide) in the loop below\n changedTime: Date.now()\n }, it = this._filteredRows.size === 0, U = Math.min(w, this.numRows), K = Math.max(0, U - _ + 1);\n let pt = !1, mt = Date.now(), Ct = 0, Tt = 0;\n u == null || u({ done: 0, total: K });\n for (let P = _; P <= U; P++) {\n if (Tt++, !it && this.isRowFiltered(P)) {\n Date.now() - mt >= f && (u == null || u({ done: Tt, total: K }), await d(), mt = Date.now());\n continue;\n }\n const et = Ct % N, yt = k[et];\n Ct++;\n for (let $ = 0; $ <= Z - 1; $++) {\n const ot = x + $;\n if (ot > this.numCols)\n continue;\n const gt = $ % B, xs = y + gt, bs = p ? 0 : P - yt, Ss = p ? 0 : ot - xs, J = q[et][gt], Xt = { y: P, x: ot }, Mt = this.getId(Xt), H = this.registry.data[Mt] ?? this.getCell(Xt, { resolution: \"SYSTEM\" }), _s = (H == null ? void 0 : H.policy) == null ? this.defaultPolicy : this.policies[H.policy] ?? this.defaultPolicy, Rs = C[et][gt].priority > _s.priority;\n this.clearDependencies(Mt);\n const jt = J == null ? void 0 : J.value, Es = typeof jt == \"string\" && jt.charCodeAt(0) === 61 && ((J == null ? void 0 : J.formulaEnabled) ?? !0) ? this.processFormula(jt, { dependency: Mt, slideY: bs, slideX: Ss }) : jt, ke = this.registry.systems[Mt];\n ke != null && (ke.changedTime = D);\n const Gt = { ...J, value: Es, policy: Rs ? J == null ? void 0 : J.policy : H == null ? void 0 : H.policy };\n o && (Gt.style = H == null ? void 0 : H.style, Gt.justifyContent = H == null ? void 0 : H.justifyContent, Gt.alignItems = H == null ? void 0 : H.alignItems), this._applyUpdateCell(Xt, Mt, M(Xt), Gt, X, v, !0) && (pt = !0);\n }\n Date.now() - mt >= f && (u == null || u({ done: Tt, total: K }), await d(), mt = Date.now());\n }\n return this.lastChangedAddresses = v.changedAddresses, u == null || u({ done: K, total: K }), this._pushHistory({\n applyed: !0,\n operation: \"UPDATE\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n undoReflection: l,\n redoReflection: h,\n diffBefore: v.diffBefore,\n diffAfter: v.diffAfter,\n partial: !1\n }), this.refresh(!1, pt);\n }\n getPolicy(t) {\n const e = this.getCell(t, { resolution: \"SYSTEM\" });\n return (e == null ? void 0 : e.policy) == null ? this.defaultPolicy : this.policies[e.policy] ?? this.defaultPolicy;\n }\n /** @internal */\n _update({\n diff: t,\n partial: e = !0,\n updateChangedTime: s = !0,\n ignoreFields: i = [\"label\"],\n operator: n = \"SYSTEM\",\n operation: o = xt,\n formulaIdentify: a = !0\n }) {\n const l = { diffBefore: {}, diffAfter: {}, changedAddresses: [] }, h = {\n partial: e,\n updateChangedTime: s,\n ignoreFields: i,\n operator: n,\n op: o,\n formulaIdentify: a,\n changedTime: Date.now()\n };\n let u = !1;\n for (const c of Object.keys(t)) {\n const f = T(c);\n this._applyUpdateCell(f, this.getId(f), c, t[c], h, l) && (u = !0);\n }\n return this.lastChangedAddresses = l.changedAddresses, {\n diffBefore: l.diffBefore,\n diffAfter: l.diffAfter,\n resized: u\n };\n }\n /**\n * Apply one diff entry to registry.data, recording undo/redo state into `out`.\n * Shared by the synchronous `_update` and the chunked `updateAsync` so the two\n * never diverge. Returns whether this cell triggered a resize. @internal\n */\n _applyUpdateCell(t, e, s, i, n, o, a = !1) {\n var f, d, p, m, y;\n const l = this.registry.data[e];\n if (n.operator === \"USER\" && F(l == null ? void 0 : l.prevention, xt))\n return !1;\n let h = a ? i : { ...i };\n n.formulaIdentify && \"value\" in h && (h.formulaEnabled ?? (l == null ? void 0 : l.formulaEnabled) ?? !0) && (this.clearDependencies(e), h.value = this.processFormula(h.value, { dependency: e })), n.ignoreFields.forEach((g) => {\n h[g] = l == null ? void 0 : l[g];\n }), n.operator === \"USER\" && F(l == null ? void 0 : l.prevention, St) && delete h.value, n.operator === \"USER\" && F(l == null ? void 0 : l.prevention, ae) && ((f = h == null ? void 0 : h.style) == null || delete f.justifyContent, (d = h == null ? void 0 : h.style) == null || delete d.alignItems), n.operator === \"USER\" && F(l == null ? void 0 : l.prevention, ce) && ((p = h == null ? void 0 : h.style) == null || delete p.width, (m = h == null ? void 0 : h.style) == null || delete m.height);\n let u = !1;\n if ((h.width != null || h.height != null) && (u = !0), o.diffBefore[e] = l ?? {}, h = (this.policies[(l == null ? void 0 : l.policy) || Nt] ?? this.defaultPolicy).select({ sheet: this, point: t, next: h, current: l, operation: n.op }) ?? h, n.updateChangedTime) {\n const g = this.registry.systems[e];\n g != null && (g.changedTime = n.changedTime);\n }\n if (n.partial) {\n const g = { ...l, ...h };\n this.registry.data[e] = g, o.diffAfter[e] = g;\n } else\n this.registry.data[e] = h, o.diffAfter[e] = h;\n if (t.x === 0 && t.y >= 1) {\n const g = (y = this.registry.data[e]) == null ? void 0 : y.height, b = this.defaultRowHeight || rt;\n g != null && g !== b ? this._rowHeightOverrides.set(t.y, g) : this._rowHeightOverrides.delete(t.y);\n }\n return o.changedAddresses.push(s), u;\n }\n update({\n diff: t,\n partial: e = !0,\n updateChangedTime: s = !0,\n historicize: i = !0,\n operator: n = \"SYSTEM\",\n operation: o = xt,\n ignoreFields: a,\n undoReflection: l,\n redoReflection: h\n }) {\n const { diffBefore: u, diffAfter: c, resized: f } = this._update({\n diff: t,\n partial: e,\n operator: n,\n operation: o,\n updateChangedTime: s,\n ...a != null ? { ignoreFields: a } : {}\n });\n return i && this._pushHistory({\n applyed: !0,\n operation: \"UPDATE\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n undoReflection: l,\n redoReflection: h,\n diffBefore: u,\n diffAfter: c,\n partial: e\n }), this.refresh(!1, f);\n }\n /**\n * Async, time-sliced counterpart to {@link update}. Applies the diff in chunks,\n * yielding + reporting progress between them, so a bulk write (fill / paste of\n * millions of cells) doesn't freeze the host and can drive a progress bar. Pushes\n * a SINGLE history entry (one undo) and produces the same result as update().\n * The caller is responsible for blocking other mutations while this runs — the\n * sheet is in an intermediate state between chunks.\n */\n async updateAsync({\n diff: t,\n partial: e = !0,\n updateChangedTime: s = !0,\n historicize: i = !0,\n operator: n = \"SYSTEM\",\n operation: o = xt,\n ignoreFields: a = [\"label\"],\n undoReflection: l,\n redoReflection: h,\n onProgress: u,\n yieldControl: c,\n frameBudgetMs: f = 12\n }) {\n const d = { diffBefore: {}, diffAfter: {}, changedAddresses: [] }, p = {\n partial: e,\n updateChangedTime: s,\n ignoreFields: a,\n operator: n,\n op: o,\n formulaIdentify: !0,\n changedTime: Date.now()\n }, m = Object.keys(t), y = m.length, g = c ?? (() => Promise.resolve());\n let b = !1, _ = Date.now();\n u == null || u({ done: 0, total: y });\n for (let x = 0; x < y; x++) {\n const w = m[x], E = T(w);\n this._applyUpdateCell(E, this.getId(E), w, t[w], p, d) && (b = !0), Date.now() - _ >= f && (u == null || u({ done: x + 1, total: y }), await g(), _ = Date.now());\n }\n return this.lastChangedAddresses = d.changedAddresses, u == null || u({ done: y, total: y }), i && this._pushHistory({\n applyed: !0,\n operation: \"UPDATE\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n undoReflection: l,\n redoReflection: h,\n diffBefore: d.diffBefore,\n diffAfter: d.diffAfter,\n partial: e\n }), this.refresh(!1, b);\n }\n /** @internal */\n writeRawCellMatrix({\n point: t,\n matrix: e,\n updateChangedTime: s = !0,\n historicize: i = !0,\n onlyValue: n = !1,\n operator: o = \"SYSTEM\",\n undoReflection: a,\n redoReflection: l\n }) {\n const { y: h, x: u } = t, c = {};\n let f = 0, d = h;\n for (; f < e.length && !(d > this.bottom); ) {\n if (this.isRowFiltered(d)) {\n d++;\n continue;\n }\n e[f].forEach((m, y) => {\n const g = u + y;\n if (g > this.right)\n return;\n const b = { y: d, x: g }, _ = this.parse(b, m.value ?? \"\");\n if (_.style = { ...m.style, ..._.style }, n) {\n const x = this.getCell(b, { resolution: \"SYSTEM\" });\n _.style = x == null ? void 0 : x.style, _.justifyContent = x == null ? void 0 : x.justifyContent, _.alignItems = x == null ? void 0 : x.alignItems;\n }\n c[M(b)] = _;\n }), f++, d++;\n }\n return this.update({\n diff: c,\n partial: !0,\n updateChangedTime: s,\n historicize: i,\n operator: o,\n operation: St,\n undoReflection: a,\n redoReflection: l\n });\n }\n writeMatrix(t) {\n const e = t.matrix.map((s) => s.map((i) => ({ value: i })));\n return this.writeRawCellMatrix({ ...t, matrix: e });\n }\n write(t) {\n const { point: e, value: s } = t, i = this.parse(e, s ?? \"\"), n = this.getCell(e, { resolution: \"RAW\" });\n if (((n == null ? void 0 : n.value) ?? null) === i.value)\n return this;\n const o = { [M(e)]: i };\n return this.update({\n ...t,\n diff: o,\n partial: !0,\n operation: St\n });\n }\n insertRows({\n y: t,\n numRows: e,\n baseY: s,\n diff: i,\n partial: n,\n updateChangedTime: o,\n operator: a = \"SYSTEM\",\n undoReflection: l,\n redoReflection: h\n }) {\n if (this.maxNumRows !== -1 && this.numRows + e > this.maxNumRows)\n return console.error(`Rows are limited to ${this.maxNumRows}.`), this;\n const u = this.numCols, c = [], f = Date.now();\n for (let d = 0; d < e; d++) {\n const p = [];\n for (let m = 0; m <= u; m++) {\n const y = this._generateId();\n p.push(y);\n const g = this.getCell({ y: s, x: m }, { resolution: \"SYSTEM\" }), b = this._copyCellLayout(g);\n this.registry.data[y] = { ...b }, this.registry.systems[y] = { id: y, sheetId: this.id, changedTime: f };\n }\n c.push(p);\n }\n if (this.idMatrix.splice(t, 0, ...c), this.area.bottom += e, this._shiftRowMetaForInsert(t, e), this._seedRowMeta(t, e), this._pushHistory({\n applyed: !0,\n operation: \"INSERT_ROWS\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n undoReflection: l,\n redoReflection: h,\n y: t,\n numRows: e,\n idMatrix: c\n }), i && Object.assign(this.registry.lastHistory, this._update({ diff: i, partial: n, updateChangedTime: o, operator: a }), {\n partial: n\n }), this.registry.onInsertRows) {\n const d = this.clone();\n d.area = {\n top: t,\n bottom: t + e - 1,\n left: this.area.left,\n right: this.area.right\n }, d.addressCaches = /* @__PURE__ */ new Map(), d._addressCacheWatermark = 0, this.registry.onInsertRows({ sheet: d, y: t, numRows: e });\n }\n return this.refresh(!0, !0);\n }\n removeRows({\n y: t,\n numRows: e,\n operator: s = \"SYSTEM\",\n undoReflection: i,\n redoReflection: n\n }) {\n if (this.minNumRows !== -1 && this.numRows - e < this.minNumRows)\n return console.error(`At least ${this.minNumRows} row(s) are required.`), this;\n const o = new wt(this), a = [];\n this._materializeIdMatrix();\n const l = this.idMatrix.map((c) => [...c]);\n for (let c = t; c < t + e; c++) {\n const f = this.getCell({ y: c, x: 0 }, { resolution: \"SYSTEM\" });\n if (s === \"USER\" && F(f == null ? void 0 : f.prevention, ne))\n return console.warn(`Cannot delete row ${c}.`), this;\n for (let d = 1; d <= this.numCols; d++) {\n const p = this.getId({ y: c, x: d });\n p != null && (o.collectDependents(p), o.map[p] = this.getId({ y: c + e, x: d }));\n }\n a.unshift(c);\n }\n const h = [];\n a.forEach((c) => {\n const f = this.idMatrix.splice(c, 1);\n h.unshift(f[0]);\n }), this.area.bottom -= a.length, this._shiftRowMetaForRemove(t, e);\n const u = o.resolveDependents(\"removeRows\");\n if (this._pushHistory({\n applyed: !0,\n operation: \"REMOVE_ROWS\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n undoReflection: i,\n redoReflection: n,\n ys: a.reverse(),\n diffBefore: u,\n deleted: h\n }), this.registry.onRemoveRows) {\n const c = this.clone();\n c.idMatrix = l, c.area = {\n top: t,\n bottom: t + e - 1,\n left: this.area.left,\n right: this.area.right\n }, c.addressCaches = /* @__PURE__ */ new Map(), c._addressCacheWatermark = 0, this.registry.onRemoveRows({ sheet: c, ys: a.reverse() });\n }\n return this.refresh(!0, !0);\n }\n insertCols({\n x: t,\n numCols: e,\n baseX: s,\n diff: i,\n partial: n,\n updateChangedTime: o,\n operator: a = \"SYSTEM\",\n undoReflection: l,\n redoReflection: h\n }) {\n if (this.maxNumCols !== -1 && this.numCols + e > this.maxNumCols)\n return console.error(`Columns are limited to ${this.maxNumCols}.`), this;\n const u = this.numRows, c = [], f = Date.now();\n for (let d = 0; d <= u; d++) {\n const p = [];\n for (let m = 0; m < e; m++) {\n const y = this._generateId();\n p.push(y);\n const g = this.getCell({ y: d, x: s }, { resolution: \"SYSTEM\" }), b = this._copyCellLayout(g);\n this._ensureIdRow(d).splice(t, 0, y), this.registry.data[y] = { ...b }, this.registry.systems[y] = { id: y, sheetId: this.id, changedTime: f };\n }\n c.push(p);\n }\n if (this.area.right += e, this._pushHistory({\n applyed: !0,\n operation: \"INSERT_COLS\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n undoReflection: l,\n redoReflection: h,\n x: t,\n numCols: e,\n idMatrix: c\n }), i && Object.assign(this.registry.lastHistory, this._update({ diff: i, partial: n, updateChangedTime: o, operator: a }), {\n partial: n\n }), this.registry.onInsertCols) {\n const d = this.clone();\n d.area = {\n top: this.area.top,\n bottom: this.area.bottom,\n left: t,\n right: t + e - 1\n }, d.addressCaches = /* @__PURE__ */ new Map(), d._addressCacheWatermark = 0, this.registry.onInsertCols({ sheet: d, x: t, numCols: e });\n }\n return this.refresh(!0, !0);\n }\n removeCols({\n x: t,\n numCols: e,\n operator: s = \"SYSTEM\",\n undoReflection: i,\n redoReflection: n\n }) {\n if (this.minNumCols !== -1 && this.numCols - e < this.minNumCols)\n return console.error(`At least ${this.minNumCols} column(s) are required.`), this;\n const o = new wt(this), a = [];\n this._materializeIdMatrix();\n const l = this.idMatrix.map((c) => [...c]);\n for (let c = t; c < t + e; c++) {\n const f = this.getCell({ y: 0, x: c }, { resolution: \"SYSTEM\" });\n if (s === \"USER\" && F(f == null ? void 0 : f.prevention, oe)) {\n console.warn(`Cannot delete col ${c}.`);\n continue;\n }\n for (let d = 1; d <= this.numRows; d++) {\n const p = this.getId({ y: d, x: c });\n p != null && (o.collectDependents(p), o.map[p] = this.getId({ y: d, x: c + e }));\n }\n a.unshift(c);\n }\n const h = [];\n this.idMatrix.forEach((c) => {\n const f = [];\n h.push(f), a.forEach((d) => {\n f.unshift(...c.splice(d, 1));\n });\n }), this.area.right -= a.length;\n const u = o.resolveDependents(\"removeCols\");\n if (this._pushHistory({\n applyed: !0,\n operation: \"REMOVE_COLS\",\n srcSheetId: this.id,\n dstSheetId: this.id,\n undoReflection: i,\n redoReflection: n,\n xs: a.reverse(),\n diffBefore: u,\n deleted: h\n }), this.registry.onRemoveCols) {\n const c = this.clone();\n c.idMatrix = l, c.area = {\n top: this.area.top,\n bottom: this.area.bottom,\n left: t,\n right: t + e - 1\n }, c.addressCaches = /* @__PURE__ */ new Map(), c._addressCacheWatermark = 0, this.registry.onRemoveCols({ sheet: c, xs: a.reverse() });\n }\n return this.refresh(!0, !0);\n }\n /** @internal */\n histories() {\n return [...this.registry.histories];\n }\n /** @internal */\n historyIndex() {\n return this.registry.historyIndex;\n }\n /** @internal */\n historySize() {\n return this.registry.histories.length;\n }\n /** @internal */\n getHistoryLimit() {\n return this.registry.historyLimit;\n }\n /** @internal */\n parse(t, e) {\n const s = this.getCell(t, { resolution: \"SYSTEM\" }) ?? {};\n return this.getPolicy(t).deserializeValue(e, s);\n }\n /** @internal */\n render(t) {\n const { point: e, apply: s } = t;\n return this.getId(e), this.getPolicy(e).render({ sheet: this, point: e, apply: s, value: void 0 });\n }\n getSerializedValue({\n point: t,\n cell: e,\n resolution: s = \"RESOLVED\"\n }) {\n if (e == null) {\n const o = this.getId(t);\n e = o != null ? this.registry.data[o] : void 0;\n }\n if (e == null)\n return \"\";\n const i = this.getPolicy(t), n = e.value;\n if (typeof n == \"string\" && n[0] === \"=\") {\n if (s === \"SYSTEM\")\n return n;\n if (s === \"RAW\" || (e == null ? void 0 : e.formulaEnabled) === !1) {\n const o = new te(n.substring(1));\n return o.tokenize(), \"=\" + o.display({ sheet: this });\n }\n try {\n const o = this.getId(t), a = we({ value: n, sheet: this, point: t, raise: !0, resolution: s, at: o }), l = ut({ value: a, raise: !1 });\n return i.serialize({ value: l, cell: e, sheet: this, point: t });\n } catch (o) {\n return i.serialize({ value: o, cell: e, sheet: this, point: t });\n }\n }\n return i.serialize({ value: n, cell: e, sheet: this, point: t });\n }\n /** @internal */\n trim(t) {\n const e = Object.assign(Object.create(Object.getPrototypeOf(this)), this);\n return e.area = t, e._stripped = Dt, e;\n }\n /**\n * Solve all formulas in this sheet and return a 2D matrix of resolved values.\n * @internal\n */\n solve({ raise: t = !1, at: e }) {\n return Ve({ sheet: this, raise: t, at: e });\n }\n /**\n * Collapse this sheet to a scalar (top-left cell value).\n * @internal\n */\n strip({ raise: t = !1, at: e }) {\n var i;\n if (!Dt.is(this._stripped))\n return this._stripped;\n let s = this;\n for (; s instanceof Y; )\n s = (i = Ve({ sheet: s, raise: t, at: e })[0]) == null ? void 0 : i[0];\n return this._stripped = s, this._stripped;\n }\n /** @internal */\n /** Apply one undo/redo diff entry to registry.data. Shared by sync/async. @internal */\n _applyDiffCell(t, e, s) {\n let i;\n s ? (i = { ...this.registry.data[t] }, Object.keys(e).forEach((a) => {\n e[a] === void 0 ? delete i[a] : i[a] = e[a];\n })) : i = { ...e };\n const n = this.registry.systems[t];\n n != null && (n.changedTime = Date.now()), this.registry.data[t] = i, this.clearDependencies(t), this.processFormula(i.value, { dependency: t });\n const o = this.addressCaches.get(t);\n if (o) {\n const a = T(o);\n if (a.x === 0 && a.y > 0) {\n const l = this.defaultRowHeight || rt, h = i.height ?? l;\n h !== l ? this._rowHeightOverrides.set(a.y, h) : this._rowHeightOverrides.delete(a.y), i.filtered ? this._filteredRows.add(a.y) : this._filteredRows.delete(a.y);\n }\n }\n }\n _finishApplyDiff(t) {\n this._warmAddressCaches();\n const e = [];\n for (const s of t) {\n const i = this.getAddressById(s);\n i && e.push(i);\n }\n this.lastChangedAddresses = e;\n }\n _applyDiff(t = {}, e = !0) {\n const s = Object.keys(t);\n for (const i of s)\n this._applyDiffCell(i, t[i] ?? {}, e);\n this._finishApplyDiff(s);\n }\n /** Chunked, progress-reporting counterpart to _applyDiff (large undo/redo). @internal */\n async _applyDiffAsync(t = {}, e = !0, s = {}) {\n var h, u, c;\n const i = Object.keys(t), n = i.length, o = s.yieldControl ?? (() => Promise.resolve()), a = s.frameBudgetMs ?? 12;\n let l = Date.now();\n (h = s.onProgress) == null || h.call(s, { done: 0, total: n });\n for (let f = 0; f < n; f++) {\n const d = i[f];\n this._applyDiffCell(d, t[d] ?? {}, e), Date.now() - l >= a && ((u = s.onProgress) == null || u.call(s, { done: f + 1, total: n }), await o(), l = Date.now());\n }\n (c = s.onProgress) == null || c.call(s, { done: n, total: n });\n }\n undo() {\n if (this.registry.historyIndex < 0)\n return { history: null, newSheet: this.__raw__ };\n const t = this.registry.histories[this.registry.historyIndex--];\n t.applyed = !1, this.registry.currentHistory = this.registry.histories[this.registry.historyIndex];\n const e = this.getSheetBySheetId(t.srcSheetId), s = this.getSheetBySheetId(t.dstSheetId);\n if (!s)\n return { history: null, newSheet: this.__raw__ };\n switch (t.operation) {\n case \"UPDATE\":\n s._applyDiff(t.diffBefore, t.partial ?? !1);\n break;\n case \"INSERT_ROWS\": {\n t.diffBefore && s._applyDiff(t.diffBefore, !1);\n const { rows: i } = Zt({ matrix: t.idMatrix });\n s._materializeIdMatrix(), s.idMatrix.splice(t.y, i), s.area.bottom -= i, s._shiftRowMetaForRemove(t.y, i);\n break;\n }\n case \"INSERT_COLS\": {\n t.diffBefore && s._applyDiff(t.diffBefore, !1);\n const { cols: i } = Zt({ matrix: t.idMatrix });\n s._materializeIdMatrix(), s.idMatrix.forEach((n) => {\n n.splice(t.x, i);\n }), s.area.right -= i;\n break;\n }\n case \"REMOVE_ROWS\": {\n const { ys: i, deleted: n } = t;\n s._materializeIdMatrix(), i.forEach((a, l) => {\n s.idMatrix.splice(a, 0, n[l]);\n }), s.area.bottom += i.length;\n const o = Math.min(...i);\n s._shiftRowMetaForInsert(o, i.length), s._seedRowMeta(o, i.length), this._applyDiff(t.diffBefore, !1);\n break;\n }\n case \"REMOVE_COLS\": {\n const { xs: i, deleted: n } = t;\n s._materializeIdMatrix(), s.idMatrix.forEach((o, a) => {\n for (let l = 0; l < i.length; l++)\n o.splice(i[l], 0, n[a][l]);\n }), s.area.right += i.length, this._applyDiff(t.diffBefore, !1);\n break;\n }\n case \"MOVE\": {\n e && this._moveCells(e, s, t.moveRelations, !0);\n const i = s.lastChangedAddresses;\n s._applyDiff(t.diffBefore, !1), s.lastChangedAddresses = [.../* @__PURE__ */ new Set([...i, ...s.lastChangedAddresses])];\n break;\n }\n case \"SORT_ROWS\": {\n s._materializeIdMatrix();\n const i = s.idMatrix.flat();\n s._sortRowMapping(t.sortedRowMapping, !0);\n const n = new wt(s);\n n.buildMap(i, s.idMatrix.flat()), n.resolveDependents(), s._reapplyFilters();\n break;\n }\n }\n return this.refresh(qt(t.operation), !0), s !== this && (s.addressCaches.clear(), s.setTotalSize()), t.operation === \"MOVE\" && e && e !== s && this._xsheetDispatch(e), {\n history: t,\n callback: ({ sheetReactive: i }) => {\n var n, o;\n (o = i.current) == null || o.registry.transmit((n = t.undoReflection) == null ? void 0 : n.transmit);\n }\n };\n }\n redo() {\n if (this.registry.historyIndex + 1 >= this.registry.histories.length)\n return { history: null, newSheet: this.__raw__ };\n const t = this.registry.histories[++this.registry.historyIndex];\n t.applyed = !0, this.registry.currentHistory = t;\n const e = this.getSheetBySheetId(t.srcSheetId), s = this.getSheetBySheetId(t.dstSheetId);\n if (!s)\n return { history: null, newSheet: this.__raw__ };\n switch (t.operation) {\n case \"UPDATE\":\n s._applyDiff(t.diffAfter, t.partial ?? !1);\n break;\n case \"INSERT_ROWS\": {\n t.diffAfter && s._applyDiff(t.diffAfter, !1);\n const { rows: i } = Zt({ matrix: t.idMatrix });\n s._materializeIdMatrix(), s.idMatrix.splice(t.y, 0, ...t.idMatrix), s.area.bottom += i, s._shiftRowMetaForInsert(t.y, i), s._seedRowMeta(t.y, i);\n break;\n }\n case \"INSERT_COLS\": {\n t.diffAfter && s._applyDiff(t.diffAfter, !1);\n const { cols: i } = Zt({ matrix: t.idMatrix });\n s._materializeIdMatrix(), s.idMatrix.map((n, o) => {\n n.splice(t.x, 0, ...t.idMatrix[o]);\n }), s.area.right += i;\n break;\n }\n case \"REMOVE_ROWS\": {\n s.removeRows({\n y: t.ys[0],\n numRows: t.ys.length,\n operator: \"SYSTEM\",\n undoReflection: t.undoReflection,\n redoReflection: t.redoReflection\n });\n break;\n }\n case \"REMOVE_COLS\": {\n s.removeCols({\n x: t.xs[0],\n numCols: t.xs.length,\n operator: \"SYSTEM\",\n undoReflection: t.undoReflection,\n redoReflection: t.redoReflection\n });\n break;\n }\n case \"MOVE\": {\n e && this._moveCells(e, s, t.moveRelations, !1);\n break;\n }\n case \"SORT_ROWS\": {\n s._materializeIdMatrix();\n const i = s.idMatrix.flat();\n s._sortRowMapping(t.sortedRowMapping, !1);\n const n = new wt(s);\n n.buildMap(i, s.idMatrix.flat()), n.resolveDependents(), s._reapplyFilters();\n break;\n }\n }\n return this.refresh(qt(t.operation), !0), s !== this && (s.addressCaches.clear(), s.setTotalSize()), t.operation === \"MOVE\" && e && e !== s && this._xsheetDispatch(e), {\n history: t,\n callback: ({ sheetReactive: i }) => {\n var n, o;\n (o = i.current) == null || o.registry.transmit((n = t.redoReflection) == null ? void 0 : n.transmit);\n }\n };\n }\n /** @internal The history the next undo would apply (without applying it). */\n peekUndo() {\n const t = this.registry.historyIndex;\n return t < 0 ? null : this.registry.histories[t];\n }\n /** @internal The history the next redo would apply. */\n peekRedo() {\n const t = this.registry.historyIndex + 1;\n return t >= this.registry.histories.length ? null : this.registry.histories[t];\n }\n /**\n * Async, progress-reporting undo of a large UPDATE (paste/fill). Mirrors the UPDATE\n * branch of undo() but applies diffBefore in chunks. Only call when peekUndo() is an\n * UPDATE; other operations must use the synchronous undo(). @internal\n */\n async undoAsync(t) {\n if (this.registry.historyIndex < 0)\n return { history: null, newSheet: this.__raw__ };\n const e = this.registry.histories[this.registry.historyIndex];\n if (e.operation !== \"UPDATE\")\n return this.undo();\n this.registry.historyIndex--, e.applyed = !1, this.registry.currentHistory = this.registry.histories[this.registry.historyIndex];\n const s = this.getSheetBySheetId(e.dstSheetId);\n return s ? (await s._applyDiffAsync(e.diffBefore, e.partial ?? !1, t), this.refresh(qt(e.operation), !0), s !== this && (s.addressCaches.clear(), s.setTotalSize()), {\n history: e,\n callback: ({ sheetReactive: i }) => {\n var n, o;\n (o = i.current) == null || o.registry.transmit((n = e.undoReflection) == null ? void 0 : n.transmit);\n }\n }) : { history: null, newSheet: this.__raw__ };\n }\n /** Async, progress-reporting redo of a large UPDATE (paste/fill). @internal */\n async redoAsync(t) {\n if (this.registry.historyIndex + 1 >= this.registry.histories.length)\n return { history: null, newSheet: this.__raw__ };\n const e = this.registry.histories[this.registry.historyIndex + 1];\n if (e.operation !== \"UPDATE\")\n return this.redo();\n this.registry.historyIndex++, e.applyed = !0, this.registry.currentHistory = e;\n const s = this.getSheetBySheetId(e.dstSheetId);\n return s ? (await s._applyDiffAsync(e.diffAfter, e.partial ?? !1, t), this.refresh(qt(e.operation), !0), s !== this && (s.addressCaches.clear(), s.setTotalSize()), {\n history: e,\n callback: ({ sheetReactive: i }) => {\n var n, o;\n (o = i.current) == null || o.registry.transmit((n = e.redoReflection) == null ? void 0 : n.transmit);\n }\n }) : { history: null, newSheet: this.__raw__ };\n }\n /** @internal */\n getFunctionByName(t) {\n return this.registry.functions[t];\n }\n /** @internal */\n clearDependencies(t) {\n var s;\n const e = this.registry.systems[t];\n (s = e == null ? void 0 : e.dependencies) == null || s.forEach((i) => {\n var n, o;\n (o = (n = this.registry.systems[i]) == null ? void 0 : n.dependents) == null || o.delete(t);\n }), e != null && (e.dependencies = /* @__PURE__ */ new Set());\n }\n /** @internal */\n addDependency(t, e) {\n const s = Lt(this.registry, t);\n s.dependents == null && (s.dependents = /* @__PURE__ */ new Set()), s.dependents.add(e);\n const i = Lt(this.registry, e);\n i.dependencies == null && (i.dependencies = /* @__PURE__ */ new Set()), i.dependencies.add(t);\n }\n /** @internal */\n getSolvedCache(t) {\n const e = this.getId(t);\n return [this.registry.solvedCaches.has(e), this.registry.solvedCaches.get(e)];\n }\n /** @internal */\n setSolvingCache(t) {\n const e = this.getId(t);\n this.registry.solvedCaches.set(e, Yt), Lt(this.registry, e, { tmpAsyncCaches: {} });\n }\n /** @internal */\n finishSolvedCache(t, e) {\n if (Yt.is(e))\n return;\n const s = this.getId(t);\n this.registry.solvedCaches.set(s, e);\n const i = this.registry.data[s];\n if (i == null)\n return;\n const n = this.registry.systems[s], o = n == null ? void 0 : n.tmpAsyncCaches;\n o != null && (Object.keys(o).length > 0 ? i.asyncCaches = o : delete i.asyncCaches, delete n.tmpAsyncCaches);\n }\n /** @internal */\n clearSolvedCaches() {\n this.registry.solvedCaches.clear();\n for (const t of this.registry.lastSpilledTargetIds) {\n const e = this.registry.systems[t];\n (e == null ? void 0 : e.spilledFrom) != null && delete e.spilledFrom;\n }\n this.registry.lastSpilledTargetIds.clear();\n }\n /**\n * Spill a 2D matrix of values starting from the origin cell.\n * The origin cell receives matrix[0][0] and adjacent cells receive spill values in solvedCaches.\n * For a 1×1 matrix, no spill occurs — the single value is cached directly.\n * Throws FormulaError('#REF!') if the spill range is obstructed.\n *\n * @param origin The anchor cell that produced the spill.\n * @param matrix The 2D array of resolved scalar values.\n * @returns The top-left value (matrix[0][0]).\n * @internal\n */\n spill(t, e) {\n var a;\n const s = e.length, i = s > 0 ? e[0].length : 0;\n if (s <= 1 && i <= 1)\n return (a = e[0]) == null ? void 0 : a[0];\n for (let l = 0; l < s; l++)\n for (let h = 0; h < i; h++) {\n if (l === 0 && h === 0)\n continue;\n const u = { y: t.y + l, x: t.x + h }, c = this.getId(u), f = M(u);\n if (c == null) {\n console.warn(`Spill target ${f} is out of bounds.`);\n continue;\n }\n const d = this.registry.data[c];\n if ((d == null ? void 0 : d.value) != null && d.value !== \"\")\n throw new S(\n \"#REF!\",\n `Array result was not expanded because it would overwrite data in ${f}.`\n );\n if (this.registry.solvedCaches.has(c))\n throw new S(\n \"#REF!\",\n `Array result was not expanded because ${f} is already occupied by another formula.`\n );\n }\n const n = this.getId(t), o = [];\n for (let l = 0; l < s; l++)\n for (let h = 0; h < i; h++) {\n const u = { y: t.y + l, x: t.x + h }, c = this.getId(u);\n if (c != null && (this.finishSolvedCache(u, e[l][h]), (l !== 0 || h !== 0) && (o.push(M(u)), n != null))) {\n const f = Lt(this.registry, c, {});\n f.spilledFrom = M(t), this.registry.lastSpilledTargetIds.add(c);\n }\n }\n return e[0][0];\n }\n /** @internal */\n sheetPrefix(t = !1) {\n return t ? \"\" : ri(this.name);\n }\n /** @internal */\n rangeToArea(t) {\n const e = t.split(\":\");\n let [s, i] = e;\n s.match(/[a-zA-Z]$/) && (s += \"1\"), s.match(/^[1-9]/) && (s = `A${s}`), i != null && i.match(/[a-zA-Z]$/) && (i += this.bottom), i != null && i.match(/^[1-9]/) && (i = `${G(this.right)}${i}`);\n const { y: n, x: o } = T(s), { y: a, x: l } = T(i || s);\n return {\n top: Math.abs(n),\n left: Math.abs(o),\n bottom: Math.abs(a),\n right: Math.abs(l)\n };\n }\n get __raw__() {\n return this;\n }\n get shape() {\n return me(this.area);\n }\n get hasSingleCell() {\n const t = this.shape;\n return t.rows === 1 && t.cols === 1;\n }\n get currentVersion() {\n return this.version;\n }\n}\nconst we = ({ value: r, sheet: t, point: e, raise: s = !0, resolution: i = \"RESOLVED\", at: n }) => {\n var h;\n const [o, a] = t.getSolvedCache(e);\n if (o && r == null && !Yt.is(a))\n return a;\n if (typeof r != \"string\" || i === \"SYSTEM\")\n return r;\n if (r.charAt(0) === \"'\")\n return i === \"RAW\" ? r : r.substring(1);\n if (r.charAt(0) !== \"=\")\n return r;\n if (i === \"RAW\") {\n const u = new te(r.substring(1), { at: n });\n return u.tokenize(), \"=\" + u.display({ sheet: t });\n }\n let l = r;\n if (o && !Yt.is(a))\n l = a;\n else\n try {\n const u = new te(r.substring(1), { at: n });\n u.tokenize();\n const f = new ss(u.tokens).build();\n l = (h = f == null ? void 0 : f.evaluate) == null ? void 0 : h.call(f, { sheet: t });\n } catch (u) {\n if (s)\n throw t.finishSolvedCache(e, u), u;\n return u;\n }\n return W.is(l) ? l = t.spill(e, l.matrix) : t.finishSolvedCache(e, l), i === \"RESOLVED\" && l instanceof Y && (l = ut({ value: l, raise: s, at: n })), L.is(l) && t.finishSolvedCache(e, l), l;\n}, Ve = ({ sheet: r, raise: t = !0, at: e }) => {\n const s = r.area;\n return r._toValueMatrix({ area: s, at: e, resolution: \"SYSTEM\" }).map((n, o) => {\n const a = s.top + o;\n return n.map((l, h) => {\n const u = s.left + h, c = { y: a, x: u }, [f, d] = r.getSolvedCache(c);\n try {\n if (Yt.is(d))\n throw new S(\"#REF!\", \"References are circulating.\", new Error(l));\n if (L.is(d))\n return d;\n if (S.is(d))\n throw d;\n if (d != null)\n return d;\n r.setSolvingCache(c);\n const p = we({ value: l, sheet: r, point: c, raise: t, at: e, resolution: \"RESOLVED\" });\n return r.finishSolvedCache(c, p), p;\n } catch (p) {\n if (r.finishSolvedCache(c, p), t)\n throw p;\n return p;\n }\n });\n });\n}, ut = ({ value: r, at: t, raise: e = !0 }) => r instanceof Y ? r.strip({ raise: e, at: t }) : r, xe = new _t(\"asyncCacheMiss\"), Ci = (r) => r.some((t) => L.is(t)), ps = (r) => (r == null ? void 0 : r.__gsType) === \"Sheet\", Pt = (r, t) => {\n for (const e of r)\n if (L.is(e) || Array.isArray(e) && Pt(e, t) || W.is(e) && Pt(e.matrix, t) || ps(e) && Pt(e._toValueMatrix({ at: t }), t))\n return !0;\n return !1;\n}, Ti = (r, t = 0) => {\n let e = 3735928559 ^ t, s = 1103547991 ^ t;\n for (let i = 0; i < r.length; i++) {\n const n = r.charCodeAt(i);\n e = Math.imul(e ^ n, 2654435761), s = Math.imul(s ^ n, 1597334677);\n }\n return e = Math.imul(e ^ e >>> 16, 2246822507), e ^= Math.imul(s ^ s >>> 13, 3266489909), s = Math.imul(s ^ s >>> 16, 2246822507), s ^= Math.imul(e ^ e >>> 13, 3266489909), 4294967296 * (2097151 & s) + (e >>> 0);\n}, Mi = (r, t, e = 1) => {\n const s = JSON.stringify(t, (n, o) => ps(o) ? ii(o) : L.is(o) ? null : o), i = Array.from({ length: e }, (n, o) => Ti(s, o).toString(36));\n return `${r}:${s.length}:${i.join(\"-\")}`;\n}, Fi = (r, t, e, s = !1) => {\n var l;\n const i = r.registry, n = i.data[t];\n if (n == null)\n return xe;\n const o = Lt(i, t, { tmpAsyncCaches: {} });\n if (n.asyncCaches != null) {\n const h = n.asyncCaches[e];\n if (h != null && (h.expireTime == null || Date.now() < h.expireTime))\n return o.tmpAsyncCaches[e] = h, h.value;\n }\n const a = `${t}:${e}`;\n if (i.asyncPending.has(a))\n return i.asyncPending.get(a);\n if (s && ((l = i.asyncInflight) != null && l.has(e))) {\n const h = i.asyncInflight.get(e);\n return i.asyncPending.set(a, h.pending), h.pending.promise.then((u) => {\n const c = i.data[t];\n c != null && ee(c, e, { value: u, expireTime: h.expireTime });\n }).catch((u) => {\n S.is(u) || (u = new S(\"#ASYNC!\", (u == null ? void 0 : u.message) ?? String(u), u instanceof Error ? u : void 0));\n const c = i.data[t];\n c != null && ee(c, e, { value: u, expireTime: h.expireTime });\n }).finally(() => {\n i.asyncPending.delete(a);\n }), h.pending;\n }\n return xe;\n}, Oi = (r, t, e, s, i, n = !1) => {\n const o = t.registry, a = i != null ? Date.now() + i : void 0, l = `${e}:${s}`, h = new L(r);\n return o.asyncPending.set(l, h), n && (o.asyncInflight || (o.asyncInflight = /* @__PURE__ */ new Map()), o.asyncInflight.set(s, { pending: h, expireTime: a })), r.then((u) => {\n const c = o.data[e];\n c != null && ee(c, s, { value: u, expireTime: a });\n }).catch((u) => {\n S.is(u) || (u = new S(\"#ASYNC!\", (u == null ? void 0 : u.message) ?? String(u), u instanceof Error ? u : void 0));\n const c = o.data[e];\n c != null && ee(c, s, { value: u, expireTime: a });\n }).finally(() => {\n o.asyncPending.delete(l), n && o.asyncInflight && o.asyncInflight.delete(s), o.solvedCaches.clear(), o.transmit();\n }), h;\n}, de = () => new L(Promise.resolve()), Me = (r, t) => {\n if (typeof r == \"string\" || typeof t == \"string\")\n return Q(r) > Q(t);\n try {\n return O(r) > O(t);\n } catch {\n return !1;\n }\n}, Fe = (r, t) => {\n if (typeof r == \"string\" || typeof t == \"string\")\n return Q(r) >= Q(t);\n try {\n return O(r) >= O(t);\n } catch {\n return !1;\n }\n}, ms = (r, t) => !Fe(r, t), ys = (r, t) => !Me(r, t), Oe = (r, t) => Q(r).toLowerCase() === Q(t).toLowerCase(), Di = (r, t) => !Oe(r, t), De = (r) => typeof r != \"string\" || !r.endsWith(\"%\") ? !1 : !isNaN(parseFloat(r.slice(0, -1))), zt = (r) => typeof r == \"number\" || De(r) ? !0 : typeof r == \"string\" ? !isNaN(parseFloat(r)) && isFinite(Number(r)) : !1, O = (r, t) => {\n const { alternative: e, ignore: s } = t || {};\n if (L.is(r))\n return r;\n if (typeof r > \"u\" && typeof e < \"u\")\n return e;\n if (!r)\n return 0;\n if (r instanceof Y) {\n const n = ut({ value: r });\n return O(n, { alternative: e });\n }\n if (r instanceof Date)\n return r.getTime();\n if (R.is(r))\n return r.days;\n if (De(r))\n return parseFloat(r.slice(0, -1)) / 100;\n const i = parseFloat(r);\n if (isNaN(i)) {\n if (s)\n return e ?? 0;\n throw new S(\"#VALUE!\", `${r} cannot be converted to a number`);\n }\n return i;\n}, Q = (r) => {\n if (L.is(r))\n return r;\n if (r === 0)\n return \"0\";\n if (!r)\n return \"\";\n if (r instanceof Y) {\n const t = ut({ value: r });\n return Q(t);\n }\n switch (r.constructor.name) {\n case \"Date\":\n return z(r).format(Ts);\n default:\n return String(r);\n }\n}, Wt = (r, t) => {\n const { alternative: e, ignore: s } = t ?? {};\n if (L.is(r))\n return r;\n if (typeof r > \"u\" && typeof e < \"u\")\n return e;\n if (r === null)\n return !1;\n if (r instanceof Y) {\n const i = ut({ value: r });\n return Wt(i, t);\n }\n if (typeof r == \"string\" || r instanceof String) {\n const i = { true: !0, false: !1 }[r.toLowerCase()];\n if (i == null) {\n if (s)\n return !1;\n throw new S(\"#VALUE!\", `text '${r}' cannot be converted to a boolean`);\n }\n return i;\n }\n return !!r;\n};\nfunction Ni(r) {\n if (L.is(r) || r instanceof Date)\n return r;\n if (r instanceof Y) {\n const t = ut({ value: r });\n return Ni(t);\n }\n if (typeof r == \"number\")\n return new Date(r);\n if (typeof r == \"string\") {\n const t = new Date(r);\n if (!isNaN(t.getTime()))\n return t;\n }\n throw new S(\"#VALUE!\", `${r} cannot be converted to a date`);\n}\nconst vi = /^(<=|>=|<>|>|<|=)?(.*)$/, ki = (r, t) => {\n const e = t.match(vi), [, s = \"\", i = \"\"] = e || [];\n let n = i;\n if (s === \">\" || s === \"<\" || s === \">=\" || s === \"<=\")\n switch (typeof r == \"number\" && (n = parseFloat(i)), s) {\n case \">\":\n return Me(r, n);\n case \">=\":\n return Fe(r, n);\n case \"<\":\n return ms(r, n);\n case \"<=\":\n return ys(r, n);\n }\n const o = s === \"\" || s === \"=\";\n if (i === \"\")\n return (r == null || r === \"\") === o;\n if (typeof r == \"string\" || r instanceof String) {\n const a = i.replace(/~\\*/g, \"(\\\\*)\").replace(/~\\?/g, \"(\\\\?)\").replace(/\\*/g, \"(.*)\").replace(/\\?/g, \"(.)\");\n return RegExp(`^${a}$`, \"i\").test(r) === o;\n }\n return Oe(r, n) === o;\n}, dt = (r, t, e) => {\n if (r instanceof Y) {\n const s = r.solve({ at: e });\n for (let i = 0; i < s.length; i++)\n for (let n = 0; n < s[i].length; n++)\n t(s[i][n], { y: i, x: n });\n } else if (W.is(r)) {\n const s = r.matrix;\n for (let i = 0; i < s.length; i++)\n for (let n = 0; n < s[i].length; n++)\n t(s[i][n], { y: i, x: n });\n } else if (Array.isArray(r) && Array.isArray(r[0]))\n for (let s = 0; s < r.length; s++)\n for (let i = 0; i < r[s].length; i++)\n t(r[s][i], { y: s, x: i });\n else\n t(r, { y: 0, x: 0 });\n}, Fn = (r, t, e) => {\n if (r.length === 0)\n return [];\n const s = r[0], i = s.numRows, n = s.numCols, o = Array.from({ length: i }, () => Array(n).fill(!0));\n for (let a = 0; a < r.length; a++) {\n const l = r[a], h = t[a];\n dt(\n l,\n (u, c) => {\n var f, d;\n (f = o[c.y])[d = c.x] && (f[d] = ki(u, h));\n },\n e\n );\n }\n return o;\n}, nt = (r) => (r == null ? void 0 : r.__gsType) === \"Sheet\", On = {\n name: \"condition\",\n description: 'The condition to evaluate. Use \"=\" for equal, \"<\" for less than, \">\" for greater than, \"<=\" for less than or equal, \">=\" for greater than or equal, \"<>\" for not equal.',\n acceptedTypes: [\"any\"]\n}, $i = (r, { nullable: t = !0, errorTolerant: e = !1, acceptedTypes: s }) => {\n if (!s || s.length === 0)\n return !0;\n if (r == null)\n return t;\n if (S.is(r) || r instanceof Error) {\n if (e)\n return !0;\n throw r;\n }\n for (const i of s)\n switch (i) {\n case \"any\":\n return !0;\n case \"number\":\n if (zt(r))\n return !0;\n break;\n case \"string\":\n if (typeof r == \"string\")\n return !0;\n break;\n case \"boolean\":\n if (typeof r == \"boolean\")\n return !0;\n break;\n case \"date\":\n if (r instanceof Date)\n return !0;\n break;\n case \"time\":\n if (R.is(r))\n return !0;\n break;\n case \"matrix\":\n if (ft(r))\n return !0;\n break;\n case \"reference\":\n if (nt(r))\n return !0;\n break;\n }\n return !1;\n}, ft = (r) => nt(r) || W.is(r) || Array.isArray(r) && Array.isArray(r[0]), Li = (r, t) => {\n var i;\n if (!ft(r))\n return r;\n if (nt(r))\n return ut({ value: r, raise: !1, at: t });\n const e = W.is(r) ? r.matrix : r;\n return (i = e == null ? void 0 : e[0]) == null ? void 0 : i[0];\n}, ze = (r) => {\n if (nt(r))\n return !r.hasSingleCell;\n if (W.is(r)) {\n const t = r.matrix;\n return t.length > 1 || t.length === 1 && t[0].length > 1;\n }\n return Array.isArray(r) && Array.isArray(r[0]) ? r.length > 1 || r[0].length > 1 : !1;\n}, We = (r, t) => {\n const e = [];\n let s = -1, i = 0;\n for (let n = 0; n < r.length; n++)\n r[n].variadic && (s < 0 && (s = n), i++);\n for (let n = 0; n < t; n++)\n if (s >= 0 && n >= s) {\n const o = (n - s) % i;\n e.push(s + o);\n } else n < r.length ? e.push(n) : e.push(r.length - 1);\n return e;\n}, re = class re {\n constructor({ args: t, sheet: e, at: s }) {\n this.defs = [], this.description = \"\", this.category = \"other\", this.isAsync = !1, this.hashPrecision = 1, this.useInflight = !0, this.broadcastDisabled = !1, this.autoSpilling = !1, this.eachMatrix = (i, n) => {\n if (nt(i)) {\n const o = i.solve({ at: this.at, raise: !0 });\n for (let a = 0; a < o.length; a++)\n for (let l = 0; l < o[a].length; l++)\n n(o[a][l]);\n } else if (W.is(i)) {\n const o = i.matrix;\n for (let a = 0; a < o.length; a++)\n for (let l = 0; l < o[a].length; l++)\n n(o[a][l]);\n } else if (Array.isArray(i) && Array.isArray(i[0]))\n for (let o = 0; o < i.length; o++)\n for (let a = 0; a < i[o].length; a++)\n n(i[o][a]);\n else\n n(i);\n }, this.args = t.map((i) => {\n try {\n return i.evaluate({ sheet: e });\n } catch (n) {\n return n;\n }\n }), this.sheet = e, this.at = s ?? \"?\";\n }\n _main(...t) {\n if (this.autoSpilling) {\n const e = this.main(...t);\n return this.isAsync ? Promise.resolve(e).then((s) => new W(s)) : new W(e);\n }\n return this.main(...t);\n }\n /**\n * Validate and normalise arguments before `main()` is called.\n *\n * Checks:\n * 1. Argument count satisfies defs (respecting optional / variadic).\n * 2. Each argument's runtime type matches the corresponding def's `type` list.\n *\n * Subclasses may override for additional coercion / spreading.\n */\n validate(t) {\n const e = [...t], s = this.defs;\n if (s.length === 0) {\n if (t.length !== 0)\n throw new S(\"#N/A\", \"Too many arguments: expected 0, got \" + t.length + \".\");\n return e;\n }\n let i = 0, n = !1;\n for (const a of s)\n a.variadic && (n = !0), a.optional || i++;\n if (t.length < i)\n throw new S(\"#N/A\", `Too few arguments: expected at least ${i}, got ${t.length}.`);\n if (!n && t.length > s.length)\n throw new S(\"#N/A\", `Too many arguments: expected at most ${s.length}, got ${t.length}.`);\n const o = We(s, t.length);\n for (let a = 0; a < t.length; a++) {\n const l = s[o[a]];\n if (!l)\n continue;\n let h = t[a];\n if (!(!l.acceptedTypes || l.acceptedTypes.length === 0)) {\n if (ze(h)) {\n if (!l.takesMatrix)\n continue;\n } else ft(h) && (l.takesMatrix || (h = Li(h, this.at)));\n if (De(h) && (h = parseFloat(h.slice(0, -1)) / 100), !$i(h, l))\n throw new S(\n \"#VALUE!\",\n `Argument \"${l.name}\" (position ${a + 1}) expected ${l.acceptedTypes.join(\" | \")}, got ${typeof h}.`\n );\n e[a] = h;\n }\n }\n return e;\n }\n /**\n * Extract a 2D array from a matrix value (Spilling, Sheet, or nested array).\n * Default behavior for Sheet is value.solve(). Functions like COL can override\n * this to preserve Sheet metadata per cell.\n */\n toMatrix(t) {\n return W.is(t) ? t.matrix : nt(t) ? t.solve({ at: this.at }) : Array.isArray(t) && Array.isArray(t[0]) ? t : [[t]];\n }\n /**\n * Collapse a 1×1 matrix value (Sheet, Spilling, or 2D array) to a scalar.\n * Non-matrix values pass through unchanged.\n *\n * Override in sub-classes that need the original Sheet / reference\n * metadata (e.g. COL, ROW) — for instance, to extract position\n * information before collapsing.\n */\n toScalar(t) {\n var e, s, i;\n if (nt(t)) {\n const { rows: n, cols: o } = t.shape;\n return n === 1 && o === 1 ? t.strip({}) : t;\n }\n return W.is(t) ? (s = (e = t.matrix) == null ? void 0 : e[0]) == null ? void 0 : s[0] : Array.isArray(t) ? Array.isArray(t[0]) ? (i = t[0]) == null ? void 0 : i[0] : t[0] : t;\n }\n call() {\n const t = this.broadcast();\n if (t !== void 0)\n return t;\n if (Pt(this.args, this.at))\n return de();\n if (this.args = this.validate(this.args), this.isAsync) {\n const e = Mi(this.constructor.name, this.args, this.hashPrecision), s = Fi(this.sheet, this.at, e, this.useInflight);\n if (s !== xe)\n return s;\n const i = this._main(...this.args);\n return Oi(i, this.sheet, this.at, e, this.ttlMilliseconds, this.useInflight);\n }\n return this._main(...this.args);\n }\n /**\n * If any broadcastable argument is a matrix (multi-cell), expand the call\n * across all element positions and return a Spilling.\n * Returns `undefined` when no broadcast is necessary.\n *\n * Rules:\n * - broadcastDisabled = true → never broadcast\n * - An arg is broadcastable when its corresponding args[].takesMatrix is not true\n * - A Sheet/Spilling/2D-array whose size is (1,1) is treated as a scalar\n * (not broadcast); only multi-cell matrices trigger broadcast\n * - For variadic args, extra args are assigned round-robin\n * across the variadic helpArg positions\n */\n broadcast() {\n if (this.broadcastDisabled)\n return;\n const t = We(this.defs, this.args.length), e = this.args.map((h, u) => {\n var f;\n const c = t[u];\n return !((f = this.defs[c]) != null && f.takesMatrix);\n }), s = this.args.map((h, u) => e[u] && ze(h) ? this.toMatrix(h) : null);\n if (s.every((h) => h === null))\n return;\n const i = this.args.map((h, u) => s[u] !== null ? h : this.toScalar(h));\n let n = 1, o = 1;\n for (const h of s)\n h && (n = Math.max(n, h.length), o = Math.max(\n o,\n h.reduce((u, c) => Math.max(u, c.length), 0)\n ));\n const a = this.args, l = [];\n for (let h = 0; h < n; h++) {\n const u = [];\n for (let c = 0; c < o; c++) {\n const f = i.map((d, p) => {\n var y;\n const m = s[p];\n return m ? ((y = m == null ? void 0 : m[h]) == null ? void 0 : y[c]) ?? null : d;\n });\n try {\n if (Ci(f))\n u.push(de());\n else {\n const d = this.validate(f);\n Pt(d, this.at) ? u.push(de()) : u.push(this._main(...d));\n }\n } catch (d) {\n u.push(d);\n }\n }\n l.push(u);\n }\n return this.args = a, l;\n }\n};\nre.__name = \"\", re.isAsync = !1;\nlet A = re;\nconst ve = class ve extends A {\n constructor() {\n super(...arguments), this.isAsync = !0;\n }\n};\nve.isAsync = !0;\nlet Xe = ve;\nconst Pi = `Returns the sum of two numbers.\nThis is the same as the '+' operator.`;\nclass Hi extends A {\n constructor() {\n super(...arguments), this.example = \"ADD(2, 3)\", this.description = Pi, this.defs = [\n { name: \"value1\", description: \"First additive.\", acceptedTypes: [\"number\", \"date\", \"time\"] },\n { name: \"value2\", description: \"Second additive.\", acceptedTypes: [\"number\", \"date\", \"time\"] }\n ], this.category = \"math\";\n }\n main(t, e) {\n if (typeof t == \"number\" && typeof e == \"number\")\n return t + e;\n if (t instanceof Date && R.is(e))\n return R.ensure(e).add(t);\n if (R.is(t) && e instanceof Date)\n return R.ensure(t).add(e);\n if (t instanceof Date && typeof e == \"number\")\n return z(t).add(e * fe, \"second\").toDate();\n if (typeof t == \"number\" && e instanceof Date)\n return z(e).add(t * fe, \"second\").toDate();\n try {\n return O(t, { alternative: 0 }) + O(e, { alternative: 0 });\n } catch {\n throw new S(\"#VALUE!\", \"Mismatched types for augend or addend.\");\n }\n }\n}\nconst Yi = `Returns the difference of two numbers.\nThis is the same as the '-' operator.`;\nclass Bi extends A {\n constructor() {\n super(...arguments), this.example = \"MINUS(8, 3)\", this.description = Yi, this.defs = [\n { name: \"value1\", description: \"A number that will be subtracted.\", acceptedTypes: [\"number\", \"date\", \"time\"] },\n {\n name: \"value2\",\n description: \"A number that will subtract from value1.\",\n acceptedTypes: [\"number\", \"date\", \"time\"]\n }\n ], this.category = \"math\";\n }\n main(t, e) {\n if (typeof t == \"number\" && typeof e == \"number\")\n return t - e;\n if (t instanceof Date && e instanceof Date)\n return R.fromDates(t, e);\n if (t instanceof Date && R.is(e))\n return R.ensure(e).sub(t);\n if (R.is(t) && e instanceof Date)\n return R.ensure(t).sub(e);\n if (t instanceof Date && typeof e == \"number\")\n return z(t).subtract(e * fe, \"second\").toDate();\n try {\n return O(t, { alternative: 0 }) - O(e, { alternative: 0 });\n } catch {\n throw new S(\"#VALUE!\", \"Mismatched types for minuend or subtrahend.\");\n }\n }\n}\nconst Ui = `Returns the product of two numbers.\nThis is the same as the '*' operator.`;\nclass Vi extends A {\n constructor() {\n super(...arguments), this.example = \"MULTIPLY(6, 7)\", this.description = Ui, this.defs = [\n { name: \"factor1\", description: \"First factor.\", acceptedTypes: [\"number\"] },\n { name: \"factor2\", description: \"Second factor.\", acceptedTypes: [\"number\"] }\n ], this.category = \"math\";\n }\n main(t, e) {\n return O(t) * O(e);\n }\n}\nconst zi = `Returns the result of dividing one number by another.\nThis is the same as the '/' operator.`;\nclass Wi extends A {\n constructor() {\n super(...arguments), this.example = \"DIVIDE(4, 2)\", this.description = zi, this.defs = [\n {\n name: \"dividend\",\n description: \"A number that will be divided by divisor.\",\n acceptedTypes: [\"number\"]\n },\n {\n name: \"divisor\",\n description: \"A number that will divide a dividend. Must be non-zero.\",\n acceptedTypes: [\"number\"]\n }\n ], this.category = \"math\";\n }\n validate(t) {\n const e = super.validate(t).map((s) => O(s));\n if (e[1] === 0)\n throw new S(\"#DIV/0!\", \"The second argument must be non-zero.\");\n return e;\n }\n main(t, e) {\n return t / e;\n }\n}\nconst Xi = \"Returns the sum of a series of numbers or cells.\";\nclass ji extends A {\n constructor() {\n super(...arguments), this.example = \"SUM(A2:A100, 101)\", this.description = Xi, this.defs = [\n {\n name: \"value\",\n description: \"Numbers or ranges to sum.\",\n takesMatrix: !0,\n acceptedTypes: [\"number\", \"matrix\"],\n variadic: !0\n }\n ], this.category = \"math\";\n }\n main(...t) {\n if (t.length === 0)\n return 0;\n let e = 0;\n return t.forEach((s) => {\n dt(\n s,\n (i) => {\n e += O(i, { ignore: !0 });\n },\n this.at\n );\n }), e;\n }\n}\nconst Gi = `Returns the concatenation of two values.\nThis is the same as the '&' operator.`;\nclass Zi extends A {\n constructor() {\n super(...arguments), this.example = 'CONCAT(\"Hello\", \"World\")', this.description = Gi, this.defs = [\n {\n name: \"value1\",\n description: \"A value to be concatenated with value2.\",\n acceptedTypes: [\"string\", \"number\", \"boolean\"]\n },\n {\n name: \"value2\",\n description: \"A value to be concatenated with value1\",\n acceptedTypes: [\"string\", \"number\", \"boolean\"]\n }\n ], this.category = \"text\";\n }\n main(t, e) {\n return Q(t) + Q(e);\n }\n}\nconst qi = `Returns TRUE if the two specified values are equal, FALSE if they are not.\nThis is the same as the '=' operator.`;\nclass Ki extends A {\n constructor() {\n super(...arguments), this.example = \"EQ(6, 7)\", this.description = qi, this.defs = [\n { name: \"value1\", description: \"First value.\", acceptedTypes: [\"any\"] },\n { name: \"value2\", description: \"A value to be compared with value1.\", acceptedTypes: [\"any\"] }\n ], this.category = \"logical\";\n }\n main(t, e) {\n return Oe(t, e);\n }\n}\nconst Ji = `Returns TRUE if the two specified values are not equal, FALSE if they are.\nThis is the same as the '<>' operator.`;\nclass Qi extends A {\n constructor() {\n super(...arguments), this.example = \"NE(6, 7)\", this.description = Ji, this.defs = [\n { name: \"value1\", description: \"First value.\", acceptedTypes: [\"any\"] },\n { name: \"value2\", description: \"A value to be compared with value1.\", acceptedTypes: [\"any\"] }\n ], this.category = \"logical\";\n }\n main(t, e) {\n return Di(t, e);\n }\n}\nconst tr = `Returns TRUE if the first argument is truly greater than the second, FALSE otherwise.\nThis is the same as the '>' operator.`;\nclass er extends A {\n constructor() {\n super(...arguments), this.example = \"GT(5, 3)\", this.description = tr, this.defs = [\n { name: \"value1\", description: \"First value.\", acceptedTypes: [\"any\"] },\n { name: \"value2\", description: \"A value to be compared with value1.\", acceptedTypes: [\"any\"] }\n ], this.category = \"logical\";\n }\n main(t, e) {\n return Me(t, e);\n }\n}\nconst sr = `Returns TRUE if the first argument is greater than the second, FALSE otherwise.\nThis is the same as the '>=' operator.`;\nclass ir extends A {\n constructor() {\n super(...arguments), this.example = \"GTE(5, 3)\", this.description = sr, this.defs = [\n { name: \"value1\", description: \"First value.\", acceptedTypes: [\"any\"] },\n { name: \"value2\", description: \"A value to be compared with value1.\", acceptedTypes: [\"any\"] }\n ], this.category = \"logical\";\n }\n main(t, e) {\n return Fe(t, e);\n }\n}\nconst rr = `Returns TRUE if the first argument is truely less than the second argument, FALSE otherwise.\nThis is the same as the '<' operator.`;\nclass nr extends A {\n constructor() {\n super(...arguments), this.example = \"LT(3, 6)\", this.description = rr, this.defs = [\n { name: \"value1\", description: \"First value.\", acceptedTypes: [\"any\"] },\n { name: \"value2\", description: \"A value to be compared with value1.\", acceptedTypes: [\"any\"] }\n ], this.category = \"logical\";\n }\n main(t, e) {\n return ms(t, e);\n }\n}\nconst or = `Returns TRUE if the first argument is less than the second argument, FALSE otherwise.\nThis is the same as the '<=' operator.`;\nclass ar extends A {\n constructor() {\n super(...arguments), this.example = \"LTE(3, 6)\", this.description = or, this.defs = [\n { name: \"value1\", description: \"First value.\", acceptedTypes: [\"any\"] },\n { name: \"value2\", description: \"A value to be compared with value1.\", acceptedTypes: [\"any\"] }\n ], this.category = \"logical\";\n }\n main(t, e) {\n return ys(t, e);\n }\n}\nconst cr = \"Returns a serial value corresponding to the current date and time.\";\nclass lr extends A {\n constructor() {\n super(...arguments), this.example = \"NOW()\", this.description = cr, this.defs = [], this.category = \"time\";\n }\n main() {\n return /* @__PURE__ */ new Date();\n }\n}\nconst hr = `Returns TRUE if all arguments are logically TRUE.\nReturns FALSE if any argument is logically FALSE.`;\nclass ur extends A {\n constructor() {\n super(...arguments), this.example = \"AND(A1=1, A2=2)\", this.description = hr, this.defs = [\n {\n name: \"expression\",\n description: \"Logical expressions to evaluate.\",\n acceptedTypes: [\"boolean\", \"number\"],\n variadic: !0\n }\n ], this.category = \"logical\";\n }\n main(...t) {\n return t.map((e) => Wt(e)).reduce((e, s) => e && s);\n }\n}\nconst dr = `Returns TRUE if any argument is logically true.\nReturns FALSE if all arguments are logically false.`;\nclass fr extends A {\n constructor() {\n super(...arguments), this.example = \"OR(A1=1, A2=2)\", this.description = dr, this.defs = [\n {\n name: \"expression\",\n description: \"Logical expressions to evaluate.\",\n acceptedTypes: [\"boolean\", \"number\"],\n variadic: !0\n }\n ], this.category = \"logical\";\n }\n main(...t) {\n return t.map((e) => Wt(e)).reduce((e, s) => e || s);\n }\n}\nconst pr = `If the logical expression is TRUE, the second argument is returned.\nIf FALSE, the third argument is returned.`;\nclass mr extends A {\n constructor() {\n super(...arguments), this.example = 'IF(A2 = \"Human\", \"Hello\", \"World\")', this.description = pr, this.defs = [\n { name: \"condition\", description: \"An expression as a condition\", acceptedTypes: [\"any\"] },\n {\n name: \"value1\",\n description: \"value to be returned if the condition is true.\",\n acceptedTypes: [\"any\"]\n },\n {\n name: \"value2\",\n description: \"value to be returned if the condition is false.\",\n optional: !0,\n acceptedTypes: [\"any\"]\n }\n ], this.category = \"logical\";\n }\n main(t, e, s = !1) {\n return Wt(t) ? e : s;\n }\n}\nconst yr = \"Returns the first argument if it is not an error value, otherwise returns the second argument if present, or a blank if the second argument is absent.\";\nclass gr extends A {\n constructor() {\n super(...arguments), this.example = 'IFERROR(A1, \"Error in cell A1\")', this.description = yr, this.defs = [\n {\n name: \"value\",\n description: \"The value to return if value itself is not an error.\",\n acceptedTypes: [\"any\"],\n errorTolerant: !0\n },\n {\n name: \"value_if_error\",\n description: \"The value the function returns if value is an error.\",\n optional: !0,\n acceptedTypes: [\"any\"]\n }\n ], this.category = \"logical\", this.broadcastDisabled = !0;\n }\n main(t, e) {\n return S.is(t) || t instanceof Error ? e : t;\n }\n}\nconst wr = `Returns the inverse of the Boolean; if TRUE, NOT returns FALSE.\nIf FALSE, NOT returns TRUE.`;\nclass xr extends A {\n constructor() {\n super(...arguments), this.example = \"NOT(TRUE)\", this.description = wr, this.defs = [\n {\n name: \"logical expression\",\n description: \"A logical expression as a boolean.\",\n acceptedTypes: [\"boolean\", \"number\"]\n }\n ], this.category = \"logical\";\n }\n main(t) {\n return !Wt(t);\n }\n}\nconst br = \"Returns the count of a series of numbers or cells.\";\nclass Sr extends A {\n constructor() {\n super(...arguments), this.example = \"COUNT(A2:A100,B2:B100,4,26)\", this.description = br, this.defs = [\n {\n name: \"value\",\n description: \"Numbers or ranges to count.\",\n takesMatrix: !0,\n acceptedTypes: [\"number\", \"matrix\"],\n variadic: !0\n }\n ], this.category = \"math\";\n }\n main(...t) {\n let e = 0;\n return t.forEach((s) => {\n ft(s) ? dt(\n s,\n (i) => {\n zt(i) && e++;\n },\n this.at\n ) : (O(s), e++);\n }), e;\n }\n}\nconst _r = \"Returns the absolute value of a number\";\nclass Rr extends A {\n constructor() {\n super(...arguments), this.example = \"ABS(-2)\", this.description = _r, this.defs = [{ name: \"value\", description: \"target number\", acceptedTypes: [\"number\"] }], this.category = \"math\";\n }\n main(t) {\n return Math.abs(O(t));\n }\n}\nconst Er = \"Returns a number multiplied by an exponent.\";\nclass je extends A {\n constructor() {\n super(...arguments), this.example = \"POWER(4,0.5)\", this.description = Er, this.defs = [\n { name: \"base\", description: \"A number to be multiplied by an exponent.\", acceptedTypes: [\"number\"] },\n { name: \"exponent\", description: \"An exponent to power the base.\", acceptedTypes: [\"number\"] }\n ], this.category = \"math\";\n }\n main(t, e) {\n return Math.pow(O(t), O(e));\n }\n}\nconst Ar = \"Returns the number of values in the data set.\";\nclass Ir extends A {\n constructor() {\n super(...arguments), this.example = \"COUNTA(A2:A100,B2:B100,4,26)\", this.description = Ar, this.defs = [\n {\n name: \"value\",\n description: \"Values or ranges to count.\",\n takesMatrix: !0,\n acceptedTypes: [\"number\", \"matrix\"],\n variadic: !0\n }\n ], this.category = \"math\";\n }\n main(...t) {\n let e = 0;\n return t.forEach((s) => {\n dt(\n s,\n (i) => {\n i != null && i !== \"\" && e++;\n },\n this.at\n );\n }), e;\n }\n}\nconst Cr = \"Returns the average of a series of numbers or cells.\";\nclass Tr extends A {\n constructor() {\n super(...arguments), this.example = \"AVERAGE(A2:A100, 101)\", this.description = Cr, this.defs = [\n {\n name: \"value\",\n description: \"Numbers or ranges to average.\",\n takesMatrix: !0,\n acceptedTypes: [\"number\", \"matrix\"],\n variadic: !0\n }\n ], this.category = \"statistics\";\n }\n main(...t) {\n let e = 0, s = 0;\n if (t.forEach((i) => {\n if (ft(i))\n dt(\n i,\n (n) => {\n zt(n) && (e += O(n), s++);\n },\n this.at\n );\n else {\n const n = O(i);\n e += n, s++;\n }\n }), s === 0)\n throw new S(\"#DIV/0!\", \"Evaluation of function AVERAGE caused a divide by zero error.\");\n return e / s;\n }\n}\nconst Mr = \"Returns the max in a series of numbers or cells.\";\nclass Fr extends A {\n constructor() {\n super(...arguments), this.example = \"MAX(A2:A100, 101)\", this.description = Mr, this.defs = [\n {\n name: \"value\",\n description: \"Numbers or ranges to find max from.\",\n acceptedTypes: [\"number\", \"matrix\"],\n takesMatrix: !0,\n variadic: !0\n }\n ], this.category = \"statistics\";\n }\n main(...t) {\n let e = -1 / 0, s = !1;\n return t.forEach((i) => {\n if (ft(i))\n dt(\n i,\n (n) => {\n if (zt(n)) {\n const o = O(n);\n o > e && (e = o), s = !0;\n }\n },\n this.at\n );\n else {\n const n = O(i);\n n > e && (e = n), s = !0;\n }\n }), s ? e : 0;\n }\n}\nconst Or = \"Returns the min in a series of numbers or cells.\";\nclass Dr extends A {\n constructor() {\n super(...arguments), this.example = \"MIN(A2:A100, 101)\", this.description = Or, this.defs = [\n {\n name: \"value\",\n description: \"Numbers or ranges to find min from.\",\n acceptedTypes: [\"number\", \"matrix\"],\n takesMatrix: !0,\n variadic: !0\n }\n ], this.category = \"statistics\";\n }\n main(...t) {\n let e = 1 / 0, s = !1;\n return t.forEach((i) => {\n if (ft(i))\n dt(\n i,\n (n) => {\n if (zt(n)) {\n const o = O(n);\n o < e && (e = o), s = !0;\n }\n },\n this.at\n );\n else {\n const n = O(i);\n n < e && (e = n), s = !0;\n }\n }), s ? e : 0;\n }\n}\nconst Nr = \"Returns the length of a string.\";\nclass vr extends A {\n constructor() {\n super(...arguments), this.example = \"LEN(A2)\", this.description = Nr, this.defs = [\n {\n name: \"text\",\n description: \"A text to be returned the length.\",\n acceptedTypes: [\"string\", \"number\"]\n }\n ], this.category = \"text\";\n }\n main(t) {\n return Q(t).length;\n }\n}\nconst kr = \"Returns a number with positive and negative values reversed.\";\nclass $r extends A {\n constructor() {\n super(...arguments), this.example = \"UMINUS(4)\", this.description = kr, this.defs = [\n { name: \"value1\", description: \"A number that will be subtracted.\", acceptedTypes: [\"number\"] }\n ], this.category = \"math\";\n }\n main(t) {\n return -O(t);\n }\n}\nconst Lr = `Enables the display of values returned from an array formula into multiple rows and/or columns.\nIf the argument is already a Spilling, it is returned as-is. If it is a Sheet (range reference), the field matrix is extracted and wrapped in a Spilling. Otherwise the value is wrapped as a single-element Spilling.`;\nclass Pr extends A {\n constructor() {\n super(...arguments), this.autoSpilling = !0, this.example = \"ARRAYFORMULA(A1:A10 * B1:B10)\", this.description = Lr, this.defs = [\n {\n name: \"value\",\n description: \"The array expression or value to evaluate.\",\n takesMatrix: !0,\n acceptedTypes: [\"matrix\", \"any\"]\n }\n ], this.category = \"logical\", this.broadcastDisabled = !0;\n }\n main(t) {\n return W.is(t) ? t : t instanceof Y ? t._toValueMatrix() : Array.isArray(t) ? t : [[t]];\n }\n}\nconst gs = {\n // Arithmetic & Comparison\n add: Hi,\n minus: Bi,\n uminus: $r,\n multiply: Vi,\n divide: Wi,\n pow: je,\n power: je,\n concat: Zi,\n eq: Ki,\n ne: Qi,\n gt: er,\n gte: ir,\n lt: nr,\n lte: ar,\n // Logical\n if: mr,\n iferror: gr,\n and: ur,\n or: fr,\n not: xr,\n arrayformula: Pr,\n // Statistics & Aggregation\n sum: ji,\n max: Fr,\n min: Dr,\n average: Tr,\n count: Sr,\n counta: Ir,\n // Text\n len: vr,\n // Math\n abs: Rr,\n // Time\n now: lr\n}, Ge = /* @__PURE__ */ new Map(), Dn = (r = gs) => {\n let t = Ge.get(r);\n return t || (t = Object.keys(r).map((e) => {\n const s = r[e], i = new s({ args: [], sheet: {} });\n return {\n name: e.toUpperCase(),\n category: i.category,\n example: i.example ?? (s == null ? void 0 : s.__name) ?? \"Unknown\",\n description: i.description ?? \"\",\n defs: i.defs || []\n };\n }), Ge.set(r, t)), t;\n};\nclass Hr {\n constructor({\n historyLimit: t,\n additionalFunctions: e,\n policies: s = {},\n onSave: i,\n onChange: n,\n onRemoveRows: o,\n onRemoveCols: a,\n onInsertRows: l,\n onInsertCols: h,\n onSelect: u,\n onKeyUp: c,\n onInit: f\n } = {}) {\n this.sheetHead = 0, this.cellHead = 0, this.data = {}, this.systems = {}, this.sheetIdsByName = {}, this.contextsBySheetId = {}, this.choosingSheetId = 0, this.choosingAddress = \"\", this.editingSheetId = 0, this.editingAddress = \"\", this.paletteBySheetName = {}, this.lastFocused = null, this.solvedCaches = /* @__PURE__ */ new Map(), this.lastSpilledTargetIds = /* @__PURE__ */ new Set(), this.asyncFormulaCells = /* @__PURE__ */ new Set(), this.asyncPending = /* @__PURE__ */ new Map(), this.copyingSheetId = 0, this.copyingZone = Ms, this.cutting = !1, this.histories = [], this.historyIndex = -1, this.historyLimit = Cs, this._componentSheetIds = /* @__PURE__ */ new Map(), this.ready = !1, this.functions = {}, this.policies = {}, this.transmit = (d) => {\n }, this.updateSheet = (d) => ({ type: 0, value: d }), t != null && (this.historyLimit = t), this.functions = {\n ...gs,\n ...e\n };\n for (const d in this.functions) {\n const p = this.functions[d];\n p.__name = d;\n }\n this.policies = s, this.onSave = i, this.onChange = n, this.onRemoveRows = o, this.onRemoveCols = a, this.onInsertRows = l, this.onInsertCols = h, this.onSelect = u, this.onKeyUp = c, this.onInit = f;\n }\n boot() {\n if (this.ready || Object.keys(this.contextsBySheetId).length === 0)\n return;\n const t = Object.keys(this.contextsBySheetId), e = [];\n for (let s = 0; s < t.length; s++) {\n const i = t[s], n = this.contextsBySheetId[i], o = n.store.sheetReactive.current;\n if (!o || o.status === 0)\n return;\n e.push(n);\n }\n for (let s = 0; s < e.length; s++) {\n const { store: i, dispatch: n } = e[s], o = i.sheetReactive.current;\n o && (o.resolveFormulas(), n(this.updateSheet(o)));\n }\n this.ready = !0;\n }\n}\nconst Ne = (r = {}) => new Hr(r), Nn = Ne, vn = (r = {}) => ({ registry: Ne(r) }), Yr = (r) => ({\n renderNumber({ value: t }) {\n if (t == null || isNaN(t))\n return \"NaN\";\n const [e, s] = String(parseFloat(t.toPrecision(this.decimalPrecision))).split(\".\"), i = e.replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, `$1${r}`);\n return s == null ? i : `${i}.${s}`;\n }\n}), kn = Yr(\",\"), $n = {\n renderNumber({ value: r }) {\n return r == null || isNaN(r) ? \"0%\" : `${parseFloat((r * 100).toPrecision(this.decimalPrecision))}%`;\n }\n}, Ln = (r, t, e, s) => {\n if (t != null)\n return t;\n const i = r.getPolicy(e);\n return (e.x === 0 ? i.renderRowHeaderLabel(s) : i.renderColHeaderLabel(s)) ?? null;\n}, Pn = [\n // orange\n \"#FF6600\",\n // purple\n \"#AA44FF\",\n // emeraldblue\n \"#00CCCC\",\n // peach\n \"#EEAAEE\",\n // yellow\n \"#DDDD00\",\n // winered\n \"#AA4444\",\n // lightgreen\n \"#00FF00\",\n // pink\n \"#FF00FF\",\n // navy\n \"#3366FF\",\n // cyan\n \"#008888\"\n], j = \"dashed 1px #888888\", Ze = {\n left: [\"horizontal\", -1],\n right: [\"horizontal\", 1],\n up: [\"vertical\", -1],\n down: [\"vertical\", 1],\n none: [\"none\", 0]\n};\nclass Hn {\n constructor(t, e) {\n const { sheetReactive: s, choosing: i, selectingZone: n } = t, o = s.current;\n if (!o)\n throw new Error(\"Sheet is not available\");\n this.src = Ys(ks(n), i), this.direction = this.suggestDirection(e), this.dst = this.getDestinationArea(e), this.sheet = o;\n }\n /** Build the fill diff without applying it. Shared by the sync/async apply paths. */\n buildDiff() {\n var c, f;\n const [t, e] = Ze[this.direction], { top: s, left: i, bottom: n, right: o } = this.src, a = Jt(n - s + 1, o - i + 1);\n for (let d = s; d <= n; d++)\n for (let p = i; p <= o; p++)\n a[d - s][p - i] = this.sheet.getCell({ y: d, x: p }, { resolution: \"SYSTEM\" }) ?? null;\n const l = me(this.src), h = me(this.dst), u = {};\n if (t === \"horizontal\")\n for (let d = 0; d < h.rows; d++) {\n const p = this.getChangePatterns(a[d], \"\");\n for (let m = 0; m < h.cols; m++) {\n const y = (c = a[d % l.rows]) == null ? void 0 : c[m % l.cols], g = e > 0 ? this.dst.left + m : this.dst.right - m, b = e > 0 ? m % l.cols : (l.cols - 1 - m % l.cols) % l.cols, _ = { y: this.dst.top + d, x: g }, x = this.sheet.getId(_), w = p[b].next().value, E = (y == null ? void 0 : y.formulaEnabled) ?? !0 ? this.sheet.processFormula(w, {\n dependency: x\n }) : w;\n u[M(_)] = {\n ...y,\n value: E\n };\n }\n }\n else if (t === \"vertical\")\n for (let d = 0; d < h.cols; d++) {\n const p = this.getChangePatterns(\n a.map((m) => m[d]),\n \"\"\n );\n for (let m = 0; m < h.rows; m++) {\n const y = (f = a[m % l.rows]) == null ? void 0 : f[d % l.cols], g = e > 0 ? this.dst.top + m : this.dst.bottom - m, b = e > 0 ? m % l.rows : (l.rows - 1 - m % l.rows) % l.rows, _ = p[b].next().value;\n u[M({ y: g, x: this.dst.left + d })] = { ...y, value: _ };\n }\n }\n return u;\n }\n get reflections() {\n return {\n undoReflection: { sheetId: this.sheet.id, selectingZone: Pe(this.src) },\n redoReflection: { sheetId: this.sheet.id, selectingZone: Pe(this.dst) }\n };\n }\n get applied() {\n return this.sheet.update({ diff: this.buildDiff(), operator: \"USER\", ...this.reflections });\n }\n /** Async, progress-reporting apply. Same result as `applied` but time-sliced. */\n appliedAsync(t) {\n return this.sheet.updateAsync({ diff: this.buildDiff(), operator: \"USER\", ...this.reflections, ...t });\n }\n get wholeArea() {\n return vs(this.src, this.dst);\n }\n getCellStyle(t) {\n const { x: e, y: s } = t, i = {}, { top: n, left: o, bottom: a, right: l } = this.src;\n switch (this.direction) {\n case \"left\": {\n this.dst.left <= e && e <= this.dst.right && (n === s && (i.borderTop = j), a === s - 1 && (i.borderTop = j)), this.dst.left === e && n <= s && s <= a && (i.borderLeft = j);\n break;\n }\n case \"right\": {\n this.dst.left <= e && e <= this.dst.right && (n === s && (i.borderTop = j), a === s - 1 && (i.borderTop = j)), this.dst.right === e - 1 && n <= s && s <= a && (i.borderLeft = j);\n break;\n }\n case \"up\": {\n this.dst.top <= s && s <= this.dst.bottom && (o === e && (i.borderLeft = j), l === e - 1 && (i.borderLeft = j)), this.dst.top === s && o <= e && e <= l && (i.borderTop = j);\n break;\n }\n case \"down\": {\n this.dst.top <= s && s <= this.dst.bottom && (o === e && (i.borderLeft = j), l === e - 1 && (i.borderLeft = j)), this.dst.bottom === s - 1 && o <= e && e <= l && (i.borderTop = j);\n break;\n }\n }\n return i;\n }\n getDestinationArea(t) {\n const { x: e, y: s } = t, { top: i, left: n, bottom: o, right: a } = this.src;\n switch (this.direction) {\n case \"left\":\n return { top: i, bottom: o, left: e, right: n - 1 };\n case \"right\":\n return { top: i, bottom: o, left: a + 1, right: e };\n case \"up\":\n return { left: n, right: a, top: s, bottom: i - 1 };\n case \"down\":\n return { left: n, right: a, top: o + 1, bottom: s };\n }\n return this.src;\n }\n suggestDirection(t) {\n const { top: e, left: s, bottom: i, right: n } = this.src;\n let o = 0, a = 0;\n return t.x < s ? o = t.x - s : t.x > n && (o = t.x - n), t.y < e ? a = t.y - e : t.y > i && (a = t.y - i), Math.abs(o) > 0 && Math.abs(a) > 0 ? Math.abs(o) > Math.abs(a) ? o < 0 ? \"left\" : \"right\" : a < 0 ? \"up\" : \"down\" : o !== 0 ? o < 0 ? \"left\" : \"right\" : a !== 0 ? a < 0 ? \"up\" : \"down\" : \"none\";\n }\n getChangePatterns(t, e) {\n const s = [], i = Br(t), [n, o] = Ze[this.direction];\n return i.forEach((a) => {\n const l = o > 0 ? a.last : a.first;\n switch (a.kind) {\n case \"other\": {\n s.push(ct(a.first));\n return;\n }\n case \"formula\": {\n const h = a.first, u = this.sheet;\n function* c() {\n let f = 0;\n const d = t.length * o;\n for (; ; )\n f += d, yield u.processFormula(h, {\n dependency: e,\n slideY: n === \"vertical\" ? f : 0,\n slideX: n === \"horizontal\" ? f : 0\n });\n }\n s.push(c());\n return;\n }\n case \"number\": {\n if (!a.equidistant) {\n s.push(ct(a.first), ...a.nexts.map((c) => ct(c)));\n return;\n }\n function* h() {\n let c = l;\n const f = a.numericDelta * o;\n for (; ; )\n c += f, yield c;\n }\n const u = h();\n s.push(u, ...a.nexts.map(() => u));\n return;\n }\n case \"date\": {\n const h = (f) => o > 0 ? a.time.add(f) : a.time.sub(f);\n if (!a.equidistant) {\n s.push(ct(a.first), ...a.nexts.map((f) => ct(f)));\n return;\n }\n function* u() {\n let f = l;\n for (; ; )\n f = h(f), yield new Date(f);\n }\n const c = u();\n s.push(c, ...a.nexts.map(() => c));\n return;\n }\n case \"string+number\": {\n if (!a.equidistant) {\n s.push(ct(a.first), ...a.nexts.map((c) => ct(c)));\n return;\n }\n function* h() {\n const { prefix: c } = lt(a.first), { number: f } = lt(l);\n let d = f;\n const p = a.numericDelta * o;\n for (; ; )\n d += p, yield `${c}${Math.abs(d)}`;\n }\n const u = h();\n s.push(u, ...a.nexts.map(() => u));\n return;\n }\n }\n }), s;\n }\n}\nfunction* ct(r) {\n for (; ; )\n yield r;\n}\nconst ws = new RegExp(\"(.+?)(\\\\d+)$\"), lt = (r) => {\n const t = r.match(ws);\n if (t) {\n const [, e, s] = t;\n return { prefix: e, number: Number(s) };\n }\n return { prefix: \"\", number: 0 };\n};\nclass ie {\n constructor(t) {\n this.time = R.create(), this.numericDelta = 0, this.equidistant = !0, this.first = t, this.nexts = [], this.kind = this.discriminate(t);\n }\n discriminate(t) {\n const e = t instanceof Date ? \"date\" : typeof t;\n return e === \"number\" || e === \"date\" ? e : e === \"string\" && t[0] === \"=\" ? \"formula\" : e === \"string\" && t.match(ws) ? \"string+number\" : \"other\";\n }\n get last() {\n return this.nexts.length === 0 ? this.first : this.nexts[this.nexts.length - 1];\n }\n add(t) {\n const e = this.discriminate(t);\n if (this.kind !== e || e === \"other\" || e === \"formula\")\n return new ie(t);\n if (this.nexts.length === 0)\n switch (e) {\n case \"date\": {\n this.time = R.fromDates(t, this.first);\n break;\n }\n case \"number\": {\n this.numericDelta = t - this.first;\n break;\n }\n case \"string+number\": {\n const { prefix: s, number: i } = lt(this.first), { prefix: n, number: o } = lt(t);\n s === n && (this.numericDelta = o - i);\n break;\n }\n }\n this.nexts.push(t);\n }\n subdivide() {\n if (this.nexts.length === 0)\n return [];\n const t = [];\n let e = this;\n switch (this.kind) {\n case \"date\": {\n const s = this.nexts.every((i, n) => n === 0 || z(i).isSame(this.time.add(this.nexts[n - 1])));\n return this.equidistant = s, [];\n }\n case \"number\": {\n const s = this.nexts.every((i, n) => n === 0 || i === this.first + this.numericDelta * (n + 1));\n return this.equidistant = s, [];\n }\n case \"string+number\": {\n const { prefix: s } = lt(this.first);\n for (let i = 0; i < e.nexts.length; i++) {\n const n = e.nexts[i], { prefix: o, number: a } = lt(n);\n if (s !== o) {\n const l = this.nexts.splice(i, this.nexts.length);\n e = new ie(l.splice(0, 1)[0]), l.forEach(e.add.bind(e)), t.push(e, ...e.subdivide());\n break;\n } else {\n const { number: l } = lt(e.first);\n a !== l + (i + 1) * e.numericDelta && (e.equidistant = !1);\n }\n }\n break;\n }\n }\n return t;\n }\n}\nfunction Br(r) {\n var s, i;\n let t = new ie((s = r[0]) == null ? void 0 : s.value);\n const e = [t];\n for (let n = 1; n < r.length; n++) {\n const o = (i = r[n]) == null ? void 0 : i.value, a = t.add(o);\n a && (e.push(a), t = a);\n }\n for (let n = e.length - 1; n >= 0; n--) {\n const o = e[n];\n e.splice(n + 1, 0, ...o.subdivide());\n }\n return e;\n}\nexport {\n Hn as Autofill,\n A as BaseFunction,\n Xe as BaseFunctionAsync,\n Pn as COLOR_PALETTE,\n kt as DEFAULT_COL_KEY,\n rt as DEFAULT_HEIGHT,\n Cs as DEFAULT_HISTORY_LIMIT,\n $t as DEFAULT_ROW_KEY,\n he as DEFAULT_WIDTH,\n S as FormulaError,\n xn as FormulaParser,\n $e as HEADER_HEIGHT,\n Le as HEADER_WIDTH,\n te as Lexer,\n qr as MIN_HEIGHT,\n Zr as MIN_WIDTH,\n Kr as OVERSCAN_X,\n Jr as OVERSCAN_Y,\n L as Pending,\n $n as PercentagePolicyMixin,\n Te as Policy,\n ts as RangeEntity,\n Qe as RefEntity,\n Hr as Registry,\n jr as SHEET_HEIGHT,\n Gr as SHEET_WIDTH,\n Y as Sheet,\n W as Spilling,\n kn as ThousandSeparatorPolicyMixin,\n R as Time,\n be as ValueEntity,\n T as a2p,\n hn as aa2oa,\n mn as addressesToAreas,\n yn as addressesToCols,\n gn as addressesToRows,\n on as among,\n He as areaDiff,\n me as areaShape,\n rn as areaToRange,\n Pe as areaToZone,\n nn as between,\n pn as binarySearch,\n Ls as buildInitialCells,\n un as buildInitialCellsFromOrigin,\n Ht as c2x,\n tn as ch,\n ki as check,\n Ys as complementSelectingArea,\n vs as concatAreas,\n On as conditionArg,\n Nn as createBinding,\n vn as createBook,\n Fn as createBooleanMask,\n Jt as createMatrix,\n Ne as createRegistry,\n dt as eachMatrix,\n Wt as ensureBoolean,\n Ni as ensureDate,\n O as ensureNumber,\n Q as ensureString,\n Dn as getFunctionHelps,\n Ln as getLabel,\n Hs as getMaxSizesFromCells,\n Ke as grantAddressAbsolute,\n zt as isNumeric,\n De as isPercentage,\n wn as isZoneNotSelected,\n cn as makeSequence,\n Zt as matrixShape,\n ln as oa2aa,\n Mn as operations,\n M as p2a,\n Ns as r2y,\n dn as range,\n fn as restrictZone,\n Qr as rh,\n si as splitRef,\n en as stripAddressAbsolute,\n Li as stripMatrix,\n bn as stripSheetName,\n sn as superposeArea,\n Tn as toCellCols,\n An as toCellMatrix,\n In as toCellObject,\n Cn as toCellRows,\n ri as toSheetPrefix,\n En as toValueCols,\n ii as toValueMatrix,\n Sn as toValueMatrixAsync,\n _n as toValueObject,\n Rn as toValueRows,\n G as x2c,\n bt as y2r,\n an as zoneShape,\n ks as zoneToArea\n};\n//# sourceMappingURL=index.js.map\n","import React, { useEffect, useState } from 'react';\nimport type { BookType } from '@gridsheet/web';\nimport { a2p, x2c, Lexer, FormulaParser, Sheet } from '@gridsheet/web';\nimport { Light as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport type { SyntaxHighlighterProps } from 'react-syntax-highlighter';\nimport jsonLang from 'react-syntax-highlighter/dist/esm/languages/hljs/json';\nimport atomOneLight from 'react-syntax-highlighter/dist/esm/styles/hljs/atom-one-light';\nimport tomorrowNight from 'react-syntax-highlighter/dist/esm/styles/hljs/tomorrow-night';\nimport solarizedDark from 'react-syntax-highlighter/dist/esm/styles/hljs/solarized-dark';\nimport solarizedLight from 'react-syntax-highlighter/dist/esm/styles/hljs/solarized-light';\nimport docco from 'react-syntax-highlighter/dist/esm/styles/hljs/docco';\nimport atelierSeasideLight from 'react-syntax-highlighter/dist/esm/styles/hljs/atelier-seaside-light';\nimport atelierHeathLight from 'react-syntax-highlighter/dist/esm/styles/hljs/atelier-heath-light';\n\nSyntaxHighlighter.registerLanguage('json', jsonLang);\n\nconst ss = {\n get: (key: string) => (typeof window !== 'undefined' ? sessionStorage.getItem(key) : null),\n set: (key: string, value: string) => {\n if (typeof window !== 'undefined') {\n sessionStorage.setItem(key, value);\n }\n },\n};\n\ntype HljsStyle = SyntaxHighlighterProps['style'];\n\nconst JsonCode: React.FC<{ data: any; replacer?: (k: string, v: any) => any; theme: HljsStyle }> = ({\n data,\n replacer,\n theme,\n}) => {\n const code = JSON.stringify(data, replacer, 2) ?? '';\n return (\n <SyntaxHighlighter\n language=\"json\"\n style={theme}\n showLineNumbers\n customStyle={{ margin: 0, fontSize: '10px', minHeight: '100%', borderRadius: 0, whiteSpace: 'pre' }}\n codeTagProps={{ style: { display: 'block', whiteSpace: 'pre', fontSize: '10px' } }}\n >\n {code}\n </SyntaxHighlighter>\n );\n};\n\nexport type DebuggerProps = {\n book: BookType;\n intervalMs?: number;\n};\n\nexport const Debugger: React.FC<DebuggerProps> = ({ book, intervalMs = 500 }) => {\n const { registry } = book;\n const [snapshot, setSnapshot] = useState<any>({});\n const [activeTabId, setActiveTabId] = useState<number | null>(null);\n const [topHeight, setTopHeight] = useState<number>(200);\n const [bottomHeight, setBottomHeight] = useState<number>(200);\n const [formulaView, setFormulaView] = useState<'expressions' | 'tokens'>('expressions');\n\n useEffect(() => {\n const savedTop = ss.get('gs-debugger-top-height');\n if (savedTop) {\n setTopHeight(Number(savedTop));\n }\n const savedBottom = ss.get('gs-debugger-bottom-height');\n if (savedBottom) {\n setBottomHeight(Number(savedBottom));\n }\n const savedFormula = ss.get('gs-debugger-formula-view') as 'expressions' | 'tokens';\n if (savedFormula) {\n setFormulaView(savedFormula);\n }\n }, []);\n\n useEffect(() => {\n const updateSnapshot = () => {\n if (!registry) {\n return;\n }\n\n const {\n choosingAddress,\n choosingSheetId,\n editingAddress,\n editingSheetId,\n ready,\n sheetIdsByName,\n sheetHead,\n cellHead,\n paletteBySheetName,\n solvedCaches,\n copyingSheetId,\n copyingZone,\n cutting,\n historyIndex,\n historyLimit,\n histories,\n asyncPending,\n asyncInflight,\n } = registry;\n\n setSnapshot({\n asyncPending,\n asyncInflight,\n ready,\n sheetIdsByName,\n sheetHead,\n cellHead,\n paletteBySheetName,\n solvedCaches,\n choosingAddress,\n choosingSheetId,\n editingAddress,\n editingSheetId,\n copyingSheetId,\n copyingZone,\n cutting,\n historyIndex,\n historyLimit,\n histories,\n });\n };\n\n updateSnapshot();\n\n const intervalId = setInterval(updateSnapshot, intervalMs);\n return () => clearInterval(intervalId);\n }, [registry, intervalMs]);\n\n const sheets = snapshot.sheetIdsByName\n ? Object.entries(snapshot.sheetIdsByName)\n .map(([name, id]) => ({ id: id as number, name }))\n .sort((a, b) => a.id - b.id)\n : [];\n\n useEffect(() => {\n if (activeTabId === null && sheets.length > 0) {\n setActiveTabId(sheets[0].id);\n }\n }, [sheets.length, activeTabId]);\n\n let activeStoreData = null;\n let activeTableData = null;\n\n // Cell data for the currently selected cell (registry.choosingSheetId / choosingAddress)\n let registryCellData = null;\n let registrySystemData = null;\n let registryCellAddress = registry?.choosingAddress || '';\n let registryCellSheetName = '';\n let registryFormulaExpr = null;\n let registryFormulaTokens = null;\n\n if (registry && activeTabId !== null) {\n const { contextsBySheetId } = registry;\n const context = contextsBySheetId[activeTabId];\n\n if (context) {\n activeStoreData = context.store;\n\n const sheet = context.store.sheetReactive.current;\n if (sheet) {\n activeTableData = sheet;\n }\n }\n }\n\n // Resolve cell data for the currently selected cell (registry.choosingSheetId / choosingAddress)\n if (registry && registry.choosingSheetId != null) {\n const { contextsBySheetId } = registry;\n const choosingContext = contextsBySheetId[registry.choosingSheetId];\n\n // Resolve sheet name\n if (registry.sheetIdsByName) {\n const entry = Object.entries(registry.sheetIdsByName).find(([, id]) => id === registry.choosingSheetId);\n if (entry) {\n registryCellSheetName = entry[0];\n }\n }\n\n if (choosingContext) {\n const sheet = choosingContext.store.sheetReactive.current;\n const store = choosingContext.store;\n if (sheet) {\n const rawTable = (sheet as any).__raw__ || sheet;\n\n // When a header cell is selected, use y=0 (top header) or x=0 (left header)\n const isTopHeaderSelecting = store.topHeaderSelecting;\n const isLeftHeaderSelecting = store.leftHeaderSelecting;\n const pos = isTopHeaderSelecting\n ? { y: 0, x: store.choosing.x }\n : isLeftHeaderSelecting\n ? { y: store.choosing.y, x: 0 }\n : a2p(registry.choosingAddress);\n\n if (isTopHeaderSelecting) {\n registryCellAddress = `header:${x2c(store.choosing.x)}`;\n } else if (isLeftHeaderSelecting) {\n registryCellAddress = `header:${store.choosing.y}`;\n }\n\n if (pos) {\n const id = rawTable.getId(pos);\n if (id) {\n registryCellData = registry.data[id];\n registrySystemData = registry.systems[id] ?? null;\n\n // Parse formula\n const text = registryCellData?.value;\n if (typeof text === 'string' && text.startsWith('=')) {\n try {\n const lexer = new Lexer(text.substring(1));\n lexer.tokenize();\n registryFormulaTokens = lexer.tokens;\n const parser = new FormulaParser(lexer.tokens);\n registryFormulaExpr = parser.build();\n } catch (e) {\n registryFormulaExpr = { error: String(e) };\n }\n }\n }\n }\n }\n }\n }\n\n const baseReplacer = (key: string, value: any) => {\n // Avoid circular refs, noisy internals, and React RefObjects\n if (\n key === 'registry' ||\n key === '__raw__' ||\n (value && typeof value === 'object' && 'current' in value && Object.keys(value).length === 1) // heuristic to skip React ref objects\n ) {\n return undefined;\n }\n if (value instanceof Map) {\n return Object.fromEntries(value.entries());\n }\n if (value instanceof Set) {\n return Array.from(value);\n }\n return value;\n };\n\n // Replace nested Sheet instances with their string representation (for Registry State / Store Data panels)\n const jsonReplacer = (key: string, value: any) => {\n if (value instanceof Sheet) {\n return value.toString();\n }\n return baseReplacer(key, value);\n };\n\n const startDrag = (e: React.MouseEvent) => {\n e.preventDefault();\n const startY = e.clientY;\n const startHeight = topHeight;\n const onMouseMove = (moveEvent: MouseEvent) => {\n const h = Math.max(100, startHeight + moveEvent.clientY - startY);\n setTopHeight(h);\n ss.set('gs-debugger-top-height', String(h));\n };\n const onMouseUp = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n };\n\n const startDragBottom = (e: React.MouseEvent) => {\n e.preventDefault();\n const startY = e.clientY;\n const startHeight = bottomHeight;\n const onMouseMove = (moveEvent: MouseEvent) => {\n const h = Math.max(100, startHeight + moveEvent.clientY - startY);\n setBottomHeight(h);\n ss.set('gs-debugger-bottom-height', String(h));\n };\n const onMouseUp = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n };\n\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n fontFamily: 'monospace',\n fontSize: '12px',\n color: '#212529',\n border: '1px solid #dee2e6',\n borderRadius: '6px',\n overflow: 'hidden',\n }}\n >\n {/* Top pane: Registry State | Cell | System | Formula */}\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n height: `${topHeight}px`,\n overflow: 'hidden',\n }}\n >\n {/* Registry State panel */}\n <div\n style={{\n flex: 1,\n borderRight: '1px solid #dee2e6',\n backgroundColor: '#fafafa',\n overflow: 'auto',\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n background: '#fafafa',\n zIndex: 1,\n padding: '8px 12px',\n fontWeight: 'bold',\n borderBottom: '2px solid #ccc',\n }}\n >\n Registry State\n </div>\n <JsonCode data={snapshot} replacer={jsonReplacer} theme={atomOneLight} />\n </div>\n\n {/* Registry Cell Value: cell data for registry.choosingSheetId / choosingAddress */}\n <div\n style={{\n flex: 1,\n borderRight: '1px solid #dee2e6',\n overflow: 'auto',\n backgroundColor: '#f0f8f0',\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n background: '#f0f8f0',\n zIndex: 1,\n padding: '8px 12px',\n fontWeight: 'bold',\n borderBottom: '2px solid #ccc',\n }}\n >\n Cell: {registryCellSheetName && `'${registryCellSheetName}'!`}\n {registryCellAddress}\n </div>\n {registryCellData ? (\n <JsonCode data={registryCellData} replacer={baseReplacer} theme={atelierSeasideLight} />\n ) : (\n <div style={{ fontStyle: 'italic', color: '#6c757d', padding: '12px' }}>No cell data</div>\n )}\n </div>\n\n {/* System: systems[id] for the choosing cell */}\n <div\n style={{\n flex: 1,\n borderRight: '1px solid #dee2e6',\n overflow: 'auto',\n backgroundColor: '#fdf0f2',\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n background: '#fdf0f2',\n zIndex: 1,\n padding: '8px 12px',\n fontWeight: 'bold',\n borderBottom: '2px solid #ccc',\n }}\n >\n System: {registryCellSheetName && `'${registryCellSheetName}'!`}\n {registryCellAddress}\n </div>\n {registrySystemData ? (\n <JsonCode data={registrySystemData} replacer={baseReplacer} theme={atelierHeathLight} />\n ) : (\n <div style={{ fontStyle: 'italic', color: '#6c757d', padding: '12px' }}>No system data</div>\n )}\n </div>\n\n {/* Formula: toggling between Expressions and Tokens */}\n <div\n style={{\n flex: 1,\n overflow: 'auto',\n backgroundColor: formulaView === 'expressions' ? '#fffbf0' : '#f5f0ff',\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n background: formulaView === 'expressions' ? '#fffbf0' : '#f5f0ff',\n zIndex: 1,\n padding: '6px 12px',\n fontWeight: 'bold',\n borderBottom: '2px solid #ccc',\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n }}\n >\n <span>{formulaView === 'expressions' ? 'Formula Expressions' : 'Formula Tokens'}</span>\n <button\n onClick={() => {\n const next = formulaView === 'expressions' ? 'tokens' : 'expressions';\n setFormulaView(next);\n ss.set('gs-debugger-formula-view', next);\n }}\n style={{\n marginLeft: 'auto',\n fontSize: '11px',\n padding: '2px 8px',\n cursor: 'pointer',\n border: '1px solid #aaa',\n borderRadius: '4px',\n background: '#fff',\n }}\n >\n {formulaView === 'expressions' ? '→ Tokens' : '→ Expressions'}\n </button>\n </div>\n {registryCellData ? (\n <JsonCode\n data={formulaView === 'expressions' ? registryFormulaExpr : registryFormulaTokens}\n replacer={baseReplacer}\n theme={formulaView === 'expressions' ? solarizedLight : docco}\n />\n ) : (\n <div style={{ fontStyle: 'italic', color: '#6c757d', padding: '12px' }}>No cell selected</div>\n )}\n </div>\n </div>\n\n {/* Resizer for top pane */}\n <div\n onMouseDown={startDrag}\n style={{\n height: '6px',\n backgroundColor: '#dee2e6',\n cursor: 'row-resize',\n transition: 'background-color 0.2s',\n zIndex: 10,\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#adb5bd';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = '#dee2e6';\n }}\n />\n\n {/* Sheet tabs */}\n <div\n style={{\n display: 'flex',\n borderBottom: '1px solid #dee2e6',\n borderTop: '1px solid #dee2e6',\n backgroundColor: '#f8f9fa',\n }}\n >\n {sheets.map((sheet) => (\n <div\n key={sheet.id}\n onClick={() => setActiveTabId(sheet.id)}\n style={{\n padding: '8px 16px',\n cursor: 'pointer',\n fontWeight: 'bold',\n borderBottom: activeTabId === sheet.id ? '2px solid #0d6efd' : '2px solid transparent',\n color: activeTabId === sheet.id ? '#0d6efd' : '#495057',\n }}\n >\n {sheet.name} (ID: {sheet.id})\n </div>\n ))}\n {sheets.length === 0 && <div style={{ padding: '8px 16px', color: '#6c757d' }}>No sheets detected</div>}\n </div>\n\n {/* Bottom pane: Sheet Data | Store Data */}\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n height: `${bottomHeight}px`,\n backgroundColor: '#282c34',\n overflow: 'hidden',\n }}\n >\n <div\n style={{\n flex: 1,\n borderRight: '1px solid #3a3a3a',\n overflow: 'auto',\n position: 'relative',\n backgroundColor: '#282c34',\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n background: '#21252b',\n zIndex: 1,\n padding: '8px 12px',\n fontWeight: 'bold',\n borderBottom: '2px solid #3a3a3a',\n color: '#abb2bf',\n }}\n >\n Sheet Data\n </div>\n {activeTableData ? (\n <JsonCode data={activeTableData} replacer={baseReplacer} theme={tomorrowNight} />\n ) : (\n <div style={{ fontStyle: 'italic', color: '#6c757d', padding: '12px' }}>Sheet instance not found</div>\n )}\n </div>\n\n <div\n style={{\n flex: 1,\n overflow: 'auto',\n backgroundColor: '#282c34',\n position: 'relative',\n }}\n >\n <div\n style={{\n position: 'sticky',\n top: 0,\n background: '#21252b',\n zIndex: 1,\n padding: '8px 12px',\n fontWeight: 'bold',\n borderBottom: '2px solid #3a3a3a',\n color: '#abb2bf',\n }}\n >\n Store Data\n </div>\n {activeStoreData ? (\n <JsonCode data={activeStoreData} replacer={jsonReplacer} theme={solarizedDark} />\n ) : (\n <div style={{ fontStyle: 'italic', color: '#6c757d', padding: '12px' }}>Store state not found</div>\n )}\n </div>\n </div>\n\n {/* Resizer for bottom pane */}\n <div\n onMouseDown={startDragBottom}\n style={{\n height: '6px',\n backgroundColor: '#dee2e6',\n cursor: 'row-resize',\n transition: 'background-color 0.2s',\n zIndex: 10,\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#adb5bd';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = '#dee2e6';\n }}\n />\n </div>\n );\n};\n"],"names":["e","module","this","n","i","s","u","a","o","c","h","d","l","$","y","M","t","m","r","v","g","D","p","S","_","w","O","b","f","k","Cs","rt","he","$e","Le","qe","fe","Ts","Ms","Fs","vt","kt","$t","pe","Ft","Ot","Os","Ds","G","Ht","bt","Ns","T","Ke","Je","me","Zt","Jt","Hs","Bs","at","R","Us","Ye","_t","Yt","Dt","L","W","Qt","ht","be","Vs","zs","Qe","Rt","ts","ye","ge","Kt","Ws","Xs","js","es","Gs","I","Zs","qs","Be","Ks","Js","V","Qs","ti","te","ei","ss$1","xn","ss","si","Lt","ee","st","ii","rs","ri","ne","oe","Ut","Vt","St","ae","se","ce","Ae","le","xt","F","z","Is","As","ds","li","hi","ui","di","fs","fi","Te","nt","Nt","pi","tt","Et","At","It","mi","yi","gi","wi","xi","bi","Si","_i","Ri","Ei","Ai","Ue","Ii","wt","qt","ue","Y","Ne","x","E","we","N","B","Z","q","C","U","X","it","K","pt","mt","Ct","Tt","P","et","yt","ot","gt","xs","bs","Ss","J","Xt","Mt","H","_s","Rs","jt","Es","ke","Gt","ut","Ve","xe","Ci","ps","Pt","Ti","Mi","Fi","Oi","de","Me","Q","Fe","ms","ys","Oe","Di","De","zt","Wt","dt","$i","ft","Li","ze","We","re","A","ve","Pi","Hi","Yi","Bi","Ui","Vi","zi","Wi","Xi","ji","Gi","Zi","qi","Ki","Ji","Qi","tr","er","sr","ir","rr","nr","or","ar","cr","lr","hr","ur","dr","fr","pr","mr","yr","gr","wr","xr","br","Sr","_r","Rr","Er","je","Ar","Ir","Cr","Tr","Mr","Fr","Or","Dr","Nr","vr","kr","$r","Lr","Pr","gs","Hr","SyntaxHighlighter","jsonLang","key","value","JsonCode","data","replacer","theme","code","jsx","Debugger","book","intervalMs","registry","snapshot","setSnapshot","useState","activeTabId","setActiveTabId","topHeight","setTopHeight","bottomHeight","setBottomHeight","formulaView","setFormulaView","useEffect","savedTop","savedBottom","savedFormula","updateSnapshot","choosingAddress","choosingSheetId","editingAddress","editingSheetId","ready","sheetIdsByName","sheetHead","cellHead","paletteBySheetName","solvedCaches","copyingSheetId","copyingZone","cutting","historyIndex","historyLimit","histories","asyncPending","asyncInflight","intervalId","sheets","name","id","activeStoreData","activeTableData","registryCellData","registrySystemData","registryCellAddress","registryCellSheetName","registryFormulaExpr","registryFormulaTokens","contextsBySheetId","context","sheet","choosingContext","entry","store","rawTable","isTopHeaderSelecting","isLeftHeaderSelecting","pos","a2p","x2c","text","lexer","Lexer","FormulaParser","baseReplacer","jsonReplacer","Sheet","startDrag","startY","startHeight","onMouseMove","moveEvent","onMouseUp","startDragBottom","jsxs","atomOneLight","atelierSeasideLight","atelierHeathLight","next","solarizedLight","docco","tomorrowNight","solarizedDark"],"mappings":"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","x_google_ignoreList":[0,1,2]}