@odoo/o-spreadsheet 17.2.0-alpha.1 → 17.2.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.
- package/dist/o-spreadsheet.cjs.js +30476 -29501
- package/dist/o-spreadsheet.d.ts +5198 -4327
- package/dist/o-spreadsheet.esm.js +30477 -29503
- package/dist/o-spreadsheet.iife.js +30455 -29480
- package/dist/o-spreadsheet.iife.min.js +1306 -1315
- package/dist/o_spreadsheet.xml +127 -106
- 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.4
|
|
5
|
+
@date 2024-02-09T13:11:01.066Z
|
|
6
|
+
@hash 1b33cf4
|
|
7
7
|
-->
|
|
8
8
|
<odoo>
|
|
9
9
|
<t t-name="o-spreadsheet-ActionButton">
|
|
@@ -276,7 +276,7 @@
|
|
|
276
276
|
t-on-dblclick="() => this.onDblClick()"
|
|
277
277
|
t-on-focusout="() => this.onFocusOut()"
|
|
278
278
|
t-on-keydown="(ev) => this.onKeyDown(ev)"
|
|
279
|
-
t-att-contenteditable="state.isEditing
|
|
279
|
+
t-att-contenteditable="state.isEditing ? 'plaintext-only': 'false'"
|
|
280
280
|
/>
|
|
281
281
|
<span class="o-sheet-icon ms-1" t-on-click.stop="(ev) => this.onIconClick(ev)">
|
|
282
282
|
<t t-call="o-spreadsheet-Icon.TRIANGLE_DOWN"/>
|
|
@@ -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"
|
|
@@ -565,14 +565,7 @@
|
|
|
565
565
|
t-esc="cellReference"
|
|
566
566
|
/>
|
|
567
567
|
<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
|
-
/>
|
|
568
|
+
<Composer t-props="composerProps"/>
|
|
576
569
|
</div>
|
|
577
570
|
</t>
|
|
578
571
|
|
|
@@ -581,11 +574,7 @@
|
|
|
581
574
|
class="o-topbar-composer bg-white user-select-text"
|
|
582
575
|
t-on-click.stop=""
|
|
583
576
|
t-att-style="containerStyle">
|
|
584
|
-
<Composer
|
|
585
|
-
focus="props.focus"
|
|
586
|
-
inputStyle="composerStyle"
|
|
587
|
-
onComposerContentFocused="props.onComposerContentFocused"
|
|
588
|
-
/>
|
|
577
|
+
<Composer focus="focus" inputStyle="composerStyle" onComposerContentFocused.bind="onFocus"/>
|
|
589
578
|
</div>
|
|
590
579
|
</t>
|
|
591
580
|
|
|
@@ -604,7 +593,6 @@
|
|
|
604
593
|
/>
|
|
605
594
|
<canvas t-ref="canvas"/>
|
|
606
595
|
<GridPopover
|
|
607
|
-
hoveredCell="hoveredCell"
|
|
608
596
|
gridRect="getGridRect()"
|
|
609
597
|
onMouseWheel.bind="onMouseWheel"
|
|
610
598
|
onClosePopover.bind="onClosePopover"
|
|
@@ -953,9 +941,10 @@
|
|
|
953
941
|
<div
|
|
954
942
|
class="o-grid w-100 h-100"
|
|
955
943
|
tabindex="-1"
|
|
956
|
-
t-on-click="
|
|
944
|
+
t-on-click="focusDefaultElement"
|
|
957
945
|
t-on-keydown="onKeydown"
|
|
958
946
|
t-on-wheel="onMouseWheel"
|
|
947
|
+
t-on-contextmenu="onInputContextMenu"
|
|
959
948
|
t-ref="grid">
|
|
960
949
|
<GridOverlay
|
|
961
950
|
onCellClicked.bind="onCellClicked"
|
|
@@ -965,27 +954,10 @@
|
|
|
965
954
|
onGridResized.bind="onGridResized"
|
|
966
955
|
onGridMoved.bind="moveCanvas"
|
|
967
956
|
gridOverlayDimensions="gridOverlayDimensions"
|
|
968
|
-
onFigureDeleted.bind="
|
|
957
|
+
onFigureDeleted.bind="focusDefaultElement"
|
|
969
958
|
/>
|
|
970
959
|
<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>
|
|
960
|
+
<GridComposer gridDims="env.model.getters.getSheetViewDimensionWithHeaders()"/>
|
|
989
961
|
<canvas t-ref="canvas"/>
|
|
990
962
|
<t
|
|
991
963
|
t-foreach="env.model.getters.getClientsToDisplay()"
|
|
@@ -1001,7 +973,6 @@
|
|
|
1001
973
|
</t>
|
|
1002
974
|
<GridPopover
|
|
1003
975
|
t-if="!menuState.isOpen"
|
|
1004
|
-
hoveredCell="hoveredCell"
|
|
1005
976
|
gridRect="getGridRect()"
|
|
1006
977
|
onMouseWheel.bind="onMouseWheel"
|
|
1007
978
|
onClosePopover.bind="onClosePopover"
|
|
@@ -1009,8 +980,9 @@
|
|
|
1009
980
|
<t t-if="env.model.getters.isGridSelectionActive()">
|
|
1010
981
|
<Autofill position="getAutofillPosition()" isVisible="isAutofillVisible"/>
|
|
1011
982
|
</t>
|
|
1012
|
-
<t t-foreach="
|
|
1013
|
-
<t
|
|
983
|
+
<t t-foreach="highlights" t-as="highlight" t-key="highlight_index">
|
|
984
|
+
<t
|
|
985
|
+
t-if="highlight.interactive and highlight.sheetId === env.model.getters.getActiveSheetId()">
|
|
1014
986
|
<Highlight zone="highlight.zone" color="highlight.color"/>
|
|
1015
987
|
</t>
|
|
1016
988
|
</t>
|
|
@@ -1065,7 +1037,7 @@
|
|
|
1065
1037
|
t-att-style="style"
|
|
1066
1038
|
t-on-mousedown="onMouseDown"
|
|
1067
1039
|
t-on-dblclick.self="onDoubleClick"
|
|
1068
|
-
t-on-contextmenu="onContextMenu">
|
|
1040
|
+
t-on-contextmenu.stop.prevent="onContextMenu">
|
|
1069
1041
|
<FiguresContainer onFigureDeleted="props.onFigureDeleted"/>
|
|
1070
1042
|
<DataValidationOverlay/>
|
|
1071
1043
|
<GridAddRowsFooter
|
|
@@ -1544,7 +1516,7 @@
|
|
|
1544
1516
|
<svg class="o-icon">
|
|
1545
1517
|
<path
|
|
1546
1518
|
fill="currentColor"
|
|
1547
|
-
d="M16 .5A1.5 1.5 0 0 1 17.5 2v14a1.5 1.5 0 0 1-1.5 1.5H2A1.5 1.5 0 0 1 .5 16V2A1.5 1.5 0 0 1 2 .5h14V2h-3.5v14H16V2H7v14h4V2H2v14h3.5V2M6 1l5 4v2L6 3m0 2 5 4v2L6 7m0 2 5 4v2l-5-
|
|
1519
|
+
d="M16 .5A1.5 1.5 0 0 1 17.5 2v14a1.5 1.5 0 0 1-1.5 1.5H2A1.5 1.5 0 0 1 .5 16V2A1.5 1.5 0 0 1 2 .5h14V2h-3.5v14H16V2H7v14h4V2H2v14h3.5V2M6 1l5 4v2L6 3m0 2 5 4v2L6 7m0 2 5 4v2l-5-4"
|
|
1548
1520
|
/>
|
|
1549
1521
|
</svg>
|
|
1550
1522
|
</t>
|
|
@@ -1658,6 +1630,22 @@
|
|
|
1658
1630
|
/>
|
|
1659
1631
|
</svg>
|
|
1660
1632
|
</t>
|
|
1633
|
+
<t t-name="o-spreadsheet-Icon.INSERT_CHECKBOX">
|
|
1634
|
+
<svg class="o-icon">
|
|
1635
|
+
<path
|
|
1636
|
+
fill="currentColor"
|
|
1637
|
+
d="M.5 2A1.5 1.5 0 0 1 2 .5h14A1.5 1.5 0 0 1 17.5 2v14a1.5 1.5 0 0 1-1.5 1.5H2A1.5 1.5 0 0 1 .5 16V2H2v14h14V2H2m13 4-1.4-1.4L7 11.2 4.4 8.6 3 10l4 4z"
|
|
1638
|
+
/>
|
|
1639
|
+
</svg>
|
|
1640
|
+
</t>
|
|
1641
|
+
<t t-name="o-spreadsheet-Icon.INSERT_DROPDOWN">
|
|
1642
|
+
<svg class="o-icon">
|
|
1643
|
+
<path
|
|
1644
|
+
fill="currentColor"
|
|
1645
|
+
d="M6 3.5a5 5.5 0 0 0 0 11h6a5 5.5 0 0 0 0-11H6V5h6a3.5 4 0 0 1 0 8H6a3.5 4 0 0 1 0-8m5 6 3-3H8"
|
|
1646
|
+
/>
|
|
1647
|
+
</svg>
|
|
1648
|
+
</t>
|
|
1661
1649
|
<t t-name="o-spreadsheet-Icon.INSERT_SHEET">
|
|
1662
1650
|
<svg class="o-icon" fill="currentColor">
|
|
1663
1651
|
<path
|
|
@@ -2434,8 +2422,9 @@ https://fontawesome.com/license -->
|
|
|
2434
2422
|
<div
|
|
2435
2423
|
t-att-title="getName(menuItem)"
|
|
2436
2424
|
t-att-data-name="menuItem.id"
|
|
2437
|
-
t-on-click="(ev) => this.onClickMenu(menuItem,
|
|
2438
|
-
t-on-
|
|
2425
|
+
t-on-click="(ev) => this.onClickMenu(menuItem, ev)"
|
|
2426
|
+
t-on-mouseenter="(ev) => this.onMouseEnter(menuItem, ev)"
|
|
2427
|
+
t-on-mouseleave="(ev) => this.onMouseLeave(menuItem)"
|
|
2439
2428
|
class="o-menu-item d-flex align-items-center"
|
|
2440
2429
|
t-att-class="{ 'o-menu-root': isMenuRoot, 'disabled': !isMenuEnabled, 'o-menu-item-active': isParentMenu(subMenu, menuItem)}"
|
|
2441
2430
|
t-att-style="getColor(menuItem)">
|
|
@@ -2588,12 +2577,12 @@ https://fontawesome.com/license -->
|
|
|
2588
2577
|
/>
|
|
2589
2578
|
</Section>
|
|
2590
2579
|
<ChartDataSeries
|
|
2591
|
-
ranges="
|
|
2580
|
+
ranges="this.getDataSeriesRanges()"
|
|
2592
2581
|
onSelectionChanged="(ranges) => this.onDataSeriesRangesChanged(ranges)"
|
|
2593
2582
|
onSelectionConfirmed="() => this.onDataSeriesConfirmed()"
|
|
2594
2583
|
/>
|
|
2595
2584
|
<ChartLabelRange
|
|
2596
|
-
range="
|
|
2585
|
+
range="this.getLabelRange()"
|
|
2597
2586
|
isInvalid="isLabelInvalid"
|
|
2598
2587
|
onSelectionChanged="(ranges) => this.onLabelRangeChanged(ranges)"
|
|
2599
2588
|
onSelectionConfirmed="() => this.onLabelRangeConfirmed()"
|
|
@@ -2667,7 +2656,7 @@ https://fontawesome.com/license -->
|
|
|
2667
2656
|
<Section class="'o-data-series'">
|
|
2668
2657
|
<t t-set-slot="title" t-esc="title"/>
|
|
2669
2658
|
<SelectionInput
|
|
2670
|
-
ranges="
|
|
2659
|
+
ranges="props.ranges"
|
|
2671
2660
|
required="true"
|
|
2672
2661
|
hasSingleRange="props.hasSingleRange"
|
|
2673
2662
|
onSelectionChanged="(ranges) => props.onSelectionChanged(ranges)"
|
|
@@ -2686,7 +2675,7 @@ https://fontawesome.com/license -->
|
|
|
2686
2675
|
<Section class="'o-data-labels'">
|
|
2687
2676
|
<t t-set-slot="title" t-esc="props.title"/>
|
|
2688
2677
|
<SelectionInput
|
|
2689
|
-
ranges="
|
|
2678
|
+
ranges="[props.range]"
|
|
2690
2679
|
isInvalid="props.isInvalid"
|
|
2691
2680
|
hasSingleRange="true"
|
|
2692
2681
|
required="props.required"
|
|
@@ -2721,7 +2710,7 @@ https://fontawesome.com/license -->
|
|
|
2721
2710
|
<t t-name="o-spreadsheet-GaugeChartConfigPanel">
|
|
2722
2711
|
<div>
|
|
2723
2712
|
<ChartDataSeries
|
|
2724
|
-
ranges="
|
|
2713
|
+
ranges="[this.getDataRange()]"
|
|
2725
2714
|
onSelectionChanged="(ranges) => this.onDataRangeChanged(ranges)"
|
|
2726
2715
|
onSelectionConfirmed="() => this.updateDataRange()"
|
|
2727
2716
|
hasSingleRange="true"
|
|
@@ -2860,12 +2849,12 @@ https://fontawesome.com/license -->
|
|
|
2860
2849
|
<t t-name="o-spreadsheet-LineBarPieConfigPanel">
|
|
2861
2850
|
<div>
|
|
2862
2851
|
<ChartDataSeries
|
|
2863
|
-
ranges="
|
|
2852
|
+
ranges="this.getDataSeriesRanges()"
|
|
2864
2853
|
onSelectionChanged="(ranges) => this.onDataSeriesRangesChanged(ranges)"
|
|
2865
2854
|
onSelectionConfirmed="() => this.onDataSeriesConfirmed()"
|
|
2866
2855
|
/>
|
|
2867
2856
|
<ChartLabelRange
|
|
2868
|
-
range="
|
|
2857
|
+
range="this.getLabelRange()"
|
|
2869
2858
|
isInvalid="isLabelInvalid"
|
|
2870
2859
|
onSelectionChanged="(ranges) => this.onLabelRangeChanged(ranges)"
|
|
2871
2860
|
onSelectionConfirmed="() => this.onLabelRangeConfirmed()"
|
|
@@ -2924,12 +2913,12 @@ https://fontawesome.com/license -->
|
|
|
2924
2913
|
/>
|
|
2925
2914
|
</Section>
|
|
2926
2915
|
<ChartDataSeries
|
|
2927
|
-
ranges="
|
|
2916
|
+
ranges="this.getDataSeriesRanges()"
|
|
2928
2917
|
onSelectionChanged="(ranges) => this.onDataSeriesRangesChanged(ranges)"
|
|
2929
2918
|
onSelectionConfirmed="() => this.onDataSeriesConfirmed()"
|
|
2930
2919
|
/>
|
|
2931
2920
|
<ChartLabelRange
|
|
2932
|
-
range="
|
|
2921
|
+
range="this.getLabelRange()"
|
|
2933
2922
|
isInvalid="isLabelInvalid"
|
|
2934
2923
|
onSelectionChanged="(ranges) => this.onLabelRangeChanged(ranges)"
|
|
2935
2924
|
onSelectionConfirmed="() => this.onLabelRangeConfirmed()"
|
|
@@ -3040,12 +3029,40 @@ https://fontawesome.com/license -->
|
|
|
3040
3029
|
</div>
|
|
3041
3030
|
</t>
|
|
3042
3031
|
|
|
3032
|
+
<t t-name="o-spreadsheet-ScatterConfigPanel">
|
|
3033
|
+
<div>
|
|
3034
|
+
<ChartDataSeries
|
|
3035
|
+
ranges="() => this.getDataSeriesRanges()"
|
|
3036
|
+
onSelectionChanged="(ranges) => this.onDataSeriesRangesChanged(ranges)"
|
|
3037
|
+
onSelectionConfirmed="() => this.onDataSeriesConfirmed()"
|
|
3038
|
+
/>
|
|
3039
|
+
<ChartLabelRange
|
|
3040
|
+
range="() => this.getLabelRange()"
|
|
3041
|
+
isInvalid="isLabelInvalid"
|
|
3042
|
+
onSelectionChanged="(ranges) => this.onLabelRangeChanged(ranges)"
|
|
3043
|
+
onSelectionConfirmed="() => this.onLabelRangeConfirmed()"
|
|
3044
|
+
options="this.getLabelRangeOptions()"
|
|
3045
|
+
/>
|
|
3046
|
+
|
|
3047
|
+
<Section class="'o-use-row-as-headers'" t-if="calculateHeaderPosition()">
|
|
3048
|
+
<Checkbox
|
|
3049
|
+
name="'dataSetsHaveTitle'"
|
|
3050
|
+
label="dataSetsHaveTitleLabel"
|
|
3051
|
+
value="props.definition.dataSetsHaveTitle"
|
|
3052
|
+
onChange.bind="onUpdateDataSetsHaveTitle"
|
|
3053
|
+
/>
|
|
3054
|
+
</Section>
|
|
3055
|
+
|
|
3056
|
+
<ChartErrorSection t-if="errorMessages.length" messages="errorMessages"/>
|
|
3057
|
+
</div>
|
|
3058
|
+
</t>
|
|
3059
|
+
|
|
3043
3060
|
<t t-name="o-spreadsheet-ScorecardChartConfigPanel">
|
|
3044
3061
|
<div>
|
|
3045
3062
|
<Section class="'o-data-series'">
|
|
3046
3063
|
<t t-set-slot="title">Key value</t>
|
|
3047
3064
|
<SelectionInput
|
|
3048
|
-
ranges="
|
|
3065
|
+
ranges="[this.getKeyValueRange()]"
|
|
3049
3066
|
isInvalid="isKeyValueInvalid"
|
|
3050
3067
|
hasSingleRange="true"
|
|
3051
3068
|
required="true"
|
|
@@ -3057,7 +3074,7 @@ https://fontawesome.com/license -->
|
|
|
3057
3074
|
<t t-set-slot="title">Baseline configuration</t>
|
|
3058
3075
|
<div class="o-section-subtitle">Baseline value</div>
|
|
3059
3076
|
<SelectionInput
|
|
3060
|
-
ranges="
|
|
3077
|
+
ranges="[this.getBaselineRange()]"
|
|
3061
3078
|
isInvalid="isBaselineInvalid"
|
|
3062
3079
|
hasSingleRange="true"
|
|
3063
3080
|
onSelectionChanged="(ranges) => this.onBaselineRangeChanged(ranges)"
|
|
@@ -3255,7 +3272,7 @@ https://fontawesome.com/license -->
|
|
|
3255
3272
|
<t t-set-slot="title">Apply to range</t>
|
|
3256
3273
|
<div class="o-selection-cf">
|
|
3257
3274
|
<SelectionInput
|
|
3258
|
-
ranges="
|
|
3275
|
+
ranges="state.currentCF.ranges"
|
|
3259
3276
|
class="'o-range'"
|
|
3260
3277
|
isInvalid="isRangeValid"
|
|
3261
3278
|
onSelectionChanged="(ranges) => this.onRangesChanged(ranges)"
|
|
@@ -3527,27 +3544,15 @@ https://fontawesome.com/license -->
|
|
|
3527
3544
|
</div>
|
|
3528
3545
|
</t>
|
|
3529
3546
|
|
|
3530
|
-
<t t-name="o-spreadsheet-
|
|
3531
|
-
<
|
|
3532
|
-
<t t-foreach="props.conditionalFormats" t-as="cf" t-key="cf.id">
|
|
3533
|
-
<t t-call="o-spreadsheet-ConditionalFormattingPanelPreview"/>
|
|
3534
|
-
</t>
|
|
3535
|
-
<div
|
|
3536
|
-
class="btn btn-link o-sidePanel-btn-link o-cf-add float-end"
|
|
3537
|
-
t-on-click.prevent.stop="props.onAddConditionalFormat">
|
|
3538
|
-
+ Add another rule
|
|
3539
|
-
</div>
|
|
3540
|
-
</div>
|
|
3541
|
-
</t>
|
|
3542
|
-
|
|
3543
|
-
<t t-name="o-spreadsheet-ConditionalFormattingPanelPreview">
|
|
3547
|
+
<t t-name="o-spreadsheet-ConditionalFormatPreview">
|
|
3548
|
+
<t t-set="cf" t-value="props.conditionalFormat"/>
|
|
3544
3549
|
<div
|
|
3545
|
-
class="o-cf-preview
|
|
3546
|
-
t-
|
|
3547
|
-
t-att-
|
|
3550
|
+
class="o-cf-preview w-100"
|
|
3551
|
+
t-ref="cfPreview"
|
|
3552
|
+
t-att-class="props.class"
|
|
3548
3553
|
t-att-data-id="cf.id"
|
|
3549
|
-
t-on-click="
|
|
3550
|
-
t-on-mousedown="(ev) => this.onMouseDown(
|
|
3554
|
+
t-on-click="props.onPreviewClick"
|
|
3555
|
+
t-on-mousedown="(ev) => this.onMouseDown(ev)">
|
|
3551
3556
|
<div class="position-relative h-100 w-100 d-flex align-items-center">
|
|
3552
3557
|
<div class="o-cf-drag-handle h-100 position-absolute d-flex align-items-center text-muted">
|
|
3553
3558
|
<t t-call="o-spreadsheet-Icon.THIN_DRAG_HANDLE"/>
|
|
@@ -3586,6 +3591,28 @@ https://fontawesome.com/license -->
|
|
|
3586
3591
|
</div>
|
|
3587
3592
|
</t>
|
|
3588
3593
|
|
|
3594
|
+
<t t-name="o-spreadsheet-ConditionalFormatPreviewList">
|
|
3595
|
+
<div class="o-cf-preview-list h-100 overflow-auto" t-ref="cfList">
|
|
3596
|
+
<t t-foreach="props.conditionalFormats" t-as="cf" t-key="cf.id">
|
|
3597
|
+
<div
|
|
3598
|
+
class="o-cf-preview-container d-flex position-relative"
|
|
3599
|
+
t-att-style="getPreviewDivStyle(cf)">
|
|
3600
|
+
<ConditionalFormatPreview
|
|
3601
|
+
conditionalFormat="cf"
|
|
3602
|
+
class="dragAndDrop.draggedItemId === cf.id ? 'o-cf-dragging' : ''"
|
|
3603
|
+
onMouseDown="(ev) => this.onPreviewMouseDown(cf, ev)"
|
|
3604
|
+
onPreviewClick="() => props.onPreviewClick(cf)"
|
|
3605
|
+
/>
|
|
3606
|
+
</div>
|
|
3607
|
+
</t>
|
|
3608
|
+
<div
|
|
3609
|
+
class="btn btn-link o-sidePanel-btn-link o-cf-add float-end"
|
|
3610
|
+
t-on-click.prevent.stop="props.onAddConditionalFormat">
|
|
3611
|
+
+ Add another rule
|
|
3612
|
+
</div>
|
|
3613
|
+
</div>
|
|
3614
|
+
</t>
|
|
3615
|
+
|
|
3589
3616
|
<t t-name="o-spreadsheet-ConditionalFormattingPanel">
|
|
3590
3617
|
<div class="o-cf h-100">
|
|
3591
3618
|
<t t-if="state.mode === 'list'">
|
|
@@ -3788,7 +3815,7 @@ https://fontawesome.com/license -->
|
|
|
3788
3815
|
|
|
3789
3816
|
<t t-name="o-spreadsheet-DataValidationValueInRangeCriterionForm">
|
|
3790
3817
|
<SelectionInput
|
|
3791
|
-
ranges="
|
|
3818
|
+
ranges="[props.criterion.values[0] || '']"
|
|
3792
3819
|
onSelectionChanged="(ranges) => this.onRangeChanged(ranges[0])"
|
|
3793
3820
|
required="true"
|
|
3794
3821
|
hasSingleRange="true"
|
|
@@ -3808,7 +3835,7 @@ https://fontawesome.com/license -->
|
|
|
3808
3835
|
<Section class="'o-dv-range'">
|
|
3809
3836
|
<t t-set-slot="title">Apply to range</t>
|
|
3810
3837
|
<SelectionInput
|
|
3811
|
-
ranges="
|
|
3838
|
+
ranges="state.rule.ranges"
|
|
3812
3839
|
onSelectionChanged="(ranges) => this.onRangesChanged(ranges)"
|
|
3813
3840
|
required="true"
|
|
3814
3841
|
/>
|
|
@@ -3852,7 +3879,7 @@ https://fontawesome.com/license -->
|
|
|
3852
3879
|
</t>
|
|
3853
3880
|
|
|
3854
3881
|
<t t-name="o-spreadsheet-DataValidationPreview">
|
|
3855
|
-
<div class="o-dv-preview p-3" t-on-click="props.onClick">
|
|
3882
|
+
<div class="o-dv-preview p-3" t-on-click="props.onClick" t-ref="dvPreview">
|
|
3856
3883
|
<div class="d-flex justify-content-between">
|
|
3857
3884
|
<div class="o-dv-container d-flex flex-column">
|
|
3858
3885
|
<div class="o-dv-preview-description fw-bold text-truncate" t-esc="descriptionString"/>
|
|
@@ -3876,16 +3903,18 @@ https://fontawesome.com/license -->
|
|
|
3876
3903
|
type="text"
|
|
3877
3904
|
t-ref="searchInput"
|
|
3878
3905
|
class="o-input o-input-with-count"
|
|
3879
|
-
t-on-input="
|
|
3906
|
+
t-on-input="onSearchInput"
|
|
3880
3907
|
t-on-focus="onFocusSearch"
|
|
3881
3908
|
t-on-keydown="onKeydownSearch"
|
|
3882
3909
|
/>
|
|
3883
3910
|
<div class="o-input-count" t-if="hasSearchResult">
|
|
3884
|
-
<t t-esc="
|
|
3911
|
+
<t t-esc="store.selectedMatchIndex+1"/>
|
|
3885
3912
|
/
|
|
3886
|
-
<t t-esc="
|
|
3913
|
+
<t t-esc="store.searchMatches.length"/>
|
|
3914
|
+
</div>
|
|
3915
|
+
<div t-elif="!store.pendingSearch and store.toSearch !== ''" class="o-input-count">
|
|
3916
|
+
0 / 0
|
|
3887
3917
|
</div>
|
|
3888
|
-
<div t-elif="!pendingSearch and toSearch !== ''" class="o-input-count">0 / 0</div>
|
|
3889
3918
|
</div>
|
|
3890
3919
|
<select
|
|
3891
3920
|
class="o-input o-type-selector o-type-range-selector mt-3 mb-3"
|
|
@@ -3896,7 +3925,7 @@ https://fontawesome.com/license -->
|
|
|
3896
3925
|
</select>
|
|
3897
3926
|
<div t-if="searchOptions.searchScope === 'specificRange'">
|
|
3898
3927
|
<SelectionInput
|
|
3899
|
-
ranges="
|
|
3928
|
+
ranges="[this.dataRange]"
|
|
3900
3929
|
onSelectionChanged="(ranges) => this.onSearchRangeChanged(ranges)"
|
|
3901
3930
|
onSelectionConfirmed.bind="updateDataRange"
|
|
3902
3931
|
hasSingleRange="true"
|
|
@@ -3924,7 +3953,7 @@ https://fontawesome.com/license -->
|
|
|
3924
3953
|
onChange.bind="searchFormulas"
|
|
3925
3954
|
/>
|
|
3926
3955
|
</div>
|
|
3927
|
-
<div class="o-matches-count mt-4" t-if="toSearch !== ''">
|
|
3956
|
+
<div class="o-matches-count mt-4" t-if="store.toSearch !== ''">
|
|
3928
3957
|
<div t-if="searchOptions.searchScope === 'specificRange' and dataRange != ''">
|
|
3929
3958
|
<t t-esc="specificRangeMatchesCount"/>
|
|
3930
3959
|
</div>
|
|
@@ -3939,11 +3968,14 @@ https://fontawesome.com/license -->
|
|
|
3939
3968
|
<div class="o-sidePanelButtons">
|
|
3940
3969
|
<button
|
|
3941
3970
|
t-att-disabled="!hasSearchResult"
|
|
3942
|
-
t-on-click="
|
|
3971
|
+
t-on-click="() => store.selectPreviousMatch()"
|
|
3943
3972
|
class="o-button">
|
|
3944
3973
|
Previous
|
|
3945
3974
|
</button>
|
|
3946
|
-
<button
|
|
3975
|
+
<button
|
|
3976
|
+
t-att-disabled="!hasSearchResult"
|
|
3977
|
+
t-on-click="() => store.selectNextMatch()"
|
|
3978
|
+
class="o-button">
|
|
3947
3979
|
Next
|
|
3948
3980
|
</button>
|
|
3949
3981
|
</div>
|
|
@@ -3953,22 +3985,22 @@ https://fontawesome.com/license -->
|
|
|
3953
3985
|
<input
|
|
3954
3986
|
type="text"
|
|
3955
3987
|
class="o-input o-input-without-count"
|
|
3956
|
-
t-ref="replaceInput"
|
|
3957
3988
|
t-on-keydown="onKeydownReplace"
|
|
3989
|
+
t-model="store.toReplace"
|
|
3958
3990
|
/>
|
|
3959
3991
|
</div>
|
|
3960
3992
|
</Section>
|
|
3961
3993
|
|
|
3962
3994
|
<div class="o-sidePanelButtons" t-if="!env.model.getters.isReadonly()">
|
|
3963
3995
|
<button
|
|
3964
|
-
t-att-disabled="
|
|
3965
|
-
t-on-click="replace"
|
|
3996
|
+
t-att-disabled="store.selectedMatchIndex === null"
|
|
3997
|
+
t-on-click="() => store.replace()"
|
|
3966
3998
|
class="o-button">
|
|
3967
3999
|
Replace
|
|
3968
4000
|
</button>
|
|
3969
4001
|
<button
|
|
3970
|
-
t-att-disabled="
|
|
3971
|
-
t-on-click="replaceAll"
|
|
4002
|
+
t-att-disabled="store.selectedMatchIndex === null"
|
|
4003
|
+
t-on-click="() => store.replaceAll()"
|
|
3972
4004
|
class="o-button">
|
|
3973
4005
|
Replace all
|
|
3974
4006
|
</button>
|
|
@@ -4168,12 +4200,7 @@ https://fontawesome.com/license -->
|
|
|
4168
4200
|
<SpreadsheetDashboard/>
|
|
4169
4201
|
</t>
|
|
4170
4202
|
<t t-else="">
|
|
4171
|
-
<TopBar
|
|
4172
|
-
onClick="() => this.focusGrid()"
|
|
4173
|
-
onComposerContentFocused="(selection) => this.onTopBarComposerFocused(selection)"
|
|
4174
|
-
focusComposer="focusTopBarComposer"
|
|
4175
|
-
dropdownMaxHeight="gridHeight"
|
|
4176
|
-
/>
|
|
4203
|
+
<TopBar onClick="() => this.focusGrid()" dropdownMaxHeight="gridHeight"/>
|
|
4177
4204
|
<div
|
|
4178
4205
|
class="o-grid-container"
|
|
4179
4206
|
t-att-class="{'o-two-columns': !sidePanel.isOpen}"
|
|
@@ -4189,10 +4216,7 @@ https://fontawesome.com/license -->
|
|
|
4189
4216
|
<div class="o-group-grid overflow-hidden">
|
|
4190
4217
|
<Grid
|
|
4191
4218
|
sidePanelIsOpen="sidePanel.isOpen"
|
|
4192
|
-
focusComposer="focusGridComposer"
|
|
4193
4219
|
exposeFocus="(focus) => this._focusGrid = focus"
|
|
4194
|
-
onComposerContentFocused="() => this.onGridComposerContentFocused()"
|
|
4195
|
-
onGridComposerCellFocused="(content, selection) => this.onGridComposerCellFocused(content, selection)"
|
|
4196
4220
|
/>
|
|
4197
4221
|
</div>
|
|
4198
4222
|
</div>
|
|
@@ -4375,10 +4399,7 @@ https://fontawesome.com/license -->
|
|
|
4375
4399
|
<ActionButton action="VIEW.createRemoveFilter" class="'o-hoverable-button'"/>
|
|
4376
4400
|
</div>
|
|
4377
4401
|
</div>
|
|
4378
|
-
<TopBarComposer
|
|
4379
|
-
focus="props.focusComposer"
|
|
4380
|
-
onComposerContentFocused="props.onComposerContentFocused"
|
|
4381
|
-
/>
|
|
4402
|
+
<TopBarComposer/>
|
|
4382
4403
|
</div>
|
|
4383
4404
|
</div>
|
|
4384
4405
|
<Menu
|