Lean-right and question

This commit is contained in:
Knut Sveidqvist
2024-09-27 13:40:32 +02:00
parent 1ef4c42bcf
commit b47168b064
2 changed files with 35 additions and 7 deletions

View File

@@ -8,13 +8,29 @@ import { insertPolygonShape } from './insertPolygonShape.js';
export const lean_right = async (parent: SVGAElement, node: Node): Promise<SVGAElement> => { export const lean_right = async (parent: SVGAElement, node: Node): Promise<SVGAElement> => {
const { labelStyles, nodeStyles } = styles2String(node); const { labelStyles, nodeStyles } = styles2String(node);
node.labelStyle = labelStyles; node.labelStyle = labelStyles;
const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));
const nodePadding = node.padding ?? 0; const nodePadding = node.padding ?? 0;
const labelPaddingX = node.look === 'neo' ? nodePadding * 3 : nodePadding;
const labelPaddingY = node.look === 'neo' ? nodePadding * 1.5 : nodePadding; const labelPaddingY = node.look === 'neo' ? nodePadding * 1.5 : nodePadding;
const w = Math.max(bbox.width + labelPaddingY, node?.width ?? 0); if (node.width || node.height) {
const h = Math.max(bbox.height + labelPaddingX, node?.height ?? 0); node.width = node?.width ?? 0;
if (node.width < 50) {
node.width = 50;
}
node.height = node?.height ?? 0;
if (node.height < 50) {
node.height = 50;
}
const _dx = (3 * node.height) / 6;
node.height = node.height - labelPaddingY;
node.width = node.width - 2 * _dx;
}
const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));
const h = Math.max(bbox.height, node?.height ?? 0) + labelPaddingY;
const w = Math.max(bbox.width, node?.width ?? 0);
const points = [ const points = [
{ x: (-3 * h) / 6, y: 0 }, { x: (-3 * h) / 6, y: 0 },
{ x: w, y: 0 }, { x: w, y: 0 },

View File

@@ -19,10 +19,22 @@ export const createDecisionBoxPathD = (x: number, y: number, size: number): stri
export const question = async (parent: SVGAElement, node: Node): Promise<SVGAElement> => { export const question = async (parent: SVGAElement, node: Node): Promise<SVGAElement> => {
const { labelStyles, nodeStyles } = styles2String(node); const { labelStyles, nodeStyles } = styles2String(node);
node.labelStyle = labelStyles; node.labelStyle = labelStyles;
const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node)); const padding = node.padding ?? 0;
if (node.width || node.height) {
node.width = (node?.width ?? 0) - padding * 8;
if (node.width < 50) {
node.width = 50;
}
const w = bbox.width + node.padding; node.height = (node?.height ?? 0) - padding * 8;
const h = bbox.height + node.padding; if (node.height < 50) {
node.height = 50;
}
}
const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));
const w = (Math.max(bbox.width, node?.width ?? 0) + padding * 8) / 2;
const h = w;
const s = w + h; const s = w + h;
const points = [ const points = [