@odoo/o-spreadsheet 18.0.71 → 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 +100 -94
- package/dist/o-spreadsheet.iife.js +100 -94
- package/dist/o-spreadsheet.iife.min.js +215 -215
- 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/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 -66574
|
@@ -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
|
(function(exports, _odoo_owl) {
|
|
@@ -187,7 +187,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
187
187
|
const GRAY_200 = "#E7E9ED";
|
|
188
188
|
const GRAY_100 = "#F9FAFB";
|
|
189
189
|
const TEXT_BODY = "#374151";
|
|
190
|
-
const TEXT_BODY_MUTED =
|
|
190
|
+
const TEXT_BODY_MUTED = "#374151C2";
|
|
191
191
|
const TEXT_HEADING = "#111827";
|
|
192
192
|
const PRIMARY_BUTTON_BG = "#714B67";
|
|
193
193
|
const PRIMARY_BUTTON_HOVER_BG = "#624159";
|
|
@@ -293,9 +293,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
293
293
|
];
|
|
294
294
|
const DEFAULT_CELL_HEIGHT = 23;
|
|
295
295
|
const FOOTER_HEIGHT = 2 * 23;
|
|
296
|
-
const MENU_SEPARATOR_BORDER_WIDTH = 1;
|
|
297
|
-
const MENU_SEPARATOR_PADDING = 5;
|
|
298
|
-
const MENU_SEPARATOR_HEIGHT = 1 + 2 * 5;
|
|
299
296
|
const DEFAULT_STYLE = {
|
|
300
297
|
align: "left",
|
|
301
298
|
verticalAlign: "bottom",
|
|
@@ -315,7 +312,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
315
312
|
const DEFAULT_VERTICAL_ALIGN = DEFAULT_STYLE.verticalAlign;
|
|
316
313
|
const DEFAULT_WRAPPING_MODE = DEFAULT_STYLE.wrapping;
|
|
317
314
|
const DEFAULT_FONT_SIZE = DEFAULT_STYLE.fontSize;
|
|
318
|
-
const DEFAULT_FONT = "'Roboto', arial";
|
|
315
|
+
const DEFAULT_FONT = "'Roboto', arial, 'Liberation Sans'";
|
|
319
316
|
const DEFAULT_BORDER_DESC = {
|
|
320
317
|
style: "thin",
|
|
321
318
|
color: "#000000"
|
|
@@ -1491,7 +1488,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
1491
1488
|
function recomputeZones(zones, zonesToRemove = []) {
|
|
1492
1489
|
if (zones.length <= 1 && zonesToRemove.length === 0) return zones;
|
|
1493
1490
|
const profilesStartingPosition = [0];
|
|
1494
|
-
const profiles = new Map([[0, []]]);
|
|
1491
|
+
const profiles = /* @__PURE__ */ new Map([[0, []]]);
|
|
1495
1492
|
modifyProfiles(profilesStartingPosition, profiles, zones, false);
|
|
1496
1493
|
modifyProfiles(profilesStartingPosition, profiles, zonesToRemove, true);
|
|
1497
1494
|
return constructZonesFromProfiles(profilesStartingPosition, profiles);
|
|
@@ -2725,12 +2722,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2725
2722
|
const pIntegerAndDecimals = `(?:\\d+(?:${escapeRegExp(locale.thousandsSeparator || "")}\\d{3,})*(?:${decimalSeparator}\\d*)?)`;
|
|
2726
2723
|
const pOnlyDecimals = `(?:${decimalSeparator}\\d+)`;
|
|
2727
2724
|
const pNumber = "(?:\\s*" + pIntegerAndDecimals + "|" + pOnlyDecimals + ")(?:e(?:\\+|-)?\\d+)?(?:\\s*%)?";
|
|
2728
|
-
const pMinus = "(?:\\s*-)?";
|
|
2729
|
-
const pCurrencyFormat = "(?:\\s*[\\$€])?";
|
|
2730
2725
|
const pNumberExp = "^(?:(?:" + [
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2726
|
+
"(?:\\s*-)?(?:\\s*[\\$€])?" + pNumber,
|
|
2727
|
+
"(?:\\s*-)?" + pNumber + "(?:\\s*[\\$€])?",
|
|
2728
|
+
"(?:\\s*[\\$€])?(?:\\s*-)?" + pNumber
|
|
2734
2729
|
].join(")|(?:") + "))$";
|
|
2735
2730
|
return new RegExp(pNumberExp, "i");
|
|
2736
2731
|
});
|
|
@@ -2793,7 +2788,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2793
2788
|
function isZoneDependent(cmd) {
|
|
2794
2789
|
return "sheetId" in cmd && "zone" in cmd;
|
|
2795
2790
|
}
|
|
2796
|
-
const invalidateEvaluationCommands = new Set([
|
|
2791
|
+
const invalidateEvaluationCommands = /* @__PURE__ */ new Set([
|
|
2797
2792
|
"RENAME_SHEET",
|
|
2798
2793
|
"DELETE_SHEET",
|
|
2799
2794
|
"CREATE_SHEET",
|
|
@@ -2812,7 +2807,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2812
2807
|
"REMOVE_PIVOT",
|
|
2813
2808
|
"DUPLICATE_PIVOT"
|
|
2814
2809
|
]);
|
|
2815
|
-
const invalidateChartEvaluationCommands = new Set([
|
|
2810
|
+
const invalidateChartEvaluationCommands = /* @__PURE__ */ new Set([
|
|
2816
2811
|
"EVALUATE_CELLS",
|
|
2817
2812
|
"UPDATE_CELL",
|
|
2818
2813
|
"UNHIDE_COLUMNS_ROWS",
|
|
@@ -2830,20 +2825,20 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2830
2825
|
"UNDO",
|
|
2831
2826
|
"REDO"
|
|
2832
2827
|
]);
|
|
2833
|
-
const invalidateDependenciesCommands = new Set(["MOVE_RANGES"]);
|
|
2834
|
-
const invalidateCFEvaluationCommands = new Set([
|
|
2828
|
+
const invalidateDependenciesCommands = /* @__PURE__ */ new Set(["MOVE_RANGES"]);
|
|
2829
|
+
const invalidateCFEvaluationCommands = /* @__PURE__ */ new Set([
|
|
2835
2830
|
"EVALUATE_CELLS",
|
|
2836
2831
|
"ADD_CONDITIONAL_FORMAT",
|
|
2837
2832
|
"REMOVE_CONDITIONAL_FORMAT",
|
|
2838
2833
|
"CHANGE_CONDITIONAL_FORMAT_PRIORITY"
|
|
2839
2834
|
]);
|
|
2840
|
-
const invalidateBordersCommands = new Set([
|
|
2835
|
+
const invalidateBordersCommands = /* @__PURE__ */ new Set([
|
|
2841
2836
|
"AUTOFILL_CELL",
|
|
2842
2837
|
"SET_BORDER",
|
|
2843
2838
|
"SET_ZONE_BORDERS",
|
|
2844
2839
|
"SET_BORDERS_ON_TARGET"
|
|
2845
2840
|
]);
|
|
2846
|
-
const readonlyAllowedCommands = new Set([
|
|
2841
|
+
const readonlyAllowedCommands = /* @__PURE__ */ new Set([
|
|
2847
2842
|
"START",
|
|
2848
2843
|
"ACTIVATE_SHEET",
|
|
2849
2844
|
"COPY",
|
|
@@ -2853,7 +2848,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2853
2848
|
"SET_FORMULA_VISIBILITY",
|
|
2854
2849
|
"UPDATE_FILTER"
|
|
2855
2850
|
]);
|
|
2856
|
-
const coreTypes = new Set([
|
|
2851
|
+
const coreTypes = /* @__PURE__ */ new Set([
|
|
2857
2852
|
"UPDATE_CELL",
|
|
2858
2853
|
"UPDATE_CELL_POSITION",
|
|
2859
2854
|
"CLEAR_CELL",
|
|
@@ -4946,7 +4941,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4946
4941
|
//#region src/helpers/edge_scrolling.ts
|
|
4947
4942
|
const MAX_DELAY = 140;
|
|
4948
4943
|
const MIN_DELAY = 20;
|
|
4949
|
-
const ACCELERATION = .035;
|
|
4950
4944
|
/**
|
|
4951
4945
|
* Decreasing exponential function used to determine the "speed" of edge-scrolling
|
|
4952
4946
|
* as the timeout delay.
|
|
@@ -4954,7 +4948,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4954
4948
|
* Returns a timeout delay in milliseconds.
|
|
4955
4949
|
*/
|
|
4956
4950
|
function scrollDelay(value) {
|
|
4957
|
-
return 20 + (140 - 20) * Math.exp(
|
|
4951
|
+
return 20 + (140 - 20) * Math.exp(-.035 * (value - 1));
|
|
4958
4952
|
}
|
|
4959
4953
|
|
|
4960
4954
|
//#endregion
|
|
@@ -5586,7 +5580,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5586
5580
|
return String(this.fastIdStart);
|
|
5587
5581
|
} else if (window.crypto) return "10000000-1000".replace(/[01]/g, (c) => {
|
|
5588
5582
|
const n = Number(c);
|
|
5589
|
-
return (n ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
5583
|
+
return (n ^ crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
5590
5584
|
});
|
|
5591
5585
|
else return "xxxxxxxx-xxxx".replace(/[xy]/g, function(c) {
|
|
5592
5586
|
var r = Math.random() * 16 | 0;
|
|
@@ -5603,7 +5597,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5603
5597
|
return String(this.fastIdStart);
|
|
5604
5598
|
} else if (window.crypto) return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c) => {
|
|
5605
5599
|
const n = Number(c);
|
|
5606
|
-
return (n ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
5600
|
+
return (n ^ crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
5607
5601
|
});
|
|
5608
5602
|
else return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
|
|
5609
5603
|
var r = Math.random() * 16 | 0;
|
|
@@ -7148,10 +7142,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
7148
7142
|
type: dimension.type
|
|
7149
7143
|
}));
|
|
7150
7144
|
if (groupValueString.toLowerCase() === "false") return false;
|
|
7151
|
-
return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension
|
|
7145
|
+
return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension);
|
|
7152
7146
|
}
|
|
7153
|
-
function normalizeDateTime(value,
|
|
7154
|
-
return pivotTimeAdapter(granularity ?? "month").normalizeFunctionValue(value);
|
|
7147
|
+
function normalizeDateTime(value, dimension) {
|
|
7148
|
+
return pivotTimeAdapter(dimension.granularity ?? "month").normalizeFunctionValue(value);
|
|
7155
7149
|
}
|
|
7156
7150
|
function toFunctionPivotValue(value, dimension) {
|
|
7157
7151
|
if (value === null) return `"null"`;
|
|
@@ -32695,7 +32689,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32695
32689
|
const ITEMS_PER_LINE = 10;
|
|
32696
32690
|
const MAGNIFIER_EDGE = 16;
|
|
32697
32691
|
const ITEM_GAP = 2;
|
|
32698
|
-
const CONTENT_WIDTH =
|
|
32692
|
+
const CONTENT_WIDTH = 218;
|
|
32699
32693
|
const INNER_GRADIENT_WIDTH = CONTENT_WIDTH - 2 * ITEM_BORDER_WIDTH;
|
|
32700
32694
|
const INNER_GRADIENT_HEIGHT = CONTENT_WIDTH - 30 - 2 * ITEM_BORDER_WIDTH;
|
|
32701
32695
|
css`
|
|
@@ -32707,7 +32701,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32707
32701
|
line-height: 1.2;
|
|
32708
32702
|
overflow-y: auto;
|
|
32709
32703
|
overflow-x: hidden;
|
|
32710
|
-
width: ${
|
|
32704
|
+
width: ${234}px;
|
|
32711
32705
|
|
|
32712
32706
|
.o-color-picker-section-name {
|
|
32713
32707
|
margin: 0px ${ITEM_BORDER_WIDTH}px;
|
|
@@ -32779,14 +32773,14 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32779
32773
|
}
|
|
32780
32774
|
|
|
32781
32775
|
.o-custom-selector {
|
|
32782
|
-
padding: ${
|
|
32776
|
+
padding: ${10}px ${PICKER_PADDING}px;
|
|
32783
32777
|
position: relative;
|
|
32784
32778
|
.o-gradient {
|
|
32785
32779
|
margin-bottom: ${MAGNIFIER_EDGE / 2}px;
|
|
32786
32780
|
border: ${ITEM_BORDER_WIDTH}px solid #c0c0c0;
|
|
32787
32781
|
box-sizing: border-box;
|
|
32788
|
-
width: ${
|
|
32789
|
-
height: ${
|
|
32782
|
+
width: ${218}px;
|
|
32783
|
+
height: ${188}px;
|
|
32790
32784
|
position: relative;
|
|
32791
32785
|
}
|
|
32792
32786
|
|
|
@@ -32927,8 +32921,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32927
32921
|
const left = Math.round(INNER_GRADIENT_WIDTH * clip(s / 100, 0, 1));
|
|
32928
32922
|
const top = Math.round(INNER_GRADIENT_HEIGHT * clip(1 - 2 * l / (200 - s), 0, 1));
|
|
32929
32923
|
return cssPropertiesToCss({
|
|
32930
|
-
left: `${-
|
|
32931
|
-
top: `${-
|
|
32924
|
+
left: `${-16 / 2 + left}px`,
|
|
32925
|
+
top: `${-16 / 2 + top}px`,
|
|
32932
32926
|
background: hslaToHex(this.state.currentHslaColor)
|
|
32933
32927
|
});
|
|
32934
32928
|
}
|
|
@@ -38660,8 +38654,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
38660
38654
|
rows;
|
|
38661
38655
|
constructor(definition, fields) {
|
|
38662
38656
|
this.measures = definition.measures.map((measure) => createMeasure(fields, measure));
|
|
38663
|
-
this.columns = definition.columns.map((dimension) => createPivotDimension(fields, dimension));
|
|
38664
|
-
this.rows = definition.rows.map((dimension) => createPivotDimension(fields, dimension));
|
|
38657
|
+
this.columns = definition.columns.map((dimension) => this.createPivotDimension(fields, dimension));
|
|
38658
|
+
this.rows = definition.rows.map((dimension) => this.createPivotDimension(fields, dimension));
|
|
38665
38659
|
}
|
|
38666
38660
|
getDimension(nameWithGranularity) {
|
|
38667
38661
|
const dimension = this.columns.find((d) => d.nameWithGranularity === nameWithGranularity) || this.rows.find((d) => d.nameWithGranularity === nameWithGranularity);
|
|
@@ -38673,6 +38667,40 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
38673
38667
|
if (!measure) throw new EvaluationError(_t("Field %s is not a measure", id));
|
|
38674
38668
|
return measure;
|
|
38675
38669
|
}
|
|
38670
|
+
createPivotDimension(fields, dimension) {
|
|
38671
|
+
const field = fields[dimension.fieldName];
|
|
38672
|
+
const type = field?.type ?? "integer";
|
|
38673
|
+
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
38674
|
+
return {
|
|
38675
|
+
/**
|
|
38676
|
+
* Get the display name of the dimension
|
|
38677
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
38678
|
+
*/
|
|
38679
|
+
displayName: field?.string ?? dimension.fieldName,
|
|
38680
|
+
/**
|
|
38681
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
38682
|
+
* e.g. "stage_id", "create_date:month"
|
|
38683
|
+
*/
|
|
38684
|
+
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
38685
|
+
/**
|
|
38686
|
+
* Get the name of the field of the dimension
|
|
38687
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
38688
|
+
*/
|
|
38689
|
+
fieldName: dimension.fieldName,
|
|
38690
|
+
/**
|
|
38691
|
+
* Get the aggregate operator of the dimension
|
|
38692
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
38693
|
+
*/
|
|
38694
|
+
granularity,
|
|
38695
|
+
/**
|
|
38696
|
+
* Get the type of the field of the dimension
|
|
38697
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
38698
|
+
*/
|
|
38699
|
+
type,
|
|
38700
|
+
order: dimension.order,
|
|
38701
|
+
isValid: !!field
|
|
38702
|
+
};
|
|
38703
|
+
}
|
|
38676
38704
|
};
|
|
38677
38705
|
function createMeasure(fields, measure) {
|
|
38678
38706
|
const fieldName = measure.fieldName;
|
|
@@ -38716,40 +38744,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
38716
38744
|
display: measure.display
|
|
38717
38745
|
};
|
|
38718
38746
|
}
|
|
38719
|
-
function createPivotDimension(fields, dimension) {
|
|
38720
|
-
const field = fields[dimension.fieldName];
|
|
38721
|
-
const type = field?.type ?? "integer";
|
|
38722
|
-
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
38723
|
-
return {
|
|
38724
|
-
/**
|
|
38725
|
-
* Get the display name of the dimension
|
|
38726
|
-
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
38727
|
-
*/
|
|
38728
|
-
displayName: field?.string ?? dimension.fieldName,
|
|
38729
|
-
/**
|
|
38730
|
-
* Get the name of the dimension, as it is stored in the pivot formula
|
|
38731
|
-
* e.g. "stage_id", "create_date:month"
|
|
38732
|
-
*/
|
|
38733
|
-
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
38734
|
-
/**
|
|
38735
|
-
* Get the name of the field of the dimension
|
|
38736
|
-
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
38737
|
-
*/
|
|
38738
|
-
fieldName: dimension.fieldName,
|
|
38739
|
-
/**
|
|
38740
|
-
* Get the aggregate operator of the dimension
|
|
38741
|
-
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
38742
|
-
*/
|
|
38743
|
-
granularity,
|
|
38744
|
-
/**
|
|
38745
|
-
* Get the type of the field of the dimension
|
|
38746
|
-
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
38747
|
-
*/
|
|
38748
|
-
type,
|
|
38749
|
-
order: dimension.order,
|
|
38750
|
-
isValid: !!field
|
|
38751
|
-
};
|
|
38752
|
-
}
|
|
38753
38747
|
|
|
38754
38748
|
//#endregion
|
|
38755
38749
|
//#region src/helpers/pivot/spreadsheet_pivot/runtime_definition_spreadsheet_pivot.ts
|
|
@@ -41399,11 +41393,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
41399
41393
|
getResizerPosition(resizer) {
|
|
41400
41394
|
const anchorCenteringOffset = (ANCHOR_SIZE - ACTIVE_BORDER_WIDTH) / 2;
|
|
41401
41395
|
const style = {};
|
|
41402
|
-
if (resizer.includes("top")) style.top =
|
|
41403
|
-
else if (resizer.includes("bottom")) style.bottom =
|
|
41396
|
+
if (resizer.includes("top")) style.top = `-3px`;
|
|
41397
|
+
else if (resizer.includes("bottom")) style.bottom = `-3px`;
|
|
41404
41398
|
else style.bottom = `calc(50% - ${anchorCenteringOffset}px)`;
|
|
41405
|
-
if (resizer.includes("left")) style.left =
|
|
41406
|
-
else if (resizer.includes("right")) style.right =
|
|
41399
|
+
if (resizer.includes("left")) style.left = `-3px`;
|
|
41400
|
+
else if (resizer.includes("right")) style.right = `-3px`;
|
|
41407
41401
|
else style.right = `calc(50% - ${anchorCenteringOffset}px)`;
|
|
41408
41402
|
return cssPropertiesToCss(style);
|
|
41409
41403
|
}
|
|
@@ -52436,6 +52430,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
52436
52430
|
case "CREATE_CHART":
|
|
52437
52431
|
this.tryToAddColors(this.getChartColors(cmd.id));
|
|
52438
52432
|
break;
|
|
52433
|
+
case "COLOR_SHEET":
|
|
52434
|
+
if (cmd.color) this.tryToAddColors([cmd.color]);
|
|
52435
|
+
break;
|
|
52439
52436
|
case "UPDATE_CELL":
|
|
52440
52437
|
case "ADD_CONDITIONAL_FORMAT":
|
|
52441
52438
|
case "SET_BORDER":
|
|
@@ -52458,8 +52455,12 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
52458
52455
|
}
|
|
52459
52456
|
computeCustomColors() {
|
|
52460
52457
|
let usedColors = [];
|
|
52461
|
-
for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
|
|
52462
|
-
return [
|
|
52458
|
+
for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getSheetColors(sheetId), this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
|
|
52459
|
+
return [.../* @__PURE__ */ new Set([...usedColors])];
|
|
52460
|
+
}
|
|
52461
|
+
getSheetColors(sheetId) {
|
|
52462
|
+
const sheet = this.getters.getSheet(sheetId);
|
|
52463
|
+
return sheet.color ? [sheet.color] : [];
|
|
52463
52464
|
}
|
|
52464
52465
|
getColorsFromCells(sheetId) {
|
|
52465
52466
|
const cells = Object.values(this.getters.getCells(sheetId));
|
|
@@ -56629,7 +56630,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56629
56630
|
};
|
|
56630
56631
|
}
|
|
56631
56632
|
};
|
|
56632
|
-
const invalidateTableStyleCommandsSet = new Set([
|
|
56633
|
+
const invalidateTableStyleCommandsSet = /* @__PURE__ */ new Set([
|
|
56633
56634
|
"HIDE_COLUMNS_ROWS",
|
|
56634
56635
|
"UNHIDE_COLUMNS_ROWS",
|
|
56635
56636
|
"UNFOLD_HEADER_GROUP",
|
|
@@ -60019,11 +60020,14 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
60019
60020
|
}
|
|
60020
60021
|
});
|
|
60021
60022
|
this.DOMFocusableElementStore = useStore(DOMFocusableElementStore);
|
|
60022
|
-
(0, _odoo_owl.useExternalListener)(window, "click", ()
|
|
60023
|
+
(0, _odoo_owl.useExternalListener)(window, "click", this.onExternalClick.bind(this), { capture: true });
|
|
60023
60024
|
(0, _odoo_owl.useEffect)((sheetId) => {
|
|
60024
60025
|
if (this.props.sheetId === sheetId) this.scrollToSheet();
|
|
60025
60026
|
}, () => [this.env.model.getters.getActiveSheetId()]);
|
|
60026
60027
|
}
|
|
60028
|
+
onExternalClick(ev) {
|
|
60029
|
+
if (!ev.target.closest(".o-color-picker")) this.state.pickerOpened = false;
|
|
60030
|
+
}
|
|
60027
60031
|
focusInputAndSelectContent() {
|
|
60028
60032
|
if (!this.state.isEditing || !this.sheetNameRef.el) return;
|
|
60029
60033
|
this.sheetNameRef.el.focus();
|
|
@@ -60120,6 +60124,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
60120
60124
|
},
|
|
60121
60125
|
openSheetColorPickerCallback: () => {
|
|
60122
60126
|
this.state.pickerOpened = true;
|
|
60127
|
+
const sheet = this.env.model.getters.getSheet(this.props.sheetId);
|
|
60128
|
+
this.state.currentPickerColor = sheet.color;
|
|
60123
60129
|
}
|
|
60124
60130
|
});
|
|
60125
60131
|
}
|
|
@@ -64054,11 +64060,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
64054
64060
|
<!-- each data marker in the series does not have a different color -->
|
|
64055
64061
|
<c:varyColors val="0"/>
|
|
64056
64062
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
64057
|
-
<c:axId val="${
|
|
64058
|
-
<c:axId val="${
|
|
64063
|
+
<c:axId val="${17781238}" />
|
|
64064
|
+
<c:axId val="${88853994}" />
|
|
64059
64065
|
</c:barChart>
|
|
64060
|
-
${addAx("b", "c:catAx",
|
|
64061
|
-
${addAx("r", "c:valAx",
|
|
64066
|
+
${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
64067
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
64062
64068
|
` : ""}`;
|
|
64063
64069
|
}
|
|
64064
64070
|
function addComboChart(chart) {
|
|
@@ -64213,11 +64219,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
64213
64219
|
<!-- each data marker in the series does not have a different color -->
|
|
64214
64220
|
<c:varyColors val="0"/>
|
|
64215
64221
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
64216
|
-
<c:axId val="${
|
|
64217
|
-
<c:axId val="${
|
|
64222
|
+
<c:axId val="${17781238}" />
|
|
64223
|
+
<c:axId val="${88853994}" />
|
|
64218
64224
|
</c:lineChart>
|
|
64219
|
-
${addAx("b", "c:catAx",
|
|
64220
|
-
${addAx("r", "c:valAx",
|
|
64225
|
+
${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
64226
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
64221
64227
|
` : ""}
|
|
64222
64228
|
`;
|
|
64223
64229
|
}
|
|
@@ -64279,11 +64285,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
64279
64285
|
<c:varyColors val="0"/>
|
|
64280
64286
|
<c:scatterStyle val="lineMarker"/>
|
|
64281
64287
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
64282
|
-
<c:axId val="${
|
|
64283
|
-
<c:axId val="${
|
|
64288
|
+
<c:axId val="${17781238}" />
|
|
64289
|
+
<c:axId val="${88853994}" />
|
|
64284
64290
|
</c:scatterChart>
|
|
64285
|
-
${addAx("b", "c:valAx",
|
|
64286
|
-
${addAx("r", "c:valAx",
|
|
64291
|
+
${addAx("b", "c:valAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
64292
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
64287
64293
|
` : ""}`;
|
|
64288
64294
|
}
|
|
64289
64295
|
function addDoughnutChart(chart, chartSheetIndex, data, { holeSize } = { holeSize: 50 }) {
|
|
@@ -66386,8 +66392,8 @@ exports.stores = stores;
|
|
|
66386
66392
|
exports.tokenColors = tokenColors;
|
|
66387
66393
|
exports.tokenize = tokenize;
|
|
66388
66394
|
|
|
66389
|
-
__info__.version = "18.0.
|
|
66390
|
-
__info__.date = "2026-
|
|
66391
|
-
__info__.hash = "
|
|
66395
|
+
__info__.version = "18.0.73";
|
|
66396
|
+
__info__.date = "2026-07-01T05:00:54.172Z";
|
|
66397
|
+
__info__.hash = "1a9c761";
|
|
66392
66398
|
|
|
66393
66399
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|