@odoo/o-spreadsheet 18.5.0-alpha.8 → 18.5.0-alpha.9

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.8
5
- @date 2025-08-18T08:18:48.925Z
6
- @hash 994f1cb
4
+ @version 18.5.0-alpha.9
5
+ @date 2025-08-19T16:55:34.562Z
6
+ @hash 0e0d850
7
7
  -->
8
8
  <odoo>
9
9
  <t t-name="o-spreadsheet-ValidationMessages">
@@ -215,7 +215,7 @@
215
215
  t-ref="input"
216
216
  class="os-input w-100"
217
217
  type="text"
218
- t-att-class="props.class"
218
+ t-att-class="inputClass"
219
219
  t-att-id="props.id"
220
220
  t-att-placeholder="props.placeholder"
221
221
  t-att-value="props.value"
@@ -2341,6 +2341,30 @@
2341
2341
  </label>
2342
2342
  </t>
2343
2343
 
2344
+ <t t-name="o-spreadsheet-CarouselItemTitleCollapsible">
2345
+ <SidePanelCollapsible
2346
+ class="'o-carousel-item-title'"
2347
+ isInitiallyCollapsed="true"
2348
+ title.translate="Carousel Title">
2349
+ <t t-set-slot="content">
2350
+ <div class="ps-4">
2351
+ <TextInput
2352
+ value="title"
2353
+ onChange.bind="updateTitle"
2354
+ placeholder.translate="Title"
2355
+ alwaysShowBorder="true"
2356
+ />
2357
+ <TextStyler
2358
+ style="style"
2359
+ updateStyle.bind="updateStyle"
2360
+ defaultStyle="defaultStyle"
2361
+ hasHorizontalAlign="false"
2362
+ />
2363
+ </div>
2364
+ </t>
2365
+ </SidePanelCollapsible>
2366
+ </t>
2367
+
2344
2368
  <t t-name="o-spreadsheet.BadgeSelection">
2345
2369
  <div class="d-flex w-100 o-badge-selection">
2346
2370
  <t t-foreach="props.choices" t-as="choice" t-key="choice.value">
@@ -2410,6 +2434,9 @@
2410
2434
  className="'mb-2'"
2411
2435
  />
2412
2436
  </Section>
2437
+ <Section class="'pt-1'" title.translate="Number formatting">
2438
+ <ChartHumanizeNumbers t-props="props"/>
2439
+ </Section>
2413
2440
  </t>
2414
2441
  </GeneralDesignEditor>
2415
2442
  <SidePanelCollapsible isInitiallyCollapsed="true" title.translate="Waterfall design">
@@ -2658,12 +2685,7 @@
2658
2685
  <GeneralDesignEditor t-props="props" defaultChartTitleFontSize="defaultScorecardTitleFontSize">
2659
2686
  <t t-set-slot="general-extension">
2660
2687
  <Section class="'pt-1'" title.translate="Number formatting">
2661
- <Checkbox
2662
- name="'humanizeNumbers'"
2663
- label="humanizeNumbersLabel"
2664
- value="props.definition.humanize"
2665
- onChange.bind="updateHumanizeNumbers"
2666
- />
2688
+ <ChartHumanizeNumbers t-props="props"/>
2667
2689
  </Section>
2668
2690
  </t>
2669
2691
  </GeneralDesignEditor>
@@ -2776,6 +2798,9 @@
2776
2798
  <ChartShowValues t-props="props"/>
2777
2799
  <ChartShowDataMarkers t-props="props"/>
2778
2800
  </Section>
2801
+ <Section class="'pt-1'" title.translate="Number formatting">
2802
+ <ChartHumanizeNumbers t-props="props"/>
2803
+ </Section>
2779
2804
  </t>
2780
2805
  </GeneralDesignEditor>
2781
2806
  <SeriesDesignEditor t-props="props"/>
@@ -2788,6 +2813,9 @@
2788
2813
  <Section class="'pt-0'" title.translate="Values">
2789
2814
  <ChartShowValues t-props="props"/>
2790
2815
  </Section>
2816
+ <Section class="'pt-1'" title.translate="Number formatting">
2817
+ <ChartHumanizeNumbers t-props="props"/>
2818
+ </Section>
2791
2819
  <PieHoleSize
2792
2820
  t-if="props.definition.isDoughnut"
2793
2821
  value="props.definition.pieHolePercentage ?? this.defaultHoleSize"
@@ -2860,6 +2888,9 @@
2860
2888
  className="'mb-2'"
2861
2889
  />
2862
2890
  </Section>
2891
+ <Section class="'pt-1'" title.translate="Number formatting">
2892
+ <ChartHumanizeNumbers t-props="props"/>
2893
+ </Section>
2863
2894
  </t>
2864
2895
  </GeneralDesignEditor>
2865
2896
  <SeriesWithAxisDesignEditor t-props="props"/>
@@ -2966,6 +2997,9 @@
2966
2997
  <option value="left">Bottom left</option>
2967
2998
  </select>
2968
2999
  </Section>
3000
+ <Section class="'pt-1'" title.translate="Number formatting">
3001
+ <ChartHumanizeNumbers t-props="props"/>
3002
+ </Section>
2969
3003
  </t>
2970
3004
  </GeneralDesignEditor>
2971
3005
 
@@ -3054,7 +3088,13 @@
3054
3088
  </t>
3055
3089
 
3056
3090
  <t t-name="o-spreadsheet-GaugeChartDesignPanel">
3057
- <GeneralDesignEditor t-props="props"/>
3091
+ <GeneralDesignEditor t-props="props">
3092
+ <t t-set-slot="general-extension">
3093
+ <Section class="'pt-1'" title.translate="Number formatting">
3094
+ <ChartHumanizeNumbers t-props="props"/>
3095
+ </Section>
3096
+ </t>
3097
+ </GeneralDesignEditor>
3058
3098
  <SidePanelCollapsible isInitiallyCollapsed="false" title.translate="Gauge Design">
3059
3099
  <t t-set-slot="content">
3060
3100
  <Section class="'pt-0'" title.translate="Range">
@@ -3196,6 +3236,9 @@
3196
3236
  <Section class="'pt-0'" title.translate="Values">
3197
3237
  <ChartShowValues t-props="props"/>
3198
3238
  </Section>
3239
+ <Section class="'pt-1'" title.translate="Number formatting">
3240
+ <ChartHumanizeNumbers t-props="props"/>
3241
+ </Section>
3199
3242
  </t>
3200
3243
  </GeneralDesignEditor>
3201
3244
 
@@ -3233,6 +3276,9 @@
3233
3276
  className="'mb-2'"
3234
3277
  />
3235
3278
  </Section>
3279
+ <Section class="'pt-1'" title.translate="Number formatting">
3280
+ <ChartHumanizeNumbers t-props="props"/>
3281
+ </Section>
3236
3282
  </t>
3237
3283
  </GeneralDesignEditor>
3238
3284
  <SeriesWithAxisDesignEditor t-props="props">
@@ -3267,6 +3313,9 @@
3267
3313
  <Section class="'pt-0'" title.translate="Values">
3268
3314
  <ChartShowValues t-props="props"/>
3269
3315
  </Section>
3316
+ <Section class="'pt-1'" title.translate="Number formatting">
3317
+ <ChartHumanizeNumbers t-props="props"/>
3318
+ </Section>
3270
3319
  </t>
3271
3320
  </GeneralDesignEditor>
3272
3321
  <SeriesWithAxisDesignEditor t-props="props"/>
@@ -3904,6 +3953,15 @@
3904
3953
  </Section>
3905
3954
  </t>
3906
3955
 
3956
+ <t t-name="o-spreadsheet-ChartHumanizeNumbers">
3957
+ <Checkbox
3958
+ name="'humanizeNumbers'"
3959
+ label.translate="Make numbers human-readable"
3960
+ value="props.definition.humanize ?? true"
3961
+ onChange="(humanize) => props.updateChart(this.props.chartId, { humanize })"
3962
+ />
3963
+ </t>
3964
+
3907
3965
  <t t-name="o-spreadsheet-GenericChartConfigPanel">
3908
3966
  <div>
3909
3967
  <ChartDataSeries
@@ -4068,41 +4126,52 @@
4068
4126
  <t t-name="o-spreadsheet-CarouselPanel">
4069
4127
  <div class="o-carousel-panel h-100 overflow-auto">
4070
4128
  <div class="o-carousel-preview-list overflow-auto" t-ref="previewList">
4071
- <t t-foreach="carouselItems" t-as="item" t-key="getItemId(item)">
4129
+ <div
4130
+ t-foreach="carouselItems"
4131
+ t-as="item"
4132
+ t-key="getItemId(item)"
4133
+ class="o-carousel-preview position-relative d-flex align-items-center border-bottom ps-1 pe-2 pt-3 pb-2 w-100"
4134
+ t-att-class="{ 'o-dragging': dragAndDrop.draggedItemId === getItemId(item) }"
4135
+ t-att-style="getPreviewDivStyle(item)">
4072
4136
  <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)"
4137
+ class="o-drag-handle position-absolute ps-1 flex-shrink-0"
4138
+ t-on-pointerdown.stop.prevent="(ev) => this.onDragHandleMouseDown(item, ev)">
4139
+ <t t-call="o-spreadsheet-Icon.THIN_DRAG_HANDLE"/>
4140
+ </div>
4141
+ <div class="flex-grow-1">
4142
+ <div class="d-flex align-items-center">
4143
+ <div
4144
+ class="o-carousel-preview-icon ms-3 flex-shrink-0 d-flex align-items-center justify-content-center">
4145
+ <t t-call="{{getItemPreview(item)}}"/>
4146
+ </div>
4147
+ <div class="o-carousel-preview-title text-truncate ms-2">
4148
+ <TextInput
4149
+ value="getItemTitle(item)"
4150
+ onChange="(newName) => this.renameCarouselItem(item, newName)"
4151
+ />
4152
+ </div>
4153
+ <div class="ms-auto"/>
4154
+ <div
4155
+ t-if="item.type === 'chart'"
4156
+ class="o-edit-button o-button-icon pe-2 ps-1 flex-shrink-0 fa fa-pencil"
4157
+ t-on-click.stop="(ev) => this.editCarouselItem(item, ev)"
4158
+ title="Edit chart"
4089
4159
  />
4160
+ <div
4161
+ class="o-delete-button o-button-icon pe-2 ps-1 flex-shrink-0"
4162
+ t-on-click.stop="(ev) => this.deleteCarouselItem(item, ev)"
4163
+ title="Remove chart">
4164
+ <t t-call="o-spreadsheet-Icon.TRASH_FILLED"/>
4165
+ </div>
4090
4166
  </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"/>
4167
+ <div class="ms-3">
4168
+ <CarouselItemTitleCollapsible
4169
+ carouselTitle="item.carouselTitle"
4170
+ onUpdateCarouselTitle="(style) => this.onUpdateCarouselTitle(item_index, style)"
4171
+ />
4103
4172
  </div>
4104
4173
  </div>
4105
- </t>
4174
+ </div>
4106
4175
  </div>
4107
4176
  <div
4108
4177
  class="o-button-link o-carousel-add-chart float-end d-flex align-items-center pt-4 pe-4 gap-2"
@@ -6217,30 +6286,36 @@
6217
6286
  </t>
6218
6287
 
6219
6288
  <t t-name="o-spreadsheet-CarouselFigure">
6220
- <div class="o-carousel w-100 h-100" t-on-dblclick="onCarouselDoubleClick">
6289
+ <div class="o-carousel w-100 h-100 d-flex flex-column" t-on-dblclick="onCarouselDoubleClick">
6221
6290
  <t t-set="selectedItem" t-value="selectedCarouselItem"/>
6222
6291
  <div
6223
- class="o-carousel-header position-absolute end-0 top-0 d-flex pe-1 rounded pe-auto"
6292
+ class="o-carousel-header d-flex flex-shrink-0 pe-1 rounded pe-auto"
6224
6293
  t-att-class="{
6225
6294
  'o-carousel-header-floating': !env.isDashboard() and selectedItem?.type === 'carouselDataView',
6226
6295
  }"
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>
6296
+ t-att-style="headerStyle">
6297
+ <div
6298
+ class="o-carousel-title d-flex align-items-center"
6299
+ t-esc="title"
6300
+ t-att-style="titleStyle"
6301
+ />
6302
+ <div class="ms-auto d-flex">
6303
+ <t t-foreach="carousel.items" t-as="item" t-key="item_index">
6304
+ <div
6305
+ class="o-carousel-tab text-truncate px-2 mt-1 mb-1 flex-shrink-0"
6306
+ t-att-class="{ 'selected': isItemSelected(item) }"
6307
+ t-esc="getItemTitle(item)"
6308
+ t-on-click.stop="() => this.onCarouselTabClick(item)"
6309
+ />
6310
+ </t>
6311
+ </div>
6237
6312
  </div>
6238
6313
  <div
6239
6314
  t-if="!selectedItem"
6240
- class="o-carousel-empty w-100 h-100 d-flex align-items-center justify-content-center">
6315
+ class="o-carousel-empty w-100 flex-fill d-flex align-items-center justify-content-center">
6241
6316
  <t t-call="o-spreadsheet-Icon.CAROUSEL"/>
6242
6317
  </div>
6243
- <div t-elif="selectedItem.type === 'chart'" class="o-carousel-content w-100 h-100">
6318
+ <div t-elif="selectedItem.type === 'chart'" class="o-carousel-content w-100 flex-fill">
6244
6319
  <div class="o-chart-container w-100 h-100">
6245
6320
  <t
6246
6321
  t-component="chartComponent"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odoo/o-spreadsheet",
3
- "version": "18.5.0-alpha.8",
3
+ "version": "18.5.0-alpha.9",
4
4
  "description": "A spreadsheet component",
5
5
  "type": "module",
6
6
  "main": "dist/o-spreadsheet.cjs.js",