@odoo/o-spreadsheet 18.2.34 → 18.2.36
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 +56 -36
- package/dist/o-spreadsheet.d.ts +1 -2
- package/dist/o-spreadsheet.esm.js +56 -36
- package/dist/o-spreadsheet.iife.js +56 -36
- package/dist/o-spreadsheet.iife.min.js +367 -367
- package/dist/o_spreadsheet.xml +4 -3
- 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.2.
|
|
6
|
-
* @date 2025-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.2.36
|
|
6
|
+
* @date 2025-12-02T05:31:10.558Z
|
|
7
|
+
* @hash d385099
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
'use strict';
|
|
@@ -3448,7 +3448,6 @@ const invalidateEvaluationCommands = new Set([
|
|
|
3448
3448
|
"REDO",
|
|
3449
3449
|
"ADD_MERGE",
|
|
3450
3450
|
"REMOVE_MERGE",
|
|
3451
|
-
"DUPLICATE_SHEET",
|
|
3452
3451
|
"UPDATE_LOCALE",
|
|
3453
3452
|
"ADD_PIVOT",
|
|
3454
3453
|
"UPDATE_PIVOT",
|
|
@@ -21166,6 +21165,7 @@ class AbstractComposerStore extends SpreadsheetStore {
|
|
|
21166
21165
|
}
|
|
21167
21166
|
this.selectionStart = start;
|
|
21168
21167
|
this.selectionEnd = end;
|
|
21168
|
+
this.stopComposerRangeSelection();
|
|
21169
21169
|
this.computeFormulaCursorContext();
|
|
21170
21170
|
this.computeParenthesisRelatedToCursor();
|
|
21171
21171
|
}
|
|
@@ -22210,7 +22210,6 @@ function insertTokenAfterArgSeparator(tokenAtCursor, value) {
|
|
|
22210
22210
|
// replace the whole token
|
|
22211
22211
|
start = tokenAtCursor.start;
|
|
22212
22212
|
}
|
|
22213
|
-
this.composer.stopComposerRangeSelection();
|
|
22214
22213
|
this.composer.changeComposerCursorSelection(start, end);
|
|
22215
22214
|
this.composer.replaceComposerCursorSelection(value);
|
|
22216
22215
|
}
|
|
@@ -22228,7 +22227,6 @@ function insertTokenAfterLeftParenthesis(tokenAtCursor, value) {
|
|
|
22228
22227
|
// replace the whole token
|
|
22229
22228
|
start = tokenAtCursor.start;
|
|
22230
22229
|
}
|
|
22231
|
-
this.composer.stopComposerRangeSelection();
|
|
22232
22230
|
this.composer.changeComposerCursorSelection(start, end);
|
|
22233
22231
|
this.composer.replaceComposerCursorSelection(value);
|
|
22234
22232
|
}
|
|
@@ -23354,29 +23352,34 @@ function chartToImage(runtime, figure, type) {
|
|
|
23354
23352
|
canvas.setAttribute("height", figure.height.toString());
|
|
23355
23353
|
// we have to add the canvas to the DOM otherwise it won't be rendered
|
|
23356
23354
|
document.body.append(div);
|
|
23355
|
+
let imgContent = undefined;
|
|
23357
23356
|
if ("chartJsConfig" in runtime) {
|
|
23357
|
+
const extensionsLoaded = areChartJSExtensionsLoaded();
|
|
23358
|
+
if (!extensionsLoaded) {
|
|
23359
|
+
registerChartJSExtensions();
|
|
23360
|
+
}
|
|
23358
23361
|
const config = deepCopy(runtime.chartJsConfig);
|
|
23359
23362
|
config.plugins = [backgroundColorChartJSPlugin];
|
|
23360
23363
|
const chart = new window.Chart(canvas, config);
|
|
23361
|
-
|
|
23364
|
+
imgContent = chart.toBase64Image();
|
|
23362
23365
|
chart.destroy();
|
|
23363
23366
|
div.remove();
|
|
23364
|
-
|
|
23367
|
+
if (!extensionsLoaded) {
|
|
23368
|
+
unregisterChartJsExtensions();
|
|
23369
|
+
}
|
|
23365
23370
|
}
|
|
23366
23371
|
else if (type === "scorecard") {
|
|
23367
23372
|
const design = getScorecardConfiguration(figure, runtime);
|
|
23368
23373
|
drawScoreChart(design, canvas);
|
|
23369
|
-
|
|
23374
|
+
imgContent = canvas.toDataURL();
|
|
23370
23375
|
div.remove();
|
|
23371
|
-
return imgContent;
|
|
23372
23376
|
}
|
|
23373
23377
|
else if (type === "gauge") {
|
|
23374
23378
|
drawGaugeChart(canvas, runtime);
|
|
23375
|
-
|
|
23379
|
+
imgContent = canvas.toDataURL();
|
|
23376
23380
|
div.remove();
|
|
23377
|
-
return imgContent;
|
|
23378
23381
|
}
|
|
23379
|
-
return
|
|
23382
|
+
return imgContent;
|
|
23380
23383
|
}
|
|
23381
23384
|
/**
|
|
23382
23385
|
* Custom chart.js plugin to set the background color of the canvas
|
|
@@ -41385,7 +41388,6 @@ class Composer extends owl.Component {
|
|
|
41385
41388
|
return;
|
|
41386
41389
|
}
|
|
41387
41390
|
const newSelection = this.contentHelper.getCurrentSelection();
|
|
41388
|
-
this.props.composerStore.stopComposerRangeSelection();
|
|
41389
41391
|
this.props.onComposerContentFocused();
|
|
41390
41392
|
this.props.composerStore.changeComposerCursorSelection(newSelection.start, newSelection.end);
|
|
41391
41393
|
this.processTokenAtCursor();
|
|
@@ -47514,7 +47516,6 @@ const dateGranularities = [
|
|
|
47514
47516
|
pivotRegistry.add("SPREADSHEET", {
|
|
47515
47517
|
ui: SpreadsheetPivot,
|
|
47516
47518
|
definition: SpreadsheetPivotRuntimeDefinition,
|
|
47517
|
-
externalData: false,
|
|
47518
47519
|
dateGranularities: [...dateGranularities],
|
|
47519
47520
|
datetimeGranularities: [...dateGranularities, "hour_number", "minute_number", "second_number"],
|
|
47520
47521
|
isMeasureCandidate: (field) => field.type !== "boolean",
|
|
@@ -51374,7 +51375,10 @@ class AbstractResizer extends owl.Component {
|
|
|
51374
51375
|
this.state.waitingForMove = false;
|
|
51375
51376
|
}
|
|
51376
51377
|
onMouseMove(ev) {
|
|
51377
|
-
if (this.
|
|
51378
|
+
if (this.env.model.getters.isReadonly() ||
|
|
51379
|
+
this.state.isResizing ||
|
|
51380
|
+
this.state.isMoving ||
|
|
51381
|
+
this.state.isSelecting) {
|
|
51378
51382
|
return;
|
|
51379
51383
|
}
|
|
51380
51384
|
this._computeHandleDisplay(ev);
|
|
@@ -51427,6 +51431,10 @@ class AbstractResizer extends owl.Component {
|
|
|
51427
51431
|
if (index < 0) {
|
|
51428
51432
|
return;
|
|
51429
51433
|
}
|
|
51434
|
+
if (this.env.model.getters.isReadonly()) {
|
|
51435
|
+
this._selectElement(index, false);
|
|
51436
|
+
return;
|
|
51437
|
+
}
|
|
51430
51438
|
if (this.state.waitingForMove) {
|
|
51431
51439
|
if (!this.env.model.getters.isGridSelectionActive()) {
|
|
51432
51440
|
this._selectElement(index, false);
|
|
@@ -53128,24 +53136,24 @@ const DEFAULT_SIDE_PANEL_SIZE = 350;
|
|
|
53128
53136
|
const MIN_SHEET_VIEW_WIDTH = 150;
|
|
53129
53137
|
class SidePanelStore extends SpreadsheetStore {
|
|
53130
53138
|
mutators = ["open", "toggle", "close", "changePanelSize", "resetPanelSize"];
|
|
53131
|
-
|
|
53139
|
+
currentPanelProps = {};
|
|
53132
53140
|
componentTag = "";
|
|
53133
53141
|
panelSize = DEFAULT_SIDE_PANEL_SIZE;
|
|
53134
53142
|
get isOpen() {
|
|
53135
53143
|
if (!this.componentTag) {
|
|
53136
53144
|
return false;
|
|
53137
53145
|
}
|
|
53138
|
-
return this.computeState(this.componentTag, this.
|
|
53146
|
+
return this.computeState(this.componentTag, this.currentPanelProps).isOpen;
|
|
53139
53147
|
}
|
|
53140
53148
|
get panelProps() {
|
|
53141
|
-
const state = this.computeState(this.componentTag, this.
|
|
53149
|
+
const state = this.computeState(this.componentTag, this.currentPanelProps);
|
|
53142
53150
|
if (state.isOpen) {
|
|
53143
53151
|
return state.props ?? {};
|
|
53144
53152
|
}
|
|
53145
53153
|
return {};
|
|
53146
53154
|
}
|
|
53147
53155
|
get panelKey() {
|
|
53148
|
-
const state = this.computeState(this.componentTag, this.
|
|
53156
|
+
const state = this.computeState(this.componentTag, this.currentPanelProps);
|
|
53149
53157
|
if (state.isOpen) {
|
|
53150
53158
|
return state.key;
|
|
53151
53159
|
}
|
|
@@ -53157,10 +53165,10 @@ class SidePanelStore extends SpreadsheetStore {
|
|
|
53157
53165
|
return;
|
|
53158
53166
|
}
|
|
53159
53167
|
if (this.isOpen && componentTag !== this.componentTag) {
|
|
53160
|
-
this.
|
|
53168
|
+
this.currentPanelProps?.onCloseSidePanel?.();
|
|
53161
53169
|
}
|
|
53162
53170
|
this.componentTag = componentTag;
|
|
53163
|
-
this.
|
|
53171
|
+
this.currentPanelProps = state.props ?? {};
|
|
53164
53172
|
}
|
|
53165
53173
|
toggle(componentTag, panelProps) {
|
|
53166
53174
|
if (this.isOpen && componentTag === this.componentTag) {
|
|
@@ -53171,8 +53179,8 @@ class SidePanelStore extends SpreadsheetStore {
|
|
|
53171
53179
|
}
|
|
53172
53180
|
}
|
|
53173
53181
|
close() {
|
|
53174
|
-
this.
|
|
53175
|
-
this.
|
|
53182
|
+
this.currentPanelProps.onCloseSidePanel?.();
|
|
53183
|
+
this.currentPanelProps = {};
|
|
53176
53184
|
this.componentTag = "";
|
|
53177
53185
|
}
|
|
53178
53186
|
changePanelSize(size, spreadsheetElWidth) {
|
|
@@ -53198,7 +53206,11 @@ class SidePanelStore extends SpreadsheetStore {
|
|
|
53198
53206
|
};
|
|
53199
53207
|
}
|
|
53200
53208
|
else {
|
|
53201
|
-
|
|
53209
|
+
const state = customComputeState(this.getters, panelProps);
|
|
53210
|
+
if (state.isOpen) {
|
|
53211
|
+
this.currentPanelProps = state.props ?? this.currentPanelProps;
|
|
53212
|
+
}
|
|
53213
|
+
return state;
|
|
53202
53214
|
}
|
|
53203
53215
|
}
|
|
53204
53216
|
}
|
|
@@ -60001,10 +60013,17 @@ class PivotCorePlugin extends CorePlugin {
|
|
|
60001
60013
|
if (!pivot) {
|
|
60002
60014
|
continue;
|
|
60003
60015
|
}
|
|
60004
|
-
|
|
60016
|
+
const def = deepCopy(pivot.definition);
|
|
60017
|
+
for (const measure of def.measures) {
|
|
60005
60018
|
if (measure.computedBy?.formula === formulaString) {
|
|
60006
|
-
const measureIndex =
|
|
60007
|
-
|
|
60019
|
+
const measureIndex = def.measures.indexOf(measure);
|
|
60020
|
+
if (measureIndex !== -1) {
|
|
60021
|
+
def.measures[measureIndex].computedBy = {
|
|
60022
|
+
formula: newFormulaString,
|
|
60023
|
+
sheetId,
|
|
60024
|
+
};
|
|
60025
|
+
}
|
|
60026
|
+
this.dispatch("UPDATE_PIVOT", { pivotId, pivot: def });
|
|
60008
60027
|
}
|
|
60009
60028
|
}
|
|
60010
60029
|
}
|
|
@@ -60157,6 +60176,9 @@ class SpreadsheetPivotCorePlugin extends CorePlugin {
|
|
|
60157
60176
|
const { sheetId, zone } = definition.dataSet;
|
|
60158
60177
|
const range = this.getters.getRangeFromZone(sheetId, zone);
|
|
60159
60178
|
const adaptedRange = adaptPivotRange(range, applyChange);
|
|
60179
|
+
if (adaptedRange === range) {
|
|
60180
|
+
return;
|
|
60181
|
+
}
|
|
60160
60182
|
const dataSet = adaptedRange && {
|
|
60161
60183
|
sheetId: adaptedRange.sheetId,
|
|
60162
60184
|
zone: adaptedRange.zone,
|
|
@@ -63879,9 +63901,7 @@ class PivotUIPlugin extends CoreViewPlugin {
|
|
|
63879
63901
|
handle(cmd) {
|
|
63880
63902
|
if (invalidateEvaluationCommands.has(cmd.type)) {
|
|
63881
63903
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
63882
|
-
|
|
63883
|
-
this.setupPivot(pivotId, { recreate: true });
|
|
63884
|
-
}
|
|
63904
|
+
this.setupPivot(pivotId, { recreate: true });
|
|
63885
63905
|
}
|
|
63886
63906
|
}
|
|
63887
63907
|
switch (cmd.type) {
|
|
@@ -64082,7 +64102,7 @@ class PivotUIPlugin extends CoreViewPlugin {
|
|
|
64082
64102
|
pivot.init({ reload: true });
|
|
64083
64103
|
}
|
|
64084
64104
|
setupPivot(pivotId, { recreate } = { recreate: false }) {
|
|
64085
|
-
const definition = this.getters.getPivotCoreDefinition(pivotId);
|
|
64105
|
+
const definition = deepCopy(this.getters.getPivotCoreDefinition(pivotId));
|
|
64086
64106
|
if (!(pivotId in this.pivots)) {
|
|
64087
64107
|
const Pivot = withPivotPresentationLayer(pivotRegistry.get(definition.type).ui);
|
|
64088
64108
|
this.pivots[pivotId] = new Pivot(this.custom, { definition, getters: this.getters });
|
|
@@ -72680,7 +72700,7 @@ css /* scss */ `
|
|
|
72680
72700
|
border-radius: 4px;
|
|
72681
72701
|
font-weight: 500;
|
|
72682
72702
|
font-size: 14px;
|
|
72683
|
-
height: 32px;
|
|
72703
|
+
min-height: 32px;
|
|
72684
72704
|
line-height: 16px;
|
|
72685
72705
|
flex-grow: 1;
|
|
72686
72706
|
background-color: ${BUTTON_BG};
|
|
@@ -77385,6 +77405,6 @@ exports.tokenColors = tokenColors;
|
|
|
77385
77405
|
exports.tokenize = tokenize;
|
|
77386
77406
|
|
|
77387
77407
|
|
|
77388
|
-
__info__.version = "18.2.
|
|
77389
|
-
__info__.date = "2025-
|
|
77390
|
-
__info__.hash = "
|
|
77408
|
+
__info__.version = "18.2.36";
|
|
77409
|
+
__info__.date = "2025-12-02T05:31:10.558Z";
|
|
77410
|
+
__info__.hash = "d385099";
|
package/dist/o-spreadsheet.d.ts
CHANGED
|
@@ -6363,7 +6363,6 @@ type PivotDefinitionConstructor = new (definition: PivotCoreDefinition, fields:
|
|
|
6363
6363
|
interface PivotRegistryItem {
|
|
6364
6364
|
ui: PivotUIConstructor;
|
|
6365
6365
|
definition: PivotDefinitionConstructor;
|
|
6366
|
-
externalData: boolean;
|
|
6367
6366
|
dateGranularities: string[];
|
|
6368
6367
|
datetimeGranularities: string[];
|
|
6369
6368
|
isMeasureCandidate: (field: PivotField) => boolean;
|
|
@@ -8658,7 +8657,7 @@ interface ClosedSidePanel {
|
|
|
8658
8657
|
type SidePanelState = OpenSidePanel | ClosedSidePanel;
|
|
8659
8658
|
declare class SidePanelStore extends SpreadsheetStore {
|
|
8660
8659
|
mutators: readonly ["open", "toggle", "close", "changePanelSize", "resetPanelSize"];
|
|
8661
|
-
|
|
8660
|
+
currentPanelProps: SidePanelProps;
|
|
8662
8661
|
componentTag: string;
|
|
8663
8662
|
panelSize: number;
|
|
8664
8663
|
get isOpen(): boolean;
|
|
@@ -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.2.
|
|
6
|
-
* @date 2025-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.2.36
|
|
6
|
+
* @date 2025-12-02T05:31:10.558Z
|
|
7
|
+
* @hash d385099
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { useEnv, useSubEnv, onWillUnmount, useComponent, status, Component, useRef, onMounted, useEffect, App, blockDom, useState, onPatched, onWillPatch, onWillUpdateProps, useExternalListener, onWillStart, xml, useChildSubEnv, markRaw, toRaw } from '@odoo/owl';
|
|
@@ -3446,7 +3446,6 @@ const invalidateEvaluationCommands = new Set([
|
|
|
3446
3446
|
"REDO",
|
|
3447
3447
|
"ADD_MERGE",
|
|
3448
3448
|
"REMOVE_MERGE",
|
|
3449
|
-
"DUPLICATE_SHEET",
|
|
3450
3449
|
"UPDATE_LOCALE",
|
|
3451
3450
|
"ADD_PIVOT",
|
|
3452
3451
|
"UPDATE_PIVOT",
|
|
@@ -21164,6 +21163,7 @@ class AbstractComposerStore extends SpreadsheetStore {
|
|
|
21164
21163
|
}
|
|
21165
21164
|
this.selectionStart = start;
|
|
21166
21165
|
this.selectionEnd = end;
|
|
21166
|
+
this.stopComposerRangeSelection();
|
|
21167
21167
|
this.computeFormulaCursorContext();
|
|
21168
21168
|
this.computeParenthesisRelatedToCursor();
|
|
21169
21169
|
}
|
|
@@ -22208,7 +22208,6 @@ function insertTokenAfterArgSeparator(tokenAtCursor, value) {
|
|
|
22208
22208
|
// replace the whole token
|
|
22209
22209
|
start = tokenAtCursor.start;
|
|
22210
22210
|
}
|
|
22211
|
-
this.composer.stopComposerRangeSelection();
|
|
22212
22211
|
this.composer.changeComposerCursorSelection(start, end);
|
|
22213
22212
|
this.composer.replaceComposerCursorSelection(value);
|
|
22214
22213
|
}
|
|
@@ -22226,7 +22225,6 @@ function insertTokenAfterLeftParenthesis(tokenAtCursor, value) {
|
|
|
22226
22225
|
// replace the whole token
|
|
22227
22226
|
start = tokenAtCursor.start;
|
|
22228
22227
|
}
|
|
22229
|
-
this.composer.stopComposerRangeSelection();
|
|
22230
22228
|
this.composer.changeComposerCursorSelection(start, end);
|
|
22231
22229
|
this.composer.replaceComposerCursorSelection(value);
|
|
22232
22230
|
}
|
|
@@ -23352,29 +23350,34 @@ function chartToImage(runtime, figure, type) {
|
|
|
23352
23350
|
canvas.setAttribute("height", figure.height.toString());
|
|
23353
23351
|
// we have to add the canvas to the DOM otherwise it won't be rendered
|
|
23354
23352
|
document.body.append(div);
|
|
23353
|
+
let imgContent = undefined;
|
|
23355
23354
|
if ("chartJsConfig" in runtime) {
|
|
23355
|
+
const extensionsLoaded = areChartJSExtensionsLoaded();
|
|
23356
|
+
if (!extensionsLoaded) {
|
|
23357
|
+
registerChartJSExtensions();
|
|
23358
|
+
}
|
|
23356
23359
|
const config = deepCopy(runtime.chartJsConfig);
|
|
23357
23360
|
config.plugins = [backgroundColorChartJSPlugin];
|
|
23358
23361
|
const chart = new window.Chart(canvas, config);
|
|
23359
|
-
|
|
23362
|
+
imgContent = chart.toBase64Image();
|
|
23360
23363
|
chart.destroy();
|
|
23361
23364
|
div.remove();
|
|
23362
|
-
|
|
23365
|
+
if (!extensionsLoaded) {
|
|
23366
|
+
unregisterChartJsExtensions();
|
|
23367
|
+
}
|
|
23363
23368
|
}
|
|
23364
23369
|
else if (type === "scorecard") {
|
|
23365
23370
|
const design = getScorecardConfiguration(figure, runtime);
|
|
23366
23371
|
drawScoreChart(design, canvas);
|
|
23367
|
-
|
|
23372
|
+
imgContent = canvas.toDataURL();
|
|
23368
23373
|
div.remove();
|
|
23369
|
-
return imgContent;
|
|
23370
23374
|
}
|
|
23371
23375
|
else if (type === "gauge") {
|
|
23372
23376
|
drawGaugeChart(canvas, runtime);
|
|
23373
|
-
|
|
23377
|
+
imgContent = canvas.toDataURL();
|
|
23374
23378
|
div.remove();
|
|
23375
|
-
return imgContent;
|
|
23376
23379
|
}
|
|
23377
|
-
return
|
|
23380
|
+
return imgContent;
|
|
23378
23381
|
}
|
|
23379
23382
|
/**
|
|
23380
23383
|
* Custom chart.js plugin to set the background color of the canvas
|
|
@@ -41383,7 +41386,6 @@ class Composer extends Component {
|
|
|
41383
41386
|
return;
|
|
41384
41387
|
}
|
|
41385
41388
|
const newSelection = this.contentHelper.getCurrentSelection();
|
|
41386
|
-
this.props.composerStore.stopComposerRangeSelection();
|
|
41387
41389
|
this.props.onComposerContentFocused();
|
|
41388
41390
|
this.props.composerStore.changeComposerCursorSelection(newSelection.start, newSelection.end);
|
|
41389
41391
|
this.processTokenAtCursor();
|
|
@@ -47512,7 +47514,6 @@ const dateGranularities = [
|
|
|
47512
47514
|
pivotRegistry.add("SPREADSHEET", {
|
|
47513
47515
|
ui: SpreadsheetPivot,
|
|
47514
47516
|
definition: SpreadsheetPivotRuntimeDefinition,
|
|
47515
|
-
externalData: false,
|
|
47516
47517
|
dateGranularities: [...dateGranularities],
|
|
47517
47518
|
datetimeGranularities: [...dateGranularities, "hour_number", "minute_number", "second_number"],
|
|
47518
47519
|
isMeasureCandidate: (field) => field.type !== "boolean",
|
|
@@ -51372,7 +51373,10 @@ class AbstractResizer extends Component {
|
|
|
51372
51373
|
this.state.waitingForMove = false;
|
|
51373
51374
|
}
|
|
51374
51375
|
onMouseMove(ev) {
|
|
51375
|
-
if (this.
|
|
51376
|
+
if (this.env.model.getters.isReadonly() ||
|
|
51377
|
+
this.state.isResizing ||
|
|
51378
|
+
this.state.isMoving ||
|
|
51379
|
+
this.state.isSelecting) {
|
|
51376
51380
|
return;
|
|
51377
51381
|
}
|
|
51378
51382
|
this._computeHandleDisplay(ev);
|
|
@@ -51425,6 +51429,10 @@ class AbstractResizer extends Component {
|
|
|
51425
51429
|
if (index < 0) {
|
|
51426
51430
|
return;
|
|
51427
51431
|
}
|
|
51432
|
+
if (this.env.model.getters.isReadonly()) {
|
|
51433
|
+
this._selectElement(index, false);
|
|
51434
|
+
return;
|
|
51435
|
+
}
|
|
51428
51436
|
if (this.state.waitingForMove) {
|
|
51429
51437
|
if (!this.env.model.getters.isGridSelectionActive()) {
|
|
51430
51438
|
this._selectElement(index, false);
|
|
@@ -53126,24 +53134,24 @@ const DEFAULT_SIDE_PANEL_SIZE = 350;
|
|
|
53126
53134
|
const MIN_SHEET_VIEW_WIDTH = 150;
|
|
53127
53135
|
class SidePanelStore extends SpreadsheetStore {
|
|
53128
53136
|
mutators = ["open", "toggle", "close", "changePanelSize", "resetPanelSize"];
|
|
53129
|
-
|
|
53137
|
+
currentPanelProps = {};
|
|
53130
53138
|
componentTag = "";
|
|
53131
53139
|
panelSize = DEFAULT_SIDE_PANEL_SIZE;
|
|
53132
53140
|
get isOpen() {
|
|
53133
53141
|
if (!this.componentTag) {
|
|
53134
53142
|
return false;
|
|
53135
53143
|
}
|
|
53136
|
-
return this.computeState(this.componentTag, this.
|
|
53144
|
+
return this.computeState(this.componentTag, this.currentPanelProps).isOpen;
|
|
53137
53145
|
}
|
|
53138
53146
|
get panelProps() {
|
|
53139
|
-
const state = this.computeState(this.componentTag, this.
|
|
53147
|
+
const state = this.computeState(this.componentTag, this.currentPanelProps);
|
|
53140
53148
|
if (state.isOpen) {
|
|
53141
53149
|
return state.props ?? {};
|
|
53142
53150
|
}
|
|
53143
53151
|
return {};
|
|
53144
53152
|
}
|
|
53145
53153
|
get panelKey() {
|
|
53146
|
-
const state = this.computeState(this.componentTag, this.
|
|
53154
|
+
const state = this.computeState(this.componentTag, this.currentPanelProps);
|
|
53147
53155
|
if (state.isOpen) {
|
|
53148
53156
|
return state.key;
|
|
53149
53157
|
}
|
|
@@ -53155,10 +53163,10 @@ class SidePanelStore extends SpreadsheetStore {
|
|
|
53155
53163
|
return;
|
|
53156
53164
|
}
|
|
53157
53165
|
if (this.isOpen && componentTag !== this.componentTag) {
|
|
53158
|
-
this.
|
|
53166
|
+
this.currentPanelProps?.onCloseSidePanel?.();
|
|
53159
53167
|
}
|
|
53160
53168
|
this.componentTag = componentTag;
|
|
53161
|
-
this.
|
|
53169
|
+
this.currentPanelProps = state.props ?? {};
|
|
53162
53170
|
}
|
|
53163
53171
|
toggle(componentTag, panelProps) {
|
|
53164
53172
|
if (this.isOpen && componentTag === this.componentTag) {
|
|
@@ -53169,8 +53177,8 @@ class SidePanelStore extends SpreadsheetStore {
|
|
|
53169
53177
|
}
|
|
53170
53178
|
}
|
|
53171
53179
|
close() {
|
|
53172
|
-
this.
|
|
53173
|
-
this.
|
|
53180
|
+
this.currentPanelProps.onCloseSidePanel?.();
|
|
53181
|
+
this.currentPanelProps = {};
|
|
53174
53182
|
this.componentTag = "";
|
|
53175
53183
|
}
|
|
53176
53184
|
changePanelSize(size, spreadsheetElWidth) {
|
|
@@ -53196,7 +53204,11 @@ class SidePanelStore extends SpreadsheetStore {
|
|
|
53196
53204
|
};
|
|
53197
53205
|
}
|
|
53198
53206
|
else {
|
|
53199
|
-
|
|
53207
|
+
const state = customComputeState(this.getters, panelProps);
|
|
53208
|
+
if (state.isOpen) {
|
|
53209
|
+
this.currentPanelProps = state.props ?? this.currentPanelProps;
|
|
53210
|
+
}
|
|
53211
|
+
return state;
|
|
53200
53212
|
}
|
|
53201
53213
|
}
|
|
53202
53214
|
}
|
|
@@ -59999,10 +60011,17 @@ class PivotCorePlugin extends CorePlugin {
|
|
|
59999
60011
|
if (!pivot) {
|
|
60000
60012
|
continue;
|
|
60001
60013
|
}
|
|
60002
|
-
|
|
60014
|
+
const def = deepCopy(pivot.definition);
|
|
60015
|
+
for (const measure of def.measures) {
|
|
60003
60016
|
if (measure.computedBy?.formula === formulaString) {
|
|
60004
|
-
const measureIndex =
|
|
60005
|
-
|
|
60017
|
+
const measureIndex = def.measures.indexOf(measure);
|
|
60018
|
+
if (measureIndex !== -1) {
|
|
60019
|
+
def.measures[measureIndex].computedBy = {
|
|
60020
|
+
formula: newFormulaString,
|
|
60021
|
+
sheetId,
|
|
60022
|
+
};
|
|
60023
|
+
}
|
|
60024
|
+
this.dispatch("UPDATE_PIVOT", { pivotId, pivot: def });
|
|
60006
60025
|
}
|
|
60007
60026
|
}
|
|
60008
60027
|
}
|
|
@@ -60155,6 +60174,9 @@ class SpreadsheetPivotCorePlugin extends CorePlugin {
|
|
|
60155
60174
|
const { sheetId, zone } = definition.dataSet;
|
|
60156
60175
|
const range = this.getters.getRangeFromZone(sheetId, zone);
|
|
60157
60176
|
const adaptedRange = adaptPivotRange(range, applyChange);
|
|
60177
|
+
if (adaptedRange === range) {
|
|
60178
|
+
return;
|
|
60179
|
+
}
|
|
60158
60180
|
const dataSet = adaptedRange && {
|
|
60159
60181
|
sheetId: adaptedRange.sheetId,
|
|
60160
60182
|
zone: adaptedRange.zone,
|
|
@@ -63877,9 +63899,7 @@ class PivotUIPlugin extends CoreViewPlugin {
|
|
|
63877
63899
|
handle(cmd) {
|
|
63878
63900
|
if (invalidateEvaluationCommands.has(cmd.type)) {
|
|
63879
63901
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
63880
|
-
|
|
63881
|
-
this.setupPivot(pivotId, { recreate: true });
|
|
63882
|
-
}
|
|
63902
|
+
this.setupPivot(pivotId, { recreate: true });
|
|
63883
63903
|
}
|
|
63884
63904
|
}
|
|
63885
63905
|
switch (cmd.type) {
|
|
@@ -64080,7 +64100,7 @@ class PivotUIPlugin extends CoreViewPlugin {
|
|
|
64080
64100
|
pivot.init({ reload: true });
|
|
64081
64101
|
}
|
|
64082
64102
|
setupPivot(pivotId, { recreate } = { recreate: false }) {
|
|
64083
|
-
const definition = this.getters.getPivotCoreDefinition(pivotId);
|
|
64103
|
+
const definition = deepCopy(this.getters.getPivotCoreDefinition(pivotId));
|
|
64084
64104
|
if (!(pivotId in this.pivots)) {
|
|
64085
64105
|
const Pivot = withPivotPresentationLayer(pivotRegistry.get(definition.type).ui);
|
|
64086
64106
|
this.pivots[pivotId] = new Pivot(this.custom, { definition, getters: this.getters });
|
|
@@ -72678,7 +72698,7 @@ css /* scss */ `
|
|
|
72678
72698
|
border-radius: 4px;
|
|
72679
72699
|
font-weight: 500;
|
|
72680
72700
|
font-size: 14px;
|
|
72681
|
-
height: 32px;
|
|
72701
|
+
min-height: 32px;
|
|
72682
72702
|
line-height: 16px;
|
|
72683
72703
|
flex-grow: 1;
|
|
72684
72704
|
background-color: ${BUTTON_BG};
|
|
@@ -77338,6 +77358,6 @@ const chartHelpers = { ...CHART_HELPERS, ...CHART_RUNTIME_HELPERS };
|
|
|
77338
77358
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, CoreViewPlugin, 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 };
|
|
77339
77359
|
|
|
77340
77360
|
|
|
77341
|
-
__info__.version = "18.2.
|
|
77342
|
-
__info__.date = "2025-
|
|
77343
|
-
__info__.hash = "
|
|
77361
|
+
__info__.version = "18.2.36";
|
|
77362
|
+
__info__.date = "2025-12-02T05:31:10.558Z";
|
|
77363
|
+
__info__.hash = "d385099";
|