@synopackageland/ui 0.22.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/README.md +1 -0
- package/dist/cli.js +0 -0
- package/dist/components/app/app-layout/AppLayout.vue.d.ts +5 -2
- package/dist/components/composite/about-dialog/AboutDialog.vue.d.ts +1 -1
- package/dist/components/composite/adaptive-panel/AdaptivePanel.vue.d.ts +1 -1
- package/dist/components/composite/disclosure-row/DisclosureRow.vue.d.ts +39 -0
- package/dist/components/composite/record-panel/RecordPanel.vue.d.ts +1 -1
- package/dist/components/containers/split-pane/SplitPane.vue.d.ts +1 -1
- package/dist/components/feedback/validation-popup/ValidationPopup.vue.d.ts +1 -1
- package/dist/components/primitives/button/Button.vue.d.ts +7 -1
- package/dist/components/primitives/checkbox/CheckboxGroup.vue.d.ts +1 -1
- package/dist/components/primitives/dropdown-menu/types.d.ts +6 -0
- package/dist/components/primitives/pagination/Pagination.vue.d.ts +1 -1
- package/dist/components/primitives/popover/Popover.vue.d.ts +1 -1
- package/dist/components/primitives/progress/Progress.vue.d.ts +1 -1
- package/dist/components/primitives/tooltip/tooltipStyle.d.ts +1 -1
- package/dist/components/rich-text-editor/RichTextEditor.vue.d.ts +1 -1
- package/dist/feedback/StatusSlot.vue.d.ts +1 -1
- package/dist/grid-core/theme.d.ts +2 -1
- package/dist/grid.js +253 -251
- package/dist/index.d.ts +3 -0
- package/dist/index.js +13855 -13595
- package/dist/json/catalog.d.ts +2 -0
- package/dist/json/registry.d.ts +34 -0
- package/dist/json-ai-prompt.md +1 -1
- package/dist/json-catalog.schema.json +2 -1
- package/dist/json-preview/preview.js +8669 -8605
- package/dist/json.js +23 -23
- package/dist/lib/adaptiveLayout.d.ts +17 -0
- package/dist/lib/scroll.d.ts +31 -0
- package/dist/lib/typeScale.d.ts +20 -0
- package/dist/reka-runtime.json +1 -1
- package/dist/theme.css +1 -1
- package/dist/themes/dsm7-embedded-theme.css +1 -1
- package/dist/themes/dsm7-embedded.css +1 -1
- package/dist/themes/dsm7.css +1 -1
- package/docs/button-policy.md +19 -2
- package/docs/mobile-native.md +142 -29
- package/package.json +67 -59
package/dist/grid.js
CHANGED
|
@@ -779,9 +779,10 @@ const ro = (e, t) => t ? Math.max(t - (e.iconSizeMD - e.iconSizeXS) / 2, 0) : 0,
|
|
|
779
779
|
interactionLineColorHighlight: "--ui-accent-9"
|
|
780
780
|
}, zn = {
|
|
781
781
|
fontFamily: "--ui-font-sans",
|
|
782
|
-
|
|
782
|
+
/** Cell text: the grid's own size (14px on a phone), else the body size. */
|
|
783
|
+
fontSizeSM: "--ui-grid-font-size",
|
|
783
784
|
fontSizeXS: "--ui-font-size-sm"
|
|
784
|
-
}, ia = (e, t = {}) => {
|
|
785
|
+
}, ia = { fontSizeSM: "--ui-font-size" }, aa = (e, t = {}) => {
|
|
785
786
|
const n = { ...co };
|
|
786
787
|
for (const [i, a] of Object.entries(uo)) {
|
|
787
788
|
const s = e(a)?.trim();
|
|
@@ -790,11 +791,12 @@ const ro = (e, t) => t ? Math.max(t - (e.iconSizeMD - e.iconSizeXS) / 2, 0) : 0,
|
|
|
790
791
|
const o = e(zn.fontFamily)?.trim();
|
|
791
792
|
o && (n.fontFamily = o);
|
|
792
793
|
for (const i of ["fontSizeSM", "fontSizeXS"]) {
|
|
793
|
-
const a =
|
|
794
|
-
|
|
794
|
+
const a = ia[i];
|
|
795
|
+
let s = Number.parseFloat(e(zn[i]) ?? "");
|
|
796
|
+
!(s > 0) && a && (s = Number.parseFloat(e(a) ?? "")), Number.isFinite(s) && s > 0 && (n[i] = s);
|
|
795
797
|
}
|
|
796
798
|
return { ...n, ...t };
|
|
797
|
-
},
|
|
799
|
+
}, sa = (e) => {
|
|
798
800
|
const t = getComputedStyle(e), n = e.ownerDocument.createElement("span");
|
|
799
801
|
n.setAttribute("aria-hidden", "true"), n.style.cssText = "position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;pointer-events:none", e.appendChild(n);
|
|
800
802
|
const o = new Set(Object.values(uo));
|
|
@@ -802,35 +804,35 @@ const ro = (e, t) => t ? Math.max(t - (e.iconSizeMD - e.iconSizeXS) / 2, 0) : 0,
|
|
|
802
804
|
const s = t.getPropertyValue(a).trim();
|
|
803
805
|
return !s || !o.has(a) ? s : (n.style.color = "", n.style.color = `var(${a})`, getComputedStyle(n).color || s);
|
|
804
806
|
}, { dispose: () => n.remove() });
|
|
805
|
-
},
|
|
806
|
-
const n =
|
|
807
|
+
}, ra = (e, t = {}) => {
|
|
808
|
+
const n = sa(e);
|
|
807
809
|
try {
|
|
808
810
|
const o = e.closest('[data-ui-color-scheme="dark"]') != null;
|
|
809
|
-
return
|
|
811
|
+
return aa(n, { themeKey: o ? "dark" : "light", ...t });
|
|
810
812
|
} finally {
|
|
811
813
|
n.dispose();
|
|
812
814
|
}
|
|
813
815
|
}, ho = '[role="dialog"],[role="alertdialog"],[aria-modal="true"]';
|
|
814
|
-
function
|
|
816
|
+
function la(e) {
|
|
815
817
|
return (e instanceof Element ? e : e?.parentElement)?.closest(ho) ?? null;
|
|
816
818
|
}
|
|
817
|
-
function
|
|
818
|
-
const n =
|
|
819
|
+
function ca(e, t) {
|
|
820
|
+
const n = la(e);
|
|
819
821
|
return !!n && !n.contains(t);
|
|
820
822
|
}
|
|
821
823
|
function Mn(e, t) {
|
|
822
824
|
return e.some((n) => n instanceof Element && n.matches(ho) && !t.some((o) => n.contains(o) || o.contains(n)));
|
|
823
825
|
}
|
|
824
|
-
function
|
|
826
|
+
function ua(e, t = e ?? null) {
|
|
825
827
|
if (!e?.isConnected) return !1;
|
|
826
828
|
const n = e.ownerDocument, o = n.activeElement;
|
|
827
|
-
return o === e ? !0 : o && o !== n.body &&
|
|
829
|
+
return o === e ? !0 : o && o !== n.body && ca(o, t ?? e) ? !1 : (e.focus({ preventScroll: !0 }), n.activeElement === e);
|
|
828
830
|
}
|
|
829
|
-
const
|
|
831
|
+
const da = /* @__PURE__ */ new Set(["Enter", "Escape", "Tab"]), ha = 50;
|
|
830
832
|
function mo(e) {
|
|
831
833
|
return e.isComposing || e.keyCode === 229;
|
|
832
834
|
}
|
|
833
|
-
function
|
|
835
|
+
function ma(e) {
|
|
834
836
|
const { keyCode: t, metaKey: n, ctrlKey: o } = e;
|
|
835
837
|
return n || o || t === 32 ? !1 : t >= 65 && t <= 90 || // A-Z
|
|
836
838
|
t >= 48 && t <= 57 || // 0-9 (ClosedParen..OpenParen)
|
|
@@ -853,10 +855,10 @@ function go(e, t = {}) {
|
|
|
853
855
|
},
|
|
854
856
|
ownsKey(c) {
|
|
855
857
|
if (n || mo(c)) return !0;
|
|
856
|
-
if (!
|
|
858
|
+
if (!da.has(c.key)) return !1;
|
|
857
859
|
const l = a.get(c);
|
|
858
860
|
if (l !== void 0) return l;
|
|
859
|
-
const u = c.timeStamp - o <=
|
|
861
|
+
const u = c.timeStamp - o <= ha;
|
|
860
862
|
return o = -1 / 0, a.set(c, u), u;
|
|
861
863
|
},
|
|
862
864
|
dispose() {
|
|
@@ -864,12 +866,12 @@ function go(e, t = {}) {
|
|
|
864
866
|
}
|
|
865
867
|
};
|
|
866
868
|
}
|
|
867
|
-
const
|
|
869
|
+
const ga = ({ isEditing: e, eventTarget: t, hiddenFocusEl: n }) => {
|
|
868
870
|
if (!e || t == null || t === n || !(t instanceof HTMLElement)) return !0;
|
|
869
871
|
const o = t.isContentEditable || t.contentEditable === "true";
|
|
870
872
|
return t.tagName !== "INPUT" && t.tagName !== "TEXTAREA" && !o;
|
|
871
|
-
},
|
|
872
|
-
`),
|
|
873
|
+
}, fa = /[\t\n\r"]/, pa = (e) => fa.test(e) ? `"${e.replace(/"/g, '""')}"` : e, Ca = (e) => e.map((t) => t.map(pa).join(" ")).join(`\r
|
|
874
|
+
`), wa = (e) => {
|
|
873
875
|
if (!e) return [];
|
|
874
876
|
const t = [];
|
|
875
877
|
let n = [], o = "", i = 0, a = !0;
|
|
@@ -881,7 +883,7 @@ const ma = ({ isEditing: e, eventTarget: t, hiddenFocusEl: n }) => {
|
|
|
881
883
|
for (; i < s; ) {
|
|
882
884
|
const l = e[i];
|
|
883
885
|
if (a && l === '"') {
|
|
884
|
-
const u =
|
|
886
|
+
const u = va(e, i + 1);
|
|
885
887
|
if (u === -1) {
|
|
886
888
|
o += l, a = !1, i++;
|
|
887
889
|
continue;
|
|
@@ -899,7 +901,7 @@ const ma = ({ isEditing: e, eventTarget: t, hiddenFocusEl: n }) => {
|
|
|
899
901
|
o += l, i++;
|
|
900
902
|
}
|
|
901
903
|
return c(), An(t);
|
|
902
|
-
},
|
|
904
|
+
}, va = (e, t) => {
|
|
903
905
|
let n = t;
|
|
904
906
|
for (; n < e.length; ) {
|
|
905
907
|
const o = e.indexOf('"', n);
|
|
@@ -917,7 +919,7 @@ const ma = ({ isEditing: e, eventTarget: t, hiddenFocusEl: n }) => {
|
|
|
917
919
|
const t = Math.max(0, ...e.map((n) => n.length));
|
|
918
920
|
for (const n of e) for (; n.length < t; ) n.push("");
|
|
919
921
|
return e;
|
|
920
|
-
},
|
|
922
|
+
}, Sa = (e) => e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """), ya = (e) => e.length === 0 || e.length === 1 && e[0].length <= 1 ? void 0 : `<table><tbody>${e.map((n) => `<tr>${n.map((o) => `<td>${Sa(o).replace(/\r?\n/g, "<br>")}</td>`).join("")}</tr>`).join("")}</tbody></table>`, ba = (e, t) => {
|
|
921
923
|
const n = e.clipboardData;
|
|
922
924
|
if (!n) return !1;
|
|
923
925
|
try {
|
|
@@ -926,18 +928,18 @@ const ma = ({ isEditing: e, eventTarget: t, hiddenFocusEl: n }) => {
|
|
|
926
928
|
return !1;
|
|
927
929
|
}
|
|
928
930
|
return e.preventDefault(), !0;
|
|
929
|
-
},
|
|
931
|
+
}, xa = () => ({
|
|
930
932
|
clipboard: typeof navigator < "u" ? navigator.clipboard : void 0,
|
|
931
933
|
ClipboardItem: typeof ClipboardItem < "u" ? ClipboardItem : void 0,
|
|
932
934
|
hasFocus: () => typeof document < "u" ? document.hasFocus() : !0,
|
|
933
935
|
onFocus: (e) => window.addEventListener("focus", e, { once: !0 })
|
|
934
|
-
}),
|
|
936
|
+
}), Ra = (e, t = xa()) => {
|
|
935
937
|
const { clipboard: n, ClipboardItem: o } = t, i = () => {
|
|
936
938
|
if (o && n?.write) {
|
|
937
939
|
const a = new o({
|
|
938
940
|
"text/plain": e.then(({ text: s }) => new Blob([s], { type: "text/plain" })),
|
|
939
941
|
// Null means no HTML; an empty table keeps the blob type valid in every browser.
|
|
940
|
-
"text/html": e.then(({ text: s, html: r }) => new Blob([r ??
|
|
942
|
+
"text/html": e.then(({ text: s, html: r }) => new Blob([r ?? ka(s)], { type: "text/html" }))
|
|
941
943
|
});
|
|
942
944
|
return n.write([a]);
|
|
943
945
|
}
|
|
@@ -954,7 +956,7 @@ const ma = ({ isEditing: e, eventTarget: t, hiddenFocusEl: n }) => {
|
|
|
954
956
|
}
|
|
955
957
|
})) : Promise.reject(a);
|
|
956
958
|
}
|
|
957
|
-
},
|
|
959
|
+
}, ka = (e) => e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"), it = (e, t, n) => Math.min(n, Math.max(t, e)), qe = (e, t) => {
|
|
958
960
|
if (e.kind !== "cells" || e.ranges.length < 2 || t.rowCount <= 0 || t.columnCount <= 0) return null;
|
|
959
961
|
const [n, o] = e.ranges, i = t.columnCount - 1, a = t.rowCount - 1;
|
|
960
962
|
return {
|
|
@@ -991,17 +993,17 @@ const ma = ({ isEditing: e, eventTarget: t, hiddenFocusEl: n }) => {
|
|
|
991
993
|
default:
|
|
992
994
|
return null;
|
|
993
995
|
}
|
|
994
|
-
},
|
|
996
|
+
}, Ia = (e, t) => {
|
|
995
997
|
if (e.kind === "cells") {
|
|
996
998
|
const o = qe(e, t);
|
|
997
999
|
return o ? [o.startColumn, o.startRow] : null;
|
|
998
1000
|
}
|
|
999
1001
|
const n = fo(e, t);
|
|
1000
1002
|
return n ? [n.columns[0], n.rows[0]] : null;
|
|
1001
|
-
},
|
|
1002
|
-
const o =
|
|
1003
|
+
}, Pa = (e) => e.rows.length * e.columns.length, za = (e, t, n) => {
|
|
1004
|
+
const o = wa(e);
|
|
1003
1005
|
if (o.length === 0) return null;
|
|
1004
|
-
const i =
|
|
1006
|
+
const i = Ia(t, n);
|
|
1005
1007
|
if (!i) return null;
|
|
1006
1008
|
const { rowCount: a, columnCount: s } = n;
|
|
1007
1009
|
let r = o, c = !1;
|
|
@@ -1025,8 +1027,8 @@ const ma = ({ isEditing: e, eventTarget: t, hiddenFocusEl: n }) => {
|
|
|
1025
1027
|
readonlyColumns: p,
|
|
1026
1028
|
repeated: c
|
|
1027
1029
|
};
|
|
1028
|
-
}, Hn = (e, t) => e.rows.map((n) => e.columns.map((o) => t([o, n]))), It = (e) => ({ text:
|
|
1029
|
-
function
|
|
1030
|
+
}, Hn = (e, t) => e.rows.map((n) => e.columns.map((o) => t([o, n]))), It = (e) => ({ text: Ca(e), html: ya(e) }), Ma = (e, t) => !t || e.rows.every((n) => t(n));
|
|
1031
|
+
function Aa(e) {
|
|
1030
1032
|
const t = e.equals ?? Object.is;
|
|
1031
1033
|
let n = !1, o = null, i, a, s = !1, r = null, c = 0, l = !1;
|
|
1032
1034
|
const u = {
|
|
@@ -1096,13 +1098,13 @@ function Fn(e) {
|
|
|
1096
1098
|
function Nn(e, t) {
|
|
1097
1099
|
return e.some((n) => n instanceof Node && t.some((o) => o === n || o.contains(n)));
|
|
1098
1100
|
}
|
|
1099
|
-
function
|
|
1101
|
+
function Ea(e) {
|
|
1100
1102
|
return e.some((t) => t instanceof Element && t.hasAttribute(po));
|
|
1101
1103
|
}
|
|
1102
|
-
function
|
|
1104
|
+
function Ha(e, t) {
|
|
1103
1105
|
return e.length > 0 && !e.includes(t);
|
|
1104
1106
|
}
|
|
1105
|
-
function
|
|
1107
|
+
function Ta(e, t = 400) {
|
|
1106
1108
|
let n = 0;
|
|
1107
1109
|
const o = () => {
|
|
1108
1110
|
e.clearTimeout(n), e.removeEventListener("click", i, !0), e.removeEventListener("pointerdown", o, !0), e.removeEventListener("keydown", o, !0);
|
|
@@ -1111,19 +1113,19 @@ function Ha(e, t = 400) {
|
|
|
1111
1113
|
};
|
|
1112
1114
|
return e.addEventListener("click", i, !0), e.addEventListener("pointerdown", o, !0), e.addEventListener("keydown", o, !0), n = e.setTimeout(o, t), o;
|
|
1113
1115
|
}
|
|
1114
|
-
function
|
|
1116
|
+
function Fa(e) {
|
|
1115
1117
|
const t = e.document, n = { layers: [], guard: go(e), teardown: () => {
|
|
1116
1118
|
} }, o = (a) => {
|
|
1117
1119
|
if (Tn.has(a)) return;
|
|
1118
1120
|
Tn.add(a);
|
|
1119
1121
|
const s = a.composedPath();
|
|
1120
|
-
if (!(
|
|
1122
|
+
if (!(Ea(s) || Ha(s, t)))
|
|
1121
1123
|
for (const r of [...n.layers].reverse()) {
|
|
1122
1124
|
if (r.disposed) continue;
|
|
1123
1125
|
const c = Fn(r);
|
|
1124
1126
|
if (Nn(s, c) || Mn(s, c)) return;
|
|
1125
1127
|
if (r.options.onOutside?.(a) === "veto") {
|
|
1126
|
-
a.preventDefault(), a.stopImmediatePropagation(),
|
|
1128
|
+
a.preventDefault(), a.stopImmediatePropagation(), Ta(e);
|
|
1127
1129
|
return;
|
|
1128
1130
|
}
|
|
1129
1131
|
}
|
|
@@ -1140,8 +1142,8 @@ function Ta(e) {
|
|
|
1140
1142
|
e.removeEventListener("pointerdown", o, !0), e.removeEventListener("keydown", i, !0), n.guard.dispose();
|
|
1141
1143
|
}, n;
|
|
1142
1144
|
}
|
|
1143
|
-
function
|
|
1144
|
-
const n = Pt.get(e) ??
|
|
1145
|
+
function Na(e, t) {
|
|
1146
|
+
const n = Pt.get(e) ?? Fa(e);
|
|
1145
1147
|
Pt.set(e, n);
|
|
1146
1148
|
const o = { options: t, disposed: !1 };
|
|
1147
1149
|
return n.layers.push(o), {
|
|
@@ -1157,10 +1159,10 @@ function Ln(e) {
|
|
|
1157
1159
|
const t = eo(e);
|
|
1158
1160
|
return Array.isArray(t) ? [...t] : [t];
|
|
1159
1161
|
}
|
|
1160
|
-
function
|
|
1162
|
+
function La(e, t, n) {
|
|
1161
1163
|
const o = ue(() => eo(t), (i, a, s) => {
|
|
1162
1164
|
if (!i || typeof window > "u") return;
|
|
1163
|
-
const r = Ln(e).find(Boolean)?.ownerDocument?.defaultView ?? window, c =
|
|
1165
|
+
const r = Ln(e).find(Boolean)?.ownerDocument?.defaultView ?? window, c = Na(r, {
|
|
1164
1166
|
elements: () => Ln(e),
|
|
1165
1167
|
onOutside: (l) => n.onOutside?.(l),
|
|
1166
1168
|
onEscape: (l) => n.onEscape?.(l)
|
|
@@ -1169,8 +1171,8 @@ function Na(e, t, n) {
|
|
|
1169
1171
|
}, { immediate: !0, flush: "sync" });
|
|
1170
1172
|
return qo() && to(o), o;
|
|
1171
1173
|
}
|
|
1172
|
-
const Co = 2,
|
|
1173
|
-
function
|
|
1174
|
+
const Co = 2, Da = 4, zt = 20, Wa = 2, Ba = 5, lt = 16;
|
|
1175
|
+
function Oa(e, t, n) {
|
|
1174
1176
|
const o = e.createElement("canvas").getContext("2d");
|
|
1175
1177
|
if (!o) return null;
|
|
1176
1178
|
o.font = `${t}px ${n}`, o.textBaseline = "alphabetic";
|
|
@@ -1192,14 +1194,14 @@ function ut(e) {
|
|
|
1192
1194
|
}
|
|
1193
1195
|
function wo(e) {
|
|
1194
1196
|
if (!Ut(e)) return e.rowHeight;
|
|
1195
|
-
const { top: t, bottom: n, lineHeight: o } = ut(e), i = e.view ? 1 :
|
|
1197
|
+
const { top: t, bottom: n, lineHeight: o } = ut(e), i = e.view ? 1 : Wa, a = Math.min(Ba, Math.max(i, Math.ceil(e.lines)));
|
|
1196
1198
|
return Math.max(e.rowHeight, t + n + a * o);
|
|
1197
1199
|
}
|
|
1198
|
-
function
|
|
1200
|
+
function Va(e, t) {
|
|
1199
1201
|
const { top: n, bottom: o, lineHeight: i } = ut(t);
|
|
1200
1202
|
return Math.max(1, Math.round((e - n - o) / i));
|
|
1201
1203
|
}
|
|
1202
|
-
const
|
|
1204
|
+
const Ga = {
|
|
1203
1205
|
display: "block",
|
|
1204
1206
|
width: "100%",
|
|
1205
1207
|
height: "100%",
|
|
@@ -1215,8 +1217,8 @@ const Va = {
|
|
|
1215
1217
|
color: "transparent",
|
|
1216
1218
|
font: "inherit"
|
|
1217
1219
|
};
|
|
1218
|
-
function
|
|
1219
|
-
if (!e.open) return
|
|
1220
|
+
function Ua(e) {
|
|
1221
|
+
if (!e.open) return Ga;
|
|
1220
1222
|
const { top: t, bottom: n, lineHeight: o } = ut(e), i = B.cellHorizontalPadding, a = Ut(e), s = e.invalid ? e.dangerColor : e.theme.cellLineColorActived;
|
|
1221
1223
|
return {
|
|
1222
1224
|
display: "block",
|
|
@@ -1238,12 +1240,12 @@ function Ga(e) {
|
|
|
1238
1240
|
"caret-color": e.theme.cellTextColor,
|
|
1239
1241
|
font: `${e.theme.fontSizeSM}px/${o}px ${e.theme.fontFamily}`,
|
|
1240
1242
|
"text-align": e.kind === "number" && !e.view ? "right" : "left",
|
|
1241
|
-
"border-radius": `${
|
|
1243
|
+
"border-radius": `${Da}px`,
|
|
1242
1244
|
"box-shadow": `0 0 0 ${Co}px ${s}`,
|
|
1243
1245
|
transition: "none"
|
|
1244
1246
|
};
|
|
1245
1247
|
}
|
|
1246
|
-
function
|
|
1248
|
+
function Ka(e) {
|
|
1247
1249
|
return {
|
|
1248
1250
|
position: "absolute",
|
|
1249
1251
|
left: `${B.cellHorizontalPadding}px`,
|
|
@@ -1260,7 +1262,7 @@ function Ua(e) {
|
|
|
1260
1262
|
"pointer-events": "none"
|
|
1261
1263
|
};
|
|
1262
1264
|
}
|
|
1263
|
-
function
|
|
1265
|
+
function _a(e) {
|
|
1264
1266
|
return {
|
|
1265
1267
|
position: "absolute",
|
|
1266
1268
|
left: `-${Co}px`,
|
|
@@ -1279,8 +1281,8 @@ function Ka(e) {
|
|
|
1279
1281
|
"pointer-events": "none"
|
|
1280
1282
|
};
|
|
1281
1283
|
}
|
|
1282
|
-
const
|
|
1283
|
-
class
|
|
1284
|
+
const $a = (e, t) => !!e && !!t && e[0] === t[0] && e[1] === t[1];
|
|
1285
|
+
class qa {
|
|
1284
1286
|
session;
|
|
1285
1287
|
options;
|
|
1286
1288
|
mode = "edit";
|
|
@@ -1320,7 +1322,7 @@ class $a {
|
|
|
1320
1322
|
get version() {
|
|
1321
1323
|
return n().version;
|
|
1322
1324
|
}
|
|
1323
|
-
}, this.session =
|
|
1325
|
+
}, this.session = Aa({
|
|
1324
1326
|
validate: (i, a) => this.mode === "edit" ? this.options.validate?.(a, i ?? "") : null,
|
|
1325
1327
|
onCommit: (i, a, s) => {
|
|
1326
1328
|
const { move: r, reason: c } = this.pending;
|
|
@@ -1335,7 +1337,7 @@ class $a {
|
|
|
1335
1337
|
* edited (the IME keydown, then its `compositionstart`) changes nothing.
|
|
1336
1338
|
*/
|
|
1337
1339
|
begin(t) {
|
|
1338
|
-
if (this.state.active &&
|
|
1340
|
+
if (this.state.active && $a(this.state.cell, t.cell)) return null;
|
|
1339
1341
|
this.state.active && this.commit("selection", "none");
|
|
1340
1342
|
const n = t.mode === "edit" && (t.trigger === "key" || t.trigger === "composition");
|
|
1341
1343
|
this.mode = t.mode, this.kind = t.kind, this.pending = { move: "none", reason: "blur" };
|
|
@@ -1401,10 +1403,10 @@ class $a {
|
|
|
1401
1403
|
return this.pending.reason;
|
|
1402
1404
|
}
|
|
1403
1405
|
}
|
|
1404
|
-
function
|
|
1406
|
+
function Xa(e) {
|
|
1405
1407
|
const t = ce(1);
|
|
1406
1408
|
let n = null;
|
|
1407
|
-
const o = new
|
|
1409
|
+
const o = new qa({
|
|
1408
1410
|
validate: (u, h) => {
|
|
1409
1411
|
const m = e.columnAt(u[0]);
|
|
1410
1412
|
return m && e.validate ? e.validate(u, m, h) : null;
|
|
@@ -1441,7 +1443,7 @@ function qa(e) {
|
|
|
1441
1443
|
if (!u || !g || h !== "long-text" && m !== "view") return;
|
|
1442
1444
|
const C = { kind: h, view: m === "view", hint: h === "long-text" && m === "edit" && e.hasHint(), rowHeight: e.rowHeight(), textBox: e.textBox() }, { top: S, bottom: p } = ut(C), { height: w, padding: v, whiteSpace: y } = u.style;
|
|
1443
1445
|
u.style.height = "0px", u.style.padding = `${S}px 8px ${p}px`, u.style.whiteSpace = "pre-wrap";
|
|
1444
|
-
const R =
|
|
1446
|
+
const R = Va(u.scrollHeight, C);
|
|
1445
1447
|
u.style.height = w, u.style.padding = v, u.style.whiteSpace = y, R !== t.value && (t.value = R);
|
|
1446
1448
|
}, l = {
|
|
1447
1449
|
state: a,
|
|
@@ -1495,7 +1497,7 @@ function qa(e) {
|
|
|
1495
1497
|
u && (n = go(u), m(() => {
|
|
1496
1498
|
n?.dispose(), n = null;
|
|
1497
1499
|
}));
|
|
1498
|
-
}, { immediate: !0, flush: "sync" }),
|
|
1500
|
+
}, { immediate: !0, flush: "sync" }), La(
|
|
1499
1501
|
() => e.root() ?? null,
|
|
1500
1502
|
() => a.value.active || e.hasSelection(),
|
|
1501
1503
|
{
|
|
@@ -1509,7 +1511,7 @@ function qa(e) {
|
|
|
1509
1511
|
}
|
|
1510
1512
|
), to(() => o.cancel()), l;
|
|
1511
1513
|
}
|
|
1512
|
-
const
|
|
1514
|
+
const Ya = {
|
|
1513
1515
|
text: "--ui-text",
|
|
1514
1516
|
textMuted: "--ui-text-secondary",
|
|
1515
1517
|
link: "--ui-accent-11",
|
|
@@ -1530,7 +1532,7 @@ const Xa = {
|
|
|
1530
1532
|
avatarText: "--ui-text",
|
|
1531
1533
|
badgeFill: "--ui-neutral-soft",
|
|
1532
1534
|
badgeText: "--ui-neutral-text"
|
|
1533
|
-
},
|
|
1535
|
+
}, ja = {
|
|
1534
1536
|
neutral: { fill: "--ui-neutral-soft", color: "--ui-neutral-text" },
|
|
1535
1537
|
info: { fill: "--ui-info-soft", color: "--ui-info-text" },
|
|
1536
1538
|
success: { fill: "--ui-success-soft", color: "--ui-success-text" },
|
|
@@ -1575,10 +1577,10 @@ const Xa = {
|
|
|
1575
1577
|
gray: { fill: "rgba(198, 212, 224, 0.4)", color: "#636b74" }
|
|
1576
1578
|
},
|
|
1577
1579
|
themeKey: "light"
|
|
1578
|
-
},
|
|
1580
|
+
}, Qa = (e, t = {}) => {
|
|
1579
1581
|
const n = (i, a) => e(i)?.trim() || a, o = { ...Ue, chips: { ...Ue.chips } };
|
|
1580
|
-
for (const [i, a] of Object.entries(
|
|
1581
|
-
for (const [i, a] of Object.entries(
|
|
1582
|
+
for (const [i, a] of Object.entries(Ya)) o[i] = n(a, o[i]);
|
|
1583
|
+
for (const [i, a] of Object.entries(ja)) {
|
|
1582
1584
|
const s = Ue.chips[i];
|
|
1583
1585
|
o.chips[i] = { fill: n(a.fill, s.fill), color: n(a.color, s.color) };
|
|
1584
1586
|
}
|
|
@@ -1591,7 +1593,7 @@ const Xa = {
|
|
|
1591
1593
|
if (n.getPropertyValue(s).trim())
|
|
1592
1594
|
return o.style.color = "", o.style.color = `var(${s})`, getComputedStyle(o).color || void 0;
|
|
1593
1595
|
}, a = e.closest('[data-ui-color-scheme="dark"]') != null;
|
|
1594
|
-
return
|
|
1596
|
+
return Qa(i, { themeKey: a ? "dark" : "light", ...t });
|
|
1595
1597
|
} finally {
|
|
1596
1598
|
o.remove();
|
|
1597
1599
|
}
|
|
@@ -1602,7 +1604,7 @@ const Xa = {
|
|
|
1602
1604
|
icon: Math.max(12, Math.min(16, e - 8)),
|
|
1603
1605
|
fontSize: t,
|
|
1604
1606
|
chipFontSize: Math.min(n, Math.max(10, e - 12))
|
|
1605
|
-
}),
|
|
1607
|
+
}), Za = 30, Ja = 2, es = 1200, ts = (e, t, n, o = Za) => {
|
|
1606
1608
|
const { x: i, y: a } = e, { containerWidth: s, containerHeight: r, freezeRegionWidth: c, columnInitSize: l, rowInitSize: u } = t;
|
|
1607
1609
|
let h = 0, m = 0;
|
|
1608
1610
|
if (!n || n === O.None || n === O.Columns) {
|
|
@@ -1610,11 +1612,11 @@ const Xa = {
|
|
|
1610
1612
|
s - i < o ? h = 1 : i < c + o && !g && (h = -1);
|
|
1611
1613
|
}
|
|
1612
1614
|
return (!n || n === O.None || n === O.Rows) && (r - a < o ? m = 1 : a < u + o && (m = -1)), [h, m];
|
|
1613
|
-
},
|
|
1614
|
-
const o = Math.min(1, e + t /
|
|
1615
|
+
}, ns = (e, t, n) => {
|
|
1616
|
+
const o = Math.min(1, e + t / es), i = o * t * Ja + (n ?? 0), a = Math.floor(i);
|
|
1615
1617
|
return { speed: o, motion: a, carry: n == null ? 0 : i - a };
|
|
1616
1618
|
};
|
|
1617
|
-
class
|
|
1619
|
+
class os {
|
|
1618
1620
|
direction = [0, 0];
|
|
1619
1621
|
speed = 0;
|
|
1620
1622
|
carry = 0;
|
|
@@ -1628,7 +1630,7 @@ class ns {
|
|
|
1628
1630
|
return this.frameId != null;
|
|
1629
1631
|
}
|
|
1630
1632
|
update(t, n) {
|
|
1631
|
-
const [o, i] =
|
|
1633
|
+
const [o, i] = ts(t, this.options.getBounds(), n);
|
|
1632
1634
|
if (!(o === this.direction[0] && i === this.direction[1])) {
|
|
1633
1635
|
if (this.direction = [o, i], this.cancel(), o === 0 && i === 0) {
|
|
1634
1636
|
this.speed = 0, this.carry = 0;
|
|
@@ -1642,7 +1644,7 @@ class ns {
|
|
|
1642
1644
|
}
|
|
1643
1645
|
processFrame = (t) => {
|
|
1644
1646
|
if (this.lastTime !== 0) {
|
|
1645
|
-
const n =
|
|
1647
|
+
const n = ns(this.speed, t - this.lastTime, this.options.carryFraction === !1 ? void 0 : this.carry);
|
|
1646
1648
|
this.speed = n.speed, this.carry = n.carry;
|
|
1647
1649
|
const [o, i] = this.direction, a = o * n.motion, s = i * n.motion;
|
|
1648
1650
|
(a !== 0 || s !== 0) && this.options.scrollBy(a, s), this.options.onTick?.(a, s);
|
|
@@ -1660,7 +1662,7 @@ const Wn = (e, t, n, o) => {
|
|
|
1660
1662
|
const i = e.getColumnRelativeOffset(o, t);
|
|
1661
1663
|
return V(n, i, i + B.columnResizeHandlerWidth / 2) ? o - 1 : o;
|
|
1662
1664
|
};
|
|
1663
|
-
class
|
|
1665
|
+
class is {
|
|
1664
1666
|
state = Rt;
|
|
1665
1667
|
hoveredIndex = -1;
|
|
1666
1668
|
pressed = null;
|
|
@@ -1712,7 +1714,7 @@ class os {
|
|
|
1712
1714
|
this.pressed = null, this.state = Rt, this.emit(), this.options.onResize?.(n, t);
|
|
1713
1715
|
}
|
|
1714
1716
|
}
|
|
1715
|
-
class
|
|
1717
|
+
class as {
|
|
1716
1718
|
defaultRowHeight;
|
|
1717
1719
|
defaultColumnWidth;
|
|
1718
1720
|
pureRowCount;
|
|
@@ -1867,12 +1869,12 @@ class is {
|
|
|
1867
1869
|
this.rowCount = t, this.pureRowCount = n, this.rowInitSize = o, this.rowHeightMap = i, a != null && (this.defaultRowHeight = a), this.lastRowIndex = -1, this.rowMetaDataMap = {};
|
|
1868
1870
|
}
|
|
1869
1871
|
}
|
|
1870
|
-
const
|
|
1872
|
+
const ss = 240, rs = ({
|
|
1871
1873
|
containerWidth: e,
|
|
1872
1874
|
columnInitSize: t,
|
|
1873
1875
|
columnCount: n,
|
|
1874
1876
|
getColumnWidth: o,
|
|
1875
|
-
minScrollableWidth: i =
|
|
1877
|
+
minScrollableWidth: i = ss
|
|
1876
1878
|
}) => {
|
|
1877
1879
|
const a = e - i;
|
|
1878
1880
|
if (a <= t) return 0;
|
|
@@ -1880,7 +1882,7 @@ const as = 240, ss = ({
|
|
|
1880
1882
|
for (let r = 0; r < n; r++)
|
|
1881
1883
|
if (s += o(r) ?? 0, s > a) return r;
|
|
1882
1884
|
return n;
|
|
1883
|
-
},
|
|
1885
|
+
}, ls = (e, t, n, o) => {
|
|
1884
1886
|
const { pureRowCount: i, columnCount: a } = o, s = !!n.expand;
|
|
1885
1887
|
let [r, c] = e.ranges[s ? 1 : 0];
|
|
1886
1888
|
n.jump ? t === "up" ? c = 0 : t === "down" ? c = i - 1 : t === "left" ? r = 0 : r = a - 1 : t === "up" ? c = Math.max(c - 1, 0) : t === "down" ? c = Math.min(c + 1, i - 1) : t === "left" ? r = Math.max(r - 1, 0) : r = Math.min(r + 1, a - 1);
|
|
@@ -1893,7 +1895,7 @@ const as = 240, ss = ({
|
|
|
1893
1895
|
}, Bn = (e, t, n) => {
|
|
1894
1896
|
const [o, i] = e.ranges[0], s = [t ? Math.max(o - 1, 0) : Math.min(o + 1, n.columnCount - 1), i];
|
|
1895
1897
|
return { selection: e.setRanges([s, s]), activeCell: s, scrollTo: s };
|
|
1896
|
-
},
|
|
1898
|
+
}, cs = (e, t) => e.setRanges([[0, 0], [t.columnCount - 1, t.pureRowCount - 1]]), us = (e, t, n = !1) => {
|
|
1897
1899
|
let o = e.ranges[0];
|
|
1898
1900
|
e.isColumnSelection && (o = [o[0], 0]);
|
|
1899
1901
|
const [i, a] = o, s = n ? a : Math.min(a + 1, t.pureRowCount - 1), r = [i, s];
|
|
@@ -2000,7 +2002,7 @@ class oe {
|
|
|
2000
2002
|
}
|
|
2001
2003
|
}
|
|
2002
2004
|
const Ge = new oe(H.None, []);
|
|
2003
|
-
class
|
|
2005
|
+
class ds {
|
|
2004
2006
|
selection = new oe();
|
|
2005
2007
|
activeCell = null;
|
|
2006
2008
|
isSelecting = !1;
|
|
@@ -2138,27 +2140,27 @@ class us {
|
|
|
2138
2140
|
}
|
|
2139
2141
|
}
|
|
2140
2142
|
}
|
|
2141
|
-
const
|
|
2143
|
+
const hs = (e, t, n) => {
|
|
2142
2144
|
if (!Number.isFinite(t) || n <= 0) return null;
|
|
2143
2145
|
const o = Math.min(n - 1, Math.max(0, Math.trunc(t))), i = { startColumn: e.startColumn, endColumn: e.endColumn };
|
|
2144
2146
|
return o > e.endRow ? { source: e, target: { ...i, startRow: e.endRow + 1, endRow: o }, direction: "down" } : o < e.startRow ? { source: e, target: { ...i, startRow: o, endRow: e.startRow - 1 }, direction: "up" } : null;
|
|
2145
|
-
},
|
|
2147
|
+
}, ms = (e) => ({
|
|
2146
2148
|
startColumn: e.source.startColumn,
|
|
2147
2149
|
endColumn: e.source.endColumn,
|
|
2148
2150
|
startRow: Math.min(e.source.startRow, e.target.startRow),
|
|
2149
2151
|
endRow: Math.max(e.source.endRow, e.target.endRow)
|
|
2150
|
-
}),
|
|
2152
|
+
}), gs = (e) => typeof e == "number" && Number.isFinite(e), Hr = (e, t, n = "down") => {
|
|
2151
2153
|
if (t <= 0 || e.length === 0) return [];
|
|
2152
|
-
const o = n === "down" ? e : [...e].reverse(), i = o.length >= 2 && o.every(
|
|
2154
|
+
const o = n === "down" ? e : [...e].reverse(), i = o.length >= 2 && o.every(gs) && o.some((s) => s !== o[0]), a = [];
|
|
2153
2155
|
if (i) {
|
|
2154
2156
|
const s = o.slice(1).map((c, l) => c - o[l]);
|
|
2155
2157
|
let r = o[o.length - 1];
|
|
2156
2158
|
for (let c = 0; c < t; c++)
|
|
2157
|
-
r += s[c % s.length], a.push(
|
|
2159
|
+
r += s[c % s.length], a.push(fs(r, o));
|
|
2158
2160
|
} else
|
|
2159
2161
|
for (let s = 0; s < t; s++) a.push(o[s % o.length]);
|
|
2160
2162
|
return n === "down" ? a : a.reverse();
|
|
2161
|
-
},
|
|
2163
|
+
}, fs = (e, t) => {
|
|
2162
2164
|
const n = Math.max(...t.map((i) => (String(i).split(".")[1] ?? "").length));
|
|
2163
2165
|
if (n > 12) return e;
|
|
2164
2166
|
const o = 10 ** n;
|
|
@@ -2167,28 +2169,28 @@ const ds = (e, t, n) => {
|
|
|
2167
2169
|
drag: X.Drag,
|
|
2168
2170
|
expand: X.Expand,
|
|
2169
2171
|
checkbox: X.Checkbox
|
|
2170
|
-
},
|
|
2172
|
+
}, ps = {
|
|
2171
2173
|
none: $.None,
|
|
2172
2174
|
cell: $.Cell,
|
|
2173
2175
|
row: $.Row,
|
|
2174
2176
|
column: $.Column,
|
|
2175
2177
|
all: $.All
|
|
2176
|
-
},
|
|
2178
|
+
}, Cs = {
|
|
2177
2179
|
none: de.None,
|
|
2178
2180
|
column: de.Column,
|
|
2179
2181
|
row: de.Row,
|
|
2180
2182
|
all: de.All
|
|
2181
|
-
},
|
|
2183
|
+
}, ws = {
|
|
2182
2184
|
[H.None]: "none",
|
|
2183
2185
|
[H.Cells]: "cells",
|
|
2184
2186
|
[H.Rows]: "rows",
|
|
2185
2187
|
[H.Columns]: "columns"
|
|
2186
|
-
},
|
|
2188
|
+
}, vs = {
|
|
2187
2189
|
none: H.None,
|
|
2188
2190
|
cells: H.Cells,
|
|
2189
2191
|
rows: H.Rows,
|
|
2190
2192
|
columns: H.Columns
|
|
2191
|
-
}, On = { ArrowUp: "up", ArrowDown: "down", ArrowLeft: "left", ArrowRight: "right" },
|
|
2193
|
+
}, On = { ArrowUp: "up", ArrowDown: "down", ArrowLeft: "left", ArrowRight: "right" }, Ss = (e) => Math.max(B.rowHeadWidth, 46 + e.length * 24), ys = 640, bs = 50, xs = (e, t) => ({
|
|
2192
2194
|
id: e.id,
|
|
2193
2195
|
name: e.name,
|
|
2194
2196
|
width: t,
|
|
@@ -2197,8 +2199,8 @@ const ds = (e, t, n) => {
|
|
|
2197
2199
|
isPrimary: e.isPrimary,
|
|
2198
2200
|
description: e.description,
|
|
2199
2201
|
hasIcon: e.hasIcon
|
|
2200
|
-
}), So = (e, t) => e === t || !!e && !!t && e[0] === t[0] && e[1] === t[1],
|
|
2201
|
-
class
|
|
2202
|
+
}), So = (e, t) => e === t || !!e && !!t && e[0] === t[0] && e[1] === t[1], Rs = (e, t) => e.kind === t.kind && So(e.activeCell, t.activeCell) && e.ranges.length === t.ranges.length && e.ranges.every((n, o) => n[0] === t.ranges[o][0] && n[1] === t.ranges[o][1]);
|
|
2203
|
+
class ks {
|
|
2202
2204
|
coord;
|
|
2203
2205
|
scroll = { scrollTop: 0, scrollLeft: 0, isScrolling: !1 };
|
|
2204
2206
|
mouseState = Ve;
|
|
@@ -2230,19 +2232,19 @@ class Rs {
|
|
|
2230
2232
|
constructor(t, n) {
|
|
2231
2233
|
this.config = t, this.hooks = n, this.coord = this.createCoordinate();
|
|
2232
2234
|
const o = () => this.config;
|
|
2233
|
-
this.selection = new
|
|
2235
|
+
this.selection = new ds({
|
|
2234
2236
|
getPureRowCount: () => this.config.rowCount,
|
|
2235
2237
|
get selectable() {
|
|
2236
|
-
return
|
|
2238
|
+
return ps[o().selectable];
|
|
2237
2239
|
},
|
|
2238
2240
|
onChange: () => {
|
|
2239
2241
|
const i = this.getSelection();
|
|
2240
|
-
|
|
2242
|
+
Rs(i, this.lastSelection) || (this.lastSelection = i, this.hooks.selectionChange(i), this.hooks.render());
|
|
2241
2243
|
},
|
|
2242
2244
|
onRowControlClick: (i, a) => {
|
|
2243
2245
|
a === X.Expand && this.hooks.rowExpand(i);
|
|
2244
2246
|
}
|
|
2245
|
-
}), this.resize = new
|
|
2247
|
+
}), this.resize = new is({
|
|
2246
2248
|
coordInstance: () => this.coord,
|
|
2247
2249
|
scrollState: () => this.scroll,
|
|
2248
2250
|
minWidth: (i) => this.config.columns[i]?.minWidth ?? B.columnMinWidth,
|
|
@@ -2257,12 +2259,12 @@ class Rs {
|
|
|
2257
2259
|
scrollState: () => this.scroll,
|
|
2258
2260
|
selection: () => this.selection.selection,
|
|
2259
2261
|
get draggable() {
|
|
2260
|
-
return
|
|
2262
|
+
return Cs[o().draggable];
|
|
2261
2263
|
},
|
|
2262
2264
|
onChange: (i) => {
|
|
2263
2265
|
this.dragState = i, this.hooks.render();
|
|
2264
2266
|
}
|
|
2265
|
-
}), this.dragState = this.drag.state, this.autoScroller = new
|
|
2267
|
+
}), this.dragState = this.drag.state, this.autoScroller = new os({
|
|
2266
2268
|
getBounds: () => ({
|
|
2267
2269
|
containerWidth: this.coord.containerWidth,
|
|
2268
2270
|
containerHeight: this.coord.containerHeight,
|
|
@@ -2282,18 +2284,18 @@ class Rs {
|
|
|
2282
2284
|
* numbers only and no column is frozen.
|
|
2283
2285
|
*/
|
|
2284
2286
|
get isPhone() {
|
|
2285
|
-
return !!this.config.touch && this.width > 0 && this.width <=
|
|
2287
|
+
return !!this.config.touch && this.width > 0 && this.width <= ys;
|
|
2286
2288
|
}
|
|
2287
2289
|
visibleRowControls() {
|
|
2288
2290
|
return this.isPhone ? [] : this.config.rowControls;
|
|
2289
2291
|
}
|
|
2290
2292
|
gutterWidth() {
|
|
2291
|
-
return this.isPhone ?
|
|
2293
|
+
return this.isPhone ? bs : Ss(this.config.rowControls);
|
|
2292
2294
|
}
|
|
2293
2295
|
// ---- configuration ----------------------------------------------------
|
|
2294
2296
|
createCoordinate() {
|
|
2295
2297
|
const { rowCount: t, rowHeight: n, headerHeight: o, columns: i, freezeColumnCount: a } = this.config;
|
|
2296
|
-
return new
|
|
2298
|
+
return new as({
|
|
2297
2299
|
rowHeight: n,
|
|
2298
2300
|
columnWidth: B.columnWidth,
|
|
2299
2301
|
rowCount: t,
|
|
@@ -2310,7 +2312,7 @@ class Rs {
|
|
|
2310
2312
|
const { columns: t } = this.config, n = {};
|
|
2311
2313
|
this.gridColumns = t.map((o, i) => {
|
|
2312
2314
|
const a = this.widthOverrides.get(i) ?? o.width ?? B.columnWidth;
|
|
2313
|
-
return n[i] = a,
|
|
2315
|
+
return n[i] = a, xs(o, a);
|
|
2314
2316
|
}), this.coord.refreshColumnDimensions({ columnCount: t.length, columnInitSize: this.gutterWidth(), columnWidthMap: n }), this.coord.freezeColumnCount = this.freezeCount(this.config.freezeColumnCount), this.invalidate();
|
|
2315
2317
|
}
|
|
2316
2318
|
/**
|
|
@@ -2319,7 +2321,7 @@ class Rs {
|
|
|
2319
2321
|
*/
|
|
2320
2322
|
freezeCount(t) {
|
|
2321
2323
|
const { columns: n } = this.config, o = Math.min(t, n.length);
|
|
2322
|
-
return this.width <= 0 ? o : this.isPhone ? 0 : Math.min(o,
|
|
2324
|
+
return this.width <= 0 ? o : this.isPhone ? 0 : Math.min(o, rs({
|
|
2323
2325
|
containerWidth: this.width,
|
|
2324
2326
|
columnInitSize: this.gutterWidth(),
|
|
2325
2327
|
columnCount: n.length,
|
|
@@ -2378,10 +2380,10 @@ class Rs {
|
|
|
2378
2380
|
// ---- selection --------------------------------------------------------
|
|
2379
2381
|
getSelection() {
|
|
2380
2382
|
const { selection: t, activeCell: n } = this.selection;
|
|
2381
|
-
return { kind:
|
|
2383
|
+
return { kind: ws[t.type], ranges: t.ranges.map((o) => [o[0], o[1]]), activeCell: n ? [n[0], n[1]] : null };
|
|
2382
2384
|
}
|
|
2383
2385
|
setSelection(t) {
|
|
2384
|
-
const n = t.ranges.map((a) => [a[0], a[1]]), o = t.kind === "none" ? Ge : new oe(
|
|
2386
|
+
const n = t.ranges.map((a) => [a[0], a[1]]), o = t.kind === "none" ? Ge : new oe(vs[t.kind], n), i = t.activeCell !== void 0 ? t.activeCell ? [t.activeCell[0], t.activeCell[1]] : null : t.kind === "cells" && n[0] ? [n[0][0], n[0][1]] : null;
|
|
2385
2387
|
this.selection.update({ selection: o, activeCell: i });
|
|
2386
2388
|
}
|
|
2387
2389
|
selectCell(t, n) {
|
|
@@ -2532,12 +2534,12 @@ class Rs {
|
|
|
2532
2534
|
endFill(t) {
|
|
2533
2535
|
const n = this.fillSource;
|
|
2534
2536
|
this.fillSource = null;
|
|
2535
|
-
const o =
|
|
2537
|
+
const o = hs(n, this.fillTargetRow(t), this.config.rowCount);
|
|
2536
2538
|
if (!o) {
|
|
2537
2539
|
this.hooks.render();
|
|
2538
2540
|
return;
|
|
2539
2541
|
}
|
|
2540
|
-
const i =
|
|
2542
|
+
const i = ms(o), a = this.selection.activeCell;
|
|
2541
2543
|
this.selection.update({
|
|
2542
2544
|
selection: this.selection.selection.set(H.Cells, [[i.startColumn, i.startRow], [i.endColumn, i.endRow]]),
|
|
2543
2545
|
...a ? {} : { activeCell: [n.startColumn, n.startRow] }
|
|
@@ -2653,7 +2655,7 @@ class Rs {
|
|
|
2653
2655
|
moveAfterEdit(t, n) {
|
|
2654
2656
|
const { rowCount: o, columns: i } = this.config;
|
|
2655
2657
|
if (!o || !i.length) return;
|
|
2656
|
-
const a = { pureRowCount: o, columnCount: i.length }, s = new oe(H.Cells, [[t[0], t[1]], [t[0], t[1]]]), r = n === "down" ?
|
|
2658
|
+
const a = { pureRowCount: o, columnCount: i.length }, s = new oe(H.Cells, [[t[0], t[1]], [t[0], t[1]]]), r = n === "down" ? us(s, a) : Bn(s, n === "left", a);
|
|
2657
2659
|
this.selection.update({ selection: r.selection, activeCell: r.activeCell }), this.scrollToCell(r.scrollTo);
|
|
2658
2660
|
}
|
|
2659
2661
|
/** An input method started composing on the selected cell. */
|
|
@@ -2678,7 +2680,7 @@ class Rs {
|
|
|
2678
2680
|
const r = On[t.key];
|
|
2679
2681
|
if (r) {
|
|
2680
2682
|
if (t.altKey) return "ignore";
|
|
2681
|
-
const c =
|
|
2683
|
+
const c = ls(a, r, { expand: t.shiftKey, jump: t.commandKey }, i);
|
|
2682
2684
|
return this.selection.update({ selection: c.selection, ...c.activeCell ? { activeCell: c.activeCell } : {} }), this.scrollToCell(c.scrollTo), "prevent";
|
|
2683
2685
|
}
|
|
2684
2686
|
switch (t.key) {
|
|
@@ -2699,7 +2701,7 @@ class Rs {
|
|
|
2699
2701
|
case "a":
|
|
2700
2702
|
case "A":
|
|
2701
2703
|
if (!t.commandKey || t.shiftKey || t.altKey) break;
|
|
2702
|
-
return this.selection.update({ selection:
|
|
2704
|
+
return this.selection.update({ selection: cs(a, i) }), "prevent";
|
|
2703
2705
|
case "Enter":
|
|
2704
2706
|
return t.shiftKey || t.altKey || t.commandKey ? "ignore" : (this.requestEdit(s, "enter", !1), "prevent");
|
|
2705
2707
|
case "F2":
|
|
@@ -2713,7 +2715,7 @@ class Rs {
|
|
|
2713
2715
|
case "Escape":
|
|
2714
2716
|
return "ignore";
|
|
2715
2717
|
}
|
|
2716
|
-
return
|
|
2718
|
+
return ma(t) ? this.requestEdit(s, "key", !0) ? "pass" : "prevent" : "ignore";
|
|
2717
2719
|
}
|
|
2718
2720
|
// ---- drawing ----------------------------------------------------------
|
|
2719
2721
|
/** Everything `drawGrid` needs except the theme and the cell/icon painters. */
|
|
@@ -2767,31 +2769,31 @@ class Rs {
|
|
|
2767
2769
|
this.autoScroller.stop();
|
|
2768
2770
|
}
|
|
2769
2771
|
}
|
|
2770
|
-
const
|
|
2772
|
+
const Is = () => {
|
|
2771
2773
|
if (typeof navigator > "u") return !1;
|
|
2772
2774
|
const e = navigator.userAgentData?.platform ?? navigator.platform ?? "";
|
|
2773
2775
|
return /mac|iphone|ipad|ipod/i.test(e);
|
|
2774
2776
|
}, Vn = (e, t) => {
|
|
2775
2777
|
const n = Number.parseFloat(e.getPropertyValue(t));
|
|
2776
2778
|
return Number.isFinite(n) && n > 0 ? n : void 0;
|
|
2777
|
-
},
|
|
2779
|
+
}, Ps = (e, t = { rowHeight: B.rowHeight, headerHeight: B.columnHeadHeight }) => {
|
|
2778
2780
|
const n = getComputedStyle(e);
|
|
2779
2781
|
return {
|
|
2780
2782
|
rowHeight: Vn(n, "--ui-grid-row-height") ?? t.rowHeight,
|
|
2781
2783
|
headerHeight: Vn(n, "--ui-grid-header-height") ?? t.headerHeight
|
|
2782
2784
|
};
|
|
2783
|
-
},
|
|
2785
|
+
}, zs = (e, t, n) => n > 0 ? Math.max(0, Math.floor((e - t) / n)) : 0, Ms = ["aria-labelledby", "aria-rowcount", "aria-colcount", "aria-readonly", "aria-busy", "data-ui-grid-skeleton"], As = ["id"], Es = { role: "rowgroup" }, Hs = {
|
|
2784
2786
|
role: "row",
|
|
2785
2787
|
"aria-rowindex": "1"
|
|
2786
|
-
},
|
|
2788
|
+
}, Ts = ["id", "aria-colindex"], Fs = { role: "rowgroup" }, Ns = ["aria-rowindex", "aria-hidden"], Ls = ["id"], Ds = ["aria-colindex", "aria-selected", "aria-readonly"], Ws = ["id"], Bs = ["data-ui-grid-editing", "aria-labelledby", "aria-invalid", "aria-describedby", "readonly"], Os = ["id"], Vs = {
|
|
2787
2789
|
key: 1,
|
|
2788
2790
|
role: "status",
|
|
2789
2791
|
class: "sr-only"
|
|
2790
|
-
},
|
|
2792
|
+
}, Gs = {
|
|
2791
2793
|
key: 2,
|
|
2792
2794
|
"data-ui-grid-overlay": "",
|
|
2793
2795
|
style: { position: "absolute", inset: "0", "pointer-events": "none", "z-index": "3" }
|
|
2794
|
-
},
|
|
2796
|
+
}, Us = 6, Ks = 250, _s = 100, $s = 800, qs = 300, Xs = 300, Tr = /* @__PURE__ */ Xo({
|
|
2795
2797
|
__name: "GridHost",
|
|
2796
2798
|
props: {
|
|
2797
2799
|
columns: {},
|
|
@@ -2827,7 +2829,7 @@ const ks = () => {
|
|
|
2827
2829
|
setup(e, { expose: t, emit: n }) {
|
|
2828
2830
|
const o = e, i = n, a = ni(), s = Yo(), r = xe(), c = xe(), l = xe(), u = xe(), h = xe(), m = ce({ rowHeight: B.rowHeight, headerHeight: B.columnHeadHeight }), g = ce({ ...co, ...o.themeOverrides }), C = ce({ width: 0, height: 0 }), S = ce({ kind: "none", ranges: [], activeCell: null }), p = ce({ width: 0, height: 0 }), w = xe(!1), v = xe(!1), y = ce(0);
|
|
2829
2831
|
let R = Ue.danger;
|
|
2830
|
-
const I = ce(null), k = _(() => o.rowHeight ?? m.value.rowHeight), P = _(() => o.headerHeight ?? m.value.headerHeight), A = _(() =>
|
|
2832
|
+
const I = ce(null), k = _(() => o.rowHeight ?? m.value.rowHeight), P = _(() => o.headerHeight ?? m.value.headerHeight), A = _(() => zs(C.value.height, P.value, k.value)), N = _(() => !o.loading && o.rowCount === 0), M = () => {
|
|
2831
2833
|
const d = o.loading && o.rowCount === 0;
|
|
2832
2834
|
return {
|
|
2833
2835
|
columns: o.columns,
|
|
@@ -2845,7 +2847,7 @@ const ks = () => {
|
|
|
2845
2847
|
};
|
|
2846
2848
|
}, E = () => o.loading && o.rowCount === 0;
|
|
2847
2849
|
let F = 0, W, K = null, G = null;
|
|
2848
|
-
const ke = () => o.editing || L.active, z = new
|
|
2850
|
+
const ke = () => o.editing || L.active, z = new ks(M(), {
|
|
2849
2851
|
render: () => ge(),
|
|
2850
2852
|
selectionChange: (d) => {
|
|
2851
2853
|
const f = L.state.value.cell;
|
|
@@ -2884,7 +2886,7 @@ const ks = () => {
|
|
|
2884
2886
|
visibleRangeChange: (d) => {
|
|
2885
2887
|
E() || i("visible-range-change", d);
|
|
2886
2888
|
}
|
|
2887
|
-
}), L =
|
|
2889
|
+
}), L = Xa({
|
|
2888
2890
|
owner: () => h.value,
|
|
2889
2891
|
root: () => r.value,
|
|
2890
2892
|
enabled: () => !!o.getEditText,
|
|
@@ -3005,9 +3007,9 @@ const ks = () => {
|
|
|
3005
3007
|
d.style.transform = `translate(${bt}px, ${xt}px)`, d.style.width = `${b.width}px`, d.style.height = `${b.height}px`;
|
|
3006
3008
|
}
|
|
3007
3009
|
function Pe() {
|
|
3008
|
-
return
|
|
3010
|
+
return ua(h.value, r.value ?? null);
|
|
3009
3011
|
}
|
|
3010
|
-
const ve = (d) =>
|
|
3012
|
+
const ve = (d) => Is() ? d.metaKey : d.ctrlKey;
|
|
3011
3013
|
function ae(d) {
|
|
3012
3014
|
const f = G ?? (G = r.value.getBoundingClientRect());
|
|
3013
3015
|
return { x: d.clientX - f.left, y: d.clientY - f.top, shiftKey: d.shiftKey, commandKey: ve(d) };
|
|
@@ -3017,7 +3019,7 @@ const ks = () => {
|
|
|
3017
3019
|
return d.clientX - b.left >= f.clientWidth || d.clientY - b.top >= f.clientHeight;
|
|
3018
3020
|
}
|
|
3019
3021
|
let le = null, q = null, Yt = -1 / 0, jt = -1 / 0, je = !1;
|
|
3020
|
-
const Qe = () => typeof performance > "u" ? Date.now() : performance.now(), Qt = () => q != null || Qe() - Yt <
|
|
3022
|
+
const Qe = () => typeof performance > "u" ? Date.now() : performance.now(), Qt = () => q != null || Qe() - Yt < $s;
|
|
3021
3023
|
function Ze() {
|
|
3022
3024
|
q && clearTimeout(q.timer), q = null, Yt = Qe();
|
|
3023
3025
|
}
|
|
@@ -3030,23 +3032,23 @@ const ks = () => {
|
|
|
3030
3032
|
id: d.pointerId,
|
|
3031
3033
|
x: d.clientX,
|
|
3032
3034
|
y: d.clientY,
|
|
3033
|
-
flingStop: Qe() - jt <
|
|
3035
|
+
flingStop: Qe() - jt < _s,
|
|
3034
3036
|
longPressed: !1,
|
|
3035
3037
|
timer: setTimeout(() => {
|
|
3036
3038
|
q !== f || f.flingStop || ke() || (f.longPressed = !0, z.longPress(ae(d)), ie());
|
|
3037
|
-
},
|
|
3039
|
+
}, Ks)
|
|
3038
3040
|
};
|
|
3039
3041
|
q = f;
|
|
3040
3042
|
}
|
|
3041
3043
|
function Io(d) {
|
|
3042
3044
|
const f = q;
|
|
3043
|
-
!f || f.id !== d.pointerId || Math.hypot(d.clientX - f.x, d.clientY - f.y) >
|
|
3045
|
+
!f || f.id !== d.pointerId || Math.hypot(d.clientX - f.x, d.clientY - f.y) > Us && Ze();
|
|
3044
3046
|
}
|
|
3045
3047
|
function Po(d) {
|
|
3046
3048
|
const f = q;
|
|
3047
3049
|
!f || f.id !== d.pointerId || (Ze(), !(f.longPressed || f.flingStop) && (L.active && !L.commit("pointer") || o.editing || (z.tap(ae(d)), ie(), le && clearTimeout(le), le = setTimeout(() => {
|
|
3048
3050
|
le = null, z.clearTapFeedback();
|
|
3049
|
-
},
|
|
3051
|
+
}, qs))));
|
|
3050
3052
|
}
|
|
3051
3053
|
function zo(d) {
|
|
3052
3054
|
if (G = r.value.getBoundingClientRect(), d.pointerType === "touch") {
|
|
@@ -3151,20 +3153,20 @@ const ks = () => {
|
|
|
3151
3153
|
fe && clearTimeout(fe), fe = null, h.value && !L.active && (h.value.value = "");
|
|
3152
3154
|
}
|
|
3153
3155
|
function pt(d, f, b, T) {
|
|
3154
|
-
T && (Je = qe(d, ft()), ge()), i("clipboard-copy", { block: f, cellCount:
|
|
3156
|
+
T && (Je = qe(d, ft()), ge()), i("clipboard-copy", { block: f, cellCount: Pa(f), cut: b, ok: T }), T && b && !o.readonly && i("clear-request", d);
|
|
3155
3157
|
}
|
|
3156
3158
|
function en(d, f) {
|
|
3157
3159
|
const b = z.getSelection(), T = fo(b, ft());
|
|
3158
3160
|
if (!T) return Promise.resolve(!1);
|
|
3159
|
-
const U =
|
|
3161
|
+
const U = Ma(T, o.isRowLoaded);
|
|
3160
3162
|
if (f && U) {
|
|
3161
|
-
const be =
|
|
3163
|
+
const be = ba(f, It(Hn(T, o.getCopyText ?? o.getCellText)));
|
|
3162
3164
|
return pt(b, T, d, be), Promise.resolve(be);
|
|
3163
3165
|
}
|
|
3164
3166
|
f?.preventDefault();
|
|
3165
3167
|
let Z;
|
|
3166
3168
|
return U ? Z = Promise.resolve(It(Hn(T, o.getCopyText ?? o.getCellText))) : o.resolveCopy ? Z = o.resolveCopy(T).then(It) : Z = Promise.reject(new Error("Rows are not loaded")), Z.catch(() => {
|
|
3167
|
-
}),
|
|
3169
|
+
}), Ra(Z).then(
|
|
3168
3170
|
() => (pt(b, T, d, !0), !0),
|
|
3169
3171
|
() => (pt(b, T, d, !1), !1)
|
|
3170
3172
|
);
|
|
@@ -3174,14 +3176,14 @@ const ks = () => {
|
|
|
3174
3176
|
}
|
|
3175
3177
|
function nn(d) {
|
|
3176
3178
|
if (o.readonly) return null;
|
|
3177
|
-
const f =
|
|
3179
|
+
const f = za(d, z.getSelection(), {
|
|
3178
3180
|
...ft(),
|
|
3179
3181
|
isReadonlyColumn: (b) => !!o.columns[b]?.readonly
|
|
3180
3182
|
});
|
|
3181
3183
|
return f ? (De(), i("paste-request", f), f) : null;
|
|
3182
3184
|
}
|
|
3183
3185
|
function Wo(d) {
|
|
3184
|
-
L.active ||
|
|
3186
|
+
L.active || ga({ isEditing: o.editing, eventTarget: d.target, hiddenFocusEl: h.value ?? null }) && (d.preventDefault(), S.value.kind !== "none" && nn(d.clipboardData?.getData("text/plain") ?? ""));
|
|
3185
3187
|
}
|
|
3186
3188
|
const Ct = /* @__PURE__ */ new Map();
|
|
3187
3189
|
let ze = null;
|
|
@@ -3192,7 +3194,7 @@ const ks = () => {
|
|
|
3192
3194
|
for (const [f, b] of d) i("column-width-save", f, b);
|
|
3193
3195
|
}
|
|
3194
3196
|
function Bo(d, f) {
|
|
3195
|
-
Ct.set(d, f), ze && clearTimeout(ze), ze = setTimeout(on,
|
|
3197
|
+
Ct.set(d, f), ze && clearTimeout(ze), ze = setTimeout(on, Xs);
|
|
3196
3198
|
}
|
|
3197
3199
|
function Oo() {
|
|
3198
3200
|
o.editing || (L.active || z.compositionStart(), L.active && L.compositionStart());
|
|
@@ -3214,7 +3216,7 @@ const ks = () => {
|
|
|
3214
3216
|
}
|
|
3215
3217
|
function ye() {
|
|
3216
3218
|
const d = r.value;
|
|
3217
|
-
d && (m.value =
|
|
3219
|
+
d && (m.value = Ps(d, m.value), g.value = ra(d, o.themeOverrides), R = vo(d).danger, I.value = Oa(d.ownerDocument, g.value.fontSizeSM, g.value.fontFamily), z.theme = g.value, yt(), z.invalidate());
|
|
3218
3220
|
}
|
|
3219
3221
|
function yt() {
|
|
3220
3222
|
z.configure(M()), p.value = z.contentSize;
|
|
@@ -3255,7 +3257,7 @@ const ks = () => {
|
|
|
3255
3257
|
theme: g.value,
|
|
3256
3258
|
dangerColor: R,
|
|
3257
3259
|
textBox: I.value
|
|
3258
|
-
})), $o = _(() =>
|
|
3260
|
+
})), $o = _(() => Ua(et.value)), un = _(() => j.value.active ? wo(et.value) : k.value), tt = _(() => {
|
|
3259
3261
|
if (y.value, j.value.active) return j.value.error;
|
|
3260
3262
|
const d = S.value.activeCell, f = d && o.cellStatus ? o.cellStatus(d) : null;
|
|
3261
3263
|
return f?.state === "error" ? f.message : null;
|
|
@@ -3294,7 +3296,7 @@ const ks = () => {
|
|
|
3294
3296
|
ee("span", {
|
|
3295
3297
|
id: `${J(s)}-label`,
|
|
3296
3298
|
class: "sr-only"
|
|
3297
|
-
}, we(e.label), 9,
|
|
3299
|
+
}, we(e.label), 9, As),
|
|
3298
3300
|
ee("canvas", {
|
|
3299
3301
|
ref_key: "canvas",
|
|
3300
3302
|
ref: c,
|
|
@@ -3321,18 +3323,18 @@ const ks = () => {
|
|
|
3321
3323
|
style: Be({ width: `${p.value.width}px`, height: `${p.value.height}px` })
|
|
3322
3324
|
}, null, 4)
|
|
3323
3325
|
], 544),
|
|
3324
|
-
ee("div",
|
|
3325
|
-
ee("div",
|
|
3326
|
+
ee("div", Es, [
|
|
3327
|
+
ee("div", Hs, [
|
|
3326
3328
|
(pe(!0), Ce(Zo, null, Jo(e.columns, (b, T) => (pe(), Ce("span", {
|
|
3327
3329
|
id: rn(T),
|
|
3328
3330
|
key: b.id,
|
|
3329
3331
|
role: "columnheader",
|
|
3330
3332
|
class: "sr-only",
|
|
3331
3333
|
"aria-colindex": T + 1
|
|
3332
|
-
}, we(b.name), 9,
|
|
3334
|
+
}, we(b.name), 9, Ts))), 128))
|
|
3333
3335
|
])
|
|
3334
3336
|
]),
|
|
3335
|
-
ee("div",
|
|
3337
|
+
ee("div", Fs, [
|
|
3336
3338
|
ee("div", {
|
|
3337
3339
|
role: "row",
|
|
3338
3340
|
"aria-rowindex": Y.value ? Y.value[1] + 2 : 2,
|
|
@@ -3342,7 +3344,7 @@ const ks = () => {
|
|
|
3342
3344
|
id: `${J(s)}-rowheader`,
|
|
3343
3345
|
role: "rowheader",
|
|
3344
3346
|
class: "sr-only"
|
|
3345
|
-
}, we(Uo.value), 9,
|
|
3347
|
+
}, we(Uo.value), 9, Ls),
|
|
3346
3348
|
ee("div", {
|
|
3347
3349
|
ref_key: "focusCell",
|
|
3348
3350
|
ref: u,
|
|
@@ -3356,7 +3358,7 @@ const ks = () => {
|
|
|
3356
3358
|
ee("span", {
|
|
3357
3359
|
id: `${J(s)}-cell`,
|
|
3358
3360
|
class: "sr-only"
|
|
3359
|
-
}, we(Ko.value), 9,
|
|
3361
|
+
}, we(Ko.value), 9, Ws),
|
|
3360
3362
|
ee("textarea", {
|
|
3361
3363
|
ref_key: "focusOwner",
|
|
3362
3364
|
ref: h,
|
|
@@ -3378,21 +3380,21 @@ const ks = () => {
|
|
|
3378
3380
|
onBlur: f[1] || (f[1] = (b) => J(L).blur()),
|
|
3379
3381
|
onCopy: f[2] || (f[2] = (b) => tn(b, !1)),
|
|
3380
3382
|
onCut: f[3] || (f[3] = (b) => tn(b, !0))
|
|
3381
|
-
}, null, 44,
|
|
3383
|
+
}, null, 44, Bs),
|
|
3382
3384
|
cn.value ? (pe(), Ce("span", {
|
|
3383
3385
|
key: 0,
|
|
3384
3386
|
"data-ui-grid-edit-hint": "",
|
|
3385
3387
|
"aria-hidden": "true",
|
|
3386
|
-
style: Be({ ...J(
|
|
3388
|
+
style: Be({ ...J(Ka)(et.value), top: `${un.value - J(lt)}px` })
|
|
3387
3389
|
}, we(e.editHint), 5)) : Oe("", !0),
|
|
3388
3390
|
tt.value ? (pe(), Ce("div", {
|
|
3389
3391
|
key: 1,
|
|
3390
3392
|
id: `${J(s)}-message`,
|
|
3391
3393
|
"data-ui-grid-edit-message": "",
|
|
3392
|
-
style: Be({ ...J(
|
|
3393
|
-
}, we(tt.value), 13,
|
|
3394
|
-
], 8,
|
|
3395
|
-
], 8,
|
|
3394
|
+
style: Be({ ...J(_a)(et.value), top: `${un.value + 4}px` })
|
|
3395
|
+
}, we(tt.value), 13, Os)) : Oe("", !0)
|
|
3396
|
+
], 8, Ds)
|
|
3397
|
+
], 8, Ns)
|
|
3396
3398
|
]),
|
|
3397
3399
|
N.value ? (pe(), Ce("div", {
|
|
3398
3400
|
key: 0,
|
|
@@ -3403,16 +3405,16 @@ const ks = () => {
|
|
|
3403
3405
|
ei(we(J(a)("No data")), 1)
|
|
3404
3406
|
])
|
|
3405
3407
|
], 4)) : Oe("", !0),
|
|
3406
|
-
e.loading ? (pe(), Ce("span",
|
|
3407
|
-
d.$slots.overlay ? (pe(), Ce("div",
|
|
3408
|
+
e.loading ? (pe(), Ce("span", Vs, we(J(a)("Loading")), 1)) : Oe("", !0),
|
|
3409
|
+
d.$slots.overlay ? (pe(), Ce("div", Gs, [
|
|
3408
3410
|
hn(d.$slots, "overlay", {
|
|
3409
3411
|
activeCell: Y.value,
|
|
3410
3412
|
getCellRect: ln
|
|
3411
3413
|
})
|
|
3412
3414
|
])) : Oe("", !0)
|
|
3413
|
-
], 40,
|
|
3415
|
+
], 40, Ms));
|
|
3414
3416
|
}
|
|
3415
|
-
}),
|
|
3417
|
+
}), Ys = (e, t = 500) => {
|
|
3416
3418
|
const n = new ct(t);
|
|
3417
3419
|
let o = !1;
|
|
3418
3420
|
const i = () => {
|
|
@@ -3435,13 +3437,13 @@ const ks = () => {
|
|
|
3435
3437
|
},
|
|
3436
3438
|
clear: () => n.clear()
|
|
3437
3439
|
};
|
|
3438
|
-
}, Gn = ["en", "zh-TW", "zh-CN", "ja", "ko", "de", "fr", "es", "it"],
|
|
3440
|
+
}, Gn = ["en", "zh-TW", "zh-CN", "ja", "ko", "de", "fr", "es", "it"], js = /* @__PURE__ */ Symbol("syno-pkg-land-ui:locale"), Un = { enu: "en", cht: "zh-TW", chs: "zh-CN", jpn: "ja", krn: "ko", ger: "de", fre: "fr", spn: "es", ita: "it" };
|
|
3439
3441
|
function Kn(e) {
|
|
3440
3442
|
if (!e) return;
|
|
3441
3443
|
const n = e.trim().replaceAll("_", "-").toLowerCase();
|
|
3442
3444
|
return Un[n] ? Un[n] : n.startsWith("zh") ? /-(hant|tw|hk|mo)\b/.test(n) ? "zh-TW" : "zh-CN" : Gn.find((i) => i.toLowerCase() === n) ?? Gn.find((i) => i === n.split("-")[0]);
|
|
3443
3445
|
}
|
|
3444
|
-
function
|
|
3446
|
+
function Qs() {
|
|
3445
3447
|
if (typeof window > "u") return "en";
|
|
3446
3448
|
const e = window;
|
|
3447
3449
|
let t;
|
|
@@ -3459,18 +3461,18 @@ function js() {
|
|
|
3459
3461
|
}
|
|
3460
3462
|
return "en";
|
|
3461
3463
|
}
|
|
3462
|
-
function
|
|
3463
|
-
const t = ti(
|
|
3464
|
+
function Zs(e) {
|
|
3465
|
+
const t = ti(js, null);
|
|
3464
3466
|
let n;
|
|
3465
|
-
return _(() => e() ?? t?.value ?? (n ??=
|
|
3467
|
+
return _(() => e() ?? t?.value ?? (n ??= Qs()));
|
|
3466
3468
|
}
|
|
3467
3469
|
function yo(e, t) {
|
|
3468
3470
|
return e.replace(/\{(\w+)\}/g, (n, o) => String(t[o] ?? n));
|
|
3469
3471
|
}
|
|
3470
|
-
const _e = 4, Re = 6,
|
|
3472
|
+
const _e = 4, Re = 6, Js = 4, Ae = 4, he = (e, t, n, o = "") => {
|
|
3471
3473
|
const i = `${o ? `${o} ` : ""}${t}px ${n}`;
|
|
3472
3474
|
e.font !== i && (e.font = i);
|
|
3473
|
-
}, Ee = (e, t, n) => $e(e, { text: t, fontSize: n, needRender: !1 }).width,
|
|
3475
|
+
}, Ee = (e, t, n) => $e(e, { text: t, fontSize: n, needRender: !1 }).width, er = (e) => {
|
|
3474
3476
|
const t = e.trim();
|
|
3475
3477
|
if (!t) return "";
|
|
3476
3478
|
if (typeof Intl < "u" && typeof Intl.Segmenter == "function")
|
|
@@ -3492,7 +3494,7 @@ const _e = 4, Re = 6, Zs = 4, Ae = 4, he = (e, t, n, o = "") => {
|
|
|
3492
3494
|
}).width;
|
|
3493
3495
|
}, bo = (e, t, n, o, i) => {
|
|
3494
3496
|
const { metrics: a, theme: s } = t;
|
|
3495
|
-
D(e, { ...n, radius:
|
|
3497
|
+
D(e, { ...n, radius: Js, fill: i.fill }), he(e, a.chipFontSize, s.fontFamily), $e(e, {
|
|
3496
3498
|
text: o,
|
|
3497
3499
|
x: n.x + Re,
|
|
3498
3500
|
y: n.y + (n.height - a.chipFontSize) / 2,
|
|
@@ -3520,7 +3522,7 @@ const _e = 4, Re = 6, Zs = 4, Ae = 4, he = (e, t, n, o = "") => {
|
|
|
3520
3522
|
}, _t = (e, t, n) => (he(e, t.metrics.chipFontSize, t.theme.fontFamily), Ee(e, `+${n}`, t.metrics.chipFontSize) + 2 * Re), $t = (e, t, n, o, i) => {
|
|
3521
3523
|
const { metrics: a, cellTheme: s } = t, r = t.y + (t.height - a.chip) / 2;
|
|
3522
3524
|
bo(e, t, { x: n, y: r, width: i, height: a.chip }, `+${o}`, { fill: s.badgeFill, color: s.badgeText });
|
|
3523
|
-
},
|
|
3525
|
+
}, tr = (e, t, n, o, i) => {
|
|
3524
3526
|
const a = t + o / 2, s = n + o / 2 + o * 0.04, r = o / 2, c = r * 0.45;
|
|
3525
3527
|
e.beginPath();
|
|
3526
3528
|
for (let l = 0; l < 10; l++) {
|
|
@@ -3528,7 +3530,7 @@ const _e = 4, Re = 6, Zs = 4, Ae = 4, he = (e, t, n, o = "") => {
|
|
|
3528
3530
|
l === 0 ? e.moveTo(m, g) : e.lineTo(m, g);
|
|
3529
3531
|
}
|
|
3530
3532
|
e.closePath(), e.fillStyle = i, e.fill();
|
|
3531
|
-
},
|
|
3533
|
+
}, nr = (e, t, n, o, i) => {
|
|
3532
3534
|
const a = o;
|
|
3533
3535
|
e.save(), e.strokeStyle = i, e.lineWidth = Math.max(1.25, a / 11), e.lineCap = "round", e.lineJoin = "round", e.beginPath(), e.moveTo(t + a * 0.45, n + a * 0.2), e.lineTo(t + a * 0.2, n + a * 0.2), e.lineTo(t + a * 0.2, n + a * 0.8), e.lineTo(t + a * 0.8, n + a * 0.8), e.lineTo(t + a * 0.8, n + a * 0.55), e.moveTo(t + a * 0.55, n + a * 0.2), e.lineTo(t + a * 0.8, n + a * 0.2), e.lineTo(t + a * 0.8, n + a * 0.45), e.moveTo(t + a * 0.8, n + a * 0.2), e.lineTo(t + a * 0.48, n + a * 0.52), e.stroke(), e.restore();
|
|
3534
3536
|
};
|
|
@@ -3544,11 +3546,11 @@ class qt {
|
|
|
3544
3546
|
this.cache.clear();
|
|
3545
3547
|
}
|
|
3546
3548
|
}
|
|
3547
|
-
const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.y + t.height,
|
|
3549
|
+
const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.y + t.height, or = { type: "decimal", precision: 2 }, _n = (e, t) => {
|
|
3548
3550
|
if (!Number.isFinite(e) || Math.abs(e) <= Number.MAX_SAFE_INTEGER) return e.toFixed(t);
|
|
3549
3551
|
const n = String(e), o = n.includes("e") ? "" : "0".repeat(t);
|
|
3550
3552
|
return o ? `${n}.${o}` : n;
|
|
3551
|
-
},
|
|
3553
|
+
}, ir = (e, t = or, n = "en-US") => {
|
|
3552
3554
|
if (e == null) return "";
|
|
3553
3555
|
const o = Number(e), i = t.precision ?? 2;
|
|
3554
3556
|
if (t.type === "currency") {
|
|
@@ -3556,34 +3558,34 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
3556
3558
|
return s + a + r;
|
|
3557
3559
|
}
|
|
3558
3560
|
return t.type === "percent" ? `${_n(o * 100, i)}%` : _n(o, i);
|
|
3559
|
-
},
|
|
3561
|
+
}, Fr = (e, t) => {
|
|
3560
3562
|
if (e == null || e === "") return null;
|
|
3561
3563
|
const n = String(e), o = t?.type === "percent" || n.includes("%"), i = n.replace(/[^\d.+-]/g, "").replace(/([+\-.])+/g, "$1"), a = Number.parseFloat(i);
|
|
3562
3564
|
return Number.isNaN(a) ? null : o ? a / 100 : a;
|
|
3563
|
-
}, dt = (e) => e.map(String).filter(Boolean).join(", "),
|
|
3565
|
+
}, dt = (e) => e.map(String).filter(Boolean).join(", "), ar = (e, t) => {
|
|
3564
3566
|
const n = t.chips[e.tone ?? "neutral"] ?? t.chips.neutral;
|
|
3565
3567
|
return { fill: e.fill ?? n.fill, color: e.color ?? n.color };
|
|
3566
|
-
}, ht = (e) => Math.max(0, e.width - 2 * e.metrics.padding),
|
|
3568
|
+
}, ht = (e) => Math.max(0, e.width - 2 * e.metrics.padding), sr = {
|
|
3567
3569
|
draw: (e, t, n) => {
|
|
3568
3570
|
me(e, t, n.text);
|
|
3569
3571
|
},
|
|
3570
3572
|
describe: (e) => e.text
|
|
3571
|
-
},
|
|
3573
|
+
}, rr = {
|
|
3572
3574
|
draw: (e, t, n) => {
|
|
3573
3575
|
me(e, t, n.text.replace(/\s*\n\s*/g, " "));
|
|
3574
3576
|
},
|
|
3575
3577
|
describe: (e) => e.text
|
|
3576
|
-
},
|
|
3578
|
+
}, lr = {
|
|
3577
3579
|
draw: (e, t, n) => {
|
|
3578
3580
|
me(e, t, n.text);
|
|
3579
3581
|
},
|
|
3580
3582
|
describe: (e) => e.text
|
|
3581
|
-
},
|
|
3583
|
+
}, cr = {
|
|
3582
3584
|
draw: (e, t, n) => {
|
|
3583
3585
|
me(e, t, n.text, { color: t.cellTheme.textMuted, align: n.align === "end" ? "right" : "left" });
|
|
3584
3586
|
},
|
|
3585
3587
|
describe: (e) => e.text
|
|
3586
|
-
}, $n = (e, t) => e.text ??
|
|
3588
|
+
}, $n = (e, t) => e.text ?? ir(e.value, e.format, t), ur = {
|
|
3587
3589
|
draw: (e, t, n) => {
|
|
3588
3590
|
me(e, t, $n(n, t.locale), { align: "right" });
|
|
3589
3591
|
},
|
|
@@ -3591,10 +3593,10 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
3591
3593
|
}, qn = (e, t, n) => {
|
|
3592
3594
|
const o = n.icon;
|
|
3593
3595
|
return { x: e - n.padding - o, y: (t - o) / 2, width: o, height: o };
|
|
3594
|
-
},
|
|
3596
|
+
}, dr = {
|
|
3595
3597
|
draw: (e, t, n) => {
|
|
3596
3598
|
const { metrics: o, cellTheme: i } = t, a = qn(t.width, t.height, o);
|
|
3597
|
-
n.text && (me(e, t, n.text, { color: i.link, maxWidth: Math.max(0, a.x - Ae - o.padding) }),
|
|
3599
|
+
n.text && (me(e, t, n.text, { color: i.link, maxWidth: Math.max(0, a.x - Ae - o.padding) }), nr(e, t.x + a.x, t.y + a.y, a.width, i.link));
|
|
3598
3600
|
},
|
|
3599
3601
|
describe: (e) => e.text,
|
|
3600
3602
|
hitTest: (e, { point: t, size: n, metrics: o }) => {
|
|
@@ -3605,7 +3607,7 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
3605
3607
|
}, Xn = (e, t, n) => {
|
|
3606
3608
|
const o = n.icon;
|
|
3607
3609
|
return { x: e / 2 - o / 2, y: t / 2 - o / 2, width: o, height: o };
|
|
3608
|
-
}, Yn = (e) => ({ type: "update", value: !e.value }),
|
|
3610
|
+
}, Yn = (e) => ({ type: "update", value: !e.value }), hr = {
|
|
3609
3611
|
draw: (e, t, n) => {
|
|
3610
3612
|
const { cellTheme: o, metrics: i } = t, a = Xn(t.width, t.height, i);
|
|
3611
3613
|
Bt(e, {
|
|
@@ -3626,12 +3628,12 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
3626
3628
|
return Xe(t, a) ? { action: Yn(e), area: a } : null;
|
|
3627
3629
|
},
|
|
3628
3630
|
keyAction: (e, t) => !e.readonly && (t === "Enter" || t === " ") ? Yn(e) : null
|
|
3629
|
-
}, At = 2, st = (e) => Math.max(1, Math.min(10, Math.round(e.max ?? 5))),
|
|
3631
|
+
}, At = 2, st = (e) => Math.max(1, Math.min(10, Math.round(e.max ?? 5))), mr = {
|
|
3630
3632
|
draw: (e, t, n) => {
|
|
3631
3633
|
const { metrics: o, cellTheme: i } = t, a = o.icon, s = t.y + (t.height - a) / 2, r = st(n);
|
|
3632
3634
|
let c = t.x + o.padding;
|
|
3633
3635
|
for (let l = 0; l < r && c + a <= t.x + t.width - o.padding + At; l++)
|
|
3634
|
-
|
|
3636
|
+
tr(e, c, s, a, n.value > l ? i.ratingOn : i.ratingOff), c += a + At;
|
|
3635
3637
|
},
|
|
3636
3638
|
describe: (e, { labels: t }) => e.value > 0 ? yo(t.rating, { value: e.value, max: st(e) }) : "",
|
|
3637
3639
|
// Click the n-th star: value n; click the current value again: clear.
|
|
@@ -3661,12 +3663,12 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
3661
3663
|
const g = { x: l, y: c, width: h, height: o.chip };
|
|
3662
3664
|
bo(e, t, g, n[m].label, n[m].colors), u.push({ x: l - t.x, y: c - t.y, width: h, height: o.chip }), l += h + _e;
|
|
3663
3665
|
}), r.more > 0 && $t(e, t, l, r.more, r.badgeWidth), u;
|
|
3664
|
-
},
|
|
3666
|
+
}, gr = {
|
|
3665
3667
|
draw: (e, t, n) => {
|
|
3666
|
-
xo(e, t, n.options.map((o) => ({ label: o.label, colors:
|
|
3668
|
+
xo(e, t, n.options.map((o) => ({ label: o.label, colors: ar(o, t.cellTheme) })));
|
|
3667
3669
|
},
|
|
3668
3670
|
describe: (e) => dt(e.options.map((t) => t.label))
|
|
3669
|
-
},
|
|
3671
|
+
}, fr = {
|
|
3670
3672
|
draw: (e, t, n) => {
|
|
3671
3673
|
const o = { fill: t.cellTheme.badgeFill, color: t.cellTheme.text }, i = xo(e, t, n.records.map((a) => ({ label: a.label, colors: o })));
|
|
3672
3674
|
Nt.set(He("link", t, n.records.map((a) => a.id)), i);
|
|
@@ -3677,20 +3679,20 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
3677
3679
|
if (!t.wasActive && !o || !e) return null;
|
|
3678
3680
|
const i = e.findIndex((a) => Xe(t.point, a));
|
|
3679
3681
|
return i < 0 ? null : { action: n(i), area: e[i] };
|
|
3680
|
-
},
|
|
3682
|
+
}, pr = (e, t, n, o, i, a, s) => {
|
|
3681
3683
|
const { cellTheme: r, theme: c } = t, l = s ? t.images.get(s) : void 0;
|
|
3682
3684
|
if (e.save(), e.beginPath(), e.arc(n + i / 2, o + i / 2, i / 2, 0, Math.PI * 2), e.closePath(), l)
|
|
3683
3685
|
e.clip(), e.drawImage(l, n, o, i, i);
|
|
3684
3686
|
else {
|
|
3685
3687
|
e.fillStyle = r.avatarFill, e.fill();
|
|
3686
|
-
const u =
|
|
3688
|
+
const u = er(a);
|
|
3687
3689
|
if (u) {
|
|
3688
3690
|
const h = Math.round(i * 0.55);
|
|
3689
3691
|
he(e, h, c.fontFamily), e.fillStyle = r.avatarText, e.textAlign = "center", e.textBaseline = "middle", e.fillText(u, n + i / 2, o + i / 2 + 0.5);
|
|
3690
3692
|
}
|
|
3691
3693
|
}
|
|
3692
3694
|
e.restore();
|
|
3693
|
-
},
|
|
3695
|
+
}, Cr = {
|
|
3694
3696
|
draw: (e, t, n) => {
|
|
3695
3697
|
const { metrics: o, theme: i } = t;
|
|
3696
3698
|
if (!n.people.length) return;
|
|
@@ -3700,14 +3702,14 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
3700
3702
|
let l = t.x + o.padding;
|
|
3701
3703
|
r.widths.forEach((u, h) => {
|
|
3702
3704
|
const m = n.people[h];
|
|
3703
|
-
|
|
3705
|
+
pr(e, t, l, c, a, m.name, m.avatarUrl), u > a + Ae && me(e, t, m.name, { x: l + a + Ae, maxWidth: u - a - Ae - (h < r.widths.length - 1 || r.more ? Re : 0) }), l += u + _e;
|
|
3704
3706
|
}), r.more > 0 && $t(e, t, l, r.more, r.badgeWidth);
|
|
3705
3707
|
},
|
|
3706
3708
|
describe: (e) => dt(e.people.map((t) => t.name))
|
|
3707
3709
|
}, jn = (e) => {
|
|
3708
3710
|
const t = /\.([\p{L}\p{N}]{1,5})$/u.exec(e);
|
|
3709
3711
|
return t ? t[1].toUpperCase() : "";
|
|
3710
|
-
}, Lt = new qt(),
|
|
3712
|
+
}, Lt = new qt(), wr = {
|
|
3711
3713
|
draw: (e, t, n) => {
|
|
3712
3714
|
const { metrics: o, cellTheme: i, theme: a } = t;
|
|
3713
3715
|
if (!n.files.length) return;
|
|
@@ -3723,14 +3725,14 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
3723
3725
|
},
|
|
3724
3726
|
describe: (e) => dt(e.files.map((t) => t.name)),
|
|
3725
3727
|
hitTest: (e, t) => Ro(Lt.get(He("attachment", Xt(t), e.files.map((n) => n.id))), t, (n) => ({ type: "open-attachment", id: e.files[n].id }), !0)
|
|
3726
|
-
}, Qn = (e) => `${Math.round(Math.max(0, Math.min(1, e)) * 100)}%`,
|
|
3728
|
+
}, Qn = (e) => `${Math.round(Math.max(0, Math.min(1, e)) * 100)}%`, vr = {
|
|
3727
3729
|
draw: (e, t, n) => {
|
|
3728
3730
|
if (n.value == null) return;
|
|
3729
3731
|
const { metrics: o, cellTheme: i } = t, a = o.icon, s = Math.max(0, Math.min(1, n.value)), r = t.x + o.padding + a / 2, c = t.y + t.height / 2, l = a / 2 - 1.25;
|
|
3730
3732
|
e.save(), e.lineWidth = 2.5, e.beginPath(), e.arc(r, c, l, 0, Math.PI * 2), e.strokeStyle = i.progressTrack, e.stroke(), s > 0 && (e.beginPath(), e.arc(r, c, l, -Math.PI / 2, -Math.PI / 2 + s * Math.PI * 2), e.strokeStyle = i.progressFill, e.lineCap = s < 1 ? "round" : "butt", e.stroke()), e.restore(), me(e, t, Qn(s), { x: t.x + o.padding + a + Ae + 2 });
|
|
3731
3733
|
},
|
|
3732
3734
|
describe: (e) => e.value == null ? "" : Qn(e.value)
|
|
3733
|
-
}, Et = 10, Dt = new qt(),
|
|
3735
|
+
}, Et = 10, Dt = new qt(), Sr = {
|
|
3734
3736
|
draw: (e, t, n) => {
|
|
3735
3737
|
const { metrics: o, cellTheme: i, theme: a } = t;
|
|
3736
3738
|
if (!n.label) return;
|
|
@@ -3745,34 +3747,34 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
3745
3747
|
return n && Xe(t.point, n) ? { action: { type: "press" }, area: n } : null;
|
|
3746
3748
|
},
|
|
3747
3749
|
keyAction: (e, t) => !e.disabled && (t === "Enter" || t === " ") ? { type: "press" } : null
|
|
3748
|
-
}, Zn = 4,
|
|
3749
|
-
text:
|
|
3750
|
-
longText:
|
|
3751
|
-
number:
|
|
3752
|
-
select:
|
|
3753
|
-
person:
|
|
3754
|
-
date:
|
|
3755
|
-
boolean:
|
|
3756
|
-
rating:
|
|
3757
|
-
url:
|
|
3758
|
-
link:
|
|
3759
|
-
attachment:
|
|
3760
|
-
progress:
|
|
3761
|
-
button:
|
|
3762
|
-
derived:
|
|
3763
|
-
},
|
|
3750
|
+
}, Zn = 4, yr = {
|
|
3751
|
+
text: sr,
|
|
3752
|
+
longText: rr,
|
|
3753
|
+
number: ur,
|
|
3754
|
+
select: gr,
|
|
3755
|
+
person: Cr,
|
|
3756
|
+
date: lr,
|
|
3757
|
+
boolean: hr,
|
|
3758
|
+
rating: mr,
|
|
3759
|
+
url: dr,
|
|
3760
|
+
link: fr,
|
|
3761
|
+
attachment: wr,
|
|
3762
|
+
progress: vr,
|
|
3763
|
+
button: Sr,
|
|
3764
|
+
derived: cr
|
|
3765
|
+
}, Nr = () => {
|
|
3764
3766
|
Nt.clear(), Lt.clear(), Dt.clear();
|
|
3765
|
-
},
|
|
3767
|
+
}, br = 6, xr = (e, t, n, o) => {
|
|
3766
3768
|
if (e.save(), n === "pending") {
|
|
3767
|
-
const i =
|
|
3769
|
+
const i = br / 2, a = t.x + t.width - 3 - i, s = t.y + 3 + i;
|
|
3768
3770
|
e.beginPath(), e.arc(a, s, i + 1, 0, Math.PI * 2), e.fillStyle = o.surface, e.fill(), e.beginPath(), e.arc(a, s, i, 0, Math.PI * 2), e.fillStyle = o.pending, e.fill();
|
|
3769
3771
|
} else
|
|
3770
3772
|
e.lineWidth = 2, e.strokeStyle = o.danger, e.strokeRect(t.x + 1, t.y + 1, t.width - 2, t.height - 2);
|
|
3771
3773
|
e.restore();
|
|
3772
|
-
}, Jn = (e, t) => !!e && !!t && e[0] === t[0] && e[1] === t[1],
|
|
3773
|
-
const t = { ...
|
|
3774
|
+
}, Jn = (e, t) => !!e && !!t && e[0] === t[0] && e[1] === t[1], Rr = (e) => {
|
|
3775
|
+
const t = { ...yr, ...e.renderers }, n = e.locale ?? "en-US";
|
|
3774
3776
|
let o = e.labels, i = e.theme ?? Ue, a = null, s = null;
|
|
3775
|
-
const r =
|
|
3777
|
+
const r = Ys(() => e.onImageLoad?.()), c = (p) => ((!s || s.rowHeight !== p.height || s.fontSize !== p.theme.fontSizeSM || s.chipFontSize > p.theme.fontSizeXS) && (s = Dn(p.height, p.theme.fontSizeSM, p.theme.fontSizeXS)), s), l = (p) => {
|
|
3776
3778
|
if (e.theme || a === p.theme) return;
|
|
3777
3779
|
a = p.theme;
|
|
3778
3780
|
const w = e.themeRoot?.();
|
|
@@ -3785,7 +3787,7 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
3785
3787
|
R && (p.save(), p.beginPath(), p.rect(w.x, w.y, w.width, w.height), p.clip(), R.draw(p, { ...w, cellTheme: i, metrics: c(w), images: r, labels: o, locale: n }, v), p.restore());
|
|
3786
3788
|
}
|
|
3787
3789
|
const y = e.getStatus?.(w.cell);
|
|
3788
|
-
y &&
|
|
3790
|
+
y && xr(p, w, y, i);
|
|
3789
3791
|
}
|
|
3790
3792
|
}, h = (p, w) => w?.type === "update" && e.isReadonly?.(p) ? null : w, m = (p) => {
|
|
3791
3793
|
const w = e.getValue(p), v = w ? t[w.kind]?.describe(w, { labels: o, locale: n }) ?? "" : "", y = e.getStatus?.(p);
|
|
@@ -3835,7 +3837,7 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
3835
3837
|
},
|
|
3836
3838
|
clearImages: () => r.clear()
|
|
3837
3839
|
};
|
|
3838
|
-
},
|
|
3840
|
+
}, kr = {
|
|
3839
3841
|
"{count} failed": "{count} failed",
|
|
3840
3842
|
"{name} is not a JPEG, PNG, WebP or GIF image": "{name} is not a JPEG, PNG, WebP or GIF image",
|
|
3841
3843
|
"{name}: {kind} images are not supported; on an iPhone, set Settings > Camera > Formats to Most Compatible": "{name}: {kind} images are not supported; on an iPhone, set Settings > Camera > Formats to Most Compatible",
|
|
@@ -4095,8 +4097,8 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
4095
4097
|
"Rating {value} of {max}": "Rating {value} of {max}",
|
|
4096
4098
|
Saving: "Saving",
|
|
4097
4099
|
"Not saved": "Not saved"
|
|
4098
|
-
},
|
|
4099
|
-
en:
|
|
4100
|
+
}, Ir = {
|
|
4101
|
+
en: kr,
|
|
4100
4102
|
"zh-TW": {
|
|
4101
4103
|
"{count} failed": "{count} 個失敗",
|
|
4102
4104
|
"{name} is not a JPEG, PNG, WebP or GIF image": "{name} 不是 JPEG、PNG、WebP 或 GIF 圖片",
|
|
@@ -6186,27 +6188,27 @@ const Xe = (e, t) => e.x >= t.x && e.x < t.x + t.width && e.y >= t.y && e.y < t.
|
|
|
6186
6188
|
"Not saved": "Non salvato"
|
|
6187
6189
|
}
|
|
6188
6190
|
};
|
|
6189
|
-
function
|
|
6190
|
-
return yo(
|
|
6191
|
+
function Pr(e, t, n = {}) {
|
|
6192
|
+
return yo(Ir[e][t], n);
|
|
6191
6193
|
}
|
|
6192
|
-
function
|
|
6193
|
-
const e =
|
|
6194
|
+
function zr() {
|
|
6195
|
+
const e = Zs(() => {
|
|
6194
6196
|
});
|
|
6195
|
-
return (t, n) =>
|
|
6197
|
+
return (t, n) => Pr(e.value, t, n);
|
|
6196
6198
|
}
|
|
6197
|
-
const
|
|
6198
|
-
const t =
|
|
6199
|
+
const Lr = (e) => {
|
|
6200
|
+
const t = zr(), n = _(() => ({
|
|
6199
6201
|
checked: t("Checked"),
|
|
6200
6202
|
unchecked: t("Not checked"),
|
|
6201
6203
|
rating: t("Rating {value} of {max}", { value: "{value}", max: "{max}" }),
|
|
6202
6204
|
saving: t("Saving"),
|
|
6203
6205
|
failed: t("Not saved"),
|
|
6204
6206
|
...e.labels
|
|
6205
|
-
})), o =
|
|
6207
|
+
})), o = Rr({ ...e, labels: n.value });
|
|
6206
6208
|
return ue(n, (i) => o.setLabels(i)), o;
|
|
6207
|
-
},
|
|
6208
|
-
function
|
|
6209
|
-
const t = e.delayMs ??
|
|
6209
|
+
}, Mr = 300;
|
|
6210
|
+
function Dr(e) {
|
|
6211
|
+
const t = e.delayMs ?? Mr, n = e.setTimer ?? ((l, u) => setTimeout(l, u)), o = e.clearTimer ?? ((l) => clearTimeout(l)), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
|
|
6210
6212
|
let s = 0;
|
|
6211
6213
|
const r = (l, u) => {
|
|
6212
6214
|
const h = i.get(l);
|
|
@@ -6243,39 +6245,39 @@ function Lr(e) {
|
|
|
6243
6245
|
}
|
|
6244
6246
|
};
|
|
6245
6247
|
}
|
|
6246
|
-
function
|
|
6248
|
+
function Wr(e) {
|
|
6247
6249
|
return e ? e.state === "saving" ? "pending" : "error" : null;
|
|
6248
6250
|
}
|
|
6249
6251
|
export {
|
|
6250
|
-
|
|
6251
|
-
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
|
|
6255
|
-
|
|
6252
|
+
Ya as GRID_CELL_TOKENS,
|
|
6253
|
+
ja as GRID_CHIP_TOKENS,
|
|
6254
|
+
Tr as GridHost,
|
|
6255
|
+
Mr as SAVING_MARK_DELAY_MS,
|
|
6256
|
+
Pa as blockCellCount,
|
|
6257
|
+
za as buildPasteProposal,
|
|
6256
6258
|
qe as cellRange,
|
|
6257
|
-
|
|
6258
|
-
|
|
6259
|
-
|
|
6260
|
-
|
|
6261
|
-
|
|
6262
|
-
|
|
6263
|
-
|
|
6259
|
+
Wr as cellStatusMark,
|
|
6260
|
+
Nr as clearGridCellRegions,
|
|
6261
|
+
Dr as createCellStatusStore,
|
|
6262
|
+
Qa as createGridCellTheme,
|
|
6263
|
+
Rr as createGridCells,
|
|
6264
|
+
Ys as createGridImageCache,
|
|
6265
|
+
yr as defaultGridCellRenderers,
|
|
6264
6266
|
Ue as defaultGridCellTheme,
|
|
6265
|
-
|
|
6266
|
-
|
|
6267
|
-
|
|
6268
|
-
|
|
6267
|
+
xr as drawGridCellStatus,
|
|
6268
|
+
Hr as fillSeries,
|
|
6269
|
+
ms as filledRange,
|
|
6270
|
+
ir as formatGridNumber,
|
|
6269
6271
|
Dn as gridCellMetrics,
|
|
6270
|
-
|
|
6271
|
-
|
|
6272
|
-
|
|
6272
|
+
Fr as parseGridNumber,
|
|
6273
|
+
wa as parseTsv,
|
|
6274
|
+
hs as planFill,
|
|
6273
6275
|
vo as readGridCellTheme,
|
|
6274
6276
|
fo as selectionBlock,
|
|
6275
|
-
|
|
6276
|
-
|
|
6277
|
-
|
|
6278
|
-
|
|
6279
|
-
|
|
6280
|
-
|
|
6277
|
+
Ia as selectionStart,
|
|
6278
|
+
ya as toHtmlTable,
|
|
6279
|
+
Ca as toTsv,
|
|
6280
|
+
Lr as useGridCells,
|
|
6281
|
+
Ra as writeClipboardAsync,
|
|
6282
|
+
ba as writeClipboardEvent
|
|
6281
6283
|
};
|