handle the line breaks in link cells (#21504)

* handle the line breaks in link cells

* line break character
This commit is contained in:
Alan Ren
2023-01-04 10:23:01 -08:00
committed by GitHub
parent e7fcda7351
commit a1803a823b

View File

@@ -71,13 +71,14 @@ export function hyperLinkFormatter(row: number | undefined, cell: any | undefine
valueToDisplay = 'NULL'; valueToDisplay = 'NULL';
if (!value.isNull) { if (!value.isNull) {
cellClasses += ' xmlLink'; cellClasses += ' xmlLink';
valueToDisplay = escape(value.displayValue); valueToDisplay = getCellDisplayValue(value.displayValue);
return `<a class="${cellClasses}">${valueToDisplay}</a>`; return `<a class="${cellClasses}">${valueToDisplay}</a>`;
} else { } else {
cellClasses += ' missing-value'; cellClasses += ' missing-value';
} }
} else if (isHyperlinkCellValue(value)) { } else if (isHyperlinkCellValue(value)) {
return `<a class="${cellClasses}" title="${escape(value.displayText)}">${escape(value.displayText)}</a>`; valueToDisplay = getCellDisplayValue(value.displayText);
return `<a class="${cellClasses}" title="${valueToDisplay}">${valueToDisplay}</a>`;
} }
return `<span title="${valueToDisplay}" class="${cellClasses}">${valueToDisplay}</span>`; return `<span title="${valueToDisplay}" class="${cellClasses}">${valueToDisplay}</span>`;
} }
@@ -93,8 +94,7 @@ export function textFormatter(row: number | undefined, cell: any | undefined, va
if (DBCellValue.isDBCellValue(value)) { if (DBCellValue.isDBCellValue(value)) {
valueToDisplay = 'NULL'; valueToDisplay = 'NULL';
if (!value.isNull) { if (!value.isNull) {
valueToDisplay = value.displayValue.replace(/(\r\n|\n|\r)/g, ' '); valueToDisplay = getCellDisplayValue(value.displayValue)
valueToDisplay = escape(valueToDisplay.length > 250 ? valueToDisplay.slice(0, 250) + '...' : valueToDisplay);
titleValue = valueToDisplay; titleValue = valueToDisplay;
} else { } else {
cellClasses += ' missing-value'; cellClasses += ' missing-value';
@@ -108,7 +108,7 @@ export function textFormatter(row: number | undefined, cell: any | undefined, va
} else { } else {
valueToDisplay = value; valueToDisplay = value;
} }
valueToDisplay = escape(valueToDisplay.length > 250 ? valueToDisplay.slice(0, 250) + '...' : valueToDisplay); valueToDisplay = getCellDisplayValue(valueToDisplay);
titleValue = valueToDisplay; titleValue = valueToDisplay;
} }
else if (value && value.title) { else if (value && value.title) {
@@ -119,13 +119,19 @@ export function textFormatter(row: number | undefined, cell: any | undefined, va
cellStyle = value.style; cellStyle = value.style;
} }
} }
valueToDisplay = escape(valueToDisplay.length > 250 ? valueToDisplay.slice(0, 250) + '...' : valueToDisplay); valueToDisplay = getCellDisplayValue(valueToDisplay);
titleValue = valueToDisplay; titleValue = valueToDisplay;
} }
return `<span title="${titleValue}" style="${cellStyle}" class="${cellClasses}">${valueToDisplay}</span>`; return `<span title="${titleValue}" style="${cellStyle}" class="${cellClasses}">${valueToDisplay}</span>`;
} }
function getCellDisplayValue(cellValue: string): string {
// allow-any-unicode-next-line
let valueToDisplay = cellValue.replace(/(\r\n|\n|\r)/g, '↵');
return escape(valueToDisplay.length > 250 ? valueToDisplay.slice(0, 250) + '...' : valueToDisplay);
}
export function iconCssFormatter(row: number | undefined, cell: any | undefined, value: any, columnDef: any | undefined, dataContext: any | undefined): string { export function iconCssFormatter(row: number | undefined, cell: any | undefined, value: any, columnDef: any | undefined, dataContext: any | undefined): string {
if (isCssIconCellValue(value)) { if (isCssIconCellValue(value)) {