8 lines
105 KiB
Plaintext
8 lines
105 KiB
Plaintext
|
|
{
|
||
|
|
"version": 3,
|
||
|
|
"sources": ["../../../src/rendering-util/rendering-elements/edgeMarker.ts", "../../../src/rendering-util/rendering-elements/edges.js", "../../../src/rendering-util/rendering-elements/markers.js"],
|
||
|
|
"sourcesContent": ["import type { SVG } from '../../diagram-api/types.js';\nimport { log } from '../../logger.js';\nimport type { EdgeData } from '../../types.js';\n/**\n * Adds SVG markers to a path element based on the arrow types specified in the edge.\n *\n * @param svgPath - The SVG path element to add markers to.\n * @param edge - The edge data object containing the arrow types.\n * @param url - The URL of the SVG marker definitions.\n * @param id - The ID prefix for the SVG marker definitions.\n * @param diagramType - The type of diagram being rendered.\n */\nexport const addEdgeMarkers = (\n svgPath: SVG,\n edge: Pick<EdgeData, 'arrowTypeStart' | 'arrowTypeEnd'>,\n url: string,\n id: string,\n diagramType: string,\n useMargin = false,\n strokeColor?: string\n) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(\n svgPath,\n 'start',\n edge.arrowTypeStart,\n url,\n id,\n diagramType,\n useMargin,\n strokeColor\n );\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, 'end', edge.arrowTypeEnd, url, id, diagramType, useMargin, strokeColor);\n }\n};\n\nconst arrowTypesMap = {\n arrow_cross: { type: 'cross', fill: false },\n arrow_point: { type: 'point', fill: true },\n arrow_barb: { type: 'barb', fill: true },\n arrow_barb_neo: { type: 'barb', fill: true },\n arrow_circle: { type: 'circle', fill: false },\n aggregation: { type: 'aggregation', fill: false },\n extension: { type: 'extension', fill: false },\n composition: { type: 'composition', fill: true },\n dependency: { type: 'dependency', fill: true },\n lollipop: { type: 'lollipop', fill: false },\n only_one: { type: 'onlyOne', fill: false },\n zero_or_one: { type: 'zeroOrOne', fill: false },\n one_or_more: { type: 'oneOrMore', fill: false },\n zero_or_more: { type: 'zeroOrMore', fill: false },\n requirement_arrow: { type: 'requirement_arrow', fill: false },\n requirement_contains: { type: 'requirement_contains', fill: false },\n} as const;\n\nconst arrowTypesWithMarginSupport = [\n 'cross',\n 'point',\n 'circle',\n 'lollipop',\n 'aggregation',\n 'extension',\n 'composition',\n 'dependency',\n 'barb',\n];\n\nconst addEdgeMarker = (\n svgPath: SVG,\n position: 'start' | 'end',\n arrowType: string,\n url: string,\n id: string,\n diagramType: string,\n useMargin = false,\n strokeColor?: string\n) => {\n const arrowTypeInfo = arrowTypesMap[arrowType as keyof typeof arrowTypesMap];\n const marginSupport = arrowTypeInfo && arrowTypesWithMarginSupport.includes(arrowTypeInfo.type);\n\n if (!arrowTypeInfo) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return; // unknown arrow type, ignore\n }\n\n const endMarkerType = arrowTypeInfo.type;\n const suffix = position === 'start' ? 'Start' : 'End';\n\n const offset = useMargin && marginSupport ? '-margin' : '';\n const originalMarkerId = `${id}_${diagramType}-${endMarkerType}${suffix}${offset}`;\n\n // If stroke color is specified and non-empty, create or use a colored variant of the marker\n if (strokeColor && strokeColor.trim() !== '') {\n // Create a sanitized color value for use in IDs\n const colorId = strokeColor.replace(/[^\\dA-Za-z]/g, '_');\n const coloredMarkerId = `${originalMarkerId}_${colorId}`;\n\n // Check if the colored marker already exists\n if (!document.getElementById(coloredMarkerId)) {\n // Get the original marker\n const originalMarker = document.getElementById(originalMarkerId);\n if (originalMarker) {\n // Clone the marker and create colored version\n const coloredMarker = originalMarker.cloneNode(true) as Element;\n coloredMarker.id = coloredMarkerId;\n\n // Apply colors to the paths inside the marker\n const paths = coloredMarker.querySelectorAll('path, circle, line');\n paths.forEach((path) => {\n path.setAttribute('stroke', strokeColor);\n\n // Apply fill only to markers that should be filled\n if (arrowTypeInfo.fill) {\n path.setAttribute('fill', strokeColor);\n
|
||
|
|
"mappings": "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
|
||
|
|
"names": ["addEdgeMarkers", "__name", "svgPath", "edge", "url", "id", "diagramType", "useMargin", "strokeColor", "addEdgeMarker", "arrowTypesMap", "arrowTypesWithMarginSupport", "position", "arrowType", "arrowTypeInfo", "marginSupport", "log", "endMarkerType", "originalMarkerId", "colorId", "coloredMarkerId", "originalMarker", "coloredMarker", "path", "resolveEdgeCurveType", "__name", "edgeCurve", "getConfig", "edgeLabels", "terminalLabels", "clear", "getLabelStyles", "styleArray", "acc", "style", "insertEdgeLabel", "elem", "edge", "config", "useHtmlLabels", "getEffectiveHtmlLabels", "labelStyles", "styles2String", "edgeLabel", "label", "isMarkdown", "labelElement", "createText", "log", "bbox", "transformBbox", "div", "dv", "select_default", "textEl", "computeLabelTransform", "fo", "startEdgeLabelLeft", "inner", "startLabelElement", "createLabel_default", "slBox", "setTerminalWidth", "startEdgeLabelRight", "endEdgeLabelLeft", "endLabelElement", "endEdgeLabelRight", "value", "positionEdgeLabel", "paths", "path", "siteConfig", "subGraphTitleTotalMargin", "getSubGraphTitleMargins", "el", "x", "y", "pos", "utils_default", "outsideNode", "node", "point", "dx", "dy", "w", "h", "intersection", "outsidePoint", "insidePoint", "r", "Q", "R", "q", "res", "_x", "_y", "cutPathAtIntersect", "_points", "boundaryNode", "points", "lastPointOutside", "isInside", "inter", "pointPresent", "p", "e", "extractCornerPoints", "cornerPoints", "cornerPointPositions", "i", "prev", "curr", "next", "findAdjacentPoint", "pointA", "pointB", "distance", "xDiff", "yDiff", "length", "ratio", "fixCorners", "lineData", "newLineData", "prevPoint", "nextPoint", "cornerPoint", "newPrevPoint", "newNextPoint", "a", "newCornerPoint", "generateDashArray", "len", "oValueS", "oValueE", "middleLength", "dashLength", "gapLength", "dashGapPairLength", "numberOfPairs", "middlePattern", "insertEdge", "clusterDb", "diagramType", "startNode", "endNode", "diagramId", "skipIntersect", "handDrawnSeed", "pointsHasChanged", "tail", "head", "edgeClassStyles", "key", "isLabelStyle", "pointsStr", "edgeCurveType", "curve", "linear_default", "basis_default", "cardinal_default", "bumpX", "bumpY", "catmullRom_default", "monotoneX", "monotoneY", "natural_default", "step_default", "stepAfter", "stepBefore", "getLineFunctionsWithOffset", "lineFunction", "line_default", "strokeClasses", "svgPath", "linePath", "generateRoundedPath", "applyMarkerOffsetsToPoints", "edgeStyles", "strokeColor", "animationClass", "animatedEdge", "rc", "at", "svgPathNode", "d", "stylesFromClasses", "styles", "pathStyle", "pathNode", "markerOffsets2", "mOffset", "handleUndefinedAttr", "url", "useMargin", "addEdgeMarkers", "midIndex", "radius", "size", "epsilon", "currPoint", "dx1", "dy1", "dx2", "dy2", "len1", "len2", "nx1", "ny1", "nx2", "ny2", "dot", "clampedDot", "angle", "cutLen", "startX", "startY", "endX", "endY", "calculateDeltaAndAngle", "point1", "point2", "deltaX", "deltaY", "newPoints", "markerOffsets", "offsetValue", "offsetX", "offsetY", "n", "insertMarkers", "__name", "elem", "markerArray", "type", "id", "markerName", "markers", "extension", "log", "composition", "aggregation", "dependency", "lollipop", "point", "circle", "cross", "barb", "barbNeo", "config", "getConfig", "themeVariables", "transitionColor", "only_one", "zero_or_one", "startMarker", "endMarker", "one_or_more", "zero_or_more", "only_one_neo", "strokeWidth", "zero_or_one_neo", "mainBkg", "one_or_more_neo", "zero_or_more_neo", "requirement_arrow", "requirement_arrow_neo", "requirement_contains", "containsNode", "requirement_contains_neo", "markers_default"]
|
||
|
|
}
|