@odoo/o-spreadsheet 17.2.0-alpha.2 → 17.2.0-alpha.5
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 +29666 -28985
- package/dist/o-spreadsheet.d.ts +5360 -4463
- package/dist/o-spreadsheet.esm.js +29665 -28987
- package/dist/o-spreadsheet.iife.js +29734 -29053
- package/dist/o-spreadsheet.iife.min.js +1283 -1291
- package/dist/o_spreadsheet.xml +114 -144
- 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 17.2.0-alpha.
|
|
5
|
-
@date 2024-
|
|
6
|
-
@hash
|
|
4
|
+
@version 17.2.0-alpha.5
|
|
5
|
+
@date 2024-02-16T14:28:32.318Z
|
|
6
|
+
@hash 0c69dd8
|
|
7
7
|
-->
|
|
8
8
|
<odoo>
|
|
9
9
|
<t t-name="o-spreadsheet-ActionButton">
|
|
@@ -421,9 +421,9 @@
|
|
|
421
421
|
|
|
422
422
|
<t t-name="o-spreadsheet-TextValueProvider">
|
|
423
423
|
<div
|
|
424
|
+
t-ref="autoCompleteList"
|
|
424
425
|
t-att-class="{
|
|
425
|
-
'o-autocomplete-dropdown':props.values.length
|
|
426
|
-
'shadow':props.values.length}">
|
|
426
|
+
'o-autocomplete-dropdown':props.values.length }">
|
|
427
427
|
<t t-foreach="props.values" t-as="v" t-key="v.text">
|
|
428
428
|
<div
|
|
429
429
|
class="d-flex flex-column text-start"
|
|
@@ -467,7 +467,7 @@
|
|
|
467
467
|
t-on-mousedown="onMousedown"
|
|
468
468
|
t-on-click="onClick"
|
|
469
469
|
t-on-keyup="onKeyup"
|
|
470
|
-
t-on-paste
|
|
470
|
+
t-on-paste="onPaste"
|
|
471
471
|
t-on-compositionstart="onCompositionStart"
|
|
472
472
|
t-on-compositionend="onCompositionEnd"
|
|
473
473
|
t-on-dblclick="onDblClick"
|
|
@@ -475,8 +475,9 @@
|
|
|
475
475
|
|
|
476
476
|
<div
|
|
477
477
|
t-if="props.focus !== 'inactive' and (autoCompleteState.showProvider or functionDescriptionState.showDescription)"
|
|
478
|
-
class="o-composer-assistant"
|
|
478
|
+
class="o-composer-assistant shadow"
|
|
479
479
|
t-att-style="assistantStyle"
|
|
480
|
+
t-on-wheel.stop=""
|
|
480
481
|
t-on-mousedown.prevent.stop=""
|
|
481
482
|
t-on-click.prevent.stop=""
|
|
482
483
|
t-on-mouseup.prevent.stop="">
|
|
@@ -565,14 +566,7 @@
|
|
|
565
566
|
t-esc="cellReference"
|
|
566
567
|
/>
|
|
567
568
|
<div class="o-grid-composer" t-att-style="containerStyle" t-ref="gridComposer">
|
|
568
|
-
<Composer
|
|
569
|
-
focus="props.focus"
|
|
570
|
-
inputStyle="composerStyle"
|
|
571
|
-
rect="composerState.rect"
|
|
572
|
-
delimitation="composerState.delimitation"
|
|
573
|
-
onComposerUnmounted="props.onComposerUnmounted"
|
|
574
|
-
onComposerContentFocused="props.onComposerContentFocused"
|
|
575
|
-
/>
|
|
569
|
+
<Composer t-props="composerProps"/>
|
|
576
570
|
</div>
|
|
577
571
|
</t>
|
|
578
572
|
|
|
@@ -581,11 +575,7 @@
|
|
|
581
575
|
class="o-topbar-composer bg-white user-select-text"
|
|
582
576
|
t-on-click.stop=""
|
|
583
577
|
t-att-style="containerStyle">
|
|
584
|
-
<Composer
|
|
585
|
-
focus="props.focus"
|
|
586
|
-
inputStyle="composerStyle"
|
|
587
|
-
onComposerContentFocused="props.onComposerContentFocused"
|
|
588
|
-
/>
|
|
578
|
+
<Composer focus="focus" inputStyle="composerStyle" onComposerContentFocused.bind="onFocus"/>
|
|
589
579
|
</div>
|
|
590
580
|
</t>
|
|
591
581
|
|
|
@@ -604,7 +594,6 @@
|
|
|
604
594
|
/>
|
|
605
595
|
<canvas t-ref="canvas"/>
|
|
606
596
|
<GridPopover
|
|
607
|
-
hoveredCell="hoveredCell"
|
|
608
597
|
gridRect="getGridRect()"
|
|
609
598
|
onMouseWheel.bind="onMouseWheel"
|
|
610
599
|
onClosePopover.bind="onClosePopover"
|
|
@@ -953,9 +942,10 @@
|
|
|
953
942
|
<div
|
|
954
943
|
class="o-grid w-100 h-100"
|
|
955
944
|
tabindex="-1"
|
|
956
|
-
t-on-click="
|
|
945
|
+
t-on-click="focusDefaultElement"
|
|
957
946
|
t-on-keydown="onKeydown"
|
|
958
947
|
t-on-wheel="onMouseWheel"
|
|
948
|
+
t-on-contextmenu="onInputContextMenu"
|
|
959
949
|
t-ref="grid">
|
|
960
950
|
<GridOverlay
|
|
961
951
|
onCellClicked.bind="onCellClicked"
|
|
@@ -965,27 +955,10 @@
|
|
|
965
955
|
onGridResized.bind="onGridResized"
|
|
966
956
|
onGridMoved.bind="moveCanvas"
|
|
967
957
|
gridOverlayDimensions="gridOverlayDimensions"
|
|
968
|
-
onFigureDeleted.bind="
|
|
958
|
+
onFigureDeleted.bind="focusDefaultElement"
|
|
969
959
|
/>
|
|
970
960
|
<HeadersOverlay onOpenContextMenu="(type, x, y) => this.toggleContextMenu(type, x, y)"/>
|
|
971
|
-
|
|
972
|
-
<t t-if="env.model.getters.getEditionMode() !== 'inactive'">
|
|
973
|
-
<GridComposer
|
|
974
|
-
onComposerUnmounted="() => this.focus()"
|
|
975
|
-
onComposerContentFocused="props.onComposerContentFocused"
|
|
976
|
-
focus="props.focusComposer"
|
|
977
|
-
gridDims="env.model.getters.getSheetViewDimensionWithHeaders()"
|
|
978
|
-
/>
|
|
979
|
-
</t>
|
|
980
|
-
<t else="1">
|
|
981
|
-
<input
|
|
982
|
-
class="position-absolute"
|
|
983
|
-
style="z-index:-1000;"
|
|
984
|
-
t-on-input="onInput"
|
|
985
|
-
t-on-contextmenu="onInputContextMenu"
|
|
986
|
-
t-ref="hiddenInput"
|
|
987
|
-
/>
|
|
988
|
-
</t>
|
|
961
|
+
<GridComposer gridDims="env.model.getters.getSheetViewDimensionWithHeaders()"/>
|
|
989
962
|
<canvas t-ref="canvas"/>
|
|
990
963
|
<t
|
|
991
964
|
t-foreach="env.model.getters.getClientsToDisplay()"
|
|
@@ -1001,7 +974,6 @@
|
|
|
1001
974
|
</t>
|
|
1002
975
|
<GridPopover
|
|
1003
976
|
t-if="!menuState.isOpen"
|
|
1004
|
-
hoveredCell="hoveredCell"
|
|
1005
977
|
gridRect="getGridRect()"
|
|
1006
978
|
onMouseWheel.bind="onMouseWheel"
|
|
1007
979
|
onClosePopover.bind="onClosePopover"
|
|
@@ -1009,8 +981,9 @@
|
|
|
1009
981
|
<t t-if="env.model.getters.isGridSelectionActive()">
|
|
1010
982
|
<Autofill position="getAutofillPosition()" isVisible="isAutofillVisible"/>
|
|
1011
983
|
</t>
|
|
1012
|
-
<t t-foreach="
|
|
1013
|
-
<t
|
|
984
|
+
<t t-foreach="highlights" t-as="highlight" t-key="highlight_index">
|
|
985
|
+
<t
|
|
986
|
+
t-if="highlight.interactive and highlight.sheetId === env.model.getters.getActiveSheetId()">
|
|
1014
987
|
<Highlight zone="highlight.zone" color="highlight.color"/>
|
|
1015
988
|
</t>
|
|
1016
989
|
</t>
|
|
@@ -1065,7 +1038,7 @@
|
|
|
1065
1038
|
t-att-style="style"
|
|
1066
1039
|
t-on-mousedown="onMouseDown"
|
|
1067
1040
|
t-on-dblclick.self="onDoubleClick"
|
|
1068
|
-
t-on-contextmenu="onContextMenu">
|
|
1041
|
+
t-on-contextmenu.stop.prevent="onContextMenu">
|
|
1069
1042
|
<FiguresContainer onFigureDeleted="props.onFigureDeleted"/>
|
|
1070
1043
|
<DataValidationOverlay/>
|
|
1071
1044
|
<GridAddRowsFooter
|
|
@@ -1516,15 +1489,15 @@
|
|
|
1516
1489
|
/>
|
|
1517
1490
|
</svg>
|
|
1518
1491
|
</t>
|
|
1519
|
-
<t t-name="o-spreadsheet-Icon.
|
|
1520
|
-
<svg class="o-icon">
|
|
1521
|
-
<path
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
/>
|
|
1492
|
+
<t t-name="o-spreadsheet-Icon.SHOW">
|
|
1493
|
+
<svg class="o-icon" viewBox="0 0 24 24" fill="none" stroke="currentcolor">
|
|
1494
|
+
<path stroke-width="1.35" d="M1,12 S11.5,0 23,12 M1,12 S11.5,24 23,12"/>
|
|
1495
|
+
<path d="M1.26,11.7 A .4 .3 1 0 0 1.2,12.3"/>
|
|
1496
|
+
<path d="M22.8,11.7 A .4 .3 1 0 1 22.75,12.3"/>
|
|
1497
|
+
<circle stroke-width="1.35" stroke="currentcolor" cx="12" cy="12" r="3"/>
|
|
1525
1498
|
</svg>
|
|
1526
1499
|
</t>
|
|
1527
|
-
<t t-name="o-spreadsheet-Icon.
|
|
1500
|
+
<t t-name="o-spreadsheet-Icon.FORMULA">
|
|
1528
1501
|
<svg class="o-icon">
|
|
1529
1502
|
<path
|
|
1530
1503
|
fill="currentColor"
|
|
@@ -2450,8 +2423,9 @@ https://fontawesome.com/license -->
|
|
|
2450
2423
|
<div
|
|
2451
2424
|
t-att-title="getName(menuItem)"
|
|
2452
2425
|
t-att-data-name="menuItem.id"
|
|
2453
|
-
t-on-click="(ev) => this.onClickMenu(menuItem,
|
|
2454
|
-
t-on-
|
|
2426
|
+
t-on-click="(ev) => this.onClickMenu(menuItem, ev)"
|
|
2427
|
+
t-on-mouseenter="(ev) => this.onMouseEnter(menuItem, ev)"
|
|
2428
|
+
t-on-mouseleave="(ev) => this.onMouseLeave(menuItem)"
|
|
2455
2429
|
class="o-menu-item d-flex align-items-center"
|
|
2456
2430
|
t-att-class="{ 'o-menu-root': isMenuRoot, 'disabled': !isMenuEnabled, 'o-menu-item-active': isParentMenu(subMenu, menuItem)}"
|
|
2457
2431
|
t-att-style="getColor(menuItem)">
|
|
@@ -2604,12 +2578,12 @@ https://fontawesome.com/license -->
|
|
|
2604
2578
|
/>
|
|
2605
2579
|
</Section>
|
|
2606
2580
|
<ChartDataSeries
|
|
2607
|
-
ranges="
|
|
2581
|
+
ranges="this.getDataSeriesRanges()"
|
|
2608
2582
|
onSelectionChanged="(ranges) => this.onDataSeriesRangesChanged(ranges)"
|
|
2609
2583
|
onSelectionConfirmed="() => this.onDataSeriesConfirmed()"
|
|
2610
2584
|
/>
|
|
2611
2585
|
<ChartLabelRange
|
|
2612
|
-
range="
|
|
2586
|
+
range="this.getLabelRange()"
|
|
2613
2587
|
isInvalid="isLabelInvalid"
|
|
2614
2588
|
onSelectionChanged="(ranges) => this.onLabelRangeChanged(ranges)"
|
|
2615
2589
|
onSelectionConfirmed="() => this.onLabelRangeConfirmed()"
|
|
@@ -2683,7 +2657,7 @@ https://fontawesome.com/license -->
|
|
|
2683
2657
|
<Section class="'o-data-series'">
|
|
2684
2658
|
<t t-set-slot="title" t-esc="title"/>
|
|
2685
2659
|
<SelectionInput
|
|
2686
|
-
ranges="
|
|
2660
|
+
ranges="props.ranges"
|
|
2687
2661
|
required="true"
|
|
2688
2662
|
hasSingleRange="props.hasSingleRange"
|
|
2689
2663
|
onSelectionChanged="(ranges) => props.onSelectionChanged(ranges)"
|
|
@@ -2702,7 +2676,7 @@ https://fontawesome.com/license -->
|
|
|
2702
2676
|
<Section class="'o-data-labels'">
|
|
2703
2677
|
<t t-set-slot="title" t-esc="props.title"/>
|
|
2704
2678
|
<SelectionInput
|
|
2705
|
-
ranges="
|
|
2679
|
+
ranges="[props.range]"
|
|
2706
2680
|
isInvalid="props.isInvalid"
|
|
2707
2681
|
hasSingleRange="true"
|
|
2708
2682
|
required="props.required"
|
|
@@ -2737,7 +2711,7 @@ https://fontawesome.com/license -->
|
|
|
2737
2711
|
<t t-name="o-spreadsheet-GaugeChartConfigPanel">
|
|
2738
2712
|
<div>
|
|
2739
2713
|
<ChartDataSeries
|
|
2740
|
-
ranges="
|
|
2714
|
+
ranges="[this.getDataRange()]"
|
|
2741
2715
|
onSelectionChanged="(ranges) => this.onDataRangeChanged(ranges)"
|
|
2742
2716
|
onSelectionConfirmed="() => this.updateDataRange()"
|
|
2743
2717
|
hasSingleRange="true"
|
|
@@ -2876,12 +2850,12 @@ https://fontawesome.com/license -->
|
|
|
2876
2850
|
<t t-name="o-spreadsheet-LineBarPieConfigPanel">
|
|
2877
2851
|
<div>
|
|
2878
2852
|
<ChartDataSeries
|
|
2879
|
-
ranges="
|
|
2853
|
+
ranges="this.getDataSeriesRanges()"
|
|
2880
2854
|
onSelectionChanged="(ranges) => this.onDataSeriesRangesChanged(ranges)"
|
|
2881
2855
|
onSelectionConfirmed="() => this.onDataSeriesConfirmed()"
|
|
2882
2856
|
/>
|
|
2883
2857
|
<ChartLabelRange
|
|
2884
|
-
range="
|
|
2858
|
+
range="this.getLabelRange()"
|
|
2885
2859
|
isInvalid="isLabelInvalid"
|
|
2886
2860
|
onSelectionChanged="(ranges) => this.onLabelRangeChanged(ranges)"
|
|
2887
2861
|
onSelectionConfirmed="() => this.onLabelRangeConfirmed()"
|
|
@@ -2940,12 +2914,12 @@ https://fontawesome.com/license -->
|
|
|
2940
2914
|
/>
|
|
2941
2915
|
</Section>
|
|
2942
2916
|
<ChartDataSeries
|
|
2943
|
-
ranges="
|
|
2917
|
+
ranges="this.getDataSeriesRanges()"
|
|
2944
2918
|
onSelectionChanged="(ranges) => this.onDataSeriesRangesChanged(ranges)"
|
|
2945
2919
|
onSelectionConfirmed="() => this.onDataSeriesConfirmed()"
|
|
2946
2920
|
/>
|
|
2947
2921
|
<ChartLabelRange
|
|
2948
|
-
range="
|
|
2922
|
+
range="this.getLabelRange()"
|
|
2949
2923
|
isInvalid="isLabelInvalid"
|
|
2950
2924
|
onSelectionChanged="(ranges) => this.onLabelRangeChanged(ranges)"
|
|
2951
2925
|
onSelectionConfirmed="() => this.onLabelRangeConfirmed()"
|
|
@@ -2998,26 +2972,26 @@ https://fontawesome.com/license -->
|
|
|
2998
2972
|
</t>
|
|
2999
2973
|
|
|
3000
2974
|
<t t-name="o-spreadsheet-ChartPanel">
|
|
3001
|
-
<div class="o-chart">
|
|
2975
|
+
<div class="o-chart" t-if="figureId">
|
|
3002
2976
|
<div class="o-panel">
|
|
3003
2977
|
<div
|
|
3004
2978
|
class="o-panel-element o-panel-configuration"
|
|
3005
|
-
t-att-class="
|
|
3006
|
-
t-on-click="() => this.activatePanel('configuration')">
|
|
2979
|
+
t-att-class="store.panel !== 'configuration' ? 'inactive' : ''"
|
|
2980
|
+
t-on-click="() => this.store.activatePanel('configuration')">
|
|
3007
2981
|
<i class="fa fa-sliders"/>
|
|
3008
2982
|
Configuration
|
|
3009
2983
|
</div>
|
|
3010
2984
|
<div
|
|
3011
2985
|
class="o-panel-element o-panel-design"
|
|
3012
|
-
t-att-class="
|
|
3013
|
-
t-on-click="() => this.activatePanel('design')">
|
|
2986
|
+
t-att-class="store.panel !== 'design' ? 'inactive' : ''"
|
|
2987
|
+
t-on-click="() => this.store.activatePanel('design')">
|
|
3014
2988
|
<i class="fa fa-paint-brush"/>
|
|
3015
2989
|
Design
|
|
3016
2990
|
</div>
|
|
3017
2991
|
</div>
|
|
3018
2992
|
|
|
3019
|
-
<t t-set="definition" t-value="getChartDefinition()"/>
|
|
3020
|
-
<t t-if="
|
|
2993
|
+
<t t-set="definition" t-value="getChartDefinition(this.figureId)"/>
|
|
2994
|
+
<t t-if="store.panel === 'configuration'">
|
|
3021
2995
|
<Section>
|
|
3022
2996
|
<t t-set-slot="title">Chart type</t>
|
|
3023
2997
|
<t t-set="types" t-value="chartTypes"/>
|
|
@@ -3059,12 +3033,12 @@ https://fontawesome.com/license -->
|
|
|
3059
3033
|
<t t-name="o-spreadsheet-ScatterConfigPanel">
|
|
3060
3034
|
<div>
|
|
3061
3035
|
<ChartDataSeries
|
|
3062
|
-
ranges="
|
|
3036
|
+
ranges="this.getDataSeriesRanges()"
|
|
3063
3037
|
onSelectionChanged="(ranges) => this.onDataSeriesRangesChanged(ranges)"
|
|
3064
3038
|
onSelectionConfirmed="() => this.onDataSeriesConfirmed()"
|
|
3065
3039
|
/>
|
|
3066
3040
|
<ChartLabelRange
|
|
3067
|
-
range="
|
|
3041
|
+
range="this.getLabelRange()"
|
|
3068
3042
|
isInvalid="isLabelInvalid"
|
|
3069
3043
|
onSelectionChanged="(ranges) => this.onLabelRangeChanged(ranges)"
|
|
3070
3044
|
onSelectionConfirmed="() => this.onLabelRangeConfirmed()"
|
|
@@ -3089,7 +3063,7 @@ https://fontawesome.com/license -->
|
|
|
3089
3063
|
<Section class="'o-data-series'">
|
|
3090
3064
|
<t t-set-slot="title">Key value</t>
|
|
3091
3065
|
<SelectionInput
|
|
3092
|
-
ranges="
|
|
3066
|
+
ranges="[this.getKeyValueRange()]"
|
|
3093
3067
|
isInvalid="isKeyValueInvalid"
|
|
3094
3068
|
hasSingleRange="true"
|
|
3095
3069
|
required="true"
|
|
@@ -3101,7 +3075,7 @@ https://fontawesome.com/license -->
|
|
|
3101
3075
|
<t t-set-slot="title">Baseline configuration</t>
|
|
3102
3076
|
<div class="o-section-subtitle">Baseline value</div>
|
|
3103
3077
|
<SelectionInput
|
|
3104
|
-
ranges="
|
|
3078
|
+
ranges="[this.getBaselineRange()]"
|
|
3105
3079
|
isInvalid="isBaselineInvalid"
|
|
3106
3080
|
hasSingleRange="true"
|
|
3107
3081
|
onSelectionChanged="(ranges) => this.onBaselineRangeChanged(ranges)"
|
|
@@ -3169,7 +3143,7 @@ https://fontawesome.com/license -->
|
|
|
3169
3143
|
</t>
|
|
3170
3144
|
|
|
3171
3145
|
<t t-name="o-spreadsheet.Checkbox">
|
|
3172
|
-
<label class="o-checkbox">
|
|
3146
|
+
<label class="o-checkbox" t-att-title="props.title">
|
|
3173
3147
|
<input
|
|
3174
3148
|
type="checkbox"
|
|
3175
3149
|
t-att-name="props.name"
|
|
@@ -3299,7 +3273,7 @@ https://fontawesome.com/license -->
|
|
|
3299
3273
|
<t t-set-slot="title">Apply to range</t>
|
|
3300
3274
|
<div class="o-selection-cf">
|
|
3301
3275
|
<SelectionInput
|
|
3302
|
-
ranges="
|
|
3276
|
+
ranges="state.currentCF.ranges"
|
|
3303
3277
|
class="'o-range'"
|
|
3304
3278
|
isInvalid="isRangeValid"
|
|
3305
3279
|
onSelectionChanged="(ranges) => this.onRangesChanged(ranges)"
|
|
@@ -3571,27 +3545,15 @@ https://fontawesome.com/license -->
|
|
|
3571
3545
|
</div>
|
|
3572
3546
|
</t>
|
|
3573
3547
|
|
|
3574
|
-
<t t-name="o-spreadsheet-
|
|
3575
|
-
<
|
|
3576
|
-
<t t-foreach="props.conditionalFormats" t-as="cf" t-key="cf.id">
|
|
3577
|
-
<t t-call="o-spreadsheet-ConditionalFormattingPanelPreview"/>
|
|
3578
|
-
</t>
|
|
3579
|
-
<div
|
|
3580
|
-
class="btn btn-link o-sidePanel-btn-link o-cf-add float-end"
|
|
3581
|
-
t-on-click.prevent.stop="props.onAddConditionalFormat">
|
|
3582
|
-
+ Add another rule
|
|
3583
|
-
</div>
|
|
3584
|
-
</div>
|
|
3585
|
-
</t>
|
|
3586
|
-
|
|
3587
|
-
<t t-name="o-spreadsheet-ConditionalFormattingPanelPreview">
|
|
3548
|
+
<t t-name="o-spreadsheet-ConditionalFormatPreview">
|
|
3549
|
+
<t t-set="cf" t-value="props.conditionalFormat"/>
|
|
3588
3550
|
<div
|
|
3589
|
-
class="o-cf-preview
|
|
3590
|
-
t-
|
|
3591
|
-
t-att-
|
|
3551
|
+
class="o-cf-preview w-100"
|
|
3552
|
+
t-ref="cfPreview"
|
|
3553
|
+
t-att-class="props.class"
|
|
3592
3554
|
t-att-data-id="cf.id"
|
|
3593
|
-
t-on-click="
|
|
3594
|
-
t-on-mousedown="(ev) => this.onMouseDown(
|
|
3555
|
+
t-on-click="props.onPreviewClick"
|
|
3556
|
+
t-on-mousedown="(ev) => this.onMouseDown(ev)">
|
|
3595
3557
|
<div class="position-relative h-100 w-100 d-flex align-items-center">
|
|
3596
3558
|
<div class="o-cf-drag-handle h-100 position-absolute d-flex align-items-center text-muted">
|
|
3597
3559
|
<t t-call="o-spreadsheet-Icon.THIN_DRAG_HANDLE"/>
|
|
@@ -3630,6 +3592,28 @@ https://fontawesome.com/license -->
|
|
|
3630
3592
|
</div>
|
|
3631
3593
|
</t>
|
|
3632
3594
|
|
|
3595
|
+
<t t-name="o-spreadsheet-ConditionalFormatPreviewList">
|
|
3596
|
+
<div class="o-cf-preview-list h-100 overflow-auto" t-ref="cfList">
|
|
3597
|
+
<t t-foreach="props.conditionalFormats" t-as="cf" t-key="cf.id">
|
|
3598
|
+
<div
|
|
3599
|
+
class="o-cf-preview-container d-flex position-relative"
|
|
3600
|
+
t-att-style="getPreviewDivStyle(cf)">
|
|
3601
|
+
<ConditionalFormatPreview
|
|
3602
|
+
conditionalFormat="cf"
|
|
3603
|
+
class="dragAndDrop.draggedItemId === cf.id ? 'o-cf-dragging' : ''"
|
|
3604
|
+
onMouseDown="(ev) => this.onPreviewMouseDown(cf, ev)"
|
|
3605
|
+
onPreviewClick="() => props.onPreviewClick(cf)"
|
|
3606
|
+
/>
|
|
3607
|
+
</div>
|
|
3608
|
+
</t>
|
|
3609
|
+
<div
|
|
3610
|
+
class="btn btn-link o-sidePanel-btn-link o-cf-add float-end"
|
|
3611
|
+
t-on-click.prevent.stop="props.onAddConditionalFormat">
|
|
3612
|
+
+ Add another rule
|
|
3613
|
+
</div>
|
|
3614
|
+
</div>
|
|
3615
|
+
</t>
|
|
3616
|
+
|
|
3633
3617
|
<t t-name="o-spreadsheet-ConditionalFormattingPanel">
|
|
3634
3618
|
<div class="o-cf h-100">
|
|
3635
3619
|
<t t-if="state.mode === 'list'">
|
|
@@ -3832,7 +3816,7 @@ https://fontawesome.com/license -->
|
|
|
3832
3816
|
|
|
3833
3817
|
<t t-name="o-spreadsheet-DataValidationValueInRangeCriterionForm">
|
|
3834
3818
|
<SelectionInput
|
|
3835
|
-
ranges="
|
|
3819
|
+
ranges="[props.criterion.values[0] || '']"
|
|
3836
3820
|
onSelectionChanged="(ranges) => this.onRangeChanged(ranges[0])"
|
|
3837
3821
|
required="true"
|
|
3838
3822
|
hasSingleRange="true"
|
|
@@ -3852,7 +3836,7 @@ https://fontawesome.com/license -->
|
|
|
3852
3836
|
<Section class="'o-dv-range'">
|
|
3853
3837
|
<t t-set-slot="title">Apply to range</t>
|
|
3854
3838
|
<SelectionInput
|
|
3855
|
-
ranges="
|
|
3839
|
+
ranges="state.rule.ranges"
|
|
3856
3840
|
onSelectionChanged="(ranges) => this.onRangesChanged(ranges)"
|
|
3857
3841
|
required="true"
|
|
3858
3842
|
/>
|
|
@@ -3896,7 +3880,7 @@ https://fontawesome.com/license -->
|
|
|
3896
3880
|
</t>
|
|
3897
3881
|
|
|
3898
3882
|
<t t-name="o-spreadsheet-DataValidationPreview">
|
|
3899
|
-
<div class="o-dv-preview p-3" t-on-click="props.onClick">
|
|
3883
|
+
<div class="o-dv-preview p-3" t-on-click="props.onClick" t-ref="dvPreview">
|
|
3900
3884
|
<div class="d-flex justify-content-between">
|
|
3901
3885
|
<div class="o-dv-container d-flex flex-column">
|
|
3902
3886
|
<div class="o-dv-preview-description fw-bold text-truncate" t-esc="descriptionString"/>
|
|
@@ -3920,16 +3904,18 @@ https://fontawesome.com/license -->
|
|
|
3920
3904
|
type="text"
|
|
3921
3905
|
t-ref="searchInput"
|
|
3922
3906
|
class="o-input o-input-with-count"
|
|
3923
|
-
t-on-input="
|
|
3907
|
+
t-on-input="onSearchInput"
|
|
3924
3908
|
t-on-focus="onFocusSearch"
|
|
3925
3909
|
t-on-keydown="onKeydownSearch"
|
|
3926
3910
|
/>
|
|
3927
3911
|
<div class="o-input-count" t-if="hasSearchResult">
|
|
3928
|
-
<t t-esc="
|
|
3912
|
+
<t t-esc="store.selectedMatchIndex+1"/>
|
|
3929
3913
|
/
|
|
3930
|
-
<t t-esc="
|
|
3914
|
+
<t t-esc="store.searchMatches.length"/>
|
|
3915
|
+
</div>
|
|
3916
|
+
<div t-elif="!store.pendingSearch and store.toSearch !== ''" class="o-input-count">
|
|
3917
|
+
0 / 0
|
|
3931
3918
|
</div>
|
|
3932
|
-
<div t-elif="!pendingSearch and toSearch !== ''" class="o-input-count">0 / 0</div>
|
|
3933
3919
|
</div>
|
|
3934
3920
|
<select
|
|
3935
3921
|
class="o-input o-type-selector o-type-range-selector mt-3 mb-3"
|
|
@@ -3940,7 +3926,7 @@ https://fontawesome.com/license -->
|
|
|
3940
3926
|
</select>
|
|
3941
3927
|
<div t-if="searchOptions.searchScope === 'specificRange'">
|
|
3942
3928
|
<SelectionInput
|
|
3943
|
-
ranges="
|
|
3929
|
+
ranges="[this.dataRange]"
|
|
3944
3930
|
onSelectionChanged="(ranges) => this.onSearchRangeChanged(ranges)"
|
|
3945
3931
|
onSelectionConfirmed.bind="updateDataRange"
|
|
3946
3932
|
hasSingleRange="true"
|
|
@@ -3968,7 +3954,7 @@ https://fontawesome.com/license -->
|
|
|
3968
3954
|
onChange.bind="searchFormulas"
|
|
3969
3955
|
/>
|
|
3970
3956
|
</div>
|
|
3971
|
-
<div class="o-matches-count mt-4" t-if="toSearch !== ''">
|
|
3957
|
+
<div class="o-matches-count mt-4" t-if="store.toSearch !== ''">
|
|
3972
3958
|
<div t-if="searchOptions.searchScope === 'specificRange' and dataRange != ''">
|
|
3973
3959
|
<t t-esc="specificRangeMatchesCount"/>
|
|
3974
3960
|
</div>
|
|
@@ -3983,11 +3969,14 @@ https://fontawesome.com/license -->
|
|
|
3983
3969
|
<div class="o-sidePanelButtons">
|
|
3984
3970
|
<button
|
|
3985
3971
|
t-att-disabled="!hasSearchResult"
|
|
3986
|
-
t-on-click="
|
|
3972
|
+
t-on-click="() => store.selectPreviousMatch()"
|
|
3987
3973
|
class="o-button">
|
|
3988
3974
|
Previous
|
|
3989
3975
|
</button>
|
|
3990
|
-
<button
|
|
3976
|
+
<button
|
|
3977
|
+
t-att-disabled="!hasSearchResult"
|
|
3978
|
+
t-on-click="() => store.selectNextMatch()"
|
|
3979
|
+
class="o-button">
|
|
3991
3980
|
Next
|
|
3992
3981
|
</button>
|
|
3993
3982
|
</div>
|
|
@@ -3997,22 +3986,22 @@ https://fontawesome.com/license -->
|
|
|
3997
3986
|
<input
|
|
3998
3987
|
type="text"
|
|
3999
3988
|
class="o-input o-input-without-count"
|
|
4000
|
-
t-ref="replaceInput"
|
|
4001
3989
|
t-on-keydown="onKeydownReplace"
|
|
3990
|
+
t-model="store.toReplace"
|
|
4002
3991
|
/>
|
|
4003
3992
|
</div>
|
|
4004
3993
|
</Section>
|
|
4005
3994
|
|
|
4006
3995
|
<div class="o-sidePanelButtons" t-if="!env.model.getters.isReadonly()">
|
|
4007
3996
|
<button
|
|
4008
|
-
t-att-disabled="
|
|
4009
|
-
t-on-click="replace"
|
|
3997
|
+
t-att-disabled="store.selectedMatchIndex === null"
|
|
3998
|
+
t-on-click="() => store.replace()"
|
|
4010
3999
|
class="o-button">
|
|
4011
4000
|
Replace
|
|
4012
4001
|
</button>
|
|
4013
4002
|
<button
|
|
4014
|
-
t-att-disabled="
|
|
4015
|
-
t-on-click="replaceAll"
|
|
4003
|
+
t-att-disabled="store.selectedMatchIndex === null"
|
|
4004
|
+
t-on-click="() => store.replaceAll()"
|
|
4016
4005
|
class="o-button">
|
|
4017
4006
|
Replace all
|
|
4018
4007
|
</button>
|
|
@@ -4133,24 +4122,24 @@ https://fontawesome.com/license -->
|
|
|
4133
4122
|
</t>
|
|
4134
4123
|
|
|
4135
4124
|
<t t-name="o-spreadsheet-SidePanel">
|
|
4136
|
-
<div class="o-sidePanel">
|
|
4125
|
+
<div class="o-sidePanel" t-if="sidePanelStore.isOpen">
|
|
4137
4126
|
<div class="o-sidePanelHeader">
|
|
4138
4127
|
<div class="o-sidePanelTitle" t-esc="getTitle()"/>
|
|
4139
|
-
<div class="o-sidePanelClose" t-on-click="
|
|
4128
|
+
<div class="o-sidePanelClose" t-on-click="close">✕</div>
|
|
4140
4129
|
</div>
|
|
4141
4130
|
<div class="o-sidePanelBody">
|
|
4142
4131
|
<t
|
|
4143
|
-
t-component="
|
|
4144
|
-
t-props="
|
|
4145
|
-
onCloseSidePanel="
|
|
4146
|
-
t-key="'Body_' +
|
|
4132
|
+
t-component="panel.Body"
|
|
4133
|
+
t-props="sidePanelStore.panelProps"
|
|
4134
|
+
onCloseSidePanel.bind="close"
|
|
4135
|
+
t-key="'Body_' + sidePanelStore.componentTag"
|
|
4147
4136
|
/>
|
|
4148
4137
|
</div>
|
|
4149
|
-
<div class="o-sidePanelFooter" t-if="
|
|
4138
|
+
<div class="o-sidePanelFooter" t-if="panel?.Footer">
|
|
4150
4139
|
<t
|
|
4151
|
-
t-component="
|
|
4152
|
-
t-props="
|
|
4153
|
-
t-key="'Footer_' +
|
|
4140
|
+
t-component="panel.Footer"
|
|
4141
|
+
t-props="sidePanelStore.panelProps"
|
|
4142
|
+
t-key="'Footer_' + sidePanelStore.componentTag"
|
|
4154
4143
|
/>
|
|
4155
4144
|
</div>
|
|
4156
4145
|
</div>
|
|
@@ -4212,12 +4201,7 @@ https://fontawesome.com/license -->
|
|
|
4212
4201
|
<SpreadsheetDashboard/>
|
|
4213
4202
|
</t>
|
|
4214
4203
|
<t t-else="">
|
|
4215
|
-
<TopBar
|
|
4216
|
-
onClick="() => this.focusGrid()"
|
|
4217
|
-
onComposerContentFocused="(selection) => this.onTopBarComposerFocused(selection)"
|
|
4218
|
-
focusComposer="focusTopBarComposer"
|
|
4219
|
-
dropdownMaxHeight="gridHeight"
|
|
4220
|
-
/>
|
|
4204
|
+
<TopBar onClick="() => this.focusGrid()" dropdownMaxHeight="gridHeight"/>
|
|
4221
4205
|
<div
|
|
4222
4206
|
class="o-grid-container"
|
|
4223
4207
|
t-att-class="{'o-two-columns': !sidePanel.isOpen}"
|
|
@@ -4231,21 +4215,10 @@ https://fontawesome.com/license -->
|
|
|
4231
4215
|
<HeaderGroupContainer layers="rowLayers" dimension="'ROW'"/>
|
|
4232
4216
|
</div>
|
|
4233
4217
|
<div class="o-group-grid overflow-hidden">
|
|
4234
|
-
<Grid
|
|
4235
|
-
sidePanelIsOpen="sidePanel.isOpen"
|
|
4236
|
-
focusComposer="focusGridComposer"
|
|
4237
|
-
exposeFocus="(focus) => this._focusGrid = focus"
|
|
4238
|
-
onComposerContentFocused="() => this.onGridComposerContentFocused()"
|
|
4239
|
-
onGridComposerCellFocused="(content, selection) => this.onGridComposerCellFocused(content, selection)"
|
|
4240
|
-
/>
|
|
4218
|
+
<Grid exposeFocus="(focus) => this._focusGrid = focus"/>
|
|
4241
4219
|
</div>
|
|
4242
4220
|
</div>
|
|
4243
|
-
<SidePanel
|
|
4244
|
-
t-if="sidePanel.isOpen"
|
|
4245
|
-
onCloseSidePanel="() => this.closeSidePanel()"
|
|
4246
|
-
component="sidePanel.component"
|
|
4247
|
-
panelProps="sidePanel.panelProps"
|
|
4248
|
-
/>
|
|
4221
|
+
<SidePanel t-if="sidePanel.isOpen"/>
|
|
4249
4222
|
<BottomBar onClick="() => this.focusGrid()"/>
|
|
4250
4223
|
</t>
|
|
4251
4224
|
</div>
|
|
@@ -4419,10 +4392,7 @@ https://fontawesome.com/license -->
|
|
|
4419
4392
|
<ActionButton action="VIEW.createRemoveFilter" class="'o-hoverable-button'"/>
|
|
4420
4393
|
</div>
|
|
4421
4394
|
</div>
|
|
4422
|
-
<TopBarComposer
|
|
4423
|
-
focus="props.focusComposer"
|
|
4424
|
-
onComposerContentFocused="props.onComposerContentFocused"
|
|
4425
|
-
/>
|
|
4395
|
+
<TopBarComposer/>
|
|
4426
4396
|
</div>
|
|
4427
4397
|
</div>
|
|
4428
4398
|
<Menu
|