@odoo/o-spreadsheet 17.4.23 → 17.4.25

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 17.4.23
5
- @date 2025-02-14T08:38:00.402Z
6
- @hash 8339907
4
+ @version 17.4.25
5
+ @date 2025-03-07T10:34:06.750Z
6
+ @hash 765f110
7
7
  -->
8
8
  <odoo>
9
9
  <t t-name="o-spreadsheet-ActionButton">
@@ -477,28 +477,31 @@
477
477
  t-on-contextmenu="onContextMenu"
478
478
  />
479
479
 
480
- <div
481
- t-if="props.focus !== 'inactive' and (autoCompleteState.provider or functionDescriptionState.showDescription)"
482
- class="o-composer-assistant shadow"
483
- t-att-style="assistantStyle"
484
- t-on-wheel.stop=""
485
- t-on-pointerdown.prevent.stop=""
486
- t-on-click.prevent.stop=""
487
- t-on-pointerup.prevent.stop="">
488
- <TextValueProvider
489
- t-if="autoCompleteState.provider"
490
- proposals="autoCompleteState.provider.proposals"
491
- selectedIndex="autoCompleteState.selectedIndex"
492
- onValueSelected.bind="this.autoComplete"
493
- onValueHovered.bind="this.updateAutoCompleteIndex"
494
- />
495
- <FunctionDescriptionProvider
496
- t-if="functionDescriptionState.showDescription"
497
- functionName="functionDescriptionState.functionName"
498
- functionDescription="functionDescriptionState.functionDescription"
499
- argToFocus="functionDescriptionState.argToFocus"
500
- />
501
- </div>
480
+ <Popover
481
+ t-props="popoverProps"
482
+ t-if="props.focus !== 'inactive' and (autoCompleteState.provider or functionDescriptionState.showDescription)">
483
+ <div
484
+ class="o-composer-assistant"
485
+ t-att-style="assistantStyle"
486
+ t-on-wheel.stop=""
487
+ t-on-pointerdown.prevent.stop=""
488
+ t-on-click.prevent.stop=""
489
+ t-on-pointerup.prevent.stop="">
490
+ <TextValueProvider
491
+ t-if="autoCompleteState.provider"
492
+ proposals="autoCompleteState.provider.proposals"
493
+ selectedIndex="autoCompleteState.selectedIndex"
494
+ onValueSelected.bind="this.autoComplete"
495
+ onValueHovered.bind="this.updateAutoCompleteIndex"
496
+ />
497
+ <FunctionDescriptionProvider
498
+ t-if="functionDescriptionState.showDescription"
499
+ functionName="functionDescriptionState.functionName"
500
+ functionDescription="functionDescriptionState.functionDescription"
501
+ argToFocus="functionDescriptionState.argToFocus"
502
+ />
503
+ </div>
504
+ </Popover>
502
505
  </div>
503
506
  </t>
504
507
 
@@ -578,12 +581,7 @@
578
581
  class="o-topbar-composer bg-white user-select-text"
579
582
  t-on-click.stop=""
580
583
  t-att-style="containerStyle">
581
- <Composer
582
- focus="focus"
583
- inputStyle="composerStyle"
584
- onComposerContentFocused.bind="onFocus"
585
- delimitation="delimitation"
586
- />
584
+ <Composer focus="focus" inputStyle="composerStyle" onComposerContentFocused.bind="onFocus"/>
587
585
  </div>
588
586
  </t>
589
587
 
@@ -921,6 +919,7 @@
921
919
  max="400"
922
920
  class="o-font-size o-number-input bg-transparent border-0"
923
921
  t-on-keydown="onInputKeydown"
922
+ t-on-wheel.prevent.stop=""
924
923
  t-on-click.stop=""
925
924
  t-on-focus.stop="onInputFocused"
926
925
  t-att-value="currentFontSize"
@@ -1187,7 +1186,7 @@
1187
1186
 
1188
1187
  <t t-name="o-spreadsheet-RowResizer">
1189
1188
  <div
1190
- class="o-row-resizer"
1189
+ class="o-row-resizer overflow-hidden"
1191
1190
  t-on-pointermove.self="onMouseMove"
1192
1191
  t-on-mouseleave="onMouseLeave"
1193
1192
  t-on-pointerdown.self.prevent="select"
@@ -1215,8 +1214,9 @@
1215
1214
  <div class="dragging-resizer" t-if="state.isResizing"/>
1216
1215
  </div>
1217
1216
  </t>
1217
+ <t t-set="viewportZone" t-value="env.model.getters.getActiveMainViewport()"/>
1218
1218
  <t
1219
- t-foreach="env.model.getters.getHiddenRowsGroups(env.model.getters.getActiveSheetId())"
1219
+ t-foreach="env.model.getters.getHiddenRowsGroups(sheetId)"
1220
1220
  t-as="hiddenItem"
1221
1221
  t-key="hiddenItem_index">
1222
1222
  <div
@@ -1224,15 +1224,17 @@
1224
1224
  t-att-style="getUnhideButtonStyle(hiddenItem[0])">
1225
1225
  <div
1226
1226
  class="o-unhide rounded mb-1"
1227
- t-att-class="{'invisible': hiddenItem.includes(0)}"
1227
+ t-att-class="{'invisible': !env.model.getters.isVisibleInViewport({sheetId, col:viewportZone.left, row:hiddenItem[0]-1})}"
1228
1228
  t-att-data-index="hiddenItem_index"
1229
+ t-att-data-direction="'up'"
1229
1230
  t-on-click="() => this.unhide(hiddenItem)">
1230
1231
  <t t-call="o-spreadsheet-Icon.CARET_UP"/>
1231
1232
  </div>
1232
1233
  <div
1233
1234
  class="o-unhide rounded"
1234
- t-att-class="{'invisible': hiddenItem.includes(env.model.getters.getNumberRows(env.model.getters.getActiveSheetId())-1)}"
1235
+ t-att-class="{'invisible': !env.model.getters.isVisibleInViewport({sheetId, col: viewportZone.left, row: hiddenItem[hiddenItem.length-1]+1})}"
1235
1236
  t-att-data-index="hiddenItem_index"
1237
+ t-att-data-direction="'down'"
1236
1238
  t-on-click="() => this.unhide(hiddenItem)">
1237
1239
  <t t-call="o-spreadsheet-Icon.CARET_DOWN"/>
1238
1240
  </div>
@@ -1243,7 +1245,7 @@
1243
1245
 
1244
1246
  <t t-name="o-spreadsheet-ColResizer">
1245
1247
  <div
1246
- class="o-col-resizer"
1248
+ class="o-col-resizer overflow-hidden"
1247
1249
  t-on-pointermove.self="onMouseMove"
1248
1250
  t-on-mouseleave="onMouseLeave"
1249
1251
  t-on-pointerdown.self.prevent="select"
@@ -1271,8 +1273,9 @@
1271
1273
  <div class="dragging-resizer" t-if="state.isResizing"/>
1272
1274
  </div>
1273
1275
  </t>
1276
+ <t t-set="viewportZone" t-value="env.model.getters.getActiveMainViewport()"/>
1274
1277
  <t
1275
- t-foreach="env.model.getters.getHiddenColsGroups(env.model.getters.getActiveSheetId())"
1278
+ t-foreach="env.model.getters.getHiddenColsGroups(sheetId)"
1276
1279
  t-as="hiddenItem"
1277
1280
  t-key="hiddenItem_index">
1278
1281
  <div
@@ -1280,15 +1283,17 @@
1280
1283
  t-att-style="getUnhideButtonStyle(hiddenItem[0])">
1281
1284
  <div
1282
1285
  class="o-unhide rounded"
1283
- t-att-class="{'invisible': hiddenItem.includes(0)}"
1286
+ t-att-class="{'invisible': !env.model.getters.isVisibleInViewport({sheetId, col: hiddenItem[0]-1, row: viewportZone.top})}"
1284
1287
  t-att-data-index="hiddenItem_index"
1288
+ t-att-data-direction="'left'"
1285
1289
  t-on-click="() => this.unhide(hiddenItem)">
1286
1290
  <t t-call="o-spreadsheet-Icon.CARET_LEFT"/>
1287
1291
  </div>
1288
1292
  <div
1289
1293
  class="o-unhide rounded"
1290
- t-att-class="{'invisible': hiddenItem.includes(env.model.getters.getNumberCols(env.model.getters.getActiveSheetId())-1)}"
1294
+ t-att-class="{'invisible': !env.model.getters.isVisibleInViewport({sheetId, col: hiddenItem[hiddenItem.length-1]+1, row: viewportZone.top})}"
1291
1295
  t-att-data-index="hiddenItem_index"
1296
+ t-att-data-direction="'right'"
1292
1297
  t-on-click="() => this.unhide(hiddenItem)">
1293
1298
  <t t-call="o-spreadsheet-Icon.CARET_RIGHT"/>
1294
1299
  </div>
@@ -2412,6 +2417,7 @@
2412
2417
  </div>
2413
2418
  <Menu
2414
2419
  t-if="subMenu.isOpen"
2420
+ t-key="subMenu.parentMenu.id"
2415
2421
  position="subMenuPosition"
2416
2422
  menuItems="subMenu.menuItems"
2417
2423
  depth="props.depth + 1"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odoo/o-spreadsheet",
3
- "version": "17.4.23",
3
+ "version": "17.4.25",
4
4
  "description": "A spreadsheet component",
5
5
  "type": "module",
6
6
  "main": "dist/o-spreadsheet.cjs.js",
@@ -24,6 +24,7 @@
24
24
  "build": "npm-run-all build:js build:bundleJs \"build:bundleXml -- --outDir build\"",
25
25
  "doc": "typedoc",
26
26
  "precommit": "npm run prettier && npm run doc",
27
+ "monkey": "SPREADSHEET_MONKEY_COUNT=$npm_config_monkey_count jest 'tests/collaborative/collaborative_monkey_party.test.ts'",
27
28
  "test": "tsc --noEmit --project tsconfig.jest.json && jest",
28
29
  "test:watch": "jest --watch",
29
30
  "prettier": "prettier . --write",
@@ -90,6 +91,7 @@
90
91
  "rollup": "^3.28.0",
91
92
  "rollup-plugin-dts": "^5.3.1",
92
93
  "rollup-plugin-typescript2": "^0.35.0",
94
+ "seedrandom": "^3.0.5",
93
95
  "typedoc": "0.25.12",
94
96
  "typedoc-plugin-markdown": "3.17.1",
95
97
  "typescript": "^5.4.3",