@sheetxl/grid-react 0.7.7 → 0.7.9

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.
@@ -1,11 +1,11 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._sheetxl-grid_h9wwa_7{position:relative;box-sizing:border-box;user-select:none}._sheetxl-grid_h9wwa_7 *{box-sizing:border-box!important}._sheetxl-grid_h9wwa_7 *:focus{outline:none}._sheetxl-grid_h9wwa_7 .cell-container{position:absolute;overflow:visible;white-space:pre}._sheetxl-grid_h9wwa_7 .cell-container>*{inset:0;position:absolute}._sheetxl-grid_h9wwa_7 .sheetxl-stage{contain:strict}._sheetxl-grid_h9wwa_7 .sheetxl-stage>*{contain:strict}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
- import { jsx as Ee, jsxs as _t, Fragment as Qn } from "react/jsx-runtime";
3
- import { useCallbackRef as T, HorizontalAlignment as mn, KeyCodes as Tt, ReactUtils as _, MouseButtonCodes as Xn, useSynchronizedPointerHandler as un, useId as Oo, useFullscreenPortal as go, SimpleCommand as se, KeyModifiers as ae, useImperativeElement as wo, ScrollPane as zo } from "@sheetxl/utils-react";
4
- import { useRef as le, useReducer as zn, useState as dt, useEffect as gt, useCallback as W, useLayoutEffect as en, useMemo as Ve, memo as Kt, forwardRef as tn, version as Lo, createElement as xo, useImperativeHandle as $o } from "react";
5
- import { CoordUtils as V, CommonUtils as Nt, RangeOrientation as Ht, Direction as w, AnchorLocation as et } from "@sheetxl/utils";
2
+ import { jsx as Ce, jsxs as _t, Fragment as Qn } from "react/jsx-runtime";
3
+ import { useCallbackRef as T, HorizontalAlignment as mn, KeyCodes as Ot, ReactUtils as Q, MouseButtonCodes as Xn, useSynchronizedPointerHandler as un, useId as Oo, useFullscreenPortal as go, SimpleCommand as se, KeyModifiers as ae, useImperativeElement as wo, ScrollPane as zo } from "@sheetxl/utils-react";
4
+ import { useRef as ie, useReducer as zn, useState as ut, useEffect as wt, useCallback as W, useLayoutEffect as en, useMemo as Ae, memo as Kt, forwardRef as tn, version as Lo, createElement as xo, useImperativeHandle as $o } from "react";
5
+ import { CoordUtils as V, CommonUtils as Nt, RangeOrientation as Ht, Direction as w, AnchorLocation as _e } from "@sheetxl/utils";
6
6
  import { createPortal as po } from "react-dom";
7
7
  /**
8
- * @license @sheetxl/grid-react - Grid React - Advanced grid component for React - v0.7.7
8
+ * @license @sheetxl/grid-react - Grid React - Advanced grid component for React - v0.7.9
9
9
  *
10
10
  * (C) 2025-present SheetXL Inc. & Michael T. Ford
11
11
  * License: The license can be found at https://www.sheetxl.com/license.
@@ -44,10 +44,10 @@ const dn = ({ itemType: t, index: n, itemSize: o, instanceProps: r, scale: c = 1
44
44
  for (; c < o && dn({ itemType: t, itemSize: n, index: c, instanceProps: r, scale: i }).offset < s; ) c += l, l *= 2;
45
45
  return mo({ itemType: t, itemSize: n, instanceProps: r, high: Math.min(c, o - 1), low: Math.floor(c / 2), offset: s, scale: i });
46
46
  }, Ao = (t) => {
47
- const { rowCount: n, columnCount: o, defaultRowHeight: r, getRowHeight: c, defaultColumnWidth: s, getColumnWidth: i } = t || {}, l = le({ columnMetadataMap: {}, rowMetadataMap: {}, lastMeasuredColumnIndex: -1, lastMeasuredRowIndex: -1, recalcColumnIndices: [], recalcRowIndices: [] }), h = T((k) => eo({ itemType: "row", itemCount: n, itemSize: c ?? (() => r ?? 20), instanceProps: l.current, offset: k }), [n, c, r]), O = T((k) => k === -1 ? 0 : dn({ itemType: "row", index: k, itemSize: c ?? (() => r ?? 20), instanceProps: l.current }).offset, [c, r]), z = T((k) => dn({ itemType: "row", index: k, itemSize: c ?? (() => r ?? 20), instanceProps: l.current }).size, [c, r]), M = T((k) => eo({ itemType: "column", itemCount: o, itemSize: i ?? (() => s ?? 75), instanceProps: l.current, offset: k }), [o, i, s]), R = T((k) => k === -1 ? 0 : dn({ itemType: "column", index: k, itemSize: i ?? (() => s ?? 75), instanceProps: l.current }).offset, [i, s]), $ = T((k) => dn({ itemType: "column", index: k, itemSize: i ?? (() => s ?? 75), instanceProps: l.current }).size, [i, s]), [Y, j] = zn((k) => k + 1, 0), ee = () => ({ getRowOffset: O, getColOffset: R, getRowIndex: h, getColIndex: M }), [Re, J] = dt(() => t ? ee() : null);
48
- return gt(() => {
49
- J(t ? ee() : null);
50
- }, [Y, n, o, s, r, z, $]), Re;
47
+ const { rowCount: n, columnCount: o, defaultRowHeight: r, getRowHeight: c, defaultColumnWidth: s, getColumnWidth: i } = t || {}, l = ie({ columnMetadataMap: {}, rowMetadataMap: {}, lastMeasuredColumnIndex: -1, lastMeasuredRowIndex: -1, recalcColumnIndices: [], recalcRowIndices: [] }), h = T((k) => eo({ itemType: "row", itemCount: n, itemSize: c ?? (() => r ?? 20), instanceProps: l.current, offset: k }), [n, c, r]), O = T((k) => k === -1 ? 0 : dn({ itemType: "row", index: k, itemSize: c ?? (() => r ?? 20), instanceProps: l.current }).offset, [c, r]), z = T((k) => dn({ itemType: "row", index: k, itemSize: c ?? (() => r ?? 20), instanceProps: l.current }).size, [c, r]), M = T((k) => eo({ itemType: "column", itemCount: o, itemSize: i ?? (() => s ?? 75), instanceProps: l.current, offset: k }), [o, i, s]), R = T((k) => k === -1 ? 0 : dn({ itemType: "column", index: k, itemSize: i ?? (() => s ?? 75), instanceProps: l.current }).offset, [i, s]), $ = T((k) => dn({ itemType: "column", index: k, itemSize: i ?? (() => s ?? 75), instanceProps: l.current }).size, [i, s]), [Y, q] = zn((k) => k + 1, 0), _ = () => ({ getRowOffset: O, getColOffset: R, getRowIndex: h, getColIndex: M }), [Ie, Z] = ut(() => t ? _() : null);
48
+ return wt(() => {
49
+ Z(t ? _() : null);
50
+ }, [Y, n, o, s, r, z, $]), Ie;
51
51
  }, vo = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ~`!@#$%^&*()-_=+[{]};:'\",<.>/?|\\", to = (t) => {
52
52
  if (!t) return null;
53
53
  if (t.eventType === "start") return { type: t.eventType };
@@ -61,119 +61,119 @@ const dn = ({ itemType: t, index: n, itemSize: o, instanceProps: r, scale: c = 1
61
61
  }
62
62
  return { type: t.eventType ?? "unknown" };
63
63
  }, Fo = (t) => !0, Vo = (t) => !!t && !(t.ctrlKey || t.metaKey || t.altKey || t.isComposing) && (!(t.shiftKey || t.key !== "F2" && t.key !== " " && t.key !== "Backspace") || (!t.shiftKey || t.key !== " ") && vo.indexOf(t.key) !== -1), Wo = (t) => !!t && t.type === "dblclick" && { editMode: !0 }, Uo = (t) => {
64
- const { session: n, refLatestCoords: o, handleSubmitEdit: r, handleCancelEdit: c, cellBounds: s, isInBounds: i, getCellEditor: l, propsEditor: h, borderStrokeFill: O = "rgb(33, 115, 70)", borderStrokeWidth: z = 2, alignment: M = mn.Left, style: R, ...$ } = t, Y = le(null), j = le(null), [ee, Re] = dt(!1), J = n.coords, k = W(async (fe) => {
64
+ const { session: n, refLatestCoords: o, handleSubmitEdit: r, handleCancelEdit: c, cellBounds: s, isInBounds: i, getCellEditor: l, propsEditor: h, borderStrokeFill: O = "rgb(33, 115, 70)", borderStrokeWidth: z = 2, alignment: M = mn.Left, style: R, ...$ } = t, Y = ie(null), q = ie(null), [_, Ie] = ut(!1), Z = n.coords, k = W(async (fe) => {
65
65
  if (Y.current?.getBoundingClientRect()) {
66
66
  if (fe.eventType === "keyboard") {
67
67
  const A = fe.event, p = new KeyboardEvent(A.type, { bubbles: !0, cancelable: !0, view: window, key: A.key, code: A.code, location: A.location, repeat: A.repeat, isComposing: A.isComposing, charCode: A.charCode, keyCode: A.keyCode, which: A.which, ctrlKey: A.ctrlKey, shiftKey: A.shiftKey, altKey: A.altKey, metaKey: A.metaKey });
68
- p.isSynthetic = !0, p.key, j.current?.dispatchEvent(p);
68
+ p.isSynthetic = !0, p.key, q.current?.dispatchEvent(p);
69
69
  } else fe.eventType === "pointer" || console.warn("unsupported event type", fe);
70
70
  await new Promise((A) => requestAnimationFrame(A));
71
71
  }
72
72
  }, []);
73
- gt(() => {
74
- const fe = j.current;
75
- return Re(!0), j.current.startEdit?.(n.startEvent), (async () => {
73
+ wt(() => {
74
+ const fe = q.current;
75
+ return Ie(!0), q.current.startEdit?.(n.startEvent), (async () => {
76
76
  n.editorRefs.push(fe), n.editorRefsDispatchEditorEvent.push(k);
77
- const be = [...n.events];
78
- for (let A = 0; A < be.length; A++) await k(be[A]);
77
+ const ye = [...n.events];
78
+ for (let A = 0; A < ye.length; A++) await k(ye[A]);
79
79
  n.onMount(fe);
80
80
  })(), () => {
81
- const be = n.editorRefs.indexOf(fe);
82
- be !== -1 && n.editorRefs.splice(be, 1), n.onUnmount(fe);
81
+ const ye = n.editorRefs.indexOf(fe);
82
+ ye !== -1 && n.editorRefs.splice(ye, 1), n.onUnmount(fe);
83
83
  };
84
84
  }, []);
85
85
  const U = W(() => r(n), []), he = W(() => {
86
86
  c(n);
87
- }, []), P = o.current && V.isEqualCells(o.current, J), ie = i && P && ee, Ue = l({ autoFocus: !!n.startEvent?.autoFocus, ...h, onSubmitEdit: U, onCancelEdit: he, ref: j }, J), Oe = s.x + _.boundPixel(-z / 2), He = _.boundPixel(s.width + z / 2, !0);
88
- return Ee("div", { tabIndex: 0, ref: Y, style: { background: void 0, ...R, opacity: ie ? R?.opacity ?? 1 : 0, pointerEvents: "auto", position: "absolute", boxSizing: "border-box", top: `${s.y + _.boundPixel(-z / 2)}px`, height: _.boundPixel(s.height + z / 2, !0), left: `${Oe}px`, width: He }, ...$, children: Ee("div", { className: "editor-container", style: { position: "absolute", boxSizing: "border-box", left: `${_.boundPixel(1)}px`, top: `${_.boundPixel(1)}px`, width: _.boundPixel(s.width - 2, !0), height: _.boundPixel(s.height - 2, !0), outline: `${z}px ${O} solid`, boxShadow: "rgba(60,64,67,.35) 2px 2px 6px 3px", maxHeight: "100%", overflow: "hidden", display: "flex" }, children: Ue }) });
87
+ }, []), P = o.current && V.isEqualCells(o.current, Z), ce = i && P && _, Ve = l({ autoFocus: !!n.startEvent?.autoFocus, ...h, onSubmitEdit: U, onCancelEdit: he, ref: q }, Z), Pe = s.x + Q.boundPixel(-z / 2), We = Q.boundPixel(s.width + z / 2, !0);
88
+ return Ce("div", { tabIndex: 0, ref: Y, style: { background: void 0, ...R, opacity: ce ? R?.opacity ?? 1 : 0, pointerEvents: "auto", position: "absolute", boxSizing: "border-box", top: `${s.y + Q.boundPixel(-z / 2)}px`, height: Q.boundPixel(s.height + z / 2, !0), left: `${Pe}px`, width: We }, ...$, children: Ce("div", { className: "editor-container", style: { position: "absolute", boxSizing: "border-box", left: `${Q.boundPixel(1)}px`, top: `${Q.boundPixel(1)}px`, width: Q.boundPixel(s.width - 2, !0), height: Q.boundPixel(s.height - 2, !0), outline: `${z}px ${O} solid`, boxShadow: "rgba(60,64,67,.35) 2px 2px 6px 3px", maxHeight: "100%", overflow: "hidden", display: "flex" }, children: Ve }) });
89
89
  }, Sr = (t) => {
90
- const { view: n, canEdit: o = Fo, getCellEditor: r, onBeforeStartEdit: c, onStartEdit: s, onSubmitEdit: i, onCancelEdit: l, onDoneEdit: h, isEditorStartKeyEvent: O = Vo, isEditorStartPointerEvent: z = Wo, containerProps: M, borderStrokeFill: R, borderStrokeWidth: $ = 2, getRangeCoords: Y = null, activeCoords: j, alignment: ee = mn.Left } = t, [Re, J] = dt(!1), [k, U] = dt(void 0), he = T((D, b, Pe, oe, xe, Ne) => {
90
+ const { view: n, canEdit: o = Fo, getCellEditor: r, onBeforeStartEdit: c, onStartEdit: s, onSubmitEdit: i, onCancelEdit: l, onDoneEdit: h, isEditorStartKeyEvent: O = Vo, isEditorStartPointerEvent: z = Wo, containerProps: M, borderStrokeFill: R, borderStrokeWidth: $ = 2, getRangeCoords: Y = null, activeCoords: q, alignment: _ = mn.Left } = t, [Ie, Z] = ut(!1), [k, U] = ut(void 0), he = T((D, b, Me, oe, pe, Ue) => {
91
91
  if (!b) return null;
92
- const rt = xe?.(b, D), Rt = D.getRangeCoordsBounds(rt), lt = D.toClipBounds(Rt), jt = Rt, xt = D.getZoom();
93
- if (!lt) return null;
94
- Pe && (Pe *= xt), oe && (oe *= xt);
92
+ const lt = pe?.(b, D), Mt = D.getRangeCoordsBounds(lt), it = D.toClipBounds(Mt), jt = Mt, pt = D.getZoom();
93
+ if (!it) return null;
94
+ Me && (Me *= pt), oe && (oe *= pt);
95
95
  let v = jt, re = !1;
96
- if (Pe !== void 0) {
97
- let Qe = { ...rt }, ln = 0;
98
- for (; !re && v.width <= Pe && ln < 20; ) {
96
+ if (Me !== void 0) {
97
+ let Qe = { ...lt }, ln = 0;
98
+ for (; !re && v.width <= Me && ln < 20; ) {
99
99
  ln++, ln > 19 && console.warn("max width reached");
100
- const Zt = D.getTotalRangeCoords(), Pt = D.getLayout();
101
- Ne === mn.Left ? Qe.colEnd + 1 < Zt.colEnd ? Qe.colEnd = Pt.getColIndex(v.x + Pe) : re = !0 : Ne === mn.Right ? Qe.colStart - 1 >= 0 ? Qe.colStart = Pt.getColIndex(v.x - (Pe - v.width)) : re = !0 : Ne === mn.Center && Qe.colEnd + 1 < Zt.colEnd && Qe.colStart - 1 >= 0 ? (Qe.colStart = Pt.getColIndex(v.x - (Pe - v.width) / 2), Qe.colEnd = Pt.getColIndex(v.x + v.width + (Pe - v.width) / 2)) : re = !0, re || (v = D.getRangeCoordsBounds(Qe));
100
+ const Zt = D.getTotalRangeCoords(), Dt = D.getLayout();
101
+ Ue === mn.Left ? Qe.colEnd + 1 < Zt.colEnd ? Qe.colEnd = Dt.getColIndex(v.x + Me) : re = !0 : Ue === mn.Right ? Qe.colStart - 1 >= 0 ? Qe.colStart = Dt.getColIndex(v.x - (Me - v.width)) : re = !0 : Ue === mn.Center && Qe.colEnd + 1 < Zt.colEnd && Qe.colStart - 1 >= 0 ? (Qe.colStart = Dt.getColIndex(v.x - (Me - v.width) / 2), Qe.colEnd = Dt.getColIndex(v.x + v.width + (Me - v.width) / 2)) : re = !0, re || (v = D.getRangeCoordsBounds(Qe));
102
102
  }
103
103
  }
104
104
  v.height = jt.height, oe !== void 0 && (v.height = Math.max(oe + 1, jt.height));
105
- const { width: Ke, height: ht } = D.getViewportSize();
106
- return { x: v.x ?? 0, y: v.y ?? 0, height: Math.min(ht - v.y, v.height) + 1, width: Math.min(Ke - v.x, v.width) + 1 };
107
- }, [ee]), P = T(o, [o]), ie = W(() => {
105
+ const { width: He, height: ft } = D.getViewportSize();
106
+ return { x: v.x ?? 0, y: v.y ?? 0, height: Math.min(ft - v.y, v.height) + 1, width: Math.min(He - v.x, v.width) + 1 };
107
+ }, [_]), P = T(o, [o]), ce = W(() => {
108
108
  n?.getStage()?.focus();
109
- }, [n]), Ue = le(null), Oe = T((D) => {
110
- c?.(D), L(), J(!0), Ue.current = null;
111
- }, [c]), He = T((D) => {
109
+ }, [n]), Ve = ie(null), Pe = T((D) => {
110
+ c?.(D), L(), Z(!0), Ve.current = null;
111
+ }, [c]), We = T((D) => {
112
112
  s?.(D.coords);
113
113
  }, [s]), fe = T((D) => {
114
- D.isSubmitted || D.isCancelled || (p.current.isEditorClosed = !0, ie(), D.isCancelled = !0, l?.(D.coords), L());
115
- }, [l]), be = T((D) => {
114
+ D.isSubmitted || D.isCancelled || (p.current.isEditorClosed = !0, ce(), D.isCancelled = !0, l?.(D.coords), L());
115
+ }, [l]), ye = T((D) => {
116
116
  if (D.isSubmitted || D.isCancelled) return !1;
117
117
  try {
118
- return Ue.current = D.coords, D.isEditorClosing = !0, D.isSubmitted = !0, D.isEditorSubmitted || (D.isEditorSubmitted = !0, D.editorRefs[0]?.submitEdit?.()), D.coords, i?.(D.coords), D.isEditorClosed = !0, ie(), L(), !0;
118
+ return Ve.current = D.coords, D.isEditorClosing = !0, D.isSubmitted = !0, D.isEditorSubmitted || (D.isEditorSubmitted = !0, D.editorRefs[0]?.submitEdit?.()), D.coords, i?.(D.coords), D.isEditorClosed = !0, ce(), L(), !0;
119
119
  } catch (b) {
120
120
  throw D.isEditorClosing = !1, D.isSubmitted = !1, b;
121
121
  }
122
122
  }, [i]), A = T((D) => {
123
- J(!1), h?.(D.coords), L();
124
- }, [h]), p = le(null), je = le(null), Ye = le(null), ne = le([]), [Ce, Q] = zn((D) => D + 1, 0), L = W((D) => {
125
- D && ne.current.push(D), Q();
123
+ Z(!1), h?.(D.coords), L();
124
+ }, [h]), p = ie(null), Ne = ie(null), Xe = ie(null), te = ie([]), [be, J] = zn((D) => D + 1, 0), L = W((D) => {
125
+ D && te.current.push(D), J();
126
126
  }, []), X = T((D) => {
127
127
  if (D.defaultPrevented || D.isSynthetic || !n) return;
128
128
  const b = n?.getCellCoordsFromClient(D.clientX, D.clientY);
129
129
  b && L({ eventType: "pointer", event: D, coords: b });
130
- }, [n]), kt = T((D) => {
130
+ }, [n]), Pt = T((D) => {
131
131
  const b = D.nativeEvent;
132
132
  X(b);
133
- }, [n]), bt = T((D) => {
133
+ }, [n]), Et = T((D) => {
134
134
  if (D.defaultPrevented || D.isSynthetic || !n?.getStage()) return;
135
- const b = je.current;
135
+ const b = Ne.current;
136
136
  O(D, b) && (D.stopPropagation(), D.preventDefault()), D.key, L({ eventType: "keyboard", event: D, coords: b });
137
137
  }, [n]);
138
138
  en(() => {
139
- const D = (oe, xe) => {
140
- const Ne = xe?.cell ?? oe;
141
- if (!Ne) return null;
142
- const rt = Ne;
143
- if (!P(Ne)) return null;
144
- Oe?.(Ne);
145
- const Rt = Nt.uuidV4();
146
- xe = Object.freeze({ autoFocus: !0, ...xe }), Ye.current = Ne;
147
- const lt = { coords: rt, startEvent: xe, uuid: Rt, isMounted: !1, isStarted: !1, isSubmitted: !1, isEditorSubmitted: !1, isEditorClosing: !1, isEditorClosed: !1, isCancelled: !1, events: [], editorRefsDispatchEditorEvent: [], editorRefs: [], onMount: (jt) => {
148
- lt.isMounted || (lt.isMounted = !0, L());
139
+ const D = (oe, pe) => {
140
+ const Ue = pe?.cell ?? oe;
141
+ if (!Ue) return null;
142
+ const lt = Ue;
143
+ if (!P(Ue)) return null;
144
+ Pe?.(Ue);
145
+ const Mt = Nt.uuidV4();
146
+ pe = Object.freeze({ autoFocus: !0, ...pe }), Xe.current = Ue;
147
+ const it = { coords: lt, startEvent: pe, uuid: Mt, isMounted: !1, isStarted: !1, isSubmitted: !1, isEditorSubmitted: !1, isEditorClosing: !1, isEditorClosed: !1, isCancelled: !1, events: [], editorRefsDispatchEditorEvent: [], editorRefs: [], onMount: (jt) => {
148
+ it.isMounted || (it.isMounted = !0, L());
149
149
  }, onUnmount: (jt) => {
150
- if (lt.editorRefs.length === 0) {
151
- const xt = () => {
152
- lt.isMounted = !1, L();
150
+ if (it.editorRefs.length === 0) {
151
+ const pt = () => {
152
+ it.isMounted = !1, L();
153
153
  };
154
- if (document.activeElement !== document.body) xt();
154
+ if (document.activeElement !== document.body) pt();
155
155
  else {
156
156
  const v = (re) => {
157
- re.defaultPrevented || re.target !== document.body || bt(re);
157
+ re.defaultPrevented || re.target !== document.body || Et(re);
158
158
  };
159
159
  window.addEventListener("keydown", v, !0), n.getStage()?.addEventListener("focusin", () => {
160
- window.removeEventListener("keydown", v), xt();
161
- }, Ho), ie();
160
+ window.removeEventListener("keydown", v), pt();
161
+ }, Ho), ce();
162
162
  }
163
163
  }
164
164
  } };
165
- return lt;
165
+ return it;
166
166
  };
167
- if (ne.current.length <= 0 && !p.current) return;
168
- const b = ne.current[0];
167
+ if (te.current.length <= 0 && !p.current) return;
168
+ const b = te.current[0];
169
169
  to(b), ((oe) => {
170
- const xe = [], Ne = oe?.length ?? 0;
171
- for (let rt = 0; rt < Ne; rt++) {
172
- const Rt = oe[rt];
173
- xe.push(to(Rt));
170
+ const pe = [], Ue = oe?.length ?? 0;
171
+ for (let lt = 0; lt < Ue; lt++) {
172
+ const Mt = oe[lt];
173
+ pe.push(to(Mt));
174
174
  }
175
- })(ne.current), p.current, p.current;
176
- let Pe = p.current;
175
+ })(te.current), p.current, p.current;
176
+ let Me = p.current;
177
177
  if (p.current) {
178
178
  if (p.current.isDone) p.current = null;
179
179
  else if (p.current.isSubmitted || p.current.isCancelled) {
@@ -183,48 +183,48 @@ const dn = ({ itemType: t, index: n, itemSize: o, instanceProps: r, scale: c = 1
183
183
  }
184
184
  if (b) {
185
185
  if (b.eventType === "start") {
186
- const oe = b, xe = oe.startEvent?.cell ?? je.current;
187
- p.current && V.isEqualCells(p.current.coords, xe) || (p.current = D(xe, oe.startEvent));
186
+ const oe = b, pe = oe.startEvent?.cell ?? Ne.current;
187
+ p.current && V.isEqualCells(p.current.coords, pe) || (p.current = D(pe, oe.startEvent));
188
188
  } else if (b.eventType === "keyboard") {
189
189
  const oe = b.event;
190
190
  if (p.current) {
191
- let xe = !1;
191
+ let pe = !1;
192
192
  switch (oe.which) {
193
- case Tt.Left:
194
- case Tt.Right:
195
- case Tt.Up:
196
- case Tt.Down:
197
- case Tt.Enter:
198
- case Tt.Tab:
199
- xe = !0;
193
+ case Ot.Left:
194
+ case Ot.Right:
195
+ case Ot.Up:
196
+ case Ot.Down:
197
+ case Ot.Enter:
198
+ case Ot.Tab:
199
+ pe = !0;
200
200
  }
201
- if (!xe) {
201
+ if (!pe) {
202
202
  p.current.events.push(b);
203
- for (let Ne = 0; Ne < p.current.editorRefsDispatchEditorEvent.length; Ne++) p.current.editorRefsDispatchEditorEvent[Ne](b);
203
+ for (let Ue = 0; Ue < p.current.editorRefsDispatchEditorEvent.length; Ue++) p.current.editorRefsDispatchEditorEvent[Ue](b);
204
204
  }
205
205
  } else if (O(oe, b.coords)) {
206
- let xe;
207
- const Ne = D(xe?.cell ?? je.current, xe);
208
- Ne && Ne.events.push(b), p.current = Ne;
206
+ let pe;
207
+ const Ue = D(pe?.cell ?? Ne.current, pe);
208
+ Ue && Ue.events.push(b), p.current = Ue;
209
209
  }
210
210
  } else if (b.eventType === "pointer") {
211
211
  const oe = b.event;
212
212
  if (p.current) {
213
213
  p.current.events.push(b);
214
- for (let xe = 0; xe < p.current.editorRefsDispatchEditorEvent.length; xe++) p.current.editorRefsDispatchEditorEvent[xe](b);
214
+ for (let pe = 0; pe < p.current.editorRefsDispatchEditorEvent.length; pe++) p.current.editorRefsDispatchEditorEvent[pe](b);
215
215
  } else {
216
- const xe = b?.coords ?? je.current, Ne = z(oe, xe);
217
- if (Ne) {
218
- let rt;
219
- typeof rt != "boolean" && (rt = Ne);
220
- const Rt = D(xe, rt);
221
- Rt && Rt.events.push(b), p.current = Rt;
216
+ const pe = b?.coords ?? Ne.current, Ue = z(oe, pe);
217
+ if (Ue) {
218
+ let lt;
219
+ typeof lt != "boolean" && (lt = Ue);
220
+ const Mt = D(pe, lt);
221
+ Mt && Mt.events.push(b), p.current = Mt;
222
222
  }
223
223
  }
224
224
  } else if (b.eventType === "submit") {
225
225
  if (p.current && !p.current.isSubmitted && !p.current.isCancelled) {
226
226
  if (!p.current.isMounted) return;
227
- be(p.current);
227
+ ye(p.current);
228
228
  }
229
229
  } else if (b.eventType === "cancel") {
230
230
  if (p.current && !p.current.isSubmitted && !p.current.isCancelled) {
@@ -233,49 +233,49 @@ const dn = ({ itemType: t, index: n, itemSize: o, instanceProps: r, scale: c = 1
233
233
  }
234
234
  } else if (b.eventType === "coordsChange") {
235
235
  const oe = b;
236
- if (je.current = oe.activeCoords, p.current, p.current && !p.current.isSubmitted && !p.current.isCancelled) {
236
+ if (Ne.current = oe.activeCoords, p.current, p.current && !p.current.isSubmitted && !p.current.isCancelled) {
237
237
  if (!p.current.isMounted) return;
238
238
  try {
239
- be(p.current);
239
+ ye(p.current);
240
240
  } catch {
241
241
  }
242
242
  }
243
243
  }
244
244
  }
245
- ne.current.length > 0 && (ne.current.shift(), L()), ne.current.length === 0 && (!p.current || p.current.isEditorClosing || p.current.isEditorClosed ? !p.current && Pe && ie() : p.current.isMounted && !p.current.isStarted && (p.current.isStarted = !0, p.current.startEvent.autoFocus && (typeof p.current.startEvent.autoFocus == "string" ? p.current.editorRefs[0]?.autoFocus(p.current.startEvent.autoFocus) : p.current.editorRefs[0]?.autoFocus()), He?.(p.current), requestAnimationFrame(() => {
245
+ te.current.length > 0 && (te.current.shift(), L()), te.current.length === 0 && (!p.current || p.current.isEditorClosing || p.current.isEditorClosed ? !p.current && Me && ce() : p.current.isMounted && !p.current.isStarted && (p.current.isStarted = !0, p.current.startEvent.autoFocus && (typeof p.current.startEvent.autoFocus == "string" ? p.current.editorRefs[0]?.autoFocus(p.current.startEvent.autoFocus) : p.current.editorRefs[0]?.autoFocus()), We?.(p.current), requestAnimationFrame(() => {
246
246
  n && p.current?.coords && n.scrollCellCoordsIntoView(p.current.coords);
247
247
  })));
248
- }, [Ce]), gt(() => {
249
- Ye.current = j;
248
+ }, [be]), wt(() => {
249
+ Xe.current = q;
250
250
  const D = p.current?.coords;
251
- V.isEqualCells(D, j) || (p.current && (p.current.isEditorClosing = !0), L({ eventType: "coordsChange", activeCoords: j }));
252
- }, [j]);
253
- const wt = W((D) => {
254
- bt(D.nativeEvent);
255
- }, []), { width: ut = 0, height: ge = 0 } = k ?? { width: 0, height: 0 }, Wt = T(r, [r]);
251
+ V.isEqualCells(D, q) || (p.current && (p.current.isEditorClosing = !0), L({ eventType: "coordsChange", activeCoords: q }));
252
+ }, [q]);
253
+ const xt = W((D) => {
254
+ Et(D.nativeEvent);
255
+ }, []), { width: ht = 0, height: ge = 0 } = k ?? { width: 0, height: 0 }, Wt = T(r, [r]);
256
256
  return { overlay: T((D) => {
257
257
  if (!p.current || p.current.isEditorClosed) return p.current, null;
258
258
  p.current.coords;
259
- let b = he(D, p.current.coords, ut, ge, Y, ee), Pe = !0;
260
- b && b.width !== 0 && b.height !== 0 || (b = { x: 0, y: 0, width: ut, height: ut }, Pe = !1);
261
- const oe = D.getZoom(), xe = { containerBounds: { x: 0, y: 0, width: b.width / oe, height: b.height / oe }, setNaturalSize: U, zoom: oe };
262
- return Ee(Uo, { session: p.current, refLatestCoords: Ye, handleSubmitEdit: be, handleCancelEdit: fe, cellBounds: b, borderStrokeWidth: $, borderStrokeFill: R, isInBounds: Pe, getCellEditor: Wt, propsEditor: xe, alignment: ee, ...M }, "editor:" + p.current.uuid);
263
- }, [r, Y, Ce, ut, ge, ee, $, R]), startEdit: W((D) => {
259
+ let b = he(D, p.current.coords, ht, ge, Y, _), Me = !0;
260
+ b && b.width !== 0 && b.height !== 0 || (b = { x: 0, y: 0, width: ht, height: ht }, Me = !1);
261
+ const oe = D.getZoom(), pe = { containerBounds: { x: 0, y: 0, width: b.width / oe, height: b.height / oe }, setNaturalSize: U, zoom: oe };
262
+ return Ce(Uo, { session: p.current, refLatestCoords: Xe, handleSubmitEdit: ye, handleCancelEdit: fe, cellBounds: b, borderStrokeWidth: $, borderStrokeFill: R, isInBounds: Me, getCellEditor: Wt, propsEditor: pe, alignment: _, ...M }, "editor:" + p.current.uuid);
263
+ }, [r, Y, be, ht, ge, _, $, R]), startEdit: W((D) => {
264
264
  L({ eventType: "start", startEvent: D });
265
265
  }, []), submitEdit: W(() => {
266
266
  L({ eventType: "submit" });
267
267
  }, []), cancelEdit: W(() => {
268
268
  L({ eventType: "cancel" });
269
- }, []), onKeyboardEvent: wt, onPointerEvent: kt, onKeyboardEventNative: bt, onPointerEventNative: X, isEditing: Re };
269
+ }, []), onKeyboardEvent: xt, onPointerEvent: Pt, onKeyboardEventNative: Et, onPointerEventNative: X, isEditing: Ie };
270
270
  }, Ho = Object.freeze({ once: !0 });
271
271
  var No = function() {
272
- }, So = typeof window < "u", Ko = So ? en : gt, no = { x: 0, y: 0, width: 0, height: 0, top: 0, left: 0, bottom: 0, right: 0 };
272
+ }, So = typeof window < "u", Ko = So ? en : wt, no = { x: 0, y: 0, width: 0, height: 0, top: 0, left: 0, bottom: 0, right: 0 };
273
273
  const yo = So && window.ResizeObserver !== void 0 ? function() {
274
- var t = dt(null), n = t[0], o = t[1], r = dt(no), c = r[0], s = r[1], i = Ve(function() {
274
+ var t = ut(null), n = t[0], o = t[1], r = ut(no), c = r[0], s = r[1], i = Ae(function() {
275
275
  return new window.ResizeObserver(function(l) {
276
276
  if (l[0]) {
277
- var h = l[0].contentRect, O = h.x, z = h.y, M = h.width, R = h.height, $ = h.top, Y = h.left, j = h.bottom, ee = h.right;
278
- s({ x: O, y: z, width: M, height: R, top: $, left: Y, bottom: j, right: ee });
277
+ var h = l[0].contentRect, O = h.x, z = h.y, M = h.width, R = h.height, $ = h.top, Y = h.left, q = h.bottom, _ = h.right;
278
+ s({ x: O, y: z, width: M, height: R, top: $, left: Y, bottom: q, right: _ });
279
279
  }
280
280
  });
281
281
  }, []);
@@ -288,76 +288,76 @@ const yo = So && window.ResizeObserver !== void 0 ? function() {
288
288
  return [No, no];
289
289
  }, jo = 3, qo = 0.5, Yo = 50, Kn = (t) => ({ x: t.x, y: t.y, width: t.width, height: t.height, top: t.top, left: t.left, right: t.right, bottom: t.bottom });
290
290
  function Xo(t = {}) {
291
- const { threshold: n = qo, stillnessThreshold: o = jo, maxHierarchyDepth: r = Yo } = t, [c, s] = yo(), i = le(null), [l, h] = zn((Y) => Y + 1, 0), O = le(void 0), z = le({ x: 0, y: 0, width: 0, height: 0, top: 0, left: 0, right: 0, bottom: 0 }), M = W((Y) => {
291
+ const { threshold: n = qo, stillnessThreshold: o = jo, maxHierarchyDepth: r = Yo } = t, [c, s] = yo(), i = ie(null), [l, h] = zn((Y) => Y + 1, 0), O = ie(void 0), z = ie({ x: 0, y: 0, width: 0, height: 0, top: 0, left: 0, right: 0, bottom: 0 }), M = W((Y) => {
292
292
  i.current = Y, typeof c == "function" && c(Y);
293
- }, [c]), [R, $] = dt(s);
294
- return gt(() => {
293
+ }, [c]), [R, $] = ut(s);
294
+ return wt(() => {
295
295
  s && !R && $(s);
296
- }, [s, R]), gt(() => {
296
+ }, [s, R]), wt(() => {
297
297
  const Y = i.current;
298
298
  if (!Y) return;
299
- let j = !1, ee = 0;
300
- const Re = () => {
299
+ let q = !1, _ = 0;
300
+ const Ie = () => {
301
301
  if (!Y) return;
302
- const P = Y.getBoundingClientRect(), ie = z.current;
303
- Math.abs(P.x - ie.x) > n || Math.abs(P.y - ie.y) > n || Math.abs(P.width - ie.width) > n || Math.abs(P.height - ie.height) > n ? (j || (j = !0, $(Kn(P)), h()), ee = 0) : ee++, j && ee >= o && (j = !1, $(Kn(P)), h()), z.current = Kn(P), O.current = requestAnimationFrame(Re);
302
+ const P = Y.getBoundingClientRect(), ce = z.current;
303
+ Math.abs(P.x - ce.x) > n || Math.abs(P.y - ce.y) > n || Math.abs(P.width - ce.width) > n || Math.abs(P.height - ce.height) > n ? (q || (q = !0, $(Kn(P)), h()), _ = 0) : _++, q && _ >= o && (q = !1, $(Kn(P)), h()), z.current = Kn(P), O.current = requestAnimationFrame(Ie);
304
304
  };
305
- O.current = requestAnimationFrame(Re);
306
- const J = (P) => {
307
- j = !0, h();
305
+ O.current = requestAnimationFrame(Ie);
306
+ const Z = (P) => {
307
+ q = !0, h();
308
308
  }, k = (P) => {
309
- j = !1, ee = o, h();
309
+ q = !1, _ = o, h();
310
310
  };
311
311
  let U = Y;
312
312
  const he = [];
313
- for (; U && U !== document.documentElement && (U.addEventListener("animationstart", J, !0), U.addEventListener("animationend", k, !0), U.addEventListener("transitionstart", J, !0), U.addEventListener("transitionend", k, !0), he.push(U), U = U.parentElement, !(he.length > r)); ) ;
313
+ for (; U && U !== document.documentElement && (U.addEventListener("animationstart", Z, !0), U.addEventListener("animationend", k, !0), U.addEventListener("transitionstart", Z, !0), U.addEventListener("transitionend", k, !0), he.push(U), U = U.parentElement, !(he.length > r)); ) ;
314
314
  return () => {
315
315
  O.current && cancelAnimationFrame(O.current), he.forEach((P) => {
316
- P.removeEventListener("animationstart", J, !0), P.removeEventListener("animationend", k, !0), P.removeEventListener("transitionstart", J, !0), P.removeEventListener("transitionend", k, !0);
316
+ P.removeEventListener("animationstart", Z, !0), P.removeEventListener("animationend", k, !0), P.removeEventListener("transitionstart", Z, !0), P.removeEventListener("transitionend", k, !0);
317
317
  });
318
318
  };
319
319
  }, [l, s, n, o, r]), [M, R];
320
320
  }
321
- const yr = ({ gridRef: t, gridMainRef: n, orientation: o = Ht.Row, headerCount: r, selectionPolicy: c = "multiple", newSelectionMode: s = "clear", alwaysScrollToActiveCoords: i = !0, onDragStart: l, onDragEnd: h, pointerDownInterceptor: O, pointerMoveInterceptor: z, onPointerUp: M, newSelection: R, modifySelection: $, appendSelection: Y, clearSelections: j }) => {
322
- const ee = r ?? ((o === Ht.Row ? t.current?.rowCount : t.current?.columnCount) || 0), Re = le(null), J = le(null), k = le(!1), U = le(null), he = W((A) => o === Ht.Column ? { rowIndex: 0, colIndex: A.colIndex } : { rowIndex: A.rowIndex, colIndex: 0 }, [o]), P = W((A) => o === Ht.Column ? { rowIndex: n.current ? n.current.rowCount - 1 : 0, colIndex: A.colIndex } : { rowIndex: A.rowIndex, colIndex: n.current ? n.current.columnCount - 1 : 0 }, [o]), ie = (A) => {
323
- J.current = P(A), $(J.current, Re.current);
324
- }, Ue = W((A, p) => {
321
+ const yr = ({ gridRef: t, gridMainRef: n, orientation: o = Ht.Row, headerCount: r, selectionPolicy: c = "multiple", newSelectionMode: s = "clear", alwaysScrollToActiveCoords: i = !0, onDragStart: l, onDragEnd: h, pointerDownInterceptor: O, pointerMoveInterceptor: z, onPointerUp: M, newSelection: R, modifySelection: $, appendSelection: Y, clearSelections: q }) => {
322
+ const _ = r ?? ((o === Ht.Row ? t.current?.rowCount : t.current?.columnCount) || 0), Ie = ie(null), Z = ie(null), k = ie(!1), U = ie(null), he = W((A) => o === Ht.Column ? { rowIndex: 0, colIndex: A.colIndex } : { rowIndex: A.rowIndex, colIndex: 0 }, [o]), P = W((A) => o === Ht.Column ? { rowIndex: n.current ? n.current.rowCount - 1 : 0, colIndex: A.colIndex } : { rowIndex: A.rowIndex, colIndex: n.current ? n.current.columnCount - 1 : 0 }, [o]), ce = (A) => {
323
+ Z.current = P(A), $(Z.current, Ie.current);
324
+ }, Ve = W((A, p) => {
325
325
  if (!t.current) return;
326
- const je = t.current.getViewFromClient(A, p)?.getCellCoordsFromClient(A, p);
327
- return je ? (o === Ht.Column ? je.rowIndex = n.current.getViewport().rowStart : je.colIndex = n.current.getViewport().colStart, je) : void 0;
328
- }, []), Oe = W((A, p = !1) => {
329
- let je = A;
330
- return p || (je = { ...A }, o === Ht.Row ? delete je.colIndex : delete je.rowIndex), n.current?.scrollCellCoordsIntoView(je);
331
- }, [o]), He = T(h, [h]), fe = T(l, [l]), be = Ve(() => ({ onPointerDown: (A) => {
326
+ const Ne = t.current.getViewFromClient(A, p)?.getCellCoordsFromClient(A, p);
327
+ return Ne ? (o === Ht.Column ? Ne.rowIndex = n.current.getViewport().rowStart : Ne.colIndex = n.current.getViewport().colStart, Ne) : void 0;
328
+ }, []), Pe = W((A, p = !1) => {
329
+ let Ne = A;
330
+ return p || (Ne = { ...A }, o === Ht.Row ? delete Ne.colIndex : delete Ne.rowIndex), n.current?.scrollCellCoordsIntoView(Ne);
331
+ }, [o]), We = T(h, [h]), fe = T(l, [l]), ye = Ae(() => ({ onPointerDown: (A) => {
332
332
  if (!t || !t.current || A.nativeEvent.defaultPrevented) return;
333
- const p = Ue(A.nativeEvent.clientX, A.nativeEvent.clientY);
333
+ const p = Ve(A.nativeEvent.clientX, A.nativeEvent.clientY);
334
334
  if (!p) return;
335
335
  A.nativeEvent.which, Xn.Right;
336
- const je = A.nativeEvent.shiftKey, Ye = A.nativeEvent.ctrlKey || A.nativeEvent.metaKey;
336
+ const Ne = A.nativeEvent.shiftKey, Xe = A.nativeEvent.ctrlKey || A.nativeEvent.metaKey;
337
337
  if (O?.(A, p) === !1) return;
338
338
  fe?.(), k.current = !0;
339
- const ne = n.current?.getViewFromClient(A.nativeEvent.clientX, A.nativeEvent.clientY), Ce = ((Q, L) => o === Ht.Column ? { ...Q, rowIndex: L.rowStart } : { ...Q, colIndex: L.colStart })(p, ne.getVisibleRangeCoords());
340
- if (je) ie(p);
339
+ const te = n.current?.getViewFromClient(A.nativeEvent.clientX, A.nativeEvent.clientY), be = ((J, L) => o === Ht.Column ? { ...J, rowIndex: L.rowStart } : { ...J, colIndex: L.colStart })(p, te.getVisibleRangeCoords());
340
+ if (Ne) ce(p);
341
341
  else {
342
- if (Ye) return ((Q, L = Q, X) => {
343
- Re.current = he(Q), J.current = P(L), Y(Re.current, J.current, X);
344
- })(p, p, Ce), void (i && Oe(Ce, !0));
345
- ((Q, L = Q, X) => {
346
- Re.current = he(Q), J.current = P(L), R(Re.current, J.current, X);
347
- })(p, p, Ce), ie(p), i && Oe(Ce, !0);
342
+ if (Xe) return ((J, L = J, X) => {
343
+ Ie.current = he(J), Z.current = P(L), Y(Ie.current, Z.current, X);
344
+ })(p, p, be), void (i && Pe(be, !0));
345
+ ((J, L = J, X) => {
346
+ Ie.current = he(J), Z.current = P(L), R(Ie.current, Z.current, X);
347
+ })(p, p, be), ce(p), i && Pe(be, !0);
348
348
  }
349
349
  }, onPointerMoveOrWait: Nt.throttle((A) => {
350
350
  if (!k.current || !t?.current) return;
351
- const p = Ue(A.clientX, A.clientY);
351
+ const p = Ve(A.clientX, A.clientY);
352
352
  if (p && z?.(A, p) !== !1) {
353
- if (V.isEqualCells(U.current, p)) return j();
354
- ie(p), Oe(p);
353
+ if (V.isEqualCells(U.current, p)) return q();
354
+ ce(p), Pe(p);
355
355
  }
356
356
  }, 60), onPointerUp: (A) => {
357
- k.current = !1, He?.(), M?.(A);
358
- }, processTouch: !0, consumeTouch: !0 }), [c, i, ee, s, j, O, M]);
359
- return { onPointerDown: T(un(be), []), getCellCoordsFromClient: Ue };
360
- }, We = (t, n, o) => {
357
+ k.current = !1, We?.(), M?.(A);
358
+ }, processTouch: !0, consumeTouch: !0 }), [c, i, _, s, q, O, M]);
359
+ return { onPointerDown: T(un(ye), []), getCellCoordsFromClient: Ve };
360
+ }, Fe = (t, n, o) => {
361
361
  if (!t) return n;
362
362
  let r = n;
363
363
  const c = o === w.Right || o === w.Down;
@@ -379,27 +379,27 @@ const yr = ({ gridRef: t, gridMainRef: n, orientation: o = Ht.Row, headerCount:
379
379
  let { rowIndex: i, colIndex: l } = t;
380
380
  switch (r) {
381
381
  case w.Down: {
382
- i = We(o, Math.min(i + 1, s), r);
382
+ i = Fe(o, Math.min(i + 1, s), r);
383
383
  let h = n({ rowIndex: i, colIndex: l });
384
- for (; !h && i < s; ) i = We(o, Math.min(++i, s), r), h = n({ rowIndex: i, colIndex: l });
384
+ for (; !h && i < s; ) i = Fe(o, Math.min(++i, s), r), h = n({ rowIndex: i, colIndex: l });
385
385
  return i;
386
386
  }
387
387
  case w.Up: {
388
- i = We(o, Math.max(i - 1, s), r);
388
+ i = Fe(o, Math.max(i - 1, s), r);
389
389
  let h = n({ rowIndex: i, colIndex: l });
390
- for (; !h && i > s; ) i = We(o, Math.max(--i, s), r), h = n({ rowIndex: i, colIndex: l });
390
+ for (; !h && i > s; ) i = Fe(o, Math.max(--i, s), r), h = n({ rowIndex: i, colIndex: l });
391
391
  return i;
392
392
  }
393
393
  case w.Right: {
394
- l = We(o, Math.min(l + 1, s), r);
394
+ l = Fe(o, Math.min(l + 1, s), r);
395
395
  let h = n({ rowIndex: i, colIndex: l });
396
- for (; !h && l < s; ) l = We(o, Math.min(++l, s), r), h = n({ rowIndex: i, colIndex: l });
396
+ for (; !h && l < s; ) l = Fe(o, Math.min(++l, s), r), h = n({ rowIndex: i, colIndex: l });
397
397
  return l;
398
398
  }
399
399
  case w.Left: {
400
- l = We(o, Math.max(l - 1, s), r);
400
+ l = Fe(o, Math.max(l - 1, s), r);
401
401
  let h = n({ rowIndex: i, colIndex: l });
402
- for (; !h && l > s; ) l = We(o, Math.max(--l, s), r), h = n({ rowIndex: i, colIndex: l });
402
+ for (; !h && l > s; ) l = Fe(o, Math.max(--l, s), r), h = n({ rowIndex: i, colIndex: l });
403
403
  return l;
404
404
  }
405
405
  default:
@@ -409,27 +409,27 @@ const yr = ({ gridRef: t, gridMainRef: n, orientation: o = Ht.Row, headerCount:
409
409
  let { rowIndex: i, colIndex: l } = t;
410
410
  switch (r) {
411
411
  case w.Down: {
412
- i = We(o, Math.min(i + 1, s), r);
412
+ i = Fe(o, Math.min(i + 1, s), r);
413
413
  let h = n?.({ rowIndex: i, colIndex: l });
414
- for (; h && i < s; ) i = We(o, Math.min(++i, s), r), h = n?.({ rowIndex: i, colIndex: l });
414
+ for (; h && i < s; ) i = Fe(o, Math.min(++i, s), r), h = n?.({ rowIndex: i, colIndex: l });
415
415
  return n?.({ rowIndex: i, colIndex: l }) ? i : i - 1;
416
416
  }
417
417
  case w.Up: {
418
- i = We(o, Math.max(i - 1, s), r);
418
+ i = Fe(o, Math.max(i - 1, s), r);
419
419
  let h = n?.({ rowIndex: i, colIndex: l });
420
- for (; h && i > s; ) i = We(o, Math.max(--i, s), r), h = n?.({ rowIndex: i, colIndex: l });
420
+ for (; h && i > s; ) i = Fe(o, Math.max(--i, s), r), h = n?.({ rowIndex: i, colIndex: l });
421
421
  return n?.({ rowIndex: i, colIndex: l }) ? i : i + 1;
422
422
  }
423
423
  case w.Right: {
424
- l = We(o, Math.min(l + 1, s), r);
424
+ l = Fe(o, Math.min(l + 1, s), r);
425
425
  let h = n?.({ rowIndex: i, colIndex: l });
426
- for (; h && l < s; ) l = We(o, Math.min(++l, s), r), h = n?.({ rowIndex: i, colIndex: l });
426
+ for (; h && l < s; ) l = Fe(o, Math.min(++l, s), r), h = n?.({ rowIndex: i, colIndex: l });
427
427
  return n?.({ rowIndex: i, colIndex: l }) ? l : l - 1;
428
428
  }
429
429
  case w.Left: {
430
- l = We(o, Math.max(l - 1, s), r);
430
+ l = Fe(o, Math.max(l - 1, s), r);
431
431
  let h = n?.({ rowIndex: i, colIndex: l });
432
- for (; h && l > s; ) l = We(o, Math.max(--l, s), r), h = n?.({ rowIndex: i, colIndex: l });
432
+ for (; h && l > s; ) l = Fe(o, Math.max(--l, s), r), h = n?.({ rowIndex: i, colIndex: l });
433
433
  return n?.({ rowIndex: i, colIndex: l }) ? l : l + 1;
434
434
  }
435
435
  default:
@@ -453,16 +453,16 @@ const yr = ({ gridRef: t, gridMainRef: n, orientation: o = Ht.Row, headerCount:
453
453
  let l = { ...t.cell }, h = t.rangeIndex;
454
454
  switch (n) {
455
455
  case w.Right:
456
- l.colIndex = We(c, l.colIndex + 1, n);
456
+ l.colIndex = Fe(c, l.colIndex + 1, n);
457
457
  break;
458
458
  case w.Left:
459
- l.colIndex = We(c, l.colIndex - 1, n);
459
+ l.colIndex = Fe(c, l.colIndex - 1, n);
460
460
  break;
461
461
  case w.Down:
462
- l.rowIndex = We(r, l.rowIndex + 1, n);
462
+ l.rowIndex = Fe(r, l.rowIndex + 1, n);
463
463
  break;
464
464
  case w.Up:
465
- l.rowIndex = We(r, l.rowIndex - 1, n);
465
+ l.rowIndex = Fe(r, l.rowIndex - 1, n);
466
466
  }
467
467
  const O = (R) => {
468
468
  if (R) {
@@ -483,16 +483,16 @@ const yr = ({ gridRef: t, gridMainRef: n, orientation: o = Ht.Row, headerCount:
483
483
  let R = l.rowIndex, $ = l.colIndex;
484
484
  switch (n) {
485
485
  case w.Right:
486
- $ > i.colEnd && (R = We(r, R + 1, n), $ = i.colStart, R > i.rowEnd && (R = i.rowStart));
486
+ $ > i.colEnd && (R = Fe(r, R + 1, n), $ = i.colStart, R > i.rowEnd && (R = i.rowStart));
487
487
  break;
488
488
  case w.Left:
489
- $ < i.colStart && (R = We(r, R - 1, n), $ = i.colEnd, R < i.rowStart && (R = i.rowEnd));
489
+ $ < i.colStart && (R = Fe(r, R - 1, n), $ = i.colEnd, R < i.rowStart && (R = i.rowEnd));
490
490
  break;
491
491
  case w.Down:
492
- R > i.rowEnd && ($ = We(c, $ + 1, n), R = i.rowStart, $ > i.colEnd && ($ = i.colStart));
492
+ R > i.rowEnd && ($ = Fe(c, $ + 1, n), R = i.rowStart, $ > i.colEnd && ($ = i.colStart));
493
493
  break;
494
494
  case w.Up:
495
- R < i.rowStart && ($ = We(c, $ - 1, n), R = i.rowEnd, $ < i.colStart && ($ = i.colEnd));
495
+ R < i.rowStart && ($ = Fe(c, $ - 1, n), R = i.rowEnd, $ < i.colStart && ($ = i.colEnd));
496
496
  }
497
497
  l = { rowIndex: R, colIndex: $ };
498
498
  }
@@ -501,7 +501,7 @@ const yr = ({ gridRef: t, gridMainRef: n, orientation: o = Ht.Row, headerCount:
501
501
  const R = V.intersectRanges(z, i);
502
502
  R && (z = R);
503
503
  }
504
- let M = { rowStart: We(r, z.rowStart, w.Down), colStart: We(c, z.colStart, w.Right), rowEnd: We(r, z.rowEnd, w.Up), colEnd: We(c, z.colEnd, w.Left) };
504
+ let M = { rowStart: Fe(r, z.rowStart, w.Down), colStart: Fe(c, z.colStart, w.Right), rowEnd: Fe(r, z.rowEnd, w.Up), colEnd: Fe(c, z.colEnd, w.Left) };
505
505
  if (M.rowStart !== l.rowIndex || M.colStart !== l.colIndex) {
506
506
  switch (n) {
507
507
  case w.Right:
@@ -551,28 +551,28 @@ const yr = ({ gridRef: t, gridMainRef: n, orientation: o = Ht.Row, headerCount:
551
551
  if (t < r || t > r + o.width) return !1;
552
552
  const c = o.y;
553
553
  return !(n < c || n > c + o.height);
554
- }, jn = (t, n = !0) => `M ${_.boundPixel(t.left)} ${_.boundPixel(t.top)} L ${_.boundPixel(t.right, !0)} ${_.boundPixel(t.top)} L ${_.boundPixel(t.right, !0)} ${_.boundPixel(t.bottom, !0)} L ${_.boundPixel(t.left)} ${_.boundPixel(t.bottom, !0)} L ${_.boundPixel(t.left)} ${_.boundPixel(t.top)} ${n ? "Z" : ""}`, ao = (t) => {
554
+ }, jn = (t, n = !0) => `M ${Q.boundPixel(t.left)} ${Q.boundPixel(t.top)} L ${Q.boundPixel(t.right, !0)} ${Q.boundPixel(t.top)} L ${Q.boundPixel(t.right, !0)} ${Q.boundPixel(t.bottom, !0)} L ${Q.boundPixel(t.left)} ${Q.boundPixel(t.bottom, !0)} L ${Q.boundPixel(t.left)} ${Q.boundPixel(t.top)} ${n ? "Z" : ""}`, ao = (t) => {
555
555
  const { linePoints: n, bounds: o, pathProps: r, style: c, ...s } = t;
556
- return Ee("svg", { width: `${_.boundPixel(o.width, !0)}`, height: `${_.boundPixel(o.height, !0)}`, viewBox: `0 0 ${_.boundPixel(o.width, !0)} ${_.boundPixel(o.height, !0)}`, style: { position: "absolute", left: `${_.boundPixel(o.x)}px`, top: `${_.boundPixel(o.y)}px`, width: `${_.boundPixel(o.width, !0)}px`, height: `${_.boundPixel(o.height, !0)}px`, pointerEvents: "none", transitionTimingFunction: "linear", transitionDelay: "0", transitionProperty: "left, top, width, height", willChange: "left, top, width, height, stroke-dashoffset", ...c }, ...s, children: Ee("path", { d: `M ${_.boundPixel(n[0])} ${_.boundPixel(n[1])} L ${_.boundPixel(n[2])} ${_.boundPixel(n[3])}`, fill: "none", vectorEffect: "non-scaling-stroke", stroke: "black", ...r }) });
556
+ return Ce("svg", { width: `${Q.boundPixel(o.width, !0)}`, height: `${Q.boundPixel(o.height, !0)}`, viewBox: `0 0 ${Q.boundPixel(o.width, !0)} ${Q.boundPixel(o.height, !0)}`, style: { position: "absolute", left: `${Q.boundPixel(o.x)}px`, top: `${Q.boundPixel(o.y)}px`, width: `${Q.boundPixel(o.width, !0)}px`, height: `${Q.boundPixel(o.height, !0)}px`, pointerEvents: "none", transitionTimingFunction: "linear", transitionDelay: "0", transitionProperty: "left, top, width, height", willChange: "left, top, width, height, stroke-dashoffset", ...c }, ...s, children: Ce("path", { d: `M ${Q.boundPixel(n[0])} ${Q.boundPixel(n[1])} L ${Q.boundPixel(n[2])} ${Q.boundPixel(n[3])}`, fill: "none", vectorEffect: "non-scaling-stroke", stroke: "black", ...r }) });
557
557
  }, _o = (t) => {
558
- const { x: n = 0, y: o = 0, width: r = 0, height: c = 0, fill: s, stroke: i, strokeWidth: l = 0, strokeDasharray: h, strokeDashoffset: O, clipPath: z, pathBounds: M, pathProps: R, style: $, ...Y } = t, j = o, ee = n, Re = r, J = c;
558
+ const { x: n = 0, y: o = 0, width: r = 0, height: c = 0, fill: s, stroke: i, strokeWidth: l = 0, strokeDasharray: h, strokeDashoffset: O, clipPath: z, pathBounds: M, pathProps: R, style: $, ...Y } = t, q = o, _ = n, Ie = r, Z = c;
559
559
  let k = null;
560
560
  if (s) {
561
- let U = jn({ top: 0, left: 0, bottom: J, right: Re });
562
- M && (U = U + " " + jn({ top: M.y - j, left: M.x - ee, bottom: M.height + M.y - j, right: M.width + M.x - ee })), k = [Ee("path", { d: U, fill: s, stroke: "none", fillRule: "evenodd" }, "fill")];
561
+ let U = jn({ top: 0, left: 0, bottom: Z, right: Ie });
562
+ M && (U = U + " " + jn({ top: M.y - q, left: M.x - _, bottom: M.height + M.y - q, right: M.width + M.x - _ })), k = [Ce("path", { d: U, fill: s, stroke: "none", fillRule: "evenodd" }, "fill")];
563
563
  }
564
- return _t("svg", { width: `${_.boundPixel(r, !0)}`, height: `${_.boundPixel(c, !0)}`, viewBox: `0 0 ${_.boundPixel(r, !0)} ${_.boundPixel(c, !0)}`, preserveAspectRatio: "none", style: { position: "absolute", left: `${_.boundPixel(n)}px`, top: `${_.boundPixel(o)}px`, pointerEvents: "none", transitionDuration: "0ms", transitionTimingFunction: "linear", transitionDelay: "0", transitionProperty: "left, top, width, height", willChange: "left, top, width, height, stroke-dashoffset", boxShadow: "rgb(60 64 67 / 5%) 0px 1px 4px 2px, rgb(255 255 255 / 15%) 0px 0px 2px 1px", overflow: "visible", ...$ }, ...Y, children: [k, Ee("path", { d: jn({ top: 0, left: 0, right: Re, bottom: J }), fill: "none", strokeDasharray: h, strokeDashoffset: O, stroke: i, vectorEffect: "non-scaling-stroke", strokeWidth: l, ...R })] });
564
+ return _t("svg", { width: `${Q.boundPixel(r, !0)}`, height: `${Q.boundPixel(c, !0)}`, viewBox: `0 0 ${Q.boundPixel(r, !0)} ${Q.boundPixel(c, !0)}`, preserveAspectRatio: "none", style: { position: "absolute", left: `${Q.boundPixel(n)}px`, top: `${Q.boundPixel(o)}px`, pointerEvents: "none", transitionDuration: "0ms", transitionTimingFunction: "linear", transitionDelay: "0", transitionProperty: "left, top, width, height", willChange: "left, top, width, height, stroke-dashoffset", boxShadow: "rgb(60 64 67 / 5%) 0px 1px 4px 2px, rgb(255 255 255 / 15%) 0px 0px 2px 1px", overflow: "visible", ...$ }, ...Y, children: [k, Ce("path", { d: jn({ top: 0, left: 0, right: Ie, bottom: Z }), fill: "none", strokeDasharray: h, strokeDashoffset: O, stroke: i, vectorEffect: "non-scaling-stroke", strokeWidth: l, ...R })] });
565
565
  }, er = (t) => {
566
566
  const { key: n, ...o } = t;
567
- return Ee(bo, { ...o }, n);
567
+ return Ce(bo, { ...o }, n);
568
568
  }, bo = Kt((t) => {
569
569
  const { stroke: n, fill: o, x: r = 0, y: c = 0, width: s = 0, height: i = 0, style: l, isAnimatedStroke: h, animatedStrokeProps: O, range: z, cell: M, ...R } = t, $ = h || !!O, Y = { name: "walking-offset", dashGap: 2, speed: 50, dashLength: 8, ...O };
570
- let j = Y.dashGap + Y.dashLength;
571
- const ee = Y.speed * j, Re = Oo().replaceAll(":", ""), J = `${Y.name}-${Re}`;
570
+ let q = Y.dashGap + Y.dashLength;
571
+ const _ = Y.speed * q, Ie = Oo().replaceAll(":", ""), Z = `${Y.name}-${Ie}`;
572
572
  let k;
573
- return gt(() => {
573
+ return wt(() => {
574
574
  if (!$) return;
575
- const U = `@keyframes ${J} {
575
+ const U = `@keyframes ${Z} {
576
576
  to {
577
577
  stroke-dashoffset: 0px;
578
578
  }
@@ -580,7 +580,7 @@ const yr = ({ gridRef: t, gridMainRef: n, orientation: o = Ht.Row, headerCount:
580
580
  return he.appendChild(document.createTextNode(U)), document.head.appendChild(he), he.sheet.insertRule(U, 0), () => {
581
581
  document.head.removeChild(he);
582
582
  };
583
- }, [$]), $ && (k = { strokeDasharray: `${Y.dashLength}px ${Y.dashGap}px`, strokeDashoffset: `${j}px`, animation: `${J} ${ee}ms linear infinite`, willChange: "stroke-dashoffset" }), Ee(_o, { x: r, y: c, width: s, height: i, stroke: n, fill: o, shapeRendering: "crispEdges", style: { ...k, ...l }, ...R });
583
+ }, [$]), $ && (k = { strokeDasharray: `${Y.dashLength}px ${Y.dashGap}px`, strokeDashoffset: `${q}px`, animation: `${Z} ${_}ms linear infinite`, willChange: "stroke-dashoffset" }), Ce(_o, { x: r, y: c, width: s, height: i, stroke: n, fill: o, shapeRendering: "crispEdges", style: { ...k, ...l }, ...R });
584
584
  });
585
585
  function Co(t) {
586
586
  var n, o, r = "";
@@ -599,21 +599,21 @@ bo.displayName = "Selection";
599
599
  const Io = Kt(tn((t, n) => {
600
600
  const { x: o = 0, y: r = 0, borderWidth: c = 1, size: s = 6, borderStroke: i, corner: l, style: h, className: O, background: z, ...M } = t;
601
601
  if (o === 0 || r === 0) return null;
602
- let R = !0, $ = !0, Y = !0, j = !0;
602
+ let R = !0, $ = !0, Y = !0, q = !0;
603
603
  switch (l) {
604
604
  case "tl":
605
605
  R = !1, $ = !1;
606
606
  break;
607
607
  case "bl":
608
- R = !1, j = !1;
608
+ R = !1, q = !1;
609
609
  break;
610
610
  case "br":
611
- Y = !1, j = !1;
611
+ Y = !1, q = !1;
612
612
  break;
613
613
  case "tr":
614
614
  $ = !1, Y = !1;
615
615
  }
616
- return Ee("div", { className: rn("fill-handle", O), style: { position: "absolute", left: o - (s + (R ? c : 0)) / 2, top: r - (s + ($ ? c : 0)) / 2, width: s, height: s, borderLeft: R ? `${c}px ${i}` : void 0, borderTop: $ ? `${c}px ${i}` : void 0, borderRight: Y ? `${c}px ${i}` : void 0, borderBottom: j ? `${c}px ${i}` : void 0, background: z, cursor: "crosshair", pointerEvents: "all", transitionDuration: "0ms", transitionTimingFunction: "linear", transitionDelay: "0", transitionProperty: "left, top", willChange: "left, top", ...h }, tabIndex: -1, ...M });
616
+ return Ce("div", { className: rn("fill-handle", O), style: { position: "absolute", left: o - (s + (R ? c : 0)) / 2, top: r - (s + ($ ? c : 0)) / 2, width: s, height: s, borderLeft: R ? `${c}px ${i}` : void 0, borderTop: $ ? `${c}px ${i}` : void 0, borderRight: Y ? `${c}px ${i}` : void 0, borderBottom: q ? `${c}px ${i}` : void 0, background: z, cursor: "crosshair", pointerEvents: "all", transitionDuration: "0ms", transitionTimingFunction: "linear", transitionDelay: "0", transitionProperty: "left, top", willChange: "left, top", ...h }, tabIndex: -1, ...M });
617
617
  }));
618
618
  function qn(t, n) {
619
619
  if (typeof t == "function") return t(n);
@@ -636,31 +636,31 @@ var tr = parseInt(Lo.split(".")[0], 10) >= 19 ? function(t) {
636
636
  for (const o of t) qn(o, n);
637
637
  };
638
638
  };
639
- const nr = _.detectIt().supportsTouchEvents, Zn = Kt(tn((t, n) => {
640
- const { range: o, view: r, anchor: c, borderStroke: s = "rgb(33, 115, 70)", background: i = "white", borderWidth: l = 1.5, size: h = 22, style: O, className: z, selectionTouchPointerHandler: M, onTouchSelectStart: R, onTouchSelectEnd: $, currentTouchAnchor: Y, scrollableElement: j, scrollableRoot: ee, ...Re } = t;
639
+ const nr = Q.detectIt().supportsTouchEvents, Zn = Kt(tn((t, n) => {
640
+ const { range: o, view: r, anchor: c, borderStroke: s = "rgb(33, 115, 70)", background: i = "white", borderWidth: l = 1.5, size: h = 22, style: O, className: z, selectionTouchPointerHandler: M, onTouchSelectStart: R, onTouchSelectEnd: $, currentTouchAnchor: Y, scrollableElement: q, scrollableRoot: _, ...Ie } = t;
641
641
  if (!nr) return null;
642
- const J = T(R, [R]), k = T($, [$]), { bounds: U, coordsPivot: he, key: P } = Ve(() => {
642
+ const Z = T(R, [R]), k = T($, [$]), { bounds: U, coordsPivot: he, key: P } = Ae(() => {
643
643
  if (!o || !r) return null;
644
- let Ce = null, Q = null;
644
+ let be = null, J = null;
645
645
  switch (c) {
646
646
  case "tl":
647
- Ce = { colIndex: o.colEnd, rowIndex: o.rowEnd }, Q = { colIndex: o.colStart, rowIndex: o.rowStart };
647
+ be = { colIndex: o.colEnd, rowIndex: o.rowEnd }, J = { colIndex: o.colStart, rowIndex: o.rowStart };
648
648
  break;
649
649
  case "br":
650
- Ce = { colIndex: o.colStart, rowIndex: o.rowStart }, Q = { colIndex: o.colEnd, rowIndex: o.rowEnd };
650
+ be = { colIndex: o.colStart, rowIndex: o.rowStart }, J = { colIndex: o.colEnd, rowIndex: o.rowEnd };
651
651
  break;
652
652
  case "t":
653
653
  case "l":
654
- Ce = { colIndex: o.colEnd, rowIndex: o.rowEnd };
654
+ be = { colIndex: o.colEnd, rowIndex: o.rowEnd };
655
655
  break;
656
656
  case "b":
657
- Ce = { colIndex: o.colStart, rowIndex: o.rowStart };
657
+ be = { colIndex: o.colStart, rowIndex: o.rowStart };
658
658
  break;
659
659
  case "r":
660
- Ce = { colIndex: o.colStart, rowIndex: o.rowEnd };
660
+ be = { colIndex: o.colStart, rowIndex: o.rowEnd };
661
661
  }
662
- let L = r.getRangeCoordsBounds(Q ? { rowStart: Q.rowIndex, colStart: Q.colIndex, rowEnd: Q.rowIndex, colEnd: Q.colIndex } : o);
663
- const X = r.getBounds(), kt = r.getViewportSize(), bt = X.x, wt = X.y, ut = kt.width, ge = kt.height;
662
+ let L = r.getRangeCoordsBounds(J ? { rowStart: J.rowIndex, colStart: J.colIndex, rowEnd: J.rowIndex, colEnd: J.colIndex } : o);
663
+ const X = r.getBounds(), Pt = r.getViewportSize(), Et = X.x, xt = X.y, ht = Pt.width, ge = Pt.height;
664
664
  switch (c) {
665
665
  case "tl":
666
666
  break;
@@ -668,36 +668,36 @@ const nr = _.detectIt().supportsTouchEvents, Zn = Kt(tn((t, n) => {
668
668
  L.x = L.x + L.width, L.y = L.y + L.height;
669
669
  break;
670
670
  case "t":
671
- L.x = ut / 2 - bt;
671
+ L.x = ht / 2 - Et;
672
672
  break;
673
673
  case "b":
674
- L.x = ut / 2 - bt, L.y = L.y + L.height;
674
+ L.x = ht / 2 - Et, L.y = L.y + L.height;
675
675
  break;
676
676
  case "l":
677
- L.y = ge / 2 - wt;
677
+ L.y = ge / 2 - xt;
678
678
  break;
679
679
  case "r":
680
- L.x = L.x + L.width, L.y = ge / 2 - wt;
680
+ L.x = L.x + L.width, L.y = ge / 2 - xt;
681
681
  }
682
682
  const Wt = r.toClipBounds(L, 0);
683
- return !Wt || Wt.width <= 0 || Wt.height <= 0 || L.x < 0 || L.y < 0 || L.x > ut || L.y > ge ? { bounds: null, coordsAnchor: null, coordsPivot: null, key: null } : { bounds: L, coordsAnchor: null, coordsPivot: Ce, key: "touchSelect-" + r.getAnchor() + "-" + c };
684
- }, [o, r, c]), ie = le(null), Ue = Ve(() => {
685
- const Ce = (Q) => c === "t" || c === "b" ? { ...Q, colIndex: void 0 } : c === "l" || c === "r" ? { ...Q, rowIndex: void 0 } : Q;
686
- return { processTouch: !0, consumeTouch: !0, onPointerDown: (Q, L) => {
687
- const X = Ce(r.getCellCoordsFromClient(Q.clientX, Q.clientY));
688
- return ie.current = { coordsPivot: he }, J?.(c), M.onSelectionPointerDown(Q, L, r, X, he, !1, !0);
689
- }, onPointerMoveOrWait: (Q, L, X) => {
690
- const kt = Ce(r.getCellCoordsFromClient(Q.clientX, Q.clientY));
691
- return M.onSelectionPointerMoveOrWait(Q, L, X, r, kt, ie.current?.coordsPivot, !0, !0);
692
- }, onPointerUp: (Q, L, X) => (ie.current = null, k?.(c), M.onPointerUp(Q, L, X)) };
693
- }, [M, o, r, c]), Oe = un(Ue), [He, { y: fe, x: be }] = Xo(), A = le(null), { getPortalContainer: p, isFullscreen: je } = go(), [Ye, ne] = dt(null);
694
- return gt(() => {
695
- const Ce = A.current?.getBoundingClientRect();
696
- if (!Ce || !U) return void ne(null);
697
- let Q = 0, L = 0, X = j;
698
- for (; X; ) Q += X.scrollLeft, L += X.scrollTop, X = ee && X === ee.parentElement ? null : X.parentElement;
699
- ne(po(Ee("div", { className: rn("touch-select-handle", z), ref: n, style: { position: "absolute", left: Q + (Ce?.x ?? 0) - (h + l) / 2, top: L + (Ce?.y ?? 0) - (h + l) / 2, width: h, height: h, borderWidth: `${l}px`, border: s, borderRadius: "50%", background: i, boxShadow: `0 0 0 1.5px ${i}`, cursor: "grab", pointerEvents: "all", opacity: Y ? 0 : 1, transitionDuration: "160ms", transitionProperty: "opacity", ...O }, tabIndex: -1, onPointerDown: Oe, ...Re }), ee ?? p(), P));
700
- }, [fe, be, U?.x, U?.y, U?.width, U?.height, z, Y, i, h, l, s, j, je]), U ? _t(Qn, { children: [Ee("div", { ref: tr([He, A]), style: { position: "absolute", left: U.x, top: U.y, opacity: 0 } }), Ye] }) : null;
683
+ return !Wt || Wt.width <= 0 || Wt.height <= 0 || L.x < 0 || L.y < 0 || L.x > ht || L.y > ge ? { bounds: null, coordsAnchor: null, coordsPivot: null, key: null } : { bounds: L, coordsAnchor: null, coordsPivot: be, key: "touchSelect-" + r.getAnchor() + "-" + c };
684
+ }, [o, r, c]), ce = ie(null), Ve = Ae(() => {
685
+ const be = (J) => c === "t" || c === "b" ? { ...J, colIndex: void 0 } : c === "l" || c === "r" ? { ...J, rowIndex: void 0 } : J;
686
+ return { processTouch: !0, consumeTouch: !0, onPointerDown: (J, L) => {
687
+ const X = be(r.getCellCoordsFromClient(J.clientX, J.clientY));
688
+ return ce.current = { coordsPivot: he }, Z?.(c), M.onSelectionPointerDown(J, L, r, X, he, !1, !0);
689
+ }, onPointerMoveOrWait: (J, L, X) => {
690
+ const Pt = be(r.getCellCoordsFromClient(J.clientX, J.clientY));
691
+ return M.onSelectionPointerMoveOrWait(J, L, X, r, Pt, ce.current?.coordsPivot, !0, !0);
692
+ }, onPointerUp: (J, L, X) => (ce.current = null, k?.(c), M.onPointerUp(J, L, X)) };
693
+ }, [M, o, r, c]), Pe = un(Ve), [We, { y: fe, x: ye }] = Xo(), A = ie(null), { getPortalContainer: p, isFullscreen: Ne } = go(), [Xe, te] = ut(null);
694
+ return wt(() => {
695
+ const be = A.current?.getBoundingClientRect();
696
+ if (!be || !U) return void te(null);
697
+ let J = 0, L = 0, X = q;
698
+ for (; X; ) J += X.scrollLeft, L += X.scrollTop, X = _ && X === _.parentElement ? null : X.parentElement;
699
+ te(po(Ce("div", { className: rn("touch-select-handle", z), ref: n, style: { position: "absolute", left: J + (be?.x ?? 0) - (h + l) / 2, top: L + (be?.y ?? 0) - (h + l) / 2, width: h, height: h, borderWidth: `${l}px`, border: s, borderRadius: "50%", background: i, boxShadow: `0 0 0 1.5px ${i}`, cursor: "grab", pointerEvents: "all", opacity: Y ? 0 : 1, transitionDuration: "160ms", transitionProperty: "opacity", ...O }, tabIndex: -1, onPointerDown: Pe, ...Ie }), _ ?? p(), P));
700
+ }, [fe, ye, U?.x, U?.y, U?.width, U?.height, z, Y, i, h, l, s, q, Ne]), U ? _t(Qn, { children: [Ce("div", { ref: tr([We, A]), style: { position: "absolute", left: U.x, top: U.y, opacity: 0 } }), Xe] }) : null;
701
701
  }));
702
702
  Zn.displayName = "TouchSelectHandle";
703
703
  const Vt = -10, or = Object.freeze({ rowStart: 0, colStart: 0, rowEnd: 0, colEnd: 0 }), Eo = Object.freeze({ colIndex: 0, rowIndex: 0 }), Jn = Object.freeze([]), $t = (t) => {
@@ -706,23 +706,23 @@ const Vt = -10, or = Object.freeze({ rowStart: 0, colStart: 0, rowEnd: 0, colEnd
706
706
  return n.rangeIndex = t?.rangeIndex ?? n.ranges.length - 1, n.cell = t?.cell, !n.cell && n.ranges.length > 0 && (n.cell = { rowIndex: n.ranges[n.rangeIndex].rowStart, colIndex: n.ranges[n.rangeIndex].colStart }), n.cell || (n.cell = Eo), V.isEqualSelectionCoords(n, t) ? t : n;
707
707
  }, Dn = (t, n, o) => {
708
708
  const r = t.getVisibleRangeCoords(), c = t.getScrollOrientation();
709
- !c.horizontal && (n.colIndex > r.colEnd || n.colIndex < r.colStart) && (n = { ...n, colIndex: n.colIndex > r.colEnd ? r.colEnd + 1 : r.colEnd - 1 }, t = o.current.getViewFromLocation(et.Center)), !c.vertical && (n.rowIndex > r.rowEnd || n.rowIndex < r.rowStart) && (n = { ...n, rowIndex: n.rowIndex > r.rowEnd ? r.rowEnd + 1 : r.rowEnd - 1 }, t = o.current.getViewFromLocation(et.Center)), t.scrollCellCoordsIntoView(n);
710
- }, rr = () => !1, br = ({ gridRef: t, commands: n, layout: o, selection: r, onSelectionChange: c, onSelectionDragStart: s, onSelectionDragEnd: i, selectionPolicy: l = "multiple", newSelectionMode: h = "clear", allowDeselectSelection: O = !0, onFillPreview: z, onFillCancel: M, onFillDone: R, onFill: $, disableFillDrag: Y = !$, fillHandleBorderColor: j = "white", hiddenRowsAt: ee, hiddenColumnsAt: Re, isContentfulCell: J, contentfulCellFinder: k = Jo, getDataCoords: U, alwaysScrollToActiveCoords: he = !1, selectionBounds: P, pointerDownInterceptor: ie, pointerMoveInterceptor: Ue, mergedRanges: Oe, canSelectionSpanMergedCells: He = rr, onMoveDragStart: fe, onMoveDragUpdate: be, onMoveDragEnd: A, onMoveDragDone: p, selectionRenderer: je = er, disableMoveDrag: Ye = !A, getCellCoordsAsRangeCoords: ne = V.cellToRange, moveDragHitSize: Ce = 6, moveDragOutlineSize: Q = 4, selectionBackgroundColor: L = "rgba(16, 124, 65, 0.1)", selectionBorderColor: X = "rgb(33, 115, 70)", selectionRemoveBorderColor: kt = "rgb(255, 0, 0)", selectionRemoveBackgroundColor: bt = "rgba(250, 10, 10, 0.1)", disableTouchSelection: wt = !1, touchSelectHandleProps: ut }) => {
711
- const ge = W(() => ({ top: P?.top ?? 0, left: P?.left ?? 0, bottom: t.current?.rowCount - 1 || 0, right: t.current?.columnCount - 1 || 0 }), []), Wt = T($, [$]), D = T(z, [z]), b = T(M, [M]), Pe = T(R, [R]), oe = T(J, [J]), xe = T(je, [je]), Ne = T((e, a = !1) => On(e, a, o.getRowOffset, a ? ge().bottom : ge().top), [o?.getRowOffset]), rt = T(ee ?? Ne, [ee]), Rt = T((e, a = !1) => On(e, a, o.getColOffset, a ? ge().right : ge().left), [o?.getColOffset]), lt = T(Re ?? Rt, [Re]), [jt, xt] = dt(() => $t(r)), v = Ve(() => $t(jt), [jt]), re = le(v), Ke = le(!0);
709
+ !c.horizontal && (n.colIndex > r.colEnd || n.colIndex < r.colStart) && (n = { ...n, colIndex: n.colIndex > r.colEnd ? r.colEnd + 1 : r.colEnd - 1 }, t = o.current.getViewFromLocation(_e.Center)), !c.vertical && (n.rowIndex > r.rowEnd || n.rowIndex < r.rowStart) && (n = { ...n, rowIndex: n.rowIndex > r.rowEnd ? r.rowEnd + 1 : r.rowEnd - 1 }, t = o.current.getViewFromLocation(_e.Center)), t.scrollCellCoordsIntoView(n);
710
+ }, rr = () => !1, br = ({ gridRef: t, commands: n, layout: o, selection: r, onSelectionChange: c, onSelectionDragStart: s, onSelectionDragEnd: i, selectionPolicy: l = "multiple", newSelectionMode: h = "clear", allowDeselectSelection: O = !0, onFillPreview: z, onFillCancel: M, onFillDone: R, onFill: $, disableFillDrag: Y = !$, fillHandleBorderColor: q = "white", hiddenRowsAt: _, hiddenColumnsAt: Ie, isContentfulCell: Z, contentfulCellFinder: k = Jo, getDataCoords: U, alwaysScrollToActiveCoords: he = !1, selectionBounds: P, pointerDownInterceptor: ce, pointerMoveInterceptor: Ve, mergedRanges: Pe, canSelectionSpanMergedCells: We = rr, onMoveDragStart: fe, onMoveDragUpdate: ye, onMoveDragEnd: A, onMoveDragDone: p, selectionRenderer: Ne = er, disableMoveDrag: Xe = !A, getCellCoordsAsRangeCoords: te = V.cellToRange, moveDragHitSize: be = 6, moveDragOutlineSize: J = 4, selectionBackgroundColor: L = "rgba(16, 124, 65, 0.1)", selectionBorderColor: X = "rgb(33, 115, 70)", selectionRemoveBorderColor: Pt = "rgb(255, 0, 0)", selectionRemoveBackgroundColor: Et = "rgba(250, 10, 10, 0.1)", disableTouchSelection: xt = !1, touchSelectHandleProps: ht }) => {
711
+ const ge = W(() => ({ top: P?.top ?? 0, left: P?.left ?? 0, bottom: t.current?.rowCount - 1 || 0, right: t.current?.columnCount - 1 || 0 }), []), Wt = T($, [$]), D = T(z, [z]), b = T(M, [M]), Me = T(R, [R]), oe = T(Z, [Z]), pe = T(Ne, [Ne]), Ue = T((e, a = !1) => On(e, a, o.getRowOffset, a ? ge().bottom : ge().top), [o?.getRowOffset]), lt = T(_ ?? Ue, [_]), Mt = T((e, a = !1) => On(e, a, o.getColOffset, a ? ge().right : ge().left), [o?.getColOffset]), it = T(Ie ?? Mt, [Ie]), [jt, pt] = ut(() => $t(r)), v = Ae(() => $t(jt), [jt]), re = ie(v), He = ie(!0);
712
712
  en(Nt.throttle(() => {
713
- xt((e) => {
714
- Ke.current = !0;
713
+ pt((e) => {
714
+ He.current = !0;
715
715
  const a = $t(r);
716
716
  return V.isEqualSelectionCoords(a, e) ? e : a;
717
717
  });
718
718
  }, 0), [r]), en(() => {
719
719
  re.current = v;
720
- }, [v]), gt(() => {
721
- Ke.current || !c || V.isEqualSelectionCoords(r, v) || c(v);
720
+ }, [v]), wt(() => {
721
+ He.current || !c || V.isEqualSelectionCoords(r, v) || c(v);
722
722
  }, [v]);
723
- const ht = W((e) => {
724
- xt((a) => {
725
- Ke.current = !1, a = $t(a);
723
+ const ft = W((e) => {
724
+ pt((a) => {
725
+ He.current = !1, a = $t(a);
726
726
  let u = typeof e == "function" ? e(a.ranges) : e ?? Jn;
727
727
  if (V.isEqualRangesArrays(u, a.ranges)) return a;
728
728
  let d = Math.max(u.length ? 0 : -1, Math.min(a.rangeIndex, u.length - 1)), g = a.cell;
@@ -731,9 +731,9 @@ const Vt = -10, or = Object.freeze({ rowStart: 0, colStart: 0, rowEnd: 0, colEnd
731
731
  return V.isEqualSelectionCoords(E, a) ? a : E;
732
732
  });
733
733
  }, []), Qe = T((e) => {
734
- xt((a) => {
735
- Ke.current = !1, a = $t(a);
736
- const u = e ?? Eo, d = ne(u);
734
+ pt((a) => {
735
+ He.current = !1, a = $t(a);
736
+ const u = e ?? Eo, d = te(u);
737
737
  if (!V.isSingleCell(d) && a.ranges.length === 0) return { ranges: [d], rangeIndex: 0, cell: u };
738
738
  if (V.isEqualCells(u, a.cell)) return a;
739
739
  let g = a.ranges, E = a.rangeIndex;
@@ -741,119 +741,119 @@ const Vt = -10, or = Object.freeze({ rowStart: 0, colStart: 0, rowEnd: 0, colEnd
741
741
  const x = { ranges: g, rangeIndex: E, cell: u };
742
742
  return V.isEqualSelectionCoords(x, a) ? a : x;
743
743
  });
744
- }, [ne]), [ln, Zt] = dt(null), [Pt, hn] = dt(null), Gt = le(null), [ze, Ut] = dt(null), mt = le(null), Bt = le(null), [vn, cn] = dt(null), Xe = le(null), qe = le(null), nn = le(Oe);
745
- gt(() => {
746
- nn.current = Oe;
747
- }, [Oe]);
748
- const vt = T((e, a = { inline: "nearest", block: "nearest" }) => {
744
+ }, [te]), [ln, Zt] = ut(null), [Dt, hn] = ut(null), Gt = ie(null), [De, Ut] = ut(null), St = ie(null), Bt = ie(null), [vn, cn] = ut(null), Ge = ie(null), Ke = ie(null), nn = ie(Pe);
745
+ wt(() => {
746
+ nn.current = Pe;
747
+ }, [Pe]);
748
+ const yt = T((e, a = { inline: "nearest", block: "nearest" }) => {
749
749
  let { rowIndex: u, colIndex: d } = e;
750
750
  u === void 0 && v?.cell && (u = v.cell.rowIndex), d === void 0 && v?.cell && (d = v.cell.colIndex), u !== void 0 && d !== void 0 && t.current?.scrollCellCoordsIntoView({ rowIndex: u, colIndex: d }, a);
751
751
  }, [v]), qt = W((e) => {
752
752
  const a = ge();
753
753
  return e.rowIndex < a.top || e.colIndex < a.left || e.colIndex > a.right || e.rowIndex > a.bottom;
754
- }, []), De = T((e, a) => {
754
+ }, []), ke = T((e, a) => {
755
755
  if (!t?.current) return null;
756
756
  const u = { rowStart: Math.min(e.rowIndex, a.rowIndex), colStart: Math.min(e.colIndex, a.colIndex), rowEnd: Math.max(e.rowIndex, a.rowIndex), colEnd: Math.max(e.colIndex, a.colIndex) };
757
- if (He?.(u)) return u;
758
- const g = ne(e), E = ne(a), x = { rowStart: Math.min(g.rowStart, E.rowStart), colStart: Math.min(g.colStart, E.colStart), rowEnd: Math.max(g.rowEnd, E.rowEnd), colEnd: Math.max(g.colEnd, E.colEnd) };
759
- let Z;
760
- return typeof nn.current == "function" ? Z = nn.current(x) : Oe && (Z = Oe), Z ? V.extendRangeToUnionRanges(x, Z) : x;
761
- }, [He, ne]), Ge = T((e, a, u) => {
757
+ if (We?.(u)) return u;
758
+ const g = te(e), E = te(a), x = { rowStart: Math.min(g.rowStart, E.rowStart), colStart: Math.min(g.colStart, E.colStart), rowEnd: Math.max(g.rowEnd, E.rowEnd), colEnd: Math.max(g.colEnd, E.colEnd) };
759
+ let G;
760
+ return typeof nn.current == "function" ? G = nn.current(x) : Pe && (G = Pe), G ? V.extendRangeToUnionRanges(x, G) : x;
761
+ }, [We, te]), Ze = T((e, a, u) => {
762
762
  const d = e.ranges.length > 0 ? e.ranges[e.rangeIndex] : { rowStart: e.cell.rowIndex, colStart: e.cell.colIndex, rowEnd: e.cell.rowIndex, colEnd: e.cell.colIndex }, g = { rowStart: Math.min(a.rowIndex ?? d.rowStart, u.rowIndex ?? d.rowStart), colStart: Math.min(a.colIndex ?? d.colStart, u.colIndex ?? d.colStart), rowEnd: Math.max(a.rowIndex ?? d.rowEnd, u.rowIndex ?? d.rowEnd), colEnd: Math.max(a.colIndex ?? d.colEnd, u.colIndex ?? d.colEnd) }, E = { rowIndex: g.rowStart, colIndex: g.colStart }, x = { rowIndex: g.rowEnd, colIndex: g.colEnd };
763
763
  if (!(qt(E) || qt(x)))
764
- return De(E, x);
765
- }, [De]), ft = T((e, a, u) => {
764
+ return ke(E, x);
765
+ }, [ke]), gt = T((e, a, u) => {
766
766
  if (l === "single" || !re.current) return;
767
- const d = Ge(re.current, e, a ?? re.current.cell);
767
+ const d = Ze(re.current, e, a ?? re.current.cell);
768
768
  if (!d) return;
769
769
  const g = re.current.rangeIndex;
770
- ht((E) => E.length ? E.map((x, Z) => g === Z ? d : x) : [d]), u && d && Qe({ colIndex: d.colStart, rowIndex: d.rowStart });
771
- }, []), Ct = W((e, a, u) => {
770
+ ft((E) => E.length ? E.map((x, G) => g === G ? d : x) : [d]), u && d && Qe({ colIndex: d.colStart, rowIndex: d.rowStart });
771
+ }, []), Rt = W((e, a, u) => {
772
772
  if (!re.current) return;
773
773
  e = { ...re.current?.cell, ...e }, a = a ?? e;
774
- const d = Ge(re.current, e, a);
774
+ const d = Ze(re.current, e, a);
775
775
  if (!d) return;
776
776
  const g = { rowIndex: d.rowStart, colIndex: d.colStart }, E = { ...g, ...u };
777
- h === "clear" ? (Xe.current = E, Jt()) : h === "modify" ? ft(g) : Me(g), Qe(E);
778
- }, []), Me = W((e, a = e, u) => {
779
- l !== "multiple" || !e || qt(e) || qt(a) || xt((d) => {
780
- Ke.current = !1, d = $t(d);
781
- const g = De(e, a);
777
+ h === "clear" ? (Ge.current = E, Jt()) : h === "modify" ? gt(g) : Ee(g), Qe(E);
778
+ }, []), Ee = W((e, a = e, u) => {
779
+ l !== "multiple" || !e || qt(e) || qt(a) || pt((d) => {
780
+ He.current = !1, d = $t(d);
781
+ const g = ke(e, a);
782
782
  if (!g) return d;
783
- let E = d.ranges.length > 0 ? [...d.ranges] : [De(d.cell, d.cell)];
783
+ let E = d.ranges.length > 0 ? [...d.ranges] : [ke(d.cell, d.cell)];
784
784
  E.push(g);
785
785
  const x = { ranges: E, cell: { rowIndex: g.rowStart, colIndex: g.colStart, ...u }, rangeIndex: E.length - 1 };
786
786
  return V.isEqualSelectionCoords(x, d) ? d : x;
787
787
  });
788
788
  }, []), Jt = () => {
789
- ht(Jn);
790
- }, Ot = _.detectIt().primaryInput === "touch", nt = le(null), Mt = le(null), Dt = le(null), sn = Ve(() => ({ onPointerDown: (e) => {
789
+ ft(Jn);
790
+ }, zt = Q.detectIt().primaryInput === "touch", ot = ie(null), kt = ie(null), Tt = ie(null), sn = Ae(() => ({ onPointerDown: (e) => {
791
791
  if (!t || !t.current) return !1;
792
792
  const a = e.nativeEvent, u = t.current.getViewFromClient(a.clientX, a.clientY);
793
- if (a.pointerType === "touch" || a.type === "touchstart") return Mt.current = { topLeft: u.getScrollTopLeft(), point: { x: a.clientX, y: a.clientY } }, !0;
793
+ if (a.pointerType === "touch" || a.type === "touchstart") return kt.current = { topLeft: u.getScrollTopLeft(), point: { x: a.clientX, y: a.clientY } }, !0;
794
794
  const d = u.getCellCoordsFromClient(e.nativeEvent.clientX, e.nativeEvent.clientY);
795
795
  if (!d) return !1;
796
- nt.current = { anchor: u.getAnchor(), coords: d }, qe.current = null;
796
+ ot.current = { anchor: u.getAnchor(), coords: d }, Ke.current = null;
797
797
  const g = e.nativeEvent.which === Xn.Right;
798
798
  if (g && V.indexOfCoords(d, v.ranges) !== -1)
799
799
  return !1;
800
- const E = e.nativeEvent.shiftKey, x = e.nativeEvent.ctrlKey || e.nativeEvent.metaKey, Z = x, F = O, H = v.ranges.length > 0, te = x && F;
801
- if (ie?.(e, d, v) === !1) return !1;
800
+ const E = e.nativeEvent.shiftKey, x = e.nativeEvent.ctrlKey || e.nativeEvent.metaKey, G = x, F = O, N = v.ranges.length > 0, ee = x && F;
801
+ if (ce?.(e, d, v) === !1) return !1;
802
802
  s?.(re.current, e.nativeEvent);
803
- const ye = !g && l !== "single";
804
- if (E) return ft(d), ye;
805
- const K = V.isEqualCells(d, v.cell);
806
- if (Z) {
807
- if (K && (!te || !H)) return ye;
803
+ const Se = !g && l !== "single";
804
+ if (E) return gt(d), Se;
805
+ const j = V.isEqualCells(d, v.cell);
806
+ if (G) {
807
+ if (j && (!ee || !N)) return Se;
808
808
  if (x && V.indexOfCoords(d, v.ranges) !== -1 && F) {
809
- mt.current = d;
810
- const N = De(d, d);
811
- return Bt.current = N, Ut(N), ye;
809
+ St.current = d;
810
+ const K = ke(d, d);
811
+ return Bt.current = K, Ut(K), Se;
812
812
  }
813
- return Me(d), ye;
813
+ return Ee(d), Se;
814
814
  }
815
- he && vt(d), K && v.ranges.length === 0 || Ct(d);
815
+ he && yt(d), j && v.ranges.length === 0 || Rt(d);
816
816
  }, onPointerMoveOrWait: Nt.throttle((e, a) => {
817
- if (!t?.current || e.pointerType === "touch" || e.type === "touchmove" || !nt.current) return;
818
- const u = nt.current.anchor;
817
+ if (!t?.current || e.pointerType === "touch" || e.type === "touchmove" || !ot.current) return;
818
+ const u = ot.current.anchor;
819
819
  let d = t.current.getViewFromLocation(u), g = d.getCellCoordsFromClient(e.clientX, e.clientY);
820
- if (!V.isEqualCells(g, nt.current?.coords) && (nt.current = { anchor: u, coords: g }, g && Ue?.(e, g, re.current) !== !1)) {
821
- if (mt.current) {
822
- const E = { rowStart: Math.min(g.rowIndex, mt.current.rowIndex), colStart: Math.min(g.colIndex, mt.current.colIndex), rowEnd: Math.max(g.rowIndex, mt.current.rowIndex), colEnd: Math.max(g.colIndex, mt.current.colIndex) }, x = { rowIndex: E.rowStart, colIndex: E.colStart }, Z = { rowIndex: E.rowEnd, colIndex: E.colEnd };
823
- if (qt(x) || qt(Z)) return;
824
- const F = De(x, Z);
820
+ if (!V.isEqualCells(g, ot.current?.coords) && (ot.current = { anchor: u, coords: g }, g && Ve?.(e, g, re.current) !== !1)) {
821
+ if (St.current) {
822
+ const E = { rowStart: Math.min(g.rowIndex, St.current.rowIndex), colStart: Math.min(g.colIndex, St.current.colIndex), rowEnd: Math.max(g.rowIndex, St.current.rowIndex), colEnd: Math.max(g.colIndex, St.current.colIndex) }, x = { rowIndex: E.rowStart, colIndex: E.colStart }, G = { rowIndex: E.rowEnd, colIndex: E.colEnd };
823
+ if (qt(x) || qt(G)) return;
824
+ const F = ke(x, G);
825
825
  Bt.current = F, Ut(F);
826
- } else ft(g);
827
- Dt.current = a, Dn(d, g, t);
826
+ } else gt(g);
827
+ Tt.current = a, Dn(d, g, t);
828
828
  }
829
829
  }, 60), onPointerUp: (e) => {
830
- if (nt.current = null, e.pointerType === "touch" || e.type === "touchend") {
831
- if (Mt.current) {
832
- const u = t.current.getViewFromClient(Mt.current.point.x, Mt.current.point.y), d = u.getScrollTopLeft();
833
- if (d.left === Mt.current.topLeft.left && d.top === Mt.current.topLeft.top) {
834
- const g = u.getCellCoordsFromClient(Mt.current.point.x, Mt.current.point.y);
835
- Ct(g);
830
+ if (ot.current = null, e.pointerType === "touch" || e.type === "touchend") {
831
+ if (kt.current) {
832
+ const u = t.current.getViewFromClient(kt.current.point.x, kt.current.point.y), d = u.getScrollTopLeft();
833
+ if (d.left === kt.current.topLeft.left && d.top === kt.current.topLeft.top) {
834
+ const g = u.getCellCoordsFromClient(kt.current.point.x, kt.current.point.y);
835
+ Rt(g);
836
836
  }
837
837
  }
838
- return Mt.current = null, void (nt.current = null);
838
+ return kt.current = null, void (ot.current = null);
839
839
  }
840
840
  try {
841
841
  i?.(re.current, e);
842
842
  } catch (u) {
843
843
  console.warn(u);
844
844
  }
845
- if (!mt.current) return;
845
+ if (!St.current) return;
846
846
  const a = Bt.current;
847
- mt.current = null, Bt.current = null, Ut(null), xt((u) => {
848
- if (Ke.current = !1, (u = $t(u)).ranges.length === 0) return u;
847
+ St.current = null, Bt.current = null, Ut(null), pt((u) => {
848
+ if (He.current = !1, (u = $t(u)).ranges.length === 0) return u;
849
849
  let d = [], g = -1, E = u.cell;
850
- for (let Z = 0; Z < u.ranges.length; Z++) {
851
- const F = u.ranges[Z];
850
+ for (let G = 0; G < u.ranges.length; G++) {
851
+ const F = u.ranges[G];
852
852
  if (V.isRangesIntersect(F, a)) {
853
- const H = Nt.subtractRect({ top: F.rowStart, left: F.colStart, bottom: F.rowEnd + 1, right: F.colEnd + 1 }, { top: a.rowStart, left: a.colStart, bottom: a.rowEnd + 1, right: a.colEnd + 1 });
854
- for (let te = 0; te < H.length; te++) {
855
- const ye = { rowStart: H[te].top, colStart: H[te].left, rowEnd: H[te].bottom - 1, colEnd: H[te].right - 1 };
856
- d.push(ye), V.isCellWithinRange(u.cell, ye) && (g = d.length - 1);
853
+ const N = Nt.subtractRect({ top: F.rowStart, left: F.colStart, bottom: F.rowEnd + 1, right: F.colEnd + 1 }, { top: a.rowStart, left: a.colStart, bottom: a.rowEnd + 1, right: a.colEnd + 1 });
854
+ for (let ee = 0; ee < N.length; ee++) {
855
+ const Se = { rowStart: N[ee].top, colStart: N[ee].left, rowEnd: N[ee].bottom - 1, colEnd: N[ee].right - 1 };
856
+ d.push(Se), V.isCellWithinRange(u.cell, Se) && (g = d.length - 1);
857
857
  }
858
858
  } else d.push(F);
859
859
  d.length > 0 && g === -1 && V.isCellWithinRange(u.cell, F) && (g = d.length - 1, E = { rowIndex: d[d.length - 1].rowStart, colIndex: d[d.length - 1].colStart });
@@ -861,63 +861,63 @@ const Vt = -10, or = Object.freeze({ rowStart: 0, colStart: 0, rowEnd: 0, colEnd
861
861
  const x = { cell: E, rangeIndex: g, ranges: d };
862
862
  return V.isEqualSelectionCoords(x, u) ? u : x;
863
863
  });
864
- }, processTouch: !0, consumeTouch: !1 }), [v, l, O, he, h]), Ln = T(un(sn), []), $n = Ve(() => ({ onSelectionPointerDown: (e, a, u, d, g = v.cell, E = he, x = e.nativeEvent.shiftKey, Z = !1) => {
864
+ }, processTouch: !0, consumeTouch: !1 }), [v, l, O, he, h]), Ln = T(un(sn), []), $n = Ae(() => ({ onSelectionPointerDown: (e, a, u, d, g = v.cell, E = he, x = e.nativeEvent.shiftKey, G = !1) => {
865
865
  if (!t || !t.current) return !1;
866
866
  e.stopPropagation(), e.preventDefault(), e.nativeEvent.stopImmediatePropagation();
867
- const F = u ?? t.current.getViewFromClient(e.nativeEvent.clientX, e.nativeEvent.clientY), H = d ?? F.getCellCoordsFromClient(e.nativeEvent.clientX, e.nativeEvent.clientY);
868
- if (!H) return !1;
869
- nt.current = { anchor: F.getAnchor(), coords: H }, qe.current = null;
870
- const te = e.nativeEvent.which === Xn.Right;
871
- if (te && V.indexOfCoords(H, v.ranges) !== -1)
867
+ const F = u ?? t.current.getViewFromClient(e.nativeEvent.clientX, e.nativeEvent.clientY), N = d ?? F.getCellCoordsFromClient(e.nativeEvent.clientX, e.nativeEvent.clientY);
868
+ if (!N) return !1;
869
+ ot.current = { anchor: F.getAnchor(), coords: N }, Ke.current = null;
870
+ const ee = e.nativeEvent.which === Xn.Right;
871
+ if (ee && V.indexOfCoords(N, v.ranges) !== -1)
872
872
  return !1;
873
- const ye = e.nativeEvent.ctrlKey || e.nativeEvent.metaKey, K = ye, N = O, at = v.ranges.length > 0, I = ye && N;
874
- if (ie?.(e, H, v) === !1) return !1;
873
+ const Se = e.nativeEvent.ctrlKey || e.nativeEvent.metaKey, j = Se, K = O, dt = v.ranges.length > 0, I = Se && K;
874
+ if (ce?.(e, N, v) === !1) return !1;
875
875
  s?.(re.current, e.nativeEvent);
876
- const pe = !te && l !== "single";
877
- if (x) return ft(H, g, Z), pe;
878
- const yt = V.isEqualCells(H, g);
879
- if (K) {
880
- if (yt && (!I || !at)) return pe;
881
- if (I && V.indexOfCoords(H, v.ranges) !== -1 && N) {
882
- mt.current = H;
883
- const we = De(H, H);
884
- return Bt.current = we, Ut(we), pe;
876
+ const ve = !ee && l !== "single";
877
+ if (x) return gt(N, g, G), ve;
878
+ const It = V.isEqualCells(N, g);
879
+ if (j) {
880
+ if (It && (!I || !dt)) return ve;
881
+ if (I && V.indexOfCoords(N, v.ranges) !== -1 && K) {
882
+ St.current = N;
883
+ const xe = ke(N, N);
884
+ return Bt.current = xe, Ut(xe), ve;
885
885
  }
886
- return Me(H), pe;
886
+ return Ee(N), ve;
887
887
  }
888
- E && vt(H), yt && v.ranges.length === 0 || Ct(H);
889
- }, onSelectionPointerMoveOrWait: (e, a, u, d, g, E = v.cell, x = !0, Z = !1) => {
890
- if (!t?.current || (e.stopPropagation(), e.preventDefault(), e.stopImmediatePropagation(), !nt.current)) return;
891
- const F = nt.current.anchor;
892
- let H = d ?? t.current.getViewFromLocation(F), te = g ?? H.getCellCoordsFromClient(e.clientX, e.clientY);
893
- if (!V.isEqualCells(te, nt.current?.coords) && (nt.current = { anchor: F, coords: te }, te && Ue?.(e, te, re.current) !== !1)) {
894
- if (mt.current) {
895
- const ye = { rowStart: Math.min(te.rowIndex, mt.current.rowIndex), colStart: Math.min(te.colIndex, mt.current.colIndex), rowEnd: Math.max(te.rowIndex, mt.current.rowIndex), colEnd: Math.max(te.colIndex, mt.current.colIndex) }, K = { rowIndex: ye.rowStart, colIndex: ye.colStart }, N = { rowIndex: ye.rowEnd, colIndex: ye.colEnd };
896
- if (qt(K) || qt(N)) return;
897
- const at = De(K, N);
898
- Bt.current = at, Ut(at);
899
- } else ft(te, E, Z);
900
- x && Dn(H, te, t);
888
+ E && yt(N), It && v.ranges.length === 0 || Rt(N);
889
+ }, onSelectionPointerMoveOrWait: (e, a, u, d, g, E = v.cell, x = !0, G = !1) => {
890
+ if (!t?.current || (e.stopPropagation(), e.preventDefault(), e.stopImmediatePropagation(), !ot.current)) return;
891
+ const F = ot.current.anchor;
892
+ let N = d ?? t.current.getViewFromLocation(F), ee = g ?? N.getCellCoordsFromClient(e.clientX, e.clientY);
893
+ if (!V.isEqualCells(ee, ot.current?.coords) && (ot.current = { anchor: F, coords: ee }, ee && Ve?.(e, ee, re.current) !== !1)) {
894
+ if (St.current) {
895
+ const Se = { rowStart: Math.min(ee.rowIndex, St.current.rowIndex), colStart: Math.min(ee.colIndex, St.current.colIndex), rowEnd: Math.max(ee.rowIndex, St.current.rowIndex), colEnd: Math.max(ee.colIndex, St.current.colIndex) }, j = { rowIndex: Se.rowStart, colIndex: Se.colStart }, K = { rowIndex: Se.rowEnd, colIndex: Se.colEnd };
896
+ if (qt(j) || qt(K)) return;
897
+ const dt = ke(j, K);
898
+ Bt.current = dt, Ut(dt);
899
+ } else gt(ee, E, G);
900
+ x && Dn(N, ee, t);
901
901
  }
902
902
  }, onPointerUp: (e) => {
903
- nt.current = null, e.stopPropagation(), e.preventDefault(), e.stopImmediatePropagation();
903
+ ot.current = null, e.stopPropagation(), e.preventDefault(), e.stopImmediatePropagation();
904
904
  try {
905
905
  i?.(re.current, e);
906
906
  } catch (u) {
907
907
  console.warn(u);
908
908
  }
909
- if (!mt.current) return;
909
+ if (!St.current) return;
910
910
  const a = Bt.current;
911
- mt.current = null, Bt.current = null, Ut(null), xt((u) => {
912
- if (Ke.current = !1, (u = $t(u)).ranges.length === 0) return u;
911
+ St.current = null, Bt.current = null, Ut(null), pt((u) => {
912
+ if (He.current = !1, (u = $t(u)).ranges.length === 0) return u;
913
913
  let d = [], g = -1, E = u.cell;
914
- for (let Z = 0; Z < u.ranges.length; Z++) {
915
- const F = u.ranges[Z];
914
+ for (let G = 0; G < u.ranges.length; G++) {
915
+ const F = u.ranges[G];
916
916
  if (V.isRangesIntersect(F, a)) {
917
- const H = Nt.subtractRect({ top: F.rowStart, left: F.colStart, bottom: F.rowEnd + 1, right: F.colEnd + 1 }, { top: a.rowStart, left: a.colStart, bottom: a.rowEnd + 1, right: a.colEnd + 1 });
918
- for (let te = 0; te < H.length; te++) {
919
- const ye = { rowStart: H[te].top, colStart: H[te].left, rowEnd: H[te].bottom - 1, colEnd: H[te].right - 1 };
920
- d.push(ye), V.isCellWithinRange(u.cell, ye) && (g = d.length - 1);
917
+ const N = Nt.subtractRect({ top: F.rowStart, left: F.colStart, bottom: F.rowEnd + 1, right: F.colEnd + 1 }, { top: a.rowStart, left: a.colStart, bottom: a.rowEnd + 1, right: a.colEnd + 1 });
918
+ for (let ee = 0; ee < N.length; ee++) {
919
+ const Se = { rowStart: N[ee].top, colStart: N[ee].left, rowEnd: N[ee].bottom - 1, colEnd: N[ee].right - 1 };
920
+ d.push(Se), V.isCellWithinRange(u.cell, Se) && (g = d.length - 1);
921
921
  }
922
922
  } else d.push(F);
923
923
  d.length > 0 && g === -1 && V.isCellWithinRange(u.cell, F) && (g = d.length - 1, E = { rowIndex: d[d.length - 1].rowStart, colIndex: d[d.length - 1].colStart });
@@ -925,165 +925,165 @@ const Vt = -10, or = Object.freeze({ rowStart: 0, colStart: 0, rowEnd: 0, colEnd
925
925
  const x = { cell: E, rangeIndex: g, ranges: d };
926
926
  return V.isEqualSelectionCoords(x, u) ? u : x;
927
927
  });
928
- } }), [v, l, O, he, h]), ot = T((e, a = !1, u = !1, d = 0) => {
928
+ } }), [v, l, O, he, h]), rt = T((e, a = !1, u = !1, d = 0) => {
929
929
  if (!t.current || !v.cell) return;
930
930
  let g = v.cell, E = v.cell;
931
931
  if (a && v.ranges.length > 0) {
932
- const I = v.ranges[v.rangeIndex], pe = v.cell;
932
+ const I = v.ranges[v.rangeIndex], ve = v.cell;
933
933
  switch (e) {
934
934
  case w.Up:
935
- E = { rowIndex: pe.rowIndex === I.rowStart ? I.rowEnd : I.rowStart, colIndex: I.colEnd }, g = { rowIndex: pe.rowIndex === I.rowStart ? I.rowStart : I.rowEnd, colIndex: I.colStart };
935
+ E = { rowIndex: ve.rowIndex === I.rowStart ? I.rowEnd : I.rowStart, colIndex: I.colEnd }, g = { rowIndex: ve.rowIndex === I.rowStart ? I.rowStart : I.rowEnd, colIndex: I.colStart };
936
936
  break;
937
937
  case w.Down:
938
- E = { rowIndex: pe.rowIndex === I.rowEnd ? I.rowStart : I.rowEnd, colIndex: I.colEnd }, g = { rowIndex: pe.rowIndex === I.rowEnd ? I.rowEnd : I.rowStart, colIndex: I.colStart };
938
+ E = { rowIndex: ve.rowIndex === I.rowEnd ? I.rowStart : I.rowEnd, colIndex: I.colEnd }, g = { rowIndex: ve.rowIndex === I.rowEnd ? I.rowEnd : I.rowStart, colIndex: I.colStart };
939
939
  break;
940
940
  case w.Left:
941
- E = { rowIndex: I.rowEnd, colIndex: pe.colIndex === I.colStart ? I.colEnd : I.colStart }, g = { rowIndex: I.rowStart, colIndex: pe.colIndex === I.colStart ? I.colStart : I.colEnd };
941
+ E = { rowIndex: I.rowEnd, colIndex: ve.colIndex === I.colStart ? I.colEnd : I.colStart }, g = { rowIndex: I.rowStart, colIndex: ve.colIndex === I.colStart ? I.colStart : I.colEnd };
942
942
  break;
943
943
  case w.Right:
944
- E = { rowIndex: I.rowEnd, colIndex: pe.colIndex === I.colEnd ? I.colStart : I.colEnd }, g = { rowIndex: I.rowStart, colIndex: pe.colIndex === I.colEnd ? I.colEnd : I.colStart };
944
+ E = { rowIndex: I.rowEnd, colIndex: ve.colIndex === I.colEnd ? I.colStart : I.colEnd }, g = { rowIndex: I.rowStart, colIndex: ve.colIndex === I.colEnd ? I.colEnd : I.colStart };
945
945
  }
946
946
  }
947
- const x = ne(E);
948
- let { rowStart: Z, colStart: F } = x;
949
- const H = ge();
950
- if (qe.current) switch (e) {
947
+ const x = te(E);
948
+ let { rowStart: G, colStart: F } = x;
949
+ const N = ge();
950
+ if (Ke.current) switch (e) {
951
951
  case w.Up:
952
952
  case w.Down:
953
- qe.current.colIndex >= x.colStart && qe.current.colIndex <= x.colEnd && (F = qe.current.colIndex);
953
+ Ke.current.colIndex >= x.colStart && Ke.current.colIndex <= x.colEnd && (F = Ke.current.colIndex);
954
954
  break;
955
955
  case w.Left:
956
956
  case w.Right:
957
- qe.current.rowIndex >= x.rowStart && qe.current.rowIndex <= x.rowEnd && (Z = qe.current.rowIndex);
957
+ Ke.current.rowIndex >= x.rowStart && Ke.current.rowIndex <= x.rowEnd && (G = Ke.current.rowIndex);
958
958
  }
959
959
  if (!d) {
960
960
  switch (e) {
961
961
  case w.Up:
962
- Z = We(rt, Math.max(x.rowStart - 1, H.top), e);
962
+ G = Fe(lt, Math.max(x.rowStart - 1, N.top), e);
963
963
  break;
964
964
  case w.Down:
965
- Z = We(rt, Math.min(x.rowEnd + 1, H.bottom), e);
965
+ G = Fe(lt, Math.min(x.rowEnd + 1, N.bottom), e);
966
966
  break;
967
967
  case w.Left:
968
- F = We(lt, Math.max(x.colStart - 1, H.left), e);
968
+ F = Fe(it, Math.max(x.colStart - 1, N.left), e);
969
969
  break;
970
970
  case w.Right:
971
- F = We(lt, Math.min(x.colEnd + 1, H.right), e);
971
+ F = Fe(it, Math.min(x.colEnd + 1, N.right), e);
972
972
  }
973
973
  if (u) switch (e) {
974
974
  case w.Up:
975
- Z = k({ ...E, colIndex: v.cell.colIndex }, oe, rt, e, !1, Math.max(H.top, rt(H.top, !1)));
975
+ G = k({ ...E, colIndex: v.cell.colIndex }, oe, lt, e, !1, Math.max(N.top, lt(N.top, !1)));
976
976
  break;
977
977
  case w.Down:
978
- Z = k({ ...E, colIndex: v.cell.colIndex }, oe, rt, e, !1, Math.min(H.bottom, H.bottom - rt(H.bottom, !0)));
978
+ G = k({ ...E, colIndex: v.cell.colIndex }, oe, lt, e, !1, Math.min(N.bottom, N.bottom - lt(N.bottom, !0)));
979
979
  break;
980
980
  case w.Left:
981
- F = k({ ...E, rowIndex: v.cell.rowIndex }, oe, lt, e, !1, Math.max(H.left, lt(H.left, !1)));
981
+ F = k({ ...E, rowIndex: v.cell.rowIndex }, oe, it, e, !1, Math.max(N.left, it(N.left, !1)));
982
982
  break;
983
983
  case w.Right:
984
- F = k({ ...E, rowIndex: v.cell.rowIndex }, oe, lt, e, !1, Math.min(H.right, H.right - lt(H.right, !0)));
984
+ F = k({ ...E, rowIndex: v.cell.rowIndex }, oe, it, e, !1, Math.min(N.right, N.right - it(N.right, !0)));
985
985
  }
986
986
  }
987
- let te = null;
987
+ let ee = null;
988
988
  if (d) {
989
989
  let I = 0;
990
990
  switch (e) {
991
991
  case w.Up:
992
- I = o.getRowOffset(Z + 1), Z = Math.max(H.top, o.getRowIndex(I - d)), te = { top: o.getRowOffset(Z + 1) - (I - t.current.getScrollPosition().top) };
992
+ I = o.getRowOffset(G + 1), G = Math.max(N.top, o.getRowIndex(I - d)), ee = { top: o.getRowOffset(G + 1) - (I - t.current.getScrollPosition().top) };
993
993
  break;
994
994
  case w.Down:
995
- I = o.getRowOffset(Z), Z = Math.min(H.bottom, o.getRowIndex(I + d)), te = { top: o.getRowOffset(Z) - (I - t.current.getScrollPosition().top) };
995
+ I = o.getRowOffset(G), G = Math.min(N.bottom, o.getRowIndex(I + d)), ee = { top: o.getRowOffset(G) - (I - t.current.getScrollPosition().top) };
996
996
  break;
997
997
  case w.Left:
998
- I = o.getColOffset(F + 1), F = Math.max(H.left, o.getColIndex(I - d)), te = { left: o.getColOffset(F + 1) - (I - t.current.getScrollPosition().left) };
998
+ I = o.getColOffset(F + 1), F = Math.max(N.left, o.getColIndex(I - d)), ee = { left: o.getColOffset(F + 1) - (I - t.current.getScrollPosition().left) };
999
999
  break;
1000
1000
  case w.Right:
1001
- I = o.getColOffset(F), F = Math.min(H.right, o.getColIndex(I + d)), te = { left: o.getColOffset(F) - (I - t.current.getScrollPosition().left) };
1001
+ I = o.getColOffset(F), F = Math.min(N.right, o.getColIndex(I + d)), ee = { left: o.getColOffset(F) - (I - t.current.getScrollPosition().left) };
1002
1002
  }
1003
1003
  }
1004
- const ye = { rowIndex: Z, colIndex: F }, K = ne(ye), N = { rowIndex: K.rowStart, colIndex: K.colStart };
1005
- a || (qe.current = ye);
1006
- const at = V.isEqualCells(Xe.current, N) && V.isEqualCells(Xe.current, g);
1007
- if (a && !at ? ft(N, g) : Ct(N), te) t.current.scrollTo(te);
1004
+ const Se = { rowIndex: G, colIndex: F }, j = te(Se), K = { rowIndex: j.rowStart, colIndex: j.colStart };
1005
+ a || (Ke.current = Se);
1006
+ const dt = V.isEqualCells(Ge.current, K) && V.isEqualCells(Ge.current, g);
1007
+ if (a && !dt ? gt(K, g) : Rt(K), ee) t.current.scrollTo(ee);
1008
1008
  else {
1009
- if (a && Xe.current) {
1009
+ if (a && Ge.current) {
1010
1010
  const I = ge();
1011
- if (e === w.Right && Xe.current.colIndex === I.left || e === w.Left && Xe.current.colIndex === I.right || e === w.Up && Xe.current.rowIndex === I.bottom || e === w.Down && Xe.current.rowIndex === I.top) return;
1011
+ if (e === w.Right && Ge.current.colIndex === I.left || e === w.Left && Ge.current.colIndex === I.right || e === w.Up && Ge.current.rowIndex === I.bottom || e === w.Down && Ge.current.rowIndex === I.top) return;
1012
1012
  }
1013
- e === w.Left || e === w.Right ? vt({ colIndex: ye.colIndex }) : e !== w.Up && e !== w.Down || vt({ rowIndex: ye.rowIndex });
1013
+ e === w.Left || e === w.Right ? yt({ colIndex: Se.colIndex }) : e !== w.Up && e !== w.Down || yt({ rowIndex: Se.rowIndex });
1014
1014
  }
1015
- }, [v, ne]), Yt = T((e) => {
1015
+ }, [v, te]), Yt = T((e) => {
1016
1016
  if (!t.current) return;
1017
- if (v.ranges.length === 0) return void ot(e);
1018
- const a = ne(v.cell);
1019
- if (V.isEqualRangesArrays([a], v.ranges)) return void ot(e);
1020
- const u = Gn(v, e, ne, rt, lt);
1021
- xt((d) => {
1022
- Ke.current = !1, d = $t(d);
1017
+ if (v.ranges.length === 0) return void rt(e);
1018
+ const a = te(v.cell);
1019
+ if (V.isEqualRangesArrays([a], v.ranges)) return void rt(e);
1020
+ const u = Gn(v, e, te, lt, it);
1021
+ pt((d) => {
1022
+ He.current = !1, d = $t(d);
1023
1023
  const g = { ...d, cell: u.cell, rangeIndex: u.rangeIndex };
1024
1024
  return V.isEqualSelectionCoords(g, d) ? d : g;
1025
- }), u.cell && vt(u.cell);
1026
- }, [v, ne]), Bn = W(() => {
1025
+ }), u.cell && yt(u.cell);
1026
+ }, [v, te]), Bn = W(() => {
1027
1027
  const e = ge();
1028
- ft({ rowIndex: e.top }, { rowIndex: e.bottom });
1028
+ gt({ rowIndex: e.top }, { rowIndex: e.bottom });
1029
1029
  }, []), An = W(() => {
1030
1030
  const e = ge();
1031
- ft({ colIndex: e.left }, { colIndex: e.right });
1031
+ gt({ colIndex: e.left }, { colIndex: e.right });
1032
1032
  }, []), Qt = T(() => {
1033
- v.cell && t?.current && vt(v.cell);
1033
+ v.cell && t?.current && yt(v.cell);
1034
1034
  }, [v.cell]), Sn = W((e = !1) => {
1035
1035
  const a = { rowIndex: ge().top };
1036
- e ? ft(a) : Ct(a), vt(a);
1036
+ e ? gt(a) : Rt(a), yt(a);
1037
1037
  }, []), yn = W((e = !1) => {
1038
1038
  const a = { rowIndex: ge().bottom };
1039
- e ? ft(a) : Ct(a), vt(a);
1039
+ e ? gt(a) : Rt(a), yt(a);
1040
1040
  }, []), fn = W((e = !1) => {
1041
1041
  const a = { colIndex: ge().left };
1042
- e ? ft(a) : Ct(a), vt(a);
1042
+ e ? gt(a) : Rt(a), yt(a);
1043
1043
  }, []), an = W((e = !1) => {
1044
1044
  const a = ge(), u = { rowIndex: a.top, colIndex: a.left };
1045
- e ? ft(u) : Ct(u), vt(u);
1045
+ e ? gt(u) : Rt(u), yt(u);
1046
1046
  }, []), gn = W((e = !1) => {
1047
1047
  const a = ge(), u = { colIndex: U?.()?.colEnd ?? a.right };
1048
- e ? ft(u) : Ct(u), vt(u);
1048
+ e ? gt(u) : Rt(u), yt(u);
1049
1049
  }, [U]), on = W((e = !1) => {
1050
1050
  const a = ge(), u = { rowIndex: U?.()?.rowEnd ?? a.bottom, colIndex: U?.()?.colEnd ?? a.right };
1051
- e ? ft(u) : Ct(u), vt(u);
1051
+ e ? gt(u) : Rt(u), yt(u);
1052
1052
  }, [U]), wn = T((e) => {
1053
1053
  if (!t.current || v.ranges.length <= 1) return;
1054
1054
  const a = e === w.Left || e === w.Up;
1055
1055
  let u = v.rangeIndex + (a ? -1 : 1);
1056
1056
  u < 0 ? u = v.ranges.length - 1 : u > v.ranges.length - 1 && (u = 0);
1057
- const d = v.ranges[u], g = Gn({ cell: { rowIndex: d.rowEnd, colIndex: d.colEnd }, rangeIndex: 0, ranges: [d] }, w.Right, ne, rt, lt);
1058
- xt((E) => {
1059
- Ke.current = !1, E = $t(E);
1057
+ const d = v.ranges[u], g = Gn({ cell: { rowIndex: d.rowEnd, colIndex: d.colEnd }, rangeIndex: 0, ranges: [d] }, w.Right, te, lt, it);
1058
+ pt((E) => {
1059
+ He.current = !1, E = $t(E);
1060
1060
  const x = { ...E, cell: g.cell, rangeIndex: u };
1061
1061
  return V.isEqualSelectionCoords(x, E) ? E : x;
1062
- }), g.cell && vt(g.cell);
1063
- }, [v, ne]), Fn = T(() => {
1062
+ }), g.cell && yt(g.cell);
1063
+ }, [v, te]), Fn = T(() => {
1064
1064
  const e = lo(v);
1065
- xt((a) => {
1066
- Ke.current = !1, a = $t(a);
1065
+ pt((a) => {
1066
+ He.current = !1, a = $t(a);
1067
1067
  const u = { ...a, visibleSelection: e };
1068
1068
  return V.isEqualSelectionCoords(u, a) ? a : u;
1069
- }), e.cell && vt(e.cell);
1070
- }, [v, ne]), Vn = T(() => {
1069
+ }), e.cell && yt(e.cell);
1070
+ }, [v, te]), Vn = T(() => {
1071
1071
  if (!t.current || v.ranges.length === 0) return;
1072
1072
  const e = v.cell, a = v.ranges[v.rangeIndex], u = lo({ cell: e, rangeIndex: 0, ranges: [a] }), d = u.ranges[u.rangeIndex];
1073
1073
  let g;
1074
- g = d.rowStart === e.rowIndex && d.colStart === e.colIndex ? { rowIndex: d.rowStart, colIndex: d.colEnd } : d.rowStart === e.rowIndex && d.colEnd === e.colIndex ? { rowIndex: d.rowEnd, colIndex: d.colStart } : d.rowEnd === e.rowIndex && d.colStart === e.colIndex ? { rowIndex: d.rowEnd, colIndex: d.colEnd } : { rowIndex: d.rowStart, colIndex: d.colStart }, xt((E) => {
1074
+ g = d.rowStart === e.rowIndex && d.colStart === e.colIndex ? { rowIndex: d.rowStart, colIndex: d.colEnd } : d.rowStart === e.rowIndex && d.colEnd === e.colIndex ? { rowIndex: d.rowEnd, colIndex: d.colStart } : d.rowEnd === e.rowIndex && d.colStart === e.colIndex ? { rowIndex: d.rowEnd, colIndex: d.colEnd } : { rowIndex: d.rowStart, colIndex: d.colStart }, pt((E) => {
1075
1075
  E = $t(E);
1076
1076
  const x = { ...E, cell: g };
1077
1077
  return V.isEqualSelectionCoords(x, E) ? E : x;
1078
- }), g && vt(g);
1079
- }, [v, ne]), bn = W((e = !1) => {
1080
- ot(w.Down, e, !1, t.current.getDimensions().containerHeight);
1078
+ }), g && yt(g);
1079
+ }, [v, te]), bn = W((e = !1) => {
1080
+ rt(w.Down, e, !1, t.current.getDimensions().containerHeight);
1081
1081
  }, []), At = W((e = !1) => {
1082
- ot(w.Up, e, !1, t.current.getDimensions().containerHeight);
1082
+ rt(w.Up, e, !1, t.current.getDimensions().containerHeight);
1083
1083
  }, []), Cn = W((e = !1) => {
1084
- ot(w.Right, e, !1, t.current.getDimensions().containerWidth);
1084
+ rt(w.Right, e, !1, t.current.getDimensions().containerWidth);
1085
1085
  }, []), xn = W((e = !1) => {
1086
- ot(w.Left, e, !1, t.current.getDimensions().containerWidth);
1086
+ rt(w.Left, e, !1, t.current.getDimensions().containerWidth);
1087
1087
  }, []), In = W(() => {
1088
1088
  Yt(w.Left);
1089
1089
  }, []), En = W(() => {
@@ -1099,684 +1099,684 @@ const Vt = -10, or = Object.freeze({ rowStart: 0, colStart: 0, rowEnd: 0, colEnd
1099
1099
  }, []), Nn = W(() => {
1100
1100
  Vn();
1101
1101
  }, []), Rn = W(() => {
1102
- ot(w.Left, !1, !1);
1102
+ rt(w.Left, !1, !1);
1103
1103
  }, []), f = W(() => {
1104
- ot(w.Left, !0, !1);
1104
+ rt(w.Left, !0, !1);
1105
1105
  }, []), m = W(() => {
1106
- ot(w.Left, !1, !0);
1106
+ rt(w.Left, !1, !0);
1107
1107
  }, []), C = W(() => {
1108
- ot(w.Left, !0, !0);
1108
+ rt(w.Left, !0, !0);
1109
1109
  }, []), S = W(() => {
1110
- ot(w.Right, !1, !1);
1110
+ rt(w.Right, !1, !1);
1111
1111
  }, []), y = W(() => {
1112
- ot(w.Right, !0, !1);
1112
+ rt(w.Right, !0, !1);
1113
1113
  }, []), B = W(() => {
1114
- ot(w.Right, !1, !0);
1115
- }, []), de = W(() => {
1116
- ot(w.Right, !0, !0);
1117
- }, []), q = W(() => {
1118
- ot(w.Up, !1, !1);
1119
- }, []), ce = W(() => {
1120
- ot(w.Up, !0, !1);
1121
- }, []), G = W(() => {
1122
- ot(w.Up, !1, !0);
1123
- }, []), Te = W(() => {
1124
- ot(w.Up, !0, !0);
1125
- }, []), Ze = W(() => {
1126
- ot(w.Down, !1, !1);
1114
+ rt(w.Right, !1, !0);
1127
1115
  }, []), me = W(() => {
1128
- ot(w.Down, !0, !1);
1129
- }, []), ke = W(() => {
1130
- ot(w.Down, !1, !0);
1131
- }, []), Le = W(() => {
1132
- ot(w.Down, !0, !0);
1133
- }, []), ve = W(() => {
1134
- ht((e) => e.slice(0, -1));
1135
- }, []), It = Ve(() => {
1116
+ rt(w.Right, !0, !0);
1117
+ }, []), le = W(() => {
1118
+ rt(w.Up, !1, !1);
1119
+ }, []), we = W(() => {
1120
+ rt(w.Up, !0, !1);
1121
+ }, []), H = W(() => {
1122
+ rt(w.Up, !1, !0);
1123
+ }, []), Re = W(() => {
1124
+ rt(w.Up, !0, !0);
1125
+ }, []), je = W(() => {
1126
+ rt(w.Down, !1, !1);
1127
+ }, []), $e = W(() => {
1128
+ rt(w.Down, !0, !1);
1129
+ }, []), Je = W(() => {
1130
+ rt(w.Down, !1, !0);
1131
+ }, []), Te = W(() => {
1132
+ rt(w.Down, !0, !0);
1133
+ }, []), de = W(() => {
1134
+ ft((e) => e.slice(0, -1));
1135
+ }, []), ct = Ae(() => {
1136
1136
  const e = ge();
1137
1137
  return ((a, u, d, g, E) => {
1138
1138
  const x = a.length;
1139
- for (let Z = 0; Z < x; Z++) {
1140
- const F = a[Z];
1139
+ for (let G = 0; G < x; G++) {
1140
+ const F = a[G];
1141
1141
  if (F.rowStart === u && F.colStart === d && F.rowEnd === g && F.colEnd === E) return !0;
1142
1142
  }
1143
1143
  return !1;
1144
1144
  })(v.ranges, e.top, e.left, e.bottom, e.right);
1145
- }, [P, v.ranges]), it = W((e, a = !0) => {
1146
- Xe.current = e, Qe(e), a && e && t?.current && vt(e);
1147
- }, []), Ae = T((e = !0) => {
1145
+ }, [P, v.ranges]), et = W((e, a = !0) => {
1146
+ Ge.current = e, Qe(e), a && e && t?.current && yt(e);
1147
+ }, []), Be = T((e = !0) => {
1148
1148
  const a = Gt.current;
1149
1149
  if (!re.current?.cell) return;
1150
1150
  const u = re.current?.ranges, d = re.current?.cell;
1151
1151
  if (!d || !a || !a) return;
1152
1152
  let g = null;
1153
- if (g = u.length > 0 ? u[u.length - 1] : ne(d), g.colEnd >= g.colStart && g.rowEnd >= g.rowStart) {
1153
+ if (g = u.length > 0 ? u[u.length - 1] : te(d), g.colEnd >= g.colStart && g.rowEnd >= g.rowStart) {
1154
1154
  const E = io(g, a);
1155
1155
  let x = e ? Wt : D;
1156
1156
  try {
1157
1157
  x?.(g, a, E.direction);
1158
- } catch (Z) {
1159
- console.warn(Z);
1158
+ } catch (G) {
1159
+ console.warn(G);
1160
1160
  } finally {
1161
- e && Pe?.();
1161
+ e && Me?.();
1162
1162
  }
1163
1163
  }
1164
- }, [ne]), Ie = le(null), _e = Ve(() => ({ onPointerDown: (e, a) => {
1165
- if (Dt.current = a, !t || !t.current) return !1;
1164
+ }, [te]), tt = ie(null), bt = Ae(() => ({ onPointerDown: (e, a) => {
1165
+ if (Tt.current = a, !t || !t.current) return !1;
1166
1166
  const u = t.current.getViewFromClient(e.nativeEvent.clientX, e.nativeEvent.clientY), d = u?.getCellCoordsFromClient(e.nativeEvent.clientX, e.nativeEvent.clientY);
1167
- d && (e.stopPropagation(), Zt("crosshair"), Ie.current = { anchor: u.getAnchor(), coords: d });
1167
+ d && (e.stopPropagation(), Zt("crosshair"), tt.current = { anchor: u.getAnchor(), coords: d });
1168
1168
  }, onPointerMoveOrWait: (e, a) => {
1169
- if (Y || !t?.current || !re.current || !Ie.current) return;
1170
- const u = Ie.current.anchor;
1169
+ if (Y || !t?.current || !re.current || !tt.current) return;
1170
+ const u = tt.current.anchor;
1171
1171
  let d = t.current.getViewFromLocation(u), g = d.getCellCoordsFromClient(e.clientX, e.clientY);
1172
1172
  if (!g) return;
1173
- Ie.current = { anchor: u, coords: g };
1173
+ tt.current = { anchor: u, coords: g };
1174
1174
  const E = re.current.ranges;
1175
- let x = De(re.current.cell, g);
1175
+ let x = ke(re.current.cell, g);
1176
1176
  if (!x) return;
1177
- const Z = E.length > 0, F = Z ? E[E.length - 1] : ne(re.current.cell);
1177
+ const G = E.length > 0, F = G ? E[E.length - 1] : te(re.current.cell);
1178
1178
  if (!x) return;
1179
- const H = x.rowStart < F.rowStart ? w.Up : x.rowEnd > F.rowEnd ? w.Down : x.colEnd > F.colEnd ? w.Right : w.Left, te = ge();
1180
- H === w.Left && (x = { ...F, colStart: Math.max(te.left, x.colStart) }), H === w.Up && (x = { ...F, rowStart: Math.max(te.top, x.rowStart) }), H === w.Right && (x = { ...F, colEnd: Math.min(te.right, x.colEnd) }), H === w.Down && (x = { ...F, rowEnd: Math.min(te.bottom, x.rowEnd) });
1181
- const ye = io(F, x);
1182
- if (!He?.(F)) {
1183
- let K;
1184
- typeof nn.current == "function" ? K = nn.current(F) : Oe && (K = Oe), x = ((N, at, I, pe, yt, we) => {
1185
- const ue = { ...at };
1179
+ const N = x.rowStart < F.rowStart ? w.Up : x.rowEnd > F.rowEnd ? w.Down : x.colEnd > F.colEnd ? w.Right : w.Left, ee = ge();
1180
+ N === w.Left && (x = { ...F, colStart: Math.max(ee.left, x.colStart) }), N === w.Up && (x = { ...F, rowStart: Math.max(ee.top, x.rowStart) }), N === w.Right && (x = { ...F, colEnd: Math.min(ee.right, x.colEnd) }), N === w.Down && (x = { ...F, rowEnd: Math.min(ee.bottom, x.rowEnd) });
1181
+ const Se = io(F, x);
1182
+ if (!We?.(F)) {
1183
+ let j;
1184
+ typeof nn.current == "function" ? j = nn.current(F) : Pe && (j = Pe), x = ((K, dt, I, ve, It, xe) => {
1185
+ const ue = { ...dt };
1186
1186
  if (I.length === 0) return ue;
1187
- if (yt === w.Left) {
1188
- const st = N.colEnd + 1 - N.colStart;
1189
- ue.colStart = N.colStart - Math.ceil(we / st) * st, ue.colStart < pe.left && (ue.colStart = ue.colStart + Math.ceil((pe.left - ue.colStart) / st) * st);
1190
- } else if (yt === w.Right) {
1191
- const st = N.colEnd + 1 - N.colStart;
1192
- ue.colEnd = N.colEnd + Math.ceil(we / st) * st, ue.colEnd > pe.right && (ue.colEnd = ue.colEnd - Math.ceil((pe.right - ue.colEnd) / st) * st);
1193
- } else if (yt === w.Up) {
1194
- const st = N.rowEnd + 1 - N.rowStart;
1195
- ue.rowStart = N.rowStart - Math.ceil(we / st) * st, ue.rowStart < pe.top && (ue.rowStart = ue.rowStart + Math.ceil((pe.top - ue.rowStart) / st) * st);
1196
- } else if (yt === w.Down) {
1197
- const st = N.rowEnd + 1 - N.rowStart;
1198
- ue.rowEnd = N.rowEnd + Math.ceil(we / st) * st, ue.rowEnd > pe.bottom && (ue.rowEnd = ue.rowEnd - Math.ceil((pe.bottom - ue.rowEnd) / st) * st);
1187
+ if (It === w.Left) {
1188
+ const at = K.colEnd + 1 - K.colStart;
1189
+ ue.colStart = K.colStart - Math.ceil(xe / at) * at, ue.colStart < ve.left && (ue.colStart = ue.colStart + Math.ceil((ve.left - ue.colStart) / at) * at);
1190
+ } else if (It === w.Right) {
1191
+ const at = K.colEnd + 1 - K.colStart;
1192
+ ue.colEnd = K.colEnd + Math.ceil(xe / at) * at, ue.colEnd > ve.right && (ue.colEnd = ue.colEnd - Math.ceil((ve.right - ue.colEnd) / at) * at);
1193
+ } else if (It === w.Up) {
1194
+ const at = K.rowEnd + 1 - K.rowStart;
1195
+ ue.rowStart = K.rowStart - Math.ceil(xe / at) * at, ue.rowStart < ve.top && (ue.rowStart = ue.rowStart + Math.ceil((ve.top - ue.rowStart) / at) * at);
1196
+ } else if (It === w.Down) {
1197
+ const at = K.rowEnd + 1 - K.rowStart;
1198
+ ue.rowEnd = K.rowEnd + Math.ceil(xe / at) * at, ue.rowEnd > ve.bottom && (ue.rowEnd = ue.rowEnd - Math.ceil((ve.bottom - ue.rowEnd) / at) * at);
1199
1199
  }
1200
1200
  return ue;
1201
- })(F, x, K, te, ye.direction, ye.amount);
1201
+ })(F, x, j, ee, Se.direction, Se.amount);
1202
1202
  }
1203
- if (Z && V.isRangeWithinRange(x, F) && (x = null), !V.isEqualRanges(x, Gt.current)) {
1203
+ if (G && V.isRangeWithinRange(x, F) && (x = null), !V.isEqualRanges(x, Gt.current)) {
1204
1204
  if (hn(x), Gt.current = x, !x) {
1205
1205
  try {
1206
1206
  b?.();
1207
1207
  } catch {
1208
1208
  }
1209
- return void Pe?.();
1209
+ return void Me?.();
1210
1210
  }
1211
- Ae(!1);
1211
+ Be(!1);
1212
1212
  }
1213
- Dt.current = a, Dn(d, g, t);
1213
+ Tt.current = a, Dn(d, g, t);
1214
1214
  }, onPointerUp: (e, a) => {
1215
- Dt.current = a, Promise.resolve(Ae(!0)).finally(() => {
1216
- Pe?.(), hn(null), Gt.current = null, Ie.current = null, Zt(null), t.current?.focus();
1215
+ Tt.current = a, Promise.resolve(Be(!0)).finally(() => {
1216
+ Me?.(), hn(null), Gt.current = null, tt.current = null, Zt(null), t.current?.focus();
1217
1217
  });
1218
- } }), [ne]), Et = un(_e), Se = Ve(() => ({ onPointerDown: Et }), [Et]), [Je, zt] = dt(null), Fe = le(null), tt = Ve(() => ({ onPointerDown: (e, a) => {
1219
- if (Dt.current = a, !t || !t.current) return !1;
1218
+ } }), [te]), qe = un(bt), ne = Ae(() => ({ onPointerDown: qe }), [qe]), [Ye, mt] = ut(null), Oe = ie(null), nt = Ae(() => ({ onPointerDown: (e, a) => {
1219
+ if (Tt.current = a, !t || !t.current) return !1;
1220
1220
  const u = t.current.getViewFromClient(e.nativeEvent.clientX, e.nativeEvent.clientY), d = u?.getCellCoordsFromClient(e.nativeEvent.clientX, e.nativeEvent.clientY);
1221
1221
  if (!d) return;
1222
- if (ie?.(e, d, v) === !1) return !1;
1222
+ if (ce?.(e, d, v) === !1) return !1;
1223
1223
  e.stopPropagation(), Zt("default");
1224
- const g = u.getRelativePointFromClient(0, 0), E = re.current?.ranges[re.current?.ranges.length - 1] ?? V.cellToRange(re.current?.cell), x = u.toClipBounds(u.getRangeCoordsBounds(E)), Z = { x: 0, y: 0 };
1225
- x.x - g.x > e.nativeEvent.clientX ? Z.x = e.nativeEvent.clientX - (x.x - g.x) : e.nativeEvent.clientX >= x.x - g.x + x.width && (Z.x = Math.max(0, e.nativeEvent.clientX - (x.x - g.x + x.width)) + 1), x.y - g.y > e.nativeEvent.clientY ? Z.y = e.nativeEvent.clientY - (x.y - g.y) : e.nativeEvent.clientY >= x.y - g.y + x.height && (Z.y = Math.max(0, e.nativeEvent.clientY - (x.y - g.y + x.height)) + 1), fe?.(E, e.nativeEvent, a), Fe.current = { range: E, anchor: u.getAnchor(), cell: d, isMoving: !1, extrusion: Z };
1224
+ const g = u.getRelativePointFromClient(0, 0), E = re.current?.ranges[re.current?.ranges.length - 1] ?? V.cellToRange(re.current?.cell), x = u.toClipBounds(u.getRangeCoordsBounds(E)), G = { x: 0, y: 0 };
1225
+ x.x - g.x > e.nativeEvent.clientX ? G.x = e.nativeEvent.clientX - (x.x - g.x) : e.nativeEvent.clientX >= x.x - g.x + x.width && (G.x = Math.max(0, e.nativeEvent.clientX - (x.x - g.x + x.width)) + 1), x.y - g.y > e.nativeEvent.clientY ? G.y = e.nativeEvent.clientY - (x.y - g.y) : e.nativeEvent.clientY >= x.y - g.y + x.height && (G.y = Math.max(0, e.nativeEvent.clientY - (x.y - g.y + x.height)) + 1), fe?.(E, e.nativeEvent, a), Oe.current = { range: E, anchor: u.getAnchor(), cell: d, isMoving: !1, extrusion: G };
1226
1226
  }, onPointerMoveOrWait: (e, a, u) => {
1227
- if (Ye || !t?.current || !re.current || !Fe.current) return;
1227
+ if (Xe || !t?.current || !re.current || !Oe.current) return;
1228
1228
  const d = e.clientX - u.clientX, g = e.clientY - u.clientY;
1229
- if (Fe.current.isMoving = Fe.current.isMoving || Math.abs(d) > Math.max(1, 2) || Math.abs(g) > Math.max(1, 2) || performance.now() - u.timeStamp > 500, !Fe.current.isMoving) return;
1230
- const E = Fe.current.anchor, x = Fe.current.extrusion;
1231
- let Z = t.current.getViewFromLocation(E), F = Z.getCellCoordsFromClient(e.clientX - x.x, e.clientY - x.y, !0);
1229
+ if (Oe.current.isMoving = Oe.current.isMoving || Math.abs(d) > Math.max(1, 2) || Math.abs(g) > Math.max(1, 2) || performance.now() - u.timeStamp > 500, !Oe.current.isMoving) return;
1230
+ const E = Oe.current.anchor, x = Oe.current.extrusion;
1231
+ let G = t.current.getViewFromLocation(E), F = G.getCellCoordsFromClient(e.clientX - x.x, e.clientY - x.y, !0);
1232
1232
  if (!F) return;
1233
- const H = Fe.current.cell, te = Fe.current.range, ye = ge(), K = te.colEnd - te.colStart + 1, N = Math.min(Math.max(0, H.colIndex - te.colStart), K - 1), at = Math.min(ye.right - K + 1, Math.max(ye.left, F.colIndex - N)), I = te.rowEnd - te.rowStart + 1, pe = Math.min(Math.max(0, H.rowIndex - te.rowStart), I - 1), yt = Math.min(ye.bottom - I + 1, Math.max(ye.top, F.rowIndex - pe)), we = { colStart: at, colEnd: at + K - 1, rowStart: yt, rowEnd: yt + I - 1 };
1234
- V.isEqualRanges(Je, we) && !((ue) => !ue || !Dt.current || Dt.current.ctrlKey !== ue.ctrlKey || Dt.current.shiftKey !== ue.shiftKey || Dt.current.altKey !== ue.altKey || Dt.current.metaKey !== ue.metaKey)(e) || (zt(we), be?.(we, e, a)), Dt.current = a, Dn(Z, F, t);
1233
+ const N = Oe.current.cell, ee = Oe.current.range, Se = ge(), j = ee.colEnd - ee.colStart + 1, K = Math.min(Math.max(0, N.colIndex - ee.colStart), j - 1), dt = Math.min(Se.right - j + 1, Math.max(Se.left, F.colIndex - K)), I = ee.rowEnd - ee.rowStart + 1, ve = Math.min(Math.max(0, N.rowIndex - ee.rowStart), I - 1), It = Math.min(Se.bottom - I + 1, Math.max(Se.top, F.rowIndex - ve)), xe = { colStart: dt, colEnd: dt + j - 1, rowStart: It, rowEnd: It + I - 1 };
1234
+ V.isEqualRanges(Ye, xe) && !((ue) => !ue || !Tt.current || Tt.current.ctrlKey !== ue.ctrlKey || Tt.current.shiftKey !== ue.shiftKey || Tt.current.altKey !== ue.altKey || Tt.current.metaKey !== ue.metaKey)(e) || (mt(xe), ye?.(xe, e, a)), Tt.current = a, Dn(G, F, t);
1235
1235
  }, onPointerUp: (e, a) => {
1236
- Dt.current = a;
1236
+ Tt.current = a;
1237
1237
  const u = () => {
1238
- zt(null), Fe.current = null, Zt(null), t.current?.focus();
1238
+ mt(null), Oe.current = null, Zt(null), t.current?.focus();
1239
1239
  };
1240
- if (!Fe.current) return void u();
1241
- const d = Fe.current.range, g = Je;
1240
+ if (!Oe.current) return void u();
1241
+ const d = Oe.current.range, g = Ye;
1242
1242
  A?.(d, e, a), Promise.resolve(d && g && p?.(d, g, e, a)).finally(() => {
1243
1243
  u();
1244
1244
  });
1245
- } }), [Je]), Be = un(tt), $e = Ve(() => ({ onPointerDown: Be }), [Be]), pt = le(null), ct = Ve(() => {
1246
- const e = V.isEqualSelectionCoords(v, pt.current) ? pt.current : v;
1247
- return pt.current = e, e;
1248
- }, [v]), St = W((e) => {
1245
+ } }), [Ye]), Le = un(nt), ze = Ae(() => ({ onPointerDown: Le }), [Le]), vt = ie(null), st = Ae(() => {
1246
+ const e = V.isEqualSelectionCoords(v, vt.current) ? vt.current : v;
1247
+ return vt.current = e, e;
1248
+ }, [v]), Ct = W((e) => {
1249
1249
  let a = null, u = "br";
1250
- const d = [], g = { stroke: j, fill: L, strokeWidth: 0.5 }, E = (K, N, at) => {
1251
- const I = e.toClipBounds(e.getRangeCoordsBounds(K), Vt);
1250
+ const d = [], g = { stroke: q, fill: L, strokeWidth: 0.5 }, E = (j, K, dt) => {
1251
+ const I = e.toClipBounds(e.getRangeCoordsBounds(j), Vt);
1252
1252
  if (!I) return;
1253
1253
  I.x = I.width > 0 ? I.x : I.x - g.strokeWidth / 2, I.y = I.height > 0 ? I.y : I.y - g.strokeWidth / 2, I.width = Math.max(I.width, g.strokeWidth), I.height = Math.max(I.height, g.strokeWidth);
1254
- const pe = { key: `selection-fill-${N}`, range: K, ...I, ...g };
1255
- if (at) {
1256
- const yt = e.getCellCoordsAsRangeCoords(at);
1257
- pe.cell = at, pe.pathBounds = e.toClipBounds(e.getRangeCoordsBounds(yt), Vt), pe.pathBounds && (pe.pathBounds.width <= 0 || pe.pathBounds.height <= 0) && (delete pe.pathBounds, delete pe.cell);
1254
+ const ve = { key: `selection-fill-${K}`, range: j, ...I, ...g };
1255
+ if (dt) {
1256
+ const It = e.getCellCoordsAsRangeCoords(dt);
1257
+ ve.cell = dt, ve.pathBounds = e.toClipBounds(e.getRangeCoordsBounds(It), Vt), ve.pathBounds && (ve.pathBounds.width <= 0 || ve.pathBounds.height <= 0) && (delete ve.pathBounds, delete ve.cell);
1258
1258
  }
1259
- return xe(pe);
1259
+ return pe(ve);
1260
1260
  };
1261
1261
  let x = v ? $t(v) : null;
1262
- const Z = x?.cell ? e.getCellCoordsAsRangeCoords(x?.cell) : or;
1263
- !x || x.ranges && x.ranges.length !== 0 || (x = { ranges: [Z], rangeIndex: 0, cell: x.cell });
1264
- for (let K = 0; x && K < x.ranges.length; K++) {
1265
- const N = x.ranges[K], at = E(N, K, K === x.rangeIndex ? x.cell : null);
1266
- at && d.push(at);
1267
- const I = 2, pe = 0.5, yt = e.toClipBounds(e.getRangeCoordsBounds(N, { top: 0, left: 0, right: 0, bottom: 0 }), Vt);
1268
- if (yt) {
1269
- const we = (x.ranges.length, 4);
1270
- d.push(xe({ range: N, key: `selection-inside-edge-${K}`, x: yt.x - 1, y: yt.y - 1, width: Math.max(yt.width + 1, 0), height: Math.max(yt.height + 1, 0), style: { overflow: "hidden" }, stroke: j, strokeWidth: we }));
1262
+ const G = x?.cell ? e.getCellCoordsAsRangeCoords(x?.cell) : or;
1263
+ !x || x.ranges && x.ranges.length !== 0 || (x = { ranges: [G], rangeIndex: 0, cell: x.cell });
1264
+ for (let j = 0; x && j < x.ranges.length; j++) {
1265
+ const K = x.ranges[j], dt = E(K, j, j === x.rangeIndex ? x.cell : null);
1266
+ dt && d.push(dt);
1267
+ const I = 2, ve = 0.5, It = e.toClipBounds(e.getRangeCoordsBounds(K, { top: 0, left: 0, right: 0, bottom: 0 }), Vt);
1268
+ if (It) {
1269
+ const xe = (x.ranges.length, 4);
1270
+ d.push(pe({ range: K, key: `selection-inside-edge-${j}`, x: It.x - 1, y: It.y - 1, width: Math.max(It.width + 1, 0), height: Math.max(It.height + 1, 0), style: { overflow: "hidden" }, stroke: q, strokeWidth: xe }));
1271
1271
  }
1272
1272
  if (x.ranges.length === 1) {
1273
- const we = e.toClipBounds(e.getRangeCoordsBounds(N), Vt);
1274
- if (we) {
1275
- Ye || d.push(xe({ range: N, key: `move-selection-hit-box-${K}`, x: we.width > 1 ? we.x : we.x - (Ce / 2 + 1), y: we.height > 1 ? we.y : we.y - (Ce / 2 + 1), width: Math.max(we.width + 2, 1), height: Math.max(we.height + 2, 1), stroke: "transparent", style: { boxShadow: "none" }, pathProps: { cursor: Je ? void 0 : "move", pointerEvents: "stroke" }, strokeWidth: Ce, ...$e }));
1273
+ const xe = e.toClipBounds(e.getRangeCoordsBounds(K), Vt);
1274
+ if (xe) {
1275
+ Xe || d.push(pe({ range: K, key: `move-selection-hit-box-${j}`, x: xe.width > 1 ? xe.x : xe.x - (be / 2 + 1), y: xe.height > 1 ? xe.y : xe.y - (be / 2 + 1), width: Math.max(xe.width + 2, 1), height: Math.max(xe.height + 2, 1), stroke: "transparent", style: { boxShadow: "none" }, pathProps: { cursor: Ye ? void 0 : "move", pointerEvents: "stroke" }, strokeWidth: be, ...ze }));
1276
1276
  const ue = I;
1277
- d.push(xe({ range: N, key: `selection-single-${K}`, x: we.x - ue / 2, y: we.y - ue / 2, width: Math.max(we.width + ue / 2, 1), height: Math.max(we.height + ue / 2, 1), stroke: X, strokeWidth: ue }));
1277
+ d.push(pe({ range: K, key: `selection-single-${j}`, x: xe.x - ue / 2, y: xe.y - ue / 2, width: Math.max(xe.width + ue / 2, 1), height: Math.max(xe.height + ue / 2, 1), stroke: X, strokeWidth: ue }));
1278
1278
  }
1279
1279
  } else {
1280
- const we = e.toClipBounds(e.getRangeCoordsBounds(N, { top: -1, left: -1, right: -2, bottom: -2 }), Vt);
1281
- we && d.push(xe({ range: N, key: `selection-multi-${K}`, x: we.width > 1 ? we.x : we.x - pe / 2, y: we.height > 1 ? we.y : we.y - pe / 2, width: Math.max(we.width, pe) + 1, height: Math.max(we.height, pe) + 1, stroke: X, style: { overflow: "hidden" }, strokeWidth: 2 }));
1280
+ const xe = e.toClipBounds(e.getRangeCoordsBounds(K, { top: -1, left: -1, right: -2, bottom: -2 }), Vt);
1281
+ xe && d.push(pe({ range: K, key: `selection-multi-${j}`, x: xe.width > 1 ? xe.x : xe.x - ve / 2, y: xe.height > 1 ? xe.y : xe.y - ve / 2, width: Math.max(xe.width, ve) + 1, height: Math.max(xe.height, ve) + 1, stroke: X, style: { overflow: "hidden" }, strokeWidth: 2 }));
1282
1282
  }
1283
- if (x.ranges.length > 1 && K === x.rangeIndex) {
1284
- const we = e.getCellCoordsAsRangeCoords(x.cell), ue = e.toClipBounds(e.getRangeCoordsBounds(we, { top: 1, left: 1, right: -1, bottom: -1 }), Vt);
1285
- ue && d.push(xe({ range: N, key: `selection-anchor-${K}`, x: ue.x, y: ue.y, width: Math.max(ue.width, pe), height: Math.max(ue.height, pe), stroke: X, style: { overflow: "hidden" }, strokeWidth: 2 }));
1283
+ if (x.ranges.length > 1 && j === x.rangeIndex) {
1284
+ const xe = e.getCellCoordsAsRangeCoords(x.cell), ue = e.toClipBounds(e.getRangeCoordsBounds(xe, { top: 1, left: 1, right: -1, bottom: -1 }), Vt);
1285
+ ue && d.push(pe({ range: K, key: `selection-anchor-${j}`, x: ue.x, y: ue.y, width: Math.max(ue.width, ve), height: Math.max(ue.height, ve), stroke: X, style: { overflow: "hidden" }, strokeWidth: 2 }));
1286
1286
  }
1287
- if (K === x.ranges.length - 1) {
1287
+ if (j === x.ranges.length - 1) {
1288
1288
  a = null, u = null;
1289
- const we = N.rowStart === ge().top && N.rowEnd === ge().bottom, ue = N.colStart === ge().left && N.colEnd === ge().right, st = e.getRangeCoordsBounds(N);
1289
+ const xe = K.rowStart === ge().top && K.rowEnd === ge().bottom, ue = K.colStart === ge().left && K.colEnd === ge().right, at = e.getRangeCoordsBounds(K);
1290
1290
  let Ft = null;
1291
- if (we || ue) {
1292
- if (Ft = e.toClipBounds(st, Vt), Object.keys(e.allViews()).length > 1) {
1293
- const Mn = e.getVisibleRangeCoords(), _n = e.allViews()[et.TopLeft], Do = e.allViews()[et.Top], To = e.allViews()[et.Left], kn = e.getAnchor();
1294
- (ue && (kn === et.Top && _n || kn === et.Center && To || !V.isCellWithinRange({ colIndex: N.colStart, rowIndex: N.rowEnd }, Mn) && !V.isCellWithinRange({ colIndex: N.colStart, rowIndex: N.rowEnd + 1 }, Mn)) || we && (kn === et.Left && _n || kn === et.Center && Do || !V.isCellWithinRange({ colIndex: N.colEnd, rowIndex: N.rowStart }, Mn) && !V.isCellWithinRange({ colIndex: N.colEnd + 1, rowIndex: N.rowStart }, Mn))) && (Ft = null);
1291
+ if (xe || ue) {
1292
+ if (Ft = e.toClipBounds(at, Vt), Object.keys(e.allViews()).length > 1) {
1293
+ const Mn = e.getVisibleRangeCoords(), _n = e.allViews()[_e.TopLeft], Do = e.allViews()[_e.Top], To = e.allViews()[_e.Left], kn = e.getAnchor();
1294
+ (ue && (kn === _e.Top && _n || kn === _e.Center && To || !V.isCellWithinRange({ colIndex: K.colStart, rowIndex: K.rowEnd }, Mn) && !V.isCellWithinRange({ colIndex: K.colStart, rowIndex: K.rowEnd + 1 }, Mn)) || xe && (kn === _e.Left && _n || kn === _e.Center && Do || !V.isCellWithinRange({ colIndex: K.colEnd, rowIndex: K.rowStart }, Mn) && !V.isCellWithinRange({ colIndex: K.colEnd + 1, rowIndex: K.rowStart }, Mn))) && (Ft = null);
1295
1295
  }
1296
- } else Ft = e.toClipBounds(st, Vt);
1296
+ } else Ft = e.toClipBounds(at, Vt);
1297
1297
  if (!Ft || Ft.width === 0 || Ft.height === 0) continue;
1298
- a = { x: Ft.x + Ft.width + 1, y: Ft.y + Ft.height + 1 }, Ft.width === 0 || Ft.height === 0 || N.rowStart === ge().top && N.colStart === ge().left && N.rowEnd === ge().bottom && N.colEnd === ge().right || (we ? (a.y = I, u = "tr") : ue && (a.x = I, u = "bl"));
1298
+ a = { x: Ft.x + Ft.width + 1, y: Ft.y + Ft.height + 1 }, Ft.width === 0 || Ft.height === 0 || K.rowStart === ge().top && K.colStart === ge().left && K.rowEnd === ge().bottom && K.colEnd === ge().right || (xe ? (a.y = I, u = "tr") : ue && (a.x = I, u = "bl"));
1299
1299
  }
1300
1300
  }
1301
1301
  let F = null;
1302
- if (ze) {
1303
- const K = e.toClipBounds(e.getRangeCoordsBounds(ze, { top: 0, left: 0, right: 0, bottom: 0 }), Vt);
1304
- K && (F = xe({ ...g, range: ze, key: "remove-selection", x: K.x, y: K.y, width: K.width, height: K.height, strokeWidth: 2, stroke: kt, fill: bt }));
1302
+ if (De) {
1303
+ const j = e.toClipBounds(e.getRangeCoordsBounds(De, { top: 0, left: 0, right: 0, bottom: 0 }), Vt);
1304
+ j && (F = pe({ ...g, range: De, key: "remove-selection", x: j.x, y: j.y, width: j.width, height: j.height, strokeWidth: 2, stroke: Pt, fill: Et }));
1305
1305
  }
1306
- let H = null;
1307
- if (Pt) {
1308
- const K = e.toClipBounds(e.getRangeCoordsBounds(Pt, { top: 0, left: 0, right: 0, bottom: 0 }), Vt);
1309
- K && (H = xe({ range: Pt, key: "selection-fill-outline", x: K.x - 2 / 2, y: K.y - 2 / 2, width: K.width + 2 / 2, height: K.height + 2 / 2, strokeWidth: 2, stroke: X, strokeDasharray: "3 2" }));
1306
+ let N = null;
1307
+ if (Dt) {
1308
+ const j = e.toClipBounds(e.getRangeCoordsBounds(Dt, { top: 0, left: 0, right: 0, bottom: 0 }), Vt);
1309
+ j && (N = pe({ range: Dt, key: "selection-fill-outline", x: j.x - 2 / 2, y: j.y - 2 / 2, width: j.width + 2 / 2, height: j.height + 2 / 2, strokeWidth: 2, stroke: X, strokeDasharray: "3 2" }));
1310
1310
  }
1311
- let te = null;
1312
- !Y && a && !Je && (te = xo(Io, { ...a, corner: u, size: 7.5, borderStroke: `${j} solid`, style: { borderRadius: 1 }, background: X, ...Se, key: "fillHandle" }));
1313
- const ye = [...d];
1314
- if (F && ye.push(F), H && ye.push(H), te && ye.push(te), !wt && Ot && x?.ranges.length === 1 && x.ranges[x.ranges.length - 1]) {
1315
- const K = x.ranges[x.ranges.length - 1], N = K.rowStart === ge().top && K.rowEnd === ge().bottom, at = K.colStart === ge().left && K.colEnd === ge().right, I = { view: e, range: K, borderStroke: `${X} solid`, background: j, selectionTouchPointerHandler: $n, ...ut, onTouchSelectStart: (pe) => cn(pe), onTouchSelectEnd: () => cn(null), currentTouchAnchor: vn };
1316
- ye.push(Ee(Zn, { anchor: at ? "b" : N ? "r" : "br", scrollableElement: t.current, ...I }, "touch-select-handle-after")), ye.push(Ee(Zn, { anchor: at ? "t" : N ? "l" : "tl", scrollableElement: t.current, ...I }, "touch-select-handle-before"));
1311
+ let ee = null;
1312
+ !Y && a && !Ye && (ee = xo(Io, { ...a, corner: u, size: 7.5, borderStroke: `${q} solid`, style: { borderRadius: 1 }, background: X, ...ne, key: "fillHandle" }));
1313
+ const Se = [...d];
1314
+ if (F && Se.push(F), N && Se.push(N), ee && Se.push(ee), !xt && zt && x?.ranges.length === 1 && x.ranges[x.ranges.length - 1]) {
1315
+ const j = x.ranges[x.ranges.length - 1], K = j.rowStart === ge().top && j.rowEnd === ge().bottom, dt = j.colStart === ge().left && j.colEnd === ge().right, I = { view: e, range: j, borderStroke: `${X} solid`, background: q, selectionTouchPointerHandler: $n, ...ht, onTouchSelectStart: (ve) => cn(ve), onTouchSelectEnd: () => cn(null), currentTouchAnchor: vn };
1316
+ Se.push(Ce(Zn, { anchor: dt ? "b" : K ? "r" : "br", scrollableElement: t.current, ...I }, "touch-select-handle-after")), Se.push(Ce(Zn, { anchor: dt ? "t" : K ? "l" : "tl", scrollableElement: t.current, ...I }, "touch-select-handle-before"));
1317
1317
  }
1318
- if (Je) {
1319
- const K = e.toClipBounds(e.getRangeCoordsBounds(Je, { top: 1, left: 1, right: 1, bottom: 1 }), Vt);
1320
- K && ye.push(xe({ range: Je, key: "selection-move-outline", x: K.x - Q / 2, y: K.y - Q / 2, width: Math.max(K.width + Q / 2, 1), height: Math.max(K.height + Q / 2, 1), stroke: X, style: { boxShadow: "none", transitionDuration: "70ms", transitionTimingFunction: "ease-in", transitionProperty: "left, top, width, height", willChange: "left, top, width, height" }, strokeWidth: Q }));
1318
+ if (Ye) {
1319
+ const j = e.toClipBounds(e.getRangeCoordsBounds(Ye, { top: 1, left: 1, right: 1, bottom: 1 }), Vt);
1320
+ j && Se.push(pe({ range: Ye, key: "selection-move-outline", x: j.x - J / 2, y: j.y - J / 2, width: Math.max(j.width + J / 2, 1), height: Math.max(j.height + J / 2, 1), stroke: X, style: { boxShadow: "none", transitionDuration: "70ms", transitionTimingFunction: "ease-in", transitionProperty: "left, top, width, height", willChange: "left, top, width, height" }, strokeWidth: J }));
1321
1321
  }
1322
- return Ee("div", { children: ye }, "selection");
1323
- }, [ct, ze, Y, Pt, Ye, Je, ge, j, X, L, kt, bt, wt, ut, vn]), Lt = Ve(() => {
1322
+ return Ce("div", { children: Se }, "selection");
1323
+ }, [st, De, Y, Dt, Xe, Ye, ge, q, X, L, Pt, Et, xt, ht, vn]), Lt = Ae(() => {
1324
1324
  const e = () => t.current;
1325
1325
  return [new se("moveToPageDown", e, { label: "Page Down", description: "Shift viewport down one page.", shortcut: [{ key: "PageDown" }] }, () => bn(!1)), new se("selectToPageDown", e, { label: "Select To Page Down", description: "Shift viewport and select down one page.", shortcut: [{ key: "PageDown", modifiers: [ae.Shift] }] }, () => bn(!0)), new se("moveToPageRight", e, { label: "Page Right", description: "Shift viewport right one page.", shortcut: [{ key: "PageDown", modifiers: [ae.Alt] }] }, () => Cn(!1)), new se("selectToPageRight", e, { label: "Page Right", description: "Shift viewport right one page.", shortcut: [{ key: "PageDown", modifiers: [ae.Alt, ae.Shift] }] }, () => Cn(!0)), new se("moveToPageUp", e, { label: "Page Up", description: "Shift viewport up one page.", shortcut: [{ key: "PageUp" }] }, () => At(!1)), new se("selectToPageUp", e, { label: "Page Up", description: "Shift viewport up one page.", shortcut: [{ key: "PageUp", modifiers: [ae.Shift] }] }, () => At(!0)), new se("moveToPageLeft", e, { label: "Page Left", description: "Shift viewport left one page.", shortcut: [{ key: "PageUp", modifiers: [ae.Alt] }] }, () => xn(!1)), new se("selectToPageLeft", e, { label: "Page Left", description: "Shift viewport left one page.", shortcut: [{ key: "PageUp", modifiers: [ae.Alt, ae.Shift] }] }, () => xn(!0)), new se("selectColumn", e, { label: "Select Column", description: "Select the columns for the selected cells.", shortcut: { key: "Space", modifiers: [ae.Ctrl] } }, Bn), new se("selectRow", e, { label: "Select Row", description: "Select the rows for the selected cells.", shortcut: { key: "Space", modifiers: [ae.Shift] } }, An), new se("selectToColumnStart", e, { label: "Select To Column Start", description: "Select the columns to the beginning of the sheet." }, () => Sn(!0)), new se("selectToColumnEnd", e, { label: "Select To Column End", description: "Select the columns to the end of the sheet." }, () => yn(!0)), new se("moveToRowStart", e, { label: "Move to Row Home", description: "Move to the beginning of the row.", shortcut: [{ key: "Home" }] }, () => fn(!1)), new se("selectToRowStart", e, { label: "Select to Row Home", description: "Select to the beginning of the row.", shortcut: [{ key: "Home", modifiers: [ae.Shift] }] }, () => fn(!0)), new se("moveToSheetStart", e, { label: "Move to Sheet Home", description: "Move to the beginning of the sheet.", shortcut: [{ key: "Home", modifiers: [ae.Ctrl] }] }, () => an(!1)), new se("selectToSheetStart", e, { label: "Select to Sheet Home", description: "Select to the beginning of the sheet.", shortcut: [{ key: "Home", modifiers: [ae.Ctrl, ae.Shift] }] }, () => an(!0)), new se("moveToRowEnd", e, { label: "Move to Row End", description: "Move to the end of the row.", shortcut: [{ key: "End" }] }, () => gn(!1)), new se("selectToRowEnd", e, { label: "Select to Row End", description: "Select to the end of the row.", shortcut: [{ key: "End", modifiers: [ae.Shift] }] }, () => gn(!0)), new se("moveToSheetEnd", e, { label: "Move to Sheet End", description: "Move to the end of the sheet.", shortcut: [{ key: "End", modifiers: [ae.Ctrl] }] }, () => on(!1)), new se("selectToSheetEnd", e, { label: "Select to Sheet End", description: "Select to the end of the sheet.", shortcut: [{ key: "End", modifiers: [ae.Ctrl, ae.Shift] }] }, () => on(!0)), new se("scrollToActiveCoords", e, { label: "Scroll to Active Cell", description: "Scroll to the Active Cell.", shortcut: { key: "Backspace", modifiers: [ae.Ctrl] } }, Qt), new se("scrollToActiveCoordsClearSelection", e, { label: "Scroll to Active Cell", description: "Scroll to the Active Cell and clear selection.", shortcut: { key: "Backspace", modifiers: [ae.Shift] } }, () => {
1326
- Jt(), it(v.cell, !0);
1327
- }), new se("traverseSelectionRight", e, { label: "Traverse Right", description: "Traverse the selection moving rightward.", shortcut: { key: "Tab" } }, En), new se("traverseSelectionLeft", e, { label: "Traverse Left", description: "Traverse the selection moving leftward.", shortcut: { key: "Tab", modifiers: [ae.Shift] } }, In), new se("traverseSelectionDown", e, { label: "Traverse Down", description: "Traverse the selection moving downward.", shortcut: [{ key: "Enter" }, { key: "NumpadEnter" }] }, Un), new se("traverseSelectionUp", e, { label: "Traverse Up", description: "Traverse the selection moving upward.", shortcut: [{ key: "Enter", modifiers: [ae.Shift] }, { key: "NumpadEnter", modifiers: [ae.Shift] }] }, Wn), new se("moveLeft", e, { label: "Move Left", description: "Move active cell to the left.", shortcut: [{ key: "ArrowLeft" }] }, Rn), new se("selectLeft", e, { label: "Select Left", description: "Extend selection left.", shortcut: [{ key: "ArrowLeft", modifiers: [ae.Shift] }] }, f), new se("moveContentfulLeft", e, { label: "Move Left Contentful", description: "Move left to the next cell with content.", shortcut: [{ key: "ArrowLeft", modifiers: [ae.Ctrl] }] }, m), new se("selectContentfulLeft", e, { label: "Select Left Contentful", description: "Extend selection left to the next cell with content.", shortcut: [{ key: "ArrowLeft", modifiers: [ae.Ctrl, ae.Shift] }] }, C), new se("moveRight", e, { label: "Move Right", description: "Move active cell to the right.", shortcut: [{ key: "ArrowRight" }] }, S), new se("selectRight", e, { label: "Select Right", description: "Extend selection right.", shortcut: [{ key: "ArrowRight", modifiers: [ae.Shift] }] }, y), new se("moveContentfulRight", e, { label: "Move Right Contentful", description: "Move right to the next cell with content.", shortcut: [{ key: "ArrowRight", modifiers: [ae.Ctrl] }] }, B), new se("selectContentfulRight", e, { label: "Select Right Contentful", description: "Extend selection right to the next cell with content.", shortcut: [{ key: "ArrowRight", modifiers: [ae.Ctrl, ae.Shift] }] }, de), new se("moveUp", e, { label: "Move Up", description: "Move active cell to the up.", shortcut: [{ key: "ArrowUp" }] }, q), new se("selectUp", e, { label: "Select Up", description: "Extend selection up.", shortcut: [{ key: "ArrowUp", modifiers: [ae.Shift] }] }, ce), new se("moveContentfulUp", e, { label: "Move Up Contentful", description: "Move up to the next cell with content.", shortcut: [{ key: "ArrowUp", modifiers: [ae.Ctrl] }] }, G), new se("selectContentfulUp", e, { label: "Select Up Contentful", description: "Extend selection up to the next cell with content.", shortcut: [{ key: "ArrowUp", modifiers: [ae.Ctrl, ae.Shift] }] }, Te), new se("moveDown", e, { label: "Move Down", description: "Move active cell to the down.", shortcut: [{ key: "ArrowDown" }] }, Ze), new se("selectDown", e, { label: "Select Down", description: "Extend selection down.", shortcut: [{ key: "ArrowDown", modifiers: [ae.Shift] }] }, me), new se("moveContentfulDown", e, { label: "Move Down Contentful", description: "Move down to the next cell with content.", shortcut: [{ key: "ArrowDown", modifiers: [ae.Ctrl] }] }, ke), new se("selectContentfulDown", e, { label: "Select Down Contentful", description: "Extend selection down to the next cell with content.", shortcut: [{ key: "ArrowDown", modifiers: [ae.Ctrl, ae.Shift] }] }, Le), new se("selectVisible", e, { label: "Select Visible", description: "Select visible cells only.", shortcut: { key: ";", modifiers: [ae.Alt] } }, Fn), new se("traverseSelectionPreviousRange", e, { label: "Traverse Previous Range", description: "Traverse the selection to the previous range.", shortcut: { key: "ArrowLeft", modifiers: [ae.Ctrl, ae.Alt] } }, pn), new se("traverseSelectionNextRange", e, { label: "Traverse Next Range", description: "Traverse the selection to the next range.", shortcut: { key: "ArrowRight", modifiers: [ae.Ctrl, ae.Alt] } }, Hn), new se("traverseSelectionCorners", e, { label: "Traverse Corners", description: "Traverse the selection through the corners of the selected range.", shortcut: { key: ".", modifiers: [ae.Ctrl] } }, Nn)];
1326
+ Jt(), et(v.cell, !0);
1327
+ }), new se("traverseSelectionRight", e, { label: "Traverse Right", description: "Traverse the selection moving rightward.", shortcut: { key: "Tab" } }, En), new se("traverseSelectionLeft", e, { label: "Traverse Left", description: "Traverse the selection moving leftward.", shortcut: { key: "Tab", modifiers: [ae.Shift] } }, In), new se("traverseSelectionDown", e, { label: "Traverse Down", description: "Traverse the selection moving downward.", shortcut: [{ key: "Enter" }, { key: "NumpadEnter" }] }, Un), new se("traverseSelectionUp", e, { label: "Traverse Up", description: "Traverse the selection moving upward.", shortcut: [{ key: "Enter", modifiers: [ae.Shift] }, { key: "NumpadEnter", modifiers: [ae.Shift] }] }, Wn), new se("moveLeft", e, { label: "Move Left", description: "Move active cell to the left.", shortcut: [{ key: "ArrowLeft" }] }, Rn), new se("selectLeft", e, { label: "Select Left", description: "Extend selection left.", shortcut: [{ key: "ArrowLeft", modifiers: [ae.Shift] }] }, f), new se("moveContentfulLeft", e, { label: "Move Left Contentful", description: "Move left to the next cell with content.", shortcut: [{ key: "ArrowLeft", modifiers: [ae.Ctrl] }] }, m), new se("selectContentfulLeft", e, { label: "Select Left Contentful", description: "Extend selection left to the next cell with content.", shortcut: [{ key: "ArrowLeft", modifiers: [ae.Ctrl, ae.Shift] }] }, C), new se("moveRight", e, { label: "Move Right", description: "Move active cell to the right.", shortcut: [{ key: "ArrowRight" }] }, S), new se("selectRight", e, { label: "Select Right", description: "Extend selection right.", shortcut: [{ key: "ArrowRight", modifiers: [ae.Shift] }] }, y), new se("moveContentfulRight", e, { label: "Move Right Contentful", description: "Move right to the next cell with content.", shortcut: [{ key: "ArrowRight", modifiers: [ae.Ctrl] }] }, B), new se("selectContentfulRight", e, { label: "Select Right Contentful", description: "Extend selection right to the next cell with content.", shortcut: [{ key: "ArrowRight", modifiers: [ae.Ctrl, ae.Shift] }] }, me), new se("moveUp", e, { label: "Move Up", description: "Move active cell to the up.", shortcut: [{ key: "ArrowUp" }] }, le), new se("selectUp", e, { label: "Select Up", description: "Extend selection up.", shortcut: [{ key: "ArrowUp", modifiers: [ae.Shift] }] }, we), new se("moveContentfulUp", e, { label: "Move Up Contentful", description: "Move up to the next cell with content.", shortcut: [{ key: "ArrowUp", modifiers: [ae.Ctrl] }] }, H), new se("selectContentfulUp", e, { label: "Select Up Contentful", description: "Extend selection up to the next cell with content.", shortcut: [{ key: "ArrowUp", modifiers: [ae.Ctrl, ae.Shift] }] }, Re), new se("moveDown", e, { label: "Move Down", description: "Move active cell to the down.", shortcut: [{ key: "ArrowDown" }] }, je), new se("selectDown", e, { label: "Select Down", description: "Extend selection down.", shortcut: [{ key: "ArrowDown", modifiers: [ae.Shift] }] }, $e), new se("moveContentfulDown", e, { label: "Move Down Contentful", description: "Move down to the next cell with content.", shortcut: [{ key: "ArrowDown", modifiers: [ae.Ctrl] }] }, Je), new se("selectContentfulDown", e, { label: "Select Down Contentful", description: "Extend selection down to the next cell with content.", shortcut: [{ key: "ArrowDown", modifiers: [ae.Ctrl, ae.Shift] }] }, Te), new se("selectVisible", e, { label: "Select Visible", description: "Select visible cells only.", shortcut: { key: ";", modifiers: [ae.Alt] } }, Fn), new se("traverseSelectionPreviousRange", e, { label: "Traverse Previous Range", description: "Traverse the selection to the previous range.", shortcut: { key: "ArrowLeft", modifiers: [ae.Ctrl, ae.Alt] } }, pn), new se("traverseSelectionNextRange", e, { label: "Traverse Next Range", description: "Traverse the selection to the next range.", shortcut: { key: "ArrowRight", modifiers: [ae.Ctrl, ae.Alt] } }, Hn), new se("traverseSelectionCorners", e, { label: "Traverse Corners", description: "Traverse the selection through the corners of the selected range.", shortcut: { key: ".", modifiers: [ae.Ctrl] } }, Nn)];
1328
1328
  }, []);
1329
- return Ve(() => {
1329
+ return Ae(() => {
1330
1330
  n?.addCommands(Lt, !0);
1331
- }, [n]), { selection: ct, setSelectionCell: it, setSelectionRanges: ht, overlay: St, cursor: ln, onPointerDown: Ln, clearLastSelection: ve, newSelection: Ct, modifySelection: ft, appendSelection: Me, clearSelections: Jt, isEntire: It, navigate: ot, navigateSelection: Yt };
1331
+ }, [n]), { selection: st, setSelectionCell: et, setSelectionRanges: ft, overlay: Ct, cursor: ln, onPointerDown: Ln, clearLastSelection: de, newSelection: Rt, modifySelection: gt, appendSelection: Ee, clearSelections: Jt, isEntire: ct, navigate: rt, navigateSelection: Yt };
1332
1332
  };
1333
1333
  function Tn(t, n) {
1334
1334
  if (!t) throw new Error("Invariant failed");
1335
1335
  }
1336
- const uo = { "sheetxl-grid": "_sheetxl-grid_h9wwa_7" }, lr = Object.freeze({ top: 0, left: 0 }), ir = Object.freeze({ bottom: -4, right: -4 }), cr = Object.freeze({ horizontal: !0, vertical: !0 }), ho = [et.TopLeft, et.Top, et.Left, et.Center], Cr = 150, Xt = 3e3, Yn = {}, Ro = Kt(tn((t, n) => {
1337
- const { width: o, height: r, rowCount: c = 1, columnCount: s = 1, defaultRowHeight: i, defaultColumnWidth: l, getRowHeight: h, getColumnWidth: O, layout: z, onViewportScroll: M, onImmediateScroll: R, showGridLines: $ = !0, gridLineColor: Y = "rgb(224, 224, 224)", gridLineRowsProps: j, gridLineColumnsProps: ee, clipCells: Re = !0, cursor: J, freezeLeft: k = 0, freezeTop: U = 0, freezeLeftProps: he, freezeTopProps: P, cellRenderer: ie, onViewportChange: Ue, onFirstRender: Oe, overlayRenderer: He, overlayProps: fe, overlays: be, overlaysProps: A, allowOverlaysOverflow: p = !1, stageProps: je, stageWrapper: Ye = null, hiddenRowsAt: ne, hiddenColumnsAt: Ce, hiddenCellAt: Q, getVisibleCells: L, zoom: X = 1, enableMouseWheel: kt = !0, onWheelScroll: bt, getCellCoordsAsRangeCoords: wt = V.cellToRange, scrollPoint: ut = lr, style: ge = {}, ...Wt } = t;
1338
- Tn(ie), Tn(!t?.children);
1339
- const D = T(R, [R]), b = T(Ue, [Ue]), Pe = T(M, [M]), oe = T(bt, [bt]), xe = T(Oe, [Oe]), Ne = le(null), rt = le(null), Rt = le(null), [lt, jt] = zn((f) => f + 1, 0), [xt, v] = dt({ left: ut?.left ?? 0, top: ut?.top ?? 0, horizontalScrollDirection: null, verticalScrollDirection: null }), re = le(null), Ke = le(xt), { top: ht, left: Qe, verticalScrollDirection: ln, horizontalScrollDirection: Zt } = xt, Pt = le(!1), hn = Ao({ rowCount: c, columnCount: s, defaultRowHeight: i, defaultColumnWidth: l, getRowHeight: h, getColumnWidth: O }), Gt = le(null), ze = Ve(() => {
1336
+ const uo = { "sheetxl-grid": "_sheetxl-grid_h9wwa_7" }, lr = Object.freeze({ top: 0, left: 0 }), ir = Object.freeze({ bottom: -4, right: -4 }), cr = Object.freeze({ horizontal: !0, vertical: !0 }), ho = [_e.TopLeft, _e.Top, _e.Left, _e.Center], Cr = 150, Xt = 3e3, Yn = {}, Ro = Kt(tn((t, n) => {
1337
+ const { width: o, height: r, rowCount: c = 1, columnCount: s = 1, defaultRowHeight: i, defaultColumnWidth: l, getRowHeight: h, getColumnWidth: O, layout: z, onViewportScroll: M, onImmediateScroll: R, showGridLines: $ = !0, gridLineColor: Y = "rgb(224, 224, 224)", gridLineRowsProps: q, gridLineColumnsProps: _, clipCells: Ie = !0, cursor: Z, freezeLeft: k = 0, freezeTop: U = 0, freezeLeftProps: he, freezeTopProps: P, cellRenderer: ce, onViewportChange: Ve, onFirstRender: Pe, overlayRenderer: We, overlayProps: fe, overlays: ye, overlaysProps: A, allowOverlaysOverflow: p = !1, stageProps: Ne, stageWrapper: Xe = null, hiddenRowsAt: te, hiddenColumnsAt: be, hiddenCellAt: J, getVisibleCells: L, zoom: X = 1, enableMouseWheel: Pt = !0, onWheelScroll: Et, getCellCoordsAsRangeCoords: xt = V.cellToRange, scrollPoint: ht = lr, style: ge = {}, ...Wt } = t;
1338
+ Tn(ce), Tn(!t?.children);
1339
+ const D = T(R, [R]), b = T(Ve, [Ve]), Me = T(M, [M]), oe = T(Et, [Et]), pe = T(Pe, [Pe]), Ue = ie(null), lt = ie(null), Mt = ie(null), [it, jt] = zn((f) => f + 1, 0), [pt, v] = ut({ left: ht?.left ?? 0, top: ht?.top ?? 0, horizontalScrollDirection: null, verticalScrollDirection: null }), re = ie(null), He = ie(pt), { top: ft, left: Qe, verticalScrollDirection: ln, horizontalScrollDirection: Zt } = pt, Dt = ie(!1), hn = Ao({ rowCount: c, columnCount: s, defaultRowHeight: i, defaultColumnWidth: l, getRowHeight: h, getColumnWidth: O }), Gt = ie(null), De = Ae(() => {
1340
1340
  const f = z || hn;
1341
1341
  return Gt.current = null, { getColOffset: (m) => f.getColOffset(m) * X, getColIndex: (m) => f.getColIndex(m / X), getRowOffset: (m) => f.getRowOffset(m) * X, getRowIndex: (m) => f.getRowIndex(m / X) };
1342
1342
  }, [hn, z, X]), Ut = (f, m, C) => {
1343
1343
  const S = (m?.left ?? 0) + 0, y = (m?.top ?? 0) + 0;
1344
1344
  return { getColOffset: (B) => f.getColOffset(B) - S, getColIndex: (B) => f.getColIndex(B + S), getRowOffset: (B) => f.getRowOffset(B) - y, getRowIndex: (B) => f.getRowIndex(B + y) };
1345
- }, mt = T((f, m = !1) => On(f, m, ze.getRowOffset, m ? 0 : c), [c, ze?.getRowOffset]), Bt = T(ne ?? mt, [ne]), vn = T((f, m = !1) => On(f, m, ze.getColOffset, m ? s : 0), [s, ze?.getColOffset]), cn = T(Ce ?? vn, [Ce]), Xe = Ve(() => Math.min(o ?? 800, ze.getColOffset(s)), [ze.getColOffset, s, o]), qe = Ve(() => Math.min(r ?? 600, ze.getRowOffset(c)), [ze.getRowOffset, c, r]), nn = W((f) => {
1345
+ }, St = T((f, m = !1) => On(f, m, De.getRowOffset, m ? 0 : c), [c, De?.getRowOffset]), Bt = T(te ?? St, [te]), vn = T((f, m = !1) => On(f, m, De.getColOffset, m ? s : 0), [s, De?.getColOffset]), cn = T(be ?? vn, [be]), Ge = Ae(() => Math.min(o ?? 800, De.getColOffset(s)), [De.getColOffset, s, o]), Ke = Ae(() => Math.min(r ?? 600, De.getRowOffset(c)), [De.getRowOffset, c, r]), nn = W((f) => {
1346
1346
  Nt.canUseDOM && setTimeout(() => {
1347
- Ne.current?.focus({ preventScroll: !0, ...f });
1347
+ Ue.current?.focus({ preventScroll: !0, ...f });
1348
1348
  }, 0);
1349
- }, []), vt = W((f) => Ne.current?.contains(f) || rt.current?.contains(f), []);
1350
- gt(() => {
1351
- Pt.current && (re.current && re.current.left !== Ke.current?.left && re.current.top !== Ke.current?.top || (re.current = null, Pe?.({ left: Qe, top: ht })));
1352
- }, [Qe, ht]);
1353
- const qt = T(() => ({ top: ht, left: Qe }), [ht, Qe]), De = Ve(() => {
1349
+ }, []), yt = W((f) => Ue.current?.contains(f) || lt.current?.contains(f), []);
1350
+ wt(() => {
1351
+ Dt.current && (re.current && re.current.left !== He.current?.left && re.current.top !== He.current?.top || (re.current = null, Me?.({ left: Qe, top: ft })));
1352
+ }, [Qe, ft]);
1353
+ const qt = T(() => ({ top: ft, left: Qe }), [ft, Qe]), ke = Ae(() => {
1354
1354
  const f = [];
1355
1355
  let m = 0, C = 0;
1356
1356
  typeof U == "number" ? m = U : (m = U.index ?? 0, C = (U.scrollOffset ?? 0) * X);
1357
- const S = C, y = ze.getRowOffset(m), B = y - S;
1357
+ const S = C, y = De.getRowOffset(m), B = y - S;
1358
1358
  if (m > 0) {
1359
- const Ze = Ut(ze, { top: C + ze.getRowOffset(0) }), me = ze.getRowIndex(S), ke = ze.getRowIndex(y - 1);
1360
- let Le;
1361
- f[1] = { minIndex: me, maxIndex: ke, minCoord: 0, maxCoord: m - 1, minBounds: 0, maxBounds: B, visibleIndices: () => Le || (Le = Object.freeze(Pn(Bt, me, ke)), Le), layout: Ze, maxVirtualBounds: y, scrollOffset: C, freezeOffset: C };
1359
+ const je = Ut(De, { top: C + De.getRowOffset(0) }), $e = De.getRowIndex(S), Je = De.getRowIndex(y - 1);
1360
+ let Te;
1361
+ f[1] = { minIndex: $e, maxIndex: Je, minCoord: 0, maxCoord: m - 1, minBounds: 0, maxBounds: B, visibleIndices: () => Te || (Te = Object.freeze(Pn(Bt, $e, Je)), Te), layout: je, maxVirtualBounds: y, scrollOffset: C, freezeOffset: C };
1362
1362
  }
1363
- const de = Math.max(0, qe - B), q = Ut(ze, { top: ht + B }), ce = q.getRowIndex(0), G = q.getRowIndex(de);
1364
- let Te;
1365
- return f[0] = { minIndex: ce, maxIndex: G, minCoord: m, maxCoord: c - 1, minBounds: B, maxBounds: de, visibleIndices: () => Te || (Te = Object.freeze(Pn(Bt, ce, G)), Te), layout: q, maxVirtualBounds: ze.getRowOffset(c), scrollOffset: ht, freezeOffset: (m > 0 ? ze.getRowOffset(m) : 0) - C }, f;
1366
- }, [ze.getRowIndex, ze.getRowOffset, Bt, qe, c, U, ht, X]), Ge = Ve(() => {
1363
+ const me = Math.max(0, Ke - B), le = Ut(De, { top: ft + B }), we = le.getRowIndex(0), H = le.getRowIndex(me);
1364
+ let Re;
1365
+ return f[0] = { minIndex: we, maxIndex: H, minCoord: m, maxCoord: c - 1, minBounds: B, maxBounds: me, visibleIndices: () => Re || (Re = Object.freeze(Pn(Bt, we, H)), Re), layout: le, maxVirtualBounds: De.getRowOffset(c), scrollOffset: ft, freezeOffset: (m > 0 ? De.getRowOffset(m) : 0) - C }, f;
1366
+ }, [De.getRowIndex, De.getRowOffset, Bt, Ke, c, U, ft, X]), Ze = Ae(() => {
1367
1367
  const f = [];
1368
1368
  let m = 0, C = 0;
1369
1369
  typeof k == "number" ? m = k : (m = k.index ?? 0, C = (k.scrollOffset ?? 0) * X);
1370
- const S = C, y = ze.getColOffset(m), B = y - S;
1370
+ const S = C, y = De.getColOffset(m), B = y - S;
1371
1371
  if (m > 0) {
1372
- const Ze = Ut(ze, { left: C + ze.getColOffset(0) }), me = ze.getColIndex(S), ke = ze.getColIndex(y - 1);
1373
- let Le;
1374
- f[1] = { minIndex: me, maxIndex: ke, minCoord: 0, maxCoord: m - 1, minBounds: 0, maxBounds: B, visibleIndices: () => Le || (Le = Object.freeze(Pn(cn, me, ke)), Le), layout: Ze, maxVirtualBounds: y, scrollOffset: C, freezeOffset: C };
1372
+ const je = Ut(De, { left: C + De.getColOffset(0) }), $e = De.getColIndex(S), Je = De.getColIndex(y - 1);
1373
+ let Te;
1374
+ f[1] = { minIndex: $e, maxIndex: Je, minCoord: 0, maxCoord: m - 1, minBounds: 0, maxBounds: B, visibleIndices: () => Te || (Te = Object.freeze(Pn(cn, $e, Je)), Te), layout: je, maxVirtualBounds: y, scrollOffset: C, freezeOffset: C };
1375
1375
  }
1376
- const de = Math.max(0, Xe - B), q = Ut(ze, { left: Qe + B }), ce = q.getColIndex(0), G = q.getColIndex(de);
1377
- let Te;
1378
- return f[0] = { minIndex: ce, maxIndex: G, minCoord: m, maxCoord: s - 1, minBounds: B, maxBounds: de, visibleIndices: () => Te || (Te = Object.freeze(Pn(cn, ce, G)), Te), layout: q, maxVirtualBounds: ze.getColOffset(s), scrollOffset: Qe, freezeOffset: (m > 0 ? ze.getColOffset(m) : 0) - C }, f;
1379
- }, [ze.getColIndex, ze.getColOffset, cn, Xe, s, k, Qe, X]), ft = le({}), Ct = le([]), Me = Ve(() => {
1376
+ const me = Math.max(0, Ge - B), le = Ut(De, { left: Qe + B }), we = le.getColIndex(0), H = le.getColIndex(me);
1377
+ let Re;
1378
+ return f[0] = { minIndex: we, maxIndex: H, minCoord: m, maxCoord: s - 1, minBounds: B, maxBounds: me, visibleIndices: () => Re || (Re = Object.freeze(Pn(cn, we, H)), Re), layout: le, maxVirtualBounds: De.getColOffset(s), scrollOffset: Qe, freezeOffset: (m > 0 ? De.getColOffset(m) : 0) - C }, f;
1379
+ }, [De.getColIndex, De.getColOffset, cn, Ge, s, k, Qe, X]), gt = ie({}), Rt = ie([]), Ee = Ae(() => {
1380
1380
  let f = {};
1381
- const m = (S, y, B, de, q) => {
1382
- const ce = { vertical: de?.vertical || !1, horizontal: de?.horizontal || !1 };
1383
- if (S >= Ge.length || y >= De.length) return null;
1384
- const G = { rowStart: De[y].minIndex, colStart: Ge[S].minIndex, rowEnd: De[y].maxIndex, colEnd: Ge[S].maxIndex };
1385
- if (G.rowStart > G.rowEnd || G.colStart > G.colEnd) return null;
1386
- const Te = { getColIndex: (Se) => Ge[S].layout.getColIndex(Se), getColOffset: (Se) => Ge[S].layout.getColOffset(Se), getRowIndex: (Se) => De[y].layout.getRowIndex(Se), getRowOffset: (Se) => De[y].layout.getRowOffset(Se) }, Ze = Object.freeze({ left: q?.left ?? 0, top: q?.top ?? 0, right: q?.right ?? 0, bottom: q?.bottom ?? 0 }), me = Object.freeze({ x: Ge[S].minBounds, y: De[y].minBounds, width: Ge[S].maxBounds, height: De[y].maxBounds }), ke = (Se, Je) => so(Te, Se ?? G, Je), Le = { width: Ge[S].maxVirtualBounds, height: De[y].maxVirtualBounds }, ve = { left: Ge[S].scrollOffset, top: De[y].scrollOffset }, It = { left: Ge[S].freezeOffset, top: De[y].freezeOffset }, it = { width: Xe, height: qe };
1387
- let Ae = null, Ie = null;
1388
- const _e = (It.top + (de.vertical ? ve.top : 0)) / X, Et = (It.left + (de.horizontal ? ve.left : 0)) / X;
1389
- return { getStage: () => Ne.current ?? null, getVisibleRangeCoords: () => G, toClipBounds: (Se, Je) => {
1390
- let zt, Fe = 0;
1391
- return Je === void 0 || typeof Je == "number" ? (zt = ke(G), Fe = Je) : zt = Je, ((tt, Be, $e = 0) => {
1392
- if (tt.x > Be.width || tt.y > Be.height) return null;
1393
- const pt = { left: tt.x, top: tt.y, bottom: tt.height + tt.y, right: tt.width + tt.x }, ct = { left: Be.x + $e, top: Be.y + $e, bottom: Be.height - 2 * $e + Be.y, right: Be.width - 2 * $e + Be.x }, St = { left: Math.max(pt.left, ct.left), top: Math.max(pt.top, ct.top), bottom: Math.min(pt.bottom, ct.bottom), right: Math.min(pt.right, ct.right) }, Lt = { x: St.left, y: St.top, width: St.right - St.left, height: St.bottom - St.top };
1381
+ const m = (S, y, B, me, le) => {
1382
+ const we = { vertical: me?.vertical || !1, horizontal: me?.horizontal || !1 };
1383
+ if (S >= Ze.length || y >= ke.length) return null;
1384
+ const H = { rowStart: ke[y].minIndex, colStart: Ze[S].minIndex, rowEnd: ke[y].maxIndex, colEnd: Ze[S].maxIndex };
1385
+ if (H.rowStart > H.rowEnd || H.colStart > H.colEnd) return null;
1386
+ const Re = { getColIndex: (ne) => Ze[S].layout.getColIndex(ne), getColOffset: (ne) => Ze[S].layout.getColOffset(ne), getRowIndex: (ne) => ke[y].layout.getRowIndex(ne), getRowOffset: (ne) => ke[y].layout.getRowOffset(ne) }, je = Object.freeze({ left: le?.left ?? 0, top: le?.top ?? 0, right: le?.right ?? 0, bottom: le?.bottom ?? 0 }), $e = Object.freeze({ x: Ze[S].minBounds, y: ke[y].minBounds, width: Ze[S].maxBounds, height: ke[y].maxBounds }), Je = (ne, Ye) => so(Re, ne ?? H, Ye), Te = { width: Ze[S].maxVirtualBounds, height: ke[y].maxVirtualBounds }, de = { left: Ze[S].scrollOffset, top: ke[y].scrollOffset }, ct = { left: Ze[S].freezeOffset, top: ke[y].freezeOffset }, et = { width: Ge, height: Ke };
1387
+ let Be = null, tt = null;
1388
+ const bt = (ct.top + (me.vertical ? de.top : 0)) / X, qe = (ct.left + (me.horizontal ? de.left : 0)) / X;
1389
+ return { getStage: () => Ue.current ?? null, getVisibleRangeCoords: () => H, toClipBounds: (ne, Ye) => {
1390
+ let mt, Oe = 0;
1391
+ return Ye === void 0 || typeof Ye == "number" ? (mt = Je(H), Oe = Ye) : mt = Ye, ((nt, Le, ze = 0) => {
1392
+ if (nt.x > Le.width || nt.y > Le.height) return null;
1393
+ const vt = { left: nt.x, top: nt.y, bottom: nt.height + nt.y, right: nt.width + nt.x }, st = { left: Le.x + ze, top: Le.y + ze, bottom: Le.height - 2 * ze + Le.y, right: Le.width - 2 * ze + Le.x }, Ct = { left: Math.max(vt.left, st.left), top: Math.max(vt.top, st.top), bottom: Math.min(vt.bottom, st.bottom), right: Math.min(vt.right, st.right) }, Lt = { x: Ct.left, y: Ct.top, width: Ct.right - Ct.left, height: Ct.bottom - Ct.top };
1394
1394
  return Lt.height < 0 || Lt.width < 0 ? null : Lt;
1395
- })(Se ?? { x: 0, y: 0, width: me.width, height: me.height }, zt, Fe);
1396
- }, toViewBounds: (Se) => Et === 0 && _e === 0 && X === 1 ? Se : { x: (Se.x - Et) * X, y: (Se.y - _e) * X, width: Se.width * X, height: Se.height * X }, toAbsoluteBounds: (Se) => Et === 0 && _e === 0 && X === 1 ? Se : { x: Se.x / X + Et, y: Se.y / X + _e, width: Se.width / X, height: Se.height / X }, getRelativePointFromClient: (Se, Je) => {
1397
- const zt = sn(Se, Je);
1398
- return { x: zt.x - me.x, y: zt.y - me.y };
1399
- }, getLayout: () => Te, getCellCoordsAsRangeCoords: wt, getVisibleColumns: () => Ge[S].visibleIndices(), getVisibleRows: () => De[y].visibleIndices(), getVisibleColumnOffsets: () => (Ae || (Ae = co(Ge[S].layout, !0, Ge[S].visibleIndices(), G.colStart, G.colEnd)), Ae), getVisibleRowOffsets: () => (Ie || (Ie = co(De[y].layout, !1, De[y].visibleIndices(), G.rowStart, G.rowEnd)), Ie), getTotalRangeCoords: () => ({ colStart: Ge[S].minCoord, colEnd: Ge[S].maxCoord, rowStart: De[y].minCoord, rowEnd: De[y].maxCoord }), getRangeCoordsBounds: ke, scrollCellCoordsIntoView: (Se, Je) => fn(Se, Je, B), getCellCoordsFromClient: (Se, Je, zt = !1) => {
1400
- const Fe = sn(Se, Je);
1401
- if (!Fe) return null;
1402
- const tt = Te.getColIndex(Fe.x - me.x), Be = { rowIndex: Te.getRowIndex(Fe.y - me.y), colIndex: tt };
1403
- if (zt) return Be;
1404
- const $e = wt(Be);
1405
- return { rowIndex: $e.rowStart, colIndex: $e.colStart };
1406
- }, getZoom: () => X, getAnchor: () => B, getBounds: () => me, getInsets: () => Ze, getTotalSize: () => Le, getViewportSize: () => it, getScrollTopLeft: () => ve, getFreezeTopLeft: () => It, getScrollOrientation: () => ce, allViews: () => f };
1395
+ })(ne ?? { x: 0, y: 0, width: $e.width, height: $e.height }, mt, Oe);
1396
+ }, toViewBounds: (ne) => qe === 0 && bt === 0 && X === 1 ? ne : { x: (ne.x - qe) * X, y: (ne.y - bt) * X, width: ne.width * X, height: ne.height * X }, toAbsoluteBounds: (ne) => qe === 0 && bt === 0 && X === 1 ? ne : { x: ne.x / X + qe, y: ne.y / X + bt, width: ne.width / X, height: ne.height / X }, getRelativePointFromClient: (ne, Ye) => {
1397
+ const mt = sn(ne, Ye);
1398
+ return { x: mt.x - $e.x, y: mt.y - $e.y };
1399
+ }, getLayout: () => Re, getCellCoordsAsRangeCoords: xt, getVisibleColumns: () => Ze[S].visibleIndices(), getVisibleRows: () => ke[y].visibleIndices(), getVisibleColumnOffsets: () => (Be || (Be = co(Ze[S].layout, !0, Ze[S].visibleIndices(), H.colStart, H.colEnd)), Be), getVisibleRowOffsets: () => (tt || (tt = co(ke[y].layout, !1, ke[y].visibleIndices(), H.rowStart, H.rowEnd)), tt), getTotalRangeCoords: () => ({ colStart: Ze[S].minCoord, colEnd: Ze[S].maxCoord, rowStart: ke[y].minCoord, rowEnd: ke[y].maxCoord }), getRangeCoordsBounds: Je, scrollCellCoordsIntoView: (ne, Ye) => fn(ne, Ye, B), getCellCoordsFromClient: (ne, Ye, mt = !1) => {
1400
+ const Oe = sn(ne, Ye);
1401
+ if (!Oe) return null;
1402
+ const nt = Re.getColIndex(Oe.x - $e.x), Le = { rowIndex: Re.getRowIndex(Oe.y - $e.y), colIndex: nt };
1403
+ if (mt) return Le;
1404
+ const ze = xt(Le);
1405
+ return { rowIndex: ze.rowStart, colIndex: ze.colStart };
1406
+ }, getZoom: () => X, getAnchor: () => B, getBounds: () => $e, getInsets: () => je, getTotalSize: () => Te, getViewportSize: () => et, getScrollTopLeft: () => de, getFreezeTopLeft: () => ct, getScrollOrientation: () => we, allViews: () => f };
1407
1407
  };
1408
- let C = f[et.Center] = m(0, 0, et.Center, cr, ir);
1409
- return C && (f[et.Center] = C), C = m(0, 1, et.Top, { horizontal: !0 }), C && (f[et.Top] = C), C = m(1, 0, et.Left, { vertical: !0 }), C && (f[et.Left] = C), C = m(1, 1, et.TopLeft, {}), C && (f[et.TopLeft] = C), ft.current = null, f = Object.freeze(f);
1410
- }, [De, Ge, wt]), Jt = Object.keys(Me), Ot = Ge[0]?.maxVirtualBounds ?? 0, nt = De[0]?.maxVirtualBounds ?? 0, Mt = Ve(() => ({ left: Ge[1] ? Ge[1].layout.getColOffset(Ge[1].maxIndex + 1) : 0, top: De[1] ? De[1].layout.getRowOffset(De[1].maxIndex + 1) : 0 }), [Me]);
1411
- gt(() => {
1412
- if (Ct.current.length > 0) {
1413
- for (let f = 0; f < Ct.current.length; f++) Ct.current[f]();
1414
- Ct.current = [];
1408
+ let C = f[_e.Center] = m(0, 0, _e.Center, cr, ir);
1409
+ return C && (f[_e.Center] = C), C = m(0, 1, _e.Top, { horizontal: !0 }), C && (f[_e.Top] = C), C = m(1, 0, _e.Left, { vertical: !0 }), C && (f[_e.Left] = C), C = m(1, 1, _e.TopLeft, {}), C && (f[_e.TopLeft] = C), gt.current = null, f = Object.freeze(f);
1410
+ }, [ke, Ze, xt]), Jt = Object.keys(Ee), zt = Ze[0]?.maxVirtualBounds ?? 0, ot = ke[0]?.maxVirtualBounds ?? 0, kt = Ae(() => ({ left: Ze[1] ? Ze[1].layout.getColOffset(Ze[1].maxIndex + 1) : 0, top: ke[1] ? ke[1].layout.getRowOffset(ke[1].maxIndex + 1) : 0 }), [Ee]);
1411
+ wt(() => {
1412
+ if (Rt.current.length > 0) {
1413
+ for (let f = 0; f < Rt.current.length; f++) Rt.current[f]();
1414
+ Rt.current = [];
1415
1415
  }
1416
- }, [Me]);
1417
- const Dt = T(() => ({ containerWidth: Xe, containerHeight: qe, totalWidth: Ot, totalHeight: nt }), [Xe, qe, ze]);
1418
- gt(() => {
1419
- !re.current && Pt.current && b({ top: ht, left: Qe, width: Xe, height: qe, totalWidth: Ot, totalHeight: nt });
1420
- }, [ht, Qe, Ot, nt]), gt(() => {
1421
- Pt.current && b({ top: ht, left: Qe, width: Xe, height: qe, totalWidth: Ot, totalHeight: nt });
1422
- }, [Xe, qe]);
1416
+ }, [Ee]);
1417
+ const Tt = T(() => ({ containerWidth: Ge, containerHeight: Ke, totalWidth: zt, totalHeight: ot }), [Ge, Ke, De]);
1418
+ wt(() => {
1419
+ !re.current && Dt.current && b({ top: ft, left: Qe, width: Ge, height: Ke, totalWidth: zt, totalHeight: ot });
1420
+ }, [ft, Qe, zt, ot]), wt(() => {
1421
+ Dt.current && b({ top: ft, left: Qe, width: Ge, height: Ke, totalWidth: zt, totalHeight: ot });
1422
+ }, [Ge, Ke]);
1423
1423
  const sn = W((f, m) => {
1424
1424
  Tn(typeof f == "number" && typeof m == "number");
1425
- const C = Ne.current?.getBoundingClientRect();
1425
+ const C = Ue.current?.getBoundingClientRect();
1426
1426
  return C ? { x: f - C.x, y: m - C.y } : { x: f, y: m };
1427
- }, []), Ln = T((f) => Me[f] || null, [Me]), $n = T((f, m) => {
1428
- if (Object.keys(Me).length === 1) return Me[et.Center];
1427
+ }, []), Ln = T((f) => Ee[f] || null, [Ee]), $n = T((f, m) => {
1428
+ if (Object.keys(Ee).length === 1) return Ee[_e.Center];
1429
1429
  const C = sn(f, m);
1430
1430
  if (!C) return null;
1431
1431
  const { x: S, y } = C;
1432
1432
  let B = null;
1433
- const de = ho, q = de.length;
1434
- for (let ce = 0; !B && ce < q; ce++) {
1435
- const G = Me[de[ce]];
1436
- G && Qo(S, y, G.getBounds()) && (B = G);
1433
+ const me = ho, le = me.length;
1434
+ for (let we = 0; !B && we < le; we++) {
1435
+ const H = Ee[me[we]];
1436
+ H && Qo(S, y, H.getBounds()) && (B = H);
1437
1437
  }
1438
- return B || (B = Me[et.Center]), B;
1439
- }, [Me, wt]), ot = T(() => Me[et.Center].getVisibleRangeCoords(), [Me[et.Center]]), Yt = le(null), Bn = W(() => {
1438
+ return B || (B = Ee[_e.Center]), B;
1439
+ }, [Ee, xt]), rt = T(() => Ee[_e.Center].getVisibleRangeCoords(), [Ee[_e.Center]]), Yt = ie(null), Bn = W(() => {
1440
1440
  Yt.current !== null && Nt.cancelTimeout(Yt.current), Yt.current = Nt.requestTimeout(An, 150);
1441
1441
  }, []), An = W(() => {
1442
1442
  Yt.current = null, v((f) => {
1443
1443
  const m = { ...f, verticalScrollDirection: null, horizontalScrollDirection: null };
1444
- return Ke.current = m, m;
1444
+ return He.current = m, m;
1445
1445
  });
1446
1446
  }, []), Qt = T((f) => {
1447
1447
  const m = f?.left ?? f?.[0], C = f?.top ?? f?.[1];
1448
- let S = Ke.current.left;
1449
- m !== void 0 && m !== S && (m > S ? (S = Math.max(Ge?.[1]?.scrollOffset ?? 0, m), S = Math.min(Ot - Xe, S)) : S = Math.max(Ge?.[1]?.scrollOffset ?? 0, m));
1450
- let y = Ke.current.top;
1451
- if (C !== void 0 && C !== y && (C > y ? (y = Math.max(De?.[1]?.scrollOffset ?? 0, C), y = Math.min(nt - qe, y)) : y = Math.max(De?.[1]?.scrollOffset ?? 0, C)), Ke.current.left === S && Ke.current.top === y) return;
1452
- let B = null, de = null;
1453
- Ke.current.left > S ? B = w.Left : Ke.current.left < S && (B = w.Right), Ke.current.top > y ? de = w.Up : Ke.current.top < y && (de = w.Down), Nt.throttle(() => {
1454
- v((q) => {
1455
- const ce = { ...q, left: S, top: y, horizontalScrollDirection: B, verticalScrollDirection: de };
1456
- return Ke.current = ce, ce;
1448
+ let S = He.current.left;
1449
+ m !== void 0 && m !== S && (m > S ? (S = Math.max(Ze?.[1]?.scrollOffset ?? 0, m), S = Math.min(zt - Ge, S)) : S = Math.max(Ze?.[1]?.scrollOffset ?? 0, m));
1450
+ let y = He.current.top;
1451
+ if (C !== void 0 && C !== y && (C > y ? (y = Math.max(ke?.[1]?.scrollOffset ?? 0, C), y = Math.min(ot - Ke, y)) : y = Math.max(ke?.[1]?.scrollOffset ?? 0, C)), He.current.left === S && He.current.top === y) return;
1452
+ let B = null, me = null;
1453
+ He.current.left > S ? B = w.Left : He.current.left < S && (B = w.Right), He.current.top > y ? me = w.Up : He.current.top < y && (me = w.Down), Nt.throttle(() => {
1454
+ v((le) => {
1455
+ const we = { ...le, left: S, top: y, horizontalScrollDirection: B, verticalScrollDirection: me };
1456
+ return He.current = we, we;
1457
1457
  });
1458
- }, 17)(), re.current?.top === y && re.current?.left === S || (re.current = { left: S, top: y }, D({ left: S, top: y }), b({ left: S, top: y, width: Xe, height: qe, totalWidth: Ot, totalHeight: nt })), Bn();
1459
- }, [Ot, nt, De, Ge]);
1460
- gt(() => {
1461
- re.current || Qt({ left: Qe, top: ht });
1462
- }, [Xe, qe]), gt(() => {
1458
+ }, 17)(), re.current?.top === y && re.current?.left === S || (re.current = { left: S, top: y }, D({ left: S, top: y }), b({ left: S, top: y, width: Ge, height: Ke, totalWidth: zt, totalHeight: ot })), Bn();
1459
+ }, [zt, ot, ke, Ze]);
1460
+ wt(() => {
1461
+ re.current || Qt({ left: Qe, top: ft });
1462
+ }, [Ge, Ke]), wt(() => {
1463
1463
  let f, m, C = !1;
1464
- Ke.current.left > Ot && (f = 0, C = !0), Ke.current.top > nt && (m = 0, C = !0), C && Qt({ left: f, top: m });
1465
- }, [Ot, nt]), en(() => {
1466
- re.current = { left: ut?.left, top: ut?.top }, Qt(re.current);
1467
- }, [ut?.left, ut?.top]);
1464
+ He.current.left > zt && (f = 0, C = !0), He.current.top > ot && (m = 0, C = !0), C && Qt({ left: f, top: m });
1465
+ }, [zt, ot]), en(() => {
1466
+ re.current = { left: ht?.left, top: ht?.top }, Qt(re.current);
1467
+ }, [ht?.left, ht?.top]);
1468
1468
  const Sn = T((f) => {
1469
1469
  let m = f?.left ?? f?.[0], C = f?.top ?? f?.[1];
1470
1470
  if (m === void 0 && C === void 0) return;
1471
1471
  const S = f?.behavior ?? "auto";
1472
- m !== void 0 && (m = Ke.current.left + (m ?? 0)), C !== void 0 && (C = Ke.current.top + (C ?? 0)), !(Ke.current.left === m && Ke.current.top === C) && Qt({ left: m, top: C, behavior: S });
1472
+ m !== void 0 && (m = He.current.left + (m ?? 0)), C !== void 0 && (C = He.current.top + (C ?? 0)), !(He.current.left === m && He.current.top === C) && Qt({ left: m, top: C, behavior: S });
1473
1473
  }, []), yn = W((f) => {
1474
1474
  let m = null;
1475
- if (Object.keys(Me).length > 1) {
1475
+ if (Object.keys(Ee).length > 1) {
1476
1476
  const C = ho, S = C.length;
1477
1477
  for (let y = 0; !m && y < S; y++) {
1478
- const B = Me[C[y]];
1478
+ const B = Ee[C[y]];
1479
1479
  B && V.isCellWithinRange(f, B.getVisibleRangeCoords()) && (m = B);
1480
1480
  }
1481
1481
  }
1482
- return m || (m = Me[et.Center]), m;
1483
- }, [Me]), fn = T((f, m = { inline: "nearest", block: "nearest" }, C = null) => {
1482
+ return m || (m = Ee[_e.Center]), m;
1483
+ }, [Ee]), fn = T((f, m = { inline: "nearest", block: "nearest" }, C = null) => {
1484
1484
  const S = { rowIndex: 0, colIndex: 0, ...f };
1485
1485
  let y = null;
1486
1486
  if (C !== null) {
1487
- if (y = Me[C], y === null) return new Promise((it, Ae) => {
1488
- Ae("Invalid view");
1487
+ if (y = Ee[C], y === null) return new Promise((et, Be) => {
1488
+ Be("Invalid view");
1489
1489
  });
1490
1490
  } else y = yn(S);
1491
- const B = wt(S), de = y.getLayout(), q = de.getColOffset(B.colStart), ce = de.getRowOffset(B.rowStart), G = de.getColOffset(B.colEnd + 1), Te = de.getRowOffset(B.rowEnd + 1), Ze = y.getBounds(), me = y.getTotalSize(), ke = y.getScrollTopLeft(), Le = ((it, Ae, Ie = !0) => {
1492
- Ie = Ie === !0 ? { block: "start", inline: "end" } : Ie === !1 ? { block: "end", inline: "end" } : { block: "end", inline: "end", ...Ie };
1493
- const _e = ro(Ie.inline, it.x, it.x + it.width, Ae.left, Ae.left + Ae.width, Ae.totalWidth), Et = ro(Ie.block, it.y, it.y + it.height, Ae.top, Ae.top + Ae.height, Ae.totalHeight);
1494
- if (_e !== void 0 || Et !== void 0) return { left: _e, top: Et };
1495
- })({ x: q + ke.left, y: ce + ke.top, width: G - q, height: Te - ce }, { left: ke.left, top: ke.top, width: Ze.width, height: Ze.height, totalWidth: me.width, totalHeight: me.height }, m);
1496
- if (!Le) return Promise.resolve({ ...ke });
1497
- const ve = { ...Le };
1498
- ve.left > Qe ? ve.left += 20 : ve.left < Qe && (ve.left -= 0), ve.top > ht ? ve.top += 20 : ve.top < ht && (ve.top -= 0);
1499
- const It = y.getScrollOrientation();
1500
- return It.horizontal && f.colIndex !== void 0 || delete ve.left, It.vertical && f.rowIndex !== void 0 || delete ve.top, new Promise((it, Ae) => {
1491
+ const B = xt(S), me = y.getLayout(), le = me.getColOffset(B.colStart), we = me.getRowOffset(B.rowStart), H = me.getColOffset(B.colEnd + 1), Re = me.getRowOffset(B.rowEnd + 1), je = y.getBounds(), $e = y.getTotalSize(), Je = y.getScrollTopLeft(), Te = ((et, Be, tt = !0) => {
1492
+ tt = tt === !0 ? { block: "start", inline: "end" } : tt === !1 ? { block: "end", inline: "end" } : { block: "end", inline: "end", ...tt };
1493
+ const bt = ro(tt.inline, et.x, et.x + et.width, Be.left, Be.left + Be.width, Be.totalWidth), qe = ro(tt.block, et.y, et.y + et.height, Be.top, Be.top + Be.height, Be.totalHeight);
1494
+ if (bt !== void 0 || qe !== void 0) return { left: bt, top: qe };
1495
+ })({ x: le + Je.left, y: we + Je.top, width: H - le, height: Re - we }, { left: Je.left, top: Je.top, width: je.width, height: je.height, totalWidth: $e.width, totalHeight: $e.height }, m);
1496
+ if (!Te) return Promise.resolve({ ...Je });
1497
+ const de = { ...Te };
1498
+ de.left > Qe ? de.left += 20 : de.left < Qe && (de.left -= 0), de.top > ft ? de.top += 20 : de.top < ft && (de.top -= 0);
1499
+ const ct = y.getScrollOrientation();
1500
+ return ct.horizontal && f.colIndex !== void 0 || delete de.left, ct.vertical && f.rowIndex !== void 0 || delete de.top, new Promise((et, Be) => {
1501
1501
  try {
1502
- Qt(ve), it(ve);
1503
- } catch (Ie) {
1504
- Ae(Ie);
1502
+ Qt(de), et(de);
1503
+ } catch (tt) {
1504
+ Be(tt);
1505
1505
  }
1506
1506
  });
1507
- }, [Ot, nt, Me, wt]), an = T((f) => {
1507
+ }, [zt, ot, Ee, xt]), an = T((f) => {
1508
1508
  const m = f.shiftKey;
1509
1509
  f.preventDefault();
1510
1510
  const { deltaX: C, deltaY: S, deltaMode: y } = f;
1511
- if (Rt.current || oe?.(f) === !1) return;
1512
- let de = m ? S : C, q = S;
1513
- const ce = m || Math.abs(de) > Math.abs(q);
1514
- y === 1 && (q *= 0), Rt.current = window.requestAnimationFrame(() => {
1515
- Rt.current = null, Sn(ce ? { left: de } : { top: q });
1511
+ if (Mt.current || oe?.(f) === !1) return;
1512
+ let me = m ? S : C, le = S;
1513
+ const we = m || Math.abs(me) > Math.abs(le);
1514
+ y === 1 && (le *= 0), Mt.current = window.requestAnimationFrame(() => {
1515
+ Mt.current = null, Sn(we ? { left: me } : { top: le });
1516
1516
  });
1517
1517
  }, [oe]), gn = W((f = null) => {
1518
- Gt.current = null, ft.current = null, jt();
1518
+ Gt.current = null, gt.current = null, jt();
1519
1519
  }, []);
1520
1520
  en(() => {
1521
1521
  gn();
1522
- }, [ie]);
1523
- const on = wo(n, () => ({ stage: Ne.current, focus: nn, contains: vt, invalidate: gn, scrollTo: Qt, scrollBy: Sn, scrollCellCoordsIntoView: fn, getScrollPosition: qt, getDimensions: Dt, getViewport: ot, handleWheel: an, rowCount: c, columnCount: s, getLayout: () => ze, getRelativePointFromClient: sn, getViewFromClient: $n, getViewFromCellCoords: yn, getViewFromLocation: Ln, onViewChangeOnce: (f) => {
1524
- Ct.current.push(f);
1525
- } }), [c, s, Me]);
1526
- gt(() => (kt && on.current?.addEventListener("wheel", an, { passive: !1 }), Pt.current = !0, re.current = null, () => {
1522
+ }, [ce]);
1523
+ const on = wo(n, () => ({ stage: Ue.current, focus: nn, contains: yt, invalidate: gn, scrollTo: Qt, scrollBy: Sn, scrollCellCoordsIntoView: fn, getScrollPosition: qt, getDimensions: Tt, getViewport: rt, handleWheel: an, rowCount: c, columnCount: s, getLayout: () => De, getRelativePointFromClient: sn, getViewFromClient: $n, getViewFromCellCoords: yn, getViewFromLocation: Ln, onViewChangeOnce: (f) => {
1524
+ Rt.current.push(f);
1525
+ } }), [c, s, Ee]);
1526
+ wt(() => (Pt && on.current?.addEventListener("wheel", an, { passive: !1 }), Dt.current = !0, re.current = null, () => {
1527
1527
  on.current?.removeEventListener("wheel", an);
1528
- }), [kt]);
1529
- const wn = le([]), Fn = (f, m) => {
1530
- !f || !He || (wn.current = [], m.push(((C, S) => {
1531
- const y = `view:${C.getAnchor()}:overlay:${m.length}`, B = He?.({ key: y, view: C }, (q) => wn.current[S] = q);
1528
+ }), [Pt]);
1529
+ const wn = ie([]), Fn = (f, m) => {
1530
+ !f || !We || (wn.current = [], m.push(((C, S) => {
1531
+ const y = `view:${C.getAnchor()}:overlay:${m.length}`, B = We?.({ key: y, view: C }, (le) => wn.current[S] = le);
1532
1532
  if (!B) return null;
1533
- const de = C.getBounds();
1534
- return Ee("div", { style: { position: "absolute", left: "0px", top: "0px", width: `${de.width}px`, height: `${de.height}px`, overflow: "hidden" }, children: B }, `overlay-${C.getAnchor()}-${S}`);
1533
+ const me = C.getBounds();
1534
+ return Ce("div", { style: { position: "absolute", left: "0px", top: "0px", width: `${me.width}px`, height: `${me.height}px`, overflow: "hidden" }, children: B }, `overlay-${C.getAnchor()}-${S}`);
1535
1535
  })(f, 0)));
1536
- }, Vn = Ve(() => {
1537
- const f = {}, m = Object.keys(Me), C = m.length;
1536
+ }, Vn = Ae(() => {
1537
+ const f = {}, m = Object.keys(Ee), C = m.length;
1538
1538
  for (let S = 0; S < C; S++) {
1539
1539
  const y = m[S], B = [];
1540
- Fn(Me[y], B), f[y] = { overlays: B };
1540
+ Fn(Ee[y], B), f[y] = { overlays: B };
1541
1541
  }
1542
1542
  return f;
1543
- }, [lt, He, c, s, De, Ge]), bn = (f, m, C, S, y, B, de) => {
1543
+ }, [it, We, c, s, ke, Ze]), bn = (f, m, C, S, y, B, me) => {
1544
1544
  if (!f) return;
1545
- const q = f.getVisibleColumns(), ce = f.getVisibleRows();
1546
- if (q.length === 0 || ce.length === 0) return;
1547
- let G = null;
1548
- if (L) G = L(f);
1545
+ const le = f.getVisibleColumns(), we = f.getVisibleRows();
1546
+ if (le.length === 0 || we.length === 0) return;
1547
+ let H = null;
1548
+ if (L) H = L(f);
1549
1549
  else {
1550
- G = [];
1551
- const Fe = ce.length, tt = q.length;
1552
- for (let Be = 0; Be < Fe; Be++) {
1553
- const $e = ce[Be];
1554
- for (let pt = 0; pt < tt; pt++) {
1555
- const ct = { rowIndex: $e, colIndex: q[pt] };
1556
- if (Q?.(ct)) continue;
1557
- const St = { coords: ct, range: wt(ct) };
1558
- G.push(St);
1550
+ H = [];
1551
+ const Oe = we.length, nt = le.length;
1552
+ for (let Le = 0; Le < Oe; Le++) {
1553
+ const ze = we[Le];
1554
+ for (let vt = 0; vt < nt; vt++) {
1555
+ const st = { rowIndex: ze, colIndex: le[vt] };
1556
+ if (J?.(st)) continue;
1557
+ const Ct = { coords: st, range: xt(st) };
1558
+ H.push(Ct);
1559
1559
  }
1560
1560
  }
1561
1561
  }
1562
- const Te = f.getVisibleColumnOffsets(), Ze = f.getVisibleRowOffsets(), me = f.getScrollTopLeft(), ke = f.getFreezeTopLeft(), Le = me.left + ke.left, ve = me.top + ke.top, It = Math.trunc(Le / Xt), it = Math.trunc(ve / Xt), Ae = {}, Ie = (Fe, tt, Be, $e, pt) => {
1563
- const ct = `view:${Fe.getAnchor()}:cell:${oo(tt.rowIndex, tt.colIndex)}`, St = $e.x, Lt = $e.y, e = Math.trunc((Le + St) / Xt) - It, a = Math.trunc((ve + Lt) / Xt) - it;
1564
- Ae[a] || (Ae[a] = {});
1565
- let u = Ae[a][e];
1566
- u || (u = Ae[a][e] = []);
1567
- let d = B?.get(ct);
1562
+ const Re = f.getVisibleColumnOffsets(), je = f.getVisibleRowOffsets(), $e = f.getScrollTopLeft(), Je = f.getFreezeTopLeft(), Te = $e.left + Je.left, de = $e.top + Je.top, ct = Math.trunc(Te / Xt), et = Math.trunc(de / Xt), Be = {}, tt = (Oe, nt, Le, ze, vt) => {
1563
+ const st = `view:${Oe.getAnchor()}:cell:${oo(nt.rowIndex, nt.colIndex)}`, Ct = ze.x, Lt = ze.y, e = Math.trunc((Te + Ct) / Xt) - ct, a = Math.trunc((de + Lt) / Xt) - et;
1564
+ Be[a] || (Be[a] = {});
1565
+ let u = Be[a][e];
1566
+ u || (u = Be[a][e] = []);
1567
+ let d = B?.get(st);
1568
1568
  if (!d) {
1569
- const g = (Le + St) % Xt, E = (ve + Lt) % Xt;
1570
- d = ie({ key: ct, coords: tt, bounds: $e, zoom: X, range: Be, view: Fe, value: pt, style: { left: _.boundPixel(g), top: _.boundPixel(E), width: _.boundPixel($e.width, !0), height: _.boundPixel($e.height, !0) } });
1569
+ const g = (Te + Ct) % Xt, E = (de + Lt) % Xt;
1570
+ d = ce({ key: st, coords: nt, bounds: ze, zoom: X, range: Le, view: Oe, value: vt, style: { left: Q.boundPixel(g), top: Q.boundPixel(E), width: Q.boundPixel(ze.width, !0), height: Q.boundPixel(ze.height, !0) } });
1571
1571
  }
1572
- de?.set(ct, d), u.push(d);
1573
- }, _e = G.length;
1574
- for (let Fe = 0; G && Fe < _e; Fe++) {
1575
- const tt = G[Fe], Be = tt?.coords ?? tt;
1576
- if (!Be) continue;
1577
- const $e = tt?.range ?? { rowStart: Be.rowIndex, colStart: Be.colIndex, rowEnd: Be.rowIndex, colEnd: Be.colIndex }, pt = f.getVisibleRangeCoords();
1578
- if (!V.isRangesIntersect($e, pt) && !V.isRangeWithinRange($e, pt)) continue;
1579
- const ct = $e && !V.isSingleCell($e);
1580
- if (!ct && Q?.(Be)) continue;
1581
- const St = Be.rowIndex, Lt = Be.colIndex, e = Ze[St], a = Te[Lt];
1572
+ me?.set(st, d), u.push(d);
1573
+ }, bt = H.length;
1574
+ for (let Oe = 0; H && Oe < bt; Oe++) {
1575
+ const nt = H[Oe], Le = nt?.coords ?? nt;
1576
+ if (!Le) continue;
1577
+ const ze = nt?.range ?? { rowStart: Le.rowIndex, colStart: Le.colIndex, rowEnd: Le.rowIndex, colEnd: Le.colIndex }, vt = f.getVisibleRangeCoords();
1578
+ if (!V.isRangesIntersect(ze, vt) && !V.isRangeWithinRange(ze, vt)) continue;
1579
+ const st = ze && !V.isSingleCell(ze);
1580
+ if (!st && J?.(Le)) continue;
1581
+ const Ct = Le.rowIndex, Lt = Le.colIndex, e = je[Ct], a = Re[Lt];
1582
1582
  let u = null;
1583
1583
  e && a && (u = { x: a.offset, y: e.offset, width: a.size, height: e.size });
1584
- const d = oo($e.rowStart, $e.colStart);
1585
- if (ct) {
1584
+ const d = oo(ze.rowStart, ze.colStart);
1585
+ if (st) {
1586
1586
  if (y.has(d)) continue;
1587
- y.add(d), $e.rowEnd - $e.rowStart > 0 && C.push($e), $e.colEnd - $e.colStart > 0 && S.push($e);
1587
+ y.add(d), ze.rowEnd - ze.rowStart > 0 && C.push(ze), ze.colEnd - ze.colStart > 0 && S.push(ze);
1588
1588
  }
1589
- if (ct && (u = so(f.getLayout(), $e)), !u) {
1589
+ if (st && (u = so(f.getLayout(), ze)), !u) {
1590
1590
  console.warn("no bounds for cell", d);
1591
1591
  continue;
1592
1592
  }
1593
- const g = tt?.value;
1594
- Ie(f, Be, $e, u, g);
1593
+ const g = nt?.value;
1594
+ tt(f, Le, ze, u, g);
1595
1595
  }
1596
- const Et = Le % Xt, Se = ve % Xt, Je = Object.keys(Ae), zt = Je.length;
1597
- for (let Fe = 0; Fe < zt; Fe++) {
1598
- const tt = Je[Fe], Be = Ae[tt];
1599
- if (!Be) continue;
1600
- const $e = Object.keys(Be), pt = $e.length;
1601
- for (let ct = 0; ct < pt; ct++) {
1602
- const St = $e[ct], Lt = Be[St];
1596
+ const qe = Te % Xt, ne = de % Xt, Ye = Object.keys(Be), mt = Ye.length;
1597
+ for (let Oe = 0; Oe < mt; Oe++) {
1598
+ const nt = Ye[Oe], Le = Be[nt];
1599
+ if (!Le) continue;
1600
+ const ze = Object.keys(Le), vt = ze.length;
1601
+ for (let st = 0; st < vt; st++) {
1602
+ const Ct = ze[st], Lt = Le[Ct];
1603
1603
  if (!Lt) continue;
1604
- const e = parseInt(tt), a = parseInt(St), u = e + it, d = a + It, g = `view:${f.getAnchor()}:segment:${d}:${u}`;
1605
- m.push(Ee("div", { className: "cell-container", style: { transform: `translate(${_.boundPixel(a * Xt - Et, !0)}px, ${_.boundPixel(e * Xt - Se, !0)}px)`, willChange: "transform" }, children: Lt }, g));
1604
+ const e = parseInt(nt), a = parseInt(Ct), u = e + et, d = a + ct, g = `view:${f.getAnchor()}:segment:${d}:${u}`;
1605
+ m.push(Ce("div", { className: "cell-container", style: { transform: `translate(${Q.boundPixel(a * Xt - qe, !0)}px, ${Q.boundPixel(e * Xt - ne, !0)}px)`, willChange: "transform" }, children: Lt }, g));
1606
1606
  }
1607
1607
  }
1608
- }, At = Ve(() => {
1609
- const f = Gt.current, m = /* @__PURE__ */ new Map(), C = {}, S = Object.keys(Me), y = S.length;
1608
+ }, At = Ae(() => {
1609
+ const f = Gt.current, m = /* @__PURE__ */ new Map(), C = {}, S = Object.keys(Ee), y = S.length;
1610
1610
  for (let B = 0; B < y; B++) {
1611
- const de = S[B], q = [], ce = [], G = [];
1612
- bn(Me[de], G, q, ce, /* @__PURE__ */ new Set(), f, m), C[de] = { cells: G, rangesH: q, rangesV: ce };
1611
+ const me = S[B], le = [], we = [], H = [];
1612
+ bn(Ee[me], H, le, we, /* @__PURE__ */ new Set(), f, m), C[me] = { cells: H, rangesH: le, rangesV: we };
1613
1613
  }
1614
1614
  return Gt.current = m, C;
1615
- }, [lt, c, s, De, Ge, $, ge, Re, Q, L, Ce, ne, wt]), Cn = (f, m, C, S, y) => {
1615
+ }, [it, c, s, ke, Ze, $, ge, Ie, J, L, be, te, xt]), Cn = (f, m, C, S, y) => {
1616
1616
  if (!f) return;
1617
- const B = f.getLayout();
1617
+ const B = f.getLayout(), me = window.devicePixelRatio || 1, le = String(1 / me);
1618
1618
  if (m) {
1619
- const de = `view:${f.getAnchor()}:hl:`, q = f.getVisibleRows();
1620
- if ((q ? q.length : 0) === 0) return;
1621
- const ce = y.sort(V.rowFirstRangeComparator), G = f.getVisibleRangeCoords(), Te = 0, Ze = Math.min(f.getBounds().width, B.getColOffset(G.colEnd + 1));
1622
- let me = [];
1623
- for (let ke = 0; ke < q.length && q[ke] <= G.rowEnd; ke++) {
1624
- const Le = q[ke];
1625
- if (Le < G.rowStart) continue;
1626
- let ve = !1;
1627
- for (; ce.length > 0 && ce[0].rowStart <= Le; ) {
1628
- const Ie = ce.shift();
1629
- Ie.rowEnd > Le && (me.push(Ie), ve = !0);
1619
+ const we = `view:${f.getAnchor()}:hl:`, H = f.getVisibleRows();
1620
+ if ((H ? H.length : 0) === 0) return;
1621
+ const Re = y.sort(V.rowFirstRangeComparator), je = f.getVisibleRangeCoords(), $e = 0, Je = Math.min(f.getBounds().width, B.getColOffset(je.colEnd + 1));
1622
+ let Te = [];
1623
+ for (let de = 0; de < H.length && H[de] <= je.rowEnd; de++) {
1624
+ const ct = H[de];
1625
+ if (ct < je.rowStart) continue;
1626
+ let et = !1;
1627
+ for (; Re.length > 0 && Re[0].rowStart <= ct; ) {
1628
+ const qe = Re.shift();
1629
+ qe.rowEnd > ct && (Te.push(qe), et = !0);
1630
1630
  }
1631
- ve && (me = me.sort(V.columnFirstRangeComparator));
1632
- const It = B.getRowOffset(Le + 1);
1633
- let it = Te;
1634
- const Ae = me.length;
1635
- for (let Ie = 0; Ie < Ae + 1; Ie++) {
1636
- let _e = it, Et = Ze;
1637
- const Se = me[Ie];
1638
- Ie < Ae && (Et = Math.min(Ze, B.getColOffset(Se.colStart)), it = Math.min(Ze, B.getColOffset(Se.colEnd + 1))), S.push(xo("path", { d: `M ${_.boundPixel(_e)} ${_.boundPixel(It, !1, C)} L ${_.boundPixel(Et)} ${_.boundPixel(It, !1, C)}`, stroke: Y, strokeWidth: 1, vectorEffect: "non-scaling-stroke", ...j, key: de + Le + ":" + Ie }));
1631
+ et && (Te = Te.sort(V.columnFirstRangeComparator));
1632
+ const Be = B.getRowOffset(ct + 1);
1633
+ let tt = $e;
1634
+ const bt = Te.length;
1635
+ for (let qe = 0; qe < bt + 1; qe++) {
1636
+ let ne = tt, Ye = Je;
1637
+ const mt = Te[qe];
1638
+ qe < bt && (Ye = Math.min(Je, B.getColOffset(mt.colStart)), tt = Math.min(Je, B.getColOffset(mt.colEnd + 1))), S.push(xo("path", { d: `M ${Q.boundPixel(ne)} ${Q.boundPixel(Be, !1, C)} L ${Q.boundPixel(Ye)} ${Q.boundPixel(Be, !1, C)}`, stroke: Y, strokeWidth: le, vectorEffect: "non-scaling-stroke", ...q, key: we + ct + ":" + qe }));
1639
1639
  }
1640
- for (let Ie = Ae - 1; Ie >= 0; Ie--) me[Ie].rowEnd <= q[ke + 1] && me.splice(Ie, 1);
1640
+ for (let qe = bt - 1; qe >= 0; qe--) Te[qe].rowEnd <= H[de + 1] && Te.splice(qe, 1);
1641
1641
  }
1642
1642
  } else {
1643
- const de = `view:${f.getAnchor()}:vl:`, q = f.getVisibleColumns(), ce = q ? q.length : 0;
1644
- if (ce === 0) return;
1645
- const G = y.sort(V.columnFirstRangeComparator), Te = f.getVisibleRangeCoords(), Ze = 0, me = Math.min(f.getBounds().height, B.getRowOffset(Te.rowEnd + 1));
1646
- let ke = [];
1647
- for (let Le = 0; Le < ce && q[Le] <= Te.colEnd; Le++) {
1648
- const ve = q[Le];
1649
- if (ve < Te.colStart) continue;
1650
- let It = !1;
1651
- for (; G.length > 0 && G[0].colStart <= ve; ) {
1652
- const _e = G.shift();
1653
- _e.colEnd > ve && (ke.push(_e), It = !0);
1643
+ const we = `view:${f.getAnchor()}:vl:`, H = f.getVisibleColumns(), Re = H ? H.length : 0;
1644
+ if (Re === 0) return;
1645
+ const je = y.sort(V.columnFirstRangeComparator), $e = f.getVisibleRangeCoords(), Je = 0, Te = Math.min(f.getBounds().height, B.getRowOffset($e.rowEnd + 1));
1646
+ let de = [];
1647
+ for (let ct = 0; ct < Re && H[ct] <= $e.colEnd; ct++) {
1648
+ const et = H[ct];
1649
+ if (et < $e.colStart) continue;
1650
+ let Be = !1;
1651
+ for (; je.length > 0 && je[0].colStart <= et; ) {
1652
+ const ne = je.shift();
1653
+ ne.colEnd > et && (de.push(ne), Be = !0);
1654
1654
  }
1655
- It && (ke = ke.sort(V.rowFirstRangeComparator));
1656
- const it = B.getColOffset(ve + 1);
1657
- let Ae = Ze;
1658
- const Ie = ke.length;
1659
- for (let _e = 0; _e < Ie + 1; _e++) {
1660
- let Et = Ae, Se = me;
1661
- const Je = ke[_e];
1662
- _e < Ie && (Se = Math.min(me, B.getRowOffset(Je.rowStart)), Ae = Math.min(me, B.getRowOffset(Je.rowEnd + 1))), S.push(Ee("path", { d: `M ${_.boundPixel(it, !1, C)} ${_.boundPixel(Et)} L ${_.boundPixel(it, !1, C)} ${_.boundPixel(Se)}`, stroke: Y, strokeWidth: 1, vectorEffect: "non-scaling-stroke", ...ee }, de + ve + ":" + _e));
1655
+ Be && (de = de.sort(V.rowFirstRangeComparator));
1656
+ const tt = B.getColOffset(et + 1);
1657
+ let bt = Je;
1658
+ const qe = de.length;
1659
+ for (let ne = 0; ne < qe + 1; ne++) {
1660
+ let Ye = bt, mt = Te;
1661
+ const Oe = de[ne];
1662
+ ne < qe && (mt = Math.min(Te, B.getRowOffset(Oe.rowStart)), bt = Math.min(Te, B.getRowOffset(Oe.rowEnd + 1))), S.push(Ce("path", { d: `M ${Q.boundPixel(tt, !1, C)} ${Q.boundPixel(Ye)} L ${Q.boundPixel(tt, !1, C)} ${Q.boundPixel(mt)}`, stroke: Y, strokeWidth: le, vectorEffect: "non-scaling-stroke", ..._ }, we + et + ":" + ne));
1663
1663
  }
1664
- for (let _e = Ie - 1; _e >= 0; _e--) ke[_e].colEnd <= q[Le + 1] && ke.splice(_e, 1);
1664
+ for (let ne = qe - 1; ne >= 0; ne--) de[ne].colEnd <= H[ct + 1] && de.splice(ne, 1);
1665
1665
  }
1666
1666
  }
1667
1667
  }, xn = (f) => {
1668
1668
  if (!At) return;
1669
1669
  const m = {}, C = Jt.length;
1670
1670
  for (let S = 0; S < C; S++) {
1671
- const y = Jt[S], B = Me[y], de = [];
1672
- Cn(B, f, 0, de, f ? At[y].rangesH : At[y].rangesV);
1673
- const q = B.getRangeCoordsBounds(), ce = Math.ceil(q.width), G = Math.ceil(q.height);
1674
- m[y] = Ee("svg", { width: `${ce}`, height: `${G}`, viewBox: `0 0 ${ce} ${G}`, preserveAspectRatio: "none", shapeRendering: "crispEdges", style: { position: "absolute" }, children: de });
1671
+ const y = Jt[S], B = Ee[y], me = [];
1672
+ Cn(B, f, 0, me, f ? At[y].rangesH : At[y].rangesV);
1673
+ const le = B.getRangeCoordsBounds(), we = Math.ceil(le.width), H = Math.ceil(le.height);
1674
+ m[y] = Ce("svg", { width: `${we}`, height: `${H}`, viewBox: `0 0 ${we} ${H}`, preserveAspectRatio: "none", shapeRendering: "crispEdges", style: { position: "absolute" }, children: me });
1675
1675
  }
1676
1676
  return m;
1677
- }, In = Ve(() => $ === !0 || $?.horizontal === !0 ? xn(!0) : null, [lt, $, De, U, k, Y, j, c, s, Xe, Ot, Me, At]), En = Ve(() => $ === !0 || $?.vertical === !0 ? xn(!1) : null, [lt, $, Ge, U, k, Y, ee, c, s, qe, nt, Me, At]), Wn = Ve(() => Mt.left === 0 ? null : Ee(ao, { linePoints: [0, 0, 0, qe + 1], bounds: { x: Mt.left, y: 0, width: 1, height: qe + 1 }, ...he }), [lt, Mt.left, qe, he]), Un = Ve(() => Mt.top === 0 ? null : Ee(ao, { linePoints: [0, 0, Xe + 1, 0], bounds: { x: 0, y: Mt.top, width: Xe + 1, height: 1 }, ...P }), [lt, Mt.top, Xe, P]), pn = Ve(() => {
1677
+ }, In = Ae(() => $ === !0 || $?.horizontal === !0 ? xn(!0) : null, [it, $, ke, U, k, Y, q, c, s, Ge, zt, Ee, At]), En = Ae(() => $ === !0 || $?.vertical === !0 ? xn(!1) : null, [it, $, Ze, U, k, Y, _, c, s, Ke, ot, Ee, At]), Wn = Ae(() => kt.left === 0 ? null : Ce(ao, { linePoints: [0, 0, 0, Ke + 1], bounds: { x: kt.left, y: 0, width: 1, height: Ke + 1 }, ...he }), [it, kt.left, Ke, he]), Un = Ae(() => kt.top === 0 ? null : Ce(ao, { linePoints: [0, 0, Ge + 1, 0], bounds: { x: 0, y: kt.top, width: Ge + 1, height: 1 }, ...P }), [it, kt.top, Ge, P]), pn = Ae(() => {
1678
1678
  const f = [], m = (S) => {
1679
- if (!S || !Me[S]) return;
1680
- const y = Me[S].getBounds();
1679
+ if (!S || !Ee[S]) return;
1680
+ const y = Ee[S].getBounds();
1681
1681
  return _t("div", { style: { position: "absolute", pointerEvents: "none", left: y.x, top: y.y, width: y.width, height: y.height, clip: `rect(0, ${y.width + 1}px, ${y.height + 1}px, 0)` }, className: `view view-${S}`, children: [In?.[S], En?.[S], At?.[S].cells] }, `view:${S}`);
1682
1682
  }, C = Jt.length;
1683
1683
  for (let S = 0; S < C; S++) f.push(m(Jt[S]));
1684
- return Ee(Qn, { children: f });
1685
- }, [Me, In, En, At]), Hn = Ve(() => {
1684
+ return Ce(Qn, { children: f });
1685
+ }, [Ee, In, En, At]), Hn = Ae(() => {
1686
1686
  if (!n) return;
1687
- const f = (q, ce, G, Te) => {
1688
- if (!Te || Te.length === 0) return;
1689
- const Ze = [], me = Te.length;
1690
- for (let ke = 0; ke < me; ke++) {
1691
- const Le = Te[ke];
1692
- let ve = q?.get(Le);
1693
- ve !== Yn && (ve = Le(G) ?? Yn), ce.set(Le, ve), ve && ve !== Yn && Ze.push(ve);
1687
+ const f = (le, we, H, Re) => {
1688
+ if (!Re || Re.length === 0) return;
1689
+ const je = [], $e = Re.length;
1690
+ for (let Je = 0; Je < $e; Je++) {
1691
+ const Te = Re[Je];
1692
+ let de = le?.get(Te);
1693
+ de !== Yn && (de = Te(H) ?? Yn), we.set(Te, de), de && de !== Yn && je.push(de);
1694
1694
  }
1695
- return Ze;
1696
- }, m = (q, ce, G) => {
1697
- if (!G) return;
1698
- const Te = G.getBounds(), Ze = G.getInsets(), me = G.getAnchor();
1699
- return _t("div", { className: rn("view", `view-${me}`, uo.view), style: { position: "absolute", pointerEvents: "none", left: Te.x - Ze.left, top: Te.y - Ze.top, width: Te.width - (Ze.left + Ze.right), height: Te.height - (Ze.top + Ze.bottom), clipPath: p ? "inset(-2px)" : "inset(0px)" }, children: [f(q, ce, G, be), Vn?.[me].overlays] }, `view:${me}`);
1700
- }, C = ft.current, S = {}, y = [], B = Object.keys(Me), de = B.length;
1701
- for (let q = 0; q < de; q++) {
1702
- const ce = B[q], G = C?.[ce], Te = S[ce] = /* @__PURE__ */ new Map();
1703
- y.push(m(G, Te, Me[ce]));
1695
+ return je;
1696
+ }, m = (le, we, H) => {
1697
+ if (!H) return;
1698
+ const Re = H.getBounds(), je = H.getInsets(), $e = H.getAnchor();
1699
+ return _t("div", { className: rn("view", `view-${$e}`, uo.view), style: { position: "absolute", pointerEvents: "none", left: Re.x - je.left, top: Re.y - je.top, width: Re.width - (je.left + je.right), height: Re.height - (je.top + je.bottom), clipPath: p ? "inset(-2px)" : "inset(0px)" }, children: [f(le, we, H, ye), Vn?.[$e].overlays] }, `view:${$e}`);
1700
+ }, C = gt.current, S = {}, y = [], B = Object.keys(Ee), me = B.length;
1701
+ for (let le = 0; le < me; le++) {
1702
+ const we = B[le], H = C?.[we], Re = S[we] = /* @__PURE__ */ new Map();
1703
+ y.push(m(H, Re, Ee[we]));
1704
1704
  }
1705
- return ft.current = S, y;
1706
- }, [lt, Me, p, be]), Nn = Ve(() => {
1707
- const { style: f, ...m } = je ?? {};
1708
- return Ee("div", { style: { width: Xe, height: qe, ...f }, className: "sheetxl-stage", tabIndex: 0, ref: Ne, ...m, ...Wt, children: Ye ? Ye(pn) : pn });
1709
- }, [Xe, qe, pn, je, Ye]), Rn = le(!1);
1710
- return gt(() => {
1711
- !Rn.current && At && (Rn.current = !0, xe?.(on.current));
1712
- }, [At]), _t("div", { className: rn("sheetxl-grid", uo["sheetxl-grid"]), style: { overflow: "visible", cursor: J, maxWidth: Xe, maxHeight: qe, width: Xe, height: qe, ...ge }, ref: on, children: [Nn, _t("div", { className: rn("sheetxl-overlays"), ref: rt, ...A, children: [Hn, Wn, Un] })] });
1705
+ return gt.current = S, y;
1706
+ }, [it, Ee, p, ye]), Nn = Ae(() => {
1707
+ const { style: f, ...m } = Ne ?? {};
1708
+ return Ce("div", { style: { width: Ge, height: Ke, ...f }, className: "sheetxl-stage", tabIndex: 0, ref: Ue, ...m, ...Wt, children: Xe ? Xe(pn) : pn });
1709
+ }, [Ge, Ke, pn, Ne, Xe]), Rn = ie(!1);
1710
+ return wt(() => {
1711
+ !Rn.current && At && (Rn.current = !0, pe?.(on.current));
1712
+ }, [At]), _t("div", { className: rn("sheetxl-grid", uo["sheetxl-grid"]), style: { overflow: "visible", cursor: Z, maxWidth: Ge, maxHeight: Ke, width: Ge, height: Ke, ...ge }, ref: on, children: [Nn, _t("div", { className: rn("sheetxl-overlays"), ref: lt, ...A, children: [Hn, Wn, Un] })] });
1713
1713
  }));
1714
1714
  Ro.displayName = "BaseGrid";
1715
1715
  const Mo = Kt(tn((t, n) => {
1716
1716
  const { width: o, height: r, style: c = {}, className: s, ...i } = t, [l, { width: h, height: O }] = yo();
1717
- return Ee("div", { className: s, style: { ...c }, children: Ee("div", { style: { position: "relative", top: "0px", left: "0px", width: "100%", height: "100%", maxWidth: "100%", maxHeight: "100%", boxSizing: "content-box" }, ref: l, children: Ee(Ro, { ref: n, width: o ?? h, height: r ?? O, ...i }) }) });
1717
+ return Ce("div", { className: s, style: { ...c }, children: Ce("div", { style: { position: "relative", top: "0px", left: "0px", width: "100%", height: "100%", maxWidth: "100%", maxHeight: "100%", boxSizing: "content-box" }, ref: l, children: Ce(Ro, { ref: n, width: o ?? h, height: r ?? O, ...i }) }) });
1718
1718
  }));
1719
1719
  Mo.displayName = "Grid";
1720
1720
  const sr = Kt(tn((t, n) => {
1721
- const { showVerticalScrollbar: o, showHorizontalScrollbar: r, createHorizontalScrollbar: c, createVerticalScrollbar: s, createScrollCorner: i, viewport: l, onScrollViewport: h, style: O = {}, className: z, onScroll: M, ...R } = t, [$, Y] = dt(null), j = le(null), ee = le(null);
1722
- Tn(!l), $o(n, () => ee.current && j.current ? Object.assign(ee.current, j.current) : null);
1723
- const Re = W((J) => {
1724
- ee.current?.scrollTo(J), h?.(J);
1721
+ const { showVerticalScrollbar: o, showHorizontalScrollbar: r, createHorizontalScrollbar: c, createVerticalScrollbar: s, createScrollCorner: i, viewport: l, onScrollViewport: h, style: O = {}, className: z, onScroll: M, ...R } = t, [$, Y] = ut(null), q = ie(null), _ = ie(null);
1722
+ Tn(!l), $o(n, () => _.current && q.current ? Object.assign(_.current, q.current) : null);
1723
+ const Ie = W((Z) => {
1724
+ _.current?.scrollTo(Z), h?.(Z);
1725
1725
  }, []);
1726
- return Ee(zo, { className: z, style: O, ref: j, showVerticalScrollbar: o, showHorizontalScrollbar: r, createHorizontalScrollbar: c, createVerticalScrollbar: s, createScrollCorner: i, viewport: $, onScrollViewport: Re, children: Ee(Mo, { style: { width: "100%", height: "100%" }, ...R, onViewportChange: (J) => Y(J), ref: ee }) });
1726
+ return Ce(zo, { className: z, style: O, ref: q, showVerticalScrollbar: o, showHorizontalScrollbar: r, createHorizontalScrollbar: c, createVerticalScrollbar: s, createScrollCorner: i, viewport: $, onScrollViewport: Ie, children: Ce(Mo, { style: { width: "100%", height: "100%" }, ...R, onViewportChange: (Z) => Y(Z), ref: _ }) });
1727
1727
  }));
1728
1728
  sr.displayName = "ScrollableGrid";
1729
1729
  const fo = () => !1, ar = Kt((t) => {
1730
- const { index: n, value: o, zoom: r, zoomScale: c = 100, headerText: s = (be) => `${be}`, headerStyle: i, headerStyleSelect: l = i, headerStyleSelectAll: h = l, headerStyleHover: O = h, verticalPadding: z = 0, horizontalPadding: M = 0, isSelected: R = fo, isSelectedAll: $ = fo, coords: Y, bounds: j, range: ee, orientation: Re, view: J, style: k, ...U } = t, he = c / 100, P = le(null), [ie, Ue] = dt(!1), Oe = R?.(n) || !1, He = $?.(n) ? h : Oe ? l : i;
1731
- let fe = He;
1732
- if (ie) {
1733
- let be = O;
1734
- typeof O == "function" && (be = O(He)), fe = Nt.mergeContentful(He, be);
1730
+ const { index: n, value: o, zoom: r, zoomScale: c = 100, headerText: s = (ye) => `${ye}`, headerStyle: i, headerStyleSelect: l = i, headerStyleSelectAll: h = l, headerStyleHover: O = h, verticalPadding: z = 0, horizontalPadding: M = 0, isSelected: R = fo, isSelectedAll: $ = fo, coords: Y, bounds: q, range: _, orientation: Ie, view: Z, style: k, ...U } = t, he = c / 100, P = ie(null), [ce, Ve] = ut(!1), Pe = R?.(n) || !1, We = $?.(n) ? h : Pe ? l : i;
1731
+ let fe = We;
1732
+ if (ce) {
1733
+ let ye = O;
1734
+ typeof O == "function" && (ye = O(We)), fe = Nt.mergeContentful(We, ye);
1735
1735
  }
1736
- return Ee("div", { ref: P, style: { background: fe.fill, color: fe.text?.fill, fontFamily: fe.text?.fontFamily ?? i.text?.fontFamily, fontSize: 96 * (fe.text?.fontSize ?? 11) / 72 * he, fontStyle: fe.text?.fontStyle, fontWeight: fe.text?.fontWeight, lineHeight: 1.2, display: "flex", justifyContent: "center", alignItems: "end", pointerEvents: "auto", paddingBottom: `${he}px`, ...k, left: k.left - (Re === Ht.Column ? 1 : 0), top: k.top - (Re === Ht.Row ? 1 : 0), width: k.width + 1, height: k.height + 1, overflow: "hidden" }, ...U, onMouseMove: (be) => {
1737
- _.detectIt().primaryInput !== "touch" && be.buttons === 0 && Ue(!0);
1738
- }, onMouseOut: (be) => {
1739
- Ue(!1);
1736
+ return Ce("div", { ref: P, style: { background: fe.fill, color: fe.text?.fill, fontFamily: fe.text?.fontFamily ?? i.text?.fontFamily, fontSize: 96 * (fe.text?.fontSize ?? 11) / 72 * he, fontStyle: fe.text?.fontStyle, fontWeight: fe.text?.fontWeight, lineHeight: 1.2, display: "flex", justifyContent: "center", alignItems: "end", pointerEvents: "auto", paddingBottom: `${he}px`, ...k, left: k.left - (Ie === Ht.Column ? 1 : 0), top: k.top - (Ie === Ht.Row ? 1 : 0), width: k.width + 1, height: k.height + 1, overflow: "hidden" }, ...U, onMouseMove: (ye) => {
1737
+ Q.detectIt().primaryInput !== "touch" && ye.buttons === 0 && Ve(!0);
1738
+ }, onMouseOut: (ye) => {
1739
+ Ve(!1);
1740
1740
  }, children: s(n) });
1741
1741
  });
1742
1742
  ar.displayName = "HeaderRenderer";
1743
1743
  const ko = "ew-resize", Po = "ns-resize", dr = Kt(tn((t, n) => {
1744
- const { orientation: o, view: r, index: c, className: s, style: i, disabled: l = !1, disabledResize: h = !1, isNextHidden: O, isHidden: z, isSelected: M, isSelectedAll: R, showTouchDivider: $, headerStyle: Y, headerStyleSelect: j, headerStyleSelectAll: ee, headerStyleHover: Re, bounds: J, onPointerDown: k, onAutoFit: U, ...he } = t, P = o === Ht.Column;
1745
- let ie = Y;
1746
- M && j && (ie = j), R && ee && (ie = ee);
1747
- const Ue = _.detectIt().primaryInput === "touch";
1748
- let Oe = P ? 14 : 8, He = Oe / 2, fe = 0;
1749
- O && (fe = -2), z && (fe = 2), z && (Oe = Oe / 2 + fe, He = 2 * fe);
1750
- let be = ie.dividerStrokeFill ?? ie.strokeFill;
1751
- return !(M || R) && fe === 0 && (be = `linear-gradient(${P ? 180 : 90}deg, ${ie.fill}, ${be} 55%, ${be} 100%)`), _t("div", { className: rn("header-divider", { disabled: l }, s, `index-${c}`), ref: n, onPointerDown: Ue ? void 0 : k, onDoubleClick: Ue ? void 0 : () => U?.(), style: { top: (P ? 0 : -Oe / 2 + (fe - 1)) + "px", left: (P ? -Oe / 2 + (fe - 1) : 0) + "px", width: P ? Oe : "calc(100% + 1px)", height: P ? "calc(100% + 1px)" : Oe, position: "absolute", overflow: "visible", pointerEvents: "all", cursor: l || h || Ue ? void 0 : P ? ko : Po, ...i }, ...he, children: [Ee("div", { style: { position: "relative", top: `${P ? 0 : He}px`, left: `${P ? He : 0}px`, width: P ? 1 : "100%", height: P ? "100%" : 1, background: be }, onDoubleClick: () => U?.() }), $ && Ue ? Ee("div", { style: { position: "absolute", cursor: "grab", zIndex: 1, borderRadius: "4px", right: P ? "-6px" : "2px", bottom: P ? "2px" : "-9px", height: "24px", width: P ? "24px" : "18px", maxHeight: P ? "calc(100% - 4px)" : void 0, maxWidth: P ? void 0 : "calc(100% - 4px)", background: ie.fill, border: `${ee.edgeStrokeFill} solid 1px`, boxShadow: `0.5px 0.5px 0px 0px ${Y.text.fill}`, display: "flex", alignItems: "center", justifyContent: "center" }, onPointerDown: k, children: Ee("div", { style: { width: "6.4px", height: "12px", backgroundImage: `url("data:image/svg+xml,%3Csvg width='6.4' height='12' viewBox='0 0 9.6 16' version='1.1' fill='${encodeURIComponent(j.text.fill)}' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3E%3Cpath d='M 9.60008,14.40009 C 9.60008,15.28374 8.88368,16 8.00003,16 7.11639,16 6.40012,15.28374 6.40012,14.40009 c 0,-0.88365 0.71627,-1.60005 1.59991,-1.60005 0.88365,0 1.60005,0.7164 1.60005,1.60005 m 0,-6.40012 c 0,0.88364 -0.7164,1.60004 -1.60005,1.60004 -0.88364,0 -1.59991,-0.7164 -1.59991,-1.60004 0,-0.88365 0.71627,-1.60005 1.59991,-1.60005 0.88365,0 1.60005,0.7164 1.60005,1.60005 m 0,-6.40006 c 0,0.88365 -0.7164,1.60005 -1.60005,1.60005 -0.88364,0 -1.59991,-0.7164 -1.59991,-1.60005 C 6.40012,0.71626 7.11639,0 8.00003,0 8.88368,0 9.60008,0.71626 9.60008,1.59991 M 3.19996,14.40009 C 3.19996,15.28374 2.48369,16 1.60005,16 0.7164,16 0,15.28374 0,14.40009 c 0,-0.88365 0.7164,-1.60005 1.60005,-1.60005 0.88364,0 1.59991,0.7164 1.59991,1.60005 m 0,-6.40012 c 0,0.88364 -0.71627,1.60004 -1.59991,1.60004 C 0.7164,9.60001 0,8.88361 0,7.99997 0,7.11632 0.7164,6.39992 1.60005,6.39992 c 0.88364,0 1.59991,0.7164 1.59991,1.60005 m 0,-6.40006 c 0,0.88365 -0.71627,1.60005 -1.59991,1.60005 C 0.7164,3.19996 0,2.48356 0,1.59991 0,0.71626 0.7164,0 1.60005,0 2.48369,0 3.19996,0.71626 3.19996,1.59991' /%3E%3C/svg%3E%0A")`, backgroundRepeat: "no-repeat", backgroundPosition: "center", transform: P ? void 0 : "rotate(90deg)" } }) }) : null] });
1752
- })), ur = (t, n) => Ee(dr, { ...t, ref: n }), Ir = Kt(tn((t, n) => {
1753
- const { orientation: o, view: r, index: c, disabled: s = !1, disabledResize: i = !1, resizeThreshold: l = 1, dividerRenderer: h = ur, onDividerMouseDown: O, onDividerResizeStart: z, onDividerResize: M, onDividerResizeEnd: R, onDividerMouseUp: $, onDividerAutoFit: Y, onPointerDown: j, ...ee } = t, Re = T(j, [j]), J = T(Y, [Y]), k = o === Ht.Column;
1744
+ const { orientation: o, view: r, index: c, className: s, style: i, disabled: l = !1, disabledResize: h = !1, isNextHidden: O, isHidden: z, isSelected: M, isSelectedAll: R, showTouchDivider: $, headerStyle: Y, headerStyleSelect: q, headerStyleSelectAll: _, headerStyleHover: Ie, bounds: Z, onPointerDown: k, onAutoFit: U, ...he } = t, P = o === Ht.Column;
1745
+ let ce = Y;
1746
+ M && q && (ce = q), R && _ && (ce = _);
1747
+ const Ve = Q.detectIt().primaryInput === "touch";
1748
+ let Pe = P ? 14 : 8, We = Pe / 2, fe = 0;
1749
+ O && (fe = -2), z && (fe = 2), z && (Pe = Pe / 2 + fe, We = 2 * fe);
1750
+ let ye = ce.dividerStrokeFill ?? ce.strokeFill;
1751
+ return !(M || R) && fe === 0 && (ye = `linear-gradient(${P ? 180 : 90}deg, ${ce.fill}, ${ye} 55%, ${ye} 100%)`), _t("div", { className: rn("header-divider", { disabled: l }, s, `index-${c}`), ref: n, onPointerDown: Ve ? void 0 : k, onDoubleClick: Ve ? void 0 : () => U?.(), style: { top: (P ? 0 : -Pe / 2 + (fe - 1)) + "px", left: (P ? -Pe / 2 + (fe - 1) : 0) + "px", width: P ? Pe : "calc(100% + 1px)", height: P ? "calc(100% + 1px)" : Pe, position: "absolute", overflow: "visible", pointerEvents: "all", cursor: l || h || Ve ? void 0 : P ? ko : Po, ...i }, ...he, children: [Ce("div", { style: { position: "relative", top: `${P ? 0 : We}px`, left: `${P ? We : 0}px`, width: P ? 1 : "100%", height: P ? "100%" : 1, background: ye }, onDoubleClick: () => U?.() }), $ && Ve ? Ce("div", { style: { position: "absolute", cursor: "grab", zIndex: 1, borderRadius: "4px", right: P ? "-6px" : "2px", bottom: P ? "2px" : "-9px", height: "24px", width: P ? "24px" : "18px", maxHeight: P ? "calc(100% - 4px)" : void 0, maxWidth: P ? void 0 : "calc(100% - 4px)", background: ce.fill, border: `${_.edgeStrokeFill} solid 1px`, boxShadow: `0.5px 0.5px 0px 0px ${Y.text.fill}`, display: "flex", alignItems: "center", justifyContent: "center" }, onPointerDown: k, children: Ce("div", { style: { width: "6.4px", height: "12px", backgroundImage: `url("data:image/svg+xml,%3Csvg width='6.4' height='12' viewBox='0 0 9.6 16' version='1.1' fill='${encodeURIComponent(q.text.fill)}' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3E%3Cpath d='M 9.60008,14.40009 C 9.60008,15.28374 8.88368,16 8.00003,16 7.11639,16 6.40012,15.28374 6.40012,14.40009 c 0,-0.88365 0.71627,-1.60005 1.59991,-1.60005 0.88365,0 1.60005,0.7164 1.60005,1.60005 m 0,-6.40012 c 0,0.88364 -0.7164,1.60004 -1.60005,1.60004 -0.88364,0 -1.59991,-0.7164 -1.59991,-1.60004 0,-0.88365 0.71627,-1.60005 1.59991,-1.60005 0.88365,0 1.60005,0.7164 1.60005,1.60005 m 0,-6.40006 c 0,0.88365 -0.7164,1.60005 -1.60005,1.60005 -0.88364,0 -1.59991,-0.7164 -1.59991,-1.60005 C 6.40012,0.71626 7.11639,0 8.00003,0 8.88368,0 9.60008,0.71626 9.60008,1.59991 M 3.19996,14.40009 C 3.19996,15.28374 2.48369,16 1.60005,16 0.7164,16 0,15.28374 0,14.40009 c 0,-0.88365 0.7164,-1.60005 1.60005,-1.60005 0.88364,0 1.59991,0.7164 1.59991,1.60005 m 0,-6.40012 c 0,0.88364 -0.71627,1.60004 -1.59991,1.60004 C 0.7164,9.60001 0,8.88361 0,7.99997 0,7.11632 0.7164,6.39992 1.60005,6.39992 c 0.88364,0 1.59991,0.7164 1.59991,1.60005 m 0,-6.40006 c 0,0.88365 -0.71627,1.60005 -1.59991,1.60005 C 0.7164,3.19996 0,2.48356 0,1.59991 0,0.71626 0.7164,0 1.60005,0 2.48369,0 3.19996,0.71626 3.19996,1.59991' /%3E%3C/svg%3E%0A")`, backgroundRepeat: "no-repeat", backgroundPosition: "center", transform: P ? void 0 : "rotate(90deg)" } }) }) : null] });
1752
+ })), ur = (t, n) => Ce(dr, { ...t, ref: n }), Ir = Kt(tn((t, n) => {
1753
+ const { orientation: o, view: r, index: c, disabled: s = !1, disabledResize: i = !1, resizeThreshold: l = 1, dividerRenderer: h = ur, onDividerMouseDown: O, onDividerResizeStart: z, onDividerResize: M, onDividerResizeEnd: R, onDividerMouseUp: $, onDividerAutoFit: Y, onPointerDown: q, ..._ } = t, Ie = T(q, [q]), Z = T(Y, [Y]), k = o === Ht.Column;
1754
1754
  let U = k ? r.getVisibleColumns() : r.getVisibleRows(), he = null;
1755
1755
  U.length > 0 && (k ? he = r.getRangeCoordsBounds({ rowStart: 0, rowEnd: 0, colStart: U[0], colEnd: U[U.length - 1] }) : r.getRangeCoordsBounds({ rowStart: U[0], rowEnd: U[U.length - 1], colStart: 0, colEnd: 0 }), he = r.toClipBounds(he, Vt));
1756
- const P = le(null), [ie, Ue] = dt(null), Oe = (ne, Ce) => k ? ne.clientX - Ce.clientX : ne.clientY - Ce.clientY, He = r.getLayout(), fe = k ? He.getColOffset(c + 1) : He.getRowOffset(c + 1), be = un({ processTouch: !0, onPointerDown: (ne) => {
1757
- if (Re?.(ne), !s && !i) {
1758
- const Ce = k ? He.getColOffset(c) : He.getRowOffset(c), Q = fe - Ce;
1759
- P.current = { isResizing: !1, startSize: Q, index: c, view: r, orientation: o, onDividerMouseDown: O, onDividerResizeStart: z, onDividerResize: M, onDividerResizeEnd: R, onDividerMouseUp: $ }, Ue(P.current), O?.(c, Q);
1756
+ const P = ie(null), [ce, Ve] = ut(null), Pe = (te, be) => k ? te.clientX - be.clientX : te.clientY - be.clientY, We = r.getLayout(), fe = k ? We.getColOffset(c + 1) : We.getRowOffset(c + 1), ye = un({ processTouch: !0, onPointerDown: (te) => {
1757
+ if (Ie?.(te), !s && !i) {
1758
+ const be = k ? We.getColOffset(c) : We.getRowOffset(c), J = fe - be;
1759
+ P.current = { isResizing: !1, startSize: J, index: c, view: r, orientation: o, onDividerMouseDown: O, onDividerResizeStart: z, onDividerResize: M, onDividerResizeEnd: R, onDividerMouseUp: $ }, Ve(P.current), O?.(c, J);
1760
1760
  }
1761
- ne.stopPropagation(), ne.preventDefault();
1762
- }, onPointerUp: (ne, Ce, Q) => {
1761
+ te.stopPropagation(), te.preventDefault();
1762
+ }, onPointerUp: (te, be, J) => {
1763
1763
  if (!P.current) return;
1764
- P.current.isResizing && P.current.onDividerResizeEnd?.(P.current.index, Math.max(0, P.current.startSize + Oe(ne, Q)), P.current.startSize);
1764
+ P.current.isResizing && P.current.onDividerResizeEnd?.(P.current.index, Math.max(0, P.current.startSize + Pe(te, J)), P.current.startSize);
1765
1765
  const L = P.current;
1766
- P.current = null, Ue(P.current), L.onDividerMouseUp?.(L.index);
1767
- }, onPointerMoveOrWait: (ne, Ce, Q) => {
1766
+ P.current = null, Ve(P.current), L.onDividerMouseUp?.(L.index);
1767
+ }, onPointerMoveOrWait: (te, be, J) => {
1768
1768
  if (!P.current) return;
1769
- const L = Oe(ne, Q);
1770
- P.current.isResizing ? P.current.onDividerResize?.(P.current.index, Math.max(0, P.current.startSize + L), P.current.startSize) : Math.abs(L) > Math.max(1, l) && (P.current = { ...P.current, isResizing: !0 }, Ue(P.current), P.current.onDividerResizeStart?.(P.current.index, Math.max(0, P.current.startSize + L))), ne.stopPropagation(), ne.preventDefault();
1769
+ const L = Pe(te, J);
1770
+ P.current.isResizing ? P.current.onDividerResize?.(P.current.index, Math.max(0, P.current.startSize + L), P.current.startSize) : Math.abs(L) > Math.max(1, l) && (P.current = { ...P.current, isResizing: !0 }, Ve(P.current), P.current.onDividerResizeStart?.(P.current.index, Math.max(0, P.current.startSize + L))), te.stopPropagation(), te.preventDefault();
1771
1771
  } }), A = T(() => {
1772
- J?.(c);
1772
+ Z?.(c);
1773
1773
  }, [c]);
1774
1774
  if (!he) return;
1775
- const p = h({ bounds: he, orientation: o, view: r, index: c, disabled: s, disabledResize: i, onAutoFit: A, onPointerDown: be, ...ee }, n);
1775
+ const p = h({ bounds: he, orientation: o, view: r, index: c, disabled: s, disabledResize: i, onAutoFit: A, onPointerDown: ye, ..._ }, n);
1776
1776
  if (!p) return;
1777
- const { getPortalContainer: je } = go();
1778
- let Ye = null;
1779
- return ie && ie.isResizing && ie.index === c && (Ye = po(Ee("div", { style: { position: "absolute", cursor: k ? ko : Po, left: 0, top: 0, width: "100%", height: "100%" } }), je(), "divider:" + c)), _t(Qn, { children: [Ye, Ee("div", { className: rn("header-divider-anchor"), style: { position: "absolute", pointerEvents: "auto", top: `${k ? he.y : fe}px`, left: `${k ? fe : he.x}px`, width: (k ? 0 : he.width - 1) + "px", height: (k ? he.height - 1 : 0) + "px", display: "flex" }, tabIndex: -1, children: p })] });
1777
+ const { getPortalContainer: Ne } = go();
1778
+ let Xe = null;
1779
+ return ce && ce.isResizing && ce.index === c && (Xe = po(Ce("div", { style: { position: "absolute", cursor: k ? ko : Po, left: 0, top: 0, width: "100%", height: "100%" } }), Ne(), "divider:" + c)), _t(Qn, { children: [Xe, Ce("div", { className: rn("header-divider-anchor"), style: { position: "absolute", pointerEvents: "auto", top: `${k ? he.y : fe}px`, left: `${k ? fe : he.x}px`, width: (k ? 0 : he.width - 1) + "px", height: (k ? he.height - 1 : 0) + "px", display: "flex" }, tabIndex: -1, children: p })] });
1780
1780
  }));
1781
1781
  class hr {
1782
1782
  naturalDimensions(n, o = {}) {
@@ -1797,91 +1797,91 @@ class hr {
1797
1797
  }
1798
1798
  }
1799
1799
  const fr = (t = void 0) => Object.freeze({ clean: t, dirty: void 0, editMode: !1 }), gr = fr(), Er = Kt(tn((t, n) => {
1800
- const { editState: o = gr, defaultTextStyle: r, onStartEdit: c, onChangeEdit: s, onSubmitEdit: i, onCancelEdit: l, onDoneEdit: h, containerBounds: O, setNaturalSize: z, onNavigate: M, textProperties: R, style: $, autoFocus: Y, ...j } = t, ee = le(null), { width: Re = 0 } = O ?? {}, [J, k] = dt(() => o);
1801
- gt(() => {
1800
+ const { editState: o = gr, defaultTextStyle: r, onStartEdit: c, onChangeEdit: s, onSubmitEdit: i, onCancelEdit: l, onDoneEdit: h, containerBounds: O, setNaturalSize: z, onNavigate: M, textProperties: R, style: $, autoFocus: Y, ...q } = t, _ = ie(null), { width: Ie = 0 } = O ?? {}, [Z, k] = ut(() => o);
1801
+ wt(() => {
1802
1802
  k(o);
1803
1803
  }, [o]);
1804
- const U = R?.align || "left", he = R?.vAlign || "middle", P = R?.fill || "#040404", ie = R?.wrap || "wrap", Ue = R?.fontFamily || "Calibri", Oe = R?.fontSize || 11, He = R?.fontWeight || 400, fe = R?.fontStyle || "normal", be = J.dirty ?? J.clean ?? "";
1804
+ const U = R?.align || "left", he = R?.vAlign || "middle", P = R?.fill || "#040404", ce = R?.wrap || "wrap", Ve = R?.fontFamily || "Calibri", Pe = R?.fontSize || 11, We = R?.fontWeight || 400, fe = R?.fontStyle || "normal", ye = Z.dirty ?? Z.clean ?? "";
1805
1805
  let A = 2;
1806
- const p = 96 * Oe / 72, je = 1.2 * p;
1806
+ const p = 96 * Pe / 72, Ne = 1.2 * p;
1807
1807
  he === "right" && (A += 1);
1808
- const Ye = Ve(() => new hr().naturalDimensions(be, { maxWidth: ie === "wrap" ? Re - A : void 0, lineHeight: `${je}px`, paintableText: { fontStyle: fe, wrap: ie, letterSpacing: -0.25 } }), [be, ie, A, p, Ue, He, fe, z, Re]), ne = W(() => Ye.maxLineHeight ? Ye.maxLineHeight + "px" : "1.2", [Ye]), [Ce, Q] = dt(ne);
1808
+ const Xe = Ae(() => new hr().naturalDimensions(ye, { maxWidth: ce === "wrap" ? Ie - A : void 0, lineHeight: `${Ne}px`, paintableText: { fontStyle: fe, wrap: ce, letterSpacing: -0.25 } }), [ye, ce, A, p, Ve, We, fe, z, Ie]), te = W(() => Xe.maxLineHeight ? Xe.maxLineHeight + "px" : "1.2", [Xe]), [be, J] = ut(te);
1809
1809
  en(() => {
1810
- Q(ne());
1811
- }, [O, Ye]), en(() => {
1812
- z?.({ width: ie === "wrap" ? void 0 : Ye.width + A, height: Ye.height });
1813
- }, [Ye, z]);
1810
+ J(te());
1811
+ }, [O, Xe]), en(() => {
1812
+ z?.({ width: ce === "wrap" ? void 0 : Xe.width + A, height: Xe.height });
1813
+ }, [Xe, z]);
1814
1814
  const L = T(s, [s]), X = T((b) => {
1815
- if (J.dirty === b) return;
1816
- const Pe = { ...J };
1817
- Pe.dirty = b, ee.current, k(Pe), L?.(Pe);
1818
- }, [J]), kt = T((b) => {
1819
- if (J.editMode === b) return;
1820
- const Pe = { ...J };
1821
- Pe.editMode = b, k(Pe), L?.(Pe);
1822
- }, [J]), bt = T(() => {
1815
+ if (Z.dirty === b) return;
1816
+ const Me = { ...Z };
1817
+ Me.dirty = b, _.current, k(Me), L?.(Me);
1818
+ }, [Z]), Pt = T((b) => {
1819
+ if (Z.editMode === b) return;
1820
+ const Me = { ...Z };
1821
+ Me.editMode = b, k(Me), L?.(Me);
1822
+ }, [Z]), Et = T(() => {
1823
1823
  try {
1824
- return i?.(J), h?.(), !0;
1824
+ return i?.(Z), h?.(), !0;
1825
1825
  } catch {
1826
1826
  return !1;
1827
1827
  }
1828
- }, [i, J]), wt = T(() => {
1828
+ }, [i, Z]), xt = T(() => {
1829
1829
  k(o), l?.(), h?.();
1830
- }, [l, o]), ut = T((b) => {
1831
- if (!ee.current) return;
1830
+ }, [l, o]), ht = T((b) => {
1831
+ if (!_.current) return;
1832
1832
  if (b.isDefaultPrevented(), !(b.isTrusted || b.nativeEvent.ctrlKey || b.nativeEvent.metaKey || b.nativeEvent.altKey || b.nativeEvent.isComposing) && vo.indexOf(b.nativeEvent.key) !== -1) {
1833
- const oe = { ...J };
1833
+ const oe = { ...Z };
1834
1834
  return oe.dirty = b.nativeEvent.key === "Backspace" ? "" : (oe.dirty ?? "") + b.key, k(oe), L?.(oe), void b.preventDefault();
1835
1835
  }
1836
- const Pe = b.nativeEvent.shiftKey;
1837
- if (b.which === Tt.Escape) return b.preventDefault(), void wt();
1838
- if (b.which === Tt.F2) return kt(!0), void b.preventDefault();
1839
- if (b.which === Tt.Enter && (b.preventDefault(), bt() && M?.(Pe ? w.Up : w.Down)), b.which === Tt.Tab) return b.preventDefault(), void (bt() && M?.(Pe ? w.Left : w.Right));
1840
- if (!J.editMode) {
1836
+ const Me = b.nativeEvent.shiftKey;
1837
+ if (b.which === Ot.Escape) return b.preventDefault(), void xt();
1838
+ if (b.which === Ot.F2) return Pt(!0), void b.preventDefault();
1839
+ if (b.which === Ot.Enter && (b.preventDefault(), Et() && M?.(Me ? w.Up : w.Down)), b.which === Ot.Tab) return b.preventDefault(), void (Et() && M?.(Me ? w.Left : w.Right));
1840
+ if (!Z.editMode) {
1841
1841
  let oe = null;
1842
1842
  switch (b.which) {
1843
- case Tt.Left:
1843
+ case Ot.Left:
1844
1844
  oe = w.Left;
1845
1845
  break;
1846
- case Tt.Right:
1846
+ case Ot.Right:
1847
1847
  oe = w.Right;
1848
1848
  break;
1849
- case Tt.Up:
1849
+ case Ot.Up:
1850
1850
  oe = w.Up;
1851
1851
  break;
1852
- case Tt.Down:
1852
+ case Ot.Down:
1853
1853
  oe = w.Down;
1854
1854
  }
1855
- if (oe) return void bt();
1855
+ if (oe) return void Et();
1856
1856
  }
1857
- }, [J, M]), [ge, Wt] = dt(!Y);
1858
- gt(() => {
1857
+ }, [Z, M]), [ge, Wt] = ut(!Y);
1858
+ wt(() => {
1859
1859
  Wt(!1);
1860
1860
  }, []);
1861
1861
  const D = wo(n, () => ({ startEdit(b) {
1862
- let Pe = b?.initialSelection;
1863
- if (!Pe) {
1864
- const xe = ee.current.value.length ?? 0;
1865
- Pe = { start: xe, end: xe, direction: "forward" };
1862
+ let Me = b?.initialSelection;
1863
+ if (!Me) {
1864
+ const pe = _.current.value.length ?? 0;
1865
+ Me = { start: pe, end: pe, direction: "forward" };
1866
1866
  }
1867
- ee.current?.setSelectionRange(Pe.start, Pe.end, Pe.direction);
1867
+ _.current?.setSelectionRange(Me.start, Me.end, Me.direction);
1868
1868
  const oe = { ...o, editMode: b?.editMode ?? !1 };
1869
1869
  b?.text !== void 0 && (oe.dirty = b.text), oe.editMode === o.editMode && oe.dirty === o.dirty || (k(oe), L?.(oe));
1870
- }, submitEdit: () => bt(), cancelEdit() {
1871
- wt();
1870
+ }, submitEdit: () => Et(), cancelEdit() {
1871
+ xt();
1872
1872
  }, autoFocus() {
1873
- ee.current?.focus();
1874
- }, getLineHeight: () => Ye?.maxLineHeight ?? je, dispatchEvent: (b) => ee.current.dispatchEvent(b) }), [o, c]);
1875
- return Ee("div", { ref: D, ...j, style: { background: "transparent", display: "flex", flexGrow: 1, alignSelf: "center", height: Ye.height, maxWidth: "100%", maxHeight: "100%", ...$ }, children: Ee("textarea", { spellCheck: "false", ref: ee, value: be, autoFocus: !1, disabled: ge, name: "cell-editor", autoComplete: "off", autoCapitalize: "off", style: { flex: "1 1 100%", position: "relative", fontSize: `${p}px`, fontFamily: `${Ue}`, fontWeight: `${He}`, fontStyle: `${fe}`, padding: "0px", marginRight: U === "right" ? "3px" : "0px", marginLeft: U === "left" ? "2px" : "0px", lineHeight: Ce, height: Ye.height, textRendering: "geometricPrecision", letterSpacing: "-0.25px", boxSizing: "border-box", borderWidth: 0, outline: "none", resize: "none", overflow: "hidden", verticalAlign: "baseline", textAlign: U, background: "transparent", color: P, marginBottom: "0px", userSelect: "text", maxHeight: "100%", whiteSpace: ie === "wrap" ? "break-spaces" : "pre", wordWrap: "break-word" }, onChange: (b) => {
1873
+ _.current?.focus();
1874
+ }, getLineHeight: () => Xe?.maxLineHeight ?? Ne, dispatchEvent: (b) => _.current.dispatchEvent(b) }), [o, c]);
1875
+ return Ce("div", { ref: D, ...q, style: { background: "transparent", display: "flex", flexGrow: 1, alignSelf: "center", height: Xe.height, maxWidth: "100%", maxHeight: "100%", ...$ }, children: Ce("textarea", { spellCheck: "false", ref: _, value: ye, autoFocus: !1, disabled: ge, name: "cell-editor", autoComplete: "off", autoCapitalize: "off", style: { flex: "1 1 100%", position: "relative", fontSize: `${p}px`, fontFamily: `${Ve}`, fontWeight: `${We}`, fontStyle: `${fe}`, padding: "0px", marginRight: U === "right" ? "3px" : "0px", marginLeft: U === "left" ? "2px" : "0px", lineHeight: be, height: Xe.height, textRendering: "geometricPrecision", letterSpacing: "-0.25px", boxSizing: "border-box", borderWidth: 0, outline: "none", resize: "none", overflow: "hidden", verticalAlign: "baseline", textAlign: U, background: "transparent", color: P, marginBottom: "0px", userSelect: "text", maxHeight: "100%", whiteSpace: ce === "wrap" ? "break-spaces" : "pre", wordWrap: "break-word" }, onChange: (b) => {
1876
1876
  X(b.target.value);
1877
1877
  }, onDoubleClick: (b) => {
1878
1878
  b.isTrusted;
1879
1879
  }, onMouseDown: (b) => {
1880
- kt(!0);
1881
- }, onKeyDown: ut }) });
1880
+ Pt(!0);
1881
+ }, onKeyDown: ht }) });
1882
1882
  })), Rr = Kt((t) => {
1883
1883
  const { value: n, view: o, bounds: r, range: c, zoom: s, children: i, style: l, ...h } = t;
1884
- return Ee("div", { style: { padding: "2px 4px", fontFamily: "Calibri", letterSpacing: -0.25, lineHeight: 1.2, fontSize: l?.fontSize || 1056 / 72, ...l }, ...h, children: n });
1884
+ return Ce("div", { style: { padding: "2px 4px", fontFamily: "Calibri", letterSpacing: -0.25, lineHeight: 1.2, fontSize: l?.fontSize || 1056 / 72, ...l }, ...h, children: n });
1885
1885
  });
1886
1886
  export {
1887
1887
  Ro as BaseGrid,