@odoo/o-spreadsheet 16.0.71 → 16.0.72

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.
@@ -3938,19 +3938,26 @@ class FilterMenu extends owl.Component {
3938
3938
  .filter(({ row }) => !this.env.model.getters.isRowHidden(sheetId, row))
3939
3939
  .map(({ col, row }) => { var _a; return (_a = this.env.model.getters.getCell(sheetId, col, row)) === null || _a === void 0 ? void 0 : _a.formattedValue; });
3940
3940
  const filterValues = this.env.model.getters.getFilterValues(sheetId, position.col, position.row);
3941
- const strValues = [...cellValues, ...filterValues];
3942
- const normalizedFilteredValues = filterValues.map(toLowerCase);
3943
- // Set with lowercase values to avoid duplicates
3944
- const normalizedValues = [...new Set(strValues.map(toLowerCase))];
3945
- const sortedValues = normalizedValues.sort((val1, val2) => val1.localeCompare(val2, undefined, { numeric: true, sensitivity: "base" }));
3946
- return sortedValues.map((normalizedValue) => {
3947
- const checked = normalizedFilteredValues.findIndex((filteredValue) => filteredValue === normalizedValue) ===
3948
- -1;
3949
- return {
3950
- checked,
3951
- string: strValues.find((val) => toLowerCase(val) === normalizedValue) || "",
3952
- };
3953
- });
3941
+ const normalizedFilteredValues = new Set(filterValues.map(toLowerCase));
3942
+ const set = new Set();
3943
+ const values = [];
3944
+ const addValue = (value) => {
3945
+ const normalizedValue = toLowerCase(value);
3946
+ if (!set.has(normalizedValue)) {
3947
+ values.push({
3948
+ string: value || "",
3949
+ checked: !normalizedFilteredValues.has(normalizedValue),
3950
+ normalizedValue,
3951
+ });
3952
+ set.add(normalizedValue);
3953
+ }
3954
+ };
3955
+ cellValues.forEach(addValue);
3956
+ filterValues.forEach(addValue);
3957
+ return values.sort((val1, val2) => val1.normalizedValue.localeCompare(val2.normalizedValue, undefined, {
3958
+ numeric: true,
3959
+ sensitivity: "base",
3960
+ }));
3954
3961
  }
3955
3962
  checkValue(value) {
3956
3963
  var _a;
@@ -26069,7 +26076,7 @@ class XlsxBaseExtractor {
26069
26076
  */
26070
26077
  handleMissingValue(parentElement, missingElementName, optionalArgs) {
26071
26078
  if (optionalArgs === null || optionalArgs === void 0 ? void 0 : optionalArgs.required) {
26072
- if (optionalArgs === null || optionalArgs === void 0 ? void 0 : optionalArgs.default) {
26079
+ if ((optionalArgs === null || optionalArgs === void 0 ? void 0 : optionalArgs.default) !== undefined) {
26073
26080
  this.warningManager.addParsingWarning(`Missing required ${missingElementName} in element <${parentElement.tagName}> of ${this.currentFile}, replacing it by the default value ${optionalArgs.default}`);
26074
26081
  }
26075
26082
  else {
@@ -34034,9 +34041,10 @@ class FilterEvaluationPlugin extends UIPlugin {
34034
34041
  const filteredValues = (_b = (_a = this.filterValues[sheetId]) === null || _a === void 0 ? void 0 : _a[filter.id]) === null || _b === void 0 ? void 0 : _b.map(toLowerCase);
34035
34042
  if (!filteredValues || !filter.filteredZone)
34036
34043
  continue;
34044
+ const filteredValuesSet = new Set(filteredValues);
34037
34045
  for (let row = filter.filteredZone.top; row <= filter.filteredZone.bottom; row++) {
34038
34046
  const value = this.getCellValueAsString(sheetId, filter.col, row);
34039
- if (filteredValues.includes(value)) {
34047
+ if (filteredValuesSet.has(value)) {
34040
34048
  hiddenRows.add(row);
34041
34049
  }
34042
34050
  }
@@ -43858,6 +43866,6 @@ exports.setTranslationMethod = setTranslationMethod;
43858
43866
  exports.tokenize = tokenize;
43859
43867
 
43860
43868
 
43861
- __info__.version = '16.0.71';
43862
- __info__.date = '2025-05-13T17:48:09.400Z';
43863
- __info__.hash = '2ff9f1a';
43869
+ __info__.version = '16.0.72';
43870
+ __info__.date = '2025-06-12T10:45:09.183Z';
43871
+ __info__.hash = 'fb0036b';
@@ -3934,19 +3934,26 @@ class FilterMenu extends Component {
3934
3934
  .filter(({ row }) => !this.env.model.getters.isRowHidden(sheetId, row))
3935
3935
  .map(({ col, row }) => { var _a; return (_a = this.env.model.getters.getCell(sheetId, col, row)) === null || _a === void 0 ? void 0 : _a.formattedValue; });
3936
3936
  const filterValues = this.env.model.getters.getFilterValues(sheetId, position.col, position.row);
3937
- const strValues = [...cellValues, ...filterValues];
3938
- const normalizedFilteredValues = filterValues.map(toLowerCase);
3939
- // Set with lowercase values to avoid duplicates
3940
- const normalizedValues = [...new Set(strValues.map(toLowerCase))];
3941
- const sortedValues = normalizedValues.sort((val1, val2) => val1.localeCompare(val2, undefined, { numeric: true, sensitivity: "base" }));
3942
- return sortedValues.map((normalizedValue) => {
3943
- const checked = normalizedFilteredValues.findIndex((filteredValue) => filteredValue === normalizedValue) ===
3944
- -1;
3945
- return {
3946
- checked,
3947
- string: strValues.find((val) => toLowerCase(val) === normalizedValue) || "",
3948
- };
3949
- });
3937
+ const normalizedFilteredValues = new Set(filterValues.map(toLowerCase));
3938
+ const set = new Set();
3939
+ const values = [];
3940
+ const addValue = (value) => {
3941
+ const normalizedValue = toLowerCase(value);
3942
+ if (!set.has(normalizedValue)) {
3943
+ values.push({
3944
+ string: value || "",
3945
+ checked: !normalizedFilteredValues.has(normalizedValue),
3946
+ normalizedValue,
3947
+ });
3948
+ set.add(normalizedValue);
3949
+ }
3950
+ };
3951
+ cellValues.forEach(addValue);
3952
+ filterValues.forEach(addValue);
3953
+ return values.sort((val1, val2) => val1.normalizedValue.localeCompare(val2.normalizedValue, undefined, {
3954
+ numeric: true,
3955
+ sensitivity: "base",
3956
+ }));
3950
3957
  }
3951
3958
  checkValue(value) {
3952
3959
  var _a;
@@ -26065,7 +26072,7 @@ class XlsxBaseExtractor {
26065
26072
  */
26066
26073
  handleMissingValue(parentElement, missingElementName, optionalArgs) {
26067
26074
  if (optionalArgs === null || optionalArgs === void 0 ? void 0 : optionalArgs.required) {
26068
- if (optionalArgs === null || optionalArgs === void 0 ? void 0 : optionalArgs.default) {
26075
+ if ((optionalArgs === null || optionalArgs === void 0 ? void 0 : optionalArgs.default) !== undefined) {
26069
26076
  this.warningManager.addParsingWarning(`Missing required ${missingElementName} in element <${parentElement.tagName}> of ${this.currentFile}, replacing it by the default value ${optionalArgs.default}`);
26070
26077
  }
26071
26078
  else {
@@ -34030,9 +34037,10 @@ class FilterEvaluationPlugin extends UIPlugin {
34030
34037
  const filteredValues = (_b = (_a = this.filterValues[sheetId]) === null || _a === void 0 ? void 0 : _a[filter.id]) === null || _b === void 0 ? void 0 : _b.map(toLowerCase);
34031
34038
  if (!filteredValues || !filter.filteredZone)
34032
34039
  continue;
34040
+ const filteredValuesSet = new Set(filteredValues);
34033
34041
  for (let row = filter.filteredZone.top; row <= filter.filteredZone.bottom; row++) {
34034
34042
  const value = this.getCellValueAsString(sheetId, filter.col, row);
34035
- if (filteredValues.includes(value)) {
34043
+ if (filteredValuesSet.has(value)) {
34036
34044
  hiddenRows.add(row);
34037
34045
  }
34038
34046
  }
@@ -43826,6 +43834,6 @@ function addFunction(functionName, functionDescription) {
43826
43834
  export { AbstractChart, CommandResult, CorePlugin, DATETIME_FORMAT, DispatchResult, EvaluationError, Model, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, UIPlugin, __info__, addFunction, astToFormula, cellTypes, compile, components, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, invalidateEvaluationCommands, load, parse, readonlyAllowedCommands, registries, setTranslationMethod, tokenize };
43827
43835
 
43828
43836
 
43829
- __info__.version = '16.0.71';
43830
- __info__.date = '2025-05-13T17:48:09.400Z';
43831
- __info__.hash = '2ff9f1a';
43837
+ __info__.version = '16.0.72';
43838
+ __info__.date = '2025-06-12T10:45:09.183Z';
43839
+ __info__.hash = 'fb0036b';
@@ -3935,19 +3935,26 @@
3935
3935
  .filter(({ row }) => !this.env.model.getters.isRowHidden(sheetId, row))
3936
3936
  .map(({ col, row }) => { var _a; return (_a = this.env.model.getters.getCell(sheetId, col, row)) === null || _a === void 0 ? void 0 : _a.formattedValue; });
3937
3937
  const filterValues = this.env.model.getters.getFilterValues(sheetId, position.col, position.row);
3938
- const strValues = [...cellValues, ...filterValues];
3939
- const normalizedFilteredValues = filterValues.map(toLowerCase);
3940
- // Set with lowercase values to avoid duplicates
3941
- const normalizedValues = [...new Set(strValues.map(toLowerCase))];
3942
- const sortedValues = normalizedValues.sort((val1, val2) => val1.localeCompare(val2, undefined, { numeric: true, sensitivity: "base" }));
3943
- return sortedValues.map((normalizedValue) => {
3944
- const checked = normalizedFilteredValues.findIndex((filteredValue) => filteredValue === normalizedValue) ===
3945
- -1;
3946
- return {
3947
- checked,
3948
- string: strValues.find((val) => toLowerCase(val) === normalizedValue) || "",
3949
- };
3950
- });
3938
+ const normalizedFilteredValues = new Set(filterValues.map(toLowerCase));
3939
+ const set = new Set();
3940
+ const values = [];
3941
+ const addValue = (value) => {
3942
+ const normalizedValue = toLowerCase(value);
3943
+ if (!set.has(normalizedValue)) {
3944
+ values.push({
3945
+ string: value || "",
3946
+ checked: !normalizedFilteredValues.has(normalizedValue),
3947
+ normalizedValue,
3948
+ });
3949
+ set.add(normalizedValue);
3950
+ }
3951
+ };
3952
+ cellValues.forEach(addValue);
3953
+ filterValues.forEach(addValue);
3954
+ return values.sort((val1, val2) => val1.normalizedValue.localeCompare(val2.normalizedValue, undefined, {
3955
+ numeric: true,
3956
+ sensitivity: "base",
3957
+ }));
3951
3958
  }
3952
3959
  checkValue(value) {
3953
3960
  var _a;
@@ -26066,7 +26073,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
26066
26073
  */
26067
26074
  handleMissingValue(parentElement, missingElementName, optionalArgs) {
26068
26075
  if (optionalArgs === null || optionalArgs === void 0 ? void 0 : optionalArgs.required) {
26069
- if (optionalArgs === null || optionalArgs === void 0 ? void 0 : optionalArgs.default) {
26076
+ if ((optionalArgs === null || optionalArgs === void 0 ? void 0 : optionalArgs.default) !== undefined) {
26070
26077
  this.warningManager.addParsingWarning(`Missing required ${missingElementName} in element <${parentElement.tagName}> of ${this.currentFile}, replacing it by the default value ${optionalArgs.default}`);
26071
26078
  }
26072
26079
  else {
@@ -34031,9 +34038,10 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
34031
34038
  const filteredValues = (_b = (_a = this.filterValues[sheetId]) === null || _a === void 0 ? void 0 : _a[filter.id]) === null || _b === void 0 ? void 0 : _b.map(toLowerCase);
34032
34039
  if (!filteredValues || !filter.filteredZone)
34033
34040
  continue;
34041
+ const filteredValuesSet = new Set(filteredValues);
34034
34042
  for (let row = filter.filteredZone.top; row <= filter.filteredZone.bottom; row++) {
34035
34043
  const value = this.getCellValueAsString(sheetId, filter.col, row);
34036
- if (filteredValues.includes(value)) {
34044
+ if (filteredValuesSet.has(value)) {
34037
34045
  hiddenRows.add(row);
34038
34046
  }
34039
34047
  }
@@ -43857,9 +43865,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
43857
43865
  Object.defineProperty(exports, '__esModule', { value: true });
43858
43866
 
43859
43867
 
43860
- __info__.version = '16.0.71';
43861
- __info__.date = '2025-05-13T17:48:09.400Z';
43862
- __info__.hash = '2ff9f1a';
43868
+ __info__.version = '16.0.72';
43869
+ __info__.date = '2025-06-12T10:45:09.183Z';
43870
+ __info__.hash = 'fb0036b';
43863
43871
 
43864
43872
 
43865
43873
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);