@odoo/o-spreadsheet 18.0.17 → 18.0.19

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.0.17
5
- @date 2025-02-25T05:59:32.689Z
6
- @hash 2ee4347
4
+ @version 18.0.19
5
+ @date 2025-03-12T15:34:20.817Z
6
+ @hash d8dea1b
7
7
  -->
8
8
  <odoo>
9
9
  <t t-name="o-spreadsheet-ActionButton">
@@ -179,7 +179,11 @@
179
179
  </div>
180
180
  </Ripple>
181
181
  <Ripple>
182
- <div class="o-sheet-item o-list-sheets me-2 p-1" t-on-click="clickListSheets">
182
+ <div
183
+ class="o-sheet-item o-list-sheets me-2 p-1"
184
+ composerFocusableElement="true"
185
+ tabindex="-1"
186
+ t-on-click="clickListSheets">
183
187
  <t t-call="o-spreadsheet-Icon.LIST"/>
184
188
  </div>
185
189
  </Ripple>
@@ -274,14 +278,16 @@
274
278
  t-att-class="{'o-sheet-name-editable': state.isEditing }"
275
279
  t-ref="sheetNameSpan"
276
280
  t-esc="sheetName"
277
- t-on-click="(ev) => this.onMouseEventSheetName(ev)"
278
281
  t-on-pointerdown="(ev) => this.onMouseEventSheetName(ev)"
279
282
  t-on-dblclick="() => this.onDblClick()"
280
283
  t-on-focusout="() => this.onFocusOut()"
281
284
  t-on-keydown="(ev) => this.onKeyDown(ev)"
282
285
  t-att-contenteditable="state.isEditing ? 'true': 'false'"
283
286
  />
284
- <span class="o-sheet-icon ms-1" t-on-click.stop="(ev) => this.onIconClick(ev)">
287
+ <span
288
+ class="o-sheet-icon ms-1"
289
+ tabindex="-1"
290
+ t-on-click.stop="(ev) => this.onIconClick(ev)">
285
291
  <t t-call="o-spreadsheet-Icon.CARET_DOWN"/>
286
292
  </span>
287
293
  <div
@@ -510,13 +516,9 @@
510
516
  />
511
517
  </div>
512
518
  <div
513
- t-if="props.focus !== 'inactive' and !assistant.forcedClosed and assistantIsAvailable"
514
- class="o-composer-assistant shadow"
515
- t-att-style="assistantStyle"
516
- t-on-wheel.stop=""
517
- t-on-pointerdown.prevent.stop=""
518
- t-on-click.prevent.stop=""
519
- t-on-pointerup.prevent.stop="">
519
+ class="o-composer-assistant-container shadow position-absolute"
520
+ t-att-style="assistantContainerStyle"
521
+ t-if="props.focus !== 'inactive' and !assistant.forcedClosed and assistantIsAvailable">
520
522
  <span
521
523
  role="button"
522
524
  t-on-click="closeAssistant"
@@ -524,23 +526,31 @@
524
526
  <i class="fa fa-circle fa-stack-1x fa-inverse"/>
525
527
  <i class="fa fa-times-circle fa-stack-1x text-muted"/>
526
528
  </span>
527
- <FunctionDescriptionProvider
528
- t-if="functionDescriptionState.showDescription"
529
- functionName="functionDescriptionState.functionName"
530
- functionDescription="functionDescriptionState.functionDescription"
531
- argToFocus="functionDescriptionState.argToFocus"
532
- />
533
529
  <div
534
- t-if="functionDescriptionState.showDescription and autoCompleteState.provider"
535
- class="border-top"
536
- />
537
- <TextValueProvider
538
- t-if="autoCompleteState.provider"
539
- proposals="autoCompleteState.provider.proposals"
540
- selectedIndex="autoCompleteState.selectedIndex"
541
- onValueSelected.bind="this.autoComplete"
542
- onValueHovered.bind="this.updateAutoCompleteIndex"
543
- />
530
+ class="o-composer-assistant overflow-auto"
531
+ t-att-style="assistantStyle"
532
+ t-on-wheel.stop=""
533
+ t-on-pointerdown.prevent.stop=""
534
+ t-on-click.prevent.stop=""
535
+ t-on-pointerup.prevent.stop="">
536
+ <FunctionDescriptionProvider
537
+ t-if="functionDescriptionState.showDescription"
538
+ functionName="functionDescriptionState.functionName"
539
+ functionDescription="functionDescriptionState.functionDescription"
540
+ argToFocus="functionDescriptionState.argToFocus"
541
+ />
542
+ <div
543
+ t-if="functionDescriptionState.showDescription and autoCompleteState.provider"
544
+ class="border-top"
545
+ />
546
+ <TextValueProvider
547
+ t-if="autoCompleteState.provider"
548
+ proposals="autoCompleteState.provider.proposals"
549
+ selectedIndex="autoCompleteState.selectedIndex"
550
+ onValueSelected.bind="this.autoComplete"
551
+ onValueHovered.bind="this.updateAutoCompleteIndex"
552
+ />
553
+ </div>
544
554
  </div>
545
555
  </div>
546
556
  </t>
@@ -1245,7 +1255,7 @@
1245
1255
 
1246
1256
  <t t-name="o-spreadsheet-RowResizer">
1247
1257
  <div
1248
- class="o-row-resizer"
1258
+ class="o-row-resizer overflow-hidden"
1249
1259
  t-on-pointermove.self="onMouseMove"
1250
1260
  t-on-mouseleave="onMouseLeave"
1251
1261
  t-on-pointerdown.self.prevent="select"
@@ -1273,8 +1283,9 @@
1273
1283
  <div class="dragging-resizer" t-if="state.isResizing"/>
1274
1284
  </div>
1275
1285
  </t>
1286
+ <t t-set="viewportZone" t-value="env.model.getters.getActiveMainViewport()"/>
1276
1287
  <t
1277
- t-foreach="env.model.getters.getHiddenRowsGroups(env.model.getters.getActiveSheetId())"
1288
+ t-foreach="env.model.getters.getHiddenRowsGroups(sheetId)"
1278
1289
  t-as="hiddenItem"
1279
1290
  t-key="hiddenItem_index">
1280
1291
  <div
@@ -1282,15 +1293,17 @@
1282
1293
  t-att-style="getUnhideButtonStyle(hiddenItem[0])">
1283
1294
  <div
1284
1295
  class="o-unhide rounded mb-1"
1285
- t-att-class="{'invisible': hiddenItem.includes(0)}"
1296
+ t-att-class="{'invisible': !env.model.getters.isVisibleInViewport({sheetId, col:viewportZone.left, row:hiddenItem[0]-1})}"
1286
1297
  t-att-data-index="hiddenItem_index"
1298
+ t-att-data-direction="'up'"
1287
1299
  t-on-click="() => this.unhide(hiddenItem)">
1288
1300
  <t t-call="o-spreadsheet-Icon.CARET_UP"/>
1289
1301
  </div>
1290
1302
  <div
1291
1303
  class="o-unhide rounded"
1292
- t-att-class="{'invisible': hiddenItem.includes(env.model.getters.getNumberRows(env.model.getters.getActiveSheetId())-1)}"
1304
+ t-att-class="{'invisible': !env.model.getters.isVisibleInViewport({sheetId, col: viewportZone.left, row: hiddenItem[hiddenItem.length-1]+1})}"
1293
1305
  t-att-data-index="hiddenItem_index"
1306
+ t-att-data-direction="'down'"
1294
1307
  t-on-click="() => this.unhide(hiddenItem)">
1295
1308
  <t t-call="o-spreadsheet-Icon.CARET_DOWN"/>
1296
1309
  </div>
@@ -1301,7 +1314,7 @@
1301
1314
 
1302
1315
  <t t-name="o-spreadsheet-ColResizer">
1303
1316
  <div
1304
- class="o-col-resizer"
1317
+ class="o-col-resizer overflow-hidden"
1305
1318
  t-on-pointermove.self="onMouseMove"
1306
1319
  t-on-mouseleave="onMouseLeave"
1307
1320
  t-on-pointerdown.self.prevent="select"
@@ -1329,8 +1342,9 @@
1329
1342
  <div class="dragging-resizer" t-if="state.isResizing"/>
1330
1343
  </div>
1331
1344
  </t>
1345
+ <t t-set="viewportZone" t-value="env.model.getters.getActiveMainViewport()"/>
1332
1346
  <t
1333
- t-foreach="env.model.getters.getHiddenColsGroups(env.model.getters.getActiveSheetId())"
1347
+ t-foreach="env.model.getters.getHiddenColsGroups(sheetId)"
1334
1348
  t-as="hiddenItem"
1335
1349
  t-key="hiddenItem_index">
1336
1350
  <div
@@ -1338,15 +1352,17 @@
1338
1352
  t-att-style="getUnhideButtonStyle(hiddenItem[0])">
1339
1353
  <div
1340
1354
  class="o-unhide rounded"
1341
- t-att-class="{'invisible': hiddenItem.includes(0)}"
1355
+ t-att-class="{'invisible': !env.model.getters.isVisibleInViewport({sheetId, col: hiddenItem[0]-1, row: viewportZone.top})}"
1342
1356
  t-att-data-index="hiddenItem_index"
1357
+ t-att-data-direction="'left'"
1343
1358
  t-on-click="() => this.unhide(hiddenItem)">
1344
1359
  <t t-call="o-spreadsheet-Icon.CARET_LEFT"/>
1345
1360
  </div>
1346
1361
  <div
1347
1362
  class="o-unhide rounded"
1348
- t-att-class="{'invisible': hiddenItem.includes(env.model.getters.getNumberCols(env.model.getters.getActiveSheetId())-1)}"
1363
+ t-att-class="{'invisible': !env.model.getters.isVisibleInViewport({sheetId, col: hiddenItem[hiddenItem.length-1]+1, row: viewportZone.top})}"
1349
1364
  t-att-data-index="hiddenItem_index"
1365
+ t-att-data-direction="'right'"
1350
1366
  t-on-click="() => this.unhide(hiddenItem)">
1351
1367
  <t t-call="o-spreadsheet-Icon.CARET_RIGHT"/>
1352
1368
  </div>
@@ -2500,6 +2516,7 @@
2500
2516
  t-att-style="menuStyle"
2501
2517
  t-on-scroll="onScroll"
2502
2518
  t-on-wheel.stop=""
2519
+ t-on-pointerdown.prevent=""
2503
2520
  t-on-click.stop=""
2504
2521
  t-on-mouseover="onMouseOverMainMenu"
2505
2522
  t-on-contextmenu.prevent="">
@@ -2550,6 +2567,7 @@
2550
2567
  </div>
2551
2568
  <Menu
2552
2569
  t-if="subMenu.isOpen"
2570
+ t-key="subMenu.parentMenu.id"
2553
2571
  position="subMenuPosition"
2554
2572
  menuItems="subMenu.menuItems"
2555
2573
  depth="props.depth + 1"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odoo/o-spreadsheet",
3
- "version": "18.0.17",
3
+ "version": "18.0.19",
4
4
  "description": "A spreadsheet component",
5
5
  "type": "module",
6
6
  "main": "dist/o-spreadsheet.cjs.js",