{
  "version": 3,
  "sources": ["../../../src/utils/subGraphTitleMargins.ts", "../../../src/rendering-util/rendering-elements/shapes/labelImageUtils.ts"],
  "sourcesContent": ["import type { FlowchartDiagramConfig } from '../config.type.js';\n\nexport const getSubGraphTitleMargins = ({\n  flowchart,\n}: {\n  flowchart: FlowchartDiagramConfig;\n}): {\n  subGraphTitleTopMargin: number;\n  subGraphTitleBottomMargin: number;\n  subGraphTitleTotalMargin: number;\n} => {\n  const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;\n  const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;\n  const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;\n\n  return {\n    subGraphTitleTopMargin,\n    subGraphTitleBottomMargin,\n    subGraphTitleTotalMargin,\n  };\n};\n", "import { getConfig } from '../../../diagram-api/diagramAPI.js';\nimport defaultConfig from '../../../defaultConfig.js';\nimport { parseFontSize } from '../../../utils.js';\n\n/**\n * Waits for all images in a container to load and applies appropriate styling.\n * This ensures accurate bounding box measurements after images are loaded.\n *\n * @param container - The HTML element containing img tags\n * @param labelText - The original label text to check if there's text besides images\n * @returns Promise that resolves when all images are loaded and styled\n */\nexport async function configureLabelImages(\n  container: HTMLElement,\n  labelText: string\n): Promise<void> {\n  const images = container.getElementsByTagName('img');\n  if (!images || images.length === 0) {\n    return;\n  }\n\n  const noImgText = labelText.replace(/<img[^>]*>/g, '').trim() === '';\n\n  await Promise.all(\n    [...images].map(\n      (img) =>\n        new Promise((res) => {\n          function setupImage() {\n            img.style.display = 'flex';\n            img.style.flexDirection = 'column';\n\n            if (noImgText) {\n              // default size if no text\n              const bodyFontSize = getConfig().fontSize\n                ? getConfig().fontSize\n                : window.getComputedStyle(document.body).fontSize;\n              const enlargingFactor = 5;\n              const [parsedBodyFontSize = defaultConfig.fontSize] = parseFontSize(bodyFontSize);\n              const width = parsedBodyFontSize * enlargingFactor + 'px';\n              img.style.minWidth = width;\n              img.style.maxWidth = width;\n            } else {\n              img.style.width = '100%';\n            }\n            res(img);\n          }\n          setTimeout(() => {\n            if (img.complete) {\n              setupImage();\n            }\n          });\n          img.addEventListener('error', setupImage);\n          img.addEventListener('load', setupImage);\n        })\n    )\n  );\n}\n"],
  "mappings": "kIAEO,IAAMA,EAA0BC,EAAA,CAAC,CACtC,UAAAC,CACF,IAMK,CACH,IAAMC,EAAyBD,GAAW,qBAAqB,KAAO,EAChEE,EAA4BF,GAAW,qBAAqB,QAAU,EACtEG,EAA2BF,EAAyBC,EAE1D,MAAO,CACL,uBAAAD,EACA,0BAAAC,EACA,yBAAAC,CACF,CACF,EAlBuC,2BCUvC,eAAsBC,EACpBC,EACAC,EACe,CACf,IAAMC,EAASF,EAAU,qBAAqB,KAAK,EACnD,GAAI,CAACE,GAAUA,EAAO,SAAW,EAC/B,OAGF,IAAMC,EAAYF,EAAU,QAAQ,cAAe,EAAE,EAAE,KAAK,IAAM,GAElE,MAAM,QAAQ,IACZ,CAAC,GAAGC,CAAM,EAAE,IACTE,GACC,IAAI,QAASC,GAAQ,CACnB,SAASC,GAAa,CAIpB,GAHAF,EAAI,MAAM,QAAU,OACpBA,EAAI,MAAM,cAAgB,SAEtBD,EAAW,CAEb,IAAMI,EAAeC,EAAU,EAAE,SAC7BA,EAAU,EAAE,SACZ,OAAO,iBAAiB,SAAS,IAAI,EAAE,SACrCC,EAAkB,EAClB,CAACC,EAAqBC,EAAc,QAAQ,EAAIC,EAAcL,CAAY,EAC1EM,EAAQH,EAAqBD,EAAkB,KACrDL,EAAI,MAAM,SAAWS,EACrBT,EAAI,MAAM,SAAWS,CACvB,MACET,EAAI,MAAM,MAAQ,OAEpBC,EAAID,CAAG,CACT,CAlBSU,EAAAR,EAAA,cAmBT,WAAW,IAAM,CACXF,EAAI,UACNE,EAAW,CAEf,CAAC,EACDF,EAAI,iBAAiB,QAASE,CAAU,EACxCF,EAAI,iBAAiB,OAAQE,CAAU,CACzC,CAAC,CACL,CACF,CACF,CA5CsBQ,EAAAf,EAAA",
  "names": ["getSubGraphTitleMargins", "__name", "flowchart", "subGraphTitleTopMargin", "subGraphTitleBottomMargin", "subGraphTitleTotalMargin", "configureLabelImages", "container", "labelText", "images", "noImgText", "img", "res", "setupImage", "bodyFontSize", "getConfig", "enlargingFactor", "parsedBodyFontSize", "defaultConfig_default", "parseFontSize", "width", "__name"]
}
