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