{"version":3,"file":"CartesianChart.CH5W7_qR.mjs","names":["useRef","useState"],"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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"}