@odoo/o-spreadsheet 17.2.22 → 17.2.23
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 -27
- package/dist/o-spreadsheet.d.ts +5 -4
- package/dist/o-spreadsheet.esm.js +53 -27
- package/dist/o-spreadsheet.iife.js +53 -27
- package/dist/o-spreadsheet.iife.min.js +16 -5
- package/dist/o_spreadsheet.xml +4 -4
- package/package.json +1 -1
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
5
5
|
* @see https://github.com/odoo/o-spreadsheet
|
|
6
|
-
* @version 17.2.
|
|
7
|
-
* @date 2024-
|
|
8
|
-
* @hash
|
|
6
|
+
* @version 17.2.23
|
|
7
|
+
* @date 2024-09-05T09:32:03.325Z
|
|
8
|
+
* @hash e5e2be8
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
@@ -5787,9 +5787,11 @@ class CellClipboardHandler extends AbstractCellClipboardHandler {
|
|
|
5787
5787
|
const targetCell = this.getters.getEvaluatedCell(target);
|
|
5788
5788
|
const originFormat = origin.cell?.format ?? origin.evaluatedCell.format;
|
|
5789
5789
|
if (clipboardOption?.pasteOption === "asValue") {
|
|
5790
|
-
|
|
5791
|
-
|
|
5792
|
-
|
|
5790
|
+
this.dispatch("UPDATE_CELL", {
|
|
5791
|
+
...target,
|
|
5792
|
+
content: origin.evaluatedCell.value?.toString() || "",
|
|
5793
|
+
format: originFormat,
|
|
5794
|
+
});
|
|
5793
5795
|
return;
|
|
5794
5796
|
}
|
|
5795
5797
|
if (clipboardOption?.pasteOption === "onlyFormat") {
|
|
@@ -37590,6 +37592,18 @@ function convertOperator(operator) {
|
|
|
37590
37592
|
// -------------------------------------
|
|
37591
37593
|
// WORKSHEET HELPERS
|
|
37592
37594
|
// -------------------------------------
|
|
37595
|
+
function getCellType(value) {
|
|
37596
|
+
switch (typeof value) {
|
|
37597
|
+
case "boolean":
|
|
37598
|
+
return "b";
|
|
37599
|
+
case "string":
|
|
37600
|
+
return "str";
|
|
37601
|
+
case "number":
|
|
37602
|
+
return "n";
|
|
37603
|
+
default:
|
|
37604
|
+
return undefined;
|
|
37605
|
+
}
|
|
37606
|
+
}
|
|
37593
37607
|
function convertHeightToExcel(height) {
|
|
37594
37608
|
return Math.round(HEIGHT_FACTOR * height * 100) / 100;
|
|
37595
37609
|
}
|
|
@@ -50425,9 +50439,9 @@ class Session extends EventBus {
|
|
|
50425
50439
|
/**
|
|
50426
50440
|
* Notify the server that the user client left the collaborative session
|
|
50427
50441
|
*/
|
|
50428
|
-
leave(data) {
|
|
50442
|
+
async leave(data) {
|
|
50429
50443
|
if (Object.keys(this.clients).length === 1 && this.processedRevisions.size) {
|
|
50430
|
-
this.snapshot(data());
|
|
50444
|
+
await this.snapshot(data());
|
|
50431
50445
|
}
|
|
50432
50446
|
delete this.clients[this.clientId];
|
|
50433
50447
|
this.transportService.leave(this.clientId);
|
|
@@ -50440,12 +50454,12 @@ class Session extends EventBus {
|
|
|
50440
50454
|
/**
|
|
50441
50455
|
* Send a snapshot of the spreadsheet to the collaboration server
|
|
50442
50456
|
*/
|
|
50443
|
-
snapshot(data) {
|
|
50457
|
+
async snapshot(data) {
|
|
50444
50458
|
if (this.pendingMessages.length !== 0) {
|
|
50445
50459
|
return;
|
|
50446
50460
|
}
|
|
50447
50461
|
const snapshotId = this.uuidGenerator.uuidv4();
|
|
50448
|
-
this.transportService.sendMessage({
|
|
50462
|
+
await this.transportService.sendMessage({
|
|
50449
50463
|
type: "SNAPSHOT",
|
|
50450
50464
|
nextRevisionId: snapshotId,
|
|
50451
50465
|
serverRevisionId: this.serverRevisionId,
|
|
@@ -53214,6 +53228,8 @@ class GridSelectionPlugin extends UIPlugin {
|
|
|
53214
53228
|
this.selectedFigureId = null;
|
|
53215
53229
|
break;
|
|
53216
53230
|
}
|
|
53231
|
+
}
|
|
53232
|
+
finalize() {
|
|
53217
53233
|
/** Any change to the selection has to be reflected in the selection processor. */
|
|
53218
53234
|
this.selection.resetDefaultAnchor(this, deepCopy(this.gridSelection.anchor));
|
|
53219
53235
|
}
|
|
@@ -54042,7 +54058,6 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
54042
54058
|
}
|
|
54043
54059
|
}
|
|
54044
54060
|
handle(cmd) {
|
|
54045
|
-
this.cleanViewports();
|
|
54046
54061
|
// changing the evaluation can hide/show rows because of data filters
|
|
54047
54062
|
if (invalidateEvaluationCommands.has(cmd.type)) {
|
|
54048
54063
|
for (const sheetId of this.getters.getSheetIds()) {
|
|
@@ -54058,6 +54073,7 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
54058
54073
|
break;
|
|
54059
54074
|
case "UNDO":
|
|
54060
54075
|
case "REDO":
|
|
54076
|
+
this.cleanViewports();
|
|
54061
54077
|
for (const sheetId of this.getters.getSheetIds()) {
|
|
54062
54078
|
this.sheetsWithDirtyViewports.add(sheetId);
|
|
54063
54079
|
}
|
|
@@ -54112,6 +54128,9 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
54112
54128
|
}
|
|
54113
54129
|
}
|
|
54114
54130
|
break;
|
|
54131
|
+
case "DELETE_SHEET":
|
|
54132
|
+
this.cleanViewports();
|
|
54133
|
+
break;
|
|
54115
54134
|
case "ACTIVATE_SHEET":
|
|
54116
54135
|
this.sheetsWithDirtyViewports.add(cmd.sheetIdTo);
|
|
54117
54136
|
break;
|
|
@@ -55272,6 +55291,17 @@ css /* scss */ `
|
|
|
55272
55291
|
.o-bottom-bar-fade-in {
|
|
55273
55292
|
background-image: linear-gradient(90deg, #cfcfcf, transparent 1%);
|
|
55274
55293
|
}
|
|
55294
|
+
|
|
55295
|
+
.o-sheet-list {
|
|
55296
|
+
overflow-y: hidden;
|
|
55297
|
+
overflow-x: auto;
|
|
55298
|
+
|
|
55299
|
+
&::-webkit-scrollbar {
|
|
55300
|
+
display: none; /* Chrome */
|
|
55301
|
+
}
|
|
55302
|
+
-ms-overflow-style: none; /* IE and Edge */
|
|
55303
|
+
scrollbar-width: none; /* Firefox */
|
|
55304
|
+
}
|
|
55275
55305
|
}
|
|
55276
55306
|
|
|
55277
55307
|
.o-bottom-bar-arrows {
|
|
@@ -57168,7 +57198,7 @@ class Spreadsheet extends owl.Component {
|
|
|
57168
57198
|
|
|
57169
57199
|
class LocalTransportService {
|
|
57170
57200
|
listeners = [];
|
|
57171
|
-
sendMessage(message) {
|
|
57201
|
+
async sendMessage(message) {
|
|
57172
57202
|
for (const { callback } of this.listeners) {
|
|
57173
57203
|
callback(message);
|
|
57174
57204
|
}
|
|
@@ -59005,17 +59035,13 @@ function addFormula(cell) {
|
|
|
59005
59035
|
if (!formula) {
|
|
59006
59036
|
return { attrs: [], node: escapeXml `` };
|
|
59007
59037
|
}
|
|
59008
|
-
const
|
|
59009
|
-
|
|
59010
|
-
|
|
59011
|
-
const XlsxFormula = adaptFormulaToExcel(formula);
|
|
59012
|
-
// hack for cycles : if we don't set a value (be it 0 or #VALUE!), it will appear as invisible on excel,
|
|
59013
|
-
// Making it very hard for the client to find where the recursion is.
|
|
59014
|
-
if (cell.value === CellErrorType.CircularDependency) {
|
|
59015
|
-
attrs.push(["t", "str"]);
|
|
59016
|
-
cycle = escapeXml /*xml*/ `<v>${cell.value}</v>`;
|
|
59038
|
+
const type = getCellType(cell.value);
|
|
59039
|
+
if (type === undefined) {
|
|
59040
|
+
return { attrs: [], node: escapeXml `` };
|
|
59017
59041
|
}
|
|
59018
|
-
|
|
59042
|
+
const attrs = [["t", type]];
|
|
59043
|
+
const XlsxFormula = adaptFormulaToExcel(formula);
|
|
59044
|
+
const node = escapeXml /*xml*/ `<f>${XlsxFormula}</f><v>${cell.value}</v>`;
|
|
59019
59045
|
return { attrs, node };
|
|
59020
59046
|
}
|
|
59021
59047
|
function addContent(content, sharedStrings, forceString = false) {
|
|
@@ -60367,8 +60393,8 @@ class Model extends EventBus {
|
|
|
60367
60393
|
joinSession() {
|
|
60368
60394
|
this.session.join(this.config.client);
|
|
60369
60395
|
}
|
|
60370
|
-
leaveSession() {
|
|
60371
|
-
this.session.leave(lazy(() => this.exportData()));
|
|
60396
|
+
async leaveSession() {
|
|
60397
|
+
await this.session.leave(lazy(() => this.exportData()));
|
|
60372
60398
|
}
|
|
60373
60399
|
setupUiPlugin(Plugin) {
|
|
60374
60400
|
const plugin = new Plugin(this.uiPluginConfig);
|
|
@@ -60922,6 +60948,6 @@ exports.tokenColors = tokenColors;
|
|
|
60922
60948
|
exports.tokenize = tokenize;
|
|
60923
60949
|
|
|
60924
60950
|
|
|
60925
|
-
__info__.version = "17.2.
|
|
60926
|
-
__info__.date = "2024-
|
|
60927
|
-
__info__.hash = "
|
|
60951
|
+
__info__.version = "17.2.23";
|
|
60952
|
+
__info__.date = "2024-09-05T09:32:03.325Z";
|
|
60953
|
+
__info__.hash = "e5e2be8";
|
package/dist/o-spreadsheet.d.ts
CHANGED
|
@@ -3354,7 +3354,7 @@ interface TransportService<T = any> {
|
|
|
3354
3354
|
/**
|
|
3355
3355
|
* Send a message to all clients
|
|
3356
3356
|
*/
|
|
3357
|
-
sendMessage: (message: T) => void
|
|
3357
|
+
sendMessage: (message: T) => Promise<void>;
|
|
3358
3358
|
/**
|
|
3359
3359
|
* Register a callback function which will be called each time
|
|
3360
3360
|
* a new message is received.
|
|
@@ -3451,11 +3451,11 @@ declare class Session extends EventBus<CollaborativeEvent> {
|
|
|
3451
3451
|
/**
|
|
3452
3452
|
* Notify the server that the user client left the collaborative session
|
|
3453
3453
|
*/
|
|
3454
|
-
leave(data: Lazy<WorkbookData>): void
|
|
3454
|
+
leave(data: Lazy<WorkbookData>): Promise<void>;
|
|
3455
3455
|
/**
|
|
3456
3456
|
* Send a snapshot of the spreadsheet to the collaboration server
|
|
3457
3457
|
*/
|
|
3458
|
-
snapshot(data: WorkbookData): void
|
|
3458
|
+
snapshot(data: WorkbookData): Promise<void>;
|
|
3459
3459
|
getClient(): Client;
|
|
3460
3460
|
getConnectedClients(): Set<Client>;
|
|
3461
3461
|
getRevisionId(): UID;
|
|
@@ -4227,6 +4227,7 @@ declare class GridSelectionPlugin extends UIPlugin {
|
|
|
4227
4227
|
allowDispatch(cmd: LocalCommand): CommandResult;
|
|
4228
4228
|
private handleEvent;
|
|
4229
4229
|
handle(cmd: Command): void;
|
|
4230
|
+
finalize(): void;
|
|
4230
4231
|
isGridSelectionActive(): boolean;
|
|
4231
4232
|
getActiveSheet(): Readonly<Sheet>;
|
|
4232
4233
|
getActiveSheetId(): UID;
|
|
@@ -5167,7 +5168,7 @@ declare class Model extends EventBus<any> implements CommandDispatcher {
|
|
|
5167
5168
|
private readonly coreHandlers;
|
|
5168
5169
|
constructor(data?: any, config?: Partial<ModelConfig>, stateUpdateMessages?: StateUpdateMessage[], uuidGenerator?: UuidGenerator, verboseImport?: boolean);
|
|
5169
5170
|
joinSession(): void;
|
|
5170
|
-
leaveSession(): void
|
|
5171
|
+
leaveSession(): Promise<void>;
|
|
5171
5172
|
private setupUiPlugin;
|
|
5172
5173
|
/**
|
|
5173
5174
|
* Initialize and properly configure a plugin.
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
5
5
|
* @see https://github.com/odoo/o-spreadsheet
|
|
6
|
-
* @version 17.2.
|
|
7
|
-
* @date 2024-
|
|
8
|
-
* @hash
|
|
6
|
+
* @version 17.2.23
|
|
7
|
+
* @date 2024-09-05T09:32:03.325Z
|
|
8
|
+
* @hash e5e2be8
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { useEnv, useSubEnv, onWillUnmount, useComponent, status, Component, useRef, onMounted, useEffect, useState, onPatched, onWillPatch, onWillUpdateProps, useExternalListener, onWillStart, xml, useChildSubEnv, markRaw } from '@odoo/owl';
|
|
@@ -5785,9 +5785,11 @@ class CellClipboardHandler extends AbstractCellClipboardHandler {
|
|
|
5785
5785
|
const targetCell = this.getters.getEvaluatedCell(target);
|
|
5786
5786
|
const originFormat = origin.cell?.format ?? origin.evaluatedCell.format;
|
|
5787
5787
|
if (clipboardOption?.pasteOption === "asValue") {
|
|
5788
|
-
|
|
5789
|
-
|
|
5790
|
-
|
|
5788
|
+
this.dispatch("UPDATE_CELL", {
|
|
5789
|
+
...target,
|
|
5790
|
+
content: origin.evaluatedCell.value?.toString() || "",
|
|
5791
|
+
format: originFormat,
|
|
5792
|
+
});
|
|
5791
5793
|
return;
|
|
5792
5794
|
}
|
|
5793
5795
|
if (clipboardOption?.pasteOption === "onlyFormat") {
|
|
@@ -37588,6 +37590,18 @@ function convertOperator(operator) {
|
|
|
37588
37590
|
// -------------------------------------
|
|
37589
37591
|
// WORKSHEET HELPERS
|
|
37590
37592
|
// -------------------------------------
|
|
37593
|
+
function getCellType(value) {
|
|
37594
|
+
switch (typeof value) {
|
|
37595
|
+
case "boolean":
|
|
37596
|
+
return "b";
|
|
37597
|
+
case "string":
|
|
37598
|
+
return "str";
|
|
37599
|
+
case "number":
|
|
37600
|
+
return "n";
|
|
37601
|
+
default:
|
|
37602
|
+
return undefined;
|
|
37603
|
+
}
|
|
37604
|
+
}
|
|
37591
37605
|
function convertHeightToExcel(height) {
|
|
37592
37606
|
return Math.round(HEIGHT_FACTOR * height * 100) / 100;
|
|
37593
37607
|
}
|
|
@@ -50423,9 +50437,9 @@ class Session extends EventBus {
|
|
|
50423
50437
|
/**
|
|
50424
50438
|
* Notify the server that the user client left the collaborative session
|
|
50425
50439
|
*/
|
|
50426
|
-
leave(data) {
|
|
50440
|
+
async leave(data) {
|
|
50427
50441
|
if (Object.keys(this.clients).length === 1 && this.processedRevisions.size) {
|
|
50428
|
-
this.snapshot(data());
|
|
50442
|
+
await this.snapshot(data());
|
|
50429
50443
|
}
|
|
50430
50444
|
delete this.clients[this.clientId];
|
|
50431
50445
|
this.transportService.leave(this.clientId);
|
|
@@ -50438,12 +50452,12 @@ class Session extends EventBus {
|
|
|
50438
50452
|
/**
|
|
50439
50453
|
* Send a snapshot of the spreadsheet to the collaboration server
|
|
50440
50454
|
*/
|
|
50441
|
-
snapshot(data) {
|
|
50455
|
+
async snapshot(data) {
|
|
50442
50456
|
if (this.pendingMessages.length !== 0) {
|
|
50443
50457
|
return;
|
|
50444
50458
|
}
|
|
50445
50459
|
const snapshotId = this.uuidGenerator.uuidv4();
|
|
50446
|
-
this.transportService.sendMessage({
|
|
50460
|
+
await this.transportService.sendMessage({
|
|
50447
50461
|
type: "SNAPSHOT",
|
|
50448
50462
|
nextRevisionId: snapshotId,
|
|
50449
50463
|
serverRevisionId: this.serverRevisionId,
|
|
@@ -53212,6 +53226,8 @@ class GridSelectionPlugin extends UIPlugin {
|
|
|
53212
53226
|
this.selectedFigureId = null;
|
|
53213
53227
|
break;
|
|
53214
53228
|
}
|
|
53229
|
+
}
|
|
53230
|
+
finalize() {
|
|
53215
53231
|
/** Any change to the selection has to be reflected in the selection processor. */
|
|
53216
53232
|
this.selection.resetDefaultAnchor(this, deepCopy(this.gridSelection.anchor));
|
|
53217
53233
|
}
|
|
@@ -54040,7 +54056,6 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
54040
54056
|
}
|
|
54041
54057
|
}
|
|
54042
54058
|
handle(cmd) {
|
|
54043
|
-
this.cleanViewports();
|
|
54044
54059
|
// changing the evaluation can hide/show rows because of data filters
|
|
54045
54060
|
if (invalidateEvaluationCommands.has(cmd.type)) {
|
|
54046
54061
|
for (const sheetId of this.getters.getSheetIds()) {
|
|
@@ -54056,6 +54071,7 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
54056
54071
|
break;
|
|
54057
54072
|
case "UNDO":
|
|
54058
54073
|
case "REDO":
|
|
54074
|
+
this.cleanViewports();
|
|
54059
54075
|
for (const sheetId of this.getters.getSheetIds()) {
|
|
54060
54076
|
this.sheetsWithDirtyViewports.add(sheetId);
|
|
54061
54077
|
}
|
|
@@ -54110,6 +54126,9 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
54110
54126
|
}
|
|
54111
54127
|
}
|
|
54112
54128
|
break;
|
|
54129
|
+
case "DELETE_SHEET":
|
|
54130
|
+
this.cleanViewports();
|
|
54131
|
+
break;
|
|
54113
54132
|
case "ACTIVATE_SHEET":
|
|
54114
54133
|
this.sheetsWithDirtyViewports.add(cmd.sheetIdTo);
|
|
54115
54134
|
break;
|
|
@@ -55270,6 +55289,17 @@ css /* scss */ `
|
|
|
55270
55289
|
.o-bottom-bar-fade-in {
|
|
55271
55290
|
background-image: linear-gradient(90deg, #cfcfcf, transparent 1%);
|
|
55272
55291
|
}
|
|
55292
|
+
|
|
55293
|
+
.o-sheet-list {
|
|
55294
|
+
overflow-y: hidden;
|
|
55295
|
+
overflow-x: auto;
|
|
55296
|
+
|
|
55297
|
+
&::-webkit-scrollbar {
|
|
55298
|
+
display: none; /* Chrome */
|
|
55299
|
+
}
|
|
55300
|
+
-ms-overflow-style: none; /* IE and Edge */
|
|
55301
|
+
scrollbar-width: none; /* Firefox */
|
|
55302
|
+
}
|
|
55273
55303
|
}
|
|
55274
55304
|
|
|
55275
55305
|
.o-bottom-bar-arrows {
|
|
@@ -57166,7 +57196,7 @@ class Spreadsheet extends Component {
|
|
|
57166
57196
|
|
|
57167
57197
|
class LocalTransportService {
|
|
57168
57198
|
listeners = [];
|
|
57169
|
-
sendMessage(message) {
|
|
57199
|
+
async sendMessage(message) {
|
|
57170
57200
|
for (const { callback } of this.listeners) {
|
|
57171
57201
|
callback(message);
|
|
57172
57202
|
}
|
|
@@ -59003,17 +59033,13 @@ function addFormula(cell) {
|
|
|
59003
59033
|
if (!formula) {
|
|
59004
59034
|
return { attrs: [], node: escapeXml `` };
|
|
59005
59035
|
}
|
|
59006
|
-
const
|
|
59007
|
-
|
|
59008
|
-
|
|
59009
|
-
const XlsxFormula = adaptFormulaToExcel(formula);
|
|
59010
|
-
// hack for cycles : if we don't set a value (be it 0 or #VALUE!), it will appear as invisible on excel,
|
|
59011
|
-
// Making it very hard for the client to find where the recursion is.
|
|
59012
|
-
if (cell.value === CellErrorType.CircularDependency) {
|
|
59013
|
-
attrs.push(["t", "str"]);
|
|
59014
|
-
cycle = escapeXml /*xml*/ `<v>${cell.value}</v>`;
|
|
59036
|
+
const type = getCellType(cell.value);
|
|
59037
|
+
if (type === undefined) {
|
|
59038
|
+
return { attrs: [], node: escapeXml `` };
|
|
59015
59039
|
}
|
|
59016
|
-
|
|
59040
|
+
const attrs = [["t", type]];
|
|
59041
|
+
const XlsxFormula = adaptFormulaToExcel(formula);
|
|
59042
|
+
const node = escapeXml /*xml*/ `<f>${XlsxFormula}</f><v>${cell.value}</v>`;
|
|
59017
59043
|
return { attrs, node };
|
|
59018
59044
|
}
|
|
59019
59045
|
function addContent(content, sharedStrings, forceString = false) {
|
|
@@ -60365,8 +60391,8 @@ class Model extends EventBus {
|
|
|
60365
60391
|
joinSession() {
|
|
60366
60392
|
this.session.join(this.config.client);
|
|
60367
60393
|
}
|
|
60368
|
-
leaveSession() {
|
|
60369
|
-
this.session.leave(lazy(() => this.exportData()));
|
|
60394
|
+
async leaveSession() {
|
|
60395
|
+
await this.session.leave(lazy(() => this.exportData()));
|
|
60370
60396
|
}
|
|
60371
60397
|
setupUiPlugin(Plugin) {
|
|
60372
60398
|
const plugin = new Plugin(this.uiPluginConfig);
|
|
@@ -60879,6 +60905,6 @@ const constants = {
|
|
|
60879
60905
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, 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 };
|
|
60880
60906
|
|
|
60881
60907
|
|
|
60882
|
-
__info__.version = "17.2.
|
|
60883
|
-
__info__.date = "2024-
|
|
60884
|
-
__info__.hash = "
|
|
60908
|
+
__info__.version = "17.2.23";
|
|
60909
|
+
__info__.date = "2024-09-05T09:32:03.325Z";
|
|
60910
|
+
__info__.hash = "e5e2be8";
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
5
5
|
* @see https://github.com/odoo/o-spreadsheet
|
|
6
|
-
* @version 17.2.
|
|
7
|
-
* @date 2024-
|
|
8
|
-
* @hash
|
|
6
|
+
* @version 17.2.23
|
|
7
|
+
* @date 2024-09-05T09:32:03.325Z
|
|
8
|
+
* @hash e5e2be8
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
(function (exports, owl) {
|
|
@@ -5786,9 +5786,11 @@
|
|
|
5786
5786
|
const targetCell = this.getters.getEvaluatedCell(target);
|
|
5787
5787
|
const originFormat = origin.cell?.format ?? origin.evaluatedCell.format;
|
|
5788
5788
|
if (clipboardOption?.pasteOption === "asValue") {
|
|
5789
|
-
|
|
5790
|
-
|
|
5791
|
-
|
|
5789
|
+
this.dispatch("UPDATE_CELL", {
|
|
5790
|
+
...target,
|
|
5791
|
+
content: origin.evaluatedCell.value?.toString() || "",
|
|
5792
|
+
format: originFormat,
|
|
5793
|
+
});
|
|
5792
5794
|
return;
|
|
5793
5795
|
}
|
|
5794
5796
|
if (clipboardOption?.pasteOption === "onlyFormat") {
|
|
@@ -37589,6 +37591,18 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
37589
37591
|
// -------------------------------------
|
|
37590
37592
|
// WORKSHEET HELPERS
|
|
37591
37593
|
// -------------------------------------
|
|
37594
|
+
function getCellType(value) {
|
|
37595
|
+
switch (typeof value) {
|
|
37596
|
+
case "boolean":
|
|
37597
|
+
return "b";
|
|
37598
|
+
case "string":
|
|
37599
|
+
return "str";
|
|
37600
|
+
case "number":
|
|
37601
|
+
return "n";
|
|
37602
|
+
default:
|
|
37603
|
+
return undefined;
|
|
37604
|
+
}
|
|
37605
|
+
}
|
|
37592
37606
|
function convertHeightToExcel(height) {
|
|
37593
37607
|
return Math.round(HEIGHT_FACTOR * height * 100) / 100;
|
|
37594
37608
|
}
|
|
@@ -50424,9 +50438,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50424
50438
|
/**
|
|
50425
50439
|
* Notify the server that the user client left the collaborative session
|
|
50426
50440
|
*/
|
|
50427
|
-
leave(data) {
|
|
50441
|
+
async leave(data) {
|
|
50428
50442
|
if (Object.keys(this.clients).length === 1 && this.processedRevisions.size) {
|
|
50429
|
-
this.snapshot(data());
|
|
50443
|
+
await this.snapshot(data());
|
|
50430
50444
|
}
|
|
50431
50445
|
delete this.clients[this.clientId];
|
|
50432
50446
|
this.transportService.leave(this.clientId);
|
|
@@ -50439,12 +50453,12 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50439
50453
|
/**
|
|
50440
50454
|
* Send a snapshot of the spreadsheet to the collaboration server
|
|
50441
50455
|
*/
|
|
50442
|
-
snapshot(data) {
|
|
50456
|
+
async snapshot(data) {
|
|
50443
50457
|
if (this.pendingMessages.length !== 0) {
|
|
50444
50458
|
return;
|
|
50445
50459
|
}
|
|
50446
50460
|
const snapshotId = this.uuidGenerator.uuidv4();
|
|
50447
|
-
this.transportService.sendMessage({
|
|
50461
|
+
await this.transportService.sendMessage({
|
|
50448
50462
|
type: "SNAPSHOT",
|
|
50449
50463
|
nextRevisionId: snapshotId,
|
|
50450
50464
|
serverRevisionId: this.serverRevisionId,
|
|
@@ -53213,6 +53227,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53213
53227
|
this.selectedFigureId = null;
|
|
53214
53228
|
break;
|
|
53215
53229
|
}
|
|
53230
|
+
}
|
|
53231
|
+
finalize() {
|
|
53216
53232
|
/** Any change to the selection has to be reflected in the selection processor. */
|
|
53217
53233
|
this.selection.resetDefaultAnchor(this, deepCopy(this.gridSelection.anchor));
|
|
53218
53234
|
}
|
|
@@ -54041,7 +54057,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
54041
54057
|
}
|
|
54042
54058
|
}
|
|
54043
54059
|
handle(cmd) {
|
|
54044
|
-
this.cleanViewports();
|
|
54045
54060
|
// changing the evaluation can hide/show rows because of data filters
|
|
54046
54061
|
if (invalidateEvaluationCommands.has(cmd.type)) {
|
|
54047
54062
|
for (const sheetId of this.getters.getSheetIds()) {
|
|
@@ -54057,6 +54072,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
54057
54072
|
break;
|
|
54058
54073
|
case "UNDO":
|
|
54059
54074
|
case "REDO":
|
|
54075
|
+
this.cleanViewports();
|
|
54060
54076
|
for (const sheetId of this.getters.getSheetIds()) {
|
|
54061
54077
|
this.sheetsWithDirtyViewports.add(sheetId);
|
|
54062
54078
|
}
|
|
@@ -54111,6 +54127,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
54111
54127
|
}
|
|
54112
54128
|
}
|
|
54113
54129
|
break;
|
|
54130
|
+
case "DELETE_SHEET":
|
|
54131
|
+
this.cleanViewports();
|
|
54132
|
+
break;
|
|
54114
54133
|
case "ACTIVATE_SHEET":
|
|
54115
54134
|
this.sheetsWithDirtyViewports.add(cmd.sheetIdTo);
|
|
54116
54135
|
break;
|
|
@@ -55271,6 +55290,17 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
55271
55290
|
.o-bottom-bar-fade-in {
|
|
55272
55291
|
background-image: linear-gradient(90deg, #cfcfcf, transparent 1%);
|
|
55273
55292
|
}
|
|
55293
|
+
|
|
55294
|
+
.o-sheet-list {
|
|
55295
|
+
overflow-y: hidden;
|
|
55296
|
+
overflow-x: auto;
|
|
55297
|
+
|
|
55298
|
+
&::-webkit-scrollbar {
|
|
55299
|
+
display: none; /* Chrome */
|
|
55300
|
+
}
|
|
55301
|
+
-ms-overflow-style: none; /* IE and Edge */
|
|
55302
|
+
scrollbar-width: none; /* Firefox */
|
|
55303
|
+
}
|
|
55274
55304
|
}
|
|
55275
55305
|
|
|
55276
55306
|
.o-bottom-bar-arrows {
|
|
@@ -57167,7 +57197,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57167
57197
|
|
|
57168
57198
|
class LocalTransportService {
|
|
57169
57199
|
listeners = [];
|
|
57170
|
-
sendMessage(message) {
|
|
57200
|
+
async sendMessage(message) {
|
|
57171
57201
|
for (const { callback } of this.listeners) {
|
|
57172
57202
|
callback(message);
|
|
57173
57203
|
}
|
|
@@ -59004,17 +59034,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
59004
59034
|
if (!formula) {
|
|
59005
59035
|
return { attrs: [], node: escapeXml `` };
|
|
59006
59036
|
}
|
|
59007
|
-
const
|
|
59008
|
-
|
|
59009
|
-
|
|
59010
|
-
const XlsxFormula = adaptFormulaToExcel(formula);
|
|
59011
|
-
// hack for cycles : if we don't set a value (be it 0 or #VALUE!), it will appear as invisible on excel,
|
|
59012
|
-
// Making it very hard for the client to find where the recursion is.
|
|
59013
|
-
if (cell.value === CellErrorType.CircularDependency) {
|
|
59014
|
-
attrs.push(["t", "str"]);
|
|
59015
|
-
cycle = escapeXml /*xml*/ `<v>${cell.value}</v>`;
|
|
59037
|
+
const type = getCellType(cell.value);
|
|
59038
|
+
if (type === undefined) {
|
|
59039
|
+
return { attrs: [], node: escapeXml `` };
|
|
59016
59040
|
}
|
|
59017
|
-
|
|
59041
|
+
const attrs = [["t", type]];
|
|
59042
|
+
const XlsxFormula = adaptFormulaToExcel(formula);
|
|
59043
|
+
const node = escapeXml /*xml*/ `<f>${XlsxFormula}</f><v>${cell.value}</v>`;
|
|
59018
59044
|
return { attrs, node };
|
|
59019
59045
|
}
|
|
59020
59046
|
function addContent(content, sharedStrings, forceString = false) {
|
|
@@ -60366,8 +60392,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
60366
60392
|
joinSession() {
|
|
60367
60393
|
this.session.join(this.config.client);
|
|
60368
60394
|
}
|
|
60369
|
-
leaveSession() {
|
|
60370
|
-
this.session.leave(lazy(() => this.exportData()));
|
|
60395
|
+
async leaveSession() {
|
|
60396
|
+
await this.session.leave(lazy(() => this.exportData()));
|
|
60371
60397
|
}
|
|
60372
60398
|
setupUiPlugin(Plugin) {
|
|
60373
60399
|
const plugin = new Plugin(this.uiPluginConfig);
|
|
@@ -60921,9 +60947,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
60921
60947
|
exports.tokenize = tokenize;
|
|
60922
60948
|
|
|
60923
60949
|
|
|
60924
|
-
__info__.version = "17.2.
|
|
60925
|
-
__info__.date = "2024-
|
|
60926
|
-
__info__.hash = "
|
|
60950
|
+
__info__.version = "17.2.23";
|
|
60951
|
+
__info__.date = "2024-09-05T09:32:03.325Z";
|
|
60952
|
+
__info__.hash = "e5e2be8";
|
|
60927
60953
|
|
|
60928
60954
|
|
|
60929
60955
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|