@odoo/o-spreadsheet 18.3.51 → 18.3.54
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.css +3 -3
- package/dist/o_spreadsheet.esm.js +106 -102
- package/dist/o_spreadsheet.iife.js +106 -102
- package/dist/o_spreadsheet.iife.min.js +223 -223
- package/dist/o_spreadsheet.xml +4 -4
- package/package.json +7 -2
- package/dist/o_spreadsheet.cjs.js +0 -72470
|
@@ -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.3.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.3.54
|
|
6
|
+
* @date 2026-07-01T05:01:44.424Z
|
|
7
|
+
* @hash d00e4b6
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -189,7 +189,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
189
189
|
const GRAY_200 = "#E7E9ED";
|
|
190
190
|
const GRAY_100 = "#F9FAFB";
|
|
191
191
|
const TEXT_BODY = "#374151";
|
|
192
|
-
const TEXT_BODY_MUTED =
|
|
192
|
+
const TEXT_BODY_MUTED = "#374151C2";
|
|
193
193
|
const TEXT_HEADING = "#111827";
|
|
194
194
|
const PRIMARY_BUTTON_BG = "#714B67";
|
|
195
195
|
const PRIMARY_BUTTON_HOVER_BG = "#624159";
|
|
@@ -296,9 +296,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
296
296
|
];
|
|
297
297
|
const DEFAULT_CELL_HEIGHT = 23;
|
|
298
298
|
const FOOTER_HEIGHT = 2 * 23;
|
|
299
|
-
const MENU_SEPARATOR_BORDER_WIDTH = 1;
|
|
300
|
-
const MENU_SEPARATOR_PADDING = 5;
|
|
301
|
-
const MENU_SEPARATOR_HEIGHT = 1 + 2 * 5;
|
|
302
299
|
const DEFAULT_STYLE = {
|
|
303
300
|
align: "left",
|
|
304
301
|
verticalAlign: "bottom",
|
|
@@ -318,7 +315,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
318
315
|
const DEFAULT_VERTICAL_ALIGN = DEFAULT_STYLE.verticalAlign;
|
|
319
316
|
const DEFAULT_WRAPPING_MODE = DEFAULT_STYLE.wrapping;
|
|
320
317
|
const DEFAULT_FONT_SIZE = DEFAULT_STYLE.fontSize;
|
|
321
|
-
const DEFAULT_FONT = "'Roboto', arial";
|
|
318
|
+
const DEFAULT_FONT = "'Roboto', arial, 'Liberation Sans'";
|
|
322
319
|
const DEFAULT_BORDER_DESC = {
|
|
323
320
|
style: "thin",
|
|
324
321
|
color: "#000000"
|
|
@@ -1638,7 +1635,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
1638
1635
|
function recomputeZones(zones, zonesToRemove = []) {
|
|
1639
1636
|
if (zones.length <= 1 && zonesToRemove.length === 0) return zones;
|
|
1640
1637
|
const profilesStartingPosition = [0];
|
|
1641
|
-
const profiles = new Map([[0, []]]);
|
|
1638
|
+
const profiles = /* @__PURE__ */ new Map([[0, []]]);
|
|
1642
1639
|
modifyProfiles(profilesStartingPosition, profiles, zones, false);
|
|
1643
1640
|
modifyProfiles(profilesStartingPosition, profiles, zonesToRemove, true);
|
|
1644
1641
|
return constructZonesFromProfiles(profilesStartingPosition, profiles);
|
|
@@ -2848,12 +2845,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2848
2845
|
const pIntegerAndDecimals = `(?:\\d+(?:${escapeRegExp(locale.thousandsSeparator || "")}\\d{3,})*(?:${decimalSeparator}\\d*)?)`;
|
|
2849
2846
|
const pOnlyDecimals = `(?:${decimalSeparator}\\d+)`;
|
|
2850
2847
|
const pNumber = "(?:\\s*" + pIntegerAndDecimals + "|" + pOnlyDecimals + ")(?:e(?:\\+|-)?\\d+)?(?:\\s*%)?";
|
|
2851
|
-
const pMinus = "(?:\\s*-)?";
|
|
2852
|
-
const pCurrencyFormat = "(?:\\s*[\\$€])?";
|
|
2853
2848
|
const pNumberExp = "^(?:(?:" + [
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2849
|
+
"(?:\\s*-)?(?:\\s*[\\$€])?" + pNumber,
|
|
2850
|
+
"(?:\\s*-)?" + pNumber + "(?:\\s*[\\$€])?",
|
|
2851
|
+
"(?:\\s*[\\$€])?(?:\\s*-)?" + pNumber
|
|
2857
2852
|
].join(")|(?:") + "))$";
|
|
2858
2853
|
return new RegExp(pNumberExp, "i");
|
|
2859
2854
|
});
|
|
@@ -2968,7 +2963,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2968
2963
|
function isZoneDependent(cmd) {
|
|
2969
2964
|
return "sheetId" in cmd && "zone" in cmd;
|
|
2970
2965
|
}
|
|
2971
|
-
const invalidateEvaluationCommands = new Set([
|
|
2966
|
+
const invalidateEvaluationCommands = /* @__PURE__ */ new Set([
|
|
2972
2967
|
"RENAME_SHEET",
|
|
2973
2968
|
"DELETE_SHEET",
|
|
2974
2969
|
"CREATE_SHEET",
|
|
@@ -2987,7 +2982,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2987
2982
|
"REMOVE_PIVOT",
|
|
2988
2983
|
"DUPLICATE_PIVOT"
|
|
2989
2984
|
]);
|
|
2990
|
-
const invalidateChartEvaluationCommands = new Set([
|
|
2985
|
+
const invalidateChartEvaluationCommands = /* @__PURE__ */ new Set([
|
|
2991
2986
|
"EVALUATE_CELLS",
|
|
2992
2987
|
"EVALUATE_CHARTS",
|
|
2993
2988
|
"UPDATE_CELL",
|
|
@@ -3006,20 +3001,20 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
3006
3001
|
"UNDO",
|
|
3007
3002
|
"REDO"
|
|
3008
3003
|
]);
|
|
3009
|
-
const invalidateDependenciesCommands = new Set(["MOVE_RANGES"]);
|
|
3010
|
-
const invalidateCFEvaluationCommands = new Set([
|
|
3004
|
+
const invalidateDependenciesCommands = /* @__PURE__ */ new Set(["MOVE_RANGES"]);
|
|
3005
|
+
const invalidateCFEvaluationCommands = /* @__PURE__ */ new Set([
|
|
3011
3006
|
"EVALUATE_CELLS",
|
|
3012
3007
|
"ADD_CONDITIONAL_FORMAT",
|
|
3013
3008
|
"REMOVE_CONDITIONAL_FORMAT",
|
|
3014
3009
|
"CHANGE_CONDITIONAL_FORMAT_PRIORITY"
|
|
3015
3010
|
]);
|
|
3016
|
-
const invalidateBordersCommands = new Set([
|
|
3011
|
+
const invalidateBordersCommands = /* @__PURE__ */ new Set([
|
|
3017
3012
|
"AUTOFILL_CELL",
|
|
3018
3013
|
"SET_BORDER",
|
|
3019
3014
|
"SET_ZONE_BORDERS",
|
|
3020
3015
|
"SET_BORDERS_ON_TARGET"
|
|
3021
3016
|
]);
|
|
3022
|
-
const readonlyAllowedCommands = new Set([
|
|
3017
|
+
const readonlyAllowedCommands = /* @__PURE__ */ new Set([
|
|
3023
3018
|
"START",
|
|
3024
3019
|
"ACTIVATE_SHEET",
|
|
3025
3020
|
"COPY",
|
|
@@ -3030,7 +3025,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
3030
3025
|
"SET_FORMULA_VISIBILITY",
|
|
3031
3026
|
"UPDATE_FILTER"
|
|
3032
3027
|
]);
|
|
3033
|
-
const coreTypes = new Set([
|
|
3028
|
+
const coreTypes = /* @__PURE__ */ new Set([
|
|
3034
3029
|
"UPDATE_CELL",
|
|
3035
3030
|
"UPDATE_CELL_POSITION",
|
|
3036
3031
|
"CLEAR_CELL",
|
|
@@ -5132,7 +5127,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5132
5127
|
//#region src/helpers/edge_scrolling.ts
|
|
5133
5128
|
const MAX_DELAY = 140;
|
|
5134
5129
|
const MIN_DELAY = 20;
|
|
5135
|
-
const ACCELERATION = .035;
|
|
5136
5130
|
/**
|
|
5137
5131
|
* Decreasing exponential function used to determine the "speed" of edge-scrolling
|
|
5138
5132
|
* as the timeout delay.
|
|
@@ -5140,7 +5134,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5140
5134
|
* Returns a timeout delay in milliseconds.
|
|
5141
5135
|
*/
|
|
5142
5136
|
function scrollDelay(value) {
|
|
5143
|
-
return 20 + (140 - 20) * Math.exp(
|
|
5137
|
+
return 20 + (140 - 20) * Math.exp(-.035 * (value - 1));
|
|
5144
5138
|
}
|
|
5145
5139
|
|
|
5146
5140
|
//#endregion
|
|
@@ -6013,7 +6007,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
6013
6007
|
smallUuid() {
|
|
6014
6008
|
if (window.crypto) return "10000000-1000".replace(/[01]/g, (c) => {
|
|
6015
6009
|
const n = Number(c);
|
|
6016
|
-
return (n ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
6010
|
+
return (n ^ crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
6017
6011
|
});
|
|
6018
6012
|
else return "xxxxxxxx-xxxx".replace(/[xy]/g, function(c) {
|
|
6019
6013
|
const r = Math.random() * 16 | 0;
|
|
@@ -6027,7 +6021,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
6027
6021
|
uuidv4() {
|
|
6028
6022
|
if (window.crypto) return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c) => {
|
|
6029
6023
|
const n = Number(c);
|
|
6030
|
-
return (n ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
6024
|
+
return (n ^ crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
6031
6025
|
});
|
|
6032
6026
|
else return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
|
|
6033
6027
|
const r = Math.random() * 16 | 0;
|
|
@@ -7619,10 +7613,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
7619
7613
|
type: dimension.type
|
|
7620
7614
|
}));
|
|
7621
7615
|
if (groupValueString.toLowerCase() === "false") return false;
|
|
7622
|
-
return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension
|
|
7616
|
+
return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension);
|
|
7623
7617
|
}
|
|
7624
|
-
function normalizeDateTime(value,
|
|
7625
|
-
return pivotTimeAdapter(granularity ?? "month").normalizeFunctionValue(value);
|
|
7618
|
+
function normalizeDateTime(value, dimension) {
|
|
7619
|
+
return pivotTimeAdapter(dimension.granularity ?? "month").normalizeFunctionValue(value);
|
|
7626
7620
|
}
|
|
7627
7621
|
function toFunctionPivotValue(value, dimension) {
|
|
7628
7622
|
if (value === null) return `"null"`;
|
|
@@ -32262,17 +32256,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32262
32256
|
|
|
32263
32257
|
//#endregion
|
|
32264
32258
|
//#region src/components/link/link_editor/link_editor.ts
|
|
32265
|
-
const PADDING = 12;
|
|
32266
32259
|
css`
|
|
32267
32260
|
.o-link-editor {
|
|
32268
32261
|
font-size: 13px;
|
|
32269
32262
|
background-color: white;
|
|
32270
32263
|
box-shadow: 0 1px 4px 3px rgba(60, 64, 67, 0.15);
|
|
32271
|
-
padding: ${
|
|
32264
|
+
padding: ${12}px;
|
|
32272
32265
|
display: flex;
|
|
32273
32266
|
flex-direction: column;
|
|
32274
32267
|
border-radius: 4px;
|
|
32275
|
-
width: ${
|
|
32268
|
+
width: ${364}px;
|
|
32276
32269
|
|
|
32277
32270
|
.o-section {
|
|
32278
32271
|
.o-section-title {
|
|
@@ -36426,11 +36419,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
36426
36419
|
const LINE_VERTICAL_PADDING = 1;
|
|
36427
36420
|
const PICKER_PADDING = 8;
|
|
36428
36421
|
const ITEM_BORDER_WIDTH = 1;
|
|
36429
|
-
const ITEM_EDGE_LENGTH = 18;
|
|
36430
36422
|
const ITEMS_PER_LINE = 10;
|
|
36431
36423
|
const MAGNIFIER_EDGE = 16;
|
|
36432
36424
|
const ITEM_GAP = 2;
|
|
36433
|
-
const CONTENT_WIDTH =
|
|
36425
|
+
const CONTENT_WIDTH = 218;
|
|
36434
36426
|
const INNER_GRADIENT_WIDTH = CONTENT_WIDTH - 2 * ITEM_BORDER_WIDTH;
|
|
36435
36427
|
const INNER_GRADIENT_HEIGHT = CONTENT_WIDTH - 30 - 2 * ITEM_BORDER_WIDTH;
|
|
36436
36428
|
css`
|
|
@@ -36442,7 +36434,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
36442
36434
|
line-height: 1.2;
|
|
36443
36435
|
overflow-y: auto;
|
|
36444
36436
|
overflow-x: hidden;
|
|
36445
|
-
width: ${
|
|
36437
|
+
width: ${234}px;
|
|
36446
36438
|
|
|
36447
36439
|
.o-color-picker-section-name {
|
|
36448
36440
|
margin: 0px ${ITEM_BORDER_WIDTH}px;
|
|
@@ -36468,8 +36460,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
36468
36460
|
}
|
|
36469
36461
|
}
|
|
36470
36462
|
.o-color-picker-line-item {
|
|
36471
|
-
width: ${
|
|
36472
|
-
height: ${
|
|
36463
|
+
width: ${20}px;
|
|
36464
|
+
height: ${20}px;
|
|
36473
36465
|
margin: 0px;
|
|
36474
36466
|
border-radius: 50px;
|
|
36475
36467
|
border: ${ITEM_BORDER_WIDTH}px solid #666666;
|
|
@@ -36513,13 +36505,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
36513
36505
|
}
|
|
36514
36506
|
|
|
36515
36507
|
.o-custom-selector {
|
|
36516
|
-
padding: ${
|
|
36508
|
+
padding: ${10}px ${PICKER_PADDING}px;
|
|
36517
36509
|
position: relative;
|
|
36518
36510
|
.o-gradient {
|
|
36519
36511
|
margin-bottom: ${MAGNIFIER_EDGE / 2}px;
|
|
36520
36512
|
border: ${ITEM_BORDER_WIDTH}px solid #c0c0c0;
|
|
36521
|
-
width: ${
|
|
36522
|
-
height: ${
|
|
36513
|
+
width: ${218}px;
|
|
36514
|
+
height: ${188}px;
|
|
36523
36515
|
position: relative;
|
|
36524
36516
|
}
|
|
36525
36517
|
|
|
@@ -36657,8 +36649,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
36657
36649
|
const left = Math.round(INNER_GRADIENT_WIDTH * clip(s / 100, 0, 1));
|
|
36658
36650
|
const top = Math.round(INNER_GRADIENT_HEIGHT * clip(1 - 2 * l / (200 - s), 0, 1));
|
|
36659
36651
|
return cssPropertiesToCss({
|
|
36660
|
-
left: `${-
|
|
36661
|
-
top: `${-
|
|
36652
|
+
left: `${-16 / 2 + left}px`,
|
|
36653
|
+
top: `${-16 / 2 + top}px`,
|
|
36662
36654
|
background: hslaToHex(this.state.currentHslaColor)
|
|
36663
36655
|
});
|
|
36664
36656
|
}
|
|
@@ -43555,8 +43547,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
43555
43547
|
sortedColumn;
|
|
43556
43548
|
constructor(definition, fields) {
|
|
43557
43549
|
this.measures = definition.measures.map((measure) => createMeasure(fields, measure));
|
|
43558
|
-
this.columns = definition.columns.map((dimension) => createPivotDimension(fields, dimension));
|
|
43559
|
-
this.rows = definition.rows.map((dimension) => createPivotDimension(fields, dimension));
|
|
43550
|
+
this.columns = definition.columns.map((dimension) => this.createPivotDimension(fields, dimension));
|
|
43551
|
+
this.rows = definition.rows.map((dimension) => this.createPivotDimension(fields, dimension));
|
|
43560
43552
|
this.sortedColumn = definition.sortedColumn;
|
|
43561
43553
|
}
|
|
43562
43554
|
getDimension(nameWithGranularity) {
|
|
@@ -43569,6 +43561,40 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
43569
43561
|
if (!measure) throw new EvaluationError(_t("Field %s is not a measure", id));
|
|
43570
43562
|
return measure;
|
|
43571
43563
|
}
|
|
43564
|
+
createPivotDimension(fields, dimension) {
|
|
43565
|
+
const field = fields[dimension.fieldName];
|
|
43566
|
+
const type = field?.type ?? "integer";
|
|
43567
|
+
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
43568
|
+
return {
|
|
43569
|
+
/**
|
|
43570
|
+
* Get the display name of the dimension
|
|
43571
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
43572
|
+
*/
|
|
43573
|
+
displayName: field?.string ?? dimension.fieldName,
|
|
43574
|
+
/**
|
|
43575
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
43576
|
+
* e.g. "stage_id", "create_date:month"
|
|
43577
|
+
*/
|
|
43578
|
+
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
43579
|
+
/**
|
|
43580
|
+
* Get the name of the field of the dimension
|
|
43581
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
43582
|
+
*/
|
|
43583
|
+
fieldName: dimension.fieldName,
|
|
43584
|
+
/**
|
|
43585
|
+
* Get the aggregate operator of the dimension
|
|
43586
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
43587
|
+
*/
|
|
43588
|
+
granularity,
|
|
43589
|
+
/**
|
|
43590
|
+
* Get the type of the field of the dimension
|
|
43591
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
43592
|
+
*/
|
|
43593
|
+
type,
|
|
43594
|
+
order: dimension.order,
|
|
43595
|
+
isValid: !!field
|
|
43596
|
+
};
|
|
43597
|
+
}
|
|
43572
43598
|
};
|
|
43573
43599
|
function createMeasure(fields, measure) {
|
|
43574
43600
|
const fieldName = measure.fieldName;
|
|
@@ -43612,40 +43638,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
43612
43638
|
display: measure.display
|
|
43613
43639
|
};
|
|
43614
43640
|
}
|
|
43615
|
-
function createPivotDimension(fields, dimension) {
|
|
43616
|
-
const field = fields[dimension.fieldName];
|
|
43617
|
-
const type = field?.type ?? "integer";
|
|
43618
|
-
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
43619
|
-
return {
|
|
43620
|
-
/**
|
|
43621
|
-
* Get the display name of the dimension
|
|
43622
|
-
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
43623
|
-
*/
|
|
43624
|
-
displayName: field?.string ?? dimension.fieldName,
|
|
43625
|
-
/**
|
|
43626
|
-
* Get the name of the dimension, as it is stored in the pivot formula
|
|
43627
|
-
* e.g. "stage_id", "create_date:month"
|
|
43628
|
-
*/
|
|
43629
|
-
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
43630
|
-
/**
|
|
43631
|
-
* Get the name of the field of the dimension
|
|
43632
|
-
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
43633
|
-
*/
|
|
43634
|
-
fieldName: dimension.fieldName,
|
|
43635
|
-
/**
|
|
43636
|
-
* Get the aggregate operator of the dimension
|
|
43637
|
-
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
43638
|
-
*/
|
|
43639
|
-
granularity,
|
|
43640
|
-
/**
|
|
43641
|
-
* Get the type of the field of the dimension
|
|
43642
|
-
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
43643
|
-
*/
|
|
43644
|
-
type,
|
|
43645
|
-
order: dimension.order,
|
|
43646
|
-
isValid: !!field
|
|
43647
|
-
};
|
|
43648
|
-
}
|
|
43649
43641
|
|
|
43650
43642
|
//#endregion
|
|
43651
43643
|
//#region src/helpers/pivot/spreadsheet_pivot/runtime_definition_spreadsheet_pivot.ts
|
|
@@ -46340,11 +46332,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
46340
46332
|
getResizerPosition(resizer) {
|
|
46341
46333
|
const anchorCenteringOffset = (ANCHOR_SIZE - ACTIVE_BORDER_WIDTH) / 2;
|
|
46342
46334
|
const style = {};
|
|
46343
|
-
if (resizer.includes("top")) style.top =
|
|
46344
|
-
else if (resizer.includes("bottom")) style.bottom =
|
|
46335
|
+
if (resizer.includes("top")) style.top = `-3px`;
|
|
46336
|
+
else if (resizer.includes("bottom")) style.bottom = `-3px`;
|
|
46345
46337
|
else style.bottom = `calc(50% - ${anchorCenteringOffset}px)`;
|
|
46346
|
-
if (resizer.includes("left")) style.left =
|
|
46347
|
-
else if (resizer.includes("right")) style.right =
|
|
46338
|
+
if (resizer.includes("left")) style.left = `-3px`;
|
|
46339
|
+
else if (resizer.includes("right")) style.right = `-3px`;
|
|
46348
46340
|
else style.right = `calc(50% - ${anchorCenteringOffset}px)`;
|
|
46349
46341
|
return cssPropertiesToCss(style);
|
|
46350
46342
|
}
|
|
@@ -57627,6 +57619,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57627
57619
|
case "CREATE_CHART":
|
|
57628
57620
|
this.tryToAddColors(this.getChartColors(cmd.figureId));
|
|
57629
57621
|
break;
|
|
57622
|
+
case "COLOR_SHEET":
|
|
57623
|
+
if (cmd.color) this.tryToAddColors([cmd.color]);
|
|
57624
|
+
break;
|
|
57630
57625
|
case "UPDATE_CELL":
|
|
57631
57626
|
case "ADD_CONDITIONAL_FORMAT":
|
|
57632
57627
|
case "SET_BORDER":
|
|
@@ -57649,8 +57644,12 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57649
57644
|
}
|
|
57650
57645
|
computeCustomColors() {
|
|
57651
57646
|
let usedColors = [];
|
|
57652
|
-
for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
|
|
57653
|
-
return [
|
|
57647
|
+
for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getSheetColors(sheetId), this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
|
|
57648
|
+
return [.../* @__PURE__ */ new Set([...usedColors])];
|
|
57649
|
+
}
|
|
57650
|
+
getSheetColors(sheetId) {
|
|
57651
|
+
const sheet = this.getters.getSheet(sheetId);
|
|
57652
|
+
return sheet.color ? [sheet.color] : [];
|
|
57654
57653
|
}
|
|
57655
57654
|
getColorsFromCells(sheetId) {
|
|
57656
57655
|
const cells = Object.values(this.getters.getCells(sheetId));
|
|
@@ -61996,7 +61995,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61996
61995
|
};
|
|
61997
61996
|
}
|
|
61998
61997
|
};
|
|
61999
|
-
const invalidateTableStyleCommandsSet = new Set([
|
|
61998
|
+
const invalidateTableStyleCommandsSet = /* @__PURE__ */ new Set([
|
|
62000
61999
|
"HIDE_COLUMNS_ROWS",
|
|
62001
62000
|
"UNHIDE_COLUMNS_ROWS",
|
|
62002
62001
|
"UNFOLD_HEADER_GROUP",
|
|
@@ -64157,14 +64156,14 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
64157
64156
|
adjustPositionX(targetCol) {
|
|
64158
64157
|
const sheetId = this.sheetId;
|
|
64159
64158
|
const { start, end } = this.getters.getColDimensions(sheetId, targetCol);
|
|
64160
|
-
if (this.offsetX + this.viewportWidth + this.offsetCorrectionX < end) this.offsetX = end - this.viewportWidth;
|
|
64159
|
+
if (this.offsetX + this.viewportWidth + this.offsetCorrectionX < end) this.offsetX = end - this.viewportWidth - this.offsetCorrectionX;
|
|
64161
64160
|
else if (this.offsetX + this.offsetCorrectionX > start) this.offsetX = start - this.offsetCorrectionX;
|
|
64162
64161
|
this.adjustViewportZoneX();
|
|
64163
64162
|
}
|
|
64164
64163
|
adjustPositionY(targetRow) {
|
|
64165
64164
|
const sheetId = this.sheetId;
|
|
64166
64165
|
const { start, end } = this.getters.getRowDimensions(sheetId, targetRow);
|
|
64167
|
-
if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) this.offsetY = end - this.viewportHeight;
|
|
64166
|
+
if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) this.offsetY = end - this.viewportHeight - this.offsetCorrectionY;
|
|
64168
64167
|
else if (this.offsetY + this.offsetCorrectionY > start) this.offsetY = start - this.offsetCorrectionY;
|
|
64169
64168
|
this.adjustViewportZoneY();
|
|
64170
64169
|
}
|
|
@@ -65557,11 +65556,14 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65557
65556
|
}
|
|
65558
65557
|
});
|
|
65559
65558
|
this.DOMFocusableElementStore = useStore(DOMFocusableElementStore);
|
|
65560
|
-
(0, _odoo_owl.useExternalListener)(window, "click", ()
|
|
65559
|
+
(0, _odoo_owl.useExternalListener)(window, "click", this.onExternalClick.bind(this), { capture: true });
|
|
65561
65560
|
(0, _odoo_owl.useEffect)((sheetId) => {
|
|
65562
65561
|
if (this.props.sheetId === sheetId) this.scrollToSheet();
|
|
65563
65562
|
}, () => [this.env.model.getters.getActiveSheetId()]);
|
|
65564
65563
|
}
|
|
65564
|
+
onExternalClick(ev) {
|
|
65565
|
+
if (!ev.target.closest(".o-color-picker")) this.state.pickerOpened = false;
|
|
65566
|
+
}
|
|
65565
65567
|
focusInputAndSelectContent() {
|
|
65566
65568
|
if (!this.state.isEditing || !this.sheetNameRef.el) return;
|
|
65567
65569
|
this.sheetNameRef.el.focus();
|
|
@@ -65658,6 +65660,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65658
65660
|
},
|
|
65659
65661
|
openSheetColorPickerCallback: () => {
|
|
65660
65662
|
this.state.pickerOpened = true;
|
|
65663
|
+
const sheet = this.env.model.getters.getSheet(this.props.sheetId);
|
|
65664
|
+
this.state.currentPickerColor = sheet.color;
|
|
65661
65665
|
}
|
|
65662
65666
|
});
|
|
65663
65667
|
}
|
|
@@ -69842,11 +69846,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
69842
69846
|
<!-- each data marker in the series does not have a different color -->
|
|
69843
69847
|
<c:varyColors val="0"/>
|
|
69844
69848
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
69845
|
-
<c:axId val="${
|
|
69846
|
-
<c:axId val="${
|
|
69849
|
+
<c:axId val="${17781238}" />
|
|
69850
|
+
<c:axId val="${88853994}" />
|
|
69847
69851
|
</c:barChart>
|
|
69848
|
-
${addAx("b", "c:catAx",
|
|
69849
|
-
${addAx("r", "c:valAx",
|
|
69852
|
+
${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
69853
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
69850
69854
|
` : ""}`;
|
|
69851
69855
|
}
|
|
69852
69856
|
function addComboChart(chart) {
|
|
@@ -70001,11 +70005,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
70001
70005
|
<!-- each data marker in the series does not have a different color -->
|
|
70002
70006
|
<c:varyColors val="0"/>
|
|
70003
70007
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
70004
|
-
<c:axId val="${
|
|
70005
|
-
<c:axId val="${
|
|
70008
|
+
<c:axId val="${17781238}" />
|
|
70009
|
+
<c:axId val="${88853994}" />
|
|
70006
70010
|
</c:lineChart>
|
|
70007
|
-
${addAx("b", "c:catAx",
|
|
70008
|
-
${addAx("r", "c:valAx",
|
|
70011
|
+
${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
70012
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
70009
70013
|
` : ""}
|
|
70010
70014
|
`;
|
|
70011
70015
|
}
|
|
@@ -70067,11 +70071,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
70067
70071
|
<c:varyColors val="0"/>
|
|
70068
70072
|
<c:scatterStyle val="lineMarker"/>
|
|
70069
70073
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
70070
|
-
<c:axId val="${
|
|
70071
|
-
<c:axId val="${
|
|
70074
|
+
<c:axId val="${17781238}" />
|
|
70075
|
+
<c:axId val="${88853994}" />
|
|
70072
70076
|
</c:scatterChart>
|
|
70073
|
-
${addAx("b", "c:valAx",
|
|
70074
|
-
${addAx("r", "c:valAx",
|
|
70077
|
+
${addAx("b", "c:valAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
70078
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
70075
70079
|
` : ""}`;
|
|
70076
70080
|
}
|
|
70077
70081
|
function addRadarChart(chart) {
|
|
@@ -72282,8 +72286,8 @@ exports.stores = stores;
|
|
|
72282
72286
|
exports.tokenColors = tokenColors;
|
|
72283
72287
|
exports.tokenize = tokenize;
|
|
72284
72288
|
|
|
72285
|
-
__info__.version = "18.3.
|
|
72286
|
-
__info__.date = "2026-
|
|
72287
|
-
__info__.hash = "
|
|
72289
|
+
__info__.version = "18.3.54";
|
|
72290
|
+
__info__.date = "2026-07-01T05:01:44.424Z";
|
|
72291
|
+
__info__.hash = "d00e4b6";
|
|
72288
72292
|
|
|
72289
72293
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|