Merge branch 'develop' into patch-2

This commit is contained in:
Jan Jonas
2023-09-22 12:43:44 +02:00
committed by GitHub
3 changed files with 81 additions and 11 deletions

View File

@@ -59,8 +59,8 @@ representative at an online or offline event.
## Enforcement ## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at security@mermaid.live reported to the community leaders responsible for enforcement at <security@mermaid.live>.
.
All complaints will be reviewed and investigated promptly and fairly. All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the All community leaders are obligated to respect the privacy and security of the

View File

@@ -160,4 +160,70 @@ describe('Quadrant Chart', () => {
); );
cy.get('svg'); cy.get('svg');
}); });
it('should render x-axis labels in the center, if x-axis has two labels', () => {
imgSnapshotTest(
`
quadrantChart
title Reach and engagement of campaigns
x-axis Low Reach --> High Reach
y-axis Low Engagement
quadrant-1 We should expand
quadrant-2 Need to promote
quadrant-3 Re-evaluate
quadrant-4 May be improved
Campaign A: [0.3, 0.6]
Campaign B: [0.45, 0.23]
Campaign C: [0.57, 0.69]
Campaign D: [0.78, 0.34]
Campaign E: [0.40, 0.34]
Campaign F: [0.35, 0.78]
`,
{}
);
cy.get('svg');
});
it('should render y-axis labels in the center, if y-axis has two labels', () => {
imgSnapshotTest(
`
quadrantChart
title Reach and engagement of campaigns
x-axis Low Reach
y-axis Low Engagement --> High Engagement
quadrant-1 We should expand
quadrant-2 Need to promote
quadrant-3 Re-evaluate
quadrant-4 May be improved
Campaign A: [0.3, 0.6]
Campaign B: [0.45, 0.23]
Campaign C: [0.57, 0.69]
Campaign D: [0.78, 0.34]
Campaign E: [0.40, 0.34]
Campaign F: [0.35, 0.78]
`,
{}
);
cy.get('svg');
});
it('should render both axes labels on the left and bottom, if both axes have only one label', () => {
imgSnapshotTest(
`
quadrantChart
title Reach and engagement of campaigns
x-axis Reach -->
y-axis Engagement -->
quadrant-1 We should expand
quadrant-2 Need to promote
quadrant-3 Re-evaluate
quadrant-4 May be improved
Campaign A: [0.3, 0.6]
Campaign B: [0.45, 0.23]
Campaign C: [0.57, 0.69]
Campaign D: [0.78, 0.34]
Campaign E: [0.40, 0.34]
Campaign F: [0.35, 0.78]
`,
{}
);
cy.get('svg');
});
}); });

View File

@@ -283,14 +283,17 @@ export class QuadrantBuilder {
quadrantTop, quadrantTop,
quadrantWidth, quadrantWidth,
} = quadrantSpace; } = quadrantSpace;
const drawAxisLabelInMiddle = this.data.points.length === 0;
const drawXAxisLabelsInMiddle = Boolean(this.data.xAxisRightText);
const drawYAxisLabelsInMiddle = Boolean(this.data.yAxisTopText);
const axisLabels: QuadrantTextType[] = []; const axisLabels: QuadrantTextType[] = [];
if (this.data.xAxisLeftText && showXAxis) { if (this.data.xAxisLeftText && showXAxis) {
axisLabels.push({ axisLabels.push({
text: this.data.xAxisLeftText, text: this.data.xAxisLeftText,
fill: this.themeConfig.quadrantXAxisTextFill, fill: this.themeConfig.quadrantXAxisTextFill,
x: quadrantLeft + (drawAxisLabelInMiddle ? quadrantHalfWidth / 2 : 0), x: quadrantLeft + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),
y: y:
xAxisPosition === 'top' xAxisPosition === 'top'
? this.config.xAxisLabelPadding + titleSpace.top ? this.config.xAxisLabelPadding + titleSpace.top
@@ -299,7 +302,7 @@ export class QuadrantBuilder {
quadrantHeight + quadrantHeight +
this.config.quadrantPadding, this.config.quadrantPadding,
fontSize: this.config.xAxisLabelFontSize, fontSize: this.config.xAxisLabelFontSize,
verticalPos: drawAxisLabelInMiddle ? 'center' : 'left', verticalPos: drawXAxisLabelsInMiddle ? 'center' : 'left',
horizontalPos: 'top', horizontalPos: 'top',
rotation: 0, rotation: 0,
}); });
@@ -308,7 +311,7 @@ export class QuadrantBuilder {
axisLabels.push({ axisLabels.push({
text: this.data.xAxisRightText, text: this.data.xAxisRightText,
fill: this.themeConfig.quadrantXAxisTextFill, fill: this.themeConfig.quadrantXAxisTextFill,
x: quadrantLeft + quadrantHalfWidth + (drawAxisLabelInMiddle ? quadrantHalfWidth / 2 : 0), x: quadrantLeft + quadrantHalfWidth + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),
y: y:
xAxisPosition === 'top' xAxisPosition === 'top'
? this.config.xAxisLabelPadding + titleSpace.top ? this.config.xAxisLabelPadding + titleSpace.top
@@ -317,7 +320,7 @@ export class QuadrantBuilder {
quadrantHeight + quadrantHeight +
this.config.quadrantPadding, this.config.quadrantPadding,
fontSize: this.config.xAxisLabelFontSize, fontSize: this.config.xAxisLabelFontSize,
verticalPos: drawAxisLabelInMiddle ? 'center' : 'left', verticalPos: drawXAxisLabelsInMiddle ? 'center' : 'left',
horizontalPos: 'top', horizontalPos: 'top',
rotation: 0, rotation: 0,
}); });
@@ -334,9 +337,9 @@ export class QuadrantBuilder {
quadrantLeft + quadrantLeft +
quadrantWidth + quadrantWidth +
this.config.quadrantPadding, this.config.quadrantPadding,
y: quadrantTop + quadrantHeight - (drawAxisLabelInMiddle ? quadrantHalfHeight / 2 : 0), y: quadrantTop + quadrantHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),
fontSize: this.config.yAxisLabelFontSize, fontSize: this.config.yAxisLabelFontSize,
verticalPos: drawAxisLabelInMiddle ? 'center' : 'left', verticalPos: drawYAxisLabelsInMiddle ? 'center' : 'left',
horizontalPos: 'top', horizontalPos: 'top',
rotation: -90, rotation: -90,
}); });
@@ -352,9 +355,10 @@ export class QuadrantBuilder {
quadrantLeft + quadrantLeft +
quadrantWidth + quadrantWidth +
this.config.quadrantPadding, this.config.quadrantPadding,
y: quadrantTop + quadrantHalfHeight - (drawAxisLabelInMiddle ? quadrantHalfHeight / 2 : 0), y:
quadrantTop + quadrantHalfHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),
fontSize: this.config.yAxisLabelFontSize, fontSize: this.config.yAxisLabelFontSize,
verticalPos: drawAxisLabelInMiddle ? 'center' : 'left', verticalPos: drawYAxisLabelsInMiddle ? 'center' : 'left',
horizontalPos: 'top', horizontalPos: 'top',
rotation: -90, rotation: -90,
}); });