{"version":3,"sources":["https://lively-kernel.org/lively4/swd21-pipes-and-filters/src/client/triples/drawTools.js"],"names":["drawHalo","drawRectHalo","drawPin","appendRectangularClass","addBackgroundColor","addToolTip","addCssClasses","appendCircularClass","parent","radius","cssClasses","tooltip","backgroundColor","circle","append","classed","attr","element","Array","forEach","cssClass","text","style","width","height","rectangle","container","dx","dy","onClick","pinGroupElement","on","d3","event","stopPropagation","node","offset","nodeElement","labelElement","console","log","haloGroupElement","inverse","addHeight","undefined"],"mappings":"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","file":"drawTools.js","sourcesContent":["/**\r\n * Append a circular class node with the passed attributes.\r\n * @param parent the parent element to which the circle will be appended\r\n * @param radius\r\n * @param [cssClasses] an array of additional css classes\r\n * @param [tooltip]\r\n * @param [backgroundColor]\r\n * @returns {*}\r\n */\r\nexport function appendCircularClass (parent, radius, cssClasses, tooltip, backgroundColor) {\r\n\tvar circle = parent.append(\"circle\")\r\n\t\t.classed(\"class\", true)\r\n\t\t.attr(\"r\", radius);\r\n\r\n\taddCssClasses(circle, cssClasses);\r\n\taddToolTip(circle, tooltip);\r\n\taddBackgroundColor(circle, backgroundColor);\r\n\r\n\treturn circle;\r\n};\r\n\r\nfunction addCssClasses(element, cssClasses) {\r\n\tif (cssClasses instanceof Array) {\r\n\t\tcssClasses.forEach(function (cssClass) {\r\n\t\t\telement.classed(cssClass, true);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction addToolTip(element, tooltip) {\r\n\tif (tooltip) {\r\n\t\telement.append(\"title\").text(tooltip);\r\n\t}\r\n}\r\n\r\nfunction addBackgroundColor(element, backgroundColor) {\r\n\tif (backgroundColor) {\r\n\t\telement.style(\"fill\", backgroundColor);\r\n\t}\r\n}\r\n\r\n/**\r\n * Appends a rectangular class node with the passed attributes.\r\n * @param parent the parent element to which the rectangle will be appended\r\n * @param width\r\n * @param height\r\n * @param [cssClasses] an array of additional css classes\r\n * @param [tooltip]\r\n * @param [backgroundColor]\r\n * @returns {*}\r\n */\r\nexport function appendRectangularClass (parent, width, height, cssClasses, tooltip, backgroundColor) {\r\n\tvar rectangle = parent.append(\"rect\")\r\n\t\t.classed(\"class\", true)\r\n\t\t.attr(\"x\", -width / 2)\r\n\t\t.attr(\"y\", -height / 2)\r\n\t\t.attr(\"width\", width)\r\n\t\t.attr(\"height\", height);\r\n\r\n\taddCssClasses(rectangle, cssClasses);\r\n\taddToolTip(rectangle, tooltip);\r\n\taddBackgroundColor(rectangle, backgroundColor);\r\n\r\n\treturn rectangle;\r\n};\r\n\r\nexport function drawPin(container, dx, dy, onClick) {\r\n\tvar pinGroupElement = container\r\n\t\t.append(\"g\")\r\n\t\t.classed(\"hidden-in-export\", true)\r\n\t\t.attr(\"transform\", \"translate(\" + dx + \",\" + dy + \")\");\r\n\r\n\tpinGroupElement.append(\"circle\")\r\n\t\t.classed(\"class pin feature\", true)\r\n\t\t.attr(\"r\", 12)\r\n\t\t.on(\"click\", function () {\r\n\t\t\tif (onClick) {\r\n\t\t\t\tonClick();\r\n\t\t\t}\r\n\t\t\td3.event.stopPropagation();\r\n\t\t});\r\n\r\n\tpinGroupElement.append(\"line\")\r\n\t\t.attr(\"x1\", 0)\r\n\t\t.attr(\"x2\", 0)\r\n\t\t.attr(\"y1\", 12)\r\n\t\t.attr(\"y2\", 16);\r\n\r\n\treturn pinGroupElement;\r\n};\r\n\r\nexport function drawRectHalo (node, width, height, offset) {\r\n\tvar container;\r\n\tif (node.nodeElement)\r\n\t\tcontainer=node.nodeElement();\r\n\telse\r\n\t  container=node.labelElement();\r\n\r\n\tif (!container){\r\n\t\tconsole.log(\"no container found\");\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar haloGroupElement = container\r\n\t\t.append(\"g\")\r\n\t\t.classed(\"hidden-in-export\", true);\r\n\r\n\tif (node.inverse && node.inverse()){\r\n\t\tvar addHeight=node.inverse().height();\r\n\t\thaloGroupElement.append(\"rect\")\r\n\t\t\t.classed(\"searchResultA\", true)\r\n\t\t\t.attr(\"x\", (-width - offset) / 2)\r\n\t\t\t.attr(\"y\", (-offset - height) / 2)\r\n\t\t\t.attr(\"width\", width + offset)\r\n\t\t\t.attr(\"height\", height+ addHeight + offset);\r\n\t}\r\n\telse {\r\n\t\thaloGroupElement.append(\"rect\")\r\n\t\t\t.classed(\"searchResultA\", true)\r\n\t\t\t.attr(\"x\", (-width - offset) / 2)\r\n\t\t\t.attr(\"y\", (-offset - height) / 2)\r\n\t\t\t.attr(\"width\", width + offset)\r\n\t\t\t.attr(\"height\", height + offset);\r\n\t}\r\n\treturn haloGroupElement;\r\n\r\n};\r\nexport function drawHalo (container, radius) {\r\n\tif (container===undefined){\r\n\t\treturn null;\r\n\t\t// there is no element to add the halo to;\r\n\t\t// this means the node was not rendered previously\r\n\t}\r\n\r\n\tvar haloGroupElement = container\r\n\t\t.append(\"g\")\r\n\t\t.classed(\"hidden-in-export\", true);\r\n\r\n\thaloGroupElement.append(\"circle\",\":first-child\")\r\n\t\t.classed(\"searchResultA\", true)\r\n\t\t.attr(\"r\", radius + 15);\r\n\treturn haloGroupElement;\r\n};\r\n\r\n"]}