@rowsncolumns/spreadsheet-state 28.0.71 → 28.0.73
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/dist/cjs/api/immer-utils.d.ts.map +1 -1
- package/dist/cjs/api/immer-utils.js +1 -0
- package/dist/cjs/api/paste-special.d.ts +48 -0
- package/dist/cjs/api/paste-special.d.ts.map +1 -0
- package/dist/cjs/api/paste-special.js +229 -0
- package/dist/cjs/api/range.d.ts.map +1 -1
- package/dist/cjs/api/range.js +3 -1
- package/dist/cjs/commands.d.ts +5 -0
- package/dist/cjs/commands.d.ts.map +1 -1
- package/dist/cjs/components/editors/table-editor.js +7 -2
- package/dist/cjs/hooks/use-calculation-worker.d.ts.map +1 -1
- package/dist/cjs/hooks/use-calculation-worker.js +84 -19
- package/dist/cjs/hooks/use-calculation.d.ts +12 -2
- package/dist/cjs/hooks/use-calculation.d.ts.map +1 -1
- package/dist/cjs/hooks/use-calculation.js +128 -38
- package/dist/cjs/hooks/use-on-filter-table.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-filter-table.js +48 -28
- package/dist/cjs/hooks/use-on-paste.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-paste.js +82 -52
- package/dist/cjs/hooks/use-on-remove-duplicates.d.ts +2 -1
- package/dist/cjs/hooks/use-on-remove-duplicates.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-remove-duplicates.js +5 -3
- package/dist/cjs/hooks/use-on-show-column.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-show-column.js +2 -0
- package/dist/cjs/hooks/use-on-show-row.d.ts.map +1 -1
- package/dist/cjs/hooks/use-on-show-row.js +2 -0
- package/dist/cjs/hooks/use-sheet-properties.d.ts +1 -0
- package/dist/cjs/hooks/use-sheet-properties.d.ts.map +1 -1
- package/dist/cjs/hooks/use-sheet-properties.js +4 -0
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts +1 -1
- package/dist/cjs/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/cjs/hooks/use-spreadsheet-state.js +2 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/interface/calculation-interface.d.ts.map +1 -1
- package/dist/cjs/interface/calculation-interface.js +5 -0
- package/dist/cjs/interface/hide-column.d.ts.map +1 -1
- package/dist/cjs/interface/hide-column.js +4 -0
- package/dist/cjs/interface/hide-row.d.ts.map +1 -1
- package/dist/cjs/interface/hide-row.js +4 -0
- package/dist/cjs/interface/remove-duplicates.d.ts +3 -2
- package/dist/cjs/interface/remove-duplicates.d.ts.map +1 -1
- package/dist/cjs/interface/remove-duplicates.js +41 -7
- package/dist/cjs/interface/spreadsheet-interface.d.ts +2 -1
- package/dist/cjs/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/cjs/interface/spreadsheet-interface.js +3 -3
- package/dist/cjs/sheet-cell.d.ts.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/api/immer-utils.d.ts.map +1 -1
- package/dist/esm/api/immer-utils.js +1 -0
- package/dist/esm/api/paste-special.d.ts +48 -0
- package/dist/esm/api/paste-special.d.ts.map +1 -0
- package/dist/esm/api/paste-special.js +220 -0
- package/dist/esm/api/range.d.ts.map +1 -1
- package/dist/esm/api/range.js +3 -1
- package/dist/esm/commands.d.ts +5 -0
- package/dist/esm/commands.d.ts.map +1 -1
- package/dist/esm/components/editors/table-editor.js +7 -4
- package/dist/esm/hooks/use-calculation-worker.d.ts.map +1 -1
- package/dist/esm/hooks/use-calculation-worker.js +59 -8
- package/dist/esm/hooks/use-calculation.d.ts +12 -2
- package/dist/esm/hooks/use-calculation.d.ts.map +1 -1
- package/dist/esm/hooks/use-calculation.js +94 -10
- package/dist/esm/hooks/use-on-filter-table.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-filter-table.js +25 -8
- package/dist/esm/hooks/use-on-paste.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-paste.js +49 -14
- package/dist/esm/hooks/use-on-remove-duplicates.d.ts +2 -1
- package/dist/esm/hooks/use-on-remove-duplicates.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-remove-duplicates.js +5 -3
- package/dist/esm/hooks/use-on-show-column.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-show-column.js +2 -0
- package/dist/esm/hooks/use-on-show-row.d.ts.map +1 -1
- package/dist/esm/hooks/use-on-show-row.js +2 -0
- package/dist/esm/hooks/use-sheet-properties.d.ts +1 -0
- package/dist/esm/hooks/use-sheet-properties.d.ts.map +1 -1
- package/dist/esm/hooks/use-sheet-properties.js +4 -0
- package/dist/esm/hooks/use-spreadsheet-state.d.ts +1 -1
- package/dist/esm/hooks/use-spreadsheet-state.d.ts.map +1 -1
- package/dist/esm/hooks/use-spreadsheet-state.js +2 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/interface/calculation-interface.d.ts.map +1 -1
- package/dist/esm/interface/calculation-interface.js +3 -0
- package/dist/esm/interface/hide-column.d.ts.map +1 -1
- package/dist/esm/interface/hide-column.js +4 -0
- package/dist/esm/interface/hide-row.d.ts.map +1 -1
- package/dist/esm/interface/hide-row.js +4 -0
- package/dist/esm/interface/remove-duplicates.d.ts +3 -2
- package/dist/esm/interface/remove-duplicates.d.ts.map +1 -1
- package/dist/esm/interface/remove-duplicates.js +37 -6
- package/dist/esm/interface/spreadsheet-interface.d.ts +2 -1
- package/dist/esm/interface/spreadsheet-interface.d.ts.map +1 -1
- package/dist/esm/interface/spreadsheet-interface.js +3 -3
- package/dist/esm/sheet-cell.d.ts.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +17 -17
|
@@ -284,7 +284,7 @@ const isHeavyArrayFormula = (formula) => {
|
|
|
284
284
|
hasLargeExplicitRange(formula));
|
|
285
285
|
};
|
|
286
286
|
const cellPromises = new Map();
|
|
287
|
-
export const useCalculation = ({ locale, functions, iterativeCalculation, onDemandFormulaPattern, activeSheetId, onSuccess, onChangeDependencyGraph, getSheetId, getSheetName, getSheetIndex, getSheetCount, getActiveSheetId, getEffectiveValue, getUserEnteredValue, getConditionalFormatFormula, getDataValidationFormula, getSheetProperties, getCellData, onStructuredReference, onNamedRange, namedRanges, onChangeStaticReference, onBeginCalculation, getEffectiveStructuredValue, isRowHidden, isRowHiddenByFilter, enableLazyCalculation = true, enabled = true, }) => {
|
|
287
|
+
export const useCalculation = ({ locale, functions, iterativeCalculation, onDemandFormulaPattern, activeSheetId, onSuccess, onChangeDependencyGraph, getSheetId, getSheetName, getSheetIndex, getSheetNames, getSheetCount, getActiveSheetId, getEffectiveValue, getUserEnteredValue, getConditionalFormatFormula, getDataValidationFormula, getSheetProperties, getCellData, onStructuredReference, onNamedRange, namedRanges, onChangeStaticReference, onBeginCalculation, getEffectiveStructuredValue, isRowHidden, isRowHiddenByFilter, enableLazyCalculation = true, enabled = true, }) => {
|
|
288
288
|
// Convert string pattern to RegExp if provided
|
|
289
289
|
const onDemandPattern = useMemo(() => {
|
|
290
290
|
if (!onDemandFormulaPattern)
|
|
@@ -299,6 +299,9 @@ export const useCalculation = ({ locale, functions, iterativeCalculation, onDema
|
|
|
299
299
|
const graphOperationQueue = useRef([]);
|
|
300
300
|
// Results queue
|
|
301
301
|
const resultsQueueRef = useRef(new Map());
|
|
302
|
+
// Circular-reference members awaiting the next `onSuccess` flush (see
|
|
303
|
+
// `CalculationSuccessContext.circularReferences`).
|
|
304
|
+
const circularReferencesQueueRef = useRef(new Map());
|
|
302
305
|
const resultsFlushPendingRef = useRef(false);
|
|
303
306
|
const isFullRecalcRef = useRef(false);
|
|
304
307
|
const staticNodeArrayRef = useRef([]);
|
|
@@ -306,6 +309,7 @@ export const useCalculation = ({ locale, functions, iterativeCalculation, onDema
|
|
|
306
309
|
const getSheetNameStable = useCallbackRef(getSheetName);
|
|
307
310
|
const getSheetIdStable = useCallbackRef(getSheetId);
|
|
308
311
|
const getSheetIndexStable = useCallbackRef(getSheetIndex);
|
|
312
|
+
const getSheetNamesStable = useCallbackRef(getSheetNames);
|
|
309
313
|
const getSheetCountStable = useCallbackRef(getSheetCount);
|
|
310
314
|
const getCellDataStable = useCallbackRef(getCellData);
|
|
311
315
|
const onStructuredReferenceStable = useCallbackRef(onStructuredReference);
|
|
@@ -460,6 +464,58 @@ export const useCalculation = ({ locale, functions, iterativeCalculation, onDema
|
|
|
460
464
|
stack.push(node);
|
|
461
465
|
}
|
|
462
466
|
}
|
|
467
|
+
// A precedent that was deferred on an inactive sheet in an earlier
|
|
468
|
+
// pass is no longer dirty, so the dependency walk below cannot see
|
|
469
|
+
// it — an included cell would then evaluate against its stale value
|
|
470
|
+
// (Source → Intermediate → Result chains where Intermediate is never
|
|
471
|
+
// opened). Reclaim such precedents into this pass so they are
|
|
472
|
+
// ordered ahead of their dependents.
|
|
473
|
+
const reclaimed = [];
|
|
474
|
+
const reclaimDeferredNode = (position) => {
|
|
475
|
+
const sheetOperations = deferredOperationsBySheetRef.current.get(position.sheetId);
|
|
476
|
+
const key = makeKey(position);
|
|
477
|
+
const operation = sheetOperations?.get(key);
|
|
478
|
+
if (!sheetOperations || !operation) {
|
|
479
|
+
return undefined;
|
|
480
|
+
}
|
|
481
|
+
const graph = getCalculator().graph;
|
|
482
|
+
if (!graph.hasNode(position)) {
|
|
483
|
+
return undefined;
|
|
484
|
+
}
|
|
485
|
+
const node = graph.getNode(position);
|
|
486
|
+
if (!isCellNode(node)) {
|
|
487
|
+
return undefined;
|
|
488
|
+
}
|
|
489
|
+
sheetOperations.delete(key);
|
|
490
|
+
if (operation.force) {
|
|
491
|
+
forceRecalcKeys.current.add(key);
|
|
492
|
+
forceRecalcPositions.current.set(key, position);
|
|
493
|
+
}
|
|
494
|
+
cellNodeByKey.set(key, node);
|
|
495
|
+
const list = dirtyNodesBySheet.get(position.sheetId);
|
|
496
|
+
if (list) {
|
|
497
|
+
list.push(node);
|
|
498
|
+
}
|
|
499
|
+
else {
|
|
500
|
+
dirtyNodesBySheet.set(position.sheetId, [node]);
|
|
501
|
+
}
|
|
502
|
+
reclaimed.push(node);
|
|
503
|
+
return node;
|
|
504
|
+
};
|
|
505
|
+
const reclaimDeferredNodesInRange = (range) => {
|
|
506
|
+
const sheetOperations = deferredOperationsBySheetRef.current.get(range.sheetId);
|
|
507
|
+
if (!sheetOperations?.size) {
|
|
508
|
+
return;
|
|
509
|
+
}
|
|
510
|
+
const positions = [];
|
|
511
|
+
sheetOperations.forEach((operation) => {
|
|
512
|
+
if (!cellNodeByKey.has(makeKey(operation.position)) &&
|
|
513
|
+
isCellCoordinateWithinCellRange(operation.position, range)) {
|
|
514
|
+
positions.push(operation.position);
|
|
515
|
+
}
|
|
516
|
+
});
|
|
517
|
+
positions.forEach(reclaimDeferredNode);
|
|
518
|
+
};
|
|
463
519
|
while (stack.length) {
|
|
464
520
|
const current = stack.pop();
|
|
465
521
|
if (!current) {
|
|
@@ -480,13 +536,14 @@ export const useCalculation = ({ locale, functions, iterativeCalculation, onDema
|
|
|
480
536
|
continue;
|
|
481
537
|
if (isCellCoordinate(dependency)) {
|
|
482
538
|
const depKey = makeKey(dependency);
|
|
483
|
-
const depNode = cellNodeByKey.get(depKey);
|
|
539
|
+
const depNode = cellNodeByKey.get(depKey) ?? reclaimDeferredNode(dependency);
|
|
484
540
|
if (depNode && !includedKeys.has(depKey)) {
|
|
485
541
|
includedKeys.add(depKey);
|
|
486
542
|
stack.push(depNode);
|
|
487
543
|
}
|
|
488
544
|
continue;
|
|
489
545
|
}
|
|
546
|
+
reclaimDeferredNodesInRange(dependency);
|
|
490
547
|
const candidates = dirtyNodesBySheet.get(dependency.sheetId);
|
|
491
548
|
if (!candidates) {
|
|
492
549
|
continue;
|
|
@@ -514,6 +571,7 @@ export const useCalculation = ({ locale, functions, iterativeCalculation, onDema
|
|
|
514
571
|
deferred.push(node);
|
|
515
572
|
}
|
|
516
573
|
}
|
|
574
|
+
included.push(...reclaimed);
|
|
517
575
|
return { included, deferred };
|
|
518
576
|
};
|
|
519
577
|
const scheduleStartCalculation = useCallback((results, recalculatedPosition) => {
|
|
@@ -541,6 +599,7 @@ export const useCalculation = ({ locale, functions, iterativeCalculation, onDema
|
|
|
541
599
|
locale,
|
|
542
600
|
getSheetId: getSheetIdStable,
|
|
543
601
|
getSheetIndex: getSheetIndexStable,
|
|
602
|
+
getSheetNames: getSheetNames ? getSheetNamesStable : undefined,
|
|
544
603
|
getSheetCount: getSheetCountStable,
|
|
545
604
|
getSheetProperties: (sheetId = getActiveSheetId()) => getSheetProperties(sheetId),
|
|
546
605
|
getSheetName: getSheetNameStable,
|
|
@@ -548,6 +607,17 @@ export const useCalculation = ({ locale, functions, iterativeCalculation, onDema
|
|
|
548
607
|
isRowHiddenByFilter: isRowHiddenByFilter
|
|
549
608
|
? isRowHiddenByFilterStable
|
|
550
609
|
: undefined,
|
|
610
|
+
getCellFormula(sheetId, rowIndex, columnIndex) {
|
|
611
|
+
const userEnteredValue = getFinalUserEnteredValue({
|
|
612
|
+
sheetId,
|
|
613
|
+
rowIndex,
|
|
614
|
+
columnIndex,
|
|
615
|
+
});
|
|
616
|
+
return typeof userEnteredValue === "string" &&
|
|
617
|
+
isAFormula(userEnteredValue)
|
|
618
|
+
? userEnteredValue
|
|
619
|
+
: undefined;
|
|
620
|
+
},
|
|
551
621
|
getCellValue(sheetId, rowIndex, columnIndex, property) {
|
|
552
622
|
const key = makeKey({
|
|
553
623
|
sheetId,
|
|
@@ -830,16 +900,22 @@ export const useCalculation = ({ locale, functions, iterativeCalculation, onDema
|
|
|
830
900
|
if (!iterativeCalculationRef.current?.enabled) {
|
|
831
901
|
const circularKeys = findCircularKeys(cellNodes);
|
|
832
902
|
if (circularKeys.size) {
|
|
903
|
+
// Excel with iterative calculation off: a circular cell displays
|
|
904
|
+
// 0 — never an error value — so its dependents compute with 0
|
|
905
|
+
// (`=A1+1` → 1, `ISERROR(A1)` → FALSE) and nothing Excel doesn't
|
|
906
|
+
// recognise reaches an export. The warning Excel raises travels
|
|
907
|
+
// on `CalculationSuccessContext.circularReferences`.
|
|
833
908
|
const results = new Map();
|
|
909
|
+
const circularPositions = [];
|
|
834
910
|
for (const node of cellNodes) {
|
|
835
911
|
if (!circularKeys.has(node.key)) {
|
|
836
912
|
continue;
|
|
837
913
|
}
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
914
|
+
getComputationCache().set(node.key, 0);
|
|
915
|
+
results.set(node.key, [node.position, 0]);
|
|
916
|
+
circularPositions.push(node.position);
|
|
841
917
|
}
|
|
842
|
-
publishResults(results.values());
|
|
918
|
+
publishResults(results.values(), circularPositions);
|
|
843
919
|
cellNodes = cellNodes.filter((node) => !circularKeys.has(node.key));
|
|
844
920
|
}
|
|
845
921
|
}
|
|
@@ -1447,11 +1523,14 @@ export const useCalculation = ({ locale, functions, iterativeCalculation, onDema
|
|
|
1447
1523
|
/**
|
|
1448
1524
|
* Publish results back to the
|
|
1449
1525
|
*/
|
|
1450
|
-
const publishResults = useCallback((item) => {
|
|
1526
|
+
const publishResults = useCallback((item, circularReferences) => {
|
|
1451
1527
|
for (const entry of item) {
|
|
1452
1528
|
const [key] = entry;
|
|
1453
1529
|
resultsQueueRef.current.set(makeKey(key), entry);
|
|
1454
1530
|
}
|
|
1531
|
+
for (const position of circularReferences ?? []) {
|
|
1532
|
+
circularReferencesQueueRef.current.set(makeKey(position), position);
|
|
1533
|
+
}
|
|
1455
1534
|
if (resultsQueueRef.current.size === 0) {
|
|
1456
1535
|
return;
|
|
1457
1536
|
}
|
|
@@ -1469,14 +1548,20 @@ export const useCalculation = ({ locale, functions, iterativeCalculation, onDema
|
|
|
1469
1548
|
if (!resultsQueueRef.current.size) {
|
|
1470
1549
|
return;
|
|
1471
1550
|
}
|
|
1551
|
+
const context = circularReferencesQueueRef.current.size > 0
|
|
1552
|
+
? {
|
|
1553
|
+
circularReferences: Array.from(circularReferencesQueueRef.current.values()),
|
|
1554
|
+
}
|
|
1555
|
+
: {};
|
|
1472
1556
|
try {
|
|
1473
|
-
onSuccess?.(resultsQueueRef.current.values(), isFullRecalc,
|
|
1557
|
+
onSuccess?.(resultsQueueRef.current.values(), isFullRecalc, context);
|
|
1474
1558
|
}
|
|
1475
1559
|
catch (err) {
|
|
1476
1560
|
console.error("[spreadsheet-state] recalculation pass aborted:", err);
|
|
1477
1561
|
}
|
|
1478
1562
|
finally {
|
|
1479
1563
|
resultsQueueRef.current.clear();
|
|
1564
|
+
circularReferencesQueueRef.current.clear();
|
|
1480
1565
|
isFullRecalcRef.current = false;
|
|
1481
1566
|
}
|
|
1482
1567
|
});
|
|
@@ -1737,8 +1822,7 @@ export const useCalculation = ({ locale, functions, iterativeCalculation, onDema
|
|
|
1737
1822
|
if (!includeSource &&
|
|
1738
1823
|
isCellCoordinate(source) &&
|
|
1739
1824
|
isCellNode(node)) {
|
|
1740
|
-
return (node.position
|
|
1741
|
-
node.position.columnIndex !== source.columnIndex);
|
|
1825
|
+
return !isEqualPosition(node.position, source);
|
|
1742
1826
|
}
|
|
1743
1827
|
return true;
|
|
1744
1828
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-filter-table.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-filter-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,cAAc,EAEd,UAAU,EACV,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,SAAS,EACV,MAAM,2BAA2B,CAAC;AAkBnC,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,UAAU,GAAG,SAAS,CAAC;AAE5B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GAAG;IACxD,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD,CAAC;AAEF,KAAK,qBAAqB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAChE,KAAK,EAAE,gBAAgB,CAAC;IACxB,aAAa,IAAI,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,iBAAiB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E,iBAAiB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,UAAU,CAC7B,OAAO,kBAAkB,CAC1B,CAAC,oBAAoB,CAAC,CAAC;IACxB;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC7C,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,oOAenE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,yBAMf,MAAM,UACP,SAAS,GAAG,UAAU,eAGjB,MAAM,iBACJ,aAAa,GAAG,SAAS,kBACxB,cAAc,EAAE,GAAG,SAAS,iBAC7B,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,WAClC,iBAAiB,8BA8IhB,MAAM,UACP,SAAS,GAAG,UAAU,eACjB,MAAM,mBAwBxB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-on-filter-table.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-filter-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,cAAc,EAEd,UAAU,EACV,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,SAAS,EACV,MAAM,2BAA2B,CAAC;AAkBnC,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,UAAU,GAAG,SAAS,CAAC;AAE5B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GAAG;IACxD,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD,CAAC;AAEF,KAAK,qBAAqB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAChE,KAAK,EAAE,gBAAgB,CAAC;IACxB,aAAa,IAAI,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,aAAa,EAAE,MAAM,aAAa,CAAC;IACnC,iBAAiB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E,iBAAiB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,UAAU,CAC7B,OAAO,kBAAkB,CAC1B,CAAC,oBAAoB,CAAC,CAAC;IACxB;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC7C,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,oOAenE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,yBAMf,MAAM,UACP,SAAS,GAAG,UAAU,eAGjB,MAAM,iBACJ,aAAa,GAAG,SAAS,kBACxB,cAAc,EAAE,GAAG,SAAS,iBAC7B,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,WAClC,iBAAiB,8BA8IhB,MAAM,UACP,SAAS,GAAG,UAAU,eACjB,MAAM,mBAwBxB,CAAC;AAyJF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACvC,SAAS,MAAM,EACf,YAAY,UAAU,GAAG,SAAS,EAClC,aAAa,UAAU,EAAE,EACzB,oBAAoB,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,EAC3E,mBAAmB,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,EAC7E,mBAAmB,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,EAC7E,cAAc,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,EACzC,OAAO,gBAAgB,EACvB,SAAS,MAAM,EAGf,qBAAqB,UAAU,CAC7B,OAAO,kBAAkB,CAC1B,CAAC,oBAAoB,CAAC,EAGvB,qBAAqB,qBAAqB,EAAE,EAI5C,2BAA2B,wBAAwB,yBAyJpD,CAAC"}
|
|
@@ -231,6 +231,17 @@ const matchesCellIcon = (iconFilter, ctx, sheetId, rowIndex, columnIndex, getEff
|
|
|
231
231
|
const glyphIndex = Math.min(bucket, Math.max(0, ctx.glyphCount - 1));
|
|
232
232
|
return glyphIndex === iconFilter.iconId;
|
|
233
233
|
};
|
|
234
|
+
/**
|
|
235
|
+
* Filter conditions that search the cell's displayed text rather than its
|
|
236
|
+
* value: "9/29/2026" contains "29", the serial 46294 behind it is irrelevant.
|
|
237
|
+
*/
|
|
238
|
+
const DISPLAY_TEXT_CONDITION_TYPES = new Set([
|
|
239
|
+
"TEXT_CONTAINS",
|
|
240
|
+
"TEXT_NOT_CONTAINS",
|
|
241
|
+
"TEXT_STARTS_WITH",
|
|
242
|
+
"TEXT_ENDS_WITH",
|
|
243
|
+
]);
|
|
244
|
+
const isDisplayTextCondition = (type) => type != null && DISPLAY_TEXT_CONDITION_TYPES.has(type);
|
|
234
245
|
/**
|
|
235
246
|
* Get hidden rows from a filter
|
|
236
247
|
* @param filterSpecs
|
|
@@ -271,10 +282,14 @@ getCellConditionalFormat) => {
|
|
|
271
282
|
if (!columnFilter || !filterApplied) {
|
|
272
283
|
continue;
|
|
273
284
|
}
|
|
274
|
-
const
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
285
|
+
const condition = columnFilter.filterCriteria.condition;
|
|
286
|
+
// Text-search conditions match the cell's DISPLAYED text, as Excel and
|
|
287
|
+
// Google Sheets do. The formula fallback (`=ISNUMBER(SEARCH("29",A2))`)
|
|
288
|
+
// searches the raw value, so "Text contains 29" over a date column hit
|
|
289
|
+
// every serial containing "29" (9/25–9/30/2026) instead of just 9/29.
|
|
290
|
+
const matchesDisplayText = isDisplayTextCondition(condition?.type);
|
|
291
|
+
const formulaRule = condition && !matchesDisplayText
|
|
292
|
+
? { condition }
|
|
278
293
|
: undefined;
|
|
279
294
|
const isFormulaRule = isDataValidationFormulaRule(formulaRule);
|
|
280
295
|
const baseCellRef = cellToAddress({ rowIndex: startRowIndex, columnIndex }) ?? "A1";
|
|
@@ -291,10 +306,12 @@ getCellConditionalFormat) => {
|
|
|
291
306
|
const showBlanks = visibleValuesSet?.has(BLANK_LABEL) ?? false;
|
|
292
307
|
const effectiveValue = getEffectiveValue(sheetId, rowIndex, columnIndex);
|
|
293
308
|
const formattedValue = getFormattedValue(sheetId, rowIndex, columnIndex);
|
|
294
|
-
const validationResult =
|
|
295
|
-
?
|
|
296
|
-
?
|
|
297
|
-
:
|
|
309
|
+
const validationResult = condition?.type
|
|
310
|
+
? matchesDisplayText
|
|
311
|
+
? checkFilterRule(columnFilter.filterCriteria, formattedValue ?? "")
|
|
312
|
+
: formulaValue
|
|
313
|
+
? await onRequestCalculate(formulaValue, sheetId, rowIndex, columnIndex)
|
|
314
|
+
: checkFilterRule(columnFilter.filterCriteria, effectiveValue)
|
|
298
315
|
: true;
|
|
299
316
|
const isBlanksVisible = showBlanks
|
|
300
317
|
? isNil(formattedValue) || formattedValue === ""
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-paste.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-paste.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EACV,QAAQ,EACR,wBAAwB,
|
|
1
|
+
{"version":3,"file":"use-on-paste.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-paste.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import { useCallback } from "react";
|
|
|
9
9
|
import { processSideEffectDependentCells } from "../api/dependency";
|
|
10
10
|
import { createSheetCellIdentifier } from "../api/formula";
|
|
11
11
|
import { createSheetDraft } from "../api/immer-utils";
|
|
12
|
+
import { applyPasteOperation, isBlankClipboardCell, resolvePasteSpecialOptions, } from "../api/paste-special";
|
|
12
13
|
import { findAdjacentTable, findTableColumnIndex } from "../api/table";
|
|
13
14
|
import { addCalculatedColumnsForRowExpansion } from "../interface/change-table-column";
|
|
14
15
|
import { collectDataValidationTarget, extendDataValidationRanges, } from "../interface/data-validation-utils";
|
|
@@ -62,7 +63,11 @@ export const useOnPaste = ({ rowCount, columnCount, locale, sheetData, tables: c
|
|
|
62
63
|
const getFinalRowHeight = useGetFinalRowHeight();
|
|
63
64
|
const { enqueue, processQueue } = useCalculationQueue({ enqueueCalculation });
|
|
64
65
|
return useCallback(async (e, sourceSheetId, destinationSheetId, copiedSelections, activeCell, selections, finalSelections, isCutOperation) => {
|
|
65
|
-
|
|
66
|
+
// Paste Special request (values / formats / formulas, operation, skip
|
|
67
|
+
// blanks, transpose) stashed on the event by the grid's `paste()`.
|
|
68
|
+
const pasteSpecial = resolvePasteSpecialOptions(e?.clipboardData);
|
|
69
|
+
const pasteMode = pasteSpecial.paste;
|
|
70
|
+
const pasteOperation = pasteSpecial.operation;
|
|
66
71
|
const pasteEvent = e;
|
|
67
72
|
const forcePlainText = Boolean(pasteEvent?.__forcePlainText ||
|
|
68
73
|
(pasteEvent?.shiftKey &&
|
|
@@ -104,16 +109,16 @@ export const useOnPaste = ({ rowCount, columnCount, locale, sheetData, tables: c
|
|
|
104
109
|
if (isNil(selectedRowValues)) {
|
|
105
110
|
return;
|
|
106
111
|
}
|
|
107
|
-
if (
|
|
112
|
+
if (pasteSpecial.transpose && selectedRowValues.length) {
|
|
108
113
|
selectedRowValues = transpose(selectedRowValues);
|
|
109
114
|
}
|
|
110
|
-
|
|
115
|
+
if (pasteMode === "formats") {
|
|
111
116
|
selectedRowValues = pickFormatting(selectedRowValues);
|
|
112
117
|
}
|
|
113
|
-
else if (
|
|
118
|
+
else if (pasteMode === "formulas") {
|
|
114
119
|
selectedRowValues = pickFormula(selectedRowValues, destinationSheetId, locale);
|
|
115
120
|
}
|
|
116
|
-
else if (
|
|
121
|
+
else if (pasteMode === "values") {
|
|
117
122
|
selectedRowValues = pickValue(selectedRowValues, destinationSheetId, locale);
|
|
118
123
|
}
|
|
119
124
|
const saveHistory = createHistory();
|
|
@@ -362,19 +367,50 @@ export const useOnPaste = ({ rowCount, columnCount, locale, sheetData, tables: c
|
|
|
362
367
|
for (let columnIndex = to.range.startColumnIndex; columnIndex <= to.range.endColumnIndex; columnIndex++, columnCursor++) {
|
|
363
368
|
const dataColumnIndex = colSpan > 0 ? columnCursor % colSpan : 0;
|
|
364
369
|
let cellValue = selectedRowValues[dataRowIndex]?.[dataColumnIndex];
|
|
365
|
-
|
|
370
|
+
// Skip blanks: an empty clipboard cell leaves the
|
|
371
|
+
// destination (value and format) untouched.
|
|
372
|
+
if (pasteSpecial.skipBlanks &&
|
|
373
|
+
isBlankClipboardCell(cellValue)) {
|
|
374
|
+
continue;
|
|
375
|
+
}
|
|
376
|
+
// Operation: combine the pasted cell with the cell it
|
|
377
|
+
// lands on. The clipboard is anchored at the FIRST tile,
|
|
378
|
+
// so a source formula is relocated to the tile it lands
|
|
379
|
+
// on first (the same `moveFormula` shift the plain paste
|
|
380
|
+
// applies below); the composed `=(dest)op(source)` is
|
|
381
|
+
// then anchored at the destination and must not be moved
|
|
382
|
+
// again (that would shift the destination fragment too).
|
|
383
|
+
if (pasteOperation) {
|
|
384
|
+
const sourceFormula = getExtendedValueFormula(getCellUserEnteredValue(cellValue));
|
|
385
|
+
if (!isNil(sourceFormula) &&
|
|
386
|
+
dataRowIndex === 0 &&
|
|
387
|
+
dataColumnIndex === 0 &&
|
|
388
|
+
(rowIndex !== sourceCell.rowIndex ||
|
|
389
|
+
columnIndex !== sourceCell.columnIndex)) {
|
|
390
|
+
const tileCell = new SheetCell();
|
|
391
|
+
tileCell.setLocale(locale);
|
|
392
|
+
tileCell.assign(destinationSheetId, sourceCell, cellValue);
|
|
393
|
+
tileCell.moveFormula(sourceCell, { rowIndex, columnIndex }, activeSheetName, { preserveAbsolutes: true });
|
|
394
|
+
cellValue = {
|
|
395
|
+
...cellValue,
|
|
396
|
+
ue: { ...cellValue?.ue, fv: tileCell.formula },
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
cellValue = applyPasteOperation(cellValue, prevSheetData[destinationSheetId]?.[rowIndex]?.values?.[columnIndex], pasteOperation, destinationSheetId, locale);
|
|
400
|
+
}
|
|
401
|
+
if (pasteMode === "formats") {
|
|
366
402
|
const existingCellData = prevSheetData[destinationSheetId]?.[rowIndex]?.values?.[columnIndex];
|
|
367
403
|
cellValue = { ...existingCellData, ...cellValue };
|
|
368
404
|
sheetCell.extendCellData(cellValue);
|
|
369
405
|
}
|
|
370
|
-
if (
|
|
406
|
+
if (pasteMode === "values" || forcePlainText) {
|
|
371
407
|
const existingCellData = prevSheetData[destinationSheetId]?.[rowIndex]?.values?.[columnIndex];
|
|
372
408
|
// Remove ss from existingCellData since we're replacing the value
|
|
373
409
|
const { ss: _ss, ...existingWithoutSs } = existingCellData ?? {};
|
|
374
410
|
cellValue = { ...existingWithoutSs, ...cellValue };
|
|
375
411
|
sheetCell.extendCellData(cellValue);
|
|
376
412
|
}
|
|
377
|
-
if (
|
|
413
|
+
if (pasteSpecial.transpose && pasteMode === "all") {
|
|
378
414
|
sheetCell.assign(destinationSheetId, { rowIndex, columnIndex }, prevSheetData[destinationSheetId]?.[rowIndex]?.values?.[columnIndex], {
|
|
379
415
|
locale,
|
|
380
416
|
cellXfsRegistry,
|
|
@@ -396,11 +432,13 @@ export const useOnPaste = ({ rowCount, columnCount, locale, sheetData, tables: c
|
|
|
396
432
|
sharedStringRegistry,
|
|
397
433
|
});
|
|
398
434
|
}
|
|
399
|
-
if (
|
|
435
|
+
if (pasteMode === "formats") {
|
|
400
436
|
sheetCell.refreshFormattedValue();
|
|
401
437
|
}
|
|
402
438
|
if (sheetCell.isFormula()) {
|
|
403
|
-
if (dataRowIndex === 0 &&
|
|
439
|
+
if (dataRowIndex === 0 &&
|
|
440
|
+
dataColumnIndex === 0 &&
|
|
441
|
+
!pasteOperation) {
|
|
404
442
|
sheetCell.moveFormula(sourceCell, {
|
|
405
443
|
rowIndex,
|
|
406
444
|
columnIndex,
|
|
@@ -544,10 +582,7 @@ export const useOnPaste = ({ rowCount, columnCount, locale, sheetData, tables: c
|
|
|
544
582
|
// Skipped for paste-special variants since the destination
|
|
545
583
|
// cell ends up as a merge of existing + pasted data, not
|
|
546
584
|
// the raw pasted value we can read from selectedRowValues.
|
|
547
|
-
const skipAutoResize =
|
|
548
|
-
pasteSpecialType === "Value" ||
|
|
549
|
-
pasteSpecialType === "Formula" ||
|
|
550
|
-
pasteSpecialType === "Transposed";
|
|
585
|
+
const skipAutoResize = pasteSpecial.isSpecial;
|
|
551
586
|
if (!skipAutoResize &&
|
|
552
587
|
getFinalRowHeight &&
|
|
553
588
|
selectedRowValues.length &&
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CellInterface, SelectionArea } from "@rowsncolumns/common-types";
|
|
2
2
|
import type { CellData, SelectionAttributes, Sheet } from "@rowsncolumns/spreadsheet";
|
|
3
|
+
import { type RemoveDuplicatesOptions } from "../interface/remove-duplicates";
|
|
3
4
|
import type { useCalculation } from "./use-calculation";
|
|
4
5
|
import type { useSheetProperties } from "./use-sheet-properties";
|
|
5
6
|
import type { UseSpreadsheetProps } from "./use-spreadsheet-state";
|
|
@@ -17,5 +18,5 @@ export type UseOnRemoveDuplicatesProps<T extends CellData> = {
|
|
|
17
18
|
onChangeSheetData: UseSpreadsheetProps<T, Sheet>["onChangeSheetData"];
|
|
18
19
|
onCommand?: OnCommand;
|
|
19
20
|
};
|
|
20
|
-
export declare const useOnRemoveDuplicates: <T extends CellData>({ locale, cellXfsRegistry, sharedStringRegistry, getFormattedValue, onChangeSheetData, enqueueCalculation, createHistory, onCommand, }: UseOnRemoveDuplicatesProps<T>) => (sheetId: number, activeCell: CellInterface, selections?: SelectionArea<SelectionAttributes>[]) => import("../interface/remove-duplicates").RemoveDuplicatesResult | undefined;
|
|
21
|
+
export declare const useOnRemoveDuplicates: <T extends CellData>({ locale, cellXfsRegistry, sharedStringRegistry, getFormattedValue, onChangeSheetData, enqueueCalculation, createHistory, onCommand, }: UseOnRemoveDuplicatesProps<T>) => (sheetId: number, activeCell: CellInterface, selections?: SelectionArea<SelectionAttributes>[], options?: RemoveDuplicatesOptions) => import("../interface/remove-duplicates").RemoveDuplicatesResult | undefined;
|
|
21
22
|
//# sourceMappingURL=use-on-remove-duplicates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-remove-duplicates.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-remove-duplicates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"use-on-remove-duplicates.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-remove-duplicates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,QAAQ,IAAI;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,iBAAiB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E,kBAAkB,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAC5E,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACtE,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,QAAQ,EAAE,wIASvD,0BAA0B,CAAC,CAAC,CAAC,eAKjB,MAAM,cACH,aAAa,eACZ,aAAa,CAAC,mBAAmB,CAAC,EAAE,YACvC,uBAAuB,gFA2CtC,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
|
-
import { removeDuplicates } from "../interface/remove-duplicates";
|
|
2
|
+
import { removeDuplicates, } from "../interface/remove-duplicates";
|
|
3
3
|
import { useCanEditCellRange } from "./use-can-edit-cellrange";
|
|
4
4
|
export const useOnRemoveDuplicates = ({ locale, cellXfsRegistry, sharedStringRegistry, getFormattedValue, onChangeSheetData, enqueueCalculation, createHistory, onCommand, }) => {
|
|
5
5
|
const canEditCellRange = useCanEditCellRange();
|
|
6
|
-
return useCallback((sheetId, activeCell, selections) => {
|
|
6
|
+
return useCallback((sheetId, activeCell, selections, options) => {
|
|
7
7
|
if (!canEditCellRange(sheetId, activeCell)) {
|
|
8
8
|
console.debug("This range is protected, users cannot edit this cell range.");
|
|
9
9
|
return;
|
|
@@ -16,13 +16,15 @@ export const useOnRemoveDuplicates = ({ locale, cellXfsRegistry, sharedStringReg
|
|
|
16
16
|
onChangeSheetData,
|
|
17
17
|
enqueueCalculation,
|
|
18
18
|
createHistory,
|
|
19
|
-
})(sheetId, activeCell, selections);
|
|
19
|
+
})(sheetId, activeCell, selections, options);
|
|
20
20
|
// Stream the semantic command so an engine consumer recomputes from the deduped cells.
|
|
21
21
|
onCommand?.({
|
|
22
22
|
command: "remove-duplicates",
|
|
23
23
|
sheetId,
|
|
24
24
|
activeCell,
|
|
25
25
|
selections: selections ?? [],
|
|
26
|
+
columnIndices: options?.columnIndices,
|
|
27
|
+
hasHeader: options?.hasHeader,
|
|
26
28
|
});
|
|
27
29
|
return result;
|
|
28
30
|
}, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-show-column.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-show-column.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE/E,OAAO,KAAK,EACV,QAAQ,EAER,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAC/D,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/D,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,GAC/C,IAAI,CAAC;IACR,aAAa,IAAI,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,iGAOlE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,eAMf,MAAM,iBAAiB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"use-on-show-column.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-show-column.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE/E,OAAO,KAAK,EACV,QAAQ,EAER,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAC/D,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/D,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,GAC/C,IAAI,CAAC;IACR,aAAa,IAAI,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,iGAOlE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,eAMf,MAAM,iBAAiB,MAAM,EAAE,SAyF5C,CAAC"}
|
|
@@ -21,6 +21,8 @@ export const useOnShowColumn = ({ createHistory, onChangeActiveCell, onChangeSel
|
|
|
21
21
|
});
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
+
if (columnIndexes.length === 0)
|
|
25
|
+
return;
|
|
24
26
|
const saveHistory = createHistory();
|
|
25
27
|
const firstColumnIndex = columnIndexes[0];
|
|
26
28
|
const newActiveCell = getNextFocusableCell?.(sheetId, { rowIndex: 0, columnIndex: firstColumnIndex }, Direction.Down, false) ?? { rowIndex: 1, columnIndex: firstColumnIndex };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-on-show-row.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-show-row.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE/E,OAAO,KAAK,EACV,QAAQ,EAER,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AASnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,iBAAiB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAC5D,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/D,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,GAC/C,IAAI,CAAC;IACR,aAAa,IAAI,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,2HAQ/D,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,eAMZ,MAAM,cAAc,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"use-on-show-row.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-show-row.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE/E,OAAO,KAAK,EACV,QAAQ,EAER,mBAAmB,EACnB,KAAK,EACN,MAAM,2BAA2B,CAAC;AASnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,iBAAiB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IAC5D,cAAc,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC5D,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/D,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,GAC/C,IAAI,CAAC;IACR,aAAa,IAAI,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,EAAE,2HAQ/D,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,eAMZ,MAAM,cAAc,MAAM,EAAE,SA6FzC,CAAC"}
|
|
@@ -21,6 +21,8 @@ export const useOnShowRow = ({ createHistory, onChangeActiveCell, onChangeSelect
|
|
|
21
21
|
});
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
+
if (rowIndexes.length === 0)
|
|
25
|
+
return;
|
|
24
26
|
const saveHistory = createHistory();
|
|
25
27
|
const firstRowIndex = rowIndexes[0];
|
|
26
28
|
const newActiveCell = getNextFocusableCell?.(sheetId, { rowIndex: firstRowIndex, columnIndex: 0 }, Direction.Right, false) ?? { rowIndex: firstRowIndex, columnIndex: 1 };
|
|
@@ -56,6 +56,7 @@ export declare const useSheetProperties: <T extends CellData = CellData, S exten
|
|
|
56
56
|
getSheetName: (sheetId: number) => string;
|
|
57
57
|
getSheetCount: () => number;
|
|
58
58
|
getSheetIndex: (sheetName?: string) => number | undefined;
|
|
59
|
+
getSheetNames: () => string[];
|
|
59
60
|
getSheetProperties: (sheetId: number) => SheetProperty | undefined;
|
|
60
61
|
getCellData: (sheetId: number, rowIndex: number, columnIndex: number) => T | null | undefined;
|
|
61
62
|
getMentionsFromCell: (sheetId: number, rowIndex: number, columnIndex: number) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-sheet-properties.d.ts","sourceRoot":"","sources":["../../../hooks/use-sheet-properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGjE,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,EACL,UAAU,EAEX,MAAM,2BAA2B,CAAC;AA+BnC,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAe7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,UAAU,CAAC;AAElB,KAAK,iBAAiB,GAAG,CAAC,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC;AAEnE,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,KAAK,IAAI;IACzE,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC7C,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC7C,eAAe,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACrD,2BAA2B,EAAE,mBAAmB,CAC9C,CAAC,EACD,CAAC,CACF,CAAC,6BAA6B,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,iBAAiB,CAAC;CAC9D,CAAC;AAoEF,eAAO,MAAM,kBAAkB,GAC7B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,gOAgBC,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC;;mCAkNlB,MAAM;sCAMN,MAAM,YAAY,MAAM;4BA8EpB,MAAM,KACuB,MAAM;4BATrC,MAAM,KAAwC,MAAM;;
|
|
1
|
+
{"version":3,"file":"use-sheet-properties.d.ts","sourceRoot":"","sources":["../../../hooks/use-sheet-properties.ts"],"names":[],"mappings":"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"}
|
|
@@ -253,6 +253,9 @@ export const useSheetProperties = ({ conditionalFormats, sheetData, sheets, acti
|
|
|
253
253
|
});
|
|
254
254
|
return map;
|
|
255
255
|
}, [sheets]);
|
|
256
|
+
// Sheet names in tab order — resolves 3-D references (`Sheet1:Sheet3!A1`)
|
|
257
|
+
const orderedSheetNames = useMemo(() => sortSheetsByIndex(sheets, true).map((sheet) => sheet.title), [sheets]);
|
|
258
|
+
const getSheetNames = useCallbackRef(useCallback(() => orderedSheetNames, [orderedSheetNames]));
|
|
256
259
|
// For calculator
|
|
257
260
|
const getSheetIndex = useCallbackRef(useCallback((sheetName) => {
|
|
258
261
|
const resolvedName = sheetName ?? sheetnameBySheetId.get(activeSheetId);
|
|
@@ -871,6 +874,7 @@ export const useSheetProperties = ({ conditionalFormats, sheetData, sheets, acti
|
|
|
871
874
|
getSheetName,
|
|
872
875
|
getSheetCount,
|
|
873
876
|
getSheetIndex,
|
|
877
|
+
getSheetNames,
|
|
874
878
|
getSheetProperties,
|
|
875
879
|
getCellData,
|
|
876
880
|
getMentionsFromCell,
|
|
@@ -606,7 +606,7 @@ export declare const useSpreadsheetState: <T extends CellData = CellData, S exte
|
|
|
606
606
|
getUserEnteredExtendedValue: (sheetId: number, rowIndex: number, columnIndex: number) => T["ue"];
|
|
607
607
|
getErrorValue: (sheetId: number, rowIndex: number, columnIndex: number) => any;
|
|
608
608
|
onSplitTextToColumns: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections?: SelectionArea<SelectionAttributes>[], delimiter?: string) => void;
|
|
609
|
-
onRemoveDuplicates: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections?: SelectionArea<SelectionAttributes>[]) => import("../interface/remove-duplicates").RemoveDuplicatesResult | undefined;
|
|
609
|
+
onRemoveDuplicates: (sheetId: number, activeCell: import("@rowsncolumns/common-types").CellInterface, selections?: SelectionArea<SelectionAttributes>[], options?: import("@rowsncolumns/spreadsheet").RemoveDuplicatesOptions) => import("../interface/remove-duplicates").RemoveDuplicatesResult | undefined;
|
|
610
610
|
onRequestAddRows: (sheetId: number, additionalRowCount: number) => S | undefined;
|
|
611
611
|
getDependents: ((source: import("@rowsncolumns/dag").CellCoordinate | import("@rowsncolumns/dag").CellCoordinateRange, includeSource?: boolean) => (import("@rowsncolumns/dag").CellNode | import("@rowsncolumns/dag").StaticNode)[]) | (() => never[]);
|
|
612
612
|
getPrecedents: ((source: import("@rowsncolumns/dag").CellCoordinate | import("@rowsncolumns/dag").CellCoordinateRange, includeSource?: boolean) => (import("@rowsncolumns/dag").CellNode | import("@rowsncolumns/dag").StaticNode | import("@rowsncolumns/dag").CellRangeNode)[]) | (() => never[]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-spreadsheet-state.d.ts","sourceRoot":"","sources":["../../../hooks/use-spreadsheet-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EACV,2BAA2B,EAC3B,aAAa,EACb,QAAQ,EACR,UAAU,EACX,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,QAAQ,EACR,SAAS,EACT,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,UAAU,EACV,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,MAAM,EACP,MAAM,2BAA2B,CAAC;AAwBnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAInC,OAAO,EAAE,iBAAiB,IAAI,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAkH7D,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AASrE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI,MAAM,CAC3D,MAAM,GAAG,MAAM,EACf,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAC1D,CAAC;AACF,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,QAAQ,GAAG,IAAI,GAAG,SAAS,IAAI;IAC3D,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;CACd,CAAC;AAGF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,QAAQ,GAAG,IAAI,GAAG,SAAS,IAAI;IACpE,MAAM,EAAE,CAAC,EAAE,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAC7B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,SAAS,KAAK,GAAG,KAAK,IACrB;IACF;;OAEG;IACH,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IAC5C;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC;;OAEG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACrD;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACxE;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACvE;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnE;;OAEG;IACH,mBAAmB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACzE;;OAEG;IACH,0BAA0B,CAAC,EAAE,KAAK,CAAC,QAAQ,CACzC,KAAK,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC,CAC9C,CAAC;IACF;;OAEG;IACH,uBAAuB,CAAC,EAAE,KAAK,CAAC,QAAQ,CACtC,KAAK,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC,CACjD,CAAC;IACF;;OAEG;IACH,uBAAuB,CAAC,EAAE,KAAK,CAAC,QAAQ,CACtC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CACvC,CAAC;IACF;;OAEG;IACH,oBAAoB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC3E;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACvE;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,QAAQ,CAC9B,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CACjD,CAAC;IACF;;OAEG;IACH,qBAAqB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5E;;OAEG;IACH,mBAAmB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACzE;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjE;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrE;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;OAEG;IACH,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC7C;;OAEG;IACH,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC7C;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC1C;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,uBAAuB,CAAC,EAAE,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;IACzE;;;;OAIG;IACH,eAAe,CAAC,CACd,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,EAAE,GACrE,IAAI,CAAC;IACR;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,wBAAwB,CAAC;IACpD;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACjC;;;;;;OAMG;IACH,2BAA2B,CAAC,CAC1B,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,EACpE,QAAQ,CAAC,EAAE,MAAM,OAAO,eAAe,GACtC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAEzC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CACnB,CAAC,SACG,OAAO,GACP,OAAO,GACP,oBAAoB,GACpB,iBAAiB,GACjB,OAAO,GACP,aAAa,GACb,OAAO,GACP,aAAa,GACb,iBAAiB,GACjB,OAAO,EAEX,IAAI,EAAE,CAAC,KACJ,CAAC,SAAS,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAClD;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACxE;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,MAAM,CAAC;IACvC;;;OAGG;IACH,eAAe,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACtC;;OAEG;IACH,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;IACnD;;;OAGG;IACH,6BAA6B,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C;;OAEG;IACH,gBAAgB,CAAC,EAAE,CACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KAC/D,IAAI,CAAC;IACV;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;;OAGG;IACH,SAAS,CAAC,EAAE,CACV,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,KACE,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CACT,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,KACE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC,CAAC;AAOF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GACpC,OAAO,SAAS,KACf,gBAAgB,GAAG,SAmCrB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,4qCA6IC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"use-spreadsheet-state.d.ts","sourceRoot":"","sources":["../../../hooks/use-spreadsheet-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -396,7 +396,7 @@ sanitizeHtml, }) => {
|
|
|
396
396
|
const getPrecedentsRef = useRef(undefined);
|
|
397
397
|
const getPrecedentsForward = useCallback((cell) => getPrecedentsRef.current?.(cell) ?? [], []);
|
|
398
398
|
// Sheet properties
|
|
399
|
-
const { getDataRowCount, getNonEmptyRowCount, getNonEmptyColumnCount, getDataColumnCount, getSheetId, getSheetName, getSheetCount, getSheetIndex, getSheetProperties, getCellData, getMentionsFromCell, getTextFormatRuns, getEffectiveValue, getEffectiveValueForCalculation, getUserEnteredValue, getUserEnteredValueStable, getConditionalFormatFormula, getDataValidationFormula, getDataValidation, getDefaultHorizontalAlignment, getDataValidationById, getActiveSheetId, getUserEnteredFormat, getEffectiveFormat, getFormattedValue, getSeriesValuesFromRange, getFormattingFromRange, getUserEnteredValuesFromRange, getFormulasFromRange, getDomainValuesFromRange, getColumnarDataFromRange, isColumnHidden, isHiddenRow, isHiddenByFilterRow, getSheetRowCount, getSheetColumnCount, getColumnWidth, getRowHeight, getEffectiveExtendedValue, getUserEnteredExtendedValue, getFrozenRowCount, getErrorValue, } = useSheetProperties({
|
|
399
|
+
const { getDataRowCount, getNonEmptyRowCount, getNonEmptyColumnCount, getDataColumnCount, getSheetId, getSheetName, getSheetCount, getSheetIndex, getSheetNames, getSheetProperties, getCellData, getMentionsFromCell, getTextFormatRuns, getEffectiveValue, getEffectiveValueForCalculation, getUserEnteredValue, getUserEnteredValueStable, getConditionalFormatFormula, getDataValidationFormula, getDataValidation, getDefaultHorizontalAlignment, getDataValidationById, getActiveSheetId, getUserEnteredFormat, getEffectiveFormat, getFormattedValue, getSeriesValuesFromRange, getFormattingFromRange, getUserEnteredValuesFromRange, getFormulasFromRange, getDomainValuesFromRange, getColumnarDataFromRange, isColumnHidden, isHiddenRow, isHiddenByFilterRow, getSheetRowCount, getSheetColumnCount, getColumnWidth, getRowHeight, getEffectiveExtendedValue, getUserEnteredExtendedValue, getFrozenRowCount, getErrorValue, } = useSheetProperties({
|
|
400
400
|
getEffectiveStructuredValue,
|
|
401
401
|
conditionalFormats,
|
|
402
402
|
sheetData,
|
|
@@ -507,6 +507,7 @@ sanitizeHtml, }) => {
|
|
|
507
507
|
getEffectiveValue: getEffectiveValueForCalculation,
|
|
508
508
|
activeSheetId,
|
|
509
509
|
getSheetIndex,
|
|
510
|
+
getSheetNames,
|
|
510
511
|
getUserEnteredValue: getUserEnteredValueStable,
|
|
511
512
|
getConditionalFormatFormula,
|
|
512
513
|
getDataValidationFormula,
|