{"version":3,"file":"CartesianChart.D6lV_Xfq.mjs","names":["useRef","useState","__esmMin","init_npm_react_18_3_1","de","window","init_ssg_sandbox_shims","init_jsx_runtime","c","ce","_e","addPropertyControls","init_framer_B1b760uK","ControlType","CartesianChart","chartRef","canvasRef","scriptsLoaded","setScriptsLoaded","loadScript","script","src","resolve","reject","error","parseCSV","isEmptyValue","value","trimmed","parsedData","csvData","row","style","dataStyle","index","defaultDataStyle","key","chartType","fileType","filepath","response","url","data","ctx","fontSizeValue","font","legendBox","chart","args","x","left","right","y","top","bottom","options","crosshairX","crosshairY","gridSettings","fontColor","legendSettings","tooltipSettings","crosshairSettings","init_CartesianChart","props"],"sources":["https:/framerusercontent.com/modules/IEYjzYd99a5tIcEAELDB/ZyYcJ1k0edciXeqpxR7l/CartesianChart.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @copyright ©framersnippets.com\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 200\n * @framerDisableUnlink\n **/export default function CartesianChart({style,font,fontColor,fileType,filepath,url,chartType,dataStyle,legendSettings,gridSettings,tooltipSettings,crosshairSettings}){const chartRef=useRef(null);const canvasRef=useRef(null);const[scriptsLoaded,setScriptsLoaded]=useState(false);// Load Chart.js and PapaParse scripts\nuseEffect(()=>{const loadScript=src=>{return new Promise((resolve,reject)=>{const script=document.createElement(\"script\");script.src=src;script.async=true;script.onload=()=>resolve();script.onerror=reject;document.head.appendChild(script);});};Promise.all([loadScript(\"https://cdn.jsdelivr.net/npm/chart.js\"),loadScript(\"https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.3.0/papaparse.min.js\")]).then(()=>{window.Papa=window.Papa;setScriptsLoaded(true);}).catch(error=>{console.error(\"Error loading scripts:\",error);});return()=>{document.head.querySelectorAll('script[src=\"https://cdn.jsdelivr.net/npm/chart.js\"], script[src=\"https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.3.0/papaparse.min.js\"]').forEach(script=>{document.head.removeChild(script);});};},[]);// Parse CSV data using PapaParse\nconst parseCSV=csvData=>{const isEmptyValue=value=>{if(value===null||value===undefined)return true;const trimmed=String(value).trim().toLowerCase();return trimmed===\"\"||trimmed===\"nan\"||trimmed===\"NaN\"||trimmed===\"null\"||trimmed===\"NULL\"||trimmed===\"n/a\"||trimmed===\"N/A\"||trimmed===\"undefined\";};const parsedData=window.Papa.parse(csvData,{header:true,skipEmptyLines:\"greedy\",transform:value=>value.trim()}).data.filter(row=>Object.values(row).some(value=>!isEmptyValue(value)));const labels=parsedData.map(row=>row[Object.keys(row)[0]]);const datasets=Object.keys(parsedData[0]).slice(1).map((key,index)=>{const style=dataStyle[index]||defaultDataStyle;return{label:key,data:parsedData.map(row=>parseFloat(row[key])),borderColor:style.borderColor,borderWidth:style.borderWidth,backgroundColor:style.fillToBottom?style.fillToBottomColor:style.pointColor,pointBackgroundColor:style.pointColor,pointRadius:style.pointSize,pointHoverRadius:style.hoverPointSize,borderRadius:style.radius,tension:chartType===\"line\"?style.radius/100:0,fill:style.fillToBottom?\"start\":chartType!==\"line\"};});return{labels,datasets};};// Create and update chart\nuseEffect(()=>{if(scriptsLoaded&&canvasRef.current){const loadData=async()=>{let csvData;if(fileType===\"File\"&&filepath){csvData=await fetch(filepath).then(response=>response.text());}else if(fileType===\"URL\"&&url){csvData=await fetch(url).then(response=>response.text());}else{csvData=await fetch(\"https://framersnippets.vercel.app/btc-eth.csv\").then(response=>response.text());}const data=parseCSV(csvData);const ctx=canvasRef.current.getContext(\"2d\");if(chartRef.current){chartRef.current.destroy();}// Parse font size value to size dynmiacally the legend to match font size\nconst fontSizeValue=parseInt(font.fontSize,10);const legendBox={boxWidth:fontSizeValue/1.5,boxHeight:fontSizeValue/1.5};// Custom crosshair plugin for Chart.js\nconst crosshairPlugin={id:\"crosshair\",afterEvent:function(chart,args,options){const{ctx,chartArea:{top,bottom,left,right}}=chart;const{x,y}=args.event;if(x<left||x>right||y<top||y>bottom){chart.crosshairActive=false;chart.draw();return;}chart.crosshairActive=true;chart.crosshairX=x;chart.crosshairY=y;chart.draw();},beforeDatasetsDraw:function(chart,args,options){if(!chart.crosshairActive)return;const{ctx,chartArea:{top,bottom,left,right},crosshairX,crosshairY}=chart;ctx.save();ctx.beginPath();ctx.lineWidth=options.borderSize;ctx.strokeStyle=options.borderColor;ctx.setLineDash(options.borderStyle===\"dashed\"?[5,5]:options.borderStyle===\"dotted\"?[2,2]:[]);if(options.axisX){ctx.moveTo(crosshairX,top);ctx.lineTo(crosshairX,bottom);}if(options.axisY){ctx.moveTo(left,crosshairY);ctx.lineTo(right,crosshairY);}ctx.stroke();ctx.restore();}};window.Chart.register(crosshairPlugin);// Create new chart\nchartRef.current=new window.Chart(ctx,{type:chartType,data:{labels:data.labels,datasets:data.datasets},options:{animations:false,responsive:true,maintainAspectRatio:false,interaction:{mode:\"index\",intersect:false},scales:{x:{title:{display:false,text:\"Labels\"},grid:{display:gridSettings.showGridX,color:gridSettings.gridColor,drawBorder:gridSettings.showGridX},ticks:{font:{family:font.fontFamily,size:font.fontSize,weight:font.fontWeight,lineHeight:font.lineHeight},color:fontColor},border:{display:false}},y:{title:{display:false,text:\"Values\"},grid:{display:gridSettings.showGridY,color:gridSettings.gridColor,drawBorder:gridSettings.showGridY},ticks:{font:{family:font.fontFamily,size:font.fontSize,weight:font.fontWeight,lineHeight:font.lineHeight},color:fontColor},border:{display:false}}},elements:{line:{tension:0},bar:{borderRadius:0,borderSkipped:false}},plugins:{legend:{display:legendSettings.showLegend,position:legendSettings.legendPosition,labels:{font:{family:font.fontFamily,size:font.fontSize,weight:font.fontWeight,lineHeight:font.lineHeight},boxWidth:legendBox.boxWidth,boxHeight:legendBox.boxWidth,color:fontColor,usePointStyle:legendSettings.pointStyle===\"point\"}},tooltip:{enabled:tooltipSettings.visible,backgroundColor:tooltipSettings.fill,borderColor:tooltipSettings.borderColor,titleColor:tooltipSettings.fontColor,bodyColor:tooltipSettings.fontColor,borderWidth:tooltipSettings.borderSize,displayColors:tooltipSettings.showLegend,cornerRadius:tooltipSettings.tooltipRadius,padding:tooltipSettings.tooltipPadding,titleFont:{size:font.fontSize,family:font.fontFamily},bodyFont:{size:font.fontSize,family:font.fontFamily},boxWidth:legendBox.boxWidth,boxHeight:legendBox.boxWidth,boxPadding:legendBox.boxWidth/2,usePointStyle:legendSettings.pointStyle===\"point\",callbacks:{labelPointStyle:function(context){return{pointStyle:legendSettings.pointStyle===\"point\"?\"circle\":\"rect\",rotation:0};}}},crosshair:{axisX:crosshairSettings.axisX,axisY:crosshairSettings.axisY,borderColor:crosshairSettings.borderColor,borderSize:crosshairSettings.borderSize,borderStyle:crosshairSettings.borderStyle}}}});};loadData();}},[scriptsLoaded,filepath,url,chartType,dataStyle,font,fontColor,legendSettings,gridSettings,tooltipSettings,crosshairSettings]);return /*#__PURE__*/_jsx(\"div\",{style:{...style,width:\"100%\",height:\"100%\",position:\"relative\"},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\"}})});}const defaultDataStyle={borderWidth:1,borderColor:\"#0599ff\",fillToBottom:true,fillToBottomColor:\"rgba(5, 153, 255, .1)\",pointSize:0,pointColor:\"rgba(5, 153, 255, 1)\",hoverPointSize:3,radius:50};// Default props\nCartesianChart.defaultProps={chartType:\"line\",dataStyle:[defaultDataStyle,defaultDataStyle],fontColor:\"#000000\",legendSettings:{showLegend:true,legendPosition:\"top\",pointStyle:\"default\"},gridSettings:{showGridX:true,showGridY:true,gridColor:\"rgba(0, 0, 0, .07)\"},tooltipSettings:{visible:true,showLegend:false,fill:\"#0599ff\",borderSize:0,borderColor:\"#0599ff\",fontColor:\"#ffffff\",tooltipRadius:0,tooltipPadding:12},crosshairSettings:{axisX:true,axisY:true,borderSize:1,borderColor:\"#0599ff\",borderStyle:\"dotted\"}};// Adding property controls to the Chart component in Framer\naddPropertyControls(CartesianChart,{fileType:{type:ControlType.Enum,options:[\"URL\",\"File\"],title:\"Source\",displaySegmentedControl:true,optionTitles:[\"URL\",\"File\"]},filepath:{type:ControlType.File,allowedFileTypes:[\"csv\"],title:\"‎\",hidden(props){return props.fileType!==\"File\";},description:\"Link your data and customize the default traces or add new ones to style each segment.\"},url:{type:ControlType.String,title:\"‎\",placeholder:\"http://example.com/data.csv\",hidden(props){return props.fileType!==\"URL\";},description:\"Link your data and customize the default traces or add new ones to style each segment.\"},chartType:{type:ControlType.Enum,options:[\"line\",\"bar\"],title:\"Type\",displaySegmentedControl:true,optionTitles:[\"Line\",\"Bar\"]},dataStyle:{type:ControlType.Array,title:\"Trace\",control:{type:ControlType.Object,controls:{borderWidth:{type:ControlType.Number,title:\"Border\",step:1,displayStepper:true,min:1,max:10,defaultValue:defaultDataStyle.borderWidth},borderColor:{type:ControlType.Color,title:\"‎\",defaultValue:defaultDataStyle.borderColor},fillToBottom:{type:ControlType.Boolean,title:\"Fill\",defaultValue:defaultDataStyle.fillToBottom},fillToBottomColor:{type:ControlType.Color,title:\"‎\",defaultValue:defaultDataStyle.fillToBottomColor,hidden(props){return!props.fillToBottom;}},pointSize:{type:ControlType.Number,title:\"Point\",defaultValue:defaultDataStyle.pointSize,step:1,displayStepper:true,min:0,max:10},pointColor:{type:ControlType.Color,title:\"‎\",defaultValue:defaultDataStyle.pointColor},hoverPointSize:{type:ControlType.Number,title:\"Point Hover\",defaultValue:defaultDataStyle.hoverPointSize,step:1,displayStepper:true,min:0,max:10},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:defaultDataStyle.radius,step:1,displayStepper:true,min:0,max:50}}},defaultValue:CartesianChart.defaultProps.dataStyle},font:{type:ControlType.Font,controls:\"extended\",displayFontSize:true,displayTextAlignment:false,defaultFontType:\"sans-serif\",defaultValue:{fontSize:12,lineHeight:\"1.2em\"}},fontColor:{type:ControlType.Color,title:\"Color\",defaultValue:CartesianChart.defaultProps.fontColor},legendSettings:{type:ControlType.Object,title:\"Legend\",controls:{showLegend:{type:ControlType.Boolean,title:\"Visible\",defaultValue:CartesianChart.defaultProps.legendSettings.showLegend},legendPosition:{type:ControlType.Enum,title:\"Position\",options:[\"top\",\"bottom\"],displaySegmentedControl:true,optionTitles:[\"Top\",\"Bottom\"],defaultValue:CartesianChart.defaultProps.legendSettings.legendPosition,hidden(props){return!props.showLegend;}},pointStyle:{type:ControlType.Enum,title:\"Symbol\",options:[\"default\",\"point\"],displaySegmentedControl:true,optionTitles:[\"Square\",\"Point\"],defaultValue:CartesianChart.defaultProps.legendSettings.pointStyle,hidden(props){return!props.showLegend;}}}},gridSettings:{type:ControlType.Object,title:\"Grid\",controls:{showGridX:{type:ControlType.Boolean,title:\"X Axis\",defaultValue:CartesianChart.defaultProps.gridSettings.showGridX,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showGridY:{type:ControlType.Boolean,title:\"Y Axis\",defaultValue:CartesianChart.defaultProps.gridSettings.showGridY,enabledTitle:\"Show\",disabledTitle:\"Hide\"},gridColor:{type:ControlType.Color,title:\"Color\",defaultValue:CartesianChart.defaultProps.gridSettings.gridColor}}},tooltipSettings:{type:ControlType.Object,title:\"Tooltip\",controls:{visible:{type:ControlType.Boolean,title:\"Visible\",defaultValue:CartesianChart.defaultProps.tooltipSettings.visible},showLegend:{type:ControlType.Boolean,title:\"Symbol\",defaultValue:CartesianChart.defaultProps.tooltipSettings.showLegend,enabledTitle:\"Show\",disabledTitle:\"Hide\",hidden(props){return props.visible==false;}},fontColor:{type:ControlType.Color,title:\"Font\",defaultValue:CartesianChart.defaultProps.tooltipSettings.fontColor,hidden(props){return props.visible==false;}},fill:{type:ControlType.Color,title:\"Fill\",defaultValue:CartesianChart.defaultProps.tooltipSettings.fill,hidden(props){return props.visible==false;}},borderSize:{type:ControlType.Number,title:\"Border\",step:1,defaultValue:CartesianChart.defaultProps.tooltipSettings.borderSize,displayStepper:true,min:0,max:50,hidden(props){return props.visible==false;}},borderColor:{type:ControlType.Color,title:\"‎\",defaultValue:CartesianChart.defaultProps.tooltipSettings.borderColor,hidden(props){return props.visible==false;}},tooltipRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:CartesianChart.defaultProps.tooltipSettings.tooltipRadius,displayStepper:true,min:0,max:30,hidden(props){return props.visible==false;}},tooltipPadding:{type:ControlType.Number,title:\"Padding\",defaultValue:CartesianChart.defaultProps.tooltipSettings.tooltipPadding,displayStepper:true,min:0,max:30,hidden(props){return props.visible==false;}}}},crosshairSettings:{type:ControlType.Object,title:\"Crosshair\",controls:{axisY:{type:ControlType.Boolean,title:\"Axis X\",defaultValue:CartesianChart.defaultProps.crosshairSettings.axisY,enabledTitle:\"Show\",disabledTitle:\"Hide\"},axisX:{type:ControlType.Boolean,title:\"Axis Y\",defaultValue:CartesianChart.defaultProps.crosshairSettings.axisX,enabledTitle:\"Show\",disabledTitle:\"Hide\"},borderSize:{type:ControlType.Number,title:\"Border\",defaultValue:CartesianChart.defaultProps.crosshairSettings.borderSize,displayStepper:true,min:0,max:50},borderColor:{type:ControlType.Color,title:\"‎\",defaultValue:CartesianChart.defaultProps.crosshairSettings.borderColor},borderStyle:{type:ControlType.Enum,title:\"‎\",options:[\"solid\",\"dotted\",\"dashed\"],defaultValue:CartesianChart.defaultProps.crosshairSettings.borderStyle}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CartesianChart\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"200\",\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CartesianChart.map"],"mappings":"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"}