@odoo/o-spreadsheet 18.1.10 → 18.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/o-spreadsheet.cjs.js +126 -46
- package/dist/o-spreadsheet.d.ts +4 -1
- package/dist/o-spreadsheet.esm.js +126 -46
- package/dist/o-spreadsheet.iife.js +126 -46
- package/dist/o-spreadsheet.iife.min.js +380 -380
- package/dist/o_spreadsheet.xml +27 -14
- package/package.json +1 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
|
-
* @version 18.1.
|
|
6
|
-
* @date 2025-03-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.1.11
|
|
6
|
+
* @date 2025-03-12T15:31:44.276Z
|
|
7
|
+
* @hash 7de2363
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { useEnv, useSubEnv, onWillUnmount, useComponent, status, Component, useRef, onMounted, useEffect, useState, onPatched, onWillPatch, onWillUpdateProps, useExternalListener, onWillStart, xml, useChildSubEnv, markRaw, toRaw } from '@odoo/owl';
|
|
@@ -422,7 +422,6 @@ function escapeRegExp(str) {
|
|
|
422
422
|
* Sparse arrays remain sparse.
|
|
423
423
|
*/
|
|
424
424
|
function deepCopy(obj) {
|
|
425
|
-
const result = Array.isArray(obj) ? [] : {};
|
|
426
425
|
switch (typeof obj) {
|
|
427
426
|
case "object": {
|
|
428
427
|
if (obj === null) {
|
|
@@ -434,8 +433,18 @@ function deepCopy(obj) {
|
|
|
434
433
|
else if (!(isPlainObject(obj) || obj instanceof Array)) {
|
|
435
434
|
throw new Error("Unsupported type: only objects and arrays are supported");
|
|
436
435
|
}
|
|
437
|
-
|
|
438
|
-
|
|
436
|
+
const result = Array.isArray(obj) ? new Array(obj.length) : {};
|
|
437
|
+
if (Array.isArray(obj)) {
|
|
438
|
+
for (let i = 0, len = obj.length; i < len; i++) {
|
|
439
|
+
if (i in obj) {
|
|
440
|
+
result[i] = deepCopy(obj[i]);
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
else {
|
|
445
|
+
for (const key in obj) {
|
|
446
|
+
result[key] = deepCopy(obj[key]);
|
|
447
|
+
}
|
|
439
448
|
}
|
|
440
449
|
return result;
|
|
441
450
|
}
|
|
@@ -2688,21 +2697,30 @@ function mergeContiguousZones(zones) {
|
|
|
2688
2697
|
return mergedZones;
|
|
2689
2698
|
}
|
|
2690
2699
|
|
|
2700
|
+
const globalReverseLookup$1 = new WeakMap();
|
|
2701
|
+
const globalIdCounter = new WeakMap();
|
|
2691
2702
|
/**
|
|
2692
2703
|
* Get the id of the given item (its key in the given dictionary).
|
|
2693
2704
|
* If the given item does not exist in the dictionary, it creates one with a new id.
|
|
2694
2705
|
*/
|
|
2695
2706
|
function getItemId(item, itemsDic) {
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2707
|
+
if (!globalReverseLookup$1.has(itemsDic)) {
|
|
2708
|
+
globalReverseLookup$1.set(itemsDic, new Map());
|
|
2709
|
+
globalIdCounter.set(itemsDic, 0);
|
|
2710
|
+
}
|
|
2711
|
+
const reverseLookup = globalReverseLookup$1.get(itemsDic);
|
|
2712
|
+
const canonical = getCanonicalRepresentation(item);
|
|
2713
|
+
if (reverseLookup.has(canonical)) {
|
|
2714
|
+
const id = reverseLookup.get(canonical);
|
|
2715
|
+
itemsDic[id] = item;
|
|
2716
|
+
return id;
|
|
2700
2717
|
}
|
|
2701
2718
|
// Generate new Id if the item didn't exist in the dictionary
|
|
2702
|
-
const
|
|
2703
|
-
|
|
2704
|
-
itemsDic
|
|
2705
|
-
|
|
2719
|
+
const newId = globalIdCounter.get(itemsDic) + 1;
|
|
2720
|
+
reverseLookup.set(canonical, newId);
|
|
2721
|
+
globalIdCounter.set(itemsDic, newId);
|
|
2722
|
+
itemsDic[newId] = item;
|
|
2723
|
+
return newId;
|
|
2706
2724
|
}
|
|
2707
2725
|
function groupItemIdsByZones(positionsByItemId) {
|
|
2708
2726
|
const result = {};
|
|
@@ -2726,6 +2744,33 @@ function* iterateItemIdsPositions(sheetId, itemIdsByZones) {
|
|
|
2726
2744
|
}
|
|
2727
2745
|
}
|
|
2728
2746
|
}
|
|
2747
|
+
function getCanonicalRepresentation(item) {
|
|
2748
|
+
if (item === null)
|
|
2749
|
+
return "null";
|
|
2750
|
+
if (item === undefined)
|
|
2751
|
+
return "undefined";
|
|
2752
|
+
if (typeof item !== "object")
|
|
2753
|
+
return String(item);
|
|
2754
|
+
if (Array.isArray(item)) {
|
|
2755
|
+
const len = item.length;
|
|
2756
|
+
let result = "[";
|
|
2757
|
+
for (let i = 0; i < len; i++) {
|
|
2758
|
+
if (i > 0)
|
|
2759
|
+
result += ",";
|
|
2760
|
+
result += getCanonicalRepresentation(item[i]);
|
|
2761
|
+
}
|
|
2762
|
+
return result + "]";
|
|
2763
|
+
}
|
|
2764
|
+
const keys = Object.keys(item).sort();
|
|
2765
|
+
let repr = "{";
|
|
2766
|
+
for (const key of keys) {
|
|
2767
|
+
if (item[key] !== undefined) {
|
|
2768
|
+
repr += `"${key}":${getCanonicalRepresentation(item[key])},`;
|
|
2769
|
+
}
|
|
2770
|
+
}
|
|
2771
|
+
repr += "}";
|
|
2772
|
+
return repr;
|
|
2773
|
+
}
|
|
2729
2774
|
|
|
2730
2775
|
// -----------------------------------------------------------------------------
|
|
2731
2776
|
// Date Type
|
|
@@ -8279,7 +8324,8 @@ function isSortedColumnValid(sortedColumn, pivot) {
|
|
|
8279
8324
|
const possibleValues = pivot
|
|
8280
8325
|
.getPossibleFieldValues(columns[i])
|
|
8281
8326
|
.map((v) => v.value);
|
|
8282
|
-
if (!possibleValues.includes(sortedColumn.domain[i].value)
|
|
8327
|
+
if (!possibleValues.includes(sortedColumn.domain[i].value) &&
|
|
8328
|
+
!(sortedColumn.domain[i].value === null && possibleValues.includes(""))) {
|
|
8283
8329
|
return false;
|
|
8284
8330
|
}
|
|
8285
8331
|
}
|
|
@@ -11154,6 +11200,7 @@ class ScorecardChart extends Component {
|
|
|
11154
11200
|
const autoCompleteProviders = new Registry();
|
|
11155
11201
|
|
|
11156
11202
|
autoCompleteProviders.add("dataValidation", {
|
|
11203
|
+
displayAllOnInitialContent: true,
|
|
11157
11204
|
getProposals(tokenAtCursor, content) {
|
|
11158
11205
|
if (content.startsWith("=")) {
|
|
11159
11206
|
return [];
|
|
@@ -21450,6 +21497,15 @@ class AbstractComposerStore extends SpreadsheetStore {
|
|
|
21450
21497
|
const exactMatch = proposals?.find((p) => p.text === tokenAtCursor.value);
|
|
21451
21498
|
// remove tokens that are likely to be other parts of the formula that slipped in the token if it's a string
|
|
21452
21499
|
const searchTerm = tokenAtCursor.value.replace(/[ ,\(\)]/g, "");
|
|
21500
|
+
if (this._currentContent === this.initialContent &&
|
|
21501
|
+
provider.displayAllOnInitialContent &&
|
|
21502
|
+
proposals?.length) {
|
|
21503
|
+
return {
|
|
21504
|
+
proposals,
|
|
21505
|
+
selectProposal: provider.selectProposal,
|
|
21506
|
+
autoSelectFirstProposal: provider.autoSelectFirstProposal ?? false,
|
|
21507
|
+
};
|
|
21508
|
+
}
|
|
21453
21509
|
if (exactMatch && this._currentContent !== this.initialContent) {
|
|
21454
21510
|
// this means the user has chosen a proposal
|
|
21455
21511
|
return;
|
|
@@ -24335,16 +24391,25 @@ function addRelsToFile(relsFiles, path, rel) {
|
|
|
24335
24391
|
}
|
|
24336
24392
|
return id;
|
|
24337
24393
|
}
|
|
24394
|
+
const globalReverseLookup = new WeakMap();
|
|
24338
24395
|
function pushElement(property, propertyList) {
|
|
24339
|
-
let
|
|
24340
|
-
|
|
24341
|
-
|
|
24342
|
-
|
|
24343
|
-
|
|
24396
|
+
let reverseLookup = globalReverseLookup.get(propertyList);
|
|
24397
|
+
if (!reverseLookup) {
|
|
24398
|
+
reverseLookup = new Map();
|
|
24399
|
+
for (let i = 0; i < propertyList.length; i++) {
|
|
24400
|
+
const canonical = getCanonicalRepresentation(propertyList[i]);
|
|
24401
|
+
reverseLookup.set(canonical, i);
|
|
24344
24402
|
}
|
|
24403
|
+
globalReverseLookup.set(propertyList, reverseLookup);
|
|
24404
|
+
}
|
|
24405
|
+
const canonical = getCanonicalRepresentation(property);
|
|
24406
|
+
if (reverseLookup.has(canonical)) {
|
|
24407
|
+
return reverseLookup.get(canonical);
|
|
24345
24408
|
}
|
|
24346
|
-
propertyList
|
|
24347
|
-
|
|
24409
|
+
const maxId = propertyList.length;
|
|
24410
|
+
propertyList.push(property);
|
|
24411
|
+
reverseLookup.set(canonical, maxId);
|
|
24412
|
+
return maxId;
|
|
24348
24413
|
}
|
|
24349
24414
|
const chartIds = [];
|
|
24350
24415
|
/**
|
|
@@ -26191,7 +26256,7 @@ class XlsxChartExtractor extends XlsxBaseExtractor {
|
|
|
26191
26256
|
title: { text: chartTitle },
|
|
26192
26257
|
type: CHART_TYPE_CONVERSION_MAP[chartType],
|
|
26193
26258
|
dataSets: this.extractChartDatasets(this.querySelectorAll(rootChartElement, `c:${chartType}`), chartType),
|
|
26194
|
-
labelRange: this.
|
|
26259
|
+
labelRange: this.extractLabelRange(chartType, rootChartElement),
|
|
26195
26260
|
backgroundColor: this.extractChildAttr(rootChartElement, "c:chartSpace > c:spPr a:srgbClr", "val", {
|
|
26196
26261
|
default: "ffffff",
|
|
26197
26262
|
}).asString(),
|
|
@@ -26203,6 +26268,13 @@ class XlsxChartExtractor extends XlsxBaseExtractor {
|
|
|
26203
26268
|
};
|
|
26204
26269
|
})[0];
|
|
26205
26270
|
}
|
|
26271
|
+
extractLabelRange(chartType, rootChartElement) {
|
|
26272
|
+
if (chartType === "scatterChart") {
|
|
26273
|
+
return (this.extractChildTextContent(rootChartElement, `c:ser c:strRef c:f`) ||
|
|
26274
|
+
this.extractChildTextContent(rootChartElement, `c:ser c:numRef c:f`));
|
|
26275
|
+
}
|
|
26276
|
+
return this.extractChildTextContent(rootChartElement, `c:ser c:cat c:f`);
|
|
26277
|
+
}
|
|
26206
26278
|
extractComboChart(chartElement) {
|
|
26207
26279
|
// Title can be separated into multiple xml elements (for styling and such), we only import the text
|
|
26208
26280
|
const chartTitle = this.mapOnElements({ parent: chartElement, query: "c:title a:t" }, (textElement) => {
|
|
@@ -36204,6 +36276,7 @@ const irregularityMap = {
|
|
|
36204
36276
|
fingerprintStore.enable();
|
|
36205
36277
|
}
|
|
36206
36278
|
},
|
|
36279
|
+
isReadonlyAllowed: true,
|
|
36207
36280
|
icon: "o-spreadsheet-Icon.IRREGULARITY_MAP",
|
|
36208
36281
|
};
|
|
36209
36282
|
const viewFormulas = {
|
|
@@ -50409,6 +50482,9 @@ class ColResizer extends AbstractResizer {
|
|
|
50409
50482
|
this.MAX_SIZE_MARGIN = 90;
|
|
50410
50483
|
this.MIN_ELEMENT_SIZE = MIN_COL_WIDTH;
|
|
50411
50484
|
}
|
|
50485
|
+
get sheetId() {
|
|
50486
|
+
return this.env.model.getters.getActiveSheetId();
|
|
50487
|
+
}
|
|
50412
50488
|
_getEvOffset(ev) {
|
|
50413
50489
|
return ev.offsetX;
|
|
50414
50490
|
}
|
|
@@ -50431,10 +50507,10 @@ class ColResizer extends AbstractResizer {
|
|
|
50431
50507
|
return this.env.model.getters.getEdgeScrollCol(position, position, position);
|
|
50432
50508
|
}
|
|
50433
50509
|
_getDimensionsInViewport(index) {
|
|
50434
|
-
return this.env.model.getters.getColDimensionsInViewport(this.
|
|
50510
|
+
return this.env.model.getters.getColDimensionsInViewport(this.sheetId, index);
|
|
50435
50511
|
}
|
|
50436
50512
|
_getElementSize(index) {
|
|
50437
|
-
return this.env.model.getters.getColSize(this.
|
|
50513
|
+
return this.env.model.getters.getColSize(this.sheetId, index);
|
|
50438
50514
|
}
|
|
50439
50515
|
_getMaxSize() {
|
|
50440
50516
|
return this.colResizerRef.el.clientWidth;
|
|
@@ -50445,7 +50521,7 @@ class ColResizer extends AbstractResizer {
|
|
|
50445
50521
|
const cols = this.env.model.getters.getActiveCols();
|
|
50446
50522
|
this.env.model.dispatch("RESIZE_COLUMNS_ROWS", {
|
|
50447
50523
|
dimension: "COL",
|
|
50448
|
-
sheetId: this.
|
|
50524
|
+
sheetId: this.sheetId,
|
|
50449
50525
|
elements: cols.has(index) ? [...cols] : [index],
|
|
50450
50526
|
size,
|
|
50451
50527
|
});
|
|
@@ -50458,7 +50534,7 @@ class ColResizer extends AbstractResizer {
|
|
|
50458
50534
|
elements.push(colIndex);
|
|
50459
50535
|
}
|
|
50460
50536
|
const result = this.env.model.dispatch("MOVE_COLUMNS_ROWS", {
|
|
50461
|
-
sheetId: this.
|
|
50537
|
+
sheetId: this.sheetId,
|
|
50462
50538
|
dimension: "COL",
|
|
50463
50539
|
base: this.state.base,
|
|
50464
50540
|
elements,
|
|
@@ -50477,7 +50553,7 @@ class ColResizer extends AbstractResizer {
|
|
|
50477
50553
|
_fitElementSize(index) {
|
|
50478
50554
|
const cols = this.env.model.getters.getActiveCols();
|
|
50479
50555
|
this.env.model.dispatch("AUTORESIZE_COLUMNS", {
|
|
50480
|
-
sheetId: this.
|
|
50556
|
+
sheetId: this.sheetId,
|
|
50481
50557
|
cols: cols.has(index) ? [...cols] : [index],
|
|
50482
50558
|
});
|
|
50483
50559
|
}
|
|
@@ -50488,7 +50564,7 @@ class ColResizer extends AbstractResizer {
|
|
|
50488
50564
|
return this.env.model.getters.getActiveCols();
|
|
50489
50565
|
}
|
|
50490
50566
|
_getPreviousVisibleElement(index) {
|
|
50491
|
-
const sheetId = this.
|
|
50567
|
+
const sheetId = this.sheetId;
|
|
50492
50568
|
let row;
|
|
50493
50569
|
for (row = index - 1; row >= 0; row--) {
|
|
50494
50570
|
if (!this.env.model.getters.isColHidden(sheetId, row)) {
|
|
@@ -50499,7 +50575,7 @@ class ColResizer extends AbstractResizer {
|
|
|
50499
50575
|
}
|
|
50500
50576
|
unhide(hiddenElements) {
|
|
50501
50577
|
this.env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
50502
|
-
sheetId: this.
|
|
50578
|
+
sheetId: this.sheetId,
|
|
50503
50579
|
elements: hiddenElements,
|
|
50504
50580
|
dimension: "COL",
|
|
50505
50581
|
});
|
|
@@ -50515,7 +50591,7 @@ css /* scss */ `
|
|
|
50515
50591
|
left: 0;
|
|
50516
50592
|
right: 0;
|
|
50517
50593
|
width: ${HEADER_WIDTH}px;
|
|
50518
|
-
height: 100
|
|
50594
|
+
height: calc(100% - ${HEADER_HEIGHT + SCROLLBAR_WIDTH}px);
|
|
50519
50595
|
&.o-dragging {
|
|
50520
50596
|
cursor: grabbing;
|
|
50521
50597
|
}
|
|
@@ -50573,6 +50649,9 @@ class RowResizer extends AbstractResizer {
|
|
|
50573
50649
|
this.MIN_ELEMENT_SIZE = MIN_ROW_HEIGHT;
|
|
50574
50650
|
}
|
|
50575
50651
|
rowResizerRef;
|
|
50652
|
+
get sheetId() {
|
|
50653
|
+
return this.env.model.getters.getActiveSheetId();
|
|
50654
|
+
}
|
|
50576
50655
|
_getEvOffset(ev) {
|
|
50577
50656
|
return ev.offsetY;
|
|
50578
50657
|
}
|
|
@@ -50595,10 +50674,10 @@ class RowResizer extends AbstractResizer {
|
|
|
50595
50674
|
return this.env.model.getters.getEdgeScrollRow(position, position, position);
|
|
50596
50675
|
}
|
|
50597
50676
|
_getDimensionsInViewport(index) {
|
|
50598
|
-
return this.env.model.getters.getRowDimensionsInViewport(this.
|
|
50677
|
+
return this.env.model.getters.getRowDimensionsInViewport(this.sheetId, index);
|
|
50599
50678
|
}
|
|
50600
50679
|
_getElementSize(index) {
|
|
50601
|
-
return this.env.model.getters.getRowSize(this.
|
|
50680
|
+
return this.env.model.getters.getRowSize(this.sheetId, index);
|
|
50602
50681
|
}
|
|
50603
50682
|
_getMaxSize() {
|
|
50604
50683
|
return this.rowResizerRef.el.clientHeight;
|
|
@@ -50609,7 +50688,7 @@ class RowResizer extends AbstractResizer {
|
|
|
50609
50688
|
const rows = this.env.model.getters.getActiveRows();
|
|
50610
50689
|
this.env.model.dispatch("RESIZE_COLUMNS_ROWS", {
|
|
50611
50690
|
dimension: "ROW",
|
|
50612
|
-
sheetId: this.
|
|
50691
|
+
sheetId: this.sheetId,
|
|
50613
50692
|
elements: rows.has(index) ? [...rows] : [index],
|
|
50614
50693
|
size,
|
|
50615
50694
|
});
|
|
@@ -50622,7 +50701,7 @@ class RowResizer extends AbstractResizer {
|
|
|
50622
50701
|
elements.push(rowIndex);
|
|
50623
50702
|
}
|
|
50624
50703
|
const result = this.env.model.dispatch("MOVE_COLUMNS_ROWS", {
|
|
50625
|
-
sheetId: this.
|
|
50704
|
+
sheetId: this.sheetId,
|
|
50626
50705
|
dimension: "ROW",
|
|
50627
50706
|
base: this.state.base,
|
|
50628
50707
|
elements,
|
|
@@ -50641,7 +50720,7 @@ class RowResizer extends AbstractResizer {
|
|
|
50641
50720
|
_fitElementSize(index) {
|
|
50642
50721
|
const rows = this.env.model.getters.getActiveRows();
|
|
50643
50722
|
this.env.model.dispatch("AUTORESIZE_ROWS", {
|
|
50644
|
-
sheetId: this.
|
|
50723
|
+
sheetId: this.sheetId,
|
|
50645
50724
|
rows: rows.has(index) ? [...rows] : [index],
|
|
50646
50725
|
});
|
|
50647
50726
|
}
|
|
@@ -50652,7 +50731,7 @@ class RowResizer extends AbstractResizer {
|
|
|
50652
50731
|
return this.env.model.getters.getActiveRows();
|
|
50653
50732
|
}
|
|
50654
50733
|
_getPreviousVisibleElement(index) {
|
|
50655
|
-
const sheetId = this.
|
|
50734
|
+
const sheetId = this.sheetId;
|
|
50656
50735
|
let row;
|
|
50657
50736
|
for (row = index - 1; row >= 0; row--) {
|
|
50658
50737
|
if (!this.env.model.getters.isRowHidden(sheetId, row)) {
|
|
@@ -50663,7 +50742,7 @@ class RowResizer extends AbstractResizer {
|
|
|
50663
50742
|
}
|
|
50664
50743
|
unhide(hiddenElements) {
|
|
50665
50744
|
this.env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
50666
|
-
sheetId: this.
|
|
50745
|
+
sheetId: this.sheetId,
|
|
50667
50746
|
dimension: "ROW",
|
|
50668
50747
|
elements: hiddenElements,
|
|
50669
50748
|
});
|
|
@@ -67902,7 +67981,8 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
67902
67981
|
? this.getters.getSheetViewVisibleCols()
|
|
67903
67982
|
: this.getters.getSheetViewVisibleRows();
|
|
67904
67983
|
const startIndex = visibleHeaders.findIndex((header) => referenceHeaderIndex >= header);
|
|
67905
|
-
|
|
67984
|
+
let endIndex = visibleHeaders.findIndex((header) => targetHeaderIndex <= header);
|
|
67985
|
+
endIndex = endIndex === -1 ? visibleHeaders.length : endIndex;
|
|
67906
67986
|
const relevantIndexes = visibleHeaders.slice(startIndex, endIndex);
|
|
67907
67987
|
let offset = 0;
|
|
67908
67988
|
for (const i of relevantIndexes) {
|
|
@@ -74009,7 +74089,7 @@ function addStyles(styles) {
|
|
|
74009
74089
|
}
|
|
74010
74090
|
if (alignAttrs.length > 0) {
|
|
74011
74091
|
attributes.push(["applyAlignment", "1"]); // for Libre Office
|
|
74012
|
-
styleNodes.push(escapeXml /*xml*/ `<xf ${formatAttributes(attributes)}
|
|
74092
|
+
styleNodes.push(escapeXml /*xml*/ `<xf ${formatAttributes(attributes)}><alignment ${formatAttributes(alignAttrs)} /></xf> `);
|
|
74013
74093
|
}
|
|
74014
74094
|
else {
|
|
74015
74095
|
styleNodes.push(escapeXml /*xml*/ `<xf ${formatAttributes(attributes)} />`);
|
|
@@ -74177,6 +74257,9 @@ function addColumns(cols) {
|
|
|
74177
74257
|
}
|
|
74178
74258
|
function addRows(construct, data, sheet) {
|
|
74179
74259
|
const rowNodes = [];
|
|
74260
|
+
const styles = new PositionMap(iterateItemIdsPositions(sheet.id, sheet.styles));
|
|
74261
|
+
const borders = new PositionMap(iterateItemIdsPositions(sheet.id, sheet.borders));
|
|
74262
|
+
const formats = new PositionMap(iterateItemIdsPositions(sheet.id, sheet.formats));
|
|
74180
74263
|
for (let r = 0; r < sheet.rowNumber; r++) {
|
|
74181
74264
|
const rowAttrs = [["r", r + 1]];
|
|
74182
74265
|
const row = sheet.rows[r] || {};
|
|
@@ -74192,9 +74275,6 @@ function addRows(construct, data, sheet) {
|
|
|
74192
74275
|
if (row.collapsed) {
|
|
74193
74276
|
rowAttrs.push(["collapsed", 1]);
|
|
74194
74277
|
}
|
|
74195
|
-
const styles = new PositionMap(iterateItemIdsPositions(sheet.id, sheet.styles));
|
|
74196
|
-
const borders = new PositionMap(iterateItemIdsPositions(sheet.id, sheet.borders));
|
|
74197
|
-
const formats = new PositionMap(iterateItemIdsPositions(sheet.id, sheet.formats));
|
|
74198
74278
|
const cellNodes = [];
|
|
74199
74279
|
for (let c = 0; c < sheet.colNumber; c++) {
|
|
74200
74280
|
const xc = toXC(c, r);
|
|
@@ -75422,6 +75502,6 @@ const chartHelpers = { ...CHART_HELPERS, ...CHART_RUNTIME_HELPERS };
|
|
|
75422
75502
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, chartHelpers, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
75423
75503
|
|
|
75424
75504
|
|
|
75425
|
-
__info__.version = "18.1.
|
|
75426
|
-
__info__.date = "2025-03-
|
|
75427
|
-
__info__.hash = "
|
|
75505
|
+
__info__.version = "18.1.11";
|
|
75506
|
+
__info__.date = "2025-03-12T15:31:44.276Z";
|
|
75507
|
+
__info__.hash = "7de2363";
|