@odoo/o-spreadsheet 19.1.0-alpha.0 → 19.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/o-spreadsheet.cjs.js +269 -2944
- package/dist/o-spreadsheet.d.ts +35 -40
- package/dist/o-spreadsheet.esm.js +268 -2945
- package/dist/o-spreadsheet.iife.js +269 -2944
- package/dist/o-spreadsheet.iife.min.js +349 -2880
- package/dist/o_spreadsheet.xml +50 -17
- package/package.json +15 -2
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
|
-
* @version 19.1.0-alpha.
|
|
6
|
-
* @date 2025-09-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.0-alpha.2
|
|
6
|
+
* @date 2025-09-19T07:26:49.306Z
|
|
7
|
+
* @hash 8cc543d
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function (exports, owl) {
|
|
@@ -588,7 +588,6 @@
|
|
|
588
588
|
const CANVAS_SHIFT = 0.5;
|
|
589
589
|
// Colors
|
|
590
590
|
const HIGHLIGHT_COLOR = "#017E84";
|
|
591
|
-
const BACKGROUND_GRAY_COLOR = "#f5f5f5";
|
|
592
591
|
const BACKGROUND_HEADER_COLOR = "#F8F9FA";
|
|
593
592
|
const BACKGROUND_HEADER_SELECTED_COLOR = "#E8EAED";
|
|
594
593
|
const BACKGROUND_HEADER_ACTIVE_COLOR = "#595959";
|
|
@@ -598,15 +597,10 @@
|
|
|
598
597
|
const HEADER_BORDER_COLOR = "#C0C0C0";
|
|
599
598
|
const CELL_BORDER_COLOR = "#E2E3E3";
|
|
600
599
|
const BACKGROUND_CHART_COLOR = "#FFFFFF";
|
|
601
|
-
const DISABLED_TEXT_COLOR = "#CACACA";
|
|
602
600
|
const DEFAULT_COLOR_SCALE_MIDPOINT_COLOR = 0xb6d7a8;
|
|
603
601
|
const LINK_COLOR = HIGHLIGHT_COLOR;
|
|
604
602
|
const FILTERS_COLOR = "#188038";
|
|
605
|
-
const SEPARATOR_COLOR = "#E0E2E4";
|
|
606
|
-
const ICONS_COLOR = "#4A4F59";
|
|
607
|
-
const HEADER_GROUPING_BACKGROUND_COLOR = "#F5F5F5";
|
|
608
603
|
const HEADER_GROUPING_BORDER_COLOR = "#999";
|
|
609
|
-
const GRID_BORDER_COLOR = "#E2E3E3";
|
|
610
604
|
const FROZEN_PANE_HEADER_BORDER_COLOR = "#BCBCBC";
|
|
611
605
|
const FROZEN_PANE_BORDER_COLOR = "#DADFE8";
|
|
612
606
|
const COMPOSER_ASSISTANT_COLOR = "#9B359B";
|
|
@@ -618,30 +612,9 @@
|
|
|
618
612
|
const GRAY_900 = "#111827";
|
|
619
613
|
const GRAY_300 = "#D8DADD";
|
|
620
614
|
const GRAY_200 = "#E7E9ED";
|
|
621
|
-
const GRAY_100 = "#F9FAFB";
|
|
622
615
|
const TEXT_BODY = "#374151";
|
|
623
616
|
const TEXT_BODY_MUTED = TEXT_BODY + "C2";
|
|
624
|
-
const TEXT_HEADING = "#111827";
|
|
625
|
-
const PRIMARY_BUTTON_BG = "#714B67";
|
|
626
|
-
const PRIMARY_BUTTON_HOVER_BG = "#624159";
|
|
627
|
-
const PRIMARY_BUTTON_ACTIVE_BG = "#f1edf0";
|
|
628
|
-
const BUTTON_BG = GRAY_200;
|
|
629
|
-
const BUTTON_HOVER_BG = GRAY_300;
|
|
630
|
-
const BUTTON_HOVER_TEXT_COLOR = "#111827";
|
|
631
|
-
const BUTTON_ACTIVE_BG = "#e6f2f3";
|
|
632
|
-
const BUTTON_ACTIVE_TEXT_COLOR = "#111827";
|
|
633
617
|
const ACTION_COLOR = HIGHLIGHT_COLOR;
|
|
634
|
-
const ACTION_COLOR_HOVER = "#01585c";
|
|
635
|
-
const ALERT_WARNING_BG = "#FBEBCC";
|
|
636
|
-
const ALERT_WARNING_BORDER = "#F8E2B3";
|
|
637
|
-
const ALERT_WARNING_TEXT_COLOR = "#946D23";
|
|
638
|
-
const ALERT_DANGER_BG = "#D44C591A";
|
|
639
|
-
const ALERT_DANGER_BORDER = "#C34A41";
|
|
640
|
-
const ALERT_DANGER_TEXT_COLOR = "#C34A41";
|
|
641
|
-
const ALERT_INFO_BG = "#CDEDF1";
|
|
642
|
-
const ALERT_INFO_BORDER = "#98DBE2";
|
|
643
|
-
const ALERT_INFO_TEXT_COLOR = "#09414A";
|
|
644
|
-
const BADGE_SELECTED_COLOR = "#E6F2F3";
|
|
645
618
|
const CHART_PADDING = 20;
|
|
646
619
|
const CHART_PADDING_BOTTOM = 10;
|
|
647
620
|
const CHART_PADDING_TOP = 15;
|
|
@@ -739,9 +712,7 @@
|
|
|
739
712
|
const HEADER_HEIGHT = 26;
|
|
740
713
|
const HEADER_WIDTH = 48;
|
|
741
714
|
const DESKTOP_TOPBAR_TOOLBAR_HEIGHT = 34;
|
|
742
|
-
const MOBILE_TOPBAR_TOOLBAR_HEIGHT = 44;
|
|
743
715
|
const DESKTOP_BOTTOMBAR_HEIGHT = 36;
|
|
744
|
-
const MOBILE_BOTTOMBAR_HEIGHT = 44;
|
|
745
716
|
const DEFAULT_CELL_WIDTH = 96;
|
|
746
717
|
const DEFAULT_CELL_HEIGHT = 23;
|
|
747
718
|
const SCROLLBAR_WIDTH = 15;
|
|
@@ -749,7 +720,6 @@
|
|
|
749
720
|
const ICON_EDGE_LENGTH = 18;
|
|
750
721
|
const MIN_CF_ICON_MARGIN = 4;
|
|
751
722
|
const MIN_CELL_TEXT_MARGIN = 4;
|
|
752
|
-
const CF_ICON_EDGE_LENGTH = 15;
|
|
753
723
|
const PADDING_AUTORESIZE_VERTICAL = 3;
|
|
754
724
|
const PADDING_AUTORESIZE_HORIZONTAL = MIN_CELL_TEXT_MARGIN;
|
|
755
725
|
const GROUP_LAYER_WIDTH = 21;
|
|
@@ -764,11 +734,6 @@
|
|
|
764
734
|
const MENU_WIDTH = 250;
|
|
765
735
|
const MENU_VERTICAL_PADDING = 6;
|
|
766
736
|
const DESKTOP_MENU_ITEM_HEIGHT = 26;
|
|
767
|
-
const MOBILE_MENU_ITEM_HEIGHT = 35;
|
|
768
|
-
const MENU_ITEM_PADDING_HORIZONTAL = 11;
|
|
769
|
-
const MENU_ITEM_PADDING_VERTICAL = 4;
|
|
770
|
-
const MENU_SEPARATOR_BORDER_WIDTH = 1;
|
|
771
|
-
const MENU_SEPARATOR_PADDING = 5;
|
|
772
737
|
// Style
|
|
773
738
|
const DEFAULT_STYLE = {
|
|
774
739
|
align: "left",
|
|
@@ -822,23 +787,6 @@
|
|
|
822
787
|
const FORBIDDEN_SHEETNAME_CHARS_IN_EXCEL_REGEX = /'|\*|\?|\/|\\|\[|\]/;
|
|
823
788
|
// Cells
|
|
824
789
|
const FORMULA_REF_IDENTIFIER = "|";
|
|
825
|
-
// Components
|
|
826
|
-
var ComponentsImportance;
|
|
827
|
-
(function (ComponentsImportance) {
|
|
828
|
-
ComponentsImportance[ComponentsImportance["Grid"] = 0] = "Grid";
|
|
829
|
-
ComponentsImportance[ComponentsImportance["Highlight"] = 5] = "Highlight";
|
|
830
|
-
ComponentsImportance[ComponentsImportance["HeaderGroupingButton"] = 6] = "HeaderGroupingButton";
|
|
831
|
-
ComponentsImportance[ComponentsImportance["Figure"] = 10] = "Figure";
|
|
832
|
-
ComponentsImportance[ComponentsImportance["ScrollBar"] = 15] = "ScrollBar";
|
|
833
|
-
ComponentsImportance[ComponentsImportance["GridPopover"] = 19] = "GridPopover";
|
|
834
|
-
ComponentsImportance[ComponentsImportance["GridComposer"] = 20] = "GridComposer";
|
|
835
|
-
ComponentsImportance[ComponentsImportance["IconPicker"] = 25] = "IconPicker";
|
|
836
|
-
ComponentsImportance[ComponentsImportance["TopBarComposer"] = 30] = "TopBarComposer";
|
|
837
|
-
ComponentsImportance[ComponentsImportance["Popover"] = 35] = "Popover";
|
|
838
|
-
ComponentsImportance[ComponentsImportance["FigureAnchor"] = 1000] = "FigureAnchor";
|
|
839
|
-
ComponentsImportance[ComponentsImportance["FigureSnapLine"] = 1001] = "FigureSnapLine";
|
|
840
|
-
ComponentsImportance[ComponentsImportance["FigureTooltip"] = 1002] = "FigureTooltip";
|
|
841
|
-
})(ComponentsImportance || (ComponentsImportance = {}));
|
|
842
790
|
let DEFAULT_SHEETVIEW_SIZE = 0;
|
|
843
791
|
function getDefaultSheetViewSize() {
|
|
844
792
|
return DEFAULT_SHEETVIEW_SIZE;
|
|
@@ -889,6 +837,7 @@
|
|
|
889
837
|
ARG_SEPARATOR: functionColor,
|
|
890
838
|
ORPHAN_RIGHT_PAREN: "#ff0000",
|
|
891
839
|
};
|
|
840
|
+
const DRAG_THRESHOLD = 5; // in pixels, to avoid unwanted drag when clicking
|
|
892
841
|
|
|
893
842
|
//------------------------------------------------------------------------------
|
|
894
843
|
// Miscellaneous
|
|
@@ -1367,8 +1316,19 @@
|
|
|
1367
1316
|
},
|
|
1368
1317
|
}[funcName];
|
|
1369
1318
|
}
|
|
1319
|
+
/**
|
|
1320
|
+
* Removes the specified indexes from the array.
|
|
1321
|
+
* Sparse (empty) elements are transformed to undefined (unless their index is explicitly removed).
|
|
1322
|
+
*/
|
|
1370
1323
|
function removeIndexesFromArray(array, indexes) {
|
|
1371
|
-
|
|
1324
|
+
const toRemove = new Set(indexes);
|
|
1325
|
+
const newArray = [];
|
|
1326
|
+
for (let i = 0; i < array.length; i++) {
|
|
1327
|
+
if (!toRemove.has(i)) {
|
|
1328
|
+
newArray.push(array[i]);
|
|
1329
|
+
}
|
|
1330
|
+
}
|
|
1331
|
+
return newArray;
|
|
1372
1332
|
}
|
|
1373
1333
|
function insertItemsAtIndex(array, items, index) {
|
|
1374
1334
|
const newArray = [...array];
|
|
@@ -10664,153 +10624,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10664
10624
|
}
|
|
10665
10625
|
}
|
|
10666
10626
|
|
|
10667
|
-
/**
|
|
10668
|
-
* This file is largely inspired by owl 1.
|
|
10669
|
-
* `css` tag has been removed from owl 2 without workaround to manage css.
|
|
10670
|
-
* So, the solution was to import the behavior of owl 1 directly in our
|
|
10671
|
-
* codebase, with one difference: the css is added to the sheet as soon as the
|
|
10672
|
-
* css tag is executed. In owl 1, the css was added as soon as a Component was
|
|
10673
|
-
* created for the first time.
|
|
10674
|
-
*/
|
|
10675
|
-
const STYLESHEETS = {};
|
|
10676
|
-
let nextId = 0;
|
|
10677
|
-
/**
|
|
10678
|
-
* CSS tag helper for defining inline stylesheets. With this, one can simply define
|
|
10679
|
-
* an inline stylesheet with just the following code:
|
|
10680
|
-
* ```js
|
|
10681
|
-
* css`.component-a { color: red; }`;
|
|
10682
|
-
* ```
|
|
10683
|
-
*/
|
|
10684
|
-
function css(strings, ...args) {
|
|
10685
|
-
const name = `__sheet__${nextId++}`;
|
|
10686
|
-
const value = String.raw(strings, ...args);
|
|
10687
|
-
registerSheet(name, value);
|
|
10688
|
-
activateSheet(name);
|
|
10689
|
-
return name;
|
|
10690
|
-
}
|
|
10691
|
-
function processSheet(str) {
|
|
10692
|
-
const tokens = str.split(/(\{|\}|;)/).map((s) => s.trim());
|
|
10693
|
-
const selectorStack = [];
|
|
10694
|
-
const parts = [];
|
|
10695
|
-
let rules = [];
|
|
10696
|
-
function generateSelector(stackIndex, parentSelector) {
|
|
10697
|
-
const parts = [];
|
|
10698
|
-
for (const selector of selectorStack[stackIndex]) {
|
|
10699
|
-
let part = (parentSelector && parentSelector + " " + selector) || selector;
|
|
10700
|
-
if (part.includes("&")) {
|
|
10701
|
-
part = selector.replace(/&/g, parentSelector || "");
|
|
10702
|
-
}
|
|
10703
|
-
if (stackIndex < selectorStack.length - 1) {
|
|
10704
|
-
part = generateSelector(stackIndex + 1, part);
|
|
10705
|
-
}
|
|
10706
|
-
parts.push(part);
|
|
10707
|
-
}
|
|
10708
|
-
return parts.join(", ");
|
|
10709
|
-
}
|
|
10710
|
-
function generateRules() {
|
|
10711
|
-
if (rules.length) {
|
|
10712
|
-
parts.push(generateSelector(0) + " {");
|
|
10713
|
-
parts.push(...rules);
|
|
10714
|
-
parts.push("}");
|
|
10715
|
-
rules = [];
|
|
10716
|
-
}
|
|
10717
|
-
}
|
|
10718
|
-
while (tokens.length) {
|
|
10719
|
-
const token = tokens.shift();
|
|
10720
|
-
if (token === "}") {
|
|
10721
|
-
generateRules();
|
|
10722
|
-
selectorStack.pop();
|
|
10723
|
-
}
|
|
10724
|
-
else {
|
|
10725
|
-
if (tokens[0] === "{") {
|
|
10726
|
-
generateRules();
|
|
10727
|
-
selectorStack.push(token.split(/\s*,\s*/));
|
|
10728
|
-
tokens.shift();
|
|
10729
|
-
}
|
|
10730
|
-
if (tokens[0] === ";") {
|
|
10731
|
-
rules.push(" " + token + ";");
|
|
10732
|
-
}
|
|
10733
|
-
}
|
|
10734
|
-
}
|
|
10735
|
-
return parts.join("\n");
|
|
10736
|
-
}
|
|
10737
|
-
function registerSheet(id, css) {
|
|
10738
|
-
const sheet = document.createElement("style");
|
|
10739
|
-
sheet.textContent = processSheet(css);
|
|
10740
|
-
STYLESHEETS[id] = sheet;
|
|
10741
|
-
}
|
|
10742
|
-
function activateSheet(id) {
|
|
10743
|
-
const sheet = STYLESHEETS[id];
|
|
10744
|
-
sheet.setAttribute("component", id);
|
|
10745
|
-
document.head.appendChild(sheet);
|
|
10746
|
-
}
|
|
10747
|
-
function getTextDecoration({ strikethrough, underline, }) {
|
|
10748
|
-
if (!strikethrough && !underline) {
|
|
10749
|
-
return "none";
|
|
10750
|
-
}
|
|
10751
|
-
return `${strikethrough ? "line-through" : ""} ${underline ? "underline" : ""}`;
|
|
10752
|
-
}
|
|
10753
|
-
/**
|
|
10754
|
-
* Convert the cell style to CSS properties.
|
|
10755
|
-
*/
|
|
10756
|
-
function cellStyleToCss(style) {
|
|
10757
|
-
const attributes = cellTextStyleToCss(style);
|
|
10758
|
-
if (!style)
|
|
10759
|
-
return attributes;
|
|
10760
|
-
if (style.fillColor) {
|
|
10761
|
-
attributes["background"] = style.fillColor;
|
|
10762
|
-
}
|
|
10763
|
-
return attributes;
|
|
10764
|
-
}
|
|
10765
|
-
/**
|
|
10766
|
-
* Convert the cell text style to CSS properties.
|
|
10767
|
-
*/
|
|
10768
|
-
function cellTextStyleToCss(style) {
|
|
10769
|
-
const attributes = {};
|
|
10770
|
-
if (!style)
|
|
10771
|
-
return attributes;
|
|
10772
|
-
if (style.bold) {
|
|
10773
|
-
attributes["font-weight"] = "bold";
|
|
10774
|
-
}
|
|
10775
|
-
if (style.italic) {
|
|
10776
|
-
attributes["font-style"] = "italic";
|
|
10777
|
-
}
|
|
10778
|
-
if (style.fontSize) {
|
|
10779
|
-
attributes["font-size"] = `${style.fontSize}px`;
|
|
10780
|
-
}
|
|
10781
|
-
if (style.strikethrough || style.underline) {
|
|
10782
|
-
let decoration = style.strikethrough ? "line-through" : "";
|
|
10783
|
-
decoration = style.underline ? decoration + " underline" : decoration;
|
|
10784
|
-
attributes["text-decoration"] = decoration;
|
|
10785
|
-
}
|
|
10786
|
-
if (style.textColor) {
|
|
10787
|
-
attributes["color"] = style.textColor;
|
|
10788
|
-
}
|
|
10789
|
-
return attributes;
|
|
10790
|
-
}
|
|
10791
|
-
/**
|
|
10792
|
-
* Transform CSS properties into a CSS string.
|
|
10793
|
-
*/
|
|
10794
|
-
function cssPropertiesToCss(attributes) {
|
|
10795
|
-
let styleStr = "";
|
|
10796
|
-
for (const attName in attributes) {
|
|
10797
|
-
if (!attributes[attName]) {
|
|
10798
|
-
continue;
|
|
10799
|
-
}
|
|
10800
|
-
styleStr += `${attName}:${attributes[attName]}; `;
|
|
10801
|
-
}
|
|
10802
|
-
return styleStr;
|
|
10803
|
-
}
|
|
10804
|
-
function getElementMargins(el) {
|
|
10805
|
-
const style = window.getComputedStyle(el);
|
|
10806
|
-
return {
|
|
10807
|
-
top: parseInt(style.marginTop, 10) || 0,
|
|
10808
|
-
bottom: parseInt(style.marginBottom, 10) || 0,
|
|
10809
|
-
left: parseInt(style.marginLeft, 10) || 0,
|
|
10810
|
-
right: parseInt(style.marginRight, 10) || 0,
|
|
10811
|
-
};
|
|
10812
|
-
}
|
|
10813
|
-
|
|
10814
10627
|
const chartJsExtensionRegistry = new Registry();
|
|
10815
10628
|
function areChartJSExtensionsLoaded() {
|
|
10816
10629
|
return !!window.Chart.registry.plugins.get("chartShowValuesPlugin");
|
|
@@ -16083,8 +15896,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
16083
15896
|
}
|
|
16084
15897
|
|
|
16085
15898
|
function sortMatrix(matrix, locale, ...criteria) {
|
|
16086
|
-
for (
|
|
16087
|
-
|
|
15899
|
+
for (let i = 0; i < criteria.length; i++) {
|
|
15900
|
+
const param = i % 2 === 0 ? "sort_column" : "is_ascending";
|
|
15901
|
+
assert(criteria[i] !== undefined, _t("Value for parameter %s is missing in [[FUNCTION_NAME]].", param));
|
|
16088
15902
|
}
|
|
16089
15903
|
const sortingOrders = [];
|
|
16090
15904
|
const sortColumns = [];
|
|
@@ -24032,15 +23846,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24032
23846
|
return bars.find((bar, i) => i > startIndex && bar.height !== 0);
|
|
24033
23847
|
}
|
|
24034
23848
|
|
|
24035
|
-
css /* scss */ `
|
|
24036
|
-
.o-spreadsheet {
|
|
24037
|
-
.o-chart-custom-tooltip {
|
|
24038
|
-
font-size: 12px;
|
|
24039
|
-
background-color: #fff;
|
|
24040
|
-
z-index: ${ComponentsImportance.FigureTooltip};
|
|
24041
|
-
}
|
|
24042
|
-
}
|
|
24043
|
-
`;
|
|
24044
23849
|
chartJsExtensionRegistry.add("chartShowValuesPlugin", {
|
|
24045
23850
|
register: (Chart) => Chart.register(chartShowValuesPlugin),
|
|
24046
23851
|
unregister: (Chart) => Chart.unregister(chartShowValuesPlugin),
|
|
@@ -24538,18 +24343,15 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24538
24343
|
return {
|
|
24539
24344
|
title: {
|
|
24540
24345
|
...chart.title,
|
|
24541
|
-
|
|
24542
|
-
text: chart.title.text ? _t(chart.title.text) : "",
|
|
24346
|
+
text: chart.title.text ? getters.dynamicTranslate(chart.title.text) : "",
|
|
24543
24347
|
},
|
|
24544
24348
|
keyValue: formattedKeyValue,
|
|
24545
|
-
keyDescr: chart.keyDescr?.text
|
|
24546
|
-
? _t(chart.keyDescr.text) // descriptions are extracted from .json files and they are translated at runtime here
|
|
24547
|
-
: "",
|
|
24349
|
+
keyDescr: chart.keyDescr?.text ? getters.dynamicTranslate(chart.keyDescr.text) : "",
|
|
24548
24350
|
baselineDisplay,
|
|
24549
24351
|
baselineArrow: getBaselineArrowDirection(baselineCell, keyValueCell, chart.baselineMode),
|
|
24550
24352
|
baselineColor: getBaselineColor(baselineCell, chart.baselineMode, keyValueCell, chart.baselineColorUp, chart.baselineColorDown),
|
|
24551
24353
|
baselineDescr: chart.baselineMode !== "progress" && chart.baselineDescr?.text
|
|
24552
|
-
?
|
|
24354
|
+
? getters.dynamicTranslate(chart.baselineDescr.text)
|
|
24553
24355
|
: "",
|
|
24554
24356
|
fontColor,
|
|
24555
24357
|
background,
|
|
@@ -24849,9 +24651,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24849
24651
|
return this.env.model.getters.getChartRuntime(this.props.chartId);
|
|
24850
24652
|
}
|
|
24851
24653
|
get title() {
|
|
24852
|
-
const title = this.env.model.getters.getChartDefinition(this.props.chartId).title.text
|
|
24853
|
-
|
|
24854
|
-
return _t(title);
|
|
24654
|
+
const title = this.env.model.getters.getChartDefinition(this.props.chartId).title.text;
|
|
24655
|
+
return title ? this.env.model.getters.dynamicTranslate(title) : "";
|
|
24855
24656
|
}
|
|
24856
24657
|
setup() {
|
|
24857
24658
|
owl.useEffect(this.createChart.bind(this), () => {
|
|
@@ -27024,12 +26825,12 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
27024
26825
|
return axisId || "y";
|
|
27025
26826
|
}
|
|
27026
26827
|
|
|
27027
|
-
function getChartTitle(definition) {
|
|
26828
|
+
function getChartTitle(definition, getters) {
|
|
27028
26829
|
const chartTitle = definition.title;
|
|
27029
26830
|
const fontColor = chartMutedFontColor(definition.background);
|
|
27030
26831
|
return {
|
|
27031
26832
|
display: !!chartTitle.text,
|
|
27032
|
-
text:
|
|
26833
|
+
text: chartTitle.text ? getters.dynamicTranslate(chartTitle.text) : "",
|
|
27033
26834
|
color: chartTitle?.color ?? fontColor,
|
|
27034
26835
|
align: chartTitle.align === "center" ? "center" : chartTitle.align === "right" ? "end" : "start",
|
|
27035
26836
|
font: {
|
|
@@ -27597,7 +27398,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
27597
27398
|
layout: getChartLayout(definition, chartData),
|
|
27598
27399
|
scales: getBarChartScales(definition, chartData),
|
|
27599
27400
|
plugins: {
|
|
27600
|
-
title: getChartTitle(definition),
|
|
27401
|
+
title: getChartTitle(definition, getters),
|
|
27601
27402
|
legend: getBarChartLegend(definition),
|
|
27602
27403
|
tooltip: getBarChartTooltip(definition, chartData),
|
|
27603
27404
|
chartShowValuesPlugin: getChartShowValues(definition, chartData),
|
|
@@ -27784,13 +27585,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
27784
27585
|
},
|
|
27785
27586
|
};
|
|
27786
27587
|
|
|
27787
|
-
css /* scss */ `
|
|
27788
|
-
.o-spreadsheet {
|
|
27789
|
-
.o-master-chart-container {
|
|
27790
|
-
height: ${MASTER_CHART_HEIGHT}px;
|
|
27791
|
-
}
|
|
27792
|
-
}
|
|
27793
|
-
`;
|
|
27794
27588
|
chartJsExtensionRegistry.add("zoomWindowPlugin", {
|
|
27795
27589
|
register: (Chart) => Chart.register(zoomWindowPlugin),
|
|
27796
27590
|
unregister: (Chart) => Chart.unregister(zoomWindowPlugin),
|
|
@@ -28828,7 +28622,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
28828
28622
|
layout: getChartLayout(definition, chartData),
|
|
28829
28623
|
scales: getBarChartScales(definition, chartData),
|
|
28830
28624
|
plugins: {
|
|
28831
|
-
title: getChartTitle(definition),
|
|
28625
|
+
title: getChartTitle(definition, getters),
|
|
28832
28626
|
legend: getComboChartLegend(definition),
|
|
28833
28627
|
tooltip: getBarChartTooltip(definition, chartData),
|
|
28834
28628
|
chartShowValuesPlugin: getChartShowValues(definition, chartData),
|
|
@@ -28974,7 +28768,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
28974
28768
|
layout: getChartLayout(definition, chartData),
|
|
28975
28769
|
scales: getFunnelChartScales(definition, chartData),
|
|
28976
28770
|
plugins: {
|
|
28977
|
-
title: getChartTitle(definition),
|
|
28771
|
+
title: getChartTitle(definition, getters),
|
|
28978
28772
|
legend: { display: false },
|
|
28979
28773
|
tooltip: getFunnelChartTooltip(definition, chartData),
|
|
28980
28774
|
chartShowValuesPlugin: getChartShowValues(definition, chartData),
|
|
@@ -29211,8 +29005,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29211
29005
|
background: getters.getStyleOfSingleCellChart(chart.background, dataRange).background,
|
|
29212
29006
|
title: {
|
|
29213
29007
|
...chart.title,
|
|
29214
|
-
|
|
29215
|
-
text: _t(chart.title.text ?? ""),
|
|
29008
|
+
text: chart.title.text ? getters.dynamicTranslate(chart.title.text) : "",
|
|
29216
29009
|
},
|
|
29217
29010
|
minValue: {
|
|
29218
29011
|
value: minValue,
|
|
@@ -29396,7 +29189,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29396
29189
|
layout: getChartLayout(definition, chartData),
|
|
29397
29190
|
scales: getGeoChartScales(definition, chartData),
|
|
29398
29191
|
plugins: {
|
|
29399
|
-
title: getChartTitle(definition),
|
|
29192
|
+
title: getChartTitle(definition, getters),
|
|
29400
29193
|
tooltip: getGeoChartTooltip(definition, chartData),
|
|
29401
29194
|
legend: { display: false },
|
|
29402
29195
|
},
|
|
@@ -29561,7 +29354,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29561
29354
|
layout: getChartLayout(definition, chartData),
|
|
29562
29355
|
scales: getLineChartScales(definition, chartData),
|
|
29563
29356
|
plugins: {
|
|
29564
|
-
title: getChartTitle(definition),
|
|
29357
|
+
title: getChartTitle(definition, getters),
|
|
29565
29358
|
legend: getLineChartLegend(definition),
|
|
29566
29359
|
tooltip: getLineChartTooltip(definition, chartData),
|
|
29567
29360
|
chartShowValuesPlugin: getChartShowValues(definition, chartData),
|
|
@@ -29698,7 +29491,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29698
29491
|
: undefined,
|
|
29699
29492
|
layout: getChartLayout(definition, chartData),
|
|
29700
29493
|
plugins: {
|
|
29701
|
-
title: getChartTitle(definition),
|
|
29494
|
+
title: getChartTitle(definition, getters),
|
|
29702
29495
|
legend: getPieChartLegend(definition, chartData),
|
|
29703
29496
|
tooltip: getPieChartTooltip(definition, chartData),
|
|
29704
29497
|
chartShowValuesPlugin: getChartShowValues(definition, chartData),
|
|
@@ -29852,7 +29645,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29852
29645
|
layout: getChartLayout(definition, chartData),
|
|
29853
29646
|
scales: getPyramidChartScales(definition, chartData),
|
|
29854
29647
|
plugins: {
|
|
29855
|
-
title: getChartTitle(definition),
|
|
29648
|
+
title: getChartTitle(definition, getters),
|
|
29856
29649
|
legend: getBarChartLegend(definition),
|
|
29857
29650
|
tooltip: getPyramidChartTooltip(definition, chartData),
|
|
29858
29651
|
chartShowValuesPlugin: getPyramidChartShowValues(definition, chartData),
|
|
@@ -30001,7 +29794,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30001
29794
|
layout: getChartLayout(definition, chartData),
|
|
30002
29795
|
scales: getRadarChartScales(definition, chartData),
|
|
30003
29796
|
plugins: {
|
|
30004
|
-
title: getChartTitle(definition),
|
|
29797
|
+
title: getChartTitle(definition, getters),
|
|
30005
29798
|
legend: getRadarChartLegend(definition),
|
|
30006
29799
|
tooltip: getRadarChartTooltip(definition, chartData),
|
|
30007
29800
|
chartShowValuesPlugin: getChartShowValues(definition, chartData),
|
|
@@ -30156,7 +29949,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30156
29949
|
layout: getChartLayout(definition, chartData),
|
|
30157
29950
|
scales: getScatterChartScales(definition, chartData),
|
|
30158
29951
|
plugins: {
|
|
30159
|
-
title: getChartTitle(definition),
|
|
29952
|
+
title: getChartTitle(definition, getters),
|
|
30160
29953
|
legend: getScatterChartLegend(definition),
|
|
30161
29954
|
tooltip: getLineChartTooltip(definition, chartData),
|
|
30162
29955
|
chartShowValuesPlugin: getChartShowValues(definition, chartData),
|
|
@@ -30295,7 +30088,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30295
30088
|
...CHART_COMMON_OPTIONS,
|
|
30296
30089
|
layout: getChartLayout(definition, chartData),
|
|
30297
30090
|
plugins: {
|
|
30298
|
-
title: getChartTitle(definition),
|
|
30091
|
+
title: getChartTitle(definition, getters),
|
|
30299
30092
|
legend: getSunburstChartLegend(definition),
|
|
30300
30093
|
tooltip: getSunburstChartTooltip(definition, chartData),
|
|
30301
30094
|
sunburstLabelsPlugin: getSunburstShowValues(definition, chartData),
|
|
@@ -30445,7 +30238,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30445
30238
|
...CHART_COMMON_OPTIONS,
|
|
30446
30239
|
layout: getChartLayout(definition, chartData),
|
|
30447
30240
|
plugins: {
|
|
30448
|
-
title: getChartTitle(definition),
|
|
30241
|
+
title: getChartTitle(definition, getters),
|
|
30449
30242
|
legend: { display: false },
|
|
30450
30243
|
tooltip: getTreeMapChartTooltip(definition, chartData),
|
|
30451
30244
|
},
|
|
@@ -30608,7 +30401,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30608
30401
|
layout: getChartLayout(definition, chartData),
|
|
30609
30402
|
scales: getWaterfallChartScales(definition, chartData),
|
|
30610
30403
|
plugins: {
|
|
30611
|
-
title: getChartTitle(definition),
|
|
30404
|
+
title: getChartTitle(definition, getters),
|
|
30612
30405
|
legend: getWaterfallChartLegend(definition),
|
|
30613
30406
|
tooltip: getWaterfallChartTooltip(definition, chartData),
|
|
30614
30407
|
chartShowValuesPlugin: getWaterfallChartShowValues(definition, chartData),
|
|
@@ -31602,6 +31395,81 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31602
31395
|
return matchedChart.displayName;
|
|
31603
31396
|
}
|
|
31604
31397
|
|
|
31398
|
+
/**
|
|
31399
|
+
* This file is largely inspired by owl 1.
|
|
31400
|
+
* `css` tag has been removed from owl 2 without workaround to manage css.
|
|
31401
|
+
* So, the solution was to import the behavior of owl 1 directly in our
|
|
31402
|
+
* codebase, with one difference: the css is added to the sheet as soon as the
|
|
31403
|
+
* css tag is executed. In owl 1, the css was added as soon as a Component was
|
|
31404
|
+
* created for the first time.
|
|
31405
|
+
*/
|
|
31406
|
+
function getTextDecoration({ strikethrough, underline, }) {
|
|
31407
|
+
if (!strikethrough && !underline) {
|
|
31408
|
+
return "none";
|
|
31409
|
+
}
|
|
31410
|
+
return `${strikethrough ? "line-through" : ""} ${underline ? "underline" : ""}`;
|
|
31411
|
+
}
|
|
31412
|
+
/**
|
|
31413
|
+
* Convert the cell style to CSS properties.
|
|
31414
|
+
*/
|
|
31415
|
+
function cellStyleToCss(style) {
|
|
31416
|
+
const attributes = cellTextStyleToCss(style);
|
|
31417
|
+
if (!style)
|
|
31418
|
+
return attributes;
|
|
31419
|
+
if (style.fillColor) {
|
|
31420
|
+
attributes["background"] = style.fillColor;
|
|
31421
|
+
}
|
|
31422
|
+
return attributes;
|
|
31423
|
+
}
|
|
31424
|
+
/**
|
|
31425
|
+
* Convert the cell text style to CSS properties.
|
|
31426
|
+
*/
|
|
31427
|
+
function cellTextStyleToCss(style) {
|
|
31428
|
+
const attributes = {};
|
|
31429
|
+
if (!style)
|
|
31430
|
+
return attributes;
|
|
31431
|
+
if (style.bold) {
|
|
31432
|
+
attributes["font-weight"] = "bold";
|
|
31433
|
+
}
|
|
31434
|
+
if (style.italic) {
|
|
31435
|
+
attributes["font-style"] = "italic";
|
|
31436
|
+
}
|
|
31437
|
+
if (style.fontSize) {
|
|
31438
|
+
attributes["font-size"] = `${style.fontSize}px`;
|
|
31439
|
+
}
|
|
31440
|
+
if (style.strikethrough || style.underline) {
|
|
31441
|
+
let decoration = style.strikethrough ? "line-through" : "";
|
|
31442
|
+
decoration = style.underline ? decoration + " underline" : decoration;
|
|
31443
|
+
attributes["text-decoration"] = decoration;
|
|
31444
|
+
}
|
|
31445
|
+
if (style.textColor) {
|
|
31446
|
+
attributes["color"] = style.textColor;
|
|
31447
|
+
}
|
|
31448
|
+
return attributes;
|
|
31449
|
+
}
|
|
31450
|
+
/**
|
|
31451
|
+
* Transform CSS properties into a CSS string.
|
|
31452
|
+
*/
|
|
31453
|
+
function cssPropertiesToCss(attributes) {
|
|
31454
|
+
let styleStr = "";
|
|
31455
|
+
for (const attName in attributes) {
|
|
31456
|
+
if (!attributes[attName]) {
|
|
31457
|
+
continue;
|
|
31458
|
+
}
|
|
31459
|
+
styleStr += `${attName}:${attributes[attName]}; `;
|
|
31460
|
+
}
|
|
31461
|
+
return styleStr;
|
|
31462
|
+
}
|
|
31463
|
+
function getElementMargins(el) {
|
|
31464
|
+
const style = window.getComputedStyle(el);
|
|
31465
|
+
return {
|
|
31466
|
+
top: parseInt(style.marginTop, 10) || 0,
|
|
31467
|
+
bottom: parseInt(style.marginBottom, 10) || 0,
|
|
31468
|
+
left: parseInt(style.marginLeft, 10) || 0,
|
|
31469
|
+
right: parseInt(style.marginRight, 10) || 0,
|
|
31470
|
+
};
|
|
31471
|
+
}
|
|
31472
|
+
|
|
31605
31473
|
/**
|
|
31606
31474
|
* Repeatedly calls a callback function with a time delay between calls.
|
|
31607
31475
|
*/
|
|
@@ -31656,59 +31524,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31656
31524
|
};
|
|
31657
31525
|
}
|
|
31658
31526
|
|
|
31659
|
-
//------------------------------------------------------------------------------
|
|
31660
|
-
// Context Menu Component
|
|
31661
|
-
//------------------------------------------------------------------------------
|
|
31662
|
-
css /* scss */ `
|
|
31663
|
-
.o-menu {
|
|
31664
|
-
background-color: white;
|
|
31665
|
-
user-select: none;
|
|
31666
|
-
|
|
31667
|
-
.o-menu-item {
|
|
31668
|
-
height: ${DESKTOP_MENU_ITEM_HEIGHT}px;
|
|
31669
|
-
padding: ${MENU_ITEM_PADDING_VERTICAL}px ${MENU_ITEM_PADDING_HORIZONTAL}px;
|
|
31670
|
-
cursor: pointer;
|
|
31671
|
-
user-select: none;
|
|
31672
|
-
|
|
31673
|
-
.o-menu-item-name {
|
|
31674
|
-
min-width: 40%;
|
|
31675
|
-
}
|
|
31676
|
-
|
|
31677
|
-
.o-menu-item-icon {
|
|
31678
|
-
display: inline-block;
|
|
31679
|
-
margin: 0px 8px 0px 0px;
|
|
31680
|
-
width: ${DESKTOP_MENU_ITEM_HEIGHT - 2 * MENU_ITEM_PADDING_VERTICAL}px;
|
|
31681
|
-
line-height: ${DESKTOP_MENU_ITEM_HEIGHT - 2 * MENU_ITEM_PADDING_VERTICAL}px;
|
|
31682
|
-
}
|
|
31683
|
-
|
|
31684
|
-
&:not(.disabled) {
|
|
31685
|
-
&:hover,
|
|
31686
|
-
&.o-menu-item-active {
|
|
31687
|
-
background-color: ${BUTTON_ACTIVE_BG};
|
|
31688
|
-
color: ${BUTTON_ACTIVE_TEXT_COLOR};
|
|
31689
|
-
}
|
|
31690
|
-
.o-menu-item-description {
|
|
31691
|
-
color: grey;
|
|
31692
|
-
}
|
|
31693
|
-
.o-menu-item-icon {
|
|
31694
|
-
.o-icon {
|
|
31695
|
-
color: ${ICONS_COLOR};
|
|
31696
|
-
}
|
|
31697
|
-
}
|
|
31698
|
-
}
|
|
31699
|
-
&.disabled {
|
|
31700
|
-
color: ${DISABLED_TEXT_COLOR};
|
|
31701
|
-
cursor: not-allowed;
|
|
31702
|
-
}
|
|
31703
|
-
}
|
|
31704
|
-
}
|
|
31705
|
-
|
|
31706
|
-
.o-spreadsheet-mobile {
|
|
31707
|
-
.o-menu-item {
|
|
31708
|
-
height: ${MOBILE_MENU_ITEM_HEIGHT}px;
|
|
31709
|
-
}
|
|
31710
|
-
}
|
|
31711
|
-
`;
|
|
31712
31527
|
class Menu extends owl.Component {
|
|
31713
31528
|
static template = "o-spreadsheet-Menu";
|
|
31714
31529
|
static props = {
|
|
@@ -31885,16 +31700,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31885
31700
|
return container;
|
|
31886
31701
|
}
|
|
31887
31702
|
|
|
31888
|
-
css /* scss */ `
|
|
31889
|
-
.o-popover {
|
|
31890
|
-
position: absolute;
|
|
31891
|
-
z-index: ${ComponentsImportance.Popover};
|
|
31892
|
-
overflow: auto;
|
|
31893
|
-
box-shadow: 1px 2px 5px 2px rgb(51 51 51 / 15%);
|
|
31894
|
-
width: fit-content;
|
|
31895
|
-
height: fit-content;
|
|
31896
|
-
}
|
|
31897
|
-
`;
|
|
31898
31703
|
class Popover extends owl.Component {
|
|
31899
31704
|
static template = "o-spreadsheet-Popover";
|
|
31900
31705
|
static props = {
|
|
@@ -31917,7 +31722,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31917
31722
|
onMouseWheel: () => { },
|
|
31918
31723
|
onPopoverMoved: () => { },
|
|
31919
31724
|
onPopoverHidden: () => { },
|
|
31920
|
-
zIndex: ComponentsImportance.Popover,
|
|
31921
31725
|
};
|
|
31922
31726
|
popoverRef = owl.useRef("popover");
|
|
31923
31727
|
popoverContentRef = owl.useRef("popoverContent");
|
|
@@ -31938,11 +31742,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31938
31742
|
// the element in rendered, so we can still set its position
|
|
31939
31743
|
owl.useEffect(this.computePopoverPosition.bind(this));
|
|
31940
31744
|
}
|
|
31941
|
-
get popoverStyle() {
|
|
31942
|
-
return cssPropertiesToCss({
|
|
31943
|
-
"z-index": `${this.props.zIndex}`,
|
|
31944
|
-
});
|
|
31945
|
-
}
|
|
31946
31745
|
computePopoverPosition() {
|
|
31947
31746
|
if (!this.containerRect)
|
|
31948
31747
|
throw new Error("Popover container is not defined");
|
|
@@ -32133,12 +31932,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32133
31932
|
//------------------------------------------------------------------------------
|
|
32134
31933
|
// Context MenuPopover Component
|
|
32135
31934
|
//------------------------------------------------------------------------------
|
|
32136
|
-
css /* scss */ `
|
|
32137
|
-
.o-menu-wrapper {
|
|
32138
|
-
padding: ${MENU_VERTICAL_PADDING}px 0px;
|
|
32139
|
-
background-color: white;
|
|
32140
|
-
}
|
|
32141
|
-
`;
|
|
32142
31935
|
const TIMEOUT_DELAY = 250;
|
|
32143
31936
|
class MenuPopover extends owl.Component {
|
|
32144
31937
|
static template = "o-spreadsheet-Menu-Popover";
|
|
@@ -32384,7 +32177,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32384
32177
|
onFigureDeleted: Function,
|
|
32385
32178
|
editFigureStyle: { type: Function, optional: true },
|
|
32386
32179
|
};
|
|
32387
|
-
static components = { ChartDashboardMenu };
|
|
32180
|
+
static components = { ChartDashboardMenu, MenuPopover };
|
|
32181
|
+
carouselTabsRef = owl.useRef("carouselTabs");
|
|
32182
|
+
carouselTabsDropdownRef = owl.useRef("carouselTabsDropdown");
|
|
32183
|
+
menuState = owl.useState({ isOpen: false, anchorRect: null, menuItems: [] });
|
|
32184
|
+
hiddenItems = [];
|
|
32388
32185
|
animationStore;
|
|
32389
32186
|
setup() {
|
|
32390
32187
|
this.animationStore = useStore(ChartAnimationStore);
|
|
@@ -32395,6 +32192,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32395
32192
|
else {
|
|
32396
32193
|
this.props.editFigureStyle?.({ "pointer-events": "auto" });
|
|
32397
32194
|
}
|
|
32195
|
+
this.updateTabsVisibility();
|
|
32398
32196
|
});
|
|
32399
32197
|
}
|
|
32400
32198
|
get carousel() {
|
|
@@ -32454,6 +32252,49 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32454
32252
|
const style = { ...DEFAULT_CAROUSEL_TITLE_STYLE, ...this.carousel.title };
|
|
32455
32253
|
return cssPropertiesToCss(cellTextStyleToCss(chartStyleToCellStyle(style)));
|
|
32456
32254
|
}
|
|
32255
|
+
updateTabsVisibility() {
|
|
32256
|
+
const tabsContainerEl = this.carouselTabsRef.el;
|
|
32257
|
+
const dropDownEl = this.carouselTabsDropdownRef.el;
|
|
32258
|
+
if (!tabsContainerEl || !dropDownEl) {
|
|
32259
|
+
return;
|
|
32260
|
+
}
|
|
32261
|
+
this.hiddenItems = [];
|
|
32262
|
+
const containerRect = getBoundingRectAsPOJO(tabsContainerEl);
|
|
32263
|
+
const tabs = Array.from(tabsContainerEl.children);
|
|
32264
|
+
for (const tab of tabs) {
|
|
32265
|
+
tab.style.display = "block";
|
|
32266
|
+
}
|
|
32267
|
+
const tabWidths = tabs.map((tab) => getBoundingRectAsPOJO(tab).width);
|
|
32268
|
+
let currentWidth = 0;
|
|
32269
|
+
for (let i = 0; i < tabs.length; i++) {
|
|
32270
|
+
const shouldBeHidden = currentWidth + tabWidths[i] > containerRect.width;
|
|
32271
|
+
currentWidth += tabWidths[i];
|
|
32272
|
+
if (shouldBeHidden) {
|
|
32273
|
+
tabs[i].style.display = "none";
|
|
32274
|
+
this.hiddenItems.push(this.carousel.items[i]);
|
|
32275
|
+
}
|
|
32276
|
+
}
|
|
32277
|
+
dropDownEl.style.display = this.hiddenItems.length ? "block" : "none";
|
|
32278
|
+
}
|
|
32279
|
+
get menuId() {
|
|
32280
|
+
return "carousel-tabs-menu-";
|
|
32281
|
+
}
|
|
32282
|
+
toggleMenu(ev) {
|
|
32283
|
+
if (ev.closedMenuId === this.menuId) {
|
|
32284
|
+
this.menuState.isOpen = false;
|
|
32285
|
+
return;
|
|
32286
|
+
}
|
|
32287
|
+
const rect = getRefBoundingRect(this.carouselTabsDropdownRef);
|
|
32288
|
+
const menuItems = this.hiddenItems.map((item) => ({
|
|
32289
|
+
name: this.getItemTitle(item),
|
|
32290
|
+
execute: () => this.onCarouselTabClick(item),
|
|
32291
|
+
isActive: () => this.isItemSelected(item),
|
|
32292
|
+
isReadonlyAllowed: true,
|
|
32293
|
+
}));
|
|
32294
|
+
this.menuState.isOpen = true;
|
|
32295
|
+
this.menuState.anchorRect = rect;
|
|
32296
|
+
this.menuState.menuItems = createActions(menuItems);
|
|
32297
|
+
}
|
|
32457
32298
|
}
|
|
32458
32299
|
|
|
32459
32300
|
class ChartFigure extends owl.Component {
|
|
@@ -32531,79 +32372,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32531
32372
|
const ANCHOR_SIZE = 8;
|
|
32532
32373
|
const BORDER_WIDTH = 1;
|
|
32533
32374
|
const ACTIVE_BORDER_WIDTH = 2;
|
|
32534
|
-
css /*SCSS*/ `
|
|
32535
|
-
div.o-figure {
|
|
32536
|
-
position: absolute;
|
|
32537
|
-
width: 100%;
|
|
32538
|
-
height: 100%;
|
|
32539
|
-
user-select: none;
|
|
32540
|
-
|
|
32541
|
-
&:focus {
|
|
32542
|
-
outline: none;
|
|
32543
|
-
}
|
|
32544
|
-
}
|
|
32545
|
-
|
|
32546
|
-
div.o-figure-border {
|
|
32547
|
-
z-index: 1;
|
|
32548
|
-
}
|
|
32549
|
-
|
|
32550
|
-
.o-figure-wrapper {
|
|
32551
|
-
position: absolute;
|
|
32552
|
-
box-sizing: content-box;
|
|
32553
|
-
pointer-events: auto;
|
|
32554
|
-
|
|
32555
|
-
.o-fig-anchor {
|
|
32556
|
-
z-index: ${ComponentsImportance.FigureAnchor};
|
|
32557
|
-
position: absolute;
|
|
32558
|
-
width: ${ANCHOR_SIZE}px;
|
|
32559
|
-
height: ${ANCHOR_SIZE}px;
|
|
32560
|
-
background-color: #1a73e8;
|
|
32561
|
-
outline: ${BORDER_WIDTH}px solid white;
|
|
32562
|
-
|
|
32563
|
-
&.o-top {
|
|
32564
|
-
cursor: n-resize;
|
|
32565
|
-
}
|
|
32566
|
-
&.o-topRight {
|
|
32567
|
-
cursor: ne-resize;
|
|
32568
|
-
}
|
|
32569
|
-
&.o-right {
|
|
32570
|
-
cursor: e-resize;
|
|
32571
|
-
}
|
|
32572
|
-
&.o-bottomRight {
|
|
32573
|
-
cursor: se-resize;
|
|
32574
|
-
}
|
|
32575
|
-
&.o-bottom {
|
|
32576
|
-
cursor: s-resize;
|
|
32577
|
-
}
|
|
32578
|
-
&.o-bottomLeft {
|
|
32579
|
-
cursor: sw-resize;
|
|
32580
|
-
}
|
|
32581
|
-
&.o-left {
|
|
32582
|
-
cursor: w-resize;
|
|
32583
|
-
}
|
|
32584
|
-
&.o-topLeft {
|
|
32585
|
-
cursor: nw-resize;
|
|
32586
|
-
}
|
|
32587
|
-
}
|
|
32588
|
-
|
|
32589
|
-
.o-figure-menu {
|
|
32590
|
-
right: 0px;
|
|
32591
|
-
top: 0px;
|
|
32592
|
-
display: none;
|
|
32593
|
-
}
|
|
32594
|
-
|
|
32595
|
-
.o-figure-menu-item {
|
|
32596
|
-
cursor: pointer;
|
|
32597
|
-
}
|
|
32598
|
-
|
|
32599
|
-
.o-figure.active:focus,
|
|
32600
|
-
.o-figure:hover {
|
|
32601
|
-
.o-figure-menu {
|
|
32602
|
-
display: flex;
|
|
32603
|
-
}
|
|
32604
|
-
}
|
|
32605
|
-
}
|
|
32606
|
-
`;
|
|
32607
32375
|
class FigureComponent extends owl.Component {
|
|
32608
32376
|
static template = "o-spreadsheet-FigureComponent";
|
|
32609
32377
|
static props = {
|
|
@@ -32648,7 +32416,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32648
32416
|
top: `${y}px`,
|
|
32649
32417
|
width: `${width}px`,
|
|
32650
32418
|
height: `${height}px`,
|
|
32651
|
-
"z-index": String(ComponentsImportance.Figure + (this.isSelected ? 1 : 0)),
|
|
32652
32419
|
});
|
|
32653
32420
|
}
|
|
32654
32421
|
getResizerPosition(resizer) {
|
|
@@ -32927,21 +32694,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32927
32694
|
}
|
|
32928
32695
|
|
|
32929
32696
|
const ERROR_TOOLTIP_MAX_HEIGHT = 80;
|
|
32930
|
-
const ERROR_TOOLTIP_WIDTH = 180;
|
|
32931
|
-
css /* scss */ `
|
|
32932
|
-
.o-error-tooltip {
|
|
32933
|
-
font-size: 13px;
|
|
32934
|
-
background-color: white;
|
|
32935
|
-
border-left: 3px solid red;
|
|
32936
|
-
padding: 10px;
|
|
32937
|
-
width: ${ERROR_TOOLTIP_WIDTH}px;
|
|
32938
|
-
overflow-wrap: break-word;
|
|
32939
|
-
|
|
32940
|
-
.o-error-tooltip-message {
|
|
32941
|
-
overflow: hidden;
|
|
32942
|
-
}
|
|
32943
|
-
}
|
|
32944
|
-
`;
|
|
32945
32697
|
class ErrorToolTip extends owl.Component {
|
|
32946
32698
|
static maxSize = { maxHeight: ERROR_TOOLTIP_MAX_HEIGHT };
|
|
32947
32699
|
static template = "o-spreadsheet-ErrorToolTip";
|
|
@@ -33042,34 +32794,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
33042
32794
|
}
|
|
33043
32795
|
}
|
|
33044
32796
|
|
|
33045
|
-
css /* scss */ `
|
|
33046
|
-
.o_side_panel_collapsible_title {
|
|
33047
|
-
font-size: 16px;
|
|
33048
|
-
cursor: pointer;
|
|
33049
|
-
padding: 6px 0px 6px 6px !important;
|
|
33050
|
-
|
|
33051
|
-
.collapsor-arrow {
|
|
33052
|
-
transform: rotate(-90deg);
|
|
33053
|
-
display: inline-block;
|
|
33054
|
-
transform-origin: 8px 11px;
|
|
33055
|
-
transition: transform 0.2s ease-in-out;
|
|
33056
|
-
|
|
33057
|
-
.o-icon {
|
|
33058
|
-
width: 16px;
|
|
33059
|
-
height: 22px;
|
|
33060
|
-
}
|
|
33061
|
-
}
|
|
33062
|
-
.collapsor:not(.collapsed) .collapsor-arrow {
|
|
33063
|
-
transform: rotate(0);
|
|
33064
|
-
}
|
|
33065
|
-
|
|
33066
|
-
.collapsor {
|
|
33067
|
-
width: 100%;
|
|
33068
|
-
transition-delay: 0.35s;
|
|
33069
|
-
transition-property: all;
|
|
33070
|
-
}
|
|
33071
|
-
}
|
|
33072
|
-
`;
|
|
33073
32797
|
class SidePanelCollapsible extends owl.Component {
|
|
33074
32798
|
static template = "o-spreadsheet-SidePanelCollapsible";
|
|
33075
32799
|
static props = {
|
|
@@ -33706,27 +33430,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
33706
33430
|
}
|
|
33707
33431
|
}
|
|
33708
33432
|
|
|
33709
|
-
css /* scss */ `
|
|
33710
|
-
.o-autocomplete-dropdown {
|
|
33711
|
-
pointer-events: auto;
|
|
33712
|
-
cursor: pointer;
|
|
33713
|
-
background-color: #fff;
|
|
33714
|
-
max-width: 400px;
|
|
33715
|
-
z-index: 1;
|
|
33716
|
-
|
|
33717
|
-
.o-autocomplete-value-focus {
|
|
33718
|
-
background-color: #f2f2f2;
|
|
33719
|
-
}
|
|
33720
|
-
|
|
33721
|
-
& > div {
|
|
33722
|
-
padding: 1px 5px 5px 5px;
|
|
33723
|
-
.o-autocomplete-description {
|
|
33724
|
-
padding-left: 5px;
|
|
33725
|
-
font-size: 11px;
|
|
33726
|
-
}
|
|
33727
|
-
}
|
|
33728
|
-
}
|
|
33729
|
-
`;
|
|
33730
33433
|
class TextValueProvider extends owl.Component {
|
|
33731
33434
|
static template = "o-spreadsheet-TextValueProvider";
|
|
33732
33435
|
static props = {
|
|
@@ -34028,36 +33731,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
34028
33731
|
}
|
|
34029
33732
|
|
|
34030
33733
|
const BUBBLE_ARROW_SIZE = 7;
|
|
34031
|
-
css /* scss */ `
|
|
34032
|
-
.o-spreadsheet {
|
|
34033
|
-
.o-speech-bubble {
|
|
34034
|
-
background-color: white;
|
|
34035
|
-
box-sizing: border-box;
|
|
34036
|
-
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
|
|
34037
|
-
border: 1px solid #ccc;
|
|
34038
|
-
z-index: ${ComponentsImportance.Popover};
|
|
34039
|
-
|
|
34040
|
-
&::after {
|
|
34041
|
-
content: "";
|
|
34042
|
-
position: absolute;
|
|
34043
|
-
top: 100%;
|
|
34044
|
-
left: 50%;
|
|
34045
|
-
background-color: white;
|
|
34046
|
-
height: ${BUBBLE_ARROW_SIZE}px;
|
|
34047
|
-
width: ${BUBBLE_ARROW_SIZE}px;
|
|
34048
|
-
transform-origin: top left;
|
|
34049
|
-
transform: translate(0, -67%) rotate(45deg);
|
|
34050
|
-
border-right: 1px solid #ccc;
|
|
34051
|
-
border-bottom: 1px solid #ccc;
|
|
34052
|
-
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
|
|
34053
|
-
}
|
|
34054
|
-
}
|
|
34055
|
-
|
|
34056
|
-
.o-speech-content {
|
|
34057
|
-
max-width: 300px;
|
|
34058
|
-
}
|
|
34059
|
-
}
|
|
34060
|
-
`;
|
|
34061
33734
|
class SpeechBubble extends owl.Component {
|
|
34062
33735
|
static template = "o-spreadsheet-SpeechBubble";
|
|
34063
33736
|
static props = { content: String, anchorRect: Object };
|
|
@@ -34086,85 +33759,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
34086
33759
|
const selectionIndicatorClass = "selector-flag";
|
|
34087
33760
|
const highlightParenthesisClass = "highlight-parenthesis-flag";
|
|
34088
33761
|
const highlightClass = "highlight-flag";
|
|
34089
|
-
const selectionIndicatorColor = "#a9a9a9";
|
|
34090
|
-
const selectionIndicator = "␣";
|
|
34091
|
-
css /* scss */ `
|
|
34092
|
-
.o-composer-container {
|
|
34093
|
-
.o-composer {
|
|
34094
|
-
overflow-y: auto;
|
|
34095
|
-
overflow-x: hidden;
|
|
34096
|
-
word-break: break-all;
|
|
34097
|
-
padding-right: 2px;
|
|
34098
|
-
|
|
34099
|
-
caret-color: black;
|
|
34100
|
-
padding-left: 3px;
|
|
34101
|
-
padding-right: 3px;
|
|
34102
|
-
outline: none;
|
|
34103
|
-
|
|
34104
|
-
tab-size: 4;
|
|
34105
|
-
|
|
34106
|
-
p {
|
|
34107
|
-
margin-bottom: 0px;
|
|
34108
|
-
|
|
34109
|
-
span {
|
|
34110
|
-
white-space: pre-wrap;
|
|
34111
|
-
/* On some browsers (chromium ?) it is somehow possible to hover two of the composer's spans at the same time, leading to
|
|
34112
|
-
* flickering with a succession of onmouseenter/onmouseleave events. A small invisible padding seems to prevent the issue.*/
|
|
34113
|
-
padding-left: 0.01px;
|
|
34114
|
-
|
|
34115
|
-
&.${selectionIndicatorClass}:after {
|
|
34116
|
-
content: "${selectionIndicator}";
|
|
34117
|
-
color: ${selectionIndicatorColor};
|
|
34118
|
-
}
|
|
34119
|
-
|
|
34120
|
-
&.${highlightParenthesisClass}:not(.${highlightClass}) {
|
|
34121
|
-
border-radius: 5px;
|
|
34122
|
-
background-color: lightgray;
|
|
34123
|
-
padding: 1.5px 0px 1.5px 0px;
|
|
34124
|
-
}
|
|
34125
|
-
|
|
34126
|
-
&.${highlightClass} {
|
|
34127
|
-
background-color: #e6edf3;
|
|
34128
|
-
}
|
|
34129
|
-
}
|
|
34130
|
-
}
|
|
34131
|
-
}
|
|
34132
|
-
.o-composer[placeholder]:empty:not(:focus):not(.active)::before {
|
|
34133
|
-
content: attr(placeholder);
|
|
34134
|
-
color: #bdbdbd;
|
|
34135
|
-
position: relative;
|
|
34136
|
-
top: 0%;
|
|
34137
|
-
pointer-events: none;
|
|
34138
|
-
}
|
|
34139
|
-
|
|
34140
|
-
.fa-stack {
|
|
34141
|
-
/* reset stack size which is doubled by default */
|
|
34142
|
-
width: ${CLOSE_ICON_RADIUS * 2}px;
|
|
34143
|
-
height: ${CLOSE_ICON_RADIUS * 2}px;
|
|
34144
|
-
line-height: ${CLOSE_ICON_RADIUS * 2}px;
|
|
34145
|
-
}
|
|
34146
|
-
|
|
34147
|
-
.force-open-assistant {
|
|
34148
|
-
left: -1px;
|
|
34149
|
-
top: -1px;
|
|
34150
|
-
|
|
34151
|
-
.fa-question-circle {
|
|
34152
|
-
color: ${PRIMARY_BUTTON_BG};
|
|
34153
|
-
}
|
|
34154
|
-
}
|
|
34155
|
-
|
|
34156
|
-
.o-composer-assistant {
|
|
34157
|
-
margin-top: 1px;
|
|
34158
|
-
|
|
34159
|
-
.o-semi-bold {
|
|
34160
|
-
/* FIXME: to remove in favor of Bootstrap
|
|
34161
|
-
* 'fw-semibold' when we upgrade to Bootstrap 5.2
|
|
34162
|
-
*/
|
|
34163
|
-
font-weight: 600 !important;
|
|
34164
|
-
}
|
|
34165
|
-
}
|
|
34166
|
-
}
|
|
34167
|
-
`;
|
|
34168
33762
|
class Composer extends owl.Component {
|
|
34169
33763
|
static template = "o-spreadsheet-Composer";
|
|
34170
33764
|
static props = {
|
|
@@ -35837,30 +35431,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
35837
35431
|
}
|
|
35838
35432
|
}
|
|
35839
35433
|
|
|
35840
|
-
css /* scss */ `
|
|
35841
|
-
.o-spreadsheet {
|
|
35842
|
-
.o-standalone-composer {
|
|
35843
|
-
min-height: 24px;
|
|
35844
|
-
|
|
35845
|
-
border-bottom: 1px solid;
|
|
35846
|
-
border-color: ${GRAY_300};
|
|
35847
|
-
|
|
35848
|
-
&.active {
|
|
35849
|
-
border-color: ${ACTION_COLOR};
|
|
35850
|
-
}
|
|
35851
|
-
|
|
35852
|
-
&.o-invalid {
|
|
35853
|
-
border-bottom: 2px solid red;
|
|
35854
|
-
}
|
|
35855
|
-
|
|
35856
|
-
/* As the standalone composer is potentially very small (eg. in a side panel), we remove the scrollbar display */
|
|
35857
|
-
scrollbar-width: none; /* Firefox */
|
|
35858
|
-
&::-webkit-scrollbar {
|
|
35859
|
-
display: none;
|
|
35860
|
-
}
|
|
35861
|
-
}
|
|
35862
|
-
}
|
|
35863
|
-
`;
|
|
35864
35434
|
class StandaloneComposer extends owl.Component {
|
|
35865
35435
|
static template = "o-spreadsheet-StandaloneComposer";
|
|
35866
35436
|
static props = {
|
|
@@ -35928,17 +35498,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
35928
35498
|
}
|
|
35929
35499
|
}
|
|
35930
35500
|
|
|
35931
|
-
css /* scss */ `
|
|
35932
|
-
.o-dv-input {
|
|
35933
|
-
&.o-invalid {
|
|
35934
|
-
background-color: #ffdddd;
|
|
35935
|
-
}
|
|
35936
|
-
.error-icon {
|
|
35937
|
-
right: 7px;
|
|
35938
|
-
top: 7px;
|
|
35939
|
-
}
|
|
35940
|
-
}
|
|
35941
|
-
`;
|
|
35942
35501
|
class CriterionInput extends owl.Component {
|
|
35943
35502
|
static template = "o-spreadsheet-CriterionInput";
|
|
35944
35503
|
static props = {
|
|
@@ -36106,8 +35665,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
36106
35665
|
return removeListeners;
|
|
36107
35666
|
}
|
|
36108
35667
|
|
|
36109
|
-
const LINE_VERTICAL_PADDING = 1;
|
|
36110
|
-
const PICKER_PADDING = 8;
|
|
36111
35668
|
const ITEM_BORDER_WIDTH = 1;
|
|
36112
35669
|
const ITEM_EDGE_LENGTH = 18;
|
|
36113
35670
|
const ITEMS_PER_LINE = 10;
|
|
@@ -36116,170 +35673,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
36116
35673
|
const CONTENT_WIDTH = ITEMS_PER_LINE * (ITEM_EDGE_LENGTH + 2 * ITEM_BORDER_WIDTH) + (ITEMS_PER_LINE - 1) * ITEM_GAP;
|
|
36117
35674
|
const INNER_GRADIENT_WIDTH = CONTENT_WIDTH - 2 * ITEM_BORDER_WIDTH;
|
|
36118
35675
|
const INNER_GRADIENT_HEIGHT = CONTENT_WIDTH - 30 - 2 * ITEM_BORDER_WIDTH;
|
|
36119
|
-
const CONTAINER_WIDTH = CONTENT_WIDTH + 2 * PICKER_PADDING;
|
|
36120
|
-
css /* scss */ `
|
|
36121
|
-
.o-color-picker {
|
|
36122
|
-
padding: ${PICKER_PADDING}px 0;
|
|
36123
|
-
/* FIXME: this is useless, overiden by the popover container */
|
|
36124
|
-
box-shadow: 1px 2px 5px 2px rgba(51, 51, 51, 0.15);
|
|
36125
|
-
background-color: white;
|
|
36126
|
-
line-height: 1.2;
|
|
36127
|
-
overflow-y: auto;
|
|
36128
|
-
overflow-x: hidden;
|
|
36129
|
-
width: ${CONTAINER_WIDTH}px;
|
|
36130
|
-
|
|
36131
|
-
.o-color-picker-section-name {
|
|
36132
|
-
margin: 0px ${ITEM_BORDER_WIDTH}px;
|
|
36133
|
-
padding: 4px ${PICKER_PADDING}px;
|
|
36134
|
-
}
|
|
36135
|
-
.colors-grid {
|
|
36136
|
-
display: grid;
|
|
36137
|
-
padding: ${LINE_VERTICAL_PADDING}px ${PICKER_PADDING}px;
|
|
36138
|
-
grid-template-columns: repeat(${ITEMS_PER_LINE}, 1fr);
|
|
36139
|
-
grid-gap: ${ITEM_GAP}px;
|
|
36140
|
-
}
|
|
36141
|
-
.o-color-picker-toggler-button {
|
|
36142
|
-
display: flex;
|
|
36143
|
-
.o-color-picker-toggler-sign {
|
|
36144
|
-
display: flex;
|
|
36145
|
-
margin: auto auto;
|
|
36146
|
-
width: 55%;
|
|
36147
|
-
height: 55%;
|
|
36148
|
-
.o-icon {
|
|
36149
|
-
width: 100%;
|
|
36150
|
-
height: 100%;
|
|
36151
|
-
}
|
|
36152
|
-
}
|
|
36153
|
-
}
|
|
36154
|
-
.o-color-picker-line-item {
|
|
36155
|
-
width: ${ITEM_EDGE_LENGTH + 2 * ITEM_BORDER_WIDTH}px;
|
|
36156
|
-
height: ${ITEM_EDGE_LENGTH + 2 * ITEM_BORDER_WIDTH}px;
|
|
36157
|
-
margin: 0px;
|
|
36158
|
-
border-radius: 50px;
|
|
36159
|
-
border: ${ITEM_BORDER_WIDTH}px solid #666666;
|
|
36160
|
-
padding: 0px;
|
|
36161
|
-
font-size: 16px;
|
|
36162
|
-
background: white;
|
|
36163
|
-
&:hover {
|
|
36164
|
-
background-color: rgba(0, 0, 0, 0.08);
|
|
36165
|
-
outline: 1px solid gray;
|
|
36166
|
-
cursor: pointer;
|
|
36167
|
-
}
|
|
36168
|
-
}
|
|
36169
|
-
.o-buttons {
|
|
36170
|
-
padding: ${PICKER_PADDING}px;
|
|
36171
|
-
display: flex;
|
|
36172
|
-
.o-cancel {
|
|
36173
|
-
border: ${ITEM_BORDER_WIDTH}px solid #c0c0c0;
|
|
36174
|
-
width: 100%;
|
|
36175
|
-
padding: 5px;
|
|
36176
|
-
font-size: 14px;
|
|
36177
|
-
background: white;
|
|
36178
|
-
border-radius: 4px;
|
|
36179
|
-
&:hover:enabled {
|
|
36180
|
-
background-color: rgba(0, 0, 0, 0.08);
|
|
36181
|
-
}
|
|
36182
|
-
}
|
|
36183
|
-
}
|
|
36184
|
-
.o-add-button {
|
|
36185
|
-
border: ${ITEM_BORDER_WIDTH}px solid #c0c0c0;
|
|
36186
|
-
padding: 4px;
|
|
36187
|
-
background: white;
|
|
36188
|
-
border-radius: 4px;
|
|
36189
|
-
&:hover:enabled {
|
|
36190
|
-
background-color: rgba(0, 0, 0, 0.08);
|
|
36191
|
-
}
|
|
36192
|
-
}
|
|
36193
|
-
.o-separator {
|
|
36194
|
-
border-bottom: ${MENU_SEPARATOR_BORDER_WIDTH}px solid ${SEPARATOR_COLOR};
|
|
36195
|
-
margin-top: ${MENU_SEPARATOR_PADDING}px;
|
|
36196
|
-
margin-bottom: ${MENU_SEPARATOR_PADDING}px;
|
|
36197
|
-
}
|
|
36198
|
-
|
|
36199
|
-
.o-custom-selector {
|
|
36200
|
-
padding: ${PICKER_PADDING + 2}px ${PICKER_PADDING}px;
|
|
36201
|
-
position: relative;
|
|
36202
|
-
.o-gradient {
|
|
36203
|
-
margin-bottom: ${MAGNIFIER_EDGE / 2}px;
|
|
36204
|
-
border: ${ITEM_BORDER_WIDTH}px solid #c0c0c0;
|
|
36205
|
-
width: ${INNER_GRADIENT_WIDTH + 2 * ITEM_BORDER_WIDTH}px;
|
|
36206
|
-
height: ${INNER_GRADIENT_HEIGHT + 2 * ITEM_BORDER_WIDTH}px;
|
|
36207
|
-
position: relative;
|
|
36208
|
-
}
|
|
36209
|
-
|
|
36210
|
-
.magnifier {
|
|
36211
|
-
height: ${MAGNIFIER_EDGE}px;
|
|
36212
|
-
width: ${MAGNIFIER_EDGE}px;
|
|
36213
|
-
border-radius: 50%;
|
|
36214
|
-
border: 2px solid #fff;
|
|
36215
|
-
box-shadow: 0px 0px 3px #c0c0c0;
|
|
36216
|
-
position: absolute;
|
|
36217
|
-
z-index: 2;
|
|
36218
|
-
}
|
|
36219
|
-
.saturation {
|
|
36220
|
-
background: linear-gradient(to right, #fff 0%, transparent 100%);
|
|
36221
|
-
}
|
|
36222
|
-
.lightness {
|
|
36223
|
-
background: linear-gradient(to top, #000 0%, transparent 100%);
|
|
36224
|
-
}
|
|
36225
|
-
.o-hue-picker {
|
|
36226
|
-
border: ${ITEM_BORDER_WIDTH}px solid #c0c0c0;
|
|
36227
|
-
width: 100%;
|
|
36228
|
-
height: 12px;
|
|
36229
|
-
border-radius: 4px;
|
|
36230
|
-
background: linear-gradient(
|
|
36231
|
-
to right,
|
|
36232
|
-
hsl(0 100% 50%) 0%,
|
|
36233
|
-
hsl(0.2turn 100% 50%) 20%,
|
|
36234
|
-
hsl(0.3turn 100% 50%) 30%,
|
|
36235
|
-
hsl(0.4turn 100% 50%) 40%,
|
|
36236
|
-
hsl(0.5turn 100% 50%) 50%,
|
|
36237
|
-
hsl(0.6turn 100% 50%) 60%,
|
|
36238
|
-
hsl(0.7turn 100% 50%) 70%,
|
|
36239
|
-
hsl(0.8turn 100% 50%) 80%,
|
|
36240
|
-
hsl(0.9turn 100% 50%) 90%,
|
|
36241
|
-
hsl(1turn 100% 50%) 100%
|
|
36242
|
-
);
|
|
36243
|
-
position: relative;
|
|
36244
|
-
cursor: crosshair;
|
|
36245
|
-
}
|
|
36246
|
-
.o-hue-slider {
|
|
36247
|
-
margin-top: -3px;
|
|
36248
|
-
}
|
|
36249
|
-
.o-custom-input-preview {
|
|
36250
|
-
padding: 2px 0px;
|
|
36251
|
-
display: flex;
|
|
36252
|
-
input {
|
|
36253
|
-
width: 50%;
|
|
36254
|
-
border-radius: 4px;
|
|
36255
|
-
padding: 4px 23px 4px 10px;
|
|
36256
|
-
height: 24px;
|
|
36257
|
-
border: 1px solid #c0c0c0;
|
|
36258
|
-
margin-right: 2px;
|
|
36259
|
-
}
|
|
36260
|
-
.o-wrong-color {
|
|
36261
|
-
/* FIXME bootstrap class instead? */
|
|
36262
|
-
outline-color: red;
|
|
36263
|
-
border-color: red;
|
|
36264
|
-
&:focus {
|
|
36265
|
-
outline-style: solid;
|
|
36266
|
-
outline-width: 1px;
|
|
36267
|
-
}
|
|
36268
|
-
}
|
|
36269
|
-
}
|
|
36270
|
-
.o-custom-input-buttons {
|
|
36271
|
-
padding: 2px 0px;
|
|
36272
|
-
display: flex;
|
|
36273
|
-
justify-content: end;
|
|
36274
|
-
}
|
|
36275
|
-
.o-color-preview {
|
|
36276
|
-
border: 1px solid #c0c0c0;
|
|
36277
|
-
border-radius: 4px;
|
|
36278
|
-
width: 50%;
|
|
36279
|
-
}
|
|
36280
|
-
}
|
|
36281
|
-
}
|
|
36282
|
-
`;
|
|
36283
35676
|
class ColorPicker extends owl.Component {
|
|
36284
35677
|
static template = "o-spreadsheet-ColorPicker";
|
|
36285
35678
|
static props = {
|
|
@@ -36434,21 +35827,12 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
36434
35827
|
};
|
|
36435
35828
|
}
|
|
36436
35829
|
|
|
36437
|
-
|
|
36438
|
-
|
|
36439
|
-
<
|
|
36440
|
-
|
|
36441
|
-
|
|
36442
|
-
|
|
36443
|
-
.o-round-color-picker-button {
|
|
36444
|
-
width: 20px;
|
|
36445
|
-
height: 20px;
|
|
36446
|
-
cursor: pointer;
|
|
36447
|
-
border: 1px solid ${GRAY_300};
|
|
36448
|
-
background-position: 1px 1px;
|
|
36449
|
-
background-image: url("data:image/svg+xml,${encodeURIComponent(TRANSPARENT_BACKGROUND_SVG)}");
|
|
36450
|
-
}
|
|
36451
|
-
`;
|
|
35830
|
+
// FIXME Encoding version used in css
|
|
35831
|
+
// const TRANSPARENT_BACKGROUND_SVG = /*xml*/ `
|
|
35832
|
+
// <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10">
|
|
35833
|
+
// <path fill="#d9d9d9" d="M5 5h5v5H5zH0V0h5"/>
|
|
35834
|
+
// </svg>
|
|
35835
|
+
// `;
|
|
36452
35836
|
class RoundColorPicker extends owl.Component {
|
|
36453
35837
|
static template = "o-spreadsheet.RoundColorPicker";
|
|
36454
35838
|
static components = { Section, ColorPicker };
|
|
@@ -36485,12 +35869,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
36485
35869
|
}
|
|
36486
35870
|
}
|
|
36487
35871
|
|
|
36488
|
-
css /* scss */ `
|
|
36489
|
-
.o-dv-list-item-delete {
|
|
36490
|
-
color: #666666;
|
|
36491
|
-
cursor: pointer;
|
|
36492
|
-
}
|
|
36493
|
-
`;
|
|
36494
35872
|
class ListCriterionForm extends CriterionForm {
|
|
36495
35873
|
static template = "o-spreadsheet-ListCriterionForm";
|
|
36496
35874
|
static components = { CriterionInput, RoundColorPicker };
|
|
@@ -37204,36 +36582,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
37204
36582
|
}
|
|
37205
36583
|
}
|
|
37206
36584
|
|
|
37207
|
-
css /* scss */ `
|
|
37208
|
-
.o-selection {
|
|
37209
|
-
.o-selection-input {
|
|
37210
|
-
padding: 2px 0px;
|
|
37211
|
-
|
|
37212
|
-
input.o-invalid {
|
|
37213
|
-
background-color: ${ALERT_DANGER_BG};
|
|
37214
|
-
}
|
|
37215
|
-
.input-icon {
|
|
37216
|
-
right: 7px;
|
|
37217
|
-
top: 4px;
|
|
37218
|
-
}
|
|
37219
|
-
.o-drag-handle {
|
|
37220
|
-
cursor: move;
|
|
37221
|
-
}
|
|
37222
|
-
}
|
|
37223
|
-
.o-disabled-ranges {
|
|
37224
|
-
color: #888 !important;
|
|
37225
|
-
}
|
|
37226
|
-
.o-button {
|
|
37227
|
-
flex-grow: 0;
|
|
37228
|
-
}
|
|
37229
|
-
|
|
37230
|
-
/* Make the character a bit bigger
|
|
37231
|
-
compared to its neighbor INPUT box */
|
|
37232
|
-
.o-remove-selection {
|
|
37233
|
-
font-size: calc(100% + 4px);
|
|
37234
|
-
}
|
|
37235
|
-
}
|
|
37236
|
-
`;
|
|
37237
36585
|
/**
|
|
37238
36586
|
* This component can be used when the user needs to input some
|
|
37239
36587
|
* ranges. He can either input the ranges with the regular DOM `<input/>`
|
|
@@ -37732,44 +37080,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
37732
37080
|
}
|
|
37733
37081
|
}
|
|
37734
37082
|
|
|
37735
|
-
const CHECK_SVG = /*xml*/ `
|
|
37736
|
-
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'>
|
|
37737
|
-
<path fill='none' stroke='#FFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/>
|
|
37738
|
-
</svg>
|
|
37739
|
-
`;
|
|
37740
|
-
const CHECKBOX_WIDTH = 14;
|
|
37741
|
-
css /* scss */ `
|
|
37742
|
-
label.o-checkbox {
|
|
37743
|
-
input {
|
|
37744
|
-
appearance: none;
|
|
37745
|
-
-webkit-appearance: none;
|
|
37746
|
-
-moz-appearance: none;
|
|
37747
|
-
border-radius: 0;
|
|
37748
|
-
width: ${CHECKBOX_WIDTH}px;
|
|
37749
|
-
height: ${CHECKBOX_WIDTH}px;
|
|
37750
|
-
vertical-align: top;
|
|
37751
|
-
outline: none;
|
|
37752
|
-
border: 1px solid ${GRAY_300};
|
|
37753
|
-
cursor: pointer;
|
|
37754
|
-
|
|
37755
|
-
&:hover {
|
|
37756
|
-
border-color: ${ACTION_COLOR};
|
|
37757
|
-
}
|
|
37758
|
-
|
|
37759
|
-
&:checked {
|
|
37760
|
-
background: url("data:image/svg+xml,${encodeURIComponent(CHECK_SVG)}");
|
|
37761
|
-
background-color: ${ACTION_COLOR};
|
|
37762
|
-
border-color: ${ACTION_COLOR};
|
|
37763
|
-
}
|
|
37764
|
-
|
|
37765
|
-
&:focus {
|
|
37766
|
-
outline: none;
|
|
37767
|
-
box-shadow: 0 0 0 0.25rem rgba(113, 75, 103, 0.25);
|
|
37768
|
-
border-color: ${ACTION_COLOR};
|
|
37769
|
-
}
|
|
37770
|
-
}
|
|
37771
|
-
}
|
|
37772
|
-
`;
|
|
37773
37083
|
class Checkbox extends owl.Component {
|
|
37774
37084
|
static template = "o-spreadsheet.Checkbox";
|
|
37775
37085
|
static props = {
|
|
@@ -37977,60 +37287,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
37977
37287
|
}
|
|
37978
37288
|
}
|
|
37979
37289
|
|
|
37980
|
-
css /* scss */ `
|
|
37981
|
-
.o-filter-menu {
|
|
37982
|
-
width: 245px;
|
|
37983
|
-
padding: 8px 0;
|
|
37984
|
-
user-select: none;
|
|
37985
|
-
|
|
37986
|
-
.o-filter-menu-content {
|
|
37987
|
-
padding: 0 16px;
|
|
37988
|
-
}
|
|
37989
|
-
|
|
37990
|
-
.o-sort-item {
|
|
37991
|
-
padding-left: 34px;
|
|
37992
|
-
}
|
|
37993
|
-
|
|
37994
|
-
.o_side_panel_collapsible_title {
|
|
37995
|
-
font-size: inherit;
|
|
37996
|
-
padding: 0 0 4px 0 !important;
|
|
37997
|
-
font-weight: 400 !important;
|
|
37998
|
-
|
|
37999
|
-
.collapsor .o-icon {
|
|
38000
|
-
opacity: 0.8;
|
|
38001
|
-
}
|
|
38002
|
-
|
|
38003
|
-
.collapsor-arrow {
|
|
38004
|
-
transform-origin: 6px 8px;
|
|
38005
|
-
|
|
38006
|
-
.o-icon {
|
|
38007
|
-
width: 12px;
|
|
38008
|
-
height: 16px;
|
|
38009
|
-
}
|
|
38010
|
-
}
|
|
38011
|
-
}
|
|
38012
|
-
|
|
38013
|
-
.o-filter-menu-item {
|
|
38014
|
-
display: flex;
|
|
38015
|
-
cursor: pointer;
|
|
38016
|
-
user-select: none;
|
|
38017
|
-
line-height: 1;
|
|
38018
|
-
|
|
38019
|
-
&.selected,
|
|
38020
|
-
&:hover {
|
|
38021
|
-
background-color: ${BUTTON_ACTIVE_BG};
|
|
38022
|
-
}
|
|
38023
|
-
}
|
|
38024
|
-
|
|
38025
|
-
.o-filter-menu-buttons {
|
|
38026
|
-
margin-top: 9px;
|
|
38027
|
-
|
|
38028
|
-
.o-button {
|
|
38029
|
-
height: 26px;
|
|
38030
|
-
}
|
|
38031
|
-
}
|
|
38032
|
-
}
|
|
38033
|
-
`;
|
|
38034
37290
|
class FilterMenu extends owl.Component {
|
|
38035
37291
|
static template = "o-spreadsheet-FilterMenu";
|
|
38036
37292
|
static props = {
|
|
@@ -38154,55 +37410,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
38154
37410
|
},
|
|
38155
37411
|
};
|
|
38156
37412
|
|
|
38157
|
-
const LINK_TOOLTIP_HEIGHT = 32;
|
|
38158
|
-
const LINK_TOOLTIP_WIDTH = 220;
|
|
38159
|
-
css /* scss */ `
|
|
38160
|
-
.o-link-tool {
|
|
38161
|
-
font-size: 13px;
|
|
38162
|
-
background-color: white;
|
|
38163
|
-
box-shadow: 0 1px 4px 3px rgba(60, 64, 67, 0.15);
|
|
38164
|
-
padding: 6px 12px;
|
|
38165
|
-
border-radius: 4px;
|
|
38166
|
-
display: flex;
|
|
38167
|
-
justify-content: space-between;
|
|
38168
|
-
height: ${LINK_TOOLTIP_HEIGHT}px;
|
|
38169
|
-
width: ${LINK_TOOLTIP_WIDTH}px;
|
|
38170
|
-
|
|
38171
|
-
img {
|
|
38172
|
-
margin-right: 3px;
|
|
38173
|
-
width: 16px;
|
|
38174
|
-
height: 16px;
|
|
38175
|
-
}
|
|
38176
|
-
|
|
38177
|
-
a.o-link {
|
|
38178
|
-
color: ${LINK_COLOR};
|
|
38179
|
-
text-decoration: none;
|
|
38180
|
-
flex-grow: 2;
|
|
38181
|
-
white-space: nowrap;
|
|
38182
|
-
overflow: hidden;
|
|
38183
|
-
text-overflow: ellipsis;
|
|
38184
|
-
}
|
|
38185
|
-
a.o-link:hover {
|
|
38186
|
-
text-decoration: none;
|
|
38187
|
-
color: #001d1f;
|
|
38188
|
-
cursor: pointer;
|
|
38189
|
-
}
|
|
38190
|
-
}
|
|
38191
|
-
.o-link-icon {
|
|
38192
|
-
float: right;
|
|
38193
|
-
padding-left: 5px;
|
|
38194
|
-
.o-icon {
|
|
38195
|
-
height: 16px;
|
|
38196
|
-
}
|
|
38197
|
-
}
|
|
38198
|
-
.o-link-icon .o-icon {
|
|
38199
|
-
height: 13px;
|
|
38200
|
-
}
|
|
38201
|
-
.o-link-icon:hover {
|
|
38202
|
-
cursor: pointer;
|
|
38203
|
-
color: #000;
|
|
38204
|
-
}
|
|
38205
|
-
`;
|
|
38206
37413
|
class LinkDisplay extends owl.Component {
|
|
38207
37414
|
static template = "o-spreadsheet-LinkDisplay";
|
|
38208
37415
|
static props = {
|
|
@@ -38433,54 +37640,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
38433
37640
|
sequence: 10,
|
|
38434
37641
|
});
|
|
38435
37642
|
|
|
38436
|
-
const PADDING = 12;
|
|
38437
|
-
const LINK_EDITOR_WIDTH = 340 + 2 * PADDING;
|
|
38438
|
-
css /* scss */ `
|
|
38439
|
-
.o-link-editor {
|
|
38440
|
-
font-size: 13px;
|
|
38441
|
-
background-color: white;
|
|
38442
|
-
box-shadow: 0 1px 4px 3px rgba(60, 64, 67, 0.15);
|
|
38443
|
-
padding: ${PADDING}px;
|
|
38444
|
-
display: flex;
|
|
38445
|
-
flex-direction: column;
|
|
38446
|
-
border-radius: 4px;
|
|
38447
|
-
width: ${LINK_EDITOR_WIDTH}px;
|
|
38448
|
-
|
|
38449
|
-
.o-section {
|
|
38450
|
-
.o-section-title {
|
|
38451
|
-
font-weight: bold;
|
|
38452
|
-
margin-bottom: 5px;
|
|
38453
|
-
}
|
|
38454
|
-
}
|
|
38455
|
-
.o-buttons {
|
|
38456
|
-
padding-left: 16px;
|
|
38457
|
-
padding-top: 16px;
|
|
38458
|
-
text-align: right;
|
|
38459
|
-
}
|
|
38460
|
-
input.o-input {
|
|
38461
|
-
width: 100%;
|
|
38462
|
-
padding: 0 23px 4px 0;
|
|
38463
|
-
}
|
|
38464
|
-
.o-link-url {
|
|
38465
|
-
position: relative;
|
|
38466
|
-
flex-grow: 1;
|
|
38467
|
-
button {
|
|
38468
|
-
position: absolute;
|
|
38469
|
-
right: 0px;
|
|
38470
|
-
top: 0px;
|
|
38471
|
-
border: none;
|
|
38472
|
-
height: 20px;
|
|
38473
|
-
width: 20px;
|
|
38474
|
-
background-color: #fff;
|
|
38475
|
-
margin: 2px 3px 1px 0px;
|
|
38476
|
-
padding: 0px 1px 0px 0px;
|
|
38477
|
-
}
|
|
38478
|
-
button:hover {
|
|
38479
|
-
cursor: pointer;
|
|
38480
|
-
}
|
|
38481
|
-
}
|
|
38482
|
-
}
|
|
38483
|
-
`;
|
|
38484
37643
|
class LinkEditor extends owl.Component {
|
|
38485
37644
|
static template = "o-spreadsheet-LinkEditor";
|
|
38486
37645
|
static props = {
|
|
@@ -39208,29 +38367,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
39208
38367
|
};
|
|
39209
38368
|
}
|
|
39210
38369
|
|
|
39211
|
-
css /* scss */ `
|
|
39212
|
-
.o-spreadsheet {
|
|
39213
|
-
.o-icon {
|
|
39214
|
-
display: flex;
|
|
39215
|
-
align-items: center;
|
|
39216
|
-
justify-content: center;
|
|
39217
|
-
width: ${ICON_EDGE_LENGTH}px;
|
|
39218
|
-
height: ${ICON_EDGE_LENGTH}px;
|
|
39219
|
-
font-size: ${ICON_EDGE_LENGTH}px;
|
|
39220
|
-
vertical-align: middle;
|
|
39221
|
-
|
|
39222
|
-
.small-text {
|
|
39223
|
-
font: bold 9px sans-serif;
|
|
39224
|
-
}
|
|
39225
|
-
.heavy-text {
|
|
39226
|
-
font: bold 16px sans-serif;
|
|
39227
|
-
}
|
|
39228
|
-
}
|
|
39229
|
-
.fa-small {
|
|
39230
|
-
font-size: 14px;
|
|
39231
|
-
}
|
|
39232
|
-
}
|
|
39233
|
-
`;
|
|
39234
38370
|
// -----------------------------------------------------------------------------
|
|
39235
38371
|
// We need here the svg of the icons that we need to convert to images for the renderer
|
|
39236
38372
|
// -----------------------------------------------------------------------------
|
|
@@ -39327,6 +38463,14 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
39327
38463
|
paths: [{ fillColor: color.textColor || TEXT_BODY_MUTED, path: "M120 195 h270 l-135 130" }],
|
|
39328
38464
|
};
|
|
39329
38465
|
}
|
|
38466
|
+
function getCaretUpSvg(color) {
|
|
38467
|
+
return {
|
|
38468
|
+
name: "CARET_UP",
|
|
38469
|
+
width: 512,
|
|
38470
|
+
height: 512,
|
|
38471
|
+
paths: [{ fillColor: color.textColor || TEXT_BODY_MUTED, path: "M120 325 h270 l-135 -130" }],
|
|
38472
|
+
};
|
|
38473
|
+
}
|
|
39330
38474
|
function getHoveredCaretDownSvg(color) {
|
|
39331
38475
|
return {
|
|
39332
38476
|
name: "CARET_DOWN",
|
|
@@ -49096,37 +48240,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
49096
48240
|
return index;
|
|
49097
48241
|
}
|
|
49098
48242
|
|
|
49099
|
-
// -----------------------------------------------------------------------------
|
|
49100
|
-
// Autofill
|
|
49101
|
-
// -----------------------------------------------------------------------------
|
|
49102
|
-
css /* scss */ `
|
|
49103
|
-
.o-autofill {
|
|
49104
|
-
position: absolute;
|
|
49105
|
-
height: ${AUTOFILL_EDGE_LENGTH}px;
|
|
49106
|
-
width: ${AUTOFILL_EDGE_LENGTH}px;
|
|
49107
|
-
border: 1px solid white;
|
|
49108
|
-
background-color: #1a73e8;
|
|
49109
|
-
}
|
|
49110
|
-
|
|
49111
|
-
.o-autofill-handler {
|
|
49112
|
-
position: absolute;
|
|
49113
|
-
height: ${AUTOFILL_EDGE_LENGTH}px;
|
|
49114
|
-
width: ${AUTOFILL_EDGE_LENGTH}px;
|
|
49115
|
-
&:hover {
|
|
49116
|
-
cursor: crosshair;
|
|
49117
|
-
}
|
|
49118
|
-
}
|
|
49119
|
-
|
|
49120
|
-
.o-autofill-nextvalue {
|
|
49121
|
-
position: absolute;
|
|
49122
|
-
background-color: #ffffff;
|
|
49123
|
-
border: 1px solid black;
|
|
49124
|
-
padding: 5px;
|
|
49125
|
-
font-size: 12px;
|
|
49126
|
-
pointer-events: none;
|
|
49127
|
-
white-space: nowrap;
|
|
49128
|
-
}
|
|
49129
|
-
`;
|
|
49130
48243
|
class Autofill extends owl.Component {
|
|
49131
48244
|
static template = "o-spreadsheet-Autofill";
|
|
49132
48245
|
static props = {
|
|
@@ -49211,16 +48324,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
49211
48324
|
`;
|
|
49212
48325
|
}
|
|
49213
48326
|
|
|
49214
|
-
css /* scss */ `
|
|
49215
|
-
.o-client-tag {
|
|
49216
|
-
position: absolute;
|
|
49217
|
-
border-top-left-radius: 4px;
|
|
49218
|
-
border-top-right-radius: 4px;
|
|
49219
|
-
font-size: ${DEFAULT_FONT_SIZE};
|
|
49220
|
-
color: white;
|
|
49221
|
-
pointer-events: none;
|
|
49222
|
-
}
|
|
49223
|
-
`;
|
|
49224
48327
|
class ClientTag extends owl.Component {
|
|
49225
48328
|
static template = "o-spreadsheet-ClientTag";
|
|
49226
48329
|
static props = {
|
|
@@ -49770,28 +48873,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
49770
48873
|
|
|
49771
48874
|
const COMPOSER_BORDER_WIDTH = 3 * 0.4 * window.devicePixelRatio || 1;
|
|
49772
48875
|
const GRID_CELL_REFERENCE_TOP_OFFSET = 28;
|
|
49773
|
-
css /* scss */ `
|
|
49774
|
-
div.o-grid-composer {
|
|
49775
|
-
z-index: ${ComponentsImportance.GridComposer};
|
|
49776
|
-
position: absolute;
|
|
49777
|
-
border: ${COMPOSER_BORDER_WIDTH}px solid ${SELECTION_BORDER_COLOR};
|
|
49778
|
-
font-family: ${DEFAULT_FONT};
|
|
49779
|
-
|
|
49780
|
-
display: flex;
|
|
49781
|
-
align-items: center;
|
|
49782
|
-
}
|
|
49783
|
-
|
|
49784
|
-
div.o-cell-reference {
|
|
49785
|
-
position: absolute;
|
|
49786
|
-
z-index: ${ComponentsImportance.GridComposer};
|
|
49787
|
-
background: ${SELECTION_BORDER_COLOR};
|
|
49788
|
-
color: white;
|
|
49789
|
-
font-size: 12px;
|
|
49790
|
-
line-height: 14px;
|
|
49791
|
-
padding: 6px 7px;
|
|
49792
|
-
border-radius: 4px;
|
|
49793
|
-
}
|
|
49794
|
-
`;
|
|
49795
48876
|
/**
|
|
49796
48877
|
* This component is a composer which positions itself on the grid at the anchor cell.
|
|
49797
48878
|
* It also applies the style of the cell to the composer input.
|
|
@@ -49917,6 +48998,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
49917
48998
|
return cssPropertiesToCss({
|
|
49918
48999
|
left: `${left - 1}px`,
|
|
49919
49000
|
top: `${top}px`,
|
|
49001
|
+
border: `${COMPOSER_BORDER_WIDTH}px solid ${SELECTION_BORDER_COLOR}`,
|
|
49920
49002
|
"min-width": `${minWidth}px`,
|
|
49921
49003
|
"min-height": `${minHeight}px`,
|
|
49922
49004
|
"max-width": `${maxWidth}px`,
|
|
@@ -50187,24 +49269,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50187
49269
|
return { position, axisType: axisType };
|
|
50188
49270
|
}
|
|
50189
49271
|
|
|
50190
|
-
css /*SCSS*/ `
|
|
50191
|
-
.o-figure-snap-line {
|
|
50192
|
-
position: relative;
|
|
50193
|
-
z-index: ${ComponentsImportance.FigureSnapLine};
|
|
50194
|
-
&.vertical {
|
|
50195
|
-
width: 0px;
|
|
50196
|
-
border-left: 1px dashed black;
|
|
50197
|
-
}
|
|
50198
|
-
&.horizontal {
|
|
50199
|
-
border-top: 1px dashed black;
|
|
50200
|
-
height: 0px;
|
|
50201
|
-
}
|
|
50202
|
-
}
|
|
50203
|
-
.o-figure-container {
|
|
50204
|
-
-webkit-user-select: none; /* safari */
|
|
50205
|
-
user-select: none;
|
|
50206
|
-
}
|
|
50207
|
-
`;
|
|
50208
49272
|
/**
|
|
50209
49273
|
* Each figure ⭐ is positioned inside a container `div` placed and sized
|
|
50210
49274
|
* according to the split pane the figure is part of, or a separate container for the figure
|
|
@@ -50433,9 +49497,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50433
49497
|
maxX: this.env.model.getters.getColDimensions(sheetId, this.env.model.getters.getNumberCols(sheetId) - 1).end,
|
|
50434
49498
|
maxY: this.env.model.getters.getRowDimensions(sheetId, this.env.model.getters.getNumberRows(sheetId) - 1).end,
|
|
50435
49499
|
};
|
|
49500
|
+
let hasStartedDnd = false;
|
|
50436
49501
|
const onMouseMove = (ev) => {
|
|
50437
49502
|
const getters = this.env.model.getters;
|
|
50438
49503
|
const currentMousePosition = { x: ev.clientX, y: ev.clientY };
|
|
49504
|
+
const offsetX = Math.abs(currentMousePosition.x - initialMousePosition.x);
|
|
49505
|
+
const offsetY = Math.abs(currentMousePosition.y - initialMousePosition.y);
|
|
49506
|
+
if (!hasStartedDnd && offsetX < DRAG_THRESHOLD && offsetY < DRAG_THRESHOLD) {
|
|
49507
|
+
return; // add a small threshold to avoid dnd when just clicking
|
|
49508
|
+
}
|
|
49509
|
+
hasStartedDnd = true;
|
|
50439
49510
|
const draggedFigure = dragFigureForMove(currentMousePosition, initialMousePosition, initialFigure, maxDimensions, initialScrollPosition, getters.getActiveSheetScrollInfo());
|
|
50440
49511
|
const otherFigures = this.getOtherFigures(initialFigure.id);
|
|
50441
49512
|
const overlappingCarousel = this.getCarouselOverlappingChart(draggedFigure, otherFigures);
|
|
@@ -50629,38 +49700,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50629
49700
|
}
|
|
50630
49701
|
}
|
|
50631
49702
|
|
|
50632
|
-
css /* scss */ `
|
|
50633
|
-
.o-validation {
|
|
50634
|
-
border-radius: 4px;
|
|
50635
|
-
border-width: 0 0 0 3px;
|
|
50636
|
-
border-style: solid;
|
|
50637
|
-
gap: 3px;
|
|
50638
|
-
|
|
50639
|
-
.o-icon {
|
|
50640
|
-
margin-right: 5px;
|
|
50641
|
-
height: 1.2em;
|
|
50642
|
-
width: 1.2em;
|
|
50643
|
-
}
|
|
50644
|
-
}
|
|
50645
|
-
|
|
50646
|
-
.o-validation-warning {
|
|
50647
|
-
border-color: ${ALERT_WARNING_BORDER};
|
|
50648
|
-
color: ${ALERT_WARNING_TEXT_COLOR};
|
|
50649
|
-
background-color: ${ALERT_WARNING_BG};
|
|
50650
|
-
}
|
|
50651
|
-
|
|
50652
|
-
.o-validation-error {
|
|
50653
|
-
border-color: ${ALERT_DANGER_BORDER};
|
|
50654
|
-
color: ${ALERT_DANGER_TEXT_COLOR};
|
|
50655
|
-
background-color: ${ALERT_DANGER_BG};
|
|
50656
|
-
}
|
|
50657
|
-
|
|
50658
|
-
.o-validation-info {
|
|
50659
|
-
border-color: ${ALERT_INFO_BORDER};
|
|
50660
|
-
color: ${ALERT_INFO_TEXT_COLOR};
|
|
50661
|
-
background-color: ${ALERT_INFO_BG};
|
|
50662
|
-
}
|
|
50663
|
-
`;
|
|
50664
49703
|
class ValidationMessages extends owl.Component {
|
|
50665
49704
|
static template = "o-spreadsheet-ValidationMessages";
|
|
50666
49705
|
static props = {
|
|
@@ -50682,20 +49721,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50682
49721
|
}
|
|
50683
49722
|
}
|
|
50684
49723
|
|
|
50685
|
-
css /* scss */ `
|
|
50686
|
-
.o-grid-add-rows {
|
|
50687
|
-
input.o-input {
|
|
50688
|
-
width: 60px;
|
|
50689
|
-
height: 30px;
|
|
50690
|
-
}
|
|
50691
|
-
|
|
50692
|
-
.o-validation-error {
|
|
50693
|
-
display: inline-block !important;
|
|
50694
|
-
margin-top: 0;
|
|
50695
|
-
margin-left: 8px;
|
|
50696
|
-
}
|
|
50697
|
-
}
|
|
50698
|
-
`;
|
|
50699
49724
|
class GridAddRowsFooter extends owl.Component {
|
|
50700
49725
|
static template = "o-spreadsheet-GridAddRowsFooter";
|
|
50701
49726
|
static props = {
|
|
@@ -50940,14 +49965,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50940
49965
|
}
|
|
50941
49966
|
}
|
|
50942
49967
|
|
|
50943
|
-
const CURSOR_SVG = /*xml*/ `
|
|
50944
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="16"><path d="M6.5.4c1.3-.8 2.9-.1 3.8 1.4l2.9 5.1c.2.4.9 1.6-.4 2.3l-1.6.9 1.8 3.1c.2.4.1 1-.2 1.2l-1.6 1c-.3.1-.9 0-1.1-.4l-1.8-3.1-1.6 1c-.6.4-1.7 0-2.2-.8L0 4.3"/><path fill="#fff" d="M9.1 2a1.4 1.1 60 0 0-1.7-.6L5.5 2.5l.9 1.6-1 .6-.9-1.6-.6.4 1.8 3.1-1.3.7-1.8-3.1-1 .6 3.8 6.6 6.8-3.98M3.9 8.8 10.82 5l.795 1.4-6.81 3.96"/></svg>
|
|
50945
|
-
`;
|
|
50946
|
-
css /* scss */ `
|
|
50947
|
-
.o-paint-format-cursor {
|
|
50948
|
-
cursor: url("data:image/svg+xml,${encodeURIComponent(CURSOR_SVG)}"), auto;
|
|
50949
|
-
}
|
|
50950
|
-
`;
|
|
50951
49968
|
function useCellHovered(env, gridRef) {
|
|
50952
49969
|
const delayedHoveredCell = useStore(DelayedHoveredCellStore);
|
|
50953
49970
|
const hoveredTable = useStore(HoveredTableStore);
|
|
@@ -51193,7 +50210,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51193
50210
|
};
|
|
51194
50211
|
static components = { Popover };
|
|
51195
50212
|
cellPopovers;
|
|
51196
|
-
zIndex = ComponentsImportance.GridPopover;
|
|
51197
50213
|
setup() {
|
|
51198
50214
|
this.cellPopovers = useStore(CellPopoverStore);
|
|
51199
50215
|
}
|
|
@@ -51512,58 +50528,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51512
50528
|
this.props.onOpenContextMenu(type, ev.clientX, ev.clientY);
|
|
51513
50529
|
}
|
|
51514
50530
|
}
|
|
51515
|
-
css /* scss */ `
|
|
51516
|
-
.o-col-resizer {
|
|
51517
|
-
position: absolute;
|
|
51518
|
-
top: 0;
|
|
51519
|
-
left: ${HEADER_WIDTH}px;
|
|
51520
|
-
right: ${SCROLLBAR_WIDTH}px;
|
|
51521
|
-
height: ${HEADER_HEIGHT}px;
|
|
51522
|
-
width: calc(100% - ${HEADER_WIDTH + SCROLLBAR_WIDTH}px);
|
|
51523
|
-
&.o-dragging {
|
|
51524
|
-
cursor: grabbing;
|
|
51525
|
-
}
|
|
51526
|
-
&.o-grab {
|
|
51527
|
-
cursor: grab;
|
|
51528
|
-
}
|
|
51529
|
-
.dragging-col-line {
|
|
51530
|
-
top: ${HEADER_HEIGHT}px;
|
|
51531
|
-
position: absolute;
|
|
51532
|
-
width: 2px;
|
|
51533
|
-
height: 10000px;
|
|
51534
|
-
background-color: black;
|
|
51535
|
-
}
|
|
51536
|
-
.dragging-col-shadow {
|
|
51537
|
-
top: ${HEADER_HEIGHT}px;
|
|
51538
|
-
position: absolute;
|
|
51539
|
-
height: 10000px;
|
|
51540
|
-
background-color: black;
|
|
51541
|
-
opacity: 0.1;
|
|
51542
|
-
}
|
|
51543
|
-
.o-handle {
|
|
51544
|
-
position: absolute;
|
|
51545
|
-
height: ${HEADER_HEIGHT}px;
|
|
51546
|
-
width: 4px;
|
|
51547
|
-
cursor: e-resize;
|
|
51548
|
-
background-color: ${SELECTION_BORDER_COLOR};
|
|
51549
|
-
}
|
|
51550
|
-
.dragging-resizer {
|
|
51551
|
-
top: ${HEADER_HEIGHT}px;
|
|
51552
|
-
position: absolute;
|
|
51553
|
-
margin-left: 2px;
|
|
51554
|
-
width: 1px;
|
|
51555
|
-
height: 10000px;
|
|
51556
|
-
background-color: ${SELECTION_BORDER_COLOR};
|
|
51557
|
-
}
|
|
51558
|
-
.o-unhide {
|
|
51559
|
-
color: ${ICONS_COLOR};
|
|
51560
|
-
}
|
|
51561
|
-
.o-unhide:hover {
|
|
51562
|
-
z-index: ${ComponentsImportance.Grid + 1};
|
|
51563
|
-
background-color: lightgrey;
|
|
51564
|
-
}
|
|
51565
|
-
}
|
|
51566
|
-
`;
|
|
51567
50531
|
class ColResizer extends AbstractResizer {
|
|
51568
50532
|
static props = {
|
|
51569
50533
|
onOpenContextMenu: Function,
|
|
@@ -51706,57 +50670,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51706
50670
|
return this.env.model.getters.getPaneDivisions(this.sheetId).xSplit > 0;
|
|
51707
50671
|
}
|
|
51708
50672
|
}
|
|
51709
|
-
css /* scss */ `
|
|
51710
|
-
.o-row-resizer {
|
|
51711
|
-
position: absolute;
|
|
51712
|
-
top: ${HEADER_HEIGHT}px;
|
|
51713
|
-
left: 0;
|
|
51714
|
-
bottom: ${SCROLLBAR_WIDTH}px;
|
|
51715
|
-
width: ${HEADER_WIDTH}px;
|
|
51716
|
-
&.o-dragging {
|
|
51717
|
-
cursor: grabbing;
|
|
51718
|
-
}
|
|
51719
|
-
&.o-grab {
|
|
51720
|
-
cursor: grab;
|
|
51721
|
-
}
|
|
51722
|
-
.dragging-row-line {
|
|
51723
|
-
left: ${HEADER_WIDTH}px;
|
|
51724
|
-
position: absolute;
|
|
51725
|
-
width: 10000px;
|
|
51726
|
-
height: 2px;
|
|
51727
|
-
background-color: black;
|
|
51728
|
-
}
|
|
51729
|
-
.dragging-row-shadow {
|
|
51730
|
-
left: ${HEADER_WIDTH}px;
|
|
51731
|
-
position: absolute;
|
|
51732
|
-
width: 10000px;
|
|
51733
|
-
background-color: black;
|
|
51734
|
-
opacity: 0.1;
|
|
51735
|
-
}
|
|
51736
|
-
.o-handle {
|
|
51737
|
-
position: absolute;
|
|
51738
|
-
height: 4px;
|
|
51739
|
-
width: ${HEADER_WIDTH}px;
|
|
51740
|
-
cursor: n-resize;
|
|
51741
|
-
background-color: ${SELECTION_BORDER_COLOR};
|
|
51742
|
-
}
|
|
51743
|
-
.dragging-resizer {
|
|
51744
|
-
left: ${HEADER_WIDTH}px;
|
|
51745
|
-
position: absolute;
|
|
51746
|
-
margin-top: 2px;
|
|
51747
|
-
width: 10000px;
|
|
51748
|
-
height: 1px;
|
|
51749
|
-
background-color: ${SELECTION_BORDER_COLOR};
|
|
51750
|
-
}
|
|
51751
|
-
.o-unhide {
|
|
51752
|
-
color: ${ICONS_COLOR};
|
|
51753
|
-
}
|
|
51754
|
-
.o-unhide:hover {
|
|
51755
|
-
z-index: ${ComponentsImportance.Grid + 1};
|
|
51756
|
-
background-color: lightgrey;
|
|
51757
|
-
}
|
|
51758
|
-
}
|
|
51759
|
-
`;
|
|
51760
50673
|
class RowResizer extends AbstractResizer {
|
|
51761
50674
|
static props = {
|
|
51762
50675
|
onOpenContextMenu: Function,
|
|
@@ -51897,18 +50810,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51897
50810
|
return this.env.model.getters.getPaneDivisions(this.sheetId).ySplit > 0;
|
|
51898
50811
|
}
|
|
51899
50812
|
}
|
|
51900
|
-
css /* scss */ `
|
|
51901
|
-
.o-overlay {
|
|
51902
|
-
.all {
|
|
51903
|
-
position: absolute;
|
|
51904
|
-
top: 0;
|
|
51905
|
-
left: 0;
|
|
51906
|
-
right: 0;
|
|
51907
|
-
width: ${HEADER_WIDTH}px;
|
|
51908
|
-
height: ${HEADER_HEIGHT}px;
|
|
51909
|
-
}
|
|
51910
|
-
}
|
|
51911
|
-
`;
|
|
51912
50813
|
class HeadersOverlay extends owl.Component {
|
|
51913
50814
|
static props = {
|
|
51914
50815
|
onOpenContextMenu: Function,
|
|
@@ -52863,17 +51764,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
52863
51764
|
return onMouseWheel;
|
|
52864
51765
|
}
|
|
52865
51766
|
|
|
52866
|
-
css /* scss */ `
|
|
52867
|
-
.o-border {
|
|
52868
|
-
position: absolute;
|
|
52869
|
-
&:hover {
|
|
52870
|
-
cursor: grab;
|
|
52871
|
-
}
|
|
52872
|
-
}
|
|
52873
|
-
.o-moving {
|
|
52874
|
-
cursor: grabbing;
|
|
52875
|
-
}
|
|
52876
|
-
`;
|
|
52877
51767
|
class Border extends owl.Component {
|
|
52878
51768
|
static template = "o-spreadsheet-Border";
|
|
52879
51769
|
static props = {
|
|
@@ -52912,32 +51802,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
52912
51802
|
}
|
|
52913
51803
|
|
|
52914
51804
|
const MOBILE_HANDLER_WIDTH = 40;
|
|
52915
|
-
css /* scss */ `
|
|
52916
|
-
.o-corner {
|
|
52917
|
-
position: absolute;
|
|
52918
|
-
}
|
|
52919
|
-
|
|
52920
|
-
.o-corner-button {
|
|
52921
|
-
border: 1px solid white;
|
|
52922
|
-
height: ${AUTOFILL_EDGE_LENGTH}px;
|
|
52923
|
-
width: ${AUTOFILL_EDGE_LENGTH}px;
|
|
52924
|
-
}
|
|
52925
|
-
.o-corner-nw,
|
|
52926
|
-
.o-corner-se {
|
|
52927
|
-
&:hover {
|
|
52928
|
-
cursor: nwse-resize;
|
|
52929
|
-
}
|
|
52930
|
-
}
|
|
52931
|
-
.o-corner-ne,
|
|
52932
|
-
.o-corner-sw {
|
|
52933
|
-
&:hover {
|
|
52934
|
-
cursor: nesw-resize;
|
|
52935
|
-
}
|
|
52936
|
-
}
|
|
52937
|
-
.o-resizing {
|
|
52938
|
-
cursor: grabbing;
|
|
52939
|
-
}
|
|
52940
|
-
`;
|
|
52941
51805
|
class Corner extends owl.Component {
|
|
52942
51806
|
static template = "o-spreadsheet-Corner";
|
|
52943
51807
|
static props = {
|
|
@@ -53003,11 +51867,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53003
51867
|
return { dirX, dirY };
|
|
53004
51868
|
}
|
|
53005
51869
|
|
|
53006
|
-
css /*SCSS*/ `
|
|
53007
|
-
.o-highlight {
|
|
53008
|
-
z-index: ${ComponentsImportance.Highlight};
|
|
53009
|
-
}
|
|
53010
|
-
`;
|
|
53011
51870
|
class Highlight extends owl.Component {
|
|
53012
51871
|
static template = "o-spreadsheet-Highlight";
|
|
53013
51872
|
static props = {
|
|
@@ -53142,24 +52001,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53142
52001
|
}
|
|
53143
52002
|
};
|
|
53144
52003
|
|
|
53145
|
-
css /* scss */ `
|
|
53146
|
-
.o-scrollbar {
|
|
53147
|
-
position: absolute;
|
|
53148
|
-
overflow: auto;
|
|
53149
|
-
z-index: ${ComponentsImportance.ScrollBar};
|
|
53150
|
-
background-color: ${BACKGROUND_GRAY_COLOR};
|
|
53151
|
-
|
|
53152
|
-
&.corner {
|
|
53153
|
-
box-sizing: content-box;
|
|
53154
|
-
right: 0px;
|
|
53155
|
-
bottom: 0px;
|
|
53156
|
-
height: ${SCROLLBAR_WIDTH}px;
|
|
53157
|
-
width: ${SCROLLBAR_WIDTH}px;
|
|
53158
|
-
border-top: 1px solid #e2e3e3;
|
|
53159
|
-
border-left: 1px solid #e2e3e3;
|
|
53160
|
-
}
|
|
53161
|
-
}
|
|
53162
|
-
`;
|
|
53163
52004
|
class ScrollBar extends owl.Component {
|
|
53164
52005
|
static props = {
|
|
53165
52006
|
width: { type: Number, optional: true },
|
|
@@ -53322,24 +52163,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53322
52163
|
}, () => [ref.el]);
|
|
53323
52164
|
}
|
|
53324
52165
|
|
|
53325
|
-
css /* scss */ `
|
|
53326
|
-
.o-spreadsheet {
|
|
53327
|
-
.os-input {
|
|
53328
|
-
border-width: 0 0 1px 0;
|
|
53329
|
-
border-color: transparent;
|
|
53330
|
-
outline: none;
|
|
53331
|
-
text-overflow: ellipsis;
|
|
53332
|
-
color: ${TEXT_BODY};
|
|
53333
|
-
}
|
|
53334
|
-
.os-input:hover,
|
|
53335
|
-
.os-input.o-input-border {
|
|
53336
|
-
border-color: ${GRAY_300};
|
|
53337
|
-
}
|
|
53338
|
-
.os-input:focus {
|
|
53339
|
-
border-color: ${ACTION_COLOR};
|
|
53340
|
-
}
|
|
53341
|
-
}
|
|
53342
|
-
`;
|
|
53343
52166
|
class TextInput extends owl.Component {
|
|
53344
52167
|
static template = "o-spreadsheet-TextInput";
|
|
53345
52168
|
static props = {
|
|
@@ -53421,21 +52244,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53421
52244
|
}
|
|
53422
52245
|
}
|
|
53423
52246
|
|
|
53424
|
-
css /* scss */ `
|
|
53425
|
-
.o-menu-item-button {
|
|
53426
|
-
display: flex;
|
|
53427
|
-
justify-content: center;
|
|
53428
|
-
align-items: center;
|
|
53429
|
-
margin: 2px 1px;
|
|
53430
|
-
padding: 0px 1px;
|
|
53431
|
-
border-radius: 2px;
|
|
53432
|
-
min-width: 22px;
|
|
53433
|
-
}
|
|
53434
|
-
.o-disabled {
|
|
53435
|
-
opacity: 0.6;
|
|
53436
|
-
cursor: default;
|
|
53437
|
-
}
|
|
53438
|
-
`;
|
|
53439
52247
|
class ActionButton extends owl.Component {
|
|
53440
52248
|
static template = "o-spreadsheet-ActionButton";
|
|
53441
52249
|
static props = {
|
|
@@ -53488,41 +52296,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53488
52296
|
}
|
|
53489
52297
|
}
|
|
53490
52298
|
|
|
53491
|
-
css /* scss */ `
|
|
53492
|
-
.o-color-picker-widget {
|
|
53493
|
-
display: flex;
|
|
53494
|
-
position: relative;
|
|
53495
|
-
align-items: center;
|
|
53496
|
-
height: 30px;
|
|
53497
|
-
|
|
53498
|
-
.o-color-picker-button-style {
|
|
53499
|
-
display: flex;
|
|
53500
|
-
justify-content: center;
|
|
53501
|
-
align-items: center;
|
|
53502
|
-
margin: 2px;
|
|
53503
|
-
padding: 3px;
|
|
53504
|
-
border-radius: 2px;
|
|
53505
|
-
cursor: pointer;
|
|
53506
|
-
&:not([disabled]):hover {
|
|
53507
|
-
background-color: rgba(0, 0, 0, 0.08);
|
|
53508
|
-
}
|
|
53509
|
-
}
|
|
53510
|
-
|
|
53511
|
-
.o-color-picker-button {
|
|
53512
|
-
> span {
|
|
53513
|
-
border-bottom: 4px solid;
|
|
53514
|
-
height: 20px;
|
|
53515
|
-
margin-top: 2px;
|
|
53516
|
-
display: block;
|
|
53517
|
-
}
|
|
53518
|
-
|
|
53519
|
-
&[disabled] {
|
|
53520
|
-
pointer-events: none;
|
|
53521
|
-
opacity: 0.3;
|
|
53522
|
-
}
|
|
53523
|
-
}
|
|
53524
|
-
}
|
|
53525
|
-
`;
|
|
53526
52299
|
class ColorPickerWidget extends owl.Component {
|
|
53527
52300
|
static template = "o-spreadsheet-ColorPickerWidget";
|
|
53528
52301
|
static props = {
|
|
@@ -53555,26 +52328,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53555
52328
|
}
|
|
53556
52329
|
}
|
|
53557
52330
|
|
|
53558
|
-
css /* scss */ `
|
|
53559
|
-
.o-font-size-editor {
|
|
53560
|
-
width: max-content !important;
|
|
53561
|
-
height: calc(100% - 4px);
|
|
53562
|
-
input.o-font-size {
|
|
53563
|
-
outline: none;
|
|
53564
|
-
height: 20px;
|
|
53565
|
-
width: 31px;
|
|
53566
|
-
text-align: center;
|
|
53567
|
-
}
|
|
53568
|
-
}
|
|
53569
|
-
.o-text-options > div {
|
|
53570
|
-
cursor: pointer;
|
|
53571
|
-
line-height: 26px;
|
|
53572
|
-
padding: 3px 12px;
|
|
53573
|
-
&:hover {
|
|
53574
|
-
background-color: rgba(0, 0, 0, 0.08);
|
|
53575
|
-
}
|
|
53576
|
-
}
|
|
53577
|
-
`;
|
|
53578
52331
|
class FontSizeEditor extends owl.Component {
|
|
53579
52332
|
static template = "o-spreadsheet-FontSizeEditor";
|
|
53580
52333
|
static props = {
|
|
@@ -53650,41 +52403,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53650
52403
|
}
|
|
53651
52404
|
}
|
|
53652
52405
|
|
|
53653
|
-
css /* scss */ `
|
|
53654
|
-
.o-chart-title-designer {
|
|
53655
|
-
.o-hoverable-button {
|
|
53656
|
-
height: 30px;
|
|
53657
|
-
}
|
|
53658
|
-
.o-dropdown-content .o-hoverable-button {
|
|
53659
|
-
height: fit-content;
|
|
53660
|
-
}
|
|
53661
|
-
|
|
53662
|
-
.o-divider {
|
|
53663
|
-
border-right: 1px solid ${GRAY_300};
|
|
53664
|
-
margin: 0px 4px;
|
|
53665
|
-
height: 14px;
|
|
53666
|
-
}
|
|
53667
|
-
|
|
53668
|
-
.o-menu-item-button.active {
|
|
53669
|
-
background-color: #e6f4ea;
|
|
53670
|
-
color: #188038;
|
|
53671
|
-
}
|
|
53672
|
-
|
|
53673
|
-
.o-dropdown-content {
|
|
53674
|
-
overflow-y: auto;
|
|
53675
|
-
overflow-x: hidden;
|
|
53676
|
-
padding: 2px;
|
|
53677
|
-
z-index: 100;
|
|
53678
|
-
box-shadow: 1px 2px 5px 2px rgba(51, 51, 51, 0.15);
|
|
53679
|
-
|
|
53680
|
-
.o-dropdown-line {
|
|
53681
|
-
> span {
|
|
53682
|
-
padding: 4px;
|
|
53683
|
-
}
|
|
53684
|
-
}
|
|
53685
|
-
}
|
|
53686
|
-
}
|
|
53687
|
-
`;
|
|
53688
52406
|
class TextStyler extends owl.Component {
|
|
53689
52407
|
static template = "o-spreadsheet.TextStyler";
|
|
53690
52408
|
static components = { ColorPickerWidget, ActionButton, FontSizeEditor };
|
|
@@ -54512,27 +53230,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
54512
53230
|
}
|
|
54513
53231
|
}
|
|
54514
53232
|
|
|
54515
|
-
css /* scss */ `
|
|
54516
|
-
.o-badge-selection {
|
|
54517
|
-
gap: 1px;
|
|
54518
|
-
button.o-button {
|
|
54519
|
-
border-radius: 0;
|
|
54520
|
-
&.selected {
|
|
54521
|
-
color: ${GRAY_900};
|
|
54522
|
-
border-color: ${ACTION_COLOR};
|
|
54523
|
-
background: ${BADGE_SELECTED_COLOR};
|
|
54524
|
-
font-weight: 600;
|
|
54525
|
-
}
|
|
54526
|
-
|
|
54527
|
-
&:first-child {
|
|
54528
|
-
border-radius: 4px 0 0 4px;
|
|
54529
|
-
}
|
|
54530
|
-
&:last-child {
|
|
54531
|
-
border-radius: 0 4px 4px 0;
|
|
54532
|
-
}
|
|
54533
|
-
}
|
|
54534
|
-
}
|
|
54535
|
-
`;
|
|
54536
53233
|
class BadgeSelection extends owl.Component {
|
|
54537
53234
|
static template = "o-spreadsheet.BadgeSelection";
|
|
54538
53235
|
static props = {
|
|
@@ -54542,13 +53239,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
54542
53239
|
};
|
|
54543
53240
|
}
|
|
54544
53241
|
|
|
54545
|
-
css /* scss */ `
|
|
54546
|
-
.o-chart-title-designer {
|
|
54547
|
-
> span {
|
|
54548
|
-
height: 30px;
|
|
54549
|
-
}
|
|
54550
|
-
}
|
|
54551
|
-
`;
|
|
54552
53242
|
class ChartTitle extends owl.Component {
|
|
54553
53243
|
static template = "o-spreadsheet.ChartTitle";
|
|
54554
53244
|
static components = { Section, TextStyler };
|
|
@@ -54610,31 +53300,12 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
54610
53300
|
}
|
|
54611
53301
|
}
|
|
54612
53302
|
|
|
54613
|
-
|
|
54614
|
-
|
|
54615
|
-
<
|
|
54616
|
-
|
|
54617
|
-
|
|
54618
|
-
|
|
54619
|
-
.o-radio {
|
|
54620
|
-
input {
|
|
54621
|
-
appearance: none;
|
|
54622
|
-
-webkit-appearance: none;
|
|
54623
|
-
-moz-appearance: none;
|
|
54624
|
-
width: 14px;
|
|
54625
|
-
height: 14px;
|
|
54626
|
-
border: 1px solid ${GRAY_300};
|
|
54627
|
-
outline: none;
|
|
54628
|
-
border-radius: 8px;
|
|
54629
|
-
|
|
54630
|
-
&:checked {
|
|
54631
|
-
background: url("data:image/svg+xml,${encodeURIComponent(CIRCLE_SVG)}");
|
|
54632
|
-
background-color: ${ACTION_COLOR};
|
|
54633
|
-
border-color: ${ACTION_COLOR};
|
|
54634
|
-
}
|
|
54635
|
-
}
|
|
54636
|
-
}
|
|
54637
|
-
`;
|
|
53303
|
+
// FIXME Encoding version used in css
|
|
53304
|
+
// const CIRCLE_SVG = /*xml*/ `
|
|
53305
|
+
// <svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'>
|
|
53306
|
+
// <circle r="2" fill="#FFF"/>
|
|
53307
|
+
// </svg>
|
|
53308
|
+
// `;
|
|
54638
53309
|
class RadioSelection extends owl.Component {
|
|
54639
53310
|
static template = "o-spreadsheet.RadioSelection";
|
|
54640
53311
|
static props = {
|
|
@@ -55131,45 +53802,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
55131
53802
|
}
|
|
55132
53803
|
}
|
|
55133
53804
|
|
|
55134
|
-
css /* scss */ `
|
|
55135
|
-
.o-gauge-color-set {
|
|
55136
|
-
table {
|
|
55137
|
-
table-layout: fixed;
|
|
55138
|
-
margin-top: 2%;
|
|
55139
|
-
display: table;
|
|
55140
|
-
text-align: left;
|
|
55141
|
-
font-size: 12px;
|
|
55142
|
-
line-height: 18px;
|
|
55143
|
-
width: 100%;
|
|
55144
|
-
font-size: 12px;
|
|
55145
|
-
}
|
|
55146
|
-
|
|
55147
|
-
td {
|
|
55148
|
-
height: 30px;
|
|
55149
|
-
padding: 6px 0;
|
|
55150
|
-
}
|
|
55151
|
-
th.o-gauge-color-set-colorPicker {
|
|
55152
|
-
width: 8%;
|
|
55153
|
-
}
|
|
55154
|
-
th.o-gauge-color-set-text {
|
|
55155
|
-
width: 25%;
|
|
55156
|
-
}
|
|
55157
|
-
th.o-gauge-color-set-operator {
|
|
55158
|
-
width: 10%;
|
|
55159
|
-
}
|
|
55160
|
-
th.o-gauge-color-set-value {
|
|
55161
|
-
width: 22%;
|
|
55162
|
-
}
|
|
55163
|
-
th.o-gauge-color-set-type {
|
|
55164
|
-
width: 30%;
|
|
55165
|
-
}
|
|
55166
|
-
input,
|
|
55167
|
-
select {
|
|
55168
|
-
width: 100%;
|
|
55169
|
-
height: 100%;
|
|
55170
|
-
}
|
|
55171
|
-
}
|
|
55172
|
-
`;
|
|
55173
53805
|
class GaugeChartDesignPanel extends owl.Component {
|
|
55174
53806
|
static template = "o-spreadsheet-GaugeChartDesignPanel";
|
|
55175
53807
|
static components = {
|
|
@@ -55635,7 +54267,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
55635
54267
|
return SCORECARD_CHART_TITLE_FONT_SIZE;
|
|
55636
54268
|
}
|
|
55637
54269
|
translate(term) {
|
|
55638
|
-
return
|
|
54270
|
+
return this.env.model.getters.dynamicTranslate(term);
|
|
55639
54271
|
}
|
|
55640
54272
|
setColor(color, colorPickerId) {
|
|
55641
54273
|
switch (colorPickerId) {
|
|
@@ -55975,40 +54607,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
55975
54607
|
design: TreeMapChartDesignPanel,
|
|
55976
54608
|
});
|
|
55977
54609
|
|
|
55978
|
-
css /* scss */ `
|
|
55979
|
-
.o-section .o-input.o-type-selector {
|
|
55980
|
-
height: 30px;
|
|
55981
|
-
padding-left: 35px;
|
|
55982
|
-
padding-top: 5px;
|
|
55983
|
-
}
|
|
55984
|
-
.o-type-selector-preview {
|
|
55985
|
-
left: 5px;
|
|
55986
|
-
top: 3px;
|
|
55987
|
-
.o-chart-preview {
|
|
55988
|
-
width: 24px;
|
|
55989
|
-
height: 24px;
|
|
55990
|
-
}
|
|
55991
|
-
}
|
|
55992
|
-
|
|
55993
|
-
.o-popover .o-chart-select-popover {
|
|
55994
|
-
background: #fff;
|
|
55995
|
-
.o-chart-type-item {
|
|
55996
|
-
cursor: pointer;
|
|
55997
|
-
padding: 3px 6px;
|
|
55998
|
-
margin: 1px 2px;
|
|
55999
|
-
&.selected,
|
|
56000
|
-
&:hover {
|
|
56001
|
-
border: 1px solid ${ACTION_COLOR};
|
|
56002
|
-
background: ${BADGE_SELECTED_COLOR};
|
|
56003
|
-
padding: 2px 5px;
|
|
56004
|
-
}
|
|
56005
|
-
.o-chart-preview {
|
|
56006
|
-
width: 48px;
|
|
56007
|
-
height: 48px;
|
|
56008
|
-
}
|
|
56009
|
-
}
|
|
56010
|
-
}
|
|
56011
|
-
`;
|
|
56012
54610
|
class ChartTypePicker extends owl.Component {
|
|
56013
54611
|
static template = "o-spreadsheet-ChartTypePicker";
|
|
56014
54612
|
static components = { Section, Popover };
|
|
@@ -56111,38 +54709,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56111
54709
|
}
|
|
56112
54710
|
}
|
|
56113
54711
|
|
|
56114
|
-
css /* scss */ `
|
|
56115
|
-
.o-chart {
|
|
56116
|
-
.o-panel {
|
|
56117
|
-
display: flex;
|
|
56118
|
-
.o-panel-element {
|
|
56119
|
-
flex: 1 0 auto;
|
|
56120
|
-
padding: 8px 0px;
|
|
56121
|
-
text-align: center;
|
|
56122
|
-
cursor: pointer;
|
|
56123
|
-
border-right: 1px solid ${GRAY_300};
|
|
56124
|
-
|
|
56125
|
-
&.inactive {
|
|
56126
|
-
color: ${TEXT_BODY};
|
|
56127
|
-
background-color: ${GRAY_100};
|
|
56128
|
-
border-bottom: 1px solid ${GRAY_300};
|
|
56129
|
-
}
|
|
56130
|
-
|
|
56131
|
-
&:not(.inactive) {
|
|
56132
|
-
color: ${TEXT_HEADING};
|
|
56133
|
-
border-bottom: 1px solid #fff;
|
|
56134
|
-
}
|
|
56135
|
-
|
|
56136
|
-
.fa {
|
|
56137
|
-
margin-right: 4px;
|
|
56138
|
-
}
|
|
56139
|
-
}
|
|
56140
|
-
.o-panel-element:last-child {
|
|
56141
|
-
border-right: none;
|
|
56142
|
-
}
|
|
56143
|
-
}
|
|
56144
|
-
}
|
|
56145
|
-
`;
|
|
56146
54712
|
class ChartPanel extends owl.Component {
|
|
56147
54713
|
static template = "o-spreadsheet-ChartPanel";
|
|
56148
54714
|
static components = { Section, ChartTypePicker };
|
|
@@ -56231,26 +54797,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56231
54797
|
}
|
|
56232
54798
|
}
|
|
56233
54799
|
|
|
56234
|
-
css /* scss */ `
|
|
56235
|
-
.o-icon-picker {
|
|
56236
|
-
position: absolute;
|
|
56237
|
-
z-index: ${ComponentsImportance.IconPicker};
|
|
56238
|
-
box-shadow: 1px 2px 5px 2px rgba(51, 51, 51, 0.15);
|
|
56239
|
-
background-color: white;
|
|
56240
|
-
padding: 2px 1px;
|
|
56241
|
-
}
|
|
56242
|
-
.o-cf-icon-line {
|
|
56243
|
-
display: flex;
|
|
56244
|
-
padding: 0 6px;
|
|
56245
|
-
}
|
|
56246
|
-
.o-icon-picker-item {
|
|
56247
|
-
cursor: pointer;
|
|
56248
|
-
&:hover {
|
|
56249
|
-
background-color: ${BADGE_SELECTED_COLOR};
|
|
56250
|
-
outline: ${ACTION_COLOR} solid 1px;
|
|
56251
|
-
}
|
|
56252
|
-
}
|
|
56253
|
-
`;
|
|
56254
54800
|
class IconPicker extends owl.Component {
|
|
56255
54801
|
static template = "o-spreadsheet-IconPicker";
|
|
56256
54802
|
static props = {
|
|
@@ -56288,77 +54834,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56288
54834
|
}, () => [highlightProvider.highlights]);
|
|
56289
54835
|
}
|
|
56290
54836
|
|
|
56291
|
-
css /* scss */ `
|
|
56292
|
-
.o-cf-preview {
|
|
56293
|
-
&.o-cf-cursor-ptr {
|
|
56294
|
-
cursor: pointer;
|
|
56295
|
-
}
|
|
56296
|
-
|
|
56297
|
-
border-bottom: 1px solid ${GRAY_300};
|
|
56298
|
-
height: 80px;
|
|
56299
|
-
padding: 10px;
|
|
56300
|
-
position: relative;
|
|
56301
|
-
cursor: pointer;
|
|
56302
|
-
&:hover,
|
|
56303
|
-
&.o-cf-dragging {
|
|
56304
|
-
background-color: ${GRAY_200};
|
|
56305
|
-
}
|
|
56306
|
-
|
|
56307
|
-
&:not(:hover) .o-cf-delete-button {
|
|
56308
|
-
display: none;
|
|
56309
|
-
}
|
|
56310
|
-
.o-cf-preview-icon {
|
|
56311
|
-
border: 1px solid ${GRAY_300};
|
|
56312
|
-
background-color: #fff;
|
|
56313
|
-
position: absolute;
|
|
56314
|
-
height: 50px;
|
|
56315
|
-
width: 50px;
|
|
56316
|
-
.o-icon {
|
|
56317
|
-
width: ${CF_ICON_EDGE_LENGTH}px;
|
|
56318
|
-
height: ${CF_ICON_EDGE_LENGTH}px;
|
|
56319
|
-
}
|
|
56320
|
-
}
|
|
56321
|
-
.o-cf-preview-description {
|
|
56322
|
-
left: 65px;
|
|
56323
|
-
margin-bottom: auto;
|
|
56324
|
-
margin-right: 8px;
|
|
56325
|
-
margin-top: auto;
|
|
56326
|
-
position: relative;
|
|
56327
|
-
width: 142px;
|
|
56328
|
-
.o-cf-preview-description-rule {
|
|
56329
|
-
margin-bottom: 4px;
|
|
56330
|
-
max-height: 2.8em;
|
|
56331
|
-
line-height: 1.4em;
|
|
56332
|
-
}
|
|
56333
|
-
.o-cf-preview-range {
|
|
56334
|
-
font-size: 12px;
|
|
56335
|
-
}
|
|
56336
|
-
}
|
|
56337
|
-
.o-cf-delete {
|
|
56338
|
-
left: 90%;
|
|
56339
|
-
top: 39%;
|
|
56340
|
-
position: absolute;
|
|
56341
|
-
}
|
|
56342
|
-
&:not(:hover):not(.o-cf-dragging) .o-cf-drag-handle {
|
|
56343
|
-
display: none !important;
|
|
56344
|
-
}
|
|
56345
|
-
.o-cf-drag-handle {
|
|
56346
|
-
left: -8px;
|
|
56347
|
-
cursor: move;
|
|
56348
|
-
.o-icon {
|
|
56349
|
-
width: 6px;
|
|
56350
|
-
height: 30px;
|
|
56351
|
-
}
|
|
56352
|
-
}
|
|
56353
|
-
|
|
56354
|
-
.o-icon.arrow-down {
|
|
56355
|
-
color: #e06666;
|
|
56356
|
-
}
|
|
56357
|
-
.o-icon.arrow-up {
|
|
56358
|
-
color: #6aa84f;
|
|
56359
|
-
}
|
|
56360
|
-
}
|
|
56361
|
-
`;
|
|
56362
54837
|
class ConditionalFormatPreview extends owl.Component {
|
|
56363
54838
|
static template = "o-spreadsheet-ConditionalFormatPreview";
|
|
56364
54839
|
icons = ICONS;
|
|
@@ -56477,95 +54952,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56477
54952
|
}
|
|
56478
54953
|
}
|
|
56479
54954
|
|
|
56480
|
-
css /* scss */ `
|
|
56481
|
-
.o-cf-ruleEditor {
|
|
56482
|
-
.o-cf-preview-display {
|
|
56483
|
-
border: 1px solid ${GRAY_300};
|
|
56484
|
-
padding: 10px;
|
|
56485
|
-
}
|
|
56486
|
-
|
|
56487
|
-
.o-cf-cell-is-rule {
|
|
56488
|
-
.o-divider {
|
|
56489
|
-
border-right: 1px solid ${GRAY_300};
|
|
56490
|
-
margin: 4px 6px;
|
|
56491
|
-
}
|
|
56492
|
-
}
|
|
56493
|
-
.o-cf-color-scale-editor {
|
|
56494
|
-
.o-threshold {
|
|
56495
|
-
.o-select-with-input {
|
|
56496
|
-
max-width: 150px;
|
|
56497
|
-
}
|
|
56498
|
-
.o-threshold-value {
|
|
56499
|
-
flex-grow: 1;
|
|
56500
|
-
flex-basis: 60%;
|
|
56501
|
-
min-width: 0px; /* input overflows in Firefox otherwise */
|
|
56502
|
-
}
|
|
56503
|
-
.o-threshold-value input:disabled {
|
|
56504
|
-
background-color: #edebed;
|
|
56505
|
-
}
|
|
56506
|
-
}
|
|
56507
|
-
}
|
|
56508
|
-
.o-cf-iconset-rule {
|
|
56509
|
-
.o-cf-clickable-icon {
|
|
56510
|
-
border: 1px solid ${GRAY_200};
|
|
56511
|
-
border-radius: 4px;
|
|
56512
|
-
cursor: pointer;
|
|
56513
|
-
&:hover {
|
|
56514
|
-
border-color: ${ACTION_COLOR};
|
|
56515
|
-
background-color: ${BADGE_SELECTED_COLOR};
|
|
56516
|
-
}
|
|
56517
|
-
.o-icon {
|
|
56518
|
-
width: ${CF_ICON_EDGE_LENGTH}px;
|
|
56519
|
-
height: ${CF_ICON_EDGE_LENGTH}px;
|
|
56520
|
-
}
|
|
56521
|
-
}
|
|
56522
|
-
.o-cf-iconsets {
|
|
56523
|
-
gap: 11px;
|
|
56524
|
-
.o-cf-iconset {
|
|
56525
|
-
padding: 7px 8px;
|
|
56526
|
-
width: 95px;
|
|
56527
|
-
.o-icon {
|
|
56528
|
-
margin: 0 3px;
|
|
56529
|
-
}
|
|
56530
|
-
svg {
|
|
56531
|
-
vertical-align: baseline;
|
|
56532
|
-
}
|
|
56533
|
-
}
|
|
56534
|
-
}
|
|
56535
|
-
.o-inflection {
|
|
56536
|
-
.o-cf-icon-button {
|
|
56537
|
-
padding: 4px 10px;
|
|
56538
|
-
}
|
|
56539
|
-
table {
|
|
56540
|
-
font-size: 13px;
|
|
56541
|
-
td {
|
|
56542
|
-
padding: 6px 0;
|
|
56543
|
-
}
|
|
56544
|
-
|
|
56545
|
-
th.o-cf-iconset-icons {
|
|
56546
|
-
width: 25px;
|
|
56547
|
-
}
|
|
56548
|
-
th.o-cf-iconset-text {
|
|
56549
|
-
width: 82px;
|
|
56550
|
-
}
|
|
56551
|
-
th.o-cf-iconset-operator {
|
|
56552
|
-
width: 20px;
|
|
56553
|
-
}
|
|
56554
|
-
.o-cf-iconset-type {
|
|
56555
|
-
min-width: 80px;
|
|
56556
|
-
}
|
|
56557
|
-
}
|
|
56558
|
-
}
|
|
56559
|
-
}
|
|
56560
|
-
|
|
56561
|
-
.o-icon.arrow-down {
|
|
56562
|
-
color: #e06666;
|
|
56563
|
-
}
|
|
56564
|
-
.o-icon.arrow-up {
|
|
56565
|
-
color: #6aa84f;
|
|
56566
|
-
}
|
|
56567
|
-
}
|
|
56568
|
-
`;
|
|
56569
54955
|
class ConditionalFormattingEditor extends owl.Component {
|
|
56570
54956
|
static template = "o-spreadsheet-ConditionalFormattingEditor";
|
|
56571
54957
|
static props = {
|
|
@@ -57095,25 +55481,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57095
55481
|
*/
|
|
57096
55482
|
const currenciesRegistry = new Registry();
|
|
57097
55483
|
|
|
57098
|
-
css /* scss */ `
|
|
57099
|
-
.o-custom-currency {
|
|
57100
|
-
.o-format-proposals {
|
|
57101
|
-
color: black;
|
|
57102
|
-
}
|
|
57103
|
-
|
|
57104
|
-
.o-format-examples {
|
|
57105
|
-
background: #f9fafb;
|
|
57106
|
-
padding: 8px;
|
|
57107
|
-
border-radius: 4px;
|
|
57108
|
-
border: 1px solid #d8dadd;
|
|
57109
|
-
color: #374151;
|
|
57110
|
-
}
|
|
57111
|
-
|
|
57112
|
-
table {
|
|
57113
|
-
table-layout: fixed;
|
|
57114
|
-
}
|
|
57115
|
-
}
|
|
57116
|
-
`;
|
|
57117
55484
|
class CustomCurrencyPanel extends owl.Component {
|
|
57118
55485
|
static template = "o-spreadsheet-CustomCurrencyPanel";
|
|
57119
55486
|
static components = { Section, Checkbox };
|
|
@@ -57187,7 +55554,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57187
55554
|
});
|
|
57188
55555
|
}
|
|
57189
55556
|
const emptyCurrency = {
|
|
57190
|
-
name:
|
|
55557
|
+
name: CustomCurrencyTerms.Custom,
|
|
57191
55558
|
code: "",
|
|
57192
55559
|
symbol: "",
|
|
57193
55560
|
decimalPlaces: 2,
|
|
@@ -57346,31 +55713,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57346
55713
|
}
|
|
57347
55714
|
}
|
|
57348
55715
|
|
|
57349
|
-
css /* scss */ `
|
|
57350
|
-
.o-sidePanel {
|
|
57351
|
-
.o-dv-preview {
|
|
57352
|
-
height: 70px;
|
|
57353
|
-
cursor: pointer;
|
|
57354
|
-
border-bottom: 1px solid ${FIGURE_BORDER_COLOR};
|
|
57355
|
-
|
|
57356
|
-
.o-dv-container {
|
|
57357
|
-
min-width: 0; /* otherwise flex won't shrink correctly */
|
|
57358
|
-
}
|
|
57359
|
-
|
|
57360
|
-
.o-dv-preview-description {
|
|
57361
|
-
font-size: 13px;
|
|
57362
|
-
}
|
|
57363
|
-
|
|
57364
|
-
&:hover {
|
|
57365
|
-
background-color: rgba(0, 0, 0, 0.08);
|
|
57366
|
-
}
|
|
57367
|
-
|
|
57368
|
-
&:not(:hover) .o-dv-preview-delete {
|
|
57369
|
-
display: none !important;
|
|
57370
|
-
}
|
|
57371
|
-
}
|
|
57372
|
-
}
|
|
57373
|
-
`;
|
|
57374
55716
|
class DataValidationPreview extends owl.Component {
|
|
57375
55717
|
static template = "o-spreadsheet-DataValidationPreview";
|
|
57376
55718
|
static props = {
|
|
@@ -57819,38 +56161,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57819
56161
|
}
|
|
57820
56162
|
}
|
|
57821
56163
|
|
|
57822
|
-
css /* scss */ `
|
|
57823
|
-
.o-find-and-replace {
|
|
57824
|
-
outline: none;
|
|
57825
|
-
height: 100%;
|
|
57826
|
-
.o-input-search-container {
|
|
57827
|
-
display: flex;
|
|
57828
|
-
.o-input-with-count {
|
|
57829
|
-
flex-grow: 1;
|
|
57830
|
-
width: auto;
|
|
57831
|
-
}
|
|
57832
|
-
.o-input-without-count {
|
|
57833
|
-
width: 100%;
|
|
57834
|
-
}
|
|
57835
|
-
.o-input-count {
|
|
57836
|
-
width: fit-content;
|
|
57837
|
-
padding: 4px 0 4px 4px;
|
|
57838
|
-
white-space: nowrap;
|
|
57839
|
-
}
|
|
57840
|
-
}
|
|
57841
|
-
|
|
57842
|
-
.o-result-buttons {
|
|
57843
|
-
.o-button {
|
|
57844
|
-
height: 19px;
|
|
57845
|
-
width: 19px;
|
|
57846
|
-
.o-icon {
|
|
57847
|
-
height: 14px;
|
|
57848
|
-
width: 14px;
|
|
57849
|
-
}
|
|
57850
|
-
}
|
|
57851
|
-
}
|
|
57852
|
-
}
|
|
57853
|
-
`;
|
|
57854
56164
|
class FindAndReplacePanel extends owl.Component {
|
|
57855
56165
|
static template = "o-spreadsheet-FindAndReplacePanel";
|
|
57856
56166
|
static components = { SelectionInput, Section, Checkbox, ValidationMessages };
|
|
@@ -57961,22 +56271,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57961
56271
|
}
|
|
57962
56272
|
}
|
|
57963
56273
|
|
|
57964
|
-
css /* scss */ `
|
|
57965
|
-
.o-more-formats-panel {
|
|
57966
|
-
.format-preview {
|
|
57967
|
-
height: 49px;
|
|
57968
|
-
background-color: white;
|
|
57969
|
-
cursor: pointer;
|
|
57970
|
-
|
|
57971
|
-
&:hover {
|
|
57972
|
-
background-color: rgba(0, 0, 0, 0.08);
|
|
57973
|
-
}
|
|
57974
|
-
}
|
|
57975
|
-
.check-icon {
|
|
57976
|
-
width: 24px;
|
|
57977
|
-
}
|
|
57978
|
-
}
|
|
57979
|
-
`;
|
|
57980
56274
|
const DATE_FORMAT_ACTIONS = createActions([
|
|
57981
56275
|
formatNumberFullDateTime,
|
|
57982
56276
|
formatNumberISODate,
|
|
@@ -58134,21 +56428,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58134
56428
|
}
|
|
58135
56429
|
}
|
|
58136
56430
|
|
|
58137
|
-
css /* scss */ `
|
|
58138
|
-
.o-sidePanel {
|
|
58139
|
-
.o-pivot-measure-display-field,
|
|
58140
|
-
.o-pivot-measure-display-value {
|
|
58141
|
-
border: solid 1px ${GRAY_300};
|
|
58142
|
-
border-radius: 3px;
|
|
58143
|
-
}
|
|
58144
|
-
|
|
58145
|
-
.o-pivot-measure-display-description {
|
|
58146
|
-
white-space: pre-wrap;
|
|
58147
|
-
color: dimgray;
|
|
58148
|
-
border-left: 2px solid ${GRAY_300};
|
|
58149
|
-
}
|
|
58150
|
-
}
|
|
58151
|
-
`;
|
|
58152
56431
|
class PivotMeasureDisplayPanel extends owl.Component {
|
|
58153
56432
|
static template = "o-spreadsheet-PivotMeasureDisplayPanel";
|
|
58154
56433
|
static props = {
|
|
@@ -58207,11 +56486,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58207
56486
|
return positions;
|
|
58208
56487
|
}
|
|
58209
56488
|
|
|
58210
|
-
css /* scss */ `
|
|
58211
|
-
.pivot-defer-update {
|
|
58212
|
-
min-height: 40px;
|
|
58213
|
-
}
|
|
58214
|
-
`;
|
|
58215
56489
|
class PivotDeferUpdate extends owl.Component {
|
|
58216
56490
|
static template = "o-spreadsheet-PivotDeferUpdate";
|
|
58217
56491
|
static props = {
|
|
@@ -58300,25 +56574,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58300
56574
|
return pendingHtmlContent.filter((content) => content.value);
|
|
58301
56575
|
}
|
|
58302
56576
|
|
|
58303
|
-
css /* scss */ `
|
|
58304
|
-
input.pivot-dimension-search-field:focus {
|
|
58305
|
-
outline: none;
|
|
58306
|
-
}
|
|
58307
|
-
.pivot-dimension-search-field-icon svg {
|
|
58308
|
-
width: 13px;
|
|
58309
|
-
height: 13px;
|
|
58310
|
-
}
|
|
58311
|
-
.pivot-dimension-search {
|
|
58312
|
-
background-color: white;
|
|
58313
|
-
}
|
|
58314
|
-
.add-dimension.o-button {
|
|
58315
|
-
padding: 2px 7px;
|
|
58316
|
-
font-weight: 400;
|
|
58317
|
-
font-size: 12px;
|
|
58318
|
-
flex-grow: 0;
|
|
58319
|
-
height: inherit;
|
|
58320
|
-
}
|
|
58321
|
-
`;
|
|
58322
56577
|
class AddDimensionButton extends owl.Component {
|
|
58323
56578
|
static template = "o-spreadsheet-AddDimensionButton";
|
|
58324
56579
|
static components = { Popover, TextValueProvider };
|
|
@@ -58412,35 +56667,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58412
56667
|
}
|
|
58413
56668
|
}
|
|
58414
56669
|
|
|
58415
|
-
// don't use bg-white since it's flipped to dark in dark mode and we don't support dark mode
|
|
58416
|
-
css /* scss */ `
|
|
58417
|
-
.pivot-dimension {
|
|
58418
|
-
background-color: white;
|
|
58419
|
-
border: 1px solid ${GRAY_300};
|
|
58420
|
-
border-radius: 4px;
|
|
58421
|
-
|
|
58422
|
-
select.o-input {
|
|
58423
|
-
height: inherit;
|
|
58424
|
-
}
|
|
58425
|
-
|
|
58426
|
-
select > option {
|
|
58427
|
-
background-color: white;
|
|
58428
|
-
}
|
|
58429
|
-
|
|
58430
|
-
.pivot-dim-operator-label {
|
|
58431
|
-
min-width: 120px;
|
|
58432
|
-
}
|
|
58433
|
-
|
|
58434
|
-
&.pivot-dimension-invalid {
|
|
58435
|
-
background-color: #ffdddd;
|
|
58436
|
-
border-color: red !important;
|
|
58437
|
-
select,
|
|
58438
|
-
input {
|
|
58439
|
-
background-color: #ffdddd;
|
|
58440
|
-
}
|
|
58441
|
-
}
|
|
58442
|
-
}
|
|
58443
|
-
`;
|
|
58444
56670
|
class PivotDimension extends owl.Component {
|
|
58445
56671
|
static template = "o-spreadsheet-PivotDimension";
|
|
58446
56672
|
static props = {
|
|
@@ -58592,19 +56818,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58592
56818
|
}
|
|
58593
56819
|
}
|
|
58594
56820
|
|
|
58595
|
-
css /* scss */ `
|
|
58596
|
-
.o-pivot-sort {
|
|
58597
|
-
.o-sort-card {
|
|
58598
|
-
width: fit-content;
|
|
58599
|
-
background-color: ${GRAY_100};
|
|
58600
|
-
border: 1px solid ${GRAY_300};
|
|
58601
|
-
|
|
58602
|
-
.o-sort-value {
|
|
58603
|
-
color: ${PRIMARY_BUTTON_BG};
|
|
58604
|
-
}
|
|
58605
|
-
}
|
|
58606
|
-
}
|
|
58607
|
-
`;
|
|
58608
56821
|
class PivotSortSection extends owl.Component {
|
|
58609
56822
|
static template = "o-spreadsheet-PivotSortSection";
|
|
58610
56823
|
static components = {
|
|
@@ -58650,11 +56863,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58650
56863
|
}
|
|
58651
56864
|
}
|
|
58652
56865
|
|
|
58653
|
-
css /* scss */ `
|
|
58654
|
-
.add-calculated-measure {
|
|
58655
|
-
cursor: pointer;
|
|
58656
|
-
}
|
|
58657
|
-
`;
|
|
58658
56866
|
class PivotLayoutConfigurator extends owl.Component {
|
|
58659
56867
|
static template = "o-spreadsheet-PivotLayoutConfigurator";
|
|
58660
56868
|
static components = {
|
|
@@ -58847,12 +57055,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58847
57055
|
addCalculatedMeasure() {
|
|
58848
57056
|
const { measures } = this.props.definition;
|
|
58849
57057
|
const measureName = this.env.model.getters.generateNewCalculatedMeasureName(measures);
|
|
57058
|
+
const aggregator = "sum";
|
|
58850
57059
|
this.props.onDimensionsUpdated({
|
|
58851
57060
|
measures: measures.concat([
|
|
58852
57061
|
{
|
|
58853
|
-
id: this.getMeasureId(measureName),
|
|
57062
|
+
id: this.getMeasureId(measureName, aggregator),
|
|
58854
57063
|
fieldName: measureName,
|
|
58855
|
-
aggregator
|
|
57064
|
+
aggregator,
|
|
58856
57065
|
computedBy: {
|
|
58857
57066
|
sheetId: this.env.model.getters.getActiveSheetId(),
|
|
58858
57067
|
formula: "=0",
|
|
@@ -59468,11 +57677,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
59468
57677
|
}
|
|
59469
57678
|
}
|
|
59470
57679
|
|
|
59471
|
-
css /* scss */ `
|
|
59472
|
-
.o-checkbox-selection {
|
|
59473
|
-
max-height: 300px;
|
|
59474
|
-
}
|
|
59475
|
-
`;
|
|
59476
57680
|
class RemoveDuplicatesPanel extends owl.Component {
|
|
59477
57681
|
static template = "o-spreadsheet-RemoveDuplicatesPanel";
|
|
59478
57682
|
static components = { ValidationMessages, Section, Checkbox };
|
|
@@ -59559,12 +57763,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
59559
57763
|
}
|
|
59560
57764
|
}
|
|
59561
57765
|
|
|
59562
|
-
css /* scss */ `
|
|
59563
|
-
.o-locale-preview {
|
|
59564
|
-
border: 1px solid ${GRAY_300};
|
|
59565
|
-
background-color: ${GRAY_100};
|
|
59566
|
-
}
|
|
59567
|
-
`;
|
|
59568
57766
|
class SettingsPanel extends owl.Component {
|
|
59569
57767
|
static template = "o-spreadsheet-SettingsPanel";
|
|
59570
57768
|
static components = { Section, ValidationMessages, BadgeSelection };
|
|
@@ -59838,34 +58036,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
59838
58036
|
ctx.restore();
|
|
59839
58037
|
}
|
|
59840
58038
|
|
|
59841
|
-
css /* scss */ `
|
|
59842
|
-
.o-table-style-list-item {
|
|
59843
|
-
border: 1px solid transparent;
|
|
59844
|
-
border-radius: 4px;
|
|
59845
|
-
&.selected {
|
|
59846
|
-
border: 1px solid ${ACTION_COLOR};
|
|
59847
|
-
background: ${BADGE_SELECTED_COLOR};
|
|
59848
|
-
}
|
|
59849
|
-
|
|
59850
|
-
&:hover {
|
|
59851
|
-
background: #ddd;
|
|
59852
|
-
.o-table-style-edit-button {
|
|
59853
|
-
display: block !important;
|
|
59854
|
-
right: 0;
|
|
59855
|
-
top: 0;
|
|
59856
|
-
background: #fff;
|
|
59857
|
-
cursor: pointer;
|
|
59858
|
-
border: 1px solid #ddd;
|
|
59859
|
-
padding: 1px 1px 1px 2px;
|
|
59860
|
-
.o-icon {
|
|
59861
|
-
font-size: 12px;
|
|
59862
|
-
width: 12px;
|
|
59863
|
-
height: 12px;
|
|
59864
|
-
}
|
|
59865
|
-
}
|
|
59866
|
-
}
|
|
59867
|
-
}
|
|
59868
|
-
`;
|
|
59869
58039
|
class TableStylePreview extends owl.Component {
|
|
59870
58040
|
static template = "o-spreadsheet-TableStylePreview";
|
|
59871
58041
|
static components = { MenuPopover };
|
|
@@ -59926,52 +58096,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
59926
58096
|
}
|
|
59927
58097
|
}
|
|
59928
58098
|
|
|
59929
|
-
css /* scss */ `
|
|
59930
|
-
.o-table-style-popover {
|
|
59931
|
-
/* 7 tables preview + padding by line */
|
|
59932
|
-
width: calc((66px + 4px * 2) * 7 + 1.5rem * 2);
|
|
59933
|
-
background: #fff;
|
|
59934
|
-
font-size: 14px;
|
|
59935
|
-
user-select: none;
|
|
59936
|
-
|
|
59937
|
-
.o-notebook {
|
|
59938
|
-
border-bottom: 1px solid ${GRAY_300};
|
|
59939
|
-
|
|
59940
|
-
.o-notebook-tab {
|
|
59941
|
-
padding: 5px 15px;
|
|
59942
|
-
border: 1px solid ${GRAY_300};
|
|
59943
|
-
margin-bottom: -1px;
|
|
59944
|
-
margin-left: -1px;
|
|
59945
|
-
color: ${TEXT_BODY};
|
|
59946
|
-
cursor: pointer;
|
|
59947
|
-
transition: color 0.2s, border-color 0.2s;
|
|
59948
|
-
|
|
59949
|
-
&.selected {
|
|
59950
|
-
border-bottom-color: #fff;
|
|
59951
|
-
border-top-color: ${PRIMARY_BUTTON_BG};
|
|
59952
|
-
color: ${TEXT_HEADING};
|
|
59953
|
-
}
|
|
59954
|
-
}
|
|
59955
|
-
}
|
|
59956
|
-
|
|
59957
|
-
.o-table-style-list-item {
|
|
59958
|
-
padding: 3px;
|
|
59959
|
-
}
|
|
59960
|
-
|
|
59961
|
-
.o-table-style-popover-preview {
|
|
59962
|
-
width: 66px;
|
|
59963
|
-
height: 51px;
|
|
59964
|
-
}
|
|
59965
|
-
|
|
59966
|
-
.o-new-table-style {
|
|
59967
|
-
font-size: 36px;
|
|
59968
|
-
color: #666;
|
|
59969
|
-
&:hover {
|
|
59970
|
-
background: #f5f5f5;
|
|
59971
|
-
}
|
|
59972
|
-
}
|
|
59973
|
-
}
|
|
59974
|
-
`;
|
|
59975
58099
|
class TableStylesPopover extends owl.Component {
|
|
59976
58100
|
static template = "o-spreadsheet-TableStylesPopover";
|
|
59977
58101
|
static components = { Popover, TableStylePreview };
|
|
@@ -60011,31 +58135,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
60011
58135
|
}
|
|
60012
58136
|
}
|
|
60013
58137
|
|
|
60014
|
-
css /* scss */ `
|
|
60015
|
-
.o-table-style-picker {
|
|
60016
|
-
border: 1px solid ${GRAY_300};
|
|
60017
|
-
border-radius: 3px;
|
|
60018
|
-
|
|
60019
|
-
.o-table-style-picker-arrow {
|
|
60020
|
-
border-left: 1px solid ${GRAY_300};
|
|
60021
|
-
|
|
60022
|
-
&:hover {
|
|
60023
|
-
background: #f5f5f5;
|
|
60024
|
-
cursor: pointer;
|
|
60025
|
-
}
|
|
60026
|
-
}
|
|
60027
|
-
|
|
60028
|
-
.o-table-style-list-item {
|
|
60029
|
-
padding: 5px 6px;
|
|
60030
|
-
margin: 5px 2px;
|
|
60031
|
-
|
|
60032
|
-
.o-table-style-picker-preview {
|
|
60033
|
-
width: 51px;
|
|
60034
|
-
height: 36px;
|
|
60035
|
-
}
|
|
60036
|
-
}
|
|
60037
|
-
}
|
|
60038
|
-
`;
|
|
60039
58138
|
class TableStylePicker extends owl.Component {
|
|
60040
58139
|
static template = "o-spreadsheet-TableStylePicker";
|
|
60041
58140
|
static components = { TableStylesPopover, TableStylePreview };
|
|
@@ -60079,19 +58178,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
60079
58178
|
}
|
|
60080
58179
|
}
|
|
60081
58180
|
|
|
60082
|
-
css /* scss */ `
|
|
60083
|
-
.o-table-panel {
|
|
60084
|
-
input.o-table-n-of-headers {
|
|
60085
|
-
width: 14px;
|
|
60086
|
-
text-align: center;
|
|
60087
|
-
}
|
|
60088
|
-
|
|
60089
|
-
.o-info-icon {
|
|
60090
|
-
width: 14px;
|
|
60091
|
-
height: 14px;
|
|
60092
|
-
}
|
|
60093
|
-
}
|
|
60094
|
-
`;
|
|
60095
58181
|
class TablePanel extends owl.Component {
|
|
60096
58182
|
static template = "o-spreadsheet-TablePanel";
|
|
60097
58183
|
static components = { TableStylePicker, SelectionInput, ValidationMessages, Checkbox, Section };
|
|
@@ -60243,19 +58329,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
60243
58329
|
}
|
|
60244
58330
|
}
|
|
60245
58331
|
|
|
60246
|
-
css /* scss */ `
|
|
60247
|
-
.o-table-style-editor-panel {
|
|
60248
|
-
.o-table-style-list-item {
|
|
60249
|
-
margin: 2px 7px;
|
|
60250
|
-
padding: 6px 9px;
|
|
60251
|
-
|
|
60252
|
-
.o-table-style-edit-template-preview {
|
|
60253
|
-
width: 71px;
|
|
60254
|
-
height: 51px;
|
|
60255
|
-
}
|
|
60256
|
-
}
|
|
60257
|
-
}
|
|
60258
|
-
`;
|
|
60259
58332
|
const DEFAULT_TABLE_STYLE_COLOR = "#3C78D8";
|
|
60260
58333
|
class TableStyleEditorPanel extends owl.Component {
|
|
60261
58334
|
static template = "o-spreadsheet-TableStyleEditorPanel";
|
|
@@ -60690,15 +58763,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
60690
58763
|
|
|
60691
58764
|
const SIZE = 3;
|
|
60692
58765
|
const COLOR = "#777";
|
|
60693
|
-
css /* scss */ `
|
|
60694
|
-
.o-table-resizer {
|
|
60695
|
-
width: ${SIZE * 2}px;
|
|
60696
|
-
height: ${SIZE * 2}px;
|
|
60697
|
-
border-bottom: ${SIZE}px solid ${COLOR};
|
|
60698
|
-
border-right: ${SIZE}px solid ${COLOR};
|
|
60699
|
-
cursor: nwse-resize;
|
|
60700
|
-
}
|
|
60701
|
-
`;
|
|
60702
58766
|
class TableResizer extends owl.Component {
|
|
60703
58767
|
static template = "o-spreadsheet-TableResizer";
|
|
60704
58768
|
static props = { table: Object };
|
|
@@ -61444,14 +59508,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61444
59508
|
"background-color": this.getBackgroundColor(cellStyle),
|
|
61445
59509
|
});
|
|
61446
59510
|
}
|
|
61447
|
-
get
|
|
61448
|
-
|
|
61449
|
-
|
|
61450
|
-
|
|
61451
|
-
|
|
61452
|
-
|
|
59511
|
+
get verticalJustifyClass() {
|
|
59512
|
+
const cellStyle = this.env.model.getters.getCellComputedStyle(this.props.position);
|
|
59513
|
+
switch (cellStyle.verticalAlign) {
|
|
59514
|
+
case "top":
|
|
59515
|
+
return "justify-content-start";
|
|
59516
|
+
case "middle":
|
|
59517
|
+
return "justify-content-center";
|
|
59518
|
+
case "bottom":
|
|
61453
59519
|
default:
|
|
61454
|
-
return "
|
|
59520
|
+
return "justify-content-end";
|
|
61455
59521
|
}
|
|
61456
59522
|
}
|
|
61457
59523
|
getBackgroundColor(cellStyle) {
|
|
@@ -61513,43 +59579,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61513
59579
|
}
|
|
61514
59580
|
}
|
|
61515
59581
|
|
|
61516
|
-
css /* scss */ `
|
|
61517
|
-
.o_pivot_html_renderer {
|
|
61518
|
-
width: 100%;
|
|
61519
|
-
border-collapse: collapse;
|
|
61520
|
-
|
|
61521
|
-
&:hover {
|
|
61522
|
-
cursor: pointer;
|
|
61523
|
-
}
|
|
61524
|
-
|
|
61525
|
-
td,
|
|
61526
|
-
th {
|
|
61527
|
-
border: 1px solid #dee2e6;
|
|
61528
|
-
background-color: #fff;
|
|
61529
|
-
padding: 0.3rem;
|
|
61530
|
-
white-space: nowrap;
|
|
61531
|
-
|
|
61532
|
-
&:hover {
|
|
61533
|
-
filter: brightness(0.9);
|
|
61534
|
-
}
|
|
61535
|
-
}
|
|
61536
|
-
|
|
61537
|
-
td {
|
|
61538
|
-
text-align: right;
|
|
61539
|
-
}
|
|
61540
|
-
|
|
61541
|
-
th {
|
|
61542
|
-
background-color: #f5f5f5;
|
|
61543
|
-
font-weight: bold;
|
|
61544
|
-
color: black;
|
|
61545
|
-
}
|
|
61546
|
-
|
|
61547
|
-
.o_missing_value {
|
|
61548
|
-
color: #46646d;
|
|
61549
|
-
background: #e7f2f6;
|
|
61550
|
-
}
|
|
61551
|
-
}
|
|
61552
|
-
`;
|
|
61553
59582
|
class PivotHTMLRenderer extends owl.Component {
|
|
61554
59583
|
static template = "o_spreadsheet.PivotHTMLRenderer";
|
|
61555
59584
|
static components = { Checkbox };
|
|
@@ -70652,6 +68681,30 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
70652
68681
|
pivot: { ...definition, collapsedDomains: newDomains },
|
|
70653
68682
|
});
|
|
70654
68683
|
}
|
|
68684
|
+
iconsOnCellRegistry.add("pivot_dashboard_sorting", (getters, position) => {
|
|
68685
|
+
if (!getters.isDashboard()) {
|
|
68686
|
+
return undefined;
|
|
68687
|
+
}
|
|
68688
|
+
const pivotCell = getters.getPivotCellFromPosition(position);
|
|
68689
|
+
if (pivotCell.type !== "MEASURE_HEADER") {
|
|
68690
|
+
return undefined;
|
|
68691
|
+
}
|
|
68692
|
+
const sortDirection = getters.getPivotCellSortDirection(position);
|
|
68693
|
+
if (sortDirection !== "asc" && sortDirection !== "desc") {
|
|
68694
|
+
return undefined;
|
|
68695
|
+
}
|
|
68696
|
+
const cellStyle = getters.getCellComputedStyle(position);
|
|
68697
|
+
return {
|
|
68698
|
+
type: `pivot_dashboard_sorting_${sortDirection}`,
|
|
68699
|
+
priority: 5,
|
|
68700
|
+
horizontalAlign: "right",
|
|
68701
|
+
size: GRID_ICON_EDGE_LENGTH,
|
|
68702
|
+
margin: GRID_ICON_MARGIN,
|
|
68703
|
+
svg: sortDirection === "asc" ? getCaretUpSvg(cellStyle) : getCaretDownSvg(cellStyle),
|
|
68704
|
+
position,
|
|
68705
|
+
onClick: undefined, // click is managed by ClickableCellSortIcon
|
|
68706
|
+
};
|
|
68707
|
+
});
|
|
70655
68708
|
|
|
70656
68709
|
class CellIconPlugin extends CoreViewPlugin {
|
|
70657
68710
|
static getters = ["doesCellHaveGridIcon", "getCellIcons", "getCellIconRect"];
|
|
@@ -71131,7 +69184,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
71131
69184
|
return { value: 0 };
|
|
71132
69185
|
}
|
|
71133
69186
|
const { columns, rows } = super.definition;
|
|
71134
|
-
if (columns.length + rows.length !== domain.length) {
|
|
69187
|
+
if (measure.aggregator && columns.length + rows.length !== domain.length) {
|
|
71135
69188
|
const values = this.getValuesToAggregate(measure, domain);
|
|
71136
69189
|
const aggregator = AGGREGATORS_FN[measure.aggregator];
|
|
71137
69190
|
if (!aggregator) {
|
|
@@ -71150,11 +69203,17 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
71150
69203
|
if (columns.find((col) => col.nameWithGranularity === symbolName)) {
|
|
71151
69204
|
const { colDomain } = domainToColRowDomain(this, domain);
|
|
71152
69205
|
const symbolIndex = colDomain.findIndex((node) => node.field === symbolName);
|
|
69206
|
+
if (symbolIndex === -1) {
|
|
69207
|
+
return new NotAvailableError();
|
|
69208
|
+
}
|
|
71153
69209
|
return this.getPivotHeaderValueAndFormat(colDomain.slice(0, symbolIndex + 1));
|
|
71154
69210
|
}
|
|
71155
69211
|
if (rows.find((row) => row.nameWithGranularity === symbolName)) {
|
|
71156
69212
|
const { rowDomain } = domainToColRowDomain(this, domain);
|
|
71157
69213
|
const symbolIndex = rowDomain.findIndex((row) => row.field === symbolName);
|
|
69214
|
+
if (symbolIndex === -1) {
|
|
69215
|
+
return new NotAvailableError();
|
|
69216
|
+
}
|
|
71158
69217
|
return this.getPivotHeaderValueAndFormat(rowDomain.slice(0, symbolIndex + 1));
|
|
71159
69218
|
}
|
|
71160
69219
|
return this.getPivotCellValueAndFormat(symbolName, domain);
|
|
@@ -75548,6 +73607,21 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
75548
73607
|
}
|
|
75549
73608
|
}
|
|
75550
73609
|
|
|
73610
|
+
/**
|
|
73611
|
+
* This plugin provides dynamic translation getter. In o-spreadsheet, it has
|
|
73612
|
+
* no implementation, but this plugin can be replaced by another one to provide
|
|
73613
|
+
* a real implementation.
|
|
73614
|
+
*
|
|
73615
|
+
* For example, in Odoo, the plugin is replaced by a plugin that used the
|
|
73616
|
+
* module namespace to dynamically translate terms.
|
|
73617
|
+
*/
|
|
73618
|
+
class DynamicTranslate extends UIPlugin {
|
|
73619
|
+
static getters = ["dynamicTranslate"];
|
|
73620
|
+
dynamicTranslate(term) {
|
|
73621
|
+
return term;
|
|
73622
|
+
}
|
|
73623
|
+
}
|
|
73624
|
+
|
|
75551
73625
|
const genericRepeatsTransforms = [
|
|
75552
73626
|
repeatSheetDependantCommand,
|
|
75553
73627
|
repeatTargetDependantCommand,
|
|
@@ -77518,13 +75592,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
77518
75592
|
const deltaCol = isBasedBefore && isCol ? thickness : 0;
|
|
77519
75593
|
const deltaRow = isBasedBefore && !isCol ? thickness : 0;
|
|
77520
75594
|
const toRemove = isBasedBefore ? cmd.elements.map((el) => el + thickness) : cmd.elements;
|
|
77521
|
-
const originalSize =
|
|
77522
|
-
|
|
77523
|
-
|
|
77524
|
-
|
|
77525
|
-
const isDefaultCol = isCol && size === DEFAULT_CELL_WIDTH;
|
|
77526
|
-
return [element, isDefaultCol ? undefined : size];
|
|
77527
|
-
}));
|
|
75595
|
+
const originalSize = {};
|
|
75596
|
+
for (const element of toRemove) {
|
|
75597
|
+
originalSize[element] = this.getters.getHeaderSize(cmd.sheetId, cmd.dimension, element);
|
|
75598
|
+
}
|
|
77528
75599
|
const target = [
|
|
77529
75600
|
{
|
|
77530
75601
|
left: isCol ? start + deltaCol : 0,
|
|
@@ -77568,11 +75639,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
77568
75639
|
for (const element of toRemove) {
|
|
77569
75640
|
const size = originalSize[element];
|
|
77570
75641
|
const currentSize = this.getters.getHeaderSize(cmd.sheetId, cmd.dimension, currentIndex);
|
|
77571
|
-
if (size
|
|
75642
|
+
if (size !== currentSize) {
|
|
77572
75643
|
resizingGroups[size] ??= [];
|
|
77573
75644
|
resizingGroups[size].push(currentIndex);
|
|
77574
|
-
currentIndex += 1;
|
|
77575
75645
|
}
|
|
75646
|
+
currentIndex += 1;
|
|
77576
75647
|
}
|
|
77577
75648
|
for (const size in resizingGroups) {
|
|
77578
75649
|
this.dispatch("RESIZE_COLUMNS_ROWS", {
|
|
@@ -79179,6 +77250,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
79179
77250
|
.add("table_ui_resize", TableResizeUI)
|
|
79180
77251
|
.add("datavalidation_insert", DataValidationInsertionPlugin)
|
|
79181
77252
|
.add("checkbox_toggle", CheckboxTogglePlugin)
|
|
77253
|
+
.add("dynamic_translate", DynamicTranslate)
|
|
79182
77254
|
.add("geo_features", GeoFeaturePlugin);
|
|
79183
77255
|
// Plugins which have a state, but which should not be shared in collaborative
|
|
79184
77256
|
const statefulUIPluginRegistry = new Registry()
|
|
@@ -80490,11 +78562,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
80490
78562
|
{ transform: "scale(0.8)", offset: 0.33 },
|
|
80491
78563
|
{ opacity: "0", transform: "scale(1)", offset: 1 },
|
|
80492
78564
|
];
|
|
80493
|
-
css /* scss */ `
|
|
80494
|
-
.o-ripple {
|
|
80495
|
-
z-index: 1;
|
|
80496
|
-
}
|
|
80497
|
-
`;
|
|
80498
78565
|
class RippleEffect extends owl.Component {
|
|
80499
78566
|
static template = "o-spreadsheet-RippleEffect";
|
|
80500
78567
|
static props = {
|
|
@@ -80666,59 +78733,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
80666
78733
|
}
|
|
80667
78734
|
}
|
|
80668
78735
|
|
|
80669
|
-
css /* scss */ `
|
|
80670
|
-
.o-sheet {
|
|
80671
|
-
padding: 0 15px;
|
|
80672
|
-
padding-right: 10px;
|
|
80673
|
-
height: ${DESKTOP_BOTTOMBAR_HEIGHT}px;
|
|
80674
|
-
border-left: 1px solid #c1c1c1;
|
|
80675
|
-
border-right: 1px solid #c1c1c1;
|
|
80676
|
-
margin-left: -1px;
|
|
80677
|
-
cursor: pointer;
|
|
80678
|
-
&:hover {
|
|
80679
|
-
background-color: rgba(0, 0, 0, 0.08);
|
|
80680
|
-
}
|
|
80681
|
-
|
|
80682
|
-
&.active {
|
|
80683
|
-
color: ${ACTION_COLOR};
|
|
80684
|
-
background-color: #ffffff;
|
|
80685
|
-
box-shadow: 0 1px 3px 1px rgba(60, 64, 67, 0.15);
|
|
80686
|
-
}
|
|
80687
|
-
|
|
80688
|
-
.o-sheet-icon {
|
|
80689
|
-
z-index: 1;
|
|
80690
|
-
|
|
80691
|
-
&:hover {
|
|
80692
|
-
background-color: rgba(0, 0, 0, 0.08);
|
|
80693
|
-
}
|
|
80694
|
-
}
|
|
80695
|
-
|
|
80696
|
-
.o-sheet-name {
|
|
80697
|
-
outline: none;
|
|
80698
|
-
padding: 2px 4px;
|
|
80699
|
-
|
|
80700
|
-
&.o-sheet-name-editable {
|
|
80701
|
-
border-radius: 2px;
|
|
80702
|
-
border: 2px solid mediumblue;
|
|
80703
|
-
/* negative margins so nothing moves when the border is added */
|
|
80704
|
-
margin-left: -2px;
|
|
80705
|
-
margin-right: -2px;
|
|
80706
|
-
}
|
|
80707
|
-
}
|
|
80708
|
-
|
|
80709
|
-
.o-sheet-color {
|
|
80710
|
-
bottom: 0;
|
|
80711
|
-
left: 0;
|
|
80712
|
-
height: 6px;
|
|
80713
|
-
z-index: 1;
|
|
80714
|
-
width: calc(100% - 1px);
|
|
80715
|
-
}
|
|
80716
|
-
}
|
|
80717
|
-
|
|
80718
|
-
.o-spreadshet-mobile .o-sheet {
|
|
80719
|
-
height: ${MOBILE_BOTTOMBAR_HEIGHT}px;
|
|
80720
|
-
}
|
|
80721
|
-
`;
|
|
80722
78736
|
class BottomBarSheet extends owl.Component {
|
|
80723
78737
|
static template = "o-spreadsheet-BottomBarSheet";
|
|
80724
78738
|
static props = {
|
|
@@ -80998,20 +79012,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
80998
79012
|
}
|
|
80999
79013
|
}
|
|
81000
79014
|
|
|
81001
|
-
// -----------------------------------------------------------------------------
|
|
81002
|
-
// SpreadSheet
|
|
81003
|
-
// -----------------------------------------------------------------------------
|
|
81004
|
-
css /* scss */ `
|
|
81005
|
-
.o-selection-statistic {
|
|
81006
|
-
margin-right: 20px;
|
|
81007
|
-
padding: 4px 4px 4px 8px;
|
|
81008
|
-
color: #333;
|
|
81009
|
-
cursor: pointer;
|
|
81010
|
-
&:hover {
|
|
81011
|
-
background-color: rgba(0, 0, 0, 0.08) !important;
|
|
81012
|
-
}
|
|
81013
|
-
}
|
|
81014
|
-
`;
|
|
81015
79015
|
class BottomBarStatistic extends owl.Component {
|
|
81016
79016
|
static template = "o-spreadsheet-BottomBarStatistic";
|
|
81017
79017
|
static props = {
|
|
@@ -81068,77 +79068,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
81068
79068
|
// SpreadSheet
|
|
81069
79069
|
// -----------------------------------------------------------------------------
|
|
81070
79070
|
const MENU_MAX_HEIGHT = 250;
|
|
81071
|
-
css /* scss */ `
|
|
81072
|
-
.o-spreadsheet-bottom-bar {
|
|
81073
|
-
background-color: ${BACKGROUND_GRAY_COLOR};
|
|
81074
|
-
padding-left: ${HEADER_WIDTH}px;
|
|
81075
|
-
font-size: 15px;
|
|
81076
|
-
border-top: 1px solid lightgrey;
|
|
81077
|
-
|
|
81078
|
-
.o-sheet-item {
|
|
81079
|
-
cursor: pointer;
|
|
81080
|
-
&:hover {
|
|
81081
|
-
background-color: rgba(0, 0, 0, 0.08);
|
|
81082
|
-
}
|
|
81083
|
-
}
|
|
81084
|
-
|
|
81085
|
-
.o-all-sheets {
|
|
81086
|
-
max-width: 70%;
|
|
81087
|
-
.o-bottom-bar-fade-out {
|
|
81088
|
-
background-image: linear-gradient(-90deg, #cfcfcf, transparent 1%);
|
|
81089
|
-
}
|
|
81090
|
-
|
|
81091
|
-
.o-bottom-bar-fade-in {
|
|
81092
|
-
z-index: 1;
|
|
81093
|
-
background-image: linear-gradient(90deg, #cfcfcf, transparent 1%);
|
|
81094
|
-
}
|
|
81095
|
-
|
|
81096
|
-
.o-sheet-list {
|
|
81097
|
-
overflow-y: hidden;
|
|
81098
|
-
overflow-x: auto;
|
|
81099
|
-
|
|
81100
|
-
&::-webkit-scrollbar {
|
|
81101
|
-
display: none; /* Chrome */
|
|
81102
|
-
}
|
|
81103
|
-
-ms-overflow-style: none; /* IE and Edge */
|
|
81104
|
-
scrollbar-width: none; /* Firefox */
|
|
81105
|
-
}
|
|
81106
|
-
}
|
|
81107
|
-
|
|
81108
|
-
.o-bottom-bar-arrows {
|
|
81109
|
-
.o-bottom-bar-arrow {
|
|
81110
|
-
cursor: pointer;
|
|
81111
|
-
&:hover:not([class*="o-disabled"]) {
|
|
81112
|
-
.o-icon {
|
|
81113
|
-
opacity: 0.9;
|
|
81114
|
-
}
|
|
81115
|
-
}
|
|
81116
|
-
|
|
81117
|
-
.o-icon {
|
|
81118
|
-
height: 18px;
|
|
81119
|
-
width: 18px;
|
|
81120
|
-
font-size: 18px;
|
|
81121
|
-
}
|
|
81122
|
-
}
|
|
81123
|
-
}
|
|
81124
|
-
}
|
|
81125
|
-
|
|
81126
|
-
.o-spreadsheet-mobile .o-spreadsheet-bottom-bar {
|
|
81127
|
-
padding-left: 0;
|
|
81128
|
-
|
|
81129
|
-
.add-sheet-container {
|
|
81130
|
-
order: 2;
|
|
81131
|
-
}
|
|
81132
|
-
|
|
81133
|
-
.o-add-sheet {
|
|
81134
|
-
margin-left: 0.5rem;
|
|
81135
|
-
}
|
|
81136
|
-
|
|
81137
|
-
.o-all-sheets {
|
|
81138
|
-
max-width: none;
|
|
81139
|
-
}
|
|
81140
|
-
}
|
|
81141
|
-
`;
|
|
81142
79071
|
class BottomBar extends owl.Component {
|
|
81143
79072
|
static template = "o-spreadsheet-BottomBar";
|
|
81144
79073
|
static props = { onClick: Function };
|
|
@@ -81394,12 +79323,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
81394
79323
|
}
|
|
81395
79324
|
}
|
|
81396
79325
|
|
|
81397
|
-
css /* scss */ `
|
|
81398
|
-
.o-dashboard-clickable-cell {
|
|
81399
|
-
position: absolute;
|
|
81400
|
-
cursor: pointer;
|
|
81401
|
-
}
|
|
81402
|
-
`;
|
|
81403
79326
|
class SpreadsheetDashboard extends owl.Component {
|
|
81404
79327
|
static template = "o-spreadsheet-SpreadsheetDashboard";
|
|
81405
79328
|
static props = { getGridSize: Function };
|
|
@@ -81491,27 +79414,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
81491
79414
|
}
|
|
81492
79415
|
}
|
|
81493
79416
|
|
|
81494
|
-
css /* scss */ `
|
|
81495
|
-
.o-header-group {
|
|
81496
|
-
.o-header-group-header {
|
|
81497
|
-
z-index: ${ComponentsImportance.HeaderGroupingButton};
|
|
81498
|
-
.o-group-fold-button {
|
|
81499
|
-
cursor: pointer;
|
|
81500
|
-
width: 15px;
|
|
81501
|
-
height: 15px;
|
|
81502
|
-
border: 1px solid ${HEADER_GROUPING_BORDER_COLOR};
|
|
81503
|
-
.o-icon {
|
|
81504
|
-
width: 7px;
|
|
81505
|
-
height: 7px;
|
|
81506
|
-
}
|
|
81507
|
-
|
|
81508
|
-
&:hover {
|
|
81509
|
-
border-color: #777;
|
|
81510
|
-
}
|
|
81511
|
-
}
|
|
81512
|
-
}
|
|
81513
|
-
}
|
|
81514
|
-
`;
|
|
81515
79417
|
class AbstractHeaderGroup extends owl.Component {
|
|
81516
79418
|
static template = "o-spreadsheet-HeaderGroup";
|
|
81517
79419
|
static props = {
|
|
@@ -81662,27 +79564,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
81662
79564
|
}
|
|
81663
79565
|
}
|
|
81664
79566
|
|
|
81665
|
-
css /* scss */ `
|
|
81666
|
-
.o-header-group-frozen-pane-border {
|
|
81667
|
-
&.o-group-rows {
|
|
81668
|
-
margin-top: -1px;
|
|
81669
|
-
border-bottom: 3px solid ${FROZEN_PANE_HEADER_BORDER_COLOR};
|
|
81670
|
-
}
|
|
81671
|
-
&.o-group-columns {
|
|
81672
|
-
margin-left: -1px;
|
|
81673
|
-
border-right: 3px solid ${FROZEN_PANE_HEADER_BORDER_COLOR};
|
|
81674
|
-
}
|
|
81675
|
-
}
|
|
81676
|
-
|
|
81677
|
-
.o-header-group-main-pane {
|
|
81678
|
-
&.o-group-rows {
|
|
81679
|
-
margin-top: -2px; /* Counteract o-header-group-frozen-pane-border offset */
|
|
81680
|
-
}
|
|
81681
|
-
&.o-group-columns {
|
|
81682
|
-
margin-left: -2px;
|
|
81683
|
-
}
|
|
81684
|
-
}
|
|
81685
|
-
`;
|
|
81686
79567
|
class HeaderGroupContainer extends owl.Component {
|
|
81687
79568
|
static template = "o-spreadsheet-HeaderGroupContainer";
|
|
81688
79569
|
static props = {
|
|
@@ -81761,121 +79642,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
81761
79642
|
};
|
|
81762
79643
|
}
|
|
81763
79644
|
|
|
81764
|
-
css /* scss */ `
|
|
81765
|
-
.o-sidePanel {
|
|
81766
|
-
display: flex;
|
|
81767
|
-
flex-direction: column;
|
|
81768
|
-
overflow-x: hidden;
|
|
81769
|
-
background-color: white;
|
|
81770
|
-
border: solid ${GRAY_300};
|
|
81771
|
-
border-width: 1px 0 0 1px;
|
|
81772
|
-
user-select: none;
|
|
81773
|
-
color: ${TEXT_BODY};
|
|
81774
|
-
|
|
81775
|
-
&.collapsed {
|
|
81776
|
-
padding: 8px;
|
|
81777
|
-
cursor: pointer;
|
|
81778
|
-
|
|
81779
|
-
.o-sidePanelTitle {
|
|
81780
|
-
writing-mode: vertical-rl;
|
|
81781
|
-
text-orientation: mixed;
|
|
81782
|
-
}
|
|
81783
|
-
}
|
|
81784
|
-
|
|
81785
|
-
.o-sidePanelTitle {
|
|
81786
|
-
line-height: 20px;
|
|
81787
|
-
font-size: 16px;
|
|
81788
|
-
}
|
|
81789
|
-
|
|
81790
|
-
.o-sidePanelHeader {
|
|
81791
|
-
padding: 8px;
|
|
81792
|
-
border-bottom: 1px solid ${GRAY_300};
|
|
81793
|
-
}
|
|
81794
|
-
|
|
81795
|
-
.o-sidePanelAction {
|
|
81796
|
-
padding: 5px 10px;
|
|
81797
|
-
cursor: pointer;
|
|
81798
|
-
|
|
81799
|
-
&.active {
|
|
81800
|
-
background-color: ${BUTTON_ACTIVE_BG};
|
|
81801
|
-
}
|
|
81802
|
-
|
|
81803
|
-
&:hover {
|
|
81804
|
-
background-color: ${BUTTON_HOVER_BG};
|
|
81805
|
-
}
|
|
81806
|
-
}
|
|
81807
|
-
.o-sidePanelBody-container {
|
|
81808
|
-
/* This overwrites the min-height: auto; of flex. Without this, a flex div cannot be smaller than its children */
|
|
81809
|
-
min-height: 0;
|
|
81810
|
-
}
|
|
81811
|
-
.o-sidePanelBody {
|
|
81812
|
-
overflow: auto;
|
|
81813
|
-
width: 100%;
|
|
81814
|
-
height: 100%;
|
|
81815
|
-
|
|
81816
|
-
.o-section {
|
|
81817
|
-
padding: 16px;
|
|
81818
|
-
|
|
81819
|
-
.o-section-title {
|
|
81820
|
-
font-weight: 500;
|
|
81821
|
-
margin-bottom: 5px;
|
|
81822
|
-
}
|
|
81823
|
-
|
|
81824
|
-
.o-section-subtitle {
|
|
81825
|
-
font-weight: 500;
|
|
81826
|
-
font-size: 13px;
|
|
81827
|
-
line-height: 14px;
|
|
81828
|
-
margin: 8px 0 4px 0;
|
|
81829
|
-
}
|
|
81830
|
-
|
|
81831
|
-
.o-subsection-left {
|
|
81832
|
-
display: inline-block;
|
|
81833
|
-
width: 47%;
|
|
81834
|
-
margin-right: 3%;
|
|
81835
|
-
}
|
|
81836
|
-
|
|
81837
|
-
.o-subsection-right {
|
|
81838
|
-
display: inline-block;
|
|
81839
|
-
width: 47%;
|
|
81840
|
-
margin-left: 3%;
|
|
81841
|
-
}
|
|
81842
|
-
}
|
|
81843
|
-
|
|
81844
|
-
.o-sidePanel-composer {
|
|
81845
|
-
color: ${TEXT_BODY};
|
|
81846
|
-
}
|
|
81847
|
-
}
|
|
81848
|
-
|
|
81849
|
-
.o-sidePanelButtons {
|
|
81850
|
-
display: flex;
|
|
81851
|
-
gap: 8px;
|
|
81852
|
-
}
|
|
81853
|
-
|
|
81854
|
-
.o-invalid {
|
|
81855
|
-
border-width: 2px;
|
|
81856
|
-
border-color: red;
|
|
81857
|
-
}
|
|
81858
|
-
|
|
81859
|
-
.o-sidePanel-handle-container {
|
|
81860
|
-
width: 8px;
|
|
81861
|
-
position: fixed;
|
|
81862
|
-
top: 50%;
|
|
81863
|
-
z-index: 1;
|
|
81864
|
-
}
|
|
81865
|
-
.o-sidePanel-handle {
|
|
81866
|
-
cursor: col-resize;
|
|
81867
|
-
color: #a9a9a9;
|
|
81868
|
-
.o-icon {
|
|
81869
|
-
height: 25px;
|
|
81870
|
-
margin-left: -5px;
|
|
81871
|
-
}
|
|
81872
|
-
}
|
|
81873
|
-
}
|
|
81874
|
-
|
|
81875
|
-
.o-fw-bold {
|
|
81876
|
-
font-weight: 500;
|
|
81877
|
-
}
|
|
81878
|
-
`;
|
|
81879
79645
|
class SidePanel extends owl.Component {
|
|
81880
79646
|
static template = "o-spreadsheet-SidePanel";
|
|
81881
79647
|
static props = {
|
|
@@ -82050,11 +79816,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
82050
79816
|
}
|
|
82051
79817
|
}
|
|
82052
79818
|
|
|
82053
|
-
css `
|
|
82054
|
-
.o-small-composer {
|
|
82055
|
-
z-index: ${ComponentsImportance.TopBarComposer};
|
|
82056
|
-
}
|
|
82057
|
-
`;
|
|
82058
79819
|
class SmallBottomBar extends owl.Component {
|
|
82059
79820
|
static components = { Composer, BottomBar, Ripple, RibbonMenu };
|
|
82060
79821
|
static template = "o-spreadsheet-SmallBottomBar";
|
|
@@ -82142,36 +79903,12 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
82142
79903
|
|
|
82143
79904
|
const COMPOSER_MAX_HEIGHT = 300;
|
|
82144
79905
|
/* svg free of use from https://uxwing.com/formula-fx-icon/ */
|
|
82145
|
-
|
|
82146
|
-
|
|
82147
|
-
<
|
|
82148
|
-
|
|
82149
|
-
|
|
82150
|
-
|
|
82151
|
-
.o-topbar-composer-container {
|
|
82152
|
-
height: ${DESKTOP_TOPBAR_TOOLBAR_HEIGHT}px;
|
|
82153
|
-
}
|
|
82154
|
-
|
|
82155
|
-
.o-topbar-composer {
|
|
82156
|
-
height: fit-content;
|
|
82157
|
-
margin-top: -1px;
|
|
82158
|
-
margin-bottom: -1px;
|
|
82159
|
-
border: 1px solid;
|
|
82160
|
-
font-family: ${DEFAULT_FONT};
|
|
82161
|
-
|
|
82162
|
-
/* In readonly we always show the fx icon if the composer is empty, not matter the focus */
|
|
82163
|
-
.o-composer:empty:not(:focus):not(.active)::before,
|
|
82164
|
-
&.o-topbar-composer-readonly .o-composer:empty::before {
|
|
82165
|
-
content: url("data:image/svg+xml,${encodeURIComponent(FX_SVG)}");
|
|
82166
|
-
position: relative;
|
|
82167
|
-
top: 20%;
|
|
82168
|
-
}
|
|
82169
|
-
}
|
|
82170
|
-
|
|
82171
|
-
.user-select-text {
|
|
82172
|
-
user-select: text;
|
|
82173
|
-
}
|
|
82174
|
-
`;
|
|
79906
|
+
// FIXME This svg is hardcoded in the css file. We should find a better way to handle it.
|
|
79907
|
+
// const FX_SVG = /*xml*/ `
|
|
79908
|
+
// <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 121.8 122.9' width='16' height='16' focusable='false'>
|
|
79909
|
+
// <path d='m28 34-4 5v2h10l-6 40c-4 22-6 28-7 30-2 2-3 3-5 3-3 0-7-2-9-4H4c-2 2-4 4-4 7s4 6 8 6 9-2 15-8c8-7 13-17 18-39l7-35 13-1 3-6H49c4-23 7-27 11-27 2 0 5 2 8 6h4c1-1 4-4 4-7 0-2-3-6-9-6-5 0-13 4-20 10-6 7-9 14-11 24h-8zm41 16c4-5 7-7 8-7s2 1 5 9l3 12c-7 11-12 17-16 17l-3-1-2-1c-3 0-6 3-6 7s3 7 7 7c6 0 12-6 22-23l3 10c3 9 6 13 10 13 5 0 11-4 18-15l-3-4c-4 6-7 8-8 8-2 0-4-3-6-10l-5-15 8-10 6-4 3 1 3 2c2 0 6-3 6-7s-2-7-6-7c-6 0-11 5-21 20l-2-6c-3-9-5-14-9-14-5 0-12 6-18 15l3 3z' fill='#BDBDBD'/>
|
|
79910
|
+
// </svg>
|
|
79911
|
+
// `;
|
|
82175
79912
|
class TopBarComposer extends owl.Component {
|
|
82176
79913
|
static template = "o-spreadsheet-TopBarComposer";
|
|
82177
79914
|
static props = {};
|
|
@@ -82207,18 +79944,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
82207
79944
|
style.height = this.focus === "inactive" ? `${DESKTOP_TOPBAR_TOOLBAR_HEIGHT}px` : "fit-content";
|
|
82208
79945
|
return cssPropertiesToCss(style);
|
|
82209
79946
|
}
|
|
82210
|
-
get containerStyle() {
|
|
82211
|
-
if (this.focus === "inactive") {
|
|
82212
|
-
return cssPropertiesToCss({
|
|
82213
|
-
"border-color": SEPARATOR_COLOR,
|
|
82214
|
-
"border-right": "none",
|
|
82215
|
-
});
|
|
82216
|
-
}
|
|
82217
|
-
return cssPropertiesToCss({
|
|
82218
|
-
"border-color": SELECTION_BORDER_COLOR,
|
|
82219
|
-
"z-index": String(ComponentsImportance.TopBarComposer),
|
|
82220
|
-
});
|
|
82221
|
-
}
|
|
82222
79947
|
onFocus(selection) {
|
|
82223
79948
|
this.composerFocusStore.focusComposer(this.composerInterface, { selection });
|
|
82224
79949
|
}
|
|
@@ -82308,79 +80033,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
82308
80033
|
// -----------------------------------------------------------------------------
|
|
82309
80034
|
// Border Editor
|
|
82310
80035
|
// -----------------------------------------------------------------------------
|
|
82311
|
-
css /* scss */ `
|
|
82312
|
-
.o-border-selector {
|
|
82313
|
-
padding: 4px;
|
|
82314
|
-
background-color: white;
|
|
82315
|
-
|
|
82316
|
-
.o-divider {
|
|
82317
|
-
border-right: 1px solid ${GRAY_300};
|
|
82318
|
-
margin: 0 6px;
|
|
82319
|
-
}
|
|
82320
|
-
|
|
82321
|
-
.o-border-selector-section {
|
|
82322
|
-
.o-dropdown-line {
|
|
82323
|
-
height: 30px;
|
|
82324
|
-
margin: 1px;
|
|
82325
|
-
.o-line-item {
|
|
82326
|
-
padding: 4px;
|
|
82327
|
-
width: 26px;
|
|
82328
|
-
height: 26px;
|
|
82329
|
-
&.active {
|
|
82330
|
-
background-color: ${BUTTON_ACTIVE_BG};
|
|
82331
|
-
}
|
|
82332
|
-
}
|
|
82333
|
-
}
|
|
82334
|
-
.o-border-style-tool {
|
|
82335
|
-
padding: 0px 3px;
|
|
82336
|
-
margin: 2px;
|
|
82337
|
-
height: 25px;
|
|
82338
|
-
}
|
|
82339
|
-
}
|
|
82340
|
-
}
|
|
82341
|
-
|
|
82342
|
-
.o-border-style-dropdown {
|
|
82343
|
-
background: #ffffff;
|
|
82344
|
-
padding: 4px;
|
|
82345
|
-
.o-dropdown-line {
|
|
82346
|
-
}
|
|
82347
|
-
.o-style-preview {
|
|
82348
|
-
margin: 7px 5px 7px 5px;
|
|
82349
|
-
width: 60px;
|
|
82350
|
-
height: 5px;
|
|
82351
|
-
}
|
|
82352
|
-
.o-style-thin {
|
|
82353
|
-
border-bottom: 1px solid #000000;
|
|
82354
|
-
}
|
|
82355
|
-
.o-style-medium {
|
|
82356
|
-
border-bottom: 2px solid #000000;
|
|
82357
|
-
}
|
|
82358
|
-
.o-style-thick {
|
|
82359
|
-
border-bottom: 3px solid #000000;
|
|
82360
|
-
}
|
|
82361
|
-
.o-style-dashed {
|
|
82362
|
-
border-bottom: 1px dashed #000000;
|
|
82363
|
-
}
|
|
82364
|
-
.o-style-dotted {
|
|
82365
|
-
border-bottom: 1px dotted #000000;
|
|
82366
|
-
}
|
|
82367
|
-
.o-dropdown-border-type {
|
|
82368
|
-
cursor: pointer;
|
|
82369
|
-
&:not(.o-disabled):not(.active):hover {
|
|
82370
|
-
background-color: ${BUTTON_HOVER_BG};
|
|
82371
|
-
}
|
|
82372
|
-
}
|
|
82373
|
-
.o-dropdown-border-check {
|
|
82374
|
-
width: 20px;
|
|
82375
|
-
font-size: 12px;
|
|
82376
|
-
}
|
|
82377
|
-
.o-border-picker-button {
|
|
82378
|
-
padding: 0px !important;
|
|
82379
|
-
margin: 5px 0px 0px 0px !important;
|
|
82380
|
-
height: 25px !important;
|
|
82381
|
-
}
|
|
82382
|
-
}
|
|
82383
|
-
`;
|
|
82384
80036
|
class BorderEditor extends owl.Component {
|
|
82385
80037
|
static template = "o-spreadsheet-BorderEditor";
|
|
82386
80038
|
static props = {
|
|
@@ -82931,90 +80583,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
82931
80583
|
// -----------------------------------------------------------------------------
|
|
82932
80584
|
// TopBar
|
|
82933
80585
|
// -----------------------------------------------------------------------------
|
|
82934
|
-
css /* scss */ `
|
|
82935
|
-
.o-topbar-divider {
|
|
82936
|
-
border-right: 1px solid ${SEPARATOR_COLOR};
|
|
82937
|
-
width: 0;
|
|
82938
|
-
margin: 0 6px;
|
|
82939
|
-
height: 30px;
|
|
82940
|
-
}
|
|
82941
|
-
|
|
82942
|
-
.o-toolbar-button {
|
|
82943
|
-
height: 30px;
|
|
82944
|
-
}
|
|
82945
|
-
|
|
82946
|
-
.o-spreadsheet-topbar {
|
|
82947
|
-
line-height: 1.2;
|
|
82948
|
-
font-size: 14px;
|
|
82949
|
-
font-weight: 500;
|
|
82950
|
-
background-color: #fff;
|
|
82951
|
-
|
|
82952
|
-
.o-topbar-top {
|
|
82953
|
-
border-bottom: 1px solid ${SEPARATOR_COLOR};
|
|
82954
|
-
padding: 2px 10px;
|
|
82955
|
-
|
|
82956
|
-
/* Menus */
|
|
82957
|
-
.o-topbar-topleft {
|
|
82958
|
-
.o-topbar-menu {
|
|
82959
|
-
padding: 4px 6px;
|
|
82960
|
-
margin: 0 2px;
|
|
82961
|
-
|
|
82962
|
-
&.active {
|
|
82963
|
-
background-color: ${BUTTON_ACTIVE_BG};
|
|
82964
|
-
color: ${BUTTON_ACTIVE_TEXT_COLOR};
|
|
82965
|
-
}
|
|
82966
|
-
}
|
|
82967
|
-
}
|
|
82968
|
-
}
|
|
82969
|
-
|
|
82970
|
-
.irregularity-map {
|
|
82971
|
-
border-top: 1px solid ${SEPARATOR_COLOR};
|
|
82972
|
-
height: ${DESKTOP_TOPBAR_TOOLBAR_HEIGHT}px;
|
|
82973
|
-
|
|
82974
|
-
.alert-info {
|
|
82975
|
-
border-left: 3px solid ${ALERT_INFO_BORDER};
|
|
82976
|
-
}
|
|
82977
|
-
}
|
|
82978
|
-
|
|
82979
|
-
.o-topbar-composer {
|
|
82980
|
-
flex-grow: 1;
|
|
82981
|
-
}
|
|
82982
|
-
|
|
82983
|
-
/* Toolbar */
|
|
82984
|
-
.o-topbar-toolbar {
|
|
82985
|
-
height: ${DESKTOP_TOPBAR_TOOLBAR_HEIGHT}px;
|
|
82986
|
-
|
|
82987
|
-
.o-readonly-toolbar {
|
|
82988
|
-
background-color: ${BACKGROUND_HEADER_COLOR};
|
|
82989
|
-
padding-left: 18px;
|
|
82990
|
-
padding-right: 18px;
|
|
82991
|
-
}
|
|
82992
|
-
|
|
82993
|
-
/* Toolbar */
|
|
82994
|
-
.o-toolbar-tools {
|
|
82995
|
-
cursor: default;
|
|
82996
|
-
}
|
|
82997
|
-
}
|
|
82998
|
-
}
|
|
82999
|
-
|
|
83000
|
-
.o-spreadsheet-mobile {
|
|
83001
|
-
.o-topbar-toolbar {
|
|
83002
|
-
height: ${MOBILE_TOPBAR_TOOLBAR_HEIGHT}px;
|
|
83003
|
-
}
|
|
83004
|
-
.o-topbar-divider {
|
|
83005
|
-
border-width: 2px;
|
|
83006
|
-
border-radius: 4px;
|
|
83007
|
-
}
|
|
83008
|
-
|
|
83009
|
-
.o-toolbar-button {
|
|
83010
|
-
height: 35px;
|
|
83011
|
-
width: 31px;
|
|
83012
|
-
.o-toolbar-button.o-mobile-disabled * {
|
|
83013
|
-
color: ${DISABLED_TEXT_COLOR};
|
|
83014
|
-
cursor: not-allowed;
|
|
83015
|
-
}
|
|
83016
|
-
}
|
|
83017
|
-
`;
|
|
83018
80586
|
class TopBar extends owl.Component {
|
|
83019
80587
|
static template = "o-spreadsheet-TopBar";
|
|
83020
80588
|
static props = {
|
|
@@ -83288,251 +80856,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
83288
80856
|
}
|
|
83289
80857
|
}
|
|
83290
80858
|
|
|
83291
|
-
// -----------------------------------------------------------------------------
|
|
83292
|
-
// SpreadSheet
|
|
83293
|
-
// -----------------------------------------------------------------------------
|
|
83294
|
-
const CARET_DOWN_SVG = /*xml*/ `
|
|
83295
|
-
<svg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'>
|
|
83296
|
-
<polygon fill='%23374151' points='3.5 4 7 0 0 0'/>
|
|
83297
|
-
</svg>
|
|
83298
|
-
`;
|
|
83299
|
-
css /* scss */ `
|
|
83300
|
-
.o-spreadsheet {
|
|
83301
|
-
position: relative;
|
|
83302
|
-
display: grid;
|
|
83303
|
-
font-size: 14px;
|
|
83304
|
-
|
|
83305
|
-
.text-muted {
|
|
83306
|
-
color: ${TEXT_BODY_MUTED} !important;
|
|
83307
|
-
}
|
|
83308
|
-
.o-disabled {
|
|
83309
|
-
opacity: 0.4;
|
|
83310
|
-
cursor: default;
|
|
83311
|
-
pointer-events: none;
|
|
83312
|
-
}
|
|
83313
|
-
|
|
83314
|
-
&,
|
|
83315
|
-
*,
|
|
83316
|
-
*:before,
|
|
83317
|
-
*:after {
|
|
83318
|
-
/* rtl not supported ATM */
|
|
83319
|
-
direction: ltr;
|
|
83320
|
-
}
|
|
83321
|
-
.o-separator {
|
|
83322
|
-
border-bottom: ${MENU_SEPARATOR_BORDER_WIDTH}px solid ${SEPARATOR_COLOR};
|
|
83323
|
-
margin-top: ${MENU_SEPARATOR_PADDING}px;
|
|
83324
|
-
margin-bottom: ${MENU_SEPARATOR_PADDING}px;
|
|
83325
|
-
}
|
|
83326
|
-
.o-hoverable-button {
|
|
83327
|
-
border-radius: 2px;
|
|
83328
|
-
cursor: pointer;
|
|
83329
|
-
.o-icon {
|
|
83330
|
-
color: ${TEXT_BODY};
|
|
83331
|
-
}
|
|
83332
|
-
&:not(.o-disabled):not(.active):hover {
|
|
83333
|
-
background-color: ${BUTTON_HOVER_BG};
|
|
83334
|
-
color: ${BUTTON_HOVER_TEXT_COLOR};
|
|
83335
|
-
.o-icon {
|
|
83336
|
-
color: ${BUTTON_HOVER_TEXT_COLOR};
|
|
83337
|
-
}
|
|
83338
|
-
}
|
|
83339
|
-
&.active {
|
|
83340
|
-
background-color: ${BUTTON_ACTIVE_BG};
|
|
83341
|
-
color: ${BUTTON_ACTIVE_TEXT_COLOR};
|
|
83342
|
-
.o-icon {
|
|
83343
|
-
color: ${BUTTON_ACTIVE_TEXT_COLOR};
|
|
83344
|
-
}
|
|
83345
|
-
}
|
|
83346
|
-
}
|
|
83347
|
-
|
|
83348
|
-
.o-grid-container {
|
|
83349
|
-
display: grid;
|
|
83350
|
-
background-color: ${HEADER_GROUPING_BACKGROUND_COLOR};
|
|
83351
|
-
|
|
83352
|
-
.o-top-left {
|
|
83353
|
-
border: 1px solid ${GRID_BORDER_COLOR};
|
|
83354
|
-
margin-bottom: -1px;
|
|
83355
|
-
margin-right: -1px;
|
|
83356
|
-
}
|
|
83357
|
-
|
|
83358
|
-
.o-column-groups {
|
|
83359
|
-
grid-column-start: 2;
|
|
83360
|
-
border-top: 1px solid ${GRID_BORDER_COLOR};
|
|
83361
|
-
}
|
|
83362
|
-
|
|
83363
|
-
.o-row-groups {
|
|
83364
|
-
grid-row-start: 2;
|
|
83365
|
-
}
|
|
83366
|
-
|
|
83367
|
-
.o-group-grid {
|
|
83368
|
-
border-top: 1px solid ${GRID_BORDER_COLOR};
|
|
83369
|
-
border-left: 1px solid ${GRID_BORDER_COLOR};
|
|
83370
|
-
}
|
|
83371
|
-
}
|
|
83372
|
-
|
|
83373
|
-
.o-input {
|
|
83374
|
-
min-width: 0px;
|
|
83375
|
-
padding: 1px 0;
|
|
83376
|
-
width: 100%;
|
|
83377
|
-
outline: none;
|
|
83378
|
-
border-color: ${GRAY_300};
|
|
83379
|
-
color: ${GRAY_900};
|
|
83380
|
-
|
|
83381
|
-
&::placeholder {
|
|
83382
|
-
opacity: 0.5;
|
|
83383
|
-
}
|
|
83384
|
-
&:focus {
|
|
83385
|
-
border-color: ${ACTION_COLOR};
|
|
83386
|
-
}
|
|
83387
|
-
}
|
|
83388
|
-
|
|
83389
|
-
select.o-input {
|
|
83390
|
-
cursor: pointer;
|
|
83391
|
-
border-width: 0 0 1px 0;
|
|
83392
|
-
padding: 1px 6px 1px 0px;
|
|
83393
|
-
|
|
83394
|
-
appearance: none;
|
|
83395
|
-
-webkit-appearance: none;
|
|
83396
|
-
-moz-appearance: none;
|
|
83397
|
-
background: transparent url("data:image/svg+xml,${encodeURIComponent(CARET_DOWN_SVG)}")
|
|
83398
|
-
no-repeat right center;
|
|
83399
|
-
text-overflow: ellipsis;
|
|
83400
|
-
|
|
83401
|
-
&:disabled {
|
|
83402
|
-
color: ${DISABLED_TEXT_COLOR};
|
|
83403
|
-
opacity: 0.4;
|
|
83404
|
-
cursor: default;
|
|
83405
|
-
}
|
|
83406
|
-
}
|
|
83407
|
-
|
|
83408
|
-
.o-input[type="text"] {
|
|
83409
|
-
border-width: 0 0 1px 0;
|
|
83410
|
-
}
|
|
83411
|
-
|
|
83412
|
-
.o-input[type="number"],
|
|
83413
|
-
.o-number-input {
|
|
83414
|
-
border-width: 0 0 1px 0;
|
|
83415
|
-
/* Remove number input arrows */
|
|
83416
|
-
appearance: textfield;
|
|
83417
|
-
&::-webkit-outer-spin-button,
|
|
83418
|
-
&::-webkit-inner-spin-button {
|
|
83419
|
-
-webkit-appearance: none;
|
|
83420
|
-
margin: 0;
|
|
83421
|
-
}
|
|
83422
|
-
}
|
|
83423
|
-
}
|
|
83424
|
-
|
|
83425
|
-
.o-two-columns {
|
|
83426
|
-
grid-column: 1 / 3;
|
|
83427
|
-
}
|
|
83428
|
-
|
|
83429
|
-
.o-text-icon {
|
|
83430
|
-
vertical-align: middle;
|
|
83431
|
-
}
|
|
83432
|
-
`;
|
|
83433
|
-
// -----------------------------------------------------------------------------
|
|
83434
|
-
// GRID STYLE
|
|
83435
|
-
// -----------------------------------------------------------------------------
|
|
83436
|
-
css /* scss */ `
|
|
83437
|
-
.o-grid {
|
|
83438
|
-
position: relative;
|
|
83439
|
-
overflow: hidden;
|
|
83440
|
-
background-color: ${BACKGROUND_GRAY_COLOR};
|
|
83441
|
-
&:focus {
|
|
83442
|
-
outline: none;
|
|
83443
|
-
}
|
|
83444
|
-
|
|
83445
|
-
> canvas {
|
|
83446
|
-
box-sizing: content-box;
|
|
83447
|
-
border-bottom: 1px solid #e2e3e3;
|
|
83448
|
-
border-right: 1px solid #e2e3e3;
|
|
83449
|
-
}
|
|
83450
|
-
|
|
83451
|
-
.o-grid-overlay {
|
|
83452
|
-
position: absolute;
|
|
83453
|
-
outline: none;
|
|
83454
|
-
}
|
|
83455
|
-
}
|
|
83456
|
-
|
|
83457
|
-
.o-button {
|
|
83458
|
-
border: 1px solid;
|
|
83459
|
-
border-radius: 4px;
|
|
83460
|
-
font-weight: 500;
|
|
83461
|
-
font-size: 14px;
|
|
83462
|
-
height: 32px;
|
|
83463
|
-
line-height: 16px;
|
|
83464
|
-
flex-grow: 1;
|
|
83465
|
-
background-color: ${BUTTON_BG};
|
|
83466
|
-
border: 1px solid ${GRAY_200};
|
|
83467
|
-
color: ${TEXT_BODY};
|
|
83468
|
-
|
|
83469
|
-
&:disabled {
|
|
83470
|
-
color: ${DISABLED_TEXT_COLOR};
|
|
83471
|
-
}
|
|
83472
|
-
|
|
83473
|
-
&.primary {
|
|
83474
|
-
background-color: ${PRIMARY_BUTTON_BG};
|
|
83475
|
-
border-color: ${PRIMARY_BUTTON_BG};
|
|
83476
|
-
color: #fff;
|
|
83477
|
-
&:hover:enabled {
|
|
83478
|
-
color: #fff;
|
|
83479
|
-
background-color: ${PRIMARY_BUTTON_HOVER_BG};
|
|
83480
|
-
}
|
|
83481
|
-
&:active:enabled {
|
|
83482
|
-
background-color: ${PRIMARY_BUTTON_ACTIVE_BG};
|
|
83483
|
-
color: ${PRIMARY_BUTTON_BG};
|
|
83484
|
-
}
|
|
83485
|
-
&.o-disabled,
|
|
83486
|
-
&:disabled {
|
|
83487
|
-
opacity: 0.5;
|
|
83488
|
-
}
|
|
83489
|
-
}
|
|
83490
|
-
|
|
83491
|
-
&:hover:enabled {
|
|
83492
|
-
color: ${BUTTON_HOVER_TEXT_COLOR};
|
|
83493
|
-
background-color: ${BUTTON_HOVER_BG};
|
|
83494
|
-
}
|
|
83495
|
-
&:active:enabled {
|
|
83496
|
-
color: ${BUTTON_ACTIVE_TEXT_COLOR};
|
|
83497
|
-
background-color: ${BUTTON_ACTIVE_BG};
|
|
83498
|
-
}
|
|
83499
|
-
|
|
83500
|
-
&.o-disabled,
|
|
83501
|
-
&:disabled {
|
|
83502
|
-
opacity: 0.8;
|
|
83503
|
-
}
|
|
83504
|
-
|
|
83505
|
-
&.o-button-danger:hover {
|
|
83506
|
-
color: #ffffff;
|
|
83507
|
-
background: ${ALERT_DANGER_BORDER};
|
|
83508
|
-
}
|
|
83509
|
-
}
|
|
83510
|
-
|
|
83511
|
-
.o-button-link {
|
|
83512
|
-
cursor: pointer;
|
|
83513
|
-
text-decoration: none;
|
|
83514
|
-
color: ${ACTION_COLOR};
|
|
83515
|
-
font-weight: 500;
|
|
83516
|
-
&:hover,
|
|
83517
|
-
&:active {
|
|
83518
|
-
color: ${ACTION_COLOR_HOVER};
|
|
83519
|
-
}
|
|
83520
|
-
}
|
|
83521
|
-
|
|
83522
|
-
.o-button-icon {
|
|
83523
|
-
cursor: pointer;
|
|
83524
|
-
color: ${TEXT_BODY_MUTED};
|
|
83525
|
-
font-weight: 500;
|
|
83526
|
-
&:hover,
|
|
83527
|
-
&:active {
|
|
83528
|
-
color: ${TEXT_BODY};
|
|
83529
|
-
}
|
|
83530
|
-
}
|
|
83531
|
-
|
|
83532
|
-
.o-spreadsheet-bottombar-wrapper {
|
|
83533
|
-
z-index: ${ComponentsImportance.ScrollBar + 1};
|
|
83534
|
-
}
|
|
83535
|
-
`;
|
|
83536
80859
|
class Spreadsheet extends owl.Component {
|
|
83537
80860
|
static template = "o-spreadsheet-Spreadsheet";
|
|
83538
80861
|
static props = {
|
|
@@ -88389,6 +85712,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
88389
85712
|
exports.coreTypes = coreTypes;
|
|
88390
85713
|
exports.findCellInNewZone = findCellInNewZone;
|
|
88391
85714
|
exports.functionCache = functionCache;
|
|
85715
|
+
exports.getCaretDownSvg = getCaretDownSvg;
|
|
85716
|
+
exports.getCaretUpSvg = getCaretUpSvg;
|
|
88392
85717
|
exports.helpers = helpers;
|
|
88393
85718
|
exports.hooks = hooks;
|
|
88394
85719
|
exports.invalidateCFEvaluationCommands = invalidateCFEvaluationCommands;
|
|
@@ -88409,9 +85734,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
88409
85734
|
exports.tokenize = tokenize;
|
|
88410
85735
|
|
|
88411
85736
|
|
|
88412
|
-
__info__.version = "19.1.0-alpha.
|
|
88413
|
-
__info__.date = "2025-09-
|
|
88414
|
-
__info__.hash = "
|
|
85737
|
+
__info__.version = "19.1.0-alpha.2";
|
|
85738
|
+
__info__.date = "2025-09-19T07:26:49.306Z";
|
|
85739
|
+
__info__.hash = "8cc543d";
|
|
88415
85740
|
|
|
88416
85741
|
|
|
88417
85742
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|