@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.
Files changed (70) hide show
  1. package/README.md +13 -3
  2. package/dist/agent/index.cjs +102 -6
  3. package/dist/agent/index.cjs.map +1 -1
  4. package/dist/agent/index.d.cts +4 -2
  5. package/dist/agent/index.d.ts +4 -2
  6. package/dist/agent/index.js +101 -5
  7. package/dist/agent/index.js.map +1 -1
  8. package/dist/{builtins-BKYlHH1s.d.ts → builtins-CV1fDj64.d.ts} +5 -1
  9. package/dist/{builtins-1kqwLUnb.d.cts → builtins-c4w0eAYl.d.cts} +5 -1
  10. package/dist/{chunk-2CJ3LPYQ.js → chunk-424H3P4I.js} +13 -295
  11. package/dist/chunk-424H3P4I.js.map +1 -0
  12. package/dist/{chunk-UN33YOXW.cjs → chunk-PA5S7KPC.cjs} +293 -2
  13. package/dist/chunk-PA5S7KPC.cjs.map +1 -0
  14. package/dist/{chunk-IB3ZHQAX.js → chunk-PTYWCFFW.js} +29 -4
  15. package/dist/chunk-PTYWCFFW.js.map +1 -0
  16. package/dist/{chunk-JQ3BB3E6.js → chunk-PXDEFEG2.js} +293 -2
  17. package/dist/chunk-PXDEFEG2.js.map +1 -0
  18. package/dist/{chunk-YU4WQE5M.cjs → chunk-TAPXWP2B.cjs} +95 -377
  19. package/dist/chunk-TAPXWP2B.cjs.map +1 -0
  20. package/dist/{chunk-HXDMZQTD.cjs → chunk-TPOT575P.cjs} +29 -4
  21. package/dist/{chunk-IB3ZHQAX.js.map → chunk-TPOT575P.cjs.map} +1 -1
  22. package/dist/commands/index.cjs +2 -2
  23. package/dist/commands/index.d.cts +1 -1
  24. package/dist/commands/index.d.ts +1 -1
  25. package/dist/commands/index.js +1 -1
  26. package/dist/generation/index.cjs +932 -791
  27. package/dist/generation/index.cjs.map +1 -1
  28. package/dist/generation/index.d.cts +266 -240
  29. package/dist/generation/index.d.ts +266 -240
  30. package/dist/generation/index.js +926 -785
  31. package/dist/generation/index.js.map +1 -1
  32. package/dist/image-editor/index.cjs +266 -2
  33. package/dist/image-editor/index.cjs.map +1 -1
  34. package/dist/image-editor/index.d.cts +12 -1
  35. package/dist/image-editor/index.d.ts +12 -1
  36. package/dist/image-editor/index.js +265 -1
  37. package/dist/image-editor/index.js.map +1 -1
  38. package/dist/index.cjs +3 -3
  39. package/dist/index.cjs.map +1 -1
  40. package/dist/index.js +16 -16
  41. package/dist/spreadsheet/index.cjs +3 -3
  42. package/dist/spreadsheet/index.cjs.map +1 -1
  43. package/dist/spreadsheet/index.js +16 -16
  44. package/dist/video-editor/index.cjs +461 -101
  45. package/dist/video-editor/index.cjs.map +1 -1
  46. package/dist/video-editor/index.d.cts +67 -3
  47. package/dist/video-editor/index.d.ts +67 -3
  48. package/dist/video-editor/index.js +426 -66
  49. package/dist/video-editor/index.js.map +1 -1
  50. package/package.json +3 -1
  51. package/skills/README.md +55 -0
  52. package/skills/pixerate-agent-tools/SKILL.md +75 -0
  53. package/skills/pixerate-animation-editor/SKILL.md +155 -0
  54. package/skills/pixerate-animation-editor/references/commands.md +123 -0
  55. package/skills/pixerate-canvas/SKILL.md +230 -0
  56. package/skills/pixerate-chart/SKILL.md +190 -0
  57. package/skills/pixerate-diagram/SKILL.md +134 -0
  58. package/skills/pixerate-generation/SKILL.md +109 -0
  59. package/skills/pixerate-image-editor/SKILL.md +139 -0
  60. package/skills/pixerate-parameters/SKILL.md +83 -0
  61. package/skills/pixerate-rich-text/SKILL.md +160 -0
  62. package/skills/pixerate-spreadsheet/SKILL.md +146 -0
  63. package/skills/pixerate-vector/SKILL.md +191 -0
  64. package/skills/pixerate-vector/references/commands.md +138 -0
  65. package/skills/pixerate-video-editor/SKILL.md +173 -0
  66. package/dist/chunk-2CJ3LPYQ.js.map +0 -1
  67. package/dist/chunk-HXDMZQTD.cjs.map +0 -1
  68. package/dist/chunk-JQ3BB3E6.js.map +0 -1
  69. package/dist/chunk-UN33YOXW.cjs.map +0 -1
  70. 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 >= _chunkUN33YOXWcjs.WHOLE_COLUMN_END_ROW) {
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 >= _chunkUN33YOXWcjs.WHOLE_COLUMN_END_ROW;
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 ? _chunkUN33YOXWcjs.WHOLE_COLUMN_END_ROW : Math.max(curr.startRow, curr.endRow),
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: _chunkUN33YOXWcjs.WHOLE_COLUMN_END_ROW };
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 = _chunkUN33YOXWcjs.parseFormula.call(void 0, formulaStr);
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 >= _chunkUN33YOXWcjs.WHOLE_COLUMN_END_ROW && dep.startCol === dep.endCol ? columnDependencyKey(dep.startCol) : rangeDependencyKey(dep.startCol, dep.startRow, dep.endCol, 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 = _chunkUN33YOXWcjs.tokenizeFormula.call(void 0, formula);
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 _chunkUN33YOXWcjs.tokenizeFormula.call(void 0, formula);
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: _chunkUN33YOXWcjs.getFormulaSignature.call(void 0, def),
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
- ..._chunkUN33YOXWcjs.searchFormulaFunctions.call(void 0, query, { limit: void 0 }).filter((def) => def.name.startsWith(query) && !names.some((n) => n.name.toUpperCase() === def.name)).map(toSuggestion)
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 = _chunkUN33YOXWcjs.getFormulaFunction.call(void 0, context.call.name);
1078
+ const def = _chunkPA5S7KPCcjs.getFormulaFunction.call(void 0, context.call.name);
1071
1079
  if (def) {
1072
- const specIndex = _chunkUN33YOXWcjs.getFormulaArgumentSpecIndex.call(void 0, def, context.call.argIndex);
1080
+ const specIndex = _chunkPA5S7KPCcjs.getFormulaArgumentSpecIndex.call(void 0, def, context.call.argIndex);
1073
1081
  activeCall = {
1074
1082
  name: def.name,
1075
- signature: _chunkUN33YOXWcjs.getFormulaSignature.call(void 0, def),
1083
+ signature: _chunkPA5S7KPCcjs.getFormulaSignature.call(void 0, def),
1076
1084
  description: def.description,
1077
- parts: _chunkUN33YOXWcjs.getFormulaSignatureParts.call(void 0, def, context.call.argIndex),
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, _chunkUN33YOXWcjs.FormulaEvaluator)({
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 = _chunkUN33YOXWcjs.parseFormula.call(void 0, formula);
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 = _chunkUN33YOXWcjs.getFormulaFunction.call(void 0, used.name);
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(_chunkUN33YOXWcjs.parseFormula.call(void 0, def.refersTo), nameHome, out, seenNames, volatile);
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 = _chunkUN33YOXWcjs.describeFormulaError.call(void 0, value);
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), _chunkUN33YOXWcjs.WHOLE_COLUMN_END_ROW, this.document.rows.length);
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
- _chunkUN33YOXWcjs.parseFormula.call(void 0, formula);
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