@odoo/o-spreadsheet 19.1.1 → 19.1.2
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-engine.d.ts +1 -0
- package/dist/o-spreadsheet-engine.esm.js +57 -20
- package/dist/o-spreadsheet-engine.iife.js +57 -20
- package/dist/o-spreadsheet-engine.min.iife.js +164 -164
- package/dist/o-spreadsheet.d.ts +6 -8
- package/dist/o_spreadsheet.css +3 -3
- package/dist/o_spreadsheet.esm.js +74 -39
- package/dist/o_spreadsheet.iife.js +74 -39
- package/dist/o_spreadsheet.min.iife.js +5 -5
- package/dist/o_spreadsheet.xml +4 -6
- package/package.json +1 -1
package/dist/o-spreadsheet.d.ts
CHANGED
|
@@ -3647,6 +3647,7 @@ declare class Session extends EventBus<CollaborativeEvent> {
|
|
|
3647
3647
|
private onClientJoined;
|
|
3648
3648
|
private onClientLeft;
|
|
3649
3649
|
private sendUpdateMessage;
|
|
3650
|
+
private sendToTransport;
|
|
3650
3651
|
/**
|
|
3651
3652
|
* Send the next pending message
|
|
3652
3653
|
*/
|
|
@@ -10342,13 +10343,9 @@ interface Props$D {
|
|
|
10342
10343
|
onCellDoubleClicked: (col: HeaderIndex, row: HeaderIndex) => void;
|
|
10343
10344
|
onCellClicked: (col: HeaderIndex, row: HeaderIndex, modifiers: GridClickModifiers, zoomedMouseEvent: ZoomedMouseEvent<MouseEvent | PointerEvent>) => void;
|
|
10344
10345
|
onCellRightClicked: (col: HeaderIndex, row: HeaderIndex, coordinates: DOMCoordinates) => void;
|
|
10345
|
-
onGridResized: (
|
|
10346
|
+
onGridResized: () => void;
|
|
10346
10347
|
onGridMoved: (deltaX: Pixel, deltaY: Pixel) => void;
|
|
10347
10348
|
gridOverlayDimensions: string;
|
|
10348
|
-
getGridSize: () => {
|
|
10349
|
-
width: number;
|
|
10350
|
-
height: number;
|
|
10351
|
-
};
|
|
10352
10349
|
}
|
|
10353
10350
|
declare class GridOverlay extends Component<Props$D, SpreadsheetChildEnv> {
|
|
10354
10351
|
static template: string;
|
|
@@ -10375,7 +10372,6 @@ declare class GridOverlay extends Component<Props$D, SpreadsheetChildEnv> {
|
|
|
10375
10372
|
type: ObjectConstructor;
|
|
10376
10373
|
optional: boolean;
|
|
10377
10374
|
};
|
|
10378
|
-
getGridSize: FunctionConstructor;
|
|
10379
10375
|
};
|
|
10380
10376
|
static components: {
|
|
10381
10377
|
FiguresContainer: typeof FiguresContainer;
|
|
@@ -10913,7 +10909,7 @@ declare class Grid extends Component<Props$u, SpreadsheetChildEnv> {
|
|
|
10913
10909
|
y: number;
|
|
10914
10910
|
};
|
|
10915
10911
|
get isAutofillVisible(): boolean;
|
|
10916
|
-
onGridResized(
|
|
10912
|
+
onGridResized(): void;
|
|
10917
10913
|
private moveCanvas;
|
|
10918
10914
|
private processSpaceKey;
|
|
10919
10915
|
getClientPositionKey(client: Client): string;
|
|
@@ -12714,6 +12710,7 @@ declare class ClickableCellsStore extends SpreadsheetStore {
|
|
|
12714
12710
|
}
|
|
12715
12711
|
|
|
12716
12712
|
interface Props$4 {
|
|
12713
|
+
getGridSize: () => DOMDimension;
|
|
12717
12714
|
}
|
|
12718
12715
|
declare class SpreadsheetDashboard extends Component<Props$4, SpreadsheetChildEnv> {
|
|
12719
12716
|
static template: string;
|
|
@@ -12746,9 +12743,10 @@ declare class SpreadsheetDashboard extends Component<Props$4, SpreadsheetChildEn
|
|
|
12746
12743
|
getClickableCells(): ClickableCell[];
|
|
12747
12744
|
selectClickableCell(ev: MouseEvent, clickableCell: ClickableCell): void;
|
|
12748
12745
|
onClosePopover(): void;
|
|
12749
|
-
onGridResized(
|
|
12746
|
+
onGridResized(): void;
|
|
12750
12747
|
private moveCanvas;
|
|
12751
12748
|
private getGridRect;
|
|
12749
|
+
private getMaxSheetWidth;
|
|
12752
12750
|
}
|
|
12753
12751
|
|
|
12754
12752
|
interface Props$3 {
|
package/dist/o_spreadsheet.css
CHANGED
|
@@ -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 19.1.
|
|
6
|
-
* @date
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.2
|
|
6
|
+
* @date 2026-01-07T16:22:30.262Z
|
|
7
|
+
* @hash febc3e9
|
|
8
8
|
*/
|
|
9
9
|
:root {
|
|
10
10
|
--os-gray-100: light-dark(#f9fafb, #1b1d26);
|
|
@@ -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 19.1.
|
|
6
|
-
* @date
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.2
|
|
6
|
+
* @date 2026-01-07T16:21:36.757Z
|
|
7
|
+
* @hash febc3e9
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { useEnv, useSubEnv, onWillUnmount, useComponent, status, Component, useRef, onMounted, useEffect, App, blockDom, useState, onPatched, useExternalListener, onWillUpdateProps, onWillStart, onWillPatch, xml, useChildSubEnv, markRaw, toRaw } from '@odoo/owl';
|
|
@@ -19608,17 +19608,41 @@ function toCriterionDateNumber(dateValue) {
|
|
|
19608
19608
|
const today = DateTime.now();
|
|
19609
19609
|
switch (dateValue) {
|
|
19610
19610
|
case "today":
|
|
19611
|
-
return jsDateToNumber(today);
|
|
19612
|
-
case "yesterday":
|
|
19613
|
-
|
|
19614
|
-
|
|
19615
|
-
|
|
19611
|
+
return Math.floor(jsDateToNumber(today));
|
|
19612
|
+
case "yesterday": {
|
|
19613
|
+
today.setDate(today.getDate() - 1);
|
|
19614
|
+
return Math.floor(jsDateToNumber(today));
|
|
19615
|
+
}
|
|
19616
|
+
case "tomorrow": {
|
|
19617
|
+
today.setDate(today.getDate() + 1);
|
|
19618
|
+
return Math.floor(jsDateToNumber(today));
|
|
19619
|
+
}
|
|
19616
19620
|
case "lastWeek":
|
|
19617
|
-
|
|
19618
|
-
|
|
19619
|
-
|
|
19621
|
+
today.setDate(today.getDate() - 6);
|
|
19622
|
+
return Math.floor(jsDateToNumber(today));
|
|
19623
|
+
case "lastMonth": {
|
|
19624
|
+
const lastMonth = today.getMonth() === 0 ? 11 : today.getMonth() - 1;
|
|
19625
|
+
const dateInLastMonth = new DateTime(today.getFullYear(), lastMonth, 1);
|
|
19626
|
+
if (today.getDate() > getDaysInMonth(dateInLastMonth)) {
|
|
19627
|
+
today.setDate(1);
|
|
19628
|
+
}
|
|
19629
|
+
else {
|
|
19630
|
+
today.setDate(today.getDate() + 1);
|
|
19631
|
+
today.setMonth(today.getMonth() - 1);
|
|
19632
|
+
}
|
|
19633
|
+
return Math.floor(jsDateToNumber(today));
|
|
19634
|
+
}
|
|
19620
19635
|
case "lastYear":
|
|
19621
|
-
|
|
19636
|
+
// Handle leap year case
|
|
19637
|
+
if (today.getMonth() === 1 && today.getDate() === 29) {
|
|
19638
|
+
today.setDate(28);
|
|
19639
|
+
today.setFullYear(today.getFullYear() - 1);
|
|
19640
|
+
}
|
|
19641
|
+
else {
|
|
19642
|
+
today.setDate(today.getDate() + 1);
|
|
19643
|
+
today.setFullYear(today.getFullYear() - 1);
|
|
19644
|
+
}
|
|
19645
|
+
return Math.floor(jsDateToNumber(today));
|
|
19622
19646
|
}
|
|
19623
19647
|
}
|
|
19624
19648
|
/** Get all the dates values of a criterion converted to numbers, converting date values such as "today" to actual dates */
|
|
@@ -31115,7 +31139,7 @@ class ReadonlyTransportFilter {
|
|
|
31115
31139
|
if (message.type === "CLIENT_JOINED" ||
|
|
31116
31140
|
message.type === "CLIENT_LEFT" ||
|
|
31117
31141
|
message.type === "CLIENT_MOVED") {
|
|
31118
|
-
this.transportService.sendMessage(message);
|
|
31142
|
+
await this.transportService.sendMessage(message);
|
|
31119
31143
|
}
|
|
31120
31144
|
// ignore all other messages
|
|
31121
31145
|
}
|
|
@@ -32289,7 +32313,7 @@ class Session extends EventBus {
|
|
|
32289
32313
|
}
|
|
32290
32314
|
delete this.clients[this.clientId];
|
|
32291
32315
|
this.transportService.leave(this.clientId);
|
|
32292
|
-
this.
|
|
32316
|
+
this.sendToTransport({
|
|
32293
32317
|
type: "CLIENT_LEFT",
|
|
32294
32318
|
clientId: this.clientId,
|
|
32295
32319
|
version: MESSAGE_VERSION,
|
|
@@ -32303,7 +32327,7 @@ class Session extends EventBus {
|
|
|
32303
32327
|
return;
|
|
32304
32328
|
}
|
|
32305
32329
|
const snapshotId = this.uuidGenerator.uuidv4();
|
|
32306
|
-
await this.
|
|
32330
|
+
await this.sendToTransport({
|
|
32307
32331
|
type: "SNAPSHOT",
|
|
32308
32332
|
nextRevisionId: snapshotId,
|
|
32309
32333
|
serverRevisionId: this.serverRevisionId,
|
|
@@ -32351,10 +32375,14 @@ class Session extends EventBus {
|
|
|
32351
32375
|
const type = currentPosition ? "CLIENT_MOVED" : "CLIENT_JOINED";
|
|
32352
32376
|
const client = this.getCurrentClient();
|
|
32353
32377
|
this.clients[this.clientId] = { ...client, position };
|
|
32354
|
-
this.
|
|
32378
|
+
this.sendToTransport({
|
|
32355
32379
|
type,
|
|
32356
32380
|
version: MESSAGE_VERSION,
|
|
32357
32381
|
client: { ...client, position },
|
|
32382
|
+
}).then(() => {
|
|
32383
|
+
if (this.pendingMessages.length > 0 && !this.waitingAck) {
|
|
32384
|
+
this.sendPendingMessage();
|
|
32385
|
+
}
|
|
32358
32386
|
});
|
|
32359
32387
|
}
|
|
32360
32388
|
/**
|
|
@@ -32435,7 +32463,7 @@ class Session extends EventBus {
|
|
|
32435
32463
|
if (client) {
|
|
32436
32464
|
const { position } = client;
|
|
32437
32465
|
if (position) {
|
|
32438
|
-
this.
|
|
32466
|
+
this.sendToTransport({
|
|
32439
32467
|
type: "CLIENT_MOVED",
|
|
32440
32468
|
version: MESSAGE_VERSION,
|
|
32441
32469
|
client: { ...client, position },
|
|
@@ -32456,6 +32484,10 @@ class Session extends EventBus {
|
|
|
32456
32484
|
}
|
|
32457
32485
|
this.sendPendingMessage();
|
|
32458
32486
|
}
|
|
32487
|
+
async sendToTransport(message) {
|
|
32488
|
+
// wrap in an async function to ensure it returns a promise
|
|
32489
|
+
return this.transportService.sendMessage(message);
|
|
32490
|
+
}
|
|
32459
32491
|
/**
|
|
32460
32492
|
* Send the next pending message
|
|
32461
32493
|
*/
|
|
@@ -32484,9 +32516,14 @@ class Session extends EventBus {
|
|
|
32484
32516
|
${JSON.stringify(message)}`);
|
|
32485
32517
|
}
|
|
32486
32518
|
this.waitingAck = true;
|
|
32487
|
-
this.
|
|
32519
|
+
this.sendToTransport({
|
|
32488
32520
|
...message,
|
|
32489
32521
|
serverRevisionId: this.serverRevisionId,
|
|
32522
|
+
}).catch((e) => {
|
|
32523
|
+
if (!(e instanceof ClientDisconnectedError)) {
|
|
32524
|
+
throw e.cause || e;
|
|
32525
|
+
}
|
|
32526
|
+
this.waitingAck = false;
|
|
32490
32527
|
});
|
|
32491
32528
|
}
|
|
32492
32529
|
acknowledge(message) {
|
|
@@ -40210,7 +40247,7 @@ criterionEvaluatorRegistry.add("dateIs", {
|
|
|
40210
40247
|
return false;
|
|
40211
40248
|
}
|
|
40212
40249
|
if (["lastWeek", "lastMonth", "lastYear"].includes(criterion.dateValue)) {
|
|
40213
|
-
const today =
|
|
40250
|
+
const today = Math.floor(jsDateToNumber(DateTime.now()));
|
|
40214
40251
|
return isDateBetween(dateValue, today, criterionValue);
|
|
40215
40252
|
}
|
|
40216
40253
|
return areDatesSameDay(dateValue, criterionValue);
|
|
@@ -80268,7 +80305,6 @@ class GridOverlay extends Component {
|
|
|
80268
80305
|
onGridMoved: Function,
|
|
80269
80306
|
gridOverlayDimensions: String,
|
|
80270
80307
|
slots: { type: Object, optional: true },
|
|
80271
|
-
getGridSize: Function,
|
|
80272
80308
|
};
|
|
80273
80309
|
static components = {
|
|
80274
80310
|
FiguresContainer,
|
|
@@ -80287,14 +80323,7 @@ class GridOverlay extends Component {
|
|
|
80287
80323
|
setup() {
|
|
80288
80324
|
useCellHovered(this.env, this.gridOverlay);
|
|
80289
80325
|
const resizeObserver = new ResizeObserver(() => {
|
|
80290
|
-
|
|
80291
|
-
const { width, height } = this.props.getGridSize();
|
|
80292
|
-
this.props.onGridResized({
|
|
80293
|
-
x: boundingRect.left,
|
|
80294
|
-
y: boundingRect.top,
|
|
80295
|
-
height: height,
|
|
80296
|
-
width: width,
|
|
80297
|
-
});
|
|
80326
|
+
this.props.onGridResized();
|
|
80298
80327
|
});
|
|
80299
80328
|
onMounted(() => {
|
|
80300
80329
|
resizeObserver.observe(this.gridOverlayEl);
|
|
@@ -89890,7 +89919,8 @@ class Grid extends Component {
|
|
|
89890
89919
|
});
|
|
89891
89920
|
return !(rect.width === 0 || rect.height === 0);
|
|
89892
89921
|
}
|
|
89893
|
-
onGridResized(
|
|
89922
|
+
onGridResized() {
|
|
89923
|
+
const { height, width } = this.props.getGridSize();
|
|
89894
89924
|
this.env.model.dispatch("RESIZE_SHEETVIEW", {
|
|
89895
89925
|
width: width - HEADER_WIDTH,
|
|
89896
89926
|
height: height - HEADER_HEIGHT,
|
|
@@ -93438,10 +93468,8 @@ class SpreadsheetDashboard extends Component {
|
|
|
93438
93468
|
});
|
|
93439
93469
|
}
|
|
93440
93470
|
get gridContainer() {
|
|
93441
|
-
const
|
|
93442
|
-
|
|
93443
|
-
const { end } = this.env.model.getters.getColDimensions(sheetId, right);
|
|
93444
|
-
return cssPropertiesToCss({ "max-width": `${end}px` });
|
|
93471
|
+
const maxWidth = this.getMaxSheetWidth();
|
|
93472
|
+
return cssPropertiesToCss({ "max-width": `${maxWidth}px` });
|
|
93445
93473
|
}
|
|
93446
93474
|
get gridOverlayDimensions() {
|
|
93447
93475
|
return cssPropertiesToCss({
|
|
@@ -93473,10 +93501,12 @@ class SpreadsheetDashboard extends Component {
|
|
|
93473
93501
|
onClosePopover() {
|
|
93474
93502
|
this.cellPopovers.close();
|
|
93475
93503
|
}
|
|
93476
|
-
onGridResized(
|
|
93504
|
+
onGridResized() {
|
|
93505
|
+
const { height, width } = this.props.getGridSize();
|
|
93506
|
+
const maxWidth = this.getMaxSheetWidth();
|
|
93477
93507
|
this.env.model.dispatch("RESIZE_SHEETVIEW", {
|
|
93478
|
-
width: width,
|
|
93479
|
-
height
|
|
93508
|
+
width: Math.min(maxWidth, width),
|
|
93509
|
+
height,
|
|
93480
93510
|
gridOffsetX: 0,
|
|
93481
93511
|
gridOffsetY: 0,
|
|
93482
93512
|
});
|
|
@@ -93494,6 +93524,11 @@ class SpreadsheetDashboard extends Component {
|
|
|
93494
93524
|
...this.env.model.getters.getSheetViewDimensionWithHeaders(),
|
|
93495
93525
|
};
|
|
93496
93526
|
}
|
|
93527
|
+
getMaxSheetWidth() {
|
|
93528
|
+
const sheetId = this.env.model.getters.getActiveSheetId();
|
|
93529
|
+
const { right } = this.env.model.getters.getSheetZone(sheetId);
|
|
93530
|
+
return this.env.model.getters.getColDimensions(sheetId, right).end;
|
|
93531
|
+
}
|
|
93497
93532
|
}
|
|
93498
93533
|
|
|
93499
93534
|
class AbstractHeaderGroup extends Component {
|
|
@@ -97895,6 +97930,6 @@ const chartHelpers = { ...CHART_HELPERS, ...CHART_RUNTIME_HELPERS };
|
|
|
97895
97930
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CorePlugin, CoreViewPlugin, DEFAULT_LOCALE, DEFAULT_LOCALES, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry$1 as Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, categories, chartHelpers, compile, compileTokens, components, constants, convertAstNodes, coreTypes, createAutocompleteArgumentsProvider, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse$1 as parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
97896
97931
|
|
|
97897
97932
|
|
|
97898
|
-
__info__.version = "19.1.
|
|
97899
|
-
__info__.date = "
|
|
97900
|
-
__info__.hash = "
|
|
97933
|
+
__info__.version = "19.1.2";
|
|
97934
|
+
__info__.date = "2026-01-07T16:21:36.757Z";
|
|
97935
|
+
__info__.hash = "febc3e9";
|
|
@@ -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 19.1.
|
|
6
|
-
* @date
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.2
|
|
6
|
+
* @date 2026-01-07T16:21:36.757Z
|
|
7
|
+
* @hash febc3e9
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function (exports, owl) {
|
|
@@ -19609,17 +19609,41 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
19609
19609
|
const today = DateTime.now();
|
|
19610
19610
|
switch (dateValue) {
|
|
19611
19611
|
case "today":
|
|
19612
|
-
return jsDateToNumber(today);
|
|
19613
|
-
case "yesterday":
|
|
19614
|
-
|
|
19615
|
-
|
|
19616
|
-
|
|
19612
|
+
return Math.floor(jsDateToNumber(today));
|
|
19613
|
+
case "yesterday": {
|
|
19614
|
+
today.setDate(today.getDate() - 1);
|
|
19615
|
+
return Math.floor(jsDateToNumber(today));
|
|
19616
|
+
}
|
|
19617
|
+
case "tomorrow": {
|
|
19618
|
+
today.setDate(today.getDate() + 1);
|
|
19619
|
+
return Math.floor(jsDateToNumber(today));
|
|
19620
|
+
}
|
|
19617
19621
|
case "lastWeek":
|
|
19618
|
-
|
|
19619
|
-
|
|
19620
|
-
|
|
19622
|
+
today.setDate(today.getDate() - 6);
|
|
19623
|
+
return Math.floor(jsDateToNumber(today));
|
|
19624
|
+
case "lastMonth": {
|
|
19625
|
+
const lastMonth = today.getMonth() === 0 ? 11 : today.getMonth() - 1;
|
|
19626
|
+
const dateInLastMonth = new DateTime(today.getFullYear(), lastMonth, 1);
|
|
19627
|
+
if (today.getDate() > getDaysInMonth(dateInLastMonth)) {
|
|
19628
|
+
today.setDate(1);
|
|
19629
|
+
}
|
|
19630
|
+
else {
|
|
19631
|
+
today.setDate(today.getDate() + 1);
|
|
19632
|
+
today.setMonth(today.getMonth() - 1);
|
|
19633
|
+
}
|
|
19634
|
+
return Math.floor(jsDateToNumber(today));
|
|
19635
|
+
}
|
|
19621
19636
|
case "lastYear":
|
|
19622
|
-
|
|
19637
|
+
// Handle leap year case
|
|
19638
|
+
if (today.getMonth() === 1 && today.getDate() === 29) {
|
|
19639
|
+
today.setDate(28);
|
|
19640
|
+
today.setFullYear(today.getFullYear() - 1);
|
|
19641
|
+
}
|
|
19642
|
+
else {
|
|
19643
|
+
today.setDate(today.getDate() + 1);
|
|
19644
|
+
today.setFullYear(today.getFullYear() - 1);
|
|
19645
|
+
}
|
|
19646
|
+
return Math.floor(jsDateToNumber(today));
|
|
19623
19647
|
}
|
|
19624
19648
|
}
|
|
19625
19649
|
/** Get all the dates values of a criterion converted to numbers, converting date values such as "today" to actual dates */
|
|
@@ -31116,7 +31140,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31116
31140
|
if (message.type === "CLIENT_JOINED" ||
|
|
31117
31141
|
message.type === "CLIENT_LEFT" ||
|
|
31118
31142
|
message.type === "CLIENT_MOVED") {
|
|
31119
|
-
this.transportService.sendMessage(message);
|
|
31143
|
+
await this.transportService.sendMessage(message);
|
|
31120
31144
|
}
|
|
31121
31145
|
// ignore all other messages
|
|
31122
31146
|
}
|
|
@@ -32290,7 +32314,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32290
32314
|
}
|
|
32291
32315
|
delete this.clients[this.clientId];
|
|
32292
32316
|
this.transportService.leave(this.clientId);
|
|
32293
|
-
this.
|
|
32317
|
+
this.sendToTransport({
|
|
32294
32318
|
type: "CLIENT_LEFT",
|
|
32295
32319
|
clientId: this.clientId,
|
|
32296
32320
|
version: MESSAGE_VERSION,
|
|
@@ -32304,7 +32328,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32304
32328
|
return;
|
|
32305
32329
|
}
|
|
32306
32330
|
const snapshotId = this.uuidGenerator.uuidv4();
|
|
32307
|
-
await this.
|
|
32331
|
+
await this.sendToTransport({
|
|
32308
32332
|
type: "SNAPSHOT",
|
|
32309
32333
|
nextRevisionId: snapshotId,
|
|
32310
32334
|
serverRevisionId: this.serverRevisionId,
|
|
@@ -32352,10 +32376,14 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32352
32376
|
const type = currentPosition ? "CLIENT_MOVED" : "CLIENT_JOINED";
|
|
32353
32377
|
const client = this.getCurrentClient();
|
|
32354
32378
|
this.clients[this.clientId] = { ...client, position };
|
|
32355
|
-
this.
|
|
32379
|
+
this.sendToTransport({
|
|
32356
32380
|
type,
|
|
32357
32381
|
version: MESSAGE_VERSION,
|
|
32358
32382
|
client: { ...client, position },
|
|
32383
|
+
}).then(() => {
|
|
32384
|
+
if (this.pendingMessages.length > 0 && !this.waitingAck) {
|
|
32385
|
+
this.sendPendingMessage();
|
|
32386
|
+
}
|
|
32359
32387
|
});
|
|
32360
32388
|
}
|
|
32361
32389
|
/**
|
|
@@ -32436,7 +32464,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32436
32464
|
if (client) {
|
|
32437
32465
|
const { position } = client;
|
|
32438
32466
|
if (position) {
|
|
32439
|
-
this.
|
|
32467
|
+
this.sendToTransport({
|
|
32440
32468
|
type: "CLIENT_MOVED",
|
|
32441
32469
|
version: MESSAGE_VERSION,
|
|
32442
32470
|
client: { ...client, position },
|
|
@@ -32457,6 +32485,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32457
32485
|
}
|
|
32458
32486
|
this.sendPendingMessage();
|
|
32459
32487
|
}
|
|
32488
|
+
async sendToTransport(message) {
|
|
32489
|
+
// wrap in an async function to ensure it returns a promise
|
|
32490
|
+
return this.transportService.sendMessage(message);
|
|
32491
|
+
}
|
|
32460
32492
|
/**
|
|
32461
32493
|
* Send the next pending message
|
|
32462
32494
|
*/
|
|
@@ -32485,9 +32517,14 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32485
32517
|
${JSON.stringify(message)}`);
|
|
32486
32518
|
}
|
|
32487
32519
|
this.waitingAck = true;
|
|
32488
|
-
this.
|
|
32520
|
+
this.sendToTransport({
|
|
32489
32521
|
...message,
|
|
32490
32522
|
serverRevisionId: this.serverRevisionId,
|
|
32523
|
+
}).catch((e) => {
|
|
32524
|
+
if (!(e instanceof ClientDisconnectedError)) {
|
|
32525
|
+
throw e.cause || e;
|
|
32526
|
+
}
|
|
32527
|
+
this.waitingAck = false;
|
|
32491
32528
|
});
|
|
32492
32529
|
}
|
|
32493
32530
|
acknowledge(message) {
|
|
@@ -40211,7 +40248,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
40211
40248
|
return false;
|
|
40212
40249
|
}
|
|
40213
40250
|
if (["lastWeek", "lastMonth", "lastYear"].includes(criterion.dateValue)) {
|
|
40214
|
-
const today =
|
|
40251
|
+
const today = Math.floor(jsDateToNumber(DateTime.now()));
|
|
40215
40252
|
return isDateBetween(dateValue, today, criterionValue);
|
|
40216
40253
|
}
|
|
40217
40254
|
return areDatesSameDay(dateValue, criterionValue);
|
|
@@ -80269,7 +80306,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
80269
80306
|
onGridMoved: Function,
|
|
80270
80307
|
gridOverlayDimensions: String,
|
|
80271
80308
|
slots: { type: Object, optional: true },
|
|
80272
|
-
getGridSize: Function,
|
|
80273
80309
|
};
|
|
80274
80310
|
static components = {
|
|
80275
80311
|
FiguresContainer,
|
|
@@ -80288,14 +80324,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
80288
80324
|
setup() {
|
|
80289
80325
|
useCellHovered(this.env, this.gridOverlay);
|
|
80290
80326
|
const resizeObserver = new ResizeObserver(() => {
|
|
80291
|
-
|
|
80292
|
-
const { width, height } = this.props.getGridSize();
|
|
80293
|
-
this.props.onGridResized({
|
|
80294
|
-
x: boundingRect.left,
|
|
80295
|
-
y: boundingRect.top,
|
|
80296
|
-
height: height,
|
|
80297
|
-
width: width,
|
|
80298
|
-
});
|
|
80327
|
+
this.props.onGridResized();
|
|
80299
80328
|
});
|
|
80300
80329
|
owl.onMounted(() => {
|
|
80301
80330
|
resizeObserver.observe(this.gridOverlayEl);
|
|
@@ -89891,7 +89920,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
89891
89920
|
});
|
|
89892
89921
|
return !(rect.width === 0 || rect.height === 0);
|
|
89893
89922
|
}
|
|
89894
|
-
onGridResized(
|
|
89923
|
+
onGridResized() {
|
|
89924
|
+
const { height, width } = this.props.getGridSize();
|
|
89895
89925
|
this.env.model.dispatch("RESIZE_SHEETVIEW", {
|
|
89896
89926
|
width: width - HEADER_WIDTH,
|
|
89897
89927
|
height: height - HEADER_HEIGHT,
|
|
@@ -93439,10 +93469,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
93439
93469
|
});
|
|
93440
93470
|
}
|
|
93441
93471
|
get gridContainer() {
|
|
93442
|
-
const
|
|
93443
|
-
|
|
93444
|
-
const { end } = this.env.model.getters.getColDimensions(sheetId, right);
|
|
93445
|
-
return cssPropertiesToCss({ "max-width": `${end}px` });
|
|
93472
|
+
const maxWidth = this.getMaxSheetWidth();
|
|
93473
|
+
return cssPropertiesToCss({ "max-width": `${maxWidth}px` });
|
|
93446
93474
|
}
|
|
93447
93475
|
get gridOverlayDimensions() {
|
|
93448
93476
|
return cssPropertiesToCss({
|
|
@@ -93474,10 +93502,12 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
93474
93502
|
onClosePopover() {
|
|
93475
93503
|
this.cellPopovers.close();
|
|
93476
93504
|
}
|
|
93477
|
-
onGridResized(
|
|
93505
|
+
onGridResized() {
|
|
93506
|
+
const { height, width } = this.props.getGridSize();
|
|
93507
|
+
const maxWidth = this.getMaxSheetWidth();
|
|
93478
93508
|
this.env.model.dispatch("RESIZE_SHEETVIEW", {
|
|
93479
|
-
width: width,
|
|
93480
|
-
height
|
|
93509
|
+
width: Math.min(maxWidth, width),
|
|
93510
|
+
height,
|
|
93481
93511
|
gridOffsetX: 0,
|
|
93482
93512
|
gridOffsetY: 0,
|
|
93483
93513
|
});
|
|
@@ -93495,6 +93525,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
93495
93525
|
...this.env.model.getters.getSheetViewDimensionWithHeaders(),
|
|
93496
93526
|
};
|
|
93497
93527
|
}
|
|
93528
|
+
getMaxSheetWidth() {
|
|
93529
|
+
const sheetId = this.env.model.getters.getActiveSheetId();
|
|
93530
|
+
const { right } = this.env.model.getters.getSheetZone(sheetId);
|
|
93531
|
+
return this.env.model.getters.getColDimensions(sheetId, right).end;
|
|
93532
|
+
}
|
|
93498
93533
|
}
|
|
93499
93534
|
|
|
93500
93535
|
class AbstractHeaderGroup extends owl.Component {
|
|
@@ -97950,9 +97985,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
97950
97985
|
exports.tokenize = tokenize;
|
|
97951
97986
|
|
|
97952
97987
|
|
|
97953
|
-
__info__.version = "19.1.
|
|
97954
|
-
__info__.date = "
|
|
97955
|
-
__info__.hash = "
|
|
97988
|
+
__info__.version = "19.1.2";
|
|
97989
|
+
__info__.date = "2026-01-07T16:21:36.757Z";
|
|
97990
|
+
__info__.hash = "febc3e9";
|
|
97956
97991
|
|
|
97957
97992
|
|
|
97958
97993
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|