@odoo/o-spreadsheet 17.0.35 → 17.0.37
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 +53 -28
- package/dist/o-spreadsheet.d.ts +5 -4
- package/dist/o-spreadsheet.esm.js +53 -28
- package/dist/o-spreadsheet.iife.js +53 -28
- package/dist/o-spreadsheet.iife.min.js +15 -4
- package/dist/o_spreadsheet.xml +4 -4
- package/package.json +2 -2
|
@@ -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 17.0.
|
|
6
|
-
* @date 2024-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 17.0.37
|
|
6
|
+
* @date 2024-09-05T09:30:59.083Z
|
|
7
|
+
* @hash b1873b5
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
'use strict';
|
|
@@ -31421,6 +31421,18 @@ function convertOperator(operator) {
|
|
|
31421
31421
|
// -------------------------------------
|
|
31422
31422
|
// WORKSHEET HELPERS
|
|
31423
31423
|
// -------------------------------------
|
|
31424
|
+
function getCellType(value) {
|
|
31425
|
+
switch (typeof value) {
|
|
31426
|
+
case "boolean":
|
|
31427
|
+
return "b";
|
|
31428
|
+
case "string":
|
|
31429
|
+
return "str";
|
|
31430
|
+
case "number":
|
|
31431
|
+
return "n";
|
|
31432
|
+
default:
|
|
31433
|
+
return undefined;
|
|
31434
|
+
}
|
|
31435
|
+
}
|
|
31424
31436
|
function convertHeightToExcel(height) {
|
|
31425
31437
|
return Math.round(HEIGHT_FACTOR * height * 100) / 100;
|
|
31426
31438
|
}
|
|
@@ -37538,7 +37550,10 @@ class HeaderSizePlugin extends CorePlugin {
|
|
|
37538
37550
|
handle(cmd) {
|
|
37539
37551
|
switch (cmd.type) {
|
|
37540
37552
|
case "CREATE_SHEET": {
|
|
37541
|
-
this.history.update("sizes", cmd.sheetId, {
|
|
37553
|
+
this.history.update("sizes", cmd.sheetId, {
|
|
37554
|
+
COL: Array(this.getters.getNumberCols(cmd.sheetId)).fill(undefined),
|
|
37555
|
+
ROW: Array(this.getters.getNumberRows(cmd.sheetId)).fill(undefined),
|
|
37556
|
+
});
|
|
37542
37557
|
break;
|
|
37543
37558
|
}
|
|
37544
37559
|
case "DUPLICATE_SHEET":
|
|
@@ -44480,9 +44495,9 @@ class Session extends EventBus {
|
|
|
44480
44495
|
/**
|
|
44481
44496
|
* Notify the server that the user client left the collaborative session
|
|
44482
44497
|
*/
|
|
44483
|
-
leave(data) {
|
|
44498
|
+
async leave(data) {
|
|
44484
44499
|
if (Object.keys(this.clients).length === 1 && this.processedRevisions.size) {
|
|
44485
|
-
this.snapshot(data());
|
|
44500
|
+
await this.snapshot(data());
|
|
44486
44501
|
}
|
|
44487
44502
|
delete this.clients[this.clientId];
|
|
44488
44503
|
this.transportService.leave(this.clientId);
|
|
@@ -44495,12 +44510,12 @@ class Session extends EventBus {
|
|
|
44495
44510
|
/**
|
|
44496
44511
|
* Send a snapshot of the spreadsheet to the collaboration server
|
|
44497
44512
|
*/
|
|
44498
|
-
snapshot(data) {
|
|
44513
|
+
async snapshot(data) {
|
|
44499
44514
|
if (this.pendingMessages.length !== 0) {
|
|
44500
44515
|
return;
|
|
44501
44516
|
}
|
|
44502
44517
|
const snapshotId = this.uuidGenerator.uuidv4();
|
|
44503
|
-
this.transportService.sendMessage({
|
|
44518
|
+
await this.transportService.sendMessage({
|
|
44504
44519
|
type: "SNAPSHOT",
|
|
44505
44520
|
nextRevisionId: snapshotId,
|
|
44506
44521
|
serverRevisionId: this.serverRevisionId,
|
|
@@ -45205,9 +45220,7 @@ class ClipboardCellsState extends ClipboardCellsAbstractState {
|
|
|
45205
45220
|
const { sheetId, col, row } = target;
|
|
45206
45221
|
const targetCell = this.getters.getEvaluatedCell(target);
|
|
45207
45222
|
if (clipboardOption?.pasteOption === "onlyValue") {
|
|
45208
|
-
|
|
45209
|
-
const content = formatValue(origin.evaluatedCell.value, { locale });
|
|
45210
|
-
this.dispatch("UPDATE_CELL", { ...target, content });
|
|
45223
|
+
this.dispatch("UPDATE_CELL", { ...target, content: origin.evaluatedCell.value.toString() });
|
|
45211
45224
|
return;
|
|
45212
45225
|
}
|
|
45213
45226
|
const targetBorders = this.getters.getCellBorder(target);
|
|
@@ -49947,6 +49960,8 @@ class GridSelectionPlugin extends UIPlugin {
|
|
|
49947
49960
|
this.selectedFigureId = null;
|
|
49948
49961
|
break;
|
|
49949
49962
|
}
|
|
49963
|
+
}
|
|
49964
|
+
finalize() {
|
|
49950
49965
|
/** Any change to the selection has to be reflected in the selection processor. */
|
|
49951
49966
|
this.selection.resetDefaultAnchor(this, deepCopy(this.gridSelection.anchor));
|
|
49952
49967
|
}
|
|
@@ -50800,7 +50815,6 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
50800
50815
|
}
|
|
50801
50816
|
}
|
|
50802
50817
|
handle(cmd) {
|
|
50803
|
-
this.cleanViewports();
|
|
50804
50818
|
// changing the evaluation can hide/show rows because of data filters
|
|
50805
50819
|
if (invalidateEvaluationCommands.has(cmd.type)) {
|
|
50806
50820
|
for (const sheetId of this.getters.getSheetIds()) {
|
|
@@ -50816,6 +50830,7 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
50816
50830
|
break;
|
|
50817
50831
|
case "UNDO":
|
|
50818
50832
|
case "REDO":
|
|
50833
|
+
this.cleanViewports();
|
|
50819
50834
|
for (const sheetId of this.getters.getSheetIds()) {
|
|
50820
50835
|
this.sheetsWithDirtyViewports.add(sheetId);
|
|
50821
50836
|
}
|
|
@@ -50869,6 +50884,9 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
50869
50884
|
}
|
|
50870
50885
|
}
|
|
50871
50886
|
break;
|
|
50887
|
+
case "DELETE_SHEET":
|
|
50888
|
+
this.cleanViewports();
|
|
50889
|
+
break;
|
|
50872
50890
|
case "ACTIVATE_SHEET":
|
|
50873
50891
|
this.sheetsWithDirtyViewports.add(cmd.sheetIdTo);
|
|
50874
50892
|
break;
|
|
@@ -52010,6 +52028,17 @@ css /* scss */ `
|
|
|
52010
52028
|
.o-bottom-bar-fade-in {
|
|
52011
52029
|
background-image: linear-gradient(90deg, #cfcfcf, transparent 1%);
|
|
52012
52030
|
}
|
|
52031
|
+
|
|
52032
|
+
.o-sheet-list {
|
|
52033
|
+
overflow-y: hidden;
|
|
52034
|
+
overflow-x: auto;
|
|
52035
|
+
|
|
52036
|
+
&::-webkit-scrollbar {
|
|
52037
|
+
display: none; /* Chrome */
|
|
52038
|
+
}
|
|
52039
|
+
-ms-overflow-style: none; /* IE and Edge */
|
|
52040
|
+
scrollbar-width: none; /* Firefox */
|
|
52041
|
+
}
|
|
52013
52042
|
}
|
|
52014
52043
|
|
|
52015
52044
|
.o-bottom-bar-arrows {
|
|
@@ -53892,7 +53921,7 @@ Spreadsheet.props = {
|
|
|
53892
53921
|
|
|
53893
53922
|
class LocalTransportService {
|
|
53894
53923
|
listeners = [];
|
|
53895
|
-
sendMessage(message) {
|
|
53924
|
+
async sendMessage(message) {
|
|
53896
53925
|
for (const { callback } of this.listeners) {
|
|
53897
53926
|
callback(message);
|
|
53898
53927
|
}
|
|
@@ -55779,17 +55808,13 @@ function addFormula(cell) {
|
|
|
55779
55808
|
if (!formula) {
|
|
55780
55809
|
return { attrs: [], node: escapeXml `` };
|
|
55781
55810
|
}
|
|
55782
|
-
const
|
|
55783
|
-
|
|
55784
|
-
|
|
55785
|
-
const XlsxFormula = adaptFormulaToExcel(formula);
|
|
55786
|
-
// hack for cycles : if we don't set a value (be it 0 or #VALUE!), it will appear as invisible on excel,
|
|
55787
|
-
// Making it very hard for the client to find where the recursion is.
|
|
55788
|
-
if (cell.value === CellErrorType.CircularDependency) {
|
|
55789
|
-
attrs.push(["t", "str"]);
|
|
55790
|
-
cycle = escapeXml /*xml*/ `<v>${cell.value}</v>`;
|
|
55811
|
+
const type = getCellType(cell.value);
|
|
55812
|
+
if (type === undefined) {
|
|
55813
|
+
return { attrs: [], node: escapeXml `` };
|
|
55791
55814
|
}
|
|
55792
|
-
|
|
55815
|
+
const attrs = [["t", type]];
|
|
55816
|
+
const XlsxFormula = adaptFormulaToExcel(formula);
|
|
55817
|
+
const node = escapeXml /*xml*/ `<f>${XlsxFormula}</f><v>${cell.value}</v>`;
|
|
55793
55818
|
return { attrs, node };
|
|
55794
55819
|
}
|
|
55795
55820
|
function addContent(content, sharedStrings, forceString = false) {
|
|
@@ -57117,8 +57142,8 @@ class Model extends EventBus {
|
|
|
57117
57142
|
joinSession() {
|
|
57118
57143
|
this.session.join(this.config.client);
|
|
57119
57144
|
}
|
|
57120
|
-
leaveSession() {
|
|
57121
|
-
this.session.leave(lazy(() => this.exportData()));
|
|
57145
|
+
async leaveSession() {
|
|
57146
|
+
await this.session.leave(lazy(() => this.exportData()));
|
|
57122
57147
|
}
|
|
57123
57148
|
setupUiPlugin(Plugin) {
|
|
57124
57149
|
const plugin = new Plugin(this.uiPluginConfig);
|
|
@@ -57621,6 +57646,6 @@ exports.setTranslationMethod = setTranslationMethod;
|
|
|
57621
57646
|
exports.tokenize = tokenize;
|
|
57622
57647
|
|
|
57623
57648
|
|
|
57624
|
-
__info__.version = "17.0.
|
|
57625
|
-
__info__.date = "2024-
|
|
57626
|
-
__info__.hash = "
|
|
57649
|
+
__info__.version = "17.0.37";
|
|
57650
|
+
__info__.date = "2024-09-05T09:30:59.083Z";
|
|
57651
|
+
__info__.hash = "b1873b5";
|
package/dist/o-spreadsheet.d.ts
CHANGED
|
@@ -755,7 +755,7 @@ interface TransportService<T = any> {
|
|
|
755
755
|
/**
|
|
756
756
|
* Send a message to all clients
|
|
757
757
|
*/
|
|
758
|
-
sendMessage: (message: T) => void
|
|
758
|
+
sendMessage: (message: T) => Promise<void>;
|
|
759
759
|
/**
|
|
760
760
|
* Register a callback function which will be called each time
|
|
761
761
|
* a new message is received.
|
|
@@ -852,11 +852,11 @@ declare class Session extends EventBus<CollaborativeEvent> {
|
|
|
852
852
|
/**
|
|
853
853
|
* Notify the server that the user client left the collaborative session
|
|
854
854
|
*/
|
|
855
|
-
leave(data: Lazy<WorkbookData>): void
|
|
855
|
+
leave(data: Lazy<WorkbookData>): Promise<void>;
|
|
856
856
|
/**
|
|
857
857
|
* Send a snapshot of the spreadsheet to the collaboration server
|
|
858
858
|
*/
|
|
859
|
-
snapshot(data: WorkbookData): void
|
|
859
|
+
snapshot(data: WorkbookData): Promise<void>;
|
|
860
860
|
getClient(): Client;
|
|
861
861
|
getConnectedClients(): Set<Client>;
|
|
862
862
|
getRevisionId(): UID;
|
|
@@ -1261,7 +1261,7 @@ declare class Model extends EventBus<any> implements CommandDispatcher {
|
|
|
1261
1261
|
private readonly coreHandlers;
|
|
1262
1262
|
constructor(data?: any, config?: Partial<ModelConfig>, stateUpdateMessages?: StateUpdateMessage[], uuidGenerator?: UuidGenerator, verboseImport?: boolean);
|
|
1263
1263
|
joinSession(): void;
|
|
1264
|
-
leaveSession(): void
|
|
1264
|
+
leaveSession(): Promise<void>;
|
|
1265
1265
|
private setupUiPlugin;
|
|
1266
1266
|
/**
|
|
1267
1267
|
* Initialize and properly configure a plugin.
|
|
@@ -4949,6 +4949,7 @@ declare class GridSelectionPlugin extends UIPlugin {
|
|
|
4949
4949
|
allowDispatch(cmd: LocalCommand): CommandResult;
|
|
4950
4950
|
private handleEvent;
|
|
4951
4951
|
handle(cmd: Command): void;
|
|
4952
|
+
finalize(): void;
|
|
4952
4953
|
isGridSelectionActive(): boolean;
|
|
4953
4954
|
getActiveSheet(): Readonly<Sheet>;
|
|
4954
4955
|
getActiveSheetId(): UID;
|
|
@@ -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 17.0.
|
|
6
|
-
* @date 2024-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 17.0.37
|
|
6
|
+
* @date 2024-09-05T09:30:59.083Z
|
|
7
|
+
* @hash b1873b5
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { Component, useRef, onMounted, useEffect, onWillPatch, useState, onWillUpdateProps, onPatched, useComponent, useExternalListener, onWillUnmount, onWillStart, xml, useChildSubEnv, useSubEnv, markRaw } from '@odoo/owl';
|
|
@@ -31419,6 +31419,18 @@ function convertOperator(operator) {
|
|
|
31419
31419
|
// -------------------------------------
|
|
31420
31420
|
// WORKSHEET HELPERS
|
|
31421
31421
|
// -------------------------------------
|
|
31422
|
+
function getCellType(value) {
|
|
31423
|
+
switch (typeof value) {
|
|
31424
|
+
case "boolean":
|
|
31425
|
+
return "b";
|
|
31426
|
+
case "string":
|
|
31427
|
+
return "str";
|
|
31428
|
+
case "number":
|
|
31429
|
+
return "n";
|
|
31430
|
+
default:
|
|
31431
|
+
return undefined;
|
|
31432
|
+
}
|
|
31433
|
+
}
|
|
31422
31434
|
function convertHeightToExcel(height) {
|
|
31423
31435
|
return Math.round(HEIGHT_FACTOR * height * 100) / 100;
|
|
31424
31436
|
}
|
|
@@ -37536,7 +37548,10 @@ class HeaderSizePlugin extends CorePlugin {
|
|
|
37536
37548
|
handle(cmd) {
|
|
37537
37549
|
switch (cmd.type) {
|
|
37538
37550
|
case "CREATE_SHEET": {
|
|
37539
|
-
this.history.update("sizes", cmd.sheetId, {
|
|
37551
|
+
this.history.update("sizes", cmd.sheetId, {
|
|
37552
|
+
COL: Array(this.getters.getNumberCols(cmd.sheetId)).fill(undefined),
|
|
37553
|
+
ROW: Array(this.getters.getNumberRows(cmd.sheetId)).fill(undefined),
|
|
37554
|
+
});
|
|
37540
37555
|
break;
|
|
37541
37556
|
}
|
|
37542
37557
|
case "DUPLICATE_SHEET":
|
|
@@ -44478,9 +44493,9 @@ class Session extends EventBus {
|
|
|
44478
44493
|
/**
|
|
44479
44494
|
* Notify the server that the user client left the collaborative session
|
|
44480
44495
|
*/
|
|
44481
|
-
leave(data) {
|
|
44496
|
+
async leave(data) {
|
|
44482
44497
|
if (Object.keys(this.clients).length === 1 && this.processedRevisions.size) {
|
|
44483
|
-
this.snapshot(data());
|
|
44498
|
+
await this.snapshot(data());
|
|
44484
44499
|
}
|
|
44485
44500
|
delete this.clients[this.clientId];
|
|
44486
44501
|
this.transportService.leave(this.clientId);
|
|
@@ -44493,12 +44508,12 @@ class Session extends EventBus {
|
|
|
44493
44508
|
/**
|
|
44494
44509
|
* Send a snapshot of the spreadsheet to the collaboration server
|
|
44495
44510
|
*/
|
|
44496
|
-
snapshot(data) {
|
|
44511
|
+
async snapshot(data) {
|
|
44497
44512
|
if (this.pendingMessages.length !== 0) {
|
|
44498
44513
|
return;
|
|
44499
44514
|
}
|
|
44500
44515
|
const snapshotId = this.uuidGenerator.uuidv4();
|
|
44501
|
-
this.transportService.sendMessage({
|
|
44516
|
+
await this.transportService.sendMessage({
|
|
44502
44517
|
type: "SNAPSHOT",
|
|
44503
44518
|
nextRevisionId: snapshotId,
|
|
44504
44519
|
serverRevisionId: this.serverRevisionId,
|
|
@@ -45203,9 +45218,7 @@ class ClipboardCellsState extends ClipboardCellsAbstractState {
|
|
|
45203
45218
|
const { sheetId, col, row } = target;
|
|
45204
45219
|
const targetCell = this.getters.getEvaluatedCell(target);
|
|
45205
45220
|
if (clipboardOption?.pasteOption === "onlyValue") {
|
|
45206
|
-
|
|
45207
|
-
const content = formatValue(origin.evaluatedCell.value, { locale });
|
|
45208
|
-
this.dispatch("UPDATE_CELL", { ...target, content });
|
|
45221
|
+
this.dispatch("UPDATE_CELL", { ...target, content: origin.evaluatedCell.value.toString() });
|
|
45209
45222
|
return;
|
|
45210
45223
|
}
|
|
45211
45224
|
const targetBorders = this.getters.getCellBorder(target);
|
|
@@ -49945,6 +49958,8 @@ class GridSelectionPlugin extends UIPlugin {
|
|
|
49945
49958
|
this.selectedFigureId = null;
|
|
49946
49959
|
break;
|
|
49947
49960
|
}
|
|
49961
|
+
}
|
|
49962
|
+
finalize() {
|
|
49948
49963
|
/** Any change to the selection has to be reflected in the selection processor. */
|
|
49949
49964
|
this.selection.resetDefaultAnchor(this, deepCopy(this.gridSelection.anchor));
|
|
49950
49965
|
}
|
|
@@ -50798,7 +50813,6 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
50798
50813
|
}
|
|
50799
50814
|
}
|
|
50800
50815
|
handle(cmd) {
|
|
50801
|
-
this.cleanViewports();
|
|
50802
50816
|
// changing the evaluation can hide/show rows because of data filters
|
|
50803
50817
|
if (invalidateEvaluationCommands.has(cmd.type)) {
|
|
50804
50818
|
for (const sheetId of this.getters.getSheetIds()) {
|
|
@@ -50814,6 +50828,7 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
50814
50828
|
break;
|
|
50815
50829
|
case "UNDO":
|
|
50816
50830
|
case "REDO":
|
|
50831
|
+
this.cleanViewports();
|
|
50817
50832
|
for (const sheetId of this.getters.getSheetIds()) {
|
|
50818
50833
|
this.sheetsWithDirtyViewports.add(sheetId);
|
|
50819
50834
|
}
|
|
@@ -50867,6 +50882,9 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
50867
50882
|
}
|
|
50868
50883
|
}
|
|
50869
50884
|
break;
|
|
50885
|
+
case "DELETE_SHEET":
|
|
50886
|
+
this.cleanViewports();
|
|
50887
|
+
break;
|
|
50870
50888
|
case "ACTIVATE_SHEET":
|
|
50871
50889
|
this.sheetsWithDirtyViewports.add(cmd.sheetIdTo);
|
|
50872
50890
|
break;
|
|
@@ -52008,6 +52026,17 @@ css /* scss */ `
|
|
|
52008
52026
|
.o-bottom-bar-fade-in {
|
|
52009
52027
|
background-image: linear-gradient(90deg, #cfcfcf, transparent 1%);
|
|
52010
52028
|
}
|
|
52029
|
+
|
|
52030
|
+
.o-sheet-list {
|
|
52031
|
+
overflow-y: hidden;
|
|
52032
|
+
overflow-x: auto;
|
|
52033
|
+
|
|
52034
|
+
&::-webkit-scrollbar {
|
|
52035
|
+
display: none; /* Chrome */
|
|
52036
|
+
}
|
|
52037
|
+
-ms-overflow-style: none; /* IE and Edge */
|
|
52038
|
+
scrollbar-width: none; /* Firefox */
|
|
52039
|
+
}
|
|
52011
52040
|
}
|
|
52012
52041
|
|
|
52013
52042
|
.o-bottom-bar-arrows {
|
|
@@ -53890,7 +53919,7 @@ Spreadsheet.props = {
|
|
|
53890
53919
|
|
|
53891
53920
|
class LocalTransportService {
|
|
53892
53921
|
listeners = [];
|
|
53893
|
-
sendMessage(message) {
|
|
53922
|
+
async sendMessage(message) {
|
|
53894
53923
|
for (const { callback } of this.listeners) {
|
|
53895
53924
|
callback(message);
|
|
53896
53925
|
}
|
|
@@ -55777,17 +55806,13 @@ function addFormula(cell) {
|
|
|
55777
55806
|
if (!formula) {
|
|
55778
55807
|
return { attrs: [], node: escapeXml `` };
|
|
55779
55808
|
}
|
|
55780
|
-
const
|
|
55781
|
-
|
|
55782
|
-
|
|
55783
|
-
const XlsxFormula = adaptFormulaToExcel(formula);
|
|
55784
|
-
// hack for cycles : if we don't set a value (be it 0 or #VALUE!), it will appear as invisible on excel,
|
|
55785
|
-
// Making it very hard for the client to find where the recursion is.
|
|
55786
|
-
if (cell.value === CellErrorType.CircularDependency) {
|
|
55787
|
-
attrs.push(["t", "str"]);
|
|
55788
|
-
cycle = escapeXml /*xml*/ `<v>${cell.value}</v>`;
|
|
55809
|
+
const type = getCellType(cell.value);
|
|
55810
|
+
if (type === undefined) {
|
|
55811
|
+
return { attrs: [], node: escapeXml `` };
|
|
55789
55812
|
}
|
|
55790
|
-
|
|
55813
|
+
const attrs = [["t", type]];
|
|
55814
|
+
const XlsxFormula = adaptFormulaToExcel(formula);
|
|
55815
|
+
const node = escapeXml /*xml*/ `<f>${XlsxFormula}</f><v>${cell.value}</v>`;
|
|
55791
55816
|
return { attrs, node };
|
|
55792
55817
|
}
|
|
55793
55818
|
function addContent(content, sharedStrings, forceString = false) {
|
|
@@ -57115,8 +57140,8 @@ class Model extends EventBus {
|
|
|
57115
57140
|
joinSession() {
|
|
57116
57141
|
this.session.join(this.config.client);
|
|
57117
57142
|
}
|
|
57118
|
-
leaveSession() {
|
|
57119
|
-
this.session.leave(lazy(() => this.exportData()));
|
|
57143
|
+
async leaveSession() {
|
|
57144
|
+
await this.session.leave(lazy(() => this.exportData()));
|
|
57120
57145
|
}
|
|
57121
57146
|
setupUiPlugin(Plugin) {
|
|
57122
57147
|
const plugin = new Plugin(this.uiPluginConfig);
|
|
@@ -57584,6 +57609,6 @@ const constants = {
|
|
|
57584
57609
|
export { AbstractChart, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, UIPlugin, __info__, addFunction, astToFormula, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, tokenize };
|
|
57585
57610
|
|
|
57586
57611
|
|
|
57587
|
-
__info__.version = "17.0.
|
|
57588
|
-
__info__.date = "2024-
|
|
57589
|
-
__info__.hash = "
|
|
57612
|
+
__info__.version = "17.0.37";
|
|
57613
|
+
__info__.date = "2024-09-05T09:30:59.083Z";
|
|
57614
|
+
__info__.hash = "b1873b5";
|
|
@@ -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 17.0.
|
|
6
|
-
* @date 2024-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 17.0.37
|
|
6
|
+
* @date 2024-09-05T09:30:59.083Z
|
|
7
|
+
* @hash b1873b5
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function (exports, owl) {
|
|
@@ -31420,6 +31420,18 @@
|
|
|
31420
31420
|
// -------------------------------------
|
|
31421
31421
|
// WORKSHEET HELPERS
|
|
31422
31422
|
// -------------------------------------
|
|
31423
|
+
function getCellType(value) {
|
|
31424
|
+
switch (typeof value) {
|
|
31425
|
+
case "boolean":
|
|
31426
|
+
return "b";
|
|
31427
|
+
case "string":
|
|
31428
|
+
return "str";
|
|
31429
|
+
case "number":
|
|
31430
|
+
return "n";
|
|
31431
|
+
default:
|
|
31432
|
+
return undefined;
|
|
31433
|
+
}
|
|
31434
|
+
}
|
|
31423
31435
|
function convertHeightToExcel(height) {
|
|
31424
31436
|
return Math.round(HEIGHT_FACTOR * height * 100) / 100;
|
|
31425
31437
|
}
|
|
@@ -37537,7 +37549,10 @@
|
|
|
37537
37549
|
handle(cmd) {
|
|
37538
37550
|
switch (cmd.type) {
|
|
37539
37551
|
case "CREATE_SHEET": {
|
|
37540
|
-
this.history.update("sizes", cmd.sheetId, {
|
|
37552
|
+
this.history.update("sizes", cmd.sheetId, {
|
|
37553
|
+
COL: Array(this.getters.getNumberCols(cmd.sheetId)).fill(undefined),
|
|
37554
|
+
ROW: Array(this.getters.getNumberRows(cmd.sheetId)).fill(undefined),
|
|
37555
|
+
});
|
|
37541
37556
|
break;
|
|
37542
37557
|
}
|
|
37543
37558
|
case "DUPLICATE_SHEET":
|
|
@@ -44479,9 +44494,9 @@
|
|
|
44479
44494
|
/**
|
|
44480
44495
|
* Notify the server that the user client left the collaborative session
|
|
44481
44496
|
*/
|
|
44482
|
-
leave(data) {
|
|
44497
|
+
async leave(data) {
|
|
44483
44498
|
if (Object.keys(this.clients).length === 1 && this.processedRevisions.size) {
|
|
44484
|
-
this.snapshot(data());
|
|
44499
|
+
await this.snapshot(data());
|
|
44485
44500
|
}
|
|
44486
44501
|
delete this.clients[this.clientId];
|
|
44487
44502
|
this.transportService.leave(this.clientId);
|
|
@@ -44494,12 +44509,12 @@
|
|
|
44494
44509
|
/**
|
|
44495
44510
|
* Send a snapshot of the spreadsheet to the collaboration server
|
|
44496
44511
|
*/
|
|
44497
|
-
snapshot(data) {
|
|
44512
|
+
async snapshot(data) {
|
|
44498
44513
|
if (this.pendingMessages.length !== 0) {
|
|
44499
44514
|
return;
|
|
44500
44515
|
}
|
|
44501
44516
|
const snapshotId = this.uuidGenerator.uuidv4();
|
|
44502
|
-
this.transportService.sendMessage({
|
|
44517
|
+
await this.transportService.sendMessage({
|
|
44503
44518
|
type: "SNAPSHOT",
|
|
44504
44519
|
nextRevisionId: snapshotId,
|
|
44505
44520
|
serverRevisionId: this.serverRevisionId,
|
|
@@ -45204,9 +45219,7 @@
|
|
|
45204
45219
|
const { sheetId, col, row } = target;
|
|
45205
45220
|
const targetCell = this.getters.getEvaluatedCell(target);
|
|
45206
45221
|
if (clipboardOption?.pasteOption === "onlyValue") {
|
|
45207
|
-
|
|
45208
|
-
const content = formatValue(origin.evaluatedCell.value, { locale });
|
|
45209
|
-
this.dispatch("UPDATE_CELL", { ...target, content });
|
|
45222
|
+
this.dispatch("UPDATE_CELL", { ...target, content: origin.evaluatedCell.value.toString() });
|
|
45210
45223
|
return;
|
|
45211
45224
|
}
|
|
45212
45225
|
const targetBorders = this.getters.getCellBorder(target);
|
|
@@ -49946,6 +49959,8 @@
|
|
|
49946
49959
|
this.selectedFigureId = null;
|
|
49947
49960
|
break;
|
|
49948
49961
|
}
|
|
49962
|
+
}
|
|
49963
|
+
finalize() {
|
|
49949
49964
|
/** Any change to the selection has to be reflected in the selection processor. */
|
|
49950
49965
|
this.selection.resetDefaultAnchor(this, deepCopy(this.gridSelection.anchor));
|
|
49951
49966
|
}
|
|
@@ -50799,7 +50814,6 @@
|
|
|
50799
50814
|
}
|
|
50800
50815
|
}
|
|
50801
50816
|
handle(cmd) {
|
|
50802
|
-
this.cleanViewports();
|
|
50803
50817
|
// changing the evaluation can hide/show rows because of data filters
|
|
50804
50818
|
if (invalidateEvaluationCommands.has(cmd.type)) {
|
|
50805
50819
|
for (const sheetId of this.getters.getSheetIds()) {
|
|
@@ -50815,6 +50829,7 @@
|
|
|
50815
50829
|
break;
|
|
50816
50830
|
case "UNDO":
|
|
50817
50831
|
case "REDO":
|
|
50832
|
+
this.cleanViewports();
|
|
50818
50833
|
for (const sheetId of this.getters.getSheetIds()) {
|
|
50819
50834
|
this.sheetsWithDirtyViewports.add(sheetId);
|
|
50820
50835
|
}
|
|
@@ -50868,6 +50883,9 @@
|
|
|
50868
50883
|
}
|
|
50869
50884
|
}
|
|
50870
50885
|
break;
|
|
50886
|
+
case "DELETE_SHEET":
|
|
50887
|
+
this.cleanViewports();
|
|
50888
|
+
break;
|
|
50871
50889
|
case "ACTIVATE_SHEET":
|
|
50872
50890
|
this.sheetsWithDirtyViewports.add(cmd.sheetIdTo);
|
|
50873
50891
|
break;
|
|
@@ -52009,6 +52027,17 @@
|
|
|
52009
52027
|
.o-bottom-bar-fade-in {
|
|
52010
52028
|
background-image: linear-gradient(90deg, #cfcfcf, transparent 1%);
|
|
52011
52029
|
}
|
|
52030
|
+
|
|
52031
|
+
.o-sheet-list {
|
|
52032
|
+
overflow-y: hidden;
|
|
52033
|
+
overflow-x: auto;
|
|
52034
|
+
|
|
52035
|
+
&::-webkit-scrollbar {
|
|
52036
|
+
display: none; /* Chrome */
|
|
52037
|
+
}
|
|
52038
|
+
-ms-overflow-style: none; /* IE and Edge */
|
|
52039
|
+
scrollbar-width: none; /* Firefox */
|
|
52040
|
+
}
|
|
52012
52041
|
}
|
|
52013
52042
|
|
|
52014
52043
|
.o-bottom-bar-arrows {
|
|
@@ -53891,7 +53920,7 @@
|
|
|
53891
53920
|
|
|
53892
53921
|
class LocalTransportService {
|
|
53893
53922
|
listeners = [];
|
|
53894
|
-
sendMessage(message) {
|
|
53923
|
+
async sendMessage(message) {
|
|
53895
53924
|
for (const { callback } of this.listeners) {
|
|
53896
53925
|
callback(message);
|
|
53897
53926
|
}
|
|
@@ -55778,17 +55807,13 @@
|
|
|
55778
55807
|
if (!formula) {
|
|
55779
55808
|
return { attrs: [], node: escapeXml `` };
|
|
55780
55809
|
}
|
|
55781
|
-
const
|
|
55782
|
-
|
|
55783
|
-
|
|
55784
|
-
const XlsxFormula = adaptFormulaToExcel(formula);
|
|
55785
|
-
// hack for cycles : if we don't set a value (be it 0 or #VALUE!), it will appear as invisible on excel,
|
|
55786
|
-
// Making it very hard for the client to find where the recursion is.
|
|
55787
|
-
if (cell.value === CellErrorType.CircularDependency) {
|
|
55788
|
-
attrs.push(["t", "str"]);
|
|
55789
|
-
cycle = escapeXml /*xml*/ `<v>${cell.value}</v>`;
|
|
55810
|
+
const type = getCellType(cell.value);
|
|
55811
|
+
if (type === undefined) {
|
|
55812
|
+
return { attrs: [], node: escapeXml `` };
|
|
55790
55813
|
}
|
|
55791
|
-
|
|
55814
|
+
const attrs = [["t", type]];
|
|
55815
|
+
const XlsxFormula = adaptFormulaToExcel(formula);
|
|
55816
|
+
const node = escapeXml /*xml*/ `<f>${XlsxFormula}</f><v>${cell.value}</v>`;
|
|
55792
55817
|
return { attrs, node };
|
|
55793
55818
|
}
|
|
55794
55819
|
function addContent(content, sharedStrings, forceString = false) {
|
|
@@ -57116,8 +57141,8 @@
|
|
|
57116
57141
|
joinSession() {
|
|
57117
57142
|
this.session.join(this.config.client);
|
|
57118
57143
|
}
|
|
57119
|
-
leaveSession() {
|
|
57120
|
-
this.session.leave(lazy(() => this.exportData()));
|
|
57144
|
+
async leaveSession() {
|
|
57145
|
+
await this.session.leave(lazy(() => this.exportData()));
|
|
57121
57146
|
}
|
|
57122
57147
|
setupUiPlugin(Plugin) {
|
|
57123
57148
|
const plugin = new Plugin(this.uiPluginConfig);
|
|
@@ -57620,9 +57645,9 @@
|
|
|
57620
57645
|
exports.tokenize = tokenize;
|
|
57621
57646
|
|
|
57622
57647
|
|
|
57623
|
-
__info__.version = "17.0.
|
|
57624
|
-
__info__.date = "2024-
|
|
57625
|
-
__info__.hash = "
|
|
57648
|
+
__info__.version = "17.0.37";
|
|
57649
|
+
__info__.date = "2024-09-05T09:30:59.083Z";
|
|
57650
|
+
__info__.hash = "b1873b5";
|
|
57626
57651
|
|
|
57627
57652
|
|
|
57628
57653
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|