@odoo/o-spreadsheet 18.5.0-alpha.6 → 18.5.0-alpha.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.
@@ -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.6
5
- @date 2025-08-05T06:28:37.212Z
6
- @hash 67e091f
4
+ @version 18.5.0-alpha.8
5
+ @date 2025-08-18T08:18:48.925Z
6
+ @hash 994f1cb
7
7
  -->
8
8
  <odoo>
9
9
  <t t-name="o-spreadsheet-ValidationMessages">
@@ -981,6 +981,15 @@
981
981
  t-att-style="dragAndDrop.itemsStyle[col.nameWithGranularity]"
982
982
  class="pt-1">
983
983
  <PivotDimension dimension="col" onRemoved.bind="removeDimension">
984
+ <t t-set-slot="upper-right-icons">
985
+ <t t-set="errorMessage" t-value="getHugeDimensionErrorMessage(col)"/>
986
+ <i
987
+ t-if="errorMessage"
988
+ class="text-warning fa fa-exclamation-triangle"
989
+ t-att-title="errorMessage"
990
+ />
991
+ </t>
992
+
984
993
  <PivotDimensionGranularity
985
994
  t-if="isDateOrDatetimeField(col)"
986
995
  dimension="col"
@@ -1013,6 +1022,15 @@
1013
1022
  t-att-style="dragAndDrop.itemsStyle[row.nameWithGranularity]"
1014
1023
  class="pt-1">
1015
1024
  <PivotDimension dimension="row" onRemoved.bind="removeDimension">
1025
+ <t t-set-slot="upper-right-icons">
1026
+ <t t-set="errorMessage" t-value="getHugeDimensionErrorMessage(row)"/>
1027
+ <i
1028
+ t-if="errorMessage"
1029
+ class="text-warning fa fa-exclamation-triangle"
1030
+ t-att-title="errorMessage"
1031
+ />
1032
+ </t>
1033
+
1016
1034
  <PivotDimensionGranularity
1017
1035
  t-if="isDateOrDatetimeField(row)"
1018
1036
  dimension="row"
@@ -2337,6 +2355,37 @@
2337
2355
  </div>
2338
2356
  </t>
2339
2357
 
2358
+ <t t-name="o-spreadsheet-GenericZoomableChartDesignPanel">
2359
+ <GeneralDesignEditor t-props="props">
2360
+ <t t-set-slot="general-extension">
2361
+ <ChartLegend t-props="props"/>
2362
+ <Section class="'pt-0'" title.translate="Values">
2363
+ <ChartShowValues t-props="props"/>
2364
+ </Section>
2365
+ <Section class="'pt-0'" title.translate="Zoom">
2366
+ <Checkbox
2367
+ name="'zoomable'"
2368
+ label.translate="Show slicer"
2369
+ value="props.definition.zoomable"
2370
+ onChange.bind="onToggleZoom"
2371
+ className="'mb-2'"
2372
+ />
2373
+ </Section>
2374
+ </t>
2375
+ </GeneralDesignEditor>
2376
+ <SeriesWithAxisDesignEditor t-props="props"/>
2377
+ <SidePanelCollapsible isInitiallyCollapsed="true" title.translate="Axes">
2378
+ <t t-set-slot="content">
2379
+ <AxisDesignEditor
2380
+ axesList="axesList"
2381
+ chartId="props.chartId"
2382
+ definition="props.definition"
2383
+ updateChart="props.updateChart"
2384
+ />
2385
+ </t>
2386
+ </SidePanelCollapsible>
2387
+ </t>
2388
+
2340
2389
  <t t-name="o-spreadsheet-WaterfallChartDesignPanel">
2341
2390
  <GeneralDesignEditor t-props="props">
2342
2391
  <t t-set-slot="general-extension">
@@ -2352,6 +2401,15 @@
2352
2401
  <Section class="'pt-0'" title.translate="Values">
2353
2402
  <ChartShowValues t-props="props"/>
2354
2403
  </Section>
2404
+ <Section class="'pt-0'" title.translate="Zoom">
2405
+ <Checkbox
2406
+ name="'zoomable'"
2407
+ label.translate="Show slicer"
2408
+ value="props.definition.zoomable"
2409
+ onChange.bind="onToggleZoom"
2410
+ className="'mb-2'"
2411
+ />
2412
+ </Section>
2355
2413
  </t>
2356
2414
  </GeneralDesignEditor>
2357
2415
  <SidePanelCollapsible isInitiallyCollapsed="true" title.translate="Waterfall design">
@@ -2410,7 +2468,7 @@
2410
2468
  <t t-set-slot="content">
2411
2469
  <AxisDesignEditor
2412
2470
  axesList="axesList"
2413
- figureId="props.figureId"
2471
+ chartId="props.chartId"
2414
2472
  definition="props.definition"
2415
2473
  updateChart="props.updateChart"
2416
2474
  />
@@ -2432,14 +2490,14 @@
2432
2490
 
2433
2491
  <t t-if="coloringOptions.type === 'categoryColor'">
2434
2492
  <TreeMapCategoryColors
2435
- figureId="props.figureId"
2493
+ chartId="props.chartId"
2436
2494
  definition="props.definition"
2437
2495
  onColorChanged.bind="onCategoryColorChange"
2438
2496
  />
2439
2497
  </t>
2440
2498
  <t t-else="">
2441
2499
  <TreeMapColorScale
2442
- figureId="props.figureId"
2500
+ chartId="props.chartId"
2443
2501
  definition="props.definition"
2444
2502
  onColorChanged.bind="onColorScaleChange"
2445
2503
  />
@@ -2455,13 +2513,13 @@
2455
2513
  name="'showHeaders'"
2456
2514
  label.translate="Show headers"
2457
2515
  value="showHeaders"
2458
- onChange="(showHeaders) => props.updateChart(this.props.figureId, { showHeaders })"
2516
+ onChange="(showHeaders) => props.updateChart(this.props.chartId, { showHeaders })"
2459
2517
  />
2460
2518
  </Section>
2461
2519
  <Section class="'pt-0'" t-if="showHeaders">
2462
2520
  <TextStyler
2463
2521
  class="'pt-0 o-header-style'"
2464
- updateStyle="(headerDesign) => props.updateChart(this.props.figureId, { headerDesign })"
2522
+ updateStyle="(headerDesign) => props.updateChart(this.props.chartId, { headerDesign })"
2465
2523
  style="props.definition.headerDesign || {}"
2466
2524
  defaultStyle="defaults.headerDesign"
2467
2525
  hasBackgroundColor="true"
@@ -2474,7 +2532,7 @@
2474
2532
  name="'showLabels'"
2475
2533
  label.translate="Show labels"
2476
2534
  value="showLabels"
2477
- onChange="(showLabels) => props.updateChart(this.props.figureId, { showLabels })"
2535
+ onChange="(showLabels) => props.updateChart(this.props.chartId, { showLabels })"
2478
2536
  />
2479
2537
  <ChartShowValues t-props="props" defaultValue="defaults.showValues"/>
2480
2538
  </div>
@@ -2482,7 +2540,7 @@
2482
2540
  <Section class="'pt-0'" t-if="showValues || showLabels">
2483
2541
  <TextStyler
2484
2542
  class="'pt-0 o-values-style'"
2485
- updateStyle="(valuesDesign) => props.updateChart(this.props.figureId, { valuesDesign })"
2543
+ updateStyle="(valuesDesign) => props.updateChart(this.props.chartId, { valuesDesign })"
2486
2544
  style="props.definition.valuesDesign || {}"
2487
2545
  defaultStyle="defaults.valuesDesign"
2488
2546
  hasVerticalAlign="true"
@@ -2573,7 +2631,7 @@
2573
2631
  name="'showLabels'"
2574
2632
  label.translate="Show labels"
2575
2633
  value="showLabels"
2576
- onChange="(showLabels) => props.updateChart(this.props.figureId, { showLabels })"
2634
+ onChange="(showLabels) => props.updateChart(this.props.chartId, { showLabels })"
2577
2635
  />
2578
2636
  <ChartShowValues t-props="props" defaultValue="defaults.showValues"/>
2579
2637
  </div>
@@ -2581,7 +2639,7 @@
2581
2639
  <Section class="'pt-0'" t-if="showValues || showLabels">
2582
2640
  <TextStyler
2583
2641
  class="'o-values-style'"
2584
- updateStyle="(valuesDesign) => props.updateChart(this.props.figureId, { valuesDesign })"
2642
+ updateStyle="(valuesDesign) => props.updateChart(this.props.chartId, { valuesDesign })"
2585
2643
  style="props.definition.valuesDesign || {}"
2586
2644
  defaultStyle="defaults.valuesDesign"
2587
2645
  />
@@ -2740,7 +2798,7 @@
2740
2798
  </t>
2741
2799
 
2742
2800
  <t t-name="o-spreadsheet-ChartPanel">
2743
- <div class="o-chart d-flex flex-column h-100" t-if="figureId">
2801
+ <div class="o-chart d-flex flex-column h-100" t-if="chartId">
2744
2802
  <div class="o-panel">
2745
2803
  <div
2746
2804
  class="o-panel-element o-panel-configuration"
@@ -2758,27 +2816,27 @@
2758
2816
  </div>
2759
2817
  </div>
2760
2818
 
2761
- <t t-set="definition" t-value="getChartDefinition(this.figureId)"/>
2819
+ <t t-set="definition" t-value="getChartDefinition(this.chartId)"/>
2762
2820
  <div class="o-panel-content overflow-y-auto" t-ref="panelContent">
2763
2821
  <div t-att-class="store.panel !== 'configuration' ? 'd-none' : ''">
2764
- <ChartTypePicker figureId="props.figureId" chartPanelStore="store"/>
2822
+ <ChartTypePicker chartId="chartId" chartPanelStore="store"/>
2765
2823
  <t
2766
2824
  t-component="chartPanel.configuration"
2767
2825
  definition="definition"
2768
- figureId="figureId"
2826
+ chartId="chartId"
2769
2827
  updateChart.bind="updateChart"
2770
2828
  canUpdateChart.bind="canUpdateChart"
2771
- t-key="figureId + definition.type"
2829
+ t-key="chartId + definition.type"
2772
2830
  />
2773
2831
  </div>
2774
2832
  <div t-att-class="store.panel !== 'design' ? 'd-none' : ''">
2775
2833
  <t
2776
2834
  t-component="chartPanel.design"
2777
2835
  definition="definition"
2778
- figureId="figureId"
2836
+ chartId="chartId"
2779
2837
  updateChart.bind="updateChart"
2780
2838
  canUpdateChart.bind="canUpdateChart"
2781
- t-key="figureId + definition.type"
2839
+ t-key="chartId + definition.type"
2782
2840
  />
2783
2841
  </div>
2784
2842
  </div>
@@ -2793,6 +2851,15 @@
2793
2851
  <ChartShowValues t-props="props"/>
2794
2852
  <ChartShowDataMarkers t-props="props"/>
2795
2853
  </Section>
2854
+ <Section class="'pt-0'" title.translate="Zoom">
2855
+ <Checkbox
2856
+ name="'zoomable'"
2857
+ label.translate="Show slicer"
2858
+ value="props.definition.zoomable"
2859
+ onChange.bind="onToggleZoom"
2860
+ className="'mb-2'"
2861
+ />
2862
+ </Section>
2796
2863
  </t>
2797
2864
  </GeneralDesignEditor>
2798
2865
  <SeriesWithAxisDesignEditor t-props="props"/>
@@ -2800,7 +2867,7 @@
2800
2867
  <t t-set-slot="content">
2801
2868
  <AxisDesignEditor
2802
2869
  axesList="axesList"
2803
- figureId="props.figureId"
2870
+ chartId="props.chartId"
2804
2871
  definition="props.definition"
2805
2872
  updateChart="props.updateChart"
2806
2873
  />
@@ -2957,7 +3024,7 @@
2957
3024
  <t t-name="o-spreadsheet-GeoChartConfigPanel">
2958
3025
  <div>
2959
3026
  <GeoChartRegionSelectSection
2960
- figureId="props.figureId"
3027
+ chartId="props.chartId"
2961
3028
  definition="props.definition"
2962
3029
  updateChart="props.updateChart"
2963
3030
  />
@@ -3157,6 +3224,15 @@
3157
3224
  <ChartShowValues t-props="props"/>
3158
3225
  <ChartShowDataMarkers t-props="props"/>
3159
3226
  </Section>
3227
+ <Section class="'pt-0'" title.translate="Zoom">
3228
+ <Checkbox
3229
+ name="'zoomable'"
3230
+ label.translate="Show slicer"
3231
+ value="props.definition.zoomable"
3232
+ onChange.bind="onToggleZoom"
3233
+ className="'mb-2'"
3234
+ />
3235
+ </Section>
3160
3236
  </t>
3161
3237
  </GeneralDesignEditor>
3162
3238
  <SeriesWithAxisDesignEditor t-props="props">
@@ -3176,7 +3252,7 @@
3176
3252
  <t t-set-slot="content">
3177
3253
  <AxisDesignEditor
3178
3254
  axesList="axesList"
3179
- figureId="props.figureId"
3255
+ chartId="props.chartId"
3180
3256
  definition="props.definition"
3181
3257
  updateChart="props.updateChart"
3182
3258
  />
@@ -3198,7 +3274,7 @@
3198
3274
  <t t-set-slot="content">
3199
3275
  <AxisDesignEditor
3200
3276
  axesList="axesList"
3201
- figureId="props.figureId"
3277
+ chartId="props.chartId"
3202
3278
  definition="props.definition"
3203
3279
  updateChart="props.updateChart"
3204
3280
  />
@@ -3632,7 +3708,7 @@
3632
3708
  name="'showValues'"
3633
3709
  label.translate="Show values"
3634
3710
  value="props.definition.showValues ?? props.defaultValue"
3635
- onChange="(showValues) => props.updateChart(this.props.figureId, { showValues })"
3711
+ onChange="(showValues) => props.updateChart(this.props.chartId, { showValues })"
3636
3712
  />
3637
3713
  </t>
3638
3714
 
@@ -3641,7 +3717,7 @@
3641
3717
  name="'showDataMarkers'"
3642
3718
  label.translate="Show data markers"
3643
3719
  value="!props.definition.hideDataMarkers"
3644
- onChange="(showDataMarkers) => props.updateChart(this.props.figureId, { hideDataMarkers: !showDataMarkers })"
3720
+ onChange="(showDataMarkers) => props.updateChart(this.props.chartId, { hideDataMarkers: !showDataMarkers })"
3645
3721
  />
3646
3722
  </t>
3647
3723
 
@@ -3989,6 +4065,62 @@
3989
4065
  </div>
3990
4066
  </t>
3991
4067
 
4068
+ <t t-name="o-spreadsheet-CarouselPanel">
4069
+ <div class="o-carousel-panel h-100 overflow-auto">
4070
+ <div class="o-carousel-preview-list overflow-auto" t-ref="previewList">
4071
+ <t t-foreach="carouselItems" t-as="item" t-key="getItemId(item)">
4072
+ <div
4073
+ class="o-carousel-preview border-bottom pe-2 position-relative w-100 d-flex align-items-center"
4074
+ t-att-class="{ 'o-dragging': dragAndDrop.draggedItemId === getItemId(item) }"
4075
+ t-att-style="getPreviewDivStyle(item)">
4076
+ <div
4077
+ class="o-drag-handle h-100 position-absolute d-flex align-items-center o-button-icon ps-1 flex-shrink-0"
4078
+ t-on-pointerdown.stop.prevent="(ev) => this.onDragHandleMouseDown(item, ev)">
4079
+ <t t-call="o-spreadsheet-Icon.THIN_DRAG_HANDLE"/>
4080
+ </div>
4081
+ <div
4082
+ class="o-carousel-preview-icon ms-3 flex-shrink-0 d-flex align-items-center justify-content-center">
4083
+ <t t-call="{{getItemPreview(item)}}"/>
4084
+ </div>
4085
+ <div class="o-carousel-preview-title text-truncate ms-2">
4086
+ <TextInput
4087
+ value="getItemTitle(item)"
4088
+ onChange="(newName) => this.renameCarouselItem(item, newName)"
4089
+ />
4090
+ </div>
4091
+ <div class="ms-auto"/>
4092
+ <div
4093
+ t-if="item.type === 'chart'"
4094
+ class="o-edit-button o-button-icon pe-2 ps-1 flex-shrink-0 fa fa-pencil"
4095
+ t-on-click.stop="(ev) => this.editCarouselItem(item, ev)"
4096
+ title="Edit chart"
4097
+ />
4098
+ <div
4099
+ class="o-delete-button o-button-icon pe-2 ps-1 flex-shrink-0"
4100
+ t-on-click.stop="(ev) => this.deleteCarouselItem(item, ev)"
4101
+ title="Remove chart">
4102
+ <t t-call="o-spreadsheet-Icon.TRASH_FILLED"/>
4103
+ </div>
4104
+ </div>
4105
+ </t>
4106
+ </div>
4107
+ <div
4108
+ class="o-button-link o-carousel-add-chart float-end d-flex align-items-center pt-4 pe-4 gap-2"
4109
+ t-on-click="addNewChartToCarousel">
4110
+ + Add chart
4111
+ <span t-att-title="carouselAddChartInfoMessage">
4112
+ <t t-call="o-spreadsheet-Icon.CIRCLE_INFO"/>
4113
+ </span>
4114
+ </div>
4115
+ <div
4116
+ t-if="!hasDataView"
4117
+ class="o-button-link o-carousel-add-data-view float-end pt-4 pe-4"
4118
+ t-on-click="addDataViewToCarousel">
4119
+ + Add data view
4120
+ </div>
4121
+ </div>
4122
+ </t>
4123
+
3992
4124
  <t t-name="o-spreadsheet-SelectionInput">
3993
4125
  <div class="o-selection" t-ref="o-selection">
3994
4126
  <div
@@ -5345,6 +5477,14 @@
5345
5477
  <i class="fa fa-download"/>
5346
5478
  </div>
5347
5479
  </t>
5480
+ <t t-name="o-spreadsheet-Icon.CAROUSEL">
5481
+ <svg class="o-icon" viewBox="0 0 122.88 99.75">
5482
+ <path
5483
+ fill="currentColor"
5484
+ 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"
5485
+ />
5486
+ </svg>
5487
+ </t>
5348
5488
 
5349
5489
  <t t-name="o-spreadsheet-IconPicker">
5350
5490
  <div class="o-icon-picker">
@@ -5825,7 +5965,7 @@
5825
5965
  <t t-name="o-spreadsheet-FullScreenChart">
5826
5966
  <div
5827
5967
  class="position-absolute o-fullscreen-chart-overlay w-100 h-100 d-flex"
5828
- t-if="figureUI"
5968
+ t-if="chartId"
5829
5969
  t-on-click="exitFullScreen">
5830
5970
  <button
5831
5971
  class="o-exit top-0 end-0 position-absolute o-button primary m-1"
@@ -5839,14 +5979,9 @@
5839
5979
  t-ref="fullScreenChart"
5840
5980
  t-on-click.stop=""
5841
5981
  t-on-keydown="(ev) => this.onKeyDown(ev)">
5842
- <t
5843
- t-component="chartComponent"
5844
- figureUI="this.figureUI"
5845
- isFullScreen="true"
5846
- t-key="this.figureUI.id"
5847
- />
5982
+ <t t-component="chartComponent" chartId="chartId" isFullScreen="true" t-key="chartId"/>
5848
5983
  <div class="position-absolute top-0 end-0">
5849
- <ChartDashboardMenu figureUI="figureUI"/>
5984
+ <ChartDashboardMenu chartId="chartId"/>
5850
5985
  </div>
5851
5986
  </div>
5852
5987
  </div>
@@ -6047,6 +6182,7 @@
6047
6182
  onFigureDeleted="this.props.onFigureDeleted"
6048
6183
  figureUI="figureUI"
6049
6184
  style="getFigureStyle(figureUI)"
6185
+ class="getFigureClass(figureUI)"
6050
6186
  onMouseDown="(ev) => this.startDraggingFigure(figureUI, ev)"
6051
6187
  onClickAnchor="(dirX, dirY, ev) => this.startResize(figureUI, dirX, dirY, ev)"
6052
6188
  />
@@ -6073,21 +6209,54 @@
6073
6209
 
6074
6210
  <t t-name="o-spreadsheet-ChartFigure">
6075
6211
  <div class="o-chart-container w-100 h-100" t-on-dblclick="onDoubleClick">
6076
- <t
6077
- t-component="chartComponent"
6078
- figureUI="this.props.figureUI"
6079
- t-key="this.props.figureUI.id"
6080
- />
6212
+ <t t-component="chartComponent" chartId="chartId" t-key="chartId"/>
6081
6213
  </div>
6082
6214
  <div t-if="env.isDashboard()" class="position-absolute top-0 end-0">
6083
- <ChartDashboardMenu figureUI="props.figureUI"/>
6215
+ <ChartDashboardMenu chartId="chartId"/>
6216
+ </div>
6217
+ </t>
6218
+
6219
+ <t t-name="o-spreadsheet-CarouselFigure">
6220
+ <div class="o-carousel w-100 h-100" t-on-dblclick="onCarouselDoubleClick">
6221
+ <t t-set="selectedItem" t-value="selectedCarouselItem"/>
6222
+ <div
6223
+ class="o-carousel-header position-absolute end-0 top-0 d-flex pe-1 rounded pe-auto"
6224
+ t-att-class="{
6225
+ 'o-carousel-header-floating': !env.isDashboard() and selectedItem?.type === 'carouselDataView',
6226
+ }"
6227
+ t-att-style="headerStyle"
6228
+ t-on-pointerdown.stop="">
6229
+ <t t-foreach="carousel.items" t-as="item" t-key="item_index">
6230
+ <div
6231
+ class="o-carousel-tab text-truncate px-2 mt-1 mb-1 flex-shrink-0"
6232
+ t-att-class="{ 'selected': isItemSelected(item) }"
6233
+ t-esc="getItemTitle(item)"
6234
+ t-on-click.stop="() => this.onCarouselTabClick(item)"
6235
+ />
6236
+ </t>
6237
+ </div>
6238
+ <div
6239
+ t-if="!selectedItem"
6240
+ class="o-carousel-empty w-100 h-100 d-flex align-items-center justify-content-center">
6241
+ <t t-call="o-spreadsheet-Icon.CAROUSEL"/>
6242
+ </div>
6243
+ <div t-elif="selectedItem.type === 'chart'" class="o-carousel-content w-100 h-100">
6244
+ <div class="o-chart-container w-100 h-100">
6245
+ <t
6246
+ t-component="chartComponent"
6247
+ chartId="selectedItem.chartId"
6248
+ t-key="selectedItem.chartId"
6249
+ />
6250
+ </div>
6251
+ </div>
6084
6252
  </div>
6085
6253
  </t>
6086
6254
 
6087
6255
  <t t-name="o-spreadsheet-FigureComponent">
6088
- <div class="o-figure-wrapper pe-auto" t-att-style="wrapperStyle">
6256
+ <div class="o-figure-wrapper" t-att-style="wrapperStyle" t-ref="figureWrapper">
6089
6257
  <div
6090
6258
  class="o-figure w-100 h-100"
6259
+ t-att-class="props.class"
6091
6260
  t-on-pointerdown.stop="(ev) => this.onMouseDown(ev)"
6092
6261
  t-on-click="onClick"
6093
6262
  t-on-contextmenu.prevent.stop="(ev) => !env.model.getters.isReadonly() and this.onContextMenu(ev)"
@@ -6102,11 +6271,12 @@
6102
6271
  t-key="props.figureUI.id"
6103
6272
  onFigureDeleted="props.onFigureDeleted"
6104
6273
  figureUI="props.figureUI"
6274
+ editFigureStyle.bind="editWrapperStyle"
6105
6275
  />
6106
6276
  <div class="o-figure-menu position-absolute m-2" t-if="!env.isDashboard()">
6107
6277
  <div
6108
6278
  class="o-figure-menu-item"
6109
- t-if="!env.model.getters.isReadonly()"
6279
+ t-if="!env.model.getters.isReadonly() and props.figureUI.tag !== 'carousel'"
6110
6280
  t-on-click="showMenu"
6111
6281
  t-ref="menuButton"
6112
6282
  t-on-contextmenu.prevent.stop="showMenu">
@@ -6208,6 +6378,24 @@
6208
6378
  <canvas class="o-figure-canvas w-100 h-100" t-att-style="canvasStyle" t-ref="graphContainer"/>
6209
6379
  </t>
6210
6380
 
6381
+ <t t-name="o-spreadsheet-ZoomableChartJsComponent">
6382
+ <div class="w-100 h-100" t-att-style="canvasStyle">
6383
+ <div t-att-style="containerStyle">
6384
+ <canvas class="o-figure-canvas w-100 h-100" t-ref="graphContainer"/>
6385
+ </div>
6386
+ <div t-if="sliceable" class="o-master-chart-container m-0">
6387
+ <canvas
6388
+ class="o-figure-canvas o-master-chart-canvas w-100 h-100"
6389
+ t-ref="masterChartCanvas"
6390
+ t-on-dblclick="onDoubleClickInMasterChart"
6391
+ t-on-pointerdown="onPointerDownInMasterChart"
6392
+ t-on-pointermove="onPointerMoveInMasterChart"
6393
+ t-on-mouseleave="onMouseLeaveMasterChart"
6394
+ />
6395
+ </div>
6396
+ </div>
6397
+ </t>
6398
+
6211
6399
  <t t-name="o-spreadsheet-ErrorToolTip">
6212
6400
  <div class="o-error-tooltip">
6213
6401
  <t t-if="evaluationError">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odoo/o-spreadsheet",
3
- "version": "18.5.0-alpha.6",
3
+ "version": "18.5.0-alpha.8",
4
4
  "description": "A spreadsheet component",
5
5
  "type": "module",
6
6
  "main": "dist/o-spreadsheet.cjs.js",