@odoo/o-spreadsheet 19.1.0-alpha.8 → 19.1.1
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-engine.d.ts +147 -55
- package/dist/o-spreadsheet-engine.esm.js +11583 -10642
- package/dist/o-spreadsheet-engine.iife.js +11583 -10641
- package/dist/o-spreadsheet-engine.min.iife.js +313 -313
- package/dist/o-spreadsheet.d.ts +869 -944
- package/dist/o_spreadsheet.css +3293 -0
- package/dist/o_spreadsheet.esm.js +48683 -38639
- package/dist/o_spreadsheet.iife.js +97911 -87867
- package/dist/o_spreadsheet.min.iife.js +335 -317
- package/dist/o_spreadsheet.xml +958 -544
- package/package.json +14 -14
- package/readme.md +1 -0
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 19.1.
|
|
5
|
-
@date 2025-
|
|
6
|
-
@hash
|
|
4
|
+
@version 19.1.1
|
|
5
|
+
@date 2025-12-26T10:27:38.116Z
|
|
6
|
+
@hash e6313bd
|
|
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 d-flex flex-column user-select-none"
|
|
32
|
+
class="o-spreadsheet-topbar d-flex flex-column user-select-none bg-white"
|
|
33
33
|
t-on-click="props.onClick">
|
|
34
|
-
<div t-if="!env.isSmall" class="o-topbar-top d-flex justify-content-between">
|
|
34
|
+
<div t-if="!env.isSmall" class="o-topbar-top d-flex justify-content-between border-bottom">
|
|
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">
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
t-key="toolbarAction_index">
|
|
83
83
|
<t t-component="toolbarAction.component" t-props="toolbarAction.props"/>
|
|
84
84
|
</t>
|
|
85
|
-
<div t-if="showDivider(category_index)" class="o-topbar-divider"/>
|
|
85
|
+
<div t-if="showDivider(category_index)" class="o-topbar-divider border-end"/>
|
|
86
86
|
</div>
|
|
87
87
|
<div
|
|
88
88
|
t-ref="moreToolsContainer"
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
</div>
|
|
101
101
|
<div
|
|
102
102
|
t-if="this.fingerprints.isEnabled"
|
|
103
|
-
class="irregularity-map d-flex align-items-center justify-content-between">
|
|
103
|
+
class="topbar-banner irregularity-map d-flex align-items-center justify-content-between border-top">
|
|
104
104
|
<div
|
|
105
105
|
t-on-click="() => this.fingerprints.disable()"
|
|
106
106
|
role="button"
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
popoverPositioning="'bottom-left'"
|
|
133
133
|
/>
|
|
134
134
|
<Popover t-if="state.toolsPopoverState.isOpen" t-props="toolsPopoverProps">
|
|
135
|
-
<div class="d-flex px-2 py-1 flex-wrap align-items-center
|
|
135
|
+
<div class="d-flex px-2 py-1 flex-wrap align-items-center bg-white">
|
|
136
136
|
<t
|
|
137
137
|
t-foreach="state.invisibleToolsCategories"
|
|
138
138
|
t-as="category"
|
|
@@ -146,13 +146,28 @@
|
|
|
146
146
|
</t>
|
|
147
147
|
<div
|
|
148
148
|
t-if="category_index < state.invisibleToolsCategories.length-1"
|
|
149
|
-
class="o-topbar-divider"
|
|
149
|
+
class="o-topbar-divider border-end"
|
|
150
150
|
/>
|
|
151
151
|
</t>
|
|
152
152
|
</div>
|
|
153
153
|
</Popover>
|
|
154
154
|
</t>
|
|
155
155
|
|
|
156
|
+
<div t-name="o-spreadsheet-TopBarZoom" t-ref="buttonRef" t-on-click.stop="">
|
|
157
|
+
<NumberEditor
|
|
158
|
+
currentValue="currentFontSize"
|
|
159
|
+
onValueChange.bind="this.setZoom"
|
|
160
|
+
class="props.class"
|
|
161
|
+
onToggle.bind="this.toggle"
|
|
162
|
+
onFocusInput.bind="this.onFocusInput"
|
|
163
|
+
valueIcon="'%'"
|
|
164
|
+
min="25"
|
|
165
|
+
max="300"
|
|
166
|
+
valueList="valueList"
|
|
167
|
+
title.translate="Zoom"
|
|
168
|
+
/>
|
|
169
|
+
</div>
|
|
170
|
+
|
|
156
171
|
<div t-name="o-spreadsheet-NumberFormatsTool" t-ref="buttonRef" t-on-click.stop="">
|
|
157
172
|
<ActionButton
|
|
158
173
|
action="formatNumberMenuItemSpec"
|
|
@@ -191,7 +206,7 @@
|
|
|
191
206
|
class="props.class"
|
|
192
207
|
/>
|
|
193
208
|
<Popover t-if="isActive" t-props="popoverProps">
|
|
194
|
-
<div class="o-dropdown-content p-1" t-if="isActive" t-on-click.stop="">
|
|
209
|
+
<div class="o-dropdown-content p-1 bg-white" t-if="isActive" t-on-click.stop="">
|
|
195
210
|
<div class="o-dropdown-line">
|
|
196
211
|
<t t-foreach="props.childActions" t-as="action" t-key="action_index">
|
|
197
212
|
<ActionButton action="action" class="props.childClass"/>
|
|
@@ -215,27 +230,33 @@
|
|
|
215
230
|
</div>
|
|
216
231
|
</t>
|
|
217
232
|
|
|
218
|
-
<
|
|
219
|
-
<
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
233
|
+
<t t-name="o-spreadsheet-TextInput">
|
|
234
|
+
<div class="position-relative">
|
|
235
|
+
<input
|
|
236
|
+
type="text"
|
|
237
|
+
t-ref="{{refName}}"
|
|
238
|
+
t-att-class="inputClass"
|
|
239
|
+
t-att-id="props.id"
|
|
240
|
+
t-att-placeholder="props.placeholder"
|
|
241
|
+
t-on-change="save"
|
|
242
|
+
t-on-blur="save"
|
|
243
|
+
t-on-pointerdown="onMouseDown"
|
|
244
|
+
t-on-pointerup="onMouseUp"
|
|
245
|
+
t-on-keydown="onKeyDown"
|
|
246
|
+
/>
|
|
247
|
+
<span
|
|
248
|
+
t-if="props.errorMessage"
|
|
249
|
+
class="os-input-error-icon text-danger position-absolute d-flex align-items-center"
|
|
250
|
+
t-att-title="props.errorMessage">
|
|
251
|
+
<t t-call="o-spreadsheet-Icon.ERROR"/>
|
|
252
|
+
</span>
|
|
253
|
+
</div>
|
|
254
|
+
</t>
|
|
234
255
|
|
|
235
256
|
<t t-name="o-spreadsheet-TableStylesPopover">
|
|
236
257
|
<Popover t-if="props.popoverProps" t-props="props.popoverProps">
|
|
237
258
|
<div
|
|
238
|
-
class="o-table-style-popover d-flex flex-column py-3"
|
|
259
|
+
class="o-table-style-popover d-flex flex-column py-3 bg-white"
|
|
239
260
|
t-ref="tableStyleList"
|
|
240
261
|
t-on-contextmenu.prevent="">
|
|
241
262
|
<div class="d-flex o-notebook ps-4 mb-3">
|
|
@@ -243,7 +264,7 @@
|
|
|
243
264
|
t-foreach="Object.keys(categories)"
|
|
244
265
|
t-as="category"
|
|
245
266
|
t-key="category"
|
|
246
|
-
class="o-notebook-tab d-flex align-items-center"
|
|
267
|
+
class="o-notebook-tab d-flex align-items-center border"
|
|
247
268
|
t-att-class="{ 'selected': state.selectedCategory === category }"
|
|
248
269
|
t-on-click="() => state.selectedCategory = category"
|
|
249
270
|
t-att-data-id="category"
|
|
@@ -284,7 +305,7 @@
|
|
|
284
305
|
<canvas t-ref="canvas" class="w-100 h-100"/>
|
|
285
306
|
</div>
|
|
286
307
|
<div
|
|
287
|
-
class="o-table-style-edit-button position-absolute d-none"
|
|
308
|
+
class="o-table-style-edit-button position-absolute d-none bg-white border"
|
|
288
309
|
t-if="isStyleEditable"
|
|
289
310
|
t-on-click="this.editTableStyle"
|
|
290
311
|
title="Edit custom table style">
|
|
@@ -300,7 +321,7 @@
|
|
|
300
321
|
</t>
|
|
301
322
|
|
|
302
323
|
<t t-name="o-spreadsheet-TableStylePicker">
|
|
303
|
-
<div class="o-table-style-picker d-flex flew-row justify-content-between ps-1">
|
|
324
|
+
<div class="o-table-style-picker d-flex flew-row justify-content-between ps-1 border rounded">
|
|
304
325
|
<div class="d-flex flex-row overflow-hidden ps-2">
|
|
305
326
|
<t t-foreach="getDisplayedTableStyles()" t-as="styleId" t-key="styleId">
|
|
306
327
|
<TableStylePreview
|
|
@@ -314,7 +335,7 @@
|
|
|
314
335
|
</t>
|
|
315
336
|
</div>
|
|
316
337
|
<div
|
|
317
|
-
class="o-table-style-picker-arrow d-flex align-items-center px-1"
|
|
338
|
+
class="o-table-style-picker-arrow d-flex align-items-center px-1 border-start"
|
|
318
339
|
t-on-click.stop="onArrowButtonClick">
|
|
319
340
|
<t t-call="o-spreadsheet-Icon.CARET_DOWN"/>
|
|
320
341
|
</div>
|
|
@@ -356,7 +377,7 @@
|
|
|
356
377
|
<t t-name="o-spreadsheet-Spreadsheet">
|
|
357
378
|
<div
|
|
358
379
|
class="o-spreadsheet h-100 w-100"
|
|
359
|
-
t-att-class="
|
|
380
|
+
t-att-class="getSpreadSheetClasses()"
|
|
360
381
|
t-ref="spreadsheet"
|
|
361
382
|
t-att-style="getStyle()">
|
|
362
383
|
<t t-if="env.isDashboard()">
|
|
@@ -373,10 +394,10 @@
|
|
|
373
394
|
t-att-style="gridContainerStyle"
|
|
374
395
|
t-on-click="this.focusGrid">
|
|
375
396
|
<div class="o-top-left"/>
|
|
376
|
-
<div class="o-column-groups">
|
|
397
|
+
<div class="o-column-groups o-zoomable">
|
|
377
398
|
<HeaderGroupContainer layers="colLayers" dimension="'COL'"/>
|
|
378
399
|
</div>
|
|
379
|
-
<div class="o-row-groups">
|
|
400
|
+
<div class="o-row-groups o-zoomable">
|
|
380
401
|
<HeaderGroupContainer layers="rowLayers" dimension="'ROW'"/>
|
|
381
402
|
</div>
|
|
382
403
|
<div class="o-group-grid overflow-hidden">
|
|
@@ -398,7 +419,7 @@
|
|
|
398
419
|
<RibbonMenu onClose="() => this.menuState.isOpen=false"/>
|
|
399
420
|
</t>
|
|
400
421
|
<t t-else="">
|
|
401
|
-
<div class="o-small-composer px-2 py-2 position-relative">
|
|
422
|
+
<div class="o-small-composer px-2 py-2 position-relative bg-white border">
|
|
402
423
|
<div class="w-100" t-ref="bottombarComposer">
|
|
403
424
|
<Composer t-props="composerProps"/>
|
|
404
425
|
<span
|
|
@@ -430,7 +451,7 @@
|
|
|
430
451
|
composerFocusableElement="true"
|
|
431
452
|
/>
|
|
432
453
|
</div>
|
|
433
|
-
<div class="d-flex flex-fill align-items-center bottom-bar-menu">
|
|
454
|
+
<div class="d-flex flex-fill align-items-center bottom-bar-menu border-top border-bottom">
|
|
434
455
|
<Ripple>
|
|
435
456
|
<div class="py-1 px-1 mx-2 ribbon-toggler" t-on-click="toggleRibbon">
|
|
436
457
|
<i class="o-icon fa fa-cog"/>
|
|
@@ -514,12 +535,12 @@
|
|
|
514
535
|
value="tableConfig.numberOfHeaders > 0"
|
|
515
536
|
onChange.bind="this.updateHasHeaders"
|
|
516
537
|
/>
|
|
517
|
-
<
|
|
538
|
+
<NumberInput
|
|
518
539
|
t-if="tableConfig.numberOfHeaders > 0"
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
540
|
+
value="tableConfig.numberOfHeaders"
|
|
541
|
+
class="'o-table-n-of-headers ms-2'"
|
|
542
|
+
min="0"
|
|
543
|
+
onChange.bind="onChangeNumberOfHeaders"
|
|
523
544
|
/>
|
|
524
545
|
</div>
|
|
525
546
|
<Checkbox
|
|
@@ -677,8 +698,9 @@
|
|
|
677
698
|
</t>
|
|
678
699
|
|
|
679
700
|
<t t-name="o-spreadsheet-SidePanelExtended">
|
|
680
|
-
<div class="o-sidePanel h-100">
|
|
681
|
-
<div
|
|
701
|
+
<div class="o-sidePanel h-100 bg-white border-top border-start">
|
|
702
|
+
<div
|
|
703
|
+
class="o-sidePanelHeader d-flex align-items-center justify-content-between border-bottom">
|
|
682
704
|
<div
|
|
683
705
|
t-if="props.onToggleCollapsePanel"
|
|
684
706
|
class="o-collapse-panel o-sidePanelAction rounded"
|
|
@@ -722,7 +744,9 @@
|
|
|
722
744
|
</t>
|
|
723
745
|
|
|
724
746
|
<t t-name="o-spreadsheet-SidePanelCollapsed">
|
|
725
|
-
<div
|
|
747
|
+
<div
|
|
748
|
+
class="o-sidePanel collapsed w-100 h-100 bg-white"
|
|
749
|
+
t-on-click="props.onToggleCollapsePanel">
|
|
726
750
|
<div class="d-flex flex-column align-items-center">
|
|
727
751
|
<div
|
|
728
752
|
t-if="props.onToggleCollapsePanel"
|
|
@@ -761,7 +785,7 @@
|
|
|
761
785
|
t-att-selected="currentLocale.code === locale.code"
|
|
762
786
|
/>
|
|
763
787
|
</select>
|
|
764
|
-
<div class="o-locale-preview mt-4 p-3 rounded">
|
|
788
|
+
<div class="o-locale-preview mt-4 p-3 rounded border">
|
|
765
789
|
<div>
|
|
766
790
|
<span class="o-fw-bold me-1">Number:</span>
|
|
767
791
|
<span t-esc="numberFormatPreview"/>
|
|
@@ -864,7 +888,12 @@
|
|
|
864
888
|
<CogWheelMenu items="cogWheelMenuItems"/>
|
|
865
889
|
</div>
|
|
866
890
|
</t>
|
|
867
|
-
<TextInput
|
|
891
|
+
<TextInput
|
|
892
|
+
class="'os-pivot-title'"
|
|
893
|
+
value="name"
|
|
894
|
+
onChange.bind="onNameChanged"
|
|
895
|
+
selectContentOnFocus="true"
|
|
896
|
+
/>
|
|
868
897
|
</Section>
|
|
869
898
|
</t>
|
|
870
899
|
|
|
@@ -954,24 +983,22 @@
|
|
|
954
983
|
<div class="row mb-2 align-items-center">
|
|
955
984
|
<div class="col-6">Max rows:</div>
|
|
956
985
|
<div class="col-6 d-flex align-items-center">
|
|
957
|
-
<
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
t-on-change="(ev) => this.updatePivotStyleProperty('numberOfRows', ev.target.valueAsNumber)"
|
|
986
|
+
<NumberInput
|
|
987
|
+
value="pivotStyle.numberOfRows ?? ''"
|
|
988
|
+
class="'o-pivot-n-of-rows'"
|
|
989
|
+
placeholder.translate="e.g. 10"
|
|
990
|
+
onChange="(value) => this.updatePivotStyleNumberProperty(value, 'numberOfRows')"
|
|
963
991
|
/>
|
|
964
992
|
</div>
|
|
965
993
|
</div>
|
|
966
994
|
<div class="row mb-2 align-items-center">
|
|
967
995
|
<div class="col-6">Max columns:</div>
|
|
968
996
|
<div class="col-6 d-flex align-items-center">
|
|
969
|
-
<
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
t-on-change="(ev) => this.updatePivotStyleProperty('numberOfColumns', ev.target.valueAsNumber)"
|
|
997
|
+
<NumberInput
|
|
998
|
+
value="pivotStyle.numberOfColumns ?? ''"
|
|
999
|
+
class="'o-pivot-n-of-columns'"
|
|
1000
|
+
placeholder.translate="e.g. 5"
|
|
1001
|
+
onChange="(value) => this.updatePivotStyleNumberProperty(value, 'numberOfColumns')"
|
|
975
1002
|
/>
|
|
976
1003
|
</div>
|
|
977
1004
|
</div>
|
|
@@ -1024,13 +1051,13 @@
|
|
|
1024
1051
|
</t>
|
|
1025
1052
|
</select>
|
|
1026
1053
|
<div
|
|
1027
|
-
class="o-pivot-measure-display-description mt-3 ps-3"
|
|
1054
|
+
class="o-pivot-measure-display-description mt-3 ps-3 border-start"
|
|
1028
1055
|
t-esc="measureDisplayDescription[store.measureDisplay.type]"
|
|
1029
1056
|
/>
|
|
1030
1057
|
</Section>
|
|
1031
1058
|
|
|
1032
1059
|
<Section t-if="store.doesDisplayNeedsField" title.translate="Base field:">
|
|
1033
|
-
<div class="o-pivot-measure-display-field w-100 py-1 px-3">
|
|
1060
|
+
<div class="o-pivot-measure-display-field w-100 py-1 px-3 border">
|
|
1034
1061
|
<t t-if="store.fields.length">
|
|
1035
1062
|
<RadioSelection
|
|
1036
1063
|
choices="fieldChoices"
|
|
@@ -1048,7 +1075,7 @@
|
|
|
1048
1075
|
|
|
1049
1076
|
<t t-set="values" t-value="store.values"/>
|
|
1050
1077
|
<Section t-if="store.doesDisplayNeedsValue and values.length" title.translate="Base item:">
|
|
1051
|
-
<div class="o-pivot-measure-display-value w-100 py-1 px-3">
|
|
1078
|
+
<div class="o-pivot-measure-display-value w-100 py-1 px-3 border">
|
|
1052
1079
|
<RadioSelection
|
|
1053
1080
|
choices="values"
|
|
1054
1081
|
selectedValue="store.measureDisplay.value"
|
|
@@ -1191,7 +1218,7 @@
|
|
|
1191
1218
|
<div t-esc="sortDescription" class="pb-2"/>
|
|
1192
1219
|
<div class="d-flex flex-column gap-2">
|
|
1193
1220
|
<t t-foreach="sortValuesAndFields" t-as="valueAndField" t-key="valueAndField_index">
|
|
1194
|
-
<div class="o-sort-card d-flex gap-1 px-2">
|
|
1221
|
+
<div class="o-sort-card d-flex gap-1 px-2 border">
|
|
1195
1222
|
<t t-if="valueAndField.field">
|
|
1196
1223
|
<span class="fw-bolder" t-esc="valueAndField.field"/>
|
|
1197
1224
|
=
|
|
@@ -1303,7 +1330,7 @@
|
|
|
1303
1330
|
|
|
1304
1331
|
<t t-name="o-spreadsheet-PivotDimension">
|
|
1305
1332
|
<div
|
|
1306
|
-
class="py-1 px-2 d-flex flex-column shadow-sm pivot-dimension"
|
|
1333
|
+
class="py-1 px-2 d-flex flex-column shadow-sm pivot-dimension border rounded"
|
|
1307
1334
|
t-att-class="{'pivot-dimension-invalid': !props.dimension.isValid}">
|
|
1308
1335
|
<div class="d-flex flex-row justify-content-between align-items-center">
|
|
1309
1336
|
<div class="d-flex align-items-center overflow-hidden text-nowrap">
|
|
@@ -1315,6 +1342,7 @@
|
|
|
1315
1342
|
value="props.dimension.displayName"
|
|
1316
1343
|
onChange.bind="updateName"
|
|
1317
1344
|
class="'o-fw-bold'"
|
|
1345
|
+
selectContentOnFocus="true"
|
|
1318
1346
|
/>
|
|
1319
1347
|
<span t-else="1" class="o-fw-bold" t-esc="props.dimension.displayName"/>
|
|
1320
1348
|
</div>
|
|
@@ -1335,7 +1363,7 @@
|
|
|
1335
1363
|
<button class="add-dimension o-button" t-on-click="togglePopover" t-ref="button">Add</button>
|
|
1336
1364
|
<Popover t-if="popover.isOpen" t-props="popoverProps">
|
|
1337
1365
|
<div
|
|
1338
|
-
class="p-2 bg-white border-bottom d-flex sticky-top align-items-baseline pivot-dimension-search">
|
|
1366
|
+
class="p-2 bg-white border-bottom d-flex sticky-top align-items-baseline pivot-dimension-search bg-white">
|
|
1339
1367
|
<i class="pe-1 pivot-dimension-search-field-icon text-muted">
|
|
1340
1368
|
<t t-call="o-spreadsheet-Icon.SEARCH"/>
|
|
1341
1369
|
</i>
|
|
@@ -1399,6 +1427,7 @@
|
|
|
1399
1427
|
<TextInput
|
|
1400
1428
|
value="group.name"
|
|
1401
1429
|
onChange="(newName) => this.onRenameGroup(group_index, newName)"
|
|
1430
|
+
selectContentOnFocus="true"
|
|
1402
1431
|
/>
|
|
1403
1432
|
<i
|
|
1404
1433
|
class="o-button-icon ps-3 fa fa-trash"
|
|
@@ -1419,21 +1448,97 @@
|
|
|
1419
1448
|
|
|
1420
1449
|
<t t-name="o-spreadsheet-MoreFormatsPanel">
|
|
1421
1450
|
<div class="o-more-formats-panel">
|
|
1422
|
-
<
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
<
|
|
1433
|
-
|
|
1451
|
+
<Section title.translate="Format type">
|
|
1452
|
+
<BadgeSelection
|
|
1453
|
+
choices="store.categories"
|
|
1454
|
+
onChange.bind="(category) => store.changeCategory(category)"
|
|
1455
|
+
selectedValue="store.category"
|
|
1456
|
+
/>
|
|
1457
|
+
</Section>
|
|
1458
|
+
<t t-if="store.category === 'currency'" t-call="o-spreadsheet-CustomCurrencySection"/>
|
|
1459
|
+
<t t-set="proposals" t-value="store.formatProposals"/>
|
|
1460
|
+
<Section title.translate="Type" t-if="proposals.length">
|
|
1461
|
+
<div class="o-format-proposals overflow-auto border">
|
|
1462
|
+
<div
|
|
1463
|
+
t-foreach="proposals"
|
|
1464
|
+
t-as="proposal"
|
|
1465
|
+
t-key="proposal.format"
|
|
1466
|
+
t-att-data-name="proposal.format"
|
|
1467
|
+
t-on-click="() => this.store.updateFormat(proposal.format)"
|
|
1468
|
+
class="w-100 d-flex align-items-center format-preview px-2 py-1"
|
|
1469
|
+
t-att-class="{'active': (proposal.format || '') === (store.currentFormat || '')}">
|
|
1470
|
+
<span t-out="proposal.label"/>
|
|
1471
|
+
</div>
|
|
1472
|
+
</div>
|
|
1473
|
+
</Section>
|
|
1474
|
+
|
|
1475
|
+
<Section title.translate="Format" class="'o-custom-format-section'">
|
|
1476
|
+
<TextInput
|
|
1477
|
+
value="store.currentFormat || ''"
|
|
1478
|
+
onChange="(format) => this.store.updateFormat(format)"
|
|
1479
|
+
placeholder.translate="Format code"
|
|
1480
|
+
alwaysShowBorder="true"
|
|
1481
|
+
errorMessage="store.invalidFormatMessage"
|
|
1482
|
+
/>
|
|
1483
|
+
<t t-set="examples" t-value="store.formatExamples"/>
|
|
1484
|
+
<div class="o-format-examples mt-4 p-2 rounded border" t-if="examples.length">
|
|
1485
|
+
<table class="w-100">
|
|
1486
|
+
<t t-foreach="examples" t-as="example" t-key="example_index">
|
|
1487
|
+
<tr>
|
|
1488
|
+
<td class="w-25 pe-3 o-fw-bold" t-esc="example.label"/>
|
|
1489
|
+
<td class="w-75 text-truncate" t-esc="example.value"/>
|
|
1490
|
+
</tr>
|
|
1491
|
+
</t>
|
|
1492
|
+
</table>
|
|
1493
|
+
</div>
|
|
1494
|
+
</Section>
|
|
1434
1495
|
</div>
|
|
1435
1496
|
</t>
|
|
1436
1497
|
|
|
1498
|
+
<t t-name="o-spreadsheet-CustomCurrencySection">
|
|
1499
|
+
<t t-set="availableCurrencies" t-value="store.availableCurrencies"/>
|
|
1500
|
+
<Section t-if="availableCurrencies.length > 1" title.translate="Currency">
|
|
1501
|
+
<select
|
|
1502
|
+
class="o-input o-available-currencies"
|
|
1503
|
+
t-on-change="(ev) => this.updateSelectCurrency(ev)">
|
|
1504
|
+
<t t-foreach="availableCurrencies" t-as="currency" t-key="currency_index">
|
|
1505
|
+
<option
|
|
1506
|
+
t-att-value="currency_index"
|
|
1507
|
+
t-esc="currencyDisplayName(currency)"
|
|
1508
|
+
t-att-selected="currency_index === store.selectedCurrencyIndex"
|
|
1509
|
+
/>
|
|
1510
|
+
</t>
|
|
1511
|
+
</select>
|
|
1512
|
+
</Section>
|
|
1513
|
+
<Section>
|
|
1514
|
+
<div class="o-subsection-left">
|
|
1515
|
+
<div class="o-section-title">Code</div>
|
|
1516
|
+
<TextInput
|
|
1517
|
+
value="store.currencyCode"
|
|
1518
|
+
placeholder.translate="code"
|
|
1519
|
+
onChange="(code) => this.store.changeCurrencyCode(code)"
|
|
1520
|
+
alwaysShowBorder="true"
|
|
1521
|
+
/>
|
|
1522
|
+
</div>
|
|
1523
|
+
<div class="o-subsection-right">
|
|
1524
|
+
<div class="o-section-title">Symbol</div>
|
|
1525
|
+
<TextInput
|
|
1526
|
+
value="store.currencySymbol"
|
|
1527
|
+
placeholder.translate="symbol"
|
|
1528
|
+
onChange="(symbol) => this.store.changeCurrencySymbol(symbol)"
|
|
1529
|
+
alwaysShowBorder="true"
|
|
1530
|
+
/>
|
|
1531
|
+
</div>
|
|
1532
|
+
<Checkbox
|
|
1533
|
+
name="'accountingFormat'"
|
|
1534
|
+
className="'pt-2'"
|
|
1535
|
+
label.translate="Accounting format"
|
|
1536
|
+
value="store.isAccountingFormat"
|
|
1537
|
+
onChange="() => store.toggleAccountingFormat()"
|
|
1538
|
+
/>
|
|
1539
|
+
</Section>
|
|
1540
|
+
</t>
|
|
1541
|
+
|
|
1437
1542
|
<t t-name="o-spreadsheet-FindAndReplacePanel">
|
|
1438
1543
|
<div class="o-find-and-replace">
|
|
1439
1544
|
<Section title.translate="Search">
|
|
@@ -1563,7 +1668,7 @@
|
|
|
1563
1668
|
</t>
|
|
1564
1669
|
|
|
1565
1670
|
<t t-name="o-spreadsheet-DataValidationPreview">
|
|
1566
|
-
<div class="o-dv-preview p-3" t-on-click="props.onClick" t-ref="dvPreview">
|
|
1671
|
+
<div class="o-dv-preview p-3 border-bottom" t-on-click="props.onClick" t-ref="dvPreview">
|
|
1567
1672
|
<div class="d-flex justify-content-between">
|
|
1568
1673
|
<div class="o-dv-container d-flex flex-column">
|
|
1569
1674
|
<div class="o-dv-preview-description o-fw-bold text-truncate" t-esc="descriptionString"/>
|
|
@@ -1602,6 +1707,7 @@
|
|
|
1602
1707
|
t-key="state.rule.criterion.type"
|
|
1603
1708
|
criterion="state.rule.criterion"
|
|
1604
1709
|
onCriterionChanged.bind="onCriterionChanged"
|
|
1710
|
+
autofocus="state.isTypeUpdated"
|
|
1605
1711
|
/>
|
|
1606
1712
|
</div>
|
|
1607
1713
|
</Section>
|
|
@@ -1625,93 +1731,13 @@
|
|
|
1625
1731
|
</div>
|
|
1626
1732
|
</t>
|
|
1627
1733
|
|
|
1628
|
-
<t t-name="o-spreadsheet-CustomCurrencyPanel">
|
|
1629
|
-
<div class="o-custom-currency">
|
|
1630
|
-
<Section t-if="availableCurrencies.length > 1" title.translate="Currency">
|
|
1631
|
-
<select
|
|
1632
|
-
class="o-input o-available-currencies"
|
|
1633
|
-
t-on-change="(ev) => this.updateSelectCurrency(ev)">
|
|
1634
|
-
<t t-foreach="availableCurrencies" t-as="currency" t-key="currency_index">
|
|
1635
|
-
<option
|
|
1636
|
-
t-att-value="currency_index"
|
|
1637
|
-
t-esc="currencyDisplayName(currency)"
|
|
1638
|
-
t-att-selected="currency_index === state.selectedCurrencyIndex"
|
|
1639
|
-
/>
|
|
1640
|
-
</t>
|
|
1641
|
-
</select>
|
|
1642
|
-
</Section>
|
|
1643
|
-
<Section>
|
|
1644
|
-
<div class="o-subsection-left">
|
|
1645
|
-
<div class="o-section-title">Code</div>
|
|
1646
|
-
<input
|
|
1647
|
-
type="text"
|
|
1648
|
-
class="o-input"
|
|
1649
|
-
t-model="state.currencyCode"
|
|
1650
|
-
placeholder="code"
|
|
1651
|
-
t-on-input="(ev) => this.updateCode(ev)"
|
|
1652
|
-
/>
|
|
1653
|
-
</div>
|
|
1654
|
-
<div class="o-subsection-right">
|
|
1655
|
-
<div class="o-section-title">Symbol</div>
|
|
1656
|
-
<input
|
|
1657
|
-
type="text"
|
|
1658
|
-
class="o-input"
|
|
1659
|
-
placeholder="symbol"
|
|
1660
|
-
t-model="state.currencySymbol"
|
|
1661
|
-
t-on-input="(ev) => this.updateSymbol(ev)"
|
|
1662
|
-
/>
|
|
1663
|
-
</div>
|
|
1664
|
-
</Section>
|
|
1665
|
-
<Section title.translate="Format">
|
|
1666
|
-
<select
|
|
1667
|
-
class="o-input o-format-proposals mb-1"
|
|
1668
|
-
t-on-change="(ev) => this.updateSelectFormat(ev)"
|
|
1669
|
-
t-att-disabled="!formatProposals.length">
|
|
1670
|
-
<t t-foreach="formatProposals" t-as="proposal" t-key="proposal_index">
|
|
1671
|
-
<option
|
|
1672
|
-
t-att-value="proposal_index"
|
|
1673
|
-
t-esc="proposal.example"
|
|
1674
|
-
t-att-selected="proposal_index === state.selectedFormatIndex"
|
|
1675
|
-
/>
|
|
1676
|
-
</t>
|
|
1677
|
-
</select>
|
|
1678
|
-
<t t-set="accounting_format_label">Accounting format</t>
|
|
1679
|
-
<Checkbox
|
|
1680
|
-
name="'accountingFormat'"
|
|
1681
|
-
label="accounting_format_label"
|
|
1682
|
-
value="state.isAccountingFormat"
|
|
1683
|
-
onChange.bind="toggleAccountingFormat"
|
|
1684
|
-
/>
|
|
1685
|
-
<div class="o-format-examples mt-4" t-if="selectedFormat">
|
|
1686
|
-
<table class="w-100">
|
|
1687
|
-
<t t-foreach="getFormatExamples()" t-as="example" t-key="example_index">
|
|
1688
|
-
<tr>
|
|
1689
|
-
<td class="w-25 pe-3 o-fw-bold" t-esc="example.label"/>
|
|
1690
|
-
<td class="w-75 text-truncate" t-esc="example.value"/>
|
|
1691
|
-
</tr>
|
|
1692
|
-
</t>
|
|
1693
|
-
</table>
|
|
1694
|
-
</div>
|
|
1695
|
-
</Section>
|
|
1696
|
-
<Section>
|
|
1697
|
-
<div class="o-sidePanelButtons">
|
|
1698
|
-
<button
|
|
1699
|
-
class="o-button primary"
|
|
1700
|
-
t-on-click="() => this.apply()"
|
|
1701
|
-
t-att-disabled="!formatProposals.length || isSameFormat">
|
|
1702
|
-
Apply
|
|
1703
|
-
</button>
|
|
1704
|
-
</div>
|
|
1705
|
-
</Section>
|
|
1706
|
-
</div>
|
|
1707
|
-
</t>
|
|
1708
|
-
|
|
1709
1734
|
<t t-name="o-spreadsheet-ValueInRangeCriterionForm">
|
|
1710
1735
|
<SelectionInput
|
|
1711
1736
|
ranges="[props.criterion.values[0] || '']"
|
|
1712
1737
|
onSelectionChanged="(ranges) => this.onRangeChanged(ranges[0])"
|
|
1713
1738
|
required="true"
|
|
1714
1739
|
hasSingleRange="true"
|
|
1740
|
+
autofocus="props.autofocus"
|
|
1715
1741
|
/>
|
|
1716
1742
|
<t t-foreach="values" t-as="value" t-key="value_index">
|
|
1717
1743
|
<div class="o-dv-list-values p-1 d-flex align-items-center">
|
|
@@ -1781,6 +1807,7 @@
|
|
|
1781
1807
|
onValueChanged.bind="onValueChanged"
|
|
1782
1808
|
criterionType="props.criterion.type"
|
|
1783
1809
|
disableFormulas="props.disableFormulas"
|
|
1810
|
+
focused="props.autofocus"
|
|
1784
1811
|
/>
|
|
1785
1812
|
</t>
|
|
1786
1813
|
|
|
@@ -1790,6 +1817,7 @@
|
|
|
1790
1817
|
onValueChanged.bind="onFirstValueChanged"
|
|
1791
1818
|
criterionType="props.criterion.type"
|
|
1792
1819
|
disableFormulas="props.disableFormulas"
|
|
1820
|
+
focused="props.autofocus"
|
|
1793
1821
|
/>
|
|
1794
1822
|
<CriterionInput
|
|
1795
1823
|
value="props.criterion.values[1]"
|
|
@@ -1807,16 +1835,17 @@
|
|
|
1807
1835
|
t-key="dateValue.value"
|
|
1808
1836
|
t-att-value="dateValue.value"
|
|
1809
1837
|
t-esc="dateValue.title"
|
|
1810
|
-
t-att-selected="dateValue.value ===
|
|
1838
|
+
t-att-selected="dateValue.value === currentDateValue"
|
|
1811
1839
|
/>
|
|
1812
1840
|
</select>
|
|
1813
1841
|
|
|
1814
1842
|
<CriterionInput
|
|
1815
|
-
t-if="
|
|
1843
|
+
t-if="currentDateValue === 'exactDate'"
|
|
1816
1844
|
value="props.criterion.values[0]"
|
|
1817
1845
|
onValueChanged.bind="onValueChanged"
|
|
1818
1846
|
criterionType="props.criterion.type"
|
|
1819
1847
|
disableFormulas="props.disableFormulas"
|
|
1848
|
+
focused="props.autofocus"
|
|
1820
1849
|
/>
|
|
1821
1850
|
</t>
|
|
1822
1851
|
|
|
@@ -1895,47 +1924,45 @@
|
|
|
1895
1924
|
<t t-name="o-spreadsheet-ConditionalFormatPreview">
|
|
1896
1925
|
<t t-set="cf" t-value="props.conditionalFormat"/>
|
|
1897
1926
|
<div
|
|
1898
|
-
class="o-cf-preview w-100"
|
|
1927
|
+
class="o-cf-preview w-100 d-flex align-items-center border-bottom"
|
|
1899
1928
|
t-ref="cfPreview"
|
|
1900
1929
|
t-att-class="props.class"
|
|
1901
1930
|
t-att-data-id="cf.id"
|
|
1902
1931
|
t-on-click="props.onPreviewClick"
|
|
1903
1932
|
t-on-pointerdown="(ev) => this.onMouseDown(ev)">
|
|
1904
|
-
<div class="
|
|
1933
|
+
<div class="o-cf-drag-handle h-100 position-absolute d-flex align-items-center o-button-icon">
|
|
1934
|
+
<t t-call="o-spreadsheet-Icon.THIN_DRAG_HANDLE"/>
|
|
1935
|
+
</div>
|
|
1936
|
+
<t t-if="cf.rule.type==='IconSetRule'">
|
|
1905
1937
|
<div
|
|
1906
|
-
class="o-cf-
|
|
1907
|
-
<t t-call="o-spreadsheet-Icon.
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
<div class="o-cf-preview-icon d-flex justify-content-around align-items-center me-2">
|
|
1911
|
-
<t t-call="o-spreadsheet-Icon.{{icons[cf.rule.icons.upper].template}}"/>
|
|
1912
|
-
<t t-call="o-spreadsheet-Icon.{{icons[cf.rule.icons.middle].template}}"/>
|
|
1913
|
-
<t t-call="o-spreadsheet-Icon.{{icons[cf.rule.icons.lower].template}}"/>
|
|
1914
|
-
</div>
|
|
1915
|
-
</t>
|
|
1916
|
-
<t t-else="">
|
|
1917
|
-
<div
|
|
1918
|
-
t-att-style="getPreviewImageStyle(cf.rule)"
|
|
1919
|
-
class="o-cf-preview-icon d-flex justify-content-around align-items-center me-2">
|
|
1920
|
-
123
|
|
1921
|
-
</div>
|
|
1922
|
-
</t>
|
|
1923
|
-
<div class="o-cf-preview-description">
|
|
1924
|
-
<div class="o-cf-preview-ruletype">
|
|
1925
|
-
<div class="o-cf-preview-description-rule o-fw-bold text-truncate">
|
|
1926
|
-
<t t-esc="getDescription(cf)"/>
|
|
1927
|
-
</div>
|
|
1928
|
-
</div>
|
|
1929
|
-
<div class="o-cf-preview-range text-truncate" t-esc="cf.ranges"/>
|
|
1938
|
+
class="o-cf-preview-icon d-flex justify-content-around align-items-center me-3 bg-white border">
|
|
1939
|
+
<t t-call="o-spreadsheet-Icon.{{icons[cf.rule.icons.upper].template}}"/>
|
|
1940
|
+
<t t-call="o-spreadsheet-Icon.{{icons[cf.rule.icons.middle].template}}"/>
|
|
1941
|
+
<t t-call="o-spreadsheet-Icon.{{icons[cf.rule.icons.lower].template}}"/>
|
|
1930
1942
|
</div>
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1943
|
+
</t>
|
|
1944
|
+
<t t-else="">
|
|
1945
|
+
<div
|
|
1946
|
+
t-att-style="getPreviewImageStyle(cf.rule)"
|
|
1947
|
+
class="o-cf-preview-icon d-flex justify-content-around align-items-center me-3 flex-shrink-0 border">
|
|
1948
|
+
123
|
|
1949
|
+
</div>
|
|
1950
|
+
</t>
|
|
1951
|
+
<div class="o-cf-preview-description me-3 overflow-auto">
|
|
1952
|
+
<div class="o-cf-preview-ruletype">
|
|
1953
|
+
<div class="o-cf-preview-description-rule o-fw-bold text-truncate">
|
|
1954
|
+
<t t-esc="getDescription(cf)"/>
|
|
1937
1955
|
</div>
|
|
1938
1956
|
</div>
|
|
1957
|
+
<div class="o-cf-preview-range text-truncate" t-esc="cf.ranges"/>
|
|
1958
|
+
</div>
|
|
1959
|
+
<div class="o-cf-delete ms-auto">
|
|
1960
|
+
<div
|
|
1961
|
+
class="o-cf-delete-button o-button-icon"
|
|
1962
|
+
t-on-click.stop="(ev) => this.deleteConditionalFormat(cf, ev)"
|
|
1963
|
+
title="Remove rule">
|
|
1964
|
+
<t t-call="o-spreadsheet-Icon.TRASH_FILLED"/>
|
|
1965
|
+
</div>
|
|
1939
1966
|
</div>
|
|
1940
1967
|
</div>
|
|
1941
1968
|
</t>
|
|
@@ -1945,7 +1972,7 @@
|
|
|
1945
1972
|
<div class="o-section-subtitle">Icons</div>
|
|
1946
1973
|
<div class="o-cf-iconsets d-flex flex-row">
|
|
1947
1974
|
<div
|
|
1948
|
-
class="o-cf-iconset o-cf-clickable-icon d-flex flex-row justify-content-between"
|
|
1975
|
+
class="o-cf-iconset o-cf-clickable-icon d-flex flex-row justify-content-between border rounded"
|
|
1949
1976
|
t-foreach="['arrows', 'smiley', 'dots']"
|
|
1950
1977
|
t-as="iconSet"
|
|
1951
1978
|
t-key="iconSet"
|
|
@@ -1968,7 +1995,7 @@
|
|
|
1968
1995
|
<tr>
|
|
1969
1996
|
<td>
|
|
1970
1997
|
<div t-on-click.stop="(ev) => this.toggleMenu('iconSet-'+icon+'Icon', ev)">
|
|
1971
|
-
<div class="o-cf-icon-button o-cf-clickable-icon me-3">
|
|
1998
|
+
<div class="o-cf-icon-button o-cf-clickable-icon me-3 border rounded">
|
|
1972
1999
|
<t t-call="o-spreadsheet-Icon.{{icons[iconValue].template}}"/>
|
|
1973
2000
|
</div>
|
|
1974
2001
|
</div>
|
|
@@ -2051,7 +2078,7 @@
|
|
|
2051
2078
|
<tr>
|
|
2052
2079
|
<td>
|
|
2053
2080
|
<div t-on-click.stop="(ev) => this.toggleMenu('iconSet-lowerIcon', ev)">
|
|
2054
|
-
<div class="o-cf-icon-button o-cf-clickable-icon me-3">
|
|
2081
|
+
<div class="o-cf-icon-button o-cf-clickable-icon me-3 border rounded">
|
|
2055
2082
|
<t t-call="o-spreadsheet-Icon.{{icons[rule.icons.lower].template}}"/>
|
|
2056
2083
|
</div>
|
|
2057
2084
|
</div>
|
|
@@ -2166,7 +2193,7 @@
|
|
|
2166
2193
|
<t t-name="o-spreadsheet-ColorScaleRuleEditor">
|
|
2167
2194
|
<div class="o-cf-color-scale-editor">
|
|
2168
2195
|
<div class="o-section-subtitle">Preview</div>
|
|
2169
|
-
<div class="o-cf-preview-display mb-4" t-attf-style="{{
|
|
2196
|
+
<div class="o-cf-preview-display mb-4" t-attf-style="{{getColorScalePreviewStyle()}}">
|
|
2170
2197
|
Preview text
|
|
2171
2198
|
</div>
|
|
2172
2199
|
<div class="o-section-subtitle">Minpoint</div>
|
|
@@ -2245,7 +2272,7 @@
|
|
|
2245
2272
|
|
|
2246
2273
|
<t t-name="o-spreadsheet-CellIsRuleEditorPreview">
|
|
2247
2274
|
<div
|
|
2248
|
-
class="o-cf-preview-display"
|
|
2275
|
+
class="o-cf-preview-display border"
|
|
2249
2276
|
t-attf-style="font-weight:{{currentStyle.bold ?'bold':'normal'}};
|
|
2250
2277
|
text-decoration:{{getTextDecoration(currentStyle)}};
|
|
2251
2278
|
font-style:{{currentStyle.italic?'italic':'normal'}};
|
|
@@ -2273,6 +2300,7 @@
|
|
|
2273
2300
|
t-key="state.rules.cellIs.operator"
|
|
2274
2301
|
criterion="genericCriterion"
|
|
2275
2302
|
onCriterionChanged.bind="onRuleValuesChanged"
|
|
2303
|
+
autofocus="this.state.hasEditedCf"
|
|
2276
2304
|
/>
|
|
2277
2305
|
|
|
2278
2306
|
<div class="o-section-subtitle pt-3">Formatting style</div>
|
|
@@ -2318,7 +2346,7 @@
|
|
|
2318
2346
|
icon="'o-spreadsheet-Icon.TEXT_COLOR'"
|
|
2319
2347
|
class="'o-hoverable-button o-menu-item-button'"
|
|
2320
2348
|
/>
|
|
2321
|
-
<div class="o-divider"/>
|
|
2349
|
+
<div class="o-divider border-end"/>
|
|
2322
2350
|
<ColorPickerWidget
|
|
2323
2351
|
currentColor="rule.style.fillColor"
|
|
2324
2352
|
toggleColorPicker="(ev) => this.toggleMenu('cellIsRule-fillColor', ev)"
|
|
@@ -2346,7 +2374,7 @@
|
|
|
2346
2374
|
|
|
2347
2375
|
<t t-name="o-spreadsheet.RoundColorPicker">
|
|
2348
2376
|
<div
|
|
2349
|
-
class="o-round-color-picker-button rounded-circle"
|
|
2377
|
+
class="o-round-color-picker-button rounded-circle border"
|
|
2350
2378
|
t-ref="colorPickerButton"
|
|
2351
2379
|
t-on-click.stop="togglePicker"
|
|
2352
2380
|
t-att-title="props.title"
|
|
@@ -2370,6 +2398,7 @@
|
|
|
2370
2398
|
<t t-foreach="props.choices" t-as="choice" t-key="choice.value">
|
|
2371
2399
|
<label class="o-radio d-flex align-items-center me-4">
|
|
2372
2400
|
<input
|
|
2401
|
+
class="border rounded-circle"
|
|
2373
2402
|
t-att-class="{
|
|
2374
2403
|
'me-1': props.direction === 'horizontal',
|
|
2375
2404
|
'me-2': props.direction === 'vertical'}"
|
|
@@ -2437,7 +2466,7 @@
|
|
|
2437
2466
|
t-att-class="{'text-muted': props.disabled }"
|
|
2438
2467
|
t-attf-class="{{props.className}}">
|
|
2439
2468
|
<input
|
|
2440
|
-
class="me-2"
|
|
2469
|
+
class="me-2 flex-shrink-0 border"
|
|
2441
2470
|
type="checkbox"
|
|
2442
2471
|
t-att-disabled="props.disabled"
|
|
2443
2472
|
t-att-name="props.name"
|
|
@@ -2445,7 +2474,7 @@
|
|
|
2445
2474
|
t-on-change="onChange"
|
|
2446
2475
|
t-on-click.stop=""
|
|
2447
2476
|
/>
|
|
2448
|
-
<
|
|
2477
|
+
<span class="text-truncate" t-if="props.label" t-esc="props.label"/>
|
|
2449
2478
|
</label>
|
|
2450
2479
|
</t>
|
|
2451
2480
|
|
|
@@ -2479,6 +2508,9 @@
|
|
|
2479
2508
|
className="'mb-2'"
|
|
2480
2509
|
/>
|
|
2481
2510
|
</Section>
|
|
2511
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
2512
|
+
<ChartHumanizeNumbers t-props="props"/>
|
|
2513
|
+
</Section>
|
|
2482
2514
|
</t>
|
|
2483
2515
|
</GeneralDesignEditor>
|
|
2484
2516
|
<SeriesWithAxisDesignEditor t-props="props"/>
|
|
@@ -2518,7 +2550,7 @@
|
|
|
2518
2550
|
className="'mb-2'"
|
|
2519
2551
|
/>
|
|
2520
2552
|
</Section>
|
|
2521
|
-
<Section class="'pt-
|
|
2553
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
2522
2554
|
<ChartHumanizeNumbers t-props="props"/>
|
|
2523
2555
|
</Section>
|
|
2524
2556
|
</t>
|
|
@@ -2657,6 +2689,9 @@
|
|
|
2657
2689
|
hasVerticalAlign="true"
|
|
2658
2690
|
/>
|
|
2659
2691
|
</Section>
|
|
2692
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
2693
|
+
<ChartHumanizeNumbers t-props="props"/>
|
|
2694
|
+
</Section>
|
|
2660
2695
|
</t>
|
|
2661
2696
|
</SidePanelCollapsible>
|
|
2662
2697
|
</t>
|
|
@@ -2717,6 +2752,9 @@
|
|
|
2717
2752
|
<GeneralDesignEditor t-props="props">
|
|
2718
2753
|
<t t-set-slot="general-extension">
|
|
2719
2754
|
<ChartLegend t-props="props"/>
|
|
2755
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
2756
|
+
<ChartHumanizeNumbers t-props="props"/>
|
|
2757
|
+
</Section>
|
|
2720
2758
|
</t>
|
|
2721
2759
|
</GeneralDesignEditor>
|
|
2722
2760
|
|
|
@@ -2768,7 +2806,7 @@
|
|
|
2768
2806
|
<t t-set="color_down">Color Down</t>
|
|
2769
2807
|
<GeneralDesignEditor t-props="props" defaultChartTitleFontSize="defaultScorecardTitleFontSize">
|
|
2770
2808
|
<t t-set-slot="general-extension">
|
|
2771
|
-
<Section class="'pt-
|
|
2809
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
2772
2810
|
<ChartHumanizeNumbers t-props="props"/>
|
|
2773
2811
|
</Section>
|
|
2774
2812
|
</t>
|
|
@@ -2882,7 +2920,7 @@
|
|
|
2882
2920
|
<ChartShowValues t-props="props"/>
|
|
2883
2921
|
<ChartShowDataMarkers t-props="props"/>
|
|
2884
2922
|
</Section>
|
|
2885
|
-
<Section class="'pt-
|
|
2923
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
2886
2924
|
<ChartHumanizeNumbers t-props="props"/>
|
|
2887
2925
|
</Section>
|
|
2888
2926
|
</t>
|
|
@@ -2897,7 +2935,7 @@
|
|
|
2897
2935
|
<Section class="'pt-0'" title.translate="Values">
|
|
2898
2936
|
<ChartShowValues t-props="props"/>
|
|
2899
2937
|
</Section>
|
|
2900
|
-
<Section class="'pt-
|
|
2938
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
2901
2939
|
<ChartHumanizeNumbers t-props="props"/>
|
|
2902
2940
|
</Section>
|
|
2903
2941
|
<PieHoleSize
|
|
@@ -2929,7 +2967,7 @@
|
|
|
2929
2967
|
</div>
|
|
2930
2968
|
|
|
2931
2969
|
<t t-set="definition" t-value="getChartDefinition(this.chartId)"/>
|
|
2932
|
-
<div class="o-panel-content
|
|
2970
|
+
<div class="o-panel-content" t-ref="panelContent">
|
|
2933
2971
|
<div t-att-class="store.panel !== 'configuration' ? 'd-none' : ''">
|
|
2934
2972
|
<ChartTypePicker chartId="chartId" chartPanelStore="store"/>
|
|
2935
2973
|
<t
|
|
@@ -2972,7 +3010,7 @@
|
|
|
2972
3010
|
className="'mb-2'"
|
|
2973
3011
|
/>
|
|
2974
3012
|
</Section>
|
|
2975
|
-
<Section class="'pt-
|
|
3013
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
2976
3014
|
<ChartHumanizeNumbers t-props="props"/>
|
|
2977
3015
|
</Section>
|
|
2978
3016
|
</t>
|
|
@@ -3081,7 +3119,7 @@
|
|
|
3081
3119
|
<option value="left">Bottom left</option>
|
|
3082
3120
|
</select>
|
|
3083
3121
|
</Section>
|
|
3084
|
-
<Section class="'pt-
|
|
3122
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
3085
3123
|
<ChartHumanizeNumbers t-props="props"/>
|
|
3086
3124
|
</Section>
|
|
3087
3125
|
</t>
|
|
@@ -3089,45 +3127,10 @@
|
|
|
3089
3127
|
|
|
3090
3128
|
<SidePanelCollapsible isInitiallyCollapsed="false" title.translate="Geo chart options">
|
|
3091
3129
|
<t t-set-slot="content">
|
|
3092
|
-
<
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
<t t-foreach="colorScalesChoices" t-as="colorScale" t-key="colorScale">
|
|
3097
|
-
<option
|
|
3098
|
-
t-att-value="colorScale"
|
|
3099
|
-
t-esc="colorScale_value"
|
|
3100
|
-
t-att-selected="colorScale === selectedColorScale"
|
|
3101
|
-
/>
|
|
3102
|
-
</t>
|
|
3103
|
-
</select>
|
|
3104
|
-
|
|
3105
|
-
<t t-if="customColorScale">
|
|
3106
|
-
<div class="o-min-color d-flex align-items-center mb-2 mt-4">
|
|
3107
|
-
<RoundColorPicker
|
|
3108
|
-
currentColor="getCustomColorScaleColor('minColor')"
|
|
3109
|
-
onColorPicked="(color) => this.setCustomColorScaleColor('minColor', color)"
|
|
3110
|
-
disableNoColor="true"
|
|
3111
|
-
/>
|
|
3112
|
-
<span class="ps-2">Color of minimum values</span>
|
|
3113
|
-
</div>
|
|
3114
|
-
<div class="o-mid-color d-flex align-items-center mb-2">
|
|
3115
|
-
<RoundColorPicker
|
|
3116
|
-
currentColor="getCustomColorScaleColor('midColor')"
|
|
3117
|
-
onColorPicked="(color) => this.setCustomColorScaleColor('midColor', color)"
|
|
3118
|
-
/>
|
|
3119
|
-
<span class="ps-2">Color of middle values</span>
|
|
3120
|
-
</div>
|
|
3121
|
-
<div class="o-max-color d-flex align-items-center">
|
|
3122
|
-
<RoundColorPicker
|
|
3123
|
-
currentColor="getCustomColorScaleColor('maxColor')"
|
|
3124
|
-
onColorPicked="(color) => this.setCustomColorScaleColor('maxColor', color)"
|
|
3125
|
-
disableNoColor="true"
|
|
3126
|
-
/>
|
|
3127
|
-
<span class="ps-2">Color of maximum values</span>
|
|
3128
|
-
</div>
|
|
3129
|
-
</t>
|
|
3130
|
-
</Section>
|
|
3130
|
+
<ColorScalePicker
|
|
3131
|
+
definition="props.definition"
|
|
3132
|
+
onUpdateColorScale.bind="this.updateColorScale"
|
|
3133
|
+
/>
|
|
3131
3134
|
|
|
3132
3135
|
<Section class="'pt-0 o-missing-value'" title.translate="Countries without value">
|
|
3133
3136
|
<RoundColorPicker
|
|
@@ -3174,7 +3177,7 @@
|
|
|
3174
3177
|
<t t-name="o-spreadsheet-GaugeChartDesignPanel">
|
|
3175
3178
|
<GeneralDesignEditor t-props="props">
|
|
3176
3179
|
<t t-set-slot="general-extension">
|
|
3177
|
-
<Section class="'pt-
|
|
3180
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
3178
3181
|
<ChartHumanizeNumbers t-props="props"/>
|
|
3179
3182
|
</Section>
|
|
3180
3183
|
</t>
|
|
@@ -3320,7 +3323,7 @@
|
|
|
3320
3323
|
<Section class="'pt-0'" title.translate="Values">
|
|
3321
3324
|
<ChartShowValues t-props="props"/>
|
|
3322
3325
|
</Section>
|
|
3323
|
-
<Section class="'pt-
|
|
3326
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
3324
3327
|
<ChartHumanizeNumbers t-props="props"/>
|
|
3325
3328
|
</Section>
|
|
3326
3329
|
</t>
|
|
@@ -3360,7 +3363,7 @@
|
|
|
3360
3363
|
className="'mb-2'"
|
|
3361
3364
|
/>
|
|
3362
3365
|
</Section>
|
|
3363
|
-
<Section class="'pt-
|
|
3366
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
3364
3367
|
<ChartHumanizeNumbers t-props="props"/>
|
|
3365
3368
|
</Section>
|
|
3366
3369
|
</t>
|
|
@@ -3436,7 +3439,7 @@
|
|
|
3436
3439
|
<Popover t-if="state.popoverProps" t-props="state.popoverProps">
|
|
3437
3440
|
<div
|
|
3438
3441
|
t-ref="popoverRef"
|
|
3439
|
-
class="o-chart-select-popover px-3 pb-4"
|
|
3442
|
+
class="o-chart-select-popover px-3 pb-4 bg-white"
|
|
3440
3443
|
t-att-style="state.popoverStyle">
|
|
3441
3444
|
<t t-foreach="categories" t-as="category" t-key="category">
|
|
3442
3445
|
<t t-if="chartTypeByCategories[category]">
|
|
@@ -3464,148 +3467,192 @@
|
|
|
3464
3467
|
|
|
3465
3468
|
<t t-name="o-spreadsheet-ChartPreview.LINE_CHART">
|
|
3466
3469
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3467
|
-
<path fill="
|
|
3468
|
-
<path
|
|
3469
|
-
|
|
3470
|
+
<path fill="var(--os-gray-600)" d="M2,2 v44 h1 v-44 M3,45 h42 v1 h-42"/>
|
|
3471
|
+
<path
|
|
3472
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3473
|
+
style="fill:none"
|
|
3474
|
+
d="M6,40 l12,-12 l6,6 l18,-18"
|
|
3475
|
+
/>
|
|
3476
|
+
<path
|
|
3477
|
+
stroke="var(--os-chart-preview-blue-line)"
|
|
3478
|
+
style="fill:none"
|
|
3479
|
+
d="M6,25 l12,-12 l18,18 l6,-6"
|
|
3480
|
+
/>
|
|
3470
3481
|
</svg>
|
|
3471
3482
|
</t>
|
|
3472
3483
|
<t t-name="o-spreadsheet-ChartPreview.STACKED_LINE_CHART">
|
|
3473
3484
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3474
|
-
<path
|
|
3475
|
-
|
|
3476
|
-
|
|
3485
|
+
<path
|
|
3486
|
+
stroke="var(--os-chart-preview-blue-line)"
|
|
3487
|
+
style="fill:none"
|
|
3488
|
+
d="M3,30 l12,-12 l6,6 l18,-18"
|
|
3489
|
+
/>
|
|
3490
|
+
<path
|
|
3491
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3492
|
+
style="fill:none"
|
|
3493
|
+
d="M3,40 l12,-12 l6,6 l18,-12"
|
|
3494
|
+
/>
|
|
3495
|
+
<path fill="var(--os-gray-600)" d="M2,2 v44 h1 v-44 M3,45 h42 v1 h-42"/>
|
|
3477
3496
|
</svg>
|
|
3478
3497
|
</t>
|
|
3479
3498
|
<t t-name="o-spreadsheet-ChartPreview.AREA_CHART">
|
|
3480
3499
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3481
|
-
<path fill="
|
|
3482
|
-
<path fill="
|
|
3483
|
-
<path
|
|
3484
|
-
|
|
3485
|
-
|
|
3500
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M3,45 V25 l12,-12 l18,18 l6,-6 V45"/>
|
|
3501
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M3,45 V40 l12,-12 l6,6 l18,-18 V45"/>
|
|
3502
|
+
<path
|
|
3503
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3504
|
+
style="fill:none"
|
|
3505
|
+
d="M3,40 l12,-12 l6,6 l18,-18"
|
|
3506
|
+
/>
|
|
3507
|
+
<path
|
|
3508
|
+
stroke="var(--os-chart-preview-blue-line)"
|
|
3509
|
+
style="fill:none"
|
|
3510
|
+
d="M3,25 l12,-12 l18,18 l6,-6"
|
|
3511
|
+
/>
|
|
3512
|
+
<path fill="var(--os-gray-600)" d="M2,2 v44 h1 v-44 M3,45 h42 v1 h-42"/>
|
|
3486
3513
|
</svg>
|
|
3487
3514
|
</t>
|
|
3488
3515
|
<t t-name="o-spreadsheet-ChartPreview.STACKED_AREA_CHART">
|
|
3489
3516
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3490
|
-
<path fill="
|
|
3491
|
-
<path
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
|
|
3517
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M3,45 h36 v-39 l-18,18 l-6,-6 l-12,12"/>
|
|
3518
|
+
<path
|
|
3519
|
+
stroke="var(--os-chart-preview-blue-line)"
|
|
3520
|
+
style="fill:none"
|
|
3521
|
+
d="M3,30 l12,-12 l6,6 l18,-18"
|
|
3522
|
+
/>
|
|
3523
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M3,45 h36 v-23 l-18,12 l-6,-6 l-12,12"/>
|
|
3524
|
+
<path
|
|
3525
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3526
|
+
style="fill:none"
|
|
3527
|
+
d="M3,40 l12,-12 l6,6 l18,-12"
|
|
3528
|
+
/>
|
|
3529
|
+
<path fill="var(--os-gray-600)" d="M2,2 v44 h1 v-44 M3,45 h42 v1 h-42"/>
|
|
3495
3530
|
</svg>
|
|
3496
3531
|
</t>
|
|
3497
3532
|
<t t-name="o-spreadsheet-ChartPreview.COLUMN_CHART">
|
|
3498
3533
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3499
|
-
<path fill="
|
|
3500
|
-
<path fill="
|
|
3501
|
-
<path fill="
|
|
3502
|
-
<path fill="
|
|
3503
|
-
<path fill="
|
|
3504
|
-
<path fill="
|
|
3505
|
-
<path fill="
|
|
3506
|
-
<path fill="
|
|
3507
|
-
<path fill="
|
|
3534
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M7,45 v-28 h6 v28"/>
|
|
3535
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M8,45 v-27 h4 v27"/>
|
|
3536
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M14,45 v-14 h6 v14"/>
|
|
3537
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M15,45 v-13 h4 v13"/>
|
|
3538
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M26,45 v-22 h6 v22"/>
|
|
3539
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M27,45 v-21 h4 v21"/>
|
|
3540
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M33,45 v-32 h6 v32"/>
|
|
3541
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M34,45 v-31 h4 v31"/>
|
|
3542
|
+
<path fill="var(--os-gray-600)" d="M2,2 v44 h1 v-44 M3,45 h42 v1 h-42"/>
|
|
3508
3543
|
</svg>
|
|
3509
3544
|
</t>
|
|
3510
3545
|
<t t-name="o-spreadsheet-ChartPreview.STACKED_COLUMN_CHART">
|
|
3511
3546
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3512
|
-
<path fill="
|
|
3513
|
-
<path fill="
|
|
3514
|
-
<path fill="
|
|
3515
|
-
<path fill="
|
|
3547
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M7,45 v-12 h8 v12"/>
|
|
3548
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M8,45 v-11 h6 v11"/>
|
|
3549
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M7,33 v-14 h8 v14"/>
|
|
3550
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M8,33 v-13 h6 v13"/>
|
|
3516
3551
|
|
|
3517
|
-
<path fill="
|
|
3518
|
-
<path fill="
|
|
3519
|
-
<path fill="
|
|
3520
|
-
<path fill="
|
|
3552
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M20,45 v-8 h8 v8"/>
|
|
3553
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M21,45 v-7 h6 v7"/>
|
|
3554
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M20,37 v-9 h8 v9"/>
|
|
3555
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M21,37 v-8 h6 v8"/>
|
|
3521
3556
|
|
|
3522
|
-
<path fill="
|
|
3523
|
-
<path fill="
|
|
3524
|
-
<path fill="
|
|
3525
|
-
<path fill="
|
|
3557
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M33,45 v-18 h8 v18"/>
|
|
3558
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M34,45 v-17 h6 v17"/>
|
|
3559
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M33,27 v-16 h8 v16"/>
|
|
3560
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M34,27 v-15 h6 v15"/>
|
|
3526
3561
|
|
|
3527
|
-
<path fill="
|
|
3562
|
+
<path fill="var(--os-gray-600)" d="M2,2 v44 h1 v-44 M3,45 h42 v1 h-42"/>
|
|
3528
3563
|
</svg>
|
|
3529
3564
|
</t>
|
|
3530
3565
|
<t t-name="o-spreadsheet-ChartPreview.BAR_CHART">
|
|
3531
3566
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3532
3567
|
<g transform="matrix(0 1 -1 0 48 3)">
|
|
3533
|
-
<path fill="
|
|
3534
|
-
<path fill="
|
|
3535
|
-
<path fill="
|
|
3536
|
-
<path fill="
|
|
3537
|
-
<path fill="
|
|
3538
|
-
<path fill="
|
|
3539
|
-
<path fill="
|
|
3540
|
-
<path fill="
|
|
3568
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M7,45 v-28 h6 v28"/>
|
|
3569
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M8,45 v-27 h4 v27"/>
|
|
3570
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M14,45 v-14 h6 v14"/>
|
|
3571
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M15,45 v-13 h4 v13"/>
|
|
3572
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M26,45 v-22 h6 v22"/>
|
|
3573
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M27,45 v-21 h4 v21"/>
|
|
3574
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M33,45 v-32 h6 v32"/>
|
|
3575
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M34,45 v-31 h4 v31"/>
|
|
3541
3576
|
</g>
|
|
3542
|
-
<path fill="
|
|
3577
|
+
<path fill="var(--os-gray-600)" d="M2,2 v44 h1 v-44 M3,45 h42 v1 h-42"/>
|
|
3543
3578
|
</svg>
|
|
3544
3579
|
</t>
|
|
3545
3580
|
<t t-name="o-spreadsheet-ChartPreview.STACKED_BAR_CHART">
|
|
3546
3581
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3547
3582
|
<g transform="matrix(0 1 -1 0 48 1)">
|
|
3548
|
-
<path fill="
|
|
3549
|
-
<path fill="
|
|
3550
|
-
<path fill="
|
|
3551
|
-
<path fill="
|
|
3552
|
-
<path fill="
|
|
3553
|
-
<path fill="
|
|
3554
|
-
<path fill="
|
|
3555
|
-
<path fill="
|
|
3556
|
-
<path fill="
|
|
3557
|
-
<path fill="
|
|
3558
|
-
<path fill="
|
|
3559
|
-
<path fill="
|
|
3583
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M7,45 v-12 h8 v12"/>
|
|
3584
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M8,45 v-11 h6 v11"/>
|
|
3585
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M7,33 v-14 h8 v14"/>
|
|
3586
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M8,33 v-13 h6 v13"/>
|
|
3587
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M20,45 v-8 h8 v8"/>
|
|
3588
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M21,45 v-7 h6 v7"/>
|
|
3589
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M20,37 v-9 h8 v9"/>
|
|
3590
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M21,37 v-8 h6 v8"/>
|
|
3591
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M33,45 v-18 h8 v18"/>
|
|
3592
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M34,45 v-17 h6 v17"/>
|
|
3593
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M33,27 v-16 h8 v16"/>
|
|
3594
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M34,27 v-15 h6 v15"/>
|
|
3560
3595
|
</g>
|
|
3561
|
-
<path fill="
|
|
3596
|
+
<path fill="var(--os-gray-600)" d="M2,2 v44 h1 v-44 M3,45 h42 v1 h-42"/>
|
|
3562
3597
|
</svg>
|
|
3563
3598
|
</t>
|
|
3564
3599
|
<t t-name="o-spreadsheet-ChartPreview.COMBO_CHART">
|
|
3565
3600
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3566
|
-
<path fill="
|
|
3567
|
-
<path fill="
|
|
3568
|
-
<path fill="
|
|
3569
|
-
<path fill="
|
|
3570
|
-
<path fill="
|
|
3571
|
-
<path fill="
|
|
3572
|
-
<path fill="
|
|
3573
|
-
<path fill="
|
|
3574
|
-
<path
|
|
3575
|
-
|
|
3601
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M7,45 v-14 h6 v14"/>
|
|
3602
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M8,45 v-13 h4 v13"/>
|
|
3603
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M14,45 v-28 h6 v28"/>
|
|
3604
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M15,45 v-27 h4 v27"/>
|
|
3605
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M26,45 v-22 h6 v22"/>
|
|
3606
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M27,45 v-21 h4 v21"/>
|
|
3607
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M33,45 v-32 h6 v32"/>
|
|
3608
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M34,45 v-31 h4 v31"/>
|
|
3609
|
+
<path
|
|
3610
|
+
stroke="var(--os-gray-500)"
|
|
3611
|
+
style="fill:none;stroke-width:1.5;"
|
|
3612
|
+
d="M4,40 l14,-12 l6,6 l20,-18"
|
|
3613
|
+
/>
|
|
3614
|
+
<path fill="var(--os-gray-600)" d="M2,2 v44 h1 v-44 M3,45 h42 v1 h-42"/>
|
|
3576
3615
|
</svg>
|
|
3577
3616
|
</t>
|
|
3578
3617
|
<t t-name="o-spreadsheet-ChartPreview.PIE_CHART">
|
|
3579
3618
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3580
|
-
<path
|
|
3581
|
-
|
|
3619
|
+
<path
|
|
3620
|
+
fill="var(--os-chart-preview-orange-fill)"
|
|
3621
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3622
|
+
d="M41.32, 34 A20 20, 0, 1, 1, 24, 4 v20"
|
|
3623
|
+
/>
|
|
3624
|
+
<path
|
|
3625
|
+
fill="var(--os-chart-preview-blue-fill)"
|
|
3626
|
+
stroke="var(--os-chart-preview-blue-line)"
|
|
3627
|
+
d="M24,24 v-20 A20 20, 0, 0, 1, 41.32, 34 L24,24"
|
|
3628
|
+
/>
|
|
3582
3629
|
</svg>
|
|
3583
3630
|
</t>
|
|
3584
3631
|
<t t-name="o-spreadsheet-ChartPreview.DOUGHNUT_CHART">
|
|
3585
3632
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3586
3633
|
<path
|
|
3587
|
-
fill="
|
|
3588
|
-
stroke="
|
|
3634
|
+
fill="var(--os-chart-preview-orange-fill)"
|
|
3635
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3589
3636
|
d="M41.32, 34 A20 20, 0, 1, 1, 24, 4 v8 A12,12,0,1,0,34.4,30"
|
|
3590
3637
|
/>
|
|
3591
3638
|
<path
|
|
3592
|
-
fill="
|
|
3593
|
-
stroke="
|
|
3639
|
+
fill="var(--os-chart-preview-blue-fill)"
|
|
3640
|
+
stroke="var(--os-chart-preview-blue-line)"
|
|
3594
3641
|
d="M24,12 v-8 A20 20, 0, 0, 1, 41.32, 34 L34.4,30 A12,12,0,0,0,24,12"
|
|
3595
3642
|
/>
|
|
3596
3643
|
</svg>
|
|
3597
3644
|
</t>
|
|
3598
3645
|
<t t-name="o-spreadsheet-ChartPreview.SCATTER_CHART">
|
|
3599
3646
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3600
|
-
<circle fill="
|
|
3601
|
-
<circle fill="
|
|
3602
|
-
<circle fill="
|
|
3603
|
-
<circle fill="
|
|
3604
|
-
<circle fill="
|
|
3605
|
-
<circle fill="
|
|
3606
|
-
<circle fill="
|
|
3607
|
-
<circle fill="
|
|
3608
|
-
<path fill="
|
|
3647
|
+
<circle fill="var(--os-chart-preview-blue-line)" cx="10" cy="10" r="2"/>
|
|
3648
|
+
<circle fill="var(--os-chart-preview-blue-line)" cx="15" cy="30" r="2"/>
|
|
3649
|
+
<circle fill="var(--os-chart-preview-blue-line)" cx="25" cy="36" r="2"/>
|
|
3650
|
+
<circle fill="var(--os-chart-preview-blue-line)" cx="32" cy="15" r="2"/>
|
|
3651
|
+
<circle fill="var(--os-chart-preview-orange-line)" cx="10" cy="40" r="2"/>
|
|
3652
|
+
<circle fill="var(--os-chart-preview-orange-line)" cx="18" cy="20" r="2"/>
|
|
3653
|
+
<circle fill="var(--os-chart-preview-orange-line)" cx="30" cy="25" r="2"/>
|
|
3654
|
+
<circle fill="var(--os-chart-preview-orange-line)" cx="40" cy="33" r="2"/>
|
|
3655
|
+
<path fill="var(--os-gray-600)" d="M2,2 v44 h1 v-44 M3,45 h42 v1 h-42"/>
|
|
3609
3656
|
</svg>
|
|
3610
3657
|
</t>
|
|
3611
3658
|
<t t-name="o-spreadsheet-ChartPreview.GAUGE_CHART">
|
|
@@ -3613,9 +3660,9 @@
|
|
|
3613
3660
|
viewBox="0 0 48 48"
|
|
3614
3661
|
class="o-chart-preview user-select-none"
|
|
3615
3662
|
xmlns="http://www.w3.org/2000/svg">
|
|
3616
|
-
<path fill="
|
|
3663
|
+
<path fill="var(--os-gray-400)" d="M2,32 A22,22,0,0,1,46,32 h-6 A16,16,0,0,0,8,32"/>
|
|
3617
3664
|
<path fill="#6aa84f" d="M2,32 A22,22,0,0,1,35,13 L32,18.2 A16,16,0,0,0,8,32"/>
|
|
3618
|
-
<text x="17" y="32" style="font-size:12px;">62</text>
|
|
3665
|
+
<text fill="currentColor" x="17" y="32" style="font-size:12px;">62</text>
|
|
3619
3666
|
</svg>
|
|
3620
3667
|
</t>
|
|
3621
3668
|
<t t-name="o-spreadsheet-ChartPreview.SCORECARD_CHART">
|
|
@@ -3623,61 +3670,72 @@
|
|
|
3623
3670
|
viewBox="0 0 48 48"
|
|
3624
3671
|
class="o-chart-preview user-select-none"
|
|
3625
3672
|
xmlns="http://www.w3.org/2000/svg">
|
|
3626
|
-
<path fill="
|
|
3627
|
-
<path fill="
|
|
3628
|
-
<text x="9" y="32" style="font-size:18px;">123</text>
|
|
3673
|
+
<path fill="var(--os-gray-300)" d="M1,8 h46 v32 h-46"/>
|
|
3674
|
+
<path fill="var(--os-gray-200)" d="M2,9 h44 v30 h-44"/>
|
|
3675
|
+
<text fill="currentColor" x="9" y="32" style="font-size:18px;">123</text>
|
|
3629
3676
|
</svg>
|
|
3630
3677
|
</t>
|
|
3631
3678
|
<t t-name="o-spreadsheet-ChartPreview.WATERFALL_CHART">
|
|
3632
3679
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3633
|
-
<path fill="
|
|
3634
|
-
<path fill="
|
|
3635
|
-
<path fill="
|
|
3636
|
-
<path fill="
|
|
3637
|
-
<path fill="
|
|
3638
|
-
<path fill="
|
|
3639
|
-
<path fill="
|
|
3640
|
-
<path fill="
|
|
3641
|
-
<path fill="
|
|
3642
|
-
<path fill="
|
|
3643
|
-
<path
|
|
3644
|
-
|
|
3680
|
+
<path fill="var(--os-gray-600)" d="M5,45 v-26 h6 v26"/>
|
|
3681
|
+
<path fill="var(--os-white-bg)" d="M6,45 v-25 h4 v25"/>
|
|
3682
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M13,19 v7 h6 v-7"/>
|
|
3683
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M14,20 v5 h4 v-5"/>
|
|
3684
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M21,25 v10 h6 v-10"/>
|
|
3685
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M22,26 v8 h4 v-8"/>
|
|
3686
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M29,35 v-24 h6 v24"/>
|
|
3687
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M30,34 v-22 h4 v22"/>
|
|
3688
|
+
<path fill="var(--os-gray-600)" d="M37,45 v-34 h6 v34"/>
|
|
3689
|
+
<path fill="var(--os-white-bg)" d="M38,45 v-33 h4 v33"/>
|
|
3690
|
+
<path
|
|
3691
|
+
fill="var(--os-gray-600)"
|
|
3692
|
+
d="M11,20 v-1 h2 v1 M19,26 v-1 h2 v1 M27,35 v-1 h2 v1 M35,12 v-1 h2 v1"
|
|
3693
|
+
/>
|
|
3694
|
+
<path fill="var(--os-gray-600)" d="M2,2 v44 h1 v-44 M3,45 h42 v1 h-42"/>
|
|
3645
3695
|
</svg>
|
|
3646
3696
|
</t>
|
|
3647
3697
|
<t t-name="o-spreadsheet-ChartPreview.POPULATION_PYRAMID_CHART">
|
|
3648
3698
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3649
|
-
<path fill="
|
|
3650
|
-
<path fill="
|
|
3651
|
-
<path fill="
|
|
3652
|
-
<path fill="
|
|
3653
|
-
<path fill="
|
|
3654
|
-
<path fill="
|
|
3655
|
-
<path fill="
|
|
3656
|
-
<path fill="
|
|
3657
|
-
<path fill="
|
|
3658
|
-
<path fill="
|
|
3659
|
-
|
|
3660
|
-
<path fill="
|
|
3661
|
-
<path fill="
|
|
3662
|
-
<path fill="
|
|
3663
|
-
<path fill="
|
|
3664
|
-
<path fill="
|
|
3665
|
-
<path fill="
|
|
3666
|
-
<path fill="
|
|
3667
|
-
<path fill="
|
|
3668
|
-
<path fill="
|
|
3669
|
-
<path fill="
|
|
3670
|
-
|
|
3671
|
-
<path fill="
|
|
3699
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M23,43 v-6 h22 v6"/>
|
|
3700
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M23,42 v-4 h21 v4"/>
|
|
3701
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M23,36 v-6 h18 v6"/>
|
|
3702
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M23,35 v-4 h17 v4"/>
|
|
3703
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M23,29 v-6 h12 v6"/>
|
|
3704
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M23,28 v-4 h11 v4"/>
|
|
3705
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M23,22 v-6 h8 v6"/>
|
|
3706
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M23,21 v-4 h7 v4"/>
|
|
3707
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M23,15 v-6 h4 v6"/>
|
|
3708
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M23,14 v-4 h3 v4"/>
|
|
3709
|
+
|
|
3710
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M24,43 v-6 h-20 v6"/>
|
|
3711
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M24,42 v-4 h-19 v4"/>
|
|
3712
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M24,36 v-6 h-18 v6"/>
|
|
3713
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M24,35 v-4 h-17 v4"/>
|
|
3714
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M24,29 v-6 h-12 v6"/>
|
|
3715
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M24,28 v-4 h-11 v4"/>
|
|
3716
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M24,22 v-6 h-6 v6"/>
|
|
3717
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M24,21 v-4 h-5 v4"/>
|
|
3718
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M24,15 v-6 h-4 v6"/>
|
|
3719
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M24,14 v-4 h-3 v4"/>
|
|
3720
|
+
|
|
3721
|
+
<path fill="var(--os-gray-600)" d="M23,2 v43 h1 v-43 M2,45 h44 v1 h-44"/>
|
|
3672
3722
|
</svg>
|
|
3673
3723
|
</t>
|
|
3674
3724
|
<t t-name="o-spreadsheet-ChartPreview.RADAR_CHART">
|
|
3675
3725
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3676
|
-
<path fill="none" stroke="#0074d9" d="m24 16 14.27 3.36-1.93 21.63-18.22-8.9-3.63-11.18Z"/>
|
|
3677
|
-
<path fill="none" stroke="#eb6d00" d="m24 4 7.61 17.53-4.67 6.52-12.34 8.89-7.72-18.5Z"/>
|
|
3678
3726
|
<path
|
|
3679
3727
|
fill="none"
|
|
3680
|
-
stroke="
|
|
3728
|
+
stroke="var(--os-chart-preview-blue-line)"
|
|
3729
|
+
d="m24 16 14.27 3.36-1.93 21.63-18.22-8.9-3.63-11.18Z"
|
|
3730
|
+
/>
|
|
3731
|
+
<path
|
|
3732
|
+
fill="none"
|
|
3733
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3734
|
+
d="m24 4 7.61 17.53-4.67 6.52-12.34 8.89-7.72-18.5Z"
|
|
3735
|
+
/>
|
|
3736
|
+
<path
|
|
3737
|
+
fill="none"
|
|
3738
|
+
stroke="var(--os-gray-600)"
|
|
3681
3739
|
d="M24 2v22l20.92-6.8L24 24l12.93 17.8L24 24 11.07 41.8 24 24 3.08 17.2"
|
|
3682
3740
|
/>
|
|
3683
3741
|
</svg>
|
|
@@ -3685,14 +3743,20 @@
|
|
|
3685
3743
|
<t t-name="o-spreadsheet-ChartPreview.FILLED_RADAR_CHART">
|
|
3686
3744
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3687
3745
|
<path
|
|
3688
|
-
fill="
|
|
3689
|
-
|
|
3746
|
+
fill="var(--os-chart-preview-blue-line)"
|
|
3747
|
+
fill-opacity="0.25"
|
|
3748
|
+
stroke="var(--os-chart-preview-blue-line)"
|
|
3690
3749
|
d="m24 16 14.27 3.36-1.93 21.63-18.22-8.9-3.63-11.18Z"
|
|
3691
3750
|
/>
|
|
3692
|
-
<path
|
|
3751
|
+
<path
|
|
3752
|
+
fill="var(--os-chart-preview-orange-line)"
|
|
3753
|
+
fill-opacity="0.25"
|
|
3754
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3755
|
+
d="m24 4 7.61 17.53-4.67 6.52-12.34 8.89-7.72-18.5Z"
|
|
3756
|
+
/>
|
|
3693
3757
|
<path
|
|
3694
3758
|
fill="none"
|
|
3695
|
-
stroke="
|
|
3759
|
+
stroke="var(--os-gray-600)"
|
|
3696
3760
|
d="M24 2v22l20.92-6.8L24 24l12.93 17.8L24 24 11.07 41.8 24 24 3.08 17.2"
|
|
3697
3761
|
/>
|
|
3698
3762
|
</svg>
|
|
@@ -3705,70 +3769,206 @@
|
|
|
3705
3769
|
fill="none"
|
|
3706
3770
|
stroke-width="0.5"
|
|
3707
3771
|
stroke-linejoin="round">
|
|
3708
|
-
<circle cx="16" cy="16" r="13" fill="
|
|
3772
|
+
<circle cx="16" cy="16" r="13" fill="var(--os-chart-preview-blue-fill)"/>
|
|
3709
3773
|
<path
|
|
3710
|
-
stroke="
|
|
3711
|
-
fill="
|
|
3774
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3775
|
+
fill="var(--os-chart-preview-orange-fill)"
|
|
3712
3776
|
d="M12.225 16.293c0 6.8 4 9 5 9 3.5 0 2-5.293 3.5-6.793s5-.707 5-4.207-2-5-5-5c-5 0-8.5 1.5-8.5 7z"
|
|
3713
3777
|
/>
|
|
3714
3778
|
<path
|
|
3715
|
-
fill="
|
|
3779
|
+
fill="var(--os-chart-preview-orange-fill)"
|
|
3716
3780
|
d="M21.5 4.4c0 1.167-1.735 1.5-3 1.5-5.217 0-10.705 3.48-11.421 8.004C6.992 14.549 6.552 15 6 15H3.07 A 13 13 0 0 1 21.5 4.2
|
|
3717
3781
|
M3.8 20.5c.785.262 2.126 1.285 3.44 1.517.57.101 1.153.464 1.299 1.023.303 1.16.548 1.992-.239 3.58 A 13 13 0 0 1 3.8 20.5"
|
|
3718
3782
|
/>
|
|
3719
3783
|
<path
|
|
3720
|
-
stroke="
|
|
3784
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3721
3785
|
d="M21.5 4.4c0 1.167-1.735 1.5-3 1.5-5.217 0-10.705 3.48-11.421 8.004C6.992 14.549 6.552 15 6 15H3.07
|
|
3722
3786
|
M3.8 20.5c.785.262 2.126 1.285 3.44 1.517.57.101 1.153.464 1.299 1.023.303 1.16.548 1.992-.239 3.58"
|
|
3723
3787
|
/>
|
|
3724
|
-
<circle cx="16" cy="16" r="13" stroke="
|
|
3788
|
+
<circle cx="16" cy="16" r="13" stroke="var(--os-gray-600)"/>
|
|
3725
3789
|
</svg>
|
|
3726
3790
|
</t>
|
|
3727
3791
|
<t t-name="o-spreadsheet-ChartPreview.FUNNEL_CHART">
|
|
3728
3792
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3729
|
-
<path
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3793
|
+
<path
|
|
3794
|
+
stroke="var(--os-chart-preview-blue-line)"
|
|
3795
|
+
fill="var(--os-chart-preview-blue-fill)"
|
|
3796
|
+
d="M2.5,6.5 h44 l-5,7 h-34 l-5,-7 h1"
|
|
3797
|
+
/>
|
|
3798
|
+
<path
|
|
3799
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3800
|
+
fill="var(--os-chart-preview-orange-fill)"
|
|
3801
|
+
d="M9.5,16.5 h30 l-3,7 h-25 l-3,-7 h1"
|
|
3802
|
+
/>
|
|
3803
|
+
<path
|
|
3804
|
+
stroke="var(--os-chart-preview-blue-line)"
|
|
3805
|
+
fill="var(--os-chart-preview-blue-fill)"
|
|
3806
|
+
d="M12.5,26.5 h23 l-8,7 h-7 l-8,-7 h1"
|
|
3807
|
+
/>
|
|
3808
|
+
<path
|
|
3809
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3810
|
+
fill="var(--os-chart-preview-orange-fill)"
|
|
3811
|
+
d="M21.5,35.5 h5 l-2.5,7 l-2.5,-7 h1"
|
|
3812
|
+
/>
|
|
3733
3813
|
</svg>
|
|
3734
3814
|
</t>
|
|
3735
3815
|
<t t-name="o-spreadsheet-ChartPreview.SUNBURST_CHART">
|
|
3736
3816
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3737
3817
|
<path
|
|
3738
|
-
fill="
|
|
3739
|
-
stroke="
|
|
3818
|
+
fill="var(--os-chart-preview-orange-fill)"
|
|
3819
|
+
stroke="var(--os-chart-preview-orange-line)"
|
|
3740
3820
|
d="M24,12 v8A4,4,0,1,0,27.46,26 L41.32, 34 A20,20,0,0,1,8.679,36.856 L14.807,31.713 A12,12,0,0,1,24,12 M34.4,30 A12,12,0,0,1,14.807,31.713"
|
|
3741
3821
|
/>
|
|
3742
3822
|
<path
|
|
3743
|
-
fill="
|
|
3744
|
-
stroke="
|
|
3823
|
+
fill="var(--os-chart-preview-blue-fill)"
|
|
3824
|
+
stroke="var(--os-chart-preview-blue-line)"
|
|
3745
3825
|
d="M24,20 v-16 A20 20, 0, 0, 1, 41.32, 34 L27.46,26 A4,4,0,0,0,24,20 M24,12 A12,12,0,0,1,34.4,30 M33.193,16.287 L39.321,11.144 M36,24 L44,24"
|
|
3746
3826
|
/>
|
|
3747
3827
|
</svg>
|
|
3748
3828
|
</t>
|
|
3749
3829
|
<t t-name="o-spreadsheet-ChartPreview.TREE_MAP_CHART">
|
|
3750
3830
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3751
|
-
<path fill="
|
|
3752
|
-
<path fill="
|
|
3753
|
-
<path fill="
|
|
3754
|
-
<path fill="
|
|
3755
|
-
<path fill="
|
|
3756
|
-
<path fill="
|
|
3757
|
-
<path fill="
|
|
3758
|
-
<path fill="
|
|
3759
|
-
<path fill="
|
|
3760
|
-
<path fill="
|
|
3761
|
-
<path fill="
|
|
3831
|
+
<path fill="var(--os-gray-600)" d="M2,4 h44 v5 h-44"/>
|
|
3832
|
+
<path fill="var(--os-gray-600)" d="M2,10 h28 v5 h-28"/>
|
|
3833
|
+
<path fill="var(--os-gray-600)" d="M31,10 h15 v5 h-15"/>
|
|
3834
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M2,16 h28 v14 h-28"/>
|
|
3835
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M3,17 h26 v12 h-26"/>
|
|
3836
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M2,31 h15 v12 h-15"/>
|
|
3837
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M3,32 h13 v10 h-13"/>
|
|
3838
|
+
<path fill="var(--os-chart-preview-blue-line)" d="M18,31 h12 v12 h-12"/>
|
|
3839
|
+
<path fill="var(--os-chart-preview-blue-fill)" d="M19,32 h10 v10 h-10"/>
|
|
3840
|
+
<path fill="var(--os-chart-preview-orange-line)" d="M31,16 h15 v27 h-15"/>
|
|
3841
|
+
<path fill="var(--os-chart-preview-orange-fill)" d="M32,17 h13 v25 h-13"/>
|
|
3842
|
+
</svg>
|
|
3843
|
+
</t>
|
|
3844
|
+
<t t-name="o-spreadsheet-ChartPreview.CALENDAR_CHART">
|
|
3845
|
+
<svg class="o-chart-preview" viewBox="0 0 48 48">
|
|
3846
|
+
<path fill="var(--os-gray-600)" d="M3 3h42v42H3zh1v41h40V4H4"/>
|
|
3847
|
+
<path
|
|
3848
|
+
fill="var(--os-chart-preview-orange-line)"
|
|
3849
|
+
d="M7 7h7v7H7m0 2h7v7H7m0 2h7v7H7m0 2h7v7H7m9-34h7v7h-7m0 2h7v7h-7m0 2h7v7h-7m0 2h7v7h-7m9-34h7v7h-7m0 11h7v7h-7m0 2h7v7h-7m9-34h7v7h-7m0 2h7v7h-7m0 2h7v7h-7m0 2h7v7h-7"
|
|
3850
|
+
/>
|
|
3851
|
+
<path
|
|
3852
|
+
fill="var(--os-chart-preview-orange-fill)"
|
|
3853
|
+
d="M8 8h5v5H8m0 13h5v5H8m9 4h5v5h-5m18-5h5v5h-5"
|
|
3854
|
+
/>
|
|
3855
|
+
<path
|
|
3856
|
+
fill="var(--os-chart-preview-orange-light)"
|
|
3857
|
+
d="M8 17h5v5H8m9-14h5v5h-5m0 13h5v5h-5m9 4h5v5h-5m9-32h5v5h-5m0 13h5v5h-5"
|
|
3858
|
+
/>
|
|
3859
|
+
<path fill="var(--os-white-bg)" d="M8 35h5v5H8"/>
|
|
3860
|
+
<path fill="var(--os-chart-preview-orange-dark)" d="M25 16h7v7h-7"/>
|
|
3762
3861
|
</svg>
|
|
3763
3862
|
</t>
|
|
3764
3863
|
|
|
3864
|
+
<t t-name="o-spreadsheet-CalendarChartDesignPanel">
|
|
3865
|
+
<GeneralDesignEditor t-props="props">
|
|
3866
|
+
<t t-set-slot="general-extension">
|
|
3867
|
+
<Section class="'pt-0'" title.translate="Legend position">
|
|
3868
|
+
<select
|
|
3869
|
+
t-att-value="props.definition.legendPosition ?? 'bottom-left'"
|
|
3870
|
+
class="o-input o-chart-legend-position"
|
|
3871
|
+
t-on-change="this.updateLegendPosition">
|
|
3872
|
+
<option value="none">None</option>
|
|
3873
|
+
<option value="right">Right</option>
|
|
3874
|
+
<option value="left">Left</option>
|
|
3875
|
+
</select>
|
|
3876
|
+
</Section>
|
|
3877
|
+
<Section class="'pt-0'" title.translate="Values">
|
|
3878
|
+
<ChartShowValues t-props="props"/>
|
|
3879
|
+
</Section>
|
|
3880
|
+
</t>
|
|
3881
|
+
</GeneralDesignEditor>
|
|
3882
|
+
<SidePanelCollapsible isInitiallyCollapsed="false" title.translate="Calendar chart options">
|
|
3883
|
+
<t t-set-slot="content">
|
|
3884
|
+
<ColorScalePicker definition="props.definition" onUpdateColorScale.bind="onColormapChange"/>
|
|
3885
|
+
<Section class="'pt-0 o-missing-value'" title.translate="Missing value color">
|
|
3886
|
+
<RoundColorPicker
|
|
3887
|
+
currentColor="selectedMissingValueColor"
|
|
3888
|
+
onColorPicked.bind="updateMissingValueColor"
|
|
3889
|
+
/>
|
|
3890
|
+
</Section>
|
|
3891
|
+
</t>
|
|
3892
|
+
</SidePanelCollapsible>
|
|
3893
|
+
<SidePanelCollapsible isInitiallyCollapsed="true" title.translate="Axes">
|
|
3894
|
+
<t t-set-slot="content">
|
|
3895
|
+
<AxisDesignEditor
|
|
3896
|
+
axesList="axesList"
|
|
3897
|
+
chartId="props.chartId"
|
|
3898
|
+
definition="props.definition"
|
|
3899
|
+
updateChart="props.updateChart"
|
|
3900
|
+
/>
|
|
3901
|
+
</t>
|
|
3902
|
+
</SidePanelCollapsible>
|
|
3903
|
+
</t>
|
|
3904
|
+
|
|
3905
|
+
<t t-name="o-spreadsheet-CalendarChartConfigPanel">
|
|
3906
|
+
<div>
|
|
3907
|
+
<ChartDataSeries
|
|
3908
|
+
ranges="this.getDataSeriesRanges()"
|
|
3909
|
+
onSelectionChanged.bind="onDataSeriesRangesChanged"
|
|
3910
|
+
onSelectionConfirmed.bind="onDataSeriesConfirmed"
|
|
3911
|
+
onSelectionReordered.bind="onDataSeriesReordered"
|
|
3912
|
+
onSelectionRemoved.bind="onDataSeriesRemoved"
|
|
3913
|
+
maxNumberOfUsedRanges="1"
|
|
3914
|
+
canChangeDatasetOrientation="false"
|
|
3915
|
+
/>
|
|
3916
|
+
<ChartLabelRange
|
|
3917
|
+
range="this.getLabelRange()"
|
|
3918
|
+
isInvalid="isLabelInvalid"
|
|
3919
|
+
onSelectionChanged.bind="onLabelRangeChanged"
|
|
3920
|
+
onSelectionConfirmed.bind="onLabelRangeConfirmed"
|
|
3921
|
+
options="this.getLabelRangeOptions()"
|
|
3922
|
+
title.translate="Date range"
|
|
3923
|
+
/>
|
|
3924
|
+
|
|
3925
|
+
<Section title.translate="Fields to group by">
|
|
3926
|
+
<div class="d-flex">
|
|
3927
|
+
<span class="w-100">Horizontal axis</span>
|
|
3928
|
+
<select
|
|
3929
|
+
t-att-value="getGroupByType('horizontal')"
|
|
3930
|
+
class="o-input o-horizontal-group-by"
|
|
3931
|
+
t-on-change="ev => this.updateGroupBy('horizontal', ev.target.value)">
|
|
3932
|
+
<t t-foreach="getGroupByOptions()" t-as="groupBy" t-key="groupBy.value">
|
|
3933
|
+
<option
|
|
3934
|
+
t-att-selected="getGroupByType('horizontal') === groupBy.value"
|
|
3935
|
+
t-att-value="groupBy.value">
|
|
3936
|
+
<t t-esc="groupBy.label"/>
|
|
3937
|
+
</option>
|
|
3938
|
+
</t>
|
|
3939
|
+
</select>
|
|
3940
|
+
</div>
|
|
3941
|
+
<div class="d-flex">
|
|
3942
|
+
<span class="w-100">Vertical axis</span>
|
|
3943
|
+
<select
|
|
3944
|
+
t-att-value="getGroupByType('vertical')"
|
|
3945
|
+
class="o-input o-vertical-group-by"
|
|
3946
|
+
t-on-change="ev => this.updateGroupBy('vertical', ev.target.value)">
|
|
3947
|
+
<t t-foreach="getGroupByOptions()" t-as="groupBy" t-key="groupBy.value">
|
|
3948
|
+
<option
|
|
3949
|
+
t-att-selected="getGroupByType('vertical') === groupBy.value"
|
|
3950
|
+
t-att-value="groupBy.value">
|
|
3951
|
+
<t t-esc="groupBy.label"/>
|
|
3952
|
+
</option>
|
|
3953
|
+
</t>
|
|
3954
|
+
</select>
|
|
3955
|
+
</div>
|
|
3956
|
+
</Section>
|
|
3957
|
+
|
|
3958
|
+
<ChartErrorSection t-if="errorMessages.length" messages="errorMessages"/>
|
|
3959
|
+
</div>
|
|
3960
|
+
</t>
|
|
3961
|
+
|
|
3765
3962
|
<t t-name="o-spreadsheet.TextStyler">
|
|
3766
3963
|
<div
|
|
3767
3964
|
class="o-chart-title-designer position-relative d-flex align-items-center"
|
|
3768
3965
|
t-att-class="props.class">
|
|
3769
3966
|
<ActionButton action="boldButtonAction" class="'o-hoverable-button'"/>
|
|
3770
3967
|
<ActionButton action="italicButtonAction" class="'o-hoverable-button'"/>
|
|
3771
|
-
<div
|
|
3968
|
+
<div
|
|
3969
|
+
class="o-divider border-start"
|
|
3970
|
+
t-if="props.hasHorizontalAlign || props.hasVerticalAlign"
|
|
3971
|
+
/>
|
|
3772
3972
|
<div class="o-dropdown position-relative" t-if="props.hasHorizontalAlign">
|
|
3773
3973
|
<ActionButton
|
|
3774
3974
|
action="horizontalAlignButtonAction"
|
|
@@ -3807,13 +4007,13 @@
|
|
|
3807
4007
|
</div>
|
|
3808
4008
|
</div>
|
|
3809
4009
|
</div>
|
|
3810
|
-
<div class="o-divider"/>
|
|
4010
|
+
<div class="o-divider border-start"/>
|
|
3811
4011
|
<FontSizeEditor
|
|
3812
4012
|
currentFontSize="currentFontSize"
|
|
3813
4013
|
onFontSizeChanged.bind="this.updateFontSize"
|
|
3814
4014
|
class="'o-hoverable-button'"
|
|
3815
4015
|
/>
|
|
3816
|
-
<div class="o-divider"/>
|
|
4016
|
+
<div class="o-divider border-start"/>
|
|
3817
4017
|
<ColorPickerWidget
|
|
3818
4018
|
currentColor="props.style.color ?? props.defaultStyle?.color"
|
|
3819
4019
|
toggleColorPicker="(ev) => this.toggleDropdownTool('fillChartColorTool', ev)"
|
|
@@ -3910,11 +4110,11 @@
|
|
|
3910
4110
|
</div>
|
|
3911
4111
|
<div class="w-50 ms-3" t-if="trendType === 'trailingMovingAverage'">
|
|
3912
4112
|
<span class="o-section-subtitle">Window</span>
|
|
3913
|
-
<
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
4113
|
+
<NumberInput
|
|
4114
|
+
value="trend.window || this.defaultWindowSize"
|
|
4115
|
+
class="'w-100 trend-window-input'"
|
|
4116
|
+
min="2"
|
|
4117
|
+
onChange="(value) => this.onChangeMovingAverageWindow(index, value)"
|
|
3918
4118
|
/>
|
|
3919
4119
|
</div>
|
|
3920
4120
|
<div class="w-50 ms-3" t-if="trendType === 'polynomial'">
|
|
@@ -3987,13 +4187,12 @@
|
|
|
3987
4187
|
<t t-name="o-spreadsheet.PieHoleSize">
|
|
3988
4188
|
<Section class="'pt-0'" title.translate="Center radius">
|
|
3989
4189
|
<div class="d-flex flex-row">
|
|
3990
|
-
<
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
class="o-input o-pie-hole-size-input"
|
|
4190
|
+
<NumberInput
|
|
4191
|
+
value="props.value"
|
|
4192
|
+
class="'o-pie-hole-size-input'"
|
|
3994
4193
|
min="0"
|
|
3995
4194
|
max="95"
|
|
3996
|
-
|
|
4195
|
+
onChange.bind="onChange"
|
|
3997
4196
|
/>
|
|
3998
4197
|
%
|
|
3999
4198
|
</div>
|
|
@@ -4040,7 +4239,8 @@
|
|
|
4040
4239
|
<t t-name="o-spreadsheet-ChartHumanizeNumbers">
|
|
4041
4240
|
<Checkbox
|
|
4042
4241
|
name="'humanizeNumbers'"
|
|
4043
|
-
label.translate="
|
|
4242
|
+
label.translate="Use compact format"
|
|
4243
|
+
title="title"
|
|
4044
4244
|
value="props.definition.humanize ?? true"
|
|
4045
4245
|
onChange="(humanize) => props.updateChart(this.props.chartId, { humanize })"
|
|
4046
4246
|
/>
|
|
@@ -4138,14 +4338,92 @@
|
|
|
4138
4338
|
</Section>
|
|
4139
4339
|
</t>
|
|
4140
4340
|
|
|
4341
|
+
<t t-name="o-spreadsheet-ColorScalePicker">
|
|
4342
|
+
<Section class="'pt-0 o-color-scale'" title.translate="Color Scale">
|
|
4343
|
+
<div class="w-100" style="position:relative">
|
|
4344
|
+
<div
|
|
4345
|
+
class="color-scale-container d-flex justify-content-end"
|
|
4346
|
+
t-on-click.stop="onPointerDown">
|
|
4347
|
+
<span class="color-scale-label">
|
|
4348
|
+
<t t-esc="currentColorScaleLabel"/>
|
|
4349
|
+
</span>
|
|
4350
|
+
<div
|
|
4351
|
+
class="color-scale-preview w-100"
|
|
4352
|
+
t-att-data-test-colorscale="selectedColorScale"
|
|
4353
|
+
t-att-style="currentColorScaleStyle"
|
|
4354
|
+
/>
|
|
4355
|
+
<span class="ms-1">
|
|
4356
|
+
<t t-call="o-spreadsheet-Icon.CARET_DOWN"/>
|
|
4357
|
+
</span>
|
|
4358
|
+
</div>
|
|
4359
|
+
<Popover t-if="state.popoverProps" t-props="state.popoverProps">
|
|
4360
|
+
<table t-ref="popoverRef" class="bg-white" t-att-style="state.popoverStyle">
|
|
4361
|
+
<tr
|
|
4362
|
+
class="color-scale-container custom-color-scale-container"
|
|
4363
|
+
t-on-click="() => this.onColorScaleChange('custom')">
|
|
4364
|
+
<td class="p-1 text-end">Custom</td>
|
|
4365
|
+
<td class="w-100 p-1">
|
|
4366
|
+
<div
|
|
4367
|
+
class="color-scale-preview o-checkers-background"
|
|
4368
|
+
data-test-id="custom-color-scale"
|
|
4369
|
+
/>
|
|
4370
|
+
</td>
|
|
4371
|
+
</tr>
|
|
4372
|
+
<t t-foreach="colorScales" t-as="colorScale" t-key="colorScale.value">
|
|
4373
|
+
<tr
|
|
4374
|
+
class="color-scale-container"
|
|
4375
|
+
t-on-click="() => this.onColorScaleChange(colorScale.value)"
|
|
4376
|
+
t-att-title="colorScale.label">
|
|
4377
|
+
<td class="p-1 text-end">
|
|
4378
|
+
<t t-esc="colorScale.label"/>
|
|
4379
|
+
</td>
|
|
4380
|
+
<td class="w-100 p-1">
|
|
4381
|
+
<div
|
|
4382
|
+
class="color-scale-preview"
|
|
4383
|
+
t-att-data-test-id="colorScale.className"
|
|
4384
|
+
t-att-style="colorScalePreviewStyle(colorScale.value)"
|
|
4385
|
+
/>
|
|
4386
|
+
</td>
|
|
4387
|
+
</tr>
|
|
4388
|
+
</t>
|
|
4389
|
+
</table>
|
|
4390
|
+
</Popover>
|
|
4391
|
+
</div>
|
|
4392
|
+
<div class="ps-3 mt-2">
|
|
4393
|
+
<div class="o-min-color d-flex align-items-center mb-2">
|
|
4394
|
+
<RoundColorPicker
|
|
4395
|
+
currentColor="currentColorScale.minColor"
|
|
4396
|
+
onColorPicked="(color) => this.setCustomColorScaleColor('minColor', color)"
|
|
4397
|
+
disableNoColor="true"
|
|
4398
|
+
/>
|
|
4399
|
+
<span class="ps-2">Color of minimum values</span>
|
|
4400
|
+
</div>
|
|
4401
|
+
<div class="o-mid-color d-flex align-items-center mb-2">
|
|
4402
|
+
<RoundColorPicker
|
|
4403
|
+
currentColor="currentColorScale.midColor"
|
|
4404
|
+
onColorPicked="(color) => this.setCustomColorScaleColor('midColor', color)"
|
|
4405
|
+
/>
|
|
4406
|
+
<span class="ps-2">Color of middle values</span>
|
|
4407
|
+
</div>
|
|
4408
|
+
<div class="o-max-color d-flex align-items-center">
|
|
4409
|
+
<RoundColorPicker
|
|
4410
|
+
currentColor="currentColorScale.maxColor"
|
|
4411
|
+
onColorPicked="(color) => this.setCustomColorScaleColor('maxColor', color)"
|
|
4412
|
+
disableNoColor="true"
|
|
4413
|
+
/>
|
|
4414
|
+
<span class="ps-2">Color of maximum values</span>
|
|
4415
|
+
</div>
|
|
4416
|
+
</div>
|
|
4417
|
+
</Section>
|
|
4418
|
+
</t>
|
|
4419
|
+
|
|
4141
4420
|
<t t-name="o-spreadsheet.ChartTitle">
|
|
4142
4421
|
<Section class="'o-chart-title'" title="props.name">
|
|
4143
|
-
<
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
t-att-placeholder="props.placeholder"
|
|
4422
|
+
<TextInput
|
|
4423
|
+
value="props.title"
|
|
4424
|
+
onChange.bind="updateTitle"
|
|
4425
|
+
placeholder="props.placeholder"
|
|
4426
|
+
alwaysShowBorder="true"
|
|
4149
4427
|
/>
|
|
4150
4428
|
<TextStyler
|
|
4151
4429
|
style="props.style"
|
|
@@ -4171,10 +4449,45 @@
|
|
|
4171
4449
|
updateStyle.bind="updateAxisTitleStyle"
|
|
4172
4450
|
name="editor_label"
|
|
4173
4451
|
style="axisTitleStyle"
|
|
4452
|
+
placeholder.translate="Add a Title"
|
|
4174
4453
|
defaultStyle="{align: 'center', color: '', fontSize: defaultFontSize}"
|
|
4175
4454
|
/>
|
|
4176
4455
|
</t>
|
|
4177
4456
|
|
|
4457
|
+
<t t-name="o-spreadsheet-BarChartDesignPanel">
|
|
4458
|
+
<GeneralDesignEditor t-props="props">
|
|
4459
|
+
<t t-set-slot="general-extension">
|
|
4460
|
+
<ChartLegend t-props="props"/>
|
|
4461
|
+
<Section class="'pt-0'" title.translate="Values">
|
|
4462
|
+
<ChartShowValues t-props="props"/>
|
|
4463
|
+
</Section>
|
|
4464
|
+
<Section t-if="isZoomable" class="'pt-0'" title.translate="Zoom">
|
|
4465
|
+
<Checkbox
|
|
4466
|
+
name="'zoomable'"
|
|
4467
|
+
label.translate="Show slicer"
|
|
4468
|
+
value="props.definition.zoomable"
|
|
4469
|
+
onChange.bind="onToggleZoom"
|
|
4470
|
+
className="'mb-2'"
|
|
4471
|
+
/>
|
|
4472
|
+
</Section>
|
|
4473
|
+
<Section class="'pt-0'" title.translate="Number formatting">
|
|
4474
|
+
<ChartHumanizeNumbers t-props="props"/>
|
|
4475
|
+
</Section>
|
|
4476
|
+
</t>
|
|
4477
|
+
</GeneralDesignEditor>
|
|
4478
|
+
<SeriesWithAxisDesignEditor t-props="props"/>
|
|
4479
|
+
<SidePanelCollapsible isInitiallyCollapsed="true" title.translate="Axes">
|
|
4480
|
+
<t t-set-slot="content">
|
|
4481
|
+
<AxisDesignEditor
|
|
4482
|
+
axesList="axesList"
|
|
4483
|
+
chartId="props.chartId"
|
|
4484
|
+
definition="props.definition"
|
|
4485
|
+
updateChart="props.updateChart"
|
|
4486
|
+
/>
|
|
4487
|
+
</t>
|
|
4488
|
+
</SidePanelCollapsible>
|
|
4489
|
+
</t>
|
|
4490
|
+
|
|
4178
4491
|
<t t-name="o-spreadsheet-BarConfigPanel">
|
|
4179
4492
|
<div>
|
|
4180
4493
|
<Section class="'pt-0'">
|
|
@@ -4215,6 +4528,7 @@
|
|
|
4215
4528
|
onChange.bind="updateTitleText"
|
|
4216
4529
|
placeholder.translate="Add a Title"
|
|
4217
4530
|
alwaysShowBorder="true"
|
|
4531
|
+
selectContentOnFocus="true"
|
|
4218
4532
|
/>
|
|
4219
4533
|
<TextStyler
|
|
4220
4534
|
style="title ?? {}"
|
|
@@ -4226,7 +4540,7 @@
|
|
|
4226
4540
|
<div class="o-section pb-1 pt-0">
|
|
4227
4541
|
<div class="o-section-title">Carousel Sections</div>
|
|
4228
4542
|
</div>
|
|
4229
|
-
<div class="o-carousel-preview-list overflow-auto" t-ref="previewList">
|
|
4543
|
+
<div class="o-carousel-preview-list overflow-auto bg-white" t-ref="previewList">
|
|
4230
4544
|
<t t-foreach="carouselItems" t-as="item" t-key="getItemId(item)">
|
|
4231
4545
|
<div
|
|
4232
4546
|
class="o-carousel-preview border-bottom pe-2 position-relative w-100 d-flex align-items-center"
|
|
@@ -4248,6 +4562,7 @@
|
|
|
4248
4562
|
<TextInput
|
|
4249
4563
|
value="getItemTitle(item)"
|
|
4250
4564
|
onChange="(newName) => this.renameCarouselItem(item, newName)"
|
|
4565
|
+
selectContentOnFocus="true"
|
|
4251
4566
|
/>
|
|
4252
4567
|
</div>
|
|
4253
4568
|
<div class="ms-auto"/>
|
|
@@ -4436,9 +4751,66 @@
|
|
|
4436
4751
|
</span>
|
|
4437
4752
|
</t>
|
|
4438
4753
|
|
|
4754
|
+
<t t-name="o-spreadsheet-NumberInput">
|
|
4755
|
+
<input
|
|
4756
|
+
type="number"
|
|
4757
|
+
t-ref="{{refName}}"
|
|
4758
|
+
t-att-class="inputClass"
|
|
4759
|
+
t-att-id="props.id"
|
|
4760
|
+
t-att-placeholder="props.placeholder"
|
|
4761
|
+
t-on-change="save"
|
|
4762
|
+
t-on-blur="save"
|
|
4763
|
+
t-on-pointerdown="onMouseDown"
|
|
4764
|
+
t-on-pointerup="onMouseUp"
|
|
4765
|
+
t-on-keydown="onKeyDown"
|
|
4766
|
+
t-att-min="props.min"
|
|
4767
|
+
t-att-max="props.max"
|
|
4768
|
+
/>
|
|
4769
|
+
</t>
|
|
4770
|
+
|
|
4771
|
+
<t t-name="o-spreadsheet-NumberEditor">
|
|
4772
|
+
<div class="o-dropdown" t-ref="NumberEditor">
|
|
4773
|
+
<div
|
|
4774
|
+
class="o-number-editor d-flex align-items-center"
|
|
4775
|
+
t-att-class="props.class"
|
|
4776
|
+
t-att-title="props.title"
|
|
4777
|
+
t-on-click.stop="this.toggleList">
|
|
4778
|
+
<input
|
|
4779
|
+
type="number"
|
|
4780
|
+
t-att-min="props.min"
|
|
4781
|
+
t-att-max="props.max"
|
|
4782
|
+
class="o-font-size o-number-input bg-transparent border-0"
|
|
4783
|
+
t-on-keydown="onInputKeydown"
|
|
4784
|
+
t-on-wheel.prevent.stop=""
|
|
4785
|
+
t-on-click.stop="props.onFocusInput"
|
|
4786
|
+
t-on-focus.stop="onInputFocused"
|
|
4787
|
+
t-on-change="setValueFromInput"
|
|
4788
|
+
t-ref="inputNumber"
|
|
4789
|
+
/>
|
|
4790
|
+
<t t-esc="props.valueIcon"/>
|
|
4791
|
+
<span>
|
|
4792
|
+
<t t-call="o-spreadsheet-Icon.CARET_DOWN"/>
|
|
4793
|
+
</span>
|
|
4794
|
+
</div>
|
|
4795
|
+
<Popover t-if="dropdown.isOpen" t-props="popoverProps">
|
|
4796
|
+
<div class="o-text-options bg-white" t-on-click.stop="" t-ref="numberList">
|
|
4797
|
+
<t t-foreach="props.valueList" t-as="value" t-key="value">
|
|
4798
|
+
<div t-att-data-size="value" t-on-click="() => this.setValueFromList(value)">
|
|
4799
|
+
<t t-esc="value"/>
|
|
4800
|
+
<t t-esc="props.valueIcon"/>
|
|
4801
|
+
</div>
|
|
4802
|
+
</t>
|
|
4803
|
+
</div>
|
|
4804
|
+
</Popover>
|
|
4805
|
+
</div>
|
|
4806
|
+
</t>
|
|
4807
|
+
|
|
4439
4808
|
<t t-name="o-spreadsheet-Menu-Popover">
|
|
4440
4809
|
<Popover t-if="props.menuItems" t-props="popoverProps">
|
|
4441
|
-
<div
|
|
4810
|
+
<div
|
|
4811
|
+
t-ref="menu"
|
|
4812
|
+
class="o-menu-wrapper bg-white"
|
|
4813
|
+
t-on-mouseover="() => this.onMouseOverMainMenu()">
|
|
4442
4814
|
<Menu t-props="menuProps"/>
|
|
4443
4815
|
</div>
|
|
4444
4816
|
<MenuPopover
|
|
@@ -4460,7 +4832,7 @@
|
|
|
4460
4832
|
<t t-name="o-spreadsheet-Menu">
|
|
4461
4833
|
<div
|
|
4462
4834
|
t-ref="menu"
|
|
4463
|
-
class="o-menu"
|
|
4835
|
+
class="o-menu bg-white"
|
|
4464
4836
|
t-att-style="menuStyle"
|
|
4465
4837
|
t-on-scroll="props.onScroll"
|
|
4466
4838
|
t-on-wheel.stop=""
|
|
@@ -4468,7 +4840,7 @@
|
|
|
4468
4840
|
t-on-click.stop=""
|
|
4469
4841
|
t-on-contextmenu.prevent="">
|
|
4470
4842
|
<t t-foreach="menuItemsAndSeparators" t-as="menuItem" t-key="menuItem_index">
|
|
4471
|
-
<div t-if="menuItem === 'separator'" class="o-separator"/>
|
|
4843
|
+
<div t-if="menuItem === 'separator'" class="o-separator border-bottom"/>
|
|
4472
4844
|
<t t-else="">
|
|
4473
4845
|
<t t-set="isMenuRoot" t-value="isRoot(menuItem)"/>
|
|
4474
4846
|
<t t-set="isMenuEnabled" t-value="isEnabled(menuItem)"/>
|
|
@@ -4517,7 +4889,7 @@
|
|
|
4517
4889
|
|
|
4518
4890
|
<t t-name="o-spreadsheet-LinkEditor">
|
|
4519
4891
|
<div
|
|
4520
|
-
class="o-link-editor"
|
|
4892
|
+
class="o-link-editor bg-white rounded"
|
|
4521
4893
|
t-on-click.stop="() => this.menu.isOpen=false"
|
|
4522
4894
|
t-on-keydown="onKeyDown">
|
|
4523
4895
|
<div class="o-section">
|
|
@@ -4559,7 +4931,7 @@
|
|
|
4559
4931
|
<button
|
|
4560
4932
|
t-if="!link.url"
|
|
4561
4933
|
t-on-click.stop="openMenu"
|
|
4562
|
-
class="o-special-link o-button-icon"
|
|
4934
|
+
class="o-special-link o-button-icon bg-white"
|
|
4563
4935
|
t-ref="linkEditorMenuButton">
|
|
4564
4936
|
<t t-call="o-spreadsheet-Icon.LIST"/>
|
|
4565
4937
|
</button>
|
|
@@ -4582,7 +4954,7 @@
|
|
|
4582
4954
|
</t>
|
|
4583
4955
|
|
|
4584
4956
|
<t t-name="o-spreadsheet-LinkDisplay">
|
|
4585
|
-
<div class="o-link-tool d-flex align-items-center">
|
|
4957
|
+
<div class="o-link-tool d-flex align-items-center bg-white rounded">
|
|
4586
4958
|
<!-- t-key to prevent owl from re-using the previous img element when the link changes.
|
|
4587
4959
|
The wrong/previous image would be displayed while the new one loads -->
|
|
4588
4960
|
<img
|
|
@@ -5372,6 +5744,11 @@
|
|
|
5372
5744
|
<i class="fa fa-search"/>
|
|
5373
5745
|
</div>
|
|
5374
5746
|
</t>
|
|
5747
|
+
<t t-name="o-spreadsheet-Icon.ZOOM">
|
|
5748
|
+
<div class="o-icon">
|
|
5749
|
+
<i class="fa fa-search-plus"/>
|
|
5750
|
+
</div>
|
|
5751
|
+
</t>
|
|
5375
5752
|
<t t-name="o-spreadsheet-Icon.CHECK">
|
|
5376
5753
|
<svg class="o-icon" viewBox="0 0 24 24">
|
|
5377
5754
|
<path
|
|
@@ -5570,6 +5947,7 @@
|
|
|
5570
5947
|
<div class="o-icon">
|
|
5571
5948
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 224 256">
|
|
5572
5949
|
<path
|
|
5950
|
+
fill="currentColor"
|
|
5573
5951
|
d="M201.4 342.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 274.7 86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"
|
|
5574
5952
|
transform="translate(0, 9) scale(0.5,0.5)"
|
|
5575
5953
|
/>
|
|
@@ -5673,9 +6051,60 @@
|
|
|
5673
6051
|
/>
|
|
5674
6052
|
</svg>
|
|
5675
6053
|
</t>
|
|
6054
|
+
<t t-name="o-spreadsheet-Icon.DARK_MODE">
|
|
6055
|
+
<div class="o-icon">
|
|
6056
|
+
<i class="fa fa-moon-o"/>
|
|
6057
|
+
</div>
|
|
6058
|
+
</t>
|
|
6059
|
+
<t t-name="o-spreadsheet-Icon.ROTATION-0">
|
|
6060
|
+
<svg
|
|
6061
|
+
width="18"
|
|
6062
|
+
height="18"
|
|
6063
|
+
viewBox="0 0 18 18"
|
|
6064
|
+
transform="rotate(270)"
|
|
6065
|
+
xmlns="http://www.w3.org/2000/svg">
|
|
6066
|
+
<path
|
|
6067
|
+
d="M5 2h1v12h1.5l-2 2-2-2H5m6-5h1v5h1.5l-2 2-2-2H11M8 2l7 2.8V6L8 8.8l-.43-1.12 1.9-.7V3.8l-1.9-.7L8 1.98m2.7 2.25v2.3l2.8-1.1z"
|
|
6068
|
+
fill="currentColor"
|
|
6069
|
+
/>
|
|
6070
|
+
</svg>
|
|
6071
|
+
</t>
|
|
6072
|
+
<t t-name="o-spreadsheet-Icon.ROTATION-45">
|
|
6073
|
+
<svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg">
|
|
6074
|
+
<path
|
|
6075
|
+
d="m1.95 6.879.707-.707 8.485 8.485 1.06-1.06v2.828H9.375l1.061-1.061m.706-7.778.707-.707 3.536 3.535 1.06-1.06v2.828h-2.828l1.06-1.06M4.071 4.757l6.93-2.97.848.849-2.97 6.93-1.096-.488.849-1.839-2.249-2.248-1.838.848-.488-1.096m3.5-.318 1.626 1.626 1.203-2.757z"
|
|
6076
|
+
fill="currentColor"
|
|
6077
|
+
/>
|
|
6078
|
+
</svg>
|
|
6079
|
+
</t>
|
|
6080
|
+
<t t-name="o-spreadsheet-Icon.ROTATION-90">
|
|
6081
|
+
<svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg">
|
|
6082
|
+
<path
|
|
6083
|
+
d="M5 2h1v12h1.5l-2 2-2-2H5m6-5h1v5h1.5l-2 2-2-2H11M8 2l7 2.8V6L8 8.8l-.43-1.12 1.9-.7V3.8l-1.9-.7L8 1.98m2.7 2.25v2.3l2.8-1.1z"
|
|
6084
|
+
fill="currentColor"
|
|
6085
|
+
/>
|
|
6086
|
+
</svg>
|
|
6087
|
+
</t>
|
|
6088
|
+
|
|
6089
|
+
<t t-name="o-spreadsheet-Icon.ROTATION-270">
|
|
6090
|
+
<svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg">
|
|
6091
|
+
<path
|
|
6092
|
+
d="M13 16h-1V4h-1.5l2-2 2 2H13M7 9H6V4H4.5l2-2 2 2H7m3 12-7-2.8V12l7-2.8.43 1.12-1.9.7v3.18l1.9.7-.43 1.12m-2.7-2.25v-2.3l-2.8 1.1z"
|
|
6093
|
+
fill="currentColor"
|
|
6094
|
+
/>
|
|
6095
|
+
</svg>
|
|
6096
|
+
</t>
|
|
6097
|
+
<t t-name="o-spreadsheet-Icon.ROTATION-315">
|
|
6098
|
+
<svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg">
|
|
6099
|
+
<path
|
|
6100
|
+
d="m6.879 16.55-.707-.707 8.485-8.485-1.06-1.06h2.828v2.828l-1.061-1.061m-7.778-.707-.707-.707 3.535-3.536-1.06-1.06h2.828v2.828l-1.06-1.06M4.757 14.429l-2.97-6.93.849-.848 6.93 2.97-.488 1.096-1.839-.849-2.248 2.249.848 1.838-1.096.488m-.318-3.5 1.626-1.626-2.757-1.203z"
|
|
6101
|
+
fill="currentColor"
|
|
6102
|
+
/>
|
|
6103
|
+
</svg>
|
|
6104
|
+
</t>
|
|
5676
6105
|
|
|
5677
6106
|
<t t-name="o-spreadsheet-IconPicker">
|
|
5678
|
-
<div class="o-icon-picker">
|
|
6107
|
+
<div class="o-icon-picker bg-white">
|
|
5679
6108
|
<t t-foreach="iconSets" t-as="iconSet" t-key="iconSet">
|
|
5680
6109
|
<div class="o-cf-icon-line">
|
|
5681
6110
|
<div
|
|
@@ -5835,13 +6264,12 @@
|
|
|
5835
6264
|
|
|
5836
6265
|
<t t-name="o-spreadsheet-RowResizer">
|
|
5837
6266
|
<div
|
|
5838
|
-
class="o-row-resizer"
|
|
6267
|
+
class="o-row-resizer o-zoomable"
|
|
5839
6268
|
t-ref="rowResizer"
|
|
5840
6269
|
t-on-pointermove.self="onMouseMove"
|
|
5841
6270
|
t-on-mouseleave="onMouseLeave"
|
|
5842
6271
|
t-on-pointerdown.self.prevent="select"
|
|
5843
6272
|
t-on-click="onClick"
|
|
5844
|
-
t-on-pointerup.self="onMouseUp"
|
|
5845
6273
|
t-on-contextmenu.self="onContextMenu"
|
|
5846
6274
|
t-att-class="{'o-grab': state.waitingForMove, 'o-dragging': state.isMoving}">
|
|
5847
6275
|
<div
|
|
@@ -5879,13 +6307,12 @@
|
|
|
5879
6307
|
|
|
5880
6308
|
<t t-name="o-spreadsheet-ColResizer">
|
|
5881
6309
|
<div
|
|
5882
|
-
class="o-col-resizer d-flex"
|
|
6310
|
+
class="o-col-resizer d-flex o-zoomable"
|
|
5883
6311
|
t-ref="colResizer"
|
|
5884
6312
|
t-on-pointermove.self="onMouseMove"
|
|
5885
6313
|
t-on-mouseleave="onMouseLeave"
|
|
5886
6314
|
t-on-pointerdown.self.prevent="select"
|
|
5887
6315
|
t-on-click="onClick"
|
|
5888
|
-
t-on-pointerup.self="onMouseUp"
|
|
5889
6316
|
t-on-contextmenu.self="onContextMenu"
|
|
5890
6317
|
t-att-class="{'o-grab': state.waitingForMove, 'o-dragging': state.isMoving, }">
|
|
5891
6318
|
<div
|
|
@@ -6034,11 +6461,11 @@
|
|
|
6034
6461
|
|
|
6035
6462
|
<t t-name="o-spreadsheet-GridOverlay">
|
|
6036
6463
|
<div class="position-absolute" t-att-style="style">
|
|
6037
|
-
<FiguresContainer
|
|
6464
|
+
<FiguresContainer/>
|
|
6038
6465
|
</div>
|
|
6039
6466
|
<div
|
|
6040
6467
|
t-ref="gridOverlay"
|
|
6041
|
-
class="o-grid-overlay overflow-hidden"
|
|
6468
|
+
class="o-grid-overlay overflow-hidden o-zoomable"
|
|
6042
6469
|
t-att-class="{'o-paint-format-cursor': isPaintingFormat}"
|
|
6043
6470
|
t-att-style="style"
|
|
6044
6471
|
t-on-pointerdown="onPointerDown"
|
|
@@ -6049,7 +6476,6 @@
|
|
|
6049
6476
|
<GridAddRowsFooter
|
|
6050
6477
|
t-if="!env.model.getters.isReadonly()"
|
|
6051
6478
|
t-key="env.model.getters.getActiveSheetId()"
|
|
6052
|
-
focusGrid="props.onFigureDeleted"
|
|
6053
6479
|
/>
|
|
6054
6480
|
<t t-slot="default"/>
|
|
6055
6481
|
</div>
|
|
@@ -6063,7 +6489,8 @@
|
|
|
6063
6489
|
<button
|
|
6064
6490
|
t-on-click="onConfirm"
|
|
6065
6491
|
t-att-disabled="state.errorFlag"
|
|
6066
|
-
class="o-button flex-grow-0 me-2"
|
|
6492
|
+
class="o-button flex-grow-0 me-2"
|
|
6493
|
+
tabindex="-1">
|
|
6067
6494
|
Add
|
|
6068
6495
|
</button>
|
|
6069
6496
|
<input
|
|
@@ -6075,6 +6502,7 @@
|
|
|
6075
6502
|
t-on-keydown.stop="onKeydown"
|
|
6076
6503
|
t-on-pointerdown.stop=""
|
|
6077
6504
|
t-on-input.stop="onInput"
|
|
6505
|
+
tabindex="-1"
|
|
6078
6506
|
/>
|
|
6079
6507
|
<span>more rows at the bottom</span>
|
|
6080
6508
|
<ValidationMessages t-if="state.errorFlag" messages="errorMessages" msgType="'error'"/>
|
|
@@ -6083,7 +6511,7 @@
|
|
|
6083
6511
|
|
|
6084
6512
|
<t t-name="o-spreadsheet-Grid">
|
|
6085
6513
|
<div
|
|
6086
|
-
class="o-grid w-100 h-100"
|
|
6514
|
+
class="o-grid w-100 h-100 o-zoomable"
|
|
6087
6515
|
tabindex="-1"
|
|
6088
6516
|
composerFocusableElement="true"
|
|
6089
6517
|
t-on-click="focusDefaultElement"
|
|
@@ -6097,7 +6525,6 @@
|
|
|
6097
6525
|
onGridResized.bind="onGridResized"
|
|
6098
6526
|
onGridMoved.bind="moveCanvas"
|
|
6099
6527
|
gridOverlayDimensions="gridOverlayDimensions"
|
|
6100
|
-
onFigureDeleted.bind="focusDefaultElement"
|
|
6101
6528
|
getGridSize="props.getGridSize"
|
|
6102
6529
|
/>
|
|
6103
6530
|
<HeadersOverlay onOpenContextMenu="(type, x, y) => this.toggleContextMenu(type, x, y)"/>
|
|
@@ -6146,7 +6573,7 @@
|
|
|
6146
6573
|
</t>
|
|
6147
6574
|
<VerticalScrollBar topOffset="HEADER_HEIGHT"/>
|
|
6148
6575
|
<HorizontalScrollBar leftOffset="HEADER_WIDTH"/>
|
|
6149
|
-
<div class="o-scrollbar corner"/>
|
|
6576
|
+
<div class="o-scrollbar corner border-top border-start"/>
|
|
6150
6577
|
</div>
|
|
6151
6578
|
</t>
|
|
6152
6579
|
|
|
@@ -6174,7 +6601,6 @@
|
|
|
6174
6601
|
t-component="figureComponent"
|
|
6175
6602
|
figureUI="figureUI"
|
|
6176
6603
|
isFullScreen="true"
|
|
6177
|
-
onFigureDeleted="() => {}"
|
|
6178
6604
|
t-key="figureUI.id"
|
|
6179
6605
|
/>
|
|
6180
6606
|
</t>
|
|
@@ -6184,41 +6610,17 @@
|
|
|
6184
6610
|
</t>
|
|
6185
6611
|
|
|
6186
6612
|
<t t-name="o-spreadsheet-FontSizeEditor">
|
|
6187
|
-
<
|
|
6188
|
-
|
|
6189
|
-
|
|
6190
|
-
|
|
6191
|
-
|
|
6192
|
-
|
|
6193
|
-
|
|
6194
|
-
|
|
6195
|
-
|
|
6196
|
-
|
|
6197
|
-
|
|
6198
|
-
t-on-keydown="onInputKeydown"
|
|
6199
|
-
t-on-wheel.prevent.stop=""
|
|
6200
|
-
t-on-click.stop="props.onFocusInput"
|
|
6201
|
-
t-on-focus.stop="onInputFocused"
|
|
6202
|
-
t-att-value="props.currentFontSize"
|
|
6203
|
-
t-on-change="setSizeFromInput"
|
|
6204
|
-
t-ref="inputFontSize"
|
|
6205
|
-
/>
|
|
6206
|
-
<span>
|
|
6207
|
-
<t t-call="o-spreadsheet-Icon.CARET_DOWN"/>
|
|
6208
|
-
</span>
|
|
6209
|
-
</div>
|
|
6210
|
-
<Popover t-if="dropdown.isOpen" t-props="popoverProps">
|
|
6211
|
-
<div class="o-text-options bg-white" t-on-click.stop="" t-ref="fontSizeList">
|
|
6212
|
-
<t t-foreach="fontSizes" t-as="fontSize" t-key="fontSize">
|
|
6213
|
-
<div
|
|
6214
|
-
t-esc="fontSize"
|
|
6215
|
-
t-att-data-size="fontSize"
|
|
6216
|
-
t-on-click="() => this.setSizeFromList(fontSize)"
|
|
6217
|
-
/>
|
|
6218
|
-
</t>
|
|
6219
|
-
</div>
|
|
6220
|
-
</Popover>
|
|
6221
|
-
</div>
|
|
6613
|
+
<NumberEditor
|
|
6614
|
+
currentValue="props.currentFontSize"
|
|
6615
|
+
onValueChange="props.onFontSizeChanged"
|
|
6616
|
+
class="props.class"
|
|
6617
|
+
onToggle="props.onToggle"
|
|
6618
|
+
onFocusInput="props.onFocusInput"
|
|
6619
|
+
min="1"
|
|
6620
|
+
max="400"
|
|
6621
|
+
valueList="fontSizes"
|
|
6622
|
+
title.translate="Font Size"
|
|
6623
|
+
/>
|
|
6222
6624
|
</t>
|
|
6223
6625
|
|
|
6224
6626
|
<t t-name="o-spreadsheet-FilterMenuValueList">
|
|
@@ -6240,7 +6642,7 @@
|
|
|
6240
6642
|
</i>
|
|
6241
6643
|
</div>
|
|
6242
6644
|
<div
|
|
6243
|
-
class="o-filter-menu-list d-flex flex-column"
|
|
6645
|
+
class="o-filter-menu-list d-flex flex-column border"
|
|
6244
6646
|
t-ref="filterValueList"
|
|
6245
6647
|
t-on-click="this.clearScrolledToValue"
|
|
6246
6648
|
t-on-scroll="this.clearScrolledToValue">
|
|
@@ -6283,8 +6685,9 @@
|
|
|
6283
6685
|
name="value.toString()"
|
|
6284
6686
|
value="this.props.isChecked"
|
|
6285
6687
|
onChange="this.props.onClick"
|
|
6286
|
-
className="'p-2 w-100 pe-auto
|
|
6688
|
+
className="'p-2 w-100 pe-auto'"
|
|
6287
6689
|
label="value.toString()"
|
|
6690
|
+
title="value.toString()"
|
|
6288
6691
|
/>
|
|
6289
6692
|
</div>
|
|
6290
6693
|
</t>
|
|
@@ -6303,6 +6706,7 @@
|
|
|
6303
6706
|
criterion="state.criterion"
|
|
6304
6707
|
onCriterionChanged.bind="onCriterionChanged"
|
|
6305
6708
|
disableFormulas="true"
|
|
6709
|
+
autofocus="true"
|
|
6306
6710
|
/>
|
|
6307
6711
|
</t>
|
|
6308
6712
|
|
|
@@ -6323,7 +6727,7 @@
|
|
|
6323
6727
|
</div>
|
|
6324
6728
|
</t>
|
|
6325
6729
|
<div class="o-filter-menu-content">
|
|
6326
|
-
<div class="o-separator"/>
|
|
6730
|
+
<div class="o-separator border-bottom"/>
|
|
6327
6731
|
<SidePanelCollapsible
|
|
6328
6732
|
isInitiallyCollapsed="filterValueType !== 'criterion'"
|
|
6329
6733
|
title.translate="Filter by criterion">
|
|
@@ -6374,7 +6778,6 @@
|
|
|
6374
6778
|
t-att-style="container.inverseViewportStyle">
|
|
6375
6779
|
<t t-foreach="container.figures" t-as="figureUI" t-key="figureUI.id">
|
|
6376
6780
|
<FigureComponent
|
|
6377
|
-
onFigureDeleted="this.props.onFigureDeleted"
|
|
6378
6781
|
figureUI="figureUI"
|
|
6379
6782
|
style="getFigureStyle(figureUI)"
|
|
6380
6783
|
class="getFigureClass(figureUI)"
|
|
@@ -6521,7 +6924,6 @@
|
|
|
6521
6924
|
<t
|
|
6522
6925
|
t-component="figureRegistry.get(props.figureUI.tag).Component"
|
|
6523
6926
|
t-key="props.figureUI.id"
|
|
6524
|
-
onFigureDeleted="props.onFigureDeleted"
|
|
6525
6927
|
figureUI="props.figureUI"
|
|
6526
6928
|
editFigureStyle.bind="editWrapperStyle"
|
|
6527
6929
|
openContextMenu.bind="openContextMenu"
|
|
@@ -6658,21 +7060,24 @@
|
|
|
6658
7060
|
<div t-att-style="containerStyle">
|
|
6659
7061
|
<canvas class="o-figure-canvas w-100 h-100" t-ref="graphContainer"/>
|
|
6660
7062
|
</div>
|
|
6661
|
-
<div
|
|
7063
|
+
<div
|
|
7064
|
+
t-if="sliceable"
|
|
7065
|
+
class="o-master-chart-container m-0"
|
|
7066
|
+
t-att-style="masterChartContainerStyle">
|
|
6662
7067
|
<canvas
|
|
6663
7068
|
class="o-figure-canvas o-master-chart-canvas w-100 h-100"
|
|
6664
7069
|
t-ref="masterChartCanvas"
|
|
6665
|
-
t-on-dblclick="
|
|
6666
|
-
t-on-pointerdown="
|
|
6667
|
-
t-on-pointermove="
|
|
6668
|
-
t-on-mouseleave="
|
|
7070
|
+
t-on-dblclick="onMasterChartDoubleClick"
|
|
7071
|
+
t-on-pointerdown="onMasterChartPointerDown"
|
|
7072
|
+
t-on-pointermove="onMasterChartPointerMove"
|
|
7073
|
+
t-on-mouseleave="onMasterChartMouseLeave"
|
|
6669
7074
|
/>
|
|
6670
7075
|
</div>
|
|
6671
7076
|
</div>
|
|
6672
7077
|
</t>
|
|
6673
7078
|
|
|
6674
7079
|
<t t-name="o-spreadsheet-ErrorToolTip">
|
|
6675
|
-
<div class="o-error-tooltip">
|
|
7080
|
+
<div class="o-error-tooltip bg-white">
|
|
6676
7081
|
<t t-if="evaluationError">
|
|
6677
7082
|
<div class="o-error-tooltip-title fw-bold text-danger">Error</div>
|
|
6678
7083
|
<div class="o-error-tooltip-message">
|
|
@@ -6749,7 +7154,7 @@
|
|
|
6749
7154
|
<t t-name="o-spreadsheet-TopBarComposer">
|
|
6750
7155
|
<div class="o-topbar-composer-container w-100">
|
|
6751
7156
|
<div
|
|
6752
|
-
class="o-topbar-composer position-relative bg-white user-select-text d-flex"
|
|
7157
|
+
class="o-topbar-composer position-relative bg-white user-select-text d-flex border"
|
|
6753
7158
|
t-att-class="{
|
|
6754
7159
|
'o-topbar-composer-readonly': env.model.getters.isReadonly(),
|
|
6755
7160
|
'o-topbar-composer-active': focus !== 'inactive',
|
|
@@ -6772,7 +7177,7 @@
|
|
|
6772
7177
|
|
|
6773
7178
|
<t t-name="o-spreadsheet-StandaloneComposer">
|
|
6774
7179
|
<div
|
|
6775
|
-
class="o-standalone-composer"
|
|
7180
|
+
class="o-standalone-composer border-bottom"
|
|
6776
7181
|
t-on-click.stop=""
|
|
6777
7182
|
t-att-class="containerClass"
|
|
6778
7183
|
t-att-title="props.title">
|
|
@@ -6789,7 +7194,7 @@
|
|
|
6789
7194
|
|
|
6790
7195
|
<t t-name="o-spreadsheet-SpeechBubble">
|
|
6791
7196
|
<t t-portal="'.o-spreadsheet'">
|
|
6792
|
-
<div class="o-speech-bubble position-absolute px-3" t-ref="bubble">
|
|
7197
|
+
<div class="o-speech-bubble position-absolute px-3 border" t-ref="bubble">
|
|
6793
7198
|
<div class="o-speech-content text-truncate pb-1" t-esc="props.content"/>
|
|
6794
7199
|
</div>
|
|
6795
7200
|
</t>
|
|
@@ -6797,7 +7202,7 @@
|
|
|
6797
7202
|
|
|
6798
7203
|
<t t-name="o-spreadsheet-GridComposer">
|
|
6799
7204
|
<div
|
|
6800
|
-
class="o-cell-reference"
|
|
7205
|
+
class="o-cell-reference rounded"
|
|
6801
7206
|
t-if="shouldDisplayCellReference"
|
|
6802
7207
|
t-att-style="cellReferenceStyle"
|
|
6803
7208
|
t-esc="cellReference"
|
|
@@ -6808,30 +7213,28 @@
|
|
|
6808
7213
|
</t>
|
|
6809
7214
|
|
|
6810
7215
|
<t t-name="o-spreadsheet-FunctionDescriptionProvider">
|
|
6811
|
-
<div
|
|
7216
|
+
<div
|
|
7217
|
+
class="o-formula-assistant-container shadow"
|
|
7218
|
+
tabindex="-1"
|
|
7219
|
+
t-on-pointerdown=""
|
|
7220
|
+
t-on-pointerup.stop=""
|
|
7221
|
+
t-on-keydown.stop=""
|
|
7222
|
+
t-on-click.stop="">
|
|
6812
7223
|
<t t-set="context" t-value="getContext()"/>
|
|
6813
|
-
<div class="o-formula-assistant" t-if="context.functionDescription.name">
|
|
7224
|
+
<div class="o-formula-assistant bg-white" t-if="context.functionDescription.name">
|
|
6814
7225
|
<div class="o-formula-assistant-head d-flex flex-row justify-content-between">
|
|
6815
7226
|
<div>
|
|
6816
|
-
<
|
|
6817
|
-
(
|
|
6818
|
-
<t t-foreach="context.functionDescription.args" t-as="arg" t-key="arg.name">
|
|
6819
|
-
<span t-if="arg_index > '0'" t-esc="formulaArgSeparator"/>
|
|
7227
|
+
<t t-foreach="formulaHeaderContent" t-as="part" t-key="part_index">
|
|
6820
7228
|
<span
|
|
6821
|
-
t-
|
|
6822
|
-
|
|
6823
|
-
|
|
6824
|
-
<span t-esc="arg.name"/>
|
|
6825
|
-
<span t-if="arg.repeating">, ...</span>
|
|
6826
|
-
<span t-if="arg.optional || arg.repeating || arg.default">]</span>
|
|
6827
|
-
</span>
|
|
6828
|
-
</span>
|
|
7229
|
+
t-esc="part.content"
|
|
7230
|
+
t-att-class="part.focused ? 'o-formula-assistant-focus' : ''"
|
|
7231
|
+
/>
|
|
6829
7232
|
</t>
|
|
6830
|
-
)
|
|
6831
7233
|
</div>
|
|
6832
7234
|
<div
|
|
6833
7235
|
class="collapsor px-2 d-flex align-items-center rounded"
|
|
6834
7236
|
t-att-class="state.isCollapsed ? 'collapsed' : ''"
|
|
7237
|
+
t-on-pointerdown.prevent=""
|
|
6835
7238
|
t-on-click="() => this.toggle()">
|
|
6836
7239
|
<span class="collapsor-arrow d-inline-block">
|
|
6837
7240
|
<t t-call="o-spreadsheet-Icon.ANGLE_DOWN"/>
|
|
@@ -6840,27 +7243,34 @@
|
|
|
6840
7243
|
</div>
|
|
6841
7244
|
|
|
6842
7245
|
<Collapse isCollapsed="state.isCollapsed">
|
|
6843
|
-
<div class="o-formula-assistant-core pb-3 m-3">
|
|
7246
|
+
<div class="o-formula-assistant-core pb-3 m-3 border-bottom">
|
|
6844
7247
|
<div class="o-formula-assistant-gray">ABOUT</div>
|
|
6845
7248
|
<div t-esc="context.functionDescription.description"/>
|
|
6846
7249
|
</div>
|
|
6847
7250
|
|
|
7251
|
+
<t
|
|
7252
|
+
t-set="firstRepeatableGroupOptional"
|
|
7253
|
+
t-value="context.functionDescription.args.some(arg => arg.repeating and arg.optional)"
|
|
7254
|
+
/>
|
|
7255
|
+
|
|
6848
7256
|
<t t-foreach="context.functionDescription.args" t-as="arg" t-key="arg.name">
|
|
6849
7257
|
<div
|
|
6850
7258
|
class="o-formula-assistant-arg p-3 pt-0 display-flex flex-column"
|
|
6851
|
-
t-att-class="{
|
|
6852
|
-
|
|
6853
|
-
|
|
6854
|
-
|
|
6855
|
-
|
|
6856
|
-
|
|
7259
|
+
t-att-class="{'o-formula-assistant-gray': context.argsToFocus.length > 0}">
|
|
7260
|
+
<div
|
|
7261
|
+
t-att-class="{'o-formula-assistant-focus': context.argsToFocus.includes(arg_index)}">
|
|
7262
|
+
<span t-if="arg.repeating">
|
|
7263
|
+
<span t-esc="arg.name + (context.repeatingArgGroupIndex + 1)"/>
|
|
7264
|
+
</span>
|
|
7265
|
+
<span t-else="">
|
|
7266
|
+
<span t-esc="arg.name"/>
|
|
7267
|
+
</span>
|
|
6857
7268
|
<span
|
|
6858
|
-
t-if="arg.optional || arg.
|
|
7269
|
+
t-if="arg.optional || arg.default || (arg.repeating and (firstRepeatableGroupOptional or context.repeatingArgGroupIndex > 0))"> - [optional] </span>
|
|
6859
7270
|
<span t-if="arg.default">
|
|
6860
7271
|
<span>default: </span>
|
|
6861
7272
|
<t t-esc="arg.defaultValue"/>
|
|
6862
7273
|
</span>
|
|
6863
|
-
<span t-if="arg.repeating">repeatable</span>
|
|
6864
7274
|
</div>
|
|
6865
7275
|
<div class="o-formula-assistant-arg-description" t-esc="arg.description"/>
|
|
6866
7276
|
</div>
|
|
@@ -6871,7 +7281,7 @@
|
|
|
6871
7281
|
</t>
|
|
6872
7282
|
|
|
6873
7283
|
<t t-name="o-spreadsheet-Composer">
|
|
6874
|
-
<div class="o-composer-container w-100 h-100">
|
|
7284
|
+
<div class="o-composer-container w-100 h-100" t-ref="composerContainer">
|
|
6875
7285
|
<t t-set="autoCompleteProposals" t-value="props.composerStore.autoCompleteProposals"/>
|
|
6876
7286
|
<t t-set="canBeToggled" t-value="props.composerStore.canBeToggled"/>
|
|
6877
7287
|
<t
|
|
@@ -6883,10 +7293,9 @@
|
|
|
6883
7293
|
t-if="props.focus !== 'inactive' and assistantIsAvailable and canBeToggled and assistant.forcedClosed"
|
|
6884
7294
|
role="button"
|
|
6885
7295
|
title="Show formula help"
|
|
6886
|
-
t-on-click="openAssistant"
|
|
7296
|
+
t-on-click.stop="openAssistant"
|
|
6887
7297
|
t-on-pointerdown.prevent.stop=""
|
|
6888
|
-
t-on-
|
|
6889
|
-
t-on-pointerup.prevent.stop=""
|
|
7298
|
+
t-on-pointerup.stop=""
|
|
6890
7299
|
class="fa-stack position-absolute translate-middle force-open-assistant fs-4">
|
|
6891
7300
|
<i class="fa fa-circle fa-stack-1x fa-inverse"/>
|
|
6892
7301
|
<i class="fa fa-question-circle fa-stack-1x"/>
|
|
@@ -6922,22 +7331,24 @@
|
|
|
6922
7331
|
t-att-style="assistantContainerStyle"
|
|
6923
7332
|
t-if="props.focus !== 'inactive' and assistantIsAvailable and !(canBeToggled and assistant.forcedClosed)"
|
|
6924
7333
|
t-on-wheel.stop=""
|
|
6925
|
-
t-on-pointerdown.
|
|
6926
|
-
t-on-pointerup.
|
|
6927
|
-
t-on-click.
|
|
7334
|
+
t-on-pointerdown.stop=""
|
|
7335
|
+
t-on-pointerup.stop=""
|
|
7336
|
+
t-on-click.stop="">
|
|
6928
7337
|
<span
|
|
6929
7338
|
t-if="canBeToggled and !assistant.forcedClosed"
|
|
6930
7339
|
role="button"
|
|
6931
7340
|
t-on-click="closeAssistant"
|
|
7341
|
+
t-on-pointerdown.prevent.stop=""
|
|
6932
7342
|
class="fa-stack position-absolute top-0 start-100 translate-middle fs-4">
|
|
6933
7343
|
<i class="fa fa-circle fa-stack-1x fa-inverse"/>
|
|
6934
|
-
<i class="fa fa-times-circle fa-stack-1x
|
|
7344
|
+
<i class="fa fa-times-circle fa-stack-1x"/>
|
|
6935
7345
|
</span>
|
|
6936
7346
|
<div class="o-composer-assistant overflow-auto" t-att-style="assistantStyle">
|
|
6937
7347
|
<FunctionDescriptionProvider
|
|
6938
7348
|
t-if="functionDescriptionState.showDescription"
|
|
6939
7349
|
functionDescription="functionDescriptionState.functionDescription"
|
|
6940
7350
|
argsToFocus="functionDescriptionState.argsToFocus"
|
|
7351
|
+
repeatingArgGroupIndex="functionDescriptionState.repeatingArgGroupIndex"
|
|
6941
7352
|
/>
|
|
6942
7353
|
<div
|
|
6943
7354
|
t-if="functionDescriptionState.showDescription and autoCompleteProposals.length"
|
|
@@ -6963,8 +7374,9 @@
|
|
|
6963
7374
|
<t t-name="o-spreadsheet-TextValueProvider">
|
|
6964
7375
|
<div
|
|
6965
7376
|
t-ref="autoCompleteList"
|
|
7377
|
+
t-on-pointerdown.prevent=""
|
|
6966
7378
|
t-att-class="{
|
|
6967
|
-
'o-autocomplete-dropdown': props.proposals.length}">
|
|
7379
|
+
'o-autocomplete-dropdown bg-white': props.proposals.length}">
|
|
6968
7380
|
<t t-foreach="props.proposals" t-as="proposal" t-key="proposal.text + proposal_index">
|
|
6969
7381
|
<div
|
|
6970
7382
|
class="d-flex flex-column text-start"
|
|
@@ -7017,7 +7429,7 @@
|
|
|
7017
7429
|
|
|
7018
7430
|
<t t-name="o-spreadsheet-ColorPicker">
|
|
7019
7431
|
<Popover t-props="popoverProps">
|
|
7020
|
-
<div class="o-color-picker" t-on-click.stop="" t-att-style="colorPickerStyle">
|
|
7432
|
+
<div class="o-color-picker bg-white" t-on-click.stop="" t-att-style="colorPickerStyle">
|
|
7021
7433
|
<div class="o-color-picker-section-name">Standard</div>
|
|
7022
7434
|
<div class="colors-grid">
|
|
7023
7435
|
<div
|
|
@@ -7036,14 +7448,14 @@
|
|
|
7036
7448
|
</div>
|
|
7037
7449
|
</div>
|
|
7038
7450
|
</div>
|
|
7039
|
-
<div class="o-separator"/>
|
|
7451
|
+
<div class="o-separator border-bottom"/>
|
|
7040
7452
|
<div
|
|
7041
7453
|
class="o-color-picker-section-name o-color-picker-toggler"
|
|
7042
7454
|
t-on-click="toggleColorPicker">
|
|
7043
7455
|
<span>Custom</span>
|
|
7044
7456
|
</div>
|
|
7045
7457
|
<div class="colors-grid o-color-picker-toggler" t-on-click.stop="toggleColorPicker">
|
|
7046
|
-
<div class="o-color-picker-line-item o-color-picker-toggler-button">
|
|
7458
|
+
<div class="o-color-picker-line-item bg-white o-color-picker-toggler-button">
|
|
7047
7459
|
<div class="o-color-picker-toggler-sign">
|
|
7048
7460
|
<t t-call="o-spreadsheet-Icon.PLUS"/>
|
|
7049
7461
|
</div>
|
|
@@ -7075,7 +7487,7 @@
|
|
|
7075
7487
|
<div class="magnifier pe-none" t-att-style="pointerStyle"/>
|
|
7076
7488
|
</div>
|
|
7077
7489
|
<div class="o-hue-container" t-on-pointerdown="dragHuePointer">
|
|
7078
|
-
<div class="o-hue-picker" t-on-click.stop=""/>
|
|
7490
|
+
<div class="o-hue-picker border rounded" t-on-click.stop=""/>
|
|
7079
7491
|
<div class="o-hue-slider pe-none" t-att-style="sliderStyle">
|
|
7080
7492
|
<t t-call="o-spreadsheet-Icon.CARET_UP"/>
|
|
7081
7493
|
</div>
|
|
@@ -7083,16 +7495,17 @@
|
|
|
7083
7495
|
<div class="o-custom-input-preview">
|
|
7084
7496
|
<input
|
|
7085
7497
|
type="text"
|
|
7498
|
+
class="border rounded"
|
|
7086
7499
|
t-att-class="{'o-wrong-color': !isHexColorInputValid }"
|
|
7087
7500
|
t-on-click.stop=""
|
|
7088
7501
|
t-att-value="state.customHexColor"
|
|
7089
7502
|
t-on-input="setHexColor"
|
|
7090
7503
|
/>
|
|
7091
|
-
<div class="o-color-preview" t-att-style="colorPreviewStyle"/>
|
|
7504
|
+
<div class="o-color-preview border rounded" t-att-style="colorPreviewStyle"/>
|
|
7092
7505
|
</div>
|
|
7093
7506
|
<div class="o-custom-input-buttons">
|
|
7094
7507
|
<button
|
|
7095
|
-
class="o-add-button"
|
|
7508
|
+
class="o-add-button border rounded"
|
|
7096
7509
|
t-att-class="{'o-disabled': !state.customHexColor or !isHexColorInputValid}"
|
|
7097
7510
|
t-on-click.stop="addCustomColor">
|
|
7098
7511
|
Add
|
|
@@ -7100,9 +7513,9 @@
|
|
|
7100
7513
|
</div>
|
|
7101
7514
|
</div>
|
|
7102
7515
|
<t t-if="!props.disableNoColor">
|
|
7103
|
-
<div class="o-separator"/>
|
|
7516
|
+
<div class="o-separator border-bottom"/>
|
|
7104
7517
|
<div class="o-buttons">
|
|
7105
|
-
<button t-on-click="resetColor" class="o-cancel">No Color</button>
|
|
7518
|
+
<button t-on-click="resetColor" class="o-cancel border rounded">No Color</button>
|
|
7106
7519
|
</div>
|
|
7107
7520
|
</t>
|
|
7108
7521
|
</div>
|
|
@@ -7115,7 +7528,7 @@
|
|
|
7115
7528
|
|
|
7116
7529
|
<t t-name="o-spreadsheet-BottomBar">
|
|
7117
7530
|
<div
|
|
7118
|
-
class="o-spreadsheet-bottom-bar o-two-columns d-flex flex-fill align-items-center overflow-hidden"
|
|
7531
|
+
class="o-spreadsheet-bottom-bar o-two-columns d-flex flex-fill align-items-center overflow-hidden border-top"
|
|
7119
7532
|
t-on-click="props.onClick"
|
|
7120
7533
|
t-ref="bottomBar"
|
|
7121
7534
|
t-on-contextmenu.prevent="">
|
|
@@ -7227,13 +7640,14 @@
|
|
|
7227
7640
|
<t t-name="o-spreadsheet-BottomBarSheet">
|
|
7228
7641
|
<Ripple>
|
|
7229
7642
|
<div
|
|
7230
|
-
class="o-sheet d-flex align-items-center user-select-none text-nowrap "
|
|
7643
|
+
class="o-sheet d-flex align-items-center user-select-none text-nowrap border-start border-end"
|
|
7231
7644
|
tabindex="-1"
|
|
7232
7645
|
composerFocusableElement="true"
|
|
7233
7646
|
t-on-pointerdown="(ev) => this.onMouseDown(ev)"
|
|
7234
7647
|
t-on-click="onClick"
|
|
7235
7648
|
t-on-contextmenu.prevent="(ev) => this.onContextMenu(ev)"
|
|
7236
7649
|
t-ref="sheetDiv"
|
|
7650
|
+
t-key="sheetName"
|
|
7237
7651
|
t-att-style="props.style"
|
|
7238
7652
|
t-att-title="sheetName"
|
|
7239
7653
|
t-att-data-id="props.sheetId"
|
|
@@ -7300,7 +7714,7 @@
|
|
|
7300
7714
|
<t t-set="border_color">Border Color</t>
|
|
7301
7715
|
<Popover t-props="popoverProps">
|
|
7302
7716
|
<div
|
|
7303
|
-
class="d-flex o-border-selector"
|
|
7717
|
+
class="d-flex o-border-selector bg-white"
|
|
7304
7718
|
t-on-click.stop=""
|
|
7305
7719
|
t-att-class="props.class ? props.class : ''">
|
|
7306
7720
|
<div class="o-border-selector-section">
|
|
@@ -7321,7 +7735,7 @@
|
|
|
7321
7735
|
</span>
|
|
7322
7736
|
</div>
|
|
7323
7737
|
</div>
|
|
7324
|
-
<div class="o-divider"/>
|
|
7738
|
+
<div class="o-divider border-end"/>
|
|
7325
7739
|
<div class="o-border-selector-section">
|
|
7326
7740
|
<div
|
|
7327
7741
|
class="m-0 p-0 d-flex align-items-center justify-content-center o-with-color o-hoverable-button"
|
|
@@ -7349,7 +7763,7 @@
|
|
|
7349
7763
|
<Popover
|
|
7350
7764
|
t-props="lineStylePickerPopoverProps"
|
|
7351
7765
|
t-if="state.activeTool === 'borderTypeTool'">
|
|
7352
|
-
<div class="o-border-style-dropdown">
|
|
7766
|
+
<div class="o-border-style-dropdown bg-white">
|
|
7353
7767
|
<t t-foreach="borderStyles" t-as="borderStyle" t-key="borderStyle">
|
|
7354
7768
|
<div
|
|
7355
7769
|
t-att-title="borderStyle"
|