@odoo/o-spreadsheet 17.1.19 → 17.1.21

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 17.1.19
6
- * @date 2024-06-14T10:03:04.850Z
7
- * @hash 8a74f95
5
+ * @version 17.1.21
6
+ * @date 2024-07-02T10:35:57.801Z
7
+ * @hash ec4c09b
8
8
  */
9
9
 
10
10
  'use strict';
@@ -1770,9 +1770,10 @@ function percentile(values, percent, isInclusive) {
1770
1770
  sortedValues[indexLow] * (indexSup - percentIndex));
1771
1771
  }
1772
1772
 
1773
- // define a mock translation function, when o-spreadsheet runs in standalone it doesn't translate any string
1774
- let _translate = (s) => s;
1775
- let _loaded = () => false;
1773
+ const defaultTranslate = (s) => s;
1774
+ const defaultLoaded = () => false;
1775
+ let _translate = defaultTranslate;
1776
+ let _loaded = defaultLoaded;
1776
1777
  function sprintf(s, ...values) {
1777
1778
  if (values.length === 1 && typeof values[0] === "object" && !(values[0] instanceof String)) {
1778
1779
  const valuesDict = values[0];
@@ -1784,7 +1785,8 @@ function sprintf(s, ...values) {
1784
1785
  return s;
1785
1786
  }
1786
1787
  /***
1787
- * Allow to inject a translation function from outside o-spreadsheet.
1788
+ * Allow to inject a translation function from outside o-spreadsheet. This should be called before instantiating
1789
+ * a model.
1788
1790
  * @param tfn the function that will do the translation
1789
1791
  * @param loaded a function that returns true when the translation is loaded
1790
1792
  */
@@ -1792,6 +1794,18 @@ function setTranslationMethod(tfn, loaded = () => true) {
1792
1794
  _translate = tfn;
1793
1795
  _loaded = loaded;
1794
1796
  }
1797
+ /**
1798
+ * If no translation function has been set, this will mark the translation are loaded.
1799
+ *
1800
+ * By default, the translations should not be set as loaded, otherwise top-level translated constants will never be
1801
+ * translated. But if by the time the model is instantiated no custom translation function has been set, we can set
1802
+ * the default translation function as loaded so o-spreadsheet can be run in standalone with no translations.
1803
+ */
1804
+ function setDefaultTranslationMethod() {
1805
+ if (_translate === defaultTranslate && _loaded === defaultLoaded) {
1806
+ _loaded = () => true;
1807
+ }
1808
+ }
1795
1809
  const _t = function (s, ...values) {
1796
1810
  if (!_loaded()) {
1797
1811
  return new LazyTranslatedString(s, values);
@@ -30778,6 +30792,8 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30778
30792
  "BITOR",
30779
30793
  "BITRSHIFT",
30780
30794
  "BITXOR",
30795
+ "BYCOL",
30796
+ "BYROW",
30781
30797
  "CEILING.MATH",
30782
30798
  "CEILING.PRECISE",
30783
30799
  "CHISQ.DIST",
@@ -30785,6 +30801,8 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30785
30801
  "CHISQ.INV",
30786
30802
  "CHISQ.INV.RT",
30787
30803
  "CHISQ.TEST",
30804
+ "CHOOSECOLS",
30805
+ "CHOOSEROWS",
30788
30806
  "COMBINA",
30789
30807
  "CONCAT",
30790
30808
  "CONFIDENCE.NORM",
@@ -30797,14 +30815,17 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30797
30815
  "CSCH",
30798
30816
  "DAYS",
30799
30817
  "DECIMAL",
30818
+ "DROP",
30800
30819
  "ERF.PRECISE",
30801
30820
  "ERFC.PRECISE",
30821
+ "EXPAND",
30802
30822
  "EXPON.DIST",
30803
30823
  "F.DIST",
30804
30824
  "F.DIST.RT",
30805
30825
  "F.INV",
30806
30826
  "F.INV.RT",
30807
30827
  "F.TEST",
30828
+ "FIELDVALUE",
30808
30829
  "FILTERXML",
30809
30830
  "FLOOR.MATH",
30810
30831
  "FLOOR.PRECISE",
@@ -30819,6 +30840,7 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30819
30840
  "GAMMA.INV",
30820
30841
  "GAMMALN.PRECISE",
30821
30842
  "GAUSS",
30843
+ "HSTACK",
30822
30844
  "HYPGEOM.DIST",
30823
30845
  "IFNA",
30824
30846
  "IFS",
@@ -30831,9 +30853,14 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30831
30853
  "IMSINH",
30832
30854
  "IMTAN",
30833
30855
  "ISFORMULA",
30856
+ "ISOMITTED",
30834
30857
  "ISOWEEKNUM",
30858
+ "LAMBDA",
30859
+ "LET",
30835
30860
  "LOGNORM.DIST",
30836
30861
  "LOGNORM.INV",
30862
+ "MAKEARRAY",
30863
+ "MAP",
30837
30864
  "MAXIFS",
30838
30865
  "MINIFS",
30839
30866
  "MODE.MULT",
@@ -30853,17 +30880,26 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30853
30880
  "PERMUTATIONA",
30854
30881
  "PHI",
30855
30882
  "POISSON.DIST",
30883
+ "PQSOURCE",
30884
+ "PYTHON_STR",
30885
+ "PYTHON_TYPE",
30886
+ "PYTHON_TYPENAME",
30856
30887
  "QUARTILE.EXC",
30857
30888
  "QUARTILE.INC",
30858
30889
  "QUERYSTRING",
30890
+ "RANDARRAY",
30859
30891
  "RANK.AVG",
30860
30892
  "RANK.EQ",
30893
+ "REDUCE",
30861
30894
  "RRI",
30895
+ "SCAN",
30862
30896
  "SEC",
30863
30897
  "SECH",
30898
+ "SEQUENCE",
30864
30899
  "SHEET",
30865
30900
  "SHEETS",
30866
30901
  "SKEW.P",
30902
+ "SORTBY",
30867
30903
  "STDEV.P",
30868
30904
  "STDEV.S",
30869
30905
  "SWITCH",
@@ -30873,13 +30909,24 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30873
30909
  "T.INV",
30874
30910
  "T.INV.2T",
30875
30911
  "T.TEST",
30912
+ "TAKE",
30913
+ "TEXTAFTER",
30914
+ "TEXTBEFORE",
30876
30915
  "TEXTJOIN",
30916
+ "TEXTSPLIT",
30917
+ "TOCOL",
30918
+ "TOROW",
30877
30919
  "UNICHAR",
30878
30920
  "UNICODE",
30921
+ "UNIQUE",
30879
30922
  "VAR.P",
30880
30923
  "VAR.S",
30924
+ "VSTACK",
30881
30925
  "WEBSERVICE",
30882
30926
  "WEIBULL.DIST",
30927
+ "WRAPCOLS",
30928
+ "WRAPROWS",
30929
+ "XLOOKUP",
30883
30930
  "XOR",
30884
30931
  "Z.TEST",
30885
30932
  ];
@@ -52064,7 +52111,7 @@ class BottomBarSheet extends owl.Component {
52064
52111
  this.env.focusableElement.focus();
52065
52112
  }
52066
52113
  }
52067
- onClickSheetName(ev) {
52114
+ onMouseEventSheetName(ev) {
52068
52115
  if (this.state.isEditing)
52069
52116
  ev.stopPropagation();
52070
52117
  }
@@ -57204,6 +57251,7 @@ class Model extends EventBus {
57204
57251
  coreHandlers = [];
57205
57252
  constructor(data = {}, config = {}, stateUpdateMessages = [], uuidGenerator = new UuidGenerator(), verboseImport = true) {
57206
57253
  super();
57254
+ setDefaultTranslationMethod();
57207
57255
  stateUpdateMessages = repairInitialMessages(data, stateUpdateMessages);
57208
57256
  const workbookData = load(data, verboseImport);
57209
57257
  this.state = new StateObserver();
@@ -57791,6 +57839,6 @@ exports.setTranslationMethod = setTranslationMethod;
57791
57839
  exports.tokenize = tokenize;
57792
57840
 
57793
57841
 
57794
- __info__.version = "17.1.19";
57795
- __info__.date = "2024-06-14T10:03:04.850Z";
57796
- __info__.hash = "8a74f95";
57842
+ __info__.version = "17.1.21";
57843
+ __info__.date = "2024-07-02T10:35:57.801Z";
57844
+ __info__.hash = "ec4c09b";
@@ -6625,7 +6625,7 @@ declare class BottomBarSheet extends Component<Props$v, SpreadsheetChildEnv> {
6625
6625
  private activateSheet;
6626
6626
  onDblClick(): void;
6627
6627
  onKeyDown(ev: KeyboardEvent): void;
6628
- onClickSheetName(ev: MouseEvent): void;
6628
+ onMouseEventSheetName(ev: MouseEvent): void;
6629
6629
  private startEdition;
6630
6630
  private stopEdition;
6631
6631
  private cancelEdition;
@@ -8567,7 +8567,8 @@ type SprintfValues = (string | String | number)[] | [{
8567
8567
  }];
8568
8568
  type TranslationFunction = (string: string, ...values: SprintfValues) => string;
8569
8569
  /***
8570
- * Allow to inject a translation function from outside o-spreadsheet.
8570
+ * Allow to inject a translation function from outside o-spreadsheet. This should be called before instantiating
8571
+ * a model.
8571
8572
  * @param tfn the function that will do the translation
8572
8573
  * @param loaded a function that returns true when the translation is loaded
8573
8574
  */
@@ -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 17.1.19
6
- * @date 2024-06-14T10:03:04.850Z
7
- * @hash 8a74f95
5
+ * @version 17.1.21
6
+ * @date 2024-07-02T10:35:57.801Z
7
+ * @hash ec4c09b
8
8
  */
9
9
 
10
10
  import { Component, useRef, onMounted, onWillUnmount, useEffect, onWillPatch, useState, onWillUpdateProps, onPatched, useComponent, useExternalListener, onWillStart, xml, useChildSubEnv, useSubEnv, markRaw } from '@odoo/owl';
@@ -1768,9 +1768,10 @@ function percentile(values, percent, isInclusive) {
1768
1768
  sortedValues[indexLow] * (indexSup - percentIndex));
1769
1769
  }
1770
1770
 
1771
- // define a mock translation function, when o-spreadsheet runs in standalone it doesn't translate any string
1772
- let _translate = (s) => s;
1773
- let _loaded = () => false;
1771
+ const defaultTranslate = (s) => s;
1772
+ const defaultLoaded = () => false;
1773
+ let _translate = defaultTranslate;
1774
+ let _loaded = defaultLoaded;
1774
1775
  function sprintf(s, ...values) {
1775
1776
  if (values.length === 1 && typeof values[0] === "object" && !(values[0] instanceof String)) {
1776
1777
  const valuesDict = values[0];
@@ -1782,7 +1783,8 @@ function sprintf(s, ...values) {
1782
1783
  return s;
1783
1784
  }
1784
1785
  /***
1785
- * Allow to inject a translation function from outside o-spreadsheet.
1786
+ * Allow to inject a translation function from outside o-spreadsheet. This should be called before instantiating
1787
+ * a model.
1786
1788
  * @param tfn the function that will do the translation
1787
1789
  * @param loaded a function that returns true when the translation is loaded
1788
1790
  */
@@ -1790,6 +1792,18 @@ function setTranslationMethod(tfn, loaded = () => true) {
1790
1792
  _translate = tfn;
1791
1793
  _loaded = loaded;
1792
1794
  }
1795
+ /**
1796
+ * If no translation function has been set, this will mark the translation are loaded.
1797
+ *
1798
+ * By default, the translations should not be set as loaded, otherwise top-level translated constants will never be
1799
+ * translated. But if by the time the model is instantiated no custom translation function has been set, we can set
1800
+ * the default translation function as loaded so o-spreadsheet can be run in standalone with no translations.
1801
+ */
1802
+ function setDefaultTranslationMethod() {
1803
+ if (_translate === defaultTranslate && _loaded === defaultLoaded) {
1804
+ _loaded = () => true;
1805
+ }
1806
+ }
1793
1807
  const _t = function (s, ...values) {
1794
1808
  if (!_loaded()) {
1795
1809
  return new LazyTranslatedString(s, values);
@@ -30776,6 +30790,8 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30776
30790
  "BITOR",
30777
30791
  "BITRSHIFT",
30778
30792
  "BITXOR",
30793
+ "BYCOL",
30794
+ "BYROW",
30779
30795
  "CEILING.MATH",
30780
30796
  "CEILING.PRECISE",
30781
30797
  "CHISQ.DIST",
@@ -30783,6 +30799,8 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30783
30799
  "CHISQ.INV",
30784
30800
  "CHISQ.INV.RT",
30785
30801
  "CHISQ.TEST",
30802
+ "CHOOSECOLS",
30803
+ "CHOOSEROWS",
30786
30804
  "COMBINA",
30787
30805
  "CONCAT",
30788
30806
  "CONFIDENCE.NORM",
@@ -30795,14 +30813,17 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30795
30813
  "CSCH",
30796
30814
  "DAYS",
30797
30815
  "DECIMAL",
30816
+ "DROP",
30798
30817
  "ERF.PRECISE",
30799
30818
  "ERFC.PRECISE",
30819
+ "EXPAND",
30800
30820
  "EXPON.DIST",
30801
30821
  "F.DIST",
30802
30822
  "F.DIST.RT",
30803
30823
  "F.INV",
30804
30824
  "F.INV.RT",
30805
30825
  "F.TEST",
30826
+ "FIELDVALUE",
30806
30827
  "FILTERXML",
30807
30828
  "FLOOR.MATH",
30808
30829
  "FLOOR.PRECISE",
@@ -30817,6 +30838,7 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30817
30838
  "GAMMA.INV",
30818
30839
  "GAMMALN.PRECISE",
30819
30840
  "GAUSS",
30841
+ "HSTACK",
30820
30842
  "HYPGEOM.DIST",
30821
30843
  "IFNA",
30822
30844
  "IFS",
@@ -30829,9 +30851,14 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30829
30851
  "IMSINH",
30830
30852
  "IMTAN",
30831
30853
  "ISFORMULA",
30854
+ "ISOMITTED",
30832
30855
  "ISOWEEKNUM",
30856
+ "LAMBDA",
30857
+ "LET",
30833
30858
  "LOGNORM.DIST",
30834
30859
  "LOGNORM.INV",
30860
+ "MAKEARRAY",
30861
+ "MAP",
30835
30862
  "MAXIFS",
30836
30863
  "MINIFS",
30837
30864
  "MODE.MULT",
@@ -30851,17 +30878,26 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30851
30878
  "PERMUTATIONA",
30852
30879
  "PHI",
30853
30880
  "POISSON.DIST",
30881
+ "PQSOURCE",
30882
+ "PYTHON_STR",
30883
+ "PYTHON_TYPE",
30884
+ "PYTHON_TYPENAME",
30854
30885
  "QUARTILE.EXC",
30855
30886
  "QUARTILE.INC",
30856
30887
  "QUERYSTRING",
30888
+ "RANDARRAY",
30857
30889
  "RANK.AVG",
30858
30890
  "RANK.EQ",
30891
+ "REDUCE",
30859
30892
  "RRI",
30893
+ "SCAN",
30860
30894
  "SEC",
30861
30895
  "SECH",
30896
+ "SEQUENCE",
30862
30897
  "SHEET",
30863
30898
  "SHEETS",
30864
30899
  "SKEW.P",
30900
+ "SORTBY",
30865
30901
  "STDEV.P",
30866
30902
  "STDEV.S",
30867
30903
  "SWITCH",
@@ -30871,13 +30907,24 @@ const NON_RETROCOMPATIBLE_FUNCTIONS = [
30871
30907
  "T.INV",
30872
30908
  "T.INV.2T",
30873
30909
  "T.TEST",
30910
+ "TAKE",
30911
+ "TEXTAFTER",
30912
+ "TEXTBEFORE",
30874
30913
  "TEXTJOIN",
30914
+ "TEXTSPLIT",
30915
+ "TOCOL",
30916
+ "TOROW",
30875
30917
  "UNICHAR",
30876
30918
  "UNICODE",
30919
+ "UNIQUE",
30877
30920
  "VAR.P",
30878
30921
  "VAR.S",
30922
+ "VSTACK",
30879
30923
  "WEBSERVICE",
30880
30924
  "WEIBULL.DIST",
30925
+ "WRAPCOLS",
30926
+ "WRAPROWS",
30927
+ "XLOOKUP",
30881
30928
  "XOR",
30882
30929
  "Z.TEST",
30883
30930
  ];
@@ -52062,7 +52109,7 @@ class BottomBarSheet extends Component {
52062
52109
  this.env.focusableElement.focus();
52063
52110
  }
52064
52111
  }
52065
- onClickSheetName(ev) {
52112
+ onMouseEventSheetName(ev) {
52066
52113
  if (this.state.isEditing)
52067
52114
  ev.stopPropagation();
52068
52115
  }
@@ -57202,6 +57249,7 @@ class Model extends EventBus {
57202
57249
  coreHandlers = [];
57203
57250
  constructor(data = {}, config = {}, stateUpdateMessages = [], uuidGenerator = new UuidGenerator(), verboseImport = true) {
57204
57251
  super();
57252
+ setDefaultTranslationMethod();
57205
57253
  stateUpdateMessages = repairInitialMessages(data, stateUpdateMessages);
57206
57254
  const workbookData = load(data, verboseImport);
57207
57255
  this.state = new StateObserver();
@@ -57753,6 +57801,6 @@ const constants = {
57753
57801
  export { AbstractChart, CellErrorType, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, UIPlugin, __info__, addFunction, astToFormula, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, tokenize };
57754
57802
 
57755
57803
 
57756
- __info__.version = "17.1.19";
57757
- __info__.date = "2024-06-14T10:03:04.850Z";
57758
- __info__.hash = "8a74f95";
57804
+ __info__.version = "17.1.21";
57805
+ __info__.date = "2024-07-02T10:35:57.801Z";
57806
+ __info__.hash = "ec4c09b";
@@ -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 17.1.19
6
- * @date 2024-06-14T10:03:04.850Z
7
- * @hash 8a74f95
5
+ * @version 17.1.21
6
+ * @date 2024-07-02T10:35:57.801Z
7
+ * @hash ec4c09b
8
8
  */
9
9
 
10
10
  (function (exports, owl) {
@@ -1769,9 +1769,10 @@
1769
1769
  sortedValues[indexLow] * (indexSup - percentIndex));
1770
1770
  }
1771
1771
 
1772
- // define a mock translation function, when o-spreadsheet runs in standalone it doesn't translate any string
1773
- let _translate = (s) => s;
1774
- let _loaded = () => false;
1772
+ const defaultTranslate = (s) => s;
1773
+ const defaultLoaded = () => false;
1774
+ let _translate = defaultTranslate;
1775
+ let _loaded = defaultLoaded;
1775
1776
  function sprintf(s, ...values) {
1776
1777
  if (values.length === 1 && typeof values[0] === "object" && !(values[0] instanceof String)) {
1777
1778
  const valuesDict = values[0];
@@ -1783,7 +1784,8 @@
1783
1784
  return s;
1784
1785
  }
1785
1786
  /***
1786
- * Allow to inject a translation function from outside o-spreadsheet.
1787
+ * Allow to inject a translation function from outside o-spreadsheet. This should be called before instantiating
1788
+ * a model.
1787
1789
  * @param tfn the function that will do the translation
1788
1790
  * @param loaded a function that returns true when the translation is loaded
1789
1791
  */
@@ -1791,6 +1793,18 @@
1791
1793
  _translate = tfn;
1792
1794
  _loaded = loaded;
1793
1795
  }
1796
+ /**
1797
+ * If no translation function has been set, this will mark the translation are loaded.
1798
+ *
1799
+ * By default, the translations should not be set as loaded, otherwise top-level translated constants will never be
1800
+ * translated. But if by the time the model is instantiated no custom translation function has been set, we can set
1801
+ * the default translation function as loaded so o-spreadsheet can be run in standalone with no translations.
1802
+ */
1803
+ function setDefaultTranslationMethod() {
1804
+ if (_translate === defaultTranslate && _loaded === defaultLoaded) {
1805
+ _loaded = () => true;
1806
+ }
1807
+ }
1794
1808
  const _t = function (s, ...values) {
1795
1809
  if (!_loaded()) {
1796
1810
  return new LazyTranslatedString(s, values);
@@ -30777,6 +30791,8 @@
30777
30791
  "BITOR",
30778
30792
  "BITRSHIFT",
30779
30793
  "BITXOR",
30794
+ "BYCOL",
30795
+ "BYROW",
30780
30796
  "CEILING.MATH",
30781
30797
  "CEILING.PRECISE",
30782
30798
  "CHISQ.DIST",
@@ -30784,6 +30800,8 @@
30784
30800
  "CHISQ.INV",
30785
30801
  "CHISQ.INV.RT",
30786
30802
  "CHISQ.TEST",
30803
+ "CHOOSECOLS",
30804
+ "CHOOSEROWS",
30787
30805
  "COMBINA",
30788
30806
  "CONCAT",
30789
30807
  "CONFIDENCE.NORM",
@@ -30796,14 +30814,17 @@
30796
30814
  "CSCH",
30797
30815
  "DAYS",
30798
30816
  "DECIMAL",
30817
+ "DROP",
30799
30818
  "ERF.PRECISE",
30800
30819
  "ERFC.PRECISE",
30820
+ "EXPAND",
30801
30821
  "EXPON.DIST",
30802
30822
  "F.DIST",
30803
30823
  "F.DIST.RT",
30804
30824
  "F.INV",
30805
30825
  "F.INV.RT",
30806
30826
  "F.TEST",
30827
+ "FIELDVALUE",
30807
30828
  "FILTERXML",
30808
30829
  "FLOOR.MATH",
30809
30830
  "FLOOR.PRECISE",
@@ -30818,6 +30839,7 @@
30818
30839
  "GAMMA.INV",
30819
30840
  "GAMMALN.PRECISE",
30820
30841
  "GAUSS",
30842
+ "HSTACK",
30821
30843
  "HYPGEOM.DIST",
30822
30844
  "IFNA",
30823
30845
  "IFS",
@@ -30830,9 +30852,14 @@
30830
30852
  "IMSINH",
30831
30853
  "IMTAN",
30832
30854
  "ISFORMULA",
30855
+ "ISOMITTED",
30833
30856
  "ISOWEEKNUM",
30857
+ "LAMBDA",
30858
+ "LET",
30834
30859
  "LOGNORM.DIST",
30835
30860
  "LOGNORM.INV",
30861
+ "MAKEARRAY",
30862
+ "MAP",
30836
30863
  "MAXIFS",
30837
30864
  "MINIFS",
30838
30865
  "MODE.MULT",
@@ -30852,17 +30879,26 @@
30852
30879
  "PERMUTATIONA",
30853
30880
  "PHI",
30854
30881
  "POISSON.DIST",
30882
+ "PQSOURCE",
30883
+ "PYTHON_STR",
30884
+ "PYTHON_TYPE",
30885
+ "PYTHON_TYPENAME",
30855
30886
  "QUARTILE.EXC",
30856
30887
  "QUARTILE.INC",
30857
30888
  "QUERYSTRING",
30889
+ "RANDARRAY",
30858
30890
  "RANK.AVG",
30859
30891
  "RANK.EQ",
30892
+ "REDUCE",
30860
30893
  "RRI",
30894
+ "SCAN",
30861
30895
  "SEC",
30862
30896
  "SECH",
30897
+ "SEQUENCE",
30863
30898
  "SHEET",
30864
30899
  "SHEETS",
30865
30900
  "SKEW.P",
30901
+ "SORTBY",
30866
30902
  "STDEV.P",
30867
30903
  "STDEV.S",
30868
30904
  "SWITCH",
@@ -30872,13 +30908,24 @@
30872
30908
  "T.INV",
30873
30909
  "T.INV.2T",
30874
30910
  "T.TEST",
30911
+ "TAKE",
30912
+ "TEXTAFTER",
30913
+ "TEXTBEFORE",
30875
30914
  "TEXTJOIN",
30915
+ "TEXTSPLIT",
30916
+ "TOCOL",
30917
+ "TOROW",
30876
30918
  "UNICHAR",
30877
30919
  "UNICODE",
30920
+ "UNIQUE",
30878
30921
  "VAR.P",
30879
30922
  "VAR.S",
30923
+ "VSTACK",
30880
30924
  "WEBSERVICE",
30881
30925
  "WEIBULL.DIST",
30926
+ "WRAPCOLS",
30927
+ "WRAPROWS",
30928
+ "XLOOKUP",
30882
30929
  "XOR",
30883
30930
  "Z.TEST",
30884
30931
  ];
@@ -52063,7 +52110,7 @@
52063
52110
  this.env.focusableElement.focus();
52064
52111
  }
52065
52112
  }
52066
- onClickSheetName(ev) {
52113
+ onMouseEventSheetName(ev) {
52067
52114
  if (this.state.isEditing)
52068
52115
  ev.stopPropagation();
52069
52116
  }
@@ -57203,6 +57250,7 @@
57203
57250
  coreHandlers = [];
57204
57251
  constructor(data = {}, config = {}, stateUpdateMessages = [], uuidGenerator = new UuidGenerator(), verboseImport = true) {
57205
57252
  super();
57253
+ setDefaultTranslationMethod();
57206
57254
  stateUpdateMessages = repairInitialMessages(data, stateUpdateMessages);
57207
57255
  const workbookData = load(data, verboseImport);
57208
57256
  this.state = new StateObserver();
@@ -57790,9 +57838,9 @@
57790
57838
  exports.tokenize = tokenize;
57791
57839
 
57792
57840
 
57793
- __info__.version = "17.1.19";
57794
- __info__.date = "2024-06-14T10:03:04.850Z";
57795
- __info__.hash = "8a74f95";
57841
+ __info__.version = "17.1.21";
57842
+ __info__.date = "2024-07-02T10:35:57.801Z";
57843
+ __info__.hash = "ec4c09b";
57796
57844
 
57797
57845
 
57798
57846
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);