@odoo/o-spreadsheet 17.2.0 → 17.2.1

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.
@@ -3,9 +3,9 @@
3
3
  /**
4
4
  * This file is generated by o-spreadsheet build tools. Do not edit it.
5
5
  * @see https://github.com/odoo/o-spreadsheet
6
- * @version 17.2.0
7
- * @date 2024-03-20T08:12:44.398Z
8
- * @hash 1869c24
6
+ * @version 17.2.1
7
+ * @date 2024-03-25T09:41:58.737Z
8
+ * @hash f97284c
9
9
  */
10
10
 
11
11
  'use strict';
@@ -31,7 +31,6 @@ const DEFAULT_COLOR_SCALE_MIDPOINT_COLOR = 0xb6d7a8;
31
31
  const LINK_COLOR = "#017E84";
32
32
  const FILTERS_COLOR = "#188038";
33
33
  const BACKGROUND_HEADER_FILTER_COLOR = "#E6F4EA";
34
- const BACKGROUND_HEADER_SELECTED_FILTER_COLOR = "#CEEAD6";
35
34
  const SEPARATOR_COLOR = "#E0E2E4";
36
35
  const ICONS_COLOR = "#4A4F59";
37
36
  const HEADER_GROUPING_BACKGROUND_COLOR = "#F5F5F5";
@@ -8005,6 +8004,9 @@ class DependencyContainer {
8005
8004
  instantiate(Store, ...args) {
8006
8005
  return this.factory.build(Store, ...args);
8007
8006
  }
8007
+ resetStores() {
8008
+ this.dependencies.clear();
8009
+ }
8008
8010
  }
8009
8011
  class StoreFactory {
8010
8012
  get;
@@ -24215,14 +24217,19 @@ const categorieFunctionAll = {
24215
24217
  children: [allFunctionListMenuBuilder],
24216
24218
  };
24217
24219
  function allFunctionListMenuBuilder() {
24218
- const fnNames = functionRegistry.getKeys();
24220
+ const fnNames = functionRegistry.getKeys().filter((key) => !functionRegistry.get(key).hidden);
24219
24221
  return createFormulaFunctions(fnNames);
24220
24222
  }
24221
24223
  const categoriesFunctionListMenuBuilder = () => {
24222
24224
  const functions = functionRegistry.content;
24223
- const categories = [...new Set(functionRegistry.getAll().map((fn) => fn.category))].filter(isDefined$1);
24225
+ const categories = [
24226
+ ...new Set(functionRegistry
24227
+ .getAll()
24228
+ .filter((fn) => !fn.hidden)
24229
+ .map((fn) => fn.category)),
24230
+ ].filter(isDefined$1);
24224
24231
  return categories.sort().map((category, i) => {
24225
- const functionsInCategory = Object.keys(functions).filter((key) => functions[key].category === category);
24232
+ const functionsInCategory = Object.keys(functions).filter((key) => functions[key].category === category && !functions[key].hidden);
24226
24233
  return {
24227
24234
  name: category,
24228
24235
  children: createFormulaFunctions(functionsInCategory),
@@ -28380,11 +28387,9 @@ css /* scss */ `
28380
28387
  }
28381
28388
  .o-cell-is-operator {
28382
28389
  margin-bottom: 5px;
28383
- width: 96%;
28384
28390
  }
28385
28391
  .o-cell-is-value {
28386
28392
  margin-bottom: 5px;
28387
- width: 96%;
28388
28393
  }
28389
28394
  .o-color-picker-widget .o-color-picker-button {
28390
28395
  pointer-events: all;
@@ -31086,6 +31091,9 @@ class FigureComponent extends owl.Component {
31086
31091
  el?.focus({ preventScroll: true });
31087
31092
  }
31088
31093
  }, () => [this.env.model.getters.getSelectedFigureId(), this.props.figure.id, this.figureRef.el]);
31094
+ owl.onWillUnmount(() => {
31095
+ this.props.onFigureDeleted();
31096
+ });
31089
31097
  }
31090
31098
  clickAnchor(dirX, dirY, ev) {
31091
31099
  this.props.onClickAnchor(dirX, dirY, ev);
@@ -31104,6 +31112,7 @@ class FigureComponent extends owl.Component {
31104
31112
  this.props.onFigureDeleted();
31105
31113
  ev.stopPropagation();
31106
31114
  ev.preventDefault();
31115
+ ev.stopPropagation();
31107
31116
  break;
31108
31117
  case "ArrowDown":
31109
31118
  case "ArrowLeft":
@@ -31124,6 +31133,7 @@ class FigureComponent extends owl.Component {
31124
31133
  });
31125
31134
  ev.stopPropagation();
31126
31135
  ev.preventDefault();
31136
+ ev.stopPropagation();
31127
31137
  break;
31128
31138
  }
31129
31139
  }
@@ -31791,6 +31801,7 @@ function compareContentToSpanElement(content, node) {
31791
31801
  // -----------------------------------------------------------------------------
31792
31802
  css /* scss */ `
31793
31803
  .o-formula-assistant {
31804
+ background: #ffffff;
31794
31805
  .o-formula-assistant-head {
31795
31806
  background-color: #f2f2f2;
31796
31807
  padding: 10px;
@@ -31846,6 +31857,9 @@ class FunctionDescriptionProvider extends owl.Component {
31846
31857
  this.assistantState.allowCellSelectionBehind = false;
31847
31858
  }, 2000);
31848
31859
  }
31860
+ get formulaArgSeparator() {
31861
+ return this.env.model.getters.getLocale().formulaArgSeparator + " ";
31862
+ }
31849
31863
  }
31850
31864
 
31851
31865
  const functions$2 = functionRegistry.content;
@@ -34615,19 +34629,16 @@ class GridRenderer {
34615
34629
  for (let col = left; col <= right; col++) {
34616
34630
  const colZone = { left: col, right: col, top: 0, bottom: numberOfRows - 1 };
34617
34631
  const { x, width } = this.getters.getVisibleRect(colZone);
34618
- const colHasFilter = this.getters.doesZonesContainFilter(sheetId, [colZone]);
34619
34632
  const isColActive = activeCols.has(col);
34620
34633
  const isColSelected = selectedCols.has(col);
34621
34634
  if (isColActive) {
34622
- ctx.fillStyle = colHasFilter ? FILTERS_COLOR : BACKGROUND_HEADER_ACTIVE_COLOR;
34635
+ ctx.fillStyle = BACKGROUND_HEADER_ACTIVE_COLOR;
34623
34636
  }
34624
34637
  else if (isColSelected) {
34625
- ctx.fillStyle = colHasFilter
34626
- ? BACKGROUND_HEADER_SELECTED_FILTER_COLOR
34627
- : BACKGROUND_HEADER_SELECTED_COLOR;
34638
+ ctx.fillStyle = BACKGROUND_HEADER_SELECTED_COLOR;
34628
34639
  }
34629
34640
  else {
34630
- ctx.fillStyle = colHasFilter ? BACKGROUND_HEADER_FILTER_COLOR : BACKGROUND_HEADER_COLOR;
34641
+ ctx.fillStyle = BACKGROUND_HEADER_COLOR;
34631
34642
  }
34632
34643
  ctx.fillRect(x, 0, width, HEADER_HEIGHT);
34633
34644
  }
@@ -34635,19 +34646,16 @@ class GridRenderer {
34635
34646
  for (let row = top; row <= bottom; row++) {
34636
34647
  const rowZone = { top: row, bottom: row, left: 0, right: numberOfCols - 1 };
34637
34648
  const { y, height } = this.getters.getVisibleRect(rowZone);
34638
- const rowHasFilter = this.getters.doesZonesContainFilter(sheetId, [rowZone]);
34639
34649
  const isRowActive = activeRows.has(row);
34640
34650
  const isRowSelected = selectedRows.has(row);
34641
34651
  if (isRowActive) {
34642
- ctx.fillStyle = rowHasFilter ? FILTERS_COLOR : BACKGROUND_HEADER_ACTIVE_COLOR;
34652
+ ctx.fillStyle = BACKGROUND_HEADER_ACTIVE_COLOR;
34643
34653
  }
34644
34654
  else if (isRowSelected) {
34645
- ctx.fillStyle = rowHasFilter
34646
- ? BACKGROUND_HEADER_SELECTED_FILTER_COLOR
34647
- : BACKGROUND_HEADER_SELECTED_COLOR;
34655
+ ctx.fillStyle = BACKGROUND_HEADER_SELECTED_COLOR;
34648
34656
  }
34649
34657
  else {
34650
- ctx.fillStyle = rowHasFilter ? BACKGROUND_HEADER_FILTER_COLOR : BACKGROUND_HEADER_COLOR;
34658
+ ctx.fillStyle = BACKGROUND_HEADER_COLOR;
34651
34659
  }
34652
34660
  ctx.fillRect(0, y, HEADER_WIDTH, height);
34653
34661
  }
@@ -44820,7 +44828,6 @@ class SheetPlugin extends CorePlugin {
44820
44828
 
44821
44829
  class TablePlugin extends CorePlugin {
44822
44830
  static getters = [
44823
- "doesZonesContainFilter",
44824
44831
  "getFilter",
44825
44832
  "getFilters",
44826
44833
  "getTable",
@@ -44977,10 +44984,6 @@ class TablePlugin extends CorePlugin {
44977
44984
  getTablesOverlappingZones(sheetId, zones) {
44978
44985
  return this.getTables(sheetId).filter((table) => zones.some((zone) => overlap(table.range.zone, zone)));
44979
44986
  }
44980
- doesZonesContainFilter(sheetId, zones) {
44981
- return (this.getTablesOverlappingZones(sheetId, zones).filter((table) => table.config.hasFilters)
44982
- .length > 0);
44983
- }
44984
44987
  getFilterHeaders(sheetId) {
44985
44988
  const headers = [];
44986
44989
  for (const table of this.getTables(sheetId)) {
@@ -52475,6 +52478,7 @@ class GridSelectionPlugin extends UIPlugin {
52475
52478
  this.gridSelection.zones = this.gridSelection.zones.map((z) => this.getters.expandZone(sheetId, z));
52476
52479
  this.gridSelection.anchor.zone = this.getters.expandZone(sheetId, this.gridSelection.anchor.zone);
52477
52480
  this.setSelectionMixin(this.gridSelection.anchor, this.gridSelection.zones);
52481
+ this.selectedFigureId = null;
52478
52482
  break;
52479
52483
  }
52480
52484
  /** Any change to the selection has to be reflected in the selection processor. */
@@ -56093,9 +56097,6 @@ css /* scss */ `
56093
56097
  .text-muted {
56094
56098
  color: grey !important;
56095
56099
  }
56096
- button {
56097
- color: #333;
56098
- }
56099
56100
  .o-disabled {
56100
56101
  opacity: 0.4;
56101
56102
  pointer: default;
@@ -56216,17 +56217,17 @@ css /* scss */ `
56216
56217
  }
56217
56218
 
56218
56219
  .o-button {
56219
- border: 1px solid lightgrey;
56220
+ border: 1px solid;
56220
56221
  padding: 0px 20px 0px 20px;
56221
56222
  border-radius: 4px;
56222
56223
  font-weight: 500;
56223
56224
  font-size: 14px;
56224
56225
  height: 30px;
56225
56226
  line-height: 16px;
56226
- background: white;
56227
56227
  margin-right: 8px;
56228
- &:hover:enabled {
56229
- background-color: rgba(0, 0, 0, 0.08);
56228
+
56229
+ &:not(:hover) {
56230
+ background-color: transparent;
56230
56231
  }
56231
56232
 
56232
56233
  &:enabled {
@@ -56240,6 +56241,15 @@ css /* scss */ `
56240
56241
  &:last-child {
56241
56242
  margin-right: 0px;
56242
56243
  }
56244
+
56245
+ &.o-button-grey {
56246
+ border-color: lightgrey;
56247
+ background: #ffffff;
56248
+ color: #333;
56249
+ &:hover:enabled {
56250
+ background-color: rgba(0, 0, 0, 0.08);
56251
+ }
56252
+ }
56243
56253
  }
56244
56254
 
56245
56255
  .o-input {
@@ -60167,6 +60177,6 @@ exports.tokenColors = tokenColors;
60167
60177
  exports.tokenize = tokenize;
60168
60178
 
60169
60179
 
60170
- __info__.version = "17.2.0";
60171
- __info__.date = "2024-03-20T08:12:44.398Z";
60172
- __info__.hash = "1869c24";
60180
+ __info__.version = "17.2.1";
60181
+ __info__.date = "2024-03-25T09:41:58.737Z";
60182
+ __info__.hash = "f97284c";
@@ -76,6 +76,7 @@ declare class DependencyContainer {
76
76
  */
77
77
  get<T>(Store: StoreConstructor<T>): T;
78
78
  instantiate<T>(Store: StoreConstructor<T>, ...args: StoreParams<StoreConstructor<T>>): T;
79
+ resetStores(): void;
79
80
  }
80
81
 
81
82
  /**
@@ -3030,7 +3031,7 @@ interface TableState {
3030
3031
  tables: Record<UID, Record<TableId, Table | undefined>>;
3031
3032
  }
3032
3033
  declare class TablePlugin extends CorePlugin<TableState> implements TableState {
3033
- static getters: readonly ["doesZonesContainFilter", "getFilter", "getFilters", "getTable", "getTables", "getTablesInZone", "getTablesOverlappingZones", "getFilterId", "getFilterHeaders", "isFilterHeader"];
3034
+ static getters: readonly ["getFilter", "getFilters", "getTable", "getTables", "getTablesInZone", "getTablesOverlappingZones", "getFilterId", "getFilterHeaders", "isFilterHeader"];
3034
3035
  readonly tables: Record<UID, Record<TableId, Table | undefined>>;
3035
3036
  adaptRanges(applyChange: ApplyRangeChange, sheetId?: UID): void;
3036
3037
  allowDispatch(cmd: CoreCommand): CommandResult | CommandResult[];
@@ -3043,7 +3044,6 @@ declare class TablePlugin extends CorePlugin<TableState> implements TableState {
3043
3044
  /** Get the filter tables that are fully inside the given zone */
3044
3045
  getTablesInZone(sheetId: UID, zone: Zone): Table[];
3045
3046
  getTablesOverlappingZones(sheetId: UID, zones: Zone[]): Table[];
3046
- doesZonesContainFilter(sheetId: UID, zones: Zone[]): boolean;
3047
3047
  getFilterHeaders(sheetId: UID): Position$1[];
3048
3048
  isFilterHeader({ sheetId, col, row }: CellPosition): boolean;
3049
3049
  /** Extend a table down one row */
@@ -6647,7 +6647,7 @@ interface Props$z {
6647
6647
  interface AssistantState {
6648
6648
  allowCellSelectionBehind: boolean;
6649
6649
  }
6650
- declare class FunctionDescriptionProvider extends Component<Props$z> {
6650
+ declare class FunctionDescriptionProvider extends Component<Props$z, SpreadsheetChildEnv> {
6651
6651
  static template: string;
6652
6652
  static props: {
6653
6653
  functionName: StringConstructor;
@@ -6659,6 +6659,7 @@ declare class FunctionDescriptionProvider extends Component<Props$z> {
6659
6659
  setup(): void;
6660
6660
  getContext(): Props$z;
6661
6661
  onMouseMove(): void;
6662
+ get formulaArgSeparator(): string;
6662
6663
  }
6663
6664
 
6664
6665
  type HtmlContent = {
@@ -3,9 +3,9 @@
3
3
  /**
4
4
  * This file is generated by o-spreadsheet build tools. Do not edit it.
5
5
  * @see https://github.com/odoo/o-spreadsheet
6
- * @version 17.2.0
7
- * @date 2024-03-20T08:12:44.398Z
8
- * @hash 1869c24
6
+ * @version 17.2.1
7
+ * @date 2024-03-25T09:41:58.737Z
8
+ * @hash f97284c
9
9
  */
10
10
 
11
11
  import { reactive, useEnv, useSubEnv, useState, onWillUnmount, markRaw, toRaw, Component, useRef, onMounted, useEffect, onPatched, useComponent, onWillPatch, onWillUpdateProps, useExternalListener, onWillStart, xml, useChildSubEnv } from '@odoo/owl';
@@ -29,7 +29,6 @@ const DEFAULT_COLOR_SCALE_MIDPOINT_COLOR = 0xb6d7a8;
29
29
  const LINK_COLOR = "#017E84";
30
30
  const FILTERS_COLOR = "#188038";
31
31
  const BACKGROUND_HEADER_FILTER_COLOR = "#E6F4EA";
32
- const BACKGROUND_HEADER_SELECTED_FILTER_COLOR = "#CEEAD6";
33
32
  const SEPARATOR_COLOR = "#E0E2E4";
34
33
  const ICONS_COLOR = "#4A4F59";
35
34
  const HEADER_GROUPING_BACKGROUND_COLOR = "#F5F5F5";
@@ -8003,6 +8002,9 @@ class DependencyContainer {
8003
8002
  instantiate(Store, ...args) {
8004
8003
  return this.factory.build(Store, ...args);
8005
8004
  }
8005
+ resetStores() {
8006
+ this.dependencies.clear();
8007
+ }
8006
8008
  }
8007
8009
  class StoreFactory {
8008
8010
  get;
@@ -24213,14 +24215,19 @@ const categorieFunctionAll = {
24213
24215
  children: [allFunctionListMenuBuilder],
24214
24216
  };
24215
24217
  function allFunctionListMenuBuilder() {
24216
- const fnNames = functionRegistry.getKeys();
24218
+ const fnNames = functionRegistry.getKeys().filter((key) => !functionRegistry.get(key).hidden);
24217
24219
  return createFormulaFunctions(fnNames);
24218
24220
  }
24219
24221
  const categoriesFunctionListMenuBuilder = () => {
24220
24222
  const functions = functionRegistry.content;
24221
- const categories = [...new Set(functionRegistry.getAll().map((fn) => fn.category))].filter(isDefined$1);
24223
+ const categories = [
24224
+ ...new Set(functionRegistry
24225
+ .getAll()
24226
+ .filter((fn) => !fn.hidden)
24227
+ .map((fn) => fn.category)),
24228
+ ].filter(isDefined$1);
24222
24229
  return categories.sort().map((category, i) => {
24223
- const functionsInCategory = Object.keys(functions).filter((key) => functions[key].category === category);
24230
+ const functionsInCategory = Object.keys(functions).filter((key) => functions[key].category === category && !functions[key].hidden);
24224
24231
  return {
24225
24232
  name: category,
24226
24233
  children: createFormulaFunctions(functionsInCategory),
@@ -28378,11 +28385,9 @@ css /* scss */ `
28378
28385
  }
28379
28386
  .o-cell-is-operator {
28380
28387
  margin-bottom: 5px;
28381
- width: 96%;
28382
28388
  }
28383
28389
  .o-cell-is-value {
28384
28390
  margin-bottom: 5px;
28385
- width: 96%;
28386
28391
  }
28387
28392
  .o-color-picker-widget .o-color-picker-button {
28388
28393
  pointer-events: all;
@@ -31084,6 +31089,9 @@ class FigureComponent extends Component {
31084
31089
  el?.focus({ preventScroll: true });
31085
31090
  }
31086
31091
  }, () => [this.env.model.getters.getSelectedFigureId(), this.props.figure.id, this.figureRef.el]);
31092
+ onWillUnmount(() => {
31093
+ this.props.onFigureDeleted();
31094
+ });
31087
31095
  }
31088
31096
  clickAnchor(dirX, dirY, ev) {
31089
31097
  this.props.onClickAnchor(dirX, dirY, ev);
@@ -31102,6 +31110,7 @@ class FigureComponent extends Component {
31102
31110
  this.props.onFigureDeleted();
31103
31111
  ev.stopPropagation();
31104
31112
  ev.preventDefault();
31113
+ ev.stopPropagation();
31105
31114
  break;
31106
31115
  case "ArrowDown":
31107
31116
  case "ArrowLeft":
@@ -31122,6 +31131,7 @@ class FigureComponent extends Component {
31122
31131
  });
31123
31132
  ev.stopPropagation();
31124
31133
  ev.preventDefault();
31134
+ ev.stopPropagation();
31125
31135
  break;
31126
31136
  }
31127
31137
  }
@@ -31789,6 +31799,7 @@ function compareContentToSpanElement(content, node) {
31789
31799
  // -----------------------------------------------------------------------------
31790
31800
  css /* scss */ `
31791
31801
  .o-formula-assistant {
31802
+ background: #ffffff;
31792
31803
  .o-formula-assistant-head {
31793
31804
  background-color: #f2f2f2;
31794
31805
  padding: 10px;
@@ -31844,6 +31855,9 @@ class FunctionDescriptionProvider extends Component {
31844
31855
  this.assistantState.allowCellSelectionBehind = false;
31845
31856
  }, 2000);
31846
31857
  }
31858
+ get formulaArgSeparator() {
31859
+ return this.env.model.getters.getLocale().formulaArgSeparator + " ";
31860
+ }
31847
31861
  }
31848
31862
 
31849
31863
  const functions$2 = functionRegistry.content;
@@ -34613,19 +34627,16 @@ class GridRenderer {
34613
34627
  for (let col = left; col <= right; col++) {
34614
34628
  const colZone = { left: col, right: col, top: 0, bottom: numberOfRows - 1 };
34615
34629
  const { x, width } = this.getters.getVisibleRect(colZone);
34616
- const colHasFilter = this.getters.doesZonesContainFilter(sheetId, [colZone]);
34617
34630
  const isColActive = activeCols.has(col);
34618
34631
  const isColSelected = selectedCols.has(col);
34619
34632
  if (isColActive) {
34620
- ctx.fillStyle = colHasFilter ? FILTERS_COLOR : BACKGROUND_HEADER_ACTIVE_COLOR;
34633
+ ctx.fillStyle = BACKGROUND_HEADER_ACTIVE_COLOR;
34621
34634
  }
34622
34635
  else if (isColSelected) {
34623
- ctx.fillStyle = colHasFilter
34624
- ? BACKGROUND_HEADER_SELECTED_FILTER_COLOR
34625
- : BACKGROUND_HEADER_SELECTED_COLOR;
34636
+ ctx.fillStyle = BACKGROUND_HEADER_SELECTED_COLOR;
34626
34637
  }
34627
34638
  else {
34628
- ctx.fillStyle = colHasFilter ? BACKGROUND_HEADER_FILTER_COLOR : BACKGROUND_HEADER_COLOR;
34639
+ ctx.fillStyle = BACKGROUND_HEADER_COLOR;
34629
34640
  }
34630
34641
  ctx.fillRect(x, 0, width, HEADER_HEIGHT);
34631
34642
  }
@@ -34633,19 +34644,16 @@ class GridRenderer {
34633
34644
  for (let row = top; row <= bottom; row++) {
34634
34645
  const rowZone = { top: row, bottom: row, left: 0, right: numberOfCols - 1 };
34635
34646
  const { y, height } = this.getters.getVisibleRect(rowZone);
34636
- const rowHasFilter = this.getters.doesZonesContainFilter(sheetId, [rowZone]);
34637
34647
  const isRowActive = activeRows.has(row);
34638
34648
  const isRowSelected = selectedRows.has(row);
34639
34649
  if (isRowActive) {
34640
- ctx.fillStyle = rowHasFilter ? FILTERS_COLOR : BACKGROUND_HEADER_ACTIVE_COLOR;
34650
+ ctx.fillStyle = BACKGROUND_HEADER_ACTIVE_COLOR;
34641
34651
  }
34642
34652
  else if (isRowSelected) {
34643
- ctx.fillStyle = rowHasFilter
34644
- ? BACKGROUND_HEADER_SELECTED_FILTER_COLOR
34645
- : BACKGROUND_HEADER_SELECTED_COLOR;
34653
+ ctx.fillStyle = BACKGROUND_HEADER_SELECTED_COLOR;
34646
34654
  }
34647
34655
  else {
34648
- ctx.fillStyle = rowHasFilter ? BACKGROUND_HEADER_FILTER_COLOR : BACKGROUND_HEADER_COLOR;
34656
+ ctx.fillStyle = BACKGROUND_HEADER_COLOR;
34649
34657
  }
34650
34658
  ctx.fillRect(0, y, HEADER_WIDTH, height);
34651
34659
  }
@@ -44818,7 +44826,6 @@ class SheetPlugin extends CorePlugin {
44818
44826
 
44819
44827
  class TablePlugin extends CorePlugin {
44820
44828
  static getters = [
44821
- "doesZonesContainFilter",
44822
44829
  "getFilter",
44823
44830
  "getFilters",
44824
44831
  "getTable",
@@ -44975,10 +44982,6 @@ class TablePlugin extends CorePlugin {
44975
44982
  getTablesOverlappingZones(sheetId, zones) {
44976
44983
  return this.getTables(sheetId).filter((table) => zones.some((zone) => overlap(table.range.zone, zone)));
44977
44984
  }
44978
- doesZonesContainFilter(sheetId, zones) {
44979
- return (this.getTablesOverlappingZones(sheetId, zones).filter((table) => table.config.hasFilters)
44980
- .length > 0);
44981
- }
44982
44985
  getFilterHeaders(sheetId) {
44983
44986
  const headers = [];
44984
44987
  for (const table of this.getTables(sheetId)) {
@@ -52473,6 +52476,7 @@ class GridSelectionPlugin extends UIPlugin {
52473
52476
  this.gridSelection.zones = this.gridSelection.zones.map((z) => this.getters.expandZone(sheetId, z));
52474
52477
  this.gridSelection.anchor.zone = this.getters.expandZone(sheetId, this.gridSelection.anchor.zone);
52475
52478
  this.setSelectionMixin(this.gridSelection.anchor, this.gridSelection.zones);
52479
+ this.selectedFigureId = null;
52476
52480
  break;
52477
52481
  }
52478
52482
  /** Any change to the selection has to be reflected in the selection processor. */
@@ -56091,9 +56095,6 @@ css /* scss */ `
56091
56095
  .text-muted {
56092
56096
  color: grey !important;
56093
56097
  }
56094
- button {
56095
- color: #333;
56096
- }
56097
56098
  .o-disabled {
56098
56099
  opacity: 0.4;
56099
56100
  pointer: default;
@@ -56214,17 +56215,17 @@ css /* scss */ `
56214
56215
  }
56215
56216
 
56216
56217
  .o-button {
56217
- border: 1px solid lightgrey;
56218
+ border: 1px solid;
56218
56219
  padding: 0px 20px 0px 20px;
56219
56220
  border-radius: 4px;
56220
56221
  font-weight: 500;
56221
56222
  font-size: 14px;
56222
56223
  height: 30px;
56223
56224
  line-height: 16px;
56224
- background: white;
56225
56225
  margin-right: 8px;
56226
- &:hover:enabled {
56227
- background-color: rgba(0, 0, 0, 0.08);
56226
+
56227
+ &:not(:hover) {
56228
+ background-color: transparent;
56228
56229
  }
56229
56230
 
56230
56231
  &:enabled {
@@ -56238,6 +56239,15 @@ css /* scss */ `
56238
56239
  &:last-child {
56239
56240
  margin-right: 0px;
56240
56241
  }
56242
+
56243
+ &.o-button-grey {
56244
+ border-color: lightgrey;
56245
+ background: #ffffff;
56246
+ color: #333;
56247
+ &:hover:enabled {
56248
+ background-color: rgba(0, 0, 0, 0.08);
56249
+ }
56250
+ }
56241
56251
  }
56242
56252
 
56243
56253
  .o-input {
@@ -60124,6 +60134,6 @@ const constants = {
60124
60134
  export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, 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 };
60125
60135
 
60126
60136
 
60127
- __info__.version = "17.2.0";
60128
- __info__.date = "2024-03-20T08:12:44.398Z";
60129
- __info__.hash = "1869c24";
60137
+ __info__.version = "17.2.1";
60138
+ __info__.date = "2024-03-25T09:41:58.737Z";
60139
+ __info__.hash = "f97284c";