@odoo/o-spreadsheet 18.4.0-alpha.6 → 18.4.0-alpha.8
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.
- package/dist/o-spreadsheet.cjs.js +1320 -669
- package/dist/o-spreadsheet.d.ts +337 -166
- package/dist/o-spreadsheet.esm.js +1320 -670
- package/dist/o-spreadsheet.iife.js +1320 -669
- package/dist/o-spreadsheet.iife.min.js +476 -495
- package/dist/o_spreadsheet.xml +210 -156
- package/package.json +1 -1
package/dist/o_spreadsheet.xml
CHANGED
|
@@ -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.4.0-alpha.
|
|
5
|
-
@date 2025-
|
|
6
|
-
@hash
|
|
4
|
+
@version 18.4.0-alpha.8
|
|
5
|
+
@date 2025-06-12T09:54:36.987Z
|
|
6
|
+
@hash 9b7a8d0
|
|
7
7
|
-->
|
|
8
8
|
<odoo>
|
|
9
9
|
<t t-name="o-spreadsheet-ValidationMessages">
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
|
|
30
30
|
<t t-name="o-spreadsheet-TopBar">
|
|
31
31
|
<div
|
|
32
|
-
class="o-spreadsheet-topbar
|
|
32
|
+
class="o-spreadsheet-topbar d-flex flex-column user-select-none"
|
|
33
33
|
t-on-click="props.onClick">
|
|
34
|
-
<div class="o-topbar-top d-flex justify-content-between">
|
|
34
|
+
<div t-if="!env.isSmall" class="o-topbar-top d-flex justify-content-between">
|
|
35
35
|
<!-- Menus -->
|
|
36
36
|
<div class="o-topbar-topleft d-flex">
|
|
37
37
|
<t t-foreach="menus" t-as="menu" t-key="menu_index">
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
</div>
|
|
92
92
|
</div>
|
|
93
93
|
</div>
|
|
94
|
-
<TopBarComposer/>
|
|
94
|
+
<TopBarComposer t-if="!env.isSmall"/>
|
|
95
95
|
</div>
|
|
96
96
|
<div
|
|
97
97
|
t-if="this.fingerprints.isEnabled"
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
</div>
|
|
119
119
|
</div>
|
|
120
120
|
</div>
|
|
121
|
-
<
|
|
121
|
+
<MenuPopover
|
|
122
122
|
t-if="state.menuState.isOpen"
|
|
123
123
|
anchorRect="state.menuState.anchorRect"
|
|
124
124
|
menuItems="state.menuState.menuItems"
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
popoverPositioning="'bottom-left'"
|
|
128
128
|
/>
|
|
129
129
|
<Popover t-if="state.toolsPopoverState.isOpen" t-props="toolsPopoverProps">
|
|
130
|
-
<div class="d-flex px-2 py-1 flex-wrap" style="background-color:white;">
|
|
130
|
+
<div class="d-flex px-2 py-1 flex-wrap align-items-center" style="background-color:white;">
|
|
131
131
|
<t
|
|
132
132
|
t-foreach="state.invisibleToolsCategories"
|
|
133
133
|
t-as="category"
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
</t>
|
|
142
142
|
<div
|
|
143
143
|
t-if="category_index < state.invisibleToolsCategories.length-1"
|
|
144
|
-
class="o-topbar-divider
|
|
144
|
+
class="o-topbar-divider"
|
|
145
145
|
/>
|
|
146
146
|
</t>
|
|
147
147
|
</div>
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
onClick.bind="toggleMenu"
|
|
156
156
|
class="props.class"
|
|
157
157
|
/>
|
|
158
|
-
<
|
|
158
|
+
<MenuPopover
|
|
159
159
|
t-if="isActive"
|
|
160
160
|
anchorRect="state.anchorRect"
|
|
161
161
|
menuItems="state.menuItems"
|
|
@@ -286,7 +286,7 @@
|
|
|
286
286
|
<t t-call="o-spreadsheet-Icon.EDIT"/>
|
|
287
287
|
</div>
|
|
288
288
|
</div>
|
|
289
|
-
<
|
|
289
|
+
<MenuPopover
|
|
290
290
|
t-if="menu.isOpen"
|
|
291
291
|
menuItems="menu.menuItems"
|
|
292
292
|
anchorRect="menu.anchorRect"
|
|
@@ -349,13 +349,19 @@
|
|
|
349
349
|
</t>
|
|
350
350
|
|
|
351
351
|
<t t-name="o-spreadsheet-Spreadsheet">
|
|
352
|
-
<div
|
|
352
|
+
<div
|
|
353
|
+
class="o-spreadsheet h-100 w-100"
|
|
354
|
+
t-att-class="{'o-spreadsheet-mobile': env.isSmall}"
|
|
355
|
+
t-ref="spreadsheet"
|
|
356
|
+
t-att-style="getStyle()">
|
|
353
357
|
<t t-if="env.isDashboard()">
|
|
354
|
-
<SpreadsheetDashboard/>
|
|
358
|
+
<SpreadsheetDashboard getGridSize.bind="getGridSize"/>
|
|
355
359
|
<FullScreenChart/>
|
|
356
360
|
</t>
|
|
357
361
|
<t t-else="">
|
|
358
|
-
<
|
|
362
|
+
<div class="o-spreadsheet-topbar-wrapper o-two-columns">
|
|
363
|
+
<TopBar onClick="() => this.focusGrid()" dropdownMaxHeight="gridHeight"/>
|
|
364
|
+
</div>
|
|
359
365
|
<div
|
|
360
366
|
class="o-grid-container"
|
|
361
367
|
t-att-class="{'o-two-columns': !sidePanel.isOpen}"
|
|
@@ -369,15 +375,80 @@
|
|
|
369
375
|
<HeaderGroupContainer layers="rowLayers" dimension="'ROW'"/>
|
|
370
376
|
</div>
|
|
371
377
|
<div class="o-group-grid overflow-hidden">
|
|
372
|
-
<Grid exposeFocus="(focus) => this._focusGrid = focus"/>
|
|
378
|
+
<Grid exposeFocus="(focus) => this._focusGrid = focus" getGridSize.bind="getGridSize"/>
|
|
373
379
|
</div>
|
|
374
380
|
</div>
|
|
375
381
|
<SidePanel/>
|
|
376
|
-
<
|
|
382
|
+
<div class="o-spreadsheet-bottombar-wrapper o-two-columns overflow-hidden">
|
|
383
|
+
<SmallBottomBar t-if="env.isSmall" onClick="() => this.focusGrid()"/>
|
|
384
|
+
<BottomBar t-else="" onClick="() => this.focusGrid()"/>
|
|
385
|
+
</div>
|
|
377
386
|
</t>
|
|
378
387
|
</div>
|
|
379
388
|
</t>
|
|
380
389
|
|
|
390
|
+
<t t-name="o-spreadsheet-SmallBottomBar">
|
|
391
|
+
<div class="o-spreadsheet-small-bottom-bar o-two-columns d-flex flex-column overflow-hidden">
|
|
392
|
+
<t t-if="menuState.isOpen">
|
|
393
|
+
<RibbonMenu onClose="() => this.menuState.isOpen=false"/>
|
|
394
|
+
</t>
|
|
395
|
+
<t t-else="">
|
|
396
|
+
<div class="o-small-composer px-2 py-2">
|
|
397
|
+
<div class="w-100" t-ref="bottombarComposer">
|
|
398
|
+
<Composer t-props="composerProps"/>
|
|
399
|
+
</div>
|
|
400
|
+
<span
|
|
401
|
+
class="align-items-center d-flex justify-content-center o-selection-button"
|
|
402
|
+
title="confirm edition"
|
|
403
|
+
t-if="this.focus !== 'inactive'"
|
|
404
|
+
t-on-click="() => this.composerStore.stopEdition()">
|
|
405
|
+
<span class="d-flex">
|
|
406
|
+
<t t-call="o-spreadsheet-Icon.CHECK"/>
|
|
407
|
+
</span>
|
|
408
|
+
</span>
|
|
409
|
+
</div>
|
|
410
|
+
<div class="d-flex flex-row mb-1" t-if="this.focus !== 'inactive'">
|
|
411
|
+
<div
|
|
412
|
+
t-foreach="symbols"
|
|
413
|
+
t-as="symbol"
|
|
414
|
+
t-key="symbol_index"
|
|
415
|
+
class="o-spreadsheet-editor-symbol w-100 d-flex justify-content-center align-items-center mx-1"
|
|
416
|
+
t-esc="symbol"
|
|
417
|
+
tabindex="-1"
|
|
418
|
+
t-att-title="symbol"
|
|
419
|
+
t-on-click="() => this.insertSymbol(symbol)"
|
|
420
|
+
composerFocusableElement="true"
|
|
421
|
+
/>
|
|
422
|
+
</div>
|
|
423
|
+
<div class="d-flex flex-fill align-items-center bottom-bar-menu">
|
|
424
|
+
<Ripple>
|
|
425
|
+
<div class="py-1 px-1 mx-2 ribbon-toggler" t-on-click="toggleRibbon">
|
|
426
|
+
<i class="o-icon fa fa-cog"/>
|
|
427
|
+
</div>
|
|
428
|
+
</Ripple>
|
|
429
|
+
<BottomBar onClick="props.onClick"/>
|
|
430
|
+
</div>
|
|
431
|
+
</t>
|
|
432
|
+
</div>
|
|
433
|
+
</t>
|
|
434
|
+
|
|
435
|
+
<div t-name="o-spreadsheet-RibbonMenu">
|
|
436
|
+
<div class="o-ribbon-menu d-flex flex-column" t-ref="menu">
|
|
437
|
+
<div class="o-ribbon-title d-flex py-2 fw-bold">
|
|
438
|
+
<div
|
|
439
|
+
class="o-previous-button px-3 py-1 mx-2 rounded"
|
|
440
|
+
t-on-click="onClickBack"
|
|
441
|
+
t-att-title="backTitle">
|
|
442
|
+
<i class="fa fa-angle-left"/>
|
|
443
|
+
</div>
|
|
444
|
+
<span class="d-flex align-items-center" t-esc="state.title"/>
|
|
445
|
+
</div>
|
|
446
|
+
<div class="o-ribbon-menu-wrapper overflow-auto">
|
|
447
|
+
<Menu t-props="menuProps"/>
|
|
448
|
+
</div>
|
|
449
|
+
</div>
|
|
450
|
+
</div>
|
|
451
|
+
|
|
381
452
|
<t t-name="o-spreadsheet-TableStyleEditorPanel">
|
|
382
453
|
<div class="o-table-style-editor-panel">
|
|
383
454
|
<Section title.translate="Style name">
|
|
@@ -658,7 +729,7 @@
|
|
|
658
729
|
t-on-click="onClick">
|
|
659
730
|
<option selected="true" t-esc="props.selectedValue"/>
|
|
660
731
|
</select>
|
|
661
|
-
<
|
|
732
|
+
<MenuPopover
|
|
662
733
|
t-if="state.isMenuOpen"
|
|
663
734
|
menuItems="props.menuItems"
|
|
664
735
|
anchorRect="menuAnchorRect"
|
|
@@ -2099,7 +2170,7 @@
|
|
|
2099
2170
|
t-on-click="toggleMenu"
|
|
2100
2171
|
t-ref="button"
|
|
2101
2172
|
/>
|
|
2102
|
-
<
|
|
2173
|
+
<MenuPopover
|
|
2103
2174
|
t-if="menuState.isOpen"
|
|
2104
2175
|
menuId="menuId"
|
|
2105
2176
|
anchorRect="menuState.anchorRect"
|
|
@@ -2123,6 +2194,7 @@
|
|
|
2123
2194
|
t-att-name="props.name"
|
|
2124
2195
|
t-att-checked="props.value"
|
|
2125
2196
|
t-on-change="onChange"
|
|
2197
|
+
t-on-click.stop=""
|
|
2126
2198
|
/>
|
|
2127
2199
|
<t t-if="props.label" t-esc="props.label"/>
|
|
2128
2200
|
</label>
|
|
@@ -3867,6 +3939,10 @@
|
|
|
3867
3939
|
</div>
|
|
3868
3940
|
</t>
|
|
3869
3941
|
|
|
3942
|
+
<t t-name="o-spreadsheet-Selection">
|
|
3943
|
+
<Highlight t-props="highlightProps"/>
|
|
3944
|
+
</t>
|
|
3945
|
+
|
|
3870
3946
|
<t t-name="o-spreadsheet-ScrollBar">
|
|
3871
3947
|
<div class="o-scrollbar" t-on-scroll="onScroll" t-ref="scrollbar" t-att-style="positionCss">
|
|
3872
3948
|
<div t-att-style="sizeCss"/>
|
|
@@ -3876,7 +3952,7 @@
|
|
|
3876
3952
|
<t t-name="o-spreadsheet-Popover">
|
|
3877
3953
|
<t t-portal="'.o-spreadsheet'">
|
|
3878
3954
|
<div
|
|
3879
|
-
class="o-popover"
|
|
3955
|
+
class="o-popover rounded"
|
|
3880
3956
|
t-att-class="props.class"
|
|
3881
3957
|
t-ref="popover"
|
|
3882
3958
|
t-on-wheel="props.onMouseWheel"
|
|
@@ -3938,15 +4014,6 @@
|
|
|
3938
4014
|
</div>
|
|
3939
4015
|
</t>
|
|
3940
4016
|
|
|
3941
|
-
<t t-name="o-spreadsheet-PivotCollapseIcon">
|
|
3942
|
-
<div
|
|
3943
|
-
class="o-pivot-collapse-icon o-hoverable-button d-flex align-items-center justify-content-center"
|
|
3944
|
-
t-on-click="onClick">
|
|
3945
|
-
<t t-if="isCollapsed" t-call="o-spreadsheet-Icon.PLUS"/>
|
|
3946
|
-
<t t-else="" t-call="o-spreadsheet-Icon.MINUS"/>
|
|
3947
|
-
</div>
|
|
3948
|
-
</t>
|
|
3949
|
-
|
|
3950
4017
|
<t t-name="o-spreadsheet-PaintFormatButton">
|
|
3951
4018
|
<span
|
|
3952
4019
|
class="o-menu-item-button"
|
|
@@ -3961,65 +4028,12 @@
|
|
|
3961
4028
|
</span>
|
|
3962
4029
|
</t>
|
|
3963
4030
|
|
|
3964
|
-
<t t-name="o-spreadsheet-Menu">
|
|
3965
|
-
<Popover t-if="
|
|
3966
|
-
<div
|
|
3967
|
-
t-
|
|
3968
|
-
class="o-menu"
|
|
3969
|
-
t-att-style="menuStyle"
|
|
3970
|
-
t-on-scroll="onScroll"
|
|
3971
|
-
t-on-wheel.stop=""
|
|
3972
|
-
t-on-pointerdown.prevent=""
|
|
3973
|
-
t-on-click.stop=""
|
|
3974
|
-
t-on-mouseover="onMouseOverMainMenu"
|
|
3975
|
-
t-on-contextmenu.prevent="">
|
|
3976
|
-
<t t-foreach="menuItemsAndSeparators" t-as="menuItem" t-key="menuItem_index">
|
|
3977
|
-
<div t-if="menuItem === 'separator'" class="o-separator"/>
|
|
3978
|
-
<t t-else="">
|
|
3979
|
-
<t t-set="isMenuRoot" t-value="isRoot(menuItem)"/>
|
|
3980
|
-
<t t-set="isMenuEnabled" t-value="isEnabled(menuItem)"/>
|
|
3981
|
-
<div
|
|
3982
|
-
t-att-title="getName(menuItem)"
|
|
3983
|
-
t-att-data-name="menuItem.id"
|
|
3984
|
-
t-on-click="(ev) => this.onClickMenu(menuItem, ev)"
|
|
3985
|
-
t-on-auxclick="(ev) => this.onClickMenu(menuItem, ev)"
|
|
3986
|
-
t-on-mouseenter="(ev) => this.onMouseEnter(menuItem, ev)"
|
|
3987
|
-
t-on-mouseover="(ev) => this.onMouseOver(menuItem, ev)"
|
|
3988
|
-
t-on-mouseleave="(ev) => this.onMouseLeave(menuItem)"
|
|
3989
|
-
class="o-menu-item d-flex justify-content-between align-items-center"
|
|
3990
|
-
t-att-class="{'disabled': !isMenuEnabled, 'o-menu-item-active': isActive(menuItem)}"
|
|
3991
|
-
t-att-style="getColor(menuItem)">
|
|
3992
|
-
<div class="d-flex w-100">
|
|
3993
|
-
<div
|
|
3994
|
-
t-if="childrenHaveIcon"
|
|
3995
|
-
class="o-menu-item-icon d-flex align-items-center flex-shrink-0"
|
|
3996
|
-
t-att-style="getIconColor(menuItem)">
|
|
3997
|
-
<t t-if="getIconName(menuItem)" t-call="{{getIconName(menuItem)}}"/>
|
|
3998
|
-
</div>
|
|
3999
|
-
<div class="o-menu-item-name align-middle text-truncate" t-esc="getName(menuItem)"/>
|
|
4000
|
-
<t t-set="description" t-value="menuItem.description(env)"/>
|
|
4001
|
-
<div
|
|
4002
|
-
t-if="description"
|
|
4003
|
-
class="o-menu-item-description ms-auto text-truncate"
|
|
4004
|
-
t-esc="description"
|
|
4005
|
-
/>
|
|
4006
|
-
<t t-set="secondaryIcon" t-value="menuItem.secondaryIcon(env)"/>
|
|
4007
|
-
<div
|
|
4008
|
-
t-if="isMenuRoot"
|
|
4009
|
-
class="o-menu-item-root align-middle ms-auto"
|
|
4010
|
-
t-call="o-spreadsheet-Icon.CARET_RIGHT"
|
|
4011
|
-
/>
|
|
4012
|
-
<div
|
|
4013
|
-
t-elif="secondaryIcon"
|
|
4014
|
-
class="o-menu-item-root align-middle ms-auto"
|
|
4015
|
-
t-call="{{secondaryIcon}}"
|
|
4016
|
-
/>
|
|
4017
|
-
</div>
|
|
4018
|
-
</div>
|
|
4019
|
-
</t>
|
|
4020
|
-
</t>
|
|
4031
|
+
<t t-name="o-spreadsheet-Menu-Popover">
|
|
4032
|
+
<Popover t-if="props.menuItems" t-props="popoverProps">
|
|
4033
|
+
<div t-ref="menu" class="o-menu-wrapper" t-on-mouseover="() => this.onMouseOverMainMenu()">
|
|
4034
|
+
<Menu t-props="menuProps"/>
|
|
4021
4035
|
</div>
|
|
4022
|
-
<
|
|
4036
|
+
<MenuPopover
|
|
4023
4037
|
t-if="subMenu.isOpen"
|
|
4024
4038
|
t-key="subMenu.parentMenu.id"
|
|
4025
4039
|
anchorRect="subMenuAnchorRect"
|
|
@@ -4035,6 +4049,64 @@
|
|
|
4035
4049
|
</Popover>
|
|
4036
4050
|
</t>
|
|
4037
4051
|
|
|
4052
|
+
<t t-name="o-spreadsheet-Menu">
|
|
4053
|
+
<div
|
|
4054
|
+
t-ref="menu"
|
|
4055
|
+
class="o-menu"
|
|
4056
|
+
t-att-style="menuStyle"
|
|
4057
|
+
t-on-scroll="props.onScroll"
|
|
4058
|
+
t-on-wheel.stop=""
|
|
4059
|
+
t-on-pointerdown.prevent=""
|
|
4060
|
+
t-on-click.stop=""
|
|
4061
|
+
t-on-contextmenu.prevent="">
|
|
4062
|
+
<t t-foreach="menuItemsAndSeparators" t-as="menuItem" t-key="menuItem_index">
|
|
4063
|
+
<div t-if="menuItem === 'separator'" class="o-separator"/>
|
|
4064
|
+
<t t-else="">
|
|
4065
|
+
<t t-set="isMenuRoot" t-value="isRoot(menuItem)"/>
|
|
4066
|
+
<t t-set="isMenuEnabled" t-value="isEnabled(menuItem)"/>
|
|
4067
|
+
<div
|
|
4068
|
+
t-att-title="getName(menuItem)"
|
|
4069
|
+
t-att-data-name="menuItem.id"
|
|
4070
|
+
t-on-click="(ev) => this.props.onClickMenu?.(menuItem, ev)"
|
|
4071
|
+
t-on-auxclick="(ev) => this.props.onClickMenu?.(menuItem, ev)"
|
|
4072
|
+
t-on-mouseover="(ev) => this.props.onMouseOver?.(menuItem, ev)"
|
|
4073
|
+
t-on-mouseenter="(ev) => this.onMouseEnter?.(menuItem, ev)"
|
|
4074
|
+
t-on-mouseleave="(ev) => this.onMouseLeave?.(menuItem)"
|
|
4075
|
+
class="o-menu-item d-flex justify-content-between align-items-center"
|
|
4076
|
+
t-att-class="{'disabled': !isMenuEnabled, 'o-menu-item-active': props.isActive?.(menuItem)}"
|
|
4077
|
+
t-att-style="getColor(menuItem)">
|
|
4078
|
+
<div class="d-flex w-100">
|
|
4079
|
+
<div
|
|
4080
|
+
t-if="childrenHaveIcon"
|
|
4081
|
+
class="o-menu-item-icon d-flex align-items-center flex-shrink-0"
|
|
4082
|
+
t-att-style="getIconColor(menuItem)">
|
|
4083
|
+
<t t-if="getIconName(menuItem)" t-call="{{getIconName(menuItem)}}"/>
|
|
4084
|
+
</div>
|
|
4085
|
+
<div class="o-menu-item-name align-middle text-truncate" t-esc="getName(menuItem)"/>
|
|
4086
|
+
<t t-set="description" t-value="menuItem.description(env)"/>
|
|
4087
|
+
<div
|
|
4088
|
+
t-if="description"
|
|
4089
|
+
class="o-menu-item-description ms-auto text-truncate"
|
|
4090
|
+
t-esc="description"
|
|
4091
|
+
/>
|
|
4092
|
+
<t t-set="secondaryIcon" t-value="menuItem.secondaryIcon(env)"/>
|
|
4093
|
+
<div
|
|
4094
|
+
t-if="isMenuRoot"
|
|
4095
|
+
class="o-menu-item-root align-middle ms-auto"
|
|
4096
|
+
t-call="o-spreadsheet-Icon.CARET_RIGHT"
|
|
4097
|
+
/>
|
|
4098
|
+
<div
|
|
4099
|
+
t-elif="secondaryIcon"
|
|
4100
|
+
class="o-menu-item-root align-middle ms-auto"
|
|
4101
|
+
t-call="{{secondaryIcon}}"
|
|
4102
|
+
/>
|
|
4103
|
+
</div>
|
|
4104
|
+
</div>
|
|
4105
|
+
</t>
|
|
4106
|
+
</t>
|
|
4107
|
+
</div>
|
|
4108
|
+
</t>
|
|
4109
|
+
|
|
4038
4110
|
<t t-name="o-spreadsheet-LinkEditor">
|
|
4039
4111
|
<div
|
|
4040
4112
|
class="o-link-editor"
|
|
@@ -4085,7 +4157,7 @@
|
|
|
4085
4157
|
</button>
|
|
4086
4158
|
</div>
|
|
4087
4159
|
</div>
|
|
4088
|
-
<
|
|
4160
|
+
<MenuPopover
|
|
4089
4161
|
t-if="menu.isOpen"
|
|
4090
4162
|
anchorRect="menuButtonRect"
|
|
4091
4163
|
menuItems="menuItems"
|
|
@@ -5161,20 +5233,24 @@
|
|
|
5161
5233
|
|
|
5162
5234
|
<t t-name="o-spreadsheet-Highlight">
|
|
5163
5235
|
<div class="o-highlight" t-ref="highlight">
|
|
5164
|
-
<t
|
|
5236
|
+
<t
|
|
5237
|
+
t-if="!env.isMobile()"
|
|
5238
|
+
t-foreach="['n', 's', 'w', 'e']"
|
|
5239
|
+
t-as="orientation"
|
|
5240
|
+
t-key="orientation">
|
|
5165
5241
|
<Border
|
|
5166
5242
|
onMoveHighlight.bind="this.onMoveHighlight"
|
|
5167
5243
|
isMoving='highlightState.shiftingMode === "isMoving"'
|
|
5168
5244
|
orientation="orientation"
|
|
5169
|
-
zone="props.zone"
|
|
5245
|
+
zone="props.range.zone"
|
|
5170
5246
|
/>
|
|
5171
5247
|
</t>
|
|
5172
|
-
<t t-foreach="
|
|
5248
|
+
<t t-foreach="cornerOrientations" t-as="orientation" t-key="orientation">
|
|
5173
5249
|
<Corner
|
|
5174
5250
|
onResizeHighlight.bind="onResizeHighlight"
|
|
5175
5251
|
isResizing='highlightState.shiftingMode === "isResizing"'
|
|
5176
5252
|
orientation="orientation"
|
|
5177
|
-
zone="props.zone"
|
|
5253
|
+
zone="props.range.zone"
|
|
5178
5254
|
color="props.color"
|
|
5179
5255
|
/>
|
|
5180
5256
|
</t>
|
|
@@ -5183,17 +5259,22 @@
|
|
|
5183
5259
|
|
|
5184
5260
|
<t t-name="o-spreadsheet-Corner">
|
|
5185
5261
|
<div
|
|
5186
|
-
class="o-corner"
|
|
5262
|
+
class="o-corner d-flex justify-content-center align-items-center"
|
|
5187
5263
|
t-on-pointerdown.prevent="onMouseDown"
|
|
5188
|
-
t-
|
|
5189
|
-
t-att-
|
|
5264
|
+
t-on-touchstart.prevent.stop=""
|
|
5265
|
+
t-att-style="handlerStyle">
|
|
5266
|
+
<div
|
|
5267
|
+
t-att-style="buttonLook"
|
|
5268
|
+
class="o-corner-button"
|
|
5269
|
+
t-att-class="{
|
|
5190
5270
|
'o-resizing': props.isResizing,
|
|
5191
5271
|
'o-corner-nw': props.orientation === 'nw',
|
|
5192
5272
|
'o-corner-ne': props.orientation === 'ne',
|
|
5193
5273
|
'o-corner-sw': props.orientation === 'sw',
|
|
5194
5274
|
'o-corner-se': props.orientation === 'se',
|
|
5195
5275
|
}"
|
|
5196
|
-
|
|
5276
|
+
/>
|
|
5277
|
+
</div>
|
|
5197
5278
|
</t>
|
|
5198
5279
|
|
|
5199
5280
|
<t t-name="o-spreadsheet-Border">
|
|
@@ -5288,10 +5369,11 @@
|
|
|
5288
5369
|
<t t-name="o-spreadsheet-RowResizer">
|
|
5289
5370
|
<div
|
|
5290
5371
|
class="o-row-resizer"
|
|
5372
|
+
t-ref="rowResizer"
|
|
5291
5373
|
t-on-pointermove.self="onMouseMove"
|
|
5292
5374
|
t-on-mouseleave="onMouseLeave"
|
|
5293
5375
|
t-on-pointerdown.self.prevent="select"
|
|
5294
|
-
t-
|
|
5376
|
+
t-on-click="onClick"
|
|
5295
5377
|
t-on-pointerup.self="onMouseUp"
|
|
5296
5378
|
t-on-contextmenu.self="onContextMenu"
|
|
5297
5379
|
t-att-class="{'o-grab': state.waitingForMove, 'o-dragging': state.isMoving}">
|
|
@@ -5331,10 +5413,11 @@
|
|
|
5331
5413
|
<t t-name="o-spreadsheet-ColResizer">
|
|
5332
5414
|
<div
|
|
5333
5415
|
class="o-col-resizer d-flex"
|
|
5416
|
+
t-ref="colResizer"
|
|
5334
5417
|
t-on-pointermove.self="onMouseMove"
|
|
5335
5418
|
t-on-mouseleave="onMouseLeave"
|
|
5336
5419
|
t-on-pointerdown.self.prevent="select"
|
|
5337
|
-
t-
|
|
5420
|
+
t-on-click="onClick"
|
|
5338
5421
|
t-on-pointerup.self="onMouseUp"
|
|
5339
5422
|
t-on-contextmenu.self="onContextMenu"
|
|
5340
5423
|
t-att-class="{'o-grab': state.waitingForMove, 'o-dragging': state.isMoving, }">
|
|
@@ -5432,7 +5515,7 @@
|
|
|
5432
5515
|
</div>
|
|
5433
5516
|
</div>
|
|
5434
5517
|
|
|
5435
|
-
<
|
|
5518
|
+
<MenuPopover
|
|
5436
5519
|
t-if="menu.isOpen"
|
|
5437
5520
|
menuItems="menu.menuItems"
|
|
5438
5521
|
anchorRect="menu.anchorRect"
|
|
@@ -5491,10 +5574,11 @@
|
|
|
5491
5574
|
class="o-grid-overlay overflow-hidden"
|
|
5492
5575
|
t-att-class="{'o-paint-format-cursor': isPaintingFormat}"
|
|
5493
5576
|
t-att-style="style"
|
|
5494
|
-
t-on-pointerdown="
|
|
5577
|
+
t-on-pointerdown="onPointerDown"
|
|
5578
|
+
t-on-pointermove="onPointerMove"
|
|
5579
|
+
t-on-click="onClick"
|
|
5495
5580
|
t-on-dblclick.self="onDoubleClick"
|
|
5496
5581
|
t-on-contextmenu.stop.prevent="onContextMenu">
|
|
5497
|
-
<GridCellIconOverlay/>
|
|
5498
5582
|
<GridAddRowsFooter
|
|
5499
5583
|
t-if="!env.model.getters.isReadonly()"
|
|
5500
5584
|
t-key="env.model.getters.getActiveSheetId()"
|
|
@@ -5504,23 +5588,6 @@
|
|
|
5504
5588
|
</div>
|
|
5505
5589
|
</t>
|
|
5506
5590
|
|
|
5507
|
-
<t t-name="o-spreadsheet-GridCellIconOverlay">
|
|
5508
|
-
<t t-foreach="icons" t-as="icon" t-key="icon_index">
|
|
5509
|
-
<GridCellIcon icon="icon">
|
|
5510
|
-
<t t-component="icon.component" cellPosition="icon.position"/>
|
|
5511
|
-
</GridCellIcon>
|
|
5512
|
-
</t>
|
|
5513
|
-
</t>
|
|
5514
|
-
|
|
5515
|
-
<t t-name="o-spreadsheet-GridCellIcon">
|
|
5516
|
-
<div
|
|
5517
|
-
class="o-grid-cell-icon position-absolute overflow-hidden"
|
|
5518
|
-
t-if="isPositionVisible(this.props.icon.position)"
|
|
5519
|
-
t-att-style="iconStyle">
|
|
5520
|
-
<t t-slot="default"/>
|
|
5521
|
-
</div>
|
|
5522
|
-
</t>
|
|
5523
|
-
|
|
5524
5591
|
<t t-name="o-spreadsheet-GridAddRowsFooter">
|
|
5525
5592
|
<div
|
|
5526
5593
|
class="o-grid-add-rows mt-2 ms-2 w-100 d-flex position-relative align-items-center"
|
|
@@ -5564,6 +5631,7 @@
|
|
|
5564
5631
|
onGridMoved.bind="moveCanvas"
|
|
5565
5632
|
gridOverlayDimensions="gridOverlayDimensions"
|
|
5566
5633
|
onFigureDeleted.bind="focusDefaultElement"
|
|
5634
|
+
getGridSize="props.getGridSize"
|
|
5567
5635
|
/>
|
|
5568
5636
|
<HeadersOverlay onOpenContextMenu="(type, x, y) => this.toggleContextMenu(type, x, y)"/>
|
|
5569
5637
|
<GridComposer
|
|
@@ -5590,16 +5658,17 @@
|
|
|
5590
5658
|
onMouseWheel.bind="onMouseWheel"
|
|
5591
5659
|
onClosePopover.bind="onClosePopover"
|
|
5592
5660
|
/>
|
|
5593
|
-
<t t-if="env.model.getters.isGridSelectionActive()">
|
|
5661
|
+
<t t-if="env.model.getters.isGridSelectionActive() and !env.isMobile()">
|
|
5594
5662
|
<Autofill position="getAutofillPosition()" isVisible="isAutofillVisible"/>
|
|
5595
5663
|
</t>
|
|
5596
5664
|
<t t-foreach="highlights" t-as="highlight" t-key="highlight_index">
|
|
5597
5665
|
<t
|
|
5598
|
-
t-if="highlight.interactive and highlight.sheetId === env.model.getters.getActiveSheetId()">
|
|
5599
|
-
<Highlight
|
|
5666
|
+
t-if="highlight.interactive and highlight.range.sheetId === env.model.getters.getActiveSheetId()">
|
|
5667
|
+
<Highlight range="highlight.range" color="highlight.color"/>
|
|
5600
5668
|
</t>
|
|
5601
5669
|
</t>
|
|
5602
|
-
<
|
|
5670
|
+
<Selection t-if="displaySelectionHandler"/>
|
|
5671
|
+
<MenuPopover
|
|
5603
5672
|
t-if="menuState.isOpen"
|
|
5604
5673
|
menuItems="menuState.menuItems"
|
|
5605
5674
|
anchorRect="menuState.anchorRect"
|
|
@@ -5693,7 +5762,7 @@
|
|
|
5693
5762
|
class="w-100 o-input my-2"
|
|
5694
5763
|
t-ref="filterMenuSearchBar"
|
|
5695
5764
|
type="text"
|
|
5696
|
-
t-
|
|
5765
|
+
t-on-input="updateSearch"
|
|
5697
5766
|
placeholder="Search..."
|
|
5698
5767
|
t-on-keydown="onKeyDown"
|
|
5699
5768
|
/>
|
|
@@ -5706,7 +5775,7 @@
|
|
|
5706
5775
|
t-ref="filterValueList"
|
|
5707
5776
|
t-on-click="this.clearScrolledToValue"
|
|
5708
5777
|
t-on-scroll="this.clearScrolledToValue">
|
|
5709
|
-
<t t-foreach="displayedValues" t-as="value" t-key="value.string">
|
|
5778
|
+
<t t-foreach="state.displayedValues" t-as="value" t-key="value.string">
|
|
5710
5779
|
<FilterMenuValueItem
|
|
5711
5780
|
onClick="() => this.checkValue(value)"
|
|
5712
5781
|
onMouseMove="() => this.onMouseMove(value)"
|
|
@@ -5717,7 +5786,13 @@
|
|
|
5717
5786
|
/>
|
|
5718
5787
|
</t>
|
|
5719
5788
|
<div
|
|
5720
|
-
t-if="
|
|
5789
|
+
t-if="state.hasMoreValues"
|
|
5790
|
+
class="o-filter-load-more o-button-link d-flex justify-content-center py-1"
|
|
5791
|
+
t-on-click="this.loadMoreValues">
|
|
5792
|
+
Load more...
|
|
5793
|
+
</div>
|
|
5794
|
+
<div
|
|
5795
|
+
t-if="state.displayedValues.length === 0"
|
|
5721
5796
|
class="o-filter-menu-no-values d-flex align-items-center justify-content-center w-100 h-100 ">
|
|
5722
5797
|
No results
|
|
5723
5798
|
</div>
|
|
@@ -5814,13 +5889,6 @@
|
|
|
5814
5889
|
</div>
|
|
5815
5890
|
</t>
|
|
5816
5891
|
|
|
5817
|
-
<t t-name="o-spreadsheet-FilterIcon">
|
|
5818
|
-
<div class="o-filter-icon" t-att-class="iconClass" t-on-click="onClick">
|
|
5819
|
-
<t t-if="isFilterActive" t-call="o-spreadsheet-Icon.FILTER_ICON_ACTIVE"/>
|
|
5820
|
-
<t t-else="" t-call="o-spreadsheet-Icon.FILTER_ICON"/>
|
|
5821
|
-
</div>
|
|
5822
|
-
</t>
|
|
5823
|
-
|
|
5824
5892
|
<t t-name="o-spreadsheet-ImageFigure">
|
|
5825
5893
|
<img t-att-src="getImagePath" class="w-100 h-100"/>
|
|
5826
5894
|
</t>
|
|
@@ -5882,6 +5950,7 @@
|
|
|
5882
5950
|
<div
|
|
5883
5951
|
class="o-figure w-100 h-100"
|
|
5884
5952
|
t-on-pointerdown.stop="(ev) => this.onMouseDown(ev)"
|
|
5953
|
+
t-on-click="onClick"
|
|
5885
5954
|
t-on-contextmenu.prevent.stop="(ev) => !env.model.getters.isReadonly() and this.onContextMenu(ev)"
|
|
5886
5955
|
t-ref="figure"
|
|
5887
5956
|
t-att-style="props.style"
|
|
@@ -5904,7 +5973,7 @@
|
|
|
5904
5973
|
t-on-contextmenu.prevent.stop="showMenu">
|
|
5905
5974
|
<t t-call="o-spreadsheet-Icon.LIST"/>
|
|
5906
5975
|
</div>
|
|
5907
|
-
<
|
|
5976
|
+
<MenuPopover
|
|
5908
5977
|
t-if="menuState.isOpen"
|
|
5909
5978
|
anchorRect="menuState.anchorRect"
|
|
5910
5979
|
menuItems="menuState.menuItems"
|
|
@@ -5913,7 +5982,7 @@
|
|
|
5913
5982
|
</div>
|
|
5914
5983
|
</div>
|
|
5915
5984
|
<div class="o-figure-border w-100 h-100 position-absolute pe-none" t-att-style="borderStyle"/>
|
|
5916
|
-
<t t-if="isSelected">
|
|
5985
|
+
<t t-if="isSelected and !env.isMobile()">
|
|
5917
5986
|
<div
|
|
5918
5987
|
class="o-fig-anchor o-top"
|
|
5919
5988
|
t-att-style="this.getResizerPosition('top')"
|
|
@@ -5987,7 +6056,7 @@
|
|
|
5987
6056
|
t-on-click="openContextMenu"
|
|
5988
6057
|
/>
|
|
5989
6058
|
</div>
|
|
5990
|
-
<
|
|
6059
|
+
<MenuPopover
|
|
5991
6060
|
t-if="menuState.isOpen"
|
|
5992
6061
|
anchorRect="menuState.anchorRect"
|
|
5993
6062
|
menuItems="menuState.menuItems"
|
|
@@ -6026,30 +6095,14 @@
|
|
|
6026
6095
|
</div>
|
|
6027
6096
|
</t>
|
|
6028
6097
|
|
|
6029
|
-
<t t-name="o-spreadsheet-DataValidationListIcon">
|
|
6030
|
-
<div
|
|
6031
|
-
class="o-dv-list-icon d-flex align-items-center justify-content-center"
|
|
6032
|
-
t-on-click="onClick">
|
|
6033
|
-
<t t-call="o-spreadsheet-Icon.CARET_DOWN"/>
|
|
6034
|
-
</div>
|
|
6035
|
-
</t>
|
|
6036
|
-
|
|
6037
|
-
<t t-name="o-spreadsheet-DataValidationCheckbox">
|
|
6038
|
-
<Checkbox
|
|
6039
|
-
name="'data-validation-checkbox'"
|
|
6040
|
-
value="checkBoxValue"
|
|
6041
|
-
onChange.bind="onCheckboxChange"
|
|
6042
|
-
className="isDisabled ? 'pe-none o-dv-checkbox' : 'o-dv-checkbox'"
|
|
6043
|
-
/>
|
|
6044
|
-
</t>
|
|
6045
|
-
|
|
6046
6098
|
<t t-name="o-spreadsheet-SpreadsheetDashboard">
|
|
6047
6099
|
<div class="o-grid o-two-columns" t-ref="dashboard" tabindex="-1" t-on-wheel="onMouseWheel">
|
|
6048
6100
|
<div class="mx-auto h-100 position-relative" t-ref="grid" t-att-style="gridContainer">
|
|
6049
6101
|
<GridOverlay
|
|
6050
6102
|
onGridResized.bind="onGridResized"
|
|
6051
6103
|
onGridMoved.bind="moveCanvas"
|
|
6052
|
-
gridOverlayDimensions="gridOverlayDimensions"
|
|
6104
|
+
gridOverlayDimensions="gridOverlayDimensions"
|
|
6105
|
+
getGridSize="props.getGridSize">
|
|
6053
6106
|
<div
|
|
6054
6107
|
t-foreach="getClickableCells()"
|
|
6055
6108
|
t-as="clickableCell"
|
|
@@ -6197,7 +6250,7 @@
|
|
|
6197
6250
|
<t t-set="autoCompleteProposals" t-value="props.composerStore.autoCompleteProposals"/>
|
|
6198
6251
|
<t
|
|
6199
6252
|
t-set="assistantIsAvailable"
|
|
6200
|
-
t-value="autoCompleteProposals.length or functionDescriptionState.showDescription"
|
|
6253
|
+
t-value="props.showAssistant and (autoCompleteProposals.length or functionDescriptionState.showDescription)"
|
|
6201
6254
|
/>
|
|
6202
6255
|
<div class="d-flex flex-row position-relative">
|
|
6203
6256
|
<span
|
|
@@ -6220,6 +6273,7 @@
|
|
|
6220
6273
|
tabindex="1"
|
|
6221
6274
|
t-att-contenteditable="env.model.getters.isReadonly() ? 'false' : 'true'"
|
|
6222
6275
|
t-att-placeHolder="props.placeholder"
|
|
6276
|
+
t-att-inputmode="props.inputMode"
|
|
6223
6277
|
spellcheck="false"
|
|
6224
6278
|
t-on-keydown="onKeydown"
|
|
6225
6279
|
t-on-mousewheel.stop=""
|
|
@@ -6434,8 +6488,7 @@
|
|
|
6434
6488
|
|
|
6435
6489
|
<t t-name="o-spreadsheet-BottomBar">
|
|
6436
6490
|
<div
|
|
6437
|
-
class="o-spreadsheet-bottom-bar o-two-columns d-flex align-items-center overflow-hidden"
|
|
6438
|
-
t-att-class="{'mobile': env.isSmall}"
|
|
6491
|
+
class="o-spreadsheet-bottom-bar o-two-columns d-flex flex-fill align-items-center overflow-hidden"
|
|
6439
6492
|
t-on-click="props.onClick"
|
|
6440
6493
|
t-ref="bottomBar"
|
|
6441
6494
|
t-on-contextmenu.prevent="">
|
|
@@ -6519,7 +6572,7 @@
|
|
|
6519
6572
|
/>
|
|
6520
6573
|
</t>
|
|
6521
6574
|
|
|
6522
|
-
<
|
|
6575
|
+
<MenuPopover
|
|
6523
6576
|
t-if="menuState.isOpen"
|
|
6524
6577
|
anchorRect="menuState.anchorRect"
|
|
6525
6578
|
menuItems="menuState.menuItems"
|
|
@@ -6551,6 +6604,7 @@
|
|
|
6551
6604
|
tabindex="-1"
|
|
6552
6605
|
composerFocusableElement="true"
|
|
6553
6606
|
t-on-pointerdown="(ev) => this.onMouseDown(ev)"
|
|
6607
|
+
t-on-click="onClick"
|
|
6554
6608
|
t-on-contextmenu.prevent="(ev) => this.onContextMenu(ev)"
|
|
6555
6609
|
t-ref="sheetDiv"
|
|
6556
6610
|
t-att-style="props.style"
|