@odoo/o-spreadsheet 18.0.70 → 18.0.73
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.esm.js +119 -102
- package/dist/o-spreadsheet.iife.js +119 -102
- package/dist/o-spreadsheet.iife.min.js +216 -216
- package/dist/o_spreadsheet.xml +4 -4
- package/dist/types/components/bottom_bar/bottom_bar_sheet/bottom_bar_sheet.d.ts +1 -0
- package/dist/types/components/side_panel/find_and_replace/find_and_replace_store.d.ts +1 -1
- package/dist/types/constants.d.ts +1 -1
- package/dist/types/helpers/pivot/pivot_helpers.d.ts +2 -2
- package/dist/types/helpers/pivot/pivot_runtime_definition.d.ts +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/plugins/ui_core_views/custom_colors.d.ts +1 -0
- package/package.json +7 -2
- package/dist/o-spreadsheet.cjs.js +0 -66563
|
@@ -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.0.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.0.73
|
|
6
|
+
* @date 2026-07-01T05:00:54.172Z
|
|
7
|
+
* @hash 1a9c761
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { Component, markRaw, onMounted, onPatched, onWillPatch, onWillStart, onWillUnmount, onWillUpdateProps, status, toRaw, useChildSubEnv, useComponent, useEffect, useEnv, useExternalListener, useRef, useState, useSubEnv, xml } from "@odoo/owl";
|
|
@@ -185,7 +185,7 @@ const GRAY_300 = "#D8DADD";
|
|
|
185
185
|
const GRAY_200 = "#E7E9ED";
|
|
186
186
|
const GRAY_100 = "#F9FAFB";
|
|
187
187
|
const TEXT_BODY = "#374151";
|
|
188
|
-
const TEXT_BODY_MUTED =
|
|
188
|
+
const TEXT_BODY_MUTED = "#374151C2";
|
|
189
189
|
const TEXT_HEADING = "#111827";
|
|
190
190
|
const PRIMARY_BUTTON_BG = "#714B67";
|
|
191
191
|
const PRIMARY_BUTTON_HOVER_BG = "#624159";
|
|
@@ -291,9 +291,6 @@ const COLOR_PICKER_DEFAULTS = [
|
|
|
291
291
|
];
|
|
292
292
|
const DEFAULT_CELL_HEIGHT = 23;
|
|
293
293
|
const FOOTER_HEIGHT = 2 * 23;
|
|
294
|
-
const MENU_SEPARATOR_BORDER_WIDTH = 1;
|
|
295
|
-
const MENU_SEPARATOR_PADDING = 5;
|
|
296
|
-
const MENU_SEPARATOR_HEIGHT = 1 + 2 * 5;
|
|
297
294
|
const DEFAULT_STYLE = {
|
|
298
295
|
align: "left",
|
|
299
296
|
verticalAlign: "bottom",
|
|
@@ -313,7 +310,7 @@ const DEFAULT_NUMBER_STYLE = {
|
|
|
313
310
|
const DEFAULT_VERTICAL_ALIGN = DEFAULT_STYLE.verticalAlign;
|
|
314
311
|
const DEFAULT_WRAPPING_MODE = DEFAULT_STYLE.wrapping;
|
|
315
312
|
const DEFAULT_FONT_SIZE = DEFAULT_STYLE.fontSize;
|
|
316
|
-
const DEFAULT_FONT = "'Roboto', arial";
|
|
313
|
+
const DEFAULT_FONT = "'Roboto', arial, 'Liberation Sans'";
|
|
317
314
|
const DEFAULT_BORDER_DESC = {
|
|
318
315
|
style: "thin",
|
|
319
316
|
color: "#000000"
|
|
@@ -1489,7 +1486,7 @@ function toXC(col, row, rangePart = {
|
|
|
1489
1486
|
function recomputeZones(zones, zonesToRemove = []) {
|
|
1490
1487
|
if (zones.length <= 1 && zonesToRemove.length === 0) return zones;
|
|
1491
1488
|
const profilesStartingPosition = [0];
|
|
1492
|
-
const profiles = new Map([[0, []]]);
|
|
1489
|
+
const profiles = /* @__PURE__ */ new Map([[0, []]]);
|
|
1493
1490
|
modifyProfiles(profilesStartingPosition, profiles, zones, false);
|
|
1494
1491
|
modifyProfiles(profilesStartingPosition, profiles, zonesToRemove, true);
|
|
1495
1492
|
return constructZonesFromProfiles(profilesStartingPosition, profiles);
|
|
@@ -2723,12 +2720,10 @@ const getNumberRegex = memoize(function getNumberRegex(locale) {
|
|
|
2723
2720
|
const pIntegerAndDecimals = `(?:\\d+(?:${escapeRegExp(locale.thousandsSeparator || "")}\\d{3,})*(?:${decimalSeparator}\\d*)?)`;
|
|
2724
2721
|
const pOnlyDecimals = `(?:${decimalSeparator}\\d+)`;
|
|
2725
2722
|
const pNumber = "(?:\\s*" + pIntegerAndDecimals + "|" + pOnlyDecimals + ")(?:e(?:\\+|-)?\\d+)?(?:\\s*%)?";
|
|
2726
|
-
const pMinus = "(?:\\s*-)?";
|
|
2727
|
-
const pCurrencyFormat = "(?:\\s*[\\$€])?";
|
|
2728
2723
|
const pNumberExp = "^(?:(?:" + [
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2724
|
+
"(?:\\s*-)?(?:\\s*[\\$€])?" + pNumber,
|
|
2725
|
+
"(?:\\s*-)?" + pNumber + "(?:\\s*[\\$€])?",
|
|
2726
|
+
"(?:\\s*[\\$€])?(?:\\s*-)?" + pNumber
|
|
2732
2727
|
].join(")|(?:") + "))$";
|
|
2733
2728
|
return new RegExp(pNumberExp, "i");
|
|
2734
2729
|
});
|
|
@@ -2791,7 +2786,7 @@ function isPositionDependent(cmd) {
|
|
|
2791
2786
|
function isZoneDependent(cmd) {
|
|
2792
2787
|
return "sheetId" in cmd && "zone" in cmd;
|
|
2793
2788
|
}
|
|
2794
|
-
const invalidateEvaluationCommands = new Set([
|
|
2789
|
+
const invalidateEvaluationCommands = /* @__PURE__ */ new Set([
|
|
2795
2790
|
"RENAME_SHEET",
|
|
2796
2791
|
"DELETE_SHEET",
|
|
2797
2792
|
"CREATE_SHEET",
|
|
@@ -2810,7 +2805,7 @@ const invalidateEvaluationCommands = new Set([
|
|
|
2810
2805
|
"REMOVE_PIVOT",
|
|
2811
2806
|
"DUPLICATE_PIVOT"
|
|
2812
2807
|
]);
|
|
2813
|
-
const invalidateChartEvaluationCommands = new Set([
|
|
2808
|
+
const invalidateChartEvaluationCommands = /* @__PURE__ */ new Set([
|
|
2814
2809
|
"EVALUATE_CELLS",
|
|
2815
2810
|
"UPDATE_CELL",
|
|
2816
2811
|
"UNHIDE_COLUMNS_ROWS",
|
|
@@ -2828,20 +2823,20 @@ const invalidateChartEvaluationCommands = new Set([
|
|
|
2828
2823
|
"UNDO",
|
|
2829
2824
|
"REDO"
|
|
2830
2825
|
]);
|
|
2831
|
-
const invalidateDependenciesCommands = new Set(["MOVE_RANGES"]);
|
|
2832
|
-
const invalidateCFEvaluationCommands = new Set([
|
|
2826
|
+
const invalidateDependenciesCommands = /* @__PURE__ */ new Set(["MOVE_RANGES"]);
|
|
2827
|
+
const invalidateCFEvaluationCommands = /* @__PURE__ */ new Set([
|
|
2833
2828
|
"EVALUATE_CELLS",
|
|
2834
2829
|
"ADD_CONDITIONAL_FORMAT",
|
|
2835
2830
|
"REMOVE_CONDITIONAL_FORMAT",
|
|
2836
2831
|
"CHANGE_CONDITIONAL_FORMAT_PRIORITY"
|
|
2837
2832
|
]);
|
|
2838
|
-
const invalidateBordersCommands = new Set([
|
|
2833
|
+
const invalidateBordersCommands = /* @__PURE__ */ new Set([
|
|
2839
2834
|
"AUTOFILL_CELL",
|
|
2840
2835
|
"SET_BORDER",
|
|
2841
2836
|
"SET_ZONE_BORDERS",
|
|
2842
2837
|
"SET_BORDERS_ON_TARGET"
|
|
2843
2838
|
]);
|
|
2844
|
-
const readonlyAllowedCommands = new Set([
|
|
2839
|
+
const readonlyAllowedCommands = /* @__PURE__ */ new Set([
|
|
2845
2840
|
"START",
|
|
2846
2841
|
"ACTIVATE_SHEET",
|
|
2847
2842
|
"COPY",
|
|
@@ -2851,7 +2846,7 @@ const readonlyAllowedCommands = new Set([
|
|
|
2851
2846
|
"SET_FORMULA_VISIBILITY",
|
|
2852
2847
|
"UPDATE_FILTER"
|
|
2853
2848
|
]);
|
|
2854
|
-
const coreTypes = new Set([
|
|
2849
|
+
const coreTypes = /* @__PURE__ */ new Set([
|
|
2855
2850
|
"UPDATE_CELL",
|
|
2856
2851
|
"UPDATE_CELL_POSITION",
|
|
2857
2852
|
"CLEAR_CELL",
|
|
@@ -4944,7 +4939,6 @@ function getDateCriterionFormattedValues(values, locale) {
|
|
|
4944
4939
|
//#region src/helpers/edge_scrolling.ts
|
|
4945
4940
|
const MAX_DELAY = 140;
|
|
4946
4941
|
const MIN_DELAY = 20;
|
|
4947
|
-
const ACCELERATION = .035;
|
|
4948
4942
|
/**
|
|
4949
4943
|
* Decreasing exponential function used to determine the "speed" of edge-scrolling
|
|
4950
4944
|
* as the timeout delay.
|
|
@@ -4952,7 +4946,7 @@ const ACCELERATION = .035;
|
|
|
4952
4946
|
* Returns a timeout delay in milliseconds.
|
|
4953
4947
|
*/
|
|
4954
4948
|
function scrollDelay(value) {
|
|
4955
|
-
return 20 + (140 - 20) * Math.exp(
|
|
4949
|
+
return 20 + (140 - 20) * Math.exp(-.035 * (value - 1));
|
|
4956
4950
|
}
|
|
4957
4951
|
|
|
4958
4952
|
//#endregion
|
|
@@ -5584,7 +5578,7 @@ var UuidGenerator = class {
|
|
|
5584
5578
|
return String(this.fastIdStart);
|
|
5585
5579
|
} else if (window.crypto) return "10000000-1000".replace(/[01]/g, (c) => {
|
|
5586
5580
|
const n = Number(c);
|
|
5587
|
-
return (n ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
5581
|
+
return (n ^ crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
5588
5582
|
});
|
|
5589
5583
|
else return "xxxxxxxx-xxxx".replace(/[xy]/g, function(c) {
|
|
5590
5584
|
var r = Math.random() * 16 | 0;
|
|
@@ -5601,7 +5595,7 @@ var UuidGenerator = class {
|
|
|
5601
5595
|
return String(this.fastIdStart);
|
|
5602
5596
|
} else if (window.crypto) return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c) => {
|
|
5603
5597
|
const n = Number(c);
|
|
5604
|
-
return (n ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
5598
|
+
return (n ^ crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
5605
5599
|
});
|
|
5606
5600
|
else return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
|
|
5607
5601
|
var r = Math.random() * 16 | 0;
|
|
@@ -7146,10 +7140,10 @@ function toNormalizedPivotValue(dimension, groupValue) {
|
|
|
7146
7140
|
type: dimension.type
|
|
7147
7141
|
}));
|
|
7148
7142
|
if (groupValueString.toLowerCase() === "false") return false;
|
|
7149
|
-
return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension
|
|
7143
|
+
return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension);
|
|
7150
7144
|
}
|
|
7151
|
-
function normalizeDateTime(value,
|
|
7152
|
-
return pivotTimeAdapter(granularity ?? "month").normalizeFunctionValue(value);
|
|
7145
|
+
function normalizeDateTime(value, dimension) {
|
|
7146
|
+
return pivotTimeAdapter(dimension.granularity ?? "month").normalizeFunctionValue(value);
|
|
7153
7147
|
}
|
|
7154
7148
|
function toFunctionPivotValue(value, dimension) {
|
|
7155
7149
|
if (value === null) return `"null"`;
|
|
@@ -32693,7 +32687,7 @@ const ITEM_EDGE_LENGTH = 18;
|
|
|
32693
32687
|
const ITEMS_PER_LINE = 10;
|
|
32694
32688
|
const MAGNIFIER_EDGE = 16;
|
|
32695
32689
|
const ITEM_GAP = 2;
|
|
32696
|
-
const CONTENT_WIDTH =
|
|
32690
|
+
const CONTENT_WIDTH = 218;
|
|
32697
32691
|
const INNER_GRADIENT_WIDTH = CONTENT_WIDTH - 2 * ITEM_BORDER_WIDTH;
|
|
32698
32692
|
const INNER_GRADIENT_HEIGHT = CONTENT_WIDTH - 30 - 2 * ITEM_BORDER_WIDTH;
|
|
32699
32693
|
css`
|
|
@@ -32705,7 +32699,7 @@ css`
|
|
|
32705
32699
|
line-height: 1.2;
|
|
32706
32700
|
overflow-y: auto;
|
|
32707
32701
|
overflow-x: hidden;
|
|
32708
|
-
width: ${
|
|
32702
|
+
width: ${234}px;
|
|
32709
32703
|
|
|
32710
32704
|
.o-color-picker-section-name {
|
|
32711
32705
|
margin: 0px ${ITEM_BORDER_WIDTH}px;
|
|
@@ -32777,14 +32771,14 @@ css`
|
|
|
32777
32771
|
}
|
|
32778
32772
|
|
|
32779
32773
|
.o-custom-selector {
|
|
32780
|
-
padding: ${
|
|
32774
|
+
padding: ${10}px ${PICKER_PADDING}px;
|
|
32781
32775
|
position: relative;
|
|
32782
32776
|
.o-gradient {
|
|
32783
32777
|
margin-bottom: ${MAGNIFIER_EDGE / 2}px;
|
|
32784
32778
|
border: ${ITEM_BORDER_WIDTH}px solid #c0c0c0;
|
|
32785
32779
|
box-sizing: border-box;
|
|
32786
|
-
width: ${
|
|
32787
|
-
height: ${
|
|
32780
|
+
width: ${218}px;
|
|
32781
|
+
height: ${188}px;
|
|
32788
32782
|
position: relative;
|
|
32789
32783
|
}
|
|
32790
32784
|
|
|
@@ -32925,8 +32919,8 @@ var ColorPicker = class extends Component {
|
|
|
32925
32919
|
const left = Math.round(INNER_GRADIENT_WIDTH * clip(s / 100, 0, 1));
|
|
32926
32920
|
const top = Math.round(INNER_GRADIENT_HEIGHT * clip(1 - 2 * l / (200 - s), 0, 1));
|
|
32927
32921
|
return cssPropertiesToCss({
|
|
32928
|
-
left: `${-
|
|
32929
|
-
top: `${-
|
|
32922
|
+
left: `${-16 / 2 + left}px`,
|
|
32923
|
+
top: `${-16 / 2 + top}px`,
|
|
32930
32924
|
background: hslaToHex(this.state.currentHslaColor)
|
|
32931
32925
|
});
|
|
32932
32926
|
}
|
|
@@ -37217,10 +37211,10 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
37217
37211
|
allSheetsMatches = [];
|
|
37218
37212
|
activeSheetMatches = [];
|
|
37219
37213
|
specificRangeMatches = [];
|
|
37214
|
+
selectedMatchPosition = null;
|
|
37220
37215
|
currentSearchRegex = null;
|
|
37221
37216
|
isSearchDirty = false;
|
|
37222
37217
|
initialShowFormulaState;
|
|
37223
|
-
preserveSelectedMatchIndex = false;
|
|
37224
37218
|
irreplaceableMatchCount = 0;
|
|
37225
37219
|
notificationStore = this.get(NotificationStore);
|
|
37226
37220
|
selectedMatchIndex = null;
|
|
@@ -37324,7 +37318,10 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
37324
37318
|
*/
|
|
37325
37319
|
_updateSearch(toSearch, searchOptions) {
|
|
37326
37320
|
this.searchOptions = searchOptions;
|
|
37327
|
-
if (toSearch !== this.toSearch)
|
|
37321
|
+
if (toSearch !== this.toSearch) {
|
|
37322
|
+
this.selectedMatchIndex = null;
|
|
37323
|
+
this.selectedMatchPosition = null;
|
|
37324
|
+
}
|
|
37328
37325
|
this.toSearch = toSearch;
|
|
37329
37326
|
this.currentSearchRegex = getSearchRegex(this.toSearch, this.searchOptions);
|
|
37330
37327
|
this.refreshSearch();
|
|
@@ -37333,8 +37330,14 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
37333
37330
|
* refresh the matches according to the current search options
|
|
37334
37331
|
*/
|
|
37335
37332
|
refreshSearch(jumpToMatchSheet = true) {
|
|
37336
|
-
if (!this.preserveSelectedMatchIndex) this.selectedMatchIndex = null;
|
|
37337
37333
|
this.findMatches();
|
|
37334
|
+
if (this.selectedMatchPosition) if (this.selectedMatchPosition.sheetId !== this.getters.getActiveSheetId()) {
|
|
37335
|
+
this.selectedMatchIndex = null;
|
|
37336
|
+
this.selectedMatchPosition = null;
|
|
37337
|
+
} else {
|
|
37338
|
+
const index = this.searchMatches.findIndex((match) => match.sheetId === this.selectedMatchPosition?.sheetId && match.col === this.selectedMatchPosition?.col && match.row === this.selectedMatchPosition?.row);
|
|
37339
|
+
if (index !== -1) this.selectedMatchIndex = index;
|
|
37340
|
+
}
|
|
37338
37341
|
this.selectNextCell(0, jumpToMatchSheet);
|
|
37339
37342
|
}
|
|
37340
37343
|
getSheetsInSearchOrder() {
|
|
@@ -37402,6 +37405,7 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
37402
37405
|
const matches = this.searchMatches;
|
|
37403
37406
|
if (!matches.length) {
|
|
37404
37407
|
this.selectedMatchIndex = null;
|
|
37408
|
+
this.selectedMatchPosition = null;
|
|
37405
37409
|
return;
|
|
37406
37410
|
}
|
|
37407
37411
|
let nextIndex;
|
|
@@ -37415,14 +37419,13 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
37415
37419
|
} else nextIndex = this.selectedMatchIndex + indexChange;
|
|
37416
37420
|
nextIndex = (nextIndex + matches.length) % matches.length;
|
|
37417
37421
|
this.selectedMatchIndex = nextIndex;
|
|
37422
|
+
this.selectedMatchPosition = matches[this.selectedMatchIndex];
|
|
37418
37423
|
const selectedMatch = matches[nextIndex];
|
|
37419
37424
|
if (jumpToMatchSheet && this.getters.getActiveSheetId() !== selectedMatch.sheetId) {
|
|
37420
|
-
this.preserveSelectedMatchIndex = true;
|
|
37421
37425
|
this.model.dispatch("ACTIVATE_SHEET", {
|
|
37422
37426
|
sheetIdFrom: this.getters.getActiveSheetId(),
|
|
37423
37427
|
sheetIdTo: selectedMatch.sheetId
|
|
37424
37428
|
});
|
|
37425
|
-
this.preserveSelectedMatchIndex = false;
|
|
37426
37429
|
this.isSearchDirty = false;
|
|
37427
37430
|
}
|
|
37428
37431
|
this.model.selection.getBackToDefault();
|
|
@@ -37433,14 +37436,12 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
37433
37436
|
*/
|
|
37434
37437
|
replace() {
|
|
37435
37438
|
if (this.selectedMatchIndex === null) return;
|
|
37436
|
-
this.preserveSelectedMatchIndex = true;
|
|
37437
37439
|
this.model.dispatch("REPLACE_SEARCH", {
|
|
37438
37440
|
searchString: this.toSearch,
|
|
37439
37441
|
replaceWith: this.toReplace,
|
|
37440
37442
|
matches: [this.searchMatches[this.selectedMatchIndex]],
|
|
37441
37443
|
searchOptions: this.searchOptions
|
|
37442
37444
|
});
|
|
37443
|
-
this.preserveSelectedMatchIndex = false;
|
|
37444
37445
|
}
|
|
37445
37446
|
/**
|
|
37446
37447
|
* Apply the replace function to all the matches one time.
|
|
@@ -38651,8 +38652,8 @@ var PivotRuntimeDefinition = class {
|
|
|
38651
38652
|
rows;
|
|
38652
38653
|
constructor(definition, fields) {
|
|
38653
38654
|
this.measures = definition.measures.map((measure) => createMeasure(fields, measure));
|
|
38654
|
-
this.columns = definition.columns.map((dimension) => createPivotDimension(fields, dimension));
|
|
38655
|
-
this.rows = definition.rows.map((dimension) => createPivotDimension(fields, dimension));
|
|
38655
|
+
this.columns = definition.columns.map((dimension) => this.createPivotDimension(fields, dimension));
|
|
38656
|
+
this.rows = definition.rows.map((dimension) => this.createPivotDimension(fields, dimension));
|
|
38656
38657
|
}
|
|
38657
38658
|
getDimension(nameWithGranularity) {
|
|
38658
38659
|
const dimension = this.columns.find((d) => d.nameWithGranularity === nameWithGranularity) || this.rows.find((d) => d.nameWithGranularity === nameWithGranularity);
|
|
@@ -38664,6 +38665,40 @@ var PivotRuntimeDefinition = class {
|
|
|
38664
38665
|
if (!measure) throw new EvaluationError(_t("Field %s is not a measure", id));
|
|
38665
38666
|
return measure;
|
|
38666
38667
|
}
|
|
38668
|
+
createPivotDimension(fields, dimension) {
|
|
38669
|
+
const field = fields[dimension.fieldName];
|
|
38670
|
+
const type = field?.type ?? "integer";
|
|
38671
|
+
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
38672
|
+
return {
|
|
38673
|
+
/**
|
|
38674
|
+
* Get the display name of the dimension
|
|
38675
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
38676
|
+
*/
|
|
38677
|
+
displayName: field?.string ?? dimension.fieldName,
|
|
38678
|
+
/**
|
|
38679
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
38680
|
+
* e.g. "stage_id", "create_date:month"
|
|
38681
|
+
*/
|
|
38682
|
+
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
38683
|
+
/**
|
|
38684
|
+
* Get the name of the field of the dimension
|
|
38685
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
38686
|
+
*/
|
|
38687
|
+
fieldName: dimension.fieldName,
|
|
38688
|
+
/**
|
|
38689
|
+
* Get the aggregate operator of the dimension
|
|
38690
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
38691
|
+
*/
|
|
38692
|
+
granularity,
|
|
38693
|
+
/**
|
|
38694
|
+
* Get the type of the field of the dimension
|
|
38695
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
38696
|
+
*/
|
|
38697
|
+
type,
|
|
38698
|
+
order: dimension.order,
|
|
38699
|
+
isValid: !!field
|
|
38700
|
+
};
|
|
38701
|
+
}
|
|
38667
38702
|
};
|
|
38668
38703
|
function createMeasure(fields, measure) {
|
|
38669
38704
|
const fieldName = measure.fieldName;
|
|
@@ -38707,40 +38742,6 @@ function createMeasure(fields, measure) {
|
|
|
38707
38742
|
display: measure.display
|
|
38708
38743
|
};
|
|
38709
38744
|
}
|
|
38710
|
-
function createPivotDimension(fields, dimension) {
|
|
38711
|
-
const field = fields[dimension.fieldName];
|
|
38712
|
-
const type = field?.type ?? "integer";
|
|
38713
|
-
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
38714
|
-
return {
|
|
38715
|
-
/**
|
|
38716
|
-
* Get the display name of the dimension
|
|
38717
|
-
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
38718
|
-
*/
|
|
38719
|
-
displayName: field?.string ?? dimension.fieldName,
|
|
38720
|
-
/**
|
|
38721
|
-
* Get the name of the dimension, as it is stored in the pivot formula
|
|
38722
|
-
* e.g. "stage_id", "create_date:month"
|
|
38723
|
-
*/
|
|
38724
|
-
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
38725
|
-
/**
|
|
38726
|
-
* Get the name of the field of the dimension
|
|
38727
|
-
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
38728
|
-
*/
|
|
38729
|
-
fieldName: dimension.fieldName,
|
|
38730
|
-
/**
|
|
38731
|
-
* Get the aggregate operator of the dimension
|
|
38732
|
-
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
38733
|
-
*/
|
|
38734
|
-
granularity,
|
|
38735
|
-
/**
|
|
38736
|
-
* Get the type of the field of the dimension
|
|
38737
|
-
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
38738
|
-
*/
|
|
38739
|
-
type,
|
|
38740
|
-
order: dimension.order,
|
|
38741
|
-
isValid: !!field
|
|
38742
|
-
};
|
|
38743
|
-
}
|
|
38744
38745
|
|
|
38745
38746
|
//#endregion
|
|
38746
38747
|
//#region src/helpers/pivot/spreadsheet_pivot/runtime_definition_spreadsheet_pivot.ts
|
|
@@ -41390,11 +41391,11 @@ var FigureComponent = class extends Component {
|
|
|
41390
41391
|
getResizerPosition(resizer) {
|
|
41391
41392
|
const anchorCenteringOffset = (ANCHOR_SIZE - ACTIVE_BORDER_WIDTH) / 2;
|
|
41392
41393
|
const style = {};
|
|
41393
|
-
if (resizer.includes("top")) style.top =
|
|
41394
|
-
else if (resizer.includes("bottom")) style.bottom =
|
|
41394
|
+
if (resizer.includes("top")) style.top = `-3px`;
|
|
41395
|
+
else if (resizer.includes("bottom")) style.bottom = `-3px`;
|
|
41395
41396
|
else style.bottom = `calc(50% - ${anchorCenteringOffset}px)`;
|
|
41396
|
-
if (resizer.includes("left")) style.left =
|
|
41397
|
-
else if (resizer.includes("right")) style.right =
|
|
41397
|
+
if (resizer.includes("left")) style.left = `-3px`;
|
|
41398
|
+
else if (resizer.includes("right")) style.right = `-3px`;
|
|
41398
41399
|
else style.right = `calc(50% - ${anchorCenteringOffset}px)`;
|
|
41399
41400
|
return cssPropertiesToCss(style);
|
|
41400
41401
|
}
|
|
@@ -41776,8 +41777,12 @@ var CellComposerStore = class extends AbstractComposerStore {
|
|
|
41776
41777
|
}
|
|
41777
41778
|
stopEdition(direction) {
|
|
41778
41779
|
if (this.canStopEdition()) {
|
|
41780
|
+
const { col, row } = this.currentEditedCell;
|
|
41779
41781
|
this._stopEdition();
|
|
41780
|
-
if (direction)
|
|
41782
|
+
if (direction) {
|
|
41783
|
+
this.model.selection.selectCell(col, row);
|
|
41784
|
+
this.model.selection.moveAnchorCell(direction, 1);
|
|
41785
|
+
}
|
|
41781
41786
|
return;
|
|
41782
41787
|
}
|
|
41783
41788
|
const editedCell = this.currentEditedCell;
|
|
@@ -52423,6 +52428,9 @@ var CustomColorsPlugin = class extends UIPlugin {
|
|
|
52423
52428
|
case "CREATE_CHART":
|
|
52424
52429
|
this.tryToAddColors(this.getChartColors(cmd.id));
|
|
52425
52430
|
break;
|
|
52431
|
+
case "COLOR_SHEET":
|
|
52432
|
+
if (cmd.color) this.tryToAddColors([cmd.color]);
|
|
52433
|
+
break;
|
|
52426
52434
|
case "UPDATE_CELL":
|
|
52427
52435
|
case "ADD_CONDITIONAL_FORMAT":
|
|
52428
52436
|
case "SET_BORDER":
|
|
@@ -52445,8 +52453,12 @@ var CustomColorsPlugin = class extends UIPlugin {
|
|
|
52445
52453
|
}
|
|
52446
52454
|
computeCustomColors() {
|
|
52447
52455
|
let usedColors = [];
|
|
52448
|
-
for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
|
|
52449
|
-
return [
|
|
52456
|
+
for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getSheetColors(sheetId), this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
|
|
52457
|
+
return [.../* @__PURE__ */ new Set([...usedColors])];
|
|
52458
|
+
}
|
|
52459
|
+
getSheetColors(sheetId) {
|
|
52460
|
+
const sheet = this.getters.getSheet(sheetId);
|
|
52461
|
+
return sheet.color ? [sheet.color] : [];
|
|
52450
52462
|
}
|
|
52451
52463
|
getColorsFromCells(sheetId) {
|
|
52452
52464
|
const cells = Object.values(this.getters.getCells(sheetId));
|
|
@@ -56616,7 +56628,7 @@ var TableComputedStylePlugin = class extends UIPlugin {
|
|
|
56616
56628
|
};
|
|
56617
56629
|
}
|
|
56618
56630
|
};
|
|
56619
|
-
const invalidateTableStyleCommandsSet = new Set([
|
|
56631
|
+
const invalidateTableStyleCommandsSet = /* @__PURE__ */ new Set([
|
|
56620
56632
|
"HIDE_COLUMNS_ROWS",
|
|
56621
56633
|
"UNHIDE_COLUMNS_ROWS",
|
|
56622
56634
|
"UNFOLD_HEADER_GROUP",
|
|
@@ -60006,11 +60018,14 @@ var BottomBarSheet = class extends Component {
|
|
|
60006
60018
|
}
|
|
60007
60019
|
});
|
|
60008
60020
|
this.DOMFocusableElementStore = useStore(DOMFocusableElementStore);
|
|
60009
|
-
useExternalListener(window, "click", ()
|
|
60021
|
+
useExternalListener(window, "click", this.onExternalClick.bind(this), { capture: true });
|
|
60010
60022
|
useEffect((sheetId) => {
|
|
60011
60023
|
if (this.props.sheetId === sheetId) this.scrollToSheet();
|
|
60012
60024
|
}, () => [this.env.model.getters.getActiveSheetId()]);
|
|
60013
60025
|
}
|
|
60026
|
+
onExternalClick(ev) {
|
|
60027
|
+
if (!ev.target.closest(".o-color-picker")) this.state.pickerOpened = false;
|
|
60028
|
+
}
|
|
60014
60029
|
focusInputAndSelectContent() {
|
|
60015
60030
|
if (!this.state.isEditing || !this.sheetNameRef.el) return;
|
|
60016
60031
|
this.sheetNameRef.el.focus();
|
|
@@ -60107,6 +60122,8 @@ var BottomBarSheet = class extends Component {
|
|
|
60107
60122
|
},
|
|
60108
60123
|
openSheetColorPickerCallback: () => {
|
|
60109
60124
|
this.state.pickerOpened = true;
|
|
60125
|
+
const sheet = this.env.model.getters.getSheet(this.props.sheetId);
|
|
60126
|
+
this.state.currentPickerColor = sheet.color;
|
|
60110
60127
|
}
|
|
60111
60128
|
});
|
|
60112
60129
|
}
|
|
@@ -64041,11 +64058,11 @@ function addBarChart(chart) {
|
|
|
64041
64058
|
<!-- each data marker in the series does not have a different color -->
|
|
64042
64059
|
<c:varyColors val="0"/>
|
|
64043
64060
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
64044
|
-
<c:axId val="${
|
|
64045
|
-
<c:axId val="${
|
|
64061
|
+
<c:axId val="${17781238}" />
|
|
64062
|
+
<c:axId val="${88853994}" />
|
|
64046
64063
|
</c:barChart>
|
|
64047
|
-
${addAx("b", "c:catAx",
|
|
64048
|
-
${addAx("r", "c:valAx",
|
|
64064
|
+
${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
64065
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
64049
64066
|
` : ""}`;
|
|
64050
64067
|
}
|
|
64051
64068
|
function addComboChart(chart) {
|
|
@@ -64200,11 +64217,11 @@ function addLineChart(chart) {
|
|
|
64200
64217
|
<!-- each data marker in the series does not have a different color -->
|
|
64201
64218
|
<c:varyColors val="0"/>
|
|
64202
64219
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
64203
|
-
<c:axId val="${
|
|
64204
|
-
<c:axId val="${
|
|
64220
|
+
<c:axId val="${17781238}" />
|
|
64221
|
+
<c:axId val="${88853994}" />
|
|
64205
64222
|
</c:lineChart>
|
|
64206
|
-
${addAx("b", "c:catAx",
|
|
64207
|
-
${addAx("r", "c:valAx",
|
|
64223
|
+
${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
64224
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
64208
64225
|
` : ""}
|
|
64209
64226
|
`;
|
|
64210
64227
|
}
|
|
@@ -64266,11 +64283,11 @@ function addScatterChart(chart) {
|
|
|
64266
64283
|
<c:varyColors val="0"/>
|
|
64267
64284
|
<c:scatterStyle val="lineMarker"/>
|
|
64268
64285
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
64269
|
-
<c:axId val="${
|
|
64270
|
-
<c:axId val="${
|
|
64286
|
+
<c:axId val="${17781238}" />
|
|
64287
|
+
<c:axId val="${88853994}" />
|
|
64271
64288
|
</c:scatterChart>
|
|
64272
|
-
${addAx("b", "c:valAx",
|
|
64273
|
-
${addAx("r", "c:valAx",
|
|
64289
|
+
${addAx("b", "c:valAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
64290
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
64274
64291
|
` : ""}`;
|
|
64275
64292
|
}
|
|
64276
64293
|
function addDoughnutChart(chart, chartSheetIndex, data, { holeSize } = { holeSize: 50 }) {
|
|
@@ -66329,6 +66346,6 @@ const constants = {
|
|
|
66329
66346
|
//#endregion
|
|
66330
66347
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, 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 };
|
|
66331
66348
|
|
|
66332
|
-
__info__.version = "18.0.
|
|
66333
|
-
__info__.date = "2026-
|
|
66334
|
-
__info__.hash = "
|
|
66349
|
+
__info__.version = "18.0.73";
|
|
66350
|
+
__info__.date = "2026-07-01T05:00:54.172Z";
|
|
66351
|
+
__info__.hash = "1a9c761";
|