@odoo/o-spreadsheet 16.2.6 → 16.2.8

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.
@@ -16863,7 +16863,7 @@ class LineBarPieConfigPanel extends owl.Component {
16863
16863
  return !!((_a = this.state.labelsDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(33 /* CommandResult.InvalidLabelRange */));
16864
16864
  }
16865
16865
  onUpdateDataSetsHaveTitle(ev) {
16866
- this.props.updateChart({
16866
+ this.props.updateChart(this.props.figureId, {
16867
16867
  dataSetsHaveTitle: ev.target.checked,
16868
16868
  });
16869
16869
  }
@@ -16875,7 +16875,7 @@ class LineBarPieConfigPanel extends owl.Component {
16875
16875
  this.dataSeriesRanges = ranges;
16876
16876
  }
16877
16877
  onDataSeriesConfirmed() {
16878
- this.state.datasetDispatchResult = this.props.updateChart({
16878
+ this.state.datasetDispatchResult = this.props.updateChart(this.props.figureId, {
16879
16879
  dataSets: this.dataSeriesRanges,
16880
16880
  });
16881
16881
  }
@@ -16887,12 +16887,12 @@ class LineBarPieConfigPanel extends owl.Component {
16887
16887
  this.labelRange = ranges[0];
16888
16888
  }
16889
16889
  onLabelRangeConfirmed() {
16890
- this.state.labelsDispatchResult = this.props.updateChart({
16890
+ this.state.labelsDispatchResult = this.props.updateChart(this.props.figureId, {
16891
16891
  labelRange: this.labelRange,
16892
16892
  });
16893
16893
  }
16894
16894
  onUpdateAggregated(ev) {
16895
- this.props.updateChart({
16895
+ this.props.updateChart(this.props.figureId, {
16896
16896
  aggregated: ev.target.checked,
16897
16897
  });
16898
16898
  }
@@ -16907,12 +16907,12 @@ LineBarPieConfigPanel.props = {
16907
16907
 
16908
16908
  class BarConfigPanel extends LineBarPieConfigPanel {
16909
16909
  onUpdateStacked(ev) {
16910
- this.props.updateChart({
16910
+ this.props.updateChart(this.props.figureId, {
16911
16911
  stacked: ev.target.checked,
16912
16912
  });
16913
16913
  }
16914
16914
  onUpdateAggregated(ev) {
16915
- this.props.updateChart({
16915
+ this.props.updateChart(this.props.figureId, {
16916
16916
  aggregated: ev.target.checked,
16917
16917
  });
16918
16918
  }
@@ -16950,6 +16950,18 @@ css /* scss */ `
16950
16950
  grid-template-columns: repeat(${ITEMS_PER_LINE}, 1fr);
16951
16951
  grid-gap: ${ITEM_HORIZONTAL_MARGIN * 2}px;
16952
16952
  }
16953
+ .o-color-picker-toggler {
16954
+ display: flex;
16955
+ .o-color-picker-toggler-sign {
16956
+ margin: auto auto;
16957
+ width: 55%;
16958
+ height: 55%;
16959
+ .o-icon {
16960
+ width: 100%;
16961
+ height: 100%;
16962
+ }
16963
+ }
16964
+ }
16953
16965
  .o-color-picker-line-item {
16954
16966
  width: ${ITEM_EDGE_LENGTH}px;
16955
16967
  height: ${ITEM_EDGE_LENGTH}px;
@@ -17243,17 +17255,17 @@ class LineBarPieDesignPanel extends owl.Component {
17243
17255
  this.state.fillColorTool = !this.state.fillColorTool;
17244
17256
  }
17245
17257
  updateBackgroundColor(color) {
17246
- this.props.updateChart({
17258
+ this.props.updateChart(this.props.figureId, {
17247
17259
  background: color,
17248
17260
  });
17249
17261
  }
17250
17262
  updateTitle(ev) {
17251
- this.props.updateChart({
17263
+ this.props.updateChart(this.props.figureId, {
17252
17264
  title: ev.target.value,
17253
17265
  });
17254
17266
  }
17255
17267
  updateSelect(attr, ev) {
17256
- this.props.updateChart({
17268
+ this.props.updateChart(this.props.figureId, {
17257
17269
  [attr]: ev.target.value,
17258
17270
  });
17259
17271
  }
@@ -17291,7 +17303,7 @@ class GaugeChartConfigPanel extends owl.Component {
17291
17303
  this.dataRange = ranges[0];
17292
17304
  }
17293
17305
  updateDataRange() {
17294
- this.state.dataRangeDispatchResult = this.props.updateChart({
17306
+ this.state.dataRangeDispatchResult = this.props.updateChart(this.props.figureId, {
17295
17307
  dataRange: this.dataRange,
17296
17308
  });
17297
17309
  }
@@ -17353,12 +17365,12 @@ class GaugeChartDesignPanel extends owl.Component {
17353
17365
  }
17354
17366
  updateBackgroundColor(color) {
17355
17367
  this.state.openedMenu = undefined;
17356
- this.props.updateChart({
17368
+ this.props.updateChart(this.props.figureId, {
17357
17369
  background: color,
17358
17370
  });
17359
17371
  }
17360
17372
  updateTitle(ev) {
17361
- this.props.updateChart({
17373
+ this.props.updateChart(this.props.figureId, {
17362
17374
  title: ev.target.value,
17363
17375
  });
17364
17376
  }
@@ -17427,7 +17439,7 @@ class GaugeChartDesignPanel extends owl.Component {
17427
17439
  }
17428
17440
  }
17429
17441
  updateSectionRule(sectionRule) {
17430
- this.state.sectionRuleDispatchResult = this.props.updateChart({
17442
+ this.state.sectionRuleDispatchResult = this.props.updateChart(this.props.figureId, {
17431
17443
  sectionRule,
17432
17444
  });
17433
17445
  }
@@ -17452,17 +17464,17 @@ class LineConfigPanel extends LineBarPieConfigPanel {
17452
17464
  return false;
17453
17465
  }
17454
17466
  onUpdateLabelsAsText(ev) {
17455
- this.props.updateChart({
17467
+ this.props.updateChart(this.props.figureId, {
17456
17468
  labelsAsText: ev.target.checked,
17457
17469
  });
17458
17470
  }
17459
17471
  onUpdateStacked(ev) {
17460
- this.props.updateChart({
17472
+ this.props.updateChart(this.props.figureId, {
17461
17473
  stacked: ev.target.checked,
17462
17474
  });
17463
17475
  }
17464
17476
  onUpdateAggregated(ev) {
17465
- this.props.updateChart({
17477
+ this.props.updateChart(this.props.figureId, {
17466
17478
  aggregated: ev.target.checked,
17467
17479
  });
17468
17480
  }
@@ -17503,7 +17515,7 @@ class ScorecardChartConfigPanel extends owl.Component {
17503
17515
  this.keyValue = ranges[0];
17504
17516
  }
17505
17517
  updateKeyValueRange() {
17506
- this.state.keyValueDispatchResult = this.props.updateChart({
17518
+ this.state.keyValueDispatchResult = this.props.updateChart(this.props.figureId, {
17507
17519
  keyValue: this.keyValue,
17508
17520
  });
17509
17521
  }
@@ -17511,12 +17523,12 @@ class ScorecardChartConfigPanel extends owl.Component {
17511
17523
  this.baseline = ranges[0];
17512
17524
  }
17513
17525
  updateBaselineRange() {
17514
- this.state.baselineDispatchResult = this.props.updateChart({
17526
+ this.state.baselineDispatchResult = this.props.updateChart(this.props.figureId, {
17515
17527
  baseline: this.baseline,
17516
17528
  });
17517
17529
  }
17518
17530
  updateBaselineMode(ev) {
17519
- this.props.updateChart({ baselineMode: ev.target.value });
17531
+ this.props.updateChart(this.props.figureId, { baselineMode: ev.target.value });
17520
17532
  }
17521
17533
  }
17522
17534
  ScorecardChartConfigPanel.template = "o-spreadsheet-ScorecardChartConfigPanel";
@@ -17538,12 +17550,12 @@ class ScorecardChartDesignPanel extends owl.Component {
17538
17550
  owl.useExternalListener(window, "click", this.closeMenus);
17539
17551
  }
17540
17552
  updateTitle(ev) {
17541
- this.props.updateChart({
17553
+ this.props.updateChart(this.props.figureId, {
17542
17554
  title: ev.target.value,
17543
17555
  });
17544
17556
  }
17545
17557
  updateBaselineDescr(ev) {
17546
- this.props.updateChart({ baselineDescr: ev.target.value });
17558
+ this.props.updateChart(this.props.figureId, { baselineDescr: ev.target.value });
17547
17559
  }
17548
17560
  toggleColorPicker(colorPickerId) {
17549
17561
  if (this.state.openedColorPicker === colorPickerId) {
@@ -17556,13 +17568,13 @@ class ScorecardChartDesignPanel extends owl.Component {
17556
17568
  setColor(color, colorPickerId) {
17557
17569
  switch (colorPickerId) {
17558
17570
  case "backgroundColor":
17559
- this.props.updateChart({ background: color });
17571
+ this.props.updateChart(this.props.figureId, { background: color });
17560
17572
  break;
17561
17573
  case "baselineColorDown":
17562
- this.props.updateChart({ baselineColorDown: color });
17574
+ this.props.updateChart(this.props.figureId, { baselineColorDown: color });
17563
17575
  break;
17564
17576
  case "baselineColorUp":
17565
- this.props.updateChart({ baselineColorUp: color });
17577
+ this.props.updateChart(this.props.figureId, { baselineColorUp: color });
17566
17578
  break;
17567
17579
  }
17568
17580
  this.closeMenus();
@@ -17627,16 +17639,9 @@ css /* scss */ `
17627
17639
  }
17628
17640
  `;
17629
17641
  class ChartPanel extends owl.Component {
17630
- constructor() {
17631
- super(...arguments);
17632
- this.shouldUpdateChart = true;
17633
- }
17634
17642
  get figureId() {
17635
17643
  return this.state.figureId;
17636
17644
  }
17637
- get sheetId() {
17638
- return this.state.sheetId;
17639
- }
17640
17645
  setup() {
17641
17646
  const selectedFigureId = this.env.model.getters.getSelectedFigureId();
17642
17647
  if (!selectedFigureId) {
@@ -17645,17 +17650,11 @@ class ChartPanel extends owl.Component {
17645
17650
  this.state = owl.useState({
17646
17651
  panel: "configuration",
17647
17652
  figureId: selectedFigureId,
17648
- sheetId: this.env.model.getters.getActiveSheetId(),
17649
17653
  });
17650
17654
  owl.onWillUpdateProps(() => {
17651
17655
  const selectedFigureId = this.env.model.getters.getSelectedFigureId();
17652
17656
  if (selectedFigureId && selectedFigureId !== this.state.figureId) {
17653
17657
  this.state.figureId = selectedFigureId;
17654
- this.state.sheetId = this.env.model.getters.getActiveSheetId();
17655
- this.shouldUpdateChart = false;
17656
- }
17657
- else {
17658
- this.shouldUpdateChart = true;
17659
17658
  }
17660
17659
  if (!this.env.model.getters.isChartDefined(this.figureId)) {
17661
17660
  this.props.onCloseSidePanel();
@@ -17663,8 +17662,8 @@ class ChartPanel extends owl.Component {
17663
17662
  }
17664
17663
  });
17665
17664
  }
17666
- updateChart(updateDefinition) {
17667
- if (!this.shouldUpdateChart) {
17665
+ updateChart(figureId, updateDefinition) {
17666
+ if (figureId !== this.figureId) {
17668
17667
  return;
17669
17668
  }
17670
17669
  const definition = {
@@ -17673,8 +17672,8 @@ class ChartPanel extends owl.Component {
17673
17672
  };
17674
17673
  return this.env.model.dispatch("UPDATE_CHART", {
17675
17674
  definition,
17676
- id: this.figureId,
17677
- sheetId: this.sheetId,
17675
+ id: figureId,
17676
+ sheetId: this.env.model.getters.getFigureSheetId(figureId),
17678
17677
  });
17679
17678
  }
17680
17679
  onTypeChange(type) {
@@ -17686,7 +17685,7 @@ class ChartPanel extends owl.Component {
17686
17685
  this.env.model.dispatch("UPDATE_CHART", {
17687
17686
  definition,
17688
17687
  id: this.figureId,
17689
- sheetId: this.sheetId,
17688
+ sheetId: this.env.model.getters.getFigureSheetId(this.figureId),
17690
17689
  });
17691
17690
  }
17692
17691
  get chartPanel() {
@@ -19542,7 +19541,14 @@ class ContentEditableHelper {
19542
19541
  current = it.next();
19543
19542
  }
19544
19543
  if (current.value !== nodeToFind) {
19545
- throw new Error("Cannot find the node in the children of the element");
19544
+ /** This situation can happen if the code is called while the selection is not currently on the ContentEditableHelper.
19545
+ * In this case, we return 0 because we don't know the size of the text before the selection.
19546
+ *
19547
+ * A known occurence is triggered since the introduction of commit d4663158 (PR #2038).
19548
+ *
19549
+ * FIXME: find a way to test eventhough the selection API is not available in jsDOM.
19550
+ */
19551
+ return 0;
19546
19552
  }
19547
19553
  else {
19548
19554
  if (!current.value.hasChildNodes()) {
@@ -23049,6 +23055,16 @@ const XLSX_INDEXED_COLORS = {
23049
23055
  63: "333333",
23050
23056
  64: "000000",
23051
23057
  65: "FFFFFF", // system background
23058
+ };
23059
+ const IMAGE_MIMETYPE_EXTENSION_MAPPING = {
23060
+ "image/avif": "avif",
23061
+ "image/bmp": "bmp",
23062
+ "image/gif": "gif",
23063
+ "image/vnd.microsoft.icon": "ico",
23064
+ "image/jpeg": "jpeg",
23065
+ "image/png": "png",
23066
+ "image/tiff": "tiff",
23067
+ "image/webp": "webp",
23052
23068
  };
23053
23069
 
23054
23070
  /**
@@ -25485,6 +25501,11 @@ function createOverride(partName, contentType) {
25485
25501
  <Override ContentType="${contentType}" PartName="${partName}" />
25486
25502
  `;
25487
25503
  }
25504
+ function createDefaultXMLElement(extension, contentType) {
25505
+ return escapeXml /*xml*/ `
25506
+ <Default Extension="${extension}" ContentType="${contentType}" />
25507
+ `;
25508
+ }
25488
25509
  function joinXmlNodes(xmlNodes) {
25489
25510
  return new XMLString(xmlNodes.join("\n"));
25490
25511
  }
@@ -37078,7 +37099,8 @@ class SheetUIPlugin extends UIPlugin {
37078
37099
  getCellWidth(position) {
37079
37100
  const text = this.getCellText(position);
37080
37101
  const style = this.getters.getCellComputedStyle(position);
37081
- let contentWidth = this.getTextWidth(text, style);
37102
+ const multiLineText = text.split(NEWLINE);
37103
+ let contentWidth = Math.max(...multiLineText.map((line) => this.getTextWidth(line, style)));
37082
37104
  const icon = this.getters.getConditionalIcon(position);
37083
37105
  if (icon) {
37084
37106
  contentWidth += computeIconWidth(this.getters.getCellStyle(position));
@@ -39545,7 +39567,7 @@ class ImageProvider {
39545
39567
  const file = await this.getImageFromUser();
39546
39568
  const path = await this.fileStore.upload(file);
39547
39569
  const size = await this.getImageSize(path);
39548
- return { path, size };
39570
+ return { path, size, mimetype: file.type };
39549
39571
  }
39550
39572
  getImageFromUser() {
39551
39573
  return new Promise((resolve, reject) => {
@@ -44611,8 +44633,7 @@ function createWorksheets(data, construct) {
44611
44633
  // Figures and Charts
44612
44634
  let drawingNode = escapeXml ``;
44613
44635
  const drawingRelIds = [];
44614
- const charts = sheet.charts;
44615
- for (const chart of charts) {
44636
+ for (const chart of sheet.charts) {
44616
44637
  const xlsxChartId = convertChartId(chart.id);
44617
44638
  const chartRelId = addRelsToFile(construct.relsFiles, `xl/drawings/_rels/drawing${sheetIndex}.xml.rels`, {
44618
44639
  target: `../charts/chart${xlsxChartId}.xml`,
@@ -44621,20 +44642,27 @@ function createWorksheets(data, construct) {
44621
44642
  drawingRelIds.push(chartRelId);
44622
44643
  files.push(createXMLFile(createChart(chart, sheetIndex, data), `xl/charts/chart${xlsxChartId}.xml`, "chart"));
44623
44644
  }
44624
- const images = sheet.images;
44625
- for (const image of images) {
44645
+ for (const image of sheet.images) {
44646
+ const mimeType = image.data.mimetype;
44647
+ if (mimeType === undefined)
44648
+ continue;
44649
+ const extension = IMAGE_MIMETYPE_EXTENSION_MAPPING[mimeType];
44650
+ // only support exporting images with mimetypes specified in the mapping
44651
+ if (extension === undefined)
44652
+ continue;
44626
44653
  const xlsxImageId = convertImageId(image.id);
44654
+ let imageFileName = `image${xlsxImageId}.${extension}`;
44627
44655
  const imageRelId = addRelsToFile(construct.relsFiles, `xl/drawings/_rels/drawing${sheetIndex}.xml.rels`, {
44628
- target: `../media/image${xlsxImageId}`,
44656
+ target: `../media/${imageFileName}`,
44629
44657
  type: XLSX_RELATION_TYPE.image,
44630
44658
  });
44631
44659
  drawingRelIds.push(imageRelId);
44632
44660
  files.push({
44633
- path: `xl/media/image${xlsxImageId}`,
44634
- imagePath: image.data.path,
44661
+ path: `xl/media/${imageFileName}`,
44662
+ imageSrc: image.data.path,
44635
44663
  });
44636
44664
  }
44637
- const drawings = [...charts, ...images];
44665
+ const drawings = [...sheet.charts, ...sheet.images];
44638
44666
  if (drawings.length) {
44639
44667
  const drawingRelId = addRelsToFile(construct.relsFiles, `xl/worksheets/_rels/sheet${sheetIndex}.xml.rels`, {
44640
44668
  target: `../drawings/drawing${sheetIndex}.xml`,
@@ -44753,6 +44781,8 @@ function createRelsFiles(relsFiles) {
44753
44781
  }
44754
44782
  function createContentTypes(files) {
44755
44783
  const overrideNodes = [];
44784
+ // hard-code supported image mimetypes
44785
+ const imageDefaultNodes = Object.entries(IMAGE_MIMETYPE_EXTENSION_MAPPING).map(([mimetype, extension]) => createDefaultXMLElement(extension, mimetype));
44756
44786
  for (const file of files) {
44757
44787
  if ("contentType" in file && file.contentType) {
44758
44788
  overrideNodes.push(createOverride("/" + file.path, CONTENT_TYPES[file.contentType]));
@@ -44760,6 +44790,7 @@ function createContentTypes(files) {
44760
44790
  }
44761
44791
  const xml = escapeXml /*xml*/ `
44762
44792
  <Types xmlns="${NAMESPACE["Types"]}">
44793
+ ${joinXmlNodes(Object.values(imageDefaultNodes))}
44763
44794
  <Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />
44764
44795
  <Default Extension="xml" ContentType="application/xml" />
44765
44796
  ${joinXmlNodes(overrideNodes)}
@@ -45319,6 +45350,6 @@ exports.setTranslationMethod = setTranslationMethod;
45319
45350
  exports.tokenize = tokenize;
45320
45351
 
45321
45352
 
45322
- __info__.version = '16.2.6';
45323
- __info__.date = '2023-05-12T10:58:25.815Z';
45324
- __info__.hash = '6848d25';
45353
+ __info__.version = '16.2.8';
45354
+ __info__.date = '2023-06-02T10:12:43.068Z';
45355
+ __info__.hash = 'b474e62';
@@ -358,7 +358,7 @@ interface XLSXExportXMLFile {
358
358
  }
359
359
  interface XLSXExportImageFile {
360
360
  path: string;
361
- imagePath: string;
361
+ imageSrc: string;
362
362
  }
363
363
  interface XLSXExport {
364
364
  name: string;
@@ -635,6 +635,7 @@ declare type ResizeDirection = -1 | 0 | 1;
635
635
  interface Image {
636
636
  path: string;
637
637
  size: FigureSize;
638
+ mimetype?: string;
638
639
  }
639
640
 
640
641
  interface CellData {
@@ -4920,7 +4921,7 @@ declare class SelectionInput extends Component<Props$B, SpreadsheetChildEnv> {
4920
4921
  interface Props$A {
4921
4922
  figureId: UID;
4922
4923
  definition: LineChartDefinition | BarChartDefinition | PieChartDefinition;
4923
- updateChart: (definition: Partial<LineChartDefinition | BarChartDefinition | PieChartDefinition>) => DispatchResult;
4924
+ updateChart: (figureId: UID, definition: Partial<LineChartDefinition | BarChartDefinition | PieChartDefinition>) => DispatchResult;
4924
4925
  }
4925
4926
  declare class LineBarPieConfigPanel extends Component<Props$A, SpreadsheetChildEnv> {
4926
4927
  static template: string;
@@ -5065,7 +5066,7 @@ declare class ColorPickerWidget extends Component<Props$z, SpreadsheetChildEnv>
5065
5066
  interface Props$y {
5066
5067
  figureId: UID;
5067
5068
  definition: LineChartDefinition | BarChartDefinition | PieChartDefinition;
5068
- updateChart: (definition: Partial<LineChartDefinition | BarChartDefinition | PieChartDefinition>) => CommandResult | CommandResult[];
5069
+ updateChart: (figureId: UID, definition: Partial<LineChartDefinition | BarChartDefinition | PieChartDefinition>) => CommandResult | CommandResult[];
5069
5070
  }
5070
5071
  declare class LineBarPieDesignPanel extends Component<Props$y, SpreadsheetChildEnv> {
5071
5072
  static template: string;
@@ -5084,7 +5085,7 @@ declare class LineBarPieDesignPanel extends Component<Props$y, SpreadsheetChildE
5084
5085
  interface Props$x {
5085
5086
  figureId: UID;
5086
5087
  definition: GaugeChartDefinition;
5087
- updateChart: (definition: Partial<GaugeChartDefinition>) => DispatchResult;
5088
+ updateChart: (figureId: UID, definition: Partial<GaugeChartDefinition>) => DispatchResult;
5088
5089
  }
5089
5090
  declare class GaugeChartConfigPanel extends Component<Props$x, SpreadsheetChildEnv> {
5090
5091
  static template: string;
@@ -5103,7 +5104,7 @@ declare type GaugeMenu = "backgroundColor" | "sectionColor-lowerColor" | "sectio
5103
5104
  interface Props$w {
5104
5105
  figureId: UID;
5105
5106
  definition: GaugeChartDefinition;
5106
- updateChart: (definition: Partial<GaugeChartDefinition>) => DispatchResult;
5107
+ updateChart: (figureId: UID, definition: Partial<GaugeChartDefinition>) => DispatchResult;
5107
5108
  }
5108
5109
  declare class GaugeChartDesignPanel extends Component<Props$w, SpreadsheetChildEnv> {
5109
5110
  static template: string;
@@ -5140,7 +5141,7 @@ declare class LineConfigPanel extends LineBarPieConfigPanel {
5140
5141
  interface Props$v {
5141
5142
  figureId: UID;
5142
5143
  definition: ScorecardChartDefinition;
5143
- updateChart: (definition: Partial<ScorecardChartDefinition>) => DispatchResult;
5144
+ updateChart: (figureId: UID, definition: Partial<ScorecardChartDefinition>) => DispatchResult;
5144
5145
  }
5145
5146
  declare class ScorecardChartConfigPanel extends Component<Props$v, SpreadsheetChildEnv> {
5146
5147
  static template: string;
@@ -5164,7 +5165,7 @@ declare type ColorPickerId = undefined | "backgroundColor" | "baselineColorUp" |
5164
5165
  interface Props$u {
5165
5166
  figureId: UID;
5166
5167
  definition: ScorecardChartDefinition;
5167
- updateChart: (definition: Partial<ScorecardChartDefinition>) => DispatchResult;
5168
+ updateChart: (figureId: UID, definition: Partial<ScorecardChartDefinition>) => DispatchResult;
5168
5169
  }
5169
5170
  declare class ScorecardChartDesignPanel extends Component<Props$u, SpreadsheetChildEnv> {
5170
5171
  static template: string;
@@ -6571,11 +6572,9 @@ interface Props {
6571
6572
  declare class ChartPanel extends Component<Props, SpreadsheetChildEnv> {
6572
6573
  static template: string;
6573
6574
  private state;
6574
- private shouldUpdateChart;
6575
6575
  get figureId(): UID;
6576
- get sheetId(): UID;
6577
6576
  setup(): void;
6578
- updateChart<T extends ChartDefinition>(updateDefinition: Partial<T>): DispatchResult | undefined;
6577
+ updateChart<T extends ChartDefinition>(figureId: UID, updateDefinition: Partial<T>): DispatchResult | undefined;
6579
6578
  onTypeChange(type: ChartType): void;
6580
6579
  get chartPanel(): ChartSidePanel;
6581
6580
  private getChartDefinition;