@odoo/o-spreadsheet 17.1.0-alpha.2 → 17.1.0-alpha.4

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.1.0-alpha.2
5
- @date 2023-11-03T12:25:57.535Z
6
- @hash 0595868
4
+ @version 17.1.0-alpha.4
5
+ @date 2023-11-24T13:12:58.738Z
6
+ @hash 255821b
7
7
  -->
8
8
  <odoo>
9
9
  <t t-name="o-spreadsheet-ActionButton">
@@ -1227,25 +1227,27 @@
1227
1227
  t-foreach="env.model.getters.getHiddenRowsGroups(env.model.getters.getActiveSheetId())"
1228
1228
  t-as="hiddenItem"
1229
1229
  t-key="hiddenItem_index">
1230
- <t t-if="!hiddenItem.includes(0)">
1231
- <div
1232
- class="o-unhide"
1233
- t-att-data-index="hiddenItem_index"
1234
- t-attf-style="top:{{unhideStyleValue(hiddenItem[0]) - 17}}px;"
1235
- t-on-click="() => this.unhide(hiddenItem)">
1236
- <t t-call="o-spreadsheet-Icon.TRIANGLE_UP"/>
1237
- </div>
1238
- </t>
1239
- <t
1240
- t-if="!hiddenItem.includes(env.model.getters.getNumberRows(env.model.getters.getActiveSheetId())-1)">
1241
- <div
1242
- class="o-unhide"
1243
- t-att-data-index="hiddenItem_index"
1244
- t-attf-style="top:{{unhideStyleValue(hiddenItem[0]) + 3}}px;"
1245
- t-on-click="() => this.unhide(hiddenItem)">
1246
- <t t-call="o-spreadsheet-Icon.TRIANGLE_DOWN"/>
1247
- </div>
1248
- </t>
1230
+ <div
1231
+ class="o-unhide-buttons position-relative float-end"
1232
+ t-att-style="getUnhideButtonStyle(hiddenItem[0])">
1233
+ <t t-if="!hiddenItem.includes(0)">
1234
+ <div
1235
+ class="o-unhide rounded mb-1"
1236
+ t-att-data-index="hiddenItem_index"
1237
+ t-on-click="() => this.unhide(hiddenItem)">
1238
+ <t t-call="o-spreadsheet-Icon.TRIANGLE_UP"/>
1239
+ </div>
1240
+ </t>
1241
+ <t
1242
+ t-if="!hiddenItem.includes(env.model.getters.getNumberRows(env.model.getters.getActiveSheetId())-1)">
1243
+ <div
1244
+ class="o-unhide rounded"
1245
+ t-att-data-index="hiddenItem_index"
1246
+ t-on-click="() => this.unhide(hiddenItem)">
1247
+ <t t-call="o-spreadsheet-Icon.TRIANGLE_DOWN"/>
1248
+ </div>
1249
+ </t>
1250
+ </div>
1249
1251
  </t>
1250
1252
  </div>
1251
1253
  </t>
@@ -1284,25 +1286,27 @@
1284
1286
  t-foreach="env.model.getters.getHiddenColsGroups(env.model.getters.getActiveSheetId())"
1285
1287
  t-as="hiddenItem"
1286
1288
  t-key="hiddenItem_index">
1287
- <t t-if="!hiddenItem.includes(0)">
1288
- <div
1289
- class="o-unhide"
1290
- t-att-data-index="hiddenItem_index"
1291
- t-attf-style="left:{{unhideStyleValue(hiddenItem[0]) - 17}}px; margin-right:6px;"
1292
- t-on-click="() => this.unhide(hiddenItem)">
1293
- <t t-call="o-spreadsheet-Icon.TRIANGLE_LEFT"/>
1294
- </div>
1295
- </t>
1296
- <t
1297
- t-if="!hiddenItem.includes(env.model.getters.getNumberCols(env.model.getters.getActiveSheetId())-1)">
1298
- <div
1299
- class="o-unhide"
1300
- t-att-data-index="hiddenItem_index"
1301
- t-attf-style="left:{{unhideStyleValue(hiddenItem[0]) + 3}}px;"
1302
- t-on-click="() => this.unhide(hiddenItem)">
1303
- <t t-call="o-spreadsheet-Icon.TRIANGLE_RIGHT"/>
1304
- </div>
1305
- </t>
1289
+ <div
1290
+ class="o-unhide-buttons position-relative h-100 d-flex align-items-center"
1291
+ t-att-style="getUnhideButtonStyle(hiddenItem[0])">
1292
+ <t t-if="!hiddenItem.includes(0)">
1293
+ <div
1294
+ class="o-unhide rounded"
1295
+ t-att-data-index="hiddenItem_index"
1296
+ t-on-click="() => this.unhide(hiddenItem)">
1297
+ <t t-call="o-spreadsheet-Icon.TRIANGLE_LEFT"/>
1298
+ </div>
1299
+ </t>
1300
+ <t
1301
+ t-if="!hiddenItem.includes(env.model.getters.getNumberCols(env.model.getters.getActiveSheetId())-1)">
1302
+ <div
1303
+ class="o-unhide rounded"
1304
+ t-att-data-index="hiddenItem_index"
1305
+ t-on-click="() => this.unhide(hiddenItem)">
1306
+ <t t-call="o-spreadsheet-Icon.TRIANGLE_RIGHT"/>
1307
+ </div>
1308
+ </t>
1309
+ </div>
1306
1310
  </t>
1307
1311
  </div>
1308
1312
  </t>
@@ -1687,23 +1691,23 @@
1687
1691
  </svg>
1688
1692
  </t>
1689
1693
  <t t-name="o-spreadsheet-Icon.TRIANGLE_DOWN">
1690
- <svg class="o-icon">
1691
- <polygon fill="currentColor" points="0 0 4 4 8 0" transform="translate(5 7)"/>
1694
+ <svg class="o-icon" viewBox="0 0 18 18">
1695
+ <polygon fill="currentColor" points="5 7 9 11 13 7"/>
1692
1696
  </svg>
1693
1697
  </t>
1694
1698
  <t t-name="o-spreadsheet-Icon.TRIANGLE_UP">
1695
- <svg class="o-icon">
1696
- <polygon fill="currentColor" points="4 0 0 4 8 4" transform="translate(5 7)"/>
1699
+ <svg class="o-icon" transform="rotate(180)">
1700
+ <t t-call="o-spreadsheet-Icon.TRIANGLE_DOWN"/>
1697
1701
  </svg>
1698
1702
  </t>
1699
1703
  <t t-name="o-spreadsheet-Icon.TRIANGLE_RIGHT">
1700
- <svg class="o-icon">
1701
- <polygon fill="currentColor" points="0 0 4 4 0 8" transform="translate(5 5)"/>
1704
+ <svg class="o-icon" transform="rotate(-90)">
1705
+ <t t-call="o-spreadsheet-Icon.TRIANGLE_DOWN"/>
1702
1706
  </svg>
1703
1707
  </t>
1704
1708
  <t t-name="o-spreadsheet-Icon.TRIANGLE_LEFT">
1705
- <svg class="o-icon">
1706
- <polygon fill="currentColor" points="4 0 0 4 4 8" transform="translate(5 5)"/>
1709
+ <svg class="o-icon" transform="rotate(90)" viewBox="0 0 18 18">
1710
+ <t t-call="o-spreadsheet-Icon.TRIANGLE_DOWN"/>
1707
1711
  </svg>
1708
1712
  </t>
1709
1713
  <t t-name="o-spreadsheet-Icon.BOLD">
@@ -1963,10 +1967,9 @@
1963
1967
  />
1964
1968
  </svg>
1965
1969
  </t>
1966
- /** Font Awesome by Dave Gandy
1967
- * http://fontawesome.io/
1968
- * https://fontawesome.com/license
1969
- */
1970
+ <!-- Font Awesome by Dave Gandy
1971
+ http://fontawesome.io/
1972
+ https://fontawesome.com/license -->
1970
1973
  <t t-name="o-spreadsheet-Icon.CARET_UP">
1971
1974
  <svg class="caret-up" viewBox="0 0 320 512">
1972
1975
  <path
@@ -2433,7 +2436,7 @@
2433
2436
  t-att-data-name="menuItem.id"
2434
2437
  t-on-click="(ev) => this.onClickMenu(menuItem, menuItem_index, ev)"
2435
2438
  t-on-mouseover="(ev) => this.onMouseOver(menuItem, menuItem_index, ev)"
2436
- class="o-menu-item"
2439
+ class="o-menu-item d-flex align-items-center"
2437
2440
  t-att-class="{ 'o-menu-root': isMenuRoot, 'disabled': !isMenuEnabled, 'o-menu-item-active': isParentMenu(subMenu, menuItem)}"
2438
2441
  t-att-style="getColor(menuItem)">
2439
2442
  <div class="d-flex w-100">
@@ -2447,11 +2450,17 @@
2447
2450
  class="o-menu-item-description ms-auto text-truncate"
2448
2451
  t-esc="description"
2449
2452
  />
2453
+ <t t-set="secondaryIcon" t-value="menuItem.secondaryIcon(env)"/>
2450
2454
  <div
2451
2455
  t-if="isMenuRoot"
2452
2456
  class="o-menu-item-root align-middle ms-auto"
2453
2457
  t-call="o-spreadsheet-Icon.TRIANGLE_RIGHT"
2454
2458
  />
2459
+ <div
2460
+ t-elif="secondaryIcon"
2461
+ class="o-menu-item-root align-middle ms-auto"
2462
+ t-call="{{secondaryIcon}}"
2463
+ />
2455
2464
  </div>
2456
2465
  </div>
2457
2466
  </t>
@@ -3981,6 +3990,7 @@
3981
3990
  t-ref="searchInput"
3982
3991
  class="o-input o-input-with-count"
3983
3992
  t-on-input="onInput"
3993
+ t-on-focus="onFocusSearch"
3984
3994
  t-on-keydown="onKeydownSearch"
3985
3995
  />
3986
3996
  <div class="o-input-count" t-if="hasSearchResult">
@@ -3988,35 +3998,62 @@
3988
3998
  /
3989
3999
  <t t-esc="env.model.getters.getSearchMatches().length"/>
3990
4000
  </div>
3991
- <div t-elif="!pendingSearch and state.toSearch !== ''" class="o-input-count">0 / 0</div>
4001
+ <div t-elif="!pendingSearch and toSearch !== ''" class="o-input-count">0 / 0</div>
4002
+ </div>
4003
+ <select
4004
+ class="o-input o-type-selector o-type-range-selector mt-3 mb-3"
4005
+ t-on-change="changeSearchScope">
4006
+ <option value="allSheets">All sheets</option>
4007
+ <option value="activeSheet">Current sheet</option>
4008
+ <option value="specificRange">Specific range</option>
4009
+ </select>
4010
+ <div t-if="searchOptions.searchScope === 'specificRange'">
4011
+ <SelectionInput
4012
+ ranges="() => [this.dataRange]"
4013
+ onSelectionChanged="(ranges) => this.onSearchRangeChanged(ranges)"
4014
+ onSelectionConfirmed.bind="updateDataRange"
4015
+ hasSingleRange="true"
4016
+ required="true"
4017
+ />
3992
4018
  </div>
3993
4019
  <div>
3994
4020
  <!-- TODO: go through this css, the group misses a padding and could profit from BootStrap -->
3995
4021
  <label class="o-checkbox mt-1">
3996
4022
  <input
3997
- t-model="state.searchOptions.matchCase"
3998
- t-on-change="updateSearch"
4023
+ t-att-checked="searchOptions.matchCase"
4024
+ t-on-change="searchMatchCase"
3999
4025
  type="checkbox"
4000
4026
  />
4001
4027
  <span>Match case</span>
4002
4028
  </label>
4003
4029
  <label class="o-checkbox">
4004
4030
  <input
4005
- t-model="state.searchOptions.exactMatch"
4006
- t-on-change="updateSearch"
4031
+ t-att-checked="searchOptions.exactMatch"
4032
+ t-on-change="searchExactMatch"
4007
4033
  type="checkbox"
4008
4034
  />
4009
4035
  <span>Match entire cell content</span>
4010
4036
  </label>
4011
4037
  <label class="o-checkbox">
4012
4038
  <input
4013
- t-model="state.searchOptions.searchFormulas"
4039
+ t-att-checked="searchOptions.searchFormulas"
4014
4040
  t-on-change="searchFormulas"
4015
4041
  type="checkbox"
4016
4042
  />
4017
4043
  <span>Search in formulas</span>
4018
4044
  </label>
4019
4045
  </div>
4046
+ <div class="o-matches-count mt-4" t-if="toSearch !== ''">
4047
+ <div t-if="searchOptions.searchScope === 'specificRange' and dataRange != ''">
4048
+ <t t-esc="specificRangeMatchesCount"/>
4049
+ </div>
4050
+ <div>
4051
+ <t t-esc="currentSheetMatchesCount"/>
4052
+ </div>
4053
+ <div>
4054
+ <t t-esc="allSheetsMatchesCount"/>
4055
+ </div>
4056
+ </div>
4020
4057
  </div>
4021
4058
  <div class="o-sidePanelButtons">
4022
4059
  <button
@@ -4035,7 +4072,7 @@
4035
4072
  <input
4036
4073
  type="text"
4037
4074
  class="o-input o-input-without-count"
4038
- t-model="state.replaceWith"
4075
+ t-ref="replaceInput"
4039
4076
  t-on-keydown="onKeydownReplace"
4040
4077
  />
4041
4078
  </div>
@@ -4254,6 +4291,7 @@
4254
4291
  <div
4255
4292
  class="o-spreadsheet"
4256
4293
  t-on-keydown="(ev) => !env.isDashboard() and this.onKeydown(ev)"
4294
+ t-ref="spreadsheet"
4257
4295
  t-att-style="getStyle()">
4258
4296
  <t t-if="env.isDashboard()">
4259
4297
  <SpreadsheetDashboard/>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odoo/o-spreadsheet",
3
- "version": "17.1.0-alpha.2",
3
+ "version": "17.1.0-alpha.4",
4
4
  "description": "A spreadsheet component",
5
5
  "type": "module",
6
6
  "main": "dist/o-spreadsheet.cjs.js",