@odoo/o-spreadsheet 18.1.9 → 18.1.11

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.1.9
5
- @date 2025-02-25T06:00:27.248Z
6
- @hash 6789c1c
4
+ @version 18.1.11
5
+ @date 2025-03-12T15:32:26.993Z
6
+ @hash 7de2363
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>
@@ -1247,7 +1257,7 @@
1247
1257
 
1248
1258
  <t t-name="o-spreadsheet-RowResizer">
1249
1259
  <div
1250
- class="o-row-resizer"
1260
+ class="o-row-resizer overflow-hidden"
1251
1261
  t-on-pointermove.self="onMouseMove"
1252
1262
  t-on-mouseleave="onMouseLeave"
1253
1263
  t-on-pointerdown.self.prevent="select"
@@ -1275,8 +1285,9 @@
1275
1285
  <div class="dragging-resizer" t-if="state.isResizing"/>
1276
1286
  </div>
1277
1287
  </t>
1288
+ <t t-set="viewportZone" t-value="env.model.getters.getActiveMainViewport()"/>
1278
1289
  <t
1279
- t-foreach="env.model.getters.getHiddenRowsGroups(env.model.getters.getActiveSheetId())"
1290
+ t-foreach="env.model.getters.getHiddenRowsGroups(sheetId)"
1280
1291
  t-as="hiddenItem"
1281
1292
  t-key="hiddenItem_index">
1282
1293
  <div
@@ -1284,15 +1295,17 @@
1284
1295
  t-att-style="getUnhideButtonStyle(hiddenItem[0])">
1285
1296
  <div
1286
1297
  class="o-unhide rounded mb-1"
1287
- t-att-class="{'invisible': hiddenItem.includes(0)}"
1298
+ t-att-class="{'invisible': !env.model.getters.isVisibleInViewport({sheetId, col:viewportZone.left, row:hiddenItem[0]-1})}"
1288
1299
  t-att-data-index="hiddenItem_index"
1300
+ t-att-data-direction="'up'"
1289
1301
  t-on-click="() => this.unhide(hiddenItem)">
1290
1302
  <t t-call="o-spreadsheet-Icon.CARET_UP"/>
1291
1303
  </div>
1292
1304
  <div
1293
1305
  class="o-unhide rounded"
1294
- t-att-class="{'invisible': hiddenItem.includes(env.model.getters.getNumberRows(env.model.getters.getActiveSheetId())-1)}"
1306
+ t-att-class="{'invisible': !env.model.getters.isVisibleInViewport({sheetId, col: viewportZone.left, row: hiddenItem[hiddenItem.length-1]+1})}"
1295
1307
  t-att-data-index="hiddenItem_index"
1308
+ t-att-data-direction="'down'"
1296
1309
  t-on-click="() => this.unhide(hiddenItem)">
1297
1310
  <t t-call="o-spreadsheet-Icon.CARET_DOWN"/>
1298
1311
  </div>
@@ -1303,7 +1316,7 @@
1303
1316
 
1304
1317
  <t t-name="o-spreadsheet-ColResizer">
1305
1318
  <div
1306
- class="o-col-resizer"
1319
+ class="o-col-resizer overflow-hidden"
1307
1320
  t-on-pointermove.self="onMouseMove"
1308
1321
  t-on-mouseleave="onMouseLeave"
1309
1322
  t-on-pointerdown.self.prevent="select"
@@ -1331,8 +1344,9 @@
1331
1344
  <div class="dragging-resizer" t-if="state.isResizing"/>
1332
1345
  </div>
1333
1346
  </t>
1347
+ <t t-set="viewportZone" t-value="env.model.getters.getActiveMainViewport()"/>
1334
1348
  <t
1335
- t-foreach="env.model.getters.getHiddenColsGroups(env.model.getters.getActiveSheetId())"
1349
+ t-foreach="env.model.getters.getHiddenColsGroups(sheetId)"
1336
1350
  t-as="hiddenItem"
1337
1351
  t-key="hiddenItem_index">
1338
1352
  <div
@@ -1340,15 +1354,17 @@
1340
1354
  t-att-style="getUnhideButtonStyle(hiddenItem[0])">
1341
1355
  <div
1342
1356
  class="o-unhide rounded"
1343
- t-att-class="{'invisible': hiddenItem.includes(0)}"
1357
+ t-att-class="{'invisible': !env.model.getters.isVisibleInViewport({sheetId, col: hiddenItem[0]-1, row: viewportZone.top})}"
1344
1358
  t-att-data-index="hiddenItem_index"
1359
+ t-att-data-direction="'left'"
1345
1360
  t-on-click="() => this.unhide(hiddenItem)">
1346
1361
  <t t-call="o-spreadsheet-Icon.CARET_LEFT"/>
1347
1362
  </div>
1348
1363
  <div
1349
1364
  class="o-unhide rounded"
1350
- t-att-class="{'invisible': hiddenItem.includes(env.model.getters.getNumberCols(env.model.getters.getActiveSheetId())-1)}"
1365
+ t-att-class="{'invisible': !env.model.getters.isVisibleInViewport({sheetId, col: hiddenItem[hiddenItem.length-1]+1, row: viewportZone.top})}"
1351
1366
  t-att-data-index="hiddenItem_index"
1367
+ t-att-data-direction="'right'"
1352
1368
  t-on-click="() => this.unhide(hiddenItem)">
1353
1369
  <t t-call="o-spreadsheet-Icon.CARET_RIGHT"/>
1354
1370
  </div>
@@ -2512,6 +2528,7 @@
2512
2528
  t-att-style="menuStyle"
2513
2529
  t-on-scroll="onScroll"
2514
2530
  t-on-wheel.stop=""
2531
+ t-on-pointerdown.prevent=""
2515
2532
  t-on-click.stop=""
2516
2533
  t-on-mouseover="onMouseOverMainMenu"
2517
2534
  t-on-contextmenu.prevent="">
@@ -2562,6 +2579,7 @@
2562
2579
  </div>
2563
2580
  <Menu
2564
2581
  t-if="subMenu.isOpen"
2582
+ t-key="subMenu.parentMenu.id"
2565
2583
  position="subMenuPosition"
2566
2584
  menuItems="subMenu.menuItems"
2567
2585
  depth="props.depth + 1"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odoo/o-spreadsheet",
3
- "version": "18.1.9",
3
+ "version": "18.1.11",
4
4
  "description": "A spreadsheet component",
5
5
  "type": "module",
6
6
  "main": "dist/o-spreadsheet.cjs.js",