@odoo/o-spreadsheet 19.4.10 → 19.4.11
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 +303 -279
- package/dist/o_spreadsheet.css +6 -6
- package/dist/o_spreadsheet.esm.js +303 -279
- package/dist/o_spreadsheet.iife.js +303 -279
- package/dist/o_spreadsheet.min.iife.js +255 -255
- package/dist/o_spreadsheet.xml +6 -6
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/helpers/text_helper.d.ts +4 -0
- package/dist/types/plugins/core/carousel.d.ts +1 -1
- package/package.json +1 -1
package/dist/o_spreadsheet.cjs
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
|
-
* @version 19.4.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.4.11
|
|
6
|
+
* @date 2026-09-04T07:50:39.272Z
|
|
7
|
+
* @hash 7660254
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -446,6 +446,7 @@ const FILTERS_COLOR = "#188038";
|
|
|
446
446
|
const COMPOSER_ASSISTANT_COLOR = "light-dark(#9B359B, #B972A6)";
|
|
447
447
|
const COLOR_TRANSPARENT = "#00000000";
|
|
448
448
|
const TABLE_HOVER_BACKGROUND_COLOR = "#017E8414";
|
|
449
|
+
const DEFAULT_CHART_BACKGROUND_COLOR = "#FFFFFF";
|
|
449
450
|
const CHART_WATERFALL_POSITIVE_COLOR = "#4EA7F2";
|
|
450
451
|
const CHART_WATERFALL_NEGATIVE_COLOR = "#EA6175";
|
|
451
452
|
const CHART_WATERFALL_SUBTOTAL_COLOR = "#AAAAAA";
|
|
@@ -8993,6 +8994,259 @@ const chartMinorGridPlugin = {
|
|
|
8993
8994
|
}
|
|
8994
8995
|
};
|
|
8995
8996
|
|
|
8997
|
+
//#endregion
|
|
8998
|
+
//#region src/xlsx/constants.ts
|
|
8999
|
+
/** In XLSX color format (no #) */
|
|
9000
|
+
const AUTO_COLOR = "000000";
|
|
9001
|
+
const XLSX_ICONSET_MAP = {
|
|
9002
|
+
arrows: "3Arrows",
|
|
9003
|
+
smiley: "3Symbols",
|
|
9004
|
+
dots: "3TrafficLights1"
|
|
9005
|
+
};
|
|
9006
|
+
const NAMESPACE = {
|
|
9007
|
+
styleSheet: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
9008
|
+
sst: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
9009
|
+
Relationships: "http://schemas.openxmlformats.org/package/2006/relationships",
|
|
9010
|
+
Types: "http://schemas.openxmlformats.org/package/2006/content-types",
|
|
9011
|
+
worksheet: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
9012
|
+
workbook: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
9013
|
+
drawing: "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing",
|
|
9014
|
+
table: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
9015
|
+
revision: "http://schemas.microsoft.com/office/spreadsheetml/2014/revision",
|
|
9016
|
+
revision3: "http://schemas.microsoft.com/office/spreadsheetml/2016/revision3",
|
|
9017
|
+
markupCompatibility: "http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
9018
|
+
};
|
|
9019
|
+
const DRAWING_NS_A = "http://schemas.openxmlformats.org/drawingml/2006/main";
|
|
9020
|
+
const DRAWING_NS_C = "http://schemas.openxmlformats.org/drawingml/2006/chart";
|
|
9021
|
+
const CONTENT_TYPES = {
|
|
9022
|
+
workbook: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",
|
|
9023
|
+
macroEnabledWorkbook: "application/vnd.ms-excel.sheet.macroEnabled.main+xml",
|
|
9024
|
+
templateWorkbook: "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml",
|
|
9025
|
+
macroEnabledTemplateWorkbook: "application/vnd.ms-excel.template.macroEnabled.main+xml",
|
|
9026
|
+
excelAddInWorkbook: "application/vnd.ms-excel.addin.macroEnabled.main+xml",
|
|
9027
|
+
sheet: "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",
|
|
9028
|
+
metadata: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml",
|
|
9029
|
+
sharedStrings: "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",
|
|
9030
|
+
styles: "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",
|
|
9031
|
+
drawing: "application/vnd.openxmlformats-officedocument.drawing+xml",
|
|
9032
|
+
chart: "application/vnd.openxmlformats-officedocument.drawingml.chart+xml",
|
|
9033
|
+
themes: "application/vnd.openxmlformats-officedocument.theme+xml",
|
|
9034
|
+
table: "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml",
|
|
9035
|
+
pivot: "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml",
|
|
9036
|
+
externalLink: "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml"
|
|
9037
|
+
};
|
|
9038
|
+
const XLSX_RELATION_TYPE = {
|
|
9039
|
+
document: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",
|
|
9040
|
+
sheet: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet",
|
|
9041
|
+
metadata: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata",
|
|
9042
|
+
sharedStrings: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",
|
|
9043
|
+
styles: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",
|
|
9044
|
+
drawing: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",
|
|
9045
|
+
chart: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",
|
|
9046
|
+
theme: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
|
|
9047
|
+
table: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/table",
|
|
9048
|
+
hyperlink: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",
|
|
9049
|
+
image: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"
|
|
9050
|
+
};
|
|
9051
|
+
const ARRAY_FORMULA_URI = "bdbb8cdc-fa1e-496e-a857-3c3f30c029c3";
|
|
9052
|
+
const RELATIONSHIP_NSR = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
|
|
9053
|
+
const HEIGHT_FACTOR = .75;
|
|
9054
|
+
/**
|
|
9055
|
+
* Excel says its default column width is 8.43 characters (64px)
|
|
9056
|
+
* which makes WIDTH_FACTOR = 0.1317, but it doesn't work well
|
|
9057
|
+
* 0.143 is a value from dev's experiments.
|
|
9058
|
+
*/
|
|
9059
|
+
const WIDTH_FACTOR = .143;
|
|
9060
|
+
/** unit : maximum number of characters a column can hold at the standard font size. What. */
|
|
9061
|
+
const EXCEL_DEFAULT_COL_WIDTH = 8.43;
|
|
9062
|
+
/** unit : points */
|
|
9063
|
+
const EXCEL_DEFAULT_ROW_HEIGHT = 12.75;
|
|
9064
|
+
const FORCE_DEFAULT_ARGS_FUNCTIONS = {
|
|
9065
|
+
FLOOR: [{
|
|
9066
|
+
type: "NUMBER",
|
|
9067
|
+
value: 1
|
|
9068
|
+
}],
|
|
9069
|
+
CEILING: [{
|
|
9070
|
+
type: "NUMBER",
|
|
9071
|
+
value: 1
|
|
9072
|
+
}],
|
|
9073
|
+
ROUND: [{
|
|
9074
|
+
type: "NUMBER",
|
|
9075
|
+
value: 0
|
|
9076
|
+
}],
|
|
9077
|
+
ROUNDUP: [{
|
|
9078
|
+
type: "NUMBER",
|
|
9079
|
+
value: 0
|
|
9080
|
+
}],
|
|
9081
|
+
ROUNDDOWN: [{
|
|
9082
|
+
type: "NUMBER",
|
|
9083
|
+
value: 0
|
|
9084
|
+
}],
|
|
9085
|
+
IFERROR: [{
|
|
9086
|
+
type: "NUMBER",
|
|
9087
|
+
value: 0
|
|
9088
|
+
}]
|
|
9089
|
+
};
|
|
9090
|
+
/**
|
|
9091
|
+
* This list contains all "future" functions that are not compatible with older versions of Excel
|
|
9092
|
+
* For more information, see https://docs.microsoft.com/en-us/openspecs/office_standards/ms-xlsx/5d1b6d44-6fc1-4ecd-8fef-0b27406cc2bf
|
|
9093
|
+
*/
|
|
9094
|
+
const NON_RETROCOMPATIBLE_FUNCTIONS = [
|
|
9095
|
+
"ACOT",
|
|
9096
|
+
"ACOTH",
|
|
9097
|
+
"AGGREGATE",
|
|
9098
|
+
"ARABIC",
|
|
9099
|
+
"BASE",
|
|
9100
|
+
"BETA.DIST",
|
|
9101
|
+
"BETA.INV",
|
|
9102
|
+
"BINOM.DIST",
|
|
9103
|
+
"BINOM.DIST.RANGE",
|
|
9104
|
+
"BINOM.INV",
|
|
9105
|
+
"BITAND",
|
|
9106
|
+
"BITLSHIFT",
|
|
9107
|
+
"BITOR",
|
|
9108
|
+
"BITRSHIFT",
|
|
9109
|
+
"BITXOR",
|
|
9110
|
+
"BYCOL",
|
|
9111
|
+
"BYROW",
|
|
9112
|
+
"CEILING.MATH",
|
|
9113
|
+
"CEILING.PRECISE",
|
|
9114
|
+
"CHISQ.DIST",
|
|
9115
|
+
"CHISQ.DIST.RT",
|
|
9116
|
+
"CHISQ.INV",
|
|
9117
|
+
"CHISQ.INV.RT",
|
|
9118
|
+
"CHISQ.TEST",
|
|
9119
|
+
"CHOOSECOLS",
|
|
9120
|
+
"CHOOSEROWS",
|
|
9121
|
+
"COMBINA",
|
|
9122
|
+
"CONCAT",
|
|
9123
|
+
"CONFIDENCE.NORM",
|
|
9124
|
+
"CONFIDENCE.T",
|
|
9125
|
+
"COT",
|
|
9126
|
+
"COTH",
|
|
9127
|
+
"COVARIANCE.P",
|
|
9128
|
+
"COVARIANCE.S",
|
|
9129
|
+
"CSC",
|
|
9130
|
+
"CSCH",
|
|
9131
|
+
"DAYS",
|
|
9132
|
+
"DECIMAL",
|
|
9133
|
+
"DROP",
|
|
9134
|
+
"ERF.PRECISE",
|
|
9135
|
+
"ERFC.PRECISE",
|
|
9136
|
+
"EXPAND",
|
|
9137
|
+
"EXPON.DIST",
|
|
9138
|
+
"F.DIST",
|
|
9139
|
+
"F.DIST.RT",
|
|
9140
|
+
"F.INV",
|
|
9141
|
+
"F.INV.RT",
|
|
9142
|
+
"F.TEST",
|
|
9143
|
+
"FIELDVALUE",
|
|
9144
|
+
"FILTERXML",
|
|
9145
|
+
"FLOOR.MATH",
|
|
9146
|
+
"FLOOR.PRECISE",
|
|
9147
|
+
"FORECAST.ETS",
|
|
9148
|
+
"FORECAST.ETS.CONFINT",
|
|
9149
|
+
"FORECAST.ETS.SEASONALITY",
|
|
9150
|
+
"FORECAST.ETS.STAT",
|
|
9151
|
+
"FORECAST.LINEAR",
|
|
9152
|
+
"FORMULATEXT",
|
|
9153
|
+
"GAMMA",
|
|
9154
|
+
"GAMMA.DIST",
|
|
9155
|
+
"GAMMA.INV",
|
|
9156
|
+
"GAMMALN.PRECISE",
|
|
9157
|
+
"GAUSS",
|
|
9158
|
+
"HSTACK",
|
|
9159
|
+
"HYPGEOM.DIST",
|
|
9160
|
+
"IFNA",
|
|
9161
|
+
"IFS",
|
|
9162
|
+
"IMCOSH",
|
|
9163
|
+
"IMCOT",
|
|
9164
|
+
"IMCSC",
|
|
9165
|
+
"IMCSCH",
|
|
9166
|
+
"IMSEC",
|
|
9167
|
+
"IMSECH",
|
|
9168
|
+
"IMSINH",
|
|
9169
|
+
"IMTAN",
|
|
9170
|
+
"ISFORMULA",
|
|
9171
|
+
"ISOMITTED",
|
|
9172
|
+
"ISOWEEKNUM",
|
|
9173
|
+
"LAMBDA",
|
|
9174
|
+
"LET",
|
|
9175
|
+
"LOGNORM.DIST",
|
|
9176
|
+
"LOGNORM.INV",
|
|
9177
|
+
"MAKEARRAY",
|
|
9178
|
+
"MAP",
|
|
9179
|
+
"MAXIFS",
|
|
9180
|
+
"MINIFS",
|
|
9181
|
+
"MODE.MULT",
|
|
9182
|
+
"MODE.SNGL",
|
|
9183
|
+
"MUNIT",
|
|
9184
|
+
"NEGBINOM.DIST",
|
|
9185
|
+
"NORM.DIST",
|
|
9186
|
+
"NORM.INV",
|
|
9187
|
+
"NORM.S.DIST",
|
|
9188
|
+
"NORM.S.INV",
|
|
9189
|
+
"NUMBERVALUE",
|
|
9190
|
+
"PDURATION",
|
|
9191
|
+
"PERCENTILE.EXC",
|
|
9192
|
+
"PERCENTILE.INC",
|
|
9193
|
+
"PERCENTRANK.EXC",
|
|
9194
|
+
"PERCENTRANK.INC",
|
|
9195
|
+
"PERMUTATIONA",
|
|
9196
|
+
"PHI",
|
|
9197
|
+
"POISSON.DIST",
|
|
9198
|
+
"PQSOURCE",
|
|
9199
|
+
"PYTHON_STR",
|
|
9200
|
+
"PYTHON_TYPE",
|
|
9201
|
+
"PYTHON_TYPENAME",
|
|
9202
|
+
"QUARTILE.EXC",
|
|
9203
|
+
"QUARTILE.INC",
|
|
9204
|
+
"QUERYSTRING",
|
|
9205
|
+
"RANDARRAY",
|
|
9206
|
+
"RANK.AVG",
|
|
9207
|
+
"RANK.EQ",
|
|
9208
|
+
"REDUCE",
|
|
9209
|
+
"RRI",
|
|
9210
|
+
"SCAN",
|
|
9211
|
+
"SEC",
|
|
9212
|
+
"SECH",
|
|
9213
|
+
"SEQUENCE",
|
|
9214
|
+
"SHEET",
|
|
9215
|
+
"SHEETS",
|
|
9216
|
+
"SKEW.P",
|
|
9217
|
+
"SORTBY",
|
|
9218
|
+
"STDEV.P",
|
|
9219
|
+
"STDEV.S",
|
|
9220
|
+
"SWITCH",
|
|
9221
|
+
"T.DIST",
|
|
9222
|
+
"T.DIST.2T",
|
|
9223
|
+
"T.DIST.RT",
|
|
9224
|
+
"T.INV",
|
|
9225
|
+
"T.INV.2T",
|
|
9226
|
+
"T.TEST",
|
|
9227
|
+
"TAKE",
|
|
9228
|
+
"TEXTAFTER",
|
|
9229
|
+
"TEXTBEFORE",
|
|
9230
|
+
"TEXTJOIN",
|
|
9231
|
+
"TEXTSPLIT",
|
|
9232
|
+
"TOCOL",
|
|
9233
|
+
"TOROW",
|
|
9234
|
+
"UNICHAR",
|
|
9235
|
+
"UNICODE",
|
|
9236
|
+
"UNIQUE",
|
|
9237
|
+
"VAR.P",
|
|
9238
|
+
"VAR.S",
|
|
9239
|
+
"VSTACK",
|
|
9240
|
+
"WEBSERVICE",
|
|
9241
|
+
"WEIBULL.DIST",
|
|
9242
|
+
"WRAPCOLS",
|
|
9243
|
+
"WRAPROWS",
|
|
9244
|
+
"XLOOKUP",
|
|
9245
|
+
"XOR",
|
|
9246
|
+
"Z.TEST"
|
|
9247
|
+
];
|
|
9248
|
+
const CONTENT_TYPES_FILE = "[Content_Types].xml";
|
|
9249
|
+
|
|
8996
9250
|
//#endregion
|
|
8997
9251
|
//#region src/helpers/color.ts
|
|
8998
9252
|
const RBA_REGEX = /rgba?\(|\s+|\)/gi;
|
|
@@ -9694,259 +9948,6 @@ function colorCell(value, minValue, minColor, colorDiffUnit) {
|
|
|
9694
9948
|
return r << 16 | g << 8 | b;
|
|
9695
9949
|
}
|
|
9696
9950
|
|
|
9697
|
-
//#endregion
|
|
9698
|
-
//#region src/xlsx/constants.ts
|
|
9699
|
-
/** In XLSX color format (no #) */
|
|
9700
|
-
const AUTO_COLOR = "000000";
|
|
9701
|
-
const XLSX_ICONSET_MAP = {
|
|
9702
|
-
arrows: "3Arrows",
|
|
9703
|
-
smiley: "3Symbols",
|
|
9704
|
-
dots: "3TrafficLights1"
|
|
9705
|
-
};
|
|
9706
|
-
const NAMESPACE = {
|
|
9707
|
-
styleSheet: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
9708
|
-
sst: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
9709
|
-
Relationships: "http://schemas.openxmlformats.org/package/2006/relationships",
|
|
9710
|
-
Types: "http://schemas.openxmlformats.org/package/2006/content-types",
|
|
9711
|
-
worksheet: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
9712
|
-
workbook: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
9713
|
-
drawing: "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing",
|
|
9714
|
-
table: "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
9715
|
-
revision: "http://schemas.microsoft.com/office/spreadsheetml/2014/revision",
|
|
9716
|
-
revision3: "http://schemas.microsoft.com/office/spreadsheetml/2016/revision3",
|
|
9717
|
-
markupCompatibility: "http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
9718
|
-
};
|
|
9719
|
-
const DRAWING_NS_A = "http://schemas.openxmlformats.org/drawingml/2006/main";
|
|
9720
|
-
const DRAWING_NS_C = "http://schemas.openxmlformats.org/drawingml/2006/chart";
|
|
9721
|
-
const CONTENT_TYPES = {
|
|
9722
|
-
workbook: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",
|
|
9723
|
-
macroEnabledWorkbook: "application/vnd.ms-excel.sheet.macroEnabled.main+xml",
|
|
9724
|
-
templateWorkbook: "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml",
|
|
9725
|
-
macroEnabledTemplateWorkbook: "application/vnd.ms-excel.template.macroEnabled.main+xml",
|
|
9726
|
-
excelAddInWorkbook: "application/vnd.ms-excel.addin.macroEnabled.main+xml",
|
|
9727
|
-
sheet: "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",
|
|
9728
|
-
metadata: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml",
|
|
9729
|
-
sharedStrings: "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",
|
|
9730
|
-
styles: "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",
|
|
9731
|
-
drawing: "application/vnd.openxmlformats-officedocument.drawing+xml",
|
|
9732
|
-
chart: "application/vnd.openxmlformats-officedocument.drawingml.chart+xml",
|
|
9733
|
-
themes: "application/vnd.openxmlformats-officedocument.theme+xml",
|
|
9734
|
-
table: "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml",
|
|
9735
|
-
pivot: "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml",
|
|
9736
|
-
externalLink: "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml"
|
|
9737
|
-
};
|
|
9738
|
-
const XLSX_RELATION_TYPE = {
|
|
9739
|
-
document: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",
|
|
9740
|
-
sheet: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet",
|
|
9741
|
-
metadata: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata",
|
|
9742
|
-
sharedStrings: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",
|
|
9743
|
-
styles: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",
|
|
9744
|
-
drawing: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",
|
|
9745
|
-
chart: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",
|
|
9746
|
-
theme: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
|
|
9747
|
-
table: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/table",
|
|
9748
|
-
hyperlink: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",
|
|
9749
|
-
image: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"
|
|
9750
|
-
};
|
|
9751
|
-
const ARRAY_FORMULA_URI = "bdbb8cdc-fa1e-496e-a857-3c3f30c029c3";
|
|
9752
|
-
const RELATIONSHIP_NSR = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
|
|
9753
|
-
const HEIGHT_FACTOR = .75;
|
|
9754
|
-
/**
|
|
9755
|
-
* Excel says its default column width is 8.43 characters (64px)
|
|
9756
|
-
* which makes WIDTH_FACTOR = 0.1317, but it doesn't work well
|
|
9757
|
-
* 0.143 is a value from dev's experiments.
|
|
9758
|
-
*/
|
|
9759
|
-
const WIDTH_FACTOR = .143;
|
|
9760
|
-
/** unit : maximum number of characters a column can hold at the standard font size. What. */
|
|
9761
|
-
const EXCEL_DEFAULT_COL_WIDTH = 8.43;
|
|
9762
|
-
/** unit : points */
|
|
9763
|
-
const EXCEL_DEFAULT_ROW_HEIGHT = 12.75;
|
|
9764
|
-
const FORCE_DEFAULT_ARGS_FUNCTIONS = {
|
|
9765
|
-
FLOOR: [{
|
|
9766
|
-
type: "NUMBER",
|
|
9767
|
-
value: 1
|
|
9768
|
-
}],
|
|
9769
|
-
CEILING: [{
|
|
9770
|
-
type: "NUMBER",
|
|
9771
|
-
value: 1
|
|
9772
|
-
}],
|
|
9773
|
-
ROUND: [{
|
|
9774
|
-
type: "NUMBER",
|
|
9775
|
-
value: 0
|
|
9776
|
-
}],
|
|
9777
|
-
ROUNDUP: [{
|
|
9778
|
-
type: "NUMBER",
|
|
9779
|
-
value: 0
|
|
9780
|
-
}],
|
|
9781
|
-
ROUNDDOWN: [{
|
|
9782
|
-
type: "NUMBER",
|
|
9783
|
-
value: 0
|
|
9784
|
-
}],
|
|
9785
|
-
IFERROR: [{
|
|
9786
|
-
type: "NUMBER",
|
|
9787
|
-
value: 0
|
|
9788
|
-
}]
|
|
9789
|
-
};
|
|
9790
|
-
/**
|
|
9791
|
-
* This list contains all "future" functions that are not compatible with older versions of Excel
|
|
9792
|
-
* For more information, see https://docs.microsoft.com/en-us/openspecs/office_standards/ms-xlsx/5d1b6d44-6fc1-4ecd-8fef-0b27406cc2bf
|
|
9793
|
-
*/
|
|
9794
|
-
const NON_RETROCOMPATIBLE_FUNCTIONS = [
|
|
9795
|
-
"ACOT",
|
|
9796
|
-
"ACOTH",
|
|
9797
|
-
"AGGREGATE",
|
|
9798
|
-
"ARABIC",
|
|
9799
|
-
"BASE",
|
|
9800
|
-
"BETA.DIST",
|
|
9801
|
-
"BETA.INV",
|
|
9802
|
-
"BINOM.DIST",
|
|
9803
|
-
"BINOM.DIST.RANGE",
|
|
9804
|
-
"BINOM.INV",
|
|
9805
|
-
"BITAND",
|
|
9806
|
-
"BITLSHIFT",
|
|
9807
|
-
"BITOR",
|
|
9808
|
-
"BITRSHIFT",
|
|
9809
|
-
"BITXOR",
|
|
9810
|
-
"BYCOL",
|
|
9811
|
-
"BYROW",
|
|
9812
|
-
"CEILING.MATH",
|
|
9813
|
-
"CEILING.PRECISE",
|
|
9814
|
-
"CHISQ.DIST",
|
|
9815
|
-
"CHISQ.DIST.RT",
|
|
9816
|
-
"CHISQ.INV",
|
|
9817
|
-
"CHISQ.INV.RT",
|
|
9818
|
-
"CHISQ.TEST",
|
|
9819
|
-
"CHOOSECOLS",
|
|
9820
|
-
"CHOOSEROWS",
|
|
9821
|
-
"COMBINA",
|
|
9822
|
-
"CONCAT",
|
|
9823
|
-
"CONFIDENCE.NORM",
|
|
9824
|
-
"CONFIDENCE.T",
|
|
9825
|
-
"COT",
|
|
9826
|
-
"COTH",
|
|
9827
|
-
"COVARIANCE.P",
|
|
9828
|
-
"COVARIANCE.S",
|
|
9829
|
-
"CSC",
|
|
9830
|
-
"CSCH",
|
|
9831
|
-
"DAYS",
|
|
9832
|
-
"DECIMAL",
|
|
9833
|
-
"DROP",
|
|
9834
|
-
"ERF.PRECISE",
|
|
9835
|
-
"ERFC.PRECISE",
|
|
9836
|
-
"EXPAND",
|
|
9837
|
-
"EXPON.DIST",
|
|
9838
|
-
"F.DIST",
|
|
9839
|
-
"F.DIST.RT",
|
|
9840
|
-
"F.INV",
|
|
9841
|
-
"F.INV.RT",
|
|
9842
|
-
"F.TEST",
|
|
9843
|
-
"FIELDVALUE",
|
|
9844
|
-
"FILTERXML",
|
|
9845
|
-
"FLOOR.MATH",
|
|
9846
|
-
"FLOOR.PRECISE",
|
|
9847
|
-
"FORECAST.ETS",
|
|
9848
|
-
"FORECAST.ETS.CONFINT",
|
|
9849
|
-
"FORECAST.ETS.SEASONALITY",
|
|
9850
|
-
"FORECAST.ETS.STAT",
|
|
9851
|
-
"FORECAST.LINEAR",
|
|
9852
|
-
"FORMULATEXT",
|
|
9853
|
-
"GAMMA",
|
|
9854
|
-
"GAMMA.DIST",
|
|
9855
|
-
"GAMMA.INV",
|
|
9856
|
-
"GAMMALN.PRECISE",
|
|
9857
|
-
"GAUSS",
|
|
9858
|
-
"HSTACK",
|
|
9859
|
-
"HYPGEOM.DIST",
|
|
9860
|
-
"IFNA",
|
|
9861
|
-
"IFS",
|
|
9862
|
-
"IMCOSH",
|
|
9863
|
-
"IMCOT",
|
|
9864
|
-
"IMCSC",
|
|
9865
|
-
"IMCSCH",
|
|
9866
|
-
"IMSEC",
|
|
9867
|
-
"IMSECH",
|
|
9868
|
-
"IMSINH",
|
|
9869
|
-
"IMTAN",
|
|
9870
|
-
"ISFORMULA",
|
|
9871
|
-
"ISOMITTED",
|
|
9872
|
-
"ISOWEEKNUM",
|
|
9873
|
-
"LAMBDA",
|
|
9874
|
-
"LET",
|
|
9875
|
-
"LOGNORM.DIST",
|
|
9876
|
-
"LOGNORM.INV",
|
|
9877
|
-
"MAKEARRAY",
|
|
9878
|
-
"MAP",
|
|
9879
|
-
"MAXIFS",
|
|
9880
|
-
"MINIFS",
|
|
9881
|
-
"MODE.MULT",
|
|
9882
|
-
"MODE.SNGL",
|
|
9883
|
-
"MUNIT",
|
|
9884
|
-
"NEGBINOM.DIST",
|
|
9885
|
-
"NORM.DIST",
|
|
9886
|
-
"NORM.INV",
|
|
9887
|
-
"NORM.S.DIST",
|
|
9888
|
-
"NORM.S.INV",
|
|
9889
|
-
"NUMBERVALUE",
|
|
9890
|
-
"PDURATION",
|
|
9891
|
-
"PERCENTILE.EXC",
|
|
9892
|
-
"PERCENTILE.INC",
|
|
9893
|
-
"PERCENTRANK.EXC",
|
|
9894
|
-
"PERCENTRANK.INC",
|
|
9895
|
-
"PERMUTATIONA",
|
|
9896
|
-
"PHI",
|
|
9897
|
-
"POISSON.DIST",
|
|
9898
|
-
"PQSOURCE",
|
|
9899
|
-
"PYTHON_STR",
|
|
9900
|
-
"PYTHON_TYPE",
|
|
9901
|
-
"PYTHON_TYPENAME",
|
|
9902
|
-
"QUARTILE.EXC",
|
|
9903
|
-
"QUARTILE.INC",
|
|
9904
|
-
"QUERYSTRING",
|
|
9905
|
-
"RANDARRAY",
|
|
9906
|
-
"RANK.AVG",
|
|
9907
|
-
"RANK.EQ",
|
|
9908
|
-
"REDUCE",
|
|
9909
|
-
"RRI",
|
|
9910
|
-
"SCAN",
|
|
9911
|
-
"SEC",
|
|
9912
|
-
"SECH",
|
|
9913
|
-
"SEQUENCE",
|
|
9914
|
-
"SHEET",
|
|
9915
|
-
"SHEETS",
|
|
9916
|
-
"SKEW.P",
|
|
9917
|
-
"SORTBY",
|
|
9918
|
-
"STDEV.P",
|
|
9919
|
-
"STDEV.S",
|
|
9920
|
-
"SWITCH",
|
|
9921
|
-
"T.DIST",
|
|
9922
|
-
"T.DIST.2T",
|
|
9923
|
-
"T.DIST.RT",
|
|
9924
|
-
"T.INV",
|
|
9925
|
-
"T.INV.2T",
|
|
9926
|
-
"T.TEST",
|
|
9927
|
-
"TAKE",
|
|
9928
|
-
"TEXTAFTER",
|
|
9929
|
-
"TEXTBEFORE",
|
|
9930
|
-
"TEXTJOIN",
|
|
9931
|
-
"TEXTSPLIT",
|
|
9932
|
-
"TOCOL",
|
|
9933
|
-
"TOROW",
|
|
9934
|
-
"UNICHAR",
|
|
9935
|
-
"UNICODE",
|
|
9936
|
-
"UNIQUE",
|
|
9937
|
-
"VAR.P",
|
|
9938
|
-
"VAR.S",
|
|
9939
|
-
"VSTACK",
|
|
9940
|
-
"WEBSERVICE",
|
|
9941
|
-
"WEIBULL.DIST",
|
|
9942
|
-
"WRAPCOLS",
|
|
9943
|
-
"WRAPROWS",
|
|
9944
|
-
"XLOOKUP",
|
|
9945
|
-
"XOR",
|
|
9946
|
-
"Z.TEST"
|
|
9947
|
-
];
|
|
9948
|
-
const CONTENT_TYPES_FILE = "[Content_Types].xml";
|
|
9949
|
-
|
|
9950
9951
|
//#endregion
|
|
9951
9952
|
//#region src/helpers/figures/charts/chart_common.ts
|
|
9952
9953
|
const TREND_LINE_XAXIS_ID = "x1";
|
|
@@ -10212,10 +10213,10 @@ const chartShowValuesPlugin = {
|
|
|
10212
10213
|
drawLineOrBarOrRadarChartValues(chart, options, ctx);
|
|
10213
10214
|
break;
|
|
10214
10215
|
case "bar":
|
|
10215
|
-
options.horizontal ? drawHorizontalBarChartValues(chart, options, ctx) : drawLineOrBarOrRadarChartValues(chart, options, ctx);
|
|
10216
|
+
options.horizontal ? drawHorizontalBarChartValues(chart, options, ctx, { offsetFromAxisOrigin: true }) : drawLineOrBarOrRadarChartValues(chart, options, ctx);
|
|
10216
10217
|
break;
|
|
10217
10218
|
case "pyramid":
|
|
10218
|
-
drawHorizontalBarChartValues(chart, options, ctx);
|
|
10219
|
+
drawHorizontalBarChartValues(chart, options, ctx, { offsetFromAxisOrigin: true });
|
|
10219
10220
|
break;
|
|
10220
10221
|
case "calendar":
|
|
10221
10222
|
drawBarChartValues(chart, options, ctx);
|
|
@@ -10224,7 +10225,7 @@ const chartShowValuesPlugin = {
|
|
|
10224
10225
|
drawBubbleChartValues(chart, options, ctx);
|
|
10225
10226
|
break;
|
|
10226
10227
|
case "funnel":
|
|
10227
|
-
drawHorizontalBarChartValues(chart, options, ctx);
|
|
10228
|
+
drawHorizontalBarChartValues(chart, options, ctx, { offsetFromAxisOrigin: false });
|
|
10228
10229
|
break;
|
|
10229
10230
|
}
|
|
10230
10231
|
ctx.restore();
|
|
@@ -10299,23 +10300,33 @@ function drawBubbleChartValues(chart, options, ctx) {
|
|
|
10299
10300
|
const yMax = chart.chartArea.bottom;
|
|
10300
10301
|
const yMin = chart.chartArea.top;
|
|
10301
10302
|
const textsPositions = {};
|
|
10303
|
+
const canDrawTextInsideBubble = (chartElement, textSize) => {
|
|
10304
|
+
const radius = chartElement.options.radius ?? globalThis.Chart?.defaults.elements.point.radius ?? 3;
|
|
10305
|
+
return textSize.height < radius * 2;
|
|
10306
|
+
};
|
|
10302
10307
|
for (const dataset of chart._metasets) for (let i = 0; i < dataset._parsed.length; i++) {
|
|
10303
10308
|
const value = dataset._parsed[i].y;
|
|
10304
10309
|
if (isNaN(value)) continue;
|
|
10310
|
+
const valueToDisplay = options.callback(Number(value), dataset, i);
|
|
10305
10311
|
const point = dataset.data[i];
|
|
10306
10312
|
const xPosition = point.x;
|
|
10307
10313
|
let yPosition = Math.max(Math.min(point.y, yMax), yMin);
|
|
10314
|
+
const textSize = getTextDimensions(valueToDisplay, ctx);
|
|
10315
|
+
if (!canDrawTextInsideBubble(point, textSize)) yPosition = value < 0 ? point.y + 10 : point.y - 10;
|
|
10308
10316
|
if (!textsPositions[xPosition]) textsPositions[xPosition] = [];
|
|
10309
10317
|
for (const otherPosition of textsPositions[xPosition] || []) if (Math.abs(otherPosition - yPosition) < MINIMAL_VERTICAL_DISTANCE) yPosition = otherPosition + MINIMAL_VERTICAL_DISTANCE * (value < 0 ? 1 : -1);
|
|
10310
10318
|
textsPositions[xPosition].push(yPosition);
|
|
10311
|
-
|
|
10312
|
-
|
|
10313
|
-
|
|
10314
|
-
|
|
10315
|
-
|
|
10319
|
+
if (canDrawTextInsideBubble(point, textSize)) {
|
|
10320
|
+
ctx.strokeStyle = point.options.backgroundColor;
|
|
10321
|
+
ctx.fillStyle = options.background(Number(value), dataset, i) || "#ffffff";
|
|
10322
|
+
} else {
|
|
10323
|
+
ctx.strokeStyle = options.background(Number(value), dataset, i) || "#ffffff";
|
|
10324
|
+
ctx.fillStyle = point.options.backgroundColor;
|
|
10325
|
+
}
|
|
10326
|
+
drawTextWithBackground(valueToDisplay, xPosition, yPosition, ctx);
|
|
10316
10327
|
}
|
|
10317
10328
|
}
|
|
10318
|
-
function drawHorizontalBarChartValues(chart, options, ctx) {
|
|
10329
|
+
function drawHorizontalBarChartValues(chart, options, ctx, args) {
|
|
10319
10330
|
const textsPositions = {};
|
|
10320
10331
|
for (const dataset of chart._metasets) {
|
|
10321
10332
|
if (isTrendLineAxis(dataset.xAxisID) || isLineOverlayOnBarChart(options, dataset)) continue;
|
|
@@ -10330,7 +10341,7 @@ function drawHorizontalBarChartValues(chart, options, ctx) {
|
|
|
10330
10341
|
const distanceFromAxisOrigin = Math.abs(point.x - xZeroLine);
|
|
10331
10342
|
const PADDING = 3;
|
|
10332
10343
|
let xPosition;
|
|
10333
|
-
if (distanceFromAxisOrigin < textWidth) xPosition = value < 0 ? xZeroLine - textWidth / 2 - PADDING : xZeroLine + textWidth / 2 + PADDING;
|
|
10344
|
+
if (args.offsetFromAxisOrigin && distanceFromAxisOrigin < textWidth) xPosition = value < 0 ? xZeroLine - textWidth / 2 - PADDING : xZeroLine + textWidth / 2 + PADDING;
|
|
10334
10345
|
else xPosition = value < 0 ? point.x + point.width / 2 : point.x - point.width / 2;
|
|
10335
10346
|
if (!textsPositions[yPosition]) textsPositions[yPosition] = [];
|
|
10336
10347
|
for (const otherPosition of textsPositions[yPosition]) if (Math.abs(otherPosition - xPosition) < textWidth) xPosition = value < 0 ? otherPosition - textWidth - PADDING : otherPosition + textWidth + PADDING;
|
|
@@ -10365,6 +10376,9 @@ function drawPieChartValues(chart, options, ctx) {
|
|
|
10365
10376
|
drawTextWithBackground(displayValue, x, y, ctx);
|
|
10366
10377
|
}
|
|
10367
10378
|
}
|
|
10379
|
+
function getTextDimensions(text, ctx) {
|
|
10380
|
+
return computeCachedTextDimension(ctx, text, computeTextFont({ fontSize: globalThis.Chart?.defaults.font.size ?? 12 }, "px"));
|
|
10381
|
+
}
|
|
10368
10382
|
|
|
10369
10383
|
//#endregion
|
|
10370
10384
|
//#region src/types/chart/tree_map_chart.ts
|
|
@@ -31291,9 +31305,10 @@ var Composer = class extends Component {
|
|
|
31291
31305
|
compositionActive = false;
|
|
31292
31306
|
spreadsheetRect = useSpreadsheetRect();
|
|
31293
31307
|
lastHoveredTokenIndex = void 0;
|
|
31294
|
-
debouncedHover = debounce((tokenIndex, hoveredRect) => {
|
|
31308
|
+
debouncedHover = debounce((tokenIndex, composerContent, hoveredRect) => {
|
|
31295
31309
|
const selection = this.contentHelper.getCurrentSelection();
|
|
31296
|
-
|
|
31310
|
+
const currentContent = this.props.composerStore.currentContent;
|
|
31311
|
+
if (selection.start !== selection.end || currentContent !== composerContent) return;
|
|
31297
31312
|
const currentHoveredContext = this.props.composerStore.hoveredTokens;
|
|
31298
31313
|
this.props.composerStore.hoverToken(tokenIndex);
|
|
31299
31314
|
if (!deepEquals(currentHoveredContext, this.props.composerStore.hoveredTokens)) this.composerState.hoveredRect = hoveredRect;
|
|
@@ -31613,7 +31628,8 @@ var Composer = class extends Component {
|
|
|
31613
31628
|
onTokenHover(tokenIndex, hoveredRect) {
|
|
31614
31629
|
if (this.lastHoveredTokenIndex !== tokenIndex) {
|
|
31615
31630
|
this.lastHoveredTokenIndex = tokenIndex;
|
|
31616
|
-
this.
|
|
31631
|
+
const composerContent = this.props.composerStore.currentContent;
|
|
31632
|
+
this.debouncedHover(tokenIndex, composerContent, hoveredRect);
|
|
31617
31633
|
}
|
|
31618
31634
|
}
|
|
31619
31635
|
/**
|
|
@@ -41269,7 +41285,13 @@ var PivotSpreadsheetSidePanel = class extends Component {
|
|
|
41269
41285
|
}
|
|
41270
41286
|
onSelectionChanged(ranges) {
|
|
41271
41287
|
this.state.rangeHasChanged = true;
|
|
41272
|
-
|
|
41288
|
+
if (ranges.length === 0) {
|
|
41289
|
+
this.state.range = void 0;
|
|
41290
|
+
return;
|
|
41291
|
+
}
|
|
41292
|
+
const sheetId = this.env.model.getters.getActiveSheetId();
|
|
41293
|
+
const range = this.env.model.getters.getRangeFromSheetXC(sheetId, ranges[0]);
|
|
41294
|
+
this.state.range = this.env.model.getters.getRangeString(range, "forceSheetReference", { useBoundedReference: true });
|
|
41273
41295
|
}
|
|
41274
41296
|
onSelectionConfirmed() {
|
|
41275
41297
|
if (this.state.range) {
|
|
@@ -51028,6 +51050,7 @@ var CarouselPlugin = class extends CorePlugin {
|
|
|
51028
51050
|
return "Success";
|
|
51029
51051
|
case "UPDATE_CAROUSEL":
|
|
51030
51052
|
if (!this.carousels[cmd.sheetId]?.[cmd.figureId]) return "InvalidFigureId";
|
|
51053
|
+
for (const item of cmd.definition.items) if (item.type === "chart" && !this.getters.getChart(item.chartId)) return "ChartDoesNotExist";
|
|
51031
51054
|
return "Success";
|
|
51032
51055
|
}
|
|
51033
51056
|
return "Success";
|
|
@@ -56555,6 +56578,7 @@ var FormulaDependencyGraph = class {
|
|
|
56555
56578
|
}
|
|
56556
56579
|
getCellsDependingOn(ranges, visited = new RangeSet()) {
|
|
56557
56580
|
visited = visited.copy();
|
|
56581
|
+
let initialRangesToRemove = visited.copy();
|
|
56558
56582
|
const queue = Array.from(ranges).reverse();
|
|
56559
56583
|
while (queue.length > 0) {
|
|
56560
56584
|
const range = queue.pop();
|
|
@@ -56570,8 +56594,9 @@ var FormulaDependencyGraph = class {
|
|
|
56570
56594
|
for (const interval of overlappingIntervals) impactedRanges.add(interval.dependents);
|
|
56571
56595
|
}
|
|
56572
56596
|
queue.push(...impactedRanges.difference(visited));
|
|
56597
|
+
initialRangesToRemove = initialRangesToRemove.difference(impactedRanges);
|
|
56573
56598
|
}
|
|
56574
|
-
for (const range of
|
|
56599
|
+
for (const range of initialRangesToRemove) visited.delete(range);
|
|
56575
56600
|
return visited;
|
|
56576
56601
|
}
|
|
56577
56602
|
getOrCreateIntervalTree(sheetId, col) {
|
|
@@ -70431,7 +70456,7 @@ var FigureRendererStore = class extends DisposableStore {
|
|
|
70431
70456
|
if (!this.getters.isDashboard()) {
|
|
70432
70457
|
ctx.strokeStyle = GRAY_400;
|
|
70433
70458
|
ctx.lineWidth = 1;
|
|
70434
|
-
ctx.strokeRect(x, y, figure.width, figure.height);
|
|
70459
|
+
ctx.strokeRect(x + .5, y + .5, figure.width - 1, figure.height - 1);
|
|
70435
70460
|
}
|
|
70436
70461
|
}
|
|
70437
70462
|
}
|
|
@@ -79311,14 +79336,13 @@ const PyramidChart = {
|
|
|
79311
79336
|
},
|
|
79312
79337
|
getDefinitionForExcel(getters, definition, { dataSets, labelRange }) {
|
|
79313
79338
|
if (definition.dataSource.type !== "range") return;
|
|
79314
|
-
const
|
|
79315
|
-
const { dataSetsValues } = chartData;
|
|
79339
|
+
const { dataSetsValues } = getPyramidChartData(definition, getChartData(getters, definition.dataSource), getters);
|
|
79316
79340
|
const maxValue = Math.max(...dataSetsValues.map((dataSet) => Math.max(...dataSet.data.map((cell) => isNumberResult(cell) ? Math.abs(cell.value) : -Infinity))));
|
|
79317
79341
|
return {
|
|
79318
79342
|
...definition,
|
|
79319
79343
|
horizontal: true,
|
|
79320
|
-
backgroundColor: toXlsxHexColor(
|
|
79321
|
-
fontColor: toXlsxHexColor(chartFontColor(
|
|
79344
|
+
backgroundColor: toXlsxHexColor(definition.background || "#FFFFFF"),
|
|
79345
|
+
fontColor: toXlsxHexColor(chartFontColor(definition.background)),
|
|
79322
79346
|
dataSets,
|
|
79323
79347
|
labelRange,
|
|
79324
79348
|
verticalAxis: getDefinedAxis(definition),
|
|
@@ -87973,6 +87997,6 @@ exports.stores = stores;
|
|
|
87973
87997
|
exports.tokenColors = tokenColors;
|
|
87974
87998
|
exports.tokenize = tokenize;
|
|
87975
87999
|
|
|
87976
|
-
__info__.version = "19.4.
|
|
87977
|
-
__info__.date = "2026-
|
|
87978
|
-
__info__.hash = "
|
|
88000
|
+
__info__.version = "19.4.11";
|
|
88001
|
+
__info__.date = "2026-09-04T07:50:39.272Z";
|
|
88002
|
+
__info__.hash = "7660254";
|