@odoo/o-spreadsheet 18.5.0-alpha.5 → 18.5.0-alpha.7

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.
@@ -1,9 +1,9 @@
1
1
  <!--
2
2
  This file is generated by o-spreadsheet build tools. Do not edit it.
3
3
  @see https://github.com/odoo/o-spreadsheet
4
- @version 18.5.0-alpha.5
5
- @date 2025-08-04T06:54:17.389Z
6
- @hash 71c9a36
4
+ @version 18.5.0-alpha.7
5
+ @date 2025-08-08T11:01:32.306Z
6
+ @hash 1019d55
7
7
  -->
8
8
  <odoo>
9
9
  <t t-name="o-spreadsheet-ValidationMessages">
@@ -989,6 +989,12 @@
989
989
  allGranularities="getGranularitiesFor(col)"
990
990
  />
991
991
  <PivotDimensionOrder dimension="col" onUpdated.bind="this.updateOrder"/>
992
+ <PivotCustomGroupsCollapsible
993
+ t-if="col.isCustomField"
994
+ pivotId="props.pivotId"
995
+ customField="getCustomField(col)"
996
+ onCustomFieldUpdated="props.onDimensionsUpdated"
997
+ />
992
998
  </PivotDimension>
993
999
  </div>
994
1000
  </t>
@@ -1015,6 +1021,12 @@
1015
1021
  allGranularities="getGranularitiesFor(row)"
1016
1022
  />
1017
1023
  <PivotDimensionOrder dimension="row" onUpdated.bind="this.updateOrder"/>
1024
+ <PivotCustomGroupsCollapsible
1025
+ t-if="row.isCustomField"
1026
+ pivotId="props.pivotId"
1027
+ customField="getCustomField(row)"
1028
+ onCustomFieldUpdated="props.onDimensionsUpdated"
1029
+ />
1018
1030
  </PivotDimension>
1019
1031
  </div>
1020
1032
  </t>
@@ -1243,6 +1255,42 @@
1243
1255
  </Section>
1244
1256
  </t>
1245
1257
 
1258
+ <t t-name="o-spreadsheet-PivotCustomGroupsCollapsible">
1259
+ <SidePanelCollapsible
1260
+ class="'o-pivot-custom-groups'"
1261
+ isInitiallyCollapsed="true"
1262
+ title.translate="Groups">
1263
+ <t t-set-slot="content">
1264
+ <div class="ps-4">
1265
+ <div
1266
+ t-foreach="groups"
1267
+ t-as="group"
1268
+ t-key="group_index"
1269
+ class="o-pivot-custom-group pb-1">
1270
+ <div
1271
+ class="d-flex align-items-center justify-content-between small"
1272
+ t-on-pointerdown.stop="">
1273
+ <TextInput
1274
+ value="group.name"
1275
+ onChange="(newName) => this.onRenameGroup(group_index, newName)"
1276
+ />
1277
+ <i
1278
+ class="o-button-icon ps-3 fa fa-trash"
1279
+ t-on-click="() => this.onDeleteGroup(group_index)"
1280
+ />
1281
+ </div>
1282
+ </div>
1283
+ <div
1284
+ t-if="!hasOthersGroup"
1285
+ class="o-button-link o-add-others-group small pb-1"
1286
+ t-on-click="() => this.addOthersGroup()">
1287
+ <span>+ &quot;Others&quot; group</span>
1288
+ </div>
1289
+ </div>
1290
+ </t>
1291
+ </SidePanelCollapsible>
1292
+ </t>
1293
+
1246
1294
  <t t-name="o-spreadsheet-MoreFormatsPanel">
1247
1295
  <div class="o-more-formats-panel">
1248
1296
  <div
@@ -2213,11 +2261,12 @@
2213
2261
 
2214
2262
  <t t-name="o-spreadsheet-SidePanelCollapsible">
2215
2263
  <div class="" t-att-class="props.class">
2216
- <div class="o_side_panel_collapsible_title o-fw-bold d-flex align-items-center">
2264
+ <div
2265
+ class="o_side_panel_collapsible_title o-fw-bold d-flex align-items-center"
2266
+ t-on-click="() => this.toggle()">
2217
2267
  <div
2218
2268
  class="collapsor w-100 d-flex align-items-center ps-1"
2219
- t-att-class="state.isCollapsed ? 'collapsed' : ''"
2220
- t-on-click="() => this.toggle()">
2269
+ t-att-class="state.isCollapsed ? 'collapsed' : ''">
2221
2270
  <span class="collapsor-arrow">
2222
2271
  <t t-call="o-spreadsheet-Icon.ANGLE_DOWN"/>
2223
2272
  </span>
@@ -2361,7 +2410,7 @@
2361
2410
  <t t-set-slot="content">
2362
2411
  <AxisDesignEditor
2363
2412
  axesList="axesList"
2364
- figureId="props.figureId"
2413
+ chartId="props.chartId"
2365
2414
  definition="props.definition"
2366
2415
  updateChart="props.updateChart"
2367
2416
  />
@@ -2383,14 +2432,14 @@
2383
2432
 
2384
2433
  <t t-if="coloringOptions.type === 'categoryColor'">
2385
2434
  <TreeMapCategoryColors
2386
- figureId="props.figureId"
2435
+ chartId="props.chartId"
2387
2436
  definition="props.definition"
2388
2437
  onColorChanged.bind="onCategoryColorChange"
2389
2438
  />
2390
2439
  </t>
2391
2440
  <t t-else="">
2392
2441
  <TreeMapColorScale
2393
- figureId="props.figureId"
2442
+ chartId="props.chartId"
2394
2443
  definition="props.definition"
2395
2444
  onColorChanged.bind="onColorScaleChange"
2396
2445
  />
@@ -2406,13 +2455,13 @@
2406
2455
  name="'showHeaders'"
2407
2456
  label.translate="Show headers"
2408
2457
  value="showHeaders"
2409
- onChange="(showHeaders) => props.updateChart(this.props.figureId, { showHeaders })"
2458
+ onChange="(showHeaders) => props.updateChart(this.props.chartId, { showHeaders })"
2410
2459
  />
2411
2460
  </Section>
2412
2461
  <Section class="'pt-0'" t-if="showHeaders">
2413
2462
  <TextStyler
2414
2463
  class="'pt-0 o-header-style'"
2415
- updateStyle="(headerDesign) => props.updateChart(this.props.figureId, { headerDesign })"
2464
+ updateStyle="(headerDesign) => props.updateChart(this.props.chartId, { headerDesign })"
2416
2465
  style="props.definition.headerDesign || {}"
2417
2466
  defaultStyle="defaults.headerDesign"
2418
2467
  hasBackgroundColor="true"
@@ -2425,7 +2474,7 @@
2425
2474
  name="'showLabels'"
2426
2475
  label.translate="Show labels"
2427
2476
  value="showLabels"
2428
- onChange="(showLabels) => props.updateChart(this.props.figureId, { showLabels })"
2477
+ onChange="(showLabels) => props.updateChart(this.props.chartId, { showLabels })"
2429
2478
  />
2430
2479
  <ChartShowValues t-props="props" defaultValue="defaults.showValues"/>
2431
2480
  </div>
@@ -2433,7 +2482,7 @@
2433
2482
  <Section class="'pt-0'" t-if="showValues || showLabels">
2434
2483
  <TextStyler
2435
2484
  class="'pt-0 o-values-style'"
2436
- updateStyle="(valuesDesign) => props.updateChart(this.props.figureId, { valuesDesign })"
2485
+ updateStyle="(valuesDesign) => props.updateChart(this.props.chartId, { valuesDesign })"
2437
2486
  style="props.definition.valuesDesign || {}"
2438
2487
  defaultStyle="defaults.valuesDesign"
2439
2488
  hasVerticalAlign="true"
@@ -2524,7 +2573,7 @@
2524
2573
  name="'showLabels'"
2525
2574
  label.translate="Show labels"
2526
2575
  value="showLabels"
2527
- onChange="(showLabels) => props.updateChart(this.props.figureId, { showLabels })"
2576
+ onChange="(showLabels) => props.updateChart(this.props.chartId, { showLabels })"
2528
2577
  />
2529
2578
  <ChartShowValues t-props="props" defaultValue="defaults.showValues"/>
2530
2579
  </div>
@@ -2532,7 +2581,7 @@
2532
2581
  <Section class="'pt-0'" t-if="showValues || showLabels">
2533
2582
  <TextStyler
2534
2583
  class="'o-values-style'"
2535
- updateStyle="(valuesDesign) => props.updateChart(this.props.figureId, { valuesDesign })"
2584
+ updateStyle="(valuesDesign) => props.updateChart(this.props.chartId, { valuesDesign })"
2536
2585
  style="props.definition.valuesDesign || {}"
2537
2586
  defaultStyle="defaults.valuesDesign"
2538
2587
  />
@@ -2691,7 +2740,7 @@
2691
2740
  </t>
2692
2741
 
2693
2742
  <t t-name="o-spreadsheet-ChartPanel">
2694
- <div class="o-chart d-flex flex-column h-100" t-if="figureId">
2743
+ <div class="o-chart d-flex flex-column h-100" t-if="chartId">
2695
2744
  <div class="o-panel">
2696
2745
  <div
2697
2746
  class="o-panel-element o-panel-configuration"
@@ -2709,27 +2758,27 @@
2709
2758
  </div>
2710
2759
  </div>
2711
2760
 
2712
- <t t-set="definition" t-value="getChartDefinition(this.figureId)"/>
2761
+ <t t-set="definition" t-value="getChartDefinition(this.chartId)"/>
2713
2762
  <div class="o-panel-content overflow-y-auto" t-ref="panelContent">
2714
2763
  <div t-att-class="store.panel !== 'configuration' ? 'd-none' : ''">
2715
- <ChartTypePicker figureId="props.figureId" chartPanelStore="store"/>
2764
+ <ChartTypePicker chartId="chartId" chartPanelStore="store"/>
2716
2765
  <t
2717
2766
  t-component="chartPanel.configuration"
2718
2767
  definition="definition"
2719
- figureId="figureId"
2768
+ chartId="chartId"
2720
2769
  updateChart.bind="updateChart"
2721
2770
  canUpdateChart.bind="canUpdateChart"
2722
- t-key="figureId + definition.type"
2771
+ t-key="chartId + definition.type"
2723
2772
  />
2724
2773
  </div>
2725
2774
  <div t-att-class="store.panel !== 'design' ? 'd-none' : ''">
2726
2775
  <t
2727
2776
  t-component="chartPanel.design"
2728
2777
  definition="definition"
2729
- figureId="figureId"
2778
+ chartId="chartId"
2730
2779
  updateChart.bind="updateChart"
2731
2780
  canUpdateChart.bind="canUpdateChart"
2732
- t-key="figureId + definition.type"
2781
+ t-key="chartId + definition.type"
2733
2782
  />
2734
2783
  </div>
2735
2784
  </div>
@@ -2751,7 +2800,7 @@
2751
2800
  <t t-set-slot="content">
2752
2801
  <AxisDesignEditor
2753
2802
  axesList="axesList"
2754
- figureId="props.figureId"
2803
+ chartId="props.chartId"
2755
2804
  definition="props.definition"
2756
2805
  updateChart="props.updateChart"
2757
2806
  />
@@ -2908,7 +2957,7 @@
2908
2957
  <t t-name="o-spreadsheet-GeoChartConfigPanel">
2909
2958
  <div>
2910
2959
  <GeoChartRegionSelectSection
2911
- figureId="props.figureId"
2960
+ chartId="props.chartId"
2912
2961
  definition="props.definition"
2913
2962
  updateChart="props.updateChart"
2914
2963
  />
@@ -3127,7 +3176,7 @@
3127
3176
  <t t-set-slot="content">
3128
3177
  <AxisDesignEditor
3129
3178
  axesList="axesList"
3130
- figureId="props.figureId"
3179
+ chartId="props.chartId"
3131
3180
  definition="props.definition"
3132
3181
  updateChart="props.updateChart"
3133
3182
  />
@@ -3149,7 +3198,7 @@
3149
3198
  <t t-set-slot="content">
3150
3199
  <AxisDesignEditor
3151
3200
  axesList="axesList"
3152
- figureId="props.figureId"
3201
+ chartId="props.chartId"
3153
3202
  definition="props.definition"
3154
3203
  updateChart="props.updateChart"
3155
3204
  />
@@ -3583,7 +3632,7 @@
3583
3632
  name="'showValues'"
3584
3633
  label.translate="Show values"
3585
3634
  value="props.definition.showValues ?? props.defaultValue"
3586
- onChange="(showValues) => props.updateChart(this.props.figureId, { showValues })"
3635
+ onChange="(showValues) => props.updateChart(this.props.chartId, { showValues })"
3587
3636
  />
3588
3637
  </t>
3589
3638
 
@@ -3592,7 +3641,7 @@
3592
3641
  name="'showDataMarkers'"
3593
3642
  label.translate="Show data markers"
3594
3643
  value="!props.definition.hideDataMarkers"
3595
- onChange="(showDataMarkers) => props.updateChart(this.props.figureId, { hideDataMarkers: !showDataMarkers })"
3644
+ onChange="(showDataMarkers) => props.updateChart(this.props.chartId, { hideDataMarkers: !showDataMarkers })"
3596
3645
  />
3597
3646
  </t>
3598
3647
 
@@ -3940,6 +3989,62 @@
3940
3989
  </div>
3941
3990
  </t>
3942
3991
 
3992
+ <t t-name="o-spreadsheet-CarouselPanel">
3993
+ <div class="o-carousel-panel h-100 overflow-auto">
3994
+ <div class="o-carousel-preview-list overflow-auto" t-ref="previewList">
3995
+ <t t-foreach="carouselItems" t-as="item" t-key="getItemId(item)">
3996
+ <div
3997
+ class="o-carousel-preview border-bottom pe-2 position-relative w-100 d-flex align-items-center"
3998
+ t-att-class="{ 'o-dragging': dragAndDrop.draggedItemId === getItemId(item) }"
3999
+ t-att-style="getPreviewDivStyle(item)">
4000
+ <div
4001
+ class="o-drag-handle h-100 position-absolute d-flex align-items-center o-button-icon ps-1 flex-shrink-0"
4002
+ t-on-pointerdown.stop.prevent="(ev) => this.onDragHandleMouseDown(item, ev)">
4003
+ <t t-call="o-spreadsheet-Icon.THIN_DRAG_HANDLE"/>
4004
+ </div>
4005
+ <div
4006
+ class="o-carousel-preview-icon ms-3 flex-shrink-0 d-flex align-items-center justify-content-center">
4007
+ <t t-call="{{getItemPreview(item)}}"/>
4008
+ </div>
4009
+ <div class="o-carousel-preview-title text-truncate ms-2">
4010
+ <TextInput
4011
+ value="getItemTitle(item)"
4012
+ onChange="(newName) => this.renameCarouselItem(item, newName)"
4013
+ />
4014
+ </div>
4015
+ <div class="ms-auto"/>
4016
+ <div
4017
+ t-if="item.type === 'chart'"
4018
+ class="o-edit-button o-button-icon pe-2 ps-1 flex-shrink-0 fa fa-pencil"
4019
+ t-on-click.stop="(ev) => this.editCarouselItem(item, ev)"
4020
+ title="Edit chart"
4021
+ />
4022
+ <div
4023
+ class="o-delete-button o-button-icon pe-2 ps-1 flex-shrink-0"
4024
+ t-on-click.stop="(ev) => this.deleteCarouselItem(item, ev)"
4025
+ title="Remove chart">
4026
+ <t t-call="o-spreadsheet-Icon.TRASH_FILLED"/>
4027
+ </div>
4028
+ </div>
4029
+ </t>
4030
+ </div>
4031
+ <div
4032
+ class="o-button-link o-carousel-add-chart float-end d-flex align-items-center pt-4 pe-4 gap-2"
4033
+ t-on-click="addNewChartToCarousel">
4034
+ + Add chart
4035
+ <span t-att-title="carouselAddChartInfoMessage">
4036
+ <t t-call="o-spreadsheet-Icon.CIRCLE_INFO"/>
4037
+ </span>
4038
+ </div>
4039
+ <div
4040
+ t-if="!hasDataView"
4041
+ class="o-button-link o-carousel-add-data-view float-end pt-4 pe-4"
4042
+ t-on-click="addDataViewToCarousel">
4043
+ + Add data view
4044
+ </div>
4045
+ </div>
4046
+ </t>
4047
+
3943
4048
  <t t-name="o-spreadsheet-SelectionInput">
3944
4049
  <div class="o-selection" t-ref="o-selection">
3945
4050
  <div
@@ -5102,12 +5207,26 @@
5102
5207
  </svg>
5103
5208
  </t>
5104
5209
  <t t-name="o-spreadsheet-Icon.PLUS_IN_BOX">
5105
- <svg
5106
- class="o-icon"
5107
- width="18"
5108
- height="18"
5109
- style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5">
5110
- <path stroke="currentColor" d="M1.5,1.5h15v15h-15v-15M9,5v8M5,9h8"/>
5210
+ <svg class="o-icon" width="18" height="18" style="">
5211
+ <path
5212
+ fill="currentColor"
5213
+ d="
5214
+ M.5 2A1.5 1.5 0 0 1 2 .5h14A1.5 1.5 0 0 1 17.5 2v14a1.5 1.5 0 0 1-1.5 1.5H2A1.5 1.5 0 0 1 .5 16V2H2v14h14V2H2
5215
+ M4,9.5 h10 v-1.5 h-10
5216
+ M8.25,3.75 v10 h1.5 v-10
5217
+ "
5218
+ />
5219
+ </svg>
5220
+ </t>
5221
+ <t t-name="o-spreadsheet-Icon.MINUS_IN_BOX">
5222
+ <svg class="o-icon" width="18" height="18" style="">
5223
+ <path
5224
+ fill="currentColor"
5225
+ d="
5226
+ M.5 2A1.5 1.5 0 0 1 2 .5h14A1.5 1.5 0 0 1 17.5 2v14a1.5 1.5 0 0 1-1.5 1.5H2A1.5 1.5 0 0 1 .5 16V2H2v14h14V2H2
5227
+ M4,9.5 h10 v-1.5 h-10
5228
+ "
5229
+ />
5111
5230
  </svg>
5112
5231
  </t>
5113
5232
  <t t-name="o-spreadsheet-Icon.GROUP_ROWS">
@@ -5282,6 +5401,14 @@
5282
5401
  <i class="fa fa-download"/>
5283
5402
  </div>
5284
5403
  </t>
5404
+ <t t-name="o-spreadsheet-Icon.CAROUSEL">
5405
+ <svg class="o-icon" viewBox="0 0 122.88 99.75">
5406
+ <path
5407
+ fill="currentColor"
5408
+ d="M29.09,0h64.7A5.21,5.21,0,0,1,99,5.18v89.4a5.19,5.19,0,0,1-5.18,5.17H29.09a5.19,5.19,0,0,1-5.17-5.18V5.18A5.21,5.21,0,0,1,29.09,0Zm78.52,12.46,10.59-1.52a4.71,4.71,0,0,1,4.68,4.69v68.5a4.71,4.71,0,0,1-4.68,4.68L107.77,88a1.35,1.35,0,0,1-1.31-1.34V83.14a1.34,1.34,0,0,1,1.44-1.23l8.91.73V17.22l-9,1.34a1.34,1.34,0,0,1-1.34-1.34V13.78a1.34,1.34,0,0,1,1.15-1.32ZM5,11l10.31,1.49a1.33,1.33,0,0,1,1.14,1.32v3.44a1.34,1.34,0,0,1-1.34,1.34l-9-1.34V82.64L15,81.91a1.33,1.33,0,0,1,1.43,1.23v3.49A1.35,1.35,0,0,1,15.11,88l-10.43.84A4.71,4.71,0,0,1,0,84.13V15.63a4.73,4.73,0,0,1,4.68-4.69L5,11Zm87.93-4.9H30v87.6h62.9V6.07Z"
5409
+ />
5410
+ </svg>
5411
+ </t>
5285
5412
 
5286
5413
  <t t-name="o-spreadsheet-IconPicker">
5287
5414
  <div class="o-icon-picker">
@@ -5762,7 +5889,7 @@
5762
5889
  <t t-name="o-spreadsheet-FullScreenChart">
5763
5890
  <div
5764
5891
  class="position-absolute o-fullscreen-chart-overlay w-100 h-100 d-flex"
5765
- t-if="figureUI"
5892
+ t-if="chartId"
5766
5893
  t-on-click="exitFullScreen">
5767
5894
  <button
5768
5895
  class="o-exit top-0 end-0 position-absolute o-button primary m-1"
@@ -5776,14 +5903,9 @@
5776
5903
  t-ref="fullScreenChart"
5777
5904
  t-on-click.stop=""
5778
5905
  t-on-keydown="(ev) => this.onKeyDown(ev)">
5779
- <t
5780
- t-component="chartComponent"
5781
- figureUI="this.figureUI"
5782
- isFullScreen="true"
5783
- t-key="this.figureUI.id"
5784
- />
5906
+ <t t-component="chartComponent" chartId="chartId" isFullScreen="true" t-key="chartId"/>
5785
5907
  <div class="position-absolute top-0 end-0">
5786
- <ChartDashboardMenu figureUI="figureUI"/>
5908
+ <ChartDashboardMenu chartId="chartId"/>
5787
5909
  </div>
5788
5910
  </div>
5789
5911
  </div>
@@ -5984,6 +6106,7 @@
5984
6106
  onFigureDeleted="this.props.onFigureDeleted"
5985
6107
  figureUI="figureUI"
5986
6108
  style="getFigureStyle(figureUI)"
6109
+ class="getFigureClass(figureUI)"
5987
6110
  onMouseDown="(ev) => this.startDraggingFigure(figureUI, ev)"
5988
6111
  onClickAnchor="(dirX, dirY, ev) => this.startResize(figureUI, dirX, dirY, ev)"
5989
6112
  />
@@ -6010,21 +6133,54 @@
6010
6133
 
6011
6134
  <t t-name="o-spreadsheet-ChartFigure">
6012
6135
  <div class="o-chart-container w-100 h-100" t-on-dblclick="onDoubleClick">
6013
- <t
6014
- t-component="chartComponent"
6015
- figureUI="this.props.figureUI"
6016
- t-key="this.props.figureUI.id"
6017
- />
6136
+ <t t-component="chartComponent" chartId="chartId" t-key="chartId"/>
6018
6137
  </div>
6019
6138
  <div t-if="env.isDashboard()" class="position-absolute top-0 end-0">
6020
- <ChartDashboardMenu figureUI="props.figureUI"/>
6139
+ <ChartDashboardMenu chartId="chartId"/>
6140
+ </div>
6141
+ </t>
6142
+
6143
+ <t t-name="o-spreadsheet-CarouselFigure">
6144
+ <div class="o-carousel w-100 h-100" t-on-dblclick="onCarouselDoubleClick">
6145
+ <t t-set="selectedItem" t-value="selectedCarouselItem"/>
6146
+ <div
6147
+ class="o-carousel-header position-absolute end-0 top-0 d-flex pe-1 rounded pe-auto"
6148
+ t-att-class="{
6149
+ 'o-carousel-header-floating': !env.isDashboard() and selectedItem?.type === 'carouselDataView',
6150
+ }"
6151
+ t-att-style="headerStyle"
6152
+ t-on-pointerdown.stop="">
6153
+ <t t-foreach="carousel.items" t-as="item" t-key="item_index">
6154
+ <div
6155
+ class="o-carousel-tab text-truncate px-2 mt-1 mb-1 flex-shrink-0"
6156
+ t-att-class="{ 'selected': isItemSelected(item) }"
6157
+ t-esc="getItemTitle(item)"
6158
+ t-on-click.stop="() => this.onCarouselTabClick(item)"
6159
+ />
6160
+ </t>
6161
+ </div>
6162
+ <div
6163
+ t-if="!selectedItem"
6164
+ class="o-carousel-empty w-100 h-100 d-flex align-items-center justify-content-center">
6165
+ <t t-call="o-spreadsheet-Icon.CAROUSEL"/>
6166
+ </div>
6167
+ <div t-elif="selectedItem.type === 'chart'" class="o-carousel-content w-100 h-100">
6168
+ <div class="o-chart-container w-100 h-100">
6169
+ <t
6170
+ t-component="chartComponent"
6171
+ chartId="selectedItem.chartId"
6172
+ t-key="selectedItem.chartId"
6173
+ />
6174
+ </div>
6175
+ </div>
6021
6176
  </div>
6022
6177
  </t>
6023
6178
 
6024
6179
  <t t-name="o-spreadsheet-FigureComponent">
6025
- <div class="o-figure-wrapper pe-auto" t-att-style="wrapperStyle">
6180
+ <div class="o-figure-wrapper" t-att-style="wrapperStyle" t-ref="figureWrapper">
6026
6181
  <div
6027
6182
  class="o-figure w-100 h-100"
6183
+ t-att-class="props.class"
6028
6184
  t-on-pointerdown.stop="(ev) => this.onMouseDown(ev)"
6029
6185
  t-on-click="onClick"
6030
6186
  t-on-contextmenu.prevent.stop="(ev) => !env.model.getters.isReadonly() and this.onContextMenu(ev)"
@@ -6039,11 +6195,12 @@
6039
6195
  t-key="props.figureUI.id"
6040
6196
  onFigureDeleted="props.onFigureDeleted"
6041
6197
  figureUI="props.figureUI"
6198
+ editFigureStyle.bind="editWrapperStyle"
6042
6199
  />
6043
6200
  <div class="o-figure-menu position-absolute m-2" t-if="!env.isDashboard()">
6044
6201
  <div
6045
6202
  class="o-figure-menu-item"
6046
- t-if="!env.model.getters.isReadonly()"
6203
+ t-if="!env.model.getters.isReadonly() and props.figureUI.tag !== 'carousel'"
6047
6204
  t-on-click="showMenu"
6048
6205
  t-ref="menuButton"
6049
6206
  t-on-contextmenu.prevent.stop="showMenu">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odoo/o-spreadsheet",
3
- "version": "18.5.0-alpha.5",
3
+ "version": "18.5.0-alpha.7",
4
4
  "description": "A spreadsheet component",
5
5
  "type": "module",
6
6
  "main": "dist/o-spreadsheet.cjs.js",