@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
  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
- const color = point.options.backgroundColor ?? "#ffffff";
10312
- if (hexToHSLA(toHex(color)).a === 1) ctx.fillStyle = chartFontColor(color);
10313
- else ctx.fillStyle = "#000000";
10314
- const valueToDisplay = options.callback(Number(value), dataset, i);
10315
- ctx.fillText(valueToDisplay, xPosition, yPosition);
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
- if (selection.start !== selection.end) return;
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.debouncedHover(tokenIndex, hoveredRect);
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
- this.state.range = ranges[0];
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 ranges) visited.delete(range);
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 chartData = getPyramidChartData(definition, getChartData(getters, definition.dataSource), getters);
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(chartData.background || "#FFFFFF"),
79321
- fontColor: toXlsxHexColor(chartFontColor(chartData.background)),
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.10";
87977
- __info__.date = "2026-08-29T09:17:27.429Z";
87978
- __info__.hash = "d7a0f18";
88000
+ __info__.version = "19.4.11";
88001
+ __info__.date = "2026-09-04T07:50:39.272Z";
88002
+ __info__.hash = "7660254";