{"version":3,"file":"js/6643.020192ff.js","sources":["../../frontend/src/base/components/common/Tooltip.module.scss?5a14","../../frontend/src/base/components/common/inputs/Form.module.scss?de1a","../../frontend/src/base/components/common/primitives/Icon.module.scss?2b30","../../frontend/src/base/components/common/primitives/Icon.tsx"],"sourcesContent":["// extracted by css-extract-rspack-plugin\nexport default {\"tooltipClickHolder\":\"tooltipClickHolder_UefJcg\",\"tooltipTrigger\":\"tooltipTrigger_abAVSv\",\"isDisabled\":\"isDisabled_jWQWGv\",\"tooltipContent\":\"tooltipContent_p5J2dj\",\"tooltipImage\":\"tooltipImage_a2X2G1\",\"tooltipTitle\":\"tooltipTitle_IiWRcA\"};","// extracted by css-extract-rspack-plugin\nexport default {\"formField\":\"formField_mrrvE_\",\"span1\":\"span1_dQKLXD\",\"span2\":\"span2_mfw9SO\",\"span3\":\"span3__UXamG\",\"span4\":\"span4_mq6too\",\"span5\":\"span5_XKYs4S\",\"span6\":\"span6_CMrxr6\",\"formRow\":\"formRow_v8Z6ja\",\"inputsSeparators\":\"inputsSeparators_omNsUX\",\"error\":\"error_YwX5Sz\",\"supportAdmin\":\"supportAdmin_h_SDzh\"};","// extracted by css-extract-rspack-plugin\nexport default {\"icon\":\"icon_a1ZWRJ\",\"rotate-top\":\"rotate-top_i8corF\",\"rotateTop\":\"rotate-top_i8corF\",\"rotate-right\":\"rotate-right_pm2ieG\",\"rotateRight\":\"rotate-right_pm2ieG\",\"rotate-bottom\":\"rotate-bottom_ODVXpr\",\"rotateBottom\":\"rotate-bottom_ODVXpr\",\"rotate-left\":\"rotate-left_SJWHuq\",\"rotateLeft\":\"rotate-left_SJWHuq\"};","import {\n\tBaseColors,\n\tBaseElement,\n\tBaseElementProps,\n\tBaseSizeList,\n} from \"@base/components/common/primitives/BaseElement\";\nimport clsx from \"clsx\";\nimport React, { useEffect, useRef } from \"react\";\nimport styles from \"./Icon.module.scss\";\n\ntype Rotation = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nexport interface IconProps extends Omit<BaseElementProps, \"size\"> {\n\tsource: string;\n\tfillcolor?: BaseColors;\n\tstrokecolor?: BaseColors;\n\tsize?: BaseSizeList;\n\twidth?: BaseSizeList;\n\theight?: BaseSizeList;\n\trotate?: Rotation;\n\tclassName?: string;\n}\n\nexport const Icon = React.forwardRef<HTMLDivElement, IconProps>(\n\t({ source, fillcolor, strokecolor, width, height, size, rotate, className, ...props }: IconProps, forwardedRef) => {\n\t\tconst internalRef = useRef<HTMLDivElement>(null);\n\t\t// Latest requested source; async loads only commit if still the latest,\n\t\t// so a slow fetch can't overwrite a newer icon.\n\t\tconst latestSourceRef = useRef<string | null>(null);\n\t\tconst appliedFileClassRef = useRef<string | null>(null);\n\n\t\t// Sync internal ref with forwarded ref\n\t\tuseEffect(() => {\n\t\t\tif (!forwardedRef) return;\n\t\t\tif (typeof forwardedRef === \"function\") {\n\t\t\t\tforwardedRef(internalRef.current);\n\t\t\t} else {\n\t\t\t\tforwardedRef.current = internalRef.current;\n\t\t\t}\n\t\t}, [forwardedRef]);\n\n\t\tconst contentRef = internalRef;\n\n\t\tconst cssClasses = clsx([\n\t\t\tstyles.icon,\n\t\t\tfillcolor && `svg-fill-${fillcolor}`,\n\t\t\tstrokecolor && `svg-stroke-${strokecolor}`,\n\t\t\tsize && `svg-size-${size}`,\n\t\t\twidth && `svg-width-${width}`,\n\t\t\theight && `svg-height-${height}`,\n\t\t\trotate && styles[`rotate-${rotate}`],\n\t\t\tclassName,\n\t\t]);\n\n\t\tconst loadIcon = (iconSrc: string): Promise<string> => {\n\t\t\tconst cachedContent = window.react?.iconCache?.[iconSrc];\n\t\t\tif (cachedContent) {\n\t\t\t\treturn Promise.resolve(cachedContent);\n\t\t\t}\n\t\t\tconst pendingLoad = window.react?.iconPromiseCache?.[iconSrc];\n\t\t\tif (pendingLoad) {\n\t\t\t\treturn pendingLoad;\n\t\t\t}\n\t\t\tconst iconPromise = fetch(iconSrc)\n\t\t\t\t.then((response) => {\n\t\t\t\t\tif (response.status === 200 && response.headers.get(\"content-type\")?.startsWith(\"image/svg+xml\")) {\n\t\t\t\t\t\treturn response.text();\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn Promise.reject(response);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then((iconContent) => {\n\t\t\t\t\tif (window.react) {\n\t\t\t\t\t\twindow.react.iconCache[iconSrc] = iconContent;\n\t\t\t\t\t\tdelete window.react.iconPromiseCache[iconSrc];\n\t\t\t\t\t}\n\t\t\t\t\treturn iconContent;\n\t\t\t\t});\n\n\t\t\tif (window.react) {\n\t\t\t\twindow.react.iconPromiseCache[iconSrc] = iconPromise;\n\t\t\t}\n\t\t\treturn iconPromise;\n\t\t};\n\n\t\tconst fetchData = () => {\n\t\t\tif (!contentRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!source) {\n\t\t\t\tlatestSourceRef.current = null;\n\t\t\t\tcontentRef.current.innerHTML = \"❌\";\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (latestSourceRef.current === source) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlatestSourceRef.current = source;\n\t\t\t// Keep the previous icon visible until the replacement is ready.\n\t\t\tloadIcon(source)\n\t\t\t\t.then((imgContent) => {\n\t\t\t\t\tif (latestSourceRef.current !== source || !contentRef.current) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tcontentRef.current.innerHTML = imgContent;\n\t\t\t\t\tconst fileName = source\n\t\t\t\t\t\t.split(/(\\\\|\\/)/g)\n\t\t\t\t\t\t.pop()\n\t\t\t\t\t\t?.replace(\".svg\", \"\");\n\t\t\t\t\tif (appliedFileClassRef.current) {\n\t\t\t\t\t\tcontentRef.current.classList.remove(appliedFileClassRef.current);\n\t\t\t\t\t\tappliedFileClassRef.current = null;\n\t\t\t\t\t}\n\t\t\t\t\tif (fileName) {\n\t\t\t\t\t\tcontentRef.current.classList.add(fileName);\n\t\t\t\t\t\tappliedFileClassRef.current = fileName;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch((response: unknown) => {\n\t\t\t\t\tconsole.error(response);\n\t\t\t\t\tif (latestSourceRef.current === source && contentRef.current) {\n\t\t\t\t\t\tcontentRef.current.innerHTML = \"❌\";\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t};\n\n\t\tuseEffect(() => {\n\t\t\tfetchData();\n\t\t}, [source]);\n\n\t\treturn <BaseElement {...props} className={cssClasses} ref={contentRef} data-is=\"icon\" />;\n\t}\n);\n"],"names":["e","Icon","React","source","fillcolor","strokecolor","width","height","size","rotate","className","props","forwardedRef","internalRef","useRef","latestSourceRef","appliedFileClassRef","useEffect","cssClasses","clsx","styles","fetchData","contentRef","loadIcon","iconSrc","cachedContent","window","Promise","pendingLoad","iconPromise","fetch","response","iconContent","imgContent","fileName","console","BaseElement"],"mappings":"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"}