diff --git a/src/app/cartography/shared/helpers/font-fixer.ts b/src/app/cartography/shared/helpers/font-fixer.ts index 9a0ad908..28056486 100644 --- a/src/app/cartography/shared/helpers/font-fixer.ts +++ b/src/app/cartography/shared/helpers/font-fixer.ts @@ -9,7 +9,7 @@ export class FontFixer { static DEFAULT_FONT = "TypeWriter"; static DEFAULT_SIZE = 10; static REPLACE_BY_FONT = "Noto Sans"; - static REPLACE_BY_SIZE = 10; + static REPLACE_BY_SIZE = 11; public fix(font: Font): Font { if (font.font_family === FontFixer.DEFAULT_FONT && font.font_size === FontFixer.DEFAULT_SIZE) { diff --git a/src/app/cartography/shared/widgets/drawings/text-drawing.spec.ts b/src/app/cartography/shared/widgets/drawings/text-drawing.spec.ts index d7a122f5..0f35748d 100644 --- a/src/app/cartography/shared/widgets/drawings/text-drawing.spec.ts +++ b/src/app/cartography/shared/widgets/drawings/text-drawing.spec.ts @@ -39,9 +39,9 @@ describe('TextDrawingWidget', () => { const drew = drawings_merge.selectAll('text.text_element'); expect(drew.size()).toEqual(1); const text_element = drew.nodes()[0]; - expect(text_element.innerHTML).toEqual('THIS IS TEXT'); + expect(text_element.innerHTML).toEqual('THIS IS TEXT'); expect(text_element.getAttribute('fill')).toEqual("#000000"); - expect(text_element.getAttribute('style')).toEqual('font-family: "TypeWriter"; font-size: 10pt; font-weight: bold'); + expect(text_element.getAttribute('style')).toEqual('font-family: "Noto Sans"; font-size: 11pt; font-weight: bold'); }); it('should draw multiline text', () => { @@ -67,4 +67,24 @@ describe('TextDrawingWidget', () => { expect(drew.nodes()[1].getAttribute('dy')).toEqual('1.2em'); }); + it('should draw whitespaces', () => { + const text = new TextElement(); + text.text = ' Text with whitespaces'; + drawing.element = text; + + const drawings = svg.canvas.selectAll('g.drawing').data([drawing]); + const drawings_enter = drawings.enter().append('g').classed('drawing', true); + const drawings_merge = drawings.merge(drawings_enter); + + widget.draw(drawings_merge); + + const drew = drawings_merge.selectAll('tspan'); + expect(drew.nodes().length).toEqual(1); + + expect(drew.nodes()[0].innerHTML).toEqual(' Text with whitespaces'); + expect(drew.nodes()[0].getAttribute('space')).toEqual('preserve'); + + }); + + }); diff --git a/src/app/cartography/shared/widgets/drawings/text-drawing.ts b/src/app/cartography/shared/widgets/drawings/text-drawing.ts index 188da5e2..2f5c42c2 100644 --- a/src/app/cartography/shared/widgets/drawings/text-drawing.ts +++ b/src/app/cartography/shared/widgets/drawings/text-drawing.ts @@ -57,6 +57,7 @@ export class TextDrawingWidget implements DrawingWidget { lines_merge .text((line) => line) + .attr('xml:space', 'preserve') .attr('x', 0) .attr("dy", (line, i) => i === 0 ? '0em' : '1.2em');