@odoo/o-spreadsheet 18.2.1 → 18.2.3

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.2.1
5
- @date 2025-02-25T06:03:53.291Z
6
- @hash 3b4b5c9
4
+ @version 18.2.3
5
+ @date 2025-03-12T15:33:19.031Z
6
+ @hash 81b0e08
7
7
  -->
8
8
  <odoo>
9
9
  <t t-name="o-spreadsheet-ValidationMessages">
@@ -3629,6 +3629,7 @@
3629
3629
  t-att-style="menuStyle"
3630
3630
  t-on-scroll="onScroll"
3631
3631
  t-on-wheel.stop=""
3632
+ t-on-pointerdown.prevent=""
3632
3633
  t-on-click.stop=""
3633
3634
  t-on-mouseover="onMouseOverMainMenu"
3634
3635
  t-on-contextmenu.prevent="">
@@ -3679,6 +3680,7 @@
3679
3680
  </div>
3680
3681
  <Menu
3681
3682
  t-if="subMenu.isOpen"
3683
+ t-key="subMenu.parentMenu.id"
3682
3684
  position="subMenuPosition"
3683
3685
  menuItems="subMenu.menuItems"
3684
3686
  depth="props.depth + 1"
@@ -4846,6 +4848,72 @@
4846
4848
  />
4847
4849
  </t>
4848
4850
 
4851
+ <t t-name="o-spreadsheet-UnhideRowHeaders">
4852
+ <t t-foreach="props.headersGroups" t-as="hiddenItem" t-key="hiddenItem_index">
4853
+ <t t-if="isVisible(hiddenItem[0]-1)">
4854
+ <div
4855
+ class="position-absolute w-100 pe-none"
4856
+ t-att-style="getUnhidePreviousButtonStyle(hiddenItem[0]-1)">
4857
+ <div
4858
+ class="o-unhide rounded end-0 position-absolute pe-auto"
4859
+ t-att-data-index="hiddenItem_index"
4860
+ t-attf-style="bottom: 2px;"
4861
+ t-att-data-direction="'up'"
4862
+ t-on-click="() => this.unhide(hiddenItem)">
4863
+ <t t-call="o-spreadsheet-Icon.CARET_UP"/>
4864
+ </div>
4865
+ </div>
4866
+ </t>
4867
+ <t t-if="isVisible(hiddenItem.at(-1)+1)">
4868
+ <div
4869
+ class="position-absolute w-100 pe-none"
4870
+ t-att-style="getUnhideNextButtonStyle(hiddenItem.at(-1)+1)">
4871
+ <div
4872
+ class="o-unhide rounded end-0 position-absolute pe-auto"
4873
+ t-att-data-index="hiddenItem_index"
4874
+ t-att-data-direction="'down'"
4875
+ t-attf-style="top: 1px;"
4876
+ t-on-click="() => this.unhide(hiddenItem)">
4877
+ <t t-call="o-spreadsheet-Icon.CARET_DOWN"/>
4878
+ </div>
4879
+ </div>
4880
+ </t>
4881
+ </t>
4882
+ </t>
4883
+
4884
+ <t t-name="o-spreadsheet-UnhideColumnHeaders">
4885
+ <t t-foreach="props.headersGroups" t-as="hiddenItem" t-key="hiddenItem_index">
4886
+ <t t-if="isVisible(hiddenItem[0]-1)">
4887
+ <div
4888
+ class="position-absolute d-flex align-items-center pe-none h-100"
4889
+ t-att-style="getUnhidePreviousButtonStyle(hiddenItem[0]-1)">
4890
+ <div
4891
+ class="o-unhide position-absolute rounded pe-auto"
4892
+ t-att-data-index="hiddenItem_index"
4893
+ t-att-data-direction="'left'"
4894
+ t-attf-style="right: 1px;"
4895
+ t-on-click="() => this.unhide(hiddenItem)">
4896
+ <t t-call="o-spreadsheet-Icon.CARET_LEFT"/>
4897
+ </div>
4898
+ </div>
4899
+ </t>
4900
+ <t t-if="isVisible(hiddenItem.at(-1)+1)">
4901
+ <div
4902
+ class="position-absolute d-flex align-items-center pe-none h-100"
4903
+ t-att-style="getUnhideNextButtonStyle(hiddenItem.at(-1)+1)">
4904
+ <div
4905
+ class="o-unhide position-absolute rounded pe-auto"
4906
+ t-att-data-index="hiddenItem_index"
4907
+ t-att-data-direction="'right'"
4908
+ t-attf-style="left: 1px;"
4909
+ t-on-click="() => this.unhide(hiddenItem)">
4910
+ <t t-call="o-spreadsheet-Icon.CARET_RIGHT"/>
4911
+ </div>
4912
+ </div>
4913
+ </t>
4914
+ </t>
4915
+ </t>
4916
+
4849
4917
  <t t-name="o-spreadsheet-HeadersOverlay">
4850
4918
  <div class="o-overlay">
4851
4919
  <ColResizer onOpenContextMenu="props.onOpenContextMenu"/>
@@ -4856,7 +4924,7 @@
4856
4924
 
4857
4925
  <t t-name="o-spreadsheet-RowResizer">
4858
4926
  <div
4859
- class="o-row-resizer"
4927
+ class="o-row-resizer overflow-hidden"
4860
4928
  t-on-pointermove.self="onMouseMove"
4861
4929
  t-on-mouseleave="onMouseLeave"
4862
4930
  t-on-pointerdown.self.prevent="select"
@@ -4884,27 +4952,14 @@
4884
4952
  <div class="dragging-resizer" t-if="state.isResizing"/>
4885
4953
  </div>
4886
4954
  </t>
4887
- <t
4888
- t-foreach="env.model.getters.getHiddenRowsGroups(env.model.getters.getActiveSheetId())"
4889
- t-as="hiddenItem"
4890
- t-key="hiddenItem_index">
4891
- <div
4892
- class="position-absolute end-0 translate-middle-y"
4893
- t-att-style="getUnhideButtonStyle(hiddenItem[0])">
4894
- <div
4895
- class="o-unhide rounded mb-1"
4896
- t-att-class="{'invisible': hiddenItem.includes(0)}"
4897
- t-att-data-index="hiddenItem_index"
4898
- t-on-click="() => this.unhide(hiddenItem)">
4899
- <t t-call="o-spreadsheet-Icon.CARET_UP"/>
4900
- </div>
4901
- <div
4902
- class="o-unhide rounded"
4903
- t-att-class="{'invisible': hiddenItem.includes(env.model.getters.getNumberRows(env.model.getters.getActiveSheetId())-1)}"
4904
- t-att-data-index="hiddenItem_index"
4905
- t-on-click="() => this.unhide(hiddenItem)">
4906
- <t t-call="o-spreadsheet-Icon.CARET_DOWN"/>
4955
+ <t t-if="env.model.getters.getHiddenRowsGroups(sheetId).length">
4956
+ <t t-if="hasFrozenPane">
4957
+ <div class="position-relative pe-none overflow-hidden" t-att-style="frozenContainerStyle">
4958
+ <UnhideRowHeaders t-props="frozenUnhideHeadersProps"/>
4907
4959
  </div>
4960
+ </t>
4961
+ <div class="pe-none overflow-hidden flex-shrink-0 position-relative h-100">
4962
+ <UnhideRowHeaders t-props="mainUnhideHeadersProps"/>
4908
4963
  </div>
4909
4964
  </t>
4910
4965
  </div>
@@ -4912,7 +4967,7 @@
4912
4967
 
4913
4968
  <t t-name="o-spreadsheet-ColResizer">
4914
4969
  <div
4915
- class="o-col-resizer"
4970
+ class="o-col-resizer d-flex overflow-hidden"
4916
4971
  t-on-pointermove.self="onMouseMove"
4917
4972
  t-on-mouseleave="onMouseLeave"
4918
4973
  t-on-pointerdown.self.prevent="select"
@@ -4940,27 +4995,16 @@
4940
4995
  <div class="dragging-resizer" t-if="state.isResizing"/>
4941
4996
  </div>
4942
4997
  </t>
4943
- <t
4944
- t-foreach="env.model.getters.getHiddenColsGroups(env.model.getters.getActiveSheetId())"
4945
- t-as="hiddenItem"
4946
- t-key="hiddenItem_index">
4947
- <div
4948
- class="position-absolute h-100 d-flex align-items-center translate-middle-x gap-2"
4949
- t-att-style="getUnhideButtonStyle(hiddenItem[0])">
4998
+ <t t-if="env.model.getters.getHiddenColsGroups(sheetId).length">
4999
+ <t t-if="hasFrozenPane">
4950
5000
  <div
4951
- class="o-unhide rounded"
4952
- t-att-class="{'invisible': hiddenItem.includes(0)}"
4953
- t-att-data-index="hiddenItem_index"
4954
- t-on-click="() => this.unhide(hiddenItem)">
4955
- <t t-call="o-spreadsheet-Icon.CARET_LEFT"/>
4956
- </div>
4957
- <div
4958
- class="o-unhide rounded"
4959
- t-att-class="{'invisible': hiddenItem.includes(env.model.getters.getNumberCols(env.model.getters.getActiveSheetId())-1)}"
4960
- t-att-data-index="hiddenItem_index"
4961
- t-on-click="() => this.unhide(hiddenItem)">
4962
- <t t-call="o-spreadsheet-Icon.CARET_RIGHT"/>
5001
+ class="position-relative pe-none h-100 flex-shrink-0"
5002
+ t-att-style="frozenContainerStyle">
5003
+ <UnhideColumnHeaders t-props="frozenUnhideHeadersProps"/>
4963
5004
  </div>
5005
+ </t>
5006
+ <div class="pe-none overflow-hidden flex-shrink-0 position-relative w-100">
5007
+ <UnhideColumnHeaders t-props="mainUnhideHeadersProps"/>
4964
5008
  </div>
4965
5009
  </t>
4966
5010
  </div>
@@ -5719,13 +5763,9 @@
5719
5763
  />
5720
5764
  </div>
5721
5765
  <div
5722
- t-if="props.focus !== 'inactive' and !assistant.forcedClosed and assistantIsAvailable"
5723
- class="o-composer-assistant shadow"
5724
- t-att-style="assistantStyle"
5725
- t-on-wheel.stop=""
5726
- t-on-pointerdown.prevent.stop=""
5727
- t-on-click.prevent.stop=""
5728
- t-on-pointerup.prevent.stop="">
5766
+ class="o-composer-assistant-container shadow position-absolute"
5767
+ t-att-style="assistantContainerStyle"
5768
+ t-if="props.focus !== 'inactive' and !assistant.forcedClosed and assistantIsAvailable">
5729
5769
  <span
5730
5770
  role="button"
5731
5771
  t-on-click="closeAssistant"
@@ -5733,23 +5773,31 @@
5733
5773
  <i class="fa fa-circle fa-stack-1x fa-inverse"/>
5734
5774
  <i class="fa fa-times-circle fa-stack-1x text-muted"/>
5735
5775
  </span>
5736
- <FunctionDescriptionProvider
5737
- t-if="functionDescriptionState.showDescription"
5738
- functionName="functionDescriptionState.functionName"
5739
- functionDescription="functionDescriptionState.functionDescription"
5740
- argToFocus="functionDescriptionState.argToFocus"
5741
- />
5742
5776
  <div
5743
- t-if="functionDescriptionState.showDescription and autoCompleteState.provider"
5744
- class="border-top"
5745
- />
5746
- <TextValueProvider
5747
- t-if="autoCompleteState.provider"
5748
- proposals="autoCompleteState.provider.proposals"
5749
- selectedIndex="autoCompleteState.selectedIndex"
5750
- onValueSelected.bind="this.autoComplete"
5751
- onValueHovered.bind="this.updateAutoCompleteIndex"
5752
- />
5777
+ class="o-composer-assistant overflow-auto"
5778
+ t-att-style="assistantStyle"
5779
+ t-on-wheel.stop=""
5780
+ t-on-pointerdown.prevent.stop=""
5781
+ t-on-click.prevent.stop=""
5782
+ t-on-pointerup.prevent.stop="">
5783
+ <FunctionDescriptionProvider
5784
+ t-if="functionDescriptionState.showDescription"
5785
+ functionName="functionDescriptionState.functionName"
5786
+ functionDescription="functionDescriptionState.functionDescription"
5787
+ argToFocus="functionDescriptionState.argToFocus"
5788
+ />
5789
+ <div
5790
+ t-if="functionDescriptionState.showDescription and autoCompleteState.provider"
5791
+ class="border-top"
5792
+ />
5793
+ <TextValueProvider
5794
+ t-if="autoCompleteState.provider"
5795
+ proposals="autoCompleteState.provider.proposals"
5796
+ selectedIndex="autoCompleteState.selectedIndex"
5797
+ onValueSelected.bind="this.autoComplete"
5798
+ onValueHovered.bind="this.updateAutoCompleteIndex"
5799
+ />
5800
+ </div>
5753
5801
  </div>
5754
5802
  </div>
5755
5803
  </t>
@@ -5923,7 +5971,11 @@
5923
5971
  </div>
5924
5972
  </Ripple>
5925
5973
  <Ripple>
5926
- <div class="o-sheet-item o-list-sheets me-2 p-1" t-on-click="clickListSheets">
5974
+ <div
5975
+ class="o-sheet-item o-list-sheets me-2 p-1"
5976
+ composerFocusableElement="true"
5977
+ tabindex="-1"
5978
+ t-on-click="clickListSheets">
5927
5979
  <t t-call="o-spreadsheet-Icon.LIST"/>
5928
5980
  </div>
5929
5981
  </Ripple>
@@ -6032,14 +6084,16 @@
6032
6084
  t-att-class="{'o-sheet-name-editable': state.isEditing }"
6033
6085
  t-ref="sheetNameSpan"
6034
6086
  t-esc="sheetName"
6035
- t-on-click="(ev) => this.onMouseEventSheetName(ev)"
6036
6087
  t-on-pointerdown="(ev) => this.onMouseEventSheetName(ev)"
6037
6088
  t-on-dblclick="() => this.onDblClick()"
6038
6089
  t-on-focusout="() => this.onFocusOut()"
6039
6090
  t-on-keydown="(ev) => this.onKeyDown(ev)"
6040
6091
  t-att-contenteditable="state.isEditing ? 'true': 'false'"
6041
6092
  />
6042
- <span class="o-sheet-icon ms-1" t-on-click.stop="(ev) => this.onIconClick(ev)">
6093
+ <span
6094
+ class="o-sheet-icon ms-1"
6095
+ tabindex="-1"
6096
+ t-on-click.stop="(ev) => this.onIconClick(ev)">
6043
6097
  <t t-call="o-spreadsheet-Icon.CARET_DOWN"/>
6044
6098
  </span>
6045
6099
  <div
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odoo/o-spreadsheet",
3
- "version": "18.2.1",
3
+ "version": "18.2.3",
4
4
  "description": "A spreadsheet component",
5
5
  "type": "module",
6
6
  "main": "dist/o-spreadsheet.cjs.js",