UNPKG

react-garden

Version:

React + TypeScript + ThreeJS app using Material UI on NextJS, Apollo Client, GraphQL + WordPress REST APIs, for ThreeD web development.. a part of the threed.ai code family.

178 lines (170 loc) 3.96 kB
// ############################## // // // variables used to create animation on charts // ############################# const delays = 80 const durations = 500 const delays2 = 80 const durations2 = 500 // ############################## // // // Daily Sales // ############################# const dailySalesChart = { data: { labels: ["M", "T", "W", "T", "F", "S", "S"], series: [[12, 17, 7, 17, 23, 18, 38]], }, options: { low: 0, high: 50, // Company Juice: we recommend you to set the high sa the biggest value + something for a better look chartPadding: { top: 0, right: 0, bottom: 0, left: 0, }, }, // for animation animation: { draw(data) { if (data.type === "line" || data.type === "area") { data.element.animate({ d: { begin: 600, dur: 700, from: data.path .clone() .scale(1, 0) .translate(0, data.chartRect.height()) .stringify(), to: data.path.clone().stringify(), }, }) } else if (data.type === "point") { data.element.animate({ opacity: { begin: (data.index + 1) * delays, dur: durations, from: 0, to: 1, easing: "ease", }, }) } }, }, } // ############################## // // // Email Subscriptions // ############################# const emailsSubscriptionChart = { data: { labels: [ "Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ], series: [[542, 443, 320, 780, 553, 453, 326, 434, 568, 610, 756, 895]], }, options: { axisX: { showGrid: false, }, low: 0, high: 1000, chartPadding: { top: 0, right: 5, bottom: 0, left: 0, }, }, responsiveOptions: [ [ "screen and (max-width: 640px)", { seriesBarDistance: 5, axisX: { labelInterpolationFnc(value) { return value[0] }, }, }, ], ], animation: { draw(data) { if (data.type === "bar") { data.element.animate({ opacity: { begin: (data.index + 1) * delays2, dur: durations2, from: 0, to: 1, easing: "ease", }, }) } }, }, } // ############################## // // // Completed Tasks // ############################# const completedTasksChart = { data: { labels: ["12am", "3pm", "6pm", "9pm", "12pm", "3am", "6am", "9am"], series: [[230, 750, 450, 300, 280, 240, 200, 190]], }, options: { low: 0, high: 1000, // Company Juice: we recommend you to set the high sa the biggest value + something for a better look chartPadding: { top: 0, right: 0, bottom: 0, left: 0, }, }, animation: { draw(data) { if (data.type === "line" || data.type === "area") { data.element.animate({ d: { begin: 600, dur: 700, from: data.path .clone() .scale(1, 0) .translate(0, data.chartRect.height()) .stringify(), to: data.path.clone().stringify(), }, }) } else if (data.type === "point") { data.element.animate({ opacity: { begin: (data.index + 1) * delays, dur: durations, from: 0, to: 1, easing: "ease", }, }) } }, }, } module.exports = { dailySalesChart, emailsSubscriptionChart, completedTasksChart, }