{"version":3,"file":"react.jsx","sources":["../../src/ReactDotMap.tsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport { DotMap, DotMapOptionArg } from '@dot-map-renderer/app';\nimport { ILine } from '@dot-map-renderer/component/src/line';\nimport { Point } from '@dot-map-renderer/component/src/Point';\nimport { IController } from '@dot-map-renderer/canvas/src/IController';\nimport { IComponent } from '@dot-map-renderer/component/src/IComponent';\n\ntype Props = {\n    anchors?: Point[],\n    lines?: ILine[],\n    components?: IComponent[],\n} & Pick<\n    React.ComponentProps<'div'>,\n    'style' |\n    'className'\n> & Partial<DotMapOptionArg>;\n\nexport function ReactDotMap({\n    anchors = [],\n    lines = [],\n    components = [],\n    style,\n    className,\n    backgroundColor,\n    gapSize,\n    pixelColor,\n    pixelSize,\n    dotType,\n    renderer,\n}: Props)\n{\n    const ref = useRef<HTMLDivElement>(null);\n    const dotMap = useRef<DotMap | null>(null);\n    const controller = useRef<IController | null>(null);\n\n    useEffect(() =>\n    {\n        dotMap.current = new DotMap({\n            backgroundColor,\n            gapSize,\n            pixelColor,\n            pixelSize,\n            dotType,\n            renderer\n        });\n        dotMap.current?.attach(ref.current!);\n        controller.current = dotMap.current?.getController();\n\n        return () =>\n        {\n            dotMap.current?.detach();\n        };\n    }, []);\n\n    useEffect(() =>\n    {\n        lines.forEach((line) =>\n        {\n            controller.current?.addLine(line);\n        });\n    }, [lines]);\n\n    useEffect(() =>\n    {\n        anchors.forEach((anchor) =>\n        {\n            controller.current?.addAnchor(anchor);\n        });\n    }, [anchors]);\n\n    useEffect(() =>\n    {\n        controller.current?.addComponent(components);\n    }, [components]);\n\n    useEffect(() =>\n    {\n        if(backgroundColor){\n            controller.current?.setBackground(backgroundColor);\n        }\n    }, [backgroundColor]);\n\n    useEffect(() =>\n    {\n        if(gapSize){\n            controller.current?.setGapSize(gapSize);\n        }\n    }, [gapSize]);\n\n    useEffect(() =>\n    {\n        if(pixelColor){\n            controller.current?.setPixelColor(pixelColor);\n        }\n    }, [pixelColor]);\n\n    useEffect(() =>\n    {\n        if(pixelSize){\n            controller.current?.setPixelSize(pixelSize);\n        }\n    }, [pixelSize]);\n\n    useEffect(() =>\n    {\n        if(dotType){\n            controller.current?.setDotType(dotType);\n        }\n    }, [dotType]);\n\n    return <div\n        ref={ref}\n        style={style}\n        className={className}\n    />;\n}\n\nReactDotMap.defaultProps = {\n    anchors: [],\n    backgroundColor: 'white',\n    dotType: 'circle',\n    gapSize: 5,\n    className: '',\n    lines: [],\n    pixelColor: 'black',\n    pixelSize: 5,\n    components: [],\n    renderer: 'canvas',\n    style: {}\n} as Required<Props>;\n\n"],"names":["const","useRef","useEffect","DotMap","React"],"mappings":"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"}