@odoo/o-spreadsheet 17.4.0 → 17.4.2

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.4.0
6
- * @date 2024-07-12T04:41:51.675Z
7
- * @hash f8e8543
5
+ * @version 17.4.2
6
+ * @date 2024-07-24T10:26:00.237Z
7
+ * @hash f5ede5b
8
8
  */
9
9
 
10
10
  'use strict';
@@ -2724,7 +2724,7 @@ function getPredicate(descr, locale) {
2724
2724
  operand = descr;
2725
2725
  }
2726
2726
  }
2727
- if (isNumber(operand, locale)) {
2727
+ if (isNumber(operand, locale) || isDateTime(operand, locale)) {
2728
2728
  operand = toNumber(operand, locale);
2729
2729
  }
2730
2730
  else if (operand === "TRUE" || operand === "FALSE") {
@@ -35871,6 +35871,7 @@ class PivotLayoutConfigurator extends owl.Component {
35871
35871
  "__rows_title__",
35872
35872
  ...rows.map((row) => row.nameWithGranularity),
35873
35873
  ];
35874
+ const allDimensions = columns.concat(rows);
35874
35875
  const offset = 1; // column title
35875
35876
  const draggableItems = draggableIds.map((id, index) => ({
35876
35877
  id,
@@ -35893,8 +35894,12 @@ class PivotLayoutConfigurator extends owl.Component {
35893
35894
  const columns = draggedItems.slice(0, draggedItems.indexOf("__rows_title__"));
35894
35895
  const rows = draggedItems.slice(draggedItems.indexOf("__rows_title__") + 1);
35895
35896
  this.props.onDimensionsUpdated({
35896
- columns: columns.map(parseDimension),
35897
- rows: rows.map(parseDimension),
35897
+ columns: columns
35898
+ .map((nameWithGranularity) => allDimensions.find((dimension) => dimension.nameWithGranularity === nameWithGranularity))
35899
+ .filter(isDefined),
35900
+ rows: rows
35901
+ .map((nameWithGranularity) => allDimensions.find((dimension) => dimension.nameWithGranularity === nameWithGranularity))
35902
+ .filter(isDefined),
35898
35903
  });
35899
35904
  },
35900
35905
  });
@@ -35974,9 +35979,15 @@ class PivotLayoutConfigurator extends owl.Component {
35974
35979
  addMeasureDimension(fieldName) {
35975
35980
  const { measures } = this.props.definition;
35976
35981
  this.props.onDimensionsUpdated({
35977
- measures: measures.concat([{ name: fieldName }]),
35982
+ measures: measures.concat([
35983
+ { name: fieldName, aggregator: this.getDefaultMeasureAggregator(fieldName) },
35984
+ ]),
35978
35985
  });
35979
35986
  }
35987
+ getDefaultMeasureAggregator(fieldName) {
35988
+ const field = this.props.unusedMeasureFields.find((f) => f.name === fieldName);
35989
+ return field?.aggregator ? field.aggregator : "count";
35990
+ }
35980
35991
  updateAggregator(updatedMeasure, aggregator) {
35981
35992
  const { measures } = this.props.definition;
35982
35993
  this.props.onDimensionsUpdated({
@@ -36200,7 +36211,7 @@ function createMeasure(fields, measure) {
36200
36211
  const field = name === "__count"
36201
36212
  ? { name: "__count", string: _t("Count"), type: "integer", aggregator: "sum" }
36202
36213
  : fields[name];
36203
- const aggregator = measure.aggregator || field?.aggregator;
36214
+ const aggregator = measure.aggregator;
36204
36215
  return {
36205
36216
  nameWithAggregator: name + (aggregator ? `:${aggregator}` : ""),
36206
36217
  /**
@@ -36936,7 +36947,7 @@ class SpreadsheetPivot {
36936
36947
  .map((value) => value[measure])
36937
36948
  .filter((cell) => cell && cell.type !== CellValueType.empty)
36938
36949
  .filter(isDefined);
36939
- const aggregator = this.getMeasure(measure).aggregator || "count";
36950
+ const aggregator = this.getMeasure(measure).aggregator;
36940
36951
  const operator = AGGREGATORS_FN[aggregator];
36941
36952
  if (!operator) {
36942
36953
  throw new Error(`Aggregator ${aggregator} does not exist`);
@@ -40201,10 +40212,13 @@ function useCellHovered(env, gridRef, callback) {
40201
40212
  row: undefined,
40202
40213
  };
40203
40214
  const { Date } = window;
40204
- let x = 0;
40205
- let y = 0;
40215
+ let x = undefined;
40216
+ let y = undefined;
40206
40217
  let lastMoved = 0;
40207
40218
  function getPosition() {
40219
+ if (x === undefined || y === undefined) {
40220
+ return { col: -1, row: -1 };
40221
+ }
40208
40222
  const col = env.model.getters.getColIndex(x);
40209
40223
  const row = env.model.getters.getRowIndex(y);
40210
40224
  return { col, row };
@@ -54204,9 +54218,9 @@ class Evaluator {
54204
54218
  assertNoMergedCellsInSpreadZone({ sheetId, col, row }, matrixResult) {
54205
54219
  const mergedCells = this.getters.getMergesInZone(sheetId, {
54206
54220
  top: row,
54207
- bottom: row + matrixResult.length,
54221
+ bottom: row + matrixResult[0].length - 1,
54208
54222
  left: col,
54209
- right: col + matrixResult[0].length,
54223
+ right: col + matrixResult.length - 1,
54210
54224
  });
54211
54225
  if (mergedCells.length === 0) {
54212
54226
  return;
@@ -68393,6 +68407,6 @@ exports.tokenColors = tokenColors;
68393
68407
  exports.tokenize = tokenize;
68394
68408
 
68395
68409
 
68396
- __info__.version = "17.4.0";
68397
- __info__.date = "2024-07-12T04:41:51.675Z";
68398
- __info__.hash = "f8e8543";
68410
+ __info__.version = "17.4.2";
68411
+ __info__.date = "2024-07-24T10:26:00.237Z";
68412
+ __info__.hash = "f5ede5b";
@@ -531,7 +531,7 @@ interface PivotCoreDimension {
531
531
  }
532
532
  interface PivotCoreMeasure {
533
533
  name: string;
534
- aggregator?: Aggregator | string;
534
+ aggregator: Aggregator | string;
535
535
  }
536
536
  interface CommonPivotCoreDefinition {
537
537
  columns: PivotCoreDimension[];
@@ -9354,6 +9354,7 @@ declare class PivotLayoutConfigurator extends Component<Props$d, SpreadsheetChil
9354
9354
  addColumnDimension(fieldName: string): void;
9355
9355
  addRowDimension(fieldName: string): void;
9356
9356
  addMeasureDimension(fieldName: string): void;
9357
+ private getDefaultMeasureAggregator;
9357
9358
  updateAggregator(updatedMeasure: PivotMeasure, aggregator: string): void;
9358
9359
  updateOrder(updateDimension: PivotDimension$1, order?: "asc" | "desc"): void;
9359
9360
  updateGranularity(dimension: PivotDimension$1, granularity: Granularity): void;
@@ -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.4.0
6
- * @date 2024-07-12T04:41:51.675Z
7
- * @hash f8e8543
5
+ * @version 17.4.2
6
+ * @date 2024-07-24T10:26:00.237Z
7
+ * @hash f5ede5b
8
8
  */
9
9
 
10
10
  import { useEnv, useSubEnv, onWillUnmount, useComponent, status, Component, useRef, onMounted, useEffect, useState, onPatched, onWillPatch, onWillUpdateProps, useExternalListener, onWillStart, xml, useChildSubEnv, markRaw, toRaw } from '@odoo/owl';
@@ -2722,7 +2722,7 @@ function getPredicate(descr, locale) {
2722
2722
  operand = descr;
2723
2723
  }
2724
2724
  }
2725
- if (isNumber(operand, locale)) {
2725
+ if (isNumber(operand, locale) || isDateTime(operand, locale)) {
2726
2726
  operand = toNumber(operand, locale);
2727
2727
  }
2728
2728
  else if (operand === "TRUE" || operand === "FALSE") {
@@ -35869,6 +35869,7 @@ class PivotLayoutConfigurator extends Component {
35869
35869
  "__rows_title__",
35870
35870
  ...rows.map((row) => row.nameWithGranularity),
35871
35871
  ];
35872
+ const allDimensions = columns.concat(rows);
35872
35873
  const offset = 1; // column title
35873
35874
  const draggableItems = draggableIds.map((id, index) => ({
35874
35875
  id,
@@ -35891,8 +35892,12 @@ class PivotLayoutConfigurator extends Component {
35891
35892
  const columns = draggedItems.slice(0, draggedItems.indexOf("__rows_title__"));
35892
35893
  const rows = draggedItems.slice(draggedItems.indexOf("__rows_title__") + 1);
35893
35894
  this.props.onDimensionsUpdated({
35894
- columns: columns.map(parseDimension),
35895
- rows: rows.map(parseDimension),
35895
+ columns: columns
35896
+ .map((nameWithGranularity) => allDimensions.find((dimension) => dimension.nameWithGranularity === nameWithGranularity))
35897
+ .filter(isDefined),
35898
+ rows: rows
35899
+ .map((nameWithGranularity) => allDimensions.find((dimension) => dimension.nameWithGranularity === nameWithGranularity))
35900
+ .filter(isDefined),
35896
35901
  });
35897
35902
  },
35898
35903
  });
@@ -35972,9 +35977,15 @@ class PivotLayoutConfigurator extends Component {
35972
35977
  addMeasureDimension(fieldName) {
35973
35978
  const { measures } = this.props.definition;
35974
35979
  this.props.onDimensionsUpdated({
35975
- measures: measures.concat([{ name: fieldName }]),
35980
+ measures: measures.concat([
35981
+ { name: fieldName, aggregator: this.getDefaultMeasureAggregator(fieldName) },
35982
+ ]),
35976
35983
  });
35977
35984
  }
35985
+ getDefaultMeasureAggregator(fieldName) {
35986
+ const field = this.props.unusedMeasureFields.find((f) => f.name === fieldName);
35987
+ return field?.aggregator ? field.aggregator : "count";
35988
+ }
35978
35989
  updateAggregator(updatedMeasure, aggregator) {
35979
35990
  const { measures } = this.props.definition;
35980
35991
  this.props.onDimensionsUpdated({
@@ -36198,7 +36209,7 @@ function createMeasure(fields, measure) {
36198
36209
  const field = name === "__count"
36199
36210
  ? { name: "__count", string: _t("Count"), type: "integer", aggregator: "sum" }
36200
36211
  : fields[name];
36201
- const aggregator = measure.aggregator || field?.aggregator;
36212
+ const aggregator = measure.aggregator;
36202
36213
  return {
36203
36214
  nameWithAggregator: name + (aggregator ? `:${aggregator}` : ""),
36204
36215
  /**
@@ -36934,7 +36945,7 @@ class SpreadsheetPivot {
36934
36945
  .map((value) => value[measure])
36935
36946
  .filter((cell) => cell && cell.type !== CellValueType.empty)
36936
36947
  .filter(isDefined);
36937
- const aggregator = this.getMeasure(measure).aggregator || "count";
36948
+ const aggregator = this.getMeasure(measure).aggregator;
36938
36949
  const operator = AGGREGATORS_FN[aggregator];
36939
36950
  if (!operator) {
36940
36951
  throw new Error(`Aggregator ${aggregator} does not exist`);
@@ -40199,10 +40210,13 @@ function useCellHovered(env, gridRef, callback) {
40199
40210
  row: undefined,
40200
40211
  };
40201
40212
  const { Date } = window;
40202
- let x = 0;
40203
- let y = 0;
40213
+ let x = undefined;
40214
+ let y = undefined;
40204
40215
  let lastMoved = 0;
40205
40216
  function getPosition() {
40217
+ if (x === undefined || y === undefined) {
40218
+ return { col: -1, row: -1 };
40219
+ }
40206
40220
  const col = env.model.getters.getColIndex(x);
40207
40221
  const row = env.model.getters.getRowIndex(y);
40208
40222
  return { col, row };
@@ -54202,9 +54216,9 @@ class Evaluator {
54202
54216
  assertNoMergedCellsInSpreadZone({ sheetId, col, row }, matrixResult) {
54203
54217
  const mergedCells = this.getters.getMergesInZone(sheetId, {
54204
54218
  top: row,
54205
- bottom: row + matrixResult.length,
54219
+ bottom: row + matrixResult[0].length - 1,
54206
54220
  left: col,
54207
- right: col + matrixResult[0].length,
54221
+ right: col + matrixResult.length - 1,
54208
54222
  });
54209
54223
  if (mergedCells.length === 0) {
54210
54224
  return;
@@ -68348,6 +68362,6 @@ const constants = {
68348
68362
  export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
68349
68363
 
68350
68364
 
68351
- __info__.version = "17.4.0";
68352
- __info__.date = "2024-07-12T04:41:51.675Z";
68353
- __info__.hash = "f8e8543";
68365
+ __info__.version = "17.4.2";
68366
+ __info__.date = "2024-07-24T10:26:00.237Z";
68367
+ __info__.hash = "f5ede5b";
@@ -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.4.0
6
- * @date 2024-07-12T04:41:51.675Z
7
- * @hash f8e8543
5
+ * @version 17.4.2
6
+ * @date 2024-07-24T10:26:00.237Z
7
+ * @hash f5ede5b
8
8
  */
9
9
 
10
10
  (function (exports, owl) {
@@ -2723,7 +2723,7 @@
2723
2723
  operand = descr;
2724
2724
  }
2725
2725
  }
2726
- if (isNumber(operand, locale)) {
2726
+ if (isNumber(operand, locale) || isDateTime(operand, locale)) {
2727
2727
  operand = toNumber(operand, locale);
2728
2728
  }
2729
2729
  else if (operand === "TRUE" || operand === "FALSE") {
@@ -35870,6 +35870,7 @@ stores.inject(MyMetaStore, storeInstance);
35870
35870
  "__rows_title__",
35871
35871
  ...rows.map((row) => row.nameWithGranularity),
35872
35872
  ];
35873
+ const allDimensions = columns.concat(rows);
35873
35874
  const offset = 1; // column title
35874
35875
  const draggableItems = draggableIds.map((id, index) => ({
35875
35876
  id,
@@ -35892,8 +35893,12 @@ stores.inject(MyMetaStore, storeInstance);
35892
35893
  const columns = draggedItems.slice(0, draggedItems.indexOf("__rows_title__"));
35893
35894
  const rows = draggedItems.slice(draggedItems.indexOf("__rows_title__") + 1);
35894
35895
  this.props.onDimensionsUpdated({
35895
- columns: columns.map(parseDimension),
35896
- rows: rows.map(parseDimension),
35896
+ columns: columns
35897
+ .map((nameWithGranularity) => allDimensions.find((dimension) => dimension.nameWithGranularity === nameWithGranularity))
35898
+ .filter(isDefined),
35899
+ rows: rows
35900
+ .map((nameWithGranularity) => allDimensions.find((dimension) => dimension.nameWithGranularity === nameWithGranularity))
35901
+ .filter(isDefined),
35897
35902
  });
35898
35903
  },
35899
35904
  });
@@ -35973,9 +35978,15 @@ stores.inject(MyMetaStore, storeInstance);
35973
35978
  addMeasureDimension(fieldName) {
35974
35979
  const { measures } = this.props.definition;
35975
35980
  this.props.onDimensionsUpdated({
35976
- measures: measures.concat([{ name: fieldName }]),
35981
+ measures: measures.concat([
35982
+ { name: fieldName, aggregator: this.getDefaultMeasureAggregator(fieldName) },
35983
+ ]),
35977
35984
  });
35978
35985
  }
35986
+ getDefaultMeasureAggregator(fieldName) {
35987
+ const field = this.props.unusedMeasureFields.find((f) => f.name === fieldName);
35988
+ return field?.aggregator ? field.aggregator : "count";
35989
+ }
35979
35990
  updateAggregator(updatedMeasure, aggregator) {
35980
35991
  const { measures } = this.props.definition;
35981
35992
  this.props.onDimensionsUpdated({
@@ -36199,7 +36210,7 @@ stores.inject(MyMetaStore, storeInstance);
36199
36210
  const field = name === "__count"
36200
36211
  ? { name: "__count", string: _t("Count"), type: "integer", aggregator: "sum" }
36201
36212
  : fields[name];
36202
- const aggregator = measure.aggregator || field?.aggregator;
36213
+ const aggregator = measure.aggregator;
36203
36214
  return {
36204
36215
  nameWithAggregator: name + (aggregator ? `:${aggregator}` : ""),
36205
36216
  /**
@@ -36935,7 +36946,7 @@ stores.inject(MyMetaStore, storeInstance);
36935
36946
  .map((value) => value[measure])
36936
36947
  .filter((cell) => cell && cell.type !== CellValueType.empty)
36937
36948
  .filter(isDefined);
36938
- const aggregator = this.getMeasure(measure).aggregator || "count";
36949
+ const aggregator = this.getMeasure(measure).aggregator;
36939
36950
  const operator = AGGREGATORS_FN[aggregator];
36940
36951
  if (!operator) {
36941
36952
  throw new Error(`Aggregator ${aggregator} does not exist`);
@@ -40200,10 +40211,13 @@ stores.inject(MyMetaStore, storeInstance);
40200
40211
  row: undefined,
40201
40212
  };
40202
40213
  const { Date } = window;
40203
- let x = 0;
40204
- let y = 0;
40214
+ let x = undefined;
40215
+ let y = undefined;
40205
40216
  let lastMoved = 0;
40206
40217
  function getPosition() {
40218
+ if (x === undefined || y === undefined) {
40219
+ return { col: -1, row: -1 };
40220
+ }
40207
40221
  const col = env.model.getters.getColIndex(x);
40208
40222
  const row = env.model.getters.getRowIndex(y);
40209
40223
  return { col, row };
@@ -54203,9 +54217,9 @@ stores.inject(MyMetaStore, storeInstance);
54203
54217
  assertNoMergedCellsInSpreadZone({ sheetId, col, row }, matrixResult) {
54204
54218
  const mergedCells = this.getters.getMergesInZone(sheetId, {
54205
54219
  top: row,
54206
- bottom: row + matrixResult.length,
54220
+ bottom: row + matrixResult[0].length - 1,
54207
54221
  left: col,
54208
- right: col + matrixResult[0].length,
54222
+ right: col + matrixResult.length - 1,
54209
54223
  });
54210
54224
  if (mergedCells.length === 0) {
54211
54225
  return;
@@ -68392,9 +68406,9 @@ stores.inject(MyMetaStore, storeInstance);
68392
68406
  exports.tokenize = tokenize;
68393
68407
 
68394
68408
 
68395
- __info__.version = "17.4.0";
68396
- __info__.date = "2024-07-12T04:41:51.675Z";
68397
- __info__.hash = "f8e8543";
68409
+ __info__.version = "17.4.2";
68410
+ __info__.date = "2024-07-24T10:26:00.237Z";
68411
+ __info__.hash = "f5ede5b";
68398
68412
 
68399
68413
 
68400
68414
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);