{"version":3,"file":"measure-node.cjs","sources":["../../../src/presets/measure-node.ts"],"sourcesContent":["import type { dia } from '@joint/core';\nimport { g } from '@joint/core';\n\n/**\n * Default measureNode function that uses the model's bounding box for the root element node.\n * For sub-nodes (e.g. referenced by selectors), we use the actual SVG bounding box measurement.\n * @param node - The SVG element node to measure\n * @param view - The cell view containing the node\n * @returns A rectangle representing the measured bounds of the node.\n */\nexport const measureNode: dia.Paper.MeasureNodeCallback = (node, view): g.Rect => {\n\n  // For the root node of an element, we can use the model's bounding box,\n  // which is more performant and works even if the element is not visible\n  // or attached to the DOM.\n  if (node === view.el && view.model.isElement()) {\n    const { width, height } = view.model.size();\n    return new g.Rect({ width, height, x: 0, y: 0 });\n  }\n\n  // For sub-nodes and links, use the DOM bounding box measurement.\n  return view.computeNodeBoundingRect(node);\n};\n"],"names":["g"],"mappings":";;;;;;;;;;;AAUO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,WAAA,CAAA,CAAA,CAA6C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,IAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA;AAKhF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,MAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAA,CAAG,CAAA;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,QAAQ,CAAA,EAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,EAAG,CAAA,CAAA;AAAA,CAAA,CACjD,CAAA;AAGA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAwB,IAAI,CAAA,CAAA;AAC1C,CAAA,CAAA;;"}