@odoo/o-spreadsheet 19.5.0-alpha.0 → 19.5.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/o_spreadsheet.cjs +54635 -52850
- package/dist/o_spreadsheet.css +95 -44
- package/dist/o_spreadsheet.esm.js +54380 -52595
- package/dist/o_spreadsheet.iife.js +54407 -52622
- package/dist/o_spreadsheet.min.iife.js +403 -403
- package/dist/o_spreadsheet.xml +290 -167
- package/dist/types/actions/action.d.ts +1 -7
- package/dist/types/actions/data_actions.d.ts +1 -0
- package/dist/types/actions/menu_items_actions.d.ts +2 -0
- package/dist/types/clipboard_handlers/default_clipboard.d.ts +1 -1
- package/dist/types/collaborative/ot/ot_helpers.d.ts +3 -1
- package/dist/types/components/autofill/autofill.d.ts +3 -0
- package/dist/types/{plugins/ui_feature/autofill.d.ts → components/autofill/autofill_store.d.ts} +7 -12
- package/dist/types/components/autofill/table_autofill_store.d.ts +6 -0
- package/dist/types/components/border_editor/border_editor_widget.d.ts +1 -0
- package/dist/types/components/clickable_cells_overlay/clickable_cells_overlay.d.ts +20 -0
- package/dist/types/components/collaborative_client_tag/collaborative_client_tag.d.ts +2 -0
- package/dist/types/components/composer/composer/abstract_composer_store.d.ts +3 -2
- package/dist/types/components/composer/composer/composer.d.ts +2 -1
- package/dist/types/components/composer/grid_composer/grid_composer.d.ts +1 -0
- package/dist/types/components/dashboard/clickable_cell_store.d.ts +1 -0
- package/dist/types/components/dashboard/dashboard.d.ts +7 -12
- package/dist/types/components/error_tooltip/error_tooltip.d.ts +2 -0
- package/dist/types/components/figures/chart/chartJs/chartjs_geo_projection_plugin.d.ts +12 -0
- package/dist/types/components/figures/chart/gauge/gauge_chart_component.d.ts +1 -0
- package/dist/types/components/figures/chart/scorecard/chart_scorecard.d.ts +3 -0
- package/dist/types/components/figures/figure/figure.d.ts +8 -9
- package/dist/types/components/figures/figure_carousel/figure_carousel.d.ts +7 -2
- package/dist/types/components/figures/figure_chart/figure_chart.d.ts +1 -2
- package/dist/types/components/figures/figure_container/figure_container.d.ts +4 -2
- package/dist/types/components/figures/figure_image/figure_image.d.ts +1 -2
- package/dist/types/components/filters/filter_menu/filter_menu.d.ts +1 -0
- package/dist/types/components/grid/grid.d.ts +8 -0
- package/dist/types/components/grid_add_rows_footer/grid_add_rows_footer.d.ts +1 -0
- package/dist/types/components/grid_overlay/grid_overlay.d.ts +6 -4
- package/dist/types/components/grid_popover/grid_popover.d.ts +1 -0
- package/dist/types/components/header_group/header_group_container.d.ts +2 -0
- package/dist/types/components/headers_overlay/headers_overlay.d.ts +3 -0
- package/dist/types/components/headers_overlay/unhide_headers.d.ts +4 -0
- package/dist/types/components/helpers/dom_helpers.d.ts +2 -0
- package/dist/types/components/helpers/figure_snap_helper.d.ts +3 -3
- package/dist/types/components/helpers/wheel_hook.d.ts +1 -1
- package/dist/types/components/helpers/zoom.d.ts +1 -5
- package/dist/types/components/highlight/border/border.d.ts +2 -0
- package/dist/types/components/highlight/corner/corner.d.ts +1 -0
- package/dist/types/components/highlight/highlight/highlight.d.ts +3 -0
- package/dist/types/components/link/link_display/link_display.d.ts +1 -0
- package/dist/types/components/link/link_editor/link_editor.d.ts +1 -0
- package/dist/types/components/paint_format_button/paint_format_store.d.ts +1 -1
- package/dist/types/components/popover/cell_popover_store.d.ts +2 -1
- package/dist/types/components/props_validation.d.ts +7 -7
- package/dist/types/components/scrollbar/scrollbar_horizontal.d.ts +3 -0
- package/dist/types/components/scrollbar/scrollbar_vertical.d.ts +5 -1
- package/dist/types/components/selection_input/selection_input_store.d.ts +1 -1
- package/dist/types/components/side_panel/carousel_panel/carousel_panel.d.ts +20 -2
- package/dist/types/components/side_panel/chart/building_blocks/chart_title/chart_title.d.ts +1 -0
- package/dist/types/components/side_panel/chart/chart_type_picker/chart_type_picker.d.ts +5 -18
- package/dist/types/components/side_panel/chart/chart_type_picker_popover/chart_type_picker_popover.d.ts +64 -0
- package/dist/types/components/side_panel/chart/common.d.ts +1 -1
- package/dist/types/components/side_panel/conditional_formatting/cf_editor/cell_is_rule_editor.d.ts +1 -1
- package/dist/types/components/side_panel/conditional_formatting/cf_editor/color_scale_rule_editor.d.ts +1 -1
- package/dist/types/components/side_panel/conditional_formatting/cf_editor/color_scale_rule_editor_threshold.d.ts +1 -1
- package/dist/types/components/side_panel/conditional_formatting/cf_editor/data_bar_rule_editor.d.ts +1 -1
- package/dist/types/components/side_panel/conditional_formatting/cf_editor/icon_set_rule_editor.d.ts +1 -1
- package/dist/types/components/side_panel/criterion_form/calendar_button/calendar_button.d.ts +13 -0
- package/dist/types/components/side_panel/criterion_form/date_criterion/date_criterion.d.ts +2 -0
- package/dist/types/components/side_panel/criterion_form/double_input_criterion/double_input_criterion.d.ts +3 -0
- package/dist/types/components/side_panel/data_sources_cleanup/data_sources_cleanup.d.ts +28 -0
- package/dist/types/components/side_panel/data_sources_cleanup/data_sources_cleanup_store.d.ts +13 -0
- package/dist/types/components/side_panel/find_and_replace/find_and_replace_store.d.ts +1 -0
- package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_layout_configurator.d.ts +0 -2
- package/dist/types/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.d.ts +1 -0
- package/dist/types/components/side_panel/remove_duplicates/remove_duplicates.d.ts +3 -10
- package/dist/types/components/side_panel/side_panel/side_panel_store.d.ts +1 -1
- package/dist/types/components/side_panel/split_to_columns_panel/split_to_columns_panel.d.ts +4 -11
- package/dist/types/components/side_panel/split_to_columns_panel/split_to_columns_store.d.ts +33 -0
- package/dist/types/components/small_bottom_bar/small_bottom_bar.d.ts +1 -0
- package/dist/types/components/spreadsheet/spreadsheet.d.ts +2 -0
- package/dist/types/components/standalone_grid_canvas/standalone_grid_canvas.d.ts +2 -1
- package/dist/types/components/standalone_viewport/standalone_viewport.d.ts +56 -0
- package/dist/types/components/standalone_viewport/standalone_viewport_store.d.ts +28 -0
- package/dist/types/components/tables/hovered_table_store.d.ts +3 -6
- package/dist/types/components/tables/table_resizer/table_resizer.d.ts +1 -0
- package/dist/types/components/top_bar/zoom_editor/zoom_editor.d.ts +2 -1
- package/dist/types/constants.d.ts +4 -0
- package/dist/types/formulas/code_builder.d.ts +2 -1
- package/dist/types/formulas/compiler.d.ts +7 -0
- package/dist/types/functions/create_compute_function.d.ts +4 -3
- package/dist/types/functions/function_registry.d.ts +1 -5
- package/dist/types/functions/helper_matrices.d.ts +1 -0
- package/dist/types/functions/helper_statistical.d.ts +6 -0
- package/dist/types/functions/module_array.d.ts +41 -23
- package/dist/types/functions/module_database.d.ts +18 -6
- package/dist/types/functions/module_date.d.ts +70 -22
- package/dist/types/functions/module_engineering.d.ts +3 -1
- package/dist/types/functions/module_filter.d.ts +2 -2
- package/dist/types/functions/module_financial.d.ts +105 -35
- package/dist/types/functions/module_info.d.ts +33 -11
- package/dist/types/functions/module_logical.d.ts +16 -8
- package/dist/types/functions/module_lookup.d.ts +23 -15
- package/dist/types/functions/module_math.d.ts +125 -43
- package/dist/types/functions/module_operators.d.ts +7 -3
- package/dist/types/functions/module_statistical.d.ts +78 -22
- package/dist/types/functions/module_text.d.ts +70 -24
- package/dist/types/functions/module_web.d.ts +3 -1
- package/dist/types/helpers/carousel_helpers.d.ts +8 -3
- package/dist/types/helpers/figures/chart.d.ts +2 -0
- package/dist/types/helpers/figures/charts/chart_common.d.ts +0 -2
- package/dist/types/helpers/figures/charts/scorecard_chart_config_builder.d.ts +2 -0
- package/dist/types/helpers/figures/figure/figure.d.ts +3 -2
- package/dist/types/helpers/internal_viewport.d.ts +20 -10
- package/dist/types/helpers/misc.d.ts +2 -0
- package/dist/types/helpers/pivot/pivot_helpers.d.ts +2 -2
- package/dist/types/helpers/pivot/pivot_highlight.d.ts +2 -2
- package/dist/types/helpers/rectangle.d.ts +4 -0
- package/dist/types/helpers/text_helper.d.ts +6 -1
- package/dist/types/helpers/ui/split_to_columns_interactive.d.ts +1 -1
- package/dist/types/helpers/viewport_collection.d.ts +51 -21
- package/dist/types/helpers/zones.d.ts +1 -0
- package/dist/types/index.d.ts +29 -3
- package/dist/types/model.d.ts +1 -0
- package/dist/types/plugins/core/carousel.d.ts +8 -4
- package/dist/types/plugins/core/cell.d.ts +1 -0
- package/dist/types/plugins/core/chart.d.ts +2 -0
- package/dist/types/plugins/core/conditional_format.d.ts +2 -0
- package/dist/types/plugins/core/data_validation.d.ts +2 -0
- package/dist/types/plugins/core/formulas_provider.d.ts +8 -0
- package/dist/types/plugins/core/pivot.d.ts +1 -0
- package/dist/types/plugins/core/squisher.d.ts +1 -0
- package/dist/types/plugins/core_plugin.d.ts +7 -3
- package/dist/types/plugins/ui_core_views/cell_evaluation/evaluation_plugin.d.ts +10 -3
- package/dist/types/plugins/ui_core_views/pivot_ui.d.ts +3 -0
- package/dist/types/plugins/ui_feature/collaborative.d.ts +2 -1
- package/dist/types/plugins/ui_feature/ui_options.d.ts +1 -7
- package/dist/types/plugins/ui_feature/ui_sheet.d.ts +2 -1
- package/dist/types/plugins/ui_stateful/carousel_ui.d.ts +2 -2
- package/dist/types/plugins/{ui_feature → ui_stateful}/figure.d.ts +4 -0
- package/dist/types/plugins/ui_stateful/filter_evaluation.d.ts +2 -3
- package/dist/types/plugins/ui_stateful/header_positions.d.ts +2 -1
- package/dist/types/registries/chart_registry.d.ts +3 -0
- package/dist/types/registries/data_source_registry.d.ts +15 -0
- package/dist/types/registries/figures_registry.d.ts +4 -1
- package/dist/types/store_engine/dependency_container.d.ts +5 -0
- package/dist/types/store_engine/store_hooks.d.ts +6 -0
- package/dist/types/store_engine/store_registries.d.ts +4 -0
- package/dist/types/stores/array_formula_highlight.d.ts +1 -1
- package/dist/types/{plugins/ui_feature/automatic_sum.d.ts → stores/automatic_sum_store.d.ts} +5 -4
- package/dist/types/stores/checkbox_toggle.d.ts +9 -0
- package/dist/types/stores/client_focus_store.d.ts +1 -0
- package/dist/types/stores/data_cleanup_store.d.ts +31 -0
- package/dist/types/stores/main_viewport_store.d.ts +11 -0
- package/dist/types/stores/spreadsheet_store.d.ts +1 -1
- package/dist/types/stores/table_resize_store.d.ts +6 -0
- package/dist/types/stores/trim_whitespace_store.d.ts +9 -0
- package/dist/types/stores/viewports_store.d.ts +87 -0
- package/dist/types/stores/zoom_store.d.ts +14 -0
- package/dist/types/types/chart/radar_chart.d.ts +1 -1
- package/dist/types/types/chart/scorecard_chart.d.ts +2 -0
- package/dist/types/types/commands.d.ts +25 -58
- package/dist/types/types/core_getters.d.ts +3 -1
- package/dist/types/types/figure.d.ts +26 -3
- package/dist/types/types/functions.d.ts +14 -4
- package/dist/types/types/getters.d.ts +28 -11
- package/dist/types/types/misc.d.ts +19 -1
- package/dist/types/types/range.d.ts +1 -0
- package/dist/types/types/rendering.d.ts +1 -0
- package/dist/types/types/store_engine.d.ts +10 -3
- package/package.json +2 -2
- package/dist/types/plugins/ui_feature/checkbox_toggle.d.ts +0 -9
- package/dist/types/plugins/ui_feature/data_cleanup.d.ts +0 -16
- package/dist/types/plugins/ui_feature/split_to_columns.d.ts +0 -21
- package/dist/types/plugins/ui_feature/table_autofill.d.ts +0 -6
- package/dist/types/plugins/ui_feature/table_resize_ui.d.ts +0 -6
- package/dist/types/plugins/ui_stateful/sheetview.d.ts +0 -123
- /package/dist/types/plugins/{ui_feature → ui_stateful}/cell_computed_style.d.ts +0 -0
- /package/dist/types/plugins/{ui_feature → ui_stateful}/header_visibility_ui.d.ts +0 -0
- /package/dist/types/plugins/{ui_feature → ui_stateful}/table_computed_style.d.ts +0 -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.5.0-alpha.
|
|
5
|
-
@date 2026-
|
|
6
|
-
@hash
|
|
4
|
+
@version 19.5.0-alpha.10
|
|
5
|
+
@date 2026-08-10T12:33:48.249Z
|
|
6
|
+
@hash 39a6fbc
|
|
7
7
|
-->
|
|
8
8
|
<odoo>
|
|
9
9
|
<t t-name="o-spreadsheet-ValidationMessages">
|
|
@@ -432,6 +432,49 @@
|
|
|
432
432
|
/>
|
|
433
433
|
</t>
|
|
434
434
|
|
|
435
|
+
<t t-name="o-spreadsheet-StandaloneViewport">
|
|
436
|
+
<div
|
|
437
|
+
class="o-standalone-viewport h-100 w-100 overflow-hidden d-flex"
|
|
438
|
+
t-on-wheel="this.onMouseWheel">
|
|
439
|
+
<div
|
|
440
|
+
class="o-standalone-viewport-content position-relative flex-grow-1 overflow-hidden"
|
|
441
|
+
t-ref="this.containerRef">
|
|
442
|
+
<GridOverlay
|
|
443
|
+
onCellDoubleClicked.bind="this.onCellDoubleClicked"
|
|
444
|
+
onGridResized="() => {}"
|
|
445
|
+
hasFooter="false"
|
|
446
|
+
gridOverlayDimensions="this.gridOverlayDimensions">
|
|
447
|
+
<div
|
|
448
|
+
t-if="this.props.canResizeColumns"
|
|
449
|
+
t-foreach="this.colResizers"
|
|
450
|
+
t-as="colResizer"
|
|
451
|
+
t-key="colResizer_index"
|
|
452
|
+
class="o-col-resizer h-100"
|
|
453
|
+
t-att-class="{ 'dragging': this.dndState.col === colResizer.col }"
|
|
454
|
+
t-att-style="colResizer.style"
|
|
455
|
+
t-on-pointerdown.stop="(ev) => this.onResizerPointerDown(ev, colResizer)"
|
|
456
|
+
t-on-dblclick.stop="(ev) => this.onResizerDoubleClick(ev, colResizer)">
|
|
457
|
+
<div class="o-col-resizer-handle position-absolute h-100"/>
|
|
458
|
+
</div>
|
|
459
|
+
|
|
460
|
+
<ClickableCellsOverlay t-if="this.env.model.getters.isDashboard()"/>
|
|
461
|
+
</GridOverlay>
|
|
462
|
+
<GridPopover
|
|
463
|
+
gridRect="this.getGridRect()"
|
|
464
|
+
onMouseWheel.bind="this.onMouseWheel"
|
|
465
|
+
onClosePopover="() => this.cellPopoverStore.close()"
|
|
466
|
+
/>
|
|
467
|
+
<canvas class="" t-ref="this.canvasRef"/>
|
|
468
|
+
</div>
|
|
469
|
+
<div
|
|
470
|
+
class="position-relative"
|
|
471
|
+
t-if="this.hasVerticalScrollBar"
|
|
472
|
+
t-att-style="this.scrollBarContainerStyle">
|
|
473
|
+
<VerticalScrollBar hasFooter="false"/>
|
|
474
|
+
</div>
|
|
475
|
+
</div>
|
|
476
|
+
</t>
|
|
477
|
+
|
|
435
478
|
<t t-name="o-spreadsheet-StandaloneGridCanvas">
|
|
436
479
|
<canvas t-ref="this.canvasRef"/>
|
|
437
480
|
</t>
|
|
@@ -810,22 +853,22 @@
|
|
|
810
853
|
<Select
|
|
811
854
|
class="'mb-3'"
|
|
812
855
|
values="this.separators"
|
|
813
|
-
selectedValue="this.
|
|
856
|
+
selectedValue="this.store.separatorValue"
|
|
814
857
|
onChange.bind="this.onSeparatorChange"
|
|
815
858
|
/>
|
|
816
859
|
|
|
817
860
|
<input
|
|
818
861
|
class="o-input mb-3"
|
|
819
862
|
type="text"
|
|
820
|
-
t-if="this.
|
|
821
|
-
t-att-value="this.
|
|
863
|
+
t-if="this.store.separatorValue === 'custom'"
|
|
864
|
+
t-att-value="this.store.customSeparator"
|
|
822
865
|
t-on-input="this.updateCustomSeparator"
|
|
823
866
|
placeholder="Add any characters or symbol"
|
|
824
867
|
/>
|
|
825
868
|
|
|
826
869
|
<t t-set="addColumnsLabel">Add new columns to avoid overwriting cells</t>
|
|
827
870
|
<Checkbox
|
|
828
|
-
value="this.
|
|
871
|
+
value="this.store.addNewColumns"
|
|
829
872
|
label="addColumnsLabel"
|
|
830
873
|
onChange.bind="this.updateAddNewColumnsCheckbox"
|
|
831
874
|
/>
|
|
@@ -979,7 +1022,7 @@
|
|
|
979
1022
|
<t t-set="dataHasHeaderLabel">Data has header row</t>
|
|
980
1023
|
<Checkbox
|
|
981
1024
|
name="'dataHasHeader'"
|
|
982
|
-
value="this.
|
|
1025
|
+
value="this.dataCleanupSore.hasHeader"
|
|
983
1026
|
label="dataHasHeaderLabel"
|
|
984
1027
|
onChange.bind="this.toggleHasHeader"
|
|
985
1028
|
/>
|
|
@@ -994,9 +1037,9 @@
|
|
|
994
1037
|
onChange.bind="this.toggleAllColumns"
|
|
995
1038
|
/>
|
|
996
1039
|
|
|
997
|
-
<t t-foreach="Object.keys(this.
|
|
1040
|
+
<t t-foreach="Object.keys(this.dataCleanupSore.columns)" t-as="colIndex" t-key="colIndex">
|
|
998
1041
|
<Checkbox
|
|
999
|
-
value="this.
|
|
1042
|
+
value="this.dataCleanupSore.columns[colIndex]"
|
|
1000
1043
|
label="this.getColLabel(colIndex)"
|
|
1001
1044
|
onChange="() => this.toggleColumn(colIndex)"
|
|
1002
1045
|
/>
|
|
@@ -1473,7 +1516,7 @@
|
|
|
1473
1516
|
/>
|
|
1474
1517
|
</t>
|
|
1475
1518
|
<div t-if="measure.computedBy" class="d-flex flex-row small">
|
|
1476
|
-
<div class="d-flex flex-column py-2 px-2 w-100"
|
|
1519
|
+
<div class="d-flex flex-column py-2 px-2 w-100">
|
|
1477
1520
|
<StandaloneComposer
|
|
1478
1521
|
onConfirm.bind="this.updateMeasureFormula"
|
|
1479
1522
|
composerContent="measure.computedBy.formula"
|
|
@@ -1552,7 +1595,7 @@
|
|
|
1552
1595
|
/>
|
|
1553
1596
|
<span t-else="1" class="o-fw-bold text-truncate" t-out="this.dimensionDisplayName"/>
|
|
1554
1597
|
</div>
|
|
1555
|
-
<div class="d-flex flex-rows"
|
|
1598
|
+
<div class="d-flex flex-rows">
|
|
1556
1599
|
<t t-call-slot="upper-right-icons"/>
|
|
1557
1600
|
<i
|
|
1558
1601
|
class="o-button-icon fa fa-trash pe-1 ps-2"
|
|
@@ -1661,9 +1704,7 @@
|
|
|
1661
1704
|
t-as="group"
|
|
1662
1705
|
t-key="group_index"
|
|
1663
1706
|
class="o-pivot-custom-group pb-1">
|
|
1664
|
-
<div
|
|
1665
|
-
class="d-flex align-items-center justify-content-between small"
|
|
1666
|
-
t-on-pointerdown.stop="">
|
|
1707
|
+
<div class="d-flex align-items-center justify-content-between small">
|
|
1667
1708
|
<TextInput
|
|
1668
1709
|
value="group.name"
|
|
1669
1710
|
onChange="(newName) => this.onRenameGroup(group_index, newName)"
|
|
@@ -2124,6 +2165,34 @@
|
|
|
2124
2165
|
</div>
|
|
2125
2166
|
</t>
|
|
2126
2167
|
|
|
2168
|
+
<t t-name="o-spreadsheet-DataSourcesCleanup">
|
|
2169
|
+
<div class="o-data-source-cleanup">
|
|
2170
|
+
<Section
|
|
2171
|
+
t-foreach="this.store.unusedDataSourcesCategories"
|
|
2172
|
+
t-as="category"
|
|
2173
|
+
t-key="category.type"
|
|
2174
|
+
title="category.label">
|
|
2175
|
+
<t t-foreach="category.dataSources" t-as="dataSource" t-key="dataSource_index">
|
|
2176
|
+
<Checkbox
|
|
2177
|
+
name="dataSource.id"
|
|
2178
|
+
label="dataSource.label"
|
|
2179
|
+
value="this.isDataSourceChecked(category.type, dataSource.id)"
|
|
2180
|
+
onChange="(checked) => this.onToggleDataSource(category.type, dataSource.id, checked)"
|
|
2181
|
+
className="'mb-2'"
|
|
2182
|
+
/>
|
|
2183
|
+
</t>
|
|
2184
|
+
<div t-if="!category.dataSources.length" class="w-100 d-flex fst-italic text-muted">
|
|
2185
|
+
No unused data source in this category.
|
|
2186
|
+
</div>
|
|
2187
|
+
</Section>
|
|
2188
|
+
<Section t-if="this.dataSourcesToDelete.length" class="'pt-0'">
|
|
2189
|
+
<button class="o-button o-button-danger" t-on-click="this.onRemoveUnusedDataSources">
|
|
2190
|
+
Delete selected items
|
|
2191
|
+
</button>
|
|
2192
|
+
</Section>
|
|
2193
|
+
</div>
|
|
2194
|
+
</t>
|
|
2195
|
+
|
|
2127
2196
|
<t t-name="o-spreadsheet-ValueInRangeCriterionForm">
|
|
2128
2197
|
<SelectionInput
|
|
2129
2198
|
ranges="[this.props.criterion.values[0] || '']"
|
|
@@ -2227,19 +2296,33 @@
|
|
|
2227
2296
|
</t>
|
|
2228
2297
|
|
|
2229
2298
|
<t t-name="o-spreadsheet-DoubleInputCriterionForm">
|
|
2230
|
-
<
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2299
|
+
<div class="d-flex align-items-center m-2">
|
|
2300
|
+
<CriterionInput
|
|
2301
|
+
value="this.props.criterion.values[0]"
|
|
2302
|
+
onValueChanged.bind="this.onFirstValueChanged"
|
|
2303
|
+
criterionType="this.props.criterion.type"
|
|
2304
|
+
disableFormulas="this.props.disableFormulas"
|
|
2305
|
+
focused="this.props.autofocus"
|
|
2306
|
+
/>
|
|
2307
|
+
<CalendarButton
|
|
2308
|
+
t-if="this.isDateType"
|
|
2309
|
+
onChange.bind="this.onFirstValueChanged"
|
|
2310
|
+
value="this.props.criterion.values[0]"
|
|
2311
|
+
/>
|
|
2312
|
+
</div>
|
|
2313
|
+
<div class="d-flex align-items-center m-2">
|
|
2314
|
+
<CriterionInput
|
|
2315
|
+
value="this.props.criterion.values[1]"
|
|
2316
|
+
onValueChanged.bind="this.onSecondValueChanged"
|
|
2317
|
+
criterionType="this.props.criterion.type"
|
|
2318
|
+
disableFormulas="this.props.disableFormulas"
|
|
2319
|
+
/>
|
|
2320
|
+
<CalendarButton
|
|
2321
|
+
t-if="this.isDateType"
|
|
2322
|
+
onChange.bind="this.onSecondValueChanged"
|
|
2323
|
+
value="this.props.criterion.values[1]"
|
|
2324
|
+
/>
|
|
2325
|
+
</div>
|
|
2243
2326
|
</t>
|
|
2244
2327
|
|
|
2245
2328
|
<t t-name="o-spreadsheet-DataValidationDateCriterion">
|
|
@@ -2249,15 +2332,16 @@
|
|
|
2249
2332
|
selectedValue="this.currentDateValue"
|
|
2250
2333
|
onChange.bind="this.onDateValueChanged"
|
|
2251
2334
|
/>
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2335
|
+
<div class="d-flex align-items-center" t-if="this.currentDateValue === 'exactDate'">
|
|
2336
|
+
<CriterionInput
|
|
2337
|
+
value="this.props.criterion.values[0]"
|
|
2338
|
+
onValueChanged.bind="this.onValueChanged"
|
|
2339
|
+
criterionType="this.props.criterion.type"
|
|
2340
|
+
disableFormulas="this.props.disableFormulas"
|
|
2341
|
+
focused="this.props.autofocus"
|
|
2342
|
+
/>
|
|
2343
|
+
<CalendarButton onChange.bind="this.onValueChanged" value="this.props.criterion.values[0]"/>
|
|
2344
|
+
</div>
|
|
2261
2345
|
</t>
|
|
2262
2346
|
|
|
2263
2347
|
<t t-name="o-spreadsheet-CriterionInput">
|
|
@@ -2280,7 +2364,10 @@
|
|
|
2280
2364
|
/>
|
|
2281
2365
|
</t>
|
|
2282
2366
|
<t t-else="">
|
|
2283
|
-
<StandaloneComposer
|
|
2367
|
+
<StandaloneComposer
|
|
2368
|
+
t-props="this.getDataValidationRuleInputComposerProps()"
|
|
2369
|
+
t-key="this.props.value"
|
|
2370
|
+
/>
|
|
2284
2371
|
</t>
|
|
2285
2372
|
<span
|
|
2286
2373
|
t-if="this.errorMessage"
|
|
@@ -2291,6 +2378,21 @@
|
|
|
2291
2378
|
</div>
|
|
2292
2379
|
</t>
|
|
2293
2380
|
|
|
2381
|
+
<t t-name="o-spreadsheet-CalendarButton">
|
|
2382
|
+
<div class="o-calendar-button ms-1">
|
|
2383
|
+
<button type="button" class="o-button btn" t-on-click="this.openCalendar">
|
|
2384
|
+
<i class="fa fa-calendar"/>
|
|
2385
|
+
</button>
|
|
2386
|
+
<input
|
|
2387
|
+
type="date"
|
|
2388
|
+
class="o-calendar-input"
|
|
2389
|
+
t-att-value="this.formatDateForInput(this.props.value)"
|
|
2390
|
+
t-ref="this.datePickerRef"
|
|
2391
|
+
t-on-change="(ev) => this.onDateInputValueChanged(ev.target.value)"
|
|
2392
|
+
/>
|
|
2393
|
+
</div>
|
|
2394
|
+
</t>
|
|
2395
|
+
|
|
2294
2396
|
<t t-name="o-spreadsheet-ConditionalFormatPreviewList">
|
|
2295
2397
|
<div class="o-cf-preview-list h-100 overflow-auto" t-ref="this.cfListRef">
|
|
2296
2398
|
<t t-foreach="this.conditionalFormats" t-as="cf" t-key="cf.id">
|
|
@@ -3288,19 +3390,21 @@
|
|
|
3288
3390
|
</Section>
|
|
3289
3391
|
</t>
|
|
3290
3392
|
</GeneralDesignEditor>
|
|
3291
|
-
<
|
|
3292
|
-
title="this.props.definition.keyDescr?.text ?? ''"
|
|
3293
|
-
updateTitle="(text) => this.setKeyText(text)"
|
|
3294
|
-
name.translate="Key Value Style"
|
|
3295
|
-
placeholder.translate="Add a key value description"
|
|
3296
|
-
updateStyle.bind="this.updateKeyStyle"
|
|
3297
|
-
style="this.keyStyle"
|
|
3298
|
-
/>
|
|
3299
|
-
<SidePanelCollapsible isInitiallyCollapsed="false" title.translate="Baseline">
|
|
3393
|
+
<SidePanelCollapsible isInitiallyCollapsed="false" title.translate="Scorecard Design">
|
|
3300
3394
|
<t t-set-slot="content">
|
|
3301
3395
|
<ChartTitle
|
|
3396
|
+
class="'pt-0'"
|
|
3397
|
+
title="this.props.definition.keyDescr?.text ?? ''"
|
|
3398
|
+
updateTitle.bind="this.setKeyText"
|
|
3399
|
+
name.translate="Key Value Style"
|
|
3400
|
+
placeholder.translate="Add a key value description"
|
|
3401
|
+
updateStyle.bind="this.updateKeyStyle"
|
|
3402
|
+
style="this.keyStyle"
|
|
3403
|
+
/>
|
|
3404
|
+
<ChartTitle
|
|
3405
|
+
class="'pt-0'"
|
|
3302
3406
|
title="this.props.definition.baselineDescr?.text ?? ''"
|
|
3303
|
-
updateTitle="
|
|
3407
|
+
updateTitle.bind="this.setBaselineText"
|
|
3304
3408
|
name.translate="Baseline Style"
|
|
3305
3409
|
placeholder.translate="Add a baseline description"
|
|
3306
3410
|
updateStyle.bind="this.updateBaselineStyle"
|
|
@@ -3888,26 +3992,12 @@
|
|
|
3888
3992
|
<ChartAnnotation t-props="this.props"/>
|
|
3889
3993
|
</t>
|
|
3890
3994
|
|
|
3891
|
-
<t t-name="o-spreadsheet-
|
|
3892
|
-
<
|
|
3893
|
-
<Section title.translate="Chart type">
|
|
3894
|
-
<div class="position-relative">
|
|
3895
|
-
<div
|
|
3896
|
-
class="o-select o-input o-type-selector"
|
|
3897
|
-
t-ref="this.selectRef"
|
|
3898
|
-
t-on-pointerdown.prevent="this.onPointerDown">
|
|
3899
|
-
<t t-out="selectedChartProperties.displayName"/>
|
|
3900
|
-
</div>
|
|
3901
|
-
<div class="o-type-selector-preview position-absolute">
|
|
3902
|
-
<t t-call="{{selectedChartProperties.preview}}"/>
|
|
3903
|
-
</div>
|
|
3904
|
-
</div>
|
|
3905
|
-
</Section>
|
|
3906
|
-
<Popover t-if="this.state.popoverProps" t-props="this.state.popoverProps">
|
|
3995
|
+
<t t-name="o-spreadsheet-ChartTypePickerPopover">
|
|
3996
|
+
<Popover t-props="this.props.popoverProps">
|
|
3907
3997
|
<div
|
|
3908
3998
|
t-ref="this.popoverRef"
|
|
3909
3999
|
class="o-chart-select-popover px-3 pb-4"
|
|
3910
|
-
t-att-style="this.
|
|
4000
|
+
t-att-style="this.popoverStyle">
|
|
3911
4001
|
<t t-foreach="this.categories" t-as="category" t-key="category">
|
|
3912
4002
|
<t t-if="this.chartTypeByCategories[category]">
|
|
3913
4003
|
<h5 class="my-3" t-out="category_value"/>
|
|
@@ -3921,7 +4011,7 @@
|
|
|
3921
4011
|
t-att-title="properties.displayName"
|
|
3922
4012
|
t-on-click="() => this.onTypeChange(properties.chartSubtype)"
|
|
3923
4013
|
t-att-data-id="properties.chartSubtype"
|
|
3924
|
-
t-att-class="{'selected': properties ===
|
|
4014
|
+
t-att-class="{'selected': properties.chartSubtype === this.props.selectedChartSubType}">
|
|
3925
4015
|
<t t-call="{{properties.preview}}"/>
|
|
3926
4016
|
</div>
|
|
3927
4017
|
</t>
|
|
@@ -3932,6 +4022,32 @@
|
|
|
3932
4022
|
</Popover>
|
|
3933
4023
|
</t>
|
|
3934
4024
|
|
|
4025
|
+
<t t-name="o-spreadsheet-ChartTypePicker">
|
|
4026
|
+
<t t-set="selectedChartProperties" t-value="this.getSelectedChartSubtypeProperties()"/>
|
|
4027
|
+
<Section title.translate="Chart type">
|
|
4028
|
+
<div class="position-relative">
|
|
4029
|
+
<div
|
|
4030
|
+
class="o-select o-input o-type-selector"
|
|
4031
|
+
t-ref="this.selectRef"
|
|
4032
|
+
t-on-pointerdown.prevent="this.onPointerDown">
|
|
4033
|
+
<t t-out="selectedChartProperties.displayName"/>
|
|
4034
|
+
</div>
|
|
4035
|
+
<div class="o-type-selector-preview position-absolute">
|
|
4036
|
+
<t t-call="{{selectedChartProperties.preview}}"/>
|
|
4037
|
+
</div>
|
|
4038
|
+
</div>
|
|
4039
|
+
</Section>
|
|
4040
|
+
<ChartTypePickerPopover
|
|
4041
|
+
t-if="this.state.popoverProps"
|
|
4042
|
+
popoverProps="this.state.popoverProps"
|
|
4043
|
+
onClose.bind="this.closePopover"
|
|
4044
|
+
onSelectSubType.bind="this.onTypeChange"
|
|
4045
|
+
parentRef="this.selectRef"
|
|
4046
|
+
supportedTypes="this.getSupportedChartTypes()"
|
|
4047
|
+
selectedChartSubType="selectedChartProperties.chartSubtype"
|
|
4048
|
+
/>
|
|
4049
|
+
</t>
|
|
4050
|
+
|
|
3935
4051
|
<t t-name="o-spreadsheet-ChartPreview.LINE_CHART">
|
|
3936
4052
|
<svg viewBox="0 0 48 48" class="o-chart-preview" xmlns="http://www.w3.org/2000/svg">
|
|
3937
4053
|
<path fill="var(--os-gray-600)" d="M2,2 v44 h1 v-44 M3,45 h42 v1 h-42"/>
|
|
@@ -4910,7 +5026,7 @@
|
|
|
4910
5026
|
</t>
|
|
4911
5027
|
|
|
4912
5028
|
<t t-name="o-spreadsheet.ChartTitle">
|
|
4913
|
-
<Section class="'o-chart-title'" title="this.props.name">
|
|
5029
|
+
<Section class="'o-chart-title ' + (this.props.class ?? '')" title="this.props.name">
|
|
4914
5030
|
<TextInput
|
|
4915
5031
|
value="this.props.title"
|
|
4916
5032
|
onChange.bind="this.updateTitle"
|
|
@@ -5215,7 +5331,7 @@
|
|
|
5215
5331
|
<div class="o-carousel-preview-list overflow-auto bg-white" t-ref="this.previewListRef">
|
|
5216
5332
|
<t t-foreach="this.carouselItems" t-as="item" t-key="this.getItemId(item)">
|
|
5217
5333
|
<div
|
|
5218
|
-
class="o-carousel-preview border-bottom pe-2 position-relative w-100 d-flex
|
|
5334
|
+
class="o-carousel-preview border-bottom pe-2 position-relative w-100 d-flex flex-column"
|
|
5219
5335
|
t-att-class="{
|
|
5220
5336
|
'o-dragging border-top': this.dragAndDrop.draggedItemId === this.getItemId(item),
|
|
5221
5337
|
'o-selected': this.isCarouselItemActive(item)
|
|
@@ -5226,38 +5342,61 @@
|
|
|
5226
5342
|
t-on-pointerdown.stop.prevent="(ev) => this.onDragHandleMouseDown(item, ev)">
|
|
5227
5343
|
<t t-call="o-spreadsheet-Icon.THIN_DRAG_HANDLE"/>
|
|
5228
5344
|
</div>
|
|
5229
|
-
<div
|
|
5230
|
-
|
|
5231
|
-
|
|
5345
|
+
<div class="d-flex o-preview-content align-items-center justify-content-center">
|
|
5346
|
+
<div
|
|
5347
|
+
class="o-carousel-preview-icon ms-3 flex-shrink-0 d-flex align-items-center justify-content-center">
|
|
5348
|
+
<t t-call="{{this.getItemPreview(item)}}"/>
|
|
5349
|
+
</div>
|
|
5350
|
+
<div class="o-carousel-preview-title text-truncate ms-2">
|
|
5351
|
+
<TextInput
|
|
5352
|
+
value="this.getItemTitle(item)"
|
|
5353
|
+
onChange="(newName) => this.renameCarouselItem(item, newName)"
|
|
5354
|
+
selectContentOnFocus="true"
|
|
5355
|
+
/>
|
|
5356
|
+
</div>
|
|
5357
|
+
<div class="ms-auto"/>
|
|
5358
|
+
<div class="flex-shrink-0 d-flex me-1">
|
|
5359
|
+
<CogWheelMenu items="this.getCogWheelMenuItems(item)"/>
|
|
5360
|
+
</div>
|
|
5232
5361
|
</div>
|
|
5233
|
-
<div class="
|
|
5234
|
-
<
|
|
5235
|
-
|
|
5236
|
-
|
|
5237
|
-
|
|
5362
|
+
<div class="ms-4 mb-2" t-if="item.type === 'carouselDataView'">
|
|
5363
|
+
<SelectionInput
|
|
5364
|
+
ranges="[this.getItemRangeString(item)]"
|
|
5365
|
+
hasSingleRange="true"
|
|
5366
|
+
required="true"
|
|
5367
|
+
onSelectionChanged.bind="this.onSelectionInputChanged"
|
|
5368
|
+
onSelectionConfirmed.bind="this.onSelectionInputConfirmed"
|
|
5238
5369
|
/>
|
|
5239
5370
|
</div>
|
|
5240
|
-
<div class="ms-auto"/>
|
|
5241
|
-
<div class="flex-shrink-0 d-flex me-1">
|
|
5242
|
-
<CogWheelMenu items="this.getCogWheelMenuItems(item)"/>
|
|
5243
|
-
</div>
|
|
5244
5371
|
</div>
|
|
5245
5372
|
</t>
|
|
5246
5373
|
</div>
|
|
5247
|
-
<
|
|
5248
|
-
|
|
5249
|
-
|
|
5250
|
-
|
|
5251
|
-
|
|
5252
|
-
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5259
|
-
|
|
5374
|
+
<Section class="'pt-0'">
|
|
5375
|
+
<div>
|
|
5376
|
+
<div
|
|
5377
|
+
class="o-button-link o-carousel-add-chart float-end d-flex align-items-center my-4"
|
|
5378
|
+
t-on-click="this.addNewChartToCarousel"
|
|
5379
|
+
t-ref="this.addChartButton"
|
|
5380
|
+
t-att-title="this.carouselAddChartInfoMessage">
|
|
5381
|
+
+ Add chart
|
|
5382
|
+
</div>
|
|
5383
|
+
<div
|
|
5384
|
+
t-if="!this.hasDataView"
|
|
5385
|
+
class="o-button-link o-carousel-add-data-view float-end my-4 me-4"
|
|
5386
|
+
t-on-click="this.addDataViewToCarousel">
|
|
5387
|
+
+ Add data view
|
|
5388
|
+
</div>
|
|
5389
|
+
</div>
|
|
5390
|
+
</Section>
|
|
5260
5391
|
</div>
|
|
5392
|
+
<ChartTypePickerPopover
|
|
5393
|
+
t-if="this.state.popoverProps"
|
|
5394
|
+
popoverProps="this.state.popoverProps"
|
|
5395
|
+
onClose.bind="this.closePopover"
|
|
5396
|
+
onSelectSubType.bind="this.onSelectChartType"
|
|
5397
|
+
parentRef="this.addChartButton"
|
|
5398
|
+
supportedTypes="this.supportedChartTypes"
|
|
5399
|
+
/>
|
|
5261
5400
|
</t>
|
|
5262
5401
|
|
|
5263
5402
|
<t t-name="o-spreadsheet-SelectionInput">
|
|
@@ -5630,11 +5769,9 @@
|
|
|
5630
5769
|
class="o-menu-item-description ms-auto text-truncate"
|
|
5631
5770
|
t-out="description"
|
|
5632
5771
|
/>
|
|
5633
|
-
<t t-set="secondaryIcon" t-value="menuItem.secondaryIcon(this.env)"/>
|
|
5634
5772
|
<div
|
|
5635
|
-
t-if="isMenuRoot
|
|
5773
|
+
t-if="isMenuRoot"
|
|
5636
5774
|
class="o-menu-item-root ms-auto align-items-center d-flex gap-1">
|
|
5637
|
-
<t t-if="secondaryIcon" t-call="{{secondaryIcon}}"/>
|
|
5638
5775
|
<t t-if="isMenuRoot" t-call="o-spreadsheet-Icon.CARET_RIGHT"/>
|
|
5639
5776
|
</div>
|
|
5640
5777
|
</div>
|
|
@@ -6765,11 +6902,6 @@
|
|
|
6765
6902
|
/>
|
|
6766
6903
|
</svg>
|
|
6767
6904
|
</t>
|
|
6768
|
-
<t t-name="o-spreadsheet-Icon.UNUSED_PIVOT_WARNING">
|
|
6769
|
-
<div class="o-unused-pivot-icon text-warning" title="This pivot is not used">
|
|
6770
|
-
<t t-call="o-spreadsheet-Icon.TRIANGLE_EXCLAMATION"/>
|
|
6771
|
-
</div>
|
|
6772
|
-
</t>
|
|
6773
6905
|
<t t-name="o-spreadsheet-Icon.ANGLE_DOWN">
|
|
6774
6906
|
<div class="o-icon">
|
|
6775
6907
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 224 256">
|
|
@@ -7375,9 +7507,6 @@
|
|
|
7375
7507
|
</t>
|
|
7376
7508
|
|
|
7377
7509
|
<t t-name="o-spreadsheet-GridOverlay">
|
|
7378
|
-
<div class="position-absolute" t-att-style="this.style">
|
|
7379
|
-
<FiguresContainer/>
|
|
7380
|
-
</div>
|
|
7381
7510
|
<div
|
|
7382
7511
|
t-ref="this.gridOverlayRef"
|
|
7383
7512
|
class="o-grid-overlay overflow-hidden o-zoomable"
|
|
@@ -7389,8 +7518,8 @@
|
|
|
7389
7518
|
t-on-dblclick.self="this.onDoubleClick"
|
|
7390
7519
|
t-on-contextmenu.stop.prevent="this.onContextMenu">
|
|
7391
7520
|
<GridAddRowsFooter
|
|
7392
|
-
t-if="!this.env.model.getters.isReadonly()"
|
|
7393
|
-
t-key="this.
|
|
7521
|
+
t-if="!this.env.model.getters.isReadonly() and this.props.hasFooter"
|
|
7522
|
+
t-key="this.viewStore.displayedSheetId"
|
|
7394
7523
|
/>
|
|
7395
7524
|
<t t-call-slot="default"/>
|
|
7396
7525
|
</div>
|
|
@@ -7437,6 +7566,9 @@
|
|
|
7437
7566
|
t-on-keydown="this.onKeydown"
|
|
7438
7567
|
t-on-wheel.prevent="this.onMouseWheel"
|
|
7439
7568
|
t-ref="this.gridRef">
|
|
7569
|
+
<div class="position-absolute" t-att-style="this.gridOverlayDimensions">
|
|
7570
|
+
<FiguresContainer/>
|
|
7571
|
+
</div>
|
|
7440
7572
|
<GridOverlay
|
|
7441
7573
|
onCellClicked.bind="this.onCellClicked"
|
|
7442
7574
|
onCellDoubleClicked.bind="this.onCellDoubleClicked"
|
|
@@ -7446,15 +7578,12 @@
|
|
|
7446
7578
|
/>
|
|
7447
7579
|
<HeadersOverlay onOpenContextMenu="(type, x, y) => this.toggleContextMenu(type, x, y)"/>
|
|
7448
7580
|
<GridComposer
|
|
7449
|
-
gridDims="this.
|
|
7581
|
+
gridDims="this.viewStore.viewports.getSheetViewDimensionWithHeaders()"
|
|
7450
7582
|
onInputContextMenu.bind="this.onInputContextMenu"
|
|
7451
7583
|
/>
|
|
7452
7584
|
<canvas t-ref="this.canvasRef" class="os-theme-dependant pe-none"/>
|
|
7453
7585
|
<t t-set="focused" t-value="this.focusedClients"/>
|
|
7454
|
-
<t
|
|
7455
|
-
t-foreach="this.env.model.getters.getClientsToDisplay()"
|
|
7456
|
-
t-as="client"
|
|
7457
|
-
t-key="this.getClientPositionKey(client)">
|
|
7586
|
+
<t t-foreach="this.clientsToDisplay" t-as="client" t-key="this.getClientPositionKey(client)">
|
|
7458
7587
|
<ClientTag
|
|
7459
7588
|
name="client.name"
|
|
7460
7589
|
color="client.color"
|
|
@@ -7796,16 +7925,11 @@
|
|
|
7796
7925
|
|
|
7797
7926
|
<t t-name="o-spreadsheet-CarouselFigure">
|
|
7798
7927
|
<div
|
|
7799
|
-
class="o-carousel w-100 h-100 d-flex flex-column"
|
|
7928
|
+
class="o-carousel w-100 h-100 d-flex flex-column px-4 py-2"
|
|
7929
|
+
t-att-style="this.carouselStyle"
|
|
7800
7930
|
t-on-dblclick="this.onCarouselDoubleClick">
|
|
7801
7931
|
<t t-set="selectedItem" t-value="this.selectedCarouselItem"/>
|
|
7802
|
-
<div
|
|
7803
|
-
class="o-carousel-header d-flex align-items-baseline flex-shrink-0 pe-1 pe-auto"
|
|
7804
|
-
t-att-class="{
|
|
7805
|
-
'border-bottom': this.env.model.getters.isDashboard(),
|
|
7806
|
-
'o-carousel-header-floating': !this.env.model.getters.isDashboard() and selectedItem?.type === 'carouselDataView',
|
|
7807
|
-
}"
|
|
7808
|
-
t-att-style="this.headerStyle">
|
|
7932
|
+
<div class="o-carousel-header d-flex align-items-baseline flex-shrink-0 pt-1 pe-auto">
|
|
7809
7933
|
<div
|
|
7810
7934
|
class="o-carousel-title text-truncate flex-shrink-0 pe-2"
|
|
7811
7935
|
t-out="this.title"
|
|
@@ -7815,7 +7939,11 @@
|
|
|
7815
7939
|
<div
|
|
7816
7940
|
class="o-carousel-tabs d-flex flex-fill justify-content-end"
|
|
7817
7941
|
t-ref="this.carouselTabsRef">
|
|
7818
|
-
<t
|
|
7942
|
+
<t
|
|
7943
|
+
t-foreach="this.carousel.items"
|
|
7944
|
+
t-as="item"
|
|
7945
|
+
t-key="item_index"
|
|
7946
|
+
t-if="this.carousel.items.length > 1">
|
|
7819
7947
|
<div
|
|
7820
7948
|
class="o-carousel-tab text-truncate px-2 mt-1 flex-shrink-0"
|
|
7821
7949
|
t-att-class="{ 'selected': this.isItemSelected(item) }"
|
|
@@ -7847,7 +7975,6 @@
|
|
|
7847
7975
|
t-att-class="{
|
|
7848
7976
|
'fa-compress': this.props.isFullScreen,
|
|
7849
7977
|
'fa-expand': !this.props.isFullScreen,
|
|
7850
|
-
'invisible': this.selectedCarouselItem?.type !== 'chart',
|
|
7851
7978
|
}"
|
|
7852
7979
|
t-on-click="this.toggleFullScreen"
|
|
7853
7980
|
/>
|
|
@@ -7857,9 +7984,10 @@
|
|
|
7857
7984
|
t-on-click="this.openContextMenu"
|
|
7858
7985
|
/>
|
|
7859
7986
|
</div>
|
|
7987
|
+
<div t-if="this.title" class="w-100 mt-2 border-bottom"/>
|
|
7860
7988
|
<div
|
|
7861
7989
|
t-if="!selectedItem"
|
|
7862
|
-
class="o-carousel-empty w-100 flex-fill d-flex align-items-center justify-content-center">
|
|
7990
|
+
class="o-carousel-empty o-carousel-content w-100 flex-fill d-flex align-items-center justify-content-center">
|
|
7863
7991
|
<t t-call="o-spreadsheet-Icon.CAROUSEL"/>
|
|
7864
7992
|
</div>
|
|
7865
7993
|
<div
|
|
@@ -7882,6 +8010,16 @@
|
|
|
7882
8010
|
t-key="selectedItem.chartId"
|
|
7883
8011
|
/>
|
|
7884
8012
|
</div>
|
|
8013
|
+
<div
|
|
8014
|
+
t-elif="selectedItem.type === 'carouselDataView' and selectedItem.range"
|
|
8015
|
+
class="o-carousel-content mb-2 mt-3 h-100 w-100 overflow-hidden">
|
|
8016
|
+
<StandaloneViewport
|
|
8017
|
+
range="this.removeEmptyHeadersFromRange(selectedItem.range)"
|
|
8018
|
+
columnWeights="selectedItem.columnWeights"
|
|
8019
|
+
canResizeColumns="this.canResizeDataViewColumns"
|
|
8020
|
+
onResizeColumns.bind="this.onResizeColumns"
|
|
8021
|
+
/>
|
|
8022
|
+
</div>
|
|
7885
8023
|
</div>
|
|
7886
8024
|
</t>
|
|
7887
8025
|
|
|
@@ -7889,16 +8027,15 @@
|
|
|
7889
8027
|
<div
|
|
7890
8028
|
class="o-figure-wrapper os-theme-dependant"
|
|
7891
8029
|
t-att-class="{'o-figure-selected': this.isSelected}"
|
|
7892
|
-
t-att-style="this.wrapperStyle"
|
|
7893
|
-
t-ref="this.figureWrapperRef">
|
|
8030
|
+
t-att-style="this.wrapperStyle">
|
|
7894
8031
|
<div
|
|
7895
|
-
class="o-figure w-100 h-100"
|
|
7896
|
-
t-att-class="this.
|
|
8032
|
+
class="o-figure w-100 h-100 overflow-hidden"
|
|
8033
|
+
t-att-class="this.figureClass"
|
|
7897
8034
|
t-on-pointerdown.stop="(ev) => this.onMouseDown(ev)"
|
|
7898
8035
|
t-on-click="this.onClick"
|
|
7899
8036
|
t-on-contextmenu.prevent.stop="(ev) => !this.env.model.getters.isReadonly() and this.onContextMenu(ev)"
|
|
7900
8037
|
t-ref="this.figureRef"
|
|
7901
|
-
t-att-style="this.
|
|
8038
|
+
t-att-style="this.figureStyle"
|
|
7902
8039
|
t-att-data-id="this.props.figureUI.id"
|
|
7903
8040
|
tabindex="0"
|
|
7904
8041
|
t-on-keydown.stop="(ev) => this.onKeyDown(ev)"
|
|
@@ -7907,7 +8044,6 @@
|
|
|
7907
8044
|
t-component="this.figureRegistry.get(this.props.figureUI.tag).Component"
|
|
7908
8045
|
t-key="this.props.figureUI.id"
|
|
7909
8046
|
figureUI="this.props.figureUI"
|
|
7910
|
-
editFigureStyle.bind="this.editWrapperStyle"
|
|
7911
8047
|
openContextMenu.bind="this.openContextMenu"
|
|
7912
8048
|
/>
|
|
7913
8049
|
<MenuPopover
|
|
@@ -7918,31 +8054,11 @@
|
|
|
7918
8054
|
onClose="() => this.menuState.isOpen=false"
|
|
7919
8055
|
popoverPositioning="'bottom-left'"
|
|
7920
8056
|
/>
|
|
7921
|
-
<div
|
|
7922
|
-
t-if="!this.env.model.getters.isDashboard()"
|
|
7923
|
-
class="position-absolute top-0 start-0 pe-none w-100 h-100">
|
|
7924
|
-
<div
|
|
7925
|
-
class="o-figure-border pe-auto w-100 h-0 position-absolute pb-2"
|
|
7926
|
-
t-att-class="{'o-selected': this.isSelected}"
|
|
7927
|
-
t-att-style="this.getBorderStyle('top')"
|
|
7928
|
-
/>
|
|
7929
|
-
<div
|
|
7930
|
-
class="o-figure-border pe-auto h-100 position-absolute start-0 ps-2"
|
|
7931
|
-
t-att-class="{'o-selected': this.isSelected}"
|
|
7932
|
-
t-att-style="this.getBorderStyle('left')"
|
|
7933
|
-
/>
|
|
7934
|
-
<div
|
|
7935
|
-
class="o-figure-border pe-auto w-100 position-absolute bottom-0 pt-2"
|
|
7936
|
-
t-att-class="{'o-selected': this.isSelected}"
|
|
7937
|
-
t-att-style="this.getBorderStyle('bottom')"
|
|
7938
|
-
/>
|
|
7939
|
-
<div
|
|
7940
|
-
class="o-figure-border pe-auto h-100 position-absolute end-0 pe-2"
|
|
7941
|
-
t-att-class="{'o-selected': this.isSelected}"
|
|
7942
|
-
t-att-style="this.getBorderStyle('right')"
|
|
7943
|
-
/>
|
|
7944
|
-
</div>
|
|
7945
8057
|
</div>
|
|
8058
|
+
<div
|
|
8059
|
+
t-if="this.isSelected"
|
|
8060
|
+
class="o-figure-selection-border position-absolute pe-none w-100 h-100"
|
|
8061
|
+
/>
|
|
7946
8062
|
<t t-if="this.isFigureResizable">
|
|
7947
8063
|
<div
|
|
7948
8064
|
class="o-fig-anchor o-top pe-auto"
|
|
@@ -8136,24 +8252,13 @@
|
|
|
8136
8252
|
class="mx-auto h-100 position-relative"
|
|
8137
8253
|
t-ref="this.gridRef"
|
|
8138
8254
|
t-att-style="this.gridContainer">
|
|
8255
|
+
<div class="position-absolute" t-att-style="this.gridOverlayDimensions">
|
|
8256
|
+
<FiguresContainer/>
|
|
8257
|
+
</div>
|
|
8139
8258
|
<GridOverlay
|
|
8140
8259
|
onGridResized.bind="this.onGridResized"
|
|
8141
8260
|
gridOverlayDimensions="this.gridOverlayDimensions">
|
|
8142
|
-
<
|
|
8143
|
-
t-foreach="this.getClickableCells()"
|
|
8144
|
-
t-as="clickableCell"
|
|
8145
|
-
t-key="clickableCell_index"
|
|
8146
|
-
class="o-dashboard-clickable-cell"
|
|
8147
|
-
t-att-title="clickableCell.title"
|
|
8148
|
-
t-on-click="(ev) => this.selectClickableCell(ev, clickableCell)"
|
|
8149
|
-
t-on-auxclick="(ev) => this.selectClickableCell(ev, clickableCell)"
|
|
8150
|
-
t-att-style="this.getCellClickableStyle(clickableCell.coordinates)">
|
|
8151
|
-
<t
|
|
8152
|
-
t-if="clickableCell.component"
|
|
8153
|
-
t-component="clickableCell.component"
|
|
8154
|
-
t-props="clickableCell.componentProps"
|
|
8155
|
-
/>
|
|
8156
|
-
</div>
|
|
8261
|
+
<ClickableCellsOverlay/>
|
|
8157
8262
|
</GridOverlay>
|
|
8158
8263
|
<canvas t-ref="this.canvasRef" class="os-theme-dependant"/>
|
|
8159
8264
|
<GridPopover
|
|
@@ -8581,6 +8686,24 @@
|
|
|
8581
8686
|
/>
|
|
8582
8687
|
</t>
|
|
8583
8688
|
|
|
8689
|
+
<t t-name="o-spreadsheet-ClickableCellsOverlay">
|
|
8690
|
+
<div
|
|
8691
|
+
t-foreach="this.getClickableCells()"
|
|
8692
|
+
t-as="clickableCell"
|
|
8693
|
+
t-key="clickableCell_index"
|
|
8694
|
+
class="o-dashboard-clickable-cell"
|
|
8695
|
+
t-att-title="clickableCell.title"
|
|
8696
|
+
t-on-click="(ev) => this.selectClickableCell(ev, clickableCell)"
|
|
8697
|
+
t-on-auxclick="(ev) => this.selectClickableCell(ev, clickableCell)"
|
|
8698
|
+
t-att-style="this.getCellClickableStyle(clickableCell.coordinates)">
|
|
8699
|
+
<t
|
|
8700
|
+
t-if="clickableCell.component"
|
|
8701
|
+
t-component="clickableCell.component"
|
|
8702
|
+
t-props="clickableCell.componentProps"
|
|
8703
|
+
/>
|
|
8704
|
+
</div>
|
|
8705
|
+
</t>
|
|
8706
|
+
|
|
8584
8707
|
<t t-name="o-spreadsheet-BottomBar">
|
|
8585
8708
|
<div
|
|
8586
8709
|
class="o-spreadsheet-bottom-bar o-two-columns d-flex flex-fill align-items-center overflow-hidden border-top"
|