@sheetxl/studio-vanilla 0.4.10 → 0.4.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/cjs/B0rdyyttE2Aibsag.cjs +7 -0
- package/browser/cjs/B2e7dDI-zKoqXpIW.cjs +107 -0
- package/browser/cjs/BAyEOOtO-9sHQQRW.cjs +7 -0
- package/browser/cjs/BPTHTRDvNOVkUJGa.cjs +7 -0
- package/browser/cjs/BlSFY6zLlebuejdV.cjs +7 -0
- package/browser/cjs/BplA5pDzOJpfTZuA.cjs +7 -0
- package/browser/cjs/BshvMtUxTJHj3JQN.cjs +7 -0
- package/browser/cjs/BuWtGFX0HiBezGjw.cjs +7 -0
- package/browser/cjs/C5FXOMLhAu_KTjVe.cjs +7 -0
- package/browser/cjs/C7EZCTczsC-gkRcq.cjs +7 -0
- package/browser/cjs/CFcjX5-nVsgzdZ4F.cjs +7 -0
- package/browser/cjs/CjZbhk41S1qO_74G.cjs +7 -0
- package/browser/cjs/CuTW2Pt-L5n-hNxV.cjs +7 -0
- package/browser/cjs/D3iOk-Q2tRdUeTcn.cjs +7 -0
- package/browser/cjs/DFspSkki779xN-Ey.cjs +7 -0
- package/browser/cjs/DFtyXc7YFh9dIp74.cjs +7 -0
- package/browser/cjs/Db_Ew1r6yOMYylvA.cjs +7 -0
- package/browser/cjs/DgBn3aW39yjgm0X_.cjs +7 -0
- package/browser/cjs/DiBy6-IxLscyMW2y.cjs +7 -0
- package/browser/cjs/DrlS1oz9Nea8Pm3j.cjs +7 -0
- package/browser/cjs/Dx-jp_LJxWbAScyA.cjs +7 -0
- package/browser/cjs/SzxJv7OUs5ojl8gx.cjs +7 -0
- package/browser/cjs/T4SHYo66xDT3l9JN.cjs +7 -0
- package/browser/cjs/index.cjs +4 -3
- package/browser/cjs/vfUix5Di0Ro8tEID.cjs +7 -0
- package/browser/esm/B5kkStdEkTczERyM.mjs +7 -0
- package/browser/esm/B905wKzTtod-jbsD.mjs +7 -0
- package/browser/esm/BALnKy2Fp7fyk-lc.mjs +7 -0
- package/browser/esm/BDVJ7eOPpW5FnEAP.mjs +7 -0
- package/browser/esm/BGpv6Kq7eBlJy43T.mjs +7 -0
- package/browser/esm/BUSR_OK5Qi6hRPfw.mjs +7 -0
- package/browser/esm/BXUGsC1Mo3FP8vnW.mjs +7 -0
- package/browser/esm/BlGoi1_x9rUMpWMd.mjs +7 -0
- package/browser/esm/Bo_ZPRrOQrqOVHAF.mjs +7 -0
- package/browser/esm/BuURCm92KsyGHG9e.mjs +7 -0
- package/browser/esm/CFFC0SNc24a0Dxnh.mjs +7 -0
- package/browser/esm/CGZ5MX7afzMxDkCe.mjs +7 -0
- package/browser/esm/Cc_VWd0wF5-39LsI.mjs +7 -0
- package/browser/esm/Cq8D_M0jeHLcnRjg.mjs +7 -0
- package/browser/esm/CzmNwV9tfFYUp_gS.mjs +7 -0
- package/browser/esm/De6RPxc4p_jXLlT5.mjs +7 -0
- package/browser/esm/DlVZFM9ZR5jGyG0_.mjs +7 -0
- package/browser/esm/DqXxZP6yKF4U1YfY.mjs +7 -0
- package/browser/esm/DtmE60AvstK9u0Ta.mjs +107 -0
- package/browser/esm/Dz2OVgq3kxi1TkfX.mjs +7 -0
- package/browser/esm/PS0cqYnlMVEGOQpI.mjs +7 -0
- package/browser/esm/QBGUD1XS5_pysBLL.mjs +7 -0
- package/browser/esm/index.mjs +2 -8
- package/browser/esm/tFhROdVSw9KLQfUN.mjs +7 -0
- package/browser/esm/uGDCdtqxjqRCo4Xn.mjs +7 -0
- package/cdn/index.js +40 -44
- package/cdn/loader.js +1 -1
- package/package.json +5 -5
- package/browser/cjs/B1UGqZP_7Z0Ewpog.cjs +0 -6
- package/browser/cjs/B6m9VXoFseD4zuZ5.cjs +0 -6
- package/browser/cjs/BKePSaEpM6Z063z-.cjs +0 -161
- package/browser/cjs/Bqn0ZeP_srNfL9rG.cjs +0 -6
- package/browser/cjs/C-izbj62pQuZjOrT.cjs +0 -304
- package/browser/cjs/C-w-GX8N54TxTjjf.cjs +0 -6
- package/browser/cjs/C1QGdcqJ-9sdGTQR.cjs +0 -6
- package/browser/cjs/C38aiRglHLxZ8KRY.cjs +0 -6
- package/browser/cjs/C4JMn_hMnlOnDpQO.cjs +0 -6
- package/browser/cjs/CApEj4LhhPUvQjIG.cjs +0 -16
- package/browser/cjs/CFcJbmmXjWjl6fQH.cjs +0 -6
- package/browser/cjs/CKiDbCZ6rGgXK7yN.cjs +0 -42
- package/browser/cjs/CM8btXQsJbnFKXUm.cjs +0 -6
- package/browser/cjs/Cb0K3Wzp7BAa4zni.cjs +0 -15
- package/browser/cjs/CiAUhPU7v1BK-8Bb.cjs +0 -7
- package/browser/cjs/CsXS-EN0N5SZHTnQ.cjs +0 -145
- package/browser/cjs/Cu2eUomoF0HToa4l.cjs +0 -6
- package/browser/cjs/Cy7ii9B_Vqx94pbu.cjs +0 -19
- package/browser/cjs/CzI4ZcsmzsyPBpWN.cjs +0 -12
- package/browser/cjs/DKHzUx2gKXwboKy1.cjs +0 -11
- package/browser/cjs/DKc8wAq8dwbDddQn.cjs +0 -11
- package/browser/cjs/DMyKApbUVRtNYC4e.cjs +0 -6
- package/browser/cjs/DROR08HMGyg7rizQ.cjs +0 -6
- package/browser/cjs/DfGDZlbFVknGyu_X.cjs +0 -6
- package/browser/cjs/OQdqVM_6m78kE5Aj.cjs +0 -7
- package/browser/cjs/v4OEtYXaUw_GeiXM.cjs +0 -12
- package/browser/esm/4uEr84M4w57AMyDg.mjs +0 -1703
- package/browser/esm/B8Ja5DlyKAy8xfQD.mjs +0 -1365
- package/browser/esm/B9bN60uAvy62vnwt.mjs +0 -22
- package/browser/esm/BAOzSQdzHl43K9Hd.mjs +0 -50
- package/browser/esm/BQYSD5Nb35y0WeeV.mjs +0 -421
- package/browser/esm/BVcaNvORp_uKPQgJ.mjs +0 -46
- package/browser/esm/BqXO_cQhrMJu7JoQ.mjs +0 -3756
- package/browser/esm/C18A_DcIEHNYBDvR.mjs +0 -46
- package/browser/esm/C7FoKZbSzjvuY3UB.mjs +0 -43
- package/browser/esm/CCIJpHSbFPjTEF8S.mjs +0 -1665
- package/browser/esm/CHNPjJxb0GY_naLa.mjs +0 -25025
- package/browser/esm/CKHsU9LUNYowimxS.mjs +0 -1346
- package/browser/esm/C_Zx1tYjI3n7KKZH.mjs +0 -21
- package/browser/esm/Cm-m3bZh0V44y0li.mjs +0 -390
- package/browser/esm/D1e_ccSgcNXvWHgy.mjs +0 -151
- package/browser/esm/D47D26mVYSAdb5C8.mjs +0 -2178
- package/browser/esm/D9CdO3PtV12RnK8K.mjs +0 -1467
- package/browser/esm/D9x-Q8y57gePf-tE.mjs +0 -944
- package/browser/esm/DHhXutXh7b5LsU1m.mjs +0 -2346
- package/browser/esm/DIGFi66CQPMV3HsL.mjs +0 -84
- package/browser/esm/DamiTeQsSMP2Cwld.mjs +0 -58
- package/browser/esm/DhD48oFrbrnZ6Zg5.mjs +0 -13208
- package/browser/esm/Ln2ZalJgj1CiJJue.mjs +0 -50
- package/browser/esm/S9fgUO7h8YgZxoKH.mjs +0 -633
- package/browser/esm/qVAHcpq07IhtAaQc.mjs +0 -24
- package/browser/esm/xrzJ8ILZHb118Oyt.mjs +0 -41
- package/cdn/assets/2-xJlw77WsCoyz09.js +0 -24872
- package/cdn/assets/B-9FcTf3xBEVGdjV.js +0 -1467
- package/cdn/assets/B-p1i2SNRMunPXCF.js +0 -43
- package/cdn/assets/B3J6oAmsS7oLNFPd.js +0 -46
- package/cdn/assets/B8Ja5DlyKAy8xfQD.js +0 -1365
- package/cdn/assets/BG3YTMAzNKPRGoLs.js +0 -50
- package/cdn/assets/BQYSD5Nb35y0WeeV.js +0 -421
- package/cdn/assets/BbzUpvQOkxsN-yIH.js +0 -2346
- package/cdn/assets/BqXO_cQhrMJu7JoQ.js +0 -3756
- package/cdn/assets/Bt1JSlSpWXDOBfq3.js +0 -1703
- package/cdn/assets/CCIJpHSbFPjTEF8S.js +0 -1665
- package/cdn/assets/CKHsU9LUNYowimxS.js +0 -1346
- package/cdn/assets/CWLJZwD2GVXljoWG.js +0 -46
- package/cdn/assets/Cm-m3bZh0V44y0li.js +0 -390
- package/cdn/assets/CtQlXGkNWgI-vtGy.js +0 -2178
- package/cdn/assets/DIGFi66CQPMV3HsL.js +0 -84
- package/cdn/assets/DK4S0DbayChkfTD6.js +0 -58
- package/cdn/assets/DQvsBz9F1GS_S7r9.js +0 -50
- package/cdn/assets/DTOgv_zwXSur-yCq.js +0 -151
- package/cdn/assets/DYZjOnD8WWQkCYuH.js +0 -944
- package/cdn/assets/DhD48oFrbrnZ6Zg5.js +0 -13208
- package/cdn/assets/DhyAyTCDkMBf392P.js +0 -21
- package/cdn/assets/P7HeVw5SHROLSWBz.js +0 -24
- package/cdn/assets/S4Z0SN8x6EltjsHT.js +0 -22
- package/cdn/assets/S9fgUO7h8YgZxoKH.js +0 -633
- package/cdn/assets/guYe4C_6pE93QsDV.js +0 -41
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { Workbook as J } from "@sheetxl/sdk";
|
|
2
|
-
/**
|
|
3
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.10
|
|
4
|
-
*
|
|
5
|
-
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
6
|
-
* License: The license can be found at https://www.sheetxl.com/license.
|
|
7
|
-
*/
|
|
8
|
-
const k = async (w, l) => {
|
|
9
|
-
const u = await w.toJSON(), b = l?.whiteSpace ?? 0;
|
|
10
|
-
let g;
|
|
11
|
-
l?.beforeWrite?.(w, u), g = b === 0 ? JSON.stringify(u) : function(f, r = 2) {
|
|
12
|
-
const n = [];
|
|
13
|
-
function i(o) {
|
|
14
|
-
const e = r * o;
|
|
15
|
-
return n[e] === void 0 && (n[e] = " ".repeat(e)), n[e];
|
|
16
|
-
}
|
|
17
|
-
return function o(e, a, s, m) {
|
|
18
|
-
if (e == null || typeof e != "object") return JSON.stringify(e);
|
|
19
|
-
const d = i(a), O = i(a + 1);
|
|
20
|
-
if (Array.isArray(e)) {
|
|
21
|
-
const c = e.length;
|
|
22
|
-
if (c === 0) return "[]";
|
|
23
|
-
if (s !== 0) return JSON.stringify(e);
|
|
24
|
-
let y = `[
|
|
25
|
-
`;
|
|
26
|
-
for (let h = 0; h < c; h++) y += O + o(e[h], a + 1, s + 1, !0), h < c - 1 && (y += `,
|
|
27
|
-
`);
|
|
28
|
-
return y += `
|
|
29
|
-
` + d + "]", y;
|
|
30
|
-
}
|
|
31
|
-
const B = Object.keys(e), A = B.length;
|
|
32
|
-
if (A === 0) return "{}";
|
|
33
|
-
if (!(s < 2)) return JSON.stringify(e);
|
|
34
|
-
let S = `{
|
|
35
|
-
`;
|
|
36
|
-
m || (s = 0);
|
|
37
|
-
for (let c = 0; c < A; c++) {
|
|
38
|
-
const y = B[c];
|
|
39
|
-
S += O + JSON.stringify(y) + ": " + o(e[y], a + 1, s, !1), c < A - 1 && (S += `,
|
|
40
|
-
`);
|
|
41
|
-
}
|
|
42
|
-
return S += `
|
|
43
|
-
` + d + "}", S;
|
|
44
|
-
}(f, 0, 0, !1);
|
|
45
|
-
}(u, b);
|
|
46
|
-
let p = new TextEncoder().encode(g).buffer;
|
|
47
|
-
const t = l?.compress ?? !0;
|
|
48
|
-
return t && (p = await async function(f, r = "gzip") {
|
|
49
|
-
let n;
|
|
50
|
-
typeof SharedArrayBuffer < "u" && f instanceof SharedArrayBuffer ? (n = new ArrayBuffer(f.byteLength), new Uint8Array(n).set(new Uint8Array(f))) : n = f;
|
|
51
|
-
const i = new ReadableStream({ start(a) {
|
|
52
|
-
a.enqueue(n), a.close();
|
|
53
|
-
} }), o = new CompressionStream(r), e = i.pipeThrough(o);
|
|
54
|
-
return (await new Response(e).blob()).arrayBuffer();
|
|
55
|
-
}(p, typeof t == "string" ? t : void 0)), p;
|
|
56
|
-
}, z = async (w, l) => {
|
|
57
|
-
let u = w;
|
|
58
|
-
(function(t) {
|
|
59
|
-
if (t.byteLength < 4) return !1;
|
|
60
|
-
const f = new Uint8Array(t), r = { gzip: [31, 139], zip: [80, 75, 3, 4], bz2: [66, 90, 104], br: [206, 178, 207, 129] }, n = Object.keys(r);
|
|
61
|
-
for (let i = 0; i < n.length; i++) {
|
|
62
|
-
const o = n[i], e = r[o];
|
|
63
|
-
let a = !0;
|
|
64
|
-
for (let s = 0; s < e.length; s++) if (f[s] !== e[s]) {
|
|
65
|
-
a = !1;
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
if (a) return o;
|
|
69
|
-
}
|
|
70
|
-
return !1;
|
|
71
|
-
})(u) && (u = await async function(t, f = "gzip") {
|
|
72
|
-
let r;
|
|
73
|
-
typeof SharedArrayBuffer < "u" && t instanceof SharedArrayBuffer ? (r = new ArrayBuffer(t.byteLength), new Uint8Array(r).set(new Uint8Array(t))) : r = t;
|
|
74
|
-
const n = new Blob([r]).stream(), i = new DecompressionStream(f), o = n.pipeThrough(i);
|
|
75
|
-
return (await new Response(o).blob()).arrayBuffer();
|
|
76
|
-
}(u));
|
|
77
|
-
let b = new TextDecoder().decode(u);
|
|
78
|
-
const g = JSON.parse(b), p = { ...l?.createWorkbookOptions ?? {}, json: g };
|
|
79
|
-
return new J(p);
|
|
80
|
-
};
|
|
81
|
-
export {
|
|
82
|
-
z as fromBufferJSON,
|
|
83
|
-
k as toBufferJSON
|
|
84
|
-
};
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { jsx as a, jsxs as s } from "react/jsx-runtime";
|
|
2
|
-
import { memo as O, useState as r, useRef as M, useReducer as A, useMemo as E } from "react";
|
|
3
|
-
import { aL as W, U as k, aM as Q, aN as U, w as x, aA as V, aB as q, B as n, aO as G, aP as J, ak as f, aQ as K, aR as X, ag as y, ah as b, ai as w, aS as S } from "./2-xJlw77WsCoyz09.js";
|
|
4
|
-
/**
|
|
5
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.10
|
|
6
|
-
*
|
|
7
|
-
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
8
|
-
* License: The license can be found at https://www.sheetxl.com/license.
|
|
9
|
-
*/
|
|
10
|
-
const te = O((C) => {
|
|
11
|
-
const { title: N, onHide: R, autoFocusSel: v = ".range-input input", context: T, notifier: l = W, command: c, commands: d, ...D } = C, [F, g] = r(!1), [m, p] = r(!1), h = M(null), [Y, B] = A((e) => e + 1, 0), [H, { width: Z }] = k();
|
|
12
|
-
Q(c);
|
|
13
|
-
const o = T ?? c.context(), t = o.table(), [P, I] = r(() => t ? o.getNames().getRanges(t.getRange()) : null), j = E(() => t?.getName() ?? "", [t]);
|
|
14
|
-
U(o.table(), { onAnchorCoordsChange(e) {
|
|
15
|
-
I(o.getNames().getRanges(e.getRange()));
|
|
16
|
-
}, onProtectedChange(e) {
|
|
17
|
-
B();
|
|
18
|
-
} });
|
|
19
|
-
const L = x((e) => {
|
|
20
|
-
o?.table().setName(e);
|
|
21
|
-
}, [o]), z = x((e) => {
|
|
22
|
-
o?.table().resize(e.at(0));
|
|
23
|
-
}, [o]);
|
|
24
|
-
let u = null;
|
|
25
|
-
return o.table() || (u = a("div", { style: { position: "absolute", top: "0", left: "0", width: "100%", height: "100%", opacity: 1, display: "flex", alignItems: "center", justifyItems: "center", justifyContent: "center", boxSizing: "border-box" }, children: a("div", { children: "No table selected" }) })), a(V, { ref: h, title: N ?? "Table Details", initialPosition: { y: "35" }, autoFocusSel: v, onHide: R, onFocus: () => g(!0), onBlur: (e) => {
|
|
26
|
-
h?.current?.contains(e.relatedTarget) || g(!1);
|
|
27
|
-
}, PaperProps: { elevation: F ? 3 : 1 }, ...D, children: s(q, { dividers: !0, ref: H, sx: { display: "flex", flexDirection: "column", position: "relative", paddingLeft: (e) => e.spacing(1.5), paddingRight: (e) => e.spacing(1.5) }, children: [s(n, { sx: { display: "flex", flexDirection: "column", transition: "opacity 60ms", opacity: o.table() ? 1 : 0 }, children: [a(n, { sx: { display: "flex", flexDirection: "row", gap: (e) => e.spacing(1) }, children: a(n, { sx: { display: "flex", flexDirection: "column", maxWidth: "100%", boxSizing: "border-box", paddingLeft: (e) => e.spacing(2), paddingRight: (e) => e.spacing(2) }, children: s(n, { sx: { display: "flex", flexDirection: "column", alignItems: "center" }, children: [a(G, { formName: "name", defaultInput: j, value: t?.getName() ?? "No table", onChangeInput: L, onValidate: (e) => {
|
|
28
|
-
t && t.getName().toLowerCase() === e.toLowerCase() || o?.getNames().validateName(e);
|
|
29
|
-
}, disabled: t?.isProtected() ?? !0, onFocus: (e) => {
|
|
30
|
-
m || e.target?.select(), p(!0);
|
|
31
|
-
} }), a(J, { formName: "range", value: P, onChangeInput: z, resolvedAddress: o.getNames().getRanges.bind(o.getNames()), disabled: t?.isProtected() ?? !0, onFocus: (e) => {
|
|
32
|
-
m || e.target?.select(), p(!0);
|
|
33
|
-
} })] }) }) }), s(n, { sx: { minHeight: "10px", flex: "1 1 100%", display: "flex", flexDirection: "column", gap: (e) => e.spacing(0.5), marginTop: (e) => e.spacing(1) }, children: [a(f, { orientation: "horizontal", sx: { marginTop: (e) => e.spacing(1.5), marginBottom: (e) => e.spacing(0.75) } }), a(K, { disabled: t?.isProtected(), styleOptions: t?.getStyleOptions() ?? null, onStyleOptionsChange: (e) => {
|
|
34
|
-
t.updateStyleOptions(e);
|
|
35
|
-
}, showHeaderRow: t?.getShowHeaders(), onShowHeaderRowChange: (e) => {
|
|
36
|
-
try {
|
|
37
|
-
t.setShowHeaders(e);
|
|
38
|
-
} catch (i) {
|
|
39
|
-
l.showError(i);
|
|
40
|
-
}
|
|
41
|
-
}, showTotalRow: t?.getShowTotals(), onShowTotalRowChange: (e) => {
|
|
42
|
-
try {
|
|
43
|
-
t.setShowTotals(e);
|
|
44
|
-
} catch (i) {
|
|
45
|
-
l.showError(i);
|
|
46
|
-
}
|
|
47
|
-
}, showFilterButton: t?.getFilter() ? t.getShowFilterButton() : null, onShowFilterButtonChange: (e) => {
|
|
48
|
-
try {
|
|
49
|
-
t.setShowFilterButton(e);
|
|
50
|
-
} catch (i) {
|
|
51
|
-
l.showError(i);
|
|
52
|
-
}
|
|
53
|
-
} }), a(n, { sx: { display: "flex", alignItems: "center", justifyContent: "center", flexDirection: "column", marginTop: (e) => e.spacing(2), marginBottom: (e) => e.spacing(1) }, children: a(X, { table: t, styles: o.styles(), bodyStyle: o.bodyStyle(), cellHeight: 30, isLive: !0 }) }), a(f, { orientation: "horizontal" }), s(n, { sx: { display: "flex", flexDirection: "column", justifyContent: "center" }, children: [a(y, { variant: w.Menuitem, command: d.getCommand("convertTableToRange"), commandState: t, icon: b(a(S, {})) }), a(y, { variant: w.Menuitem, commandState: t, command: d.getCommand("deleteTable"), icon: b(a(S, {})) })] })] })] }), u] }) });
|
|
54
|
-
});
|
|
55
|
-
export {
|
|
56
|
-
te as TableDetailsWindow,
|
|
57
|
-
te as default
|
|
58
|
-
};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
-
import { memo as E, useMemo as M, useState as x, useCallback as j } from "react";
|
|
3
|
-
import { w as r, v as S, B as V, F as $, T as z, a as h, ay as C } from "./2-xJlw77WsCoyz09.js";
|
|
4
|
-
/**
|
|
5
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.10
|
|
6
|
-
*
|
|
7
|
-
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
8
|
-
* License: The license can be found at https://www.sheetxl.com/license.
|
|
9
|
-
*/
|
|
10
|
-
const G = ["Ok", "Cancel"], U = E((O) => {
|
|
11
|
-
const { initialComments: w = null, onUpdateComments: m, context: y, onOption: u, onValidateOption: l, onDone: p, options: d = G, defaultOption: c = d?.[0], cancelOption: s = "Cancel", sx: F, ...T } = O, g = M(() => {
|
|
12
|
-
const n = w ?? y?.()?.getComments();
|
|
13
|
-
let t = "";
|
|
14
|
-
if (n && n.content && n.content.runs) {
|
|
15
|
-
const a = n.content.runs;
|
|
16
|
-
for (let o = 0; o < a.length; o++) {
|
|
17
|
-
const B = a[o];
|
|
18
|
-
t += B?.text;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return t;
|
|
22
|
-
}, []), [e, k] = x(g), [v, P] = x(!1), f = j(async (n, t) => null, []), b = r(async (n) => {
|
|
23
|
-
const t = e === "" ? [] : e.split(`
|
|
24
|
-
`);
|
|
25
|
-
if (n !== s) {
|
|
26
|
-
const a = [];
|
|
27
|
-
for (let o = 0; o < t.length; o++) a.push({ text: t[o] });
|
|
28
|
-
m?.({ content: { runs: a } });
|
|
29
|
-
}
|
|
30
|
-
u?.(n, n === s, n === c), p?.();
|
|
31
|
-
}, [e, m, p, u, c, s]), D = r((n) => {
|
|
32
|
-
k(n.target.value), f(n.target.value, null);
|
|
33
|
-
}, [l]), I = r(async (n) => {
|
|
34
|
-
let t = await Promise.resolve(l?.(n));
|
|
35
|
-
try {
|
|
36
|
-
t !== !1 && (t = await f(e, n));
|
|
37
|
-
} catch {
|
|
38
|
-
}
|
|
39
|
-
return t ?? !0;
|
|
40
|
-
}, [l, e]);
|
|
41
|
-
return i(S, { title: (g ? "Edit" : "Insert") + " Comments", options: d, onDone: p, onOption: (n) => b(n), onValidateOption: I, defaultOption: c, cancelOption: s, autoFocusSel: ".autoFocus", sx: { width: "480px", ...F }, ...T, children: i(V, { sx: { paddingTop: (n) => n.spacing(1), paddingBottom: (n) => n.spacing(0), rowGap: (n) => n.spacing(1), display: "flex", flexDirection: "column" }, children: i($, { sx: { paddingTop: (n) => n.spacing(1.5), minWidth: 135, width: "100%" }, size: "small", children: i(z, { label: "Comments", placeholder: "Enter a comment.", onFocus: (n) => {
|
|
42
|
-
v || n.target?.select(), P(!0);
|
|
43
|
-
}, sx: { "& .MuiFormHelperText-root": { marginTop: (n) => n.spacing(0.5) } }, InputLabelProps: { shrink: !0 }, InputProps: { inputProps: { className: "autoFocus", spellCheck: !1, autoComplete: "off", sx: { paddingTop: (n) => n.spacing(1.25), paddingBottom: (n) => n.spacing(0.75), backgroundImage: `linear-gradient(${h("#fff", C(5))}, ${h("#fff", C(5))})` } } }, value: e, onChange: D, onContextMenu: (n) => {
|
|
44
|
-
n.stopPropagation();
|
|
45
|
-
} }) }) }) });
|
|
46
|
-
});
|
|
47
|
-
export {
|
|
48
|
-
U as CommentsDialog,
|
|
49
|
-
U as default
|
|
50
|
-
};
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { jsx as i, jsxs as p } from "react/jsx-runtime";
|
|
2
|
-
import { memo as oe, useRef as C, useState as b, useEffect as L, useLayoutEffect as pe, useMemo as de } from "react";
|
|
3
|
-
import { ICell as c, IRange as R } from "@sheetxl/sdk";
|
|
4
|
-
import { r as D, w as H, av as ue, U as fe, aA as ge, aB as me, B as O, aC as m, ah as x, aD as xe, a8 as y, aE as he, T as _, a as k, aF as Oe, aG as Ce, aH as ye, aI as be, ay as w, aJ as ve, aK as Te, ak as Re, az as ke, F as we, aw as Ee, ax as Fe } from "./2-xJlw77WsCoyz09.js";
|
|
5
|
-
import { C as ee } from "./DYZjOnD8WWQkCYuH.js";
|
|
6
|
-
/**
|
|
7
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.4.10
|
|
8
|
-
*
|
|
9
|
-
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
10
|
-
* License: The license can be found at https://www.sheetxl.com/license.
|
|
11
|
-
*/
|
|
12
|
-
const Se = D(i("path", { d: "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z" }), "ArrowBack"), Ie = D(i("path", { d: "m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z" }), "ArrowDownward"), Le = D(i("path", { d: "m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z" }), "ArrowForward"), De = D(i("path", { d: "m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z" }), "ArrowUpward"), z = oe((E) => {
|
|
13
|
-
const { label: h, value: r, options: a, onSelect: d, tabIndex: v = 0, ...A } = E, [K, T] = b(() => ie(r, a));
|
|
14
|
-
L(() => {
|
|
15
|
-
T(ie(r, a));
|
|
16
|
-
}, [r, a]);
|
|
17
|
-
const P = H((u) => {
|
|
18
|
-
T(u.target.value), d?.(a[u.target.value]);
|
|
19
|
-
}, [d, a]), s = de(() => Object.keys(a).map((u) => i(ke, { value: u, children: u }, u)), [a]);
|
|
20
|
-
return p(we, { sx: { minWidth: 135 }, size: "small", children: [i(Ee, { children: h }), i(Fe, { inputProps: { tabIndex: v }, value: K, label: h, onChange: P, sx: { backgroundImage: `linear-gradient(${k("#fff", w(5))}, ${k("#fff", w(5))})` }, ...A, children: s })] });
|
|
21
|
-
}), te = { Workbook: "workbook", Sheet: "sheet" }, ne = { enter: 140, exit: 140 }, ae = { Formulas: c.Content.Formulas, Values: c.Content.Values, Notes: c.Content.Notes, Comments: c.Content.Comments }, se = { ...ae };
|
|
22
|
-
delete se.Values;
|
|
23
|
-
const Ae = { "By Rows": !0, "By Columns": !1 }, ie = (E, h) => {
|
|
24
|
-
const r = Object.keys(h);
|
|
25
|
-
for (let a = 0; a < r.length; a++) {
|
|
26
|
-
const d = r[a];
|
|
27
|
-
if (h[d] === E) return d;
|
|
28
|
-
}
|
|
29
|
-
}, ze = oe((E) => {
|
|
30
|
-
const { replace: h = !1, findText: r, replaceText: a, findOptions: d, replaceOptions: v, title: A, onHide: K, onFindOrReplace: T, ...P } = E, s = C(null), u = C(null), $ = C(null), W = C(null), j = C(null), N = C(null), U = (e, t) => {
|
|
31
|
-
t && (t.start(e, { center: !1 }), setTimeout(() => t.stop(e), 180));
|
|
32
|
-
}, [G, I] = b(!1), [B, le] = b(!1), [f, M] = b(h), [J, V] = b(!1), [X, q] = b(!1), [o, l] = b({ findText: null, replaceText: null, replace: h, replaceOptions: {}, findOptions: { matchCase: !1, matchEntireCell: !1, useRegex: !1, orientation: R.Orientation.Row, fields: [c.Content.Formulas] }, scope: te.Sheet }), F = H(async (e, t, n, S) => {
|
|
33
|
-
if (!T) return;
|
|
34
|
-
const g = { ...o };
|
|
35
|
-
g.replaceOptions = { ...g.replaceOptions }, g.findOptions = { ...g.findOptions }, g.replaceOptions.maxCount = n ? void 0 : 1, g.replace = t, t && o.findOptions.fields?.[0] === c.Content.Values && (g.findOptions.fields = [c.Content.Formulas]), g.findOptions.reverse = !e;
|
|
36
|
-
const ce = await T({ autoFocus: S, ...g });
|
|
37
|
-
V(ce === 0);
|
|
38
|
-
}, [o, T]);
|
|
39
|
-
L(() => {
|
|
40
|
-
V(!1);
|
|
41
|
-
}, [o, B, f]);
|
|
42
|
-
const Q = H((e, t) => {
|
|
43
|
-
if (e.keyCode === ue.Enter) {
|
|
44
|
-
if (!o.findText) return;
|
|
45
|
-
let n = !0, S = !1;
|
|
46
|
-
e.shiftKey && (n = !1), t ? (e.ctrlKey && e.altKey && (S = !0), U(e, S ? N.current : j.current)) : U(e, n ? W.current : $.current), F(n, t, S, !1);
|
|
47
|
-
}
|
|
48
|
-
}, [o]), Y = C(null);
|
|
49
|
-
pe(() => {
|
|
50
|
-
l((e) => {
|
|
51
|
-
const t = { ...e };
|
|
52
|
-
t.findText = r && r.length > 0 ? r : e.findText ?? "", I(!0), a !== void 0 && (t.replaceText = a), d && (t.findOptions = { ...t.findOptions, ...d }), t.replaceText || (t.replaceText = ""), t.replaceOptions && (t.replaceOptions = { ...t.replaceOptions }), v && (t.replaceOptions = { ...t.replaceOptions, ...v }), o.findOptions.fields?.[0] || (o.findOptions.fields = [c.Content.Formulas]);
|
|
53
|
-
const n = !(!v && a === void 0);
|
|
54
|
-
return n && M(n), t;
|
|
55
|
-
}), X || Y.current?.focus();
|
|
56
|
-
}, [r, a, d, v]), L(() => {
|
|
57
|
-
f ? (o.findOptions.fields[0], c.Content.Values) : I(!0);
|
|
58
|
-
}, [f]), L(() => {
|
|
59
|
-
if (G && s.current && o.findText === s.current.value) return s.current === document.activeElement || s.current.contains(document.activeElement) ? (s.current?.select(), void I(!1)) : void s.current.addEventListener("focus", () => {
|
|
60
|
-
s.current?.select(), I(!1);
|
|
61
|
-
}, { once: !0 });
|
|
62
|
-
}, [G, o]);
|
|
63
|
-
const [re, { width: Z }] = fe();
|
|
64
|
-
return i(ge, { ref: Y, title: A ?? (f ? "Find & Replace" : "Find"), initialPosition: { y: "35" }, autoFocusSel: ".input", onHide: K, onFocus: () => q(!0), onBlur: () => {
|
|
65
|
-
q(!1), V(!1);
|
|
66
|
-
}, PaperProps: { elevation: X ? 3 : 1 }, ...P, children: p(me, { dividers: !0, ref: re, sx: { display: "flex", flexDirection: "column", paddingLeft: (e) => e.spacing(1.5), paddingRight: (e) => e.spacing(1.5) }, onKeyDown: (e) => {
|
|
67
|
-
if (e.key === "h" && e.ctrlKey) M(!0), s.current?.contains(document.activeElement) && u.current?.focus();
|
|
68
|
-
else if (e.key === "f" && e.ctrlKey) s.current?.focus();
|
|
69
|
-
else if (e.key === "c" && e.altKey) l((t) => {
|
|
70
|
-
const n = { ...t };
|
|
71
|
-
return n.findOptions.matchCase = !t.findOptions.matchCase, n;
|
|
72
|
-
});
|
|
73
|
-
else if (e.key === "e" && e.altKey) l((t) => {
|
|
74
|
-
const n = { ...t };
|
|
75
|
-
return n.findOptions.matchEntireCell = !t.findOptions.matchEntireCell, n;
|
|
76
|
-
});
|
|
77
|
-
else {
|
|
78
|
-
if (e.key !== "r" || !e.altKey) return;
|
|
79
|
-
l((t) => {
|
|
80
|
-
const n = { ...t };
|
|
81
|
-
return n.findOptions.useRegex = !t.findOptions.useRegex, n;
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
e.preventDefault();
|
|
85
|
-
}, children: [p(O, { sx: { display: "flex", flexDirection: "row", gap: (e) => e.spacing(1) }, children: [p(O, { sx: { display: "flex", flexDirection: "row", alignItems: "start", gap: (e) => e.spacing(0.25), paddingTop: "3px" }, children: [i(m, { selected: B, onSelectToggle: (e) => {
|
|
86
|
-
le(e);
|
|
87
|
-
}, preventFocus: !0, label: "Toggle Additional Options", icon: x(i(xe, {})) }), i(m, { selected: f, onSelectToggle: (e) => {
|
|
88
|
-
M(e);
|
|
89
|
-
}, preventFocus: !0, label: "Toggle Replace", icon: x(i(he, {})), shortcut: { key: f ? "F" : "H", modifiers: [y.Ctrl] } })] }), p(O, { sx: { display: "flex", flexDirection: "column", maxWidth: "100%", boxSizing: "border-box" }, children: [p(O, { sx: { display: "flex", flexDirection: "row", alignItems: "center" }, children: [i(_, { label: "Find", InputLabelProps: { shrink: !0 }, InputProps: { sx: { paddingRight: (e) => e.spacing(1), minWidth: Z > 460 ? "20em" : void 0, backgroundImage: `linear-gradient(${k("#fff", w(5))}, ${k("#fff", w(5))})` }, inputProps: { draggable: !1, ref: s, className: "input", autoFocus: !0, spellCheck: !1, autoComplete: "off", sx: { paddingTop: (e) => e.spacing(1.25), paddingBottom: (e) => e.spacing(0.75) } }, endAdornment: i(Oe, { sx: { transform: "scale(0.75) translateX(16px)" }, position: "end", children: p(O, { sx: { display: "flex", alignItems: "center", flexDirection: "row", gap: "1px" }, children: [i(m, { selected: o.findOptions.matchCase, onSelectToggle: (e) => {
|
|
90
|
-
l((t) => {
|
|
91
|
-
const n = { ...t };
|
|
92
|
-
return n.findOptions.matchCase = e, n;
|
|
93
|
-
});
|
|
94
|
-
}, label: "Match Case", shortcut: { key: "C", modifiers: [y.Alt] }, icon: x(i(Ce, {})) }), i(m, { selected: o.findOptions.matchEntireCell, onSelectToggle: (e) => {
|
|
95
|
-
l((t) => {
|
|
96
|
-
const n = { ...t };
|
|
97
|
-
return n.findOptions.matchEntireCell = e, n;
|
|
98
|
-
});
|
|
99
|
-
}, label: "Match Entire Cell", shortcut: { key: "E", modifiers: [y.Alt] }, icon: x(i(ye, {})) }), i(m, { selected: o.findOptions.useRegex, onSelectToggle: (e) => {
|
|
100
|
-
l((t) => {
|
|
101
|
-
const n = { ...t };
|
|
102
|
-
return n.findOptions.useRegex = e, n;
|
|
103
|
-
});
|
|
104
|
-
}, label: "Use Regular Expression", shortcut: { key: "R", modifiers: [y.Alt] }, icon: x(i(be, {})) })] }) }) }, sx: { flex: "1 1 100%", marginRight: (e) => e.spacing(1), "& .MuiOutlinedInput-notchedOutline": { borderColor: (e) => J ? `${e.palette.error.main} !important` : void 0 }, "& .MuiInputLabel-outlined": { color: (e) => J ? `${e.palette.error.main} !important` : void 0 } }, value: o.findText ?? "", onChange: (e) => {
|
|
105
|
-
l((t) => {
|
|
106
|
-
const n = { ...t };
|
|
107
|
-
return n.findText = e.target.value, n;
|
|
108
|
-
});
|
|
109
|
-
}, onKeyDown: (e) => Q(e, !1), onContextMenu: (e) => {
|
|
110
|
-
e.stopPropagation();
|
|
111
|
-
} }), i(m, { selected: o.findOptions.reverse, onSelectToggle: (e) => {
|
|
112
|
-
F(!1, !1);
|
|
113
|
-
}, touchRippleRef: $, label: "", shortcut: { key: "Enter", modifiers: [y.Shift] }, icon: x(o.findOptions.orientation !== R.Orientation.Column ? i(Se, {}) : i(De, {})), disabled: !o.findText }), i(m, { selected: !o.findOptions.reverse, onSelectToggle: (e) => {
|
|
114
|
-
F(!0, !1);
|
|
115
|
-
}, touchRippleRef: W, label: "Next Match", shortcut: { key: "Enter" }, icon: x(o.findOptions.orientation !== R.Orientation.Column ? i(Le, {}) : i(Ie, {})), disabled: !o.findText })] }), i(ee, { in: f, timeout: ne, onExit: () => {
|
|
116
|
-
s.current?.focus();
|
|
117
|
-
}, children: p(O, { sx: { display: "flex", flexDirection: "row", alignItems: "center", marginTop: (e) => e.spacing(2) }, children: [i(_, { label: "Replace", InputLabelProps: { shrink: !0 }, InputProps: { sx: { paddingRight: (e) => e.spacing(1), backgroundImage: `linear-gradient(${k("#fff", w(5))}, ${k("#fff", w(5))})` }, inputProps: { ref: u, className: "input", spellCheck: !1, autoComplete: "off", sx: { paddingTop: (e) => e.spacing(1.25), paddingBottom: (e) => e.spacing(0.75) } } }, sx: { flex: "1 1 100%", marginRight: (e) => e.spacing(1) }, value: o.replaceText ?? "", onChange: (e) => {
|
|
118
|
-
l((t) => {
|
|
119
|
-
const n = { ...t };
|
|
120
|
-
return n.replaceText = e.target.value, n;
|
|
121
|
-
});
|
|
122
|
-
}, onKeyDown: (e) => Q(e, !0), onContextMenu: (e) => {
|
|
123
|
-
e.stopPropagation();
|
|
124
|
-
} }), i(m, { onSelectToggle: (e) => {
|
|
125
|
-
F(!0, !0);
|
|
126
|
-
}, touchRippleRef: j, label: "Replace", shortcut: { key: "Enter" }, icon: x(i(ve, {})), disabled: !o.findText }), i(m, { onSelectToggle: (e) => {
|
|
127
|
-
F(!0, !0, !0);
|
|
128
|
-
}, touchRippleRef: N, label: "Replace All", shortcut: { key: "Enter", modifiers: [y.Ctrl, y.Alt] }, icon: x(i(Te, {})), disabled: !o.findText })] }) })] })] }), i(ee, { in: B, timeout: ne, onExit: () => {
|
|
129
|
-
s.current?.focus();
|
|
130
|
-
}, children: p(O, { sx: { minHeight: "10px", flex: "1 1 100%", display: "flex", flexDirection: "column", gap: (e) => e.spacing(0.5), marginTop: (e) => e.spacing(1) }, children: [i(Re, { orientation: "horizontal", sx: { marginBottom: (e) => e.spacing(1.5) } }), p(O, { sx: { display: "flex", flexDirection: Z >= 413 ? "row" : "column", justifyContent: "space-evenly", alignItems: "center", rowGap: (e) => e.spacing(2) }, tabIndex: -1, children: [i(z, { label: "Within", value: o.scope, options: te, onSelect: (e) => {
|
|
131
|
-
l((t) => {
|
|
132
|
-
const n = { ...t };
|
|
133
|
-
return n.scope = e, n;
|
|
134
|
-
});
|
|
135
|
-
} }), i(z, { label: "Search", value: o.findOptions.orientation !== R.Orientation.Column, options: Ae, onSelect: (e) => {
|
|
136
|
-
l((t) => {
|
|
137
|
-
const n = { ...t };
|
|
138
|
-
return n.findOptions.orientation = e ? R.Orientation.Row : R.Orientation.Column, n;
|
|
139
|
-
});
|
|
140
|
-
} }), i(z, { label: "Look in", value: f && o.findOptions.fields?.[0] === c.Content.Values ? c.Content.Formulas : o.findOptions.fields?.[0], options: f ? se : ae, onSelect: (e) => {
|
|
141
|
-
l((t) => {
|
|
142
|
-
const n = { ...t };
|
|
143
|
-
return n.findOptions.fields = [e], n;
|
|
144
|
-
});
|
|
145
|
-
} })] })] }) })] }) });
|
|
146
|
-
});
|
|
147
|
-
export {
|
|
148
|
-
ze as FindReplaceWindow,
|
|
149
|
-
te as ScopeOptions,
|
|
150
|
-
ze as default
|
|
151
|
-
};
|