[IMP] spreadsheet: update o_spreadsheet to latest version

https://github.com/odoo/o-spreadsheet/commit/fd4cd7cf [FIX] style: use cell computed style to compute the text width
https://github.com/odoo/o-spreadsheet/commit/d0f02506 [IMP] link: do not display hover in dashboard mode
https://github.com/odoo/o-spreadsheet/commit/adc180a9 [IMP] InteractiveTests: Moved sort interactive tests to ui helper tests
https://github.com/odoo/o-spreadsheet/commit/e2f1f436 [IMP] menu_items_actions: default chart title
https://github.com/odoo/o-spreadsheet/commit/f19fdbfa [FIX] composer: ctrl clears topbar composer selection
https://github.com/odoo/o-spreadsheet/commit/c4ec1d78 [IMP] selection: dont select chart when it's updated
https://github.com/odoo/o-spreadsheet/commit/14b899ab [FIX] CF: Fix preview test for single color cf
https://github.com/odoo/o-spreadsheet/commit/5de0414b [FIX] charts: duplicating a sheet preserves figure dimensions
https://github.com/odoo/o-spreadsheet/commit/fe2e93f0 [FIX] scorecard: use evaluated format for baseline value

closes odoo/odoo#100049

Signed-off-by: Pierre Rousseau (pro) <pro@odoo.com>
This commit is contained in:
Rémi Rahir
2022-09-13 10:30:26 +02:00
parent e22b681bac
commit 19295506fd
2 changed files with 54 additions and 30 deletions
@@ -3550,7 +3550,8 @@
const LinkCellPopoverBuilder = {
onHover: (position, getters) => {
const cell = getters.getCell(getters.getActiveSheetId(), position.col, position.row);
const shouldDisplayLink = (cell === null || cell === void 0 ? void 0 : cell.isLink()) &&
const shouldDisplayLink = !getters.isDashboard() &&
(cell === null || cell === void 0 ? void 0 : cell.isLink()) &&
getters.isVisibleInViewport(position.col, position.row, getters.getActiveViewport());
if (!shouldDisplayLink)
return { isOpen: false };
@@ -4585,13 +4586,24 @@
x: left + Math.max(0, (width - DEFAULT_FIGURE_WIDTH) / 2),
y: top + Math.max(0, (height - DEFAULT_FIGURE_HEIGHT) / 2),
}; // Position at the center of the viewport
let dataSetsHaveTitle = false;
for (let x = dataSetZone.left; x <= dataSetZone.right; x++) {
const cell = env.model.getters.getCell(sheetId, x, zone.top);
if (cell && cell.evaluated.type !== CellValueType.number) {
dataSetsHaveTitle = true;
break;
}
let title = "";
const cells = env.model.getters.getCellsInZone(sheetId, {
...dataSetZone,
bottom: dataSetZone.top,
});
const dataSetsHaveTitle = !!cells.find((cell) => cell && cell.evaluated.type !== CellValueType.number);
if (dataSetsHaveTitle) {
const texts = cells.reduce((acc, cell) => {
const text = cell && cell.evaluated.type !== CellValueType.error && env.model.getters.getCellText(cell);
if (text) {
acc.push(text);
}
return acc;
}, []);
const lastElement = texts.splice(-1)[0];
title = texts.join(", ");
if (lastElement)
title += (title ? " " + env._t("and") + " " : "") + lastElement;
}
if (zone.left !== zone.right) {
labelRange = zoneToXc({
@@ -4607,7 +4619,7 @@
position,
size,
definition: {
title: "",
title,
dataSets,
labelRange,
type: "bar",
@@ -6042,18 +6054,15 @@
return baseline.formattedValue;
}
else {
let diff = (keyValue === null || keyValue === void 0 ? void 0 : keyValue.value) - baselineEvaluated.value;
let diff = keyValue.value - baselineEvaluated.value;
if (baselineMode === "percentage") {
diff = (diff / baselineEvaluated.value) * 100;
}
let baselineStr = Math.abs(parseFloat(diff.toFixed(2))).toLocaleString();
if (baselineMode === "percentage") {
baselineStr += "%";
if (baselineMode !== "percentage" && baselineEvaluated.format) {
return formatValue(diff, baselineEvaluated.format);
}
else if (baseline.format) {
baselineStr = formatValue(diff, baseline.format);
}
return baselineStr;
const baselineStr = Math.abs(parseFloat(diff.toFixed(2))).toLocaleString();
return baselineMode === "percentage" ? baselineStr + "%" : baselineStr;
}
}
function getBaselineColor(baseline, baselineMode, keyValue, colorUp, colorDown) {
@@ -17324,6 +17333,8 @@
argToFocus: 0,
});
this.isKeyStillDown = false;
/** Should be true if a mousedown was called on the composer, and the mouseUp still hasn't been handled */
this.mouseDownActive = false;
this.borderStyle = `box-shadow: 0 1px 4px 3px rgba(60, 64, 67, 0.15);`;
// we can't allow input events to be triggered while we remove and add back the content of the composer in processContent
this.shouldProcessInputEvents = false;
@@ -17514,9 +17525,17 @@
// not main button, probably a context menu
return;
}
this.contentHelper.removeSelection();
if (this.props.focus === "inactive") {
const newSelection = this.contentHelper.getCurrentSelection();
this.props.onComposerContentFocused(newSelection);
}
else {
this.contentHelper.removeSelection();
this.mouseDownActive = true;
}
}
onClick() {
this.mouseDownActive = false;
if (this.env.model.getters.isReadonly()) {
return;
}
@@ -17529,6 +17548,11 @@
this.processTokenAtCursor();
}
onBlur() {
if (this.mouseDownActive && this.props.focus !== "inactive") {
const newSelection = this.contentHelper.getCurrentSelection();
this.env.model.dispatch("CHANGE_COMPOSER_CURSOR_SELECTION", newSelection);
this.mouseDownActive = false;
}
this.isKeyStillDown = false;
}
onCompleted(text) {
@@ -24633,7 +24657,7 @@
// TODO:
// This is not really correct, it should be the role of figures to
// duplicate a figure.
this.addFigure(id, cmd.sheetIdTo, { x: fig.x, y: fig.y });
this.addFigure(id, cmd.sheetIdTo, { x: fig.x, y: fig.y }, { width: fig.width, height: fig.height });
this.history.update("charts", id, chart);
}
}
@@ -30379,7 +30403,6 @@
this.onMoveElements(cmd);
}
break;
case "UPDATE_CHART":
case "SELECT_FIGURE":
this.selectedFigureId = cmd.id;
break;
@@ -32062,7 +32085,8 @@
}
getTextWidth(cell) {
const text = this.getters.getCellText(cell, this.getters.shouldShowFormulas());
return computeTextWidth(this.ctx, text, this.getters.getCellStyle(cell));
const { sheetId, col, row } = this.getters.getCellPosition(cell.id);
return computeTextWidth(this.ctx, text, this.getters.getCellComputedStyle(sheetId, col, row));
}
getCellText(cell, showFormula = false) {
if (showFormula && (cell.isFormula() || cell.evaluated.type === CellValueType.error)) {
@@ -37556,8 +37580,8 @@
Object.defineProperty(exports, '__esModule', { value: true });
exports.__info__.version = '2.0.0';
exports.__info__.date = '2022-09-09T12:45:57.973Z';
exports.__info__.hash = 'a5236ad';
exports.__info__.date = '2022-09-13T07:37:09.243Z';
exports.__info__.hash = 'fd4cd7c';
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
//# sourceMappingURL=o_spreadsheet.js.map
//# sourceMappingURL=o_spreadsheet.js.map
@@ -1993,12 +1993,12 @@
t-attf-style="font-weight:{{currentStyle.bold ?'bold':'normal'}};
text-decoration:{{getTextDecoration(currentStyle)}};
font-style:{{currentStyle.italic?'italic':'normal'}};
color:{{currentStyle.textColor}};
color:{{currentStyle.textColor || '#000'}};
border-radius: 4px;
background-color:{{currentStyle.fillColor}};"
/>
<t t-if="previewText" t-esc="previewText"/>
<t t-else="">Preview text</t>
background-color:{{currentStyle.fillColor}};">
<t t-if="previewText" t-esc="previewText"/>
<t t-else="">Preview text</t>
</div>
</t>
<t t-name="o-spreadsheet-CellIsRuleEditor" owl="1">
@@ -2948,4 +2948,4 @@
</div>
</div>
</t>
</odoo>
</odoo>