@pixerate/editor 0.79.0 → 0.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -3
- package/dist/agent/index.cjs +102 -6
- package/dist/agent/index.cjs.map +1 -1
- package/dist/agent/index.d.cts +4 -2
- package/dist/agent/index.d.ts +4 -2
- package/dist/agent/index.js +101 -5
- package/dist/agent/index.js.map +1 -1
- package/dist/{builtins-BKYlHH1s.d.ts → builtins-CV1fDj64.d.ts} +5 -1
- package/dist/{builtins-1kqwLUnb.d.cts → builtins-c4w0eAYl.d.cts} +5 -1
- package/dist/{chunk-2CJ3LPYQ.js → chunk-424H3P4I.js} +13 -295
- package/dist/chunk-424H3P4I.js.map +1 -0
- package/dist/{chunk-UN33YOXW.cjs → chunk-PA5S7KPC.cjs} +293 -2
- package/dist/chunk-PA5S7KPC.cjs.map +1 -0
- package/dist/{chunk-IB3ZHQAX.js → chunk-PTYWCFFW.js} +29 -4
- package/dist/chunk-PTYWCFFW.js.map +1 -0
- package/dist/{chunk-JQ3BB3E6.js → chunk-PXDEFEG2.js} +293 -2
- package/dist/chunk-PXDEFEG2.js.map +1 -0
- package/dist/{chunk-YU4WQE5M.cjs → chunk-TAPXWP2B.cjs} +95 -377
- package/dist/chunk-TAPXWP2B.cjs.map +1 -0
- package/dist/{chunk-HXDMZQTD.cjs → chunk-TPOT575P.cjs} +29 -4
- package/dist/{chunk-IB3ZHQAX.js.map → chunk-TPOT575P.cjs.map} +1 -1
- package/dist/commands/index.cjs +2 -2
- package/dist/commands/index.d.cts +1 -1
- package/dist/commands/index.d.ts +1 -1
- package/dist/commands/index.js +1 -1
- package/dist/generation/index.cjs +932 -791
- package/dist/generation/index.cjs.map +1 -1
- package/dist/generation/index.d.cts +266 -240
- package/dist/generation/index.d.ts +266 -240
- package/dist/generation/index.js +926 -785
- package/dist/generation/index.js.map +1 -1
- package/dist/image-editor/index.cjs +266 -2
- package/dist/image-editor/index.cjs.map +1 -1
- package/dist/image-editor/index.d.cts +12 -1
- package/dist/image-editor/index.d.ts +12 -1
- package/dist/image-editor/index.js +265 -1
- package/dist/image-editor/index.js.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +16 -16
- package/dist/spreadsheet/index.cjs +3 -3
- package/dist/spreadsheet/index.cjs.map +1 -1
- package/dist/spreadsheet/index.js +16 -16
- package/dist/video-editor/index.cjs +461 -101
- package/dist/video-editor/index.cjs.map +1 -1
- package/dist/video-editor/index.d.cts +67 -3
- package/dist/video-editor/index.d.ts +67 -3
- package/dist/video-editor/index.js +426 -66
- package/dist/video-editor/index.js.map +1 -1
- package/package.json +3 -1
- package/skills/README.md +55 -0
- package/skills/pixerate-agent-tools/SKILL.md +75 -0
- package/skills/pixerate-animation-editor/SKILL.md +155 -0
- package/skills/pixerate-animation-editor/references/commands.md +123 -0
- package/skills/pixerate-canvas/SKILL.md +230 -0
- package/skills/pixerate-chart/SKILL.md +190 -0
- package/skills/pixerate-diagram/SKILL.md +134 -0
- package/skills/pixerate-generation/SKILL.md +109 -0
- package/skills/pixerate-image-editor/SKILL.md +139 -0
- package/skills/pixerate-parameters/SKILL.md +83 -0
- package/skills/pixerate-rich-text/SKILL.md +160 -0
- package/skills/pixerate-spreadsheet/SKILL.md +146 -0
- package/skills/pixerate-vector/SKILL.md +191 -0
- package/skills/pixerate-vector/references/commands.md +138 -0
- package/skills/pixerate-video-editor/SKILL.md +173 -0
- package/dist/chunk-2CJ3LPYQ.js.map +0 -1
- package/dist/chunk-HXDMZQTD.cjs.map +0 -1
- package/dist/chunk-JQ3BB3E6.js.map +0 -1
- package/dist/chunk-UN33YOXW.cjs.map +0 -1
- package/dist/chunk-YU4WQE5M.cjs.map +0 -1
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var _chunkUN33YOXWcjs = require('./chunk-UN33YOXW.cjs');
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
|
|
@@ -20,6 +19,15 @@ var _chunkUN33YOXWcjs = require('./chunk-UN33YOXW.cjs');
|
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
|
|
22
|
+
|
|
23
|
+
var _chunkPA5S7KPCcjs = require('./chunk-PA5S7KPC.cjs');
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
23
31
|
|
|
24
32
|
|
|
25
33
|
|
|
@@ -74,7 +82,7 @@ function extractCellDependencies(node) {
|
|
|
74
82
|
deps.push({ col: curr.col, row: curr.row, ...sheet });
|
|
75
83
|
} else if (curr.type === "SpillRef") {
|
|
76
84
|
deps.push({ col: curr.col, row: curr.row, ...sheet });
|
|
77
|
-
} else if (curr.type === "Range" && curr.endRow >=
|
|
85
|
+
} else if (curr.type === "Range" && curr.endRow >= _chunkPA5S7KPCcjs.WHOLE_COLUMN_END_ROW) {
|
|
78
86
|
const startC = _chunkXP5IUZUOcjs.colNameToIndex.call(void 0, curr.startCol);
|
|
79
87
|
const endC = _chunkXP5IUZUOcjs.colNameToIndex.call(void 0, curr.endCol);
|
|
80
88
|
for (let c = Math.min(startC, endC); c <= Math.max(startC, endC); c++) {
|
|
@@ -121,13 +129,13 @@ function extractReferenceDependencies(node) {
|
|
|
121
129
|
case "Range": {
|
|
122
130
|
const startC = _chunkXP5IUZUOcjs.colNameToIndex.call(void 0, curr.startCol);
|
|
123
131
|
const endC = _chunkXP5IUZUOcjs.colNameToIndex.call(void 0, curr.endCol);
|
|
124
|
-
const whole = curr.endRow >=
|
|
132
|
+
const whole = curr.endRow >= _chunkPA5S7KPCcjs.WHOLE_COLUMN_END_ROW;
|
|
125
133
|
deps.push({
|
|
126
134
|
kind: "range",
|
|
127
135
|
startCol: _chunkXP5IUZUOcjs.indexToColName.call(void 0, Math.min(startC, endC)),
|
|
128
136
|
endCol: _chunkXP5IUZUOcjs.indexToColName.call(void 0, Math.max(startC, endC)),
|
|
129
137
|
startRow: whole ? 1 : Math.min(curr.startRow, curr.endRow),
|
|
130
|
-
endRow: whole ?
|
|
138
|
+
endRow: whole ? _chunkPA5S7KPCcjs.WHOLE_COLUMN_END_ROW : Math.max(curr.startRow, curr.endRow),
|
|
131
139
|
...sheet
|
|
132
140
|
});
|
|
133
141
|
break;
|
|
@@ -265,7 +273,7 @@ function parseKey(key) {
|
|
|
265
273
|
m = COLUMN_KEY.exec(ref);
|
|
266
274
|
if (m) {
|
|
267
275
|
const c = _chunkXP5IUZUOcjs.colNameToIndex.call(void 0, m[1]);
|
|
268
|
-
return { kind: "range", sheet, c0: c, c1: c, r0: 1, r1:
|
|
276
|
+
return { kind: "range", sheet, c0: c, c1: c, r0: 1, r1: _chunkPA5S7KPCcjs.WHOLE_COLUMN_END_ROW };
|
|
269
277
|
}
|
|
270
278
|
return { kind: "opaque" };
|
|
271
279
|
}
|
|
@@ -403,7 +411,7 @@ var DependencyGraph = (_class2 = class {constructor() { _class2.prototype.__init
|
|
|
403
411
|
}
|
|
404
412
|
let ast;
|
|
405
413
|
try {
|
|
406
|
-
ast =
|
|
414
|
+
ast = _chunkPA5S7KPCcjs.parseFormula.call(void 0, formulaStr);
|
|
407
415
|
} catch (e2) {
|
|
408
416
|
this.setCellDependencies(key, []);
|
|
409
417
|
return;
|
|
@@ -411,7 +419,7 @@ var DependencyGraph = (_class2 = class {constructor() { _class2.prototype.__init
|
|
|
411
419
|
const keys = [];
|
|
412
420
|
for (const dep of extractReferenceDependencies(ast)) {
|
|
413
421
|
keys.push(
|
|
414
|
-
dep.kind === "cell" ? `${dep.col}${dep.row}` : dep.endRow >=
|
|
422
|
+
dep.kind === "cell" ? `${dep.col}${dep.row}` : dep.endRow >= _chunkPA5S7KPCcjs.WHOLE_COLUMN_END_ROW && dep.startCol === dep.endCol ? columnDependencyKey(dep.startCol) : rangeDependencyKey(dep.startCol, dep.startRow, dep.endCol, dep.endRow)
|
|
415
423
|
);
|
|
416
424
|
}
|
|
417
425
|
this.setCellDependencies(key, keys);
|
|
@@ -782,7 +790,7 @@ function mapFormulaReferences(formula, rewrite) {
|
|
|
782
790
|
if (!formula.startsWith("=")) return formula;
|
|
783
791
|
let tokens;
|
|
784
792
|
try {
|
|
785
|
-
tokens =
|
|
793
|
+
tokens = _chunkPA5S7KPCcjs.tokenizeFormula.call(void 0, formula);
|
|
786
794
|
} catch (e3) {
|
|
787
795
|
return formula;
|
|
788
796
|
}
|
|
@@ -911,7 +919,7 @@ function formatSheetPrefix(sheet, sheetEnd) {
|
|
|
911
919
|
function tokensOf(formula) {
|
|
912
920
|
if (!formula.startsWith("=")) return null;
|
|
913
921
|
try {
|
|
914
|
-
return
|
|
922
|
+
return _chunkPA5S7KPCcjs.tokenizeFormula.call(void 0, formula);
|
|
915
923
|
} catch (e4) {
|
|
916
924
|
return null;
|
|
917
925
|
}
|
|
@@ -1041,7 +1049,7 @@ function innermostCall(stack) {
|
|
|
1041
1049
|
}
|
|
1042
1050
|
var toSuggestion = (def) => ({
|
|
1043
1051
|
name: def.name,
|
|
1044
|
-
signature:
|
|
1052
|
+
signature: _chunkPA5S7KPCcjs.getFormulaSignature.call(void 0, def),
|
|
1045
1053
|
description: def.description,
|
|
1046
1054
|
category: def.category
|
|
1047
1055
|
});
|
|
@@ -1060,21 +1068,21 @@ function getFormulaHints(input, caret = input.length, options = {}) {
|
|
|
1060
1068
|
}));
|
|
1061
1069
|
suggestions = [
|
|
1062
1070
|
...names,
|
|
1063
|
-
...
|
|
1071
|
+
..._chunkPA5S7KPCcjs.searchFormulaFunctions.call(void 0, query, { limit: void 0 }).filter((def) => def.name.startsWith(query) && !names.some((n) => n.name.toUpperCase() === def.name)).map(toSuggestion)
|
|
1064
1072
|
].slice(0, _nullishCoalesce(options.limit, () => ( 8)));
|
|
1065
1073
|
const followedByParen = input.slice(context.prefix.end).trimStart().startsWith("(");
|
|
1066
1074
|
if (followedByParen || suggestions.length === 1 && suggestions[0].name.toUpperCase() === query) suggestions = [];
|
|
1067
1075
|
}
|
|
1068
1076
|
let activeCall = null;
|
|
1069
1077
|
if (context.call) {
|
|
1070
|
-
const def =
|
|
1078
|
+
const def = _chunkPA5S7KPCcjs.getFormulaFunction.call(void 0, context.call.name);
|
|
1071
1079
|
if (def) {
|
|
1072
|
-
const specIndex =
|
|
1080
|
+
const specIndex = _chunkPA5S7KPCcjs.getFormulaArgumentSpecIndex.call(void 0, def, context.call.argIndex);
|
|
1073
1081
|
activeCall = {
|
|
1074
1082
|
name: def.name,
|
|
1075
|
-
signature:
|
|
1083
|
+
signature: _chunkPA5S7KPCcjs.getFormulaSignature.call(void 0, def),
|
|
1076
1084
|
description: def.description,
|
|
1077
|
-
parts:
|
|
1085
|
+
parts: _chunkPA5S7KPCcjs.getFormulaSignatureParts.call(void 0, def, context.call.argIndex),
|
|
1078
1086
|
argIndex: context.call.argIndex,
|
|
1079
1087
|
argument: specIndex >= 0 ? def.args[specIndex] : null
|
|
1080
1088
|
};
|
|
@@ -1287,282 +1295,6 @@ function isLambdaDefinition(definition) {
|
|
|
1287
1295
|
return /^=?\s*LAMBDA\s*\(/i.test(definition.refersTo);
|
|
1288
1296
|
}
|
|
1289
1297
|
|
|
1290
|
-
// src/spreadsheet/table.ts
|
|
1291
|
-
function normalizeRange(range) {
|
|
1292
|
-
return {
|
|
1293
|
-
startRow: Math.min(range.startRow, range.endRow),
|
|
1294
|
-
startCol: Math.min(range.startCol, range.endCol),
|
|
1295
|
-
endRow: Math.max(range.startRow, range.endRow),
|
|
1296
|
-
endCol: Math.max(range.startCol, range.endCol)
|
|
1297
|
-
};
|
|
1298
|
-
}
|
|
1299
|
-
function rangeContains(range, row, col) {
|
|
1300
|
-
const r = normalizeRange(range);
|
|
1301
|
-
return row >= r.startRow && row <= r.endRow && col >= r.startCol && col <= r.endCol;
|
|
1302
|
-
}
|
|
1303
|
-
function rangesIntersect(a, b) {
|
|
1304
|
-
const x = normalizeRange(a);
|
|
1305
|
-
const y = normalizeRange(b);
|
|
1306
|
-
return x.startRow <= y.endRow && y.startRow <= x.endRow && x.startCol <= y.endCol && y.startCol <= x.endCol;
|
|
1307
|
-
}
|
|
1308
|
-
function rangeContainsRange(outer, inner) {
|
|
1309
|
-
const o = normalizeRange(outer);
|
|
1310
|
-
const i = normalizeRange(inner);
|
|
1311
|
-
return i.startRow >= o.startRow && i.endRow <= o.endRow && i.startCol >= o.startCol && i.endCol <= o.endCol;
|
|
1312
|
-
}
|
|
1313
|
-
function isSingleCellRange(range) {
|
|
1314
|
-
const r = normalizeRange(range);
|
|
1315
|
-
return r.startRow === r.endRow && r.startCol === r.endCol;
|
|
1316
|
-
}
|
|
1317
|
-
var NUMBER_PATTERN = /^[-+]?(\d+\.?\d*|\.\d+)(e[-+]?\d+)?$/i;
|
|
1318
|
-
var ISO_DATE_PATTERN = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
1319
|
-
function isBlankValue(value) {
|
|
1320
|
-
return value === null || value === void 0 || typeof value === "string" && value.trim() === "";
|
|
1321
|
-
}
|
|
1322
|
-
function toNumber(value) {
|
|
1323
|
-
if (typeof value === "number") return Number.isFinite(value) ? value : null;
|
|
1324
|
-
if (typeof value === "string") {
|
|
1325
|
-
const trimmed = value.trim();
|
|
1326
|
-
if (NUMBER_PATTERN.test(trimmed)) return parseFloat(trimmed);
|
|
1327
|
-
}
|
|
1328
|
-
return null;
|
|
1329
|
-
}
|
|
1330
|
-
var collator = typeof Intl !== "undefined" ? new Intl.Collator(void 0, { numeric: true, sensitivity: "base" }) : null;
|
|
1331
|
-
function compareText(a, b) {
|
|
1332
|
-
return collator ? collator.compare(a, b) : a < b ? -1 : a > b ? 1 : 0;
|
|
1333
|
-
}
|
|
1334
|
-
function compareCellValues(a, b, direction = "asc") {
|
|
1335
|
-
const aBlank = isBlankValue(a);
|
|
1336
|
-
const bBlank = isBlankValue(b);
|
|
1337
|
-
if (aBlank || bBlank) return aBlank === bBlank ? 0 : aBlank ? 1 : -1;
|
|
1338
|
-
let result;
|
|
1339
|
-
if (isPlainText(a) && isPlainText(b) && !(_chunkXP5IUZUOcjs.parseIsoDate.call(void 0, a) && _chunkXP5IUZUOcjs.parseIsoDate.call(void 0, b))) {
|
|
1340
|
-
result = compareText(a, b);
|
|
1341
|
-
} else {
|
|
1342
|
-
result = _chunkXP5IUZUOcjs.sortCompareValues.call(void 0, a, b);
|
|
1343
|
-
}
|
|
1344
|
-
if (result === 0) return 0;
|
|
1345
|
-
return direction === "desc" ? -Math.sign(result) : Math.sign(result);
|
|
1346
|
-
}
|
|
1347
|
-
var isPlainText = (value) => typeof value === "string" && !_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value);
|
|
1348
|
-
function filterValue(value) {
|
|
1349
|
-
if (isBlankValue(value) || _chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) return null;
|
|
1350
|
-
if (typeof value === "number") return Number.isFinite(value) ? { value, kind: "number" } : null;
|
|
1351
|
-
if (typeof value === "boolean") return { value, kind: "boolean" };
|
|
1352
|
-
const num = _chunkXP5IUZUOcjs.numericValue.call(void 0, value);
|
|
1353
|
-
if (num !== null) return { value: num, kind: "number" };
|
|
1354
|
-
const text = String(value);
|
|
1355
|
-
return { value: text, kind: _chunkXP5IUZUOcjs.parseIsoDate.call(void 0, text) ? "number" : "text" };
|
|
1356
|
-
}
|
|
1357
|
-
function filterOperand(operand) {
|
|
1358
|
-
if (typeof operand !== "string") return filterValue(operand);
|
|
1359
|
-
if (operand.trim() === "") return null;
|
|
1360
|
-
const parsed = _chunkXP5IUZUOcjs.parseCellInput.call(void 0, operand.trim());
|
|
1361
|
-
if (parsed.type === "number" || parsed.type === "date" || parsed.type === "boolean") return filterValue(parsed.value);
|
|
1362
|
-
return { value: operand, kind: "text" };
|
|
1363
|
-
}
|
|
1364
|
-
function compareForFilter(value, operand) {
|
|
1365
|
-
const a = filterValue(value);
|
|
1366
|
-
const b = filterOperand(operand);
|
|
1367
|
-
if (!a || !b || a.kind !== b.kind) return null;
|
|
1368
|
-
return _chunkXP5IUZUOcjs.compareValues.call(void 0, a.value, b.value);
|
|
1369
|
-
}
|
|
1370
|
-
function looselyEquals(value, operand) {
|
|
1371
|
-
const c = compareForFilter(value, operand);
|
|
1372
|
-
if (c !== null) return c === 0;
|
|
1373
|
-
return String(_nullishCoalesce(value, () => ( ""))).trim().toLowerCase() === String(_nullishCoalesce(operand, () => ( ""))).trim().toLowerCase();
|
|
1374
|
-
}
|
|
1375
|
-
function matchesFilterRule(value, rule) {
|
|
1376
|
-
const text = String(_nullishCoalesce(value, () => ( ""))).toLowerCase();
|
|
1377
|
-
switch (rule.operator) {
|
|
1378
|
-
case "equals":
|
|
1379
|
-
return looselyEquals(value, rule.value);
|
|
1380
|
-
case "notEquals":
|
|
1381
|
-
return !looselyEquals(value, rule.value);
|
|
1382
|
-
case "contains":
|
|
1383
|
-
return text.includes(String(_nullishCoalesce(rule.value, () => ( ""))).toLowerCase());
|
|
1384
|
-
case "notContains":
|
|
1385
|
-
return !text.includes(String(_nullishCoalesce(rule.value, () => ( ""))).toLowerCase());
|
|
1386
|
-
case "greaterThan": {
|
|
1387
|
-
const c = compareForFilter(value, rule.value);
|
|
1388
|
-
return c !== null && c > 0;
|
|
1389
|
-
}
|
|
1390
|
-
case "greaterThanOrEqual": {
|
|
1391
|
-
const c = compareForFilter(value, rule.value);
|
|
1392
|
-
return c !== null && c >= 0;
|
|
1393
|
-
}
|
|
1394
|
-
case "lessThan": {
|
|
1395
|
-
const c = compareForFilter(value, rule.value);
|
|
1396
|
-
return c !== null && c < 0;
|
|
1397
|
-
}
|
|
1398
|
-
case "lessThanOrEqual": {
|
|
1399
|
-
const c = compareForFilter(value, rule.value);
|
|
1400
|
-
return c !== null && c <= 0;
|
|
1401
|
-
}
|
|
1402
|
-
case "between": {
|
|
1403
|
-
const lo = compareForFilter(value, rule.value);
|
|
1404
|
-
const hi = compareForFilter(value, rule.value2);
|
|
1405
|
-
return lo !== null && hi !== null && lo >= 0 && hi <= 0;
|
|
1406
|
-
}
|
|
1407
|
-
case "isBlank":
|
|
1408
|
-
return isBlankValue(value);
|
|
1409
|
-
case "isNotBlank":
|
|
1410
|
-
return !isBlankValue(value);
|
|
1411
|
-
case "oneOf":
|
|
1412
|
-
return (_nullishCoalesce(rule.values, () => ( []))).some((candidate) => String(candidate) === String(_nullishCoalesce(value, () => ( ""))));
|
|
1413
|
-
default:
|
|
1414
|
-
return true;
|
|
1415
|
-
}
|
|
1416
|
-
}
|
|
1417
|
-
function aggregateValues(values, aggregate) {
|
|
1418
|
-
if (aggregate === "count") return values.filter((v) => !isBlankValue(v)).length;
|
|
1419
|
-
const numbers = [];
|
|
1420
|
-
for (const v of values) {
|
|
1421
|
-
const n = toNumber(v);
|
|
1422
|
-
if (n !== null) numbers.push(n);
|
|
1423
|
-
}
|
|
1424
|
-
if (numbers.length === 0) return aggregate === "sum" ? 0 : null;
|
|
1425
|
-
switch (aggregate) {
|
|
1426
|
-
case "sum":
|
|
1427
|
-
return roundFloat(numbers.reduce((s, n) => s + n, 0));
|
|
1428
|
-
case "average":
|
|
1429
|
-
return roundFloat(numbers.reduce((s, n) => s + n, 0) / numbers.length);
|
|
1430
|
-
case "min":
|
|
1431
|
-
return numbers.reduce((m, n) => n < m ? n : m, numbers[0]);
|
|
1432
|
-
case "max":
|
|
1433
|
-
return numbers.reduce((m, n) => n > m ? n : m, numbers[0]);
|
|
1434
|
-
default:
|
|
1435
|
-
return null;
|
|
1436
|
-
}
|
|
1437
|
-
}
|
|
1438
|
-
function roundFloat(value) {
|
|
1439
|
-
return Number.isInteger(value) ? value : parseFloat(value.toPrecision(12));
|
|
1440
|
-
}
|
|
1441
|
-
var DAY_MS = 864e5;
|
|
1442
|
-
var TRAILING_NUMBER = /^(.*?)(\d+)(\D*)$/;
|
|
1443
|
-
function classifyFillValue(raw) {
|
|
1444
|
-
if (raw.trim() === "") return { kind: "blank" };
|
|
1445
|
-
const num = toNumber(raw);
|
|
1446
|
-
if (num !== null) return { kind: "number", value: num };
|
|
1447
|
-
const typed = _chunkXP5IUZUOcjs.parseCellInput.call(void 0, raw);
|
|
1448
|
-
const date = ISO_DATE_PATTERN.exec(typed.type === "date" ? String(typed.value) : raw.trim());
|
|
1449
|
-
if (date) {
|
|
1450
|
-
const [year, month, day] = [Number(date[1]), Number(date[2]), Number(date[3])];
|
|
1451
|
-
const time = Date.UTC(year, month - 1, day);
|
|
1452
|
-
const check = new Date(time);
|
|
1453
|
-
if (check.getUTCMonth() === month - 1 && check.getUTCDate() === day) {
|
|
1454
|
-
return { kind: "date", time, year, month, day };
|
|
1455
|
-
}
|
|
1456
|
-
}
|
|
1457
|
-
const textNumber = TRAILING_NUMBER.exec(raw);
|
|
1458
|
-
if (textNumber && textNumber[1] !== "") {
|
|
1459
|
-
return {
|
|
1460
|
-
kind: "textNumber",
|
|
1461
|
-
prefix: textNumber[1],
|
|
1462
|
-
value: parseInt(textNumber[2], 10),
|
|
1463
|
-
width: textNumber[2].length,
|
|
1464
|
-
suffix: textNumber[3]
|
|
1465
|
-
};
|
|
1466
|
-
}
|
|
1467
|
-
return { kind: "text", text: raw };
|
|
1468
|
-
}
|
|
1469
|
-
var pad = (n, width) => String(Math.abs(n)).padStart(width, "0");
|
|
1470
|
-
function formatDate(time) {
|
|
1471
|
-
const d = new Date(time);
|
|
1472
|
-
return `${d.getUTCFullYear()}-${pad(d.getUTCMonth() + 1, 2)}-${pad(d.getUTCDate(), 2)}`;
|
|
1473
|
-
}
|
|
1474
|
-
function constantStep(values) {
|
|
1475
|
-
const step = values[1] - values[0];
|
|
1476
|
-
for (let i = 2; i < values.length; i++) {
|
|
1477
|
-
if (Math.abs(values[i] - values[i - 1] - step) > 1e-9) return null;
|
|
1478
|
-
}
|
|
1479
|
-
return step;
|
|
1480
|
-
}
|
|
1481
|
-
function linearTrend(values, x) {
|
|
1482
|
-
const n = values.length;
|
|
1483
|
-
const meanX = (n - 1) / 2;
|
|
1484
|
-
const meanY = values.reduce((s, v) => s + v, 0) / n;
|
|
1485
|
-
let num = 0;
|
|
1486
|
-
let den = 0;
|
|
1487
|
-
values.forEach((v, i) => {
|
|
1488
|
-
num += (i - meanX) * (v - meanY);
|
|
1489
|
-
den += (i - meanX) ** 2;
|
|
1490
|
-
});
|
|
1491
|
-
const slope = den === 0 ? 0 : num / den;
|
|
1492
|
-
return meanY + slope * (x - meanX);
|
|
1493
|
-
}
|
|
1494
|
-
function fillSeries(source, count) {
|
|
1495
|
-
if (count <= 0) return [];
|
|
1496
|
-
if (source.length === 0) return Array(count).fill("");
|
|
1497
|
-
const repeat = () => Array.from({ length: count }, (_, i) => source[i % source.length]);
|
|
1498
|
-
const parsed = source.map(classifyFillValue);
|
|
1499
|
-
const kind = parsed[0].kind;
|
|
1500
|
-
if (!parsed.every((p) => p.kind === kind)) return repeat();
|
|
1501
|
-
const n = source.length;
|
|
1502
|
-
if (kind === "number") {
|
|
1503
|
-
if (n === 1) return repeat();
|
|
1504
|
-
const values = parsed.map((p) => p.value);
|
|
1505
|
-
return Array.from({ length: count }, (_, i) => String(roundFloat(linearTrend(values, n + i))));
|
|
1506
|
-
}
|
|
1507
|
-
if (kind === "date") {
|
|
1508
|
-
const dates = parsed;
|
|
1509
|
-
if (n === 1) {
|
|
1510
|
-
return Array.from({ length: count }, (_, i) => formatDate(dates[0].time + (i + 1) * DAY_MS));
|
|
1511
|
-
}
|
|
1512
|
-
const monthIndex = dates.map((d) => d.year * 12 + (d.month - 1));
|
|
1513
|
-
const monthStep = constantStep(monthIndex);
|
|
1514
|
-
if (monthStep !== null && monthStep !== 0 && dates.every((d) => d.day === dates[0].day)) {
|
|
1515
|
-
const last = monthIndex[n - 1];
|
|
1516
|
-
return Array.from({ length: count }, (_, i) => {
|
|
1517
|
-
const m = last + monthStep * (i + 1);
|
|
1518
|
-
const year = Math.floor(m / 12);
|
|
1519
|
-
const month = m - year * 12;
|
|
1520
|
-
const daysInMonth = new Date(Date.UTC(year, month + 1, 0)).getUTCDate();
|
|
1521
|
-
return formatDate(Date.UTC(year, month, Math.min(dates[0].day, daysInMonth)));
|
|
1522
|
-
});
|
|
1523
|
-
}
|
|
1524
|
-
const dayStep = constantStep(dates.map((d) => Math.round(d.time / DAY_MS)));
|
|
1525
|
-
if (dayStep === null) return repeat();
|
|
1526
|
-
const lastTime = dates[n - 1].time;
|
|
1527
|
-
return Array.from({ length: count }, (_, i) => formatDate(lastTime + dayStep * (i + 1) * DAY_MS));
|
|
1528
|
-
}
|
|
1529
|
-
if (kind === "textNumber") {
|
|
1530
|
-
const items = parsed;
|
|
1531
|
-
const { prefix, suffix } = items[0];
|
|
1532
|
-
if (!items.every((t) => t.prefix === prefix && t.suffix === suffix)) return repeat();
|
|
1533
|
-
const step = n === 1 ? 1 : constantStep(items.map((t) => t.value));
|
|
1534
|
-
if (step === null) return repeat();
|
|
1535
|
-
const last = items[n - 1];
|
|
1536
|
-
return Array.from({ length: count }, (_, i) => {
|
|
1537
|
-
const value = last.value + step * (i + 1);
|
|
1538
|
-
const digits = value < 0 ? `-${pad(value, last.width)}` : pad(value, last.width);
|
|
1539
|
-
return `${prefix}${digits}${suffix}`;
|
|
1540
|
-
});
|
|
1541
|
-
}
|
|
1542
|
-
return repeat();
|
|
1543
|
-
}
|
|
1544
|
-
function computeFillTarget(source, pointer) {
|
|
1545
|
-
const s = normalizeRange(source);
|
|
1546
|
-
const rowOverflow = pointer.row > s.endRow ? pointer.row - s.endRow : pointer.row < s.startRow ? s.startRow - pointer.row : 0;
|
|
1547
|
-
const colOverflow = pointer.col > s.endCol ? pointer.col - s.endCol : pointer.col < s.startCol ? s.startCol - pointer.col : 0;
|
|
1548
|
-
if (rowOverflow === 0 && colOverflow === 0) return null;
|
|
1549
|
-
if (rowOverflow >= colOverflow) {
|
|
1550
|
-
return pointer.row > s.endRow ? { ...s, endRow: pointer.row } : { ...s, startRow: pointer.row };
|
|
1551
|
-
}
|
|
1552
|
-
return pointer.col > s.endCol ? { ...s, endCol: pointer.col } : { ...s, startCol: pointer.col };
|
|
1553
|
-
}
|
|
1554
|
-
function getFillDirection(source, target) {
|
|
1555
|
-
const s = normalizeRange(source);
|
|
1556
|
-
const t = normalizeRange(target);
|
|
1557
|
-
const sameCols = s.startCol === t.startCol && s.endCol === t.endCol;
|
|
1558
|
-
const sameRows = s.startRow === t.startRow && s.endRow === t.endRow;
|
|
1559
|
-
if (sameCols && t.startRow === s.startRow && t.endRow > s.endRow) return "down";
|
|
1560
|
-
if (sameCols && t.endRow === s.endRow && t.startRow < s.startRow) return "up";
|
|
1561
|
-
if (sameRows && t.startCol === s.startCol && t.endCol > s.endCol) return "right";
|
|
1562
|
-
if (sameRows && t.endCol === s.endCol && t.startCol < s.startCol) return "left";
|
|
1563
|
-
return null;
|
|
1564
|
-
}
|
|
1565
|
-
|
|
1566
1298
|
// src/spreadsheet/clipboard.ts
|
|
1567
1299
|
var SPREADSHEET_CLIPBOARD_MIME = "application/x.pixerate.spreadsheet+json";
|
|
1568
1300
|
var displayText = (value) => value === null || value === void 0 ? "" : String(value);
|
|
@@ -1700,7 +1432,7 @@ function rebaseClipboardRows(rows, origin, target) {
|
|
|
1700
1432
|
|
|
1701
1433
|
// src/spreadsheet/rule-ranges.ts
|
|
1702
1434
|
function adjustRangeForStructuralChange(range, change) {
|
|
1703
|
-
const r = normalizeRange(range);
|
|
1435
|
+
const r = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, range);
|
|
1704
1436
|
const startKey = change.axis === "row" ? "startRow" : "startCol";
|
|
1705
1437
|
const endKey = change.axis === "row" ? "endRow" : "endCol";
|
|
1706
1438
|
if (change.type === "insert") {
|
|
@@ -1722,9 +1454,9 @@ function adjustRangesForStructuralChange(ranges, change) {
|
|
|
1722
1454
|
return out;
|
|
1723
1455
|
}
|
|
1724
1456
|
function subtractRange(range, cut) {
|
|
1725
|
-
const r = normalizeRange(range);
|
|
1726
|
-
const c = normalizeRange(cut);
|
|
1727
|
-
if (!rangesIntersect(r, c)) return [r];
|
|
1457
|
+
const r = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, range);
|
|
1458
|
+
const c = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, cut);
|
|
1459
|
+
if (!_chunkPA5S7KPCcjs.rangesIntersect.call(void 0, r, c)) return [r];
|
|
1728
1460
|
const out = [];
|
|
1729
1461
|
const top = Math.max(r.startRow, c.startRow);
|
|
1730
1462
|
const bottom = Math.min(r.endRow, c.endRow);
|
|
@@ -1764,7 +1496,7 @@ function shiftRuleFormula(formula, change) {
|
|
|
1764
1496
|
function forEachRangeCell(ranges, rowCount, colCount, fn) {
|
|
1765
1497
|
const seen = ranges.length > 1 ? /* @__PURE__ */ new Set() : null;
|
|
1766
1498
|
for (const range of ranges) {
|
|
1767
|
-
const r = normalizeRange(range);
|
|
1499
|
+
const r = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, range);
|
|
1768
1500
|
const endRow = Math.min(r.endRow, rowCount - 1);
|
|
1769
1501
|
const endCol = Math.min(r.endCol, colCount - 1);
|
|
1770
1502
|
for (let row = Math.max(0, r.startRow); row <= endRow; row++) {
|
|
@@ -1781,7 +1513,7 @@ function forEachRangeCell(ranges, rowCount, colCount, fn) {
|
|
|
1781
1513
|
}
|
|
1782
1514
|
function formatRuleRanges(ranges) {
|
|
1783
1515
|
return ranges.map((range) => {
|
|
1784
|
-
const r = normalizeRange(range);
|
|
1516
|
+
const r = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, range);
|
|
1785
1517
|
const start = `${_chunkXP5IUZUOcjs.indexToColName.call(void 0, r.startCol)}${r.startRow + 1}`;
|
|
1786
1518
|
const end = `${_chunkXP5IUZUOcjs.indexToColName.call(void 0, r.endCol)}${r.endRow + 1}`;
|
|
1787
1519
|
return start === end ? start : `${start}:${end}`;
|
|
@@ -1800,14 +1532,14 @@ function parseRuleRanges(text) {
|
|
|
1800
1532
|
const endRow = m[4] ? Number(m[4]) - 1 : startRow;
|
|
1801
1533
|
const endCol = m[3] ? _chunkXP5IUZUOcjs.colNameToIndex.call(void 0, m[3]) : startCol;
|
|
1802
1534
|
if (startRow < 0 || endRow < 0 || startCol < 0 || endCol < 0) return null;
|
|
1803
|
-
out.push(normalizeRange({ startRow, startCol, endRow, endCol }));
|
|
1535
|
+
out.push(_chunkPA5S7KPCcjs.normalizeRange.call(void 0, { startRow, startCol, endRow, endCol }));
|
|
1804
1536
|
}
|
|
1805
1537
|
return out;
|
|
1806
1538
|
}
|
|
1807
1539
|
function mergeRuleRanges(ranges) {
|
|
1808
1540
|
const join = (list, across) => {
|
|
1809
1541
|
const [lo, hi, fixedLo, fixedHi] = across === "row" ? ["startRow", "endRow", "startCol", "endCol"] : ["startCol", "endCol", "startRow", "endRow"];
|
|
1810
|
-
const sorted = list.map(normalizeRange).sort((a, b) => a[fixedLo] - b[fixedLo] || a[fixedHi] - b[fixedHi] || a[lo] - b[lo]);
|
|
1542
|
+
const sorted = list.map(_chunkPA5S7KPCcjs.normalizeRange).sort((a, b) => a[fixedLo] - b[fixedLo] || a[fixedHi] - b[fixedHi] || a[lo] - b[lo]);
|
|
1811
1543
|
const out = [];
|
|
1812
1544
|
for (const r of sorted) {
|
|
1813
1545
|
const last = out[out.length - 1];
|
|
@@ -1822,12 +1554,12 @@ function mergeRuleRanges(ranges) {
|
|
|
1822
1554
|
return join(join(ranges, "row"), "col").sort((a, b) => a.startRow - b.startRow || a.startCol - b.startCol);
|
|
1823
1555
|
}
|
|
1824
1556
|
function sortRuleRanges(ranges, block, newRowOf) {
|
|
1825
|
-
const b = normalizeRange(block);
|
|
1557
|
+
const b = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, block);
|
|
1826
1558
|
let changed = false;
|
|
1827
1559
|
const pieces = [];
|
|
1828
1560
|
const moved = /* @__PURE__ */ new Map();
|
|
1829
1561
|
for (const range of ranges) {
|
|
1830
|
-
const r = normalizeRange(range);
|
|
1562
|
+
const r = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, range);
|
|
1831
1563
|
const top = Math.max(r.startRow, b.startRow);
|
|
1832
1564
|
const bottom = Math.min(r.endRow, b.endRow);
|
|
1833
1565
|
const left = Math.max(r.startCol, b.startCol);
|
|
@@ -1856,13 +1588,13 @@ function sortRuleRanges(ranges, block, newRowOf) {
|
|
|
1856
1588
|
return mergeRuleRanges(pieces);
|
|
1857
1589
|
}
|
|
1858
1590
|
function transposeRuleRanges(ranges, block, target) {
|
|
1859
|
-
const s = normalizeRange(block);
|
|
1860
|
-
const t = normalizeRange(target);
|
|
1861
|
-
if (!ranges.some((r) => rangesIntersect(r, s) || rangesIntersect(r, t))) return null;
|
|
1591
|
+
const s = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, block);
|
|
1592
|
+
const t = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, target);
|
|
1593
|
+
if (!ranges.some((r) => _chunkPA5S7KPCcjs.rangesIntersect.call(void 0, r, s) || _chunkPA5S7KPCcjs.rangesIntersect.call(void 0, r, t))) return null;
|
|
1862
1594
|
const inside = [];
|
|
1863
1595
|
for (const range of ranges) {
|
|
1864
|
-
const r = normalizeRange(range);
|
|
1865
|
-
if (!rangesIntersect(r, s)) continue;
|
|
1596
|
+
const r = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, range);
|
|
1597
|
+
if (!_chunkPA5S7KPCcjs.rangesIntersect.call(void 0, r, s)) continue;
|
|
1866
1598
|
const top = Math.max(r.startRow, s.startRow);
|
|
1867
1599
|
const bottom = Math.min(r.endRow, s.endRow);
|
|
1868
1600
|
const left = Math.max(r.startCol, s.startCol);
|
|
@@ -1885,7 +1617,7 @@ function reanchorRuleFormula(formula, from, to) {
|
|
|
1885
1617
|
}
|
|
1886
1618
|
function transposeRuleFormula(formula, anchor, block) {
|
|
1887
1619
|
const hadEquals = formula.trimStart().startsWith("=");
|
|
1888
|
-
const out = transposeFormulaReferences(withEquals(formula), anchor, normalizeRange(block));
|
|
1620
|
+
const out = transposeFormulaReferences(withEquals(formula), anchor, _chunkPA5S7KPCcjs.normalizeRange.call(void 0, block));
|
|
1889
1621
|
return hadEquals ? out : out.slice(1);
|
|
1890
1622
|
}
|
|
1891
1623
|
var isFormulaText = (text) => text !== void 0 && text.trimStart().startsWith("=");
|
|
@@ -1934,7 +1666,7 @@ function sortRules(rules, block, newRowOf, mapFormulas) {
|
|
|
1934
1666
|
return changed ? out : rules;
|
|
1935
1667
|
}
|
|
1936
1668
|
function transposeRules(rules, block, target, mapFormulas, newId) {
|
|
1937
|
-
const s = normalizeRange(block);
|
|
1669
|
+
const s = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, block);
|
|
1938
1670
|
let changed = false;
|
|
1939
1671
|
const out = [];
|
|
1940
1672
|
for (const rule of rules) {
|
|
@@ -1955,7 +1687,7 @@ function transposeRules(rules, block, target, mapFormulas, newId) {
|
|
|
1955
1687
|
const transposed = () => {
|
|
1956
1688
|
const next = { ...rule, ranges: inside };
|
|
1957
1689
|
if (!withFormulas) return next;
|
|
1958
|
-
const first2 = rule.ranges.map(normalizeRange).find((r) => rangesIntersect(r, s));
|
|
1690
|
+
const first2 = rule.ranges.map(_chunkPA5S7KPCcjs.normalizeRange).find((r) => _chunkPA5S7KPCcjs.rangesIntersect.call(void 0, r, s));
|
|
1959
1691
|
const at = { row: Math.max(first2.startRow, s.startRow), col: Math.max(first2.startCol, s.startCol) };
|
|
1960
1692
|
const atT = { row: s.startRow + (at.col - s.startCol), col: s.startCol + (at.row - s.startRow) };
|
|
1961
1693
|
const to = ruleAnchor(inside);
|
|
@@ -2872,7 +2604,7 @@ function rowPassesFilters(doc, rowIndex, getValue) {
|
|
|
2872
2604
|
return filter.rules.every((rule) => {
|
|
2873
2605
|
const colIndex = doc.columns.findIndex((c) => c.id === rule.colId);
|
|
2874
2606
|
if (colIndex === -1) return true;
|
|
2875
|
-
return matchesFilterRule(getValue(rowIndex, colIndex), rule);
|
|
2607
|
+
return _chunkPA5S7KPCcjs.matchesFilterRule.call(void 0, getValue(rowIndex, colIndex), rule);
|
|
2876
2608
|
});
|
|
2877
2609
|
}
|
|
2878
2610
|
function computeRowGroups(doc, getValue) {
|
|
@@ -2885,18 +2617,18 @@ function computeRowGroups(doc, getValue) {
|
|
|
2885
2617
|
for (let r = headerRows; r < doc.rows.length - footerRows; r++) {
|
|
2886
2618
|
if (doc.rows[r].hidden || !rowPassesFilters(doc, r, getValue)) continue;
|
|
2887
2619
|
const value = getValue(r, groupCol);
|
|
2888
|
-
const key = isBlankValue(value) ? "" : String(value).trim();
|
|
2620
|
+
const key = _chunkPA5S7KPCcjs.isBlankValue.call(void 0, value) ? "" : String(value).trim();
|
|
2889
2621
|
if (!byKey.has(key)) byKey.set(key, []);
|
|
2890
2622
|
byKey.get(key).push(r);
|
|
2891
2623
|
}
|
|
2892
2624
|
const collapsed = new Set(grouping.collapsed);
|
|
2893
|
-
return Array.from(byKey.keys()).sort((a, b) => compareCellValues(a, b)).map((key) => {
|
|
2625
|
+
return Array.from(byKey.keys()).sort((a, b) => _chunkPA5S7KPCcjs.compareCellValues.call(void 0, a, b)).map((key) => {
|
|
2894
2626
|
const rowIndices = byKey.get(key);
|
|
2895
2627
|
const summaries = {};
|
|
2896
2628
|
for (const summary of grouping.summaries) {
|
|
2897
2629
|
const colIndex = doc.columns.findIndex((c) => c.id === summary.colId);
|
|
2898
2630
|
if (colIndex === -1) continue;
|
|
2899
|
-
summaries[summary.colId] = aggregateValues(
|
|
2631
|
+
summaries[summary.colId] = _chunkPA5S7KPCcjs.aggregateValues.call(void 0,
|
|
2900
2632
|
rowIndices.map((r) => getValue(r, colIndex)),
|
|
2901
2633
|
summary.aggregate
|
|
2902
2634
|
);
|
|
@@ -2973,7 +2705,7 @@ function buildSpreadsheetView(doc, getValue) {
|
|
|
2973
2705
|
return { first: visible[0], run };
|
|
2974
2706
|
};
|
|
2975
2707
|
for (const raw of _nullishCoalesce(_optionalChain([doc, 'access', _95 => _95.table, 'optionalAccess', _96 => _96.merges]), () => ( []))) {
|
|
2976
|
-
const merge = normalizeRange(raw);
|
|
2708
|
+
const merge = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, raw);
|
|
2977
2709
|
const rowIdx = [];
|
|
2978
2710
|
const colIdx = [];
|
|
2979
2711
|
for (let r = merge.startRow; r <= merge.endRow; r++) rowIdx.push(r);
|
|
@@ -3189,7 +2921,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
3189
2921
|
if (options.dataSources) {
|
|
3190
2922
|
options.dataSources.forEach((ds) => this.binder.register(ds));
|
|
3191
2923
|
}
|
|
3192
|
-
this.evaluator = new (0,
|
|
2924
|
+
this.evaluator = new (0, _chunkPA5S7KPCcjs.FormulaEvaluator)({
|
|
3193
2925
|
resolveCell: (colStr, rowNum, sheet) => this.onSheet(sheet, () => this.resolveCellByCoord(colStr, rowNum)),
|
|
3194
2926
|
resolveRange: (sCol, sRow, eCol, eRow, sheet, options2) => this.onSheet(sheet, () => this.resolveRangeByCoords(sCol, sRow, eCol, eRow, options2)),
|
|
3195
2927
|
resolveProperty: (prop) => this.resolveCurrentRowProperty(prop),
|
|
@@ -3682,7 +3414,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
3682
3414
|
parseCached(formula) {
|
|
3683
3415
|
let ast = this.astCache.get(formula);
|
|
3684
3416
|
if (!ast) {
|
|
3685
|
-
ast =
|
|
3417
|
+
ast = _chunkPA5S7KPCcjs.parseFormula.call(void 0, formula);
|
|
3686
3418
|
if (this.astCache.size >= AST_CACHE_SIZE) this.astCache.clear();
|
|
3687
3419
|
this.astCache.set(formula, ast);
|
|
3688
3420
|
}
|
|
@@ -3715,7 +3447,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
3715
3447
|
}
|
|
3716
3448
|
for (const used of extractNameDependencies(ast)) {
|
|
3717
3449
|
if (used.call) {
|
|
3718
|
-
const fn =
|
|
3450
|
+
const fn = _chunkPA5S7KPCcjs.getFormulaFunction.call(void 0, used.name);
|
|
3719
3451
|
if (fn) {
|
|
3720
3452
|
if (fn.volatile) volatile.found = true;
|
|
3721
3453
|
continue;
|
|
@@ -3731,7 +3463,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
3731
3463
|
if (seenNames.has(seenKey)) continue;
|
|
3732
3464
|
seenNames.add(seenKey);
|
|
3733
3465
|
try {
|
|
3734
|
-
this.collectDependencies(
|
|
3466
|
+
this.collectDependencies(_chunkPA5S7KPCcjs.parseFormula.call(void 0, def.refersTo), nameHome, out, seenNames, volatile);
|
|
3735
3467
|
} catch (e11) {
|
|
3736
3468
|
}
|
|
3737
3469
|
}
|
|
@@ -3945,7 +3677,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
3945
3677
|
const blockers = [];
|
|
3946
3678
|
if (area.endRow >= this.document.rows.length || area.endCol >= this.document.columns.length) {
|
|
3947
3679
|
reason = `The ${rows}\xD7${cols} result needs ${label}, which extends past the edge of the sheet.`;
|
|
3948
|
-
} else if (this.getMerges().some((m) => rangesIntersect(m, area))) {
|
|
3680
|
+
} else if (this.getMerges().some((m) => _chunkPA5S7KPCcjs.rangesIntersect.call(void 0, m, area))) {
|
|
3949
3681
|
reason = `The result can't spill into merged cells (it needs ${label}).`;
|
|
3950
3682
|
} else {
|
|
3951
3683
|
for (let c = area.startCol; c <= area.endCol; c++) {
|
|
@@ -3991,7 +3723,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
3991
3723
|
};
|
|
3992
3724
|
if (_chunkXP5IUZUOcjs.isFormulaError.call(void 0, value)) {
|
|
3993
3725
|
display.error = value;
|
|
3994
|
-
display.errorMessage =
|
|
3726
|
+
display.errorMessage = _chunkPA5S7KPCcjs.describeFormulaError.call(void 0, value);
|
|
3995
3727
|
}
|
|
3996
3728
|
this.spillCells.set(spillCellId(rowObj.id, column.id), display);
|
|
3997
3729
|
if (this.spilledBy.get(key) !== anchor) {
|
|
@@ -4073,7 +3805,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
4073
3805
|
endRow: record.row + record.rows - 1,
|
|
4074
3806
|
endCol: record.col + record.cols - 1
|
|
4075
3807
|
};
|
|
4076
|
-
if (rangesIntersect(area, range)) return true;
|
|
3808
|
+
if (_chunkPA5S7KPCcjs.rangesIntersect.call(void 0, area, range)) return true;
|
|
4077
3809
|
}
|
|
4078
3810
|
return false;
|
|
4079
3811
|
}
|
|
@@ -4096,7 +3828,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
4096
3828
|
const minC = Math.min(startC, endC);
|
|
4097
3829
|
const maxC = Math.max(startC, endC);
|
|
4098
3830
|
const minR = Math.min(sRow, eRow);
|
|
4099
|
-
const maxR = Math.min(Math.max(sRow, eRow),
|
|
3831
|
+
const maxR = Math.min(Math.max(sRow, eRow), _chunkPA5S7KPCcjs.WHOLE_COLUMN_END_ROW, this.document.rows.length);
|
|
4100
3832
|
const skipBlanks = _optionalChain([options, 'optionalAccess', _177 => _177.skipBlanks]) === true;
|
|
4101
3833
|
const cacheable = this.rangeCache !== null && !this.valueOverride && (maxC - minC + 1) * (maxR - minR + 1) >= RANGE_CACHE_MIN_CELLS;
|
|
4102
3834
|
const cacheKey = cacheable ? `${this.document.id}|${minC}|${maxC}|${minR}|${maxR}|${skipBlanks ? 1 : 0}` : "";
|
|
@@ -4565,7 +4297,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
4565
4297
|
}
|
|
4566
4298
|
/** The cells of `range` (or the whole sheet), row by row. */
|
|
4567
4299
|
readMatrix(range) {
|
|
4568
|
-
const r = range ? normalizeRange(range) : null;
|
|
4300
|
+
const r = range ? _chunkPA5S7KPCcjs.normalizeRange.call(void 0, range) : null;
|
|
4569
4301
|
const rows = r ? this.document.rows.slice(r.startRow, r.endRow + 1) : this.document.rows;
|
|
4570
4302
|
const columns = r ? this.document.columns.slice(r.startCol, r.endCol + 1) : this.document.columns;
|
|
4571
4303
|
return rows.map((row) => columns.map((col) => this.getCell(row.id, col.id)));
|
|
@@ -4577,7 +4309,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
4577
4309
|
* with `clipboardData.setData(type, data)` in a `copy` event.
|
|
4578
4310
|
*/
|
|
4579
4311
|
copyToClipboardData(range = this.selectedRange) {
|
|
4580
|
-
const r = range ? normalizeRange(range) : { startRow: 0, startCol: 0, endRow: this.document.rows.length - 1, endCol: this.document.columns.length - 1 };
|
|
4312
|
+
const r = range ? _chunkPA5S7KPCcjs.normalizeRange.call(void 0, range) : { startRow: 0, startCol: 0, endRow: this.document.rows.length - 1, endCol: this.document.columns.length - 1 };
|
|
4581
4313
|
const cells = this.readMatrix(r).map(
|
|
4582
4314
|
(row) => row.map((cell) => {
|
|
4583
4315
|
const value = cell.error || cell.value;
|
|
@@ -4601,7 +4333,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
4601
4333
|
const at = _nullishCoalesce(target, () => ( this.getSelectionTopLeft()));
|
|
4602
4334
|
const rows = parsed.origin ? rebaseClipboardRows(parsed.rows, parsed.origin, at) : parsed.rows;
|
|
4603
4335
|
this.writeMatrix(rows, at.row, at.col);
|
|
4604
|
-
const r = normalizeRange({
|
|
4336
|
+
const r = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, {
|
|
4605
4337
|
startRow: at.row,
|
|
4606
4338
|
startCol: at.col,
|
|
4607
4339
|
endRow: at.row + rows.length - 1,
|
|
@@ -4612,11 +4344,11 @@ var SpreadsheetController = (_class6 = class {
|
|
|
4612
4344
|
}
|
|
4613
4345
|
spillAnchorInRange(anchor, range) {
|
|
4614
4346
|
const record = this.spills.get(anchor);
|
|
4615
|
-
return !!record && rangeContains(range, record.row, record.col);
|
|
4347
|
+
return !!record && _chunkPA5S7KPCcjs.rangeContains.call(void 0, range, record.row, record.col);
|
|
4616
4348
|
}
|
|
4617
4349
|
getSelectionTopLeft() {
|
|
4618
4350
|
if (this.selectedRange) {
|
|
4619
|
-
const r = normalizeRange(this.selectedRange);
|
|
4351
|
+
const r = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, this.selectedRange);
|
|
4620
4352
|
return { row: r.startRow, col: r.startCol };
|
|
4621
4353
|
}
|
|
4622
4354
|
return { row: _nullishCoalesce(_optionalChain([this, 'access', _232 => _232.activeCell, 'optionalAccess', _233 => _233.row]), () => ( 0)), col: _nullishCoalesce(_optionalChain([this, 'access', _234 => _234.activeCell, 'optionalAccess', _235 => _235.col]), () => ( 0)) };
|
|
@@ -4685,7 +4417,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
4685
4417
|
if (m[startKey] > change.index) m[startKey]--;
|
|
4686
4418
|
if (m[endKey] >= change.index) m[endKey]--;
|
|
4687
4419
|
}
|
|
4688
|
-
if (!isSingleCellRange(m)) next.push(m);
|
|
4420
|
+
if (!_chunkPA5S7KPCcjs.isSingleCellRange.call(void 0, m)) next.push(m);
|
|
4689
4421
|
}
|
|
4690
4422
|
this.document.table.merges = next;
|
|
4691
4423
|
}
|
|
@@ -4701,7 +4433,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
4701
4433
|
sortRows(keys, options = {}) {
|
|
4702
4434
|
const colCount = this.document.columns.length;
|
|
4703
4435
|
const body = this.getBodyRowBounds();
|
|
4704
|
-
const range = options.range ? normalizeRange(options.range) : null;
|
|
4436
|
+
const range = options.range ? _chunkPA5S7KPCcjs.normalizeRange.call(void 0, options.range) : null;
|
|
4705
4437
|
const startRow = Math.max(_nullishCoalesce(_optionalChain([range, 'optionalAccess', _243 => _243.startRow]), () => ( body.start)), body.start);
|
|
4706
4438
|
const endRow = Math.min(_nullishCoalesce(_optionalChain([range, 'optionalAccess', _244 => _244.endRow]), () => ( body.end)), body.end);
|
|
4707
4439
|
const startCol = range ? Math.max(0, range.startCol) : 0;
|
|
@@ -4713,13 +4445,13 @@ var SpreadsheetController = (_class6 = class {
|
|
|
4713
4445
|
}));
|
|
4714
4446
|
if (keyCols.length === 0 || keyCols.some((k) => k.index < startCol || k.index > endCol)) return false;
|
|
4715
4447
|
const area = { startRow, startCol, endRow, endCol };
|
|
4716
|
-
if ((_nullishCoalesce(_optionalChain([this, 'access', _245 => _245.document, 'access', _246 => _246.table, 'optionalAccess', _247 => _247.merges]), () => ( []))).some((m) => rangesIntersect(m, area))) return false;
|
|
4448
|
+
if ((_nullishCoalesce(_optionalChain([this, 'access', _245 => _245.document, 'access', _246 => _246.table, 'optionalAccess', _247 => _247.merges]), () => ( []))).some((m) => _chunkPA5S7KPCcjs.rangesIntersect.call(void 0, m, area))) return false;
|
|
4717
4449
|
if (this.intersectsSpill(area)) return false;
|
|
4718
4450
|
const sourceRows = [];
|
|
4719
4451
|
for (let r = startRow; r <= endRow; r++) sourceRows.push(r);
|
|
4720
4452
|
const sorted = sourceRows.map((r) => ({ r, values: keyCols.map((k) => this.getCellValueAt(r, k.index)) })).sort((a, b) => {
|
|
4721
4453
|
for (let i = 0; i < keyCols.length; i++) {
|
|
4722
|
-
const result = compareCellValues(a.values[i], b.values[i], keyCols[i].direction);
|
|
4454
|
+
const result = _chunkPA5S7KPCcjs.compareCellValues.call(void 0, a.values[i], b.values[i], keyCols[i].direction);
|
|
4723
4455
|
if (result !== 0) return result;
|
|
4724
4456
|
}
|
|
4725
4457
|
return a.r - b.r;
|
|
@@ -4856,7 +4588,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
4856
4588
|
*/
|
|
4857
4589
|
setCellNumberFormat(range, code) {
|
|
4858
4590
|
if (!range) return false;
|
|
4859
|
-
const r = normalizeRange(range);
|
|
4591
|
+
const r = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, range);
|
|
4860
4592
|
this.recordSnapshot();
|
|
4861
4593
|
const kind = code === null ? void 0 : cellFormatForNumberFormat(code);
|
|
4862
4594
|
for (let ri = r.startRow; ri <= r.endRow; ri++) {
|
|
@@ -4971,16 +4703,16 @@ var SpreadsheetController = (_class6 = class {
|
|
|
4971
4703
|
}
|
|
4972
4704
|
/** The merge containing (row, col), or null. */
|
|
4973
4705
|
getMergeAt(row, col) {
|
|
4974
|
-
return _nullishCoalesce(this.getMerges().find((m) => rangeContains(m, row, col)), () => ( null));
|
|
4706
|
+
return _nullishCoalesce(this.getMerges().find((m) => _chunkPA5S7KPCcjs.rangeContains.call(void 0, m, row, col)), () => ( null));
|
|
4975
4707
|
}
|
|
4976
4708
|
/** Grows `range` until no merge crosses its edge. Keeps the drag direction. */
|
|
4977
4709
|
expandRangeToMerges(range) {
|
|
4978
|
-
let r = normalizeRange(range);
|
|
4710
|
+
let r = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, range);
|
|
4979
4711
|
let changed = true;
|
|
4980
4712
|
while (changed) {
|
|
4981
4713
|
changed = false;
|
|
4982
4714
|
for (const m of this.getMerges()) {
|
|
4983
|
-
if (rangesIntersect(m, r) && !rangeContainsRange(r, m)) {
|
|
4715
|
+
if (_chunkPA5S7KPCcjs.rangesIntersect.call(void 0, m, r) && !_chunkPA5S7KPCcjs.rangeContainsRange.call(void 0, r, m)) {
|
|
4984
4716
|
r = {
|
|
4985
4717
|
startRow: Math.min(r.startRow, m.startRow),
|
|
4986
4718
|
startCol: Math.min(r.startCol, m.startCol),
|
|
@@ -5008,12 +4740,12 @@ var SpreadsheetController = (_class6 = class {
|
|
|
5008
4740
|
*/
|
|
5009
4741
|
mergeCells(range = this.selectedRange) {
|
|
5010
4742
|
if (!range) return false;
|
|
5011
|
-
const r = normalizeRange(range);
|
|
5012
|
-
if (isSingleCellRange(r) || r.startRow < 0 || r.startCol < 0 || r.endRow >= this.document.rows.length || r.endCol >= this.document.columns.length) {
|
|
4743
|
+
const r = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, range);
|
|
4744
|
+
if (_chunkPA5S7KPCcjs.isSingleCellRange.call(void 0, r) || r.startRow < 0 || r.startCol < 0 || r.endRow >= this.document.rows.length || r.endCol >= this.document.columns.length) {
|
|
5013
4745
|
return false;
|
|
5014
4746
|
}
|
|
5015
4747
|
const merges = this.getMerges();
|
|
5016
|
-
if (merges.some((m) => rangesIntersect(m, r) && !rangeContainsRange(r, m))) return false;
|
|
4748
|
+
if (merges.some((m) => _chunkPA5S7KPCcjs.rangesIntersect.call(void 0, m, r) && !_chunkPA5S7KPCcjs.rangeContainsRange.call(void 0, r, m))) return false;
|
|
5017
4749
|
if (this.intersectsSpill(r)) return false;
|
|
5018
4750
|
this.applyTableChange(() => {
|
|
5019
4751
|
for (let row = r.startRow; row <= r.endRow; row++) {
|
|
@@ -5023,7 +4755,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
5023
4755
|
_optionalChainDelete([this, 'access', _268 => _268.document, 'access', _269 => _269.cells, 'access', _270 => _270[rowId], 'optionalAccess', _271 => _271[this.document.columns[col].id]]);
|
|
5024
4756
|
}
|
|
5025
4757
|
}
|
|
5026
|
-
this.table.merges = [...merges.filter((m) => !rangeContainsRange(r, m)), r];
|
|
4758
|
+
this.table.merges = [...merges.filter((m) => !_chunkPA5S7KPCcjs.rangeContainsRange.call(void 0, r, m)), r];
|
|
5027
4759
|
}, { recalculate: true });
|
|
5028
4760
|
this.selectCell(r.startRow, r.startCol);
|
|
5029
4761
|
return true;
|
|
@@ -5032,7 +4764,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
5032
4764
|
unmergeCells(range = this.selectedRange) {
|
|
5033
4765
|
if (!range) return false;
|
|
5034
4766
|
const merges = this.getMerges();
|
|
5035
|
-
const remaining = merges.filter((m) => !rangesIntersect(m, range));
|
|
4767
|
+
const remaining = merges.filter((m) => !_chunkPA5S7KPCcjs.rangesIntersect.call(void 0, m, range));
|
|
5036
4768
|
if (remaining.length === merges.length) return false;
|
|
5037
4769
|
this.applyTableChange(() => {
|
|
5038
4770
|
this.table.merges = remaining;
|
|
@@ -5049,9 +4781,9 @@ var SpreadsheetController = (_class6 = class {
|
|
|
5049
4781
|
* the ranges don't line up.
|
|
5050
4782
|
*/
|
|
5051
4783
|
autofill(source, target) {
|
|
5052
|
-
const s = normalizeRange(source);
|
|
5053
|
-
const t = normalizeRange(target);
|
|
5054
|
-
const direction = getFillDirection(s, t);
|
|
4784
|
+
const s = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, source);
|
|
4785
|
+
const t = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, target);
|
|
4786
|
+
const direction = _chunkPA5S7KPCcjs.getFillDirection.call(void 0, s, t);
|
|
5055
4787
|
if (!direction || t.startRow < 0 || t.startCol < 0) return false;
|
|
5056
4788
|
if (s.endRow >= this.document.rows.length || s.endCol >= this.document.columns.length) return false;
|
|
5057
4789
|
const vertical = direction === "down" || direction === "up";
|
|
@@ -5073,7 +4805,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
5073
4805
|
return this.getCell(this.document.rows[p.row].id, this.document.columns[p.col].id).raw;
|
|
5074
4806
|
});
|
|
5075
4807
|
const hasFormula = raws.some((raw) => raw.startsWith("="));
|
|
5076
|
-
const series = hasFormula ? null : fillSeries(raws, fillSteps.length);
|
|
4808
|
+
const series = hasFormula ? null : _chunkPA5S7KPCcjs.fillSeries.call(void 0, raws, fillSteps.length);
|
|
5077
4809
|
fillSteps.forEach((step, i) => {
|
|
5078
4810
|
const p = at(step);
|
|
5079
4811
|
let raw;
|
|
@@ -5151,17 +4883,17 @@ var SpreadsheetController = (_class6 = class {
|
|
|
5151
4883
|
*/
|
|
5152
4884
|
transposeRange(range = this.selectedRange) {
|
|
5153
4885
|
if (!range) return false;
|
|
5154
|
-
const s = normalizeRange(range);
|
|
5155
|
-
if (isSingleCellRange(s)) return false;
|
|
4886
|
+
const s = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, range);
|
|
4887
|
+
if (_chunkPA5S7KPCcjs.isSingleCellRange.call(void 0, s)) return false;
|
|
5156
4888
|
const height = s.endRow - s.startRow + 1;
|
|
5157
4889
|
const width = s.endCol - s.startCol + 1;
|
|
5158
4890
|
const t = { startRow: s.startRow, startCol: s.startCol, endRow: s.startRow + width - 1, endCol: s.startCol + height - 1 };
|
|
5159
|
-
if (this.getMerges().some((m) => rangesIntersect(m, s) || rangesIntersect(m, t))) return false;
|
|
4891
|
+
if (this.getMerges().some((m) => _chunkPA5S7KPCcjs.rangesIntersect.call(void 0, m, s) || _chunkPA5S7KPCcjs.rangesIntersect.call(void 0, m, t))) return false;
|
|
5160
4892
|
if (this.intersectsSpill(s) || this.intersectsSpill(t)) return false;
|
|
5161
4893
|
this.applyTableChange(() => {
|
|
5162
4894
|
this.growGrid(t.endRow, t.endCol);
|
|
5163
4895
|
this.remapAllFormulas(({ row, col }) => {
|
|
5164
|
-
if (!rangeContains(s, row, col)) return null;
|
|
4896
|
+
if (!_chunkPA5S7KPCcjs.rangeContains.call(void 0, s, row, col)) return null;
|
|
5165
4897
|
return { row: s.startRow + (col - s.startCol), col: s.startCol + (row - s.startRow) };
|
|
5166
4898
|
});
|
|
5167
4899
|
this.moveRulesForTranspose(s, t);
|
|
@@ -5433,7 +5165,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
5433
5165
|
if (invalid2) throw new Error(invalid2);
|
|
5434
5166
|
const formula = refersTo.trim().startsWith("=") ? refersTo.trim() : `=${refersTo.trim()}`;
|
|
5435
5167
|
try {
|
|
5436
|
-
|
|
5168
|
+
_chunkPA5S7KPCcjs.parseFormula.call(void 0, formula);
|
|
5437
5169
|
} catch (err) {
|
|
5438
5170
|
throw new Error(`There's a problem with this formula: ${_nullishCoalesce(_optionalChain([err, 'optionalAccess', _312 => _312.message]), () => ( formula))}`);
|
|
5439
5171
|
}
|
|
@@ -5806,7 +5538,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
5806
5538
|
*/
|
|
5807
5539
|
addConditionalFormat(rule, options = {}) {
|
|
5808
5540
|
const id = rule.id || this.generateRuleId("cf");
|
|
5809
|
-
const stored = { ...rule, id, ranges: rule.ranges.map((r) => normalizeRange(r)) };
|
|
5541
|
+
const stored = { ...rule, id, ranges: rule.ranges.map((r) => _chunkPA5S7KPCcjs.normalizeRange.call(void 0, r)) };
|
|
5810
5542
|
this.applyTableChange(() => {
|
|
5811
5543
|
const rules = [..._nullishCoalesce(this.table.conditionalFormats, () => ( []))];
|
|
5812
5544
|
if (options.priority === "last") rules.push(stored);
|
|
@@ -5823,7 +5555,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
5823
5555
|
this.applyTableChange(() => {
|
|
5824
5556
|
const next = [...rules];
|
|
5825
5557
|
const updated = { ...rules[index], ...changes, id };
|
|
5826
|
-
if (changes.ranges) updated.ranges = changes.ranges.map((r) => normalizeRange(r));
|
|
5558
|
+
if (changes.ranges) updated.ranges = changes.ranges.map((r) => _chunkPA5S7KPCcjs.normalizeRange.call(void 0, r));
|
|
5827
5559
|
next[index] = updated;
|
|
5828
5560
|
this.table.conditionalFormats = next;
|
|
5829
5561
|
});
|
|
@@ -5913,7 +5645,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
5913
5645
|
*/
|
|
5914
5646
|
addDataValidation(rule) {
|
|
5915
5647
|
const id = rule.id || this.generateRuleId("dv");
|
|
5916
|
-
const ranges = rule.ranges.map((r) => normalizeRange(r));
|
|
5648
|
+
const ranges = rule.ranges.map((r) => _chunkPA5S7KPCcjs.normalizeRange.call(void 0, r));
|
|
5917
5649
|
this.applyTableChange(() => {
|
|
5918
5650
|
let rules = _nullishCoalesce(this.table.dataValidations, () => ( []));
|
|
5919
5651
|
for (const cut of ranges) {
|
|
@@ -5931,7 +5663,7 @@ var SpreadsheetController = (_class6 = class {
|
|
|
5931
5663
|
this.applyTableChange(() => {
|
|
5932
5664
|
const next = [...rules];
|
|
5933
5665
|
const updated = { ...rules[index], ...changes, id };
|
|
5934
|
-
if (changes.ranges) updated.ranges = changes.ranges.map((r) => normalizeRange(r));
|
|
5666
|
+
if (changes.ranges) updated.ranges = changes.ranges.map((r) => _chunkPA5S7KPCcjs.normalizeRange.call(void 0, r));
|
|
5935
5667
|
next[index] = updated;
|
|
5936
5668
|
this.table.dataValidations = next;
|
|
5937
5669
|
});
|
|
@@ -6042,7 +5774,7 @@ function getSpreadsheetMenuItems(controller, cell) {
|
|
|
6042
5774
|
const column = doc.columns[cell.col];
|
|
6043
5775
|
const row = doc.rows[cell.row];
|
|
6044
5776
|
if (!column || !row) return [];
|
|
6045
|
-
const selection = controller.selectedRange && rangeContains(controller.selectedRange, cell.row, cell.col) ? normalizeRange(controller.selectedRange) : { startRow: cell.row, startCol: cell.col, endRow: cell.row, endCol: cell.col };
|
|
5777
|
+
const selection = controller.selectedRange && _chunkPA5S7KPCcjs.rangeContains.call(void 0, controller.selectedRange, cell.row, cell.col) ? _chunkPA5S7KPCcjs.normalizeRange.call(void 0, controller.selectedRange) : { startRow: cell.row, startCol: cell.col, endRow: cell.row, endCol: cell.col };
|
|
6046
5778
|
const colName = _chunkXP5IUZUOcjs.indexToColName.call(void 0, cell.col);
|
|
6047
5779
|
const cellData = controller.getCell(row.id, column.id);
|
|
6048
5780
|
const value = cellData.value;
|
|
@@ -6052,8 +5784,8 @@ function getSpreadsheetMenuItems(controller, cell) {
|
|
|
6052
5784
|
const rows = Array.from({ length: selection.endRow - selection.startRow + 1 }, (_, i) => selection.startRow + i);
|
|
6053
5785
|
const cols = Array.from({ length: selection.endCol - selection.startCol + 1 }, (_, i) => selection.startCol + i);
|
|
6054
5786
|
const anyHidden = doc.rows.some((r) => r.hidden) || doc.columns.some((c) => c.hidden);
|
|
6055
|
-
const hasMerge = controller.getMerges().some((m) => rangesIntersect(m, selection));
|
|
6056
|
-
const sortRange = isSingleCellRange(selection) ? null : selection;
|
|
5787
|
+
const hasMerge = controller.getMerges().some((m) => _chunkPA5S7KPCcjs.rangesIntersect.call(void 0, m, selection));
|
|
5788
|
+
const sortRange = _chunkPA5S7KPCcjs.isSingleCellRange.call(void 0, selection) ? null : selection;
|
|
6057
5789
|
const items = [
|
|
6058
5790
|
{
|
|
6059
5791
|
id: "sort-asc",
|
|
@@ -6134,7 +5866,7 @@ function getSpreadsheetMenuItems(controller, cell) {
|
|
|
6134
5866
|
id: "merge",
|
|
6135
5867
|
label: "Merge cells",
|
|
6136
5868
|
separatorBefore: true,
|
|
6137
|
-
disabled: isSingleCellRange(selection),
|
|
5869
|
+
disabled: _chunkPA5S7KPCcjs.isSingleCellRange.call(void 0, selection),
|
|
6138
5870
|
run: () => {
|
|
6139
5871
|
controller.mergeCells(selection);
|
|
6140
5872
|
}
|
|
@@ -6150,7 +5882,7 @@ function getSpreadsheetMenuItems(controller, cell) {
|
|
|
6150
5882
|
{
|
|
6151
5883
|
id: "transpose",
|
|
6152
5884
|
label: "Transpose",
|
|
6153
|
-
disabled: isSingleCellRange(selection),
|
|
5885
|
+
disabled: _chunkPA5S7KPCcjs.isSingleCellRange.call(void 0, selection),
|
|
6154
5886
|
run: () => {
|
|
6155
5887
|
controller.transposeRange(selection);
|
|
6156
5888
|
}
|
|
@@ -6208,8 +5940,8 @@ function getSpreadsheetMenuItems(controller, cell) {
|
|
|
6208
5940
|
}
|
|
6209
5941
|
function getRuleMenuItems(controller, selection) {
|
|
6210
5942
|
const ranges = [selection];
|
|
6211
|
-
const hasFormats = controller.getConditionalFormats().some((rule) => rule.ranges.some((r) => rangesIntersect(r, selection)));
|
|
6212
|
-
const hasValidation = controller.getDataValidations().some((rule) => rule.ranges.some((r) => rangesIntersect(r, selection)));
|
|
5943
|
+
const hasFormats = controller.getConditionalFormats().some((rule) => rule.ranges.some((r) => _chunkPA5S7KPCcjs.rangesIntersect.call(void 0, r, selection)));
|
|
5944
|
+
const hasValidation = controller.getDataValidations().some((rule) => rule.ranges.some((r) => _chunkPA5S7KPCcjs.rangesIntersect.call(void 0, r, selection)));
|
|
6213
5945
|
const add = (input) => {
|
|
6214
5946
|
controller.addConditionalFormat(createConditionalFormatRule({ ...input, ranges }));
|
|
6215
5947
|
};
|
|
@@ -6580,7 +6312,7 @@ function getSpreadsheetViewWindow(metrics, viewport, options = {}) {
|
|
|
6580
6312
|
for (let changed = merges.length > 0, guard = 0; changed && guard < 8; guard++) {
|
|
6581
6313
|
changed = false;
|
|
6582
6314
|
for (const raw of merges) {
|
|
6583
|
-
const merge = normalizeRange(raw);
|
|
6315
|
+
const merge = _chunkPA5S7KPCcjs.normalizeRange.call(void 0, raw);
|
|
6584
6316
|
const rows = displayedSpan(metrics.rowPosition, merge.startRow, merge.endRow);
|
|
6585
6317
|
const cols = displayedSpan(metrics.columnPosition, merge.startCol, merge.endCol);
|
|
6586
6318
|
if (!rows || !cols) continue;
|
|
@@ -6788,19 +6520,5 @@ function sameSpreadsheetViewWindow(a, b) {
|
|
|
6788
6520
|
|
|
6789
6521
|
|
|
6790
6522
|
|
|
6791
|
-
|
|
6792
|
-
|
|
6793
|
-
|
|
6794
|
-
|
|
6795
|
-
|
|
6796
|
-
|
|
6797
|
-
|
|
6798
|
-
|
|
6799
|
-
|
|
6800
|
-
|
|
6801
|
-
|
|
6802
|
-
|
|
6803
|
-
|
|
6804
|
-
|
|
6805
|
-
exports.extractNameDependencies = extractNameDependencies; exports.columnDependencyKey = columnDependencyKey; exports.extractCellDependencies = extractCellDependencies; exports.extractReferenceDependencies = extractReferenceDependencies; exports.rangeDependencyKey = rangeDependencyKey; exports.IntervalIndex = IntervalIndex; exports.DependencyGraph = DependencyGraph; exports.shiftFormulaReferences = shiftFormulaReferences; exports.mapFormulaReferences = mapFormulaReferences; exports.offsetFormulaReferences = offsetFormulaReferences; exports.remapFormulaReferences = remapFormulaReferences; exports.transposeFormulaReferences = transposeFormulaReferences; exports.sheetNameNeedsQuotes = sheetNameNeedsQuotes; exports.quoteSheetName = quoteSheetName; exports.formatSheetPrefix = formatSheetPrefix; exports.renameSheetInFormula = renameSheetInFormula; exports.deleteSheetInFormula = deleteSheetInFormula; exports.renameNameInFormula = renameNameInFormula; exports.formulaIdentifiers = formulaIdentifiers; exports.getFormulaCaretContext = getFormulaCaretContext; exports.getFormulaHints = getFormulaHints; exports.applyFormulaSuggestion = applyFormulaSuggestion; exports.NUMBER_FORMAT_PRESETS = NUMBER_FORMAT_PRESETS; exports.numberFormatForCellFormat = numberFormatForCellFormat; exports.cellFormatForNumberFormat = cellFormatForNumberFormat; exports.isGeneralNumberFormat = isGeneralNumberFormat; exports.formatCellForDisplay = formatCellForDisplay; exports.formatCellDisplay = formatCellDisplay; exports.formatValueWithCode = formatValueWithCode; exports.DataSourceBinder = DataSourceBinder; exports.MAX_SHEET_NAME_LENGTH = MAX_SHEET_NAME_LENGTH; exports.MAX_DEFINED_NAME_LENGTH = MAX_DEFINED_NAME_LENGTH; exports.validateSheetName = validateSheetName; exports.nextSheetName = nextSheetName; exports.copySheetName = copySheetName; exports.validateDefinedName = validateDefinedName; exports.isLambdaDefinition = isLambdaDefinition; exports.normalizeRange = normalizeRange; exports.rangeContains = rangeContains; exports.rangesIntersect = rangesIntersect; exports.rangeContainsRange = rangeContainsRange; exports.isSingleCellRange = isSingleCellRange; exports.isBlankValue = isBlankValue; exports.toNumber = toNumber; exports.compareCellValues = compareCellValues; exports.matchesFilterRule = matchesFilterRule; exports.aggregateValues = aggregateValues; exports.roundFloat = roundFloat; exports.fillSeries = fillSeries; exports.computeFillTarget = computeFillTarget; exports.getFillDirection = getFillDirection; exports.SPREADSHEET_CLIPBOARD_MIME = SPREADSHEET_CLIPBOARD_MIME; exports.serializeHtmlTable = serializeHtmlTable; exports.parseHtmlTable = parseHtmlTable; exports.createSpreadsheetClipboardData = createSpreadsheetClipboardData; exports.readSpreadsheetClipboard = readSpreadsheetClipboard; exports.rebaseClipboardRows = rebaseClipboardRows; exports.adjustRangeForStructuralChange = adjustRangeForStructuralChange; exports.adjustRangesForStructuralChange = adjustRangesForStructuralChange; exports.subtractRange = subtractRange; exports.subtractRangeFromRanges = subtractRangeFromRanges; exports.rangesContain = rangesContain; exports.ruleAnchor = ruleAnchor; exports.ruleFormulaAt = ruleFormulaAt; exports.shiftRuleFormula = shiftRuleFormula; exports.forEachRangeCell = forEachRangeCell; exports.formatRuleRanges = formatRuleRanges; exports.parseRuleRanges = parseRuleRanges; exports.mergeRuleRanges = mergeRuleRanges; exports.sortRuleRanges = sortRuleRanges; exports.transposeRuleRanges = transposeRuleRanges; exports.reanchorRuleFormula = reanchorRuleFormula; exports.transposeRuleFormula = transposeRuleFormula; exports.mapConditionalFormatFormulas = mapConditionalFormatFormulas; exports.mapDataValidationFormulas = mapDataValidationFormulas; exports.sortRules = sortRules; exports.transposeRules = transposeRules; exports.CONDITIONAL_FORMAT_ICON_SETS = CONDITIONAL_FORMAT_ICON_SETS; exports.conditionalFormatIconCount = conditionalFormatIconCount; exports.getConditionalFormatIcon = getConditionalFormatIcon; exports.conditionalFormatNumber = conditionalFormatNumber; exports.blendConditionalFormatColors = blendConditionalFormatColors; exports.defaultIconThresholds = defaultIconThresholds; exports.EMPTY_CONDITIONAL_FORMAT_OVERLAY = EMPTY_CONDITIONAL_FORMAT_OVERLAY; exports.ConditionalFormatEngine = ConditionalFormatEngine; exports.matchesTimePeriod = matchesTimePeriod; exports.evaluateConditionalFormats = evaluateConditionalFormats; exports.describeConditionalFormat = describeConditionalFormat; exports.describeDataValidation = describeDataValidation; exports.CONDITIONAL_FORMAT_STYLE_PRESETS = CONDITIONAL_FORMAT_STYLE_PRESETS; exports.DEFAULT_CONDITIONAL_FORMAT_STYLE = DEFAULT_CONDITIONAL_FORMAT_STYLE; exports.CONDITIONAL_FORMAT_PRESETS = CONDITIONAL_FORMAT_PRESETS; exports.CONDITIONAL_FORMAT_TIME_PERIODS = CONDITIONAL_FORMAT_TIME_PERIODS; exports.createConditionalFormatRule = createConditionalFormatRule; exports.DATA_VALIDATION_TYPE_OPTIONS = DATA_VALIDATION_TYPE_OPTIONS; exports.DATA_VALIDATION_OPERATOR_OPTIONS = DATA_VALIDATION_OPERATOR_OPTIONS; exports.DATA_VALIDATION_ERROR_STYLE_OPTIONS = DATA_VALIDATION_ERROR_STYLE_OPTIONS; exports.conditionalFormatContrastColor = conditionalFormatContrastColor; exports.getConditionalFormatCss = getConditionalFormatCss; exports.getDataBarCss = getDataBarCss; exports.conditionalFormatStyleString = conditionalFormatStyleString; exports.DEFAULT_DATA_VALIDATION_MESSAGE = DEFAULT_DATA_VALIDATION_MESSAGE; exports.DEFAULT_DATA_VALIDATION_TITLE = DEFAULT_DATA_VALIDATION_TITLE; exports.findDataValidation = findDataValidation; exports.getValidationListValues = getValidationListValues; exports.validateCellInput = validateCellInput; exports.findInvalidCells = findInvalidCells; exports.DEFAULT_ROW_HEIGHT = DEFAULT_ROW_HEIGHT; exports.DEFAULT_COLUMN_WIDTH = DEFAULT_COLUMN_WIDTH; exports.getTableSections = getTableSections; exports.getRowSection = getRowSection; exports.rowPassesFilters = rowPassesFilters; exports.computeRowGroups = computeRowGroups; exports.buildSpreadsheetView = buildSpreadsheetView; exports.SpreadsheetController = SpreadsheetController; exports.runSpreadsheetMenuItem = runSpreadsheetMenuItem; exports.clampMenuPosition = clampMenuPosition; exports.getSpreadsheetMenuItems = getSpreadsheetMenuItems; exports.SPREADSHEET_TABLE_ACTIONS = SPREADSHEET_TABLE_ACTIONS; exports.bindSpreadsheetTableActions = bindSpreadsheetTableActions; exports.csvImportAdapter = csvImportAdapter; exports.tsvImportAdapter = tsvImportAdapter; exports.SPREADSHEET_IMPORT_ADAPTERS = SPREADSHEET_IMPORT_ADAPTERS; exports.registerSpreadsheetImportAdapters = registerSpreadsheetImportAdapters; exports.importFileIntoSpreadsheet = importFileIntoSpreadsheet; exports.getSheetTabMenuItems = getSheetTabMenuItems; exports.sheetDropIndex = sheetDropIndex; exports.getNameManagerRows = getNameManagerRows; exports.SPREADSHEET_COLUMN_HEADER_HEIGHT = SPREADSHEET_COLUMN_HEADER_HEIGHT; exports.SPREADSHEET_ROW_HEADER_WIDTH = SPREADSHEET_ROW_HEADER_WIDTH; exports.SPREADSHEET_GROUP_ROW_HEIGHT = SPREADSHEET_GROUP_ROW_HEIGHT; exports.SPREADSHEET_VIRTUAL_ROW_THRESHOLD = SPREADSHEET_VIRTUAL_ROW_THRESHOLD; exports.SPREADSHEET_VIRTUAL_COLUMN_THRESHOLD = SPREADSHEET_VIRTUAL_COLUMN_THRESHOLD; exports.SPREADSHEET_DEFAULT_VIEWPORT = SPREADSHEET_DEFAULT_VIEWPORT; exports.measureSpreadsheetView = measureSpreadsheetView; exports.shouldVirtualizeSpreadsheet = shouldVirtualizeSpreadsheet; exports.fullSpreadsheetViewWindow = fullSpreadsheetViewWindow; exports.getSpreadsheetViewWindow = getSpreadsheetViewWindow; exports.getSpreadsheetScrollToCell = getSpreadsheetScrollToCell; exports.sameSpreadsheetViewWindow = sameSpreadsheetViewWindow;
|
|
6806
|
-
//# sourceMappingURL=chunk-YU4WQE5M.cjs.map
|
|
6523
|
+
exports.extractNameDependencies = extractNameDependencies; exports.columnDependencyKey = columnDependencyKey; exports.extractCellDependencies = extractCellDependencies; exports.extractReferenceDependencies = extractReferenceDependencies; exports.rangeDependencyKey = rangeDependencyKey; exports.IntervalIndex = IntervalIndex; exports.DependencyGraph = DependencyGraph; exports.shiftFormulaReferences = shiftFormulaReferences; exports.mapFormulaReferences = mapFormulaReferences; exports.offsetFormulaReferences = offsetFormulaReferences; exports.remapFormulaReferences = remapFormulaReferences; exports.transposeFormulaReferences = transposeFormulaReferences; exports.sheetNameNeedsQuotes = sheetNameNeedsQuotes; exports.quoteSheetName = quoteSheetName; exports.formatSheetPrefix = formatSheetPrefix; exports.renameSheetInFormula = renameSheetInFormula; exports.deleteSheetInFormula = deleteSheetInFormula; exports.renameNameInFormula = renameNameInFormula; exports.formulaIdentifiers = formulaIdentifiers; exports.getFormulaCaretContext = getFormulaCaretContext; exports.getFormulaHints = getFormulaHints; exports.applyFormulaSuggestion = applyFormulaSuggestion; exports.NUMBER_FORMAT_PRESETS = NUMBER_FORMAT_PRESETS; exports.numberFormatForCellFormat = numberFormatForCellFormat; exports.cellFormatForNumberFormat = cellFormatForNumberFormat; exports.isGeneralNumberFormat = isGeneralNumberFormat; exports.formatCellForDisplay = formatCellForDisplay; exports.formatCellDisplay = formatCellDisplay; exports.formatValueWithCode = formatValueWithCode; exports.DataSourceBinder = DataSourceBinder; exports.MAX_SHEET_NAME_LENGTH = MAX_SHEET_NAME_LENGTH; exports.MAX_DEFINED_NAME_LENGTH = MAX_DEFINED_NAME_LENGTH; exports.validateSheetName = validateSheetName; exports.nextSheetName = nextSheetName; exports.copySheetName = copySheetName; exports.validateDefinedName = validateDefinedName; exports.isLambdaDefinition = isLambdaDefinition; exports.SPREADSHEET_CLIPBOARD_MIME = SPREADSHEET_CLIPBOARD_MIME; exports.serializeHtmlTable = serializeHtmlTable; exports.parseHtmlTable = parseHtmlTable; exports.createSpreadsheetClipboardData = createSpreadsheetClipboardData; exports.readSpreadsheetClipboard = readSpreadsheetClipboard; exports.rebaseClipboardRows = rebaseClipboardRows; exports.adjustRangeForStructuralChange = adjustRangeForStructuralChange; exports.adjustRangesForStructuralChange = adjustRangesForStructuralChange; exports.subtractRange = subtractRange; exports.subtractRangeFromRanges = subtractRangeFromRanges; exports.rangesContain = rangesContain; exports.ruleAnchor = ruleAnchor; exports.ruleFormulaAt = ruleFormulaAt; exports.shiftRuleFormula = shiftRuleFormula; exports.forEachRangeCell = forEachRangeCell; exports.formatRuleRanges = formatRuleRanges; exports.parseRuleRanges = parseRuleRanges; exports.mergeRuleRanges = mergeRuleRanges; exports.sortRuleRanges = sortRuleRanges; exports.transposeRuleRanges = transposeRuleRanges; exports.reanchorRuleFormula = reanchorRuleFormula; exports.transposeRuleFormula = transposeRuleFormula; exports.mapConditionalFormatFormulas = mapConditionalFormatFormulas; exports.mapDataValidationFormulas = mapDataValidationFormulas; exports.sortRules = sortRules; exports.transposeRules = transposeRules; exports.CONDITIONAL_FORMAT_ICON_SETS = CONDITIONAL_FORMAT_ICON_SETS; exports.conditionalFormatIconCount = conditionalFormatIconCount; exports.getConditionalFormatIcon = getConditionalFormatIcon; exports.conditionalFormatNumber = conditionalFormatNumber; exports.blendConditionalFormatColors = blendConditionalFormatColors; exports.defaultIconThresholds = defaultIconThresholds; exports.EMPTY_CONDITIONAL_FORMAT_OVERLAY = EMPTY_CONDITIONAL_FORMAT_OVERLAY; exports.ConditionalFormatEngine = ConditionalFormatEngine; exports.matchesTimePeriod = matchesTimePeriod; exports.evaluateConditionalFormats = evaluateConditionalFormats; exports.describeConditionalFormat = describeConditionalFormat; exports.describeDataValidation = describeDataValidation; exports.CONDITIONAL_FORMAT_STYLE_PRESETS = CONDITIONAL_FORMAT_STYLE_PRESETS; exports.DEFAULT_CONDITIONAL_FORMAT_STYLE = DEFAULT_CONDITIONAL_FORMAT_STYLE; exports.CONDITIONAL_FORMAT_PRESETS = CONDITIONAL_FORMAT_PRESETS; exports.CONDITIONAL_FORMAT_TIME_PERIODS = CONDITIONAL_FORMAT_TIME_PERIODS; exports.createConditionalFormatRule = createConditionalFormatRule; exports.DATA_VALIDATION_TYPE_OPTIONS = DATA_VALIDATION_TYPE_OPTIONS; exports.DATA_VALIDATION_OPERATOR_OPTIONS = DATA_VALIDATION_OPERATOR_OPTIONS; exports.DATA_VALIDATION_ERROR_STYLE_OPTIONS = DATA_VALIDATION_ERROR_STYLE_OPTIONS; exports.conditionalFormatContrastColor = conditionalFormatContrastColor; exports.getConditionalFormatCss = getConditionalFormatCss; exports.getDataBarCss = getDataBarCss; exports.conditionalFormatStyleString = conditionalFormatStyleString; exports.DEFAULT_DATA_VALIDATION_MESSAGE = DEFAULT_DATA_VALIDATION_MESSAGE; exports.DEFAULT_DATA_VALIDATION_TITLE = DEFAULT_DATA_VALIDATION_TITLE; exports.findDataValidation = findDataValidation; exports.getValidationListValues = getValidationListValues; exports.validateCellInput = validateCellInput; exports.findInvalidCells = findInvalidCells; exports.DEFAULT_ROW_HEIGHT = DEFAULT_ROW_HEIGHT; exports.DEFAULT_COLUMN_WIDTH = DEFAULT_COLUMN_WIDTH; exports.getTableSections = getTableSections; exports.getRowSection = getRowSection; exports.rowPassesFilters = rowPassesFilters; exports.computeRowGroups = computeRowGroups; exports.buildSpreadsheetView = buildSpreadsheetView; exports.SpreadsheetController = SpreadsheetController; exports.runSpreadsheetMenuItem = runSpreadsheetMenuItem; exports.clampMenuPosition = clampMenuPosition; exports.getSpreadsheetMenuItems = getSpreadsheetMenuItems; exports.SPREADSHEET_TABLE_ACTIONS = SPREADSHEET_TABLE_ACTIONS; exports.bindSpreadsheetTableActions = bindSpreadsheetTableActions; exports.csvImportAdapter = csvImportAdapter; exports.tsvImportAdapter = tsvImportAdapter; exports.SPREADSHEET_IMPORT_ADAPTERS = SPREADSHEET_IMPORT_ADAPTERS; exports.registerSpreadsheetImportAdapters = registerSpreadsheetImportAdapters; exports.importFileIntoSpreadsheet = importFileIntoSpreadsheet; exports.getSheetTabMenuItems = getSheetTabMenuItems; exports.sheetDropIndex = sheetDropIndex; exports.getNameManagerRows = getNameManagerRows; exports.SPREADSHEET_COLUMN_HEADER_HEIGHT = SPREADSHEET_COLUMN_HEADER_HEIGHT; exports.SPREADSHEET_ROW_HEADER_WIDTH = SPREADSHEET_ROW_HEADER_WIDTH; exports.SPREADSHEET_GROUP_ROW_HEIGHT = SPREADSHEET_GROUP_ROW_HEIGHT; exports.SPREADSHEET_VIRTUAL_ROW_THRESHOLD = SPREADSHEET_VIRTUAL_ROW_THRESHOLD; exports.SPREADSHEET_VIRTUAL_COLUMN_THRESHOLD = SPREADSHEET_VIRTUAL_COLUMN_THRESHOLD; exports.SPREADSHEET_DEFAULT_VIEWPORT = SPREADSHEET_DEFAULT_VIEWPORT; exports.measureSpreadsheetView = measureSpreadsheetView; exports.shouldVirtualizeSpreadsheet = shouldVirtualizeSpreadsheet; exports.fullSpreadsheetViewWindow = fullSpreadsheetViewWindow; exports.getSpreadsheetViewWindow = getSpreadsheetViewWindow; exports.getSpreadsheetScrollToCell = getSpreadsheetScrollToCell; exports.sameSpreadsheetViewWindow = sameSpreadsheetViewWindow;
|
|
6524
|
+
//# sourceMappingURL=chunk-TAPXWP2B.cjs.map
|